Chapter 2. History & overview of dmBridge

The dmBridge project began in May 2008 as a few PHP classes supporting a set of rudimentary web templates. Since then, its scope has expanded with the goal of improving customizability and quality of web-based digital collections presentation; and providing a full-featured framework for programmatic access to digital repository content.

dmBridge is a layer on top of the CONTENTdm® digital asset management system that effectively replaces its "web templates" component and adds a number of other features (Figure 2.1, “High-level architecture of a dmBridge repository”). In its current form, dmBridge cannot function without CONTENTdm®.

Figure 2.1. High-level architecture of a dmBridge repository

High-level architecture of a dmBridge repository

Although dmBridge is capable of replacing many CONTENTdm® features, it does not override them, which is to say that it does not interfere with any aspects of CONTENTdm® operation, so both can operate normally side-by-side. dmBridge does not modify any CONTENTdm® files or otherwise affect it in any way. The figure below illustrates a typical web server folder structure with both CONTENTdm® and dmBridge installed side-by-side.

/1
    cdm4/2
    cgi-bin/3
    dm/4
        

1

The web server's document root, which is typically mapped to a site's base URL (e.g. http://digital.library.unlv.edu/). Other files can be stored here besides the ones listed.

2

The CONTENTdm® 5.x web templates.

3

Web server CGI executables. These enable many CONTENTdm® features.

4

The default location of the dmBridge files. This folder can be moved or renamed.

From a user's perspective, dmBridge consists of three main components:

dmBridge employs a Model-View-Controller (MVC) design. In the template engine, the views are customizable HTML templates; in the HTTP API, they are built-in XML/JSON output routines. Views and controllers are separate for each main component, but models are shared by all three. Models can also be used in the context of the PHP API.

Figure 2.2. Example of results view in the dmBridge MVC architecture

Example of results view in the dmBridge MVC architecture