I - Capítulo - Overview sobre a programação web lado server com Java

O universo java compreende um conjunto de infraestruturas agrupadas em três pilares. O Java SE (Java Standard Edition), o Java EE (Java Enterprise Edition), o Java ME (Java Micro Edition).

O Java EE é um conjunto standard de tecnologias para a programação server-side com Java. O Java EE compreende as tecnologias de Servlets, JavaServer Pages(JSP), JavaServer Faces (JSF), Enterprise JavaBeans (EJBs), JPA (Java Persitence API), o Java Messaging Service(JMS), etc.

A tecnologia de base proposta pela Sun Microsystems, ainda no alvor da plataforma java, para o desenvolvimento de aplicações web lado server é a tecnologia dos Servlets.

O Servlets são a primeira e principal tecnologia da Plataforma Java para o desenvolvimento de aplicações Web com conteúdo dinâmico. O Servlets surgiram no ano 1997 e hoje são uma tecnologia consolidada e madura e são a base para o desenvolvimento de qualquer aplicativo Web utilizando a plataforma Java. De realçar que a grande maioria dos framework Java para o desenvolvimento Web, têm por substrato a tecnologia dos Servlets.

Modelo das aplicações JavaEE

O modelo de aplicações Java EE tem como princípio e base a linguagem de programação Java e a sua maquina virtual (Java virtual machine - JVM).

Este modelo de aplicações JavaEE define uma arquitetura para a implementação de serviços como aplicações de múltiplas camadas com recursos de escalabilidade, acessibilidade e capacidade de gestão necessária para as aplicações de nível enterprise.

Este modelo divide o trabalho necessário para implementar um serviço de várias camadas em duas partes:

A logica de negócio e de apresentação cuja responsabilidade de implementação é da equipa de desenvolvimento ou no caso do desenvolvedor individual, de uma pessoa;

E os servições padrão fornecidos pela plataforma JavaEE.

Durante a implementação a equipa de desenvolvimento ou o desenvolvedor pode contar com a plataforma que fornece recursos e soluções para sistemas com elevado nível de complexidade.

Arquitetura e componentes de uma aplicação Web Java EE

De uma forma geral pode-se dizer que uma aplicação WEB é uma coleção de diversos recursos, tais como páginas HTML, imagens (jpg, gif, png), ficheiros xml, Servlets, páginas JSPs e componentes Javabeans, classes entre outros objetos.

Também pode-se definir uma aplicação Java Web como uma extensão dinâmica de um servidor web ou de uma aplicação.

Existem dois tipos de aplicações web: aplicações web orientadas à apresentação e aplicações web orientadas à serviços.

Uma aplicação web orientada à apresentação gera páginas web interativas contendo vários tipos de conteúdo das linguagens de marcação (HTML, XHTML, XML, etc) e conteudo dinâmico em resposta à requisições.

Uma aplicação web orientada a serviços implementa o end point de um Web Service. As aplicações orientadas à apresentação muitas vezes são clientes das aplicações web orientadas a serviços. O presente ebook aborda a implementação de uma aplicação orientada à apresentação com o framework JavaServer Faces.

A plataforma Java EE utiliza um modelo de aplicação distribuída multi-camadas para a implementação de aplicações enterprise.

A lógica da aplicação é dividida em componentes de acordo com a função, e os componentes da aplicação que definem uma aplicação Java EE são instalados em várias máquinas dependendo da camada a que o componente pertence dentro do ambiente de desenvolvimento multi-camada Java EE.

Uma aplicação Java EE em geral consiste em três ou em quatro camadas conforme a figura a seguir.

A figura mostra duas aplicações Java EE multicamada divididas nas camadas descritas a seguir. As partes mostradas representam componentes Java EE

Client tier. Representa os componentes da camada cliente que são executados na maquina cliente.

Web tier. Representa os componentes Web que são executados no servidor JavaEE.

Business tier. Representa os componentes da camada de negócios que também são executados no servidor Java EE.

EIS tier. Representa a camada do sistema de informação enterprise (EIS - Enterprise Information System). Esta camada compreende a Base de Dados da Aplicação e o Sistema de Gestão de Base de Dados.

São incluídos nesta camada os sistemas integrados de gestão (ERP - Enterprise Rerource Planning) e quaisquer outros sistema de informação legados.

Com o apoio da API JCA (Java Connector Architecture) esta camada provê uma infraestrutura de software que mapeia dados e recursos de aplicações existentes dentro de projetos JavaEE de forma padronizada.

Os sistemas de informação podem estar localizados num host diferente do host em que é executado o servidor de aplicações JavaEE.

Aplicações Java EE em três camadas

Embora uma aplicação Java EE possa consistir em todas as camadas apresentadas na figura xxx, as aplicações Java EE multi-camada geralmente são consideradas apenas como sendo aplicações em três camadas por poderem ser distribuídas em três diferentes lugares:

· As maquinas clientes

· A maquina que funcionar como servidor JavaEE

· E o servidor de base de dados ou maquinas com sistemas legados no back-end.

As aplicações em três camadas que funcionam desta forma, estendem o padrão das duas camadas do modelo client-server, colocando um servidor de aplicações multi-camada entre a aplicação cliente e o sistema de armazenamento do back-end.

A separação lógica é fundamental para o desenvolvimento, manutenção e entendimento do sistema como um todo.

A arquitetura em três camadas separa as entidade em três outras camadas, em função das responsabilidades e funcionalidades visando a construção de sistemas flexíveis e escaláveis. A camadas em referencia são:

  • A camada de apresentação

  • A camada das regras de negocio

  • E a camada de acesso e persistência de dados

Camada de apresentação

A camada de apresentação corresponde ao que comumente se chama GUI (Graphical User Interface), ou simplesmente interface.

É esta camada que permite interagir com o sistema. É através dela que são feitas as requisições, a coleta e validação das informações do utilizador e é também através desta camada que são visualizados os dados do resultado das requisições.

Os formulários, menus, tabelas de dados e demais elementos visuais, fazem parte da camada de apresentação.

Numa aplicação com JavaServer Faces, a camada de apresentação é composta por um CDI Bean e por um conjunto de ficheiros XHTML baseados na tecnologia dos Facelets.



Camada das regras de negócio

Esta camada também pode ser chamada, simplesmente, camada lógica ou camada do domínio.

A camada das regras de negócio controla todo o fluxo de dados na aplicação e funciona como intermediária entre a camada de apresentação e a camada de acesso e persistência de dados.

Esta camada modela o domínio do problema, implementa a lógica do negócio, bem como a lógica das transações. Nela ficam todas as classes básicas de negócio, as coleções de negócio e as classes de fachada[1] do sistema. Representa o núcleo da aplicação em termos de processamento.

A camada das regras de negócio, pode ser implementada com a utilização dos EJB (Enterprise JavaBeans), CDI Beans ou classes subsidiárias de serviço criadas para ao efeito. O CDI é o padrão Java para injeção de dependência e gestão do ciclo de vida contextual da plataforma Java EE.

Camada de acesso e persistência de dados

 A camada de acesso e persistência de dados é a camada responsável pela definição dos processos de acesso e persistência dos dados e mantem os objetos da camada de negócios ignorante em relação às operações de persistência na base de dados.

O critério para a implementação da responsabilidade e acesso aos dados em classes específicas, é orientada pelo Design Pattern DAO (Data Acces Object). As Entidades de persistência JPA e todos os objetos próximos, são nesta camada.

É uma camada não prevista num modelo estrita e puramente Orientado a Objeto e quase sempre implica a utilização de um Sistema de Gestão de Base de Dados Relacional (SGBR).

Padrão de Arquitetura MVC

O MVC (Model - View - Controller) é um padrão de arquitetura que descreve uma forma de estruturar uma aplicação, as responsabilidades e interações para cada uma das partes da estrutura. A maior incidência do padrão MVC está na definição da forma de interação entre as camadas.

O padrão de projeto MVC, isola a lógica funconal da interface com o utilizador e torna a aplicação mais fácil de manter e maior escalabilidade. Aplicando o padrão arquitetural MVC, a manutenção tanto da aparência visual quando das regras funcionais são facilitadas e a alteração de uma camada não afeta a outra.

O padrão MVC separa os componentes de uma aplicação em três camadas:

  • Camada de dados (Model – Modelo)

  • Camada de interface (Visão – View)

  • Camada lógica (Controlador – Controller)

Os objetos persistentes da aplicação são o Modelo, a apresentação na tela é a Visão e o Controlador é o objeto que faz a gestão das interações entre a visão e o modelo. A seguir são apresentados mais detalhes de cada uma das camadas.

O modelo representa a lógica de negócio. Aloja as entidades da aplicação e pode interagir com a base de dados.

Nesta camada um dos padrões mais utilizado é o padrão DAO (Data Access Object) ou seja Objeto de Acesso aos Dados.

O DAO é uma interface independente que encapsula o acesso à base de dados. Quando o controlador interage com a base de dados o faz através do DAO.

O padrão DAO tem como premissa principal a ideia de colocar todas as funcionalidades de acesso e trabalho com dados num só local, tornado simples a sua manutenção.

Numa aplicação, em geral, é criado um DAO para cada classe de objetos que será persistida na base de dados. O DAO é responsável por implementar os métodos CRUD – Create - Retrieve(Read) – Upade – Delete. Ou seja, o DAO implementa todos os métodos para inserir, selecionar, atualizar e/ou eliminar objetos de uma base de dados.

A visão é a parte da aplicação que permite a interação com o utilizador. É a interface com o utilizador. Apresenta os dados resultantes do Model do MVC ao utilizador.

Recupera o estado do modelo através do controlador e também obtém a entrada do utilizador e a repassa através do controlador.

Numa aplicação Web a visão é constituída pelas páginas, no atual, construídas com JavaServer Faces.

O Controlador é o intermediário entre a visão e o modelo. Faz a gestão do fluxo da informação entre eles e as transformações para adaptar os dados às necessidades de cada um.

Delega a busca dos dados ao modelo e seleciona o tipo de resposta mais adequado à requisição do cliente.

Recupera a entrada do utilizador a partir de uma requisição e a traduz numa requisição para o modelo. Aciona o modelo para atualizar e disponibilizar um novo estado para a visão.




[1] Uma classe de fachada, é utilizada para oferecer um caminho único para o acesso aos servições da camada das regras de negócio.

results matching ""

    No results matching ""