Hi,
Is there any information available on the courier remote procedure calls ?
If so, where can I get it ?
Also, what implementations of courier do exist ?
Gert Hulstein, Amsterdam University, The Netherlands.
mcvax!ge...@uvabick.uucp
The Courier Remote Procedure Call protocol (RPC) was developed by
Xerox as part of their XNS protocol suite. Two years ago, they were
selling documentation packets which contained all the Xerox protocols
(currently published for external consumption) including the Interpress
printing protocol. Below is the contact I had in ordering these manuals:
Dennis Frahmann
Manager, Protocols Marketing
Xerox Corp.
Office Systems Division
2100 Geng Rd.
Palo Alto, California 94303
I am unsure of any commercial implementation of Courier. Network Research
Corp.'s Fusion products may have implemented Courier, but I'm not sure. XNS
has lost favor among the network integrators due to the need to communicate with
government agencies (running TCP/IP), the overwheming availability of TCP/IP in
Berkeley Unix implementations, and the incomplete (read: non existence) of
common applications for XNS.
Its too bad. Courier and Clearinghouse were some of the finest higher level
protocols to exist when they were published. Bill Joy of Sun Microsystems liked
them so much, he rewrote them for TCP/IP and called them RPC and YellowPages,
respectfully. Oh well, protocols marchs forward.
-- Mark Scherfling
GTE Labs
>Courier and Clearinghouse were some of the finest higher level
>protocols to exist when they were published. Bill Joy of Sun Microsystems
>liked them so much, he rewrote them for TCP/IP and called them RPC and
>YellowPages, respectfully.
Well, aside from the fact that:
1) Bill didn't write them single-handedly (for example,
the manager of the NFS group here, and one of the developers
of Sun RPC and RPC-based services, is Bob Lyon - yes, the same
Bob Lyon listed as one of the authors of the clearinghouse at
the end of Oppen and Dalal's TOOIS paper).
2) They weren't "rewritten for TCP/IP"; Sun RPC has an
object-oriented interface to the underlying transport protocol
(you provide an interface module to the transport in question -
which need not be a network protocol, but could be
something like shared memory - that provides a certain set of
operations) and has been put on top of, e.g., the ISO connectionless
transport protocol (and could probably be put on top of, e.g.,
SPP). Also, Courier performs the functions of RPC and XDR
combined, not just RPC.
3) The Yellow Pages is a lower-level remote database access
protocol than Clearinghouse. The ranges of the mappings it
performs consist of uninterpreted data, not property lists.
It does not support queries like Clearinghouse's
"LookupGeneric", because it doesn't interpret those data; you
can look up something by name, or you can get every entry in
a map and do whatever kind of lookup you want, but you can't
say "give me all the objects that match this wildcarded name
and that have thus-and-such a property." It also has no
mechanism for updating mappings.
I guess this isn't *too* far off (other than the fact that the proper
term is "respectively", not "respectfully").
If you only have a few widely-spaced data points, be careful when
attempting interpolation; it looks pretty silly when you try to use
linear interpolation on data points taken from a sine wave....
It should first be noted that very few compatible implementations of Courier
and the Xerox applications protocols that use it exist. Most of the Xerox
implementations (for XDE, ViewPoint, Cedar, and Interlisp) interoperate, but
even there there are some incompatibilities. 3Com has an implementation
which interoperates at the Courier level, but not at the applications level;
for example, they use different Clearinghouse properties. Last I checked,
Fusion's XNS protocol suite was Xerox-compatible at the SPP level but not at
the Courier level.
One non-commercial, but publicly available, implementation of the Courier
protocols is the Cornell xnscourier suite distributed as part of the
"user contributed" software for 4.3BSD. It is designed to interoperate with
Xerox implementations, especially with the XDE implementation.
The suite includes a stub compiler which takes descriptions in the
Courier language and generates C client and server stubs, a fairly
large runtime library for common dataconversion and applications
problems (e.g. almost all Xerox uses of Courier require dynamic binding
to a network address based on a Clearinghouse name, so the library
includes routines that find a Clearinghouse, use it to translate from a
string to network address, generate the appropriate authentication,
etc.). Also, the library includes sample applications using some of
the public Xerox protocols layered on Courier: remote terminal
emulation client and server (GAP protocol), file transfer client
(Filing protocol; a file transfer server is coming soon), printing
client so you can send your Interpress masters to a Xerox printer, and
so on.
The package runs on 4.3BSD on VAXes and UTX 2.0 on Goulds. I have not
tested it on SUNs, but believe that it would run there with little
problem (requiring currently undistributed SUN XNS kernel support).
For further information on the UNIX Courier package, send me mail.
j...@systems.cs.cornell.edu
j...@cornell.arpa
cornell!jqj
j...@crnlcs.bitnet