Archive 1.x:OSF-Drupal

OSF-Drupal is a series of individual modules that brings structured data management capabilities to the Drupal content management system. OSF-Drupal is more complicated than most Drupal modules. Enabling external data and structure to "drive the application" requires quite a few moving parts. One of the attractions of Drupal and its supporting community of contributed modules is the richness of available functionality that can be leveraged for OSF-Drupal's purposes.

OSF-Drupal itself consists of a "core" package of baseline structured data capabilities. This foundation can be extended. This page presents the general architecture of the OSF-Drupal system and also overviews its major moving parts. We also describe dependencies on other Drupal modules and dependencies on third-party external software.

General OSF-Drupal Architecture
Most visiibly, OSF-Drupal appears as a series of modules within the Drupal CMS. But, more fundamentally, OSF-Drupal is a layer over the platform-independent OSF Web Service Web services framework. The OSF-Drupal Drupal modules sit on top of this framework. The advantage comes from the group, roles, user, permissions, theming and other functionality that can be leveraged at the Drupal level.



Note that this architectural diagram bears close resemblance to the OSF Web Service architecture, upon which the system is largely based. Other content management systems could provide similar layered functionality. For example, it should be relatively straightforward to port the system to other CMSs.

In any event, the OSF Web Service framework can also be accessed directly as Web service endpoints and via APIs. Thus, by definition, OSF-Drupal can leverage a framework that can tie together multiple Drupal installations, other Web apps, and any other CMS system into collaboration networks.

The OSF Web Service middleware is also designed to leverage third-party RDF datastores and faceted text engines. Initially, Virtuoso and Solr respectively provide these functions, but other capable systems could readily be substituted.

Core OSF-Drupal Package
The "core" OSF-Drupal package thus embraces all aspects of the large brown area shown in the figure above.

Included OSF-Drupal Drupal Modules
Within the core OSF-Drupal itself, there are a number of embedded Drupal modules as shown by this listing from a OSF-Drupal Drupal application (in fact, this one):



The key modules packaged with the core OSF-Drupal are:


 * OSF-Drupal Core -- the basic OSF-Drupal code required for all other modules
 * structCreate Tool -- the tool for creating new instance records within a specified dataset
 * structDataset Tool -- the broad tool for creating, updating and deleting datasets and their associated user and group permissions
 * structDelete Tool -- the tool for deleting one or more instance records
 * structResource Tool -- the tool for dereferencing potential RDF content (making accessible linked data URIs). For example, if the user requests RDF, it sends back RDF; otherwise, it redirects to structView to create a templated view of the resource
 * structSearch Tool -- for searching the currently available datasets space with faceted, full-text search
 * structUpdate Tool -- this tool enables individual instance records and their attributes to be updated or modified
 * structView Tool -- for browsing and viewing results based on tempates available for that instance type currently in the system; creation of new templates is possible through the separate structDisplay module.

Drupal Module Dependencies
In addition, the core OSF-Drupal also depends on these contributed Drupal modules:


 * CCK (Content Copy) -- which enables OSF-Drupal datasets and their fields to be registed with Drupal
 * Organic Groups -- for managing groups formations, roles and access permissions.

These modules must be installed prior to OSF-Drupal.

External Dependencies
As noted, OSF-Drupal layers and presents many components. A critical few of which are external apps, all open source, that also must be installed prior to OSF-Drupal. These external dependencies and their functions are:


 * OSF Web Service -- the platform-independent Web services framework. This RESTful middleware provides an abstraction layer and endpoints that enables multiple OSF Web Service installations (and, therefore, OSF-Drupal) to talk with one another
 * Virtuoso -- this "universal server" is the very capable RDF triplestore that also provides inferencing and URI referencing capabilities
 * Solr -- provides a very capable full-text search engine, with faceting capabilities that are driven directly from the datasets within OSF-Drupal's system
 * Smarty -- the data templating engine that is used for rendering various data display "views" within the system; it directly supports the structView tool.

Detailed and separate installation instructions are available from this site to aid in the proper configuration of these systems. In addition, as discussed under Packaging Options, it is possible to obtain these systems through an Amazon EC2 AMI instance. OSF-Drupal modules are built using open source icons.

NOTE: The article should be "OSF for Drupal". The schema is relevant, but it does require an update of the names on that graph. Then this could lead to a "OSF for Drupal Architecture" page. So, the idea is worth keeping, but the page itself is requires significant updating.