Overview

10g AS (aka 9.0.4) cannot be regarded as single, simple product that you install on a single machine that covers all your web needs, regardless of size or complexity. It's a combination web application server comprised of multiple components that serve a variety of applications. Depending on your needs, you'll configure different components of the 10g AS product suite. The following is a list of components that are available with 10g AS:

  • Oracle HTTP Server (OHS). Based on an Oracle-modified Apache 1.3.28 web server, the OHS provides web-server functionality. Composed of standard Apache web-development modules ( mod_perl, mod_cgi , and so on), the OHS can support regular Apache applications. Oracle specific modules are additionally added to support Oracle development tools.

  • Oracle Containers for J2EE (OC4J). J2EE support is provided by OC4J. The OHS module mod_oc4j routes J2EE requests to OC4J application-server instances ( essentially Java Virtual Machines) for processing.

  • Oracle PL/SQL Web Toolkit. Database-driven web pages implemented via mod_plsql . These are Oracle PL/SQL packages and procedures stored in the database; they generate HTML that's displayed by the browser.

  • Oracle Forms. Oracle PL/SQL Forms ( fmx ) deployed on the Web, typically running as an applet via the Oracle JInitiator browser plug-in.

  • Oracle Reports. Oracle Reports that execute on the web server and deliver reports to the browser in the form of HTML, Adobe PDFs, or Microsoft Excel spreadsheets.

  • Oracle Discoverer. Business Intelligence (BI) provided by Oracle Discoverer. These are reports the business user can create, execute, and drill down to "discover" information.

  • Oracle Portal. Oracle flagship product for creating enterprise portals with personalized access and presentation for individual users.

  • Oracle Wireless. Access to Oracle applications via wireless products such as cellular telephones and PDAs.

  • Oracle Internet Directory. OID is Oracle's Lightweight Directory Access Protocol (LDAP) implementation. This LDAP structure is stored in an Oracle database and provides the capability of storing users and their information for use with Single Sign-On (SSO).

  • Web Cache. This is a performance- boosting cache, located in front of a web server, that provides frequently accessed content to users faster while reducing the workload on the server.

  • Clusters. To improve performance via load balancing and improve fault tolerance, it's recommended that you install multiple 10g AS middle- tier installations on separate servers in order to service client requests. Work requests are distributed across the available servers to improve performance. If any server fails or becomes unavailable, requests are sent to the surviving servers for processing. This eliminates a single point of failure and provides fault tolerance transparently to the user.

At a high level, these products essentially make 10g AS a combination web server and application server, with an Oracle database back-end supporting Oracle OID and SSO (aka Identity Management).

Connection Architecture

It's important to understand the flow and processing of incoming connections into 10g AS. This is helpful for troubleshooting and tuning, but also for understanding the role of each component. In Figure 15-1 you see a diagram showing the flow of an incoming web connection.

image from book
Figure 15-1: Incoming web connections

From a web-server perspective, Web Cache (if it's installed) or the OHS (in the event that Web Cache isn't installed or the requested content isn't found) initially process incoming client requests. The OHS is located on the mid-tier instance. If clustering is set up, there can be multiple mid-tier instances to receive the browser request. The web request is parsed by OHS to determine which application server component is responsible for executing the request.

At that point, OHS passes the request to the appropriate application server component. J2EE requests are sent to one of potentially several OC4J containers configured for processing for J2EE applications via mod_oc4j . The OHS module mod_plsql processes any PL/SQL Web Toolkit requests. Requests for Oracle Forms, Reports, or Discoverer are sent to the BI OC4J container for processing. Standard Apache requests are sent to the corresponding Apache module such as mod_cgi or mod_perl . Unless there's a specific OHS module for the request, such as mod_plsql or mod_cgi , the request will be processed by the appropriate OC4J container such as BI.

Web HTTP transactions are by default stateless. That means one request from a browser to a website is independent of previous and future requests. The use of browser cookies and application-coding techniques to mimic state provide a work-around to allow stateful transactions to be executed in this stateless environment.

If a truly persistent connection is necessary, or if the request needs to be handled by an applet, the appropriate files are downloaded from the web server and an applet is started within the browser. These applets execute as Java plug-ins inside the browser. They may use the Java Virtual Machine (JVM) native to the browser such as IE or Netscape. For Oracle products such as Forms, the applets generally run within Oracle's Java plug-in JInitiator.

Prior to accessing the application from one of these applets, the user is typically prompted to log in with a username and password and sometimes a database name . The information the user enters may be authenticated directly against the database he's trying to access. If the connection is successful, the user will have a database session either as his username or as a proxy web user.

If SSO is enabled on the system, the user may only have to log in once, and each time after that she will access the application or other applications without manually entering a password. This is made possible by connecting to an SSO server and authenticating the user against a directory service such as OID. The SSO and OID components are part of Oracle Identity Management and are located in the 10g AS Infrastructure instance, which is discussed later in the "Architecture" section in this chapter.

During processing of the client's request, it's quite likely that database interaction will be necessary. 10g AS can access any Oracle database via Oracle Net or JDBC or even non-Oracle databases via ODBC. The connection from the web-browser user into the database can exist as a single, dedicated one-to-one connection for applications such as Oracle Forms. Or it can be by one of many proxy web-user connections that act on behalf of the user. These can be generic web-user accounts that take advantage of connection pooling so that new connections aren't spawned for each request. J2EE and mod_plsql applications can take advantage of connection pooling.

Ultimately, the request is processed and the response is sent back to the OHS and Web Cache web-server component and back to the client browser. At this point, either the communication is closed or more likely another request is sent.

In Figure 15-2 you see a diagram showing the interaction between these components.

image from book
Figure 15-2: Interaction of 10g AS components

In previous versions of the product, such as iAS and 9iAS 1.0.2.X, it would have been accurate to describe the product as "Apache bundled with Oracle Portal, Forms, and Reports." In those days, Java was implemented either as Apache JServ or a standalone OC4J container; but in no case were the products tightly integrated. However, starting in 9iAS 9.0.2 and now in 10g AS (9.0.4), the product can truly be described as "Modified Apache that's tightly integrated with OID, Forms, Reports, Discoverer, and J2EE implemented via OC4J." The justifications for this statement are included in the following list:

  • Apache web-server component is based on Apache 1.3.28, but it has been modified by Oracle Corporation to become the Oracle HTTP Server (OHS). Security patches and upgrades have been applied to make it more advanced and secure than a generic Apache 1.3.28 server. New Oracle modules have been compiled into Apache such as mod_ossl (Oracle Secure Sockets Layer), mod_sso (Single Sign-On), mod_oc4j (Oracle Containers for J2EE), and mod_plsql . Additionally, some Apache directives have been depreciated ( especially for Secure Sockets Layer) and others added. Clearly, this is no longer a regular Apache distribution, although Apache skills are help when managing this product.

    Note 

    Apache is the most popular web-server software today. Over 60 percent of websites use Apache. It's popular because it's reliable, lightweight, and free. Furthermore, Apache is built on a set of core web-server modules and optional plug-in modules for extra functionality. Oracle wisely adopted this product and has added its own modules (for example, mod_plsql ). Apache is a key component of 10g AS and administrators should understand it. More information about Apache is available at http://apache.org .

  • Integration with OID and Single Sign-On is encouraged, although optional. Most installations require an Infrastructure composed of a back-end database containing OID. Some products, such as Reports, come with Single Sign-On enabled by default. Although these features are optional, the suggested direction by Oracle is obvious.

  • Forms, Reports, and Discoverer are implemented via the BI OC4J container. There are still Forms fmx s and Reports rdf s (or now jsp s), but these are implemented via an OC4J container that represents a change in architecture. Gone are the days of manually configuring and starting these products with forms60_server or reports60_server files as with previous versions of the product. Development and upgrade of previous Forms and Reports to 10g AS is fairly simple, however the administration side has changed due to the reliance on the BI OC4J engine.

  • J2EE is now implemented via an integrated OC4J product. Early versions of iAS and 9iAS (1.0.2.X) had Java implemented via Apache JServ by default. Later, in version 1.0.2.X, the option of separately installing OC4J 9.0.3 was available. J2EE applications could either be run via the lightweight HTTP server that came with OC4J, or you could front end it with 9iAS OHS using Apache ProxyPass directives.

  • Starting with the 9.0.2 release, OC4J became the true focal point of the product because components are implemented via OC4J and applications are being deployed via OC4J. Now deploying applications via OC4J is easy. There's no need for JServ or standalone OC4J containers. As you'll see in the following chapters, managing OC4J applications is easy with the web-based tools.

  • Almost all the components within the product are implemented via OC4J and all are managed via several Oracle background processes. You'll see more details about this in the next section, but in a nutshell , all the components are managed and monitored by Oracle background processes. Gone are the days when you manually started Apache, your standalone OC4J container, and your Forms and Reports servers. Instead the Oracle process Oracle Process Management Notification (OPMN) manages these processes and starts and stops them.

  • Management is largely implemented via an Application Server Control utility website. All components can be configured, started, stopped , and monitored via a graphical website utility. Although some management operations can be done via command-line utilities (to be covered later), most management operations are truly easier and just as powerful via the Application Server Control utility.

In this section we provided a high-level overview of the 10g AS product. You saw that it's both a web server and an application server. Although you can run standard Apache web applications on it, it really is more tailored toward Oracle-centric products such as Forms, Reports, Discoverer, Portal, and PL/SQL Web Toolkit. However, the product is really engineered to support J2EE applications via OC4J. Indeed, OC4J and OHS are the two key underlying technologies driving this product. OHS receives the request and OC4J processes the request. Additionally, with advanced features such as Web Cache, clustering, and OID and SSO, the product targets larger, enterprise-level applications. In the next section you'll look at how this is technically architected.



Oracle Application Server 10g. J2EE Deployment and Administration
Oracle Application Server 10g: J2EE Deployment and Administration
ISBN: 1590592352
EAN: 2147483647
Year: 2004
Pages: 150

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net