Interoperability on the Internet via the use of Agent Technologies

Jeffrey Altman

Department of Computer Science

Columbia University

November 21, 1995

The Problem

A recurring problem throughout the history of computer usage has been how to guarantee that information generated by one user (or program) will usable by another. The problem exists at all levels of the software hierarchy from differences in byte order representation to character-set translations to high level data formats for spreadsheets or real-time multimedia data formats. The problem exacerbated by the fact that it is impossible to set a specific format or data type which can or would be used by everybody.

As the inter-networking of desktop computers becomes common place, and as the World Wide Web becomes the foundation upon which a new mass media will be built, it becomes imperative for computer scientists to solve this basic Interoperability issue. Otherwise, huge quantities of information which is created and distributed in electronic form will either (a) never be able to be viewed by a large number of users; or (b) will be lost as data formats change over time with the development of improved software application packages.

Languages, such as Java, attempt to solve the problem by stating that all programs should be written to a common byte code language which will be executed by a common virtual machine. The problem is that these attempts require the virtual machine to pre-exist on all target platforms and they assume that the virtual machine was designed to handle all of the input and output metaphors and devices which will be created in the future. The reality is that distributing a virtual machine based on byte codes is little better than implementing a Microsoft Windows interpreter on every platform. In both cases there becomes a small subset of all possible programs which can truly be considered to be portable and interoperable.

Software designers create new operating systems, user interfaces, software applications, and data formats because they believe that they have uncovered a better way of doing things than their predecessors. To ensure interoperability with the largest number of systems, Java requires that programmers restrict themselves to the lowest common denominator of system features. The reality of competition has shown that to be a leading edge software producer means not limiting oneself to the lowest common denominator. Hence the HTML 3.0 extension wars now taking place in the Web Browser market. While Java and similar languages provide the ability to escape the limitations of the virtual machine by using native methods, they do not provide any tools to manage the different implementations of native code for individual platforms. In fact, it can be readily seen that once native methods start to be used the questions of software interoperability and distribution become just as complex as if Java was never being used.

Continuing with the model of the Web. If an HTML document contains a link to an external data type (text file, 2-D bit map, 3-D world space, real time video feed, ...), how can we guarantee that the user can view it? The answer is you can't. It is impossible to know whether or not the system receiving the external data knows how to process it. Browsers handle this situation by allowing users to install viewers. A viewer must be retrieved and installed for each data type the user would like to be able to view.

What if there was a way for the viewer to be transported with the data, installed on the system and executed? Then assuming a viewer was available for the system the user is on, the user would always be able to view the data. The viewer would be an agent.

Professor Yechiam Yemini (Dept. of Computer Science, Columbia University) has developed agent technologies to manage the distribution, installation and execution. His techniques have been applied to many areas of network management where software programs need to be distributed and executed on an as needed basis.

By extending his architecture to include platform identification it should be possible to successfully address the issue of software interoperability on the Information Superhighway.

The Proposal

Implement extensions to agent distribution protocol to manage platform identification.

Implement distribution methods on one or more operating system platforms.

Demonstrate techniques by distributing data and executable code for various data types including text, 2-D bit maps, and MPEG motion pictures.

If time allows, integrate agent distribution mechanisms into a pre-existing browser.

If time allows, integrate techniques with John R. Smith's "Content based image retrieval system."