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
Since the services you bring together will likely have been developed at different times with different technology and even by different teams, a key consideration for performance is not just tuning parameters of the underlying server, but choosing the right components to interact with services. It is very easy to build anti-patterns into a SOA solution without realising. Synchronous calls to services which themselves are designed to make asynchronous calls, excessive dehydration and other bad practices can undo any amount of good configuration and set up of the server runtime.
C2B2 have many years of collective experience with SOA projects through consultancy services and customer projects. Since the modularization of services through SOA’s innate decoupling is most concerned with reusability and flexibility for development, performance can often take a hit.
For more information, see our WebLogic and SOA suite support pages, engage our consultancy services for an upcoming project, or just get in touch by phone on +44 (0)8450 539 457 or email on firstname.lastname@example.org