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!!
- 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.
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
- 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 Facebook Wiki Mix Forum