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 Oracle SOA Suite

This section provides an overview of service-oriented architecture and standards, Oracle SOA Suite capabilities, service component architecture, runtime behavior, and design-time approaches.

1.1.1 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.1.2 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.1.3 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

  • Human interaction

  • Events framework

  • Business activity monitoring

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

  • XQuery Transformations (XQuery)

    Queries and transforms collections of structured and unstructured data, typically in the form of XML.

  • 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 Service Definition 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.

  • Representational State Transfer (REST)

    Provides an architecture for designing network applications. RESTful applications use HTTP requests to post data (create and update), get data (for example, make queries), and delete data. REST provides an alternative to using web services.

  • JavaScript Object Notation (JSON)

    Provides a language for representing simple data structures and associative arrays called objects. JSON is a standard designed for human-readable data interchange. JSON is derived from the JavaScript scripting language.

  • Web Application Description Language (WADL)

    Provides a readable XML description of HTTP-based web applications (typically REST web services). WADL simplifies the reuse of web services based on the existing HTTP architecture of the web.

1.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, 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 follows
Description of "Figure 1-1 Simple SOA Composite Architecture" 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.

For more information about service components, see Adding Service Components. Binding Components

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

  • Services

    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

    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, Oracle User Messaging Service, LDAP servers, Oracle Coherence cache, 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, socket adapter, Oracle User Messaging Service adapter, LDAP adapter, Oracle Coherence adapter, and third-party adapter.

Oracle B2B

Use for browsing B2B metadata in the Oracle Metadata Services Repository (MDS Repository) and selecting document definitions.

Oracle Healthcare

Use for sending and receiving messages to and from a healthcare system.

ADF-BC service

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

Oracle E-Business Suite

Use for integrating the Oracle E-Business Suite adapter with Oracle applications.

BAM 11g adapter

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

Note: This adapter can only connect to an Oracle BAM 11g server.

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.

REST service

Use to integrate REST services with SOA composite applications and REST-enable SOA composite applications.

Oracle Managed File Transfer (MFT)

Use to transfer files to and from many endpoint types, such as remote and embedded FTP or sFTP servers; directories; and SOAP web service, Oracle SOA Suite, Oracle Service Bus, Oracle B2B, Oracle Healthcare, and Oracle Data Integrator endpoints.

Cloud adapters

The cloud adapters enable you to send and receive messages from a cloud server.

For more information about binding components, see Adding Service Binding Components and Adding Reference Binding Components. 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

For more information about wires, see Adding Wires.

1.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 Service Component Architecture within SOA Composite Applications.

Figure 1-2 Runtime Behavior of SOA Composite Application

Description of Figure 1-2 follows
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-2.

Table 1-2 Introduction to a SOA Composite Application Using SCA Technologies

Part Description Example of Use in 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 reference binding component in Figure 1-2 is the Loan Process application.

Service Components

Service Infrastructure

Provides internal message transport

The Service Infrastructure:

  • Receives the message from the SOAP service binding component.

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

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 process 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.

Service Engines

Universal Description, Discovery, and Integration (UDDI) and MDS

The MDS 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.

Managing Shared Data with the Design-Time

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.

Deployed Service Archives 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 Service Engines

Service engines are containers that host the business logic or processing rules of the 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 Administering Oracle SOA Suite and Oracle Business Process Management Suite. 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 Oracle 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 Oracle Mediator routing services).

For more information, see Deploying SOA Composite Applications .

1.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 . 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.2 Getting Started with Oracle SOA Suite

This developer's guide consists of the sections described in Table 1-3. These sections enable you to get started with developing a SOA composite application.

Table 1-3 Getting Started with Oracle SOA Suite

To Get Started with... See...

The basic steps of composite, service and reference binding component, and service component creation in Oracle JDeveloper

Getting Started with Developing SOA Composite Applications

Using shared data with the SOA Design-Time Oracle Metadata Services Repository (MDS Repository)

Managing Shared Data with the Design-Time

Designing BPEL process service components in a composite

Using the BPEL Process Service Component

Designing Oracle Mediator service components in a composite

Using the Oracle Mediator Service Component

Designing business rule service components in a composite

Using the Business Rules Service Component

Designing human workflow service components in a composite

Using the Human Workflow Service Component

Designing service and reference binding components in a composite

Using Binding Components

Functionality that can be shared across components, such as templates, XSLT and XQuery transformations, business events, cross references, and domain value maps

Sharing Functionality Across Service Components

Composite completion tasks such as security policy attachments, deployment, debugging, and automating composite testing

Completing Your Application

Advanced topics such as management of large documents and large numbers of instances, composite customizations, composite sensors, and the spring framework

Advanced Topics

In addition to this developer's guide, other resources are provided:

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

  • Understanding Oracle SOA Suite describes the business challenges faced by a company and how the components of Oracle SOA Suite address these challenges from design time through runtime.

1.3 Setting Accessibility Options

Oracle SOA Suite uses both Oracle JDeveloper and Oracle SOA Composer for application development. This section describes accessibility options for both environments.

1.3.1 Setting Accessibility Options in Oracle JDeveloper

Oracle JDeveloper provides accessibility options, such as support for screen readers, screen magnifiers, and standard shortcut keys for keyboard navigation. You can also customize Oracle JDeveloper for better readability, including the size and color of fonts and the color and shape of objects. For information and instructions on configuring accessibility in Oracle JDeveloper, see "Oracle JDeveloper Accessibility Information" in Developing Applications with Oracle JDeveloper.

1.3.2 Setting Accessibility Options in Oracle SOA Composer and Oracle BPM Worklist

Accessibility settings help you read all components of the application. You can set accessibility options in either Oracle SOA Composer or Oracle BPM Worklist for the current instance or for all instances. How to Set Accessibility Features Before Logging In

Oracle SOA Composer or Oracle BPM Worklist presents the Accessibility menu on the login page, so you can configure accessibility before you log in. These settings can be persisted for only the current session or for all sessions.

To set accessibility options before logging in:

  1. Launch Oracle SOA Composer or Oracle BPM Worklist.
  2. On the login page, click Accessibility in the top right corner.

    The Edit Accessibility Settings page appears, as shown in Figure 1-3.

    Figure 1-3 Edit Accessibility Settings Page

    Description of Figure 1-3 follows
    Description of "Figure 1-3 Edit Accessibility Settings Page"
  3. Select any of the following options:
    • Use screen reader.

    • Use high contrast colors.

    • Use large fonts.

  4. To save the new settings only for this session, click Use for this session. To save the settings for all sessions, click Save as preference and use. How to Set Accessibility Options After Logging In

Once you log in to Oracle SOA Composer or Oracle BPM Worklist, you can configure accessibility options from any page. This changes the user preferences, which are retained through all sessions until you change them again.

To set accessibility options after logging in:

  1. Launch Oracle SOA Composer or Oracle BPM Worklist and log in.
  2. From any page, select Preferences in the top right corner.

    The Preferences dialog appears.

  3. In the Preferences column, click Accessibility.

    The Accessibility Preferences appear, as shown in Figure 1-4.

    Figure 1-4 Preferences Dialog

    Description of Figure 1-4 follows
    Description of "Figure 1-4 Preferences Dialog"
  4. In the Mode Settings field, select Enable screen reader mode if you use a screen reader. Select Disable screen reader mode if you do not use a screen reader.
  5. In the Contrast Settings field, select Use high contrast to increase the contrast between objects on the console; otherwise, select Use normal contrast.
  6. In the Font Settings field, select Use large fonts to increase the font size; otherwise, select Use normal fonts.
  7. Click OK.