The VO collaboration platform is built on top of the open-source Drupal content management platform, which powers millions of websites and applications. It’s built, used, and supported by an active and diverse community of people around the world (including a dedicated Drupal Security Team, which is 40 strong). Presently, we use version 6 of the Drupal CMS.
Within any Drupal installation, there are three primary catagories of information that defines the look, feel, and features provided by the site. These categories are code, site configuration, & data.Code
The code of your installation defines the fundamental behavior and feature sets provided by the site.The architecture, installation, configuration and maintenance of Drupal-based content management systems is well documented at http://drupal.org, but we summarize the essential ideas here. The Drupal architecture is defined by a series of abstraction layers, along with an extensive and well documented API for extending and modifying default behaviors.
"Effective Web design is driven by the need to balance flexibility and simplicity. If a system is too simple, it can only be used for a single purpose - but if it is too flexible, it may be too difficult for new users to learn. Drupal strives to reconcile these conflicting goals by providing its users with the tools they need to make their own content management solution, while still providing some pre-built components to help them get started. Thus, it can be described both as a content management system (CMS) and a content management framework (CMF) - one system which strives to have the strengths of both, without their deficiencies. Most CMS's are like a toy boat or truck - specific assumptions have been made about their use, assumptions that would be hard for you to override. Frameworks, on the other hand, provide you with raw materials only - you need to know a programming language and have a clear design vision to put them together. Drupal is like a Lego kit. Skilled developers have already made the building blocks - in the form of contributed modules - that you need to create a site that suits your needs, whether that is a news site, an online store, a social network, blog, wiki, or something else altogether."1
Modules
A fundamental component of the Drupal Framework is the Modules system. Modules are Drupals term for it's plug-n-play extensibility architecture. By writing PHP code that conforms to Drupal's documented API, one may easily extend the core Drupal feature set. At the time of this writing, there are approximately 20,000 freely available, open-source Drupal modules, of which the VO infrastructure relies on approximately 400 modules2 that were implemented by the open-source community. Additionally, there are custom modules implemented by the CPS-VO development team to specifically support the CPS-VO project. As dictated by Drupal's open-source contribution policies, customized installation instructions for each individual module are provided in an included readme.txt file.Themes
Similarly, themes are a mechanism for customizing the user interface related behaviors of a Drupal-based website. The VO collaboration framework includes a single, highly customized theme designed specifically to support the CPS-VO community.Views
Finally, in addition to writing customized PHP code, Drupal includes the concept of Views which provide a graphical user interface to system administrators for defining highly complex SQL queries that implement custom report types. The VO software infrastructure includes several custom views for generating common, re-usable [typically paramaterized] reports3.Configuration
In addition to code, which is typically stored within the CPS-VO Subversion open-source version control and configuration management system, any Drupal installation has custom configuration data that is stored within the site's database tables.Content Types
The first major category of configuration data defines a type system for information that may be posted on the website. As of this writing, the defined content types at http://cps-vo.org are:
Type |
Description |
---|---|
Bibliographic Reference | Allows members to add bibliographic references to groups in which they have membership. Biblios can be added manually or imported from BibTex. |
Event |
Events are special because they have a start date/time and an optional end date/time as a first-class concept. |
File |
Files allow uploads of documents and other pre-existing content. |
Forum topic |
A forum topic is the initial post to a new discussion thread within a forum. |
Group |
The basic unit of organization for adding new virtual communities to the VO. |
Group Project |
Used for documenting research projects relevant to some Special Interest Group. |
NSF CPS Project |
Used to build the catalog of NSF CPS research projects. |
News Item |
News items are more ephemeral forms of information than Pages. They are ideal for creating and displaying content that informs or engages website visitors. Press releases, site announcements, and informal blog-like entries may all be created with a news item entry. News entries may be automatically featured on the site's or on a group's home page. |
Online Meeting |
A virtual teleconference/desktop sharing session. |
Page |
A simple web page for creating and displaying information that rarely changes, such as an "About us" section of a website. By default, a page entry does not allow visitor comments and is not featured on the site's initial home page. |
Panel |
A panel layout broken up into rows and columns. Used for building Dashboards with various content embedded within the rows and columns at specified locations. |
Story |
Deprecated |
Tearline |
A content type that differs from web pages in that there are separate sections, each with differing access permissions |
User Profile |
Used to track basic data and meta-data for individual users (e.g. place of employment). |
Video |
Used for embedding videos hosted at sites such as youtube or vimeo. |
Webform |
Create a new form or questionnaire accessible to users. Submission results and statistics are recorded and accessible to privileged users. |
Wiki page |
A version of web pages that supports hyperlinking by symbolic names, rather than explicit URLs. |
Permissions
For each feature implemented on the VO, there is a role-based mapping between capabilities and classes of users that are allowed access to those capabilities. Presently the defined roles are:- anonymous users
- authenticated users
- trusted users
- group moderators
- group managers
- site moderators
- site administrators
Data
Finally, the last component of an instance of a VO is it's data. This includes, for example all of the web pages belonging to a site, as well as the list of validated users that may log onto the site. As with configuration settings, the data within an instance of a Drupal website is stored in a series of database tables.
Users
Every visitor to your site, whether they have an account and log in or visit the site anonymously, is considered a user to Drupal. Each user has a numeric user ID, and non-anonymous users also have a user name and an email address. Other information can also be associated with users.Taxonomies
Taxonomies are Drupal's mechanism for providing meta-data that classifies site content along categories defined by Vocabularies. Vocabularies may be either structured and defined by administrative personnel, or free-form and defined dynamically by users.Nodes
A node in Drupal is the generic term for a piece of content on your web site. A node consists of several fields. The simplest node type is a web page, which contains a title field and a body field. Drupal allows site administrators to build a type system for content, which extends the web page with other, customized fields. For example Event nodes contain from, to, & URL fields in addition to their title and body. Some other examples of nodes are:- Pages in books
- Discussion topics in forums
- Entries in blogs
- News article stories
Comments
Comments are another type of content you can have on your site (if you have enabled the core Comment module). Each comment is a typically small piece of content that a user submits, attached to a particular node. For example, each piece of discussion attached to a particular forum topic node is a comment.Panels
One rather unique content type defined at the VO is what is termed Panels. Panels provide a drag-n-drop interface for laying out custom homepages or dashboards. Consult Appendix A of The VO User's Manual for an explanation of Panels.
1. Quoted from http://drupal.org/getting-started/before/overview
2. List of module pre-requisites for the VO collaboration framework
3. List of some of the Views defined by the VO collaboration framework