1 Introduction to Building Applications with Oracle SOA Suite

This chapter describes service-oriented architecture (SOA) and Oracle SOA Suite, standards used by Oracle SOA Suite to enable SOA, SOA composite application architecture and runtime behavior, approaches to designing SOA composite applications, and where to go to learn more about Oracle SOA Suite.

This chapter includes the following sections:

1.1 Introduction to Service-Oriented Architecture

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 predicting 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 service-oriented architecture (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 to provide solutions to business problems. 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.

1.2 Introduction to Services

SOA separates business functions into distinct units, or services. A SOA application reuses services to automate a business process.

A standard interface and message structure define services. The most widely used mechanism are web services standards. These standards include the Web Service Description Language (WSDL) file for service interface definition and XML Schema Documents (XSD) for message structure definition. These XML standards are easily exchanged using standard protocols. Because standards for web services use a standard document structure, they enable existing systems to interoperate regardless of the choice of operating system and computer language used for service implementation.

When designing a SOA approach, you create a service portfolio plan to identify common functionality to use as a service within the business process. By creating and maintaining a plan, you ensure that existing services and applications are reused or repurposed whenever possible. This plan also reduces the time spent in creating needed functionality for the application.

1.3 Introduction to Oracle SOA Suite

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 Oracle SOA Suite benefit from common capabilities, including a single deployment, management, and tooling model, 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

  • Web services management and security

  • Business rules

  • Events framework

  • Business activity monitoring

1.4 Standards Used by Oracle SOA Suite to Enable SOA

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 a 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:


  • 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 a 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. BPEL versions 1.1 and 2.0 are supported.

  • 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 a 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.

1.5 Service Component Architecture within SOA Composite Applications

Oracle SOA Suite uses the SCA standard as a way to assemble service components into a SOA composite application. 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 a SOA composite application. In the SCA environment, service components are the building blocks of applications.

SCA provides a model for assembling distributed groups of service components into an application, enabling you to describe the details of a service and how services and service components interact. Composites are used to group service components and wires are used to connect service components. SCA helps to remove middleware concerns from the programming code by applying infrastructure declaratively to composites, 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 create a SOA composite application.

  • Easy Maintenance and Debugging

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

A SOA composite is an assembly of services, service components, and references designed and deployed in a single application. Wiring between the services, service components, and references enables message communication. The details for a composite are stored in the composite.xml file.

Figure 1-1 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.

Figure 1-1 Simple SOA Composite Architecture

Description of "Figure 1-1 Simple SOA Composite Architecture"

1.5.1 Service Components

Service components are the building blocks that you use to construct a SOA composite application.

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 in a single composite.

  • BPEL processes provide process orchestration and storage of a synchronous or an 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 enable you to design a business decision based on rules.

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

  • Mediators route events (messages) between different components

  • Spring enables you to integrate Java interfaces into SOA composite applications

1.5.2 Binding Components

Binding components establish a 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-1 lists and describes the binding components provided by Oracle SOA Suite.

Table 1-1 Binding Components Provided by Oracle SOA Suite

Binding Components Description

Web service (SOAP over HTTP)

Use for connecting to standards-based services using SOAP over HTTP.

JCA adapters

Use 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 the AQ adapter, database adapter, file adapter, FTP adapter, JMS adapter, MQ adapter, and Socket adapter.

B2B binding component

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

ADF-BC service

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

Oracle Applications

Use for integrating the Oracle Applications adapter with Oracle applications.

BAM adapter

Use for integrating Java EE applications with Oracle BAM Server to send data, and also use as a reference binding component in a SOA composite application.

EJB service

Use for integrating SDO parameters or Java interfaces with Enterprise JavaBeans.

Direct binding service

Use to invoke a SOA composite application and exchange messages over a remote method invocation (RMI) in the inbound direction and to invoke an Oracle Service Bus (OSB) flow or another SOA composite application in the outbound direction.

HTTP binding

Use to integrate SOA composite applications with HTTP binding.

1.5.3 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.6 Runtime Behavior of a SOA Composite Application

Figure 1-2 shows the operability of a SOA composite application using SCA technology. In this example, an external application (a .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.5, "Service Component Architecture within SOA Composite Applications."

Figure 1-2 Runtime Behavior of SOA Composite Application

Introduction to SOA Composite Application
Description of "Figure 1-2 Runtime Behavior of 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 process 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-2 describes the operability of the SOA composite application shown in Figure 1-1.

Table 1-2 Introduction to a 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-2 is the Loan Process application.

Section 1.5.1, "Service 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.6.1, "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.6.2, "Service Engines"


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

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

Oracle Fusion Middleware Getting Started with 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.6.3, "Deployed Service Archives"

1.6.1 Service Infrastructure

The Service Infrastructure provides the following 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.6.2 Service Engines

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.

There is a corresponding service engine of the same name for each service component. All service engines can interact in a single composite.

For more information, see Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.

1.6.3 Deployed Service Archives

The SAR is a SOA archive deployment unit. A SAR file is a special JAR file that requires a prefix of sca_. (for example, sca_OrderBookingComposite_rev1.0.jar). 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).

For more information, see Chapter 43, "Deploying SOA Composite Applications."

1.7 Approaches for Designing SOA Composite Applications

When creating a SOA composite application, you have a choice of approaches for building it:

  • Top-Down: You analyze your business processes and identify activities in support of your process. When creating a composite, you define all the SOA components through the SOA Composite Editor. You create all the services first, and then build the BPEL process, referencing the created services.

  • Bottom-Up: You analyze existing applications and assets to identify those that can be used as services. As you create a BPEL process, you build the services on an as-needed basis. This approach works well when IT must react to a change.

1.8 Learning Oracle SOA Suite

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

  • Getting Started: Oracle Fusion Middleware Getting Started with Oracle SOA Suite introduces you to Oracle SOA Suite, its components, and provides you with a high-level understanding of what you can accomplish with the suite. Also, you can 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, and 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.

  • Oracle SOA Suite samples provide access to various use case samples for Oracle SOA Suite and its components.


While this guide primarily describes how to use Oracle SOA Suite with Oracle WebLogic Server, most of the information is also applicable to using Oracle SOA Suite with other third-party application servers. However, there may be some differences with using third-party application servers.

For information about these differences, see Oracle Fusion Middleware Third-Party Application Server Guide.