As any Web programmer can assure you, the Web is stretched to the breaking point. Where else would we find "cookies" used to hack state into a stateless protocol, input and output values squeezed through the grinder of HTML forms, and entire interfaces knitted together from scattered CGI pages? Nontrivial Web applications make for excruciating software engineering. Principles of data abstraction and modularization are defeated by systems that intermingle the structure of a purchase order with its presentation, database access, and advertisements from other divisions.

Now, nearly nine years after Tim Berners-Lee wrote the first Web browser, it is important to remind ourselves that the Web was originally a tool for viewing documents. "Documentcentricity" proved to be a powerful design principle, one that powered the rapid spread of Web servers around the world. It has some unique advantages—among them, it is self-documenting, simultaneously human- and machine-readable, and, perhaps most importantly, capable of aggregating several applications (remember our purchase orders?) into a single "document." The current question is how to retain these advantages while evolving the Web into a more reasonable platform for general computing systems.

One possible answer lies in deepening the relationship that already exists between the Web and object-oriented systems. Examine the following trends, in which our "document" begins to sound more and more "object"-like:

the notion of Web documents has expanded to include new functionality such as the execution of scripts and programs, making documents more like active objects;

XML and metadata frameworks like the W3C's Resource Description Framework have added some measure of semantic structure to the Web, pointing to new possibilities for serious datatyping (class definitions);

behaviors can be more easily associated with XML documents used as object state through mechanisms such as the W3C's Document Object Model;

work has begun on the implementation of distributed object systems that use Web technologies like HTTP for transport, URIs for object naming, and XML DTDs to define an interface between software components, thus providing the basis for fully encapsulated objects.

Such trends suggest that much may be gained by strengthening the relationship between document and object models, with the goal of defining Web objects.

In this, the premiere issue for 1999, IEEE Internet Computing takes a preliminary look at the Web as an object-oriented programming platform. You will find in the next 36 pages five articles that present the state of the art for integrating behavior and data on the Web.

As we take the Web beyond its original niche, leveraging the collective experience with engineering complex object-oriented systems, let's remember to preserve what makes the Web great—its human accessibility—while trying our best to make it computationally more efficient.

— Meredith Wiggins

Theme Features

Technologies for a Web Object Model

Frank Manola

To introduce the issue, we asked Manola, a CORBA and object-oriented database veteran, to lay out a framework for what a Web object model could look like, and to survey current technologies that support the integration of object and Web technologies. His survey is a good roadmap through the acronym maze of WWW.

Programming the Web the W3C DOM Specification

Lauren Wood

The chair of the W3C's Document Object Model working group explains the inner workings of Level 1 DOM, a language- and platform- independent programmatic interface to HTML and XML documents and their elements. DOM is a foundation for developing applications that use Web documents in an object-oriented way.

Widl Interface Development for the Web

Mark G. Wales

An engineer from webMethods, one of Red Herring's top companies for 1997, describes the use of XML to create interfaces for automated extraction of data from HTML pages into legacy or customized applications.

A "NEXT-GENERATION" ARCHITECTURE FOR HTTP

William C. Janssen, Jr.

The lead from Xerox PARC's HTTP-NG project describes work on the "next generation" of hypertext transport protocol currently being developed under the auspices of the IETF. The NG effort seeks to redesign HTTP based on a distributed object framework: rather than a web of documents (some of which represent objects), we will have a web of objects (some of which represent documents). Unlike HTTP 1.1, which was designed to be upward compatible with the existing HTTP-based protocols, HTTP-NG demands reprogramming servers. The interesting political question is, once again, whether better technology can overcome a large installed base.

An Object-oriented Model for the Web Application Development Process

Hans-W. Gellersen and Martin Gaedke

The authors argue that the Web's roots as an information medium and its low-level, resource-based implementation model hinder the use of well-established engineering principles to life cycle of Web applications. They apply a standard object-oriented component model to the generation of Web applications, using XML technology to support modularity and reuse of Web documents.