Previous     Contents     Index     Next     
iPlanet Application Server 6.5 Getting Started Guide



Chapter 1   iPlanet Application Server Overview


This chapter contains the following topics:

iPlanet Application Server is designed with performance, scalability, and availability at its foundation. These qualities enable iPlanet Application Server to meet the massive increase in user size and processing that occurs in an e-commerce Web site or an internet-enabled enterprise.



What's an Application Server?



Application servers provide the framework for a client to connect to a backend source, execute the applications logic, and return the result to the client. The application server occupies the middle-tier in the three-tier computing model.

Figure 1-1   

The application server space on the Internet.

The most popular kind of application server is the Java™ application server. iPlanet Application Server is a Java application server and is fully compliant with the Java 2 Enterprise Edition (J2EE™) specifications. J2EE provides a complete, secure foundation and describes a rich set of standards for security, development, deployment, code re-use and portability that allows the enterprise to create applications that are portable and vendor independent.

Figure 1-2    Application server components

based on the J2EE platform



iPlanet Application Server Features



The following features make iPlanet Application Server 6.5 one of the most scalable, robust, and high-performance application servers available today:


J2EE Platform

iPlanet Application Server provides a fully compliant Java 2 Enterprise Edition (J2EE) application server platform. The J2EE application model allows developers to focus on the business logic while J2EE components handle all the low level details. Therefore, applications and services can be easily enhanced and rapidly deployed, allowing business to quickly react to competitive changes.

By providing an open standard architecture through the J2EE Platform, iPlanet Application Server solves the problem of the cost and complexity in developing multi-tiered services that are scalable, highly available, secure and reliable. For more information, see "iPlanet Application Server Architecture".


Industry Standard Components

Application development is based on this open industry Java standard. Following is a list of specific standards and components that iPlanet Application Server 6.5 supports:

  • JDK 1.3 Specification

  • Java Servlet 2.2 Specification

  • Enterprise JavaBeans 1.1 Specification

  • JavaServer Pages 1.1 Specification

  • JDBC 2.0 Core Specification

  • JDBC 2.0 Standard Extensions Specification

  • JTA 1.0 Specification

  • JNDI 1.2 Specification

  • RMI-IIOP 1.0

  • JavaMail 1.0

  • Application Assembly and Deployment (XML)

  • HTML

  • XML

  • LDAP

  • SNMP AGENTS

  • XA


High Scalability

iPlanet Application Server has a scalable architecture that allows you to meet the needs of a growing business without reprogramming. Developers need not change any application logic as the user base grows. For example, an enterprise with a three server cluster can add fifty more servers dynamically while iPlanet Application Server continues to function. Adding more resources allows an increase in the number of transactions and requests leading to an improvement in performance.

Application scaling is accomplished in two main ways: either by adding more servers to a cluster of servers, or by adding more CPUs to a multi-CPU system. Application logic is then deployed to the new servers. Scaling is integral to iPlanet Application Server by the nature of its distributed architecture; the business software runs over several physically separate servers. Each server usually has a copy of the applications and the administrator engine determines at run time which server in the cluster will run a module. Application tasks can be assigned to the server best able to process the request efficiently.

Because it has a scalable architecture, iPlanet Application Server can efficiently employ both of the following:

  • Application partitioning.

  • Distributed Data Synchronization (DSync)


Application Partitioning

The iPlanet Application Server architecture supports application partitioning, which allows logic to be distributed across servers as an application scales to accommodate heavier loads.

Application logic can also be grouped so that each group consists of related operations. Each application component can belong to one or more groups. Applications can also share application logic. Using the Dynamic "Point- and- Click" partitioning feature of the iPlanet Application Server Administrator Tool, system administrators can do the following:

  • Monitor component load in real time

  •       Instantly change load monitoring parameters

  • Manage application components

  • Deploy components to any or all machines in a cluster

  • Deploy based on component or machine suitability

  • Disable components so they are still available, ready for instant activation

When an order is entered, the order processing component is always called from Server 1; the checkout function, however, can be called from any of the three servers. Regardless of how applications are partitioned and distributed, the application functions as a single, cohesive unit.

Application objects can also be grouped so that each group consists of related operations. For example, a group might contain all the EJBs associated with order processing. Each application component can belong to one or more groups. Applications can also share application logic.

System administrators can deploy these groups of application objects locally or globally across application servers in the following ways:

  • Portions of an application might uniquely reside on different iPlanet Application Servers, yet still run as a single application. In this way, application objects can be stored on the server that can run it most efficiently. For example, data-intensive application objects can be run on the server that is closest to the data source to avoid latencies associated with accessing remotely located data.

  • For load-balanced applications, the same group of application objects can be stored on multiple servers. This allows an application to run the application logic more efficiently on the server with the most available resources.

  • Applications might dynamically share certain application logic objects. For example, all applications in a network might share the same application logic for user login and authentication, or for credit card authorization.

Application partitioning gives system administrators tremendous flexibility to scale and tune the performance of applications. In addition, having application components stored on multiple servers helps ensure high application availability in the event of a server shutdown.


Distributed Data Synchronization (DSync)

Distributed Data Synchronization provides cluster management and data synchronization across processes, aiding iPlanet Application Server scalability.

A cluster is a set of iPlanet Application Server servers that share a single source of session (client's interaction information) and state (open data from databases, variables) data. A cluster maintains integrity of shared session and state data and is used when applications need to share session and state data and are not necessary to run iPlanet Application Server.

When a cluster is in use, a Sync Primary is accessed by the other servers to retrieve session and state data.

Clusters are easily managed and added through the Administration tool. DSync ensures that distributed session information (for example, user id), state data (for example, stock quotes) and stateful session information (for example, shopping cart) are available throughout the cluster. In the case of a server failure, the information is still available on a Sync Backup with no loss of data.

DSync and cluster management are features of the scalability and availability of iPlanet Application Server. DSync also plays an important role in server availability; see the section on "High Availability". Detailed information on DSync can be found in iPlanet Application Server Administration Guide.


High Performance

iPlanet Application Server is a high performance, multi-threaded, and multi-processing application server. iPlanet Application Server can handle a high number of concurrent requests, database connections, and sessions, and provides high performance even under heavy loads.

iPlanet Application Server delivers high performance between web servers, other iPlanet Application Server machines, and heterogeneous back-end data sources. through the following features:

Aside from the application server, other factors affecting application performance include network topology, network and server hardware, database architecture, and application programming. These topics are beyond the scope of the Getting Started Guide and therefore not described in this guide.


Dynamic Load Balancing

iPlanet Application Server supports dynamic load balancing to provide optimal performance levels under heavy loads. Load balancing ensures that each application component is processed by the system best able to handle the component's requirements at that moment, thereby assuring optimum performance.

The Load Balancer uses the load and performance statistics retrieved by the Load Monitor to determine the server with the most available resources to handle an incoming request. Each instance of iPlanet Application Server has its own load- balancing module which makes routing decisions based on load balancing properties.

Load balancing can be server driven or controlled via a plug-in. With load balancing enabled, the iPlanet Application Server can direct certain requests to be run on an available server instead of waiting for a busy server to become available. If one server is overburdened, another can take its place to process the request. The Load Monitor tabulates information on server resource availability. Simpler methods of load balancing such as weighted round robin load balancing can be employed to reduce the amount of server statistics collected.

To use load balancing, application logic must be partitioned across all iPlanet Application Servers that might process the application logic at run time. System administrators must determine if an entire application or specific parts of an application should be load balanced.

For optimal performance and resource utilization, system administrators can deploy application logic on servers that are best configured to handle execution of that logic. There are many options an administrator can use to load balance requests. One is `sticky' load balancing, which routes all requests in a given client session to the same server that handled the first request. This is useful for caching, and for objects that cannot distribute session or state information across servers.

Partitioning characteristics are dynamically known to all servers in the cluster. iPlanet Application Servers regularly update their load statistics and broadcast them to other iPlanet Application Servers in the cluster. Based on load balancing factors, requests are dynamically routed to servers. Load balancing factors are configured using iPlanet Application Server Administration.


Database Connection Pooling

To improve performance, the iPlanet Application Server pools database connections so that commonly used, existing connections are re-used rather than re-established each time. Connection pooling avoids the overhead involved in creating a new database connection for each request.

At run time, when an application creates a new connection to a database, the application is actually creating a virtual connection: iPlanet Application Server creates and manages the "real" connection and links it with the application's virtual connection. When the application is not using the connection, the connection is marked as free in the pool. If a new request is made to the same database with the same permissions (perhaps in a different session or even a different application), iPlanet Application Server can use an existing free connection rather than creating a new one. This is called connection sharing. If the freed connection remains unused after a specified time- out period, it's released by the application server.

Typically, Web applications grant similar access permissions to users by group, also known as roles. For security purpose, each role grants its users only the connection permissions they need. For example, administration users log in and use a database connection that has been configured for an Administrator. Users who are not members of the Administrator group cannot reuse this connection resource even if it is free in the pool. However, if the restricted connection is not currently in use, iPlanet Application Server can close it and create a new unrestricted connection, thus optimizing use of the limited connection resources. This is called connection stealing.

System administrators can use iPlanet Application Server Administration Tool to specify server-wide settings for database connection caching, such as the initial number of slots in the cache and the time-out limit for free connections, and so on.

Using iPlanet Application Server Administration Tool, system administrators can monitor server performance and tune the number of available connections in the cache. This ensures an optimal ratio of cached connections to system resources.


Result Caching

iPlanet Application Server improves application performance by caching the results of application logic execution. By saving the results of a request, the next time the same request is received, the results are immediately on hand. Developers have the option to enable this feature in their applications.

If caching is enabled, iPlanet Application Server saves the application logic's input parameters and results in the cache. The next time the iPlanet Application Server executes the same request, the server can first check the cache to determine whether the input parameters match the cached input parameters. If they match, the server retrieves the results from the cache instead of executing the request again. Result caching is especially effective for large data requests that involve lengthy processing time and for frequently accessed application logic.
Caching for Java Server Pages is also available and occurs in the iPlanet Application Server java engine instead of the executive (main) iPlanet Application Server engine.


Data Streaming

iPlanet Application Server provides data streaming facilities. Streaming improves performance by allowing users to begin viewing results of requests sooner, rather than waiting until the complete operation has been processed. Application developers can explicitly control what data is streamed, or allow the system to provide automatic streaming.

Streaming is especially useful for large data sets involving lengthy queries. For example, suppose a user requests a price list containing 10,000 items. The application can process the query and display items to the user as they become available, for example, 40 at a time (or one full page view), rather than wait until all 10,000 items have been retrieved from the database.


Multi-threaded Capabilities

iPlanet Application Server supports the multi-threading capabilities of the host operating system. An application can optimize performance by processing requests on multiple threads, which maximizes CPU resource utilization.

Application developers automatically take advantage of multi-threading in their applications. In addition, developers can run database operations such as queries, inserts, updates, deletes, and so on, asynchronously. Asynchronous operations allow an application to do other work while a time-consuming operation, such as a large query, runs in the background.

System administrators can use iPlanet Application Server Administration Tool to specify settings for multi-threading, such as the following:

  • minimum and maximum number of threads to handle all requests

  • minimum and maximum number of threads to handle asynchronous database requests.

Typically, administrators monitor server performance and tune the number of available threads to achieve an optimal ratio of threads to system resources.


EJB Session Pooling

Stateless session bean instances can be reused and re-pooled to reduce overhead for each call. As the workhorses of business applications, EJBs require stateless session beans to track the conversation state between the client and iPlanet Application Server. In cases where there are many clients accessing in short durations, each lost session can be reused by the system.


Optimized Communication with Web Servers

iPlanet Application Server optimizes application performance through tighter integration with web servers. This integration occurs using Web Connector Plug-ins and corresponding Listeners. iPlanet Application Server supports NSAPI, ISAPI, APACHEAPI and optimized CGI for iPlanet, Microsoft, and CGI-compatible Web servers, respectively.


High Availability

Many enterprise applications must be accessible (available) to users 24 hours a day, 7 days a week. iPlanet Application Server provides a highly available and reliable solution through the use of Dynamic Failover (also called failure recovery) and through Dynamic Load Balancing.

iPlanet Application Server enables you to distribute all or part of an application across multiple servers. As a result, if one server goes down, the other servers can continue to handle requests.

Figure 1-3    Dynamic Failover


iPlanet Application Server minimizes downtime by providing automatic application restarting. In addition, iPlanet Application Server maintains and replicates distributed user-session information and distributed application-state information. Information is maintained as long as more than one iPlanet Application Server installation is running in a cluster with the server that crashed.

Developers need not be concerned with building recovery and scalability features into their application. The application inherits these features simply by being hosted on the runtime environment. For more information, see iPlanet Application Server Administrator's Guide.


Rapid Application Development

iPlanet Application Server enables rapid development of enterprise applications through the following features, which are described in this section:


Multi-tier Application Model

An application model is the conceptual division of a software application into functional components. The iPlanet Application Server application model promotes code reusability and faster application deployment.

The iPlanet Application Server application model divides an application into multiple layers: presentation, business logic, and data access. Presentation is further separated to distinguish page layout and presentation logic. Data access refers to both databases and other data sources.

The iPlanet Application Server application model is component-oriented and based on Java technologies.

The Application components and their functions table lists the main components that make up the functions of an application in the iPlanet Application Server environment:

Table 1-1    Application components and their functions

Functions

Application Components

Functionality in Application Model  

Java Applications  

Presentation logic  

Servlets  

Page layout  

JavaServer Pages  

Business logic  

Enterprise JavaBeans  

Database access  

Enterprise JavaBeans using JDBC; Object to Relational Mapping  

Access to other data sources  

Enterprise Connectors  

These application components fall into two categories:


Industry-Standard Components
For developing Java applications, we recommend that you use standard components whenever possible. These standards-based components include servlets, JavaServer Pages (JSPs), and Enterprise JavaBeans (EJBs):

  • Servlets are Java classes that define page logic and page navigation. Servlets also support the creation or invocation of business components.

  • JSPs are web browser pages written in a combination of HTML, JSP tags, and Java.

  • EJBs encapsulate an application's business rules and business entities.

In addition, application components can invoke JDBC calls. JDBC is a standard API for database connectivity.

For more information about using these standard components, see the iPlanet Application Server Developer's Guide.


Other Components
Other application components include AppLogics, HTML templates, query files, and extensions. An application must use these components if it is written in C++ or if it will run in the iPlanet Application Server 2.x environment. And if your application must access propriety enterprise data sources, you may need to use prebuilt extensions or create your own.

  • An AppLogic is a set of programming instructions, written in C++ or Java, that perform a well-defined, modular task within an application.

  • HTML templates are text files that merge HTML with dynamic data to produce formatted output. Templates use special markup tags called GX tags.

  • Query files are text files that contain SQL commands, such as for querying or updating a database.

  • Extensions enable business logic components to connect to custom or proprietary enterprise resources. Extensions are persistent modules, written in C++ or Java, that are dynamically loaded into iPlanet Application Server and are accessed by multiple AppLogics or EJBs over the life of the extension.

    • Ready-to-use extensions are provided as part of iPlanet Application Server Integration Solutions. iPlanet Application Server Integration Solutions are available for MQSeries, Tuxedo, CICS, IMS, and R/3 applications. These applications can be easily integrated with applications deployed on iPlanet Application Server.

    • Developers can create their own custom extensions using iPlanet Extension Builder, a separately packaged, GUI-based tool that integrates with iPlanet Application Server.

For more information about AppLogics, HTML templates, and query files, see iPlanet Application Server Migration Guide. For more information about extensions, consult your iPlanet Extension Builder documentation.


Core Services

iPlanet Application Server provides a set of application services and system services for building, deploying, and managing high-performance, scalable, transactional applications. These services include built-in state and session management, request and transaction management, results caching, connection caching, and so on.


Application Development Tools

The J2EE environment of JSPs, Servlets, and EJBs are fully supported in iPlanet Application Server. iPlanet Application Server supports tight integration with leading integrated development environments.

Application developers can choose from among various tools to build applications. These tools can range from simple text editors, to visual Java editors and visual HTML editors, to integrated development environments (IDEs).

The Forte for Java product family is the premier development tool set for creating entry-level to enterprise applications in the Java language on any platform. It is a completely open solution, based on the Netbeans™ open source tools platform.

iPlanet also provides a plug-in for the Forte for Java, Internet Edition toolkit that provides developers with an integrated development and deployment environment to take full advantage of the Forte for Java development features for building applications that can be transparently deployed, tested and debugged in the iPlanet Application Server runtime environment both locally and remotely.

Additionally, the plug-in allows WAR packaging of Servlets, JSPs and customizers for iPlanet Application Server descriptors. An integrated Enterprise Java Beans (EJB) module wizard allows developers to easily develop and deploy sophisticated web applications that contain business logic based on EJB technology.


Session and State Management

iPlanet Application Server supports state and session management capabilities required for web-based applications. iPlanet Application Server provides a number of classes and interfaces that application developers can use to maintain state and user session information.

State and session information is stored on each server in a distributed environment. For example, an application can display a login screen, prompt users to enter their user name and password, then save this information in a session object. Thereafter, the application uses this same information to log in to multiple databases without prompting the user to type it in again.

Similarly, in an online shopping application, a session object can store a list of products selected for purchase (such as quantity, price, and so on) and persistent variables (such as running order totals).

State and session management is especially important for applications that have complex, multi-step operations. In an environment where application logic is partitioned across different servers, system administrators can use the iPlanet Application Server Administration Tool to optionally designate a single server to act as the central repository for all state information.

For more information about session and state management, see the iPlanet Application Server Developer's Guide.


Security

iPlanet Directory Server provides iPlanet Application Server applications with data security by using access control lists, Secure Sockets Layer (SSL), and password policies.

In addition, iPlanet Application Server provides secure web server communication and supports SSL, HTTPS, and HTTP challenge-response authentication. To bridge the security gap between browsers and data sources, iPlanet Application Server supports user authentication, cookies, and database access controls for the secure handling of transactional operations. Event logging and tracking enables detection of, and protection against, unauthorized access.


User Authentication

iPlanet Application Server Administrator and iPlanet Directory Server provide facilities to enable user authentication to ensure that only authorized users can access applications, databases, and directories.

Server administrators can use the security tool of the Administrator to create users, groups, and roles to manage access to specified resources.


Secure Access to Data Sources

iPlanet Application Server works within the framework of existing role access for relational database management systems. A user or application must log into the database before gaining access to the data.

Developers can write applications so that users enter login information only once and the application saves the information in a session object. Thereafter, the application uses the initial login information to log into different databases, as needed, in the background without requiring additional user input.

iPlanet Application Server shields back-end data by acting as a secure gatekeeper between the web server and the relational database system.



Product Components



This section describes the software and product components of iPlanet Application Server. This section consists of the following topics:


Programming APIs

iPlanet Application Server is compliant with the standards set by the Java 2 Platform Enterprise Edition. iPlanet Application Server supports these industry-standard Java APIs. In particular, iPlanet Application Server supports these APIs and technologies.

  • JDK 1.2 Specification

  • Java Servlet 2.2 API Specification

  • Enterprise JavaBeans 1.1 Specification

  • JavaServer Pages 1.0 Specification

  • JDBC 2.0 Core API Specification

  • JDBC 2.0 Standard Extensions Specification

Note that iPlanet Application Server 6.5 provides full support for JDBC 2.0 as described in iPlanet Application Server Developer's Guide.

For more information about the industry-standard Java APIs that are supported in iPlanet Application Server 6.5, see the appropriate API specification. All specifications are accessible from installdir/ias/docs/index.htm, where installdir is the location in which you installed iPlanet Application Server.


System Services and Application Services

System and application services provide a variety of application-level capabilities and system-level capabilities. These services enable the development, deployment, and management of complex business-logic and transaction-based applications.


Sample Applications

iPlanet Application Server includes sample web-based applications, enabling you to more quickly learn techniques for developing and deploying applications in a iPlanet Application Server environment.

One sample presents a bookstore application that simulates browsing, searching, and ordering books online. This Java application demonstrates the iPlanetiPlanet Application Server application model that uses industry-standard components such as servlets, JavaServer Pages, Enterprise JavaBeans, and data access with JDBC. For information about installing or using the online bookstore application, see iPlanet Application Server Developer's Guide.

Another sample presents a banking application that simulates a user session with an online account. This sample demonstrates techniques for migrating existing applications to comply with the industry-standard Java application model. For information about installing the bank application, see the iPlanet Application Server Developer's Guide. For details about the application code, see iPlanet Application Server Migration Guide.


Core Application Server Components

The following core components are installed with the iPlanet Application Server:


Web Connector Plug-In

The Web Connector plug-in enables communication between iPlanet Application Server and a Web server. When you install iPlanet Application Server, your Web server is automatically configured for the Web Connector plug-in. This means that all necessary directories and settings on the Web server are updated.

If you have problems with the connection between iPlanet Application Server and the Web Connector plug-in, see iPlanet Application Server Administrator's Guide for more information.


iPlanet Application Server Administration Tool

The iPlanet Application Server Administration Tool is a stand-alone Java application with a graphical user interface that allows you to administer one or more instances of iPlanet Application Server.


iPlanet Application Server Deployment Tool

The iPlanet Application Server Deployment Tool allows you to package and deploy your J2EE applications. Like the Administration Tool, the Deployment Tool is also a stand-alone Java application with a graphical user interface.


iPlanet Directory Server

Your iPlanet Application Server and other directory-enabled applications use the iPlanet Directory Server as a common, network-accessible location for storing shared data such as user and group identification, server identification, and access control information. The most well known of the Directory Server's services is the Distinguished Name Service (DNS).

The iPlanet Directory Server provides global directory services: it provides information to a wide variety of applications. A global directory service is a single, centralized repository of directory information that any application can access through network-based communication between the applications and the directory. iPlanet Directory Server uses LDAP (Lightweight Directory Access Protocol) to give applications access to its global directory service. The LDAP protocol enables iPlanet Directory Server to scale to millions of entries for a modest investment in hardware and network infrastructure.



Note iPlanet Directory Server runs as the slapd service on Windows, and ns-slapd on Solaris.



iPlanet Directory Server 4.13, installed along with iPlanet Application Server, is configured to store two types of information: configuration information and authentication information. As you install iPlanet Application Server, you set up the Directory Server Data Information Tree (DIT), which has branches for this information. For more information, see the iPlanet Directory Server Installation Guide at:

http://docs.iplanet.com

The configuration directory is the part of Directory Server used to store the Application Server's configuration information. It contains the data tree, o=NetscapeRoot, used by the iPlanet Application Server to store the configuration settings under the suffix that you set up to identify your organization. Multiple server installations can store their configuration settings in this configuration directory.

If you install the Directory Server component with iPlanet Application Server, you must designate this installation of Directory Server as the configuration directory, even if another installation of directory server already exists at your site.

For an overview of the various functions of Directory Server, see iPlanet Directory Server Installation Guide.


Previous     Contents     Index     Next     
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.

Last Updated March 06, 2002