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

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

Desenvolvimento Baseado em CGI Material cedido pelo Prof

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento Baseado em CGI Material cedido pelo Prof"— Transcrição da apresentação:

1 Desenvolvimento Baseado em CGI Material cedido pelo Prof
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. (HTML) Java JavaScript VBScript ActiveX Plugins requisição resposta (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. WWW Requisição HTTP Dados do Cliente APLICAÇÃO Servidor Resposta não WWW Mensagem MIME e cabeçalho HTTP

4 Seqüência de Eventos da Chamada CGI
Abraão 30 anos José 40 Paulo 23 Carlos 50 ...... ..... servidor sistema de arquivos banco com os dados de todos funcionários de uma empresa. aplicação externa programa WWW consulta Idade minima: Selecione o Departamento: Informatica Producao Marketing Contabilidade IIncluir funcionários em regime temporário: SUBMIT Pressione para consultar Formulario de Consulta Idade=30&Depto=Producao& Temporario=SIM 5 1 2 3 4 7 6

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
Nome: Ramal: Procurar Cadastrar Edgard 1675 Nome=Edgard&Ramal=1675 &opcao=cadastrar Servidor Processar 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.

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: <FORM METHOD = "GET" ACTION = "/Especial/CGI-bin/EnvVar.exe" > <P>Entre campo1: <INPUT NAME="campo1"></P> <P>Entre campo2: <INPUT NAME="campo2"></P> <INPUT TYPE = "submit" VALUE = "Submit Query"> </FORM>

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: <FORM METHOD = “POST” ACTION = "/Especial/CGI-bin/EnvVar.exe”> <P>Entre campo1: <INPUT NAME="campo1"></P> <P>Entre campo2: <INPUT NAME="campo2"></P> <INPUT TYPE = "submit" VALUE = "Submit Query"> </FORM>

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("<HTML>"); printf("<HEAD><TITLE>Titulo</TITLE></HEAD>"); printf("<BODY>"); printf("<P>PAGINA DINAMICA </P>"); printf("</BODY>"); printf("</HTML>");

12 Resumo: Integração com a Web
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. QUERY-STRING Servidor WWW Aplicação CGI MÉTODO GET STDOUT STDIN MÉTODO POST Aplicação CGI Servidor WWW STDOUT

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
Nome: Ramal: Procurar Cadastrar Servidor WWW requisição Edgard Aplicação CGI resposta Processar requisição resposta Nome Rmal Edgard 1675 HTML Servidor de Banco de Dados Banco de dados

15 Tipos de Banco de Dados Cliente-Servidor: cliente
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 cliente tabelas

16 Banco de Dados em Ambiente WWW
Servidor de Banco de Dados Servidor WWW cliente tabelas CGI As consultas são sempre processadas no servidor. Servidor WWW tabelas cliente 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. API’s de acesso a banco de dados CGI HTTP Servidor WWW (Lógica de Apresentação) Programa CGI (Lógica de Negócio) SGDB (Lógica de Acesso aos Dados) Cliente WWW (Lógica de Apresentação) CLIENTE SERVIDOR

18 API’s 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 API’s 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. tabelas programa Driver Específico para Acessar o BD APIs para acesso a ODBC ODBC PROVIDER servidor APIs para acesso a ODBC Driver Específico para Acessar o BD programa 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 Endereço do Servidor: Nome Netbios do servidor Nome do banco de dados no servidor

21 Envio da Requisição Servidor WWW PROGRAMA CGI ODBC
parâmetros Servidor WWW String SQL Select, Insert, Update, Delete PROGRAMA CGI ODBC 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.

22 Captura da Resposta Servidor WWW PROGRAMA CGI ODBC
Status de uma operação, ou o resultado de uma consulta PROGRAMA CGI ODBC 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.


Carregar ppt "Desenvolvimento Baseado em CGI Material cedido pelo Prof"

Apresentações semelhantes


Anúncios Google