Repository logo
 
No Thumbnail Available
Publication

Managing APIs evolution while maintaining System Interoperability

Use this identifier to reference this record.
Name:Description:Size:Format: 
DM_FabioAlves_2023_MEI.pdf9.82 MBAdobe PDF Download

Abstract(s)

Flutter Entertainment, a global sports betting company, has experienced a significant increase in online transactions due to the preference for online solutions and its recent acquisitions. Additionally, with the recurrent improvement of current features and the development of new ones, more components are being created and more updates are being done to existing components. This growth in both the number of APIs and development features have made it challenging to manage the Web APIs’ and their interactions. Additionally, the manual management of API contracts and the necessity to sync the APIs’ changes between the clients and the APIs’ owners have resulted in both increased development time and incidents. Moreover, due to the high volume of manual operations and the rapid pace of system evolution, the documentation quickly becomes outdated which exacerbates the problem. With all of these issues, the low system interoperability is becoming increasingly apparent which is the problem that this work aims to address. The main objective of this work is to explore the issue of handling APIs evolution while maintaining system interoperability. For this, some topics must be addressed such as APIs documentation, schema registry and versioning. That said, work is carried out to explore architecture APIs patterns and good practices, system interoperability architectures and current interoperability solutions. Additionally, a proof of concept that satisfies the problem and its evaluation is presented. After careful consideration of the available market options, the solution with the most benefits for the context of this case study is AsyncAPI, being this specification use as a proof of concept for two specific APIs of the tennis flow, namely TMT and IMG. To handle versioning, it is used Semantic Versioning. Additionally, specific API lifecycle steps were established and are being used in the documentation of APIs. This documentation is generated automatically using the AsyncAPI specification and is kept up-to-date through the implementation of GitHub workflows. To manage the API contracts, a dedicated GitHub repository is utilized, containing all the necessary schemas referenced within the specification. Lastly, the Microcks tool is used as a solution to handle validation and API testing, enabling contract testing to be performed on the APIs and the implemented work. In conclusion, the main objective of studying solutions to maintain system interoperability with evolving APIs have been achieved through the successful development of a comprehensive proof of concept. All identified topics are effectively addressed, and the evaluation of the user experience, both before and after the implementation, proves it. Overall, a notable improvement is observed in the system’s interoperability and functionality.
Flutter Entertainment, uma empresa internacional de apostas desportivas, tem registado um aumento significativo de transacções devido à crescente tendencia por soluções online e devido às recentes aquisições do grupo. Além disso, verifica-se um aumento de mudanças dos componentes integrantes do sistema e um crescimento do número de elementos do sistema associado à constante procura por melhores funcionalidades para os seus clientes. Com este crescimento, tanto no número de APIs como nas atualizações de funcionalidades, começou a ser desafiante gerir os serviços Web e as interacções entre eles. Além disso, a gestão dos contratos das APIs faz-se de forma manual, existindo uma necessidade de sincronização entre os clientes e donos, aumentado o tempo de desenvolvimento e número de incidentes. Devido ao elevado volume de operações manuais e ao rápido ritmo de evolução do sistema, a documentação rapidamente se torna desactualizada. Ao se culminar todos os problemas, tem-se um baixo nível de interoperabilidade, sendo este o problema a resolver. O principal objectivo deste trabalho é explorar e solucionar os problemas associados a evolução de APIs que dificultam a conservação da interoperabilidade do sistema. Assim sendo, alguns dos tópicos abordados estão relacionados com a documentação, registo dos contratos e versionamento de APIs. Posto isto, realiza-se um trabalho sobre padrões e boas práticas de arquiteturas de APIs, arquitecturas que promovam a interoperabilidade de sistemas e atuais soluções para a conservação de interoperabilidade. Adicionalmente, apresenta-se uma prova de conceito que responde ao problema e a respetiva avaliação da mesma. Dentro das opções do mercado estudadas, aquela que traz mais benefícios para este caso de estudo é a AsyncAPI sendo implementada uma prova de conceito a duas APIs do fluxo de tênis, TMT e IMG, através do uso desta especificação. Nesta prova de conceito usa-se como padrão de versionamento o Semantic Versioning. Adicionalmente, as etapas de vida da API estão identificadas na documentação. Esta documentação é auto gerada pela especificação AsyncAPI e é automaticamente mantida atualizada através do uso dos fluxos de trabalho do GitHub. Por outro lado, usa-se um repositório do GitHub para conter todas as definições dos contratos das APIs, para serem referenciadas na especificação. Por fim, utiliza-se a ferramenta Microcks para a validação das APIs e do trabalho realizado, uma vez que esta permite realizar testes de contrato às APIs. Em suma, é possível concluir que o objetivo de estudar soluções para ajudar a manter a interoperabilidade do sistema com a evolução das API cumpre-se, uma vez que a prova de conceito que apresentada abordou todos os tópicos identificados. Em concordância, a avaliação da experiência de utilização por tópico antes e depois do trabalho realizado apresenta uma melhoria genérica.

Description

Keywords

System Interoperability Web APIs Web Systems Evolution Interoperability Solutions Interoperabilidade de Sistema Evolução de Sistemas Web Soluções de Interoperabilidade

Citation

Research Projects

Organizational Units

Journal Issue