Managing APIs evolution while maintaining System Interoperability

Detalhes bibliográficos
Autor(a) principal: Alves, Fábio Alexandre Carneiro
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10400.22/23788
Resumo: 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.
id RCAP_0ac528f81e6efde6e8acea11d7763fbb
oai_identifier_str oai:recipp.ipp.pt:10400.22/23788
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Managing APIs evolution while maintaining System InteroperabilitySystem InteroperabilityWeb APIsWeb Systems EvolutionInteroperability SolutionsInteroperabilidade de SistemaEvolução de Sistemas WebSoluções de InteroperabilidadeFlutter 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.Ferreira, Nuno Alexandre CastroRepositório Científico do Instituto Politécnico do PortoAlves, Fábio Alexandre Carneiro20232025-07-27T00:00:00Z2023-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10400.22/23788TID:203374584enginfo:eu-repo/semantics/embargoedAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-01T01:46:30Zoai:recipp.ipp.pt:10400.22/23788Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:26:13.670872Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Managing APIs evolution while maintaining System Interoperability
title Managing APIs evolution while maintaining System Interoperability
spellingShingle Managing APIs evolution while maintaining System Interoperability
Alves, Fábio Alexandre Carneiro
System Interoperability
Web APIs
Web Systems Evolution
Interoperability Solutions
Interoperabilidade de Sistema
Evolução de Sistemas Web
Soluções de Interoperabilidade
title_short Managing APIs evolution while maintaining System Interoperability
title_full Managing APIs evolution while maintaining System Interoperability
title_fullStr Managing APIs evolution while maintaining System Interoperability
title_full_unstemmed Managing APIs evolution while maintaining System Interoperability
title_sort Managing APIs evolution while maintaining System Interoperability
author Alves, Fábio Alexandre Carneiro
author_facet Alves, Fábio Alexandre Carneiro
author_role author
dc.contributor.none.fl_str_mv Ferreira, Nuno Alexandre Castro
Repositório Científico do Instituto Politécnico do Porto
dc.contributor.author.fl_str_mv Alves, Fábio Alexandre Carneiro
dc.subject.por.fl_str_mv System Interoperability
Web APIs
Web Systems Evolution
Interoperability Solutions
Interoperabilidade de Sistema
Evolução de Sistemas Web
Soluções de Interoperabilidade
topic System Interoperability
Web APIs
Web Systems Evolution
Interoperability Solutions
Interoperabilidade de Sistema
Evolução de Sistemas Web
Soluções de Interoperabilidade
description 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.
publishDate 2023
dc.date.none.fl_str_mv 2023
2023-01-01T00:00:00Z
2025-07-27T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10400.22/23788
TID:203374584
url http://hdl.handle.net/10400.22/23788
identifier_str_mv TID:203374584
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/embargoedAccess
eu_rights_str_mv embargoedAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134144548044800