[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RPC on Symbolics

    Date: Thu, 8 Aug 1991 15:41 EDT
    From: eyvind%hrp.no@Warbucks.AI.SRI.COM (Eyvind Ness)
    In-Reply-To: Mathew Jones's message of Thu, 8 Aug 91 10:27:44 PDT

    - Thanks, but I think you misunderstand. There is a SYSTEM called RPC
    on my Symbolics too. Unfortunately, it does not contain any of the
    interesting stuff (REGISTERRPC, CALLRPC, XDR conversion etc. etc.) -
    only some Genera-specific *garbage* is present in the current RPC


Genera has a complete RPC/XDR programming substrate, integrated with the
Lisp environment.  It is compliant with RFC#1057 and RFC#1014, and it
works over both the usual network transports (like TCP, UDP, and serial)
and also over the embedding communications interface on the MacIvory.
It is also even used by Genera itself on the UX and MacIvory systems.
Symbolics RPC is documented in "The Remote Procedure Call Facility"
section in the Document Examiner (in the "Networks" book),
and also in the User's Guide for each of the embedded systems.

Under Genera, you don't have to deal with the kinds of details that you
are complaining are "missing."  For example, you don't need to use
"callRPC" to invoke your remote procedures, because you don't deal with
them like they are some special, different kind of functions.
Rather, they are just Lisp functions, and you just invoke them like any
other Lisp function.  The fact that they might be implemented on a remote
machine is transparent to you.

To program Symbolics RPC, you use macros like RPC:DEFINE-REMOTE-ENTRY,
which takes a higher-level description of your remote procedure and its
data types.  The details like coding up the network calling, stub functions,
and XDR routines are automatically written for you by Genera, and what
you get back is a normal Lisp function that you can use in the normal ways.

Symbolics RPC also includes some related facilities in Genera for writing
remote C programs that execute under UNIX or Macintosh, to help you
develop both sides of an RPC application at once.  If your UNIX side was
already written for you, you don't need to bother with these.

The RPC programming environment I have described above is part of a
system called (in 8.1) "RPC Development" that shows up in the herald.