Enterprise JavaBeans - cic.unb.br

35
Enterprise JavaBeans Java Deployment Course por Jorge H. C. Fernandes ([email protected]) DI-UFPE Julho de 1999

Transcript of Enterprise JavaBeans - cic.unb.br

Page 1: Enterprise JavaBeans - cic.unb.br

Enterprise JavaBeansJava Deployment Course

por Jorge H. C. Fernandes ([email protected])DI-UFPEJulho de 1999

Page 2: Enterprise JavaBeans - cic.unb.br

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.

Page 3: Enterprise JavaBeans - cic.unb.br

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

Page 4: Enterprise JavaBeans - cic.unb.br

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)

Page 5: Enterprise JavaBeans - cic.unb.br

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

Page 6: Enterprise JavaBeans - cic.unb.br

Princípios

Page 7: Enterprise JavaBeans - cic.unb.br

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

Page 8: Enterprise JavaBeans - cic.unb.br

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

Page 9: Enterprise JavaBeans - cic.unb.br

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

Page 10: Enterprise JavaBeans - cic.unb.br

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

Page 11: Enterprise JavaBeans - cic.unb.br

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

Page 12: Enterprise JavaBeans - cic.unb.br

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

Page 13: Enterprise JavaBeans - cic.unb.br

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

Page 14: Enterprise JavaBeans - cic.unb.br

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

Page 15: Enterprise JavaBeans - cic.unb.br

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

Page 16: Enterprise JavaBeans - cic.unb.br

Java Deployment Course - Enterprise Java Beans. Copyright © 1999 by Jorge H. C. Fernandes. Todos os Direitos Reservados.

System Administrator

Page 17: Enterprise JavaBeans - cic.unb.br

Modelo Computacional

Page 18: Enterprise JavaBeans - cic.unb.br

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

Page 19: Enterprise JavaBeans - cic.unb.br

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

Page 20: Enterprise JavaBeans - cic.unb.br

Session Beans versus Entity Beans

Page 21: Enterprise JavaBeans - cic.unb.br

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

Page 22: Enterprise JavaBeans - cic.unb.br

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

Page 23: Enterprise JavaBeans - cic.unb.br

Contratos

Page 24: Enterprise JavaBeans - cic.unb.br

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

Page 25: Enterprise JavaBeans - cic.unb.br

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

Page 26: Enterprise JavaBeans - cic.unb.br

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>(...);

}

Page 27: Enterprise JavaBeans - cic.unb.br

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

Page 28: Enterprise JavaBeans - cic.unb.br

SessionBeans

Page 29: Enterprise JavaBeans - cic.unb.br

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

Page 30: Enterprise JavaBeans - cic.unb.br

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

Page 31: Enterprise JavaBeans - cic.unb.br

EntityBeans

Page 32: Enterprise JavaBeans - cic.unb.br

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

Page 33: Enterprise JavaBeans - cic.unb.br

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

Page 34: Enterprise JavaBeans - cic.unb.br

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

Page 35: Enterprise JavaBeans - cic.unb.br

Fim