Unidade A - Introdução aos Sistemas Web baseados em Java

Arquitetura Java EE

Como visto na disciplina de LPOO, Java possui com grande conjunto de tecnologias que são agrupadas em diferentes plataformas. Estas plataformas agrupam programas relacionados que permitem o desenvolvimento e execução de programas escritos na linguagem de programação Java. As plataformas são divididas em quatro:

Todas as plataformas consistem de uma máquina virtual Java (JVM) e uma API. Quando a maioria das pessoas pensa na linguagem de programação Java, elas pensam na plataforma Java SE.

Java EE é uma plataforma construída a partir da plataforma Java SE e consiste de uma série de especificações bem detalhadas. O Java EE fornece uma API e um ambiente de execução para desenvolvimento e execução de aplicações de larga escala que envolvem múltiplas camadas, escaláveis, confiáveis e seguras. Estas aplicações ganharam o nome de enterprise applications, mas são projetadas para solucionar problemas encontrados em grandes corporações. As enterprise applications não são somente úteis para grandes corporações e governos, porém também podem beneficiar desenvolvedores individuais e de pequenas empresas.

A arquitetura Java EE também utiliza um modelo multicamadas (camada de apresentação, camadas intermediárias e camada de armazenamento) onde o desenvolvimento de uma aplicação Java EE se concentra nas camadas intermediárias para tornar o gerenciamento da aplicação mais fácil, mais robusto e mais seguro.

A arquitetura multicamadas da Java EE é dividida nas seguintes camadas:

Para desenvolvimento na plataforma J2EE, é necessário entender cada uma dessas camadas e seu funcionamento. A Figura A.5 apresenta a arquitetura multicamadas da Java EE.

Fonte: http://download.oracle.com/javaee/5/tutorial/doc


A arquitetura Java EE especifica um conjunto de tecnologias utilizadas nas diversas camadas. Tecnologias Java EE utilizadas na camada Web:

A camada de negócio consiste em fornecer um conjunto de regras de negócio para a aplicação. Esta camada também envolve um conjunto de tecnologias:

A camada EIS consiste nos servidores de banco de dados, entre outras e também possui um conjunto de tecnologias envolvidas:

Algumas das tecnologias apontadas acima, como JSP, servelts e JDBC, serão trabalhadas com mais profundidade. Porém, existem dois conceitos importantes que você deverá aprender: servidores de aplicação (Java EE Servers) e containers (Java EE Containers).

A comunicação entre as camadas e os servidores pode ser observada na Figura A.6. No caso de uma aplicação acessada por um navegador, a comunicação deve ser feita com a camada Web para depois acessar a camada de negócio e a camada EIS. Já uma aplicação cliente Java, pode acessar diretamente a camada de armazenamento.


Servidores de Aplicação

Um servidor de aplicação Java EE implementa as APIs da plataforma Java EE e fornece os serviços padronizados de Java EE. Tais servidores ganham este nome (servidores de aplicação) porque eles fornecem (servem) a dados de aplicação para os clientes. Existem diversas implementações destes servidores. Alguns desses servidores estão listados a seguir:

Algumas implementações programam apenas uma parte das especificações do Java EE, como o Apache Toncat que só programa JSP e Servlets, portanto não é totalmente correto chamá-lo de servidor de aplicação; o correto é utilizar o termo application server web profile. Ressalto que, nesta disciplina, será utilizado o Apache Toncat.

Os servidores de aplicação suportam diferentes tipos de componentes Java. Um servidor de aplicação fornece servições para estes componentes na forma de um container.

Containers

Os Java EE containers são interfaces entre um componente Java e as funcionalidades específicas fornecidas por uma plataforma para suportar tal componente. A funcionalidade do containers é definida pela plataforma e é diferente para cada tipo de componente.

Para nós, interessa um container que suporte as funcionalidades para o desenvolvimento de aplicações Web como JSP, Servlets, JSTL e JSF. Este container (servlet container) não necessita implementar todo do Java EE. Existem diversos servltes container. Nós utilizaremos o Apache Toncat. A Figura A.7 apresenta a relação de servidores de aplicação e containers.


 

Estude mais sobre Java EE. Existe muita documentação na internet. Um bom tutorial pode ser encontrado no site da Oracle: http://download.oracle.com/javaee/5/tutorial/doc.