Java Application Web Server: A Network Computing 3-tier Model

By Jim Sides and Ralph DaFoe

The Java Application Web Server (JAWS) is an IBM technology preview. It provides extensions to standards-based web servers to deliver the foundation for a robust, transaction-oriented Java server platform. In particular, JAWS provides a collection of Java classes that implements a Business Object Framework and provides a communications infrastructure based on the Open Management Group's (OMG), Common Object Request Broker Architecture/Internet Inter-ORB Protocol (CORBA/IIOP) specifications. Additional information about JAWS is provided on the DevCon 12 Internet CD-ROM.

The JAWS environment is the next step in the evolution of Internet computing. It focuses on incorporating objects into Internet- or Intranet-based network computing to enable 3-tier client/server business solutions. Java is rapidly becoming the defacto industry standard language for network computing application development. It provides a cross platform, "write once, deploy anywhere" object environment that adds distributed object computing to the web. In addition, the industry is extending the Java class libraries to provide access to existing enterprise data.

Much of the focus to date has been on the use of Java in the web browser, the client side of the network computing environment. However, recent industry activities indicate a trend toward exploiting Java for web server-based enterprise solutions. JAWS leverages Java in the mid-tier application to minimize programming and protocol in the client and to integrate new and existing applications and data into network computing solutions as shown in Figure 1.



''Figure 1. Network Computing 3-Tier Model''

The Value
Using Java on the server side provides a consistent development environment with the defacto standard client web environment thus providing the same Java values of rapid deployment on any platform across all desktop and server operating systems and hardware platforms. The integration of Java into the web server provides a consistent management environment for both content management and application management as well as a consistent runtime environment that utilizes the same directory, security and replication schemes. This management environment dramatically reduces the total cost of ownership of a desktop workstation because the downloading of applets from centrally managed servers simplifies software distribution, naturally maintains workstations at a consistent application version level, and enables uniform help desk support. And using the same environment for content, client-side applets and server-side servlets reduce overhead and learning curves.

The use of Java in the middle tier reduces the client side application to the following: This in turn reduces the number of required client side application protocols to HTTP and IIOP, both industry standards, for Java remote method invocation. The Java server application (servlet) then uses appropriate protocols to interface efficiently with subsystems that support the business logic (CICS, IMS, DB2, Notes, etc.). This use of IIOP for client/server interaction improves performance over the current forms based client/server model by allowing more user oriented logic to reside in the client and by allowing more granular access to server side logic. Such client-side processing and granular access also reduces network traffic.
 * Implementing user-focused services such as the Graphical User Interface (GUI), input editing and checking, etc.
 * Accessing business logic implemented in Java application objects that live, and are managed, on a web server.

JAWS uses a consistent programming model based on the object oriented programming notion of "collections" that clearly separates development, administration and usage roles. This provides a simple, easy to use Java application development environment while at the same time providing a flexible Java application deployment capability. This is because selection of underlying storage, security and transaction monitor subsystems can now be done at installation/configuration time with little effort on the part of the application developer.



''Figure 2. Java Application Web Server''

JAWS extends the web server environment using mechanisms that are consistent with existing web-based technologies and techniques. For example, the naming scheme for addressing objects across address spaces and networks is an extension to the URL naming structure and adheres to the current URL syntax rules. Other examples include JAWS' usage of the underlying HTTP server facilities for threading, scheduling, network communications, scaling, etc. which allows the Java application server to leverage the scalability aspects already built into web servers.

Summary
Today web servers provide a variety of mechanisms to extend the web server environment including the industry standard Common Gateway Interface (CGI) and proprietary APIs such as Netscape's NSAPI or Microsoft's ISAPI. As the focus of Java development has shifted to the server, web servers have started to provide mechanisms to launch Java applications (servlets) within their server environment.

There also has been a growing interest in technologies to enable distributed Java solutions. Much of the focus has been on technologies to incorporate Java into existing distributed object environments such as the standards-based CORBA/IIOP environment and Microsoft's proprietary ActiveX/DCOM environment. In addition, there is great interest in the industry in enabling both Java and native HTTP access to existing application and data management systems. JAWS integrates and extends all these concepts by establishing an object method invocation environment within the web server environment.

This technology is applicable to a variety of environments both within IBM and across the industry that support HTTP, and with this foundation, business application frameworks can now be developed utilizing the emerging Java Class Library Extensions (data access, security, etc.) and the standards-based distributed object infrastructure of CORBA/IIOP within an enterprise-wide or global web.

The IBM development team is requesting feedback on the programming model and use of the communications infrastructure. Sample code and demos are on the Internet CD in the DevCon 12 package. You can contact us at sides@austin.ibm.com. We will provide updates and more sophisticated examples on the DevCon web site in the future.

Note: JAWS is an evolving programming model and environment. This preview of JAWS is not intended as an assertion of future action by IBM.