Recursos de desenvolvimento do EJB

Este tópico descreve recursos e ferramentas de desenvolvimento mais utilizadas no desenvolvimento de EJB.

Módulos EJB

Os módulos EJB são apresentados na vista Explorador de Projecto da perspectiva de J2EE e correspondem aos projectos EJB.

Um módulo EJB é utilizado para agregar um ou mais beans empresariais numa única unidade implementável. Um módulo EJB é desenvolvido num projecto EJB e pode ser exportado como um ficheiro EJB JAR autónomo ou pode ser combinado com outros módulos EJB ou Web dentro de uma aplicação empresarial. Um ficheiro EJB JAR utiliza o formato de um ficheiro de arquivo Java padrão. Um módulo EJB contém o seguinte:

  • Um ou mais beans empresariais e os respectivos ficheiros .class e .java associados.
  • Gráficos e outros ficheiros, consoante a necessidade do bean empresarial.
  • Um descritor de implementação. O tipo de ficheiro do descritor de implementação é XML (Extensible Markup Language). Este ficheiro declara os conteúdos do módulo EJB, define a estrutura dos beans no módulo e faculta uma descrição do modo como os beans devem ser utilizados em tempo de execução.
  • Um ficheiro MANIFEST.MF no directório META-INF. O ficheiro de manifesto pode conter uma entrada de caminho de classes, com referências a outros ficheiros JAR ou a módulos EJB numa aplicação empresarial. Define as dependências externas do módulo.

Um módulo EJB é instalado e executado num contentor EJB.

Um bean empresarial é um componente Java que pode ser combinado com outros recursos para criar aplicações cliente/servidor distribuídas.

Nota: Se decidir criar um ficheiro JAR de cliente EJB para o módulo EJB, as classes de interface de cliente para os beans empresariais não serão incluídas no ficheiro JAR.
Projectos EJB

Na área de trabalho, o utilizador cria e mantém os recursos para aplicações empresariais em projectos. Um projecto EJB é um módulo lógico que permite ao utilizador organizar os beans empresariais.

A área de trabalho suporta projectos EJB 1.1, EJB 2.0, e EJB 2.1. O nível de especificação J2EE para um projecto que contém EAR tem de ser definido para J2EE 1.3 ou superior para projectos EJB 2.0 e para J2EE 1.4 para projectos EJB 2.1. Num projecto EJB 1.1 apenas poderá criar beans EJB 1.1.

Um projecto EJB é um projecto Java especializado. Da mesma forma que um projecto Java, um projecto EJB tem de ter uma ou mais pastas de origem para conter os ficheiros de origem e de saída para o projecto. Por predefinição, a pasta de origem é denominada ejbModule, mas pode alterar esse nome quando criar o projecto ou novas pastas de origem. Quando o projecto é publicado ou implementado, os conteúdos da pasta ou pastas são agregados.

Não pode utilizar o projecto EJB como pasta de origem, uma vez que pode originar erros. Da mesma forma, embora o utilizador possa ter mais do que uma pasta de origem no projecto, apenas uma destas pastas de origem pode conter a pasta META-INF, na qual residem os ficheiros MANIFEST.MF e descritor de implementação.

Nota: Se decidir criar um ficheiro JAR de cliente EJB para o módulo EJB, as classes de interface de cliente para os beans empresariais não serão incluídas no projecto EJB, mas num projecto JAR de cliente EJB separado. Os projectos JAR de cliente EJB são apresentados no Explorador do Projecto como projectos Java no nó Outros Projectos.
Projectos de cliente EJB

As ferramentas EJB suportam a criação de projectos JAR de cliente EJB para módulos EJB. Um projecto JAR de cliente EJB contém todas as classes de interface que um programa cliente necessita para utilizar as vistas do cliente dos beans empresariais contidos no projecto EJB. Ao criar um projecto de cliente EJB para um projecto EJB, um novo projecto Java é criado e adicionado ao espaço de trabalho. O projecto de cliente EJB é adicionado como sendo um ficheiro JAR de projecto utilitário para cada módulo ao qual pertence o projecto EJB.

Por predefinição, quando o utilizador utiliza o assistente para criar o projecto EJB, também é criado um projecto JAR de cliente EJB. No entanto, pode limpar esta opção no assistente.

Sugestão: Pode igualmente adicionar o projecto de cliente EJB a outra aplicação empresarial que não inclua o projecto EJB como módulo. Deste modo, poderá garantir que o ficheiro JAR de cliente EJB é exportado e empacotado com o ficheiro EAR quando a aplicação é exportada.
Beans empresariais

Um bean empresarial é um componente Java que pode ser combinado com outros recursos para criar aplicações cliente/servidor distribuídas.

Existem três tipos de beans empresariais: beans de entidade, beans de sessão e beans orientados por mensagens. Normalmente, todos os tipos de beans são utilizados em conjunto dentro de uma aplicação empresarial.

Beans de entidade
Os beans de entidade armazenam dados permanentes. Os beans de entidade de persistência gerida pelo contentor (CMP) requerem ligações à base de dados. Os beans de entidade de persistência gerida pelo bean gerem dados permanentes seja qual for a forma em que está definido o código dos beans. Pode incluir, por exemplo, a gravação em bases de dados ou ficheiros XML.
Beans de sessão
Os beans de sessão não requer acesso a base de dados, embora possam obtê-la indirectamente (como necessário) acedendo a beans de entidade. Os beans de sessão podem igualmente obter acesso directo a bases de dados (e outros recursos) através da utilização de referências de recurso.
Beans orientados por mensagens
Os beans orientados por mensagens constituem um tipo especial de bean empresarial que funcionam como consumidores de mensagens no sistema de serviço de mensagens JMS. Como acontece com os consumidores de mensagens JMS padrão, os beans orientados por mensagens desempenham uma lógica empresarial baseada nos conteúdos da mensagem. De várias formas, a criação e alocação dinâmicas das instâncias dos beans orientados por mensagens imitam o comportamento dos beans empresariais de sessão sem registo. No entanto, os beans orientados por mensagens são diferentes dos beans empresariais de sessão sem registo (e outros tipos de beans empresariais) de dois modos.
  • Os beans orientados por mensagens processam múltiplas mensagens JMS de forma assíncrona, em vez de processarem uma sequência em série de chamadas de método.
  • Os beans orientados por mensagens não têm interface inicial ou remota e, por isso, não podem ser acedidos directamente por clientes internos ou externos.
Descritores de implementação

Um descritor de implementação contém dados de configuração que o ambiente em tempo de execução utiliza numa aplicação. Um descritor de implementação pode incluir informações sobre o seguinte:

  • A estrutura e conteúdo (beans empresariais, por exemplo) da aplicação.
  • Referências às dependências internas e externas. Por exemplo, um bean empresarial num módulo EJB pode requerer outro bean empresarial que não está agrupado no mesmo módulo.
  • Referências a objectos de fábrica de recursos como, por exemplo, URLs ou origens de dados JDBC.
  • Funções de segurança que o contentor utiliza ao implementar o controlo de acesso requerido para a aplicação.
  • A informação transaccional acerca do modo como (e se) o contentor irá gerir as transacções na aplicação.

Os descritores de implementação são ficheiros XML empacotados com os ficheiros de aplicação num ficheiro de arquivo Java. Um descritor de implementação é denominado ejb-jar.xml e está localizado na pasta META-INF de um projecto EJB. Uma aplicação J2EE contém um ficheiro de descritor de aplicação de nível de aplicação que controla a aplicação como um todo. Também contém vários descritores de implementação de nível de componente, um por cada módulo na aplicação.