Dynamic Resources Framework

Detalhes bibliográficos
Autor(a) principal: Santos, Rodrigo Filipe Mendes dos
Data de Publicação: 2021
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/10316/94350
Resumo: Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
id RCAP_b0478c94d15108695735a09a37ac2cc2
oai_identifier_str oai:estudogeral.uc.pt:10316/94350
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 Dynamic Resources FrameworkDynamic Resources FrameworkRecursoRESTAPIMicro-ServiçoSchemaSchemaResourceRESTAPIMicro-ServiceDissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e TecnologiaNa 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.2021-01-25info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://hdl.handle.net/10316/94350http://hdl.handle.net/10316/94350TID:202697258engSantos, Rodrigo Filipe Mendes dosinfo:eu-repo/semantics/openAccessreponame: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:RCAAP2021-05-25T07:38:56Zoai:estudogeral.uc.pt:10316/94350Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:13:03.839114Repositó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 Dynamic Resources Framework
Dynamic Resources Framework
title Dynamic Resources Framework
spellingShingle Dynamic Resources Framework
Santos, Rodrigo Filipe Mendes dos
Recurso
REST
API
Micro-Serviço
Schema
Schema
Resource
REST
API
Micro-Service
title_short Dynamic Resources Framework
title_full Dynamic Resources Framework
title_fullStr Dynamic Resources Framework
title_full_unstemmed Dynamic Resources Framework
title_sort Dynamic Resources Framework
author Santos, Rodrigo Filipe Mendes dos
author_facet Santos, Rodrigo Filipe Mendes dos
author_role author
dc.contributor.author.fl_str_mv Santos, Rodrigo Filipe Mendes dos
dc.subject.por.fl_str_mv Recurso
REST
API
Micro-Serviço
Schema
Schema
Resource
REST
API
Micro-Service
topic Recurso
REST
API
Micro-Serviço
Schema
Schema
Resource
REST
API
Micro-Service
description Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
publishDate 2021
dc.date.none.fl_str_mv 2021-01-25
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/10316/94350
http://hdl.handle.net/10316/94350
TID:202697258
url http://hdl.handle.net/10316/94350
identifier_str_mv TID:202697258
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
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_ 1799134026611556352