5.3.4 Repository architecture A.1 Repository architecture
B.1
Sub-systems must exchange data. This may be done in two ways:
Shared data is held in a central database or repository and may be accessed by all sub-systems; Each sub-system maintains its own database and passes data explicitly to other sub-systems.
B.2
When large amounts of data are to be shared, the repository model of sharing is most commonly used a this is an efficient data sharing mechanism.
A.2 The Repository pattern
Name Description
Repository
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.
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.
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.
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
Page 49 of 91
Example
When used
Advantages
place.
Disadvantages The repository is a single point of failure so problems
in the repository affect the whole system. May be inefficiencies in organizing all communication through the repository. Distributing the repository across several computers may be difficult.
A.3 A repository architecture for an IDE
5.3.5 Client-server architecture A.1 Client-server architecture
B.1
Distributed system model which shows how data and processing is distributed across a range of components.
Can be implemented on a single computer.
B.2
Set of stand-alone servers which provide specific services such as printing, data management, etc.
B.3 Set of clients which call on these services.
B.4 Network which allows clients to access servers.
A.2 The Client–server pattern
Name Description
Client-server
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.
Figure 6.11 is an example of a film and video/DVD library organized as a client–server system.
Used when data in a shared database has to be accessed from a range of locations. Because servers can be
Example When used
Page 50 of 91