I wanted to get the various views that folks have on a phrase that gives me pause: "implement an SOA" or "SOA implementation." IMO, this phrase is off since an architecture (SOA or otherwise) isn't something one implements. I wonder about the validity of my POV, however.
The reasons I think that support my POV: * While there is no single definition of "architecture" Booch, Rumbaugh and Jacobson state that architecture "is the set of significant decisions about the organization of a software system." Architectural principles are decisions--"when faced with this set of circumstances/needs, this architecture states that the approach shall be X." * Many posts on this forum, as well as various articles and blogs, state that SOA is something you do, not something you buy or build. It follows, then, that it cannot be implemented either. * When used as a term in building construction, architecture seems to be invariably used to describe the attributes or characteristics of the structure. The building itself isn't called "the architecture" nor is it considered an "architectural implementation." * Service orientation is but one of many sets of principles applied to a given system. This is probably a poor analogy but: A car has an engine but I don't refer to the entire car as "the engine" nor as an "engine implementation." :) The reasons that I question the position: * Brass, Clements and Kazman define architecture as "...comprise[d] [of] software elements, the externally visible properties of those elements, and the relationships among them." Clearly one can implement/instantiate the elements of the architecture so "implement the architecture" doesn't seem completely far fetched. * Many, many people whose opinions I respect often say "SOA implementation." I have a long held belief that architectures aren't "implemented." But perhaps I need to let that view go. I'm quite interested in hearing other points of view. -Rob
