System and method for replicating offline scheduling transactions from a client to a server
First Claim
1. A computer-readable storage medium that is not a signal encoded with computer-executable instructions for execution by a computer implementing a store-and-forward application comprising:
- an outbox that maintains a queue of items;
an interface that receives a transaction for a first remote service, and for placing the transaction in the outbox, the transaction being generated by a first application that is different from the store-and-forward application, the store-and-forward application for sending items using a second remote service that is different from the first remote service;
an invocation component that invokes a service delivery component of the first application for retrieving an item from the outbox, for determining whether the item is a transaction for the first remote service, for sending the item to the first remote service without use of the second remote service in response to determining that the item is a transaction for the first remote service, and for placing the item back in the outbox in response to determining that the item is not a transaction for the first remote service;
a store-and-forward delivery component for processing items in the outbox subsequent to processing by the service delivery component for delivery to the second remote; and
a network connectivity component for determining a network connectivity state of the store-and-forward application, and for first invoking the service delivery component via the invocation component and second invoking the store-and-forward delivery component in response to determining that the network connectivity state indicates onlinewherein the first remote service is hosted by a first remote server, the second remote service is hosted by a second remote server, the first remote server being different from the second remote server, and the first remote server being connected to the computer via a network and the second remote server being connected to the computer via the network.
2 Assignments
0 Petitions
Accused Products
Abstract
A facility for replicating offline scheduling transactions directed to a server is provided. The facility is implemented as a client-side application that integrates with and utilizes components of a store-and-forward application, which is operable to execute on a client to guarantee that transactions submitted on the client are replicated and carried out on a service hosted on a remote server even in light of intermittent connectivity between the client, the server, and networks. Records describing transactions intended remote service are written to an outbox of the store-and-forward application on the client. When online, the store-and-forward application first invokes the facility, which processes the items in the outbox by iteratively retrieving the items from the outbox and, for each item, determining whether the item is a transaction intended for the scheduling application. If the item is intended for the scheduling application, the facility sends the item to the scheduling application. Otherwise, if the item is not intended for the scheduling application, the facility returns the item to the outbox for processing by other components of the store-and-forward application.
-
Citations
16 Claims
-
1. A computer-readable storage medium that is not a signal encoded with computer-executable instructions for execution by a computer implementing a store-and-forward application comprising:
-
an outbox that maintains a queue of items; an interface that receives a transaction for a first remote service, and for placing the transaction in the outbox, the transaction being generated by a first application that is different from the store-and-forward application, the store-and-forward application for sending items using a second remote service that is different from the first remote service; an invocation component that invokes a service delivery component of the first application for retrieving an item from the outbox, for determining whether the item is a transaction for the first remote service, for sending the item to the first remote service without use of the second remote service in response to determining that the item is a transaction for the first remote service, and for placing the item back in the outbox in response to determining that the item is not a transaction for the first remote service; a store-and-forward delivery component for processing items in the outbox subsequent to processing by the service delivery component for delivery to the second remote; and a network connectivity component for determining a network connectivity state of the store-and-forward application, and for first invoking the service delivery component via the invocation component and second invoking the store-and-forward delivery component in response to determining that the network connectivity state indicates online wherein the first remote service is hosted by a first remote server, the second remote service is hosted by a second remote server, the first remote server being different from the second remote server, and the first remote server being connected to the computer via a network and the second remote server being connected to the computer via the network. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-readable storage medium that is not a signal whose contents cause a computer to:
-
receive as input a transaction for a first remote service, the first remote service for scheduling meetings, the transaction being created by and provided by a scheduling application executing on the computer; and place the transaction as an item in an outbox of a store-and-forward application for processing by the store-and-forward application, the store-and-forward application being an electronic mail application for sending electronic mail messages in the outbox to a second remote service for delivery of the electronic mail messages to a recipient, the second remote service being different from the first remote service and the store-and-forward application being different from the scheduling application, the store-and-forward application for; determining whether there is network connectivity for a network, and responsive to determining that there is network connectivity, for processing the items in the outbox by; invoking a service delivery component of the scheduling application to;
retrieve an item from the outbox,
determine whether the item is a transaction for the first remote service,
send the item to the first remote service without use of the second remote service in response to determining that the item is a transaction for the first remote service, and
place the item back in the outbox in response to determining that the item is not a transaction for the first remote service, andafter invoking the service delivery component of the scheduling application, invoking a transport component of the store-and-forward application to send electronic mail messages in the outbox to the second remote service such that the service delivery component is invoked prior to the transport component of the store-and-forward application so that the service delivery component uses capabilities of the store-and-forward application for determining whether there is network connectivity and wherein the first remote service is hosted by a first remote server, the second remote service is hosted by a second remote server, the first remote server being different from the second remote server, and the first remote server being connected to the computer via a network and the second remote server being connected to the computer via the network. - View Dependent Claims (7, 8, 9)
-
-
10. A computer-implemented method for replicating offline transactions from a client to a server, the method comprising:
-
receiving as input on a client from a first application a transaction for a first remote service; placing the input transaction as an item in an outbox of a store-and-forward application, the first application being different from the store-and-forward application, the store-and-forward application for sending items using a second remote service that is different from the first remote service; determining whether the client is online or offline; responsive to determining that the client is offline, maintaining the transaction in the outbox for subsequent processing when the client becomes online; and responsive to determining that the client is online, first invoking by the store-and-forward application a service delivery component of the first application that retrieves an item from the outbox, that determines whether the item is a transaction for the first remote service, that sends the item to the first remote service without use of the second remote service in response to determining that the item is a transaction for the first remote service, and that places the item back in the outbox in response to determining that the item is not a transaction for the first remote service for processing by a transport component of the store-and-forward application; and second invoking by the store-and-forward application the transport component of the store-and-forward application that retrieves an item from the outbox and that sends the item to the second remote service the first remote service being hosted by a first remote server, the second remote service being hosted by a second remote server, the first remote server being different from the second remote server, and the first remote server being connected to the client via a network and the second remote server being connected to the client via the network. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
Specification