Next: Interface web
Up: Arquitetura do sistema
Previous: Visão geral
  Sumário
A camada de apresentação é composta pelos seguintes itens:
- controle de fluxo de atividades: como o sistema possui uma
interface web, é possível, a princípio, acessar qualquer página desde
que se disponha de seu endereço. Isso porque não há, nos sistemas web
convencionais, nada que force o usuário a acessar páginas numa ordem
pré-definida. Esse comportamento constitui uma potencial falha de
segurança do sistema, já que o controle de sessões é feito via
servlets no nosso caso. O controle de fluxo vem, justamente,
determinar quais são as seqüências de acessos que devem ser seguidas,
forçando o usuário a seguir os passos corretos;
- controle de acesso: o acesso ao sistema só é permitido a
usuários previamente cadastrados e que, portanto, possuem login e
senha. Objetivando aumentar a segurança, utilizamos o protocolo https
para a comunicação criptografada do cliente com o servidor. Assim, a
senha fica protegida contra a interceptação de terceiros;
- controle de visibilidade: através desse controle é
possível determinar o que o usuário pode ou não enxergar após ter acesso
ao sistema, isto é, determina quais são os recursos do sistema que
ficarão disponíveis ao usuário e quais ele não terá acesso;
- desenho de processos (de negócio): o sistema fornece
interfaces para o desenho de processos. O usuário que desenha os
processos deve ter conhecimentos de Redes de Petri estendidas, como
será abordado mais adiante.
- controle de processo: O sistema permite um nível de
controle fino sobre instâncias de modelos de processos em execução,
provendo acesso e permitindo a manipulação, em separado, de itens de
trabalho individuais, de acordo com o agente responsável. Isso
significa que é possível, através do sistema, obter uma visão
detalhada da evolução dos processos em voga.
Para o desenvolvimento da camada de apresentação fez-se uso do modelo
MVC (Model-View-Controller). Este modelo descreve a
organização de uma aplicação em três módulos separados:
- Model (``Modelo''): compreende o modelo de
aplicação, contendo a representação de dados e lógica de negócios;
- View (``Apresentação''): trata aspectos
relacionados à apresentação e entrada de dados de usuário;
- Controller (``Controle''): é responsável por
despachar requisições e controlar seus fluxos.
Na literatura, o modelo MVC aplicado à apresentação é conhecido em
duas versões que são chamadas de Modelo 1 e Modelo 2. A
arquitetura proposta no Modelo 1 diz que um navegador, por exemplo,
tem acesso direto ao módulo de apresentação e é o módulo de
apresentação que faz a comunicação direta com o módulo responsável
pelo modelo. Já na arquitetura proposta no Modelo 2, há uma discussão
sobre o módulo de controle que desempenha o papel descrito acima.
Figura 2:
Modelo MVC 2 adaptado a este projeto.
|
Para a elaboração desse projeto, fez-se uso do Modelo 2. Através do
modelo foi possível centralizar a lógica de despachar requisições
na classe DispatchAction, facilitando a implementação do controle
de segurança e acesso ao sistema.
Para facilitar o uso do Modelo 2, foi utilizado o framework
(``arcabouço'') Struts. O Struts é um framework de código
aberto que fornece componentes de controle e interage com outras
tecnologias de acesso à base de dados padrões como JDBC e EJB, além de
interagir com várias ferramentas fornecidas por terceiros como
Hibernate, iBATIS, ou Object Relational Bridge.
A princípio, o Struts também poderia ser utilizado como ferramenta
para o módulo de apresentação. Entretanto, para que isso ocorresse, as
páginas web deveriam ser implementadas utilizando-se JSP's
(Java Server Pages), que apresentam a desvantagem de serem
difíceis de serem depuradas.
Por este motivo, optou-se pelo uso da ferramenta de templates Velocity
no módulo de apresentação. O Velocity possui uma linguagem de
templates (Velocity Template language - VTL) simples, porém
muito poderosa. Templates são arquivos que descrevem uma estrutura de
formatação, contendo diretivas indicando valores a serem inseridos e
ações a serem executadas pelo sistema.
Subsections
Next: Interface web
Up: Arquitetura do sistema
Previous: Visão geral
  Sumário
Cleber Miranda Barboza
2004-02-29