Skip Headers

Oracle9i Application Server Web Services Developer's Guide
Release 2 (9.0.2)

Part Number A95453-01
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Go to previous page Go to next page

2
Oracle9iAS Web Services

This chapter describes the Oracle9iAS Web Services features, architecture, and implementation.

This chapter covers the following topics:

Oracle9iAS OC4J (J2EE) and Oracle SOAP Based Web Services

Oracle9i Application Server (Oracle9iAS) supports two different Web Services options, a J2EE based Web Services environment built into Oracle9iAS OC4J, and an Apache SOAP (Oracle SOAP) based Web Services environment.

The chapters in this manual describe the Oracle9iAS OC4J (J2EE) Web Services environment. This environment makes it easy to develop and deploy services using J2EE artifacts, and is moving the Oracle Web Services features toward the evolving Web Services standards included in the next release of J2EE (J2EE 1.4). The J2EE based Web Services environment includes many development and deployment features that are integrated with the advanced Oracle9iAS features.

Appendix A, "Using Oracle SOAP" describes the Oracle9iAS support for Apache SOAP (Oracle SOAP). Oracle9iAS includes support for Apache SOAP because this implementation was one of the earliest SOAP implementations and it supports many existing Web Services applications.

See Also:

Appendix A, "Using Oracle SOAP"

Oracle9iAS Web Services Features

Oracle9iAS provides advanced runtime features and comprehensive support for developing and deploying Web Services. The Oracle9iAS infrastructure includes support for the following:

Developing End-to-End Web Services

Oracle9iAS Web Services provides comprehensive support for developing Web Services, including:

Deploying and Managing Web Services

Oracle Enterprise Manager deploys and manages Oracle9iAS Web Services. Oracle Enterprise Manager provides the following support for Web Services:

Using Oracle9i JDeveloper with Web Services

The Oracle9i JDeveloper IDE supports Oracle9iAS Web Services. Oracle9i JDeveloper is the industry's most advanced Java and XML IDE and provides unparalleled productivity and end-to-end J2EE and integrated Web Services standards compliance.

JDeveloper supports Oracle9iAS Web Services with the following features:

Securing Web Services

Oracle Enterprise Manager secures Oracle9iAS Web Services in the same way that it secures J2EE Servlets running under OC4J. This provides a comprehensive set of security facilities, including:

Aggregating Web Services

Oracle9iAS Portal facility provides the ability to aggregate Oracle9iAS Web Services within an organization into a Portal. Additionally, portlets in the Oracle9iAS Portal framework can be published as Web Services.

Oracle9iAS Web Services Architecture

The Oracle9iAS Containers for J2EE (OC4J) provides the foundation for building applications as components and supports Oracle9iAS Web Services (for RPC style Web Services). Oracle9iAS Web Services are implemented as any of the following:

For each implementation type, Oracle9iAS Web Services uses a different Servlet that conforms to J2EE standards to provide an entry point to a Web Service implementation. Figure 2-1 shows the Web Services runtime architecture, including the Servlet entry points.

The Oracle9iAS Web Services runtime architecture includes the following:

Figure 2-1 Web Services Runtime Architecture (RPC with Servlet Entry Points)

Text description of aswsv001.gif follows

Text description of the illustration aswsv001.gif

About Servlet Entry Points for Web Services

To use Oracle9iAS Web Services, you need to deploy a J2EE .ear file to Oracle9iAS. The J2EE .ear file contains a Web Services Servlet configuration, and includes an implementation of the Web Service. Oracle9iAS Web Services supplies the Servlet classes, one for each supported implementation type. At runtime, Oracle9iAS uses the Servlet classes to access the user supplied Web Service implementation.

The Oracle9iAS Web Services Servlet classes support the following Web Services implementation types:

When a Web Service is deployed, a unique instance of the Servlet class manages the Web Service. The Servlet class is implemented as part of Oracle9iAS Web Services runtime support. To make Web Services accessible, you deploy the Web Service implementation with the corresponding Web Services Servlet.


Note:

Using Oracle9iAS SOAP, based on Apache SOAP 2.2, there is only a single instance of a single Servlet entry point for all the Web Services in the entire system. The Oracle9iAS Web Services architecture differs; under Oracle9iAS Web Services, a unique Servlet instance supports each Web Service.


Web Services implementations under Oracle9iAS Web Services that take values as parameters or that return values to a client need to restrict the types passed. This restriction allows the types passed to be converted between XML and Java objects (and between Java objects and XML). Table 2-1 lists the supported types for passing to or from Oracle9iAS Web Services.

Table 2-1  Web Services Supported Data Types (for Parameters and Return Values)
Primitive Type Object Type

Boolean

java.lang.Boolean

byte

java.lang.Byte

double

java.lang.Double

float

java.lang.Float

int

java.lang.Integer

long

java.lang.Long

short

java.lang.Short

string

java.lang.String

java.util.Date

org.w3c.dom.Element

org.w3c.dom.Document

org.w3c.dom.DocumentFragment

Java Beans (whose property types are listed in this table or are another supported Java Bean)

Single-dimensional arrays of types listed in this table

What Are the Packaging and Deployment Options for Web Services

Oracle9iAS Web Services are accessed as Servlets, thus, Web Services need to be assembled by configuring a web.xml file that is a component of a J2EE .war file. Web Services implementation classes must be in the J2EE .war, .ear, ejb.jar files, or available through the classpath using standard J2EE mechanisms.

To deploy Oracle9iAS Web Services, you have the following options, depending on the implementation of the service:

About Server Skeleton Code Generation for Web Services

The first time Oracle9iAS Web Services receives a request for a service, the Servlet entry point automatically does the following:

After the server skeleton class is generated, when subsequent requests for a service are received, the server skeleton directly handles marshalling and then invokes the method that implements the service (for Web Services implemented with PL/SQL stored procedures or functions, the server skeleton invokes the Java class that accesses the Database containing the PL/SQL stored procedure or function).

Understanding WSDL and Client Proxy Stubs for Web Services

Oracle9iAS Web Services provides automatic generation of a WSDL file and of client-side proxy stubs.

There are several elements to Oracle9iAS Web Services WSDL support. First, Web Services are based on interoperable XML data representations and arbitrary Java objects do not in general map to XML. Oracle9iAS Web Services supports a set of XML types corresponding to a set of Java types (see Table 2-1 for the list of supported Java types).

Second, using Oracle9iAS Web Services, an application developer does not necessarily need to statically generate the WSDL interfaces for a Web Service (although the developer can do so). The Oracle9iAS Web Services runtime can generate WSDL and client-side proxy stubs if they are not provided when a Web Service is deployed. These can be generated by the runtime on the server-side and delivered when they are requested by a Web Services client.

Optionally, Oracle9iAS also provides a set of tools to statically generate WSDL and client-side proxy stubs given a Java class or J2EE application.

See Also:

"Using Oracle9iAS SOAP Management Utilities and Scripts"

Overview of a WSDL Based Web Service Client

Using Web Services, a client application sends a SOAP request that invokes a Web Service and handles the SOAP response from the service. To facilitate client application development, the Oracle9iAS Web Services runtime can generate WSDL to describe a Web Service. Using the WSDL, development tools can assist developers in building applications that invoke Web Services.

See Also:

Overview of a Client-Side Proxy Stubs Based Web Service Client

Using Web Services, a client application sends a SOAP request that invokes a Web Service and handles the SOAP response from the service. To facilitate client-side application development, Oracle9iAS Web Services can generate client-side proxy stubs. The client-side proxy stubs hide the details of composing a SOAP request and decomposing the SOAP response. The generated client-side proxy stubs support a synchronous invocation model for requests and responses. The generated stubs make it easier to write a Java client application to make a Web Service (SOAP) request and handle the response.

See Also:

Chapter 6, "Building Clients that Use Web Services"

About Universal Description, Discovery, and Integration Registry

The Universal Description, Discovery, and Integration (UDDI) specification consists of a four-tier hierarchical XML schema that provides the base information model to publish, validate, and invoke information about Web Services. The four types of information that the UDDI XML schema defines are:

Oracle Enterprise Manager Features to Register Web Services

When a Web Service is deployed on Oracle9iAS, you can use Oracle Enterprise Manager to register the specific Web Service and publish its WSDL to the UDDI registry and to discover published Web Services.

See Also:

Chapter 8, "Discovering and Publishing Web Services"


Go to previous page Go to next page
Oracle
Copyright © 2002 Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index