System and method for providing highly available processing of asynchronous requests using distributed request and response queues and a service processor
First Claim
1. A system comprising:
- a client that invokes an asynchronous service by supplying a request document that defines the asynchronous service invocation and a response listener to handle a response to the asynchronous service invocation;
a distributed input queue including multiple physical queues, wherein upon receiving the request document, a service request object is instantiated based on the request document and placed in the distributed input queue, wherein the service request object identifies a destination to which the response listener is pinned;
a service processor to pull the service request object from the distributed input queue and invoke the service, wherein the service processor receives a response to the service invocation;
a distributed output queue to receive and store the response from the service processor, the distributed output queue including more than one physical queue, wherein the service processor uses the identification in the service request object to determine the physical queue to receive the response.
1 Assignment
0 Petitions
Accused Products
Abstract
Highly-available processing of an asynchronous request can be accomplished in a single transaction. A distributed request queue receives a service request from a client application or application view client. A service processor is deployed on each node of a cluster containing the distributed request queue. A service processor pulls the service request from the request queue and invokes the service for the request, such as to an enterprise information system. If that service processor fails, another service processor in the cluster can service the request. The service processor receives a service response from the invoked service and forwards the service response to a distributed response queue. The distributed response queue holds the service response until the response is retrieved for the client application.
147 Citations
18 Claims
-
1. A system comprising:
-
a client that invokes an asynchronous service by supplying a request document that defines the asynchronous service invocation and a response listener to handle a response to the asynchronous service invocation; a distributed input queue including multiple physical queues, wherein upon receiving the request document, a service request object is instantiated based on the request document and placed in the distributed input queue, wherein the service request object identifies a destination to which the response listener is pinned; a service processor to pull the service request object from the distributed input queue and invoke the service, wherein the service processor receives a response to the service invocation; a distributed output queue to receive and store the response from the service processor, the distributed output queue including more than one physical queue, wherein the service processor uses the identification in the service request object to determine the physical queue to receive the response. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for highly available processing of asynchronous requests, said method comprising:
-
receiving, from a client, a request document that defines an asynchronous service invocation and a response listener to handle a response to the asynchronous service invocation; instantiating a service request object based on the request document and storing the service request object into a distributed input queue that includes multiple physical queues, wherein the service request object identifies a destination to which the response listener is pinned; pulling, by a service processor, the service request object from the distributed input queue and invoking the service by the service processor, wherein the service processor receives a response to the service invocation; receiving the response from the service processor and storing the response into a distributed output queue, the distributed output queue including more than one physical queue, wherein the service processor uses the identification in the service request object to determine the physical queue to receive the response. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification