Late Decomposition of Applications into Services through Model-Driven Engineering

Vinicius Nordi Esperança, Daniel Lucrédio · 2017

Currently, with the increasing number of connected devices and users, there are forces that lead to the distribution of software systems. Behind these forces is the need for increased reliability and performance, privacy and security issues, among other factors. However a distributed architecture has inherent complexity and is difficult to change. Thus, distributed-related design decisions are normally taken in the early stages of the software life cycle. Nonetheless in a dynamic scenario it may be difficult to predict how technologies or users may change in the future. Therefore, the ability to rapidly change how a software system is distributed may provide extra competitive advantage to institutions, allowing developers to better respond to market changes, or to more easily experiment with real different distribution configurations before delivering a final product or update. In this paper an approach to ease this task is presented. Using source code analysis, model-driven engineering and code generation, applications can be semi-automatically decomposed into services that can be easily distributed across multiple servers, without changing the original functionality. As a proof-of-concept, we used the approach to successfully distribute Apache Tomcat in distinct ways, in configurations that involve up to ten different servers.

Read the paper · More papers on PaperTik