Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Complex things are complex. All we can do is move that complexity around. In a service-based architecture, the multitude of services and interfaces absorb a great deal of the complexity that is typically squirreled away in other parts of a system. Yes, services add a great deal of complexity that wasn't there before. It obtained absorbed that complexity through simplification of by simplifying application and system components.

Crossing The Streams

Working with services should be like working with black boxes. You see the outside of the box (interface) but should have no clue as to the inner workings. However, in many development projects, the same developer is working on a functional slice from the application on through the service stack to the backend. The service contract will always appear as the impediment between the developer's right and left hand. If the service contract is also in the purview of the developer, expect it to be optimized for what the developer needs to do at the cost of other uses.

Association With Web Services

Service contracts are meant to separate and standardize components of a system. A complex system may have hundreds of components. Not all of these components need to talk to each other via a remote protocol. 

How Do OSIDs Fit Into This?