INRIA Sophia Antipolis
Sophtalk is a set of tools that enable one to program the interaction between objects following an event model of communication. Sophtalk is an autonomous LeLisp system that provides facilities for programming communication between objects and processes. The system is composed of three packages: stnode, a multicast communication mechanism; stio an extension of the standard LeLisp asynchronous and synchronous i/o mechanisms; and stservice, a mechanism offering interprocess communication at the shell and LeLisp levels.
The stnode package offers a multicast communication mechanism. System objects, called stnodes, emit messages when significant events occur. Messages circulate in a network of stnodes. An stnode is a kind of transmitter/receiver whose type is distinguished by its input and output ports. Other objects or tools are encapsulated within stnodes. The input ports correspond to messages that the stnode, and therefore its enclosed tool, can receive; the output ports correspond to messages that can be emitted. When a message is receivced an action associated to the input port is triggered. Note that when a message is emitted, the tool does not know who, if anyone, is listening. Stnodes may also request or receive information from other processes by making use of the stio and stservice packages.
The stio package extends the standard LeLisp synchronous and asynchronous input/output mechanisms. An stio is an abstract channel that may receive data both asynchronously from sources outside of the LeLisp process and synchronously as an ordinary LeLisp input or output channel.
The stservice package establishes interprocess communication at the shell and LeLisp levels (based on TCP/IP sockets). With this package, one may declare a process to be a server of information. Any number of client processes may be connected to the server after which the two communicate over a two-way Unix socket.