SOA - There could be only one...
There’s no Architecture in Business Service Orientation ! There, I’ve said it, there are no two types of SOA. I am not trying to say that business-level service orientation doesn’t exist or isn’t valuable. However I am trying to say that labeling that SOA harms both Service Orientation at the business level and SOA (a.k.a. “technical SOA”)
For the record here are my definitions for both Business Service Orientation and Service Oriented Architecture (SOA)
Business Service Orientationis an IT paradigm at the enterprise-level that aims to componentize and partition the business’s software and to get composability and flexibility (and thus achieve better business and IT alignment etc.). Service Orientation can be implemented using various enterprise architecture practices (around governance, portfolio management etc) as well as various software architectures including (but not limited to ) SOA, EDA, BPM, REST and combinations of them.
Service Oriented Architectureas an architectural style for building systems based on interacting coarse grained autonomous components called services. Each service expose processes and behavior through contracts, which are composed of messages at discoverable addresses called endpoints. Services’ behavior is governed by policies which are set externally to the service itself. SOA is derived of four predating architectural styles, namely Client/Server, Layered System, Pipes and Filters and Distributed Agents.
To reiterate - calling Business Service Orientation SOA serves only to muddy the water and make both terms nebulous. If you just have to have a TLA just call them BSO & SOA
I know that in “What is SOA anyway” I also refer to two SOAs. I didn’t have enough confidence to say it bluntly when I wrote that paper, but I did emphasized Service Orientation for BSO and Architecture for SOA. Also regarding a more formal definition of SOA, that shows how it is derived from the four other styles – I started explaining that quite some time ago (Intro,Client-Server,Layered,Pipes and Filters) – I still need to explain Distributed Agents and summarize (about time I’ll do that)