Service-Orientation

If you examine the brief history of software engineering just outlined, you notice a pattern: every new methodology and technology generation incorporates the benefits of its preceding technology and improves on the deficiencies of its preceding technology. However, every new generation also introduces new challenges. I say that modern software engineering is the ongoing refinement of the ever-increasing degrees of decoupling.

Put differently, coupling is bad, but coupling is unavoidable. An absolutely decoupled application is useless because it adds no value. Developers can only add value by coupling things together. The very act of writing code is coupling one thing to another. The real question is how to wisely choose what to be coupled to. I believe there are two types of coupling. Good coupling is business-level coupling. Developers add value by implementing a system use case or a feature, by coupling software functionality together. Bad coupling is anything to do with writing plumbing. What was wrong with .NET and COM was not the concept, it was the fact that developers still had to write so much plumbing.

Recognizing the problems of the past, in the late 2000s, the service-oriented methodology has emerged as the answer to the shortcomings of object- and component-orientation. In a service-oriented application, developers focus on writing business logic, and expose that logic via interchangeable interoperable service endpoints. Clients consume those endpoints, ...

Get Programming WCF Services now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.