Sei sulla pagina 1di 42

Banco de dados e WEB

Alan Vieira e Jos Marques

Aplicaes web estticas e


dinmicas
Antes, alguns conceitos bsicos e rpidos:
HTML: uma linguagem de marcao utilizada para
produzirpginas 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 pgina.Os
documentos HTML so interpretados pelos navegadores e estes
produzem a pgina web requerida.
HTTP: um protocolo que os clientes e os servidores usam para
se comunicar. Essa comunicao baseada em requisies
(request) e respostas (responses). Por exemplo, um navegador
web pode ser o cliente e uma aplicao em um computador que
hospeda um site da web pode ser o servidor.

Aplicaes web estticas

Aplicaes web estticas: So aplicaes que manipulam


um conjunto de pginas web estticas, que so documentos
em formato HTML armazenados no servidor.

As pginas estticas podem conter imagens, sons, animaes e


outros elementos. Todavia, como seu prprio nome diz, seu
contedo de informao esttico, no se altera quando um
usurio a solicita, e sua atualizao depende de interveno
manual.

Todas as linhas do cdigo em HTML da pgina so escritas


antes dela ser colocada no servidor. Uma vez no servidor, o
HTML no alterado.

Na maiorias das aplicaes desse tipo, no h troca de


informaes com o banco de dados.

Processamento nas
aplicaes web estticas

Processamento nas aplicaes web


estticas
1) Navegador da Web solicita a pgina esttica.
2) Servidor Web localiza a pgina.
3) Servidor Web envia a pgina para o navegador solicitante.

Aplicaes web dinmicas

Aplicaes web dinmicas: So aplicaes que


manipulam um conjunto de pginas web dinmicas.
Diferentemente das pginas estticas, paginas dinmicas
so modificadas pelo servidor antes de serem enviadas
para o navegador solicitante. A natureza mutvel da pgina
justifica ela ser chamada de dinmica.

So bem mais facilmente atualizveis, devido sua


conexo com o banco de dados. A aplicao obtm
informaes de um banco de dados e a insere no contedo
das pginas a cada vez que carregada.

Se a informao armazenada no banco de dados muda, a


pgina conectada a ele tambm tem seu contedo
automaticamente modificado, sem interveno humana.

Aplicaes web dinmicas

O servidor de aplicativo vai ser o responsvel por extrair


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

Um servidor de aplicativo no se comunica diretamente


com o banco. Essa comunicao feita atravs de um
driver de banco de dados: um software que funciona
como um intrprete entre o servidor de aplicativo e o banco
de dados.

Processamento nas aplicaes web


dinmicas

Processamento nas aplicaes web


dinmicas
1) Navegador da Web solicita a pgina dinmica.
2) Servidor Web localiza e passa a pgina para o servidor de
aplicativo.
3) Servidor de aplicativo rastreia a pgina em busca de instrues.
4) Servidor de aplicativo envia consulta ao driver de banco de dados.
5) Driver executa a consulta no banco de dados.
6) Conjunto de registros devolvido ao driver.
7) Driver passa o conjunto de registros para o servidor de aplicativo.
8) Servidor de aplicativo insere dados na pgina e, em seguida,
passa a pgina para o servidor Web.
9) Servidor Web envia a pgina concluda para o navegador
solicitante.

Persistncia de Dados na Web

Pginas web estticas tm sempre a mesma cara. O contedo


nunca muda, a menos que carregue-se uma nova pgina.

Persistncia de Dados na Web

Como separar o design do contedo que se deseja exibir


para os usurios?
Como tornar o site sensvel ao contexto do usurio?
A soluo pode ser automatizada?

Persistncia de Dados na Web

Para uma aplicao WEB o banco de dados tem a


simples, mas ao mesmo tempo difcil tarefa de
armazenar e manter a integridade dos dados.
O banco de dados de uma aplicao WEB possui
responsabilidades que, juntas, totalizam boa parte do
quesito segurana.
A aplicao em si s uma interface amigvel para
salvar e atualizar os dados existentes.

Quem possu o banco de dados, possui a aplicao inteira nas


mos.

Facilidade para se criar backup e aes de contingncia.

Persistncia de Dados na Web

MySQL, PostgreSQL, SQL Server, Oracle, Firebird,


Acess, DB2, SQLite, Interbase, Infomix, Sybase e
ODBC so alguns dos mais populares j que
possuem todos os quesitos necessrios para
rodar uma aplicao WEB.

Arquitetura de aplicaes web


integradas a um banco de dados

A arquitetura Web uma tpica arquitetura cliente/servidor.


De um lado fica o cliente Web, tambm denominado
browser, capaz de exibir e solicitar documentos,
geralmente baseados na linguagem de marcao HTML.

Do outro lado, fica o servidor Web, cuja principal funo


atender os pedidos dos clientes Web por documentos
HTML.

Para a comunicao entre o Cliente e o Servidor Web


usado o protocolo HTTP.

Arquitetura de aplicaes web


integradas a um banco de dados

Para que seja possvel a integrao das aplicaes Web aos


atuais SGBDs, necessria uma camada de software
intermediria na arquitetura de integrao. o chamado
gateway Web SGBD, cuja representao tpica
mostrada na figura abaixo. Quando um gateway ativado,
sua principal funo 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.

Propriedades desejveis de
aplicaes Web SGBD

importante que as aplicaes Web SGBD preservem


determinadas caractersticas presentes em inmeras
aplicaes sobre Bancos de Dados. As aplicaes Web
SGBD devem apresentar as seguintes propriedades:

1) Gerenciamento do estado da aplicao: O estado da


aplicao no contexto de banco de dados um conjunto
de informaes mantidas pelo SGBD, relativas conexo
atual do usurio, como, por exemplo, quem o usurio e
quais objetos do banco de dados esto sendo gerenciados
pelo SGBD. O gerenciamento do estado da aplicao
possibilita a autenticao de usurios e controle de sesso
do usurio.

Propriedades desejveis de
aplicaes Web SGBD
2) Integridade transacional: As aplicaes web devem
garantir a integridade transacional, que diz respeito s
transaes que satisfazem as propriedades ACID. Estas
propriedades possibilitam, entre outros, o controle de
concorrncia sobre a base de dados e mecanismos de
recuperao em caso de falhas.
3) Segurana: Diz respeito s restries de acesso aos
objetos (dados e procedimentos) gerenciados pelo SGBD
4) Desempenho: Em particular, o tempo de resposta para
uma determinada transao Web SGBD.

Propriedades desejveis de
aplicaes Web SGBD
5) Portabilidade: Diz respeito independncia da
plataforma na qual foi desenvolvida a aplicao Web
SGBD. Tambm considerada a facilidade de integrao
da aplicao com novas ferramentas, tais como novos
clientes, servidores Web ou novos SGBDs.

Classificao de arquiteturas Web


integradas ao banco de dados

Existem diversas arquiteturas Web SGBD. A classificao


delas adotada aqui leva em conta a localidade em que o
software integrador (software que integra a aplicao ao
banco de dados) executado: se no lado cliente ou no lado
servidor Web.

Arquitetura Web baseado em


programas CGI
Para que um servidor Web possa gerar uma informao dinmica foi
especificada a interface CGI ( Common Gateway Interface). CGI
uma interface padro para a execuo de programas externos ao
servidor Web. Ela descreve regras de como esses programas sero
inicializados e como os dados so passados entre o servidor Web e
o aplicativo.
A arquitetura mais imediata para se desenvolver aplicaes Web
SGBD atravs de programas CGI, uma vez que para se
implementar aplicativos atravs da interface CGI, necessria uma
linguagem de programao que possa ler da entrada padro, obter
as variveis de ambientes e escrever na sada padro. Como a
grande maioria dos SGBDs existentes incorporam alguma linguagem
de programao hospedeira com estas caractersticas, praticamente
todos eles podem interagir com a Web por meio de Programas CGI.

Arquitetura Web baseado em programas CGI

Nessa arquitetura, uma transao se inicia com uma requisio


do cliente Web para a execuo de uma aplicao externa ao
servidor Web , que, neste caso, composto por um ou mais
programas CGI. O servidor Web inicia um processo para execuo
do(s) programa(s), repassando parmetros enviados pelo cliente
Web ao programa. O programa recebe os parmetros, decodifica os, formulando uma ou mais transaes de banco de dados e
solicita uma abertura de conexo com o SGBD para sua execuo.
O SGBD retorna os dados e a conexo 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 execuo do programa
finalizado neste momento. O servidor Web retorna os dados ao
cliente e a transao finalizada.

Arquitetura web baseado em


Gerenciador de Aplicao CGI

uma arquitetura web SGBD dividida em dois mdulos:


vrios despachantes (dispatchers ), que so pequenos
programas CGI executveis, e um gerenciador, que
coordena a aplicao, geralmente implementado sem
nenhum conhecimento da interface CGI.

Arquitetura web baseado em


Gerenciador de Aplicao CGI

Nesta arquitetura, uma transao Web se inicia com uma


requisio do cliente Web para a execuo de um aplicativo
externo, que, neste caso, um ou mais Gerenciadores de
Aplicao CGI. O servidor Web inicia um processo para um dos
despachantes, atravs da interface padro CGI, enviando
parmetros do cliente Web a um gerenciador da aplicao.
Esse gerenciador comea a executar, sobre o SGBD, o pedido
solicitado pelo despachante. Nesse caso, a conexo com o
SGBD no finalizada, o gerenciador fica aguardando novos
pedidos de despachantes relativos ao usurio/cliente que est
utilizando a aplicao. Por fim, o despachante recebe os dados
do gerenciador de aplicao, repassa-os ao servidor Web via
interface CGI e, em seguida, o servidor web retorna os dados
ao cliente web.

Arquitetura web baseado em


aplicao SSI

Essa arquitetura utiliza as SSIs (Server Side Includes), que


so trechos de cdigos (tags) especiais inseridos em um
documento Web para serem executados pelo servidor no
momento em que um cliente solicitar o documento. Estes
cdigos incluem funcionalidades para execuo de
transaes sobre um SGBD.

Arquitetura web baseado em


aplicao SSI

Nesta arquitetura, uma transao Web se inicia com uma


requisio de uma pgina ao cliente Web, que possui, alm dos
elementos da linguagem HTML, cdigos SSI para execuo de
transaes sobre um SGBD. O servidor Web recupera a pgina
e reconhece que a pgina contm cdigos SSI para serem
executados dinamicamente ativando o interpretador SSI,
que um de seus componentes. O servidor Web abre uma
sesso junto ao SGBD e envia a transao. Os dados so
retornados pelo SGBD ao servidor. Este, por sua vez, encerra a
conexo com o SGBD e retorna a pgina de dados ao cliente
web.

Arquitetura baseado em acesso


direto ao banco de dados

O servidor Web pode ser implementado para, alm de


atender pedidos HTTP, realizar transaes Web SGBD sem
nenhuma interferncia da interface CGI. Neste caso,
ele incorpora o protocolo de comunicao do SGBD e
mecanismos prprios para o desenvolvimento de
aplicaes totalmente integradas ao SGBD. Ou seja, o
servidor Web funciona como um cliente do SGBD que
suporta o protocolo HTTP.

Arquitetura baseado em acesso


direto ao banco de dados

Nesta arquitetura, uma transao se inicia com uma


requisio do cliente ao servidor Web para a execuo de
uma aplicao incorporada ao prprio servidor Web. O
servidor faz uma srie de verificaes internas (login e
senha) e inicia uma conexo com o banco, como se fosse
mais um cliente do SGBD. O SGBD atende o pedido e
retorna os dados ao servidor Web, que os formata e envia
ao cliente. Normalmente, o servidor Web fica esperando
por novos pedidos do cliente e no libera os recursos da
sesso do usurio no SGBD enquanto o cliente Web estiver
utilizando a aplicao.

Qual arquitetura a mais


adequada?
A arquitetura mais adequada vai depender, principalmente, dos
requisitos da aplicao web que se pretende desenvolver.
Se a aplicao exigir flexibilidade, portabilidade e boas
caractersticas para gerenciamento do estado da aplicao, a
melhor arquitetura a baseada em Gerenciador de Aplicao CGI.
Se a aplicao estiver restrita corporao (Intranet), ento ela vai
exigir bons mecanismos de segurana e desempenho. Neste caso,
a arquitetura baseada em acesso direto ao banco de dados
indicada.
Por fim, para aplicaes simples (somente consultas, por exemplo) e
de rpido desenvolvimento, a arquitetura baseada em Aplicao SSI
pode ser uma boa soluo.

Big Data e Aplicaes Robustas


Aplicao de tcnicas da IA para implementar inteligncia
preditiva

Publicidade online predizer a inteno e interesse;


Medir o interesse do consumidor e prever seu comportamento;
Detectar eventos adversos e prever seus impactos;
Respondedor inteligente de questes, tal qual Watson;
Categorizar e reconhecer lugares, rostos, pessoas, ...
Desenvolver servios pblicos mais inteligentes: energia, gua;
Auxiliar na segurana pessoal.

Big Data e Aplicaes Robustas:


Banco de dados por qu?
Processamento de transaes (propriedades ACID)
SQL consultas e indexao.

Big Data e Aplicaes Robustas:


A Nuvem

O armazenamento de dados feito em servios que podero ser


acessados de qualquer lugar do mundo, a qualquer hora, no
havendo necessidade de instalao deprogramasou de
armazenar dados;
O acesso a programas, servios e arquivos remoto, atravs da
Internet - da a aluso nuvem.

Big Data e Aplicaes Robustas:


A Nuvem
Caractersticas:
Provisionamento dinmico de recursos sob demanda, com
mnimo de esforo;
Escalabilidade;
Uso de "utilility computing", onde a cobrana baseada no
uso do recurso ao invs de uma taxa fixa;
Viso nica do sistema;
Distribuio geogrfica dos recursos de forma transparente
ao usurio.

Big Data e Aplicaes Robustas:


A Nuvem
Principal vantagem:
A possibilidade de utilizarsoftwaressem que estes estejam
instalados no computador.
Principal desvantagem:
Caso voc perca o acesso a Internet, comprometer todos
os sistemas embarcados.

Big Data e Aplicaes Robustas:


Crticas
A ameaa privacidade representada pelo aumento de
armazenamento e integrao deinformaes pessoalmente
identificveis.
Se a recomendao de links patrocinados peloGooglej
parece invasiva maioria das pessoas, o mundo e a
legislao atual no esto preparadas para as
possibilidades que oBig Dataoferece de agregar, analisar
e tirar concluses a partir de dados at ento esparsos.

Melhorando a Segurana e a
Confiabilidade
Ameaas aos bancos de dados:
Perda de Integridade A interidade do banco de dados
refere-se ao requisito de que a informao seja protegida
contra modificao imprpria;
Perda de disponibilidade A disponibilidade do banco de
dados refere-se a tornar os objetos disponveis a um
usurio humano ou a um programa ao qual eles tm um
direito legtimo;
Perda de confidencialidade A confidencialidade dos dados
refere-se a proteo dos dados contra exposio no
autorizada.

Melhorando a Segurana e a
Confiabilidade
Criptografia a converso de dados para um formato
chamado texto cifrado, que no pode ser facilmente
entendido por pessoas no autorizadas. Ela melhora a
segurana e a privacidade quando os controles de acesso
so evitados, pois em caso de perda ou roubo de dados,
aqueles criptografados no podem ser facilmente
entendidos por pessoas no autorizadas.

Melhorando a Segurana e a
Confiabilidade

OData Encryption Standard(DES) uma cifra (mtodo


decriptografia) selecionado comoFIPSoficial (Federal
Information Processing Standard) pelo governo dosEUAem
1976 e que foi utilizado em larga escala internacionalmente.
DES tipo de cifra em bloco, ou seja, umalgoritmoque
toma umastringde tamanho fixo de um texto plano e a
transforma, atravs de uma srie de complicadas
operaes, em um texto cifrado de mesmo tamanho. No
caso do DES, o tamanho do bloco 64bits.

Melhorando a Segurana e a
Confiabilidade

Melhorando a Segurana e a
Confiabilidade
SQL Injection uma das ameaas mais comuns em um
sistema de banco de dados. Programas e aplicaes Web
que acessam banco de dados podem enviar comandos e
dados ao banco de dados, bem como exibir dados
recuperados do banco de dados por meio do navegador.

Melhorando a Segurana e a
Confiabilidade
Manipulao de SQL Muda um comando SQL na
aplicao.

Melhorando a Segurana e a
Confiabilidade
A proteo contra SQL Injection pode ser obtida ao aplicarem-se
certas regras de programao a todos os procedimentos e
funes acessveis pela Web.
Variveis de ligao (usando comandos parametrizados)
protege contra SQL Injection e tambm melhora o desempenho.

Melhorando a Segurana e a
Confiabilidade
Filtragem de entrada (validao da entrada) pode ser usada
para remover caracteres de escape das cadeias de caracteres de
entrada ao utilizar a funo Replace da SQL. Por exemplo, o
delimitador de aspa simples () pode ser substitudo por duas aspas
simples ().
Segurana da funo as funes de banco de dados, tanto padro
quanto personalizadas, devem ser restringidas, pois podem ser
exploradas nos ataques de SQL Injection.

Potrebbero piacerti anche