Page 232 - DCAP307_PLANNING_AND_MANAGING_IT_INFRASTRUCTURE
P. 232
Planning and Managing IT Infrastructure
Notes Component types may also be distinguished by their packaging of the ways they interact with
other components.
Did u know? Packaging is usually implicit, which tends to hide important properties of the
components.
To choose an appropriate style, two kinds of information are required:
1. careful discrimination among the candidate architectures and
2. design guidance on how to make appropriate choices.
Architectural styles have also been referred to as architectural patterns. Eight such patterns have
been identified. We shall discuss them now, highlighting their merits and demerits and their
specific areas of use.
14.2.1 Pipeline
This style is suitable for applications that require a defined series of independent computations
to be performed on ordered data. This pattern attempts to decompose the problem into a set of
computations, or filters, with operations, called pipes to stream the data from one process to
another. The filters interact only via pipes. The Block Builder architecture can be modelled as a
pipeline, as seen in figure 14.1. Each of the four components can be represented by filters, with
the pipe between any two successive filters taking the intermediate output of the first filter and
feeding it into the next filter.
Figure 14.1: Pipeline Architecture for Block Builder
evaluated
block
sentence sentence
Sentence Sentence Block Tree tree Block Code
Builder Evaluator Builder Displayer
Source: http://etd.lsu.edu/docs/available/etd-07082004-152330/unrestricted/Banerjee_thesis.pdf
14.2.2 Data Abstraction
This style is suitable for applications in which a central issue is identifying and protecting
related bodies of information, especially representation information. When the solution is
decomposed to match the natural structure of the data in the problem domain, the components
of the solution can encapsulate the data, the essential operations on the data, and the integrity
constraints, or invariants, of the data and operations.
14.2.3 Communicating Processes
This process is applicable for applications that involve a collection of distinct, largely independent
computations whose execution should proceed independently. The computations involve
coordination of data or control at discrete points in time. As a result, correctness of the system
requires attention to the routing and synchronisation of the messages. We can see clearly that
the Block Builder system does not have architecture of this style, because every next module
depends on the output of the previous module.
226 LOVELY PROFESSIONAL UNIVERSITY