« Of Laundries and Lego | Main | Finding the End(point) »

Patterns and Methods

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.

Methodologies

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
shared repository.

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.

SOA Patterns


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
the following.

  • 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
      service deployments
    • Encourages service level interface abstraction by encouraging
      use of mediator to transform between canonical and physical
      implementation formats
  • 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
      best practise.
    • 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.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About This Entry

This page contains a single entry from the blog posted on April 24, 2008 9:19 PM.

The previous post in this blog was Of Laundries and Lego.

The next post in this blog is Finding the End(point).

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type and Oracle