Page 175 -
P. 175
158 Chapter 6 Architectural design
Name Layered architecture
Description Organizes the system into layers with related functionality associated with each layer.
A layer provides services to the layer above it so the lowest-level layers represent core
services that are likely to be used throughout the system. See Figure 6.6.
Example A layered model of a system for sharing copyright documents held in different libraries, as
shown in Figure 6.7.
When used Used when building new facilities on top of existing systems; when the development is
spread across several teams with each team responsibility for a layer of functionality; when
there is a requirement for multi-level security.
Advantages Allows replacement of entire layers so long as the interface is maintained. Redundant
facilities (e.g., authentication) can be provided in each layer to increase the dependability
of the system.
Disadvantages In practice, providing a clean separation between layers is often difficult and a high-level
layer may have to interact directly with lower-level layers rather than through the layer
immediately below it. Performance can be a problem because of multiple levels of
interpretation of a service request as it is processed at each layer.
management and providing user authentication and authorization, with the top layer
Figure 6.5 The layered
architecture pattern providing user interface facilities. Of course, the number of layers is arbitrary. Any
of the layers in Figure 6.6 could be split into two or more layers.
Figure 6.7 is an example of how this layered architecture pattern can be applied to a
library system called LIBSYS, which allows controlled electronic access to copyright
material from a group of university libraries. This has a five-layer architecture, with the
bottom layer being the individual databases in each library.
You can see another example of the layered architecture pattern in Figure 6.17
(found in Section 6.4). This shows the organization of the system for mental health-
care (MHC-PMS) that I have discussed in earlier chapters.
User Interface
User Interface Management
Authentication and Authorization
Core Business Logic/Application Functionality
System Utilities
System Support (OS, Database etc.)
Figure 6.6 A generic
layered architecture