Next: Low-level Lisp interface
Up: A Distributed LISP-STAT Environment
Previous: Distributed Lisp
We have investigated a number of different communications models
for use in our prototype system. To promote interoperability
of components, we anticipate that more than one of these would
be supported.
The following models have been examined in detail,
by building simple implementations and comparing them;
we are still evaluating CORBA (the Common Object Request Broker
Architecture), and the emerging MPI (Message Passing
Interface) standard.
-
RPC or Remote Procedure Call, offers a strict client-server model,
i.e. a server publishes the availability of a service and remote clients
can then make procedure calls to the server. RPC follows a well
defined standard, and has the advantage that it is machine independent
and provides a consistent programming interface which, at its highest
level, resembles the familiar procedure call model. The RPC model is
very strict (the client supplies some data, the server processes it and
sends a reply, the transaction terminates) and although it can be relaxed,
it is not designed to work with processes which are to behave as both
clients and servers.
-
Unix sockets provide a mechanism for two processes to
communicate freely in a bi-directional manner. It requires that a
process first set up a known connection point, then act like a server,
accepting connections from client processes. Once communications are
established, two processes can communicate freely; the connection
may be transitory or it may persist for a number of exchanges.
Sockets provide independence from the details of particular networking
technologies.
-
TLI or Transport Level Interface, provides a similar model to
sockets, but it complies with OSI standards. The programming
interface is more sophisticated than sockets and can lead to better
engineered solutions. Although TLI is set to replace sockets on
UNIX machines, the socket interface is only just becoming
widely available on PCs.
-
PVM or Parallel Virtual Machine aims to harness a collection of
heterogeneous machine into a large distributed-memory computer. It
provides a message handling system, as well as message parsing,
process spawning and configuration library calls. It has emerged
as a standard within the parallel processing community.
-
ToolTalk aims to provide an interface to allow tools (such
as editors, compilers, mailers etc) to be aware of what the user
is doing in the environment. Tooltalk provides an announcement-like
mechanism, as well as point to point communications.
Initially we will build our message passing model on sockets
for our prototype; by careful design, the model will migrate to
some of the other standard interfaces. The socket model
provides a lightweight set of communication primitives, hence
is an easy interface to implement, and its simplicity means that we
can investigate and implement other communication strategies on top
of this interface. Implementations of the socket library exist for
both Macs and PCs, and a number of internet tools are based on this
interface.
Next: Low-level Lisp interface
Up: A Distributed LISP-STAT Environment
Previous: Distributed Lisp
Danius Michaelides
6/1/1998