Arpc
D. Heimbigner
Description
Arpc (pronounced ``arp-cee'') is an extension to the publically
available ONC RPC/XDR system version 4.0 (from Sun Microsystems).
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:
- 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.
- 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.
- 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.
- Exception Returns:
As somewhat of an experiment, Arpc allows a service
to return a reply as an exception rather than a normal
return value.
- 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 ONC 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 ONC RPC/XDR 4.0 was used. Additionally, programs
using ONC 4.0 can usually correctly communicate with programs that use
Arpc.
By itself, Arpc is useful as an improvement over standard ONC RPC/XDR.
It is intended, however to be used as part of the
Q/CORBA system, which adds significant
capability on top of Arpc and which provides significant Ada support
as well.
The file doc/arpc.tex contains a more detailed description of
the capabilities of Arpc.
Retrieving Arpc
- Source:
- ftp://ftp.cs.colorado.edu/pub/cs/distribs/arcadia/Arpc403.3f.tar.Z
- Information file:
- ftp://ftp.cs.colorado.edu/pub/cs/distribs/arcadia/Arpc403.3f.txt
Installation
The file INSTALL provides detailed installation instructions.
Changes
See the appendix in the file doc/arpc.tex for a detailed
change history.
©1998 Software Engineering Research Laboratory (SERL)
Last updated: 02-15-98