Optimizações guiadas por dados reais em linguagens de domínio específico para a web
Autor(a) principal: | |
---|---|
Data de Publicação: | 2011 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | http://hdl.handle.net/10362/6571 |
Resumo: | Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para a obtenção do Grau de Mestre em Engenharia Informática |
id |
RCAP_809213adf8fde6b2d07d92928fb2be4f |
---|---|
oai_identifier_str |
oai:run.unl.pt:10362/6571 |
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 |
Optimizações guiadas por dados reais em linguagens de domínio específico para a webOptimização baseada em profilingOptimização em compiladoresDissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para a obtenção do Grau de Mestre em Engenharia InformáticaA utilização de linguagens para domínios específicos tendo em vista um processo de desenvolvimento mais simples e eficiente é um padrão cada vez mais frequente no desenvolvimento de aplicações para a web. Apesar destas linguagens permitirem aos programadores direccionarem o foco de desenvolvimento para as funcionalidades das suas aplicações, estas tendem em produzir aplicações pouco cuidadas a nível do consumo de recursos críticos, limitando a escalabilidade das mesmas. A forma típica de endereçar estas limitações passa por, após o desenvolvimento das suas aplicações, os programadores submeterem as mesmas a testes de desempenho e de carga recorrendo a ferramentas que lhes permitem simular ambientes de utilização reais. Contudo, simular um ambiente idêntico ao que será posteriormente encontrado em produção é um desafio que requer um investimento muito significativo em tempo, competências e atenção por parte da equipa de desenvolvimento, competindo por isso por recursos já escassos no seio de uma organização não dedicada ao desenvolvimento web. Isto leva a que normalmente os programadores apenas consigam identificar os problemas das suas aplicações quando estas, já em execução, começam a falhar. Um dos pontos críticos mais frequentes encontrados em aplicações web é a centralização dos dados em bases de dados, sendo criada uma grande carga sobre o servidor que mantém esses dados. Esta dissertação apresenta uma solução de baixo custo e com ganhos significativos que permite, através da análise de dados reais recolhidos durante a execução das aplicações, guiar os compiladores e os programadores a identificarem as entidades dos modelos de dados das aplicações cujos acessos podem ou devem ser optimizados através de mecanismos de cache. Com esta solução disponibilizámos aos programadores um método fácil e eficiente de identificarem as entidades candidatas à utilização de cache e introduzirem tais optimizações através de mecanismos simples. O risco associado à introdução de cache com a nossa solução é muito baixo, pois foi criado um mecanismo de invalidação que permite que os dados mantidos em cache sejam invalidados sempre que os dados que estes dependem sofram alterações na base de dados. A nossa solução foi implementada e testada sobre um exemplo concreto de uma DSL de alto nível, desenvolvida pela empresa OutSystems, donde se obtiveram resultados que indicam ganhos significativos no desempenho das aplicações finais, melhorando assim a experiência dos utilizadores finais dessas aplicações. Um dos principais objectivos desta solução era diminuir a carga existente sobre o servidor de bases de dados. Este objectivo foi sucedido, tendo sido obtida uma diminuição de pedidos sobre o servidor de base de dados de cerca de 60%(teste realizado em ambiente simulado).Faculdade de Ciências e TecnologiaCaires, LuísFerrão, LúcioRUNRebelo, Miguel Alexandre Figueira2011-12-28T11:20:52Z20112011-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/6571porinfo: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:RCAAP2024-03-11T03:37:39Zoai:run.unl.pt:10362/6571Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:16:52.663688Repositó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 |
Optimizações guiadas por dados reais em linguagens de domínio específico para a web |
title |
Optimizações guiadas por dados reais em linguagens de domínio específico para a web |
spellingShingle |
Optimizações guiadas por dados reais em linguagens de domínio específico para a web Rebelo, Miguel Alexandre Figueira Optimização baseada em profiling Optimização em compiladores |
title_short |
Optimizações guiadas por dados reais em linguagens de domínio específico para a web |
title_full |
Optimizações guiadas por dados reais em linguagens de domínio específico para a web |
title_fullStr |
Optimizações guiadas por dados reais em linguagens de domínio específico para a web |
title_full_unstemmed |
Optimizações guiadas por dados reais em linguagens de domínio específico para a web |
title_sort |
Optimizações guiadas por dados reais em linguagens de domínio específico para a web |
author |
Rebelo, Miguel Alexandre Figueira |
author_facet |
Rebelo, Miguel Alexandre Figueira |
author_role |
author |
dc.contributor.none.fl_str_mv |
Caires, Luís Ferrão, Lúcio RUN |
dc.contributor.author.fl_str_mv |
Rebelo, Miguel Alexandre Figueira |
dc.subject.por.fl_str_mv |
Optimização baseada em profiling Optimização em compiladores |
topic |
Optimização baseada em profiling Optimização em compiladores |
description |
Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para a obtenção do Grau de Mestre em Engenharia Informática |
publishDate |
2011 |
dc.date.none.fl_str_mv |
2011-12-28T11:20:52Z 2011 2011-01-01T00: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/10362/6571 |
url |
http://hdl.handle.net/10362/6571 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Faculdade de Ciências e Tecnologia |
publisher.none.fl_str_mv |
Faculdade de Ciências e Tecnologia |
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_ |
1799137817547243520 |