Download - Enterprise JavaBeans - cic.unb.br
Enterprise JavaBeansJava Deployment Course
por Jorge H. C. Fernandes ([email protected])DI-UFPEJulho de 1999
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Enterprise JavaBeansJava Deployment Course
Copyright © 1999 by Jorge H. C. Fernandes ([email protected])
Todos os direitos reservados. Nenhuma parte desta publicação pode ser reproduzida, armazenada em sistema de retrieval, ou transmitida, em quaisquer formas, ou através de quaisquer meios, eletrônicos, mecânicos, fotocópias, gravações, etc, sem a prévia autorização, por escrito, de Jorge Henrique Cabral Fernandes.
All rights reserved. No part of this publication may be reproduced, stored in aretrieval system, or transmitted, in any form, or by any means, electronic,mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher.
JavaTM is a trademark of Sun Microsystems.
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Referências
�Enterprise JavaBeans Specification. V.1.0, March, 1998.
�Enterprise JavaBeans Specification. V.1.1-Draft, May, 1999.
�Enterprise JavaBeans White Paper�http://java.sun.com/products/ejb
�WebLogic �WebLogic Server Documentation and Examples
(www.weblogic.com)�Using WebLogic Enterprise Java Beans
⌧http://www.weblogic.com/docs/classdocs/API_ejb.html
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Construindo Objetos DistribuídosJava com Enterprise JavaBeans
�Relações com outras APIS e Modelos�Princípios
�Meta�Business Objects
�O Modelo Computacional�Alguns Exemplos (WebLogic)
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Relações com Outras APIs e Modelos
�JavaBeans�JNDI (Java Naming and Directory
Interface)�RMI�Java Security�Java to IDL Mapping�OMG Object Transaction Service�ORB Portability
Princípios
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Enterprise JavaBeans: Meta
Conceber uma arquitetura de componentes software distribuído para Java, conforme o mote ‘write-once, run-anywhere’.
Tal arquitetura deve ser adequada à construção de aplicações transacionais para empresas, segundo a perspectiva de construção de business objects
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Business Objects
� Componentes distribuídos que modelam objetos do mundo real no nível do domínio da aplicação�contas bancárias, carrinhos de compras, corretores, etc
� Business Objects são desenvolvidos e comercializados de forma independente por vários fornecedores diferentes
� Business Objects são integrados de modo a criar aplicações distribuídas
� A princípio, o criador de Business Objects NÃO deve determinar detalhes de implementação como�transações, persistência, distribuição, nomeação, replicação,
segurança, etc
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Enterprise JavaBeans (EJBs) devem:
� Ser compatíveis com CORBA� Suportar integração de componentes desenvolvidos por empresas
diversas� Liberar o desenvolvedor da compreensão de APIs de baixo nível� Suportar instalação e execução em múltiplas plataformas, sem
recompilação� Permitir representar e manipular aspectos pertinentes ao
desenvolvimento, instalação e eventos do ciclo de vida do componente
� Oferecer interoperabilidade garantida entre desenvolvedores de Enterprise JavaBeans e construtores de servidores
� Ser interoperáveis com aplicações em desenvolvidas em outras linguagens
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Diferentes Papéis no Contexto de Desenvolvimento e Uso
�Enterprise Bean Provider (EJB Provider)�Application Assembler�Deployer�EJB Server Provider�EJB Container Provider�System Administrator
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Enterprise Java Bean ProviderEJB Provider
�Implementa business objects�business tasks�business entities
�Não trata (necessariamente) de�transações, concorrência, persistência, segurança
�Empacotados em um arquivo jar�classes Java que compõem os componentes�contratos com clientes (remote e home
interfaces)�deployment descriptor
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Application Assembler
�Compõe aplicações com vários EJBs�Trabalha com os contratos com cliente�Cria novos EJBs, servlets ou applets�Pode ignorar aspectos operacionais do
ambiente de execução
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Deployer
�Instalação de EJBs e containers�Adapta EJBs às restrições do ambiente
operacional�Adequação de parâmetros contidos no
deployment descriptor
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
EJB Server Provider
�Cria APIs de baixo nível para suporte à construção de containers dentro de um servidor (Web Server, SGBD, ORB, etc) �session container
⌧permite o funcionamento de session beans�entity container
⌧permite o funcionamento de entity beans
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
EJB Container Provider
�Cria containers �Isolam EJBs dos servidores onde executam
�Suportam�Transacões�Movimento de dados persistentes entre
SGBDs e EJBs�Versionamento de EJBs�Monitoração
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
System Administrator
Modelo Computacional
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
EJBs Deployment
EJB Server
EJB Container
EJB Class
EJB Home
EJB Object
DeploymentDescriptor
EJB-jarEJB Class
Segurança
Transações
PersistênciaEJB Home
Name Server
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Servers, Containers, Interfaces e Enterprise Java Beans
Lookup
EJB Server
EJB Container
Client
Name Server
EJB ClassEJB Home
EJB ClassEJB Home
Lookup EJB ObjectEJB
EJB Object EJBEJB Object EJB
EJB ObjectEJB
EJB Object EJBEJB Object EJB
ContainerManagedPersistence
ComponentManagedPersistence
Session Beans versus Entity Beans
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Session Bean
� Suporte obrigatório desde a versão 1.0� Representa uma lógica de negócios (business logic)
executando no servidor� Extensão lógica do cliente, executando no servidor � Atende a um único cliente (não é compartilhado entre
clientes)� Pode ser transacional� Não tem uma representação direta de dados em um
SGBD, mas pode realizar alterações� Curto tempo de vida� Removido em caso de interrupções do servidor
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Entity Beans
�Suporte obrigatório após a versão 1.1�Representa dados no SGBD�É transacional�Permite acesso compartilhado por
múltiplos usuários�Tempo de vida longo�Sobrevive a interrupções no servidor
Contratos
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
EJB Container
Client
EJB ClassEJB Home
Contratos entre clientes, Containers e Componentes
EJB Object EJB
Contrato com Cliente
Contrato entre Container e Componente
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Contrato com Cliente
� Home interface �Acessível via JNDI�Cada classe de EJB
instalada (deployed) possui uma homeinterface, implementada pelo EJB Provider
�Métodos para criar e remover EJBs
�Métodos para buscar EJBs e metadados
� Metadata interface� Handle
� Identidade de objetos�Primary key no caso de entity
beans�Identificador único no caso de
session beans� Invocação de métodos
�Mediada pelo container�Através da object (remote)
interface (RMI) implementada pelo EJB Provider
�business methods implementados pelo EJB Provider
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Home Interface
interface MyEJBHome extends javax.ejb.EJBHome {// creator methodsMyEJB create(...);
// finder methodsEJB find<METHOD>(...);
}
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Contrato EJBBean com Container
� Business Methods (EJBBean)� Gerenciamento do Life Cycle
� ejbCreate(...), ejbPostCreate(...), ejbRemove(...)
�SessionBean implementa as interfacesjavax.ejb.SessionBean e javax.ejb.SessionSynchronization
�EntityBean implementa a interface javax.ejb.EntityBean⌧ejbFind<METOD> - bean
managed persistente
� Interface home e remote(EJBBean)�Classes criadas pelo
container� Container deve suportar
persistência quando requerido� Contexto
�SessionBean recebe umjavax.ejb.SessionContext
�EntityBean recebe umjavax.ejb.EntityContext
� Container� gerenciar transações,
segurança e exceções
SessionBeans
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Ver Projeto BasicStatelessSession
�Client�DeploymentDescriptor�Trader (EJB Object - Remote)�TraderBean�TraderHome�TraderResult�ProcessingErrorException
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Ver Projeto BasicStatefullSession
�Client (diferenças)�DeploymentDescriptor (diferenças)�Trader�TraderBean (diferenças)�TraderHome�TraderResult�ProcessingErrorException
EntityBeans
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Ver Projeto BasicContainerManagedFile
�Account�AccountBean�AccountHome�AccountPK�ProcessingErrorException�DeploymentDescriptor�Client
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Ver Projeto BasicBeanManaged
�Account�AccountBean�AccountHome�AccountPK�ProcessingErrorExce
ption�DeploymentDescripto
r
�Clientes�Client�MultiClient�Servlet
Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.
Ver Projeto BasicContainerManagedJDBC
�Account�AccountBean�AccountHome�AccountPK�ProcessingErrorExce
ption�DeploymentDescripto
r
�Clientes�Client�MultiClient�Servlet
Fim