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:
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.
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.
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:
Web services management and security
Business activity monitoring
Oracle SOA Suite puts a strong emphasis on standards and interoperability. Among the standards it leverages are:
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:
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.
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.
Processes XML documents and transforms document data from one XML schema to another.
Provides a Java technology solution to the problem of connectivity between the many application servers in Enterprise Information Systems (EIS).
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.
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.
Provides the default network protocol for message delivery.
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:
Service components integrate with other service components without needing to know how other service components are implemented.
Service components can easily be replaced by other service components.
Services can be invoked either synchronously or asynchronously.
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
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.
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
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.
Use for connecting to standards-based services using SOAP over HTTP.
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.
Use for browsing B2B metadata in the MDS repository and selecting document definitions.
Use for connecting Oracle Application Development Framework (ADF) applications using SDO with the SOA platform.
Use for integrating the Oracle Applications adapter with Oracle applications.
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.
Use for integrating SDO parameters or Java interfaces with Enterprise JavaBeans.
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.
Use to integrate SOA composite applications with HTTP binding.
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."
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.
|Part||Description||Example of Use in Figure 1-1||See Section|
The SOAP binding component service:
An example of a binding component reference in Figure 1-2 is the Loan Process application.
The Service Infrastructure:
Service engines (containers hosting service components)
The BPEL service engine:
UDDI and MDS
The SOAP service used in this composite application is stored in the MDS repository and can also be published to UDDI.
SOA Archive: Composite
The deployment unit that describes the composite application.
The SOA archive (SAR) of the composite application is deployed to the 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 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.
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."
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.
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.