Pragmatic Software Design

Vijay Narayanan

10 Design Assumptions That Could Hurt Your SOA

user-pic
Vote 0 Votes

Building service capabilities that are strategic for your enterprise is a key aspect of SOA and lays the foundation for agile business processes in your organization. Many teams are engaged in building service capabilities both as part of SOA initiatives and bottom-up ones motivated by technology teams pursuing the benefits of service orientation.

How do you ensure that the service capabilities are in line with business objectives?
Are th
ere assumptions that hurt your SOA? I believe so! Here are 10 design assumptions that you need to watch out for:

  1. Service capabilities are always Web Services
  2. Services need to support only one data format i.e. SOAP
  3. Services are implemented first and then contracts are extracted (aka code-first approach)
  4. Service contracts don't have to be reviewed or governed
  5. Service capabilities from vendor solutions can be consumed out of the box without mediation
  6. Services handle exceptions in an ad-hoc manner
  7. Services implement consumer specific logic
  8. Service interfaces are always non-validating
  9. Service capabilities are always accessed in a on-demand fashion. No need to support event driven interactions.
  10. Service consumers will all migrate to new versions simultaneously. No need to support multiple versions.

Please add to this list any additional assumptions that inhibit the effectiveness of SOA efforts!

No TrackBacks

TrackBack URL: http://www.ebizq.net/MT4/mt-tb.cgi/16022

2 Comments

| Leave a comment

Great articles, Vijay. Keep them coming.

Could you elaborate a bit on point 9 ? How do event driven interactions fit into SOA ? How would a service know the difference between an event and an invocation if it is stateless ?

Thanks Kalyan! Point number 9's intent is to convey that not all service capabilities might be accessed in a synchronous request/response manner. Some services might be invoked due to business events. These events could be generated from business processes executing in a BPM engine, batch processes, or custom/packaged applications etc. They could also be generated based on business rules that get executed and trigger actions as an outcome. Eventing and SOA is a vast - in fact, there is a book on it.

The core service logic might never know whether it was accessed as a on-demand web service (e.g. SOAP over HTTP) or via event driven fashion (e.g. SOAP over JMS). Your SOA solution should enable you to take the core service capability and bind it to multiple transports.

Leave a comment

Vijay Narayanan blogs about software design from several perspectives - SOA,BPM, messaging, systematic reuse, agility, and architecture.

Vijay Narayanan

Vijay Narayanan is a software professional working on a variety of projects. Vijay has worked on several software initiatives ranging from single-user systems to large, distributed, multi-user service platforms with services. Most recently, Vijay has been involved in research dedicated to combining agile practices with service-orientation. He is a contributing author to the upcoming book Next Generation SOA as part of a chapter on modern SOA methodologies. Vijay maintains a blog dedicated to software reuse at http://www.artofsoftwarereuse.com.

Recently Commented On

Monthly Archives

Blogs

ADVERTISEMENT