Title: RES: [java-list] EJB

Componentes Enterprise Java Beans      

Enterprise Java Beans são componentes de aplicação que são executados no servidor J2EE e tipicamente implementam a regra de negócio de uma aplicação empresarial e o acesso aos dados em bancos de dados ou sistemas legados. 

O Java 2 Enterprise Edition (J2EE), utiliza-se além da J2SE, diversas outras tecnologias que podem ser agrupadas em componentes, serviços e comunicação.

Existem dois tipos de enterprise beans: Session Beans e Entity Beans.

Entity Beans

Um Entity Bean representa um objeto de negócio armazenado, servindo de meio de acesso as informações do sistema que podem estar armazenadas em um banco de dados, um sistema legado, um arquivo convencional ou qualquer outro meio ou formato de armazenamento. O tipo do armazenamento da informação e a forma de manipulação da mesma dependem da implementação do EJB.  Tipicamente isso é feito em um banco de dados relacional. 

Obs. Normalmente os Entity Beans são utilizados para implementar a camada de acesso a dados de uma aplicação multicamadas.

Session Beans

Um Session Bean é um componente servidor que representa a interação de uma aplicação cliente com um servidor J2EE. Uma aplicação cliente comunica-se com o servidor J2EE chamando métodos (via RMI ou CORBA) do session bean.  Cada Session Bean pode ter apenas um único cliente. Quando o cliente encerra sua interação com o servidor, o Session Bean correspondente é eliminado. Assim, um Session Bean é transiente, não sendo persistido.

Obs. Normalmente os Sessions Beans são utilizados para implementar a camada de regra de negócio de uma aplicação multicamadas.

Comparando Session Beans com Entity Beans

Embora tanto o session bean quanto o entity bean sejam executados no container EJB, eles são bem diferentes.

Propósito:
      Session Bean - Executa uma regra de negócio para a aplicação cliente.
        Entity Bean  - Representa um objeto de negócio persistente.

Acesso Compartilhado:
        Session Bean - Só pode ser utilizado por um cliente.   
      Entity Bean  - Pode ser utilizado por vários clientes simultaneamente.

Persistência:  
      Session Bean - Não é persistente. Quando o cliente é encerrado, o session bean associado também é eliminado.     

      Entity Bean  - É persistente. Mesmo quando o container EJB é encerrado, os dados manipulados pelo Entity permanecem no banco de dados.

Containers de Componentes EJB
O container de EJBs oferecem recursos de controle transacional e persistência, entre outros.

Serviços

Os serviços formam uma infra-estrutura que simplifica a programação dos componentes e permite que estes sejam adaptáveis dinamicamente para utilizar recursos disponíveis no ambiente de execução.

Tipos de Serviços

Serviço de Diretório                   

JNDI (Java Naming and Directory Interface)
Serviço que permite que um servidor registre objetos em um cátologo de objetos e que a própria aplicação ou outras aplicações, no mesmo ou em outros servidores, localizem esse objeto e lhe solicitem alguma ação através da chamada de um de seus métodos.

Serviço de Distribuição        

Deployment Descriptor
Serviço que permite que os componentes e aplicações sejam adaptados através de parametrização do ambiente de execução.  Essa parametrização é feita através de um arquivo XML chamado de Deployment Descriptor.  Nele podem ser definidos aspectos de segurança, performance, controle transacional, etc.

Serviço de Controle Transacional

JTS (Java Transaction Service) e  JTA (Java Transaction API)
Serviço que gerencia transações de acesso a bancos de dados (usando o padrão XA).

JDBC (Java Database Connectivity)
Serviço de acesso a banco de dados.

Serviço de Segurança           

JAAS (Java Authentication and Authorization Service)
Serviço de autorização e autenticação das ações de uma aplicação ou usuário.

 Comunicação

As tecnologias de comunicação permitem a comunicação entre clientes e servidores e entre servidores.

Tipos de Tecnologias de Comunicação

Protocolos Internet

TCP/IP
HTTP 1.0
SSL 3.0
Protocolo de Chamada a Métodos Remotos

RMI (Remote Method Invocation)
Permite a chamada remota de métodos de um objeto em uma outra máquina da mesma forma que é chamado um método de um objeto local.  O objeto remoto pode ser localizado utilizando-se do serviço JNDI.

Protocolos definidos pelo OMG (Object Management Group)

Java IDL (Java Interface Definition Language) e RMI-IIOP (RMI over Internet Inter-ORB Protocol)
Implementa a comunicação entre objetos remotos utilizando o padrão CORBA (Common-Object Broker Architecture) definido pela organização OMG.  Permite a comunicação entre objetos Java e objetos ou programas desenvolvidos em outras linguagens de programação. 

Mensagens Assíncronas

JMS (Java Message Service) e JMA (Java Message API)
Serviço que permite a comunicação através de mensagens assíncronas.

JavaMail
Serviço que permite o envio e recepção de e-mails através de uma aplicação Java.

Veja o texto completo no site  http://www.infonet.com.br/zemaria/ tutorial (Enterprise EJB)
 
Um abraço.

Responder a