As the name MUD-based Environment for Sharing Smalltalk Ideas, Applications, and Help indicates, MESSIAH is based on MUD - Multi-User Dialogs or Multi-Users Dungeons. MUD is a concept that sprung up on computer networks in 1979 and evolved from a multi-user gaming environment into an interesting social phenomenon. This was noticed by social and computer scientists, stimulating research that led to a number of educational and office MUD based environments.
Most existing MUDs implement the multi-user concept as text-based simultaneous network connections which provide access to a shared database of ‘rooms’, ‘exits’, and a variety of other objects. The database and the software are stored on a central server which is accessed over the network by users via their client software. Users manipulate and browse the database as player personalities, interacting with the environment via text commands - manipulating objects, communicating with other players, and moving between rooms via exits that connect them. MUDs thus provide a form of virtual reality which, while lacking sophisticated multimedia aspects in most cases, offers synchronous and asynchronous communication between the players.
The MUD concept is directly relevant to the solution of the problems outlined in the previous section, as well as industrial environments such as automated offices. While most existing MUDs are based on a combination of an relatively simple client program residing at the user’s computer, a network connection, a database, and a server parsing and interpreting users’ commands and accessing the data base, the approach that we chose is more narrow and more general at the same time. In particular, the essence of our solution is that access to MESSIAH is from a ‘head-full’ Smalltalk environment (a Smalltalk environment with a graphical user interface) running on the user’s platform, the server is a ‘head-less’ Smalltalk process with no user interface running somewhere on the network. When a user logs into MESSIAH via his or her head-full Smalltalk session - client software, MESSIAH establishes a connection with the running server process and the user can then start sending messages as shown in Figure 1.
Figure 1: In MESSIAH, users communicate with one another via a server. Communication indicated by
arrows is in the form of executable Smalltalk messages.
The server maintains a queue of connections to the currently logged in user stations and services them in a round-robin fashion. The protocol of communication between clients and the server assumes that all messages are syntactically correct Smalltalk messages. As a consequence, neither the clients nor the server need any additional intelligence beyond that of the built in functionality of the regular Smalltalk environment which is already capable of direct interpretation of all Smalltalk code.
On the foundation of this framework, we are building other layers that will make it possible to allow communication between the client and the server that appears syntactically unrestricted from the perspective of the user. To achieve this, specialized applications - such as mail or help access - will be packaged by the superstructure layer of MESSIAH into Smalltalk messages which are still the expected form of communication by the foundation layer protocol, and the server will then process these messages in the usual way, using its own application layer as the destination classes as shown in Figure 2. The same translation can occur in the opposite direction in communication between the server and the client.
Server runs a ‘headless’ Smalltalk process Client Runs a ‘headfull’ Smalltalk process Client Runs a ‘headfull’ Smalltalk process Client Runs a ‘headfull’ Smalltalk process Client Runs a ‘headfull’ Smalltalk process User User User User
Figure 2: Application layer allows arbitrary form of communication while network communication between
clients and server is in Smalltalk.
Conclusion
In the first phase of our project, our implementation is limited to communication of textual information, resembling most existing MUDs. Its function will thus be limited to mail-like synchronous and asynchronous communication and access to the help system. Communication of other forms will be addressed as the next topic. Sharing of windows containing Smalltalk code will be an interesting problem which we have not addressed so far. The difficulty here is that although two different users share the bulk of the class library, differences in details make one user’s library incompatible with the library of another user thus making some code valid on one user’s platform invalid on another platform.
The state of MESSIAH at the time of this writing is as follows: We have implemented the basic communication tools based on the implementation of sockets in VisualWorks and completed the requirements specification, analysis, and design of MESSIAH. We expect to complete several application layers during the summer.
References
[Tomek 95] I. Tomek: On-line help for VisualWorks, Smalltalk International Users’ Conference, San Jose, CA, July 30 - August 2, 1995.
Foundation layer classes processing Smalltalk communication Application classes responding to Smalltalk messages User interacting with
an application
Application translating interaction to and from Smalltalk
messages Foundation layer classes processing Smalltalk communication User on client machine Headless server Smalltalk messages only over network connection Unrestricted communication