Issue No. 01 - January/February (1999 vol. 3)
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