Nprof : uma ferramenta para monitoramento de aplicações distribuídas
Autor(a) principal: | |
---|---|
Data de Publicação: | 2006 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Biblioteca Digital de Teses e Dissertações da UFRGS |
Texto Completo: | http://hdl.handle.net/10183/13650 |
Resumo: | A crescente complexidade dos programas de computador e o crescimento da carga de trabalho a qual eles são submetidos têm sido tendências recorrentes nos sistemas computacionais, em especial para sistemas distribuídos como aplicações web e sistemas corporativos. O aumento da carga de trabalho gera uma demanda por sistemas que façam melhor uso dos recursos computacionais disponíveis, enquanto a maior complexidade gera uma demanda por sistemas que se preocupem em minimizar o número de erros. Portanto, podem-se identificar dois objetivos a serem perseguidos pelos desenvolvedores de sistemas de software: melhorar o desempenho e aumentar a confiabilidade dos sistemas. A fim de alcançar os objetivos expostos, são desenvolvidos sistemas de monitoramento para automatizar a coleta e análise de dados sobre os sistemas computacionais alvo. O presente trabalho visa contribuir nos seguintes aspectos: na identificação dos dados relevantes para o monitoramento de aplicações distribuídas desenvolvidas para a plataforma Java; e na criação de uma ferramenta de monitoramento de aplicações distribuídas, explorando os novos recursos do JDK 1.5, bem como os recursos já disponíveis em Java, como carga dinâmica de classes e transformação de bytecodes A fim de avaliar a ferramenta proposta foram elaborados três estudos de caso: um utiliza uma aplicação existente sem necessidade de sua adaptação; outro avalia a sobrecarga da ferramenta frente a diferentes parâmetros; e o terceiro avalia o monitoramento de um sistema distribuído. Entende-se que a ferramenta atinge o objetivo de monitoramento de aplicações distribuídas, por meio da incorporação de técnicas e APIs distintas, ao permitir: o monitoramento de uma aplicação distribuída por meio do monitoramento de diversos nodos de tal aplicação concomitantemente; e a visualização das informações coletadas de forma online. Adicionalmente, a coleta simultânea de dados de diferentes nodos de uma aplicação distribuída pode ser útil para a descoberta de relações entre eventos que ocorrem durante a execução de tal aplicação. |
id |
URGS_821b63a7d151e31ca852c0ba9b2f0d4e |
---|---|
oai_identifier_str |
oai:www.lume.ufrgs.br:10183/13650 |
network_acronym_str |
URGS |
network_name_str |
Biblioteca Digital de Teses e Dissertações da UFRGS |
repository_id_str |
1853 |
spelling |
Brugnara, TelmoJansch-Porto, Ingrid Eleonora SchreiberLisboa, Maria Lucia Blanck2008-08-09T04:12:01Z2006http://hdl.handle.net/10183/13650000651023A crescente complexidade dos programas de computador e o crescimento da carga de trabalho a qual eles são submetidos têm sido tendências recorrentes nos sistemas computacionais, em especial para sistemas distribuídos como aplicações web e sistemas corporativos. O aumento da carga de trabalho gera uma demanda por sistemas que façam melhor uso dos recursos computacionais disponíveis, enquanto a maior complexidade gera uma demanda por sistemas que se preocupem em minimizar o número de erros. Portanto, podem-se identificar dois objetivos a serem perseguidos pelos desenvolvedores de sistemas de software: melhorar o desempenho e aumentar a confiabilidade dos sistemas. A fim de alcançar os objetivos expostos, são desenvolvidos sistemas de monitoramento para automatizar a coleta e análise de dados sobre os sistemas computacionais alvo. O presente trabalho visa contribuir nos seguintes aspectos: na identificação dos dados relevantes para o monitoramento de aplicações distribuídas desenvolvidas para a plataforma Java; e na criação de uma ferramenta de monitoramento de aplicações distribuídas, explorando os novos recursos do JDK 1.5, bem como os recursos já disponíveis em Java, como carga dinâmica de classes e transformação de bytecodes A fim de avaliar a ferramenta proposta foram elaborados três estudos de caso: um utiliza uma aplicação existente sem necessidade de sua adaptação; outro avalia a sobrecarga da ferramenta frente a diferentes parâmetros; e o terceiro avalia o monitoramento de um sistema distribuído. Entende-se que a ferramenta atinge o objetivo de monitoramento de aplicações distribuídas, por meio da incorporação de técnicas e APIs distintas, ao permitir: o monitoramento de uma aplicação distribuída por meio do monitoramento de diversos nodos de tal aplicação concomitantemente; e a visualização das informações coletadas de forma online. Adicionalmente, a coleta simultânea de dados de diferentes nodos de uma aplicação distribuída pode ser útil para a descoberta de relações entre eventos que ocorrem durante a execução de tal aplicação.The growing complexity of software and the increasing workload to which systems have been submitted are known trends in the computing system field, especially when distributed and web systems are considered. The increasing workload generates demand for systems that can make a better use of computing resources, while the increment of system complexity demands specific actions to prevent design faults. Therefore, software engineers have two main objectives to be concerned with: optimization and dependability. In order to accomplish these objectives, monitoring systems have been proposed to gather data from running systems so that their behavior can be analyzed. The present dissertation intends to contribute in the following domains: identifying relevant metrics for monitoring distributed Java applications; and developing a tool to monitor and profile distributed applications, using the new resources available in JDK 1 .5 as well as some already known techniques like dynamic classloading and bytecode instrumentation. In order to evaluate the proposed tool, three test cases have been developed: one with a well known application running without modification; another for evaluating the tools’ overhead in different scenarios; and a third one to evaluate a distributed application been monitored. We understand that the proposed tool is successful in monitoring distributed applications by the use of distinct APIs and techniques because: Nprof can monitor a distributed application by monitoring different nodes of the application simultaneously; and Nprof allows the online visualization of the collected data. Also, simultaneous collection of data from different nodes of a distributed application can be useful for discovering relations among events that occur during the execution of the application.application/pdfporEnsino : ProgramacaoJava (Linguagem de programação)MonitorProfilerPerformanceDebuggingJavaDistributed computingMessagesSocketNprof : uma ferramenta para monitoramento de aplicações distribuídasNprof : a monitoring tool for distributed applicationsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2006.mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000651023.pdf000651023.pdfTexto completoapplication/pdf2050128http://www.lume.ufrgs.br/bitstream/10183/13650/1/000651023.pdf7f70cb1578f11922de2f5caeff6bb108MD51TEXT000651023.pdf.txt000651023.pdf.txtExtracted Texttext/plain210392http://www.lume.ufrgs.br/bitstream/10183/13650/2/000651023.pdf.txtbbf5c331ac40bb6fd52279c9f4262527MD52THUMBNAIL000651023.pdf.jpg000651023.pdf.jpgGenerated Thumbnailimage/jpeg1057http://www.lume.ufrgs.br/bitstream/10183/13650/3/000651023.pdf.jpgc3f7a0026e1f63fed3b55a8c39f8e71dMD5310183/136502018-10-17 08:05:52.731oai:www.lume.ufrgs.br:10183/13650Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532018-10-17T11:05:52Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false |
dc.title.pt_BR.fl_str_mv |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas |
dc.title.alternative.en.fl_str_mv |
Nprof : a monitoring tool for distributed applications |
title |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas |
spellingShingle |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas Brugnara, Telmo Ensino : Programacao Java (Linguagem de programação) Monitor Profiler Performance Debugging Java Distributed computing Messages Socket |
title_short |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas |
title_full |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas |
title_fullStr |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas |
title_full_unstemmed |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas |
title_sort |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas |
author |
Brugnara, Telmo |
author_facet |
Brugnara, Telmo |
author_role |
author |
dc.contributor.author.fl_str_mv |
Brugnara, Telmo |
dc.contributor.advisor1.fl_str_mv |
Jansch-Porto, Ingrid Eleonora Schreiber |
dc.contributor.advisor-co1.fl_str_mv |
Lisboa, Maria Lucia Blanck |
contributor_str_mv |
Jansch-Porto, Ingrid Eleonora Schreiber Lisboa, Maria Lucia Blanck |
dc.subject.por.fl_str_mv |
Ensino : Programacao Java (Linguagem de programação) |
topic |
Ensino : Programacao Java (Linguagem de programação) Monitor Profiler Performance Debugging Java Distributed computing Messages Socket |
dc.subject.eng.fl_str_mv |
Monitor Profiler Performance Debugging Java Distributed computing Messages Socket |
description |
A crescente complexidade dos programas de computador e o crescimento da carga de trabalho a qual eles são submetidos têm sido tendências recorrentes nos sistemas computacionais, em especial para sistemas distribuídos como aplicações web e sistemas corporativos. O aumento da carga de trabalho gera uma demanda por sistemas que façam melhor uso dos recursos computacionais disponíveis, enquanto a maior complexidade gera uma demanda por sistemas que se preocupem em minimizar o número de erros. Portanto, podem-se identificar dois objetivos a serem perseguidos pelos desenvolvedores de sistemas de software: melhorar o desempenho e aumentar a confiabilidade dos sistemas. A fim de alcançar os objetivos expostos, são desenvolvidos sistemas de monitoramento para automatizar a coleta e análise de dados sobre os sistemas computacionais alvo. O presente trabalho visa contribuir nos seguintes aspectos: na identificação dos dados relevantes para o monitoramento de aplicações distribuídas desenvolvidas para a plataforma Java; e na criação de uma ferramenta de monitoramento de aplicações distribuídas, explorando os novos recursos do JDK 1.5, bem como os recursos já disponíveis em Java, como carga dinâmica de classes e transformação de bytecodes A fim de avaliar a ferramenta proposta foram elaborados três estudos de caso: um utiliza uma aplicação existente sem necessidade de sua adaptação; outro avalia a sobrecarga da ferramenta frente a diferentes parâmetros; e o terceiro avalia o monitoramento de um sistema distribuído. Entende-se que a ferramenta atinge o objetivo de monitoramento de aplicações distribuídas, por meio da incorporação de técnicas e APIs distintas, ao permitir: o monitoramento de uma aplicação distribuída por meio do monitoramento de diversos nodos de tal aplicação concomitantemente; e a visualização das informações coletadas de forma online. Adicionalmente, a coleta simultânea de dados de diferentes nodos de uma aplicação distribuída pode ser útil para a descoberta de relações entre eventos que ocorrem durante a execução de tal aplicação. |
publishDate |
2006 |
dc.date.issued.fl_str_mv |
2006 |
dc.date.accessioned.fl_str_mv |
2008-08-09T04:12:01Z |
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/10183/13650 |
dc.identifier.nrb.pt_BR.fl_str_mv |
000651023 |
url |
http://hdl.handle.net/10183/13650 |
identifier_str_mv |
000651023 |
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.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da UFRGS instname:Universidade Federal do Rio Grande do Sul (UFRGS) instacron:UFRGS |
instname_str |
Universidade Federal do Rio Grande do Sul (UFRGS) |
instacron_str |
UFRGS |
institution |
UFRGS |
reponame_str |
Biblioteca Digital de Teses e Dissertações da UFRGS |
collection |
Biblioteca Digital de Teses e Dissertações da UFRGS |
bitstream.url.fl_str_mv |
http://www.lume.ufrgs.br/bitstream/10183/13650/1/000651023.pdf http://www.lume.ufrgs.br/bitstream/10183/13650/2/000651023.pdf.txt http://www.lume.ufrgs.br/bitstream/10183/13650/3/000651023.pdf.jpg |
bitstream.checksum.fl_str_mv |
7f70cb1578f11922de2f5caeff6bb108 bbf5c331ac40bb6fd52279c9f4262527 c3f7a0026e1f63fed3b55a8c39f8e71d |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS) |
repository.mail.fl_str_mv |
lume@ufrgs.br||lume@ufrgs.br |
_version_ |
1810085126952976384 |