Previous Next Contents Index


Features

This chapter describes the key features of Netscape Application Server.

This chapter contains the following sections:


Rapid Application Development
NAS enables rapid development of enterprise applications through the following features, which are described in this section:

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

The NAS 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 NAS application model is component-oriented. For Java applications, the application model has been enhanced. The model now incorporates standard components based on Java technologies.

The following table lists the main components that make up the functions of an application in the NAS environment:


Functionality in Application Model
Application Components
Java Applications
C++ Applications
Presentation logic
servlets
AppLogics
Page layout
JavaServer Pages
HTML templates
Business logic
Enterprise JavaBeans
AppLogics
Database access
Enterprise JavaBeans using JDBC; query files
AppLogics using the NAS API; query files
Access to other data sources
Extensions
Extensions

These application component 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), described as follows:

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

For more information about using these standard components in NAS applications, see the Programmer's Guide (Java).

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 NAS 2.x environment. And if your application must access propriety enterprise data sources, you may need to use prebuilt extensions or create your own.

For more information about AppLogics, HTML templates, and query files, see the Programmer's Guide (C++) or the Migration Guide. For more information about extensions, consult your Netscape Extension Builder documentation.

Core Services NAS 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.

For more information about these services, see "System Components".

A Choice of Tools Netscape Application Server supports applications written in either Java or C++. However, Java applications are easier to develop and maintain, because they can take advantage of the enhanced, standards-based application model.

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).

Netscape's tools include Netscape Application Builder and Netscape Extension Builder. These tools are tightly integrated with NAS but are packaged separately.


High Scalability
Netscape Application Server has a scalable architecture. This means that applications can be built to meet the needs of initial deployment. Applications can then be scaled as business needs grow.

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 can then be deployed to the new servers. Developers do not need to change any application logic as the user base grows.

In addition, application tasks can be assigned to the server best able to process the request efficiently. This is accomplished either through application partitioning or through dynamic load balancing.

Application Partitioning The Netscape Application Server architecture supports application partitioning, which allows logic to be distributed across servers as an application scales to accommodate heavier loads. Using Netscape Application Server Administrator, system administrators can partition an application into functional areas.

For example, in an online catalog application, the application logic for order processing, inventory management, and checkout processing can reside on different servers. Regardless of how applications are partitioned and distributed, the application functions as a single, cohesive unit.

Application logic can also be grouped where each group consists of related operations. For example, a group might contain all logic 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 logic objects locally or globally across application servers in the following ways:

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.

Dynamic Load Balancing Netscape Application Server supports dynamic load balancing to provide optimal performance levels under heavy loads. With load balancing enabled, the Netscape 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.

To use load balancing, application logic must be partitioned across all Netscape 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. Each Netscape Application Server has its own load balancing module which determines the optimal server to process an incoming request.

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


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

NAS delivers high performance between web servers, other NAS 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.

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

Application developers can enable database connection caching in their application logic. At run time, when a request creates a new connection to a database, Netscape Application Server stores the connection in the cache. When the request has completed using the connection, the connection is marked as free in the cache. If a new request is made to the same database by the same user, Netscape Application Server can first check the cache and use an existing free connection rather than creating a new one. If the freed connection remains unused after a specified time-out period, it is released by the server.

System administrators can use the Netscape Application Server Administrator 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 Netscape Application Server Administrator, 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 Netscape Application Server improves application performance by caching the results of application logic execution. Developers can optionally enable this feature in their applications.

If caching is enabled, Netscape Application Server saves the application logic's input parameters and results in the cache. The next time the Netscape 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.

Data Streaming Netscape 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 Netscape 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 Netscape Application Server Administrator tool to specify settings for multi-threading, such as the following:

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

Optimized Communication with Web Servers Netscape Application Server optimizes application performance through tighter integration with web servers. This integration occurs using Web Connector Plug-ins and corresponding Listeners. Netscape Application Server supports NSAPI, ISAPI, and optimized CGI for Netscape, 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. Netscape Application Server provides a highly available and reliable solution through the use of load balancing and dynamic failover (also called failure recovery).

NAS 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.

NAS minimizes downtime by providing automatic application restarting. In addition, NAS maintains and replicates distributed user-session information and distributed application-state information. Information is maintained as long as more than one NAS 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 about failure recovery, see "Summary of Process Interactions".See also the Administration Guide or the Deployment Guide.

For more information about load balancing, see "Load Balancing System". See also the Administration Guide or the Deployment Guide.


Session and State Management
Netscape Application Server supports state and session management capabilities required for web-based applications. NAS 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 Netscape Application Server Administrator 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 Programmer's Guide.


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

In addition, NAS provides secure web server communication and supports SSL, HTTPS, and HTTP challenge-response authentication. To bridge the security gap between browsers and data sources, NAS 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 NAS Administrator and Netscape 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.

Access Controls to Data Sources Netscape Application Server works within the framework of existing access controls 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.

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


Management Capabilities
Netscape Application Server eases application management by providing integrated management facilities. These facilities include the following:

Netscape Application Server Administrator Netscape Application Server (NAS) Administrator is a Java application with a graphical user interface. NAS Administrator enables the following capabilities:

Management and tuning involves tasks such as adjusting database connection threads, adjusting load-balancing parameters, configuring web servers, and managing access control lists (ACLs).

Additional features of NAS Administrator include:

Dynamic Application Management
Netscape Application Server's architecture allows partitioned applications to run even if one or more servers fail. In a load-balanced server configuration, application logic can be replicated on multiple servers. If a server fails, the load balancing module dynamically directs requests to other available servers, thus preventing application-wide failure.

Because the NAS architecture promotes high availability of applications, server administrators can use NAS Administrator to perform a variety of tasks in real time, without interrupting an application's operation. These tasks include:

Event Logging and Failure Analysis
Netscape Application Server provides facilities for logging requests from Web servers and logging system-level and application-level events on Netscape Application Servers. For deployed applications, system administrators can use contemporaneous logs to assist with failure analysis and to detect attempted security breaches.

Event logging occurs in multiple ways on the Netscape Application Server:

Netscape Directory Server Netscape Directory Server, which is packaged with NAS, is Netscape's implementation of the Lightweight Directory Access Protocol (LDAP). NAS uses Netscape Directory Server not only to store NAS configuration data but also as a central repository for user and group information. A single Netscape Directory Server can support multiple instances of NAS—up to five clusters, in fact. This means that administrative data for all NAS installations can be centralized in one place.

The NAS Administrator acts as an LDAP client and can access information about users and groups. As a result of this integration with LDAP, NAS provides unified management of users, groups, and ACLs across the enterprise.

Support for Third-Party Management Tools NAS provides the ability to be monitored and managed via SNMP agents. SNMP is a protocol used to exchange data about network activity.

NAS stores variables pertaining to network management in a tree-like hierarchy known as the server's management information base (MIB). Through this MIB, NAS exposes key management information to third-party tools that run SNMP. As a result, NAS can integrate with an enterprise's server management tools, thereby allowing other solutions for remote administration.

 

© Copyright 1999 Netscape Communications Corp.