Augmented Remote Procedure Call facility
languages/ada/distproc/arpc: File Name Size --------- ---- README 2,813 arpc.zip 303,252 Totals ============== ============== 2 Files 306,065
ASSET_A_513: ARPC - Augmented Remote Procedure Call Arpc (pronounced ``arp-cee'') is an extension to the publically available Sun RPC/XDR system version 4.0. It was developed as part of the DARPA sponsored Arcadia environments project. Arpc provides a number of capabilities not available in the normal Sun RPC packages. These capabilities include: 1. Combined Client Server Support: Arpc makes it relatively easy to define services that can simultaneously service requests from clients plus make client calls to other services. Additionally, one can have a single process act as multiple servers in that it can respond to multiple program numbers. 2. Peer Communication Style: The current communication paradigm in Sun RPC is (not surprisingly) remote procedure call in which the client calls the server and the server replies to that client request. A peer communication protocol supports a message passing style in which two peer processes send streams of messages in each direction. 3. Request Acknowledgement: In the current RPC protocol, if the client does not receive a reply in some period of time, it may retransmit the request, or timeout and return an error to the client. Unfortunately, some requests in the server may take very long periods of time. Arpc allows a service to return an acknowledgement to a client indicating that a request was received. When the client sees this, it can suppress retransmission and extend the timeout period. 4. Exception Returns: As somewhat of an experiment, Arpc allows a service to return a reply as an exception rather than a normal return value. 5. Decomposition of Functionality: The basic operations needed to accomplish RPC and message passing have been broken out into discrete operations. This means that Arpc can, with a modest amount of work. be embedded into almost any programming language that can call C code. In particular, Arpc can be made to operate in languages such as Ada that are threaded, but that do not necessarily use any standard threading package as part of their runtime. The Q system (see below) demonstrates this for Ada by making Arpc functionality available for Ada programs. In spite of these changes, Arpc is source compatible with Sun RPC/XDR. That is, one need only recompile RPC applications (clients and servers) with the Arpc headers and library and the application should operate exactly the same as if Sun RPC/XDR 4.0 was used. Additionally, programs using the Sun 4.0 can usually correctly communicate with programs that use Arpc. By itself, Arpc is useful as an improvement over standard Sun RPC/XDR. It is intended, however to be used as part of the Arcadia Q system, which adds significant capability on top of Arpc and which provides significant Ada support as well.
03 August 1993 402.3 Release to ASSET 14 January 1994 402.3 Initial release to the PAL
This prologue must be included in all copies of this software. Restrictions on use or distribution: NONE
This software and its documentation are provided "AS IS" and without any expressed or implied warranties whatsoever. No warranties as to performance, merchantability, or fitness for a particular purpose exist. The user is advised to test the software thoroughly before relying on it. The user must assume the entire risk and liability of using this software. In no event shall any person or organization of people be held responsible for any direct, indirect, consequential or inconsequential damages or lost profits.