Desenvolvimento Baseado em CGI Material cedido pelo Prof

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Python: Entrada e Saída
Desenvolvimento Web.
UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Material cedido pelo Prof. Edgard Jamhour
Material III-Bimestre Wagner Santos C. de Jesus
Wagner Santos C. de Jesus
Linux Servidor de Redes WEB Prof. Roberto Amaral.
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Prof. Marco Aurelio N. Esteves
Tecnologias para Internet
EL e JSTL Prof. Danton Cavalcanti Franco Junior
Tópicos de Sistemas de Informação A
Protocolo HTTP e HTML Prof. Danton Cavalcanti Franco Junior
Aula R Prof. Naércio Filho Técnico em Informática
Formulários Objectivo: obter do utilizador respostas personalizadas
Programação para estrutura Cliente-Servidor
Arquitecturas de extensão do servidor HTTP CGI | ISAPI : ASP, ASP.NET Programação na Internet Secção de Programação ISEL-DEETC-LEIC Luis Falcão -
Arquitecturas de extensão do servidor HTTP Arquitecturas de extensão do servidor HTTP CGI e ISAPI: ASP, ASP.NET Programação na Internet Secção de Sistemas.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos de Sistemas de Informação A
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Web Services Uninorte Semana de Tecnologia da Informação
A autoria - II.
Programação de SCRIPTS
Conceitos de J2EE para a WEB
XIII Jornada de Cursos .NET com C# Lucas Mello Flávio Almeida.
Formulários HTML Jobson Ronan
1 JavaScript. 2 JavaScript  Introdução  Fatos Sobre JavaScript  Embutindo JavaScript no HTML  Características da Linguagem:  sintaxe  objetos 
Prof. Alexandre Monteiro Recife
Professor: Márcio Amador
PrograMação para internet
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Tecnologias Web Prof. Msc. Juliano Gomes Weber Tecnologias Web Notas de Aula – Aula 02 1º Semestre UNIJUÍ.
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Configuração do Ambiente de programação
Arquitetura das JSP - Aula 2
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Implementação MVC Pedro Antonino.
Aplicações Web com Orientação a Objetos
Unidade 6 – Formulários HTML Prof.: Henrique Santos
JSP JavaServer Pages Marco Antonio, Arquiteto de Software – TJDF Dezembro/2005.
IIS Web Server.
Bancos de Dados Estrutura e Funcionamento de um SGBD
PROGRAMAÇÃO WEB AULA 01 Prof. Gustavo Linhares
Padrões de Interação com o Usuário
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
A Internet e Seu Impacto
SQLite Banco de Dados II.
O Que É a Internet e Como Funciona: Tecnologias Ativas Renato M.E. Sabbatini, PhD Aula.
Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução a Aplicações Web.
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
OBJETIVO Nesta aula será apresentado o desenvolvimento básico sobre HTTP Servlets. Espera-se que, ao final da apresentação, o aluno tenha noções de como.
Sistema de Embalagens Inteligentes para auxílio de deficientes visuais
Redes de computadores: Aplicações Prof. Dr. Amine BERQIA
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Academia de Ensino Superior - Prof. André Morais Desenvolvimento de Aplicações Web na plataforma Microsoft Programando eventos.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Aula 1 - Fundamentos Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros.
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
Desenvolvimento WEB II Aula 3 – Conexão com o Banco de Dados
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
1 AJAX em aplicações Rails Lívia Monnerat Castro
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
Persistência de dados e padrão DAO
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Servidor WEB IGOR ALVES. O protocolo HTTP 1990 surgimento da aplicação www Grande quantidade de informação que pode ser acessada por demanda Buscadores.
Transcrição da apresentação:

Desenvolvimento Baseado em CGI Material cedido pelo Prof Desenvolvimento Baseado em CGI Material cedido pelo Prof. Edgard Jamhour

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

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

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

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.

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.

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: http://www.yahoo.com?carros 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

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.

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>

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>

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>");

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

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.

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

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

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

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

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.

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

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

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.

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.