Arquiteturas para Acesso a Bancos de Dados Através da Web

Ana Valéria Farias Barroso, Guy Barroso

Projeto FLASH - Formalizações da Administração de Sistemas Heterogêneos

Resumo

A integração dos Sistemas de Gerenciamento de Bancos de Dados (SGBDs) com a Web vem sendo impulsionada pela grande expansão da tecnologia Web nos últimos anos aliada à demanda por mais informa&c cedil;ões e por formas mais eficientes para busca e armazenamento de dados. Como vantagens da integração, tem-se que os SGBDs acrescentam à Web mecanismos operacionais eficientes e robustos para o acesso e manutenç&atild e;o da consistência dos dados. Surgiram, porém, inúmeros problemas técnicos decorrentes do uso conjunto das duas tecnologias. A compatibilidade entre elas é implementada em produtos de software chamados gateways, cuja fu nção é interfacear o ambiente Web com os SGBDs, permitindo que as aplicações lancem mão dos recursos desenvolvidos isoladamente em cada um deles. As arquiteturas de integração (i.e., os gateways) ap resentam uma grande diversidade de características e funcionalidades quando comparadas segundo critérios de local de execução (cliente, servidor Web, servidor de Banco de Dados); desempenho; facilidade para o desenvolvimento d e aplicações e portabilidade; aspectos transacionais; reaproveitamento de sistemas legados. A análise do software integrador segundo esses parâmetros irá determinar a sua adequação ao ambiente operacional pa rticular da Organização.

Uma transação Web consiste num pedido de página que é enviado pelo cliente ao servidor Web obedecendo ao protocolo HTTP. O servidor deve atender ao pedido enviando a página ao cliente que é resp onsável pela visualização da mesma. Este ambiente tem uso intensamente difundido por se basear em três padrões abertos, a saber: uma forma de localizar os recursos (URL - Uniform Resource Locator); um protocolo para a tro ca de documentos (HTTP - HyperText Transfer Protocol); e uma forma de descrever o formato dos documentos (HTML - HyperText Markup Language). O projeto original da Web também previa uma interface padrão para execução de program as externos ao servidor Web (CGI - Common Gateway Interface), que por sua vez podem fazer acesso a SGBDs para a montagem dinâmica do documento que será enviado de volta ao cliente. Este modelo de transação que se completa com o atendimento ao pedido de um documento não se adequa aos requisitos funcionais das atuais implementações de aplicações cliente/servidor de banco de dados. Para atendê-los é necessário que exista um gat eway que estabeleça conexões ao SGBD em nome dos clientes e as mantenha durante a troca de várias páginas entre o servidor e o cliente Web.

Existem variações arquiteturais para a implementação do gateway. Numa primeira arquitetura o gateway pode consistir num aplicativo externo que após ativado pelo servidor Web passa a receber pedidos do s clientes que lhe são passados através de pequenos programas ativados via interface CGI, chamados de despachantes. O gateway possui as informações essenciais sobre o usuário e mantém sua sessão sob o SGBD até que expire algum temporizador (timeout) ou até que ocorra algum evento previsto na aplicação. Nesta arquitetura o aproveitamento das funcionalidades do SGBD pelas aplicações Web fica sob o controle do gateway. O desempenho não é tão bom devido às características da interface CGI, por onde são executados os despachantes (um para cada pedido).

O gateway pode ser implementado como uma extensão do Servidor Web, por meio de suas APIs. Nesta arquitetura ele executa no mesmo espaço de memória do servidor, tendo acesso a suas estruturas de dados internas. Apes ar do ótimo desempenho proveniente da intimidade entre aplicação e servidor, o desenvolvimento de aplicações é complexo e deve ser feito com extremo cuidado, pois elas poderão interferir nas funç&oti lde;es do servidor. Neste caso as aplicações não são portáveis entre servidores Web distintos.

Uma outra forma de estender o servidor Web é incorporar o protocolo de comunicação de um SGBD específico e adicionar ao servidor mecanismos próprios para o desenvolvimento de aplicações integradas ao SGBD. Nesta arquitetura o servidor é capaz de realizar acesso nativo ao SGBD, agindo como um cliente deste que, por sua vez, é capaz de atender pedidos de outros clientes Web via HTTP.

Ao invés de estender o servidor Web, o acesso ao SGBD pode ser feito diretamente pelo cliente. Nesta arquitetura, o servidor atende ao pedido enviando ao cliente instruções para executar uma aplicação (ou um plug-in que foi previamente instalado no cliente Web). É uma forma natural para transpor aplicações cliente/servidor de banco de dados para o ambiente Web, rodando sob o controle do browser, tipicamente em Intranets, onde o cli ente Web pode ter acesso ao SGBD. O fato da aplicação ser executada no cliente compromete o desempenho desta técnica como também sua portabilidade (o cliente Web deve ser capaz de executar a aplicação e o componen te que a executa deve ser instalado em cada máquina cliente).

O acesso ao SGBD diretamente a partir do cliente Web pode se dar com a utilização de linguagens de código móvel interpretadas no cliente. Ao ser pedido o documento, o servidor envia além dele o c&oacut e;digo móvel da aplicação e o driver gerente de comunicação com o SGBD. O cliente nesta arquitetura fica responsável, além de visualizar o documento, por interpretar a aplicação que utilizar&a acute; as funções do driver para acessar o SGBD. Esta solução apresenta boa portabilidade para a aplicação, desde que seja utilizada uma ferramenta "padrão" de linguagem e que o cliente tenha possibilidade de acesso direto ao SGBD. Os aspectos de desempenho ficam comprometidos devido à carga na rede. Esses fatores tornam a solução adequada a intranets. Seu potencial é estender a linguagem HTML de uma forma "aberta", com desenvolv imento flexível de aplicações portáveis e seguras.

O desenvolvimento de aplicações baseadas em componentes deu origem a mais uma arquitetura de integração Web e banco de dados. Aplicações distribuídas podem ser disparadas por um servidor Web com uma interface de comunicação para um Servidor de Transação (ST), onde será executado pelo menos um componente da aplicação. O componente inicialmente disparado coopera com outros componentes que pod em estar distribuídos pela rede (no ST, no cliente, ou em outro local), desde que haja uma plataforma comum que suporte a comunicação entre componentes. O ST é responsável por oferecer serviços aos componentes que usam o SGBD, agindo como um monitor de processamento de transações. Em alguns casos os componentes podem ser escritos em linguagens de programação diversas, bastando que sejam escritos de acordo com a especificaçã ;o do modelo de componente de software estabelecido (por exemplo, CORBA ou DCOM). Ao final do pedido do cliente os dados são retornados via servidor Web. O uso de um ST consiste na melhor alternativa para trazer uma arquitetura distribuída p ara o ambiente integrado da Web com bancos de dados.

Ainda de acordo com esta arquitetura de componentes, o gateway pode ser implementado como applets Java que, após serem descarregados no cliente, realizam parte da lógica da aplicação e são respons&aacu te;veis pela conexão com uma camada da aplicação que executa num monitor de processamento de transações para o acesso ao SGBD.

A integração da Web com bancos de dados é uma área recente de pesquisa. Inúmeros produtos comerciais existem no mercado com o objetivo de permitir que os controles operacionais dos SGBDs sejam dispon&i acute;veis para as aplicações desenvolvidas para o ambiente Web. Porém, os requisitos destas novas aplicações ainda exigem estudos em busca de soluções e padrões que facilitem o projeto de sistemas p ara o ambiente integrado.

Além dos trabalhos abordando o ambiente integrado da Web com bancos de dados, existem propostas de visualizar a Web como um enorme banco de dados de documentos. Estes trabalhos propõem linguagens de consultas para recupera ção de informações na Web, implementação de sistemas para indexação e busca, técnicas para manutenção da integridade referencial de links, consulta a informações se mi-estruturadas, estudos sobre a computabilidade de consultas na Web, dentre outras.


Curriculum Vitae dos Autores

Ana Valéria Farias Barroso Bacharel em Ciência da Computação (UECe), Mestranda em Ciência da Computação (UFC). Áreas de interesse: Integração de Bancos de Dados Heterogêneos, Arquitetura de Mediadores para Sistemas de Bancos de Dados Distribuídos.

Guy Barroso Engenheiro Mecânico (UFC), Especialista em Análise de Sistemas (UFRJ), Mestre em Ciência da Computação (UFMG). Áreas de interesse: Engenharia de Sistemas baseados na Web e Integração de Bancos de Dados Heterogêneos.


O Projeto FLASH é um projeto de pesquisa financiado pelo ProTeM-CC / CNPq. Participam, dentre outras instituições, a Universidade Estadual do Ceará (UECe) e a Universidade Federal do Ceará (UFC).


Alguns Links relacionados

http://www.inf.ufrgs.br/~rosalvo/wing.html

http://www.omg.org

http://hoohoo.ncsa.uiuc.edu/docs

http://www.inf.puc-rio.br/~iremar

http://www.dbmsmag.com

http://www.javaworld.com

http://splash.javasoft.com/jdbc/jdbc.ps

http://www.cs.vu.nl/~eliens/WWW5/papers

http://www-db.stanford.edu/pub/papers

http://www.ics.uci.edu/pub/ietf/html/rfc1866.txt

http://solo.dc3.com/white/extending.html

http://grigg.chungnam.ac.kr/projects/UniWeb/documents/taxonomy/text.html

http://microsoft.com/intdev/activex/tutorial

http://www.w3.org