Sun ONE logo
Sun ONE Application Server 7, Enterprise Edition Server Architecture Overview

Server Architecture Overview

The Sun™ Open Net Environment (ONE) Application Server 7, Enterprise Edition is designed to provide clustering, load balancing, HTTP session failover, and high-availability to Java™ 2 Platform, Enterprise Edition (J2EE™) applications.

A cluster is typically a group of Sun ONE Application Server instances configured to store HTTP session data to a single persistent datastore (an installation of the high-availability database (HADB)), and a web server configured to use a load balancer. You can use the load balancer plug-in provided with the Sun ONE Application Server or a third-party load balancer. The cluster appears to external clients as a single installation of the Sun ONE Application Server. Individual Sun ONE Application Server instances are referred to as nodes in a cluster.

The Load Balancer Plug-in

The load balancer plug-in is installed as an extension to a web server such as the Sun ONE Web Server or the Apache web server. The web server delegates certain HTTP requests to the plug-in, which then distributes the HTTP requests across the individual nodes of the cluster.


Note

Sun ONE Application Server does not require the use of the load balancer plug-in. A third-party hardware load balancer can be used to distribute requests across a cluster. However, the exercises in this Getting Started Guide demonstrate using the load balancer plug-in


HTTP Session Persistence and Failover

If a node in a cluster is configured to persist HTTP sessions, and it then fails, another node can access the HTTP session state of the failed node and continue to respond to the client. In production environments, the Sun ONE Application Server stores HTTP session data to the HADB, a transactional, highly-available and highly-scalable data store.

Example Clustering Scenario

The following diagram shows a simple clustering scenario consisting of a web server with a load balancer plug-in, two Sun ONE Application Server instances configured to use the HADB to store HTTP session data, and a remote database management system (RDBMS) to store application data.

Figure 1  Example Clustering Scenario

Example of a cluster

The following steps describe how a request is serviced:

  1. An incoming client sends an HTTP request to a URL handled by the web server. The web server has been configured to allow the load balancer plug-in to handle the incoming HTTP request.
  2. The load balancer plug-in then forwards the request to one of the Sun ONE Application Server nodes in the cluster. The plug-in uses sticky, round-robin load balancing to determine the target node.
  3. The target node receives the request forwarded to it from the load balancer plug-in and begins an HTTP session, storing the HTTP session data to the HADB and the J2EE application data to the RDBMS. As the client progresses through the application, HTTP session data is updated and stored to the HADB and application data is updated in the RDBMS.
  4. If the node fails due to a system crash, the load balancer detects that the node has ceased responding to requests and begins to forward requests to another node in the cluster.
  5. The new target node retrieves the failed over HTTP session information from the HADB and continues responding to the client’s requests, allowing the client to complete the HTTP session with no loss of data.

For more information about deployment scenarios for the Sun ONE Application Server, see the Sun ONE Application Server Operational Deployment Guide.

Single Application Server Deployment

Application server instances form the basis of an Application Server deployment. Each server instance includes the J2EE platform web and EJB™ containers. The web container includes a proven, high-performance HTTP server. An Object Request Broker (ORB) module enables EJB invocation using RMI-IIOP.

To access back-end systems, applications can leverage J2EE connector architecture support and third party resource adapters, JMS, and either the built-in JMS provider or third-party providers, and any combination of popular third-party JDBC drivers. Access to backend systems can be managed within the scope of distributed transactions using the built-in, all-Java Transaction Manager.

The Admin Server (also called the Administration Server) is a special server instance that runs the core administration application and an SNMP agent. All remote management activity flows through the Admin Server. Both command-line and web-browser -based administrative clients access the Admin Server directly either through HTTP, or securely through HTTPS.

Figure 2  Sun ONE Application Server deployment

Diagram of a single application server instance

Web server plug-ins (such as the load balancer plug-in) enable you to deploy the Application Server behind one or more web servers housed in a demilitarized zone (DMZ) that is bracketed by one or more layers of firewalls. The plug-ins provide a means for the front-end web server tier to direct incoming HTTP and HTTPS traffic received from the Internet to one or more Application Servers housed in a back-end application server tier.

A variety of client applications can access business services deployed to the Application Server. Web service clients and browser-based clients can use either HTTP or HTTPS to access the web services, server-side end points, and J2EE web applications.




Copyright 2003 Sun Microsystems, Inc. All rights reserved.