Nprof : uma ferramenta para monitoramento de aplicações distribuídas

Detalhes bibliográficos
Autor(a) principal: Brugnara, Telmo
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