banco de dados e web

22
Banco de dados e WEB Alan Vieira e José Marques

Upload: darkmenbr

Post on 03-Dec-2015

217 views

Category:

Documents


1 download

DESCRIPTION

Bando de dados e web, aplicações estáticas e dinâmicas, arquitetura de aplicações web integradas a um banco de dados, propriedades desejáveis de aplicações web SGBD, arquitetura web baseada em programas CGI, em aplicação SSI, Qual é a arquitetura mais adequada.

TRANSCRIPT

Page 1: Banco de Dados e WEB

Banco de dados e WEB

Alan Vieira e José Marques

Page 2: Banco de Dados e WEB

Aplicações web estáticas e dinâmicas

• Antes, alguns conceitos básicos e rápidos:

• HTML: É uma linguagem de marcação utilizada para produzir páginas na Web. Basicamente trata-se de um conjunto de etiquetas (tags) que servem para definir a forma na qual se apresentará o texto e outros elementos da página. Os documentos HTML são ser interpretados pelos navegadores e produzem a página web requerida.

• HTTP: É um protocolo que os clientes e os servidores usam para se comunicar. Essa comunicação é baseada em requisições (request) e respostas (responses). Por exemplo, um navegador web pode ser o cliente e uma aplicação em um computador que hospeda um site da web pode ser o servidor.

Page 3: Banco de Dados e WEB

Aplicações web estáticas• Aplicações web estáticas: São aplicações com um conjunto de páginas

web estáticas, que são documentos em formato HTML armazenados no servidor.

• As páginas estáticas podem conter imagens, sons, animações e outros elementos. Todavia, como seu próprio nome diz, seu conteúdo de informação é estático, não se altera quando um usuário a solicita, e sua atualização depende de intervenção manual.

• Todas as linhas do código em HTML da página são escritas antes dela ser colocada no servidor. Uma vez no servidor, o HTML não é alterado.

• Na maiorias das aplicações desse tipo, não há troca de informações com o banco de dados.

Page 4: Banco de Dados e WEB

Processamento de páginas da Web estáticas

Page 5: Banco de Dados e WEB

Aplicações web dinâmicas• Aplicações web estáticas: São aplicações com um conjunto de páginas

web dinâmicas. Diferentemente das páginas estáticas, paginas dinâmicas são modificadas pelo servidor antes de serem enviadas para o navegador solicitante. A natureza mutável da página justifica ela ser chamada de dinâmica.

• São bem mais facilmente atualizáveis, devido à sua conexão com o banco de dados. A aplicação obtém informações de um banco de dados e a insere no conteúdo das páginas a cada vez que é carregada.

• Se a informação armazenada no banco de dados muda, a página conectada a ele também tem seu conteúdo automaticamente modificado, sem intervenção humana.

Page 6: Banco de Dados e WEB

Aplicações web dinâmicas• O servidor de aplicativo vai ser o responsável por extrair informações de

um banco de dados e inseri-los no HTML da página, modificando-a no servidor. Servidores de aplicativo usam tecnologias diferentes. A mais comum é a linguagem PHP.

• Um servidor de aplicativo não se comunica diretamente com o banco. Essa comunicação é feita através de um driver de banco de dados: um software que funciona como um intérprete entre o servidor de aplicativo e o banco de dados.

Page 7: Banco de Dados e WEB

Processamento nas aplicações web dinâmicas

Page 8: Banco de Dados e WEB

Arquitetura de aplicações web integradas a um banco de dados

• A arquitetura Web é uma típica arquitetura cliente/servidor. De um lado fica o cliente Web, também denominado browser, capaz de exibir e solicitar documentos, geralmente baseados na linguagem de marcação HTML.

• Do outro lado, fica o servidor Web, cuja principal função é atender os pedidos dos clientes Web por documentos armazenados no sistema de arquivos da plataforma onde se encontra instalado.

• Para a comunicação entre o Cliente e o Servidor Web é usado o protocolo HTTP.

Page 9: Banco de Dados e WEB

Arquitetura de aplicações web integradas a um banco de dados

• Para que seja possível a integração da Web aos atuais SGBDs, é necessária uma camada de software intermediária na arquitetura de integração. É o chamado gateway Web SGBD, cuja representação típica é mostrada na figura abaixo. Quando um gateway é ativado, sua principal função é executar, junto ao SGBD, o pedido que lhe foi solicitado e devolver ao servidor Web o resultado do pedido em um formato especificado, por exemplo, em formato HTML.

Page 10: Banco de Dados e WEB

Propriedades desejáveis de aplicações Web SGBD

• É importante que as aplicações Web SGBD preservem determinadas características presentes em inúmeras aplicações sobre Bancos de Dados. As aplicações Web SGBD devem apresentar as seguintes propriedades:

1) Gerenciamento do estado da aplicação: O estado da aplicação no contexto de banco de dados é um conjunto de informações mantidas pelo SGBD, relativas à conexão atual do usuário, como, por exemplo, quem é o usuário e quais objetos do banco de dados estão sendo gerenciados pelo SGBD. O gerenciamento do estado da aplicação possibilita a autenticação de usuários e controle de sessão do usuário.

Page 11: Banco de Dados e WEB

Propriedades desejáveis de aplicações Web SGBD

2) Integridade transacional: As aplicações web devem garantir a integridade transacional, que diz respeito às transações que satisfazem as propriedades ACID. Estas características possibilitam, entre outros, o controle de concorrência sobre a base de dados e mecanismos de recuperação em caso de falhas.

3) Segurança: Diz respeito às restrições de acesso aos objetos (dados e procedimentos) gerenciados pelo SGBD

4) Desempenho: Em particular, o tempo de resposta para uma determinada transação Web SGBD.

Page 12: Banco de Dados e WEB

Propriedades desejáveis de aplicações Web SGBD

5) Portabilidade: Diz respeito à independência da plataforma na qual foi desenvolvida a aplicação Web SGBD. Também é considerada a facilidade de integração da aplicação com novas ferramentas, tais como novos clientes e/ou servidores Web e novos SGBDs.

Page 13: Banco de Dados e WEB

Classificação de arquiteturas Web integradas ao banco de dados

• Existem diversas arquiteturas Web SGBD. A classificação delas adotada aqui leva em conta a localidade em que o software integrador (software que integra a aplicação ao banco de dados) é executado: se no lado cliente ou no lado servidor Web.

Page 14: Banco de Dados e WEB

Arquitetura Web baseado em programas CGI

• Para que um servidor Web possa gerar uma informação dinâmica foi especificada a interface CGI ( Common Gateway Interface). CGI é uma interface padrão para a execução de programas externos ao servidor Web. Ela descreve regras de como esses programas serão inicializados e como os dados são passados entre o servidor Web e o aplicativo.

• A arquitetura mais imediata para se desenvolver aplicações Web SGBD é através de programas CGI, uma vez que para se implementar aplicativos através da interface CGI, é necessária uma linguagem de programação que possa ler da entrada padrão, obter as variáveis de ambientes e escrever na saída padrão. Como a grande maioria dos SGBDs existentes incorporam alguma linguagem de programação hospedeira com estas características, praticamente todos eles podem interagir com a Web por meio de Programas CGI.

Page 15: Banco de Dados e WEB

Arquitetura Web baseado em programas CGI

• Nessa arquitetura, uma transação se inicia com uma requisição do cliente Web para a execução de uma aplicação externa ao servidor Web , que, neste caso, é composto por um ou mais programas CGI. O servidor Web inicia um processo para execução do(s) programa(s), repassando parâmetros enviados pelo cliente Web ao programa. O programa recebe os parâmetros, decodifica - os, formulando uma ou mais transações de banco de dados e solicita uma abertura de conexão com o SGBD para sua execução. O SGBD retorna os dados e a conexão é finalizada. O programa CGI manipula os dados recebidos e os repassa ao servidor Web num formato que o cliente Web entenda (HTML). O processo iniciado pelo servidor Web para execução do programa é finalizado neste momento. O servidor Web retorna os dados repassados pelo programa ao cliente Web e a transação é finalizada.

Page 16: Banco de Dados e WEB

Arquitetura web baseado em Gerenciador de Aplicação CGI

• É uma arquitetura web SGBD dividida em dois módulos: vários despachantes (dispatchers ), que são pequenos programas CGI executáveis, e um gerenciador, que coordena a aplicação, geralmente implementado sem nenhum conhecimento da interface CGI.

Page 17: Banco de Dados e WEB

Arquitetura web baseado em Gerenciador de Aplicação CGI

• Nesta arquitetura, uma transação Web se inicia com uma requisição do cliente Web para a execução de um aplicativo externo, que, neste caso, é um ou mais Gerenciadores de Aplicação CGI. O servidor Web inicia um processo para um dos despachantes, através da interface padrão CGI, enviando parâmetros do cliente Web a um gerenciador da aplicação. Esse gerenciador começa a executar, sobre o SGBD, o pedido solicitado pelo despachante. Nesse caso, a conexão com o SGBD não é finalizada, o gerenciador fica aguardando novos pedidos de despachantes relativos ao usuário/cliente que está utilizando a aplicação. Por fim, o despachante recebe os dados do gerenciador de aplicação, repassa-os ao servidor Web via interface CGI e, em seguida, o servidor web retorna os dados ao cliente web.

Page 18: Banco de Dados e WEB

Arquitetura web baseado em aplicação SSI

• Essa arquitetura utiliza as SSIs (Server Side Includes), que são trechos de códigos (tags) especiais inseridos em um documento Web para serem executados pelo servidor no momento em que um cliente solicitar o documento. Estes códigos incluem funcionalidades para execução de transações sobre um SGBD.

Page 19: Banco de Dados e WEB

Arquitetura web baseado em aplicação SSI

• Nesta arquitetura, uma transação Web se inicia com uma requisição de uma página ao cliente Web, que possui, além dos elementos da linguagem HTML, códigos SSI para execução de transações sobre um SGBD. O servidor Web recupera a página e reconhece que a página contém códigos SSI para serem executados dinamicamente ativando o interpretador SSI, que é um de seus componentes. O servidor Web abre uma sessão junto ao SGBD e envia a transação. Os dados são retornados pelo SGBD ao servidor. Este, por sua vez, encerra a conexão com o SGBD e retorna a página de dados ao cliente web.

Page 20: Banco de Dados e WEB

Arquitetura baseado em acesso direto ao banco de dados

• O servidor Web pode ser implementado para, além de atender pedidos HTTP, realizar transações Web SGBD sem nenhuma interferência da interface CGI. Neste caso, ele incorpora o protocolo de comunicação do SGBD e mecanismos próprios para o desenvolvimento de aplicações totalmente integradas ao SGBD. Ou seja, o servidor Web funciona como um cliente do SGBD que suporta o protocolo HTTP.

Page 21: Banco de Dados e WEB

Arquitetura baseado em acesso direto ao banco de dados

• Nesta arquitetura, uma transação se inicia com uma requisição do cliente ao servidor Web para a execução de uma aplicação incorporada ao próprio servidor Web. O servidor faz uma série de verificações internas (login e senha) e inicia uma conexão com o SGBD, como se fosse mais um cliente do SGBD. O SGBD atende o pedido e retorna os dados ao servidor Web, que os formata, enviando- os ao cliente. Normalmente, o servidor Web fica esperando por novos pedidos do cliente e não libera os recursos da sessão do usuário no SGBD enquanto o cliente Web estiver utilizando a aplicação.

Page 22: Banco de Dados e WEB

Qual arquitetura é a mais adequada?

• A arquitetura mais adequada vai depender, principalmente, dos requisitos da aplicação web que se pretende desenvolver.

• Se a aplicação exigir flexibilidade, portabilidade e boas características para gerenciamento do estado, a melhor arquitetura é a baseada em Gerenciador de Aplicação CGI.

• Se a aplicação estiver restrita à corporação (Intranet), então ela vai exigir bons mecanismos de segurança e desempenho. Neste caso, a arquitetura baseada em acesso direto ao banco de dados é indicada.

• Por fim, para aplicações simples (somente consultas, por exemplo) e de rápido desenvolvimento, a arquitetura baseada em Aplicação SSI pode ser uma boa solução.