Search and Find
4 Design of a Generic Peer–to–Peer Content Repository System Architecture (S. 71-72)
The architecture of a software system may be regarded as its essential description to understand it. For instance, such understanding refers to the role of the major system components and, in particular, their coupling. A “software architecture shall de?ne a simple model of major components and their interactions, it may act as reusable, transferable abstraction of a software system” .
An architecture acts as a method to organize and structure a system. An important aim is to reduce the overall complexity to illustrate such system promoting the principles of decomposition and transparency, for example, as functionality is encapsulated within certain system parts, the details should be hidden, turning the focus rather on each part’s characteristics. Hence, architectural design has major impact on a system’s functionality, as it de?nes the degree of modularity a?ecting maintenance and reliability.
In this chapter, the architecture illustrates the responsibilities each system part has and how these parts interact to ful?l functional and non-functional requirements of peer–to–peer (P2P) based content repository functions, as presented in Chapter 3. One key to meet the imposed requirements is ?exibility. This motivates a generic architecture, which is suitable for di?erent communication and storage paradigms. Thereby, the term generality refers to “the degree to which a system or component performs a broad range of functions” : accordingly, the generic architecture needs to support, for example, the introduced concepts of sessions and workspaces, and to integrate di?erent storage back-ends, the latter may comprise the integration of local systems, distributed client–server systems, or decentralised (structured or hybrid) P2P systems.
This chapter is structured as follows: Section 4.1 introduces the applied methodology to present the P2P-based content repository architecture. Then, Section 4.2 describes the generic architecture for the overall content repository system. It introduces a layer model to decompose the system into several parts of responsibility, and illustrates the management to cope with persistent storage. Next, Section 4.3 introduces a method for generic content mapping, which supports transparency at di?erent levels. It explains a concept to bundle items and introduces ?exible content data policies. Subsequently, Section 4.4 shows a generic peer architecture explaining a peer’s basic services and introducing a method to dynamically integrate additional peer services. Section 4.5 discusses related work.
Finally, Section 4.6 concludes and summarises this chapter. 4.1 Architectural Model Overall, a software architecture deals with the design and implementation of a software’s highlevel structure : it is basically the result of composing an amount of architectural elements in some well-determined way to satisfy the major functional and non-functional requirements of the system. The methodology to present the P2P-based content repository architecture is oriented on the “4+1” view model of software architectures : the organisation of the architecture’s description uses multiple, concurrent views—each one addressing a speci?c set of concerns. This allows to cope separately with the functional and non-functional imposed requirements— as introduced in Chapter 1.1 Figure 4.1  illustrates the ?ve main views.