Enterprise JavaBeans Érika Ishy
Roteiro Visão Geral JavaBeans Enterprise JavaBeans Infra-Estrutura EJB Servidor J2EE Interfaces de um EJB Tipos de Visão Tipos de EJB
Visão Geral O que é JavaBeans Modelo de componentes que privilegia o suporte a ferramentas gráficas para a composição de aplicações – controles visuais (botão) Define a arquitetura básica do componente, de suas interfaces e de como ele interage com outros componentes Enterprise JavaBeans (EJB) Extensão de JavaBeans para ambientes distribuídos Ambiente Java robusto  Aplicações com arquitetura multicamadas
Visão Geral Modelo de componentes para grandes aplicações de negócio Interfaces padronizadas – Home/Remote Sistema de execução de componentes para arquiteturas multicamadas – EJB Container Objetivos: Reutilização de software Portabilidade de componentes Execução de transações Suporte para controle e segurança
Visão Geral Simplifica as responsabilidades do desenvolvedor sobre a computação distribuída Focalizar nas principais funcionalidades que a aplicação de negócio requer
Visão Geral Sem componentes: aplicações acessando diretamento o bd [Prado, 2003b]
Visão Geral Com componentes: aplicações acessam as regras de negócio dos componentes. Estes, acessam o  bd [Prado, 2003b]
Visão Geral Separação entre aplicação e componente => código mais simples e flexível Melhora a segurança e a confiabilidade Facilita a manutenção Reutilização de código => diversas aplicações clientes usando o mesmo componente simultaneamente
Infra-Estrutura EJB [Prado, 2003a]
Infra-Estrutura EJB [Prado, 2003a]
Servidor J2EE Ambiente para a execução  aplicações EJB. Gerencia e coordena alocação de recursos. Encapsula os beans EJB. Gerenciamento de transações, segurança, comunicação, conexões bd... Componentes focados na lógica do problema. Classe do bean implementa os métodos de negócio [Prado, 2003a]
Servidor J2EE [Prado, 2003b]
Interfaces de um EJB [Maciel, 2002]
Interfaces de um EJB Interface Home Serviços de criação e remoção de instâncias do componente create() - ejbCreate() remove() - ejbRemove() Métodos de busca: findByPrimaryKey() métodos do ciclo de vida
Interfaces de um EJB Interface Remota Visão do cliente para uma instância de um ejb – regras de negócio métodos da interface remota implementação na classe do ejb métodos de negócio
Tipos de Visão [Prado, 2003b]
Tipos de Visão Visão Remota Sistema distribuído Transparência na localização Limitações de performance - rede
Tipos de Visão
Tipos de Visão
Tipos de Visão Visão Local Servidor    Máquina Cliente  Acesso local e direto aos métodos da interface do componente Ganho de performance -  overhead Perda da transparência na localização Clientes na mesma JVM que os EJB’s
Tipos de EJB [Prado, 2003b]
Tipos de EJB “ Quebra” o session bean e seus dados são perdidos. Entity bean é persistente e representa o dado no bd (recuperado).
Tipos de  EJB  - Session Bean Session Bean Gerenciado pelo  container Não pode ser  recuperado Stateless Stateful
Tipos de  EJB  - Session Bean Stateful Mantém estado ao longo de todo a conversação com um cliente Dedicado a um único cliente, não podendo ser acessado por outros clientes – compra com cartão de crédito tempo de vida do stateful tempo de vida do cliente
Tipos de  EJB  - Session Bean Stateful [Sun, 2002b] Invocados pelo EJB Container Métodos de negócio podem ser invocados Caso precise liberar recursos
Tipos de  EJB  - Session Bean Stateless Não possui estado conversacional Não é dedicado a um único cliente Duração de um intervalo de execução de um serviço invocado pelo cliente – caixa: aplicar desconto, calcular frete Ciclo de vida muito simples
Tipos de  EJB  - Session Bean Stateless [Sun, 2002b] EJB Container responsável pela criação/remoção sem que seja indicado pelo cliente Create() e Remove() somente pelo EJB Container
Tipos de EJB - Entity Bean Entity Bean Opera como objeto de negócio representando o  dado no bd ou em qualquer outra  fonte de dados Dado representado pelo bean pode mudar – sincronização  bean/bd – responsabilidade do  container/bean
Tipos de EJB - Entity Bean [Prado, 2003b]
Tipos de EJB - Entity Bean Persistência Gerenciada pelo Container Simplificação do desenvolvimento de entity beans Gerencia e executa todas as operações de recuperação e armazenamento de dados
Tipos de EJB - Entity Bean Persistência Gerenciada pelo Bean Desenvolvedor é responsável pela implementação das operações de persistência Operações implementadas diretamente nos métodos da classe do bean EJB - códigos SQL e JDBC
Tipos de EJB - Entity Bean [Sun, 2002b] EJB Container cria uma instância e associa um contexto Pool de instâncias – aguarda o cliente Métodos de negócio podem ser invocados Caso precise liberar recursos Invocado pelo cliente
Referências [HEINEMAN, 2001] HEINEMAN, G., T., COUNCIL, W., T.  Component-based software engineering: putting the pieces together . Addison-Wesley,  2001. [MACIEL, 2002] MACIEL, F. R.  Modelagem do catálogo e autenticação do direto utilizando j2ee e jaas . Porto Alegre, RS, 2002. 72 f. Monografia (Bacharelado em Ciência da Computação) – Instituto de Informática, Universidade Federal do Rio Grande do Sul. Disponível em: <http://www.inf.ufrgs.br/procpar/direto/trabalhos/monografia.pdf> Acesso em: 24 fev. 2003.  [THOMAS, 1998] THOMAS, A.  Enterprise javabeans technology : server component model for the Java TM  plataform.  Patricia Seybold Group, dez. 1998. Relatório técnico. Disponível em: <http://www.ejbean.com/documents/downloads/white_paper.pdf> Acesso em: 16 nov. 2002.
Referências [PRADO, 2003a] PRADO, A. F.  Enterprise javabeans technology . Curso de Pós-Graduação em Ciência da Computação. Disponível em: <http://www.recope.dc.ufscar.br/engenhariadesoftware/principal/index.htm> Acesso em: 5 fev. 2003. [PRADO, 2003b]  Prado, A. F.  Tecnologias para DBC . Disponível em: <http://www.cos.ufrj.br/~wdbc/2002/download/tecnologias.pdf>  Acesso em: 04 jun. 2003. [SUN, 2002c] SUN MICROSYSTEMS.  Designing enterprise applications with the j2ee platform, second edition .  Disponível em: <http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/index.html> Acesso em: 5 mar. 2003.
Referências [SUN, 2002a] SUN MICROSYSTEMS.  Developing enterprise applications using the j2ee TM  platform .  Disponível em: <http://developer.java.sun.com/developer/onlineTraining/J2EE/Intro2/j2ee.html> Acessado em: 4 fev. 2003. [SUN, 2002b] SUN MICROSYSTEMS.  The j2ee tutorial . Disponível em: <http://java.sun.com/j2ee/1.3/download.html#tutorial> Acesso em: 4 fev. 2003.

Enterprise JavaBeans

  • 1.
  • 2.
    Roteiro Visão GeralJavaBeans Enterprise JavaBeans Infra-Estrutura EJB Servidor J2EE Interfaces de um EJB Tipos de Visão Tipos de EJB
  • 3.
    Visão Geral Oque é JavaBeans Modelo de componentes que privilegia o suporte a ferramentas gráficas para a composição de aplicações – controles visuais (botão) Define a arquitetura básica do componente, de suas interfaces e de como ele interage com outros componentes Enterprise JavaBeans (EJB) Extensão de JavaBeans para ambientes distribuídos Ambiente Java robusto Aplicações com arquitetura multicamadas
  • 4.
    Visão Geral Modelode componentes para grandes aplicações de negócio Interfaces padronizadas – Home/Remote Sistema de execução de componentes para arquiteturas multicamadas – EJB Container Objetivos: Reutilização de software Portabilidade de componentes Execução de transações Suporte para controle e segurança
  • 5.
    Visão Geral Simplificaas responsabilidades do desenvolvedor sobre a computação distribuída Focalizar nas principais funcionalidades que a aplicação de negócio requer
  • 6.
    Visão Geral Semcomponentes: aplicações acessando diretamento o bd [Prado, 2003b]
  • 7.
    Visão Geral Comcomponentes: aplicações acessam as regras de negócio dos componentes. Estes, acessam o bd [Prado, 2003b]
  • 8.
    Visão Geral Separaçãoentre aplicação e componente => código mais simples e flexível Melhora a segurança e a confiabilidade Facilita a manutenção Reutilização de código => diversas aplicações clientes usando o mesmo componente simultaneamente
  • 9.
  • 10.
  • 11.
    Servidor J2EE Ambientepara a execução aplicações EJB. Gerencia e coordena alocação de recursos. Encapsula os beans EJB. Gerenciamento de transações, segurança, comunicação, conexões bd... Componentes focados na lógica do problema. Classe do bean implementa os métodos de negócio [Prado, 2003a]
  • 12.
  • 13.
    Interfaces de umEJB [Maciel, 2002]
  • 14.
    Interfaces de umEJB Interface Home Serviços de criação e remoção de instâncias do componente create() - ejbCreate() remove() - ejbRemove() Métodos de busca: findByPrimaryKey() métodos do ciclo de vida
  • 15.
    Interfaces de umEJB Interface Remota Visão do cliente para uma instância de um ejb – regras de negócio métodos da interface remota implementação na classe do ejb métodos de negócio
  • 16.
    Tipos de Visão[Prado, 2003b]
  • 17.
    Tipos de VisãoVisão Remota Sistema distribuído Transparência na localização Limitações de performance - rede
  • 18.
  • 19.
  • 20.
    Tipos de VisãoVisão Local Servidor  Máquina Cliente Acesso local e direto aos métodos da interface do componente Ganho de performance - overhead Perda da transparência na localização Clientes na mesma JVM que os EJB’s
  • 21.
    Tipos de EJB[Prado, 2003b]
  • 22.
    Tipos de EJB“ Quebra” o session bean e seus dados são perdidos. Entity bean é persistente e representa o dado no bd (recuperado).
  • 23.
    Tipos de EJB - Session Bean Session Bean Gerenciado pelo container Não pode ser recuperado Stateless Stateful
  • 24.
    Tipos de EJB - Session Bean Stateful Mantém estado ao longo de todo a conversação com um cliente Dedicado a um único cliente, não podendo ser acessado por outros clientes – compra com cartão de crédito tempo de vida do stateful tempo de vida do cliente
  • 25.
    Tipos de EJB - Session Bean Stateful [Sun, 2002b] Invocados pelo EJB Container Métodos de negócio podem ser invocados Caso precise liberar recursos
  • 26.
    Tipos de EJB - Session Bean Stateless Não possui estado conversacional Não é dedicado a um único cliente Duração de um intervalo de execução de um serviço invocado pelo cliente – caixa: aplicar desconto, calcular frete Ciclo de vida muito simples
  • 27.
    Tipos de EJB - Session Bean Stateless [Sun, 2002b] EJB Container responsável pela criação/remoção sem que seja indicado pelo cliente Create() e Remove() somente pelo EJB Container
  • 28.
    Tipos de EJB- Entity Bean Entity Bean Opera como objeto de negócio representando o dado no bd ou em qualquer outra fonte de dados Dado representado pelo bean pode mudar – sincronização bean/bd – responsabilidade do container/bean
  • 29.
    Tipos de EJB- Entity Bean [Prado, 2003b]
  • 30.
    Tipos de EJB- Entity Bean Persistência Gerenciada pelo Container Simplificação do desenvolvimento de entity beans Gerencia e executa todas as operações de recuperação e armazenamento de dados
  • 31.
    Tipos de EJB- Entity Bean Persistência Gerenciada pelo Bean Desenvolvedor é responsável pela implementação das operações de persistência Operações implementadas diretamente nos métodos da classe do bean EJB - códigos SQL e JDBC
  • 32.
    Tipos de EJB- Entity Bean [Sun, 2002b] EJB Container cria uma instância e associa um contexto Pool de instâncias – aguarda o cliente Métodos de negócio podem ser invocados Caso precise liberar recursos Invocado pelo cliente
  • 33.
    Referências [HEINEMAN, 2001]HEINEMAN, G., T., COUNCIL, W., T. Component-based software engineering: putting the pieces together . Addison-Wesley, 2001. [MACIEL, 2002] MACIEL, F. R. Modelagem do catálogo e autenticação do direto utilizando j2ee e jaas . Porto Alegre, RS, 2002. 72 f. Monografia (Bacharelado em Ciência da Computação) – Instituto de Informática, Universidade Federal do Rio Grande do Sul. Disponível em: <http://www.inf.ufrgs.br/procpar/direto/trabalhos/monografia.pdf> Acesso em: 24 fev. 2003. [THOMAS, 1998] THOMAS, A. Enterprise javabeans technology : server component model for the Java TM plataform. Patricia Seybold Group, dez. 1998. Relatório técnico. Disponível em: <http://www.ejbean.com/documents/downloads/white_paper.pdf> Acesso em: 16 nov. 2002.
  • 34.
    Referências [PRADO, 2003a]PRADO, A. F. Enterprise javabeans technology . Curso de Pós-Graduação em Ciência da Computação. Disponível em: <http://www.recope.dc.ufscar.br/engenhariadesoftware/principal/index.htm> Acesso em: 5 fev. 2003. [PRADO, 2003b] Prado, A. F. Tecnologias para DBC . Disponível em: <http://www.cos.ufrj.br/~wdbc/2002/download/tecnologias.pdf> Acesso em: 04 jun. 2003. [SUN, 2002c] SUN MICROSYSTEMS. Designing enterprise applications with the j2ee platform, second edition . Disponível em: <http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/index.html> Acesso em: 5 mar. 2003.
  • 35.
    Referências [SUN, 2002a]SUN MICROSYSTEMS. Developing enterprise applications using the j2ee TM platform . Disponível em: <http://developer.java.sun.com/developer/onlineTraining/J2EE/Intro2/j2ee.html> Acessado em: 4 fev. 2003. [SUN, 2002b] SUN MICROSYSTEMS. The j2ee tutorial . Disponível em: <http://java.sun.com/j2ee/1.3/download.html#tutorial> Acesso em: 4 fev. 2003.