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.

Wikipedia describes "software architecture" [1] thus:

The *software architecture* of a program or computing system is the
structure or structures of the 
system<http://en.wikipedia.org/wiki/Software_system>,
which comprise software components, the externally visible properties of
those components, and the relationships between them.


Wikipedia also has this to say about "architecture" [2] :

By extension, the term "architecture" has come to denote the
art<http://en.wikipedia.org/wiki/Art>and
discipline <http://en.wikipedia.org/wiki/Discipline> of creating an
actual, or inferring an implied or apparent plan of any complex object or
system <http://en.wikipedia.org/wiki/System>. The term can be used to
connote the *implied architecture* of abstract things such as 
music<http://en.wikipedia.org/wiki/Music>or
mathematics <http://en.wikipedia.org/wiki/Mathematics>, the *apparent
architecture* of natural things, such as 
geological<http://en.wikipedia.org/wiki/Geology>formations or the structure
of biological cells <http://en.wikipedia.org/wiki/Structural_biology>, or
explicitly *planned architectures* of human-made things such as 
software<http://en.wikipedia.org/wiki/Software>,
computers <http://en.wikipedia.org/wiki/Computers>, 
enterprises<http://en.wikipedia.org/wiki/Enterprise_architecture>,
and databases <http://en.wikipedia.org/wiki/Database>, in addition to
buildings. In every usage, an architecture may be seen as a *subjective
mapping <http://en.wikipedia.org/wiki/Map_%28mathematics%29>* from a human
perspective (that of the *user* in the case of abstract or physical
artifacts) to the 
elements<http://en.wikipedia.org/wiki/Element_%28mathematics%29>or
components <http://en.wiktionary.org/wiki/component> of some kind of
structure <http://en.wikipedia.org/wiki/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]:

*Design*, usually considered in the context of the applied
arts<http://en.wikipedia.org/wiki/Applied_art>,
engineering <http://en.wikipedia.org/wiki/Engineering>, 
architecture<http://en.wikipedia.org/wiki/Architecture>,
and other such creative <http://en.wikipedia.org/wiki/Creativity>endeavors, is 
used both as a
noun <http://en.wikipedia.org/wiki/Noun> and a 
verb<http://en.wikipedia.org/wiki/Verb>.
As a verb, "to design" refers to the process of originating and developing
a plan <http://en.wikipedia.org/wiki/Planning> for a product, structure,
or component. As a noun, "a design" is used for both the final (solution)
plan <http://en.wikipedia.org/wiki/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<http://en.wikipedia.org/wiki/Architecture>in terms of
form <http://en.wikipedia.org/wiki/Form>, 
techniques<http://en.wikipedia.org/wiki/Technique>,
materials <http://en.wikipedia.org/wiki/Materials>, time period, region,
etc. It overlaps with, and emerges from the study of the evolution and
history of architecture. In architectural 
history<http://en.wikipedia.org/wiki/Architectural_history>,
the study of Gothic 
architecture<http://en.wikipedia.org/wiki/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


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

Reply via email to