 |
Oct
2000 |
By
Dr.Thomas J Mowbray |
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.
Anti-Pattern: Marketing
Architecture
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 for developers.
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, really?
There is a useful standard that
defines what "architecture" means, the Reference
Model for Open Distributed Processing (RM-ODP).
[1] RM-ODP is a recently completed international
standard that defines how to model distributed
OO systems. RM-ODP defines five essential viewpoints
for modeling systems architecture:
- 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
properties.
Applications 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.
The viewpoints include:
- 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 viewpoints.
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).
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
a result.
Viewpoint Languages: Notations
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.
Another useful 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 in.
Concluding Remarks
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.
|