Common SOA Problems by C2B2

SOA stands for Service Oriented Architecture and has only really come together as a concrete approach in the last 15 years or so, although the concepts involved have been around for longer. Oracle SOA Suite is based around the Service Component Architecture (SCA) devised by the Open SOA collaboration of companies including Oracle and IBM.

SCA, as used in SOA suite, is designed as a way to crystallise the concepts of SOA into a standard which ensures that SOA principles like the separation of application and business logic are maintained.

Orchestration or Integration?
A common thing to see with many people who are beginning to either build a new SOA based infrastructure, or move an old system to be service oriented, is confusion in the purpose of SOA technologies like BPEL and enterprise service buses. For a lot of problems, orchestration tools like BPEL or integration tools like an ESB will both do the job and achieve the right objectives; however it’s important to remember that, although a hammer can be used to drive a screw into wood, that doesn’t mean it’s the best way to do it.

Service Integration is the act of connecting components together at a low level, which usually results in a single external endpoint for you to expose to your customers or other teams within your organisation – a simple product ordering system, for example, might integrate a stock checking service and a payment processing service.

Process Orchestration, however, is generally a higher level approach whereby the (often externally exposed) service endpoints are brought together to track an end-to-end business process. This might include the earlier example of a product ordering service and couple it with a business rules service and human task to handle edge-cases.

A good (but not exhaustive) rule-of-thumb is that integrations performed by an ESB will usually be real-time, whereas process orchestration in a SOA composite might comprise processes which take a certain amount of time to complete, or have to wait pending manual intervention.

BPEL vs BPMN
For some, with pre-existing SOA or business process projects, this decision is effectively already made. For those embarking on new projects it’s certainly an important consideration for those using Oracle SOA software since, due to the components included in SOA Suite and BPM Suite, the choice of which to buy is determined by what they offer.

Oracle SOA suite has no BPMN engine, whereas BPM suite has both a BPMN and a BPEL engine. SOA suite has the ESB component “Mediator”, whereas BPM suite has none. Decisions must be made, therefore, on whether just one or both process modelling languages are to be used. The wrong decision could be costly further down the line.

Design for performance: Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Podcast Show Notes: Finding a Shorter Path to SOA

A podcast featuring Oracle ACE Directors Lonneke Dikmans, Simon Haslam, and Ronald van Luttikhuizen in a discussion about strategies for simplifyng SOA implementation.

The OTN ArchBeat Podcast kicks off the new year with a conversation with three highly experienced SOA experts about strategies for dealing with some of the problems that can thwart SOA efforts within some organizations. One of those strategies involves a new collaborative venture that promises to remove many of the technical hurdles on the path to SOA implementation. Listen to the podcast here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Oracle SOA Suite 11g – Best Practices Snapshot By Kathiravan Udayakumar, Senior Architect, Cognizant Technology Solutions

Oracle SOA Suite is a complete suite which contains various services engines and adapters that can be readily integrated with other SOA Components to enable true SOA Ecosystem in an Enterprise. The below diagram shows view of the various SOA/SCA components that can be integrated together to enable a right SOA Ecosystem. This shown to provide a recap on the Oracle SOA Suite Components and Architecture before we discuss in detail about the best practices to be followed in implementing Oracle SOA Suite.

This article will discuss in detail about the below listed items to enable Best practices.

  • Hidden Treasures in Oracle SOA Suite 11g – Do it this way!!
  • Pitfalls in Oracle SOA Suite 11g – Do not Fall!!

Hidden Treasures in Oracle SOA Suite 11g – Do it this way!!

Component Usage

  • Oracle has provided a Meta Data Store (MDS) with Oracle SOA Suite; make use of this to store Oracle SOA Artefacts.
  • Oracle provides DVM to store static references to be used across different flows; don’t build custom logic to achieve the same. XPath Functions are available to access the DVMs
  • Dynamic Cross Reference can be achieved through Cross Reference Framework available in Oracle SOA Suite. XPath Functions are available to access the XRefs.
  • All BPEL Process need not be persisted; make use of oracle persistency policy definition to make the BPEL as in-flight process. It improves the process efficiency.
  • Make use of Schematron for Data Validation and Business Rules for defining the business rule and policies. Oracle Mediator/BPEL provides are features to integrate with Schematron Data Validation Files.
  • Don’t invest an additional in acquiring a Queue based product; make use of Oracle Weblogic JMS to implement guaranteed delivery scenarios.
  • Oracle BPM is bundled along with Oracle SOA Suite. BPMN Maps can be built and converted to BPEL Process.
  • Oracle B2B is bundled along with Oracle SOA Suite; don’t invest in buying another EDI translation product.
  • Create an ESB Wrapper for Asynchronous Error Handler Service that can be utilized for error notification in transactional BPEL flows
    • When a Common Error Handler Service implemented in BPEL process are called by the other BPEL Processes/services that participates in the global transaction; in case of rollback of the transaction , notification process is also rolled back by Oracle BPEL Process Manager; to avoid this ESB wrapper can be utilized.
  • Leverage Oracle Coherence for shared memory requirements and build capabilities within SOA to leverage coherence as a global space.
  • Oracle AIA recommends below MDS structure; Make use of this structure to govern your SOA artefacts better and easier.

MDS Partition/Folder

Artifacts Description

ApplicationConnectorServiceLibrary
Abstract WSDLs of various Application Business Connector Services (ABCSs) are stored in this partition.

B2BObjectLibrary
B2B related schemas are stored in this partition.

B2BServiceLibrary
Abstract WSDLs of various B2B Connector Services (B2BCSs) are stored in this partition.

BusinessProcessServiceLibrary
Abstract WSDLs of Composite Business Processes (CBPs) and Enterprise Business Flows (EBFs) are stored in this partition.

EnterpriseBusinessServiceLibrary
Abstract WSDLs of Enterprise Business Services (EBSs) are stored in this partition.

EnterpriseObjectLibrary
Oracle AIA Canonical Schemas are stored in this partition.

Transformations
XSLs shared among various services are stored in this partition.

UtilityArtifacts
Utility schemas and WSDLs are stored in this partition.

Config
SOA Configuration Properties used by business process functions are stored in this partition.

Dvm
Domain Value Maps are stored in this partition.

faultPolicies
Common Fault Policies are stored in this partition.

Xref
Cross References Definitions are stored in this partition.

Implementation

  • Plan to form a in-house foundation architecture team with few consultants to guide the implementation effort and provide best practices
  • Spend adequate time and resources in capacity planning of Fusion Middleware Hardware resources
    • Plan for highly scalable and truly distributed SOA deployment architecture with multiple clusters with each Cluster hosting related set of services.
    • Scaling of a single SOA environment capable of hosting thousands of services is not feasible even in a HA environment
  • Carefully chose your Middleware components development strategy and select the right tools sets from Oracle Fusion Middleware Stack.
  • Formulate an effective deployment strategy prior to embarking on development activities
    • Ensure to sync-up of SOA services development with the deployment architecture
  • Develop a custom deployment tool to migrate SCA Composite binaries from one environment to another
    • Oracle Fusion Tool Set lags this capability, WSLT, Ant based scripts are quite effective.
    • Large scale deployment requires integration of the tools with QMS and Code Control Systems to enable continuous Integration.
  • Develop the architecture and foundation tools prior to the start of development
    • Error Handler, Logger, Enterprise functions, Enterprise Locks etc.  (Refer: Chapter 4 for Essential SOA Frameworks)
  • Establish a well defined integration patterns for your implementation
  • Develop automated scripts to recover BPEL process that enter into Manual Recovery
  • Implementing best naming standards for your implementation is also essential; Reference section 3 of this chapter (Naming Conventions for Oracle SOA Suite 11g Components)

Pitfalls in Oracle SOA Suite 11g – Don’t Fall!!

  • Don’t use BPEL as a programming language; uses it as a glue language to call multiple services from different BPEL. Avoid implementing any service/business logic in BPEL. Utility Services are exception to this.
  • Don’t use multiple assign statement to construct a message; use XSL to construct messages and do multiple assign statement.
  • Don’t loop through the data for checking data constraints; use XPath Expression to check the data constraints.
  • Keep the number of activities in BPEL as minimal as possible; increasing the number of activities will decrease the performance of BPEL Engine
  • Avoid declaring many global variables in a BPEL process, instead use scope or local variables.
  • Don’t forget to turn off the Payload Validation at SOA Infra Properties – This increases the performance of the SOA Suite to greater extent. Major Improvements are guaranteed.
  • Be aware of setting idempotent property (Partner Link Property in BPEL); turning off this property results in dehydration of BPEL process after hitting the right checkpoint.
  • Don’t let your SOA Composite instance grow exponentially – Define rules to keep the house clean, purge the instances at regular interval to obtain better performance from BPEL engine and Enterprise Manager.
  • Don’t choose to have all the services in single Fusion Middleware Environment /System
    • Formulate an effective load balancer strategy that dispatches the service to appropriate system based on the request
  • Don’t use Pick based Initiate pattern for  implementing  interdependent  operations
    • Implement different operations in independent BPEL processes.
  • Don’t use BPEL for intensive time scheduled activities.
  • Extensive use of activities such as alarm and wait can lower system performance if sufficient threads are not configured properly.

Kathiravan Udayakumar, Senior Architect – Technology, Cognizant Technology Solutions
Kathiravan has 9+ years of IT experience. He has extensive experience in architecting and designing solutions using various Oracle Fusion Middleware and PeopleSoft Products. Kathir works for a highly reputed IT consulting Organisation and is a key member of the Fusion COE team. He authored the world’s first book for Oracle SOA Certification, entitled “Oracle SOA Infrastructure Implementation Certification Handbook” Other books on Oracle SOA Published by the author are, “Oracle SOA Patterns” , “Oracle SOA Frameworks”, “Hello World to Oracle SOA – A Complete Guide to Oracle SOA Suite 11g” and “Oracle SOA Suite 11g Administration and Performance Tuning”.

For more information visit Kathiravan Udayakumar facebook page and Linkedin profile.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki Mix Forum