An ADM-Based Method for Migrating CMS-Based Web Applications
Abstract
In the last decade, the volume of digital content managed by Web applications has grown dramatically as well as the processes supported by these Web applications have become more complex. Thus, organizations have experienced the necessity of relying on powerful platforms to maintain their large-scale Web applications and to manage all their content in a robust and reliable manner. One of the most adopted solutions has been to base Web applications on Content Management Systems (CMS). CMS-based Web applications provide organizations with some additional features such as, dynamic creation of content, separation between content and design, definition of different levels of access authority and flexible extension of their functionality. Currently, a considerable number of different CMS platforms can be found on the market. This fact, along with the changes in the objectives of organizations, can cause organizations to see the necessity of migrating their CMS-based Web applications to other CMS platforms meeting better their needs. This migration process entails a complex, time-consuming and error-prone reengineering process. The Architecture-Driven Modernization (ADM) is considered one of the most effective approaches to systemize the migration process and to mitigate the drawbacks mentioned. ADM advocates for the application of Model-Driven Architecture (MDA) techniques and tools (models as key artefacts and automated transformations) for the migration process. Furthermore, ADM proposes a set of standard metamodels to represent the information involved in this process. Two of these metamodels are: the Abstract Syntax Tree Metamodel (ASTM) represents at platform-specific level the syntax of the code implementing a legacy system, and the Knowledge Discovery Metamodel (KDM) represents at platform-independent level the semantics of this code. We have carried out a literature review whose results demonstrate that there is not any model-driven reengineering method to shift from one CMS platform to another while maintaining the same features of the Web application. To solve this gap, we propose the ADMigraCMS method, an ADM-based method that defines standard guidelines to migrate CMS-based Web applications to other CMS platforms. This method is supported by a toolkit that allows systemizing the migration process. The ADMigraCMS method is composed of three reengineering stages defining a ¿horseshoe¿ process: reverse engineering stage, restructuring stage and forward engineering stage. During the reverse engineering stage, the knowledge from the code that implements the legacy CMS-based Web application is extracted and represented in a set of models at different abstraction levels. One of these models (CMS model) represents that knowledge within the CMS domain. The CMS model conforms to the CMS Common Metamodel that we have specifically defined for the ADMigraCMS method. In the restructuring stage, the CMS model is restructured to adapt the extracted knowledge to the features of the target CMS platform; finally, in the forward engineering stage, a set of models are generated from the CMS model. From one of these models defined at specific abstraction level, the code that implements the target CMS-based Web application is generated. The ADMigraCMS method is structured in four different modelling levels: Level 0 represents the code that implements the CMS-based Web application (PHP code); Level 1 represents the code at platform-specific level using a model conforming to the ASTM metamodel (ASTM_PHP model); Level 2 specifies the code at platform-independent level with a model conforming to the KDM metamodel (Code model) and Level 3 represents the code in the CMS domain with a the CMS model. For each modelling level, we have defined a modelling language in the form of Domain Specific Languages (DSL) such as, the PHP DSL (Level 0), the ASTM_PHP DSL (Level 1), the KDM_CODE DSL (Level 2) and the CMS DSL (Level 3). We have defined an abstract syntax with a metamodel and a concrete syntax with a customized graphical notation for each DSL. Furthermore, the ADMigraCMS method systemizes the migration process with a set of automated transformations which allow the transition between the different modelling levels. The ADMigraCMS method defines three different types of automated transformations: text-to-model (T2M) transformation that extracts the knowledge from the code of a legacy CMS-based Web application, model-to-model (M2M) transformation that allows the transition from one model to another and model-to-text (M2T) transformation that generates the code that implements a target CMS-based Web application. Up to now, the ADMigraCMS method is focused on the migration of Web applications based on open-source CMS platforms such as Drupal, Joomla! or Wordpress because of the their widespread use and relevant acceptance in the global market.This method is supported by a toolkit called ADMigraCMS toolkit that provides it with graphical editors for each DSL (tree-like and UML-like graphical editors) and the implementation of the whole set of automated transformations. The ADMigraCMS method has been validated and refined by means of its application to the migration of two case studies: a Web application for the management of a coaching centre (Coaching Web) and a Web application for a wellness and nutrition centre (Websana). This validation allowed us to assess the correct specification of the metamodels, the proper performance of the graphical editors and the correct execution of the automated transformations. Furthermore, the research presented in this PhD Thesis has been validated by the scientific community with the presentation of partial results in renowned international and national conferences.
Description
Tesis Doctoral leída en la Universidad Rey Juan Carlos de Madrid en 2014. Director de la Tesis: Valeria de Castro Martínez CoDirector: Marcos López Sanz
Collections
- Tesis Doctorales [1521]
Los ítems de digital-BURJC están protegidos por copyright, con todos los derechos reservados, a menos que se indique lo contrario