An Introduction to WebSphere: The Next-Generation Web Application Server
Articles and Tips: article
01 Jan 2000
This AppNote is adapted from materials and ideas on Novell's DeveloperNet Web site, IBM Websphere documents, and other sources.
Enquiring minds want to know what a Web application server is and why it is a critical component for companies looking to develop and deploy Web-based applications.
The Internet is rapidly becoming the de facto network for business information flow and e-commerce. To remain competitive, companies are finding it necessary to move many of their core business activities from the closed, in-house systems of the past to the open, externally-accessible systems of the future. This new "e-business" model allows a company's employees, vendors, customers, and partners to access the information they need, when and where they need it.
A major need to support this rapid migration to Internet-based e-business is an environment that enables the development and deployment of open, distributed, enterprise-level Web applications. Because of the business-critical nature of these applications, they must provide high levels of scalability, reliability, performance, security, and manageability. However, the current generation of application servers does not meet this combination of demanding requirements.
The next generation of Web-enabled application servers has recently emerged to fill in some of the technological holes. These new Web application servers connect Web applications with back-end systems and offer low-level services that help make Web applications more reliable, scalable, and readily accessible. They also provide integrated development environments to make it easier to build and deploy real business applications over the Web.
This AppNote introduces IBM's WebSphere, a next-generation Web application server that is built around open, reusable technologies that shorten development cycles, ease application administrative burdens, and leverage existing computing resources. A NetWare-optimized version of WebSphere 3.0 Standard Edition is included with NetWare 5.1 to form a robust application server platform that combines the traditional strengths of NetWare—high performance, scalability, security, and manageability—with the advantages of IBM's expertise in application development technology.
For more information about NetWare 5.1 and WebSphere, see the additional references listed at the end of this AppNote.
Overview of Web Application Servers
In the early days of computers, designing enterprise-level applications was fairly straightforward. All parts of the system ran on a single computer—the mainframe. The application, presentation, and control software, as well as the data management routines, were constructed together as a common package. Users interacted with the system through dumb terminals that ran little program logic of their own.
With the introduction of PCs and networking into the corporate environment, this monolithic approach to application design proved too inflexible to handle changing business requirements. As a result, developers adopted a new client/server architecture. In this architecture, the application was typically divided into two parts. The client portion contained the software that interfaced with the user (called the "presentation logic") and the actual business rules implemented by the application (called the "business logic"). The server portion handled the data manipulation and storage operations.
As business demands intensified, a major challenge in traditional client/server became where to place the business logic portion of the application. In some cases it was centralized at the server along with the data management functions. This led to scalability problems as more and more clients were connected. Yet as the business logic increased in complexity, it became problematic to leave it on the clients. For these reasons (and others), the client/server architecture has failed to live up to its original promise.
With the rise of the Internet as a viable platform for business-oriented applications, the two-tier client/server architecture has been replaced with a multiple-tier architecture in which a middle tier acts as the interface between the client and server tiers. In this model, the business logic of the application is separated from the data management and presentation portions and is allowed to execute separately.
The benefits of this approach are many. By moving the business logic to a separate system, the developer can greatly simplify the deployment of the client portion of the application. This approach also allows the use of newer types of presentation devices such as Web browsers, palmtop computers, and other handheld devices.
The middle-tier server plays a vital role in a three-tier application. It handles requests from clients, shielding them from the complexity involved in dealing with back-end office systems and databases. The middle-tier server might support a variety of clients, such as Web browsers, Java applications, and handheld devices. The clients handle the user interface. They do not query databases, execute business rules, or connect to legacy applications. They let the middle-tier servers do those jobs for them transparently.
Middle-tier servers provide business services to clients. For example, in an online shopping application, a middle-tier server might provide a variety of services such as catalog lookup, order entry, and credit verification.
Middle-tier servers also provide system-level services such as remote access to clients and back- end office systems, session and transaction management, security enforcement, and resource pooling (see Figure 1).
Figure 1: In a three-tier model, the middle tier provides business services and system-level services to clients.
Because the middle-tier provides these heavyweight services, the clients can be thin, simple, and rapidly developed. New clients can be more easily integrated with existing applications and databases, protecting your investment in legacy systems. Middle-tier servers are a key technology in the creation of large-scale distributed applications for the enterprise. As we will see, this is the role that Web application servers play in the world of e-business.
Stateless vs. Stateful Systems
Another key concept to understand in relation to Web application servers is the difference between stateless and stateful systems.
In a stateless system, each operation is self-contained and the sequence of operations is not critical. For example, Web servers and browsers are stateless. When a browser user clicks on a URL (such as http://support.novell.com), the Web server receives the request and returns the HTML page that was asked for. Another user who enters http://www.novell.com and clicks on the Technical Support link will get exactly the same result. This stateless structure provides for open access, ubiquity, and scalability as the Web server processes a continuous barrage of requests from hundreds or possibly thousands of clients.
In a stateful system, each operation is performed in the context of previous and subsequent operations. For example, the following sequence of operations will work: inserting an ATM card, entering your PIN, selecting an amount to withdraw, and completing the withdrawal. If you try to perform these operations in any other order, the transaction will fail. Back-end servers and database managers are stateful. Their stateful nature provides for robustness, security, and control over the complete transaction.
The Role of the Web Application Server
In an object-oriented environment, additional software is needed to help connect all the components to create a functional application. The need for this new class of software has given rise to the concept of "Web application servers." Put simply, Web application servers fill the gap between stateless clients and stateful back-end servers. They provide the software framework and development tools necessary to connect HTTP requests from Web browsers to back-end applications and databases.
Note: Web application servers should not be confused with plain old application servers. In the past, the term "application server" referred to a computer system used to run applications on a network. The new usage of the term refers to a set of services designed to help in the deployment of multiple-tier applications on a network.
A Web application server, in conjunction with a Web server, provides the Web-based application deployment infrastructure that sends application input/output to Java clients. The main objective is to create interactive, multiple-tier applications.
The Open Application Server Model
To meet the needs of next-generation application servers, the industry has defined a new application server model called the Open Application Server or OAS (see Figure 2).
Figure 2: The Open Application Server model defines the components necessary for a next-generation application server enviroment.
A key defining characteristic of the OAS model is that it is based completely on open standards. All network information to and from the application server is communicated using standard protocols. These include:
HTTP (HyperText Transfer Protocol), HTML (HyperText Markup Language), and XML (eXtensible Markup Language) for interacting with Java clients
ODBC (Open DataBase Connectivity) and JDBC (Java DataBase Connectivity) drivers for accessing remote databases
TCP/IP as the underlying network transfer protocol
In addition, the OAS model provides identity-based, managed access to applications and data through a network directory using the SSL (Secure Sockets Layer) and LDAP (Lightweight Directory Access Protocol) standards for secure exchange of distributed directory information. The OAS model also provides access to local network services such as cache, database, print, file, and backup, and it provides access to legacy host applications and data.
Another key characteristic of the OAS model is that it provides complete support for the development and deployment of server-based applications using the industry-standard Java programming language. The OAS development environment includes a Java Virtual Machine (JVM) and a set of developer tools.
One of the most important components of the OAS model is the underlying server operating system. The server runs applications that are fundamental to the business. It is essential, therefore, that the server operating system provide a foundation that has the reliability, performance, and scalability necessary to support business-critical, enterprise-level applications.
In summary, several key technologies are required to build and deploy a highly functional and easily managed middle-tier system based on the OAS model:
A reliable operating system that is optimized for network services
A global directory to enhance the security and manageability of the environment
An execution environment that supports true distributed computing
A reliable data store
A rich programming language designed for distributed computing
Novell has adopted the OAS model to provide its next-generation application server. The OAS model addresses the requirements of the following four audiences:
It helps users construct systems and solutions encompassing both legacy and new technologies in an open, distributed environment.
It helps planners and strategists develop directions for products and solutions with understanding of technical dependencies and a context for incorporating new technologies in the future.
It helps developers build core technologies and solutions written to appropriate standards that can be integrated and which will interoperate with other installed products.
It helps third-party vendors understand how to interoperate and integrate with Novell systems, as well as how to incorporate and extend Novell technologies with their own.
As we will see shortly, the combination of NetWare 5.1, IBM WebSphere, and Oracle8i meets the requirements of the OAS model perfectly.
How Do Web Application Servers Function?
As explained earlier, Web application servers provide a software framework to perform communications between the stateless HTTP browser and the stateful back-end application.
Before we look at an example of how Web application servers work, it is helpful to review the typical program communication methods used by Web application servers:
CGI (Common Gateway Interface). This is a stateless interface between Web servers and client browsers. The Web browser/server must pass the state of the transaction each time it is called. For an example, take a look at the browser's URL when using CGI. CGI is most commonly used for scripts, but it can be used for binary calls as well. While CGI has been used extensively, it is slow, unreliable, and difficult to use for complex functions.
ASP (Active Server Pages). Originally developed by Microsoft, this technology is now appearing on other platforms, including as Unix and NetWare. ASP allows dynamic HTML pages to be built on-the-fly by back-end programs. ASP is a popular way to connect applications to Web servers, but ASP by itself does not create stateful transactions. It is therefore not a complete solution, but must be coupled with other software to build a true Web application server.
JSP (Java Server Pages). This relatively new technology is similar to ASP, but it is designed around the Java environment. JSP is a component technology that makes it easier to generate dynamic HTML Web pages using Java. With JSP, you insert specialized tags in an HTML page to embed a dynamic process such as a scripting process or a JavaBeans process. JSP alone is not enough for a complete solution. It requires additional software to be a true Web application server.
Applets. Applets are downloadable Java executables that provide the ability to dynamically extend the user's Web browser to create an end-to-end stateful connection. Although applets are widely used, they have been losing favor because of their bandwidth requirements, and because they are prone to virus and Trojan Horse issues.
Servlets. Servlets are executable programs that are launched by a Web server instead of on a client browser. They allow a Web server to directly launch a back-end program in a Web application server. They are also used to coordinate the requests involved in generating dynamic Web pages. The advantages of servlets include easier sharing of code and applets between server and client applications, easy maintenance of state information on server systems, and convenient interface to server databases with database access routines on server. They also simplify access to other applications on the server and to the Java class library, including native libraries, through the Java servlet API.
ActiveX. These are Microsoft's binary controls based on COM, the object tracking system that is the basis for most Microsoft software. COM is almost always used in Microsoft-based Web application servers. ActiveX controls are sometimes downloaded to the browser to create an end-to-end state for the transaction. Besides being proprietary (ActiveX controls don't work well with Netscape browsers or servers), they are prone to virus and Trojan Horse issues. In addition, the downloaded executables are fragile and difficult to manage.
CORBA (Common Object Request Broker Architecture). CORBA is a standards-based method of connecting objects together in an object-based system. When a developer needs to deploy an object-based application in a production network, another class of technology is needed to keep track of those components. That technology is called an ORB or Object Request Broker. The job of the ORB is to act as the repository for the components that make up an application.
EJB (Enterprise Java Beans). EJB is an extension of the JavaBeans system to include database connectivity and transaction controls. EJBs are reusable components that can be accessed by client programs. EJB provides a framework for developing and executing distributed applications that require system-level services such as transaction management, security, client connectivity, and database access. EJB technology provides these services, allowing you to focus on the business logic in your applications, not the system-level plumbing.
RMI (Remote Method Invocation) is a Java API through which one Java component can communicate with another. IIOP (Internet Inter-ORB Protocol) is the TCP/IP-based transport protocol specified for CORBA communications. Together, these two technologies enable different components to request and receive services in a Java environment. Web application servers use RMI and IIOP for communication between components in a distributed application.
XML (Extensible Markup Language) and XSL (Extensible Stylesheet Language) are platform- and application-independent languages through which Web application servers can share information with applications. XML uses predefined data types and tags to describe the structure and internal semantics of a Web document. An XML parser interprets the XML tags and present the data in a way that is meaningful to the requesting application. XSL uses tags to describe how the data in HTML pages should be presented to users. It requires an XSL processor to interpret the tags to produce the finished Web page. Both XML and XSL can interact with servlets to pass data between components.
A Web Application Server in Action
The following is a simplified explanation of the typical Web application flow through a Web application server. The flow is divided into four basic steps.
The client sends a request to the Web server via HTTP. The request could be a database query, for example. The Web server identifies the request as addressing a Java servlet and uses its configuration data to pass the request on to the servlet runtime engine code. The appropriate servlet is invoked via HTTP.
The servlet understands which method or call it needs to make to obtain the information to satisfy the client request. The servlet calls function routines written as JavaBeans. In more transactional operations such as database queries, the servlet would call on an Enterprise JavaBean to conduct the query.
Using the business logic written into the EJB, a connection is made to the back-end database. Because we are using an EJB, the database transaction is persistent and stored in a local relational database to provide dynamic direct mapping to the remote database system.
When the query results are sent back to the Web application server, the Java servlet regains control and manages the generation of the response page which needs to be served back to the client that made the original request. To do that, an appropriate Java Server Page can be selected to help generate the dynamic content. The computed Web page containing the results of the query is then served back to the Web client via the HTTP server.
As you can see from this example, the Web application server plays a key role in the middle tier between the client browser and the back-end server.
IBM's WebSphere: Bringing It All Together
Before WebSphere came on the scene, placing strategic information on a company's Web site, and then allowing outsiders to access it, was pretty scary from a security and technical standpoint. The typical non-Web-enabled application server is designed to run a specific application for a small group of users in a very controlled environment. But the Internet is anything but controlled. Security, performance, reliability, and scalability are all major obstacles to doing business on the Web. Allowing dynamic, real-time transactions means every single request has to be authenticated, which drives performance lower.
WebSphere changed all that and opened the door, not just for e-commerce (buying and selling over the Internet), but for e-business (that plus the many other processes that make a business successful). The IBM WebSphere Application Server is Java-based technology that enables businesses to put mission-critical transactional applications on their Web sites.
Comprehensive Web Application Solution
WebSphere offers a comprehensive solution for building e-business applications. The WebSphere product line includes:
WebSphere Application Server in Standard, Advanced, and Enterprise editions. The Standard Edition lets you use Java servlets, Java Server Pages, and XML to quickly transform static Web sites into vital sources of dynamic Web content. The Advanced Edition is a high-performance Enterprise JavaBean server for implementing EJB components that incorporate business logic. The Enterprise Edition integrates EJB and CORBA components to build high-transaction, high-volume e-business applications.
WebSphere Studio. This is a collection of visual development tools for creating Web-based applications. It not only integrates IBM's tools, such as VisualAge for Java, but also third-party HTML and image creation tools.
WebSphere Performance Pack. This provides sophisticated detection of system utilization and error events and can load-balance across multiple networks and servers.
WebSphere Commerce. This is a set of specialized components for e-commerce and other e-business needs.
WebSphere was developed specifically to provide integrators and consultants with a one-stop shop when it comes to building a next-generation, e-business Web environment for their customers.
Note: A common misconception about WebSphere is that it is a Web server or an HTTP server that directly receives requests from Web clients over the HTTP protocol. Actually, WebSphere works in close cooperation with Web servers to handle requests from Web clients, but it is not a Web server.
Based on Open Standards
WebSphere is based on the same open standards the Web uses: HTTP, HTML and Java. In addition, IBM designed WebSphere as a J2EE-compliant Web application server. J2EE (Java 2 Enterprise Edition) is a collection of Java technologies for both client-side and server-side environments. It encompasses Java servlets, JSP, JDBC, XML/XSL, RMI-IIOP, and Enterprise JavaBeans. It also specifies the use of the Java Naming and Directory Interface (JNDI) for accessing directory information.
J2EE was established by Sun Microsystems, but it is an open standard so Web applications written to its specifications will work on any J2EE-compliant system, even on different host platforms (NetWare, Solaris, and so on). It is being embraced by most of the leading Web application server vendors, including Novell, IBM, Oracle, Sun, and Netscape.
WebSphere can be deployed across multiple platforms, including AIX, HP-UX, Solaris, Linux, and Windows NT. And now, with the release of NetWare 5.1, IBM has added NetWare to the list of supported platforms.
WebSphere and NetWare 5.1
Novell, in collaboration with IBM, is ideally positioned to deliver a complete application server environment based on the OAS model. Novell's implementation of the OAS model is illustrated in Figure 3.
Figure 3: With WebSphere and Oracle8i, Novell has put together a NetWare-based implementation of the OAS model.
The Novell implementation combines a complete portable, Java-based Web application server (WebSphere) with the industry's strongest network platform (NetWare). It includes the following components:
NetWare 5.1 and NDS provide the reliable, scalable and high-performance foundation for the application server. NetWare 5.1 is tightly integrated with NDS, allowing secure identity-based management and access control of applications and data. It supports pure IP, the standard Internet transfer protocol. And it provides native support for LDAP, allowing interoperability with other LDAP-based directories and applications.
IBM WebSphere Application Server 3.0 for NetWare, Standard Edition provides a powerful deployment environment and set of application services for managing dynamic e-business applications. It increases database connectivity and XML/XSL technology to enable customers to integrate information contained in various databases. This version upgrades the Secure Socket Layer (SSL) functionality. WebSphere for NetWare is integrated with NDS to provide a single point of management for application development.
Netscape Enterprise Server is a Web server that delivers the performance and reliability required for enterprise-level applications. It is integrated with NDS and optimized for the NetWare platform. WebSphere is designed to enhance an existing Web server such as the NetWare Enterprise Server, working in tandem to provide Web-based solutions. The application server provides an architecture for generation and delivery of dynamic content over and above the traditional scripting (such as CGI, Perl, and so on) provided by Web servers. A Web server serves as a front-end providing one method of access to the application server via HTML and the Web.
Oracle 8 i is an Internet-ready data management environment that Web-enabled applications are already using today. It is integrated with NDS and optimized for the NetWare platform.
Figure 4 illustrates how the technologies bundled with NetWare 5.1 work together to form a complete Web application server environment.
Figure 4: How the components included with NetWare 5.1 work together.
Advantages of the NetWare 5.1 Bundle
NetWare 5.1 comes with the key components you will need for successful deployment of a Web-based application system:
Reliable, robust, manageable platform (provided by Novell's NetWare 5)
Identity and security (provided by Novell's NDS)
Robust, feature-rich development and deployment environment (provided by IBM's WebSphere)
High performance, reliable data storage (provided by Oracle's Oracle8)
The version of WebSphere included with NetWare 5.1 is not a scaled-down version of IBM's Standard Edition product. It includes everything you need to build fully functional Web applications using HTML, servlets, and JSPs.
WebSphere for NetWare is well-integrated with the NetWare 5.1 installation process. All you have to do to install it is click a checkbox in the NetWare Install program. The program automatically installs any other components that are required. No additional configuration is necessary.
For the growing number of system administrators who find themselves in the role of Webmaster, WebSphere is an ideal entry point to the world of Web applications. WebSphere includes an Administrative Console to simplify the management of WebSphere components (see Figure 5).
Figure 5: Sample screen from the WebSphere Administrative Console.
WebSphere for NetWare includes the WebSphere Studio for Java application development environment, a productivity-enhancing environment that support fast application development and permits reuse of application components. Developers can choose from a broad range of development tools, interfaces, and components to create and deploy Web-based applications, distributed applications, and server-side task automation (see Figure 6).
Figure 6: Sample screen from WebSphere Studio.
Extending the OAS Model
By adding any of the following solutions from Novell, customers can derive even more value from Novell's implementation of the OAS model:
NetWare for SAA provides a scalable host connectivity foundation that enables the application server to access IBM mainframe computers and AS/400 systems security and reliably. NetWare for SAA is tightly integrated with NDS to provide a single point of management and control for host access.
Novell BorderManager Enterprise Edition has a proxy cache capability that front-ends the Web server and caches all static information belonging to the server. When a client requests information from a server, the request is automatically diverted to the BorderManager proxy server. This greatly accelerates access and takes the request load off the Web server, enabling the network to service more users with fewer Web servers.
SQL Integrator allows organizations to combine mission-critical data resources with standard application development and user interfaces such as Java and the Web. By presenting a single logical view of all data, SQL Integrator gives developers and administrators the ability to access, integrate, and manipulate data regardless of source, location or type, and to join and integrate data from two or more sources. Through SQL Integrator, applications are able to remotely access additional databases not running on the WebSphere host.
Applications written to the IBM WebSphere Application Server for NetWare can access any JDBC-compatible database. While there are no current plans to port IBM's DB2 database engine to NetWare, you can access DB2 through the JDBC remote drivers.
As the provider of an operating system platform, Novell benefits from having many application servers running on NetWare. Novell is continually engaged in recruiting efforts so that application servers from other vendors can be supported on the NetWare 5 platform.
WebSphere Application Server 3.0 for NetWare, Standard Edition, is the first version of WebSphere to ship with the NetWare operating system. From the year 2000 forward, Novell and IBM intend to include WebSphere with every new release of NetWare.
For those who want more features, Novell plans to offer WebSphere Advanced Edition version 3.0 as a separate product. This version enhances server capabilities for applications built to the Enterprise JavaBeans (EJB) specification. EJBs will provide a stronger CORBA implementation that will map to portable Java technologies. The Advanced Edition v3.0 will also include NDS authentication features, NetWare security, and enhanced administration tools.
Note: Novell has no current plans to offer WebSphere Enterprise Edition.
Current plans for future releases of WebSphere Application Server for NetWare include enhanced integration with key products such as NDS, BorderManager, Novell Storage Systems (NSS), NetWare Cluster Services, and ManageWise.
As far as IBM is concerned, future plans for WebSphere include adding real-time auto-translation, so Web site text written in English will be automatically translated on-the-fly into German, Japanese, or whatever language the Web site visitor understands. WebSphere will also soon support Wireless Markup Language (WML) to make e-business transactions accessible via next-generation cell phones, PDAs, and other wireless devices.
IBM WebSphere Application Server for NetWare serves as the foundation for building e-business Web sites on the NetWare platform. It combines the worlds of Web servers, databases, servlets, and other Java standards to create a platform for creating and managing enterprise-class Web applications.
By shipping WebSphere with NetWare 5.1, Novell accomplishes two main goals. First, it establishes a high standard of functionality as the base for Novell services, thereby reducing the "infrastructure wars." Second, it proliferates an installable base of Java-based infrastructure, thus further opening up the NetWare platform for development. Novell's use of WebSphere in its implementation of the OAS model marks another chapter in the complementary relationship between Novell and IBM. Both companies strive to deliver open, enterprise-level solutions based on Java and other industry standards. The result is that customers can take full advantage of the blossoming Internet e-business opportunity with open, enterprise-level applications, without sacrificing reliability, scalability, performance, security, or manageability.
Moving from static Web content to dynamic, real-time transactional content will change the way the world does business. Imagine employees updating their own personnel files over the company Web, sales reps submitting their orders in real time from halfway around the world, suppliers tracking their own purchase orders, and customers solving their own service problems. Thanks to WebSphere, a whole new class of self-service applications can be developed and delivered via the Web.
For Additional Information
IBM WebSphere product home page (www.ibm.com/software/websphere)
"WebSphere Application Server" in NetWare Connection magazine, December 1999 (http://www.nwconnection.com)
"WebSphere Components" in Novell Developer Notes, December 1999 (http://developer.novell.com/research)
For information from Sun about Java-related technologies, see http://java.sun.com/products.
* Originally published in Novell AppNotes
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.