In a new and exclusive article, Wil Leeuwis takes a look at the conceptually new aspects of SOA from a historical perspective. Wil takes a look at the reason for introducing services in the first place:
Now what has changed since the branch to subroutine-era? Since Darwin we know there are no essentials in the real world, but IT systems come so close to their mathematical models that within certain constraints it’s fair to ask the question: What essential differences are there in contemporary applications, when compared to their legacy counterparts, that makes the services notion worthwhile? The answer to this question is simple: complexity. In the assembler-days a cross-reference listing was about all you needed to have an overview of your, well, services and where and by whom they were used. In the 2008 web service version of the story, you really need models and systems to guide the development and use of services. Services are complex on all levels.
He spends quite some time discussing models:
[E]very engineer, enthusiastically using mathematical models of the real world, knows the model is just that, the model. Because the real thing has its equivocalities, its aberrations from what, in terms of the model, is normal. It is this two-facedness of models that led one of my teachers to the maxim “Don’t believe the model. Don’t ignore the model”. Don’t mistake the model for the real thing, be aware that things are left out of the model: surprise ahead.
Many of Wil’s views are slightly unconventional, but even if you don’t agree with them, you want to consider them as food for thought.