An Architecture for Dynamic Web Services that Integrates Adaptive Object Models with Existing Frameworks - Dias, Antonio; Guerra, Eduardo; Lima, Phyllipe (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS); 2019: Anais do XIII Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software, 2019)
Nowadays, web services became one of the main alternatives for communication between software systems and even inside the components of the same application. In some domains, the change of requirements happens frequently, demanding flexibility from the architecture of the applications, and consequently also in the web services that they provide. In this context, the goal of this work is to provide an architecture that can be used for dynamic web services, allowing services to be changed and introduced at runtime. To fulfill these requirements this work proposes the usage of Adaptive Object Models (AOM) combined with existing web service framework, using dynamic adapters to integrate and decouple them. The framework Esfinge AOM Role Mapper received features to implement the behavioral part of the AOM model and to map the AOM rule objects with metadata to methods with code annotations in the dynamic adapters. The proposed architecture passes the adapters generated at runtime to the existing framework, which provide the web service based on its methods and code annotations. An evaluation based on a case study performed scenario-based tests to verify the architecture capability to create and change dynamic web services. Additionally, a modularity analysis verified the coupling between classes that use both frameworks. As a result, the proposed architectural solution was able to implement the dynamic web services in all the scenarios keeping the classes that handle the AOM model decoupled from the classes responsible for providing the web services.