Java EE: Entendendo a plataforma

Veja nesse artigo o conceito da plataforma JEE, a função dos componentes, apresentação de exemplos nos processos de requisições de um cliente web e conheça também como as camadas funcionam.

Introdução ao Java EE (Java Enterprise Edition)

Ainda existem empresas que possuem sistemas antigos que “ajudam” ou “atendem” no gerenciamento das suas informações, mas em algum momento esses sistemas acabam não suportando os recursos comuns que hoje são utilizados nas empresas de grande porte.

Por exemplo, existem sistemas antigos que geram problemas no momento que obtém um número elevado de acessos simultâneos ou até mesmo no armazenamento de grande quantidade de informações. Para acabar com esse tipo de problema, a tecnologia Java Enterprise Edition, mais conhecida como Java EE vêm para ajudar a facilitar o ciclo de vida desses sistemas.

O que é Java EE?

O Java EE é uma plataforma ou ambiente para desenvolvimento de aplicações de grande porte e aplicações web que possui bibliotecas e funcionalidades que implementam softwares baseados na linguagem Java.

Confira o vídeo abaixo:

A plataforma Java EE oferece ao cliente e ao desenvolvedor recursos para as criações de sistema com segurança, escalabilidade, integridade, confiabilidade entre outros.

Essa plataforma tem uma série de tecnologias que têm objetivos distintos, sendo que as mais conhecidas são:

Containeres e Componentes

Para fornecer a comunicação entre componentes, APIs, persistência, serviços entre outros, o Java EE oferece os containeres para abrigá-los. Os containeres são implementados pelos fornecedores de servidor de aplicativos Java EE, que disponibilizam um container para cada tipo de componente como: Applet, cliente de aplicativo, web e EJBs.

Os componentes Web e EJB são distribuídos, gerenciados e executados em um servidor Java EE. Veja como funciona na Figura 1.


Figura 1. Arquitetura Lógica do Java EE.

Contêineres

Os contêineres armazenam, oferecem serviços (gerenciamento ciclo de vida, segurança, implementação, e comunicação com outros componentes) e recursos como um ambiente em tempo de execução compatível para os componentes Java EE conseguirem trabalhar.

Serviços dos Contêineres

Os contêineres fornecem a cada tipo de componente um conjunto de serviços:

Na Figura 2 vemos os principais serviços do Java EE.


Figura 2. Plataforma Java EE com serviços.

Conhecendo os componentes no Java EE

Os componentes são divididos em EJBs e Componente Web. Os EJBs possuem outras subdivisões: Beans de sessão, Beans de Mensagem e Beans de Entidade.

Enterprise JavaBeans – EJB

Os EJBs são responsáveis por facilitar o encapsulamento e compartilhamento da lógica do negócio. Para expor a lógica de negócio para outros componentes conseguirem utilizar e facilitar a interação entre o EJB e o cliente é envolvido dois mecanismos: RMI (Invocação de métodos remotos) e a JNDI (Interface de atribuição de nomes e diretórios do Java). Observe a Figura 3.


Figura 3. Uso de um cliente com a JNDI e RMI para acessar um EJB.

Conforme mostrado na Figura 3, um cliente usa a JNDI para procurar a localização do EJB, interagindo com a Fábrica (Base do EJB) para obter uma instância do EJB.


Figura 4. EJBs separando a lógica do negócio em lógico do aplicativo e do domínio
Algumas Vantagens dos Componentes Corporativos

Camadas

Na plataforma Java EE existem três tipos de camadas: Camada de Negócio, Camada de Apresentação e Camada Cliente.

Camada de Negócio

Essa camada também pode ser conhecida como camada física e tem o objetivo de encapsular a lógica do negócio ou EJBs que são usados pelos componentes da camada da apresentação que fornecem essa funcionalidade para usuários do aplicativo. Observe um exemplo na Figura 5.


Figura 5. Simulação de acessos simultâneos.

Camada de Apresentação

Essa camada é considerada como lógica de apresentação, pois governa as telas que são exibidas para o usuário e de como a lógica interagem entre a regra de negócio na sua camada respectiva para conseguirem trabalhar no processo corporativo. Também se leva em conta a maneira que o usuário visualiza a página, pois tudo depende do tipo de cliente (browser) que está tentando acessar.

Saiba mais sobre Java ;)

  • Carreira Programador Java:
    Aprender Java não é uma tarefa simples, mas seguindo a ordem proposta nesse Guia, você evitará muitas confusões e perdas de tempo no seu aprendizado. Vem aprender java de verdade, vem!
  • Guia Completo de Java:
    Neste Guia de Referência você encontrará todo o conteúdo que precisa para começar a programar com a linguagem Java, a sua caixa de ferramentas base para criar aplicações com Java.
  • Guia Completo de Java Enterprise Edition - Java EE:
    Neste Guia de Referência você encontrará todo o conteúdo que precisa para conhecer o Java EE, Java Enterprise Edition, a plataforma Java voltada para o desenvolvimento de aplicações web/corporativas.

Figura 7. Fluxo de requisição nas páginas JSPs.
  • Servlets: Os servlets são códigos Java que processam requisições (request) e resposta (response) em servidores que suportam essa tecnologia. Uma das habilidades dos servlets é a facilidade na comunicação com outros componentes Java EE. Na Figura 8 vemos como funciona o processo de requisição.

  • Figura 8. Processo da requisição de um cliente para uma servlet e um EJB.
  • Web Services: São componentes de middleware baseados em XML (eXtensible Markup Language) que permitem os aplicativos acessarem através de HTTP e SOAP, por isso conseguem consumir serviços web.
    O middleware é um programa que faz a interface entre o software e outras aplicações. O motivo da existência é porque pode ser utilizado para mover ou transportar informações e dados entre programas de diferentes protocolos de comunicação, plataformas e dependências do sistema operacional em questão.
  • Camada Cliente

    Suporta clientes web e portáteis (dispositivos móveis) que se comunicam através do protocolo HTTP, porém outros conseguem usar SOAP e outros tipos. Essa camada está formada por vários clientes como: HTML estático, HTML dinâmicos, Applet Java, independentes, empresa para empresas, clientes não java e outros clientes HTTP.


    Figura 11. Cliente independente interagindo diretamente com um EJB.

    Em outros casos, esse tipo de cliente ignora a camada de apresentação e de negócio justamente para acessar diretamente os recursos do sistema de informações corporativas através do JDBC.

    No exemplo da Figura 12 o cliente assume a responsabilidade pela camada da apresentação e de negócio.


    Figura 12. Interação do cliente independente com um recurso de informações corporativas.

    Exemplo Empresa para Empresa

    Nesse caso, muitos componentes conseguem conexão com componentes dentro da camada física do mesmo nível.

    Na Figura 13 é apresentada a arquitetura utilizada em um exemplo de aplicação web de uma loja de informática. Considerem que nessa loja, os atendentes solicitam os equipamentos, peças e acessórios que faltam através de um catálogo, através de um celular (dispositivo portátil).

    Portanto, cada pedido efetuado em uma página JSP que manipula os pedidos e acessa um catálogo através do recurso JDBC. Portanto, uma página JSP baixa a quantidade em estoque dessa peça e quando não possuir mais peças no estoque, essa página se conecta com outra página JSP no atacadista de peças para fazer o pedido de mais peças.


    Figura13. Comunicação entre contêineres diferentes de JSP.

    Essa prática seria melhor através dos recursos de troca de mensagens (JMS).

    Clientes – Não-Java: Esses clientes conseguem utilizar HTTP para acessar os serviços oferecidos por uma servlet ou JSP. Isso é aplicado para casos em que um servlet ou JSP precisa consumir e produzir informações orientadas a dados baseados em XML.

    Conteúdos no Portal DevMedia

    • E aí? Como você testa seus códigos?:
      O programador está sempre escrevendo testes. Neste DevCast falamos um pouco sobre uma das metodologias mais utilizadas e fundamentais, o teste unitário.
    • O que é Neo4j?:
      Neste curso você conhecerá o Neo4j, um banco de dados NoSQL que implementa o modelo de grafos, uma estrutura de dados composta por nós (vértices) que estão ligados por meio de relacionamentos (arestas).
    • ASP.NET MVC e Entity Framework: criando uma aplicação 1:N:
      Neste curso você aprenderá a implementar um CRUD em ASP.NET MVC com relacionamento 1:N (um para muitos). Veremos como desenvolver as telas do CRUD com seleção do registro relacionado em um dropdown, bem como fazer da forma mestre-detalhe, com adição de campos dinâmicos.

    Saiba mais sobre Java Enterprise Edition ;)

    • Java EE 7: novidades da plataforma:
      Veja neste artigo uma introdução ao Java EE 7. Estudaremos as principais novidades envolvidas na plataforma.
    • EJB 3.2: O que há de novo?:
      Este artigo apresenta as principais novidades da recém-lançada versão 3.2 da especificação Enterprise JavaBeans como parte da plataforma Java EE 7. Vamos analisar todas as funcionalidades adicionadas e modificações feitas nesta edição.
    • Introdução ao Java EE 6 Web Profile:
      O artigo trata do Perfil Web da especificação Java EE 6 (Java Enterprise Edition 6, Web Profile), que consiste em uma seleção de tecnologias para a construção de aplicações Web mais leves do que a especificação Java EE 6 completa.

    Referências:

    The Java EE 6 Tutorial

    Artigos relacionados