Enterprise JavaBeans - cic.unb.br

Post on 13-Jan-2022

11 views 0 download

Transcript of Enterprise JavaBeans - cic.unb.br

Enterprise JavaBeansJava Deployment Course

por Jorge H. C. Fernandes (jhcf@di.ufpe.br)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 (jhcf@di.ufpe.br)

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