Oracle Essentials [Electronic resources] : Oracle Database 10g, 3rd Edition

Jonathan Stern

نسخه متنی -صفحه : 167/ 121
نمايش فراداده

14.3 Oracle Application Server

Oracle Application Server 10g (AS), which, prior to Oracle Database 10g, was known as Oracle iAS, is the other major component of the "Oracle platform." The whole field of application servers is significantly less mature than that of relational databases. Consequently, there is less agreement across different vendor offerings as to what functionality constitutes an application server.

Oracle's focus and strategy is based around servicing the leading enterprise databaseOracle. Some of the functionality in AS is also provided as part of the Oracle database, such as the basic web server and the ability to implement browser-based applications. Other components, such as Oracle Portal, compete with other vendors' application servers or niche products.

Oracle Application Server is intended to complement and extend the Oracle database to handle all IT requirements. With Oracle Database 10g, there has been increased integration between the two products in two significant ways:

Enterprise Manager, which we have discussed throughout this book, now manages AS as well as the Oracle database. The new version is known as Enterprise Manager 10g.

AS can now automatically recognize the failure of a node in an Oracle database without having to wait for an IP timeout. This allows the application running in AS to take corrective action more rapidly, hiding the failure from a user.

We can't hope to do justice to AS in this brief section, especially considering how the product's functionality has grown over time. For a much fuller overview of the concepts and architecture of AS, see the companion book, Oracle Application Server 10g Essentials, available from O'Reilly & Associates later in 2004; that book will provide the same type of coverage for AS that this volume does for the database.

14.3.1 Editions

Oracle Application Server comes in three separate editions for Oracle Database 10g:

Java Edition

Contains the HTTP Server, Java Containers for J2EE, JDeveloper, Toplink, and Enterprise Manager

Standard Edition

Contains everything in the Java Edition as well as Portal, single sign-on capabilities, and the Content Management SDK

Enterprise Edition

Contains everything in Standard Edition, with these additional components:

Web Cache

Integration platform

Oracle Internet Directory

Oracle Application Server Certificate Authority

Discoverer

Reporting and Forms services

Personalization

Wireless

In Oracle Application Server 10g, clickstream intelligence and the database cache are no longer supported as part of the product.

The pricing structure in place as of this writing offers Java Edition for $5,000 per CPU, with Standard Edition and Enterprise Edition each available for a higher price.

Please keep in mind that packaging and pricing are the exclusive realm of Oracle Corporation and can be changed at any time.

14.3.2 Installation

You can see from the brief list of functionality in the previous section that Oracle Application Server is a broad product. You can configure AS as part of the installation process to provide different types of functionality, including J2EE server, Web Cache, Portal, Wireless, Business Intelligence, and Forms.

14.3.3 Components

The following sections discuss the various functional components of Oracle Application Server. Services, which affect the overall operation of AS, are described later in "System Services."

14.3.3.1 HTTP Server

The Oracle HTTP Server (OHS) that is part of Application Server is the same basic product that we described previously as part of the database. OHS in AS is based on Apache, but provides some additional modules, known as mods, including:

mod_oc4j

Directs requests for Java modules to the Oracle Containers for Java component, described later

mod_jserv

Used for Java Server Pages

mod_webdav

Supports versioning through WebDAV (Web-based Distributed Authoring and Versioning)

mod_osso

Provides built-in single sign-on functionality

You can add other mods to OHS, but Oracle Support may ask you to remove unsupported modules if a problem occurs.

The Oracle HTTP Server includes the ability to use server-side includes, which can be used to add code to the headers and footers of all pages served, to implement standardized behaviors and look and feel.

OHS provides virtual host capabilities, which let you use a single instance of OHS to map to multiple host names. OHS can act as a proxy server or a reverse proxy server, and it can also support URL rewriting, which allows administrators to change the location of a page without requiring users to change the way they access the page. OHS includes a proxy plug-in for Internet Information Server and SunONE server, which lets requests to these servers be automatically rerouted to OHS. These plug-ins can provide the load balancing functionality, described in Section 14.3.4.3 for Oracle Containers for J2EE, described in the following section.

14.3.3.2 Containers for J2EE (OC4J)

The core Java capabilities of Oracle Application Server are provided by Oracle Application Server Containers for J2EE, also known as OC4J. This component is a Java Virtual Machine, providing support for a wide range of Java 1.3 standards, including session beans, entity beans (with both bean-managed and session-managed persistence), and message-driven Java beans, Java Server Pages 1.2 and Servlets 2.3, and Java Message Service.

You can scale OC4J by having multiple instances of OC4J on a single machine as well as having multiple threads, each running a single application module, in an individual OC4J instance.

OC4J also implements JDBC connections to the Oracle database, which can include connection pooling.

14.3.3.3 TopLink

TopLink provides object-relational mapping, the ability to associate object attributes with relational tables and columns. Because TopLink performs this mapping, a developer can change the mapping without changing the Java code that accesses the underlying data.

TopLink also provides caching and optimization to reduce database and network traffic.

14.3.3.4 Development tools

Oracle Application Server 10g includes several development kits:

XML Development Kit

Provides components, tools, and utilities for working with XML in applications

Content Management Kit

Integrates with Oracle content management products in Collaboration Suite, and provides a variety of capabilities, including security, versioning, workflow, and search and retrieval operations

MapViewer

Makes it easier to build maps to represent themes or locations

The increased need for integration of diverse applications has thrust web services to the forefront of application development. Oracle Application Server supports a range of web service standards, including SOAP, WSDL, and UDDI. AS includes the ability to easily publish both stateful and stateless J2EE classes as web services, automatically generating WSDL descriptions and client-side proxy stubs.

Of course, the course of standards bodies, like that of true love, never runs smooth. AS already provides integration between .NET SOAP and Java SOAP, and Oracle has stated its intention to continue this type of integration.

14.3.3.5 Development servers

Oracle's traditional development tools, including Oracle Forms Developer (known as Developer in the past), Oracle Reports, and JDeveloper, are part of the Oracle Developer Suite of products, as are Oracle Designer and Discoverer. However, AS includes runtime services for Forms and Reports.

Oracle Application Server, Enterprise Edition, comes with a Forms Services component. This component allows a user to run the user interface to a Forms application as a Java applet on the client. The Forms Service creates a server process to handle HTTP requests from the Java client.

AS Enterprise Edition also includes a Reports Server. The Reports Server creates and manages reports processes to handle user requests. Reports can be cached for a specified length of time, so that subsequent requests are satisfied by retrieving the report, rather than by running the queries for the report again. Reports can be scheduled to run and be delivered to multiple recipients.

14.3.3.6 Portal

Oracle Application Server Portal has gone through some significant changes in its history. When it was first released under the name of WebDB as part of the Oracle database, Portal was seen as a tool to create HTML-based applications, a role now taken by HTML DB, described earlier. WebDB was renamed Oracle Portal, and the focus of the product was changed to concentrate on bringing together separate sources of information into a common desktop.

Entire books have been written on Portal alone, so the description in this section is, of necessity, a very brief overview of the range of Portal capabilities.

Portal uses pages, which can consist of static or dynamic information and which use a theme for overall look and feel. Portal includes wizards for easy creation of pages.Portlets are applications that can get information from a wide variety of sources, from a database to a web source, and can be plugged into the Portal framework. The Portal framework provides a look and feel as well as navigation controls for all the information displayed in it (see Figure 14-2).

Figure 14-2. A well-known Portal application

Developers can allow users to customize some parts of portlet and page display, and Portal will automatically save these customizations. Portal provides a single sign-on capability to identify users and secure content.

A user can search across all information in a portal with a built-in search mechanism. Developers can also add categorization to pages to aid in searches.

A single Portal deployment can also deploy multiple versions of pages in different languages.

14.3.3.7 Wireless

OracleAS Wireless is a set of services and applications that form a development platform that can be used to create applications to address a variety of mobile devices and forms, including PDAs, cell phones, and other wireless devices.

OracleAS Wireless supports three modes:

Pull mode

In this mode, a wireless user requests information.

Push mode

In this mode, information is sent to a wireless user.

Persistent mode

In this mode, a wireless user can maintain an application even when she is out of wireless contact.

This component also includes a set of mobile enablers, which provide services that wireless applications commonly need. These enablers include:

Content and data syndication, which translates web and WAP content for mobile devices

Location services

Personalization

Analytics, used to understand user behaviors

Commerce, used for mobile wallets and payment integration

Provisioning, used for phone and device settings

Synchronization, used for phones and devices, as well as data synchronization with Oracle Lite

Notification, used to provide multichannel conditional and time-based alerts

OracleAS Wireless also includes three mobile applications:

Mobile Office

Includes basic productivity applications for mobile devices

Multi-Channel Messaging

Lets you send a message to different mobile devices

Mobile Location

Helps to add location awareness with driving directions, a business finder, and maps

14.3.3.8 Security

Security features are used to limit access to data, applications, and computing resources. The Oracle database has a complete security system, as described in Chapter 5. Oracle Application Server can be used to authenticate users, store security credentials, and implement a concept known as identity management.

Identity management allows an administrator to establish and maintain a security identity for a user and enforce it across an entire set of computing components, such as databases, application servers, and applications. Oracle Application Server uses the Oracle Internet Directory (OID) to store security information and provide user authentication. OID is an LDAP (Lightweight Directory Access Protocol) compliant store of information. Any application can access OID, including the Oracle database.

Identity management also includes a number of other features, including:

A user provisioning framework that can be integrated with other applications, such as the HR system, provided by OID

Directory integration tools, provided with OID

PKI certificate management, provided with AS Certificate Authority

Tools for managing security, implemented as part of Enterprise Manager

In addition, AS provides a single sign-on capability. As the name implies, this service allows a user to log on once; the user's information is then used by various computing entities to retrieve the authenticated identity of the user.

Oracle's identity management solution can also be integrated with other third-party identity management products.

14.3.3.9 Integration

Integration is a broad area that encompasses bringing together information from different sources. The Oracle database has a number of features for integration, including Streams and Heterogeneous Gateways. Application Server includes its own set of features for integration, including:

Integration Modeler

This is an HTML-based tool that can model business processes and map data transformations. The results of this tool are stored in a repository, and they can be changed at any time.

Integration Manager

This tool handles the runtime processes used for integration.

Adapters

Oracle Application Server includes a set of adapters for packaged applications, such as SAP and Peoplesoft, as well as other databases and messaging systems. You can also create your own adapters with an Adapter SDK.

To complement these main features, Oracle AS includes a repository for the storage of integration information, such as transformations, and analysis tools to provide intelligence on how business processes are being integrated. Enterprise Manager is used to manage the integration processes defined with AS Integration.

14.3.3.10 Business intelligence

Business intelligence can encompass a wide spectrum of options. Oracle provides three modules that are classified as being business intelligence features of Application Server (Portal is also sometimes added to this category):

Reports Services

These services are discussed earlier in Section 14.3.3.5.

Discoverer

Discoverer is a tool that business analysts use to obtain business intelligence data from an Oracle database. Analysts use Discoverer to query and retrieve data via a browser-based interface and to manipulate it in a variety of ways, including drill-down, pivoting, and changing the layout and presentation of data into various forms, such as tabular and crosstab forms. Administrators set up an End User Layer to simplify complex access to multiple data sources, complete with appropriate aggregation. Because Discoverer can also present data in a graphical format, Figure 14-3 is worth the remaining thousand words of description.

Figure 14-3. Typical Discoverer output

Personalization

Personalization, the final component of the AS business intelligence solution, uses data mining algorithms on data gathered from customer transactions, web site clicks, and demographics. These help build a recommendation engine that can be used to create recommendations for individual customers as they traverse the web site. Personalization can be deeply complex in setup, but the benefits that come from successful personalization of sites like web stores can directly result in higher sales volumes.

We cover business intelligence in the Oracle database in more depth in Chapter 9.

14.3.4 System Services

The remaining areas of Application Server capabilities provide services that affect more than one of the functional areas described earlier:

Management capabilities address the entire AS stack

Caching improves performance across many areas of functionality

Clustering (of several types) and load balancing provide for scalability and reliability

14.3.4.1 Management

With the Oracle Database 10g release, the scope of Enterprise Manager has been broadened to encompass AS. Enterprise Manager now provides availability and performance tracking for both Application Server and the Oracle database. For instance, Enterprise Manager automatically provides information on the web pages that take the longest to serve, and it does this by mining the log files for Application Server, so there is virtually no impact on performance.

AS now lets you archive the configuration of an individual instance, either to act as a backup before making configuration changes or to apply to any other instance.

For more information on other extended features of Enterprise Manager, see Section 14.4.1.4 section under Section 14.4 later in this chapter.

14.3.4.2 Caching

Caching is a standard concept in computingcaching speeds up the retrieval of frequently used information by saving it somewhere where it can be rapidly retrieved. In the database, this means keeping frequently used data in memory, rather than retrieving it from disk. For Reports Server, described earlier, this means saving a report rather than running it again.

Oracle Application Server includes two specific components meant to provide additional caching capabilities: the Web Cache and the Java Object Cache.

14.3.4.2.1 Web Cache

The idea behind the Web Cache is fairly simplemaintain copies of frequently requested information in a cache so the information does not have to be retrieved every time it is requested. The Oracle Application Server Web Cache works on HTML pages and parts of pages. It can cache either static or dynamic data and includes validation routines that you can implement to specify when the data should be refreshed. Web Cache is aware of individual user and application dependencies on data, so it automatically caches and delivers situation-specific information.

HTML code uses Edge Side Includes to indicate where partial page content goes, and Web Cache will use those directives to assemble pages with cached data. The Web Cache can also cache images, audio, video, Java, and search results.

Web Cache can also compress web content, which can speed delivery to clients. Both cache validation rules and compression rules can be implemented with regular expressions for flexibility.

Web Cache instances can be on the same node as Application Server instances, or on their own servers, as shown in Figure 14-4. Web Cache instances can be clustered with a load balancer and use a built-in clustering capability. This capability provides a shared distributed cache, where each cache instance is aware of the contents of the other cache instances. Web Cache can be used with Forms and Reports.

The Web Cache includes a technology Oracle refers to as surge protection. Surge protection proactively monitors the load on each server and implements actions to prevent the servers from being overwhelmed by a spike in traffic or a denial-of-service attack.

In Oracle Application Server 10g, Web Cache is used to collect the data on page service times used by Enterprise Manager's Application Performance Monitoring feature, which is described later in the "Grid Computing" section.

14.3.4.2.2 Java Object Cache

The Java Object Cache is implemented with a set of Java classes. As its name implies, this cache stores frequently used Java objects in memory or on disk. Developers use a set of attributes associated with a Java object to define how an object is loaded into the cache, where an object is stored, and validation rules that specify when an object is moved out of the cache.

14.3.4.3 Clustering and load balancing

Oracle Application Server instances can be clustered together, for higher performance and availability. You can cluster Web Cache, Java Container, Portal, Forms Service, Report Servers, or OID instances. In addition, you can use Real Application Clusters to provide clustering capabilities for the AS infrastructure or Portal. A multi-tier set of clusters is shown in Figure 14-4.

Figure 14-4. Multiple levels of clustering in Application Server

mod_oc4j, which directs requests to the Oracle Container for Java from the Oracle HTTP Server, provides load balancing across multiple instances of the Java Container, based on several different types of schemes, including varieties of random assignment, round robin, and metric-based.

You can implement load balancing for either stateless requests or requests that carry state. State-based load balancing is implemented with cookies, and can be done either explicitly or with the Java Object Cache. Oracle Java Containers are aware of nodes that share state information, so they can provide high availability for stateful load balancing by redirecting requests to a failed node to another node that shared application state with the failed node.

In Oracle Application Server 10g, you can create policies that can reallocate a node from one cluster to another without having to restart the cluster.

Application Server includes a high-availability framework, which monitors instances for their health, informs the system of problems, and automatically attempts to restart failed instances. Each node in a cluster contains its own configuration information, so if the node containing the repository that describes the cluster becomes unavailable, OHS can rebuild the repository on a designated backup node, eliminating this potential single source of failure.

Application Server can be installed to use underlying hardware cluster functionality in what is called a Cold Failover Cluster. This configuration uses a shared disk attached to multiple machines. If the primary server should fail, operations fail over to a backup server. The 10g release of AS also supports Active Failover Clusters (AFCs). (Note that the initial release of AS 10g does not support this configuration in a production environment.) AFCs require a load balancer in front of the active nodes, but both nodes can operate at the same time, providing scalability with high availability. Figure 14-5 shows the difference between these two types of failover configurations.

Figure 14-5. Cold Failover and Active Failover Clusters

Of course, many uses of Application Server involve multiple services, such as Java, identity management, and database access. To use clustering for high availability, you must avoid single points of failure for all of these services. This can require careful planning and multiple clustering and failover schemes.

For easier creation of clusters, AS comes with a feature called Distributed Configuration Management (DCM), which simplifies creating clones of existing nodes and redistributes J2EE components to the new node.

The Application Server 10g release also includes a feature in the database called failover notification. Prior to this release, an Application Server instance had to wait for a TCP/IP timeout to know that a database server node had failed. With this new release, the cluster management software for the database cluster proactively informs the Application Server instance of a failure, reducing failover time.