Coordinating resources using a volatile network intermediary
First Claim
1. In a computer architecture including a communication medium, an intermediary resource manager, and an application with a plurality of consumers that consume messages from the communication medium, the intermediary resource manager situated between the application and the communication medium, the application supporting a state coordination pattern to coordinate state transitions between the application and accessible communication mediums, wherein the communication medium does not support the state coordination pattern of the application, a method for coordinating state between the communication medium and the application based on the state coordination pattern, notwithstanding that the communication medium does not support the state coordination pattern, the method comprising:
- receiving a message request from a consumer in the plurality of consumers, wherein the message request is requesting a message from the communication medium through the intermediary resource manager, for processing;
the intermediary resource manager identifying an available message available at the communication medium;
an act of the intermediary resource manager implementing at least part of the state coordination pattern to facilitate processing of the available message, wherein the intermediary resource manager including a message list which is a temporary queue listing enumerated message IDs for messages, wherein the intermediary resource manager including a consumer list which is a temporary queue listing competing consumers for messages, wherein the intermediary resource manager including a lock table comprising corresponding message IDs and consumer IDs, and wherein the intermediary resource manager enumerates the message list to find a message that is not present in the lock table;
the intermediary resource manager implementing the state coordination pattern on behalf of the communication medium to coordinate state between the application and the communication medium, the intermediary resource manager appearing to the consumer as the communication medium, wherein the intermediary resource manager provides an implementation of the state coordination pattern for the application and manipulates the state of the communication medium which does not support the state coordination pattern of the application such that the states of the application and the communication medium are coordinated as if the communication medium supported the state coordination pattern directly despite that the communication medium does not support the state coordination pattern;
the intermediary resource manager receiving a signal from the requesting consumer indicating the results of an attempt to update application state based on the contents of the available message;
an act of determining what the corresponding communication medium state is to be based on and in response to the received signal indicating the results of attempting to update the application state; and
an act of the intermediary resource manager implementing at least a second part of the state coordination pattern on behalf of the communication medium to coordinate the corresponding communication medium state with the application state.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for coordinating resources using a volatile network intermediary. Embodiments provide a mechanism for an network intermediary to facilitate a state coordination pattern between an application and a communication medium when the communication medium does not support the state coordination pattern. In some embodiments, receiving applications can make use of this network intermediary by changing the receive location. However, the receiving application may not be able to distinguish the network intermediary from a native implementation of the state coordination pattern. Further, the network intermediary does not require deployment of a persistent or durable store to coordinate state between receiving applications and the original communication medium.
-
Citations
20 Claims
-
1. In a computer architecture including a communication medium, an intermediary resource manager, and an application with a plurality of consumers that consume messages from the communication medium, the intermediary resource manager situated between the application and the communication medium, the application supporting a state coordination pattern to coordinate state transitions between the application and accessible communication mediums, wherein the communication medium does not support the state coordination pattern of the application, a method for coordinating state between the communication medium and the application based on the state coordination pattern, notwithstanding that the communication medium does not support the state coordination pattern, the method comprising:
-
receiving a message request from a consumer in the plurality of consumers, wherein the message request is requesting a message from the communication medium through the intermediary resource manager, for processing; the intermediary resource manager identifying an available message available at the communication medium; an act of the intermediary resource manager implementing at least part of the state coordination pattern to facilitate processing of the available message, wherein the intermediary resource manager including a message list which is a temporary queue listing enumerated message IDs for messages, wherein the intermediary resource manager including a consumer list which is a temporary queue listing competing consumers for messages, wherein the intermediary resource manager including a lock table comprising corresponding message IDs and consumer IDs, and wherein the intermediary resource manager enumerates the message list to find a message that is not present in the lock table; the intermediary resource manager implementing the state coordination pattern on behalf of the communication medium to coordinate state between the application and the communication medium, the intermediary resource manager appearing to the consumer as the communication medium, wherein the intermediary resource manager provides an implementation of the state coordination pattern for the application and manipulates the state of the communication medium which does not support the state coordination pattern of the application such that the states of the application and the communication medium are coordinated as if the communication medium supported the state coordination pattern directly despite that the communication medium does not support the state coordination pattern; the intermediary resource manager receiving a signal from the requesting consumer indicating the results of an attempt to update application state based on the contents of the available message; an act of determining what the corresponding communication medium state is to be based on and in response to the received signal indicating the results of attempting to update the application state; and an act of the intermediary resource manager implementing at least a second part of the state coordination pattern on behalf of the communication medium to coordinate the corresponding communication medium state with the application state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer program product for use in a computer architecture including a communication medium, a resource manager, and an application with a plurality of consumers that consume messages from the communication medium, the computer program product for implementing a method for coordinating state between the communication medium and the application, wherein the communication medium does not support a state coordination pattern of the application, the computer program product comprising one or more computer readable physical storage media having stored thereon computer-executable instructions that, when executed at a processor, cause the computer architecture to perform the method, including the following:
-
receive a message request from a consumer in the plurality of consumers, wherein the message request is requesting a message from the communication medium the resource manager, for processing; the resource manager accessing the message list of one or more messages of the communication medium to identify an available message; access the contents of the available message; lock the available message to prevent further access to the contents of the available message; the resource manager providing the accessed message contents to the requesting consumer, wherein the resource manager appears to the consumer as the communication medium, wherein the resource manager including a message list which is a temporary queue listing enumerated message IDs for messages, wherein the resource manager including a consumer list which is a temporary queue listing competing consumers for messages, wherein the resource manager including a lock table comprising corresponding message IDs and consumer IDs, and wherein the resource manager enumerates the message list to find a message that is not present in the lock table; wherein the resource manager provides an implementation of the state coordination pattern for the application and manipulates a state of the communication medium which does not support the state coordination pattern of the application such that the states of the application and the communication medium are coordinated as if the communication medium supported the state coordination pattern directly despite that the communication medium does not support the state coordination pattern; receive a signal from the requesting consumer indicating the results of an attempt to update application state based on the contents of the message; and at least unlock the available message in response to the received signal. - View Dependent Claims (17, 18, 19)
-
-
20. A computer system, the computer system including:
-
one or more processors; system memory; one or more computer storage media have stored thereon computer-executable instructions representing a communication medium, an application, and an intermediary resource manager situated between the communication medium and the application, wherein the communication medium is configured to; receive messages; receive signals to delete messages from the intermediary resource manager; and delete messages based on and in response to delete signals;
wherein the application includes a plurality of consumers that consume messages from the communication medium, each consumer configured to;request messages from the communication medium; receive the contents of messages; attempt to update application state based on the contents of messages; and signal results of attempted application state updates to the communication medium; and wherein the intermediary resource manager is configured to appear to the plurality of consumers as the communication medium, wherein the intermediary resource manager including a message list which is a temporary queue listing enumerated message IDs for messages, wherein the intermediary resource manager including a consumer list which is a temporary queue listing competing consumers for messages, wherein the intermediary resource manager including a lock table comprising corresponding message IDs and consumer IDs, and wherein the intermediary resource manager enumerates the message list to find a message that is not present in the lock table; the intermediary resource manager providing an implementation of a state coordination pattern for the application and manipulating a state of the communication medium which does not support the state coordination pattern of the application such that states of the application and the communication medium are coordinated as if the communication medium supported the state coordination pattern directly despite that the communication medium does not support the state coordination pattern, the intermediary resource manager also configured to; receive requests for messages from each consumer in the plurality of consumers; access a message list of one or more messages of the communication medium to identify available messages; access the contents of available messages; lock messages to prevent further access to the contents of the messages; provide accessed message contents to consumers; receive signals from consumers indicating the results of an attempt to update application state based on the contents of the message; unlock messages; and signal the communication medium to delete messages.
-
Specification