I, personally, hate 'to isolate the service from changes to the implementation'. Service is a business functionality implemented in the service body. You can call it implementation if you want. Separation business functionality from its implementation is absurd. It is the service which defines its interfaces based on the business functionality and execution contexts. It is another absurd (in SO world) to say that interface is implemented somehow meaning that the implementation is the service itself; it is up-side-down exercise.
Loose-coupling between service (functionality/implementation) and its interfaces is a quite valid point but it is the business of the service to decide how 'loose' it should be. I accept an intermediary like a conciliator component between the service interface and main service body ( the conciliator belongs to the service body any way) but take an ESB (under the authority of somebody else ) as a conciliator for my service - no way. The ESB has its own interface and, if provider wants to communicate with consumers via ESB, the latter MUST be included into service description with its own interfaces while the actual service interfaces have to be hidden from the consumers. An ESB cannot be between my service and interface of my service (IMSO - strong) - Michael ________________________________ From: "[email protected]" <[email protected]> To: [email protected] Sent: Wednesday, May 13, 2009 3:51:27 PM Subject: [service-orientated-architecture] Re: JP on defining SOA Perhaps I used the wrong term, sorry... But if the intention is to isolate the service from changes to the implementation, then some form of 'intermediary' is useful. Call it facade, wrapper, what you will. Often the 'intermediary' can be something like an ESB, where most ESB products can host the service endpoint, and act as the intermediary to the implementation, providing the transformation and mapping technologies to marry the two together. More often than not, this is exactly what we find many of our clients faced with when providing service interfaces on top of existing implementations. But equally, given that change is a constant, it seems a good pattern to adopt when implementing any service. Lawrence (everware-cbdi. com, cbdiforum.com) --- In service-orientated- architecture@ yahoogroups. com, Michael Poulin <m3pou...@.. .> wrote: > > Please, tell me the secret: why we need a facade between interface of the > thing and the thing itself? > > It is interface, to the interface, to the interface... > > Definition of facade is not an intermediary between things, it is an > intermediary (according to GoF) between INTERFACES, from coarse- to > fine-grain ones. SO does not require decoupling between interface and the > service body but loose-coupling. That is, you should not expose service body > internals as interfaces, that's it. Preservation of interface immutability > (partial) does not require an intermediary such as facade, it may be a > proxy/stub of the service functionality or a conciliator component. > > - Michael > > > > > ____________ _________ _________ __ > From: "l.wil...@.. ." <l.wil...@.. .> > To: service-orientated- architecture@ yahoogroups. com > Sent: Tuesday, May 12, 2009 10:04:46 AM > Subject: [service-orientated -architecture] Re: JP on defining SOA > > > > > > I think we are more bullish on swapping service implementation, but that's a > consequence of > 1. telling people they have to "design for change". The more you make your > service a reflection of an implementation, the harder it will be to swap it > for another. You have to work hard at decoupling the interface from the > implementation. It isn't a given just because it it uses XML and a Web > Service... > 2. We have a long history of doing the same thing in Component Based > Development (we are CBDI Forum after all...). Again we saw that replacement > not reuse was often the goal. Hence we defined CBD standards and guidelines > to facilitate that - separating interface from implementation > 3. we also encourage people to take a facade type approach. Use a facade to > act as a 'broker' between the service interface and the implementation. No > one expects that a new implementation will have no impact, but if the 'hard > work' is done behind the facade, it should still have no impact on the > consumer. > > Lawrence > (everware-CBDI. com, cbdiforum.com) > > --- In service-orientated- architecture@ yahoogroups. com, "Rob Eamon" > <reamon@> wrote: > > > > In other words, service interface is separate from service implementation? > > This is the core SO principle. > > > > I'm still bearish on the notion that a service implementation can be > > swapped out for another with zero consumer impact. I've never seen a > > meaningful implementation of anything be swapped out without significant > > effort. Some low-level technical components can and have been swapped out > > but that's not the level we're addressing here? > > >
