Desenvolvimento - Java
Conhecendo a plataforma J2EE - um breve overview
A tecnologia Java na sua plataforma J2EE (Java 2 Enterprise Edition) será um dos principais temas da qual vou tratar nesse espaço do Linha de Código. Vamos iniciar com uma visão geral sobre toda a arquitetura, com alguns conceitos e principais APIs.
por Eric C M OliveiraPodemos definir J2EE como a plataforma Java para desenvolvimento e execução de aplicações servidoras, com capacidade de suporte ao desenvolvimento de aplicações robustas e escaláveis. Consiste em um conjunto de serviços, interfaces de programação de aplicação (APIs) e protocolos, que oferecem a funcionalidade para o desenvolvimento de aplicações de multicamadas, baseadas na Web.
Trata-se de uma das três plataformas de Java, somando-se a J2ME (Java 2 Micro Edition), voltada para pequenos devices como celulares e palmtops, e J2SE (Java 2 Standart Edition), voltada para aplicações cliente e composta pelas APIs básicas de Java.
A plataforma J2EE estende a linguagem Java através de padrões simples e unificados em aplicações distribuídas através do modelo baseado em componentes. Características como portabilidade e interoperabilidade fizeram com que a tecnologia se difundisse e se consolidasse pela industria de TI. Vale lembrar que Java permite o uso de qualquer sistema operacional, seja ele Windows, Unix ou Linux, ou mesmo plataforma Mainframe.
O foco é simplificar o desenvolvimento de soluções no âmbito enterprise através de padrões, serviços e, principalmente, componentes modulares. Estes componentes, unidades de software em nível de aplicação com suporte a um contêiner, são configuráveis durante o desenvolvimento e incorporam um modelo de programação de acordo com o "contrato de componente" com seu contêiner. Isto é, um contêiner, oferece serviços de gerenciamento de ciclo de vida, segurança, distribuição e runtime para seus componentes.
A plataforma define, segunda a especificação da Sun, empresa criadora da linguagem Java, os seguintes tipos de contêiner:
- EJB (Enterprise Java Beans): um dos contêiner mais conhecidos da arquitetura, especifica um ambiente de runtime para enterprise beans como serviços de segurança, concorrência, gerenciamento de ciclo de vida, transação, entre outros serviços. Os beans rodam no servidor J2EE.
- WEB: trata-se da implementação de contrato de componente da Web com a arquitetura J2EE, fornecendo ambiente de runtime para os componentes do tipo web que incluem desde segurança até gerenciamento de ciclo de vida e transação. Inclui Servlets (classes Java que podem ser carregadas dinamicamente e executar sob um servidor web) disponibilizadas por serviços de rede referentes aos pedidos e respostas enviados, com uso obrigatório do protocolo HTTP. E também engloba JSPs (Java Server Pages - tecnologia Web que utiliza, por exemplo, linguagens de scripting e objetos Java no servidor para retorno dinâmico a um cliente).
- Applet: contêiner Web que gerencia a execução de applets.
- Cliente da aplicação: Um contêiner que aceita e gerencia a execução de componentes do cliente da aplicação.
Na figura abaixo, são ilustrados os componentes e containers J2EE.
Algumas das principais APIs e suas funcionalidades da versão mais atual de J2EE (1.4) são:
- Enterprise JavaBeans
API que padroniza componentes J2EE do lado servidor, com regras de desenvolvimento definidas como implementação de interfaces responsáveis por tarefas definidas ou regras de herança. Tem como vantagem o tratamento automático de segurança, persistência, transação dentre outros serviços. Hoje a tecnologia EJB tornou-se um padrão para desenvolvimento de aplicações coorporativas distribuídas e multicamadas, realizando o encapsulamento da lógica de negócio de uma aplicação. - Java Servlet / JavaServer Pages
Um servlet estende as funcionalidades de um webserver e pode fazer uso de qualquer outra API. Um JSP faz as funções de um script em uma página web e é compilado como servlet em seu container. Uma página JSP contém dois tipos de texto: estático, representado por marcações HTML, WML, ou XML, e elementos dinâmicos JSP. - Java Message Service API (JMS)
API que permite o acesso de forma padronizada serviços de mensagens na interação com outros tipos de programas, com uso de mecanismos de criação, envio, recebimento e leitura de mensagens. - Java Transaction API (JTA)
Especifica uma interface para as aplicações utilizarem um serviço de suporte transacional, por exemplo, gerenciamento de aplicações distribuídas. - JavaMail API / JavaBeans Activation Framework (JAF)
São implementações de suporte ao envio e recebimento de e-mails em Java. - J2EE Connector Architecture (JCA)
As APIs que formam esse tipo de arquitetura tem como funções prover integrações entre sistemas de forma corporativa, ou seja, padronizar conexões entre sistemas Java e EIS (Enterprise Information Systems), como por exemplo, ERPs e CRMs. - JDBC
API de acesso a bancos de dados. Sua importância esta no fato de permitir o acesso a diferentes tipos de bancos de dados usando a mesma API. - Java Naming and Directory Interface (JNDI)
Tem como objetivo fornecer uma interface padrão para localização de usuários, máquinas, objetos, redes e serviços. JNDI pode ser utilizado tanto para localização de um computador em uma rede, quanto para busca de objetos Java. - Java API for XML Processing (JAXP)
Trata-se de um conjunto padrão de APIs para XML adicionados nas versões mais recentes de J2SE e J2EE. Suporta os analisadores padrão SAX e DOM, assim com XSLT, dando assim maior controle sobre a apresentação de dados e capacitando a conversão de dados. Essas bibliotecas também estão disponíveis separadamente (JAX Pack) , contendo outras APIs específicas para uso de XML e Web Services, como JAX-RPC ou JAXR.