An exploration of creating DSLs to facilitate the creation of page models in WCMSs using VMSDK. The concepts of PIM, PSM, DSL, M2M, and M2T will be explored.
Many websites today are maintained using computer programs known as Web Content Management Systems (WCMSs). Among other things these systems facilitate the publishing, the editing, and the organization of the pages of a particular website by dispersed editors.
A common and tedious task when using a WCMS is to setup the different types of pages that an editor can create on a website. We discern that the way many WCMSs implement these different types of pages is based on the design pattern known as “Presentation Model” introduced by Martin Fowler 1
Basically this means that in these WCMSs the kind of content that can be stored on a particular type of page is represented independently of that type of page’s look and feel. We have coined the generic term page model to refer to the kind of content that can be stored on a particular type of page and the term page views to refer to the look and feel that can be associated with that particular type of page noting that for one page model there can exist one or more page views.
The reason for using these generic terms is that different WCMSs use different terminology for these concepts. For example in SharePoint a content type (page model) is associated with page layouts (page views), in SiteCore a template (page model) is associated with layouts (page views), and in Umbraco a document type (page model) is associated with templates (page views).
Although we do think that it is best practice to use the above mentioned design pattern for the design of page types, the implementations of the pattern in the above mentioned WCMSs makes the creation of the page models cumbersome. Thus we propose to raise the abstraction level at which page models are designed by creating a domain specific language (DSL) that allows models of these page models to be developed more easily.
The specific research question:
We discern that different WCMSs use a common design pattern to implement the types of pages that can be created on a particular website thus separating the model of a particular type of page from its various views. Given that such a commonality exists we will explore if a DSL can be created that is so high-level that it can be used to create common models of page types for several of these WCMSs. Also, considering the commonality and the variability of the specific implementations of page types in these WCMSs, we will discuss if either 1) a platform-independent model (PIM) should be created that should be used to generate code for each of said WCMSs, or 2) a common PIM should be created and transformed into platform-specific models (PSMs) for each of said WCMSs and used to generate code for them respectively, or if 3) PSMs should be created for each of said WCMSs and used to generate code for each of them respectively. Note that code is used here as a placeholder and that its specific form will be discussed depending on the specific WCMS that it is created for.
Creating a DSL and a code generator in itself does not constitute research. However, if the purpose of doing so is to answer a valid research question using a credible research methodology, it does. The latter is the case with this project that adapts the methodology of 2
. See section below for details.
The research methodology adapted by this project is that of 2
. Elements that separate this from a typical project management plan are 1) stating a research question, 2) studying relevant sources for new ideas and approaches, and 3) developing new theories.
Concretely we begin by constructing a conceptual framework by researching existing WCMSs and the design patterns used for implementing page types. Also, we will study relevant sources for new ideas and approaches to MDD. Having created a conceptual framework, we will start by developing the system architecture and modeling the implementations of page models in two WCMSs, Umbraco and SharePoint, that we will use as a case. The two models thus created will be used to try to create a common metamodel of these and developing a prototype consisting of a DSL (or DSLs), transformations, and a code generator. Thus having built a prototype we will evaluate it by experimenting in the laboratory, developing a plan for how the prototype could be improved based on experimentation of the prototype, and consolidate experiences learned. The evaluation will concern comparing our prototype with existing solutions for creating page models for the two WCMSs.
OOAD is used for modeling the system.
MDD is used to increase productivity by abstracting the creation of page types for WCMSs.
1. “Presentation Model”. (2004). Retrieved September 22, 2012, from http://martinfowler.com/eaaDev/PresentationModel.html
2. Nunamaker, J. F., Jr., Chen, M. et. Purdin, T. D. M. Systems Development in Information Systems Research. In: Journal of Management Information Systems. Winter (1990-91). Vol. 7, No. 3., pp. 89-106.