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:
- 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.
- There are no standards for manipulating applets from scripts
and having applets send messages to script code.
- 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.
- Existing desktop applications can be easily updated to be
able to integrate with the same navigation model and history stack
as the browser frame - all that is required is a set of agreed
upon inter-application protocols. It is not unreasonable to assume
that the ability to specify hyperlinks will be added to many existing
application document types. By standardizing on interfaces for
text and content extraction, enabling index generation, any document
type can be a first class citizen on the server side of Web as
well.
- Arbitrary rich media types as elements of documents has been
supported on all but the most archaic platforms for many years
now. These existing systems accomplish their tasks by providing
a standard inter-component communications protocol.
- Wiring together scripts and applets or controls in a document
is also a problem to be solved by standard protocols between the
various components.
- Digital signatures on code provides a supplement to making
safe code via sandboxing.
- Distributed component object systems such as COM can provide
a framework for a more consistent programming model across all
internet technologies.
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