[plt-scheme] ipc among mzscheme processes

From: Edwin Zacharias (ehz4 at yahoo.com)
Date: Sun May 11 03:38:03 EDT 2003

I'm writing a basic messaging system to send messages between agents on
different machines.  An agent is similar to a servlet in the PLT web server
except it runs continually in its own thread (concurrent state machine).  It
uses an extendable binary format, but I often send sexp with it to test.

This is basicly what you described except the base message format is language
independant - the header is binary and you specify the language of the data
with an integer.  The full header is:

  to from id language length

Everything is an integer.  Server to server messages are sent from 0 to 0.

It sounds like exactly what you are looking for, so perhaps we could define a
common protocol.  It's not very far yet, but I'd be happy to share code.

On a side note, I'm having a trouble grasping the ways of using modules and
units the proper way.  I've read Mathew Flatt's thesis and the smaller paper on
them, but I don't quite understand how to integrate units with modules.  If
someone could recommend a resource I'd appreciate it.

- Edwin

--- "Neil W. Van Dyke" <neil at neilvandyke.org> wrote:
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> Before I hack up something, is someone already working on a portable IPC
> mechanism for MzScheme programs?
> One agent per MzScheme interpreter, one MzScheme per host OS process.
> Communication across network hosts would be a big bonus.  Must work
> under Unix; Mac and Microsoft would be nice too.
> I'm strongly leaning towards the old standby of spitting sexps over
> TCP/IP sockets (no Unix domain sockets).  Probably one connection per
> message.
> SSL can be used to encrypt when the agents are on different hosts
> Internet, and to authenticate both ends in a portable way.
> Should be implementable in a small library that can be easily coded with
> in agent programs.  Eventually, the agents will probably be modeled as
> concurrent state machines, so the IPC mechanism should allow but not
> require this.
> Better ideas?
> (Rejected: XML-RPC is a ridiculous non-use of XML, and not helpful.
> Microsoft lock-in 'standards' are out.  CORBA implementation is too much
> hassle for my needs.  Talking HTTP among agents is not a bad idea, but
> it's more complexity than necessary with no obvious benefits over
> sexp-spitting.)
> -- 
>                                              http://www.neilvandyke.org/

Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.

Posted on the users mailing list.