Friday, May 25, 2007

The two worlds of SOA

Nick Malik posted a reaction on the idea that entity services are anti-patterns. I agree with his conclusion that it depends on where you stand.

Looking from the business side, there is the composition of business activities into autonomous business functions. These functions offer services to each other and communicate - preferably - events based to obtain their autonomy. Such a business service could easily be outsourced without any disruption of the overall business process. Such a business service can also easily be delivered (shared) to different business contexts (internal or external). I call this the Service Oriented Enterprise. This has nothing to do with IT.

On the other hand there is the composition of application constructs. The top level of such a construct preferably maps with an autonomous business function. Current standards based technologies make it possible for IT to support events based interaction between the autonomous business functions, which in turn boosts the Service Oriented Enterprise.

The idea (or pattern, if you like) of autonomous business functions can be prolongated into the finer grained application constructs which may e.g. lead to autonomous entity services or deeper layers of granularity.

See also:

So: No, entity services are not an anti-pattern.


Anonymous said...

Hi Jack,

So you are saying that Entity Services DO NOT receive Events?

If this is the case are you saying that an Activity Service has a tight coupling on the Entity Services?

I have really enjoyed reading all of your posts.

Jack said...

Thanks, Anonymous.

I don't say that Entity Services do not receive events. They may receive events, but probably NOT BUSINESS EVENTS. As Entity Services occur at the deeper granularity level of application construction it is likely that these services are invoked synchronously.


Eric said...

Your readers might like this post (mine) on the same topic.