1 Introduction to SOA Composite Applications

An SOA composite application is an assembly of services, service components, references, and wires designed and deployed together to meet a business need. This chapter provides a high-level introduction to the various components that together form an SOA composite application.

This chapter includes the following sections:

1.1 Introduction to Oracle SOA Suite

Changing markets, increasing competitive pressures and evolving customer needs are placing greater pressure on IT to deliver greater flexibility and speed. Today every organization is faced with the must predict change in a global business environment, to rapidly respond to competitors, and to best exploit organizational assets for growth. In response to these challenges, leading companies are adopting SOA to deliver on these requirements by overcoming the complexity of their application and IT environments.

SOA provides an enterprise architecture that supports building connected enterprise applications. SOA facilitates the development of enterprise applications as modular business web services that can be easily integrated and reused, creating a truly flexible, adaptable IT infrastructure.

Oracle SOA Suite provides a complete set of service infrastructure components for designing, deploying, and managing composite applications. Oracle SOA Suite enables services to be created, managed, and orchestrated into composite applications and business processes. Composites enable you to easily assemble multiple technology components into one SOA composite application. Oracle SOA Suite plugs into heterogeneous IT infrastructures and enables enterprises to incrementally adopt SOA.

The components of the suite benefit from common capabilities including a single deployment and management model and tooling, end-to-end security, and unified metadata management. Oracle SOA Suite is unique in that it provides the following set of integrated capabilities:

  • Messaging

  • Service discovery

  • Orchestration

  • Activity monitoring

  • Web services management and security

  • Business rules

  • Events framework

Oracle SOA Suite puts a strong emphasis on standards and interoperability. Among the standards it leverages are:

  • Service Component Architecture (SCA) assembly model

    Provides the service details and their interdependencies to form composite applications. SCA enables you to represent business logic as reusable service components that can be easily integrated into any SCA-compliant application. The resulting application is known as an SOA composite application. The specification for the SCA standard is maintained by the Organization for the Advancement of Structured Information Standards (OASIS) through the Open Composite Services Architecture (CSA) Member Section:

    http://www.oasis-opencsa.org

  • Service Data Objects (SDO)

    Specifies a standard data method and can modify business data regardless of how it is physically accessed. Knowledge is not required about how to access a particular back-end data source to use SDO in an SOA composite application. Consequently, you can use static or dynamic programming styles and obtain connected and disconnected access.

  • Business Process Execution Language (BPEL)

    Provides enterprises with an industry standard for business process orchestration and execution. Using BPEL, you design a business process that integrates a series of discrete services into an end-to-end process flow. This integration reduces process cost and complexity.

  • XSL Transformations (XSLT)

    Processes XML documents and transforms document data from one XML schema to another.

  • Java Connector Architecture (JCA)

    Provides a Java technology solution to the problem of connectivity between the many application servers in Enterprise Information Systems (EIS).

  • Java Messaging Service (JMS)

    Provides a messaging standard that allows application components based on the Java 2 Platform, Enterprise Edition (Java EE) to access business logic distributed among heterogeneous systems.

  • Web Services Description Language (WSDL) file

    Provides the entry points into an SOA composite application. The WSDL file provides a standard contract language and is central for understanding the capabilities of a service.

  • Simple Object Access Protocol (SOAP)

    Provides the default network protocol for message delivery.

For more information about standards, see the following:

1.2 Introduction to SOA Composite Applications

A composite is an assembly of services, service components, wires, and references designed and deployed together in a single application. The composite processes the information described in the messages.

Figure 1-1 describes the operability of an SOA composite application using SCA technology. In this example, an external application (.NET payment calculator) initiates contact with the SOA composite application.

For more information about descriptions of the tasks that services, references, service components, and wires perform in an application, see Section 1.3, "Introduction to SCA Technologies."

Figure 1-1 Introduction to an SOA Composite Application

Introduction to SOA Composite Application
Description of "Figure 1-1 Introduction to an SOA Composite Application"

The .NET payment calculator is an external application that sends a SOAP message to the SOA application to initiate contact. The Service Infrastructure picks up the SOAP message from the binding component and determines the intended component target. The BPEL service engine receives the message from the Service Infrastructure for processing by the BPEL Loan Process application and posts the message back to the Service Infrastructure after completing the processing.

Table 1-1 describes the operability of the SOA composite application shown in Figure 1-1.

1.3 Introduction to SCA Technologies

SCA is the executable model for the assembly of service components into composite applications. SCA provides a programming model for the following:

  • Creating service components written with a wide range of technologies, including programming languages such as Java, BPEL, C++, and declarative languages such as XSLT. The use of specific programming languages and technologies (including web services) is not required with SCA.

  • Assembling the service components into an SOA composite application. In the SCA environment, service components are the building blocks of applications.

SCA lets you describe the details of a service and how services and service components interact by providing a model for assembling distributed groups of service components into an application. Composites are used to group service components and wires are used to connect service components. SCA aims to remove middleware concerns from the programming code by applying infrastructure concerns declaratively to compositions, including security and transactions.

The key benefits of SCA include the following:

  • Loose coupling

    Service components integrate with other service components without needing to know how other service components are implemented.

  • Flexibility

    Service components can easily be replaced by other service components.

  • Services invocation

    Services can be invoked either synchronously or asynchronously.

  • Productivity

    Service components are easily integrated to form an SOA composite application.

  • Easy Maintenance and Debugging

    Service components can be easily maintained and debugged when encountered an issue.

Figure 1-2 provides an example of a composite that includes an inbound service binding component, a BPEL process service component (named Account), a business rules service component (named AccountRule), and two outbound reference binding components. The details of this composite are stored in the composite.xml file.

Table 1-1 describes the operability of the SOA composite application shown in Figure 1-1. References are made to sections that provide additional details.

Table 1-1 Introduction to an SOA Composite Application Using SCA Technologies

Part Description Example of Use in Figure 1-1 See Section

Binding Components

Establishes the connectivity between a SOA composite and the external world. There are two types:

  • Service binding components provide an entry point to the SOA composite application.

  • Reference binding components enable messages to be sent from the SOA composite application to external services.

The SOAP binding component service:

  • Advertises its capabilities in the WSDL file.

  • Receives the SOAP message from the .NET application.

  • Sends the message through the policy infrastructure for security checking.

  • Translates the message to a normalized message (an internal representation of the service's WSDL contract in XML format).

  • Posts the message to the Service Infrastructure.

An example of a binding component reference in Figure 1-1 is the Loan Process application.

Section 1.3.1, "Binding Components"

Service Infrastructure

Provides internal message transport

The Service Infrastructure:

  • Receives the message from the SOAP binding component service.

  • Posts the message for processing to the BPEL process service engine first and the human task service engine second.

Section 1.3.2, "Service Infrastructure"

Service Engines (containers hosting service components)

Host the business logic or processing rules of the service components. Each service component has its own service engine.

The BPEL service engine:

  • Receives the message from the Service Infrastructure for processing by the BPEL Loan Process application.

  • Posts the message to the Service Infrastructure after completing the processing.

Section 1.3.3, "Service Engines and Service Components"

UDDI and MDS

The MDS (Metadata Service) repository stores descriptions of available services. The UDDI advertises these services, and enables discovery as well as dynamic binding at runtime.

The SOAP service used in this composite application is stored in the MDS and can also be published to UDDI.

Oracle Fusion Middleware Getting Started for Oracle SOA Suite

SOA Archive: Composite

(deployment unit)

The deployment unit that describes the composite application.

The SOA archive (SAR) of the composite application is deployed to the Service Infrastructure.

Section 1.3.4, "Deployed Service Archives"


1.3.1 Binding Components

Binding components establish the connection between a SOA composite and the external world. There are two types of binding components:

  • Services

    Provide the outside world with an entry point to the SOA composite application. The WSDL file of the service advertises its capabilities to external applications. These capabilities are used for contacting the SOA composite application components. The binding connectivity of the service describes the protocols that can communicate with the service, for example, SOAP/HTTP or a JCA adapter.

  • References

    Enable messages to be sent from the SOA composite application to external services in the outside world.

Table 1-2 lists and describes the web services provided by Oracle SOA Suite.

Table 1-2 Web Services Provided by Oracle SOA Suite

Web Services Description

SOAP over HTTP

For connecting to standards-based services using SOAP over HTTP.

JCA Adapters

For integrating services and references with technologies (for example, databases, file systems, FTP servers, messaging: JMS, IBM WebSphere MQ, and so on) and applications (Oracle E-Business Suite, PeopleSoft, and so on). This includes AQ Adapter, Database Adapter, File Adapter, FTP Adapter, JMS Adapter, MQ Adapter, and Socket Adapter.

B2B binding component

For browsing B2B metadata in the MDS repository and selecting document definitions.

ADF-BC Service

For connecting Oracle Application Development Framework (ADF) applications using SDO with the SOA platform.

Oracle Applications

For integrating Oracle Application Adapter with Oracle Applications.

BAM Adapter

For integrating Java EE applications with Oracle BAM Server to send data and also used as a reference binding component in an SOA composite application.

EJB Service

For integrating SDO parameters with Enterprise JavaBeans.


Note:

Business events provide an alternative to using the direct service invocation of the WSDL file contract. Business events are messages sent as the result of an occurrence or situation. When a business event is published, other applications can subscribe to it.

1.3.2 Service Infrastructure

The Service Infrastructure provides the internal message routing infrastructure capabilities for connecting components and enabling data flow:

  • Receives messages from the service providers or external partners through SOAP services or adapters

  • Sends the message to the appropriate service engine

  • Receives the message back from the service engine and sends it to any additional service engines in the composite or to a reference binding component based on the wiring

1.3.3 Service Engines and Service Components

Service components are the building blocks that you use to construct an SOA composite application. Service engines are containers that host the business logic or processing rules of these service components. Service engines process the message information received from the Service Infrastructure.

The following service components are available. There is a corresponding service engine of the same name for each service component. All service engines can interact together in a single composite.

  • BPEL process

    For process orchestration and storage of synchronous or asynchronous process. You design a business process that integrates a series of business activities and services into an end-to-end process flow.

  • Business rules

    For designing a business decision based on rules.

  • Human task

    For modeling a workflow that describes the tasks for users or groups to perform as part of an end-to-end business process flow.

  • Mediator

    For routing events (messages) between different components.

1.3.4 Deployed Service Archives

The SAR is a SOA archive deployment unit. The SAR file is deployed to the Service Infrastructure. The SAR packages service components such as BPEL processes, business rules, human tasks, and mediator routing services into a single application. The SAR file is analogous to the BPEL suitcase archive of previous releases, but at the higher composite level and with any additional service components that your application includes (for example, human tasks, business rules, and mediator routing services).

1.3.5 Wires

Wires enable you to graphically connect the following components in a single SOA composite application for message communication:

  • Services to service components

  • Service components to other service components

  • Service components to references

1.4 Learning Oracle SOA Suite

In addition to this developers guide, Oracle also offers the following resources to help you learn how you can best use Oracle SOA Suite in your applications:

  • Getting Started and Tutorials: The Oracle Fusion Middleware Getting Started with Oracle SOA Suite guide introduces you to Oracle SOA Suite, its components, and provides you with a high-level understanding of what you can accomplish with the suite. The Oracle Fusion Middleware Tutorial for Running and Building an Application with Oracle SOA Suite tutorial describe the step-by-step instructions for running an application developed with Oracle SOA Suite and how to build the SOA elements of the Fusion Order Demo application respectively. Also, you could refer to the Oracle SOA Suite section of the Oracle Fusion Middleware 11g Release 1 documentation library for additional documentation.

  • Cue Cards in Oracle JDeveloper: Oracle JDeveloper cue cards provide step-by-step support for the application development process using Oracle SOA Suite. They are designed to be used either with the included examples and a sample schema, or with your own data. Cue cards also include topics that provide more detailed background information, viewlets that demonstrate how to complete the steps in the card. Cue cards provide a fast, easy way to become familiar with the basic features of Oracle SOA Suite, and to work through a simple end-to-end task. In Oracle JDeveloper, click Help, Cue Cards to access the cue cards.

  • http://www.oracle.com/technology/sample_code/products/soa: The SOA OTN provides access to various use case samples for Oracle SOA Suite and its components.