Seleção dinâmica de microsserviços para coreografias - Silva, Douglas Bernardes (2019)
Ambientes dinâmicos e heterogêneos, como cidades inteligentes, têm requisitado sistemas de software cada vez mais flexíveis e interoperáveis. Há demandas, porém, que não podem ser atendidas pela simples colaboração entre os sistemas disponíveis, levando à necessidade de que novos sistemas sejam implantados em tempo de execução. Abordagens para construção desses sistemas emergentes têm sido propostas no sentido de se utilizar um conjunto de pequenos componentes de software disponíveis para se construir autonomamente esse tipo de sistema. As características da arquitetura de microsserviços a tornam uma candidata interessante para essa proposição. Microsserviços, porém, possuem um propósito específico e bem definido, e precisam ser coordenados e combinados para se alcançar resultados mais complexos. Coreografias representam uma abordagem interessante para fazê-lo. No entanto, a seleção de microsserviços apropriados para realizar os papéis especificados em uma coreografia só será eficiente se assegurar os requisitos de QoS do usuário, e essa não é uma tarefa trivial uma vez que a QoS de cada microsserviço candidato tende a variar consideravelmente pelo seu reuso e pela inconstância do contexto de execução. Isso também significa que previsões feitas em tempo de projeto tendem a se tornar ineficazes. Esta dissertação propõe uma abordagem para seleção orientada de microsserviços, sensível à QoS durante a encenação de coreografias em ambientes dinâmicos e heterogêneos. A proposta é inserir uma nova camada na arquitetura convencional que provê suporte para coreografias, de forma que a seleção de microsserviços assegure os requisitos de QoS locais para cada funcionalidade, em tempo de execução, e que a encenação se adapte de acordo com seu contexto de execução. Um protótipo da arquitetura proposta foi implementado para sua avaliação, e os resultados indicam que a abordagem é eficaz e eficiente quando há um conjunto numeroso e multivariado de microsserviços disponíveis, apresentando desempenho superior em relação aos trabalhos relacionados utilizados para comparação.