Alguns sistemas têm como característica a frequente mudança de regras, que desenvolvidos sem a tecnologia adequada, demandam horas de desenvolvimento para atualização. Um exemplo dessa necessidade, no contexto do INPE, são aplicações que retornam dados de diferentes tipos de sensores, que frequentemente precisam que seus serviços forneçam novas informações, e mesmo uma nova lógica sobre essas informações. Para atender esta demanda por flexibilidade, foi criado o Modelo Adaptativo de Objetos (AOM), um estilo arquitetural em que tipos de entidades, atributos, relacionamentos e comportamentos são representados por meio de instâncias, criadas a partir de metadados consumidos em tempo de execução. Uma das dificuldades na criação de uma arquitetura AOM está no fato de que, por usar uma estrutura diferente para entidades, não é possível utilizar com frameworks tradicionais. Frameworks AOM existentes proveem uma estrutura genérica e alguns componentes, mas não permitem o uso com outros frameworks. O framework Esfinge AOM Role Mapper possui uma abordagem baseada no mapeamento de modelos que permite o uso com frameworks tradicionais, mas sem dar suporte ao modelo comportamental do AOM, equivalente aos métodos nas classes. Dessa forma, o objetivo desse trabalho é definir um modelo arquitetural capaz de mapear a representação do comportamento de entidades entre modelos de classe estáticos, AOMs específicos de domínio e AOMs independentes de domínio, com a finalidade de possibilitar a utilização de frameworks feitos para modelos de classe estáticos em arquiteturas AOM. O primeiro passo foi a avaliação da abordagem do Esfinge AOM Role Mapper através de um experimento, o qual mostrou que ele possui uma boa aceitação com os desenvolvedores e não tem diferença significativa em tempo de desenvolvimento em comparação com desenvolver sem uso de framework. Em seguida, foram implementadas novas funcionalidades no AOM Role Mapper para adicionar o modelo comportamental em sua base e o seu mapeamento para os outros modelos. Por fim, para avaliar se o objetivo de uso de frameworks tradicionais foi atingido, foi realizado um estudo de caso onde o framework Spring é usado em uma aplicação AOM para gerar serviços web em tempo de execução. Como resultado, com a solução proposta foi possível utilizar a funcionalidade com um baixo acoplamento entre o framework tradicional e o framework AOM. Com isso, esse trabalho cumpre o objetivo de apresentar uma solução arquitetural que possibilita o uso de frameworks tradicionais em aplicações AOM, criando o potencial de permitir a construção desse tipo de aplicação de forma mais eficiente e com menor repetição de código.
Some kind of systems have as characteristic the frequent change of rules, that developed without the appropriate technology, demand hours of development for update. An example of this need, in the context of INPE, are applications that return data from different types of sensors, which often need their services to provide new information, and even a new logic on that information. In order to meet this demand for flexibility, created the Adaptive Object Model (AOM), an architectural style in which entity types, attributes, relationships, and behaviors are represented through instances, created from metadata consumed at runtime. One of the difficulties in creating an AOM architecture lies in the fact that by using a different structure for entities, it is not possible to use with traditional frameworks. Existing AOM frameworks provide a generic framework and some components, but do not allow the use with other frameworks. The Esfinge framework AOM Role Mapper has an approach based on the mapping of models that allows the use with traditional frameworks, but without supporting the behavioral model of AOM, equivalent to the methods in the classes. Thus, the objective of this work is to define an architectural model capable of mapping the representation of the behavior of entities between static class models, domain specific AOMs and domain independent AOMs, in order to enable the use with frameworks made for static class models in AOM architectures. The first step was to evaluate the approach of the AOM Esfinge Role Mapper through an experiment, which showed that it has a good acceptance with the developers and does not have significant difference in development time comparing with not using any framework. Then, new functionalities were implemented in AOM Role Mapper to add the behavioral model in its base and its mapping to the other models. Finally, in order to evaluate if the goal of use with traditional frameworks was reached, a case study was carried out where the Spring framework is used in an AOM application to generate web services at runtime. As a result, with the proposed solution it was possible to use the functionality with a low coupling between the traditional framework and the AOM framework. This work accomplishes the objective of presenting an architectural solution that allows the use with traditional frameworks for AOM applications, creating the potential to allow the construction of this type of application more efficiently and with less code repetition.