>Methinks that division of responsibilities isn't quite >right in such a case. IMO, just one service would do that. Other >services would call the service responsible for Customer.
Agree. I call such service an Application Service ( :) ). Actually, this service is a sophisticated one. It has to be able to fulfill changing needs for every consumer of the Customer Business Data Object. Plus, every consumer has to have a way to change its needs in the data, i.e. in the view on the Customer Business Data Object, re-using the same Application Service. This may be done via message schema manipulation ( namespaces ). - Michael ----- Original Message ---- From: Rob Eamon <[EMAIL PROTECTED]> To: [email protected] Sent: Monday, July 7, 2008 4:08:24 PM Subject: [service-orientated-architecture] Re: Vandersluis on a Data Abstraction Layer's Benefits --- In service-orientated- architecture@ yahoogroups. com, "kavandersluis" <[EMAIL PROTECTED] > wrote: > > I agree with this point in general, that to the consuming > application in a SO environment, data acess is incidental to an > operation. However, if you consider how the service is > implemented, you could either create a data abstraction layer to > supply data operations to the higher level service, or not. I > advocate creating the data abstraction layer. If you don't, your > services will be tightly coupled to the physical data sources, and > an obvious opportunity for standardization and reuse will be > missed. I agree that a DAL in this context can be useful, though I'm not all that keen on "reuse" at the data access level--I wonder about the segementation of services that are able to share a data store and data access. Meaning, two or more services reading the Customer data directly. Methinks that division of responsibilities isn't quite right in such a case. IMO, just one service would do that. Other services would call the service responsible for Customer. > This last point simply means that major entities in the business > and their CRUD-like operations should be formalized as services. I've no problem with CRUD components being used for service implementation. I don't lump them in to the "services" category though. I question the value of a services style approach to such components. > I'm suggesting these entity-style services also be available to > applications (not just "private" services used by other services), > but I'd love to hear other's opinions on that. I definitely do not subscribe to this approach. Data access from applications must be via services--and as mentioned above, I don't view data access components as services, private or otherwise. They are service implementation components. If apps simply use CRUD facilities to manipulate data, how is this really any different from what apps do now? Integrating at the data level, which is what data access services effectively provide, is the way right back to the spaghetti of point-to-point connections of the past (as is SO if one is not careful). -Rob
