Performance em Web Services
em Plataforma Java
Flávia Falcão - [email protected]
Agenda

Contexto
Proposta
Conceitos
Estudos de Casos
Trabalhos Futuros
Conclusão

Referências





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 services
Problema : A performance dessas aplicações
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
Conceitos
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)
Web Services

Principais Componentes:




Descrição
Serviço de Registros
Mensagens SOAP
Transporte sobre HTTP
Problemas de Performance em
web services
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
Problemas comuns

Fatores comuns a outras aplicações web
:





Rede
Garbage Collection
Configurações da jvm
Lógica da aplicacao
Arquitetura do projeto
Boas Práticas e Técnicas para otimizar a
performance em web services
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
Boas Praticas & Tecnicas




Web Services Caching
Utilizar Parser XML mais eficiente
Não validar o arquivo xml
Uso de tipos simples em mensagens
XML
Estudo de Caso: Garbage Collection
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
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
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
Estudo de Caso: Parser XML
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
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
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
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
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 ......
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/fas
tWS ´
Performance em Web Services
em Plataforma Java
Perguntas ???
Download

Performance em web services na plataforma java