


The meta-architecture is a set of high-level decisions that will strongly influence the structure of the system, but is not itself the structure of the system. The meta-architecture, through style, patterns of composition or interaction, principles, and philosophy, rules certain structural choices out, and guides selection decisions and tradeoffs among others. By choosing communication or co-ordination mechanisms that are repeatedly applied across the architecture, a consistent approach is ensured and this simplifies the architecture.
For example, a meta-architecture may comprise a set of generic component types together with:
Style
Definition. An architectural style defines:
Examples. Shaw and Garlan (1996) identify the following styles: batch sequential and pipes and filters (dataflow systems); main program and subroutine, object-oriented and layered (call-and-return systems); communicating processes and event systems (independent components); repository and blackboard (data-centered systems), and interpreter and rule-based (virtual machines).
In the pipe and filter style, for example, the components are termed filters and the connectors are the pipes. Filters read streams of data on its inputs, perform some computation or transformation of the data, and produce streams of data on its outputs. Pipes serve as conduits for the streams, passing outputs from one filter to the inputs of another.
Commentary. The architectural styles identified by Shaw and Garlan may be viewed as fundamental or elemental styles. As the discipline matures, we will no doubt accumulate a set of styles with a richer vocabulary of components, connectors and compositions. For instance, one may see a style emerging that combines not just layers but generic component types within the layers each with a set of interfaces common to that type and rules for adding to the generic responsibilities (and hence interfaces) of each type, with mechanisms for communicating and co-ordinating among the components, etc. At that point, styles will have the kind of power they have in building architecture.
References
Shaw, Mary and David Garlan, Software Architecture: Perspectives on an
Emerging Discipline. ch2-3. Prentice-Hall, 1996.
Bass, Len, Paul Clements and Rick Kazman, Software Architecture in Practice. ch 5. Addision-Wesley, 1998.
References
Buschman et al, Patterns of Software Architecture
Principles
Definition. Architectural principles are:
"statements of preferred architectural direction or practice. They help establish a context for architectural decisions by using business criteria to rationalize basic architectural choices. Principles eliminate the need for evaluating endless alternatives in the modeling stages by agreeing up front on preferred directions." Tapscott and Caston, Paradigm Shift, 1995 p.241
Principles clarify how we will proceed, where we are and are not headed. Principles are stakes in the ground. They guide choices.
References
Tapscott and Caston, Paradigm Shift, 1995 p.241

|
|