Patent ID: 8370395

Claim:
A computer-implemented method for using a distributed computing system to provide users with a reliable data queuing service that enables application programs of the users to communicate, comprising: in response to requests from multiple users of the data queuing service, providing to each of the users a unique queue identifier associated with a data queue that is for use by that user in exchanging data between multiple remote application programs affiliated with that user, each data queue for a user associated with a subscription of that user with the data queuing service that affects use of the data queue, each data queue being further associated with a group of multiple distinct alternative computing systems of the data queuing service that each has data storage for storing a copy of one or more data elements in the data queue, the multiple alternative computing systems associated with a data queue each storing only a subset of the stored data elements for the data queue; repeatedly receiving queue usage requests from application programs of users via invocations by those application programs of Web service interfaces provided by the data queuing service, each of the received requests specifying a queue identifier that identifies a queue and indicating a requested queue operation related to the identified queue; and handling each of the received queue usage requests by, verifying that the requested queue operation for the queue usage request is allowed by the subscription associated with the identified queue for the queue usage request; identifying the multiple alternative computing systems associated with the identified queue; and if the requested queue operation is to add a specified data element to the identified queue for the queue usage request, attempting to store a copy of the specified data element in the data storage of at least one of the identified computing systems; and after one of the specified data element copies is successfully stored in the data storage of an identified computing system, notifying the application program from which the queue usage request was received that the requested queue operation succeeded.