Concurrency management component for use by a computer program during the transfer of a message
First Claim
1. In a computer system having a source application program that receives events, a destination application program, and a communication mechanism for sending a message between the source application program and the destination application program, a method comprising the steps of:
- providing a concurrency management mechanism to the source application program that processes events, wherein the source application program provides instructions to the concurrency management mechanism that indicate how to process the events;
sending a message from the source application program to the destination application program using the communication mechanism, wherein the concurrency management mechanism is invoked, the message requesting a reply from the destination application program to the source application program;
while the source application program is waiting for the reply to the message, receiving events by the source application program and processing the received events by the concurrency management mechanism in accordance with the instructions provided by the source application program to ensure that the source application program and the destination application program concurrently operate in a desirable manner; and
receiving the reply to the message from the destination application program after processing the received events.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved mechanism for communicating between computer programs is provided. In a preferred embodiment of the present invention, a computer system has a source computer program, a destination computer program and a communication mechanism for sending a communication from the source computer program to the destination computer program. The communication mechanism contains a concurrency management mechanism for handling events when a communication is pending. The source computer program sends a communication to the destination computer program using the communication mechanism. While the remote communication is pending, the concurrency management mechanism of the preferred embodiment provides concurrency management. The source computer program then receives a reply to the communication from the destination computer program.
-
Citations
27 Claims
-
1. In a computer system having a source application program that receives events, a destination application program, and a communication mechanism for sending a message between the source application program and the destination application program, a method comprising the steps of:
-
providing a concurrency management mechanism to the source application program that processes events, wherein the source application program provides instructions to the concurrency management mechanism that indicate how to process the events; sending a message from the source application program to the destination application program using the communication mechanism, wherein the concurrency management mechanism is invoked, the message requesting a reply from the destination application program to the source application program; while the source application program is waiting for the reply to the message, receiving events by the source application program and processing the received events by the concurrency management mechanism in accordance with the instructions provided by the source application program to ensure that the source application program and the destination application program concurrently operate in a desirable manner; and receiving the reply to the message from the destination application program after processing the received events. - View Dependent Claims (2, 3)
-
-
4. A computer system comprising:
-
a source component for generating a first message and for outputting instructions; a destination component for receiving the first message from the source component; and a communication mechanism for sending the first message from said source component to said destination component and for receiving the instructions from said source component, said communication mechanism comprising; a concurrency management component for executing the instructions received from said source component when a second message is received by said source component from a message source while said communication mechanism is sending the first message to said destination component and before the sending of the first message has completed, the instructions to manage concurrency on behalf of said source component to ensure that said source component and said destination component concurrently operate in a desirable manner.
-
-
5. In a data processing system having a memory for storing computer programs and a communication mechanism for sending a message between the computer programs in the memory, said computer programs including a source computer program and a destination computer program, a method comprising the steps of
providing instructions for processing messages to the communication mechanism; -
sending a first message from the source computer program to the destination computer program via the communication mechanism, the first message including a request for a response to the first message from the destination computer program; and receiving a second message from a message source at the source computer program; determining whether the second message is a response from the destination computer program indicating that the first message was successful; and when the second message is not a response from the destination computer program indicating that the first communication was successful, executing the instructions provided to the communication mechanism by the source computer program to determine how to process the second message. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a computer system containing a calling process, a plurality of remote processes and a communication mechanism, wherein the remote processes are in separate address space from the calling process, each process comprises procedures and each procedure is a plurality of instructions and the calling process can invoke the procedures of a first remote process, said invocation of one procedure of the first remote process being a remote procedure call, and a plurality of procedures being contingency procedures for processing messages received while the calling process is waiting for the remote procedure call to complete, a method for the calling process to invoke the remote procedure call comprising the steps of:
-
providing the contingency procedures to the communication mechanism so that the communication mechanism can process messages received while the calling process is waiting for the remote procedure call to complete; while the calling process is waiting for the remote procedure call to complete, receiving a first message from a second remote process and invoking a first of the contingency procedures in response to receiving the first message; receiving a second message from a computer user and invoking a second of the contingency procedures in response to receiving the second message; and receiving a reply to the remote procedure call, said reply indicating that the remote procedure call was unsuccessful but may be retried and invoking a third of the contingency procedures in response to receiving the reply. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A computer-readable memory device that contains an interface data structure comprising a plurality of entries, the interface data structure for use in sending reply-based messages from a source application program to a destination application program using a communication mechanism in a computer system, the reply-based messages requesting replies from the destination application program to the source application program, the computer system having a concurrency management component that is provided to the source application program and that processes incoming messages by invoking functions contained in the interface data structure, wherein incoming messages are messages received by the source application program while the source application program is waiting to receive a reply from the destination application program to a reply-based message, the interface data structure being registered with the concurrency management component by the source application program, each entry comprising:
a function containing instructions provided by the source application program for use by the concurrency management component to process incoming messages received by the source application program while the source application program is waiting to receive a reply to a reply-based message from the destination application program.
-
21. In a computer system having a source application program, a destination application program, and a communication mechanism for sending a message between the source application program and the destination application program, a method comprising the steps of:
-
providing a concurrency management mechanism to the source application program to prevent the source application program and the destination application program from becoming deadlocked, wherein the source application program provides instructions to the concurrency management mechanism that indicate how to prevent becoming deadlocked; invoking the concurrency management mechanism to send a message from the source application program to the destination application program, wherein the concurrency management mechanism invokes the communication mechanism to send the message to the destination application program, the message requesting a reply from the destination application program to the source application program; while the source application program is waiting for the reply to the message, receiving events by the concurrency management mechanism that are destined for the source application program; and processing the received events by the concurrency management mechanism in accordance with the instructions provided by the source application program to prevent the source application program and the destination application program from becoming deadlocked; and receiving the reply to the message from the destination application program after processing the received events.
-
-
22. In a computer system having a source computer program, a destination computer program, and a communication mechanism for sending messages in the computer system, the messages having types, a first type of the messages requesting replies from the destination computer program to the source computer program, a method comprising the steps of:
-
providing a concurrency management mechanism to the source computer program that processes incoming messages while the reply to a message of the first type is pending and not yet received by the source computer program, wherein incoming messages are a second type of the messages that are received by the source computer program while the reply to a message of the first type is pending; configuring the concurrency management mechanism by the source computer program with functionality to process the incoming messages; invoking the concurrency management mechanism to send one of the messages of the first type from the source computer program to the destination computer program, wherein the concurrency management mechanism invokes the communication mechanism to send the one message to the destination computer program; while the reply to the one message is pending, receiving incoming messages from the communication mechanism by the concurrency management mechanism, wherein the incoming messages are destined for the source computer program; and processing the received incoming messages by the concurrency management mechanism .in accordance with the functionality configured by the source computer program to ensure that the source computer program and the destination computer program concurrently operate in a desirable manner; and receiving the reply to the one message from the destination computer program after processing the received incoming messages. - View Dependent Claims (23)
-
-
24. A computer-readable medium containing instructions for controlling a computer system to transfer messages, the computer system having a source application program that receives events, a destination application program, and a communication mechanism for sending messages between the source application program and the destination application program, by performing the steps of:
-
providing a concurrency management mechanism to the source application program that processes events, wherein the source application program provides instructions to the concurrency management mechanism that indicate how to process the events; sending a message from the source application program to the destination application program using the communication mechanism, wherein the concurrency management mechanism is invoked, the message requesting a reply from the destination application program to the source application program; while the source application program is waiting for the reply to the message, receiving events by the source application program and processing the received events by the concurrency management mechanism in accordance with the instructions provided by the source application program to ensure that the source application program and the destination application program concurrently operate in a desirable manner; and receiving the reply to the message from the destination application program after processing the received events.
-
-
25. A computer-readable medium containing instructions for controlling a computer system to transfer messages, the computer system having a source application program, a destination application program, and a communication mechanism for sending messages between the source application program and the destination application program, by performing the steps of:
-
providing a concurrency management mechanism to the source application program to prevent the source application program and the destination application program from becoming deadlocked, wherein the source application program provides instructions to the concurrency management mechanism that indicate how to avoid becoming deadlocked; invoking the concurrency management mechanism to send a message from the source application program to the destination application program, wherein the concurrency management mechanism invokes the communication mechanism to send the message to the destination application program, the message requesting a reply from the destination application program to the source application program; while the source application program is waiting for the reply to the message, receiving events by the concurrency management mechanism that are destined for the source application program; and processing the received events by the concurrency management mechanism in accordance with the instructions provided by the source application program to prevent the source application program and the destination application program from becoming deadlocked; and receiving the reply to the message from the destination application program after processing the received events.
-
-
26. A computer-readable medium containing instructions for controlling a computer system to transfer messages, the computer system having a source computer program, a destination computer program, and a communication mechanism for transferring the messages in the computer system, the messages having types, a first type of the messages requesting replies from the destination computer program to the source computer program, by performing the steps of:
-
providing a concurrency management mechanism to the source computer program that processes incoming messages while the reply to a message of the first type is pending and not yet received by the source computer program, wherein incoming messages are a second type of the messages that are received by the source application program while the reply to a message of the first type is pending; configuring the concurrency management mechanism by the source computer program with functionality to process the incoming messages; invoking the concurrency management mechanism to send one of the messages of the first type from the source computer program to the destination computer program, wherein the concurrency management mechanism invokes the communication mechanism to send the one message to the destination computer program; while the reply to the one message is pending, receiving incoming messages from the communication mechanism by the concurrency management mechanism, wherein the incoming messages are destined for the source application program; and processing the received incoming messages by the concurrency management mechanism in accordance with the functionality configured by the source computer program to ensure that the source computer program and the destination computer program concurrently operate in a desirable manner; and receiving the reply to the one message from the destination computer program after processing the received events. - View Dependent Claims (27)
-
Specification