Please use this identifier to cite or link to this item: https://hdl.handle.net/10316/94350
Title: Dynamic Resources Framework
Other Titles: Dynamic Resources Framework
Authors: Santos, Rodrigo Filipe Mendes dos
Orientador: Araújo, Filipe João Boavida Mendonça Machado de
Keywords: Recurso; REST; API; Micro-Serviço; Schema; Schema; Resource; REST; API; Micro-Service
Issue Date: 25-Jan-2021
Serial title, monograph or event: Dynamic Resources Framework
Place of publication or event: Talkdesk
Abstract: Na Talkdesk, a infraestrutura segue um modelo arquitetural baseado em micro-serviços. Atualmente esta infraestrutura está cada vez mais complexa, existindo um número crescente de serviços e clientes. A maioria dos clientes implementados são utilizados para manipular recursos contidos nos serviços. Estes clientes partilham a maior parte do seu código, exceto algumas partes que estão "hard-coded", por exemplo: os formulários que os utilizadores podem preencher e como executar as operações sobre os recursos (URL e informação sobre o método HTTP a invocar). Este tipo de implementação tornou-se difícil de manter porque sempre que existe uma alteração no sistema isso implica alterações nos clientes.Este trabalho serve para apresentar a arquitetura para uma "framework" capaz de lidar com os recursos utilizando uma representação de alto nível. A "framework" também será capaz de adicionar meta-informação às respostas enviadas pelo serviço.Com esta informação extra, podemos criar clientes genéricos capazes de descobrir as APIs de um serviço, como as invocar, gerar os formulários baseados na representação de alto nível de um recurso. Podemos afirmar que o estágio foi concluído com sucesso. Conseguimos concluir com sucesso os dois principais objetivos: ter a primeira implementação da "framework"; desacoplar os clientes da implementação do serviço.A versão atual da "framework" já permite uma abstração de algumas operações que necessitam de uma alocação de tempo de desenvolvimento.O cliente implementa um "UI" genérico, os elemento apenas vão aparecer quando o serviço envia a informação necessária na resposta.Apesar de utilizável, a "framework", ainda está num estado muito inicial do seu desenvolvimento. Ainda é possível alterar alguma da lógica relativa a configurações para que a sua utilização seja mais fácil.
Based on the micro-services architectural model, Talkdesk's infrastructure is now a complex system, ever-growing in the number of services and clients. Most of the implemented clients responsible for manipulating resources data have a common codebase, differing only in hard-coded operations: how they show the resource forms and how to execute the actions (endpoint URL and HTTP method). This kind of implementation is hard to maintain because it implies a refactor on the client codebase when a resource structure is updated.This work and document address the issue, proposing a framework architecture capable of handling resources based on high-level representations and improving service responses with meta-information regarding subsequent possible actions (endpoint URL and HTTP method).We can then create a generic client capable of discovering available service APIs, how to invoke them and render the resources and associated forms based on its high-level representation.In the end, this internship was completed successfully. We were able to fulfil the two main goals: have the first implemented version of the framework; decouple the client from the service implementation.The current version of the framework already abstracts multiple operations, that otherwise would require extra development time.The client implements generic UI elements that are only displayed/called when the server's response contains the necessary information.Right now, the framework is usable, but it is still in his early development state. We can solve some of the configuration-related flows to improve usability.
Description: Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
URI: https://hdl.handle.net/10316/94350
Rights: openAccess
Appears in Collections:UC - Dissertações de Mestrado

Files in This Item:
Show full item record

Page view(s)

137
checked on Apr 16, 2024

Download(s)

1,766
checked on Apr 16, 2024

Google ScholarTM

Check


This item is licensed under a Creative Commons License Creative Commons