Run-time interpretation of information system application models in mobile cloud environments

Nikola Tankovic, Tihana Galinac-Grbac
2019 Computer Science and Information Systems  
Application models are commonly used in the development of information systems. Recent trends have introduced techniques by which models can be directly transformed into execution code and thus become a single source for application design. Inherently, it has been challenging for software developers to become proficient in designing entire systems due to the complex chain of model transformations and the further refinements required to the code generated from the models. We propose an
more » ... ral framework for building the distributed information system applications in which the application models are directly interpreted during execution. This approach shortens the evaluation cycles and provides faster feedback to developers. Our framework is based on a holistic application model represented as a graph structure complemented with a procedural action scripting language that can express more complex software behavior. We present the implementation details of this framework architecture in a mobile cloud environment and evaluate its benefits in eleven projects for different customers in the retail, supply-chain management and merchandising domain involving 300 active application users. Our approach allowed engaging end-users in the software development process in the phase of specifying executable application models. It succeeded in shortening the requirements engineering process and automating the configuration and deployment process. Moreover, it benefited from the automatic synchronization of application updates for all active versions at the customer sites. Run-time Interpretation of IS Models in Mobile Cloud 3 Section 5. Related work is reviewed in Section 6. Finally, Section 7 concludes the paper and elaborates on the possibilities for further research. Background Two major strategies exist for transforming models to executable applications [6]: (1) the generative approach, in which models undergo a series of transformations that result in executable application code, and (2) the interpretative approach, in which models are exploited through runtime interpretation. Generative solutions yield better end applications performance-wise because runtime interpretation of models comes with additional execution cost. The existing strategies, such as the Model-Driven Architecture initiative (MDA) and the Eclipse Modeling Framework (EMF), focus primarily on the generative approach. Though application performance is superior, the generative approach requires the definition of a series of model transformation steps using different templates for compiling the higher-level model to lower-level programming code. Specifying such transformations can be extremely challenging [7] . Consequently, it involves a broader spectrum of highly specialized engineers. While such involvement is essential for large-scale software products, at the same time, such characteristics hinder large-scale MDD adoption. Another ongoing research challenge associated with the generative approaches is the manual source-code refinement typically applied after the initial model to code transformations. While the code generated from models covers the majority of generic application functionalities, some parts of applications still require the implementation of specific business logic. These highly specific portions of applications are difficult to represent using high-level abstract models [8] . Therefore, specific functionality is often implemented after the initial code has been generated from the models. This post-model-generation code refinement requirement has several inherent drawbacks: (1) it impacts the synchronization between the model and the application source code, (2) it requires specialized software programming skills, and (3) it imposes a burden on model and application change and deployment management, because it requires additional housekeeping for each version of the model, transformation rules, code templates and customized code to maintain their compatibility [8] . To address these drawbacks, some solutions have proposed modeling specific functionalities by providing an abstract action domain-specific language [9, 10] that is also transformed to concrete programming code through compilation. This approach works in keeping the models synchronized but raises other difficulties. For example, specifying model transformation rules requires expert knowledge and has a massive impact on the customer-engineer requirements negotiation process. Rapid prototyping becomes almost impossible: the time required for generating code, compiling, installing and restarting existing systems can range from several minutes to several hours [11]. AGM Solution As we briefly discussed in a previous research paper [12] , AGM reuses the Object and Process modeling approach [13] standardized in Automation systems and integrationthe Object-Process Methodology, ISO/PAS 19450:2015. Object Process Methodology (OPM) is a holistic graphical modeling language applicable to a large variety of domains.
doi:10.2298/csis180829021t fatcat:gajpseat3ba5xajuhjuxvorbmm