Mestrado em Inteligência Artificial e Computação
Sistemas de Bases de Dados
Ano lectivo de 2001/2002

Requisitos Tecnológicos da aplicação a desenvolver

A aplicação deverá ser implementada segundo uma arquitectura multi-camada com a interface com o utilizador na Web, lógica de negócio numa camada intermédia e o suporte para dados persistentes numa Base de Dados Objecto-relacional (e.g. Oracle 8i, Oracle 9i ou PostgresSQL).

I/ Interface com o Utilizador

A interface com o utilizador deverá ser conseguida com recurso a páginas estáticas em HTML ou a páginas JSP com conteúdo gerado dinamicamente.

Os dados introduzidos em formulários deverão ser validados, no cliente (Navegador WEb), através da utilização de Javascript.

Por forma a manter um estilo consistente em toda a aplicação e para este ser facilmente alterável, deverão ser usadas folhas de estilo CSS (Cascading Style Sheets).

As páginas JSP lidam exclusivamente com a interface e delegam em Beans a realização de todas as operações, nomeadamente a ligação à Base de Dados para procura ou actualização de informação.

II/ Lógica de Negócio

A lógica de negócio deve ser suportada em Beans, invocados pelas páginas JSP da interface, através de <usebean ...>.

Podem existir servlets de controlo no caso de ser adoptado o Modelo 2 (MVC) para arquitectura da aplicação, ou para outros fins.

Um Bean pode usar outros Beans para realizar uma dada função; por exemplo, um Bean centraliza a ligação à Base de Dados através de JDBC.

Informação de estado deve ser passada entre páginas JSP ou Beans através da utilização de sessões. Por exemplo, uma vez introduzido o userid e validado o utilizador todas as verificações de acesso deverão ser feitas com recurso à sessão. Um outro exemplo de utilização de sessões é o da ligação JDBC à Base de Dados que, uma vez estabelecida, será usada por todos os pedidos posteriores, do mesmo cliente, para aceder à Base de Dados.

III/ Base de Dados

A Base de Dados, onde residem os dados persistentes do aplicação, deverá ser acedida, directa ou indirectamente, através de uma ligação JDBC ou SQLJ.