Protocolos na WEB

 

Grupo C4

José Roberto – RA 980142

Luciana – RA 973271 (Relatora)

Raquel C. – 973505

Ricardo T. – RA 983626

Rossano – RA 973271

 

Objetivo

Introdução

Métodos HTTP

Funcionalidade e implementação

P-HTTP

Conclusão

Referências

 


Objetivo

Implementar um servidor http para suportar um ambiente educacional, tomando como base o exemplo especificado abaixo:

Funcionalidade do ambiente: "Curso sob medida + Prova virtual"

Cenário: Uma disciplina é ministrada em vários cursos, sendo especialista para cada um deles.

Terminologia: Universidade é composta por unidades (Faculdades e Institutos) que são responsáveis por cursos oferecidos (Eng. Computação, Eng. Química). Cada curso possui uma grade curricular com várias disciplinas. Existe interseção das disciplinas em diferentes cursos, (por exemplo, cálculo para Eng. Civil e Eng. Materiais).

Segurança: Deve ser considerada em todas as etapas as funcionalidades descritas.

Funcionalidades:

Compor as disciplinas (material, exercícios, provas, aulas, grupos de forma distribuída, etc.).

Estabelecer perfis para cada curso (definir diferentes visões).

Cadastrar atores com diferentes perfis e níveis de acesso (instrutor, monitor, alunos, grupos de forma distribuída).

Disponibilizar as disciplinas/aulas (Relacionamento curso/aulas/disciplinas/tempo máximo).

Acompanhar o andamento da disciplina. Fornecer feed-back para alunos e professores.

Aplicar prova (testes, dissertativas, etc.).

Corrigir e pontuar a prova (pelo próprio sistema, testes; instrutor "ad-hoc"; auto-correção, disponibilizar gabaritos para auto avaliação).

Disponibilizar resultados.

 


Introdução

HTTP é um protocolo utilizado em sistemas de informação colaborativo distribuído. Em geral, é um protocolo orientado-objeto sem estado.

Comunicações HTTP entre um cliente e servidor são sem estado. Isto significa que toda requisição do cliente para o servidor é tratada independentemente. Informações sobre conexões prévias não são mantidas para o uso de conexões futuras.

 


Métodos HTTP

Os métodos HTTP indicam o método a ser utilizado na identificação do objeto pela URL.

Exercício proposto: Definir métodos HTTP que um servidor deveria suportar para apoiar o ambiente educacional, citado na Introdução deste texto.

 

Método

Descrição

Exemplo

GET

Significa recuperar o dado que é identificado na URI. Ele retorna o dado e não a origem do texto ou processo. É também usado para pesquisas.

Compor as disciplinas. Por ser um trabalho colaborativo, praticamente é utilizado em todas as funcionalidades.

HEAD

É parecido com o GET mas, retorna apenas o informações sobre o documento, por exemplo, o protocolo e formato que o texto está sendo disponibilizado e não todo o documento.

Compor as disciplinas.

CHECKOUT

Similar ao GET mas bloqueia o objeto impossibilitando a atualização por outros usuários. O bloqueio pode ser liberado por uma autoridade maior (administrador da rede) ou por um timeout.

Aplicar prova.

PUT

Especifica que um dado do documento deve ser armazenado na URL especificada. A URL já deve existir.

Cadastrar atores com diferentes perfis e níveis de acesso; Aplicar prova.

DELETE

Requisição em que o servidor apaga a informação correspondente de uma URL.

Compor as disciplinas; cadastrar atores com diferentes perfis e níveis de acesso; Aplicar prova; Disponibilizar resultados.

POST

Cria um novo objeto ligado a um objeto específico.

Compor as disciplinas.

LINK

Liga um objeto existente a um objeto específico.

Compor as disciplinas; estabelecer perfis para cada curso; Disponibilizar as disciplinas/aulas.

UNLINK

Remove a ligação de informação de um objeto.

Compor as disciplinas; Aplicar prova.

CHECKIN

Similar ao PUT, mas libera o bloqueio de um objeto.

Aplicar prova.

TEXTSEARCH

O objeto pode ser capturado com uma string de texto. A forma de pesquisa do método GET é usada para capturar o objeto.

Compor as disciplinas.

 


Funcionalidade e implementação

Exercício proposto: Apresentar uma funcionalidade do ambiente "Curso sob medida + Prova Virtual" na qual a preservação de estado é necessária no servidor HTTP e descrever sua implementação usando dynamic argument embedding.

Dynamic Argument Embedding (DAE) é uma técnica que associa estado com conversações. Uma conversação é uma sequência de comunicações entre um cliente e um ou mais servidores em que o cliente seleciona a próxima página seguindo um link hipertexto provido pelo servidor.

Uma funcionalidade deste ambiente seria a Aplicação de Provas Virtuais, considerando que uma prova teria várias páginas e o aluno se identificaria apenas na primeira página.

Implementação: Um cliente invoca um programa CGI no servidor. O programa determina que as variáveis de estado devem ser embutidas na conversação, então todos os programas CGI que poderiam ser invocados para a conversação terão seu acesso.

O programa CGI gera uma página HTML com links hipertexto para o cliente continuar a conversação. Contudo, em vez de retornar a página HTML não modificada, ao cliente, o programa CGI é adaptado para invocar um módulo A do argumento embutido, passando para ele a página HTML e todos os argumentos de estado.

O módulo A modifica todos os links hipertexto na página HTML para ser chamado para um módulo B do argumento embutido. Se o link era para um arquivo HTML, o módulo B passa uma referência absoluta para o arquivo e para todos os argumentos de estado. Se o link era para um programa CGI, o módulo B passa uma referência absoluta para o programa CGI, os argumentos originais para um programa CGI, um parâmetro delimitando o final dos argumentos originais e os argumentos de estado.

O módulo A agora envia a página HTML modificada para o cliente. Todos os links hipertexto modificados na página são chamados para o módulo B. O cliente seleciona um link hipertexto para continuar a conversação.

Duas possibilidades são consideradas. Uma é que o primeiro argumento para o módulo B é um arquivo, e os argumentos restantes são variáveis de estado. Então, o arquivo é trazido e passado para frente com todos os argumentos para o módulo A. O módulo A modifica os links hipertexto para invocar o módulo B.

A segunda possibilidade é que o primeiro argumento para o módulo B é um programa CGI. Os argumentos restantes são argumentos originais para o programa CGI, um argumento separador e variáveis de estado. O programa CGI é invocado nos argumentos originais e nas variáveis de estado. A saída resultante é passada para frente com todas as variáveis de estado para o módulo A. O módulo A modifica os links hipertexto para invocar o módulo B.

Em alguns casos é desejável passar o estado para um programa CGI mas não para um estado embutido na saída gerada pelo programa, tal como quando o programa CGI está ainda preservando o estado em suas saídas usando dynamic argument embedding. O módulo A do argumento embutido reconhece esta classe de programas CGI por uma string especial no nome do programa e adiciona os argumentos de estado aos argumentos já existentes.

 


P-HTTP (Persitent HTTP)

Exercício proposto: Considerando a situação apresentada no item acima, P-HTTP seria uma alternativa de implementação? Justifique.

P-HTTP tenta completar a transação num determinado tempo por sequência de transação para o mesmo servidor. A transação inicial ocorre como em HTTP, mas a conexão não é fechada. A requisição subsequente ocorre sem a necessidade de reabrir a conexão.

Baseado na definição acima, concluímos que o P-HTTP seria uma alternativa de implementação para a "Aplicação de Prova Virtual", sendo que o carregamento da página seria mais rápido porque ele pode manter a conexão até carregar todo o link, desde que o intervalo de tempo para a transferência do link não seja muito grande, senão a conexão é desfeita.

 


Conclusão

O HTTP por não preservar estado e ser limitado, continua sendo um problema para aplicações WEB. Mas, baseado nas definições citadas no texto, uma das alternativas para manter o estado em um servidor HTTP seria utilizar a técnica Dynamic Argument Embedding (DAE). Uma das vantagens desta técnica é a preservação de estado de comunicações anteriores entre um cliente e servidor. Uma das desvantagens é que esta técnica não termina uma aplicação no meio da conexão, porém, as vezes é necessário que essa expiração ocorra, pois um dos lados da conexão pode apresentar um determinado problema. Com isso, tem-se uma proposta para sobrepor o HTTP, que seria o P-HTTP, que possibilita a diminuição o tempo de transferência de arquivos com figuras ou outros objetos associados a este.

 


Referências

[1] Dynamic Argument Embedding: Preserving State on the World Wide Web

Arun Iyengar – IBM T.J. Watson Research Center

IEEE Internet Computing

 

[2] Analysis of HTTP Performance

Joe Touch, John Heidemann and Katia Obraczka

USC/Information Sciences Intstitute

August 16, 1996 – Initial Release, V1.2

 

[3] Basic HTTP as defined in 1992


Comentários dos instrutores:

Nota: B

Texto: OK
Metodos http x funcionalidade da aplic.: metodo link nao esta correto
Implementacao funcionalidade: rever Checkin e Checkout   
P-http: incorreto. 

Bom Trabalho !

Last modified: Wed Apr 29 17:47:40 BRA 1998