Optimização das Comunicações entre Aplicações e Bases de Dados
Nuno Alberto Paulino Fonseca
Mestrado em Inteligência Artificial e Computação
Universidade do Porto
Janeiro 2001
Resumo
Na última década assistiu-se a um quase meteórico crescimento dos
sistemas de informação e da sua interligação em rede, nomeadamente
através da Internet.
A estrutura destes sistemas, cuja fonte de dados é
normalmente um sistema de base de dados, assenta sobretudo no modelo
cliente/servidor. Como consequência deste desenvolvimento, as
comunicações, naturalmente existentes entre as fontes dados e as
aplicações de interface, bem como o volume de dados transferidos são
cada vez maiores e resultam num aumento significativo da latência no
acesso aos dados.
Esta tese propõe um modelo, e respectiva implementação, que visa
reduzir a latência no acesso aos dados por parte de aplicações. O
modelo baseia-se no uso de caches para guardar os dados mais
frequentemente usados e que resultam de consultas efectuadas à fonte
de dados. A coerência dos dados em cache é garantida por recurso aos
mecanismos de invalidação ou de actualização imediata.
A implementação deste modelo resultou no sistema Polites.
O sistema Polites foi desenvolvido de forma modular para que fosse
possível, testar e validar não só o modelo proposto, mas também
estratégias alternativas que venham a ser pensadas futuramente. O
sistema define uma interface de comunicação com as aplicações de forma
a uniformizar e tornar transparente o acesso a diferentes fontes de
dados por parte das aplicações.
No âmbito deste trabalho foi ainda desenvolvido uma API de acesso a base de dados, designada por
DBase, que mapeia os resultados das consultas a bases de dados em
estruturas de dados (na linguagem TCL) e as mantém coerentes.
O modelo proposto foi testado através da realização de experiências com o
Polites. Os resultados obtidos indicam que, em certas condições, é
possível reduzir a latência e o tráfego de dados para menos de
metade. No entanto, em alguns casos a utilização do sistema tem
efeitos contrários aos desejados, aumentando a latência e o número de
bytes transferidos.