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.

Comments:

Post a Comment:
Comments are closed for this entry.
About

Musings on Fusion Middleware and SOA Picture of Antony Antony works with customers across the US and Canada in implementing SOA and other Fusion Middleware solutions. Antony is the co-author of the SOA Suite 11g Developers Cookbook, the SOA Suite 11g Developers Guide and the SOA Suite Developers Guide.

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today