Architecture 6
Architecture 6
Lecture 1
Performance
Localise critical operations and minimise communications. Use large
rather than fine-grain components or replicate.
Security
Use a layered architecture with critical assets in the inner layers.
Safety
Localise safety-critical features in a small number of sub-systems.
Availability
Include redundant components and mechanisms for fault tolerance.
Maintainability
Use fine-grain, replaceable components.
Repository
Client Server
Pipe and Filter
Name Repository
Description All data in a system is managed in a central
repository that is accessible to all system
components. Components do not interact directly,
only through the repository.
Example Figure 6.9 is an example of an IDE where the
components use a repository of system design
information. Each software tool generates
information which is then available for use by
other tools.
When used You should use this pattern when you have a
system in which large volumes of information are
generated that has to be stored for a long time.
You may also use it in data-driven systems where
the inclusion of data in the repository triggers an
action or tool.
Advantages Components can be independent—they do not
need to know of the existence of other
components. Changes made by one component
can be propagated to all components. All data
can be managed consistently (e.g., backups done
at the same time) as it is all in one place.
Disadvantage The repository is a single point of failure so
s problems in the repository affect the whole
Chapter 6 Architectural design 21
system. May be inefficiencies in organizing all
A repository architecture for an IDE
Name Client-server
Description In a client–server architecture, the functionality of the
system is organized into services, with each service
delivered from a separate server. Clients are users of
these services and access servers to make use of
them.
Example Figure 6.11 is an example of a film and video/DVD
library organized as a client–server system.
When used Used when data in a shared database has to be
accessed from a range of locations. Because servers
can be replicated, may also be used when the load on
a system is variable.
Advantages The principal advantage of this model is that servers
can be distributed across a network. General
functionality (e.g., a printing service) can be available
to all clients and does not need to be implemented by
all services.
Disadvantages Each service is a single point of failure so susceptible
to denial of service attacks or server failure.
Performance may be unpredictable because it
depends on the network as well as the system. May
be management problems if servers are owned by
different organizations.
Chapter 6 Architectural design 24
A client–server architecture for a film library