Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEduardo Madureira Bonilha Alterado mais de 8 anos atrás
1
Aspectos de performance EJB Performance tuning Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br
2
2 Pro-atividade As facilidades de um middleware implícito não são gratuitas Serviços de transações, segurança... têm um custo de performance associado Aplicações altamente otimizadas exige pro-atividade
3
3 REDE Quanto custa um EJB? Cliente EJB Objeto EJBHome EJBObject Transaction Service Security Service Session Manager Persistence Service Bean 1. getEJBHomeReference 2. Return EJBHome JNDI Look up 5.return EJBObject 3.create() 6. metodoNegocio() 10. Return 4.create EJBObject 7. Chama serviços 8. Delega metodoNegocio() 9.return Container/Server Naming service
4
4 EJB ou não EJB? Eis a questão! A primeira decisão a ser tomada. Sua aplicação usará vários benefícios da arquitetura? Só precisa de Controle Transacional? Então só use JTA Só precisa de Persistêcia? Então use Hibernate!
5
5 Remote e Local Se seu EJB só é acessado localmente, não use interface Remote Interfaces remotas obrigarão a chamada através de RMI/IIOP EJBs locais são objetos java comuns Passagem de parâmetros por referência
6
6 Session Facade Encapsule Entity beans com Session Facade rede Servlet ClienteEntityBean PedidoEntityBean ContaEntityBean Chamada remota rede GerenciadorPedido (stateless bean) Session Facade ClienteEntityBean PedidoEntityBean ContaEntityBean Chamada Local Chamada remota Servlet
7
7 Transfer Objects Encapsule atributos num objeto para diminuir o número de chamadas remoteObject.getName(); remoteObject.getCity(); remoteObject.getState(); remoteObject.getZipCode(); PersonInfo person = new PersonInfo(); person.setName(“Ricardo"); person.setCity(“Bremen"); person.setState(“NS"); person.setZipCode("78749"); return person; PersonInfo p = remoteObject.getPersonInfo();
8
8 Evite overhead na transação Utilize atributos adequados para cada método Lembre-se que são 6 atributos diferentes Métodos podem ser incluídos na transação desnecessariamente
9
9 Clustering Utilize clusterig para obter escalablidade Transparência para os clientes Os servidores se comunicam e balanceiam a carga
10
10 Otimize o Thread Count Alguns Servidores de aplicação permitem ajustar o número de threads simultâneos Se o número estiver abaixo da capacidade as requisições entrarão numa fila CUIDADO! Se não tiver certeza da capacidade do seu servidor, deixe valor padrão!
11
11 HTTPSession x Statefull SessionBean Statefull session beans porveêm: Controle transacional, segurança, RMI... Pode ser acessado por clientes Web ou não Mais custoso para atender ao request HTTPSession Simplicidade. Mais ágil para manter o estado do cliente. Não suporta os serviços do EJB Apenas para manter o estado do cliente, HTTPSession têm melhor performance
12
12 Escolha seu Servidor Há mais de 30 fornecedores de servidor Observe suas necessidades de Clustering Load balancing Instance pool and instance caching Lazy loading Different locking strategies Connection pooling http://java.sun.com/j2ee/ecperf/ especificação de benchmark da SUN http://java.sun.com/j2ee/ecperf/ www.theserverside.com www.theserverside.com
13
13 Outras dicas Técnicas de persistência como Lazy Loading podem ser usadas com Entiy beans Técnicas de performance de JDBC valem para Entity beans BMP Técnicas de performance de JMS valem para Message-Driven Beans
14
14 Referências PreciseJava.com http://www.precisejava.com/javaper f/j2ee/EJB.htm http://www.precisejava.com/javaper f/j2ee/EJB.htm
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.