Colin, I think there is a bit mismatch in "if you follow a business (or domain, 
or capability) first approach then you'd end up with larger services that 
internally manage their own data (and behavior, and message schemas, and 
data-stores, etc.)" Here is why:

1) the business service you end-up is not necessary large, it depends on 
concrete business function, feature or task you are implementing in the service
2) if you properly design your business service, you should never MANAGE data 
you service works with, you have to process/massage/transform the data, not 
manage, and by no means - manage data store. 

The data store is de-facto shared resource.If you assume that your business 
service might be used in different service compositions (may be 
simultaneously),every shared resource will anchor your service and degrade its 
composability. Plus, it will be terribly difficult to manage this resource: any 
data store is the element of service execution context (EC) (environment); if 
it is shared, it constantly changes (different load, concurrent access, 
parallel processes, and so on). If your EC changes, you cannot guarantee 
service SLA and, sometimes, service behavior and results. So, instead of  
concentrating on the quality of business logic of the service, all efforts will 
go into endless re-testing and negotiation with other users of shared resource.

Ownership of resources is typical application-oriented approach: applications 
try to occupy and own all possible entities they depend on at run-time. 
Service-oriented approach is based on separation of concerns and 
responsibilities placed on the top of competition in QoS. Tell me that I am 
wrong.

- Michael


________________________________
From: Colin Jack <[email protected]>
To: [email protected]
Sent: Wednesday, April 15, 2009 8:11:23 PM
Subject: [service-orientated-architecture] Re: Joe on Microsoft's combination 
of SOA & Storage





> Is the question of whether or not data access/storage is "in SOA" 
> fuzzy because there are assumptions about the level of scope of 
> SOA? 

I think so, if you follow a business (or domain, or capability) first approach 
then you'd end up with larger services that internally manage their own data 
(and behavior, and message schemas, and data-stores, etc). These large services 
might choose to access the data through data (or entity) services but obviously 
they don't have to, and although where/how the data is stored is important it's 
relegated to being an internal implementation detail of that business 
meaningful service.

However if you follow the whole layered SOA approach, right down to 
utility/entity services, then the data/entity services become part of your SOA 
(which has never made any sense to me and used to turn me off SOA).


   


      

Reply via email to