Patterns & Methods
Thought I would share some thoughts on Oracle SOA Methodologies and SOA patterns. These are by no means complete, I just wanted to put down some ways in which SOA Suite can encourage good practise.
The Oracle SOA Success Methodology is a methodology with a small 'm'.
It is best viewed as a set of tools of techniques that can be applied
within the context of a more proscriptive methodology. That said it
works best with iterative methodologies.
The SOA Success Methodology is currently used with a restricted number
of Oracle customers prior to a full release.
Within the context of the SOA Success methodology is extensive
modelling of the business in terms of services. Oracle BPA Suite can
be used to drive this iterative modelling process.
BPA encourages a focus on the abstract modelling side of the SOA
success methodology. As the model becomes more reified then composite
services and processes may be made available to JDeveloper through a
Oracle is currently using BPA Suite to perform high level modelling in Fusion Applications development.
BPA Suite supports roundtripping to allow regeneration of processes
without loss of reifications applied to earlier versions, encouraging
an iterative cycle between business analyst and process developers.
Best source for SOA patterns in the Oracle space specifically is the BPEL cookbook
which covers a lot of common patterns and techniques. Both the latest
release of Oracle SOA Suite 10g, and 11g currently in beta, encourages
these best practises in a number of ways, including but not limited to
- Rules abstraction for
- True Business Rules - tight integration of rules and BPEL
encourage business process developers to abstract business logic into
the rules engine - this is also available in 10g
- Routing Rules - tight integration of rules and Mediator encourage developers to abstract routing decisions into the rules engine
- Service Abstraction
- Encourages service level location abstraction by making it easy
to hide physical endpoint of service - in 11g all BPEL processes are
automatically packaged up in the same SCA assembly used to describe
- Encourages service level interface abstraction by encouraging
use of mediator to transform between canonical and physical
- Process Abstraction
- Definition of processes allows for lower level processes to be treated as services
- Capturing of process flows in code allows for simulation and modelling based on real world data
- Human workflow captures common best practise human interactions into re-usable templates
- Process Migration
- Champion/challenger processes - two versions of same process
can run in parallel and be compared to see which yields best results
based on concurrent versioning capabilities of BPEL process manager.
- Managed process migration - ability to run multiple versions of
same process allows controlled introduction of new process versions
whilst existing instance continue to execute.
- Service Discovery
- Service promotion - use of a registry allows services to be
promoted from dev to test to production in a managed way, encouraging
- Service catalogue - use of UDDI allows such a catalogue to be
maintained to encourage re-use by simplifying service discovery process
There is lots more but this was a quick brain dump. Let me know which important ones I have missed.