Este tópico descreve recursos e ferramentas de desenvolvimento que são
utilizadas geralmente no desenvolvimento EJB.
- Módulos de EJB
-
Os módulos EJB são exibidos na visualização Project Explorer da perspectiva J2EE
e correspondem a projetos EJB.
Um módulo EJB é utilizado para montar um ou mais beans corporativos
em uma única unidade implementável. Um módulo
EJB é desenvolvido em um projeto EJB e pode ser exportado como um arquivo JAR
EJB independente ou combinado com outros módulos EJB ou da Web
dentro de um aplicativo corporativo. Um arquivo JAR EJB utiliza o formato de um arquivo archive Java
padrão. Um módulo EJB contém o seguinte:
- Um ou mais beans corporativos e seus arquivos .class e .java associados.
- Gráficos e outros arquivos, dependendo da necessidade do bean corporativo.
- Um descritor de implementação. O tipo de arquivo do descritor de implementação é
XML (Extensible Markup Language). Este arquivo declara os conteúdos do módulo EJB,
define a estrutura dos beans do módulo e fornece uma descrição de como
os beans devem ser utilizados no momento da execução.
- Um arquivo MANIFEST.MF no diretório META-INF. O arquivo de manifesto contém
uma entrada de caminho de classe com referências a outros arquivos JAR ou módulos EJB de um aplicativo
corporativo J2EE. Ele define as dependências externas do módulo.
Um módulo EJB é instalado e executado em um contêiner EJB.
Um
bean corporativo é um componente Java que pode ser combinado com
outros recursos para criar aplicativos cliente/servidor distribuídos.
Nota: Se
você optar por criar um arquivo JAR do cliente EJB para seu módulo EJB, as classes da interface
do cliente dos beans corporativos não serão incluídas no arquivo JAR EJB,
mas serão incluídas no arquivo JAR do cliente EJB.
- Projetos EJB
-
No ambiente de trabalho, você cria e mantém recursos para aplicativos
corporativos em projetos. Um projeto EJB é um módulo lógico que permite que você
organize seus beans corporativos.
O ambiente de trabalho suporta projetos EJB 1.1, EJB
2.0 e EJB 2.1. O nível de especificação J2EE de um projeto EAR contido deve ser definido
para J2EE 1.3, ou superior, para projetos EJB 2.0 e J2EE 1.4
para projetos EJB 2.1. Em um projeto EJB 1.1, só será possível criar beans
EJB 1.1.
Um projeto EJB é um projeto Java especializado.
Como um projeto Java, um projeto EJB deve ter uma ou mais pastas de origem
para conter os arquivos de origem e de saída do projeto. Por padrão,
a pasta de origem é chamada de ejbModule, mas você pode alterar esse nome
quando criar o projeto ou novas pastas de origem. Quando você publicar ou implementar
o projeto, os conteúdos da pasta ou pastas são agregados.
Não é possível
utilizar o projeto EJB como a pasta de origem; fazer isso causará erros.
Além disso, embora você possa ter mais de uma pasta de origem em um projeto, apenas
uma dessas pastas de origem pode conter a pasta META-INF na qual o arquivo MANIFEST.MF
e os arquivos descritores de implementação residem.
Nota: Se você optar por criar um arquivo JAR
de cliente EJB para seu módulo EJB, as classes de interface de cliente dos
beans corporativos não serão incluídas no projeto EJB, mas em projetos JAR de
clientes EJB separados. Projetos JAR de clientes EJB são exibidos no Project
Explorer como projetos Java sob o nó Outros Projetos.
- Projetos do Cliente EJB
-
As ferramentas EJB suportam a criação de projetos JAR do cliente EJB para módulos
EJB. Um projeto JAR do cliente EJB contém todas as classes de interface que
um programa cliente necessita para utilizar as visualizações cliente dos beans
corporativos que estão contidos no projeto EJB. Quando você cria um projeto do cliente EJB
para um projeto EJB, um novo projeto Java é criado e incluído no
espaço de trabalho. O projeto do cliente EJB é incluído como um arquivo JAR de utilitário de projeto em
cada módulo no qual o projeto EJB pertence.
Por padrão, quando você utiliza
o assistente para criar um projeto EJB, um projeto JAR do cliente EJB também é criado.
Entretanto, você pode alterar essa opção no assistente.
Dica: Também é
possível incluir o projeto do cliente EJB em outro aplicativo corporativo que
não inclui o projeto EJB como um módulo. Isso irá garantir que o arquivo JAR do
cliente EJB seja exportado e compactado com o arquivo EAR quando o aplicativo for
exportado.
- Beans corporativos
-
Um bean corporativo é um componente Java que pode ser combinado com
outros recursos para criar aplicativos cliente/servidor distribuídos.
Existem três tipos de beans
corporativos: beans de entidade, beans de sessão e beans orientados por
mensagens. Geralmente, todos os tipos de beans são utilizados juntos, dentro de um aplicativo
corporativo.
- Beans de Entidade
- Beans de entidade armazenam dados permanentes. Beans de entidade com CMP (Container-Managed
Persistence) requerem conexões com o banco de dados. Os beans de entidade com persistência gerenciada por bean gerenciam
dados permanentes em qualquer maneira definida no código do bean. Isso pode incluir a gravação no banco de dados de arquivos XML, por exemplo.
- Beans de Sessão
- Beans de sessão não requerem acesso ao banco de dados, embora eles possam
obtê-lo indiretamente (conforme necessário) acessando beans de entidade. Os beans de sessão
também podem obter acesso direto a bancos de dados (e outros recursos) utilizando
referências de recursos.
- Beans Orientados a Mensagens
- Beans orientados a mensagens são um tipo especial de bean corporativo que
agem como consumidores de mensagem no sistema de mensagens JMS. Como com consumidores de mensagens
JMS padrão, beans orientados a mensagens executam lógica de negócios com base nos conteúdos
da mensagem. De diversas maneiras, a criação dinâmica e alocação de instâncias de
beans orientados a mensagens imitam o comportamento de beans corporativos de sessão sem preservação de estado.
No entanto, beans orientados a mensagens são diferentes de beans corporativos de sessão sem preservação de estado
(e de outros tipos de beans corporativos) de algumas maneiras:
- Os beans orientados a mensagens processam várias mensagens JMS de maneira assíncrona, em vez de
processar uma seqüência serializada de chamadas de método.
- Os beans orientados a mensagens não possuem interface inicial ou remota e, portanto,
não podem ser acessados diretamente por clientes internos ou externos.
- Descritores de implementação
-
Um descritor de implementação contém dados de configuração que o ambiente de tempo de execução
utiliza para um aplicativo. Um descritor de implementação pode incluir informações
sobre o seguinte:
- A estrutura e o conteúdo (beans corporativos, por exemplo) do aplicativo.
- Referências a dependências internas e externas. Por exemplo, um bean corporativo
em um módulo EJB pode exigir outro bean corporativo que não esteja incluído no pacote configurável
do mesmo módulo.
- As referências a objetos da fábrica de recursos, como URLs ou origens de dados JDBC.
- Funções de segurança que o contêiner utiliza ao implementar o controle de
acesso exigido para o aplicativo.
- Informações transacionais sobre como (e se) o contêiner deve gerenciar
transações para o aplicativo.
Os descritores de implementação são arquivos XML compactados com os arquivos
do aplicativo em um arquivo archive Java. Um descritor de implementação EJB é chamado de
ejb-jar.xml e localiza-se na pasta META-INF de um projeto EJB.
Um aplicativo J2EE contém um arquivo descritor de implementação do nível do aplicativo
que regula o aplicativo como um todo. Ele também contém diversos descritores de implementação
do nível de componente, um para cada módulo no aplicativo.