Oracle9i Application Server Overview Guide Release 1.0.2 Part Number A87353-01 |
Library | Service | Contents | Index

# 2
Oracle9i Application Server Services

Oracle9i Application Server services provide an integrated Internet infrastructure that supports open Internet technologies. This chapter describes all of the Oracle9i Application Server services:

- Communication Services

- Content Management Services

- Business Logic Services

- Presentation Services

- Developer's Kits

- Portal Services

- Caching Services

- System Services

- Business Intelligence Services

## Communication Services

These services handle all incoming requests received by Oracle9i Application Server, by providing Web listening services. Some of these requests are processed by Oracle HTTP Server and some requests are routed to other areas of Oracle9i Application Server for processing. The major elements that support these services are highlighted in Figure 2-1.

#### Figure 2-1 Communication Services in Oracle9i Application Server

### Oracle HTTP Server powered by Apache

Oracle9i Application Server uses Oracle HTTP Server to provide Web listening services, which is powered by Apache Web server technology. Using this technology offers the following:

- Scalability: Because the Apache Web server is designed to be very scalable, it can be replicated across many middle-tier machines.

- Stability: The Apache Web server is the defacto standard for Web listeners. Apache, an open source technology, has been continuously improved by a large community of developers since its first release. Consequently, Apache Web server technology is very stable.

- Speed: The compact design of the Apache Web server makes it very fast when it responds to requests, and it is possible to rapidly reconfigure Apache using graceful restart, which reloads the configuration files in seconds.

- Extensibility: The Apache Web server delegates the handling of HTTP requests to its modules (mods), which add functionality not included in the server by default. Using the Apache APIs, it is easy to extend Apache functionality. A large number of mods have already been created and are included on your product CD-ROM. Although the default Apache Web server supports only stateless transactions, you can configure it to support stateful transactions by leveraging the functionality supplied by Apache JServ.

  See Also: "Apache JServ" for information about Apache JServ. Oracle HTTP Server documentation in the Oracle9i Application Server Documentation Library for detailed information about Oracle HTTP Server.

### Oracle HTTP Server Modules (mods)

In addition to the compiled Apache mods provided with Oracle HTTP server, Oracle has enhanced several of the standard mods and has added Oracle-specific mods, which are described in the following sections.

#### mod_ssl

This module provides standard S-HTTP that is fully supported by Oracle. It enables secure listener connections with an encryption mechanism that is provided by Oracle through Secure Sockets Layer (SSL).

See Also: mod_ssl Documentation in the Oracle9i Application Server Documentation Library for detailed information.

#### mod_plsql

This module routes PL/SQL requests to the Oracle8i PLSQL service, which then delegates requests to PL/SQL programs.

See Also: Using the PL/SQL Gateway in the Oracle9i Application Server Documentation Library for detailed information.

#### mod_perl

This module forwards Perl application requests to the Perl Interpreter that is embedded in Oracle HTTP Server. The primary advantages of using mod_perl are power and speed. The embedded Perl Interpreter saves the overhead of starting an external interpreter, and the code caching feature, where modules and scripts are loaded and compiled only once, allows the server to run code that is already loaded and compiled.

See Also: Apache mod_perl Documentation in the Oracle9i Application Server Documentation Library for detailed information.

#### mod_jserv

This module routes all servlet requests to the Apache JServ servlet engine, which is embedded in Oracle HTTP Server. To support stateful transactions, it can share servlets across multiple zones and ensures that requests get routed to the same servlet engine.

See Also: Apache JServ Documentation in the Oracle9i Application Server Documentation Library for detailed information.

#### mod_ose

This module forwards servlet requests to stateful Java and PL/SQL servlets in Oracle Servlet Engine (OSE) contained in Oracle8i. This module:

- keeps session IDs in cookies or redirected URLs

- routes requests to the appropriate OSE sessions

- communicates with OSE over NS (SQL*Net) which gives

  - firewall support between Oracle HTTP Server and OSE, and

  - connection pooling.

    See Also: Oracle8i Oracle Servlet Engine User's Guide in the Oracle9i Application Server Documentation Library for detailed information.

### Oracle Plug-in for Microsoft IIS

With Oracle Plug-in for Microsoft IIS, you can use Microsoft Internet Information Server (IIS) to directly access PL/SQL and Java Web components stored in an Oracle database.

Oracle Plug-in for Microsoft IIS provides functionality in a Microsoft IIS environment that is similar to the Oracle HTTP Server Modules, mod_plsql and mod_ose. Using it, you can access Web components in one of two ways:

- passing a preconfigured virtual directory prefix (PL/SQL access)

- passing a predefined file extension and virtual directory prefixes which are stored in the Java configuration file (Java access)

#### PL/SQL Web Component Access

Oracle Plug-in for Microsoft IIS supports accessing PL/SQL server pages and PL/SQL stored procedures that have been written with Oracle PL/SQL Web Toolkit. PL/SQL requests are filtered using a predefined prefix and then are executed using pooled database connections. Users have the ability to configure PL/SQL component access from multiple databases.

#### Java Web Component Access

Oracle Plug-in for Microsoft IIS supports accessing JavaServer Pages (JSPs) and servlets. Java requests are filtered using a Java configuration file.

Note: Currently users can configure Java component access from only one database in a configuration.

See Also: Oracle Plug-in for Microsoft IIS Configuration and User's Guide in the Oracle9i Application Server Documentation Library for detailed information.

## Content Management Services

These services make all of your content, regardless of the file type, accessible in one heterogeneous file hierarchy through Web browsers, Microsoft Windows networking, File Transfer Protocol (FTP), or an e-mail client. In addition, you can use these services to configure sophisticated file searching capabilities, event alerts, and check-in-check-out functionality to support collaborative projects. These services are highlighted in Figure 2-2.

#### Figure 2-2 Content Management Services in Oracle9i Application Server

### Oracle Internet File System

Oracle Internet File System is a service that stores files in an Oracle8i database. From the user's viewpoint, Oracle Internet File System appears as any other file system accessible through Web browsers, Microsoft Windows networking, FTP, or an e-mail client. The fact that files are stored in the database is transparent to users because users do not directly interact with the database.

Unlike other file systems, Oracle Internet File System stores all of your files--from Web pages to e-mail, from spreadsheets to XML files--in the same file system. For example, you can display e-mail message files, Web files, and word processing files within a single file hierarchy, or you can perform a single search to locate all references to a topic.

#### User's View

You can view your file hierarchies through either a Web or a Windows interface. Although each interface has a unique look and feel, the Web and the Windows interfaces perform the same functions. Figure 2-3 shows the Web interface as it appears in a Web browser.

#### Figure 2-3 Oracle Internet File System Web Interface

Figure 2-4 shows the Windows interface as it appears using Windows Explorer in the Microsoft Windows operating system.

#### Figure 2-4 Oracle Internet File System Windows Interface

#### File System Management

Users can manage the files that they own or those for which they have the correct permissions. The main file management features for users include

- renaming files: Users can rename files that they own.

- deleting files: Users can delete files for which they have the correct permissions.

- uploading files: Users can upload files using FTP, Windows Explorer (by using Server Message Block and Web Folders), and the Web.

- setting automatic expiration on files: Users can set an expiration date for each file that they upload to Oracle Internet File System. The file is automatically deleted on that date.

- modifying file attributes: Users can view and modify file attributes such as description, filename, and the access control permissions.

#### Content Management

Oracle Internet File System content management features support collaborative projects and sophisticated searching across different types of files. The main content management features include

- check-in, check-out (CICO): For collaborative projects, users can check out files so that others cannot overwrite their work. Files remain locked until either users check them back in or an administrator releases the lock.

- versioning: Users can decide to make a file versioned. Each time the versioned file is checked in, a new version is created and stored. File versions can be kept or purged as needed.

- searching: Oracle Internet File System includes a Find utility that uses interMedia Text to search across multiple file types. This advanced search utility allows users to search quickly without having to know database syntax.

- multiple folders per file: To avoid making multiple copies of files when the same document fits into a number of folder categories, multiple folders can be assigned to files. This feature reduces maintenance when files are updated, and it also saves storage space.

- extensible file attributes: Application developers can extend Oracle Internet File System to manage new types for custom information. For each new type, the developer can define custom attributes about the information that are then used to track and search for the information.

#### Development Tools

The purpose of hosting files on any type of file service is to make them available to applications. While all of your files are still available to word processors, Web authoring tools, and other types of client applications, Oracle Internet File System includes a Software Development Kit (SDK) that you can use to customize the server for specific purposes, such as making file contents available to reporting tools, sending alerts when files are updated, or formatting files for Web-based applications.

Oracle Internet File System SDK includes the following components described in Table 2-1.

##### Table 2-1 Oracle Internet File System SDK Components

SDK Component | Description | Examples
--- | --- | ---
Default XML Parser | A Java application that extracts file contents and stores them separately from the file itself. You can add your own parsers to Oracle Internet File System by registering them through XML. | Extract information from files and make it available to data mining tools Organize your files and folders into subclasses so you can set alerts or add additional attributes to files
Default XML Renderer | Like the parser, a Java application that you register with Oracle Internet File System by using XML | Reconstruct a parsed file or portions of a parsed file into other formats, such as HTML
Agents | A Java application that executes on a schedule that you define | Send e-mail alerts when insert, delete, or update operations occur Set events, such as file deletions or file moves, that execute on a schedule
Overrides | A method that allows an application program to intervene with the standard schema operations (Insert, Update, and Free) | Add an attribute with a specified value to every new instance of a custom document class Provide special server-side validation on Update operations
Java API | A collection of published Java classes | Create and manage agents Develop applications Create custom parsers Manage database objects Create custom renderers Manage search functionality

#### Supported Protocols

Oracle Internet File System includes a set of standard protocol servers. Each protocol server accepts commands from a standard client and maps those commands to schema operations. The protocol servers that are included are:

- SMTP (Simple Mail Transfer Protocol): Verifies and delivers e-mail, and runs parsers.

- IMAP (Internet Message Access Protocol): Delivers e-mail messages to your e-mail applications.

- HTTP: Delivers Web pages to client browsers and provides Web DAV (Distributed Authoring and Versioning) features for Web Folders.

- FTP: Transfers files.

- SMB (Server Message Block): Provides access to Oracle Internet File System from Windows applications, including Windows Explorer.

#### Component Architecture Overview

Figure 2-5 shows the main components of Oracle Internet Files system, which includes the protocol servers, the services, and the schema.

#### Figure 2-5 Oracle Internet File System Component Architecture

See Also: Oracle Internet File System documentation in the Oracle9i Application Server Documentation Library.

## Business Logic Services

These services support your application logic. Using Business Logic Services, you can build and run your Web applications. The following sections describe the major elements that provide business logic services in Oracle9i Application Server. These services are highlighted in Figure 2-6.

#### Figure 2-6 Business Logic Services in Oracle9i Application Server

### Oracle Business Components for Java

Oracle Business Components for Java is a 100% pure Java and XML framework that enables productive development, portable deployment, and flexible customization of multitiered, database applications from reusable business components. Application developers can use this framework to

- author and test business logic in components that automatically integrate with databases.

- reuse business logic through multiple SQL views of data that support different application tasks

- access and update the views from servlets, JavaServer Pages (JSPs), and Thin-Java Swing clients

- customize application functionality in layers without modifying the delivered application

Once developed, these application services can then be deployed as either EJB Session Beans or CORBA Server Objects on Oracle9i Application Server.

Note: Oracle JDeveloper, an application development tool, is required to create, manage, debug, and deploy Oracle Business Components for Java applications. You can download Oracle JDeveloper from Oracle Technology Network at `http://otn.oracle.com/products/jdev/`

See Also: Oracle Business Components for Java documentation in the Oracle9i Application Server Documentation Library.

### Oracle8i JVM

Designed as a highly scalable, server-side Java platform, Oracle8i JVM is an enterprise-level server environment that uses 100% pure Java and supports Enterprise JavaBeans, CORBA, and database stored procedures. Oracle8i JVM achieves scalability through its unique architectural design, which aids memory management when the number of users increases.

Oracle8i JVM provides a number of advantages, such as

- enhanced garbage collection algorithms that facilitate more efficient memory allocation

- support for concurrent, stateful, conversational clients

- shared resources across multiple user sessions so only one Java Virtual Machine needs to run to provide user session support

- automatic load balancing so that no multi-threaded applications are necessary

Oracle8i JVM is the common foundation for running Java and Java services in Oracle9i Application Server and Oracle8i. Consequently, components can be seamlessly moved across tiers without having to change any code.

See Also: Oracle8i JVM documentation in the Oracle9i Application Server Documentation Library.

### Oracle8i PLSQL

Oracle8i PLSQL is a scalable engine for running business logic against data in Oracle Database Cache and Oracle8i database. It enables users to invoke PL/SQL procedures stored in Oracle databases through their Web browsers. The stored procedures retrieve data from tables in the database and generate HTML pages that include the data which are then returned to the client browser.

See Also: PL/SQL User's Guide and Reference in the Oracle Database Documentation Library.

### Oracle Forms Services

You can run applications based on Oracle Forms technology either over the Internet or over your corporate intranet. On the application server tier, Oracle Forms Services consists of a listener and a runtime engine, where the application logic is stored. On the client tier, Oracle Forms Services consists of a Java applet, which provides the user interface for the runtime engine, and Oracle JInitiator (a Java plug-in) that provides the ability to specify the use of a specific Java virtual machine on the client.

In Oracle9i Application Server, when a user submits a URL to launch an Oracle Forms-based application, the Web listener accepts the request and downloads the Oracle Forms applet to the user's browser. Then the Oracle Forms applet establishes a persistent connection to an Oracle Forms runtime engine. All processing takes place between the Oracle Forms applet and the Oracle Forms Services runtime engine, which seamlessly handles any queries or commits to the database.

See Also: Oracle Forms Services documentation in the Oracle9i Application Server Documentation Library.

## Presentation Services

These services deliver dynamic content to client browsers, supporting servlets, JavaServer Pages, Perl/CGI scripts, PL/SQL Pages, forms, and business intelligence. By using Presentation Services, you can build your presentation layer for your Web applications. These services are highlighted in Figure 2-7.

#### Figure 2-7 Presentation Services in Oracle9i Application Server

### Apache JServ

Apache JServ is a 100% pure Java servlet engine that is fully compliant with the following Sun Microsystems Java specifications:

- Java Servlet APIs version 2.0

- Java Runtime Environment (JRE) version 1.1

Apache JServ works on any Java Virtual Machine that is compliant with this JRE and will execute any Java servlet that is compliant with this version of the Java Servlet APIs specification.

When the HTTP server receives a servlet request, it is routed to mod_jserv, which forwards the request to the Apache JServ servlet engine.

See Also: Apache JServ Documentation in the Oracle9i Application Server Documentation Library.

### OracleJSP (JavaServer Pages)

As Sun Microsystems explains, JavaServer Pages technology extends Java Servlet technology, and supports the use of Java calls and scriptlets within HTML and XML pages. By using JSP pages, you can combine static template data with dynamic content to create user interfaces. JSP pages support component-based development, separating business logic (usually in JavaBeans) from the presentation, thus allowing developers to focus on their areas of expertise. Consequently, JSP developers (who may not know Java) can focus on presentation logic, while Java developers can focus on business logic.

For general information about JavaServer Pages, refer to the JavaServer Pages Specification (available from http://java.sun.com).

OracleJSP is an implementation of JavaServer Pages version 1.1 as specified by Sun Microsystems and extends this specification to provide these benefits:

- portability between servlet environments: OracleJSP pages are supported on all Web servers that support Java servlets built to the version 2.0 or higher specification. Consequently, you can migrate your existing JSP pages that are compliant with the version 1.0 specifications to Oracle9i Application Server without needing to rewrite them.

- support for SQLJ: SQLJ is a standard syntax for embedding SQL commands directly into Java code. OracleJSP supports SQLJ programming in JSP scriptlets. This includes support for an additional filename extension, `.sqljsp`, which causes the OracleJSP translator to invoke the Oracle SQLJ translator.

- OracleJSP Markup Language (JML): Oracle provides the JML tag set as a sample tag library, which allows developers to use loop, conditional, and other high-level programming logic without having to know Java syntax.

- extended National Language Support (NLS): OracleJSP provides extended NLS support for servlet environments that cannot encode multibyte request parameters and bean property settings. For such environments, OracleJSP offers the `translate_params` configuration parameter, which can be enabled to direct OracleJSP to override the servlet container and do the encoding itself.

- extended datatypes: OracleJSP provides the `JmlBoolean`, `JmlNumber`, `JmlFPNumber`, and `JmlString` JavaBean classes in the `oracle.jsp.jml` package to wrap the most common Java datatypes. These extended datatypes provide a way to work around the limitations of Java primitive types and wrapper classes in the standard `java.lang` package.

- custom JavaBeans: OracleJSP includes a set of custom JavaBeans for accessing an Oracle database.

  See Also: JavaServer Pages Specification at `http://java.sun.com` for general information about JavaServer Pages. OracleJSP documentation in the Oracle9i Application Server Documentation Library.

### Oracle PL/SQL Server Pages (PSP)

Oracle PSPs are analogous to JavaServer Pages, but they use PL/SQL rather than Java for the server-side scripting. Oracle PSP includes the PSP Compiler and the PL/SQL Web Toolkit. By using this service when developing applications, you can separate page format from application logic.

Starting with either an existing Web page or stored procedure, you can create dynamic Web pages. These dynamic Web pages can perform database operations and display the results as HTML, XML, plain text, or some other document type that your browser has been configured to recognize. Typically, a PL/SQL server page is intended to be displayed in a Web browser. However, it can also be retrieved and interpreted by a program that can make HTTP requests, such as a Java or Perl application.

A PSP file can contain whatever content you like, with text and tags interspersed with PSP directives, declarations, and scriptlets:

- In the simplest case, it is nothing more than an HTML file or an XML file. Compiling it as a PSP produces a stored procedure that outputs the exact same HTML or XML file.

- In the most complex case, it is a PL/SQL procedure that generates all the content of the Web page, including the tags for title, body, and headings.

- In the typical case, it is a mix of HTML or XML (which provide the static parts of the page) and PL/SQL (filling in the dynamic content).

You can author the Web pages in a script-friendly HTML authoring tool and drop the pieces of PL/SQL code into place. Embedding the PL/SQL code in the HTML page that you create lets you write content quickly and follow a rapid, iterative development process.

See Also: Oracle8i Application Developer's Guide - Fundamentals in the Oracle Database Documentation Library.

### Perl Interpreter

The Perl Interpreter is a persistent Perl runtime environment that is embedded in Oracle HTTP Server, thus saving the overhead of starting an external interpreter. When Oracle HTTP Server receives a Perl request, it is routed through mod_perl to the Perl Interpreter for processing.

See Also: Apache mod_perl Documentation in the Oracle9i Application Server Documentation Library.

## Developer's Kits

To support application development and deployment, several toolkits containing libraries and tools are included in Oracle9i Application Server. Using the Developer's Kits, you can build Web applications that can access your database. These services are highlighted in Figure 2-8.

#### Figure 2-8 Developer's Kits in Oracle9i Application Server

### Oracle Database Developer's Kit

Oracle Database Client Developer's Kit contains client libraries for Oracle8i and the Java client libraries (JMS, SQLJ, JDBC, and OCI).

#### Oracle Java Messaging Service (JMS) Toolkit

Oracle JMS extends the standard Sun Microsystems Java Message Service version 1.02 specification. In addition to the standard JMS features, Oracle JMS provides a Java API for Oracle Advanced Queuing (AQ). This API supports the AQ administrative operations and other AQ features including

- an administrative API to create queue tables, queues, and topics

- point-to-multipoint communication, which extends the standard point-to-point by using recipient lists for topics

- message propagation between destinations, which allows applications to define remote subscribers

- transacted sessions so you can perform JMS as well as SQL operations in one atomic transaction

- message retention after messages have been dequeued

- message delay so you can make messages visible after a specified time

- exception handling so messages can be moved to exception queues if they cannot be processed successfully

- Oracle8i AdtMessages message types (These are stored in the database as Oracle objects. Consequently, the payload of the message can be queried after it is enqueued. Subscriptions can be defined on the contents of these messages in addition to the message properties.)

  See Also: Oracle8i Application Developer's Guide - Advanced Queuing in the Oracle Database Documentation Library.

#### Oracle SQLJ Translator

Oracle SQLJ is a preprocessor that developers can use to embed static SQL operations in Java code. A SQLJ program is a Java program that contains embedded static SQL statements which comply with the ANSI-standard SQLJ Language Reference syntax. Static SQL operations are predefined--the operations themselves do not change in real-time as a user runs the application, although the data values transmitted can change dynamically.

Oracle SQLJ consists of a translator and a runtime component. The translator replaces embedded SQL with calls to the SQLJ runtime component, which implements the SQL operations. In standard SQLJ, this is typically done through calls to a JDBC driver. In the case of Oracle9i Application Server, you use an Oracle JDBC driver. When users run SQLJ applications, the runtime component is invoked to handle the SQL operations.

##### Oracle SQLJ Translator

The translator is a precompiler, which developers run after creating SQLJ source code. The translator checks

- syntax of the embedded SQL

- SQL constructs, which are compared to a specified database schema to ensure consistency within a particular set of SQL entities. For example, it verifies table names and column names. This feature is optional.

- datatypes, to ensure that the data exchanged between Java and SQL have compatible types and proper type conversions

The translator, written in 100% pure Java, supports a programming syntax that allows you to embed SQL operations inside SQLJ executable statements. SQLJ executable statements and SQLJ declarations are preceded by the `# sql` token and can be interspersed with Java statements in a SQLJ source code file.

The translator produces a Java source file and one or more SQLJ profiles, which are serialized Java resources that contain details about the embedded SQL operations in your SQLJ source code. After the translator produces the Java source file and the profiles, SQLJ automatically invokes a Java compiler to produce class files from the Java source file.

##### Oracle SQLJ Runtime

This component is a thin layer of pure Java code that runs above the JDBC driver. When Oracle SQLJ translates your SQLJ source code, embedded SQL commands in your Java application are replaced by calls to the SQLJ runtime component. Runtime classes act as wrappers for equivalent JDBC classes, providing SQLJ functionality. When the user runs the application, the SQLJ runtime component acts as an intermediary, reading information about your SQL operations from the profile and passing instructions along to the JDBC driver.

A SQLJ runtime component can be implemented to use any JDBC driver or proprietary means of accessing the database cache or origin database. Oracle SQLJ runtime requires a JDBC driver but can use any standard JDBC driver. To use Oracle-specific database types and features, however, you must use an Oracle JDBC driver.

See Also: Oracle8i SQLJ Developer's Guide and Reference in the Oracle9i Application Server Documentation Library.

#### Oracle Java Database Connectivity (JDBC) Drivers

JDBC is a database access API that enables you to connect to a database and then prepare and execute SQL statements against the database. Core Java class libraries provide the interfaces and Oracle JDBC drivers implement those interfaces to access an Oracle database.

Oracle JDBC drivers are described in Table 2-2.

##### Table 2-2 Oracle JDBC Drivers

Driver | Description
--- | ---
JDBC Thin Driver | You can use the JDBC thin driver to write 100% pure Java applications that access Oracle SQL data. You can use it for EJBs in the database. The JDBC thin driver is especially well-suited to Web browser-based applications because you can dynamically download it from a Web page.
JDBC Oracle Call Interface Driver | The JDBC Oracle Call Interface (OCI) driver accesses Oracle-specific native code (that is, non-Java) libraries on the client or in the middle tier, providing a richer set of functionality and some performance boost compared to the JDBC thin driver, at the cost of significantly larger size.
JDBC Server-side Internal Driver | Oracle8i JVM uses the JDBC server-side internal driver when Java code runs on Oracle9i Application Server. It allows Java applications running in Oracle8i JVM to access locally defined data (that is, on the same machine and in the same process) with JDBC. It provides a further performance boost because of its ability to use underlying Oracle RDBMS libraries directly, without the overhead of an intervening network connection between your Java code and SQL data. This driver can also be used for EJBs in Oracle8i JVM.

See Also: Oracle8i JDBC Developer's Guide and Reference in the Oracle9i Application Server Documentation Library for detailed information on the Oracle JDBC drivers and Oracle extensions to the standard JDBC API.

#### Oracle Call Interface (OCI)

Oracle Call Interface is an application programming interface (API) that allows you to create applications that use the native procedures or function calls of a third-generation language to access an Oracle database server and control all phases of SQL statement execution. OCI supports the datatypes, calling conventions, syntax, and semantics of a number of third-generation languages including C, C++, COBOL, and FORTRAN.

OCI provides

- improved performance and scalability through the efficient use of system memory and network connectivity

- consistent interfaces for dynamic session and transaction management in a two-tier client/server or multitiered environment

- database authentication through the middle tier

- comprehensive support for application development using Oracle objects

- access to external databases

- applications that can service an increasing number of users and requests without additional hardware investments

OCI allows you to manipulate data and schemas in an Oracle database using a host programming language, such as C. It provides a library of standard database access and retrieval functions in the form of a dynamic runtime library (OCI library) that can be linked in an application at runtime.

##### OCI Components

OCI components encompass these main sets of functionality:

- APIs to design a scalable, multithreaded application that can support large numbers of users securely

- SQL access functions, for managing database access, processing SQL statements, and manipulating objects retrieved from an Oracle database server

- Datatype mapping and manipulation functions, for manipulating data attributes of Oracle types

- Data-loading functions, for loading data directly into the database without using SQL statements

- External procedure functions, for writing C callbacks from PL/SQL

  See Also: Oracle Call Interface Programmer's Guide in the Oracle Database Documentation Library.

### Oracle XML Developer's Kit

Oracle XML Developer's Kit (XDK) contains XML (Extensible Markup Language) component libraries and utilities that you can use to enable applications and Web sites with XML. The XDK in the Oracle9i Application Server contains the components described in Table 2-3.

##### Table 2-3 XDK Components in Oracle9i Application Server

XDK Component | Description
--- | ---
XML Parser for Java | Parses XML documents or stand-alone Document Type Definitions (DTDs) so Java applications can process them. This parser uses industry standard Document Object Model (DOM) and Simple API for XML (SAX) interfaces. DOM APIs permit applications to access and manipulate an XML document as a tree structure in memory. This interface is used by such applications as editors. SAX APIs permit an application to process XML documents using an event-driven model.
XML Class Generator for Java | Automatically generates Java class source files from XML DTDs. Using these classes, Java applications can construct, validate, and print XML documents that comply with the input DTD. The class generator works in conjunction with the parser, which parses the DTD and passes the parsed document to the class generator.
XML Transviewer JavaBeans | Displays and transforms XML documents and data through Java components to add graphical or visual interfaces to XML applications. The included beans are: DOM Builder Bean: Encapsulates the Java XML Parser with a bean interface and extends its functionality to permit asynchronous parsing. By registering a listener, Java applications can parse large or successive documents having control return immediately to the caller. TreeViewer Bean: Displays XML formatted files graphically as a tree. SourceViewer Bean: Displays XML files with color syntax highlighting when modifying an XML document with an editing application. XSL Transformer Bean: Transforms an XML document to other text-based formats, including HTML and DDL, by applying an XSL (Extensible Stylesheet Language) stylesheet.
XSQL Servlet | Processes SQL queries and outputs the result set as XML. This processor is implemented as a Java servlet and takes as its input an XML file containing embedded SQL queries.

See Also: Oracle XML Developer's Kit documentation in the Oracle9i Application Server Documentation Library.

### Oracle LDAP Developer's Kit

This service supports client interaction with Oracle Internet Directory, the Oracle LDAP (Lightweight Directory Access Protocol) directory server. Oracle Internet Directory combines a native implementation of the Internet Engineering Task Force's (IETF) LDAPv3 standard with an Oracle8i back-end data store.

Specifically, you can use Oracle LDAP Developer's Kit to develop and monitor LDAP-enabled applications. It supports client calls to directory services, encrypted connections, and you can use it to manage your directory data. Oracle LDAP Developer's Kit contains the following components:

- Oracle Internet Directory C API

  This is an LDAP C API that is based on the Internet Engineering Task Force (IETF) RFC 1823. This component supports client calls to directory services from a standard C programming environment.

- JNDI 1.2 (Java Naming and Directory Interface)

  This programming interface from Sun Microsystems enables Java-based programs to communicate directly with LDAP servers such as Oracle Internet Directory.

- SSL Toolkit

  These extensions to the LDAP API enable one-way, two-way, and simple encrypted connections to directory services.

- Oracle Internet Directory Command-Line Tools

  This set of LDAP-compliant command line tools is used for querying and returning results from Oracle Internet Directory.

- Oracle Directory Manager

  This is a Java-based application used for managing data stored in Oracle Internet Directory.

  See Also: JNDI documentation at `http://java.sun.com/products/jndi` Oracle Internet Directory Application Developer's Guide in the Oracle9i Application Server Documentation Library for information about Oracle Internet Directory C API, SSL Toolkit, and Oracle Internet Directory Command-Line Tools. Oracle Internet Directory Administrator's Guide in the Oracle Database Documentation Library for information about Oracle Directory Manager.

## Portal Services

You can use these services to build portal sites that integrate all of your content on a single Web page. Portal sites give your users a single, centralized, personalized view of relevant applications and data. By using Oracle9i Application Server Portal Services, you can make your portal sites accessible to both fixed and mobile clients. The major elements that support these services are highlighted in Figure 2-9.

#### Figure 2-9 Portal Services in Oracle9i Application Server

### Oracle Portal

Oracle Portal provides portal services for users connecting from a traditional desktop. An enterprise portal is a Web-based application that provides a common, integrated entry point for accessing dissimilar data types on a single Web page. For example, you can create portals that give users access to Web applications, business documents, business intelligence reports, graphics, and URLs which reside both inside and outside your corporate intranet. Figure 2-10 shows a sample portal page.

#### Figure 2-10 Sample Portal Page

Oracle Portal provides an organized, personalized view of business information, Web content, and applications. Its extensible framework integrates disparate sources of applications and content into dynamically assembled Web pages. Self-service publishing features allow users to post and share business documents and Web content. The flexible deployment architecture allows you to centrally administer all portal services through a browser.

#### Create and Administer a Single Point of Interaction with Enterprise Information

You can manage the user experience, creating and administering automatically generated portal pages that contain portlets. To users, portlets on a page appear as live areas of HTML that present text or graphics as links to information or applications. Portlets provide access to Web resources, such as applications, Web pages, or syndicated content feed. They are owned by portlet providers, which provide the communication link between the portal page and the portlets.

Each of the Web resources that the portlets provide access to can be personalized and managed as an Oracle Portal service. Portal administrators can manage portlets in the following ways:

- Unify and streamline access to information: Portal administrators grant access to applications and information by adding portlets to a portal page. Then when users request the page, Oracle Portal calls the portlet provider, accepts the output, applies user page preferences, and assembles the completed Web page.

- Customize pages and page views: Using page personalization features, portal administrators can create and manage community or departmental pages while maintaining a standardized corporate style. Group and individual privileges can be extended so that users can personalize a page and create unique page views.

#### Self-Service Web Publishing

Oracle Portal incorporates self-service features so that users and administrators can directly publish and manage their own information, such as

- static content: To publish and manage their own content, users can upload their files, use version control, format page display, and set access controls.

- dynamic content: Users with minimal development experience can build application components that display and interact with database data, such as Web forms, charts, or reports. When complete, these components can be published as a portlet.

#### Implement Custom Portlets

Custom portlets are used to access information that is both specific to an enterprise and accessible through the Web. To accommodate the diversity of these information sources and their underlying architectures, Oracle Portal offers two implementation strategies for creating custom portlets:

- leverage built-in services: The Oracle Portal self-service content management features provide an easy way to make content available within the portal. No coding is required to use the built-in services.

- develop for public APIs: Oracle Portal can be extended programmatically through the development, registration, and execution of custom portlets that are developed for the Oracle Portal public APIs. These portlets can be implemented as stored procedures in an Oracle database or as server-side logic written in any Web language, such as Java, Perl, C, or ASP.

#### Oracle Portal Architecture

Oracle Portal is designed around a three-tier architecture that scales to fit departmental or enterprise requirements. The three tiers are

- database server tier: The stored procedures that comprise Oracle Portal are executed within the Oracle8i database. All of the user content that is uploaded and accessed through Oracle Portal is stored on the database. Oracle Portal uses Oracle Login Server for all user authentication, user management, and single signon services.

- application server tier: Oracle Portal uses Oracle HTTP Server for middle-tier Web communication services. Oracle HTTP Server mod_plsql translates HTTP requests from client browsers into calls to the database. Oracle HTTP Server mod_jserv and mod_ssl are used to execute Java servlets and to support S-HTTP, respectively.

- client tier: A standard Web browser is required to develop, deploy, administer, and configure Oracle Portal.

#### Common Portal Services

Developers who choose to implement stored procedure portlets can use a set of API services in their portlet code, including:

- context: Access general session information about the user

- session store: Store and retrieve portlet-specific values and preferences for the current login session

- preference store: Store and retrieve portlet-specific preferences that are defined by the user

- parameter passing: Access parameters from the Web page URL

- National Language Support: Store multiple language strings to use as portlet text; retrieve strings based on browser settings

- logging: Record and retrieve actions performed on portlet objects

- error handling: Detect and react programmatically to errors during the execution of portlet objects

- security and access control list: Access security and authorization information about the user

  See Also: Oracle Portal documentation in the Oracle9i Application Server Documentation Library.

### Oracle Portal-to-Go

Oracle Portal-to-Go is a portal service for delivering information and applications to mobile devices. Using Portal-to-Go, you can create custom portal sites that use different kinds of content, including Web pages, custom Java applications, and XML applications. Portal sites make this diverse information accessible to mobile devices without you having to rewrite the content for each target device platform.

Portal-to-Go works by isolating content acquisition from content delivery. It provides an intermediary format layer, Portal-to-Go XML, between the source format and the target format. Portal-to-Go XML is a set of DTDs (Document Type Definitions) and XML document conventions used to define content and internal objects in Oracle Portal-to-Go.

#### Personalized User View

Users can configure their device portals from the Portal-to-Go Personalization Portal. The Personalization Portal is a Web-based interface that users access from their desktop computers. Using the Personalization Portal, users can store frequently accessed e-mail addresses, passwords, PINs, and account numbers.

Portal-to-Go uses JavaServer Pages, graphics, and stylesheets to generate the Personalization Portal user interface. By modifying the elements that Portal-to-Go uses to generate the Personalization Portal, users can add, rename, or move services and jobs. Then by using the customized interface, users can configure what services are available to access on their mobile devices. A sample of the Personalization Portal is shown in Figure 2-11.

#### Figure 2-11 Personalization Portal

#### Retrieve Content from Various Sources

Oracle Portal-to-Go uses adapters, which are dynamically loaded Java class files, to retrieve content from external sources. You can build your own adapters with the development tools that are included in Oracle Portal-to-Go, or you can use the following adapters that are provided:

- provisioning adapter: You can use this adapter to add, remove, or modify user accounts.

- SQL adapter: You can use this adapter to create services that query databases, invoke PL/SQL procedures, or call stored procedures in the database.

- servlet adapter: You can use this adapter to integrate applications that use servlets so they can be called as Portal-to-Go services, making them available to mobile devices.

- Web integration adapter: You can use this adapter to retrieve and adapt Web content. The Web Integration adapter works with Web Interface Definition Language (WIDL) files to map source content to Portal-to-Go XML.

- stripper adapter: You can use this adapter to dynamically retrieve and convert the content of a URL target. Unlike the Web Integration adapter, the stripper adapter dynamically processes the markup tags in the content, either removing them or leaving them intact. However, you can extend this adapter to process the tags in other useful ways that fit your implementation.

- URL adapter: You can use this adapter to access any content in Portal-to-Go XML through a URL, making it easy to integrate different types of applications.

#### Supported Target Device Formats

Portal-to-Go transformers convert content, which has been retrieved by adapters, into the appropriate format for the target device. Transformers can be either a Java class file or an XSLT (Extensible Stylesheet Language Tranformations) stylesheet. Like adapters, you can create your own transformers with the development tools that are included in Oracle Portal-to-Go, or you can use the transformers that are provided to convert content into the following target formats:

- WML 1.1: The Wireless Markup Language that is defined by the WAP (Wireless Access Protocol) Forum. Portal-to-Go provides transformers for a general WML implementation, as well as for device-specific WML implementations.

- Tiny HTML: A minimal HTML implementation suitable for handheld devices, such as Palm Computing Platform and Windows CE devices.

- VoxML/VoiceXML: The Motorola markup language that enables voice interaction with applications.

- HDML: The Handheld Devices Markup Language is a simplified version of HTML designed specifically for handheld devices.

- Plain Text: The plain text transformer converts content for Short Message Service devices and e-mail applications.

#### Oracle Portal-to-Go Architecture

In Oracle9i Application Server, Portal-to-Go uses the Oracle HTTP Server listener, Apache JServ, and OracleJSP to deliver content in the appropriate format to target mobile devices. The Portal-to-Go request and response sequence in Oracle9i Application Server is shown in Figure 2-12.

#### Figure 2-12 Portal-to-Go Request and Response Sequence

1. When users request information with their mobile devices, the request is received by Oracle HTTP Server and routed through mod_jserv to the Portal-to-Go request manager in Apache JServ.

2. The request manager performs initial preprocessing, including user authentication.

3. If the user is authenticated, then the request manager creates a request object, which it forwards to the master service associated with the request.

   A master service is an XML file that is stored in the Portal-to-Go repository, located in the database. It describes which adapter class file to invoke to service the request.

4. The master service invokes the appropriate adapter class file in Apache JServ.

5. The adapter retrieves the content from the appropriate source, which can be a database, Web site, application, e-mail server, or other mobile device.

6. The adapter returns the content in Portal-to-Go XML and forwards it to the transformer.

7. The transformer converts the content into the format appropriate for the target device and forwards it to the request manager.

   Note: If the transformer is a Java class file, then it resides in Apache JServ. If it is an XSLT stylesheet, then it resides in the Portal-to-Go repository in the database.

8. The request manager returns the information to the user.

   See Also: Oracle Portal-to-Go documentation in the Oracle9i Application Server Documentation Library.

## Caching Services

To scale your e-business Web site, Oracle9i Application Server provides caching services. Caching services include Oracle Web Cache and Oracle Database Cache. Oracle Web Cache is a content-aware server accelerator that improves the performance, scalability, and availability of Web sites by caching both static and dynamic pages. Oracle Database Cache is a middle-tier database cache that reduces the load on the back-end database instance by caching frequently requested data, avoiding unnecessary network roundtrips for read-only data. These services are highlighted in Figure 2-13.

#### Figure 2-13 Caching Services in Oracle9i Application Server

### Oracle Database Cache (formerly Oracle8i Cache)

Oracle Database Cache is a database cache that resides on the middle tier as a service of Oracle9i Application Server. It improves the performance and scalability of applications that access Oracle databases by caching frequently used data on the middle-tier machine. With Oracle Database Cache, your applications can process several times as many requests as their original capacity because roundtrips to the back-end database are greatly reduced. Oracle Database Cache service supports running stateful servlets, JavaServer Pages, Enterprise JavaBeans, and CORBA objects in Oracle8i JVM.

#### Who Should Use Oracle Database Cache?

If your applications meet the following criteria, then you can use Oracle Database Cache to boost the scalability of your Web sites and the performance of your applications:

- Your applications access an Oracle database.

- You use a multitiered environment, where the clients, Oracle9i Application Server, and Oracle database servers are located on separate systems.

- Your applications communicate with an Oracle database through Oracle Call Interface (OCI), or an access layer built on OCI, like JDBC-OCI, ODBC, or OLE. The applications can be written using scripting or programming languages.

- Your Web or application users generate mostly read-only queries.

- Your applications can tolerate some synchronization delay with data in the origin database. That is, the cache does not need to be as up-to-date as the data in the origin database. (You decide how often to refresh the data.)

#### Performance and Scalability Benefits

Using Oracle Database Cache in the middle tier provides a number of performance and scalability benefits. The most significant benefits are listed below.

- Processing database queries on the middle tier reduces time spent sending and receiving data over the network so hardware resources are used more efficiently.

- Reducing the load on the back-end database means that it can support more users.

#### Oracle Database Cache Environment

In the Oracle Database Cache environment, the cache software consists of a middle-tier database cache for caching frequently accessed data and running intelligent software that routes queries. The origin database is on the back-end. It is the original and primary storage for the data. Currently, Oracle Database Cache can cache data from only one origin database.

##### Example of How Requests are Routed to Oracle Database Cache

When users request frequently accessed data, the requests pass from the client to Oracle Database Cache, through Oracle HTTP Server, and the database cache returns the data. For example, assume that you cache information about books, such as the book title, author, description, and ranking in a best-seller list, in the middle-tier database cache. If User A and User B both request the list of the top ten mystery books, then each user's request is routed to the middle-tier database cache. Because the data is stored on the same tier, the data is returned quickly and the request does not need to pass to the origin database server for retrieval of the data. If each user clicks on one of the titles to get more detailed information about the book, then the query is again routed to the middle-tier database cache, which returns the data quickly.

#### How Oracle Database Cache Differs from an Origin Database

Although Oracle Database Cache looks like an origin database placed on the middle-tier, there are important differences:

- Oracle Database Cache can cache data, but it is not a persistent store for data. You cannot perform backup and recovery on it. If you need to back up your data, then you must store it on the origin database.

- Oracle Database Cache cannot be used to create tables. The only way you can put data into this environment is by caching data from the origin database to the middle-tier system.

- Oracle Database Cache does not provide transparent application failover (TAF) guarantees if it fails because Oracle Database Cache is not a true persistent store for data.

- Oracle Database Cache should not be treated as an enlisted database in global transactions to avoid an unnecessary and expensive two-phase commit. For more information about transaction handling with Oracle Database Cache, see "Global Transactions Including Oracle Database Cache and the Origin Database".

#### How Do Applications Use Oracle Database Cache?

To take advantage of the benefits of Oracle Database Cache, you only need to configure the environment of your applications. You do not need to make any modifications to your applications if they

- use SQL statements to access the database, or

- are linked with OCI using dynamic libraries and are layered directly on OCI.

If your applications satisfy either criteria, then queries are routed to the middle-tier database cache automatically.

Note: Applications must use OCI in threaded mode. If they do not, then refer to the Oracle Database Cache documentation in the Oracle9i Application Server Documentation Library.

Applications that are linked with OCI using static libraries and layered directly on OCI, require that you link your application with the OCI library that ships with Oracle Database Cache.

See Also: Oracle Database Cache documentation in the Oracle9i Application Server Documentation Library.

### Oracle Web Cache

Oracle Web Cache is a server accelerator caching service that improves the performance, scalability, and availability of busy e-business Web sites that run on Oracle9i Application Server and Oracle8i. By storing frequently accessed URLs in virtual memory, Oracle Web Cache eliminates the need to repeatedly process requests for those URLs on the Web server. Unlike legacy proxy servers that only handle static images and text, Oracle Web Cache caches both static and dynamically generated HTTP content from one or more application Web servers. Using Oracle Web Cache, Web clients experience faster content retrieval and the load on Oracle9i Application Server is greatly reduced.

#### Oracle Web Cache Main Features

The main features of Oracle Web Cache make it a perfect caching solution for e-business Web sites that host online catalogs, news services, and portals:

- static and dynamically generated content caching: Caches documents according to rules that you specify

- cache invalidation: Supports invalidation as a mechanism to keep Oracle Web Cache contents consistent with the content on Oracle9i Application Server

- performance assurance: Built-in performance assurance heuristics handle performance issues while maintaining cache consistency. These heuristics assign a queue order to documents and determine which documents can be served stale and which must be retrieved immediately.

- surge protection: Allows you to set a limit on the number of concurrent requests that are passed to Oracle Web Cache to avoid overloading it.

- load balancing: Evenly distributes requests over many Oracle HTTP Servers that Oracle Web Cache cannot serve. Oracle Web Cache is designed to manage HTTP requests for up to 100 Oracle9i Application Server machines.

- backend failover: Automatically redistributes the load over the remaining Web servers when one server fails. When the failed server returns to operation, Oracle Web Cache automatically includes it in the load mix.

- session tracking: Supports Web sites that use session tracking to track users.

- security: Provides password authentication for administration and invalidation operations, control over which ports administration and invalidation operations can be requested from, and timeout for inactive connections.

#### Oracle Web Cache Architecture Overview

Oracle Web Cache is positioned in front of Oracle HTTP Servers to cache their content and to provide that content to Web browsers that request it. When Web browsers access your Web site, they send HTTP requests to Oracle Web Cache, which acts as a virtual server to the Oracle HTTP Servers. If the requested content has changed, then Oracle Web Cache retrieves the new content from an Oracle HTTP Server. Figure 2-14 shows the basic architecture of Oracle Web Cache.

#### Figure 2-14 Oracle Web Cache Architecture

See Also: Oracle Web Cache documentation at `http://otn.oracle.com/product/ias`

## System Services

To provide system management and security services, Oracle9i Application Server includes Oracle Enterprise Manager and Oracle Advanced Security. These services manage your Oracle environment and network security through encryption and authentication that uses SSL (Secure Sockets Layer). The major elements that support these services are highlighted in Figure 2-15.

#### Figure 2-15 System Services in Oracle9i Application Server

### Oracle Enterprise Manager

Oracle Enterprise Manager is a system management tool that provides an integrated solution for centrally managing your Oracle platform. Combining a graphical console, Oracle Management Servers, Oracle Intelligent Agents, common services, and administrative tools, Oracle Enterprise Manager provides a comprehensive systems management platform for managing your Oracle products.

In Oracle9i Application Server, you use Oracle Enterprise Manager console (a graphical interface) to manage Oracle Database Cache, Oracle Forms Services, and the host operating system.

From Oracle Enterprise Manager console, you can perform the following tasks:

- centrally manage, administer, and diagnose Oracle Database Cache and Oracle Forms Services

- effectively monitor and respond to the status of your Oracle products and third-party services

- schedule activities on multiple machines at varying time intervals

- monitor networked services for events

- customize your display by organizing your server components and services into logical administrative groups

##### Three-Tier Architecture

Oracle Enterprise Manager architecture consists of a three-tier framework, which is described in Table 2-4.

##### Table 2-4 Oracle Enterprise Manager Three-Tier Architecture

Tier | Description
--- | ---
First-tier Console | Provides a graphical interface for administrators. This tier includes Cache Manager console for managing Oracle Database Cache. For information about Cache Manager console, see the Oracle8i Concepts and Administration Guide on your Documentation Library CD-ROM.
Second-tier Management Servers Foot 1 | Provides a scalable middle tier for processing all system management tasks.
Third-tier Intelligent Agents Foot 2 | Monitors databases and services on each machine, and executes tasks received from the Management Server.

1 Only available with Oracle9i Application Server Enterprise edition. 2 Intelligent Agents support Simple Network Management Protocol (SNMP), enabling third-party applications to communicate with the agent and be managed along with Oracle services.

Note: For this release, Oracle Database Cache and Oracle Forms are the only services in Oracle9i Application Server that you can manage using Oracle Enterprise Manager. If you do not plan to use Oracle Database Cache or Oracle Forms Services, then you are not required to deploy Oracle Enterprise Manager.

##### Benefits of Oracle Enterprise Manager

This system management tool enables administrators to maintain the highest level of performance and availability while controlling system management costs. The major benefits of Oracle Enterprise Manager are

- single point of management

- multi-administrator system support

- scalability for growing, distributed environments

- extensible architecture

- automated lights-out administration

- autonomous Intelligent Agents

- ease of use

  See Also: Oracle Enterprise Manager documentation in the Oracle9i Application Server Documentation Library for information about Oracle Enterprise Manager. Oracle Database Cache documentation in the Oracle9i Application Server Documentation Library for information about Cache Manager.

### Oracle Advanced Security

Oracle Advanced Security provides a comprehensive suite of security services for Oracle Database Cache, Oracle8i JVM, and Oracle8i PLSQL. Its functionality is twofold. First, network security features protect enterprise networks and securely extend corporate networks to the Internet. Second, it integrates security and directory services, combining to provide enterprise user management and single signon.

#### Network Security

- Data Privacy

  Oracle Advanced Security ensures that data is not disclosed during transmission using the following encryption types:

  - RSA Encryption: Oracle Advanced Security provides RSA RC4 with 128-bit, 56-bit, and 40-bit keys.

  - DES Encryption: Oracle Advanced Security offers a standard, optimized 56-bit key DES (Data Encryption Standard) encryption algorithm and supports DES40 for backwards compatibility.

- Data Integrity

  Oracle Advanced Security makes it virtually impossible for an intruder to modify, delete, or replay packets without detection. During transmission, Oracle Advanced Security generates a cryptographically secure message digest through cryptographic checksums using the MD5 algorithm. Then, the secure message digest is included with each packet sent across the network.

- Authentication

  Oracle Advanced Security provides strong authentication of Oracle users support for third-party authentication services. The following authentication methods are supported:

  SSL with X.509v3 certificates | RADIUS
  Kerberos and CyberSafe | Smart Cards (RADIUS-compliant)
  Token Cards (SecurID- or RADIUS-compliant) | Biometrics (Identix- or RADIUS-compliant)
  DCE (Distributed Computing Environment) |

- Single Signon

  Oracle Advanced Security provides single signon where the user authenticates once, then strong authentication occurs transparently in subsequent connections to other databases or services. Using single signon, users can access multiple accounts and applications with a single password. Oracle Advanced Security supports many forms of single signon, including Kerberos and CyberSafe, as well as SSL-based single signon.

- Authorization

  Once users are authenticated, they are then authorized to access only those services permitted by a corporate or business policy as found in a policy repository. Authorizations are provided with some of the third-party authentication solutions, such as DCE (Distributed Computing Environment), as well as with the enterprise user security functionality in Oracle Advanced Security.

#### Enterprise User Security

Oracle Advanced Security integrates with LDAP v3-compliant (Lightweight Directory Access Protocol) directory services, such as Oracle Internet Directory, for enterprise user management, enterprise role management, and single signon.

- Single Signon

  Oracle Advanced Security provides SSL-based (Secure Sockets Layer) single signon for Oracle users by virtue of integration with LDAP v3-compliant directory services. Integrated security and directory services and Oracle PKI (Public Key Infrastructure) implementation in Oracle Advanced Security enable SSL-based single signon to Oracle8i databases. Single signon enables users to authenticate once at the initial connection and subsequent connections authenticate the user transparently based on his or her X.509 certificate. This brings ease of use to the users and single station administration for the administrator with centralized management of users and authorizations.

- Enterprise User Management

  Oracle Advanced Security provides enterprise user management, allowing administrators to centrally manage users on a central directory service, rather than repeatedly managing the same users on individual databases. Using Oracle Enterprise Security Manager, a tool accessible through Oracle Enterprise Manager, enterprise users and their authorizations are managed in Oracle Internet Directory or other LDAP v3-compliant directory services. Enterprise users can be assigned enterprise roles that determine their access privileges in a database, and enterprise roles can be granted to one or more enterprise users.

- Schema-Independent Users

  Oracle Advanced Security allows the separation of users from schemas so that many enterprise users can access a single, shared application schema. Instead of creating a user account in each database that a user needs to access, administrators only need to create an enterprise user in the directory and point the user at a shared schema, which many other enterprise users can also access. This allows administrators to create an enterprise user once in the directory. Then that enterprise user can access multiple databases using only the privileges he or she needs, thus lowering the overhead of managing users in an enterprise.

- PKI Credential Management

  Oracle Wallet Manager provides secure management of PKI user credentials. It issues certificate requests to Certificate Authorities (CA), manages the X.509 certificates and trusted certificates, and creates a private and public key pair for users. In most cases, a user never needs to access a wallet once it has been configured, but can easily access a wallet using Oracle Enterprise Login Assistant, a login tool that hides the complexity of a private key and certificates from users. Users can then connect to multiple services over SSL without providing additional passwords. This provides the benefit of strong, certificate-based authentication as well as single signon.

- Directory Integration

  An Oracle Advanced Security license provides the use of Oracle Internet Directory to store and manage users and their authorizations. It supports enterprise user management with Oracle Internet Directory, which is fully integrated with Oracle8i. Additionally, Oracle Advanced Security supports other leading LDAP-compliant directories.

  See Also: Oracle Advanced Security Administrator's Guide in the Oracle Database Documentation Library.

## Business Intelligence Services

To understand what is happening in your business and on your Web site every day, you can use these services to deploy and share business intelligence over the Web or over your corporate intranet. These services are highlighted in Figure 2-16.

#### Figure 2-16 Business Intelligence Services in Oracle9i Application Server

### Oracle Reports Services

By using Oracle Reports Services and its Reports Servlet services, you can run new and existing Oracle Reports Developer reports on an internal company intranet, an external company extranet, or the Internet. Oracle Reports Services is optimized to deploy Oracle Reports Developer applications (Reports and Graphics) in a multitiered environment. It consists of the server component, runtime engines, and the servlet runner.

In Oracle9i Application Server, when a client submits a request for a report, the Oracle HTTP Server Web listener routes that request to the Oracle Reports Services server component. The server routes the request to the Oracle Reports Services runtime engine, which runs the report. Then the report output is sent back to the client through the Oracle HTTP Server Web listener.

See Also: Oracle Reports Services documentation in the Oracle9i Application Server Documentation Library.

### Oracle Discoverer 3i Viewer

Oracle Discoverer 3i Viewer is an environment for running and viewing Oracle Discoverer workbooks (reports) over the Web that have been created with Oracle Discoverer 3i Plus. By using Discoverer Viewer, Web authors can access database information and embed it in their sites without being database experts. They can publish live reports to Web sites by creating a URL that indicates to Discoverer Viewer which workbooks to open. Clicking the URL invokes the workbook query to the database and returns live results to the browser. Users interact with the query results to show more or less detailed information, to enter values into parameters, or to follow links to other applications.

Note: Currently, Oracle Discoverer 3i Viewer is available in the Windows NT and SPARC Solaris versions of Oracle9i Application Server.

By using Discoverer Viewer, you can

- run workbooks that have been saved dynamically in the database

- print workbooks

- export workbooks to various file formats

- perform drill-down analysis

- drill out to data held in other applications, such as Web pages or business documents

- leverage the security features of Oracle HTTP Server and the database (supports SSL, X.509 certificates, and other standard Web security protocols)

- embed workbooks into portals, such as Oracle Portal

#### Architecture Overview

Discoverer Viewer supports an HTML client and consists of two pieces:

- Discoverer Viewer servlet

- Discoverer Service

When users request Oracle Discoverer workbooks, the Viewer servlet, which runs on Oracle HTTP Server (Apache JServ servlet engine), interprets the HTTP request and makes the necessary calls to the Discoverer Service. The Discoverer Service response is represented in XML (Extensible Markup Language), which the servlet generates. Then the XML response is sent to an XML/XSL (Extensible Stylesheet Language) processor. This combines the XML with XSL configuration files that define the user interface. The processor then generates HTML to send back to the client browser. The Discoverer Viewer user interface can be customized for individual sites by defining or editing the XSL configuration files.

The Discoverer Viewer servlet and Discover Service can both run on the same system (with Oracle HTTP Server), if necessary. However, they are designed to be deployed on separate or multiple computers so that Oracle HTTP Server can be replicated using standard Web farm techniques. If you deploy the Discoverer Viewer servlet and Discoverer Service on separate computers, then Discoverer Service can be replicated and Discoverer Service sessions can be started on alternate systems to balance the load. This allows your implementation to support large numbers of Discoverer Viewer users.

#### Workbook Accessibility

Because Discoverer Viewer is an application built with standard Web technologies, all the usual features of your browser are available. Favorite workbooks can be bookmarked or embedded in other Web pages. Font sizes and link styles can be changed simply by changing your browser options. Discoverer Viewer uses no Java, no JavaScript, and no frames, so any browser can be used.

See Also: Oracle Discoverer 3i Viewer documentation in the Oracle9i Application Server Documentation Library. Chapter 3, "Developing Applications for Oracle9i Application Server" for information about using Oracle9i Application Server services.

| Copyright © 2000 Oracle Corporation. All Rights Reserved. |
Library | Service | Contents | Index