Next: Interface web
Up: Arquitetura do sistema
Previous: Visão geral
  Sumário
No desenho deste projeto, os principais componentes presentes na camada de apresentação são:
- controle de fluxo de atividades: como o sistema possui uma interface web, teoricamente, seria possível acessar qualquer página tendo conhecimento prévio de seu endereço, pois não haveria nada que impedisse o usuário de acessar o que ele quisesse na ordem que ele quisesse. Isto constitui uma falha de segurança do sistema. 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 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 WF's: o sistema fornece interfaces para o desenho de WF. Assume-se que o usuário responsável pelo desenho de um WF tenha conhecimentos de Redes de Petri Coloridas;
- controle de WF's: após o desenho de um WF, pode-se criar várias instâncias do mesmo. Assim, o sistema fornece meios para controlar essas instâncias, além do controle dos agentes responsáveis por cada item de trabalho associado a cada fase de processo de um WF.
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''): um para o modelo de aplicação, contendo a representação de dados e lógica de negócios;
- View (``Apresentação''): um segundo que trata aspectos relacionados à apresentação e entrada de dados de usuário;
- Controller (``Controle''): e um terceiro que é 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á a introdução do módulo de controle que desempenha o papel descrito acima.
Figura:
Modelo MVC aplicado a camada de apresentação.
|
Para a elaboração desse projeto, fez-se uso do Modelo 2. Através desse modelo foi possível centralizar a lógica de despachar requisições em uma única classe (ver figura), o que facilitou 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 para ser utilizado 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 com grande parte de sua estrutura e formatação prontos, 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
Carlos Henrique de Fernandes
2003-12-08