Uma abordagem dirigida por modelos para distribuição tardia de aplicações - Esperança, Vinicius Nordi (2016)
The need to improve software systems to adapt to the new technologies is a constant topic of research. As computing evolves, new challenges emerge and new solutions must be created. The increasing use of various types of devices for access to sites and software and the ease that the Internet provides the information access, force researchers to keep great efforts improving already developed applications, or even thinking of ways to facilitate the development of software to run on multiple devices. The general purpose of this master’s research was focused on this problem, distribute software systems initially designed to run on a single computer in order to eliminate many tasks that the developer thoroughly repeat this process. The approach allows developers to use the source code of any application and distribution models, perform the division of its software quickly in order to test different distributions without time cost. Using concepts of MDD (Model-Driven Development), analyzers and code generators, and concepts of microservices, it developed a partitioner that distributes the source code of an application on multiple servers, creating small services for each, making these services exchange information with each other while maintaining the functionality of the application intact. The partitioner gives flexibility to the programmer to choose the arrangement of classes among the services that will be created. Developers can then easily test different ways to distribute the code of the application without the need of having to develop services and communication between the new services. This approach was called late distribution. Experimental studies were performed to ensure the validity of the project. In total, five different tests were conducted in order to verify the creation of services would be performed as defined by the programmer. In all cases the result was satisfactory, allowing distribution of software code used between the designated servers.