[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
remote process communication
Date: Thu, 08 Sep 88 14:18:52 EDT
From: bds@mitre-bedford.ARPA
We need to make 2 or more Symbolics 36xx pass messages back
and forth between processes. More explicitly, we want to run
a database on one machine and 1 or more interfaces on other machines.
Getting processes to talk to each other on the same machine is no
problem. Can anyone please tell me how to get them to talk to
each other when they're on different machines? Thanks.
This isn't hard; you just have to write some network services. This is
somewhat documented, but there are LOTS of examples of existing services
to look at.
However, if you've never written any sort of network program there are a
few caveats:
o - eq-ness: With just one mahchine, you can pass objects through a
cell or a queue. Printing and reading will destroy that
eq-ness unless you do some sort of interning.
o - Printability: Some things (like processes) can't be printed, and
hence can't be transferred without more work.
o - Overhead: The easiest way to write such a system is to open a
stream to the remote machine and just PRIN1 and READ from it.
However if you're only transferring small amounts of data (I
presume from your description that you're doing some sort of
transaction processing), you probably want to use a datagram
service, which has much lower overhead.
o - Deadlock: Define an out-of-band protocol, or use an extra process
at one end, or otherwise use some method of
resynchronisation. Otherwise you will allow the possibility
of both machines, say, waiting for the other to speak. The
layer upon which NFILE was written, BYTE-STREAM-WITH-MARK,
implements such a protocol.
The lisp machine's network facilities are simple enough that I doubt
that it would be worth going out and reading up on network protocols.
However if you are doing transactions than you might just want to buy
the RPC code that ILA sells as part of NFS.
good luck.