On 04/07/07, Anne Thomas Manes <[EMAIL PROTECTED]> wrote: > > > > > > > I still content that you implement the model (a representation of the > design), not the architecture. But the term "architecture" is frequently > overloaded -- especially in IT. I often hear people use the terms > "architecture", "blueprint", and "model" interchangeably. > > Steve described it as: > > > Architecture = conceptual model > Design = logical model > Implementation = physical model > > which kinda puts it into the right taxomony, except that architecture is not > a model.
Architecture _creates_ the conceptual model. > > Wikipedia describes "software architecture" [1] thus: > > > > The software architecture of a program or computing system is the > > structure or structures of the system, which comprise software components, > > the externally visible properties of those components, and the > > relationships between them. > N.B. I think that software architecture IS design :) > > Wikipedia also has this to say about "architecture" [2] : > > > > By extension, the term "architecture" has come to denote the art and > > discipline of creating an actual, or inferring an implied or apparent plan > > of any complex object or system. The term can be used to connote the > > implied architecture of abstract things such as music or mathematics, the > > apparent architecture of natural things, such as geological formations or > > the structure of biological cells , or explicitly planned architectures of > > human-made things such as software, computers, enterprises, and databases, > > in addition to buildings. In every usage, an architecture may be seen as a > > subjective mapping from a human perspective (that of the user in the case > > of abstract or physical artifacts) to the elements or components of some > > kind of structure or system, which preserves the relationships among the > > elements or components. > > Both of these definitions seem to focus on system structure, the systems > components, and the relationships among system components. The second > definition goes a bit deeper and talks about creating a "plan". Things get a > bit murkier when you next look at the definition of "design" [3]: > Why is this murky? Its pretty clear that this definition of architecture says that it applies to real "things" hence (I'd say) has to be implementable. > > > Design, usually considered in the context of the applied arts, > > engineering, architecture, and other such creative endeavors, is used both > > as a noun and a verb. As a verb, "to design" refers to the process of > > originating and developing a plan for a product, structure, or component. > > As a noun, "a design" is used for both the final (solution) plan (e.g. > > proposal, drawing, model, description) or the result of implementing that > > plan (e.g. object produced, result of the process). > > > So I have to ask: What is the difference between "architecture" and "design"? > > I was disappointed not to find an entry for "design principle".Next I looked > up "architectural style" [4]: > > > > Architectural styles classify architecture in terms of form, techniques, > > materials, time period, region, etc. It overlaps with, and emerges from the > > study of the evolution and history of architecture. In architectural > > history, the study of Gothic architecture, for instance, would include all > > aspects of the cultural context that went into the design and construction > > of these structures. Architectural style is a way of classifying > > architecture that gives emphasis to characteristic features of design, > > leading to a terminology such as Gothic "style". > > In my definitions of SOA, I always refer to it as a style of design, and I > think this last definition fits closest to the way I think about SOA -- it is > a way of classifying software architecture to give emphasis to characteristic > features of design -- i.e., design principles, or in a more specific > application architectural style (such as REST), constraints. > > [1] http://en.wikipedia.org/wiki/Software_architecture > [2] http://en.wikipedia.org/wiki/Architecture > [3] http://en.wikipedia.org/wiki/Design > [4] http://en.wikipedia.org/wiki/Architectural_style > > (Not that Wikipedia is a dependable source of truth, but I think these > definitions are helpful to the discussion.) > > Anne So I think we are getting to the reason for the difference between our positions. You are seeing SOA as a software design approach, while I see SOA as being a business architecture approach. This is partly because Service Oriented Design (SOD) has not taken off as a term. This is why I say that the business architectures I create are implementable, because people then go away and build software systems that implement those architectures and which deliver services that are the physical representations of the conceptual services that existed in the original business architecture. http://service-architecture.blogspot.com/2007/05/soa-isnt-about-technology.html is a quick explanation of how I think that BSA provides a context for future delivery approaches. Steve > > > > > On 7/4/07, jeffrschneider <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > > > * 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 > > > > > > > Rob, > > What term do you use to describe what happens after an architectural > > model is created? Some people might say they're going to "build > > it", "realize it", "construct it", "implement it", etc. > > > > If the system is made of a bunch of services, the same holds true. I > > think that the only point they're trying to make is that they're > > taking the concept off of the white board and moving it to the next > > stage of realization. > > Jeff > > > > > > > > >
