RPC Technologies

Philip Earnhardt pae at athena.mit.edu
Wed Jun 5 04:40:00 AEST 1991


There have been three ideas about RPC, asynchronous processing, and
multi-threaded systems that have been somewhat lost in the recent discussion:

1. Asynchronous processing is a separate issue from RPC.  Non-distributed
   applications have and will continue to use asynchronous processing.

2. One very powerful way to use RPC technology is to take an existing
   non-distributed application and use an RPC Toolkit to make it a distributed
   application.

If you want to take an existing standalone application that uses asynchronous
processing and make your asynchronous call be a remote procedure call, we feel
the most straightforward thing to do is an Asynchronous RPC call. Our
asynchronous customization provides the three things you need to do that: a
routine to invoke the remote procedure, a routine to check the status of the
procedure, and a routine to get the results of the remote procedure. There
will be existing analogues to these routines in your non-distributed
application.

Alternatively, if you want to create a multi-threaded application for doing
the remote procedure call, fine. The Netwise RPC Tool will work correctly in
multi-threaded environments. My personal opinion is that multi-threading is
the wrong tool for the job (for a variety of reasons--see below). However, it
shouldn't matter what I think--the decision should be left to the designer:

3. Asynchronous processing and multiple threads are both tools that are
   available to the developer of distributed application. Whenever possible,
   both of these methods should be available to the designer of the
   distributed application. Give the designer the choice.

My main objection to the NCS philosophy is demonstrated in Mishkin's last
message <4bc8788d.20b6d at apollo.HP.COM> :

> Asynchrony is hard to understand.  All the more reason to have a single
> abstraction -- the process/thread -- to deal with it.  

Mishkin thinks Asynchrony is hard to understand; it is not available in NCS.
Why not give the designer the choice?

The July 9, 1990 issue of UNIX Today! contains the OSF DCE Rationale and
Netwise's response to it. Hopefully, these discussions about Asynchronous RPC
will give some insight into the customization issue discussed there.




More information about the Comp.sys.sun mailing list