Case Study – Drupal CMS & AMP Stack

Introduction

Here is a case study of the Drupal Content Management System (CMS) and its multi-tier relational database management system (RDBMS) architecture and functionality. I may rework this to cover WordPress due to our migration along those lines but that is also more complex as it has more momentum and evolving quicker.

Drupal breaks up the database and application layers further into the following five component layers: (a) the database and data, (b) functional plug-in modules that extend Drupal’s functionality, (c) blocks and menus that provide I/O interfaces to the modules, (d) user permissions that provide discrete granular authenticated authorization, and (e) templates and themes that transform and format the content using XHTML and CSS for client presentation (Kay, 2010; Mercer, 2006). For consistency, these components are implemented using PHP and MySQL and may be modified and tailored as necessary by the end users and organization.

Drupal is available under the GNU General Public License (GPL) and therefore provides a cost effective introduction into enterprise CMS. While Drupal provides an initial cost savings developers must proceed cautiously since implementing and managing open source projects can increase an Information Systems’ (IS) complexity (Spinellis, 2006). When implementing open source software, developers must assess and manage the software’s internal quality attributes (e.g. code quality, security and maintainability) and external quality attributes (e.g. functionality and fitness for use) in relation to the organization’s resources and needs (Satinger, Jackson & Burd, 2002; Spinellis, 2006). Fortunately evaluation, implementation and management of the open source Drupal and its components is mitigated by the large and professional user base that actively contribute code and knowledge base content to assist all of its constituencies and improve Drupal’s code quality (Drupal, 2010; Mercer, 2006).

To illustrate Drupal’s widespread contributing user base consider that Drupal is now being used to manage the Web sites of national publications, educational institutions, Fortune 500 companies and even the U.S. government has donated accessibility modules developed for the White House Web site (Anonymous. 2010a; Anonymous. 2010a; Archambault, Oh-Young, Rongratana & Levitt, 2009; Drupal, 2010; Weitzman, Lewis-Bowen & Evanchik, 2006). It is reasonable to assume that organizations of these magnitudes have evolved and professional IT staffs that produce robust and secure code. To keep all constituents up to date, Drupal emails its members a weekly digest of information in accord with their specific registered area of interest (Weitzman, Lewis-Bowen & Evanchik, 2006).

Drupal Database Layer – MySQL

While the Drupal code is built with MySQL it should be noted that Drupal can use several different RDBMS to store organizational data (Drupal, 2010). Consistent with this paper’s focus, this paper will focus on Drupal implementation with MySQL. MySQL is a very fast and robust multi-user, multi-threaded RDBMS (MySQL, 2010; Welling & Thomson, 2009; Williams & Lane, 2004). To put MySQL’s performance in perspective, consider that MySQL’s benchmarks outpace other open source RDBMS solutions and its only true performance rival is the proprietary and expensive Oracle RDBMS (Welling & Thomson, 2009). As identified above, MySQL is an open source GPL and is presently maintained by Sun Microsystems MySQL AB (MySQL, 2010). Sun Microsystems management of this open source application provides added credibility as MySQL continues to strive for enhanced security and ANSI compliance (MySQL, 2010; Welling & Thomson, 2009; Williams & Lane, 2004). As presented above, it is intuitive that Sun Microsystems’s management of the MySQL project and its code mitigates many of the concerns with implementing open source IS solutions.

Drupal Application Layer – PHP

PHP originally stood for Personal Home Page however the PHP acronym has evolved to mean Hypertext Preprocessor (Welling & Thomson, 2009). PHP is an object oriented server-side scripting language and excels in performance, scalability, portability and flexibility (Welling & Thomson, 2009; Williams & Lane, 2004). Even more impressive, PHP can achieve stellar performance on a single low cost server and can be easily extended and distributed among additional heterogeneous servers (Welling & Thomson, 2009; Williams & Lane, 2004). PHP has integrated native interfaces with many RDBMS implementations however it can connect to any database that supports the Open Database Connectivity (ODBC) standard (Welling & Thomson, 2009). PHP’s open source development has also resulted in a wealth of libraries that can generate content, images and documents, make use of Web services and even parse XML. As a result, PHP has evolved to become a dominant open source Web server side application development solution with an installed base of over 20 million domains (Welling & Thomson, 2009).

Functionally, developers may embed PHP code in HTML code and the PHP code is executed every time the HTML code is referenced. To illustrate this process consider the following three-tiered architecture use case example. To begin, a client’s Web Browser issues a HTTP request for a Web page that happens to contain PHP code or alternatively, the client could have submitted a Web form that made use of PHP code. In either case, the Web server receives the client request, retrieves the HTML or PHP document and sends this information to the PHP engine. The PHP engine parses the information and executes the PHP code. Typically this PHP code will connect to the MySQL database and execute a query to obtain the necessary dynamic content. When the PHP engine receives the query results from the database, the PHP engine will format the results in HTML and send this to the Web server for distribution back to the client. This functionality allows the developer to present dynamic content to the client in support of today’s participatory and personalized Web (Van Duyne, Landay & Hong, 2007; Welling & Thomson, 2009).

Drupal Web Server Layer – Apache

Drupal does not implement the Web server distribution tier however drupal.org recommends the multiplatform Apache Web server. One reason for Drupal’s recommendation of Apache is that Drupal avails itself to Apache’s mod_rewrite capability to create so-called friendly URLs and enhance search engine optimization (SEO) (Weitzman, Lewis-Bowen & Evanchik, 2006). The pairing of the open source Apache, MySQL and PHP (AMP) components is so common that Drupal recommends developers install this basic three component AMP architecture using the stable Apache XAMPP distribution (ApacheFriends, 2010; Drupal, 2010; Welling & Thomson, 2009). It can be asserted this AMP architecture and the availability of XAMPP is also in accord with the emergent trend to run RDBMS on small computers (Garcia-Molina, Ullman & Widom, 2009). To constrain the scope and length of this analysis the reader is directed to the Web 3-tiered architecture for a more comprehensive analysis of today’s multi-tiered architecture.

Drupal CMS and RDBMS Functionality

A CMS can be defined as a system that supports the creation, organization, manipulation and presentation of information (Mercer, 2006, p. 7; Meyer & French, 2008; Powel & Gill, 2003). A Web publishing CMS such as Drupal specializes in Web site content management easing Web content creation, management and administration by separating content from presentation (Svarre, 2006). This functionality allows content creators to develop their content independent of presentation details.

As introduced above, Drupal’s content is typically maintained in a MySQL database. Web presentation is managed through configurable themes, plug-in modules and the content construction kit (CCK) (Archambault, Oh-Young, Rongratana & Levitt, 2009; Butcher, 2008; Drupal, 2010; Mercer, 2006). Themes provide the ability to change the look and feel of the Web site with a click of a mouse (Archambault, Oh-Young, Rongratana & Levitt, 2009; Drupal, 2010; Mercer, 2006). Modules provide much of Drupal’s functionality and include the ability to validate the Web site’s code based on W3C standards, translate and present the content in multiple languages, tailor the presentation for mobile devices, support advanced Web 2.0 functionality and extend the taxonomy feature enhancing data access and search engine optimization (SEO) (Archambault, Oh-Young, Rongratana & Levitt, 2009; Butcher, 2008; Drupal, 2010; Mercer, 2006). These stable themes and modules are also implemented with PHP and MySQL components and can be downloaded and added to the Drupal installation as desired.

As presented earlier, a component or module based software architecture provides a blueprint that guides not only how the components are constructed but also when in the process they are designed, implemented, maintained and replaced (Brown et al. 2003; Steiert, 2007). To this extent, Drupal provides automatic notification to developers when new versions of their deployed modules are released (Drupal, 2010). This eases management and allows developers to seamlessly upgrade modules when new versions are developed and released. As a result, Drupal derived Web sites are able to evolve with emergent functionality, security practices and W3C accessibility standards.

Drupal RDBMS Access and Functionality

Drupal provides database access and functionality up through its application layer. As an example, consider that Drupal allows administrators to discretely provide or restrict access to the underlying data through discrete views based on authentication and authorization (Archambault, Oh-Young, Rongratana & Levitt, 2009). Authentication can reside solely with Drupal or can integrate with and use an organization’s existing authentication system (e.g. LDAP) (Chavan & Jelks, 2006; Drupal, 2010; Kay, 2010; Mercer, 2006; Weitzman, Lewis-Bowen & Evanchik, 2006). Additionally, session management is built into the Drupal’s core functionality further strengthening the Drupal platform access control in a Web environment (Drupal, 2010).

Another example of Drupal’s application layer RDBMS access and functionality is its configurable XML taxonomy-based indexing system (Drupal, 2010). As a basis, an organization’s knowledge and content is often hidden within the file system’s documents and knowledge and use of this content is not realized until the file is retrieved and viewed (Weitzman, Lewis-Bowen & Evanchik, 2006). Furthermore, content may be stored across an organization’s RDBMS using different terms to convey the same thing or using the same term to convey different things (Garcia-Molina, Ullman & Widom, 2009). Drupal’s taxonomies mitigate both of these challenges by allowing users to create extensible and exportable XML vocabularies that transparently tag and index content throughout Drupal’s database (Chavan & Jelks, 2006; Drupal, 2010; Mercer, 2006; Weitzman, Lewis-Bowen & Evanchik, 2006).

XML provides a framework for creating hierarchically structured data that can tag this content consistent with database theory (Garcia-Molina, Ullman & Widom, 2009). This functionality not only facilitates the creation of relationships enhancing data access and SEO beyond basic RDBMS functionality but it is foreseeable that this could serve as the framework for ontology creation improving business processes and realizing of the semantic Web (Anonymous, 2010c; Drupal, 2010; SemanticSearch.org, 2010; Seng & Lin, 2007; W3C.org, 2010). Drupal also implements a standard versioning system and this versioning functionality provides Drupal with data warehouse snapshot functionality.As a result, Drupal goes beyond the emergent trend of tagging documents and information with XML by integrating this functionality with its taxonomy-based indexing (Drupal, 2010; Garcia-Molina, Ullman & Widom, 2009). This not only enhances information access and SEO but also provides a basis for enhanced data mining as presented below (Chavan & Jelks, 2006; Drupal, 2010; Mercer, 2006).

As introduced above, Drupal excels at implementing and managing dynamic social Web functionality. The ability to capture, maintain and data mine Web 2.0 conversations in conjunction with Web metrics is critically important citing the emergence of one-to-one social marketing and evolving business intelligence mechanisms (Svarre, 2006). To illustrate this emergent convergence between marketing, Web design and content management consider the following. The participatory Web 2.0 provides communication functionality that takes advantage of Metcalfe’s “Network Effect” by building applications that promote collective intelligence and harness the emergent Internet driven behavior of the individual’s need to participate (Kotler & Keller, 2007; Shimmin, 2007; Strom, 2006; Waters, 2008). The increased use of metrics and information culled from data mining Web 2.0 applications and the emergence of semantic search (e.g. Web 3.0) has the opportunity to revolutionize marketing by providing the increased understanding and linkages between brands and their organizational value (Greenemeier, 2008; Kotler & Keller, 2007; Lassila & Hendler, 2007; Noy, 2008; Rubinstein, Lee & Schwartz, 2008; Shimmin, 2007; Snyder-Bulik & Steinberg, 2008; Strom, 2006; Vellante, 2008a, Vellante, 2008b; Waters, 2008). To provide an example of this emergent holistic marketing approach, consider that Web 2.0 conversations can be mined for a target market’s vocabulary. The consumer’s vocabulary can then be encoded in Drupal’s XML semantic taxonomy and integrated with Drupal’s XML-based sitemap. This site map is automatically queried by the major search engines and as a result, an organization’s consumers will be able to locate the organization and its products and services using the consumer’s preferred vocabulary rather than the organization’s vocabulary. This functionality is in accord with today’s focus on holistic marketing, Web personalization and user-centered design (Kotler & Keller, 2007; Van Duyne, Landay & Hong, 2007).

Summary

It has been established an organization’s Web presence and functionality has become a critical part of today’s business processes (Weitzman, Lewis-Bowen & Evanchik, 2006). Central to this functionality is an increasing reliance on CMS and dynamic database driven content (Weitzman, Lewis-Bowen & Evanchik, 2006; Van Duyne, Landay & Hong, 2007). It has been established that organizations and their extended supply and value chains are becoming more distributed and diverse in nature incurring increased management complexity. The Drupal CMS provides a three-tier Web accessible RDBMS architecture capable of supporting an organization’s Web 2.0 functionality and distributed collaborative efforts. This functionality can enhance marketing though personalization, provide a better understanding of consumers by data mining Web 2.0 conversations and facilitate the capture and transfer of institutional knowledge.

Drupal’s open source basis provides a cost effective CMS solution while its module based architecture provides the necessary framework to evolve with emergent technology. This module based architecture is particularly important today as since Drupal’s contributed modules provide a customizable framework for the rapid development and continuing management of dynamic interactive multi-lingual Websites (Butcher, 2008; Mercer, 2006). Citing the momentum and support for Drupal and its core components it can be asserted that there is little additional risk in choosing Drupal over a proprietary solution. As presented throughout this course, it must be emphasized that proper RDBMS design, implementation and management requires professional judgment, data modeling and detailed knowledge of the organization’s capabilities, culture and business rules (Garcia-Molina, Ullman & Widom, 2009; Rob & Coronel, 2007; Satinger, Jackson & Burd, 2002). With this caveat it is asserted that organizations assess the Drupal CMS for fitness of use if they are considering CMS implementation.

Kamoun, F. (2007). The convergence of business process management and service oriented architecture. Retrieved June 9, 2008 from the Association of Computing Machinery: http://www.acm.org/ubiquity/views/v8i24_bmpsoa.html.