Digital library systems (DLSs) are software systems that support the operation of a digital library. As software systems, they are designed primarily to meet the needs of the target community using current best practices in software design and architecture. Digital libraries, like other disciplines, assert a set of design constraints that then affect the architectural choices for these DLSs. Key constraints include: generality, usability by different communities, interoperability, extensibility, preservation and scalability. Individually, these constraints are not unique to DLSs, but together they provide a framework for the development of specific DL architectures.
The DELOS Digital Library Manifesto (Candela et al., 2007) defines three actors in the architectural space of a DLS. The DLS is the software system that manages data and provides services to users. The Digital Library focuses on the collection, users, processes and services, with a DLS as one of its operational systems. Finally, the digital library management system (DLMS) is responsible for the management of the DLS, for example instantiation of collections and services.
This chapter focuses on the DLS and, to a lesser degree, the DLMS. Core design considerations are first presented, followed by how these principles are realized in modern reusable and custom-built DLSs. The next section deals with how these individual systems are interconnected into larger, networked DLSs, exemplified by international projects such as the Networked Digital Library of Theses and Dissertations (NDLTD). Scalability – how to deal with increasing volumes of data and increasing numbers of service requests – is then discussed. Finally, the chapter ends with a review of research directions and a case study of an architecture designed for the developing world.
Core design considerations
Most DLSs contain three main components: a digital object store, a metadata store and a suite of services to manage and provide access to the other two components. These The data store and metadata store are typically implemented using a combination of file systems, databases, triple (data entities composed of subject–predicate–object) stores, etc. Services are provided by applications that execute both locally and via remote interfaces such as web-based interfaces. The exact mapping of services to applications varies across architectures. Typical services provided by a DLS include: search, browse, submit, annotate, manage, copy, authorize, import, export, link, filter and visualize (Gonçalves et al., 2004).