Tese / Thesis Work Análise de desempenho de sistemas distribuídos de grande porte na plataforma Java



Documentos relacionados
A Cloud Computing Architecture for Large Scale Video Data Processing

UMA ABORDAGEM PARA GESTÃO DE CONTEÚDOS EDUCACIONAIS

Análise de desempenho de sistemas distribuídos de grande porte na plataforma Java

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Glossário BiSL. Bert Pranger / Michelle Hofland 28 Maio 2012 Versão

Padrões de Aplicações Empresariais

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO -

Daniel Wildt FACENSA Grupo de Estudos Java - FUJA Slide: 1

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS

Construção, Território e Ambiente. Construction, Planning and Environment. Semestre do plano de estudos 2

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

Controlo de Gestão das PME Portuguesas: Uma Abordagem Contingêncial. O único Homem que não erra é aquele que nunca faz nada.

Transações no Mundo SOA. Luciano Oliveira Solution Consultant

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

NEVA: Programa para aumento de performance de sites web usando o algoritmo de esteganografia

User interface evaluation experiences: A brief comparison between usability and communicability testing

IBM Rational Quality Manager. Felipe Freire IBM Rational

Scrum-Half: Uma Ferramenta Web de Apoio ao Scrum

Adriano Reine Bueno Rafael Barros Silva

A MÁQUINA ASSÍNCRONA TRIFÁSICA BRUSHLESS EM CASCATA DUPLAMENTE ALIMENTADA. Fredemar Rüncos

DESENVOLVIMENTO DE SISTEMA DE CONTROLE PARA ELETRÔNICA EMBARCADA EM EQUIPAMENTOS AGRÍCOLAS 1. Vítor Henrique Amarante Soares 2.

5/10/10. Implementação. Building web Apps. Server vs. client side. How to create dynamic contents?" Client side" Server side"

UFG - Instituto de Informática

GESTÃO DE RECURSOS NATURAIS. Ano letivo 2011/2012. Exercício: Sistema de apoio à decisão para eucalipto (Aplicação de Programação Linear)

A Tool to Evaluate Stuck-Open Faults in CMOS Logic Gates

STUDY ABOUT INFLUENCE ON ACADEMIC PERFORMANCE OF STUDENTS USERS OF SOCIAL NETWORKS

Soluções para SMART CITIES. Nuno Alves

Uma arquitetura de software para mediação flexível de Web services

LEIA ISTO PRIMEIRO. IBM Tivoli Configuration Manager, Versão 4.2.1

SAP BASIS O curso completo abrange dois módulos:

Padrões de Interação com o Usuário

Web Technologies. Tópicos da apresentação

PERFIL DE ESCOLAS DO ENSINO FUNDAMENTAL DO CICLO II A RESPEITO DO USO DE RECURSOS DE INFORMÁTICA PELO PROFESSOR PARA AUXÍLIO DA APRENDIZAGEM DO ALUNO

CÓDIGO DA VAGA: TP05 QUESTÕES DE MÚLTIPLAS ESCOLHAS

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB

Análise Probabilística de Semântica Latente aplicada a sistemas de recomendação

Lógica de Negócio e Acesso a dados. Parte 2.2

SISTEMA DISTRIBUÍDO DE MONITORAMENTO/DETERMINAÇÃO DE SERVIÇOS E RECURSOS DIPONÍVEIS DE UM AMBIENTE DE GRID COMPUTACIONAL

Software product lines. Paulo Borba Informatics Center Federal University of Pernambuco

Objetivos & Motivação

Ficha da Unidade Curricular

SISTEMAS DISTRIBUIDOS

Introdução à Linguagem Java

Java Web/UI. Maven3 Redmine CVS. Áreas de conhecimento: Web o Aplicativos Web o Portal de conteúdo o REST Services Web Site Performance

Ficha da Unidade Curricular

Dissertação realizada sob a orientação de. Carlos Manuel Pereira Cabrita

HIBERNATE EM APLICAÇÃO JAVA WEB

Deployment of Distributed Component-based Applications on Cloud Infrastructures

Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres

FBV - Linguagem de Programação II. Um pouco sobre Java

Sistemas Informáticos Cisco Certified Networking Academy (v5.0)

CMDB no ITIL v3. Miguel Mira da Silva

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Empresas de Gestão Conservadora: Potencial da Previsão de Demanda e Simulação Computacional

<Insert Picture Here> A sua Organização já está preparada para o novo Código dos Contratos Públicos (CCP, DL 18/2008)?

Using Big Data to build decision support tools in

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS

ANALYSIS OF THE APPLICATION OF THE LADM IN THE BRAZILIAN URBAN CADASTRE: A CASE STUDY FOR THE CITY OF ARAPIRACA BRAZIL

Um método para o planejamento operacional da distribuição: aplicação para casos com abastecimento de granéis líquidos

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Servlets e Applets, funcionamento e comparativo.

Sistemas Distribuídos

NOME DA APRESENTAÇÃO

Interoperability through Web Services: Evaluating OGC Standards in Client Development for Spatial Data Infrastructures

Argo Navis J931 - Padrões de Design J2EE. Versão 2.0 (setembro de 2003) Objetivos

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

ANÁLISE DE DESEMPENHO ENTRE SOFTWARES VIRTUALIZADORES

Dealing with Device Data Overflow in the Cloud

Desenvolvimento Web TCC Turma A-1

Curriculum Vitae de Ricardo Morla

Estratégias de TI para a integração eletrônica da informação - um estudo sobre o estado da arte e da prática

Agregando Frameworks de Infra-Estrutura em uma Arquitetura Baseada em Componentes: Um Estudo de Caso no Ambiente AulaNet

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Cowboys, Ankle Sprains, and Keepers of Quality: How Is Video Game Development Different from Software Development?

Requisitos de Ferramentas de Gestão de Projetos de Desenvolvimento de Software

Como sobreviver com Java 2? Saulo Arruda

Universidade Federal de Pernambuco Centro de Informática Graduação em Ciência da Computação. Proposta Trabalho de Graduação

Licenciamento BMC Remedy. Esclarecimento sobre licenciamento dos produtos. 6/5/2010

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Aula 01 Introdução ao Gerenciamento de Redes

OVERVIEW DO EAMS. Enterprise Architecture Management System 2.0

Oracle WebLogic Server 11g: Conceitos Básicos de Administração

Análise Temporal dos Preços da Commodity Cobre Usando o Modelo Box & Jenkins

Test-Module: uma ferramenta para gerenciamento de testes de software integrada ao FireScrum

Padrões de Projeto WEB e o MVC

BUSINESS INTELLIGENCE GERENCIANDO OS NÍVEIS DE SERVIÇO DE LOGÍSTICA HOSPITALAR NO HU

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25

COMPARAÇÃO ENTRE OS FRAMEWORKS DE DESENVOLVIMENTO DE SOFTWARE ENTITY FRAMEWORK E NHIBERNATE : ESTUDO DE CASO EM UM SISTEMA

O digital e as novas formas de, e para, aprender

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Geração automática de suíte de teste para GUI a partir de Rede de Petri

Contact Contato. FLV Representações Ltda. Av. Ibirapuera, 2064 São Paulo - SP Telefone: Brasil fabio.viviani@flv-rep.

Transcrição:

Licenciatura em Engenharia Informática Degree in Computer Science Engineering Análise de desempenho de sistemas distribuídos de grande porte na plataforma Java Performance analysis of large distributed systems in Java platform Helder Lima da Silva

Resumo A plataforma Java vem sendo crescentemente adotada no desenvolvimento de sistemas distribuídos de alta demanda de usuários. Este tipo de aplicação é mais complexa pois necessita além de atender os requisitos funcionais cumprir os parâmetros de desempenho pré-estabelecidos. Este trabalho realiza um estudo da máquina virtual Java (JVM) abordando seus aspectos internos e explorando as políticas de coleta de lixo existentes na literatura e as usadas pela JVM. Apresenta também um conjunto de ferramentas que auxiliam a tarefa de otimizar aplicações e outras que auxiliam no monitoramento das aplicações em produção. Diante da grande quantidade de tecnologias que se apresentam para solucionar problemas inerentes às camadas de aplicações, torna-se difícil realizar a escolha daquela que possui o melhor tempo de resposta e o menor uso de memória. O trabalho apresenta um breve referencial teórico de cada uma das possíveis tecnologias e realiza testes comparativos através de uma análise estatística da variável aleatória do tempo de resposta e das atividades de coleta de lixo. Os resultados obtidos fornecem um subsídio para engenheiros e gerentes decidirem quais as tecnologias a utilizarem em aplicações de grande porte através do conhecimento de como elas se comportam nestes ambientes e a quantidade de recursos que consomem. A relação entre produtividade da tecnologia e seu desempenho também é considerada como um fator importante nesta escolha. Palavras-chave: Desempenho, Máquina Virtual, Coleta de Lixo, WEB, Negócio, Persistência, Struts, JSF, Hibernate, Comparação de Desempenho

Abstract The Java Platform is increasingly being adopted in the development of distributed systems with high user demand. This kind of application is more complex because it needs beyond attending the functional requirements, to fulfill the pre-established performance parameters. This work makes a study on the Java Virtual Machine (JVM), approaching its internal aspects and exploring the garbage collection strategies existing in the literature and used by the JVM. It also presents a set of tools that helps in the job of applications in the production environment. Due to the great amount of technologies that aim to solve problems which are common to the application layer, it becomes difficult to choose the one with best time response and less memory usage. This work presents a brief introduction to each one of the possible technologies and realize comparative tests through a statistical analysis of the response time and garbage collection activity random variables. The obtained results supply engineers and managers with a subside to decide which technologies to use in large applications through the knowledge of how they behave in their environments and the amount of resources that they consume. The relation between the productivity of the technology and its performance is also considered as an important factor in this choice. Keywords: Performance, Virtual Machine, Garbage Collection, WEB, Persistence, Struts, JSF, Hibernate, Performance Comparison

Index 1. Introduction 1 1.1 Impact of the Execution Environment. 3 1.2 Support Tools 3 1.3 Impact of application design 4 1.4 Organization of the text... 4 List of Symbols and Abbreviations.. 1 2. Java Virtual Machine and the garbage collection 5 2.1 Java Virtual Machine (JVM) 5 2.2 Java Virtual Machine in details. 7 2.2.1 The area of dynamic memory allocation (Heap). 9 2.2.2 Representation of objects...... 11 2.3 Garbage collection... 11 2.3.1 Garbage Collection Algorithms... 11 2.3.2 Garbage collection and performance... 16 2.4 Memory Leak... 19 3. Analysis tools and applications monitoring 21 3.1 JVMTI (Java Virtual Machine Tools Interface)... 21 3.2 Profiler. 22 3.2.1 Use of Profilers in Java. 23 3.3 Management and applications monitoring.. 26

4. Solutions and layers in the application context 29 4.1 Object-relational mapping layer. 30 4.1.1 JDBC.. 31 4.1.2 Data Access Object 32 4.1.3 Hibernate... 33 4.1.4 Application for performance comparison... 34 4.2 Visualization layer. 35 4.2.1 Struts... 37 4.2.2 JavaServer Faces JSF... 37 4.2.3 Application for performance comparison.. 41 4.3 Business layer.. 42 4.3.1 Enterprise JavaBeans.. 43 4.3.2 Web Services. 44 4.3.3 Description of the calls with EJB and Web services 44 4.3.4 Application for performance comparison 47 5. Testing and performance analysis 50 5.1 Infrastructure for the testing. 51 5.2 Results of experiments.. 54 5.2.1 Results of the persistence layer.. 54 5.2.2 Results of the visualization layer. 58 5.2.3 Results of the business layer.. 62 6. Conclusions 67 6.1 Comparative tests 68 6.2 Future works... 68 Bibliographic references 69

A Test Application - Layer Mapping 72 A.1 JDBC Test.. 72 A.2 DAO 73 A.3 Hibernate.. 75 A.4 Class.. 75 A.5 Configuration.... 75 B Test Application - Layer Visualization 76 B.1 JSP Test.. 76 B.2 Struts 76 B.2.1 Action... 76 B.2.2 JSP. 77 B.3 JSF.. 77 B.3.1 Managed Bean.. 77 B.3.2 Visualization 77 C Application Testing - Business Layer 79 C.1 JavaBean.... 79 C.2 EJB. 79 C.2.1 Configuration.... 80 C.3 Web Service 81