E-MDAV: A Framework for Developing Data-Intensive Web Applications
Abstract
:1. Introduction
- The application development process shall be appropriately tailored to effectively take advantage of using a service-oriented approach in the cloud;
- The development and configuration of a complex web application, which includes various components (middleware, databases, application services, etc.), and its deployment on a cloud-based execution platform, require heterogeneous skills;
- Developing the executable code to create (as well as read from and write to) large databases consisting of a wide set of tables and fields, is a repetitive and effort-consuming activity that can easily be error-prone if carried out manually;
- The testing environment usually requires a huge hardware resources stack for replicating the operation environment due to the large amount of data stored in the databases;
- Traditional software development approaches might fail when smooth cooperation between development and IT operations are required to achieve frequent releases and reduce the time to market.
- Ease the application development by introducing appropriate model-driven transformations for generating implementation stubs, test artifacts and configuration files;
- Exploits model-to-text transformations for supporting the development of optimized CRUD operations;
- Provide actual guidance for enacting a continuous delivery approach, that is, for handling the development, integration and modification of the various application’s releases, as prescribed by the DevOps methodology.
- When applied to forward-engineering activities, the model transformation chain at the basis of E-MDAV enables developers to generate and deploy the required executable application from the specification of the conceptual data model, which is specified in UML. Specifically, the automated code generation addresses the development of both the application and the database schema, as well as the deployment over a cloud platform, thus avoiding the execution of effort-consuming and error-prone manual activities;
- When applied to reverse-engineering activities, the proposed methodology allows for the generation of the conceptual data model from an existing physical database. Such a feature helps with achieving consistency between the physical database and its related conceptual data model, thus providing effective support to maintenance activities.
2. Related Work
3. Background
3.1. Model-Driven Development and Model-Driven Architecture
3.2. DevOps
- Continuous Integration, that is, the practice in which software components, developed by different teams, are regularly integrated so as to progressively obtain the whole system;
- Continuous Testing, that consists of the automatic execution of a test suite whenever a software change is released;
- Continuous Deployment, that focuses on the automation of the deployment process;
- Continuous Delivery Pipeline, which is the result of DevOps application. The Continuous Delivery consists of the execution of a workflow that, for each software release, introduces automation to support builds’ release, test execution and deployment activities.
- The development of each software component can be obtained or supported by model transformations that are used to generate a large part of the source code from the abstract model, thus reducing the cost and time required for the implementation, improving the quality of the obtained code, and ultimately, easing the system’s continuous integration process;
- Testing activities can be automated by generating test data and test scripts, so as to effectively support the system’s continuous testing process;
- Deployment scripts can also be automatically generated by execution platform models of the software to be developed in order to ease the continuous deployment and delivery process.
3.3. Cloud Computing: Overview and Delivery Paradigms
- (Software as a Service, SaaS): provisioning of entire applications;
- (Platform as a Service, PaaS): provisioning of development platforms;
- (Infrastructure as a Service, IaaS): provisioning of infrastructures in terms of storage and computing nodes.
4. Application Development Challenges in Data-Intensive Domain
- In the development of applications interacting with large databases, repetitive and error-prone activities for developing the executable code to create (and also read to and write from) hundreds of tables and fields have to be carried out. Such scenarios should significantly benefit by the effective adoption of automation-based techniques;
- The testing environment usually requires a huge hardware resources stack for replicating the operation environment due to the large amount of data stored in the databases;
- Traditional software-development approaches might fail when smooth cooperation between development and IT operations are required to achieve frequent releases and reduce the time to market.
5. E-MDAV Development Process
5.1. MDA-VIEW Objectives and Limitations
- Notwithstanding the framework rationale has been largely inspired by MDA’s principles, the tool implementation includes the use of commercial and non-MDA-compliant components and technologies;
- The proposed methodology requires an existing database implementation.
- MDA-VIEW does not specifically introduce automation to ensure consistency among the several artefacts developed along the entire application lifecyle: data model, database implementation, web application;
- MDA-VIEW does not provide any guidance for supporting the deployment, the testing or the operation of the web application.
5.2. E-MDAV Rationale and Benefits
- Business Needs and Requirements Identification: during the first step, a set of interviews are taken in order to identify the web application requirements and to specify the abstract data model in terms of a UML Class Diagram representing the most relevant domain entities and their relationships.
- Automated Software Development: at this step, the several artefacts needed to support the application implementation and deployment are generated by use of a chain of model-to-model and model-to-text transformations. In this respect, E-MDAV effectively supports the IT specialists directly involved in the application development, which are not required to build the needed artefacts from scratch. Specifically. the E-MDAV tool takes as input the UML data model and generates as output:
- The source code of the web application and the SQL scripts for creating the related DB schema. It should be underlined how in the data-intensive domain, software developers greatly benefit by the automation of these steps, as they are raised by the execution of repetitive, effort-consuming and error-prone writing of the needed code for the CRUD operations;
- The test scripts, which will be used for the application testing;
- The build scripts, needed to automatically build the executable package(s) to be deployed;
- The deployment scripts, as the proposed methodology includes the support for automating the creation and the deployment of needed containers according to the specific cloud infrastructure adopted for hosting and executing the software.
- Manual Code Refinement and Build: even though the MDA-based automated code generation eases the development process and reduces the required effort, a manual refinement of the generated code is always needed. It should be underlined that while it is acknowledged that model-to-text transformations can be effectively used for generating stubs, skeletons and well-focused code snipplets (e.g., those needed for creating the interface for reading and writing a large number of different fields from/to a database), such approaches might fail in generating the implementation of complex business logic and behavioural algorithms, which always require the human intervention to be implemented. An MDA-based methodology requires that the input software model (i.e., the Platform Independent Metamodel—PIM) is annotated so as to include the information needed to drive the chain of model transformations. The process of annotating the PIM (so as to obtain the so-called marked PIM), which is not part of traditional development processes, might be so complex and effort-consuming to be as costly as the manual software development. Thus, the adoption of an MDA-based development approach allows us to obtain a proper balance between automation and manual development, in order to maximise the benefits while avoiding any time or budget overruns.
- Software Testing: this activity is supported by the script generated by the E-MDAV tool.
- Automated Deployment: this step deals with the deployment of the software packagers onto the chosen cloud infrastructure, and also with the creation of the physical database. Both activities are supported by the scripts generated by E-MDAV and make use of specific tools provided by related DB and cloud software vendors.
- Operations: during the software operation, several reasons e.g., corrective, perfective or adaptive software maintenance, might lead to a new development iteration. When a new process iteration is started, the transformation chain allows all the involved stakeholders, from business managers to developers and operational managers, to promptly revise, complete and deploy a new application version, reducing development time (and costs) and making sure to keep models constantly aligned to the implementation.
- Data and application models are used to identify and specify the application requirements and features;
- The required software artifacts are generated throughout automated procedures;
- The achieved degree of automation provides effective support in managing each application release as testing and deployment phases are specifically addressed by the automated generation of the required scripts;
- In case of issues affecting a new release, the proposed methodology also supports the execution of roll-back activities for restoring a previous application version.
5.2.1. Application Scenarios
Direct Application Development
Application Change Request
6. E-MDAV Reference Architecture and Prototype Implementation Details
- DBAnalyzer: is the component responsible for analysing the structure of an existing relational BD to generate the XMI representation of the Entity-Relationship (ER) model.
- Transformation Services: provides the implementation of the model transformations at the basis of the E-MDAV methodology, as summarized in Figure 6. More specifically, the model-to-model transformation has been specified by using the QVT [25] standard, while for its implementation and execution, the QVTo Eclipse project [36], which provides a complete implementation of the OMG QVT operational language, has been used. The specification of the several model-to-text transformations have been based on the MOF Model-to-Text (MOFM2T) standard [26], while the related implementations have been founded on Acceleo [37], the Eclipse plugin which provides an implementation of the MOFM2T standard.
- −
- RtoDataModel: is the model-to-model transformation that maps an ER model to a UML model representing the application’s data model. As discussed in Section 5.2.1, it is used in a reverse-engineering process to support the maintenance of an existing web application, or in a wider and more general perspective, to allow the generation of a data model from an existing database, so as to enable the on-going adoption of the proposed E-MDAV methodology even when the application implementation has been already completed.
- −
- DMtoSQL: is the model-to-text transformation that takes as input the application’s data model specified in UML and yields as output the SQL scripts needed for generating the database schema.
- −
- DMtoHibernate: is the model-to-text transformation responsible for generating the web application component required for handling the data persistence. In this respect, as discussed later on in this section, as the web application architecture includes the Hibernate [38] technology, the DMtoHibernate transformation generates the required code and scripts for configuring the web app’s hibernate component, starting from the application’s data model.
- −
- DMtoWebApp: is the model-to-text transformation that takes as input the application’s data model and generates as output the code of the web application. Such a transformation has been designed so to use the Java language and to exploit the Apache Velocity technology [39] to ease the implementation of the presentation layer according to an MVC pattern.
- −
- DMtoTesting: is the model-to-text transformation responsible for generating the JUnit components for supporting the execution of the required tests that, according to the E-MDAV methodology, have to be carried out before the release of each component to the operational environment. The input of the transformation is constituted by the UML Data Model.
- -
- DMtoOperation: is the model-to-text transformation for generating the script for enacting the automated deployment of the application to the operational environment. It should be underlined that, as discussed in Section 5, the adoption of a transformation-based approach makes E-MDAV flexible enough to support the deployment of the web application both on premises and on a cloud infrastructure.
- The preliminary implementation of the various model-to-model and model-to-text transformations on the basis of the Transformation Services and the DB Analyzer components, as depicted in Figure 9;
- The model-to-model transformation engine QVTo [25], which is available as an Eclipse plugin;
- The model-to-text transformation engine Acceleo [37], which is available as an Eclipse plugin.
7. Evaluation of the E-MDAV Framework
- Web Application for Tax Management: this scenario deals with the development of a data-intensive web application for the land registry service of an Italian city with a population of over 500,000 citizens. The web application shall collect and manage data related to property taxes and land management and shall ensure 24/7 operations. The data model that constitutes the main input to the E-MDAV development process counts over 300 entities. Finally, the software implementation shall adopt a cloud-based PaaS (Platform-as-a-Service) execution platform.
- Collaborative Information Systems (CIS): this scenario focuses on the development of a project management application, which shall effectively support the planning, execution and monitoring of software development project. The application shall also be based on the the most relevant project management approaches e.g., Project Management Body of Knowledge (PMBOK) [41] and PRojects IN Controlled Environments (PRINCE2) [42]. The software application shall be available as a service in the cloud, according to a Software-as-a-Service (SaaS) paradigm delivery model.
- The effort spent by each professional role has been measured;
- Historical data related to past projects addressing a similar context and related to the development of applications with similar complexity have been collected;
- A comparison has been carried out in order to determine possible benefits that the application of the E-MDAV methodology is able to lead to.
- Improved consistency among artefacts produced at the various development process steps thanks to the adoption of a transformation-based approach, even when maintenance activities (e.g., artefacts/code changes) have to be carried out;
- Reduction in the required effort, time and cost;
- Reduction in the time to market;
- Improved cooperation between Dev and Ops teams as both are supported by the automation provided by E-MDAV;
8. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Abdel-Basset, M.; Chang, V.; Nabeeh, N.A. An intelligent framework using disruptive technologies for COVID-19 analysis. Technol. Forecast. Soc. Chang. 2021, 163, 120431. [Google Scholar] [CrossRef] [PubMed]
- Mell, P.M.; Grance, T. The NIST Definition of Cloud Computing; Technical Report; National Institute of Standards and Technology (NIST): Gaithersburg, MD, USA, 2011. [Google Scholar]
- Al-Mekhlal, M.; Khwaja, A.A. A Synthesis of Big Data Definition and Characteristics. In Proceedings of the 2019 IEEE International Conference on Computational Science and Engineering (CSE) and IEEE International Conference on Embedded and Ubiquitous Computing (EUC), New York, NY, USA, 1–3 August 2019; pp. 314–322. [Google Scholar]
- Albert, M.; Cabot, J.; Gómez, C.; Pelechano, V. Automatic generation of basic behavior schemas from UML class diagrams. Softw. Syst. Model. 2010, 9, 47–67. [Google Scholar] [CrossRef]
- Rajavaram, H.; Rajula, V.; Thangaraju, B. Automation of microservices application deployment made easy by rundeck and kubernetes. In Proceedings of the 2019 IEEE International Conference on Electronics, Computing and Communication Technologies (CONECCT), Bangalore, India, 26–27 July 2019; pp. 1–3. [Google Scholar]
- Tolosana-Calasanz, R.; Bañares, J.Á.; Colom, J.M. Model-driven development of data intensive applications over cloud resources. Future Gener. Comput. Syst. 2018, 87, 888–909. [Google Scholar] [CrossRef] [Green Version]
- Ebert, C.; Gallardo, G.; Hernantes, J.; Serrano, N. DevOps. IEEE Softw. 2016, 33, 94–100. [Google Scholar] [CrossRef]
- D’Ambrogio, A.; Falcone, A.; Garro, A.; Giglio, A. On the Importance of Simulation in Enabling Continuous Delivery and Evaluating Deployment Pipeline Performance. In Proceedings of the Italy INCOSE Conference on Systems Engineering (CIISE 2018), Rome, Italy, 28-30 November 2018; pp. 53–59. [Google Scholar]
- OMG. MDA Guide Revision 2.0 (ormsc/14-06-01). 2003. Available online: https://www.omg.org/cgi-bin/doc?ormsc/14-06-01.pdf (accessed on 12 January 2022).
- Hansson, D.H. Ruby on Rails Guides, v.7.01. 2020. Available online: http://guides.rubyonrails.org (accessed on 12 January 2022).
- Schmidt, D. Guest Editor’s Introduction: Model-Driven Engineering. Computer 2006, 39, 25–31. [Google Scholar] [CrossRef]
- Ruiz, F.J.B.; Molina, J.G.; García, O.D. On the application of model-driven engineering in data reengineering. Inf. Syst. 2017, 72, 136–160. [Google Scholar] [CrossRef]
- Brambilla, M.; Cabot, J.; Wimmer, M. Model-driven software engineering in practice 2nd Edition. Synth. Lect. Softw. Eng. 2017, 3, 1–207. [Google Scholar] [CrossRef]
- Bork, D.; Karagiannis, D. Model-driven development of multi-view modelling tools the muviemot approach. In Proceedings of the 2014 9th International Conference on Software Paradigm Trends (ICSOFT-PT), Vienna, Austria, 29–31 August; p. IS-11.
- Alti, A.; Boukerram, A.; Roose, P. Context-aware quality model driven approach: A new approach for quality control in pervasive computing environments. In European Conference on Software Architecture; Springer: Berlin/Heidelberg, Germany, 2010; pp. 441–448. [Google Scholar]
- Essebaa, I.; Chantit, S.; Ramdani, M. MoDAr-WA: Tool Support to Automate an MDA Approach for MVC Web Application. Computers 2019, 8, 89. [Google Scholar] [CrossRef] [Green Version]
- Raibulet, C.; Fontana, F.A.; Zanoni, M. Model-driven reverse engineering approaches: A systematic literature review. IEEE Access 2017, 5, 14516–14542. [Google Scholar] [CrossRef]
- OMG. Unified Modeling Language, Version 2.5.1. 2017. Available online: https://www.omg.org/spec/UML/2.5.1/ (accessed on 20 December 2021).
- Nailburg, E.J.; Maksimchuk, R.A. UML for Database Design, 1st ed.; Addison-Wesley Longman Publishing Co., Inc.: Boston, MA, USA, 2001. [Google Scholar]
- Iftekhar, N.; Warsi, M.R.; Zafar, S.; Khan, S.; Biswas, S.S. Reverse engineering of relational database schema to UML Model. In Proceedings of the 2019 International Conference on Electrical, Electronics and Computer Engineering (UPCON), Aligarh, India, 8–10 November 2019; pp. 1–6. [Google Scholar]
- Panetti, T.; D’Ambrogio, A. A complexity-less approach for automated development of data-intensive web applications. In Proceedings of the 2018 International Symposium on Networks, Computers and Communications (ISNCC), Rome, Italy, 19–21 June 2018; pp. 1–6. [Google Scholar]
- Atkinson, C.; Kühne, T. Model-driven development: A metamodeling foundation. Softw. IEEE 2003, 20, 36–41. [Google Scholar] [CrossRef] [Green Version]
- OMG. Meta Object Facility (MOF) Specification, Version 2.4.2. 2017. Available online: https://www.omg.org/spec/MOF/2.4.2/ (accessed on 12 January 2022).
- OMG. XMI - XML Metadata Interchange, Version 2.5.1. 2015. Available online: https://www.omg.org/spec/XMI/2.5.1/ (accessed on 12 January 2022).
- OMG. Meta Object Facility (MOF) Query/View/Transformation, Version 1.3. 2016. Available online: https://www.omg.org/spec/QVT/1.3/ (accessed on 12 January 2022).
- OMG. MOF Model to Text Transformation Language (MOFM2T), 1.0. 2008. Available online: https://www.omg.org/spec/MOFM2T (accessed on 12 January 2022).
- Virmani, M. Understanding DevOps & bridging the gap from continuous integration to continuous delivery. In Proceedings of the Fifth International Conference on the Innovative Computing Technology (INTECH 2015), Galicia, Spain, 20–22 May 2015; pp. 78–82. [Google Scholar]
- Erich, F.; Amrit, C.; Daneva, M. A Qualitative Study of DevOps Usage in Practice. J. Softw. Evol. Process 2017, 29, e1885. [Google Scholar] [CrossRef]
- Buyya, R.; Srirama, S.N.; Casale, G.; Calheiros, R.; Simmhan, Y.; Varghese, B.; Gelenbe, E.; Javadi, B.; Vaquero, L.M.; Netto, M.A.; et al. A manifesto for future generation cloud computing: Research directions for the next decade. ACM Comput. Surv. (CSUR) 2018, 51, 1–38. [Google Scholar] [CrossRef] [Green Version]
- Menascé, D.A.; Ngo, P. Understanding Cloud Computing: Experimentation and Capacity Planning. In Proceedings of the 2009 Computer Measurement Group Conference, Dallas, TX, USA, 6–11 December 2009. [Google Scholar]
- Karmel, A.; Chandramouli, R.; Iorga, M. NIST Special Publication 800-180: NIST Definition of Microservices, Application Containers and Virtual Machines; NIST: Gaithersburg, MD, USA, 2016. [Google Scholar]
- Chen, C.P.; Zhang, C.Y. Data-intensive applications, challenges, techniques and technologies: A survey on Big Data. Inf. Sci. 2014, 275, 314–347. [Google Scholar] [CrossRef]
- Stavrinides, G.L.; Karatza, H.D. Scheduling data-intensive workloads in large-scale distributed systems: Trends and challenges. In Modeling and simulation in HPC and cloud systems; Springer: Berlin/Heidelberg, Germany, 2018; pp. 19–43. [Google Scholar]
- Ian Gorton, D.K.G. Data-Intensive Computing: Architectures, Algorithms, and Applications; Cambridge University Press: Cambridge, UK, 2012. [Google Scholar] [CrossRef] [Green Version]
- DICE Consortium. DICE Enables Quality-Driven DevOps for Big Data. 2016. Available online: http://www.dice-h2020.eu/2016/04/25/dice-enables-quality-driven-devops-for-big-data-a-white-paper (accessed on 12 January 2022).
- Eclipse Foundation. Eclipse QVT Operational Project. 2016. Available online: https://projects.eclipse.org/projects/modeling.mmt.qvt-oml (accessed on 12 January 2022).
- Eclipse Foundation. Acceleo. 2012. Available online: https://www.eclipse.org/acceleo/ (accessed on 12 January 2022).
- Red Hat. Hibernate ORM. 2021. Available online: https://hibernate.org/orm (accessed on 12 January 2022).
- Apache foundation. The Apache Velocity Project. 2021. Available online: https://velocity.apache.org (accessed on 12 January 2022).
- Eclipse Foundation. Eclipse Modeling Framework Project (EMF). 2008. Available online: http://www.eclipse.org/modeling/emf/?project=emf (accessed on 12 January 2022).
- Project Management Institute. A Guide to the Project Management Body of Knowledge. 2021. Available online: https://www.pmi.org (accessed on 12 January 2022).
- Axelos. PRojects IN Controlled Environments - PRINCE2. Available online: https://www.axelos.com/best-practice-solutions/prince2 (accessed on 12 January 2022).
- Pop, D.P.; Altar, A. Designing an MVC model for rapid web application development. Procedia Eng. 2014, 69, 1172–1179. [Google Scholar] [CrossRef] [Green Version]
Role | Responsibilities |
---|---|
Business Analyst | Requirements Elicitation, Functional Analysis |
Software Designer | Data and Application Model Specification |
Software Developer | Implementation, Testing |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Bocciarelli, P.; D’Ambrogio, A.; Panetti, T.; Giglio, A. E-MDAV: A Framework for Developing Data-Intensive Web Applications. Informatics 2022, 9, 12. https://doi.org/10.3390/informatics9010012
Bocciarelli P, D’Ambrogio A, Panetti T, Giglio A. E-MDAV: A Framework for Developing Data-Intensive Web Applications. Informatics. 2022; 9(1):12. https://doi.org/10.3390/informatics9010012
Chicago/Turabian StyleBocciarelli, Paolo, Andrea D’Ambrogio, Tommaso Panetti, and Andrea Giglio. 2022. "E-MDAV: A Framework for Developing Data-Intensive Web Applications" Informatics 9, no. 1: 12. https://doi.org/10.3390/informatics9010012
APA StyleBocciarelli, P., D’Ambrogio, A., Panetti, T., & Giglio, A. (2022). E-MDAV: A Framework for Developing Data-Intensive Web Applications. Informatics, 9(1), 12. https://doi.org/10.3390/informatics9010012