Enterprise Java Bean. Enterprise JavaBeans



Documentos relacionados
Entity Beans. Introdução Entity Beans BMP

J2EE. J2EE - Surgimento

Enterprise JavaBeans. Java Deployment Course. por Jorge H. C. Fernandes DI-UFPE Julho de 1999

UNIDADE IV ENTERPRISE JAVABEANS

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Sistemas Distribuídos

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Enterprise Java Beans

J530 - Enterprise JavaBeans. Introdução a EJB e Stateless. Session Beans. argonavis.com.br. Helder da Rocha (helder@acm.org)

UFG - Instituto de Informática

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Aplicações Distribuídas Cliente/ Servidor Corporativas

Java 2 Enterprise Edition Session Beans

TDC2012. EJB simples e descomplicado, na prática. Slide 1

Stateful Session Beans

Web Technologies. Tópicos da apresentação

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Entity Beans CMP. O que é CMP? Criação de Entity Beans CMP Deployment no JBoss EJB-QL Exemplo Prático

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

Entity Beans. Rodrigo Campiolo João Bosco M. Sobral. Computação Distribuída Sistemas de Informação

J2EE TM Java 2 Plataform, Enterprise Edition

Adriano Reine Bueno Rafael Barros Silva

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

4 - Padrões da Camada de Integração. Introdução

UTILIZAÇÃO DA TECNOLOGIA ENTERPRISE JAVABEANS NO DESENVOLVIMENTO DE APLICAÇÕES DISTRÍBUIDAS

HIBERNATE EM APLICAÇÃO JAVA WEB

UFG - Instituto de Informática

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Padrões de Projeto Implementados em Infraestrturas de Componentes

UFG - Instituto de Informática

INE Sistemas Distribuídos

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

EJB. Session Beans. J2EE (C. Geyer) Introdução a SessionBean 1

Sistemas Distribuídos: Conceitos e Projeto Java RMI

Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

Java 2 Enterprise Edition

Sistemas Distribuídos e Paralelos

3 SCS: Sistema de Componentes de Software

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

EXPLORE - UMA FERRAMENTA DE SOFTWARE PARA EXPERIMENTAÇÃO PRÁTICA COM TRANSAÇÕES DISTRIBUÍDAS EM SISTEMAS BASEADOS EM COMPONENTES

1

4 Um Exemplo de Implementação

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Enterprise Java Beans (III)

Universidade da Beira Interior

Laboratório EJB e J2EE Uma aplicação completa

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

Web Services. (Introdução)

Java 2 Enterprise Edition Uma aplicação J2EE completa

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

UNIVERSIDADE. Sistemas Distribuídos

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Invocação de Métodos Remotos

Aplicação da Arquitetura Multicamadas Utilizando Java. Raquel Schlickmann Orientador: Marcel Hugo

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux

UFG - Instituto de Informática

Session Beans. Modelam o estado não-persistente

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Curso de Aprendizado Industrial Desenvolvedor WEB

Modelos. Comunicação com clientes

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Orientada a serviços: JAX-WS SOAP API

Fernando Kasten Peinado

Session Bean Stateful

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

2 a Lista de Exercícios

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

Java para Desenvolvimento Web

Enterprise Java Beans (I)

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza

Prof. Fellipe Araújo Aleixo

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Java e Banco de Dados: JDBC, Hibernate e JPA

Java 2 Enterprise Edition RMI-IIOP e Enterprise JavaBeans

UEM Universidade Estadual de Maringá Aplicações para WEB utilizando EJB

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

Arquitetura Orientada a Serviço

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

J530 - Enterprise JavaBeans. Entity Beans. com persistência implícita (CMP) argonavis.com.br. Helder da Rocha (helder@acm.org)

Transcrição:

Enterprise Java Bean Introdução Elementos do Modelo Enterprise JavaBeans A especificação do Enterprise JavaBeansTM (EJB) define uma arquitetura para o desenvolvimento de componentes de software distribuídos que executam no lado servidor de uma aplicação corporativa As organizações podem construir seus próprios componentes ou adquiri-los de terceiros Esses componentes server-side, chamados enterprise beans, são objetos armazenados em containers EJB que fornecem serviços remotos para clientes distribuídos através da rede Os containers fornecem uma camada de portabilidade que permite que quaisquer beans operem em quaisquer containers 1

EJBs X Java Beans Um Enterprise JavaBean não é um tipo de JavaBean Ambos fazem parte de uma arquitetura de componentes Implementam um contrato que permite o seu reuso por alguma outra aplicação padrão ou framework A arquitetura de componentes Enterprise JavaBeans define Regras para construir componentes contendo classes,interfaces e arquivos XML de configuração visando a implantação automática em servidores EJB Um EJB consiste de no mínimo três classes e um XML em um JAR A arquitetura de componentes JavaBeans define Regras para construir classes, para permitir um tratamento especial por parte de ferramentas e frameworks Um JavaBean consiste de no mínimo uma classe contendo um método get() e um construtor sem argumentos JavaBeans não são parte da arquitetura J2EE Por que usar EJB Portabilidade (Java) - filosofia write once, run anywhere Separação entre especificação e implementação Interoperabilidade Possibilita aos desenvolvedores concentrarem-se na lógica do negócio Compatibilidade com protocolos CORBA/IIOP 2

Arquitetura Descritor de implantação Descritor de implantação Componentes da Arquitetura Protocolo de Comunicação RMI/IIOP Beans Entity bean Session session Session bean sem estado Session bean com estado Message-driven bean Descritor de implantação Container Servidor EJB 3

Enterprise Beans Componente chave da arquitetura EJB Apresentam as seguintes características: Dependem de um container para fornecer-lhes serviços ao longo de seu ciclo de vida Contêm a lógica do negócio que opera sobre os dados da aplicação Instâncias EJB são criadas e mantidas pelo container Podem ser otimizados no momento da implantação através da edição de um descritor baseado em XML Enterprise Beans Serviços ao nível de sistema, como segurança e gerência de transação, são descritos separadamente do enterprise bean Um cliente nunca acessa um enterprise bean diretamente, o ambiente do container atua como mediador para o acesso Um enterprise bean é projetado para ser portável através de servidores EJB fornecidos por diferentes fabricantes 4

Enterprise Beans Há três tipos de enterprise beans (especificação 2.0 da arquitetura): Entity Beans representam um objeto do negócio que existe em uma estrutura de armazenamento persistente Session Beans realizam uma tarefa para um cliente Com estado Sem estado Message-driven Beans atuam como listeners para a API Java Message Service, processando mensagens de forma assíncrona Containers Um Container EJB é um ambiente de tempo de execução que contém e executa componentes EJB e fornece um conjunto de serviços padrões para esses componentes São receptáculos de software que sabem como se comunicar com beans e gerenciá-los Gerenciam a interação entre o bean e seu servidor Fornecem uma interface uniforme para o bean e para o servidor Criam novas instâncias de beans e gerenciam sua persistência fornecem mapeamento entre o bean e o banco de dados subjacente do container fornecem o código da classe skeleton para as interfaces home e remota 5

Containers Situam-se entre o cliente e o bean e acessam serviços do servidor de aplicação desenvolvedores não se preocupam com a infraestrutura Alguns serviços incluem: Gerenciamento de Persistência Transações Concorrência Gerenciamento de Threads Segurança Containers Muitos fabricantes fornecem containers para EJB e seus produtos. Entre eles estão: IBM WebLogic Sybase Oracle CORBA Object Request Brokers tais como Inprise (Borland) 6

Servidor EJB Um servidor EJB é definido como um Servidor de Aplicação que contêm e executa um ou mais Containers EJB O EJB Server Provider é responsável por fornecer um Servidor EJB Em geral pode-se considerar que o Container e o Servidor EJB são o mesmo CORBA and RMI/IIOP A especificação do EJB define interoperabilidade com CORBA através da compatibilidade com protocolos CORBA Obtida através: do mapeamento de serviços EJB, como JTS e JNDI, para os serviços CORBA correspondentes; e da implementação de RMI no topo do protocolo IIOP CORBA 7

CORBA and RMI/IIOP O uso de CORBA e RMI/IIOP em Enterprise JavaBeans é implementado no Container EJB e é responsabilidade do EJB Container provider O uso de CORBA e RMI/IIOP no Container EJB é escondido do componente EJB O Enterprise Bean Provider pode escrever seu componente EJB e implantá-lo em qualquer container sem se preocupar com o protocolo de comunicação utilizado Classes e Interfaces 8

Classes e Interfaces Interface Home Define os métodos do ciclo de vida (create e remove) que estarão disponíveis para clientes em uma chamada distribuída O container EJB implementa a interface home de cada EJB nele instalado Permite que clientes criem novos objetos EJB: BankBeanRemote mybean = mybeanhome.create(); Permite que clientes removam objetos EJB: mybeanhome.remove(mybean); Fornece meta-dados sobre o Bean 9

Interface Home Definida com uma interface Java Derivada de javax.ejb.ejbhome Herda de java.rmi.remote getejbmetadata() - retorna metadados sobre o bean remove(primarykey) remove o objeto identificado pela chave primária remove(handle) remove o objeto identificado por seu EJBHandle Para localizar a interface Home de um enterprise bean, usa-se JNDI (Java Naming and Directory Interface) Interface Remota Chamada Objeto EJB Define os métodos do negócio específicos do bean e que estarão disponíveis para os clientes em uma chamada distribuída Por exemplo, a interface remota de um bean chamado BankAccountEJB pode ter métodos de negócios chamados debit e credit É compilada pelo compilador ejb para criar stubs e skeletons RMI O objeto EJB é fornecido pelo container e delega a chamada de um método do negócio para a instância correspondente do enterprise Bean 10

Interface Remota Definida como uma interface Java Derivada de javax.ejb.ejbobject Herda de java.rmi.remote getejbhome() - retorna o objeto Home para o bean getprimarykey() retorna a chave primária para o objeto gethandle() retorna um handle para o objeto que pode ser usado para reestabelecer comunicações posteriormente; possivelmente em outro servidor remove() - remove este objeto EJBObject isidentical(ejbobject) - retorna se ambos os objetos são iguais Interfaces x Utilização 11

Interfaces Classe Bean Implementa os método do negócio definidos na Interface Remota Não é derivada das interfaces Remota/Local ou Home Deve ter métodos que correspondam às assinaturas fornecidas pela interface remota/local e por partes da interface Home a conexão entre as chamadas das interfaces Remota/Home e a implementação do Bean é feita pelo compilador EJB, o qual cria o código do skeleton específico para o container Usa-se o descritor de implantação (Deployment Descriptor) para ajudar a gerar o código de ligação (glue code) 12

Classe Bean Os clientes nunca interagem com classes bean diretamente A interação é feita através das interfaces home (create, find, remove) e remota (métodos do negócio) Beans que interagem com outros beans são simplesmente clientes daquele bean Stubs e skeletons são criados a partir das interfaces que ligam o cliente e o código do bean Classe Bean Implementa javax.ejb.[entity Session]Bean Herda de javax.ejb.enterprisebean; herda de java.io.serializable Configura [Entity/Session]Context() Fornece chamadas ao container para encontrar o id do chamador, informações de transações, etc ejbcreate() Chamado pelo container quando o bean é associado a um objeto ejbpostcreate() [ apenas Entity Beans ] Chamado pelo container após tornar persistente o estado do objeto 13

Classe Bean ejbpassivate() Chamado pelo container quando a instância está sendo desassociada com um objeto EJB específico (préserialização) ejbactivate() Chamado pelo container quando a instância é obtida a partir de um pool de instâncias disponíveis e associada a um objeto EJB específico (pós de-serialização) ejbremove() Chamado pelo container de uma instância antes de remover um objeto EJB do sistema Classe Bean ejbload() [ apenas Entity Beans] Chamado pelo container para instruir a instância a sincronizar seu estado com o estado armazenado no banco de dados ejbstore() [ apenas Entity Beans ] Chamado pelo container para instruir a instância a sincronizar o estado armazenado no banco com o seu estado 14

Ciclo de Vida de Beans Criação e Remoção de EJBs O container de um EJB realiza diversos serviços do nível de sistema quando um bean é instanciado (ou obtido a partir de um poll) Para criar um novo bean ou obter uma referência local ou remota para o mesmo usa-se sua interface home Após localizar a interface home, o cliente obtém a referência para uma instância através do método create () A remoção de uma instância do bean é feita através de um dos vários métodos remove () disponíveis na interface 15

Instanciação de Beans JNDI Modelo Conceitual EJB * { one per bean type } Container Client <<Interface>> Home Interface _Lifecycle Methods_( <<Interface>> Remote Interface <<Class>> ContainerHomeInterfaceImpl _Lifecycle Methods_( 1 DatabaseAdapter <<Class>> ContainerRemoteInterfaceImpl _Business Methods_( ) bean pool { 10s of instances per bean type } * <<Class>> Bean ejbcreate( ) ejbpostcreate( ) ejbpassivate( ) ejbactivate( ) ejbload( ) ejbstore( ) ejbremove( ) setentitycontext( ) unsetentitycontext( ) _Business Methods_( ) _Business Methods_( ) * { millions of instances } 16