Have you ever been
involved in a discussion of the question:
"What is architecture?" The term "architecture"
is perhaps one of the most abused
words in object technology. Below,
I describe one of the common mis-uses
of architecture; then, I answer the
question with a conceptual standard
that is in widespread use today.
Too often, architectures
are used as sales tools rather than
technical blueprints. In a typical
scenario, a fast-talking technical
manager (the "architect") presents
a few high-level viewgraphs to convince
you of the greatness of his product
or system. Marketing architectures
are directed externally at customers
and not at object-oriented (OO) system
developers. Marketing architectures
are fine for advertising the features
of commercial products, but they only
provide limited technical information
The problem with
marketing architectures is that they
are decoupled from the development
process. The so-called architect is
a manager who delegates most technical
details to individual developers.
Unless the architect manages the computational
model (including subsystem interfaces),
the architecture is unlikely to deliver
any real benefits. Architectural benefits
that are easily compromised include
system adaptability (for new business
needs) and system extensibility (for
exploitation of new technologies).
What is architecture,
There is a useful
standard that defines what "architecture"
means, the Reference Model for Open
Distributed Processing (RM-ODP). 
RM-ODP is a recently completed international
standard that defines how to model
distributed OO systems. RM-ODP defines
five essential viewpoints for modeling
- Enterprise Viewpoint
- Information Viewpoint
- Computational Viewpoint
- Engineering Viewpoint
- Technology Viewpoint
The five viewpoints provide a comprehensive
model of a single information system.
An enterprise viewpoint contains models
of business objects and policies.
Enterprise policies include permissions,
prohibitions, and obligations. An
information viewpoint includes the
definition of information schemas
as objects. Three kinds of RM-ODP
schemas include static, invariant,
and dynamic. A computational viewpoint
includes definitions of large-grained
object encapsulations, including subsystem
interfaces and their behaviors.
The above viewpoints define architecture
in a manner that makes distributed
computing transparent. An engineering
viewpoint exposes the distributed
nature of the system. The distribution
transparencies supported by infrastructure
are declared explicitly. The allocation
of objects onto processing nodes is
also specified. RM-ODP defines a reference
model of distributed infrastructure
called a channel which is used to
model all forms of middleware connections.
RM-ODP defines eight distribution
transparency properties. It is interesting
to note that only a handful of these
properties are supported by major
commercial infrastructures (without
resorting to niche-market products).
For example, CORBA products provide
full support for access, location,
and transaction transparency, with
some support for failure and persistence
transparency. DCOM provides support
for persistence and transaction transparency,
with limited support for the other
and Profiles of RM-ODP
Open systems standards (such as
RM-ODP) are purposefully generic so
that they apply to all domains. To
make standards deliver their benefits,
a profile is required. A profile is
an implementation plan for how the
standard is applied within a context.
There are several
profiles of RM-ODP in use today.
The 4+1 View Model is a viewpoint-based
architecture approach supported by
OO tools such as Rational Rose.
- Use Case View
- Logical View
- Process View
- Implementation View
- Deployment View
The use case view models enterprise
objects through a set of scenarios.
The logical view includes object models
of packages, classes, and relationships.
The process view represents control
flows and their inter-communications.
The implementation view defines the
modular structure of the software.
The deployment view identifies the
allocation of software onto hardware.
An architecture defined as a 4+1 View
Model covers aspects of all
RM-ODP is being applied in several
industries, including financial services
and defense. For example, the United
States Department of Defense (DoD)
has a profile of RM-ODP, called the
Command, Control, Communications,
Computers, Intelligence, Surveillance,
and Reconnaissance Architecture Framework
C4ISR-AF defines three viewpoints:
operational architecture, system architecture,
and technical architecture.
An information viewpoint is also
specified. Before applying the framework,
DOD services defined their architectures
using disparate conventions. C4ISR-AF
is currently used by all DOD services
to describe their architectures. The
framework is enabling technology exchanges
across diverse system development
programs. Reuse opportunities and
common interoperability solutions
are being identified and defined as
Within each viewpoint,
the RM-ODP approach uses formal notations
(or specification languages) that
support architecture description.
One of the most
useful notations for specifying computational
viewpoints is the ODP interface definition
language (ODP IDL). ODP IDL is a related
international standard that is identical
to CORBA IDL. ODP IDL enables the
specification of object encapsulations
that can be implemented on multiple
infrastructures, such as CORBA, Microsoft
COM, and the Adaptive Communication
Environment (ACE). Since ODP IDL is
programming language independent,
a single interface specification suffices
to define interoperable interfaces
for C, C++, Ada95, COBOL, Smalltalk,
Java, and Microsoft IDL. These mappings
are defined by open systems standards
and supported by commercial products.
notation for describing architecture
viewpoints is the Unified Modeling
Language (UML). UML is an object-oriented
notation that was recently adopted
by the Object Management Group. UML
is also supported by Microsoft in
its repository technology. The relationship
between UML and RM-ODP is defined
Although it is not
widely publicized, RM-ODP is providing
architectural benefits in multiple
industries. RM-ODP is a formal standard
that defines how to describe distributed
OO architectures. In practice, RM-ODP's
viewpoints, models, and transparency
properties are useful conceptual tools
for object-oriented architects.