SOA definition, part 1
I’d like to find a definition of Service Oriented Architecture (SOA) as an architectural style. The definitions I’ve seen so far are not clear enough in that they do not exclude enough.
The Wikipedia entry is clear enough about lack of consensus:
There is no widely agreed upon definition of service-oriented architecture other than its literal translation that it is an architecture that relies on service-orientation as its fundamental design principle.
One problem with using this to define an architectural style is that it would include client-server, n-tier systems, and other styles that SOA presumably wants to be distinct from.
When Paulo Marques visited our research group, he provided a reasonable definition. His definition was that the SOA style prohibited certain kinds of connections to components, such as directly accessing its database, or dropping a chunk of data, or screen scraping. I like the trajectory that thinking takes, because it both excludes certain kinds of systems and, like any good style definition, does not refer to implementation decisions (like SOAP messages).
I’ll continue to look for a definition that is helpful to me.