Standards to the rescue!

December 19, 1998

Lisa Rein and Tim Bray

"Initially, we realized that we couldn't get a web connection from the boat," explains Dr. Jonathan Borden, chief scientist for JABR Technologies. "The only thing available was an e-mail connection. So we created the ability to use ASP pages over an SMTP E-mail connection."

Borden created a customized SMTP server capable of conducting JavaScript transactions over the Web, using only open standards. Borden fully integrated the e-mail server with scripting languages such as JavaScript, Python and VBScript in the same way that ASP works with the HTTP protocol.

This ASP over e-mail system is called Mail Server Pages (MSP), and is fully transactional. Developers can convert their existing ASP pages within minutes, and reuse all of their ASP components in the e-mail setting.

"By doing this via 'ASP for e-mail' I can take advantage of the tons of third party ASP components that have already been written for ASP," Borden explains. "For example a paging component that can beep the doctor when a consult comes in, if this is more convenient than e-mail."

"The advantage of e-mail is that it is asynchronous," explains Borden. "We created transactional e-mail queues to provide reliability much the same as Microsoft's Message Queue and Exchange. The advantage is that this uses a fully standard messaging protocol, namely SMTP. This allows truly worldwide transactional messaging."

Mail Server Pages and XMTP

Mail Server Pages enable the various pieces of an e-mail message -- message header fields, message text, and attachments -- to be expressed textually, stored in a database, and then transformed with an XSL stylesheet to create an HTML page. Mail Server Pages (MSP) allow SMTP e-mail messages to be processed by "scripts" in exactly the same way that Microsoft Active Server Pages allow Web pages to be scripted.

The implications of this are multifold. MSP pages can be used in a content management system to collect spur of the moment content from different sources, and assemble an end product using a template, for example.

In order to store the MIME messages within a database, Borden, created XMTP (eXtensible Mail Transaction Protocol), as a means for representing MIME messages using XML documents. XMTP represents an integration of XML and SMTP, enabling MIME messages to be encoded into XML.

Borden's XMTP-enabled server converts the pieces of a MIME e-mail message into an HTML 3.2-compliant web page (via an XMTP document). Borden's XMTP transaction server uses simple SMTP and JavaScript to create a reliable, transactional messaging system. Although the proof-of-concept application is a telemedicine implementation, the core technology of the system is in no way medical-specific. It is a simple asynchronous RPC SMTP/MIME/XML system over HTTP, and the pattern matching rules styling engine is Grove/DSSSL based.

Representing the multipart MIME message in XMTP has many advantages. By default, encoding information in XML ensures that it can be indexed in the database, analyzed and routed accordingly. The XMTP server's base64 encoding of image data enables the binary information to be integrated with the textual content contained in a multipart/related MIME message so it may be expressed within a single document.