Exercício 1.1: Introdução às Tecnologias

Um bean corporativo é um conjunto de classes e interfaces JavaTM que implementam a especificação EJB (Enterprise JavaBeansTM). A especificação EJB é uma parte da especificação J2EE (JavaTM 2 Platform, Enterprise Edition). O J2EE é um conjunto de tecnologias Java padronizadas que são extensões para a J2SE (Java 2 Standardized Platform, Standard Edition). Aqui há algumas das tecnologias que o J2EE inclui:

Os aplicativos que são gravados utilizando as especificações J2EE são facilmente implementados em qualquer servidor que forneça suporte ao J2EE, como o WebSphereR Application Server da IBMR.

A versão mais recente da especificação EJB é a 2.1. O workbench suporta várias versões da especificação EJB, incluindo 1.1, 2.0 e 2.1. Veremos referências a diferentes níveis de especificações no workbench. Por exemplo, ao criar um novo bean de entidade CMP (Gerenciado por Contêiner), é possível selecionar o CMP Versão 1.x ou 2.x, o que corresponde às versões 1.1 ou 2.0/2.1 do EJB, respectivamente.

Para obter informações adicionais sobre as tecnologias J2EE e EJB, consulte estes Web sites:

Informações sobre o uso dessas tecnologias também podem ser localizadas nos seguintes tópicos no centro de informações:

JavaBeans Corporativo

A especificação EJB define o seguinte:

Um aplicativo corporativo pode ser instalado e executado em um Servidor EJB (também chamado de Enterprise Java Server), tal como o fornecido pelo WebSphereR Application Server. A tarefa do servidor é fornecer um Contêiner EJB no qual os beans corporativos sejam executados. Um servidor e um contêiner EJB trabalham juntos para fornecer estes serviços:

Os aplicativos clientes não acessam beans corporativos diretamente. Em vez disso, as interfaces que são fornecidas listam os métodos do bean corporativo que estão disponíveis para o cliente. O contêiner fornece a implementação das interfaces no bean corporativo.

O Contêiner EJB

Os Tipos de Beans Corporativos

Há três tipos de beans corporativos: beans de sessão, beans de entidade e beans orientados a mensagens. Um EJB típico consiste em vários beans de entidade, mais beans de sessão ou beans orientados a mensagens.

Os beans de entidade são utilizados para representar e interagir com tabelas do banco de dados relacional. Normalmente, um bean de entidade representa uma linha em uma tabela do banco de dados, com as colunas da tabela correspondendo aos campos no bean. A persistência de dados se refere ao armazenamento de dados permanentemente em um banco de dados ou em outro formato. Os contêineres EJB podem manipular a persistência de uma bean de entidade (CMP ou Container-Managed Persistence) ou o bean de entidade pode manipular a sua própria persistência (BMP ou Bean-Managed Persistence).

Os beans de sessão são utilizados para interagir com beans de entidade. Geralmente, eles fornecem um processo ou workflow global para um aplicativo cliente. Os beans de sessão pode ser sem preservação de estado (nenhum dado é salvo) ou com preservação de estado (alguns dados são salvos). Normalmente, um cliente aplicativo interage com beans de sessão, que, por sua vez, interage com os beans de entidade.

Os beans orientados por mensagens fornecem um veículo de comunicação para aplicativos que desejam acessar beans de entidade. Eles podem ser utilizados da mesma forma como são utilizados os beans de sessão. A principal diferença é como eles são chamados. Os beans de sessão (e beans de entidade) são chamados de forma sincronizada, enquanto os beans orientados por mensagens são chamados de forma não sincronizada. Um chamada sincronizada para um bean de sessão seria chamar o bean de sessão diretamente. Uma chamada assíncrona para um bean orientado a mensagens seria enviar uma mensagem, para a qual o bean orientado a mensagens está atendendo. O JMS (Java Messaging Service) é o veículo de comunicação subjacente para beans orientados a mensagens.

Informações adicionais sobre tipos de beans corporativos podem ser localizadas no centro de informações em Arquitetura EJB.

A Anatomia de um Bean Corporativo

Um bean corporativo contém as seguintes classes e interfaces:

Interfaces de componentes locais e remotas

As interfaces de componente locais e remotas são utilizadas por aplicativos clientes para acessar beans corporativos. Estas interfaces listam os métodos da lógica de negócios disponíveis em um bean corporativo. Um bean corporativo pode ter uma interface remota, uma interface local ou ambas.

O desempenho é melhor quando você acessa um bean corporativo utilizando a interface local em vez da interface remota. Algumas das razões para o aprimoramento de desempenho incluem:

A interface local foi incluída na especificação EJB 2.0 para aprimorar o desempenho. A prática de design recomendada é agrupar beans de entidade em uma fachada de sessão, para que os clientes acessem o bean de sessão remotamente, mas o bean de sessão acesse o bean de entidade localmente. Esta prática permite o acesso remoto de clientes enquanto fornece melhor desempenho.

Interfaces Home Locais e Remotas

A interface home de um bean de entidade também é utilizada pelos aplicativos clientes para acessar o bean corporativo, mas os métodos disponíveis por meio desta interface são métodos de ciclo de vida, incluindo métodos para localizar, criar e remover beans de entidade dentro do contêiner EJB. As interfaces home também podem ser remotas ou locais.

Classes de Beans Corporativos

As classes de beans corporativos contêm a lógica de negócios do aplicativo corporativo. Os métodos nas interfaces expõem os métodos correspondentes na classe do bean para os aplicativos clientes.

Classes da Chave Primária

Uma chave primária é um ID exclusivo associado com uma entrada específica em um banco de dados. Por exemplo, se você possui um banco de dados de funcionários, cada funcionário possui um ID de funcionário exclusivo. Cada instância de uma classe de chave primária corresponde a um dos IDs exclusivos, dessa forma, a um registro de funcionário específico, no banco de dados.

A anatomia de um aplicativo corporativo

A especificação J2EE define a estrutura de arquivos e diretórios de um aplicativo corporativo. Além disso, ela especifica os tipos de arquivos .war, .ear e .jar e cada tipo é utilizado para finalidades específicas.

Um arquivo EAR (Enterprise Archive) é o tipo de pacote de um aplicativo corporativo. Ele contém arquivos WAR e arquivos JAR, assim como um descritor de implementação de aplicativos (application.xml) que contém metadados sobre o aplicativo corporativo.

Um arquivo WAR (Web Archive) contém arquivos de um aplicativo da Web, como imagens, arquivos HTML, servlets e JSPs. Ele também contém metadados na forma de um descritor de implementação da Web (web.xml).

Os arquivos JAR (Java Archives) contêm classes Java. Em aplicativos EJB, os arquivos JAR podem conter módulos EJB ou eles podem conter um aplicativo cliente EJB.

Os módulos EJB contêm os próprios beans corporativos, além de metadados incluindo um descritor de implementação EJB (ejb-jar.xml). Os módulos EJB implementados para o WebSphere Application Server também podem conter metadados descrevendo extensões e informações de ligação específicas da IBM. Um aplicativo cliente EJB contém os programas Java utilizados para acessar um aplicativo EJB, além de um descritor de implementação cliente (application-client.xml).

Projetos e Tipos de Arquivos do Workbench para Desenvolvimento do EJB
Tipo de arquivo Significado Tipo de aplicativo Descritor de implementação
.ear Enterprise Archive enterprise application.xml
.war Web Archive Web web.xml
.jar Java Archive EJB
Cliente EJB
ejb-jar.xml
application-client.xml

Utilizando a UML com o Visual Editor

O Visual Editor utiliza a Unified Modeling Language para representar a estrutura e o design das classes e interfaces Java, incluindo componentes EJB, visualmente. Ela fornece mecanismos para a exibição de relacionamentos entre classes, assim como o workflow. Utilizando as ferramentas da UML dentro do workbench, você pode editar visualmente classes e interfaces Java ou outros componentes EJB. Você pode iniciar a criação de um componente EJB diretamente de um diagrama de classe. O código subjacente é gerado e, em seguida, renderizado visualmente no diagrama de classe, pronto para ser editado. As alterações realizadas em um diagrama de classe UML resultam em alterações no código subjacente. As alterações no código base são refletidas no diagrama da classe UML.

No workbench, um diagrama da classe UML é armazenado como um arquivo com uma extensão .dnx.

A UML 2 é uma especificação padrão fornecida pelo OMG (Object Management Group).O Web site do OMG também fornece uma Introdução à UML.

O centro de informações fornece informações detalhadas sobre estes tópicos:

Agora você está pronto para iniciar o Exercício 1.2: Preparando o Espaço de Trabalho.

Feedback
(C) Copyright IBM Corporation 2000, 2005. Todos os Direitos Reservados.