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
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!!
- 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
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.
Abstract WSDLs of various Application Business Connector Services (ABCSs) are stored in this partition.
B2B related schemas are stored in this partition.
Abstract WSDLs of various B2B Connector Services (B2BCSs) are stored in this partition.
Abstract WSDLs of Composite Business Processes (CBPs) and Enterprise Business Flows (EBFs) are stored in this partition.
Abstract WSDLs of Enterprise Business Services (EBSs) are stored in this partition.
Oracle AIA Canonical Schemas are stored in this partition.
XSLs shared among various services are stored in this partition.
Utility schemas and WSDLs are stored in this partition.
SOA Configuration Properties used by business process functions are stored in this partition.
Domain Value Maps are stored in this partition.
Common Fault Policies are stored in this partition.
Cross References Definitions are stored in this partition.
- 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
for highly scalable and truly distributed SOA deployment architecture
with multiple clusters with each Cluster hosting related set of
- 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
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
- 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.
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
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
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 Facebook Wiki Mix Forum