Thursday, December 27, 2007

5 Competing Views on SOA Lifecycle Stages

Software development lifecycles (SDLCs) are sometimes seen differently by different people, but they generally break down into Development, staging, and production. With most methodologies, these three components are typically found somewhere, and they're usually distinct from each other. However, add in the abstraction and loose-coupling of SOA, and some really different lifecycle views come out. In no particular order, here are five ideas floating around:

1. The "Pre-consumption view" by Dan Froody from Progress software. This view is interesting because it takes a blend of the staging and production stage and sticks it between the two in his view of the SDLC.

In a traditional SDLC, you can broadly say there are two phases:
*Pre-production (design, development, QA, etc.)
*Production (deployment, operation, etc.)
In a SOA lifecycle, though, there's a new lifecycle phase which fits between these: I call it pre-consumption.
What is pre-consumption? It's a hybrid of pre-production and production - part of what's being built is in production (some of the services) and part is in pre-production (some of the consumers):
*To service providers pre-consumption looks like part of their production phase since their services are complete and operating in production.
*To service consumers pre-consumption looks like part of their pre-production phase since their consumer application is still being built

2. The "Same as the general SDLC" view by AmberPoint. It's hard to go wrong with Occam's razor.


*Staging, and


3. The "Same as the general SDLC, but with fluffier names" IBM view.

Model, Assemble and Deploy phases of the SOA Lifecycle is essential and referred to as Service Lifecycle Management. Service Lifecycle Management is broken into 2 facets:

*Service Development and Delivery Management
*Infrastructure and Management in Support of SOA

Bonus: IBM has also come up with a Service Lifecycle Management view to complement it's SOA lifecycle view:

Service Lifecycle Management: SOA governance applied to software delivery



*Enable, and


4. Wikipedia's view: I considered not including this. Most of this view is from one editor, and the article is still maturing. However, it's an interesting perspective.

The SOA (Service Oriented Architecture) Lifecycle is a model that is intended to illustrate relationships and dependencies between various independent lifecycles that comprise a mature, enterprise SOA program. To be clear, this model encompasses many SOA conceptualization, planning, development, deployment and support paradigms and is not strictly confined to a Service Lifecycle. In other words, the full SOA Lifecycle supports all aspects of an enterprise SOA program - not just the development of services.

5. Miko Matsumura's view. This is interesting because it makes a clean break with the SDLC; In this perspective, The first stage of the SOA lifecycle starts after the last phase of the SDLC is wrapped up.

*Design time, when the services are put together to form a business application
*Runtime, when the SOA implementation goes to work and the business activity begins
*Change time, when the inevitable alterations are made as business requirements change to take advantage of the agile promise of SOA

Also: Check out the 4 Tenets of SOA


  1. this is kind of interesting - Not sure if it's the same idea, but this is neat: Understanding the Service Lifecycle within a SOA: Design Time by Quinton Wall

  2. lol @ 'fluffier names' by IBM :)

  3. The Pre-consumption view is new to me, but that makes the most sense.

  4. that wikipedia view is rambling and awkward. someone should change it

  5. I like the 1st one - "pre-consumption" gives the idea of the application layer meshing with itself and the top-layer consuming at the end of the SOA lifecyle

  6. Yeah, the wikipedia link needs work. This is better.

  7. I involved in couple of big SOA implementations programs so far and based upon those experiences, I can say first view resembles most.