When I first began to look at the Internet and Intranet as the new platform for client/server development, two things were most attractive: the religious use of standards and simplicity of the architecture. All of the browsers were basically the same, and thus the Web was naturally multiplatform. HTML and CGI were the common programming environments, and HTTP was the common middleware layer. Moreover, the request-download-view-disconnect architecture was easy to understand and use. We were all on the same sheet of music.
Things are changing. As with the early days of client/server, we are moving quickly from the very simple to the very complex. Today there are many different ways to develop and deploy Web applications using all sorts of architectures and enabling technologies. The Web is being sold as an inexpensive and simplistic alternative to client/server, but it's actually becoming more complex. Let's find out why.
But the proprietary movement extends beyond the tools. APIs such as NSAPI and ISAPI are proprietary to particular Web servers. Microsoft Corp. (Redmond, Wash.) is building a new version of Java to support its own set of standards. In addition, Netscape Communications Corp. (Mountain View, Calif.) is looking to trade HTTP in for IIOP, and Microsoft is looking to trade it in for DCOM. We are moving further away from the rock-solid standards that drove the Web from the beginning. What's driving this shift?
The performance issue surrounds the fact that traditional Web technology was never designed to support interactive applications. HTTP and HTML, which create the infrastructure for most Web applications, were built using a request-download-view-disconnect architecture and cannot process applications interactively.
HTTP, for instance, is a simple protocol riding on top of TCP/IP and can only do one thing at a time on behalf of the Web client. This is a simple architecture, but HTTP is inefficient, establishing a new TCP connection for each request. Developers cannot create multiple requests at the same time over the same connection, nor can they support granular messaging. For example, it takes four connections just to request and download an HTML document. IIOP can support an interactive connection better -- as can Java and ActiveX -- but it does so by moving away from HTTP and CGI.
The trouble comes in when you consider the number of enabling technologies that client/server tool vendors are using to deploy to the Web. For example, traditional Web development tools such as VisualWave are based on CGI, but newer tools use NSAPI or ISAPI or are attached to Java, ActiveX, JavaScript, or VBScript as both development languages and deployment mechanisms. They all have their own mechanisms to offer database connectivity and their own ways of distributing the process load.
The use of CGI changed all this. Using a three-tier architecture, developers could create a process on the Web server that was able to pump custom dynamic HTML down to the Web client, responding to the requests of the user. (See Figure 1.) Search engines are the best example of three-tier Internet applications. This was a step in the right direction, but developers were still dependent on the stateless development environments of HTTP and CGI.
Java and ActiveX brought true interactive application development to the Web by supporting the fat-client two-tier architecture. An applet is downloaded to the client, where it runs within the browser as an interactive application. The applet can then in turn link back to a database server using native API -- JDBC in the case of Java, or ODBC in the case of ActiveX.
If you think that's enough to worry about, you're wrong. In the past few months I've seen a rise in the use of additional Web application architectures such as four-tier and n-tier Web application development. When using four-tier, developers employ the traditional three-tier Web architecture but place a TP monitor between the CGI process (the Web server) and the database server. This provides all of the benefits of using a TP monitor, including load balancing and database multiplexing.
When using an n-tier architecture, developers generally layer a set of distributed objects between the CGI or Java processes and the database. With the advent of IIOP, distributed objects can even run on the browser, the Web server, the application server, or the database server. (See Figure 2.) There are also Web architectures that use applets at the browser to communicate with servlets (Java running on the Web server). The applets interact with the servlets, which interact with the database server and the Web server using the native API of the Web server. Of course, you can mix and match all of the architectures I just mentioned to create your own exciting combination of enabling technology that is even more complex than the ones I list. For instance, I've seen a number of projects using servlets to link to both TP monitors and distributed objects at the same time, as well as Java applets linking directly to legacy applications. I've been able to identify more than 10 different architectures in use for Web application development, whereas there are basically just three (with variations) in the world of client/server: two-tier, three-tier, and n-tier.
This whole concept is a tradeoff. It's disturbing to see developers move away from the standards that made the Internet great, but they are doing so to get around many of the limitations that traditional Web technology places upon them. We are once again moving toward the same "quick fix" for application development as we did with client/server, and this time with more complexity. History always seems to repeat itself.
Figure 1.

-- The three-tier architecture lets you create a process on the Web server that can pump custom dynamic HTML down to the Web client, responding to the requests of the user.
Figure 2.

-- With the advent of IIOP, distributed objects can even run on the browser, the Web server, the application server, or the database server.
David S. Linthicum is a widely published author, speaker, and senior manager with AT&T Solutions Systems Integration Practice in Chantilly, Virginia. You can email David at linthicum@worldnet.att.net.
April 1997 Table of Contents | Other Contents | Article Index | Search | Site Index | Home
DBMS and Internet Systems (http://www.dbmsmag.com)
Copyright © 1997 Miller Freeman, Inc. ALL RIGHTS RESERVED
Redistribution without permission is prohibited.