Arquitectura do Sistema

A arquitectura desenhada foi baseada na 3 camadas (Three-tier), por ser a que melhor se aplica ao projecto.
A camada de apresentação será implementada numa interface WEB (páginas JSP).
A camada lógica, como pode ser visto na imagem, terá os agentes inteligentes, que para além de efectuar toda a lógica da aplicação, servirá como middleware entre a camada de apresentação e a camada de dados.


Arquitectura da Interacção JADE <-> Interface Web

A interacção entre a Interface Web (páginas JSP) e a plataforma JADE é realizada através do JadeGateway utilizando objecto (BlackBoardBean) para realizar a comunicação e transmissão de informação entre o browser e os Agentes da plataforma JADE.
Para realizar esta interacção foi necessário criar o AgentReceiver. Este, analisa a informação contida no BlackBoardBean e consoante o seu conteúdo envia uma mensagem com os dados recebidos. Estas mensagens são:
- Mensagem para o AgentIndexer: Envia uma mensagem de Subscribe com o endereço do feed. Recebe do AgentDBWriter a informação da recepção do feed.
Na realização de update o AgentReceiver envia uma mensagem REQUEST para a realização do mesmo e recebe a resposta novamente do AgentDBWriter.
- Mensagem para o AgentSearcher: Cria mensagem QUERY_REF e envia para o AgentSearcher o conteúdo de pesquisa introduzido pelo utilizador. Recebe o resultado da pesquisa.
- Mensagem para AgentDBWriter: Envia mensagem INFORM para o AgentDBWriter com os conceitos introduzidos pelo utilizador.


Figura 2- Arquitectura da Interacção JADE <-> Interface Web


Arquitectura dos Agentes

Como pode ser visualizado na figura existem 5 tipos de agentes.
Neste caso, o agente indexer terá a função de indexar notícias de feeds RSS, especificados pelo utilizador, que posteriormente adicionará a uma pool de notícias.
Caberá ao agente selector, fazer a escolha de uma notícia e atribui-la aos vários agentes classificadores. Por sua vez, estes enviarão as notícias classificadas ao agente DBwriter, que guardará na base de dados a notícia classificada.
O agente searcher efectuará a pesquisa na base de dados, a partir de um conjunto de palavras inserido pelo utilizador. Este agente vai utilizar três algoritmos de pesquisa à escolha do utilizador (Algoritmo Índice de Jaccard, Semelhança do Co-Seno e Contagem de Palavras).

Figura 3- Arquitectura dos Agentes

Este diagrama mostra a configuração do sistema, especificando o número de agentes, os seus tipos e a interacção entre eles.
Facilmente se identifica todo processo desde a busca do texto das notícias, até à classificação da mesma e respectivo armazenamento na base de dados.
De realçar o agente de pesquisa, que utilizará três algoritmos de pesquisa distintos.