Monday, November 28, 2011

Best practice for SOA based process-centric design

Pointers from one of the white paper I read:
  1. Apply the componentization principle: Avoid embedding business rules into the application so that a tightly coupled design doesn’t constrain business. 
  2. Apply granularity, modularity, and reuse principle: Reduce time to market by enabling modifications to the business rules and process flows quickly and independent of the application code. 
  3. Apply the loosely coupled invocation principle and interoperability along with service consumption pattern: Seamlessly integrate other systems like payment services, booking etc. and also consume functionality from other systems as services. 
  4. Apply service identification, design, and consumption principle: Expose the repetitive business tasks as services. For example, retrieving member information, generating reward certificates, etc. 
  5. Apply process design, granularity and composite-ability principle: Design the desired flight reward booking process and other optimal sub-processes. 
  6. Apply process metrics, analyze the metrics and improve the business processes: Compute the number of reward booking made in a day, loss of business due to not allowing purchase of shortage miles, etc. 
  7. Apply versioning principle: Define process and service validity and manage old and new versions of processes and services so that they co-exist for a certain period of time before new processes and services fully take over.