Web Services and Complex Data

, Jun 2, 2004

Ted Neward writes about how to design your service interfaces:

“But what about objects? Surely you’re not suggesting we give up our well-designed, well-refactored object model?”

As a matter of fact, I am. Exactly that—your well-designed object model shouldn’t be seen outside of your service. If you pass objects around, instead of messages, you run the risk of tightly-coupling the consumer of the service to the service itself, and when the service needs to rev, the consumers all need to rev as well. Loosely-coupled components are the order of the day in an S-O environment.

I think what you need to do in a Service-oriented world is to explicitly design your interface layer, including the messages exchanged at the boundaries, instead of adding it as an afterthought, so this fits my view very nicely.