A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Cliente Servidor na Web Desenvolvimento Baseado em CGI Material cedido pelo Prof. Edgard Jamhour.

Apresentações semelhantes


Apresentação em tema: "Cliente Servidor na Web Desenvolvimento Baseado em CGI Material cedido pelo Prof. Edgard Jamhour."— Transcrição da apresentação:

1 Cliente Servidor na Web Desenvolvimento Baseado em CGI Material cedido pelo Prof. Edgard Jamhour

2 Arquitetura Cliente-Servidor Inicialmente, a arquitetura WWW previa uma arquitetura cliente- servidor pura. –todo processamento feito no servidor Extensões recentes incluíram também capacidade de processamento nos clientes. requisição resposta (HTML) Java JavaScript VBScript ActiveX Plugins (CGI) Soluções Proprietárias

3 Common Gateway Interface Forma não proprietária para construir páginas WWW dinâmicas. CGI não é uma linguagem de programação. –CGI: Gateway entre WWW e outras aplicações. CGI é uma interface que permite executar programas e aplicações externas sob o controle de um servidor HTTP. Mensagem MIME e cabeçalho HTTP Requisição HTTP Dados do Cliente Resposta não WWW Servidor WWW APLICAÇÃO

4 Seqüência de Eventos da Chamada CGI

5 A Especificação CGI A especificação CGI foi criada a fim de evitar a necessidade de ter de adicionar novas funcionalidades constantemente ao servidor HTTP para atender a demanda de novas aplicações. Princípio: –Definir claramente a estrutura do núcleo do servidor WWW e fornecer os mecanismos para extensão de serviços a partir deste núcleo. –A extensão de serviços deveria ser feita através de uma API (application programming interface) disponível para programadores em C, Perl ou outra linguagem.

6 Variáveis de Ambiente Variáveis de ambiente são entidades que existem no sistema operacional da máquina do usuário. As variáveis de ambiente funcionam como variáveis globais para os processos do sistema operacional e para as aplicações rodando em modo usuário. –As variáveis de ambiente fornecem um mecanismo para troca de informações entre as aplicações. –As variáveis são acessíveis pelo servidor HTTP e por qualquer aplicação CGI lançada pelo servidor. –No caso do ambiente CGI, as variáveis de ambiente são utilizadas para passar dados entre a requisição HTTP de um servidor para a aplicação CGI.

7 Variáveis CGI REQUEST_METHOD: método requisitado pelo cliente –métodos possíveis: GET e POST QUERY_STRING: dados passado pelo método GET ou através de ? –Exemplo: CONTENT_LENGTH: tamanho do objeto passado pelo método POST –contem 0 se o método GET foi usado CONTENT_TYPE: tipo MIME do objeto passado por post –tipos e subtipos: application: octet-stream, post-scritp text: plain, richtext image: gif, jpeg audio: basic video: mpeg

8 Como a aplicação passa os dados para o servidor Os dados do formulário HTML são codificados numa string e enviados ao WWW. O servidor WWW pode repassar os dados para o programa CGI de duas formas: pelo método GET e pelo método POST. Nome=Edgard&Ramal=1675 &opcao=cadastrar Servidor Nome:Ramal: Procurar Procurar Cadastrar Cadastrar Edgard 1675 Processar

9 Método GET Os dados são passados pela variável de ambiente QUERY_STRING Os dados são lidos pela aplicação no servidor chamando a API que lê a variável de ambiente. Em linguagem C, por exemplo: getenv("QUERY_STRING") O formulário HTML é montado da seguinte maneira: Entre campo1: Entre campo2:

10 Método POST Os dados são passados pela entrada padrão do sistema operacional –Exemplo: stdin (standar input é normalmente o buffer de teclado) Os dados são lidos pela aplicação usando as mesmas funções que lêem a entrada padrão. Em linguagem C, por exemplo: fgets(buffer,tamanho,stdin); O formulário HTML é montado da seguinte maneira: Entre campo1: Entre campo2:

11 Geração de Páginas HTML Dinâmicas A geração de páginas html dinâmicas é feita enviando o fonte da página diretamente para saída padrão: –printf("Content-Type: text/html\n\n"); /*linha obrigatória*/ –printf(" "); –printf(" Titulo "); –printf(" "); –printf(" PAGINA DINAMICA "); –printf(" ");

12 Resumo: Integração com a Web ServidorWWWAplicaçãoCGI ServidorWWW AplicaçãoCGI MÉTODOGET MÉTODOPOST QUERY-STRING STDOUT STDIN STDOUT Os sistemas operacionais impõem limitações ao tamanho das variáveis de ambiente. Por esta razão, o método GET só é indicado para pequenas quantidades de dados. Para formulários que transmitam uma grande quantidade de dados para os servidor recomenda-se a utilização do método POST.

13 Linguagens de Programação Paradigmas de linguagens de programação: –Procedural: descreve os passos de um algoritmo. –Orientado a objetos: descreve interação entre objetos. –Lógica: descreve soluções de predicados. –Funcional: descreve transformação de funções. Classificação quanto ao modo de execução dos aplicativos –linguagem compilada: C e C++ –linguagem interpretada: Unix, shells, Tcl, Python e Visual Basic. –Compiladas/Interpretadas: Perl e Java.

14 Integração com Banco de Dados Banco de dados requisição requisição Nome Rmal Edgard 1675 HTML resposta resposta Nome:Ramal: Procurar Procurar Cadastrar Cadastrar Edgard Processar ServidorWWW AplicaçãoCGI Servidor de Banco de Dados

15 Tipos de Banco de Dados Cliente-Servidor: –As requisições são processadas sempre no servidor. –Apenas a resposta é enviada ao cliente. Banco de Dados em Arquivo: –As requisições são sempre processadas no cliente. –Todos os dados das tabelas são enviados ao cliente para processamento local. cliente servidor tabelas

16 Banco de Dados em Ambiente WWW As consultas são sempre processadas no servidor. cliente ServidorWWW cliente tabelas tabelas Servidor de Banco de Dados ServidorWWW CGI CGI

17 Arquitetura da Aplicação de Banco de Dados A montagem da aplicação com banco de dados em ambiente Web envolve a integração de vários elementos, conforme mostra a figura abaixo. Cliente WWW (Lógica de Apresentação) SGDB Acesso aos Dados) Programa CGI (Lógica de Negócio) CLIENTESERVIDOR Servidor WWW (Lógica de Apresentação) HTTP CGI APIs de acesso a banco de dados

18 APIs para Acesso a Banco de Dados CGI: –Programa executado escrito em qualquer linguagem de programação. –O CGI é responsável por efetuar a consulta no banco de dados, e enviar o resultado ao cliente. Como o CGI acessa o banco de dados –Utilizando rotinas de acesso nativas. O ambiente de desenvolvimento usado para criar o programa executável deve ter um conjunto de APIs compatível com o banco de dados que se quer acessar. –Utilizando ODBC Sistema que permite ao programa CGI acessar qualquer tipo de banco de dados.

19 ODBC - Open Database Connectivity Conjunto de APIs padronizadas, desenvolvido pela Microsoft, mas tornado de domínio público. Permite que clientes windows acessem banco de dados locais ou remotos em qualquer outro tipo de plataforma. ODBC PROVIDER programa programa APIs para acesso a ODBC Driver Específico para Acessar o BD Driver Específico para Acessar o BD servidor tabelas tabelas

20 DSN - Data Source Name Os programas se referenciam as bases através do DSN –Data Source Name O DSN abstrai a localização física da base para o programa. Exemplo: –Banco de dados Access DSN = MeuBD Caminho Físico: C:/Arquivos/banco.mdb –Banco de dados SQL Server DSN = MeuBD Endereço do Servidor: Nome Netbios do servidor Nome do banco de dados no servidor

21 Envio da Requisição O programa CGI decodifica a string recebida pelo método POST e indentifica os nomes dos campos e valores recebidos. Ele verifica qual operação selecionar (Select, Insert, Update e Delete) analisando a string recebida pelo método get. Ele monta uma string SQL e envia para o provedor de ODBC usando as APIs disponíveis no ambiente de programação. ServidorWWW PROGRAMA CGI String SQL Select, Insert, Update, Delete ODBC parâmetros

22 Captura da Resposta A API de acesso ao ODBC retorna o resultado da operação (INSERT, DELETE ou UPDATE) ou o resultado da consulta (SELECT) especificada pela string SQL. Os dados são usados para formatar uma página de resposta (em formato texto ou html). Os dados são enviados ao cliente para que este os visualize através do browser. ServidorWWW PROGRAMA CGI Status de uma operação, ou o resultado de uma consulta ODBC


Carregar ppt "Cliente Servidor na Web Desenvolvimento Baseado em CGI Material cedido pelo Prof. Edgard Jamhour."

Apresentações semelhantes


Anúncios Google