This research site is dedicated to promoting the emergence of a class of interoperating instant messaging systems that are highly distributed and administered by a large number of independent organizations. To further this goal, a protocol based on an Email-like model of messaging has been defined and implemented.
Several years ago, this work was performed as part of The MITRE Corporation's support for the IETF Instant Messaging and Presence Protocol (IMPP) working group. As part of an effort to share the experience we gained while developing the protocol, this site makes available Open Source software that provides lightweight distributed instant messaging and presence service, and makes available a description of the protocol used by the software. The sources were published with the hope that they would aid the effort to produce a reference implementation of the IETF IMPP when a protocol is adopted, however, this protocol is incompatible with all current IETF drafts.
Instant messaging is designed to support message exchange at a rate that supports chat-like conversations. An instant message is delivered quickly to a recipient if the recipient is listening for messages, otherwise the message is dropped and the sender is informed of the delivery failure.
A user of an instant messaging service can employ a presence service to keep track of the listening status of a set of users. By consulting this service, a user has a good chance of predicting if a message will get to its recipient.
This implementation of instant messaging is designed so that the service can be provided by a set of lightweight distributed servers spread across many administrative domains. The vision is a service provided by a large number of sites much in the way that electronic mail service is provided today.
The protocol is similar to email protocols. Users are identified by an Instant Message Address (IMA), which has the same syntax as an Internet email address. A message is delivered by connecting to the user's home server. A future version of the protocol will allow the use of digital signatures to authenticate the originator of a message transported by this protocol.
Unlike most email systems, a user listening for instant messages remains connected to their home server. This connection is used to deliver messages in a timely fashion. Another difference with email systems is that an instant message is never queued, rather it is dropped if there is any obstacle to immediate delivery. Fundamentally, email is built on one way message passing, while most of this protocol is built on request-reply pairs.
The protocol is built on the transfer of one simple type of object represented as an XML document. The simplicity of the wire protocol gives it its name, which is abbreviated as the SIMP Protocol. The protocol is designed to allow a simple implementation of this distributed service and thus is called the Simple Instant Messaging and Presence (SIMP) Service.
The client is written in Java and requires the Java 2 Runtime Environment, Standard Edition v1.4 or higher. Java is available from Sun.
Upon start up, the SIMP client displays a buddy window. The buddy window shows the set of users, called buddies, from whom you are receiving presence information. A conversation window is created for each partner in a conversation.
The server is also written in Java and requires the Java 2 Runtime Environment, Standard Edition v1.4 or higher. The server is extremely easy to operate and administer. To install a server, one simply copies some JAR files, specifies some run time parameters in a properties file, and creates a file containing user name and password information.
A standard HTTP 1.1 web server can be used to distribute the client to users. The SIMP software package includes a script that creates a ZIP file containing the client. The web server can also be used to automatically distribute updates to the client.
Copyright © 2000 The MITRE Corporation. All rights reserved.
Information in this document is subject to change without notice.
Other products and companies referred to herein are trademarks or registered
trademarks of their respective companies or mark holders.