topical media & game development

talk show tell print

object-oriented programming

Objects and the Web


The Web originated from an initiative at CERN, nicknamed the World Wide Web (WWW), to provide an infrastructure for the exchange of information between scientists. Undoubtedly, the initiative succeeded beyond expectation. As described by  [Practice], at the time there were other such initiatives. Nevertheless, the effort at CERN contained two novel ideas: the use of hypertext, to allow for easy navigation between documents, and the deployment of a client/server architecture, to separate presentation from the delivery of documents.

slide: Client/server pair

Among the original requirements of the WWW was extensibility. As slide Pair indicates, which is an adapted rendering from a chapter about the Web in  [Practice], both the browser (client) and the (HTTP) server may be extended with, respectively, additional viewers on the client side and arbitrary programs through the Common Gateway Interface (CGI) on the server side. Together with these extensions the original infrastructure, which consists of HTML (Hypertext Markup Language) as the document format and HTTP (Hypertext Transfer Protocol) for the transport of documents, proved to be sufficient for the Web to be widely adopted. In retrospect, one may wonder why the Web was not based on, for example, distributed object technology or remote procedure calls. Accepting the Web as it is, we may still ask ourselves what role objects may play in developing Web applications.

Trends and technologies

The Web came as a surprise, both to the hypertext community and to the distributed systems community. As a surprise because, despite its simplicity, or probably because of its simplicity, the adoption of the Web is unsurpassed, in absolute volume and growth rate. Its simplicity lies both in terms of the underlying TCP/IP-based HTTP transport protocol, and the (conceptual) functionality of the HTML hypertext format, which more or less defines the services offered by the Web.

Transport and Services



  • ANSAWeb -- CORBA-based Web infrastructure
  • WebBroker -- HTTP as a transport protocol for ORBs
  • orblets -- Java applets with ORB

slide: Transport and services

It is probably not an exaggeration to say that the entire academic community was shocked to see the sudden mass-scale adoption of a technology that was only a shallow reflection of the original conceptions of globally distributed systems and hypermedia. Not surprisingly, however, academia and other research and development institutes reacted to the Web by redirecting their research programs, in order to jump on the wagon.

slide: Java applet with ORB

As an example, in the August/September 1996 issue of the Object Expert (Europe) the question was posed `How to survive the Internet revolution?'. In answer to that question, the Web was first criticized for offering a monolithic HTML/HTTP-based structure that gave rise to many proprietary extensions. Then, as a solution, CORBA was praised as an infrastructure that allows for the creation of well-behaved extensions through the use of IDL. The most radical alternative, indeed, would be to base the Web entirely on CORBA, of which the ANSAWeb proposal is an example. A rather different route is to adopt HTTP as the transport protocol for object request brokers and turn the Web into a global infrastructure for distributed object computing, as for example suggested in the WebBroker proposal that will be discussed later.

A more modest, and realistic, approach is to enhance Java applets with the capability to connect with CORBA servers, as indicated in slide java-orb and slide steps.

In slide java-orb, we see a browser with an HTML page that contains a Java applet, which may connect through an ORB directly to, for example, a database server. Alternatively, a request may pass through a CGI process to an ORB attached to the HTTP server.

slide: Processing steps

In more detail, when we look at the processing steps, as depicted in slide steps, we may distinguish between

  1. get the HTML page,
  2. load the applet,
  3. start the applet,
  4. connect to a CORBA server from the applet,
  5. get access to the remote objects,
  6. connect optionally to a database, and
  7. send output either in HTML format or directly to the applet.
Based on this setup, we may think of several alternatives and refinements, as for example the use of Java RMI or an extension of the Java ORB with full server functionality, to allow for callbacks from the objects (server) to the client (applet).

The WebBroker proposal

In the scenario sketched above, Java and CORBA were used to extend the basic functionality of the Web. In a similar vein, Microsoft DCOM, as an alternative distributed object technology, might have been used to incorporate objects in the Web. The WebBroker proposal, as explained in the technical note submitted to the W3C, 11 May 1998, attempts to unify distributed object technology and the Web publishing infrastructure by providing a common Web computing standard based on HTTP and XML. (XML, the eXtendable Markup Language, may be considered as a lightweight version of SGML, suitable for the description of the structure and content of arbitrary documents.)

The objective of the WebBroker is, as stated in the proposal, to have a system which is less complicated than the OMG CORBA and Microsoft COM+ distributed computing systems and which is more powerful than HTML forms and CGI. The principal advantage of the WebBroker approach is that it is Web-native. However, with the universal adoption of IIOP, which is now also the transport protocol of Java RMI, the advantage of a more efficient protocol gains more weight.

The Object Web -- CORBA/Java versus Microsoft

No doubt, the Object Web is coming, as testified by the appearance of the Object Web Survival Guide, see  [OWSurvival].

slide: Client-Server/CGI

To state the argument for the Object Web once more, as depicted in slide cgi what we have, basically, is a client/server architecture of which the server-side may be arbitrarily extended with CGI-processes. However, CGI extensions are slow, they do not scale and, most important, they do not allow for state unless unreliable programming tricks such as cookies are used. Now, according to (the ads for)  [OWSurvival], there are two camps: Microsoft and Everyone Else. We will start with the latter, which we will refer to as the Java/CORBA Web.

The Netscape way -- Java/CORBA Web

When we consider the browser market, there are at the time of writing two major players, Netscape and Microsoft. Although Netscape is certainly not the only company selling Web servers, we will nevertheless take Netscape as representing everyone else to see how the Java/CORBA Web may take shape.

slide: Content store

First of all, it must be noted that Netscape made a serious commitment to CORBA and IIOP. For example, all Java CORBA support classes are shipped with their browser. Secondly, as indicated in slide store, we may observe that the functionality of Web servers has been significantly enhanced since the beginning days of the Web. Facilities for publishing, (intelligent) agents, search and management are now more or less standard commodities provided on top of a programmable content store, running on a variety of operating systems. In slide ns-architecture, an architectural overview is given of one of the earlier versions of the Netscape Enterprise Server. When going from the top to the bottom, we see that content may be delivered in a variety of formats, including Java applets, Javascript, plain HTML, some legacy plugin format or any combination thereof. See section Architecture for a discussion of plugins. More to the bottom, Netscape offers LiveConnect technology to allow (client) components to interact. For example, a Java applet or a plugin may be addressed from Javascript code. In addition, there is IIOP to connect to CORBA-enabled servers.

slide: Netscape Enterprise Server

For programming server facilities, Netscape offered the Internet Foundation Classes as part of the Open Network Environment (ONE), which is based on standards such as SMPT, HTTP and SQL. However, the Internet Foundation Classes for Java have become part of the Java Foundation Classes that are delivered with Java 1.2. Server facilities include messaging, content store, database access and state management. Additional components may be provided either as server extensions through the NSAPI, or through CORBA IIOP.

For the actual creation of content and the deployment of all that technology, there is a large variety of tools from Netscape and other vendors, and plenty of documentation that may be obtained from Netscape's Web site.

The Microsoft way -- DNA

It is interesting to note that Microsoft's commitment to the Web came relatively late. Nevertheless, there is no doubt that Microsoft recognizes the importance of the Internet and the Web as the infrastructure of what it calls the Digital Nervous System of corporations.

slide: Business logic

In February 1999, I had the pleasure of hearing Bill Gates speak about the Digital Nervous System, as a unifying concept for corporations to execute and record transactions electronically, and as a means to create corporate awareness of the actual state of business and current business goals. I found this view quite appealing, although the complexity involved in the actual archiving, search, retrieval and presentation of such material is quite immense.

Ideally, as depicted in slide DNS, central to any corporate information structure must be the business logic that governs the policies and information needs of the organization. At the backend of the system we may have a database, legacy systems, or external applications delivering information. For end-users, depending on the particular architecture chosen, there may be thin or fat clients giving access to the information and communication facilities.

slide: Microsoft DNA

To turn to actual technology, Microsoft's proposal to realize their vision is the Microsoft Dynamic Networking Architecture (DNA), of which the basic components are given in slide DNA. In the column on the left, we have the presentation facilities, ranging from (dynamic) HTML to Win32 applications, going from thin to fat, indeed. In the business logic column, we have COM+ (which is the followup on (D)COM), the Microsoft Message Queue Server (MSMQ), and the Internet Information Server, which is a powerful server that allows for server-side scripting, Active Server Pages (ASP), and COM-based objects. For handling data, Microsoft offers the ActiveX Data Objects format (ADO), OLE-DB to connect to databases, and XML. It must be noted here that Microsoft is actively engaged in promoting XML as a data interchange standard, in cooperation with the W3C.

In summary, Microsoft DNA offers Presentation Services, Application Services, Data Services and System Services. In addition, Microsoft offers an appealing suite of tools collected in the Visual Studio, including Visual C++, Visual Basic and Visual Interdev, for creating dynamic data-driven Web applications. Although I do not intend to make this sound like an ad, it cannot be denied that Microsoft is a serious player!

(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.