asd-WWW

Transcrição

asd-WWW
10/6/2013
World Wide Web
e Aplicações
Módulo H
O que é a WWW
 Permite a criação, manipulação e recuperação de informações
 Padrão de fato para navegação, publicação de informações e
execução de transações na Internet ou em Intranets
 Coleção disponível, distribuída de documentos e páginas com
abrangência mundial
 Informações apresentadas através de interfaces gráficas
intuitivas: popularidade da própria Internet
 Ferramenta de software na qual o Comércio Eletrônico está
baseado
1
10/6/2013
Arquitetura básica da Web
HTML
Recursos
Browser
Externos
Rede
TCP/IP
Browser
HTTP
Páginas
Programas
Web
CGI
Browser
Sevidor Web
Clientes
Web
• NOS
• TCP/IP
Arquitetura Web
 Três padrões / protocolos básicos
 HTML Hypertext Markup Language
Padrões para formatação e hyperlink
 HTTP - Hypertext Transport Protocol
protocolo de comunição para interação cliente-servidor
 CGI - Common Gateway Interface
interface para programas externos (não Web)
2
10/6/2013
Uma Transação HTTP
1
Pedido
Resposta
Browser Web
(Netscape Navigator,
MS Explorer,
Hot Java)
2
Servidor Web
(NCSA Server,
MS Information Server,
CERN Server, Apache)
Páginas X Aplicações na Web
 Problema: HTML é limitada a exibição estática
 Formulários nos clientes permitem a transmissão de dados junto
com uma requisição HTML
 Solução no cliente
 Pequenos programas e animações simples executando no browser
 JavaScript, Vbscript, Gifs animadas, flash….
 Execução no servidor
 Páginas Web realmente dinâmicas são geradas para cada acesso
 Útil para consultas / atualização de banco de dados
 Métodos para interação com banco de dados via Web:
 common gateway interface (CGI)
 database gateways
 Estes métodos funcionam como middleware para aplicações
cliente-servidor sobre a Web
3
10/6/2013
Abordagens para o desenvolvimento de
páginas dinâmicas
 Todo processamento no servidor
 Recebe as requisições do cliente
 Executa o processamento necessário para criar a página
Web dinamicamente
 Envia a página recém gerada para exibição pelo browser
cliente
 Algum processamento no cliente
 Para formar a requisição a ser enviada para o servidor
(ex.: crítica de dados)
 Para criar ou exibir a página dinâmica enviada em
resposta
Tecnologias disponíveis para a criação de
páginas dinâmicas
Tecnologias de processamento
de dados na Web
Processamento /
Lado do servidor
Programas
compilados



Processamento /
Lado do cliente
Scripts /
Interpretados

CGI (C, C++,
Java, etc.)
Java Servlets
ASP.NET



CGI (Perl)
Microsoft Active
Server Pages (ASP)
Could Fusion
Apache Software
Foundation PHP
Híbridos


Java Server Pages (JSP)
- script + compilado + Java Beans
ASP.NET
Programas
compilados


Active X (Intranet)
Java Applets
Scripts /
Interpretados


Java Script
VBScript
Banco de Dados
4
10/6/2013
Processamento no Servidor - Básico
 Common Gateway Interface (CGI) protocol
 Método para a comunicação entre um formulário
HTML e um programa servidor
Programa: Perl, C, C++, Java, VisualBasic, etc.
 Passagem de informações entre servidor Web e
programa é feita por variáveis de ambiente
 Desvantagem: cada formulário submetido dispara
uma cópia do programa diferente
consumo de processador e memória
CGI (Common Gateway Interface)
3
2
4
variáveis de
ambiente CGI
dados do formulário
Programa ou
script CGI
HTML
submissão 1
do formulário
documento
HTML
8
7
HTML
Servidor
Web
6
transação de
banco de dados
5
Servidor de
Banco de Dados
5
10/6/2013
Processamento no Servidor
 Soluções para o problema de se iniciar uma cópia do
programa a cada requisição
 Permitem o controle de instâncias diferentes dos programas
a serem executados (compilados ou scripts)
Netscape - Netscape Service Application Programming
Interface (NSAPI)
Microsoft - Internet Server Application Programming Interface
(ISAPI)
Persistent CGI (Zope open source web server)
FastCGI (extensões para vários Webservers)
Java Servlet Interface
Processamento no Servidor
 Scripts – programas interpretados no servidor a cada
requisição de cliente
 Exemplos de tecnologias que usam esta aboradgem (além
de CGI + Perl...)
Cold Fusion (.cfm)
Microsoft Active Server Pages (.asp)
Apache PHP (.php)
LiveWire (Netscape Web Server)
JScript (Microsoft Web Servers/ ASP)
 Programas Compilados – código de máquina
executado diretamente pela CPU
 Exemplos de tecnologias que usam esta abordagem (além
de CGI + C, C++, Java, VisualBasic, etc.)
Java Servlets
ASP.NET
6
10/6/2013
Processamento no cliente - Scripts
 Criar páginas dinâmicas e interativas na Web
 necessário suporte no browser (normalmente de terceiros)
 resultado pode ser diferente de browser para browser
 Sript enviando embutido no texto HTML
 Controle de objetos, conteúdo da página, mapas de imagem
 Crítica e autenticação de dados no cliente
 Exemplos: VBScript, JavaScript
Processamento no Cliente – Compilados
 Podem ser programas auto-contidos
 Podem fazer acesso direto ao banco de dados (sem usar HTTP
ou servidores Web)
 Java Applets (Sun)
 Applet: um programa Java que executa no browser
 Browsers geralmente contém uma Máquina Virtual Java para
execução de Applets
 Applets são geralmente pequenos para download e execução
 Componentes ActiveX (Micrsoft) - .NET
 aplicação auto-contida
 oferece uma interface para interação (e.x.: textbox, listbox)
 acesso ao sistema nativo (bom para Intranets, mas e para a
Internet?)
 Problema de segurança via código malicioso
7
10/6/2013
Processamento no cliente - Applets
Arquivo
1
.java
compilador
Browser
2
Arquivo .class
7
Interpretador
específico
HTML +
Applet
Repositório
de Applets
6
Sistema
Operacional
4
5
Pedido
Servidor
Web
Modelo Utilizando Java Applets e CGI
Applet
Java
1
Pedido HTTP
Resposta+Applet 2
3
Variáveis de
Submissão
formulário
4 ambiente CGI
Cliente
Resposta HTTP
Resposta 5
6
Programa
ou
scrpit CGI
Servidor
8
10/6/2013
Modelo Utilizando Java Applets /
Servlets e acesso direto ao BD
1
4
Pedido HTTP
Browser
Interpretador
específico
Resposta+Applet 2
Servlet
Submissão
formulário
3
HTML
Sistema
Operacional
Resposta HTTP
9
5
Invocação direta e
passagem de
parâmetros
8
Servidor
Web
7
transação de
banco de dados
6
Invocação de Método
Remoto (RMI)
Resposta 11
Programa
(servidor)Java
10
Servidor de
Banco de Dados
Mantendo estado na Web
 Muitas aplicações requerem que uma série de
interações sejam completadas para concretizar uma
transação. O estado da aplicação deve ser mantido
entre as interações.
 Exemplo – caixa eletrônico
 o número da conta e a senha tem que ser “lembrados”
durante toda a sessão
 A Web foi desenvolvida como um ambiente que não
registra estado
 a conexão entre browser e servidor é terminada quando a
carga da página termina
 o servidor não tem “memória” do que ele transmitiu
 Como fazer para realizar uma operação bancária ou uma
compra virtual através da Web ?
9
10/6/2013
Mantendo o estado - Cookies
 Pequenos arquivos texto
 Conteúdo: URL do servidor, número de ID, outros
códigos
 Criado pelo servidor Web; armazenado no Web
browser
 Windows cria uma pasta “cookies”
 Uso de cookies:
 personalização do site: ID do usuário, disponibilização de
conteúdo específico
 rastreamento do Web site: quem visitou, que páginas eles
acessaram no site
 marketing direto: anúncios baseados no perfil do usuário,
rastreia anúncios já exibidos
 sistemas de pedido on-line – memorizar o conteúdo do
carrinho de compras, etc.
Diretivas para desenvolvimento de
aplicações Web
 Processamento local / cliente
Bom
 proporciona respostas mais rápidas
 aumenta a escalabilidade do sistema
Ruim
 pode aumentar o tempo de resposta para o carregamento
de uma página Web
 aumenta o tráfego na rede
 Utilização de processamento no servidor para
respostas conforme o cliente
 Estudo do equilíbrio para cada caso (depende um
pouco da plataforma)
10