![Page 1: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/1.jpg)
Desenvolvimento WEB II
Professora: Kelly de Paula CunhaApresentação baseada no material didático elaborado pelo
Prof. Pasteur Ottoni de Miranda Junior Disponível em www.pasteurjr.blogspot.com
![Page 2: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/2.jpg)
EJB
O que é um EJB?
Entertprise Java Bean - componente server-side que encapsula a lógica de negócio de uma aplicação.
![Page 3: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/3.jpg)
EJB
O que é um EJB?
![Page 4: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/4.jpg)
Java na WEB: Servlet
Revisão: Camadas de uma aplicação Java EE
Paginas WEB-Servlets
-JavaServer Pages (JSP)-Beans
Máquina do Cliente Servidor web
Banco de Dados
Servidor de Banco de Dados
![Page 5: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/5.jpg)
Java na WEB: Servlet
Revisão: Encapsulamento
em programação orientada a objetos significa separar o programa em partes, o mais isoladas possível.
a ideia é tornar o software mais flexível, fácil de modificar e de criar novas implementações[
![Page 6: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/6.jpg)
Java na WEB: Servlet
Revisão: Lógica de negócio
o termo lógica de negócio é a parte de um sistema que se encarrega das tarefas relacionadas com os processos de um negócio.
Ex: entradas de dados, consultas aos dados, geração de relatórios e mais especificamente todo o processamento que se realiza por trás da aplicação visível para o utilizador (Backoffice).
![Page 7: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/7.jpg)
EJB
O que é um EJB?
Entertprise Java Bean - componente server-side que encapsula a lógica de negócio de uma aplicação.
- permite que o desenvolvedor de aplicações foque na lógica de negócio e não se preocupe com transações de baixo nível, detalhes de gerenciamento de status, comunicação remota, concorrência, multithreading, pools de conexão ou outras APIs complexas de baixo nível.
![Page 8: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/8.jpg)
EJB
![Page 9: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/9.jpg)
EJB
Qual o benefício do uso de EJBs ?
EJBs simplificam o desenvolvimento de aplicações grandes e distribuídas.
COMO?
![Page 10: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/10.jpg)
EJBComo os EJBs simplificam o desenvolvimento de aplicações grandes e distribuídas?
fornece serviços de nível de sistema a elas. Com isso o desenvolvedor pode se concentrar em resolver problemas do negócio. O EJB é responsável por serviços como gestão de transações e autorizações de segurança.
São os EJBs que contêm a lógica de negócios, não os clientes. Assim sendo, o desenvolvedor da aplicação cliente pode se concentrar na apresentação, não tendo que implementar regras de negócio ou de acesso bancos de dados. Como resultado, clientes tornam-se mais leves, executáveis em máquinas menos poderosas.
Os EJBs são componentes portáteis, podendo ser reutilizados em outros aplicativos.
![Page 11: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/11.jpg)
EJBQuando usar EJBs?
Quando a aplicação for escalável. Para suportar um crescente número de usuários, pode-se desejar distribuir aplicações por múltiplas máquinas.
Quando transações precisam garantir a integridade dos dados.
Quando a aplicação contém um grande número de clientes, leves e variados.
![Page 12: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/12.jpg)
EJBTipos de EJBs : Session Beans e Message-driven Beans
1) Session Beans : - encapsulam lógica de negócio que pode ser
invocada programaticamente por um cliente de maneira local, remota ou via web service.
- para acessar uma aplicação armazenada em um servidor, o cliente invoca os métodos do session bean.
![Page 13: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/13.jpg)
EJB1) Session Beans : a) Beans com Estado de Sessão (Stateful Session Beans)- Um bean com estado de sessão tem como característica manter o estado conversacional para um cliente específico. - O estado é armazenado nos valores das variáveis de instância do bean e nos interceptadores associados.- Podemos definir um simples bean com estado de sessão usando a anotação @Stateful
![Page 14: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/14.jpg)
EJBa) Beans com Estado de Sessão (Stateful Session Beans)
São apropriados para as seguintes situações:
• O estado do EJB representa a interação entre o EJB e um cliente específico;
• O EJB precisa manter informação do cliente entre invocação de métodos;
![Page 15: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/15.jpg)
EJB1) Session Beans : b) Beans sem Estado de Sessão (Stateless Session Beans) - Um bean sem estado de sessão não contém qualquer estado conversacional para um cliente específico.- Todas as instâncias de um bean sem estado de sessão são equivalentes, portanto o container pode escolher delegar um método invocado por um cliente para qualquer instância. - Podemos definir um simples bean sem estado de sessão utilizando a anotação @Stateless
![Page 16: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/16.jpg)
EJBb) Beans sem Estado de Sessão (Stateless Session Beans) - Proveem melhor escalabilidade para aplicações
que requerem um número maior de clientes, pois aplicações requerem menos EJBs stateless do que stateful para atender ao mesmo número de clientes.
- Para incrementar a performance, deve-se escolher um EJB stateless quando, em uma única invocação de método, o EJB realiza uma tarefa genérica para todos os clientes;
![Page 17: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/17.jpg)
EJB1) Session Beans : c) Beans com Sessão Única (Singleton Session Beans) - São instanciados apenas uma vez por aplicação e
existem durante o ciclo de vida da mesma. - São projetados para circunstâncias nas quais uma única
instância do EJB é compartilhada e concorrentemente acessada por clientes.
- O estado é mantido entre invocações de clientes, mas não quando ocorrem quedas do servidor.
- Oferecem a mesma funcionalidade dos EJBs stateful, só que com a diferença de que são instanciado uma única vez por aplicação
![Page 18: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/18.jpg)
EJBc) Beans com Sessão Única (Singleton Session Beans)
São apropriados nas seguintes circunstancias:
- O estado precisa ser mantido durante a execução da aplicação;
- Um único EJB precisa ser acessado por múltiplos threads concorrentemente;
![Page 19: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/19.jpg)
EJBTipos de EJBs
2) Message-driven Beans: - permitem a aplicações JEE processar mensagens
assincronamente.
- Recebe mensagens provenientes de aplicações, outro EJB ou componentes web.
- São acessados através de um serviço de mensagens (JMS), enviando mensagens ao destinatário (MessageListener).
![Page 20: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/20.jpg)
EJBInterface do EJB
Os métodos que darão acesso às regras de negócio do EJB devem estar contidos dentro de uma interface Java, como no exemplo abaixo:
package com.webage.ejb; import javax.ejb.*; @Remote public interface SimpleBean {
public String sayHello(String name); }
![Page 21: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/21.jpg)
EJBA classe que implementa a interface
Obs: deve estar contida no mesmo pacote que a classe anterior.
package com.webage.ejb; import javax.ejb.*; @Stateless(name="Example", mappedName="ejb/SimpleBeanJNDI") public class SimpleBeanImpl implements SimpleBean {
public String sayHello(String name) {return "Hello " + name + "!"; }
}
![Page 22: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/22.jpg)
EJBO cliente EJB A classe exibida abaixo faz o acesso ao Session Bean criado anteriormente.
package com.webage.client; import javax.naming.*; import com.webage.ejb.SimpleBean; public class TestClient {
public void runTest() throws Exception { InitialContext ctx = new InitialContext(); SimpleBean bean = (SimpleBean)
ctx.lookup("ejb/SimpleBeanJNDI"); String result = bean.sayHello("Billy Bob"); System.out.println(result); } public static void main(String[] args) { try { TestClient cli = new TestClient(); cli.runTest(); } catch (Exception e) { e.printStackTrace(); } }
}
![Page 23: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/23.jpg)
EJBObs:
- O objeto ctx da classe InitialContext é instanciado e é um contexto criado para acesso ao Session Bean através do chamado JNDI (Java Name and Directory Interface) Lookup, que é uma interface para localização da instância do session bean.
- Em seguida, o SessionBean é instanciado, por meio de uma chamada ao método lookup de InitialContexto, passando-se com o parâmetro o caminho JNDI.
- Na linha seguinte, o método correspondente do bean (sayHello) é invocado explicitamente
![Page 24: Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior](https://reader035.vdocuments.com.br/reader035/viewer/2022062502/570638681a28abb823903916/html5/thumbnails/24.jpg)
Referências:
De Miranda Junior, Pasteur Ottoni. Enterprise Java Beans. Disponível em http://www.tesestec.com.br/pasteurjr/ejb.pdf.
Medeiros, Higor. EJB: Introdução ao novo Enterprise JavaBeans 3.2. Disponível em:http://www.devmedia.com.br/ejb-introducao-ao-novo-enterprise-javabeans-3-2/30807