Bootstrapping the Web With Existing Technology

A position paper submission for the Joint W3C/OMG Workshop on Distributed Objects and Mobile Code June 24-25, 1996, Boston, Massachusetts.

Charlie Kindel (ckindel@microsoft.com)
Program Manager OLE/COM
Microsoft Corporation
One Microsoft Way, Redmond, WA 98052

Introduction

While the World Wide Web currently enjoys quite a bit of attention, it has many significant shortcomings. Because the Web is the "only game in town" with respect to end user access of content on the Internet many people are willing to overlook these shortcomings. The tendency is to view the core technology of the web as restricted to a single document type (HTML), a single protocol (HTTP), and a single programming language (Java). However, if the Web is to truly become the computing platform of the next decade these shortcomings must be overcome and existing investments must be preserved.

Below is a list of several of the shortcomings of today's Web that must be addressed.

Arbitrary Document Types as First Class Citizens:
Today the Web treats any document type other than HTML as a second class citizen. Clearly HTML has features (notably the ability to specify a hyperlink target) that most application specific document types do not. However, HTML is not a suitable format for all types of documents. Even if a document type includes hyperlinking support today, there is no standard way for that document to seamlessly participate in the user model presented by Web user agents.

Query and search tools on the Web are almost exclusively restricted to HTML or ASCII text documents, further preventing application specific document types from working well on the Web.
Web Metaphor vs. Desktop Metaphor:
The Web user metaphor is based on a flat navigation stack where each target document is presented in a single frame. The traditional desktop computing metaphor, in contrast, is based around a hierarchy (usually rooted in a file system). Both models have their merits. The navigation metaphor is easy for new users to grasp and immediately be productive. The window/hierarchy metaphor is better for experienced users and allows for more flexibility.

These two metaphors are on a collision course. They must be made to coexist and, where appropriate merged.
"Active" Content Via Rich Media Types:
Until recently the Web could best be described as the equivalent to a color fax machine. Even today most content on the web is still "static". Established standards for rich media types (AVI, MPEG, JPEG, AU, etc…) have enabled vendors of user agents to provide built in support for "active" content. However, as new media types are invented, they can only be supported as first class citizens if a user agent vendor decides they are important enough and ships support in the next version of the user agent.
"Active" Content Via Code:
The ability to put little pieces of executable code such as Java applets or ActiveX™ Controls within documents on the Web has sparked a revolution in the computing world. Today there are two basic categories of "code in the document": applets and scripts. Applets differ from scripts in two ways: First they are not distributed in source code form, and secondly they typically appear visibly to the user as part of the document.

There are three problems with the existing infrastructure for code in Web documents:
  1. Applets developed to differing infrastructure models/programming languages cannot easily interact with one another on a single page. For example a Java applet cannot interact with a Netscape Plug-in.
  2. There are no standards for manipulating applets from scripts and having applets send messages to script code.
  3. Security. Sandboxing is certainly one way to get a level of security for code in documents...at the price of significantly reducing functionality.
The Programming Model:
A software developer writing code for the Web today has to contend with many wildly different programming models whether it's sockets, HTTP, or windowing just to create a simple application. There are also differences between the client side an server side programming models that programmers have to deal with.

These problems can be summed up by the quote "One document format, one protocol, one programming language...this sucks!" The reality is that in order for the Web to grow and become a platform it cannot be restricted by artificial limits on infrastructure. Rather, it must move forward the incredible base of existing investments in infrastructure-optimized document types, optimized network protocols, compound document architectures, and an immense store of expertise in many programming languages.

In fact several of these problems, in a different context, were the impetus behind the component based compound document architectures that exist today.

By leveraging existing software systems, developer knowledge, and tools and extending them to solve all of the problems listed above the Web will become the key platform of the future