Routing of pooled messages via an intermediary
First Claim
1. One or more physical computer-readable storage devices having stored thereon one or more computer-executable instructions that are structured such that, when executed by one or more processors of a computing system, cause the computing system to instantiate a message forwarding intermediary in one or more memories of the computing system, the message forwarding intermediary configured to do the following with respect to a message in a forward-end message pool;
- an act of requesting a message from the forward-end message pool using a coordination pattern that causes the forward-end message pool to provide a non-destructive view of the contents of the requested message to the message forwarding intermediary and to lock the requested message in the forward-end message pool for exclusive access by the message forwarding intermediary until the message is once again unlocked;
an act of evaluating the message contents to identify that, of a plurality of service instances, a particular service instance is to process the message contents;
an act of dispatching the message contents towards a backward-end message pool corresponding to the particular service instance; and
an act of signaling the forward-end message pool as to a disposition of the message based on determined results of processing of the message contents.
2 Assignments
0 Petitions
Accused Products
Abstract
Message intermediation for multiple service instances, while allowing the service instance to control whether messages are processed under a transaction. The message intermediator chooses to dispatch messages among different backend service instances based on any routing rules. The message intermediator performs a peek-lock of message from a forward-end queue, and assigns the message to a service instance. The message is provided into a backward-end queue specific to the assigned service instance. The service instance may then process the message, perhaps under a transaction created at the service instance. Upon completion of processing, the message is deleted in the back-end queue, which causes the forward-end queue to delete the message under the same transaction created by the service instance. Whether or not this deletion at the forward-end is committed or rolled back depends on whether the transaction created at the service instance is committed or rolled back.
92 Citations
25 Claims
-
1. One or more physical computer-readable storage devices having stored thereon one or more computer-executable instructions that are structured such that, when executed by one or more processors of a computing system, cause the computing system to instantiate a message forwarding intermediary in one or more memories of the computing system, the message forwarding intermediary configured to do the following with respect to a message in a forward-end message pool;
-
an act of requesting a message from the forward-end message pool using a coordination pattern that causes the forward-end message pool to provide a non-destructive view of the contents of the requested message to the message forwarding intermediary and to lock the requested message in the forward-end message pool for exclusive access by the message forwarding intermediary until the message is once again unlocked; an act of evaluating the message contents to identify that, of a plurality of service instances, a particular service instance is to process the message contents; an act of dispatching the message contents towards a backward-end message pool corresponding to the particular service instance; and an act of signaling the forward-end message pool as to a disposition of the message based on determined results of processing of the message contents. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for a service instance to process a version of a message from a backward-end message pool, the method comprising:
-
an act of a service instance requesting a version of a message from a backward-end message pool using a coordination pattern that causes the backward-end message pool to provide a non-destructive view of the contents of the requested version of the message to the service instance and to lock the requested version of the message in the backward-end message pool for exclusive access by the service instance until the version of the message is once again unlocked, wherein the message also exists in a forward-end message pool, the version of the message in the forward-end message pool having been locked in the forward-end message pool by a message forwarding intermediary requesting the message using the coordination pattern; an act of the service instance processing the message contents; an act of the service instance determining results of the processing of the message contents; and an act of the service instance signaling the backward-end message pool as to the disposition of the version of the message based on the determined results of processing of the contents of the version of the message. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification