A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aspectos de performance EJB Performance tuning Ricardo Cavalcanti Jobson Ronan

Apresentações semelhantes


Apresentação em tema: "Aspectos de performance EJB Performance tuning Ricardo Cavalcanti Jobson Ronan"— Transcrição da apresentação:

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


Carregar ppt "Aspectos de performance EJB Performance tuning Ricardo Cavalcanti Jobson Ronan"

Apresentações semelhantes


Anúncios Google