performance em web services em plataforma java flávia falcão - [email protected]

26
Performance em Web Services em Plataforma Java Flávia Falcão - [email protected]

Upload: tomas-mendosa

Post on 07-Apr-2016

219 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Performance em Web Services em Plataforma Java

Flávia Falcão - [email protected]

Page 2: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

AgendaAgenda Contexto Proposta Conceitos Estudos de Casos Trabalhos Futuros Conclusão Referências

Page 3: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Contexto Web está em todo lugar :

E-marketplaces E-comerce B2B automatizado Interegracao de processos de negocio na web Compartilahamento de recursos , computacao distribuida

Necessidade de plataforma que permita interações aplicação-a-aplicação sistemática na web :

Tecnologia web servicesweb services

Problema : A performance dessas aplicaçõesProblema : A performance dessas aplicações

Page 4: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Proposta Identificar os problemas que afetam a

performance de aplicacões web services Fornecer boas práticas e tecnicas que

podem ser aplicadas para melhoria do desempenho destas aplicações

Page 5: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Conceitos

Page 6: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Web Services -Definição Um web services é qualquer serviço

disponível na Internet que utilize um sistema de mensagens XML padronizado e não seja especifico de nenhum sistema operacional ou linguagem de programação.

(Ethan Cerami – web services – Essentials)

Page 7: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Web Services Principais Componentes:

Descrição Serviço de Registros Mensagens SOAP Transporte sobre HTTP

Page 8: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Problemas de Performance em web services

Page 9: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

O Maior Problema : XML XML é o coração da tecnologia web

services. Problemas :

Tamanho dos arquivos xml Marshalling e un-marshaling Tipo de dado Transmissao de mensagens SOAP Validação

Page 10: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Problemas comuns Fatores comuns a outras

aplicações web : Rede Garbage Collection Configurações da jvm Lógica da aplicacao Arquitetura do projeto

Page 11: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Boas Práticas e Técnicas para otimizar a performance em web services

Page 12: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Boas Praticas & Tecnicas Reduzir o tamanho do XML

Uso de zip/gzip Softwares proprios de compressao

Xml. Algortmos de compressão Uso de compressão binaria como

WBXML e o ASN.1

Page 13: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Boas Praticas & Tecnicas Web Services Caching Utilizar Parser XML mais eficiente Não validar o arquivo xml Uso de tipos simples em

mensagens XML

Page 14: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Estudo de Caso: Garbage Collection

Page 15: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Algoritmos de Garbage Collection Analisar os principais algoritmos

geracionais do garbage Collection da jvm 1.4.2 Copyng GC Mark sweep GC Parallel GC Concurrent mark sweep GC Incremental GC

Mecanismos disponiveis para otimizar seu desempenho Analise do comportamento da Heap da jvm

Page 16: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Testes Ambiente

Sistema operacional Linux Jsdk 1.4.2 J2eesdk 1.3 Jmeter Apache Web Application Stress Tools Aplicação de referência : PetStore 1.3

Page 17: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Resultados A diferença de desempenho entre a maioria

dos algoritmos geracionais foi pequena Porém o Algoritmo concurrent mark sweep

apresentou uma melhora muito grande chegando a picos de 100%. Isso se deveu ao pequenho tamanho da

heap,reduzindo a chamada ao garbage Algoritmo trabalhar bem em espaços

maduros

Page 18: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Estudo de Caso: Parser XML

Page 19: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Parsers XML Os parsers XML são responsaveis pelo

processamento de arquivos XML. A simples mudança pode prover

significativos ganhos de desempenho,considerendo que web servces sao baseados em XML.

Analise de varios fornecedores Parsers que implementam as APIs JAXP

1.0

Page 20: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Testes dos Parses XML Ambiente :

Sistema Operacional Solaris Jmeter Apache JVM 1.4 da sun Java Application server 7 Aplicacao web services exemplo

Parsers Utilizados , implementam a API JAXP 1.0: Xerces versao 1.4.4 Crinsom versao 1.1 Picollo versao 1.04 Gnu JAXP XP versao 1.0

Page 21: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Resultados Melhora de desempenho em torno

de 5% com o parser xml Picollo versao 1.04

Observação :A Aplicação de teste foi muito simples

Page 22: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Trabalhos Futuros Identificar os pontos exatos de

deficiência em parsers : Construção de benchmark

Utilizar modelos emergentes de XML binário : infoset

Otimização de código java e xml Combinar técnicas

Page 23: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Conclusão Metodologias em testes de cargas Analise de Resultados e busca das

melhores alternativas Dois artigos submetidos ao

JavaOne 2005 ( em processo de submissão)

Performance = profile + profile ......

Page 24: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Referencias (1) Wilson ,Steve e Kesselman ,Jeff (2001) “Java TM Platform

performance : Strategies and Tactics” .URL : http://java.sun.com/docs/books/performance/

Sun Microsystems(2003) .“Tuning Garbage Collection with the 1.4.2 Java TM Virtual Machine”.URL: http://java.sun.com/docs/hotspot/gc1.4.2/

Sun Microsystems(2002). “The Java HotSpot TM Virtual Machine ,v1.4.2, A technical white paper”

Sandoz, Paul; Pericas-Geetsen, Santiago; Kawaguchi, Kahuske; Hadley, Marc; Pelegri-Llopart, Eduardo (2003). “Fast Web Services” URL: http://java.sun.com/developer/technicalArticles/WebServices/fastWS ´

Page 25: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br
Page 26: Performance em Web Services em Plataforma Java Flávia Falcão - fmcf2@cin.ufpe.br

Performance em Web Services em Plataforma Java

Perguntas ???Perguntas ???