PAL CARD CATALOG ENTRY

SHORT DESCRIPTION

Augmented Remote Procedure Call facility


MOVEMENT WITHIN THE PAL CARD CATALOG
Move to top-level taxonomy
Move to keyword list

ASSET PROFILE

UNIT NAME
ARPC
VERSION
402.3
REVIEW CODE
OK
INET ADDRESS
librarian@source.asset.com
AUTHOR
Dennis Heimbigner
University of Colorado
RIGHTS
Approved for public release; distribution unlimited
COPYRIGHT
1993 Univ of Colorado
DATE CREATED
03 August 1993
DATE RELEASED
14 January 1994
DATE LAST UPDATED
14 January 1994
LOCATION
ASSET
PAL
ENVIRONMENT
Sun
LIMITATIONS
Not documented in PAL database

FILE LISTING

Directory Display


languages/ada/distproc/arpc:
  File Name                 Size
  ---------                 ----
  README                   2,813
  arpc.zip               303,252


Totals
  ==============  ==============
    2 Files              306,065

ABSTRACT

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.


REVISION HISTORY

03 August 1993   402.3   Release to ASSET
14 January 1994  402.3   Initial release to the PAL


RELEASE NOTICE

This prologue must be included in all copies of this software.
Restrictions on use or distribution:  NONE


DISCLAIMER

	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.