AN INTEGRA INTEGRATION/SO TION/SOA A WHITE PAPER
APRIL 2012 2012
Oracle SOA Suite Best Practices
SUBSCRIBE TO PERFICIENT BLOGS ONLINE
www.Percient.com/SocialMedia BECOME A FAN OF PERFICIENT ON FACEBOOK
www.Facebook.com/Percient FOLLOW PERFICIENT ON TWITTER
www.Twitter.com/Percient PDF
DOWNLOAD PERFICIENT WHITE PAPE PAPERS RS Adobe
www.Percient.com/WhitePapers
Copyright © 2007-2012 Percient, Inc. All rights reserved. This material is or contains Proprietary Information, Condential Information and/or Trade Secrets of Percient, Inc. Disclosure to third parties and or any person not authorized by Percient, Inc. is prohibited. Use may be subject to applicable non-disclosure agreements. Any distribution or use of this material in whole or in part without the prior written approval of Percient, Inc. is prohibited and will be subject to legal action.
Author Kulin Desai is a Technical Architect with Percient. He has 14 years of consulting experience helping clients with setting up integration & SOA Centers of Excellence, SOA architecture assessments, SOA technical architecture design and implementation, and delivery of a wide range of solutions in the area of Oracle Fusion Middleware, TIBCO J2EE, WebSphere MQ and IBM mainframe-based legacy integration solutions. During his career Kulin has led several SOA and integration engagements ranging from one-person teams to large teams with work spanning across multiple years, helping the client to realize their SOA vision.
Abstract This paper is intended to provide guidance around best practices for
The Mediator is an intra-composite mediation component
Oracle Fusion SOA Suite Middleware development and is intended
that is deployed within an application. It is responsible
for enterprise architects, middleware design architects and SOA
for brokering communications between components that
developers. The scope of Oracle Fusion design best practices is vast
make up a composite, enabling transformation, routing,
and it’s not possible to discuss all design aspects of Oracle Fusion
event delivery and payload validation inside the composite.
middleware in a paper of this scope. However, eorts have been made to cover those aspects which are immediately relevant for making design decisions with Oracle Fusion SOA Suite Middleware.
The Oracle Service Bus provides standalone service bus capabilities, enabling separation of concerns between application developers and target systems or services.
The Oracle SOA Suite is a key component of the Oracle Fusion Middleware product stack. With the 11g version Oracle introduced
While Oracle Service Bus provides enterprise service re-use and
many of key improvements into the Oracle SOA Suite stack such as:
management, the Mediator component provides certain localized mediation capabilities with the Business Service Layer. Thus,
est Practices
• 11g SOA Suite runs on leading WebLogic Application Server
the lifecycle of a Mediator component is tightly coupled with that of
• Industry SOA standard Service Component Architecture
the SOA composite application that provides the application logic.
(SCA) based SOA Suite • Unied Development and management interface
Mediator provides the following capabilities within the context of a single composite application:
• Coherence-based in-memory caching solutions • Introduction of Oracle Service Bus (OSB)
• Connectivity abstraction from a business process • Inline data transformation / mapping
The Oracle SOA Suite is rich in products with powerful capabilities.
• Message ltering
This can sometimes lead to a very complex design and confusion regarding which product to choose to implement a particular design. In absence of best practices and guidance from experts it will be dicult to realize the full potential of SOA Suite. This document will help you to jump start with some of the important SOA suite implementation decisions. However, a detailed current state a nalysis, a good enterprise architecture vision and SOA maturity analysis is required to lay the foundation for SOA Suite implementation.
Oracle Service Bus (OSB) vs. SOA Composite-Based Mediator There is always a dilemma whether to use OSB or Mediator for service mediation. The term mediator is very confusing and often makes one think it’s used for service meditation. Oracle’s guidance in this matter comes in the form of a Statement of Direction when they released the new version of Fusion in the form of 11g:
Oracle Service Bus enables eective de-coupling of systems and lifecycles within enterprise architecture. Mediator provides any abstraction that the Business Process needs within the context of a single composite. The key considerations for using Mediator include: • The functionality is available within the context of a single SOA composite application. e.g., Mediator can be used to expose a BPEL process to multiple services dened on the same composite. • Mediator does not focus on key capabilities required for the SOA Infrastructure category such as trac shaping and endpoint management. • Mediator should not be used to share services at an enterprise-wide level.
Other Considerations for Selection Characteristic Routing
Mediator
OSB
+
++
++
+
OSB provides runtime support for XSLT whereas Mediator provides both design time and runtime support for XSLT
+
OSB provides runtime support for XQuery whereas Mediator does not provide support for XQuery
Transformation: XSLT Transformation: XQuery
Remarks Better routing capability with OSB in the form of Split join
Technology Adapters Design Time
++
+
Composite provides easy JDeveloper-based adapter conguration
Message Validation
++
+
Composite provides richer Shematron-based message validation
Error Handling
+
++
Re-submittance of Failed messages
+
OSB: Much richer error handling OSB: Is stateless
Instance Monitoring
++
+
OSB: Stateless: No concept of an “instance”
Performance Tuning
+
++
OSB: Throttling
++
The Oracle Service Bus is designed to provide better performance as compared to Mediator when it comes to handling message load, Routing and Transformation. Oracle Service Bus provides the ability to set service level agreements (SLAs) on business and proxy services. These SLAs dene the precise level and quality of service expected from business and proxy services.
Performance
+ Sequencing or Message Order Support
+
Oracle Mediator can re-sequence the incoming messages in a userspecied order.
+
++
In the current release of the Oracle Mediator when you call a SOAP Web Service with attachments you will not be able to perform a payload manipulation using the Assign or Transform functions. It fails with an exception because SOAP with attachments is not supported in Oracle Mediator if you use the Assign or Transform functions. So when calling a SOAP Web Service with attachments use Oracle Service Bus instead of Oracle mediator.
++
+
OSB 11.1.1.5 version has known issues with some of the JCA-based adapters
++
+
Legacy 10g Oracle ESB ows are automatically migrated to 11g Mediator based composites using Jdeveloper. However, Legacy 10g ESB to OSB migration is manual.
++
++
SOA composite supports compensating transactions. OSB supports propagating transactions.
Support for Attachments
JCA Support 10g to 11g ESB Migration
Transaction Support + Feature Available
++ Advanced Feature/Better Support Available
Creating a Service in Java vs. SOA Suite
the primary goal of the SOA Suite should be to create composite
Oracle 11g SOA Suite recognizes that there are existing assets in
Architecture is a standard that should be used as a guiding
the IT landscape and does not force these to be replaced, preferring
principle to dene composite services within SOA Suite. Keeping
instead to encapsulate and later extend these resources. It’s often
pure services in Java or other similar platforms helps to reduce the
easy to lean towards creating a new service in SOA Suite using
migration impact in the event of moving from Oracle-based SOA
a JDeveloper drag-and-drop feature and easy conguration. But
Suite to other SOA Suites.
services or to extend existing services. The Service Component
Securing Services Using Oracle Web Services Manager (OWSM)
such as the location and network used to invoke the service.
Using SOA Suite and Oracle Service Bus in conjunction with
actually responsible for implementing processes and services.
Keep in mind that IT security is designed and implemented by dierent people with dierent skills and expertise than those
Oracle Web Services Manager (OWSM) provides a scalable, 2. Layered Security – IT Security should be layered involving
standards-based, centrally managed approach to securing your SOA environment with WS-Security policies while leveraging your
measures on multiple levels such as awareness, logical
existing security providers. Oracle Web Services Manager provides
access control, network security, and so on.
a runtime framework for security policy creation, management, and 3. Classify Your Services – Using a security classication
governance. You create policies, attach them to services in Oracle Service Bus, and enforce those policies at various points in the
results in just the right amount of security to be applied while
messaging life cycle with Oracle Web Service Manager agents.
saving money. A best practice is to dene a limited set of security classication and corresponding measures.
Best Practices When Implementing Security Using OWSM 1.`Externalize Security – It is a good design practice to
Top-Down vs. Bottom-Up Design Oracle SOA Suite SCA-based design can help to facilitate both
externalize security from service and process implementation.
top-down and bottom-up application design and development. An
There may be dierent security requirements for the same
architect can, for example, build out the high-level ow of the SCA
service based on type of service consumer and related aspects
application and relate part of the implementation to developers
10G to 11G SOA Suite Product and Feature Mapping Role
SOA Suite 10g
SOA Suite 11g
Java EE Container
OC4J
WebLogic
Management Consoles
BPEL Console, OESB Console, OWSM
Enterprise Manager Fusion Middleware
Console, Enterprise Manager (OC4J), BAM
Control, WebLogic Console, BAM Console
est Practices
Management Orchestration
Oracle BPEL Process Manager
BPEL Process Service Component
Human Interaction
Human Workow Engine
Human Workow Service Component
Externalize Logic
Oracle Business Rules
Business Rules Service Component
Transformation, Routing, Fan-out, etc.
Oracle ESB
Inside an application/composite: Oracle Mediator Service Component. Enterprise wide: Oracle Service Bus
Apps and Systems Connectivity
JCA Adapters
JCA Adapters
Business Dashboards
Oracle BAM (.NET-based)
Oracle BAM (JEE-based)
Security
OWSM (proxy and gateway modes)
OWSM (proxy), OEG (gateway)
Sharing of Common Artifacts
Slide
Oracle MDS, Oracle OER
Cross Referencing
DVM
DVM
Clustering & Load Balancing
jGroups
WebLogic supports unicast and multicast for clustering along with Coherence support for web sessions
Deployment Property Replacements
Tokens and Property le
Cong Plans and Customization plans
IDE
JDeveloper
JDeveloper, OSB Console, Eclipse (with OEPE)
Fault Handling
Error Hospital
Policy-based fault handling framework
who have particular strengths in particular areas. The bottom-up approach allows SCA to be the glue that binds together lower-level
Error & Exception Handling
components into a higher level of abstraction within a number of
One of the new features of 11g SOA Suite is that it provides a
applications.
framework for error handling within BPEL processes, Adapter and Mediator components. The fault management framework
Composition vs. Orchestration
allows us to dene policies for handling faults in a loosely coupled
Oracle SOA Suite SCA-based architecture is all about composition
implementation. A policy consists of two basic components,
of components together into an “integrated circuit” that might well
namely, the faults that you wish to catch and the actions you wish
be part of a bigger application. Orchestration concerns the control
to take once the faults are caught. Once a policy is dened, one
of a process across multiple systems and people. That control
can then attach (or bind) it to a SOA composite, a BPEL, a Mediator
involves branching, state management and human task ows. One
service component, or an external reference. This provides a
should use SOA composite for composition and BPEL for process
exible mechanism for attaching dierent policies to dierent
orchestration.
components within a composite. Although BPEL processes and
manner. It externalizes the fault-handling mechanism from process
Mediator leverage the same fault management framework, the
Business Rules as a Service With OFM SOA 11g Oracle is moving towards a standardized approach for creating distributed SOA applications. There are various approaches available to call business rules from distributed
application of the framework is slightly dierent for each.
Logging Attaching the Log Policy
SOA applications (Java + Composite). But at the same time, Oracle
One of the standard WSM policies is a logging policy. By applying
wants enterprises to standardize the way they invoke business
this policy, one can extend the logging with exact entries with
rules. Here are few recommended approaches:
the contents of the messages coming in to and owing out of the composites and components.
Using SOA • OFM allows rules as services using decision services
Setting the Name of a Composite Instance
• Create a proxy rules service
Composite instances all look the same in the console. The only way
Pros: Provides even non-Java-based applications to use business rules in a standardized way and while also achieving loose coupling. This also increases rule reusability.
Using Standardized API • Use Java JSR-94 rules API to connect to repo repository
really to distinguish one from the other is based on the timestamp, which can be very cumbersome, especially when you have no idea of the time of the message. There are several ways to make it easier to discern between instances. One way is by dynamically assigning a meaningful name to an instance of a composite.
Composite Sensors
Pros: This provides a standardized Java way to connect distributed
Composite sensors make tracing easy by allowing you to expose
rules engine, where you can port from one rule engine to another.
information from within composite instances. These sensors are
Cons: Unknown performance benchmarks and unknown total compatibility with Oracle rules features.
Sharing and Reusing Common Artifacts with MDS and OER All shared SOA artifacts (such as XSD, XSLT, WSDL) should be stored in a central repository that can be accessed at design time and at runtime from deployed SOA composite applications. This central store is known as Oracle Meta Data Storage (MDS) repository. This MDS repository, along with the metadata services on top of it, helps the organization to reuse SOA application artifacts such as canonical data model denitions. However the MDS repository is an intrinsic part of the SOA suite and should not be viewed as enterprise-wide repository. The Oracle enterprise repository provides enterprise-wide central repository of metadata.
typically used to expose the data enable search of the instances.
Legacy 10g to 11G Migration Best Practices and Steps • Plan upgrade and dene rollout strategy and timeframe • Design reference architecture to accommodate new and upgraded features • Dene deployment topology • Install 11g products • Identify initial POC projects to migrate • Migrate SOA application, BAM components and WSM policies using a combination of automated and manual steps • Create new deployment ANT and WLST-based scripts • Congure JMS adapter, DB adapters, data sources, JNDI, and connections pools using WebLogic consoles
• Create JMS modules, queues, topics, MDS repository, notications, fault handlers and fault handling policies
• Measure and compare performance and performance tuning
• Dene fault handling framework
• Roll out initial POC projects to production
• Recompile and deploy SOA application and BAM
• Review process, rene migration steps and create
components • Unit testing, regression testing and E2E testing
migration checklist • Implement the migration plan
Additional Resources Here are additional resources that you may nd useful to read in conjunction with this white paper: OSB Statement of Direction
http://www.oracle.com/technetwork/articles/oracle-service-bus-sod-128083.pdf “Maximize the Benets of Oracle SOA Suite 11g with Oracle Service Bus” (Oracle white paper)
http://www.oracle.com/us/technologies/soa/maximizing-benets-oracle-soa-150680.pdf Oracle SOA Suite 11g R1 Developer’s Guide by Matt Wright and Antony Reynolds “Service Component Architecture - Assembly Model”
http://www.oasis-opencsa.org/sca “Oracle –SCA Power of Composite”
http://www.oracle.com/technetwork/topics/entarch/whatsnew/oracle-sca-the-power-of-the-composi-134500.pdf Oracle Enterprise Deployment Guide for SOA Suite
http://download.oracle.com/docs/cd/E15523_01/core.1111/e12036.pdf est Practices
Oracle Fusion Performance Tuning Guide
http://download.oracle.com/docs/cd/E15523_01/core.1111/e10108.pdf