Oracle® SOA Suite Quick Start Guide 10g (10.1.3.1.0) Part Number B28938-01 |
|
|
View PDF |
This chapter provides an overview of Oracle SOA Suite to design, develop, deploy and monitor an SOA application.
This chapter includes the following sections:
Section 1.1, "Why the Shift to Service-Oriented Architecture?"
Section 1.3, "Introduction to SOA Order Booking Application"
Many companies are addressing the complexity of their application and IT environments with Service-Oriented Architecture (SOA). 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.
Web services provide interoperability of proprietary software. Web services standards, including Web Services Description Language (WSDL), extensible markup language (XML), and Simple Object Access Protocol (SOAP), have emerged as an effective and highly interoperable platform for publishing services. In addition, high performance binding frameworks enable enterprises to access legacy systems and native Java code without having to wrap them in a SOAP interface.
Making Web services work is a two-step process:
Publish the service.
Publishing a service involves taking a function within an existing application or system and making it available in a standard way.
Compose, or orchestrate, the services into business flows.
Orchestration involves composing multiple services into an end-to-end business process. The business process execution language (BPEL) language supports this orchestration.
Oracle SOA Suite is a complete set of service infrastructure components for creating, deploying, and managing services. Oracle SOA Suite enables services to be created, managed, and orchestrated into composite applications and business processes. Additionally, you can adopt it incrementally on a project by project basis and still benefit from the common security, management, deployment architecture, and development tools that you get out of the box.
Oracle SOA Suite is a standards-based best-of-breed technology suite that consists of the following:
Integrated Service Environment (ISE) to develop services
Oracle BPEL Process Manager to orchestrate services into business processes
ESB to connect existing IT systems and business partners as a set of services
Oracle Business Rules for dynamic decisions at runtime that can be managed by business users or business analysts
OracleAS Integration Business Activity Monitoring to monitor services and disparate events and provide real-time visibility into the state of the enterprise, business processes, people, and systems.
Oracle Web Services Manager to secure and manage authentication, authorization, and encryption policies on services that is separate from your service logic
UDDI registry to discover and manage the lifecyle of Web services.
Oracle Application Server 10g Release 3 (10.1.3) to provide a complete Java 2, Enterprise Edition (J2EE) 1.4-compliant environment for your J2EE applications.
Figure 1-1 shows the Oracle SOA Suite architecture.
Integrated Service Environment
Oracle JDeveloper (JDeveloper) is the development component of Oracle SOA Suite. It forms a comprehensive ISE for developing, composing, and orchestrating services into business processes. Business processes can be deployed, registered, and consumed from several types of user interfaces, including desktop clients, browsers, and mobile and telnet devices.
JDeveloper enables developers to model, create, discover, assemble, orchestrate, test, deploy, and maintain composite applications based on services. JDeveloper supports SOA principles and XML Web services standards, as well as traditional Java, J2EE, and PL/SQL component and modular code mechanisms.
Oracle ADF is a model-driven SOA framework that automates and manages businesses and data services and provides a standard data-and-service-binding layer based on JSR 227 that can be used with process flows, page flows, and service invocations. Oracle ADF implements SOA design practices and makes user interfaces as loosely coupled as services themselves.
Oracle TopLink is a data service framework that enables access to relational and XML data. It provides visual mapping tools for facilitating object to relational and object to XML mapping. TopLink and Oracle ADF frameworks simplify creation of business and data services that can be invoked from rich Web interfaces of service-oriented applications.
Oracle BPEL Process Manager (including Human Workflow)
Oracle BPEL Process Manager provides a framework for easily designing, deploying, monitoring, and administering processes based on BPEL standards. Oracle BPEL Process Manager provides support for the following features:
Web service standards such as XML, SOAP, and WSDL
Dehydration (enables the states of long-running processes to be automatically maintained in a database) and correlation of asynchronous messages
Parallel processing of tasks
Fault handling and exception management during both design time and run time
Event timeouts and notifications
Compensation mechanisms for the implementation of long-running transactions
Scalability and reliability of processes
Management and administration of processes
Version control
Audit trails for tracing business flow history
Installation on multiple operating systems and integration with multiple application servers (for example, Oracle Application Server, BEA WebLogic, and JBoss) and databases.
Oracle BPEL Process Manager adds value and ease of use to BPEL functionality by providing support for the following in the JDeveloper BPEL Designer:
Transformations, workflows, worklists, notifications, and sensors
Technology adapters, including file, FTP, database, advanced queuing (AQ), Java Messaging Service (JMS), Oracle Applications for Oracle E-Business Suite, and WebSphere MQ
Third-party adapters, including J.D. Edwards OneWorld, PeopleSoft, SAP R/3, Siebel, Tuxedo, CICS, VSAM, IMS/TM, and IMS/DB
Oracle Enterprise Service Bus (ESB)
An enterprise service bus moves data among multiple endpoints, both within and outside of an enterprise. It uses open standards to connect, transform, and route business documents (as Extensible Markup Language (XML messages), among disparate applications. It enables monitoring and management of business data, with minimal impact on existing applications. An enterprise service bus is the underlying infrastructure for delivering a service-oriented architecture (SOA) and event-driven architecture (EDA).ESB is the foundation for services using SOA and EDA. At its core, it is a loosely coupled application framework that provides your business with increased flexibility, reusability, and overall responsiveness in a distributed, heterogeneous, message-oriented environment using industry standards.
Oracle Business Rules enables dynamic decisions at runtime allowing, among other features, applications to rapidly adapt to regulatory and competitive pressures. This increased agility is possible because business analysts using Oracle Business Rules can create and change business rules that are separated from the application code. By using Oracle Business Rules, business analysts can change business rules without stopping business processes. Also, externalizing business rules allows business analysts to manage business rules directly, without involving programmers.
OracleAS Integration Business Activity Monitoring
OracleAS Integration Business Activity Monitoring (BAM) gives business executives the ability to monitor their enterprise business services in real-time and to correlate their KPIs (key performance indicators) to the actual business process. Oracle BAM provides the ability to aggregate service metrics and deliver actionable information on critical business service parameters to user. Oracle BAM delivers information to users through visual dashboards and alerts, improving effectiveness of operations and taking informed decisions. Oracle BAM also provides users the ability to change the business processes and take corrective action if the business environment changes. Oracle BAM is a complete solution for building real-time operational dashboards, monitoring and alerting applications.
Oracle Web Services Manager is a security administrator's environment designed to secure access to Web services and monitor activities performed on protected Web services.
Oracle Web Services Manager includes two main parts: A policy decision point (PDP) and policy enforcement points (PEPs). The PDP includes security and management components accessed through a Web-based management console providing Oracle Enterprise Manager's look and feel. PEPs are interceptors that can be either agents or gateways. Agents run in the same container as the Web services they protect whereas gateways are independent processes analogous to proxy servers. Agents and gateways can be used in combination to ensure end-to-end Web services security.
Typically, a security administrator sets up the environment by registering the Web services to be protected and managed. The administrator then defines declarative security policies (no coding) for each registered service, for example, how credentials are extracted for authentication, how messages are encrypted, decrypted, and signed, and how events are logged.
PEPs intercept requests to the registered Web services and enforce the policies defined by the administrator. In addition, PEPs collect security and management information that they transmit to the PDP. The PDP aggregates that information into management metrics and formats it for display in graphical charts for easy reading. Management metrics is obtained from service-level agreements (SLAs) defined by the administrator using the management console.
Oracle Web Services Manager seamlessly integrates with Oracle BPEL Process Manager and ESB, that is, Oracle Web Services Manager can secure BPEL and ESB processes. In addition, Oracle Web Services Manager integrates with the Oracle Identity Management suite, in particular, Oracle Web Services Manager can extract and transform Oracle Access Manager cookie information thus providing an end-to-end security solution, from browser to networks of Web services.
OracleAS UDDI Registry provides a key component of any SOA with a configurable, scalable, secure repository of Web services that can be managed, discovered and governed by Oracle Fusion Middleware. The OracleAS UDDI Registry meets the core service management needs of any enterprise:
Enables service providers to publish and advertise their offerings
Allows service consumers to find, access, and invoke services that meet defined criteria
Provides critical features for SOA governance
Integration is provided with other products in the Oracle Fusion Middleware family, including Oracle BPEL Control, Oracle Web Services Manager, and JDeveloper, enabling users to query the Registry for published services.
OracleAS UDDI Registry fully supports the latest UDDI V3 specification, and delivers the broadest range of features of any SOA registry available today.
Oracle Application Server is a standards-based application server that provides a comprehensive and fully integrated platform for running Web sites, J2EE applications, and Web services.
The SOA Order Booking application demonstrates how a number of applications, both internal to an enterprise, and external at other sites, can be integrated using the SOA architecture paradigm to create one cohesive ordering system. In this sample application, Global Company is a retail store front for ordering electronic devices through a Web-based client application. Global Company sells electronics, such as MP3 players and televisions, to consumers using a Web-based client application. It utilizes the following Oracle SOA Suite components:
JDeveloper
Oracle BPEL Process Manager (including Human Workflow)
ESB
Oracle Business Rules
Oracle Application Server
Specifically, the following applications comprise the SOA Order Booking application:
CreditService: Validates customer credit information
CustomerService: Represents an existing customer relationship management (CRM) application within the Global Company enterprise. CustomerService is implemented using EJB 3.0.
DHLShipment: Ships the order using DHL. It is a SOAP service.
FulfillmentESB: Routes order information to a shipping vendor for shipment. Uses ESB content-based routing to invoke the correct vendor, such as Fedex or USPS, depending on the price of the order. In Chapter 4, you will utilize the DHLShipment
service, so orders can be also be shipped by DHL. Also, demonstrates that messages can be routed using a variety of adapters for writing to a database, a file, and a JMS queue.
OrderBookingESB: Routes order information from the Web client and invokes the Order Booking BPEL process (SOAOrderBooking).
RapidService: Provides a price for a given order (to compete with the price from SelectManufacturer). This service is used to demonstrate invoking a synchronous process from BPEL.
SelectManufacturer: Provides a price for a given order (to compete with the price from RapidService). This service is used to demonstrate invoking an asynchronous process from BPEL.
SOADEMO-CLIENT: Web-based application that enables end users to register themselves as customers, and then order electronics online from Global Company.
SOAOrderBooking: Processes the order and orchestrates all necessary services within the enterprise to complete the order.
At the center of the SOA Order Booking application is the SOAOrderBooking BPEL process. It orchestrates all the existing services in the enterprise for order fulfillment with the right supplier, based on the business rules in the process.
Figure 1-2 shows an overview of the SOA Order Booking application, followed by a step-by-step description of the application flow.
Figure 1-2 SOA Order Booking Application Overview
When a new customer registers in the Web client, the Web client sends the customer's information to the internal customer service application (CustomerService), which then stores the customer information in a database. The authenticated customer can then browse products, add them to their online shopping cart, and place the order.
When a registered customer attempts to log on to the Web client, the customer service application (CustomerService) is invoked and provides authentication.
When a new order is placed, the following occurs:
The Web client sends a message to the Order Booking ESB project (OrderBookingESB). ESB then routes the message to any service that has registered an interest in these messages. In this case, it is only the Order Booking BPEL process (SOAOrderBooking) that gets notified, thereby invoking the BPEL process.
The BPEL process sets the order to pending, and writes the order to the order database tables.
The registration process sets the default customer status to Gold. The database administrator can apply one of the following statuses to registered customers:
Platinum
Gold
Silver
The BPEL process calls the customer service (CustomerService) to retrieve customer ID, name, address, and credit card information.
The BPEL process then checks the identified customer against the credit service (CreditService) to verify the customer's credit card is valid. The credit service returns the relevant rating for the customer.
If credit is not approved, the process cancels the order.
If credit is approved, the process takes the order amount, customer status, and runs the Oracle Rules Engine to determine if the order requires approval by management.
The BPEL process uses a decision service (Oracle Rules Engine) to determine.
The decision service uses rules in the Oracle Rules Engine that state the following:
If the customer has a Platinum status, then no manual approval is required.
If the customer has a Gold status, then manual approval is only required for orders over $1000.
If the customer has a Silver status, then manual approval is required for all orders, regardless of the order amount.
These decisions could also have been implemented in the BPEL process, but a rules engine was used instead so that changes could be made at runtime without have to make a design-time change or re-deploy. Moreover, business analysts or non-technical, non-administrator type people can change the rules.
For those orders requiring manual approval, the BPEL process invokes the human workflow, which routes a message to a manager.
If the order is approved, it is sent to two suppliers for their price quotes.
The select manufacturer service (SelectManufacturer) tends to quote a lower price, because it is a direct manufacturer, but has slow turnaround times for a response. It sends the quote asynchronously.
The rapid manufacturer service (RapidService) tends to quote a higher price, because has an automated response service for price quotes. It sends the quote synchronously.
The BPEL process collects the quotes and selects the lowest quoted price as the supplier to which to award the order.
The BPEL process invokes the Fulfillment ESB project (FulfillmentESB), which in turn uses a message flow to complete the order as follows:
If the order is less than $500, the order information is sent to USPS. Their system picks up orders from a directory so we use the file adapter to write the order to a file in the specified directory.
If the order is equal to or greater than $500, the order information is sent to Fedex. The Fedex system waits for rows to appear in a table, so the database adapter is used to write the order to the specified table in their database.
All orders, regardless of the shipping vendor, are stored in a temporary queue and uploaded to the fulfillment system in batch mode overnight. The JMS adapter is used to write the order information to the specified JMS queue.
Once the order is fulfilled, the BPEL process sets the order to complete, and starts a notification service, which sends the customer an email with the purchase order information.