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
Arquitetura básica da Web HTML Browser Recursos Externos Browser Rede TCP/IP HTTP Páginas Web Programas CGI Browser Clientes Web Sevidor 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)
Uma Transação HTTP 1 Pedido Resposta Browser Web (Netscape Navigator, MS Explorer, Hot Java) 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
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 Processamento / Lado do cliente Programas compilados Scripts / Interpretados Programas compilados Scripts / Interpretados CGI (C, C++, Java, etc.) Java Servlets ASP.NET CGI (Perl) Microsoft Active Server Pages (ASP) Could Fusion Apache Software Foundation PHP Active X (Intranet) Java Applets Java Script VBScript Híbridos Java Server Pages (JSP) - script + compilado + Java Beans ASP.NET Banco de Dados 4
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) submissão 1 do formulário dados do formulário documento HTML 8 HTML 7 Servidor Web 3 variáveis de ambiente CGI HTML 6 transação de banco de dados 4 Programa ou script CGI 5 Servidor de Banco de Dados 5
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
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
Processamento no cliente - Applets Arquivo.java 1 compilador Browser Interpretador específico Sistema Operacional 7 HTML + Applet 6 Arquivo.class Repositório de Applets 4 5 Pedido Servidor Web Modelo Utilizando Java Applets e CGI Applet Java 1 Pedido HTTP Resposta+Applet Cliente Submissão 3 4 formulário Resposta HTTP 6 Servidor Variáveis de ambiente CGI Resposta 5 Programa ou scrpit CGI 8
Modelo Utilizando Java Applets / Servlets e acesso direto ao BD Browser Interpretador específico Sistema Operacional 1 3 Pedido HTTP Resposta+Applet Submissão formulário Resposta HTTP 8 Servidor Web 4 Invocação direta e passagem de parâmetros HTML 7 transação de banco de dados 5 Servlet 6 9 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
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