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

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

Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior.

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior."— Transcrição da apresentação:

1 Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior Disponível em www.pasteurjr.blogspot.com

2 EJB O que é um EJB? Entertprise Java Bean - componente server-side que encapsula a lógica de negócio de uma aplicação.

3 EJB O que é um EJB?

4 Java na WEB: Servlet Revisão: Camadas de uma aplicação Java EE Paginas WEB -Servlets -JavaServer Pages (JSP) -Beans -Servlets -JavaServer Pages (JSP) -Beans Máquina do ClienteServidor web Banco de Dados Servidor de Banco de Dados

5 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 [ [

6 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).

7 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.

8 EJB

9 Qual o benefício do uso de EJBs ? EJBs simplificam o desenvolvimento de aplicações grandes e distribuídas. COMO?

10 EJB Como 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.

11 EJB Quando 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.

12 EJB Tipos 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.

13 EJB 1)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

14 EJB a) 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;

15 EJB 1)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

16 EJB b) 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;

17 EJB 1)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

18 EJB c) 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;

19 EJB Tipos 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).

20 EJB Interface 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); }

21 EJB A 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 + "!"; }

22 EJB O 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(); }

23 EJB Obs: -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

24 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


Carregar ppt "Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior."

Apresentações semelhantes


Anúncios Google