It is understood that the terms client and server, frequently used in the following, describe a hardware entity, e.g. a computer, microprocessor, dedicated network chip, network card as well as a software entity, e.g. a process or program running on a suitable hardware. It is further understood that the terms client and server only apply to a particular transaction. Hardware or software entities can operate in both roles at different times. The terms client and server also refer to a classical transmitter and receiver scenario and in turn one or both of the aforementioned entities may be realized by help of hardware and/or software. It is further understood, a remote procedure call handler is a suitable software or hardware entity inside a server or a client that is handling at least the transmission and reception of call and reply messages, preferably by help of an RPC-protocol.
It is further understood, the term computer system, wherein such a computer system comprises a client and a server, is a suitable hardware entity having a client and a server that communicate via a network. The term computer system should not be restricted to a “classical” scenario where a plurality of standard computers is connected via network.
In such classical system, a client performs a remote procedure operation by sending a call message to the server via the network. The server responds by performing an operation and returns resulting data to the client in a reply message via the network. One way of invoking such an operation at the server is to pack all parameters necessary for the respective operation together into a call message and to transmit them to the server for processing. After performing the operation, the server returns the resulting data to the client in a reply message the same way.
A known specification for a remote procedure call (RPC) protocol is given by R. Srinivasan, “RPC: Remote Procedure Call Protocol Specification”, Version 2, August 1995 (RFC 1831). This specification gives a definition of the call and reply process. Accordingly, a caller, i.e. the client, first sends a call message including all of the procedure's parameters to the server. Subsequently, the client waits (interrupts) for a reply message including the procedure's results from the server. Once the reply message is received, the results of the procedure are extracted and the client's execution is resumed. On the server side, the RPC process is dormant, awaiting the arrival of new call messages. In case such a call message arrives, the server starts extracting the procedure's parameters, computes the results and again sends a reply message; subsequently awaiting the next call message. According to this mode of operation, only one of the two processes, i.e. the server or the client process is active at any given time. This mode of operation is called a synchronous mode.
A further mode of operation is known from U.S. Pat. No. 6,321,374 B1, it should be referred to as an asynchronous mode. Accordingly, a plurality of call messages is packed together in order to form a collected call message, i.e. a plurality of call messages that is sent together from the client to the server using the RPC protocol. Such a collected call is advantageous for applications that do not require an immediate response. Several call messages are collected at the client until a call message needing an immediate response is generated. At that point, the collection of call messages is packed together and transmitted to the server. According to this technique, a substantial reduction in the number of requests is achieved. Further, the necessary overhead, generated by the network protocol for each data package sent via the network, is reduced due to the fact that several calls are packed together into a single data packet. Since the strict requirement is given up that only one of the two processes, i.e. the server or the client process, is active at any given time, the aforementioned mode of operation is called asynchronous.
However, the synchronous as well as the asynchronous mode apply standard solutions with respect to erroneous transmitted call and reply messages; e.g. known time-out or retransmission methods are used. Erroneous transmitted call and reply messages is understood in this context as messages received with errors at the receiving part, regardless if the error is caused by the sender, the transmission medium or the receiver.