IA368 - Tópicos de Engenharia de Computação V

Tópico: Protocolos na Web

 

Grupo D: Marcelo (relator), Daniela, Cristian, Alberto

 

Tema: Servidor http para apoiar um ambiente educacional

Introdução

Esse relato discute questões relacionadas a implementação de um servidor http para apoiar um ambiente educacional. Em primeiro lugar foram considerados os métodos que o servidor deveria suportar. Alguns são obrigatórios para a utilização do servidor, enquanto outros são interessantes do ponto de vista específico de um ambiente educacional colaborativo. Em segundo lugar apresentamos duas funcionalidades para as quais a preservação de estado é importante para um servidor adequado para o ambiente citado. Essas funcionalidades estão relacionadas com a preservação da identificação do usuário e com a marcação do tempo de prova. Finalmente foi discutido se o P-HTTP é uma alternativa para a preservação de estado no servidor. As conclusões estão resumidas no fim deste trabalho.

Questões

1. Quais métodos HTTP um servidor deveria suportar? Justifique a utilização de cada um deles através de exemplos.

GET - Sendo o principal método para pegar os dados no servidor, é obrigatório (mandatory) para qualquer implementação, seja de apoio a um ambiente educacional ou não.

HEAD - Método que pega o que está no cabeçalho de um arquivo HTML, dando informações sobre o documento solicitado. Pode ser utilizado na recuperação da documentação de páginas HTML produzidas pelos atores envolvidos em um ambiente educacional.

CHECKOUT/CHECKIN - Método de controle de concorrência. Pode ser útil em um ambiente onde os alunos fazem anotações. O controle permitido por esses métodos evitará alterações concorrentes em documentos. Assim, um aluno não poderá alterar um documento que está sendo alterado por outro.

SHOWMETOD - Fornece a descrição de uma informação no servidor, ou seja meta-informação sobre um documento. Não conseguimos identificar uma utilização mais diferenciada para esse método, considerando que o método HEAD já permite buscar informações sobre o documento. Ou seja, caso implementado, esse método teria a mesma utilidade descrita anteriomente para o HEAD.

PUT - Em um ambiente colaborativo esse método permitiria os atores envolvidos enviar dados. O servidor poderia receber documentos elaborados pelos alunos. É importante lembrar que a implementação desse método deve ser acompanhada de ressalvas relacionadas à segurança.

DELETE - Sua implementação daria a opção de apagar páginas de comentário de propriedade de um aluno em um ambiente colaborativo, ou seja, um aluno poderia "retirar" um comentário que ele havia feito. Entretanto, o uso desse método necessita de uma análise mais apurada sobre a relação benefício/segurança.

POST - Essencial para criar novos documentos associados a um documento existente. É o método que dá suporte a mecanismos colaborativos, tais como anotações, listas de discussão e autoria.

LINK/UNLINK - São necessários para a implementação do POST, fazendo um link entre dois objetos existentes.

TEXTSEARCH - O método permite fazer busca de uma string dentro de um objeto. É uma opção de mais baixo nível alternativa às buscas realizadas via CGI. Útil em recursos de consulta em um ambiente educacional.

SPACEJUMP - Alternativa à ferramentas do tipo Imagemap. A funcionalidade desse método já está implementada na camada de aplicação. Portanto não vemos necessidade de sua implementação.

SEARCH - Refinamento do TEXTSEARCH, com finalidade de busca mais flexível e não apenas baseada em string. Tem a mesma importância que o TEXTSEARCH para um ambiente educacional.

2. Apresente uma funcionalidade deste ambiente na qual a preservação de estado é necessária nesse servidor. Descreva como seria a implementação desta funcionalidade usando dynamic argumment embedding.

Pensamos duas funcionalidades na qual a preservação do estado é necessária. A primeira é a manutenção da identificação do aluno. A preservação do estado evitaria outras checagens do usuário, quando ele solicitasse novas páginas ao servidor. Isso seria muito útil em um ambiente educacional colaborativo, economizando tempo e aumentando a segurança, pois a identificação não precisaria ser repetida e nem trafegar na rede. Outra funcionalidade interessante para o cenário especificado é o registro do tempo de prova. A aplicação funcionaria de modo que, no momento do início da realização da prova pelo aluno, fosse armazenada uma variável de estado com a hora. Ao término da prova, essa informação e a hora de finalização do teste poderia ser passada para o instrutor, assim como o resultado das provas, caso a correção do teste seja automática. A aplicação também poderia dar um retorno direto ao aluno.

A implementação se basearia em fazer um link para a prova ("Inicio de Prova"). O link é uma chamada para o programa CGI do dynamic argument embedding. A partir desse momento o aluno poderia navegar livremente pelas várias páginas da prova, sempre mantendo o registro da hora de início. Ao término da prova o aluno ativaria outro link ("Fim de Prova"), o qual chamaria outro programa CGI, responsável pelo envio da informação ao instrutor como descrito no parágrafo anterior. O mesmo programa seria responsável pelo retorno ao aluno e por outros processamentos que seriam necessários no momento de finalização da prova (por exemplo, a correção da mesma e o envio do resultado ao aluno, no caso de prova de múltipla escolha).

3. Considerando a situação apresentada no item acima: P-HTTP (persistent HTTP) seria uma alternativa de implementação? Justifique sua resposta.

Não, o P-HTTP não é uma alternativa à preservação de estado do dynamic argument embedding. Isso porque o que ele oferece de melhoria em relação ao HTTP não está relacionado com a preservação de estado, mas sim com a superação de problemas relacionados com queda de conexão, como o caso dos slow-start (a limitação do crescimento da janela de transição).

Conclusão

Em relação aos métodos que o servidor deveria suportar, consideramos que alguns são obrigatórios (ou básicos) para a utilização do servidor, como é o caso do método GET. Outros são interessantes também do ponto de vista específico de um ambiente educacional colaborativo, como é o caso do POST. Nossas considerações e exemplos dos demais métodos podem ser avaliadas na resposta da questão um. As duas funcionalidades que apresentamos, para as quais a preservação de estado é necessária estão relacionadas com a preservação da identificação do usuário e com a marcação do tempo de prova. Mostramos como ambas necessitam desta característica. Quanto ao P-HTTP como alternativa para a preservação de estado no servidor nossa avaliação é que isso não procede pois a principal melhoria que esse protocolo implementa está relacionada com solução para quebra de conexão e não preservação de estado.

Bibliografia

 

HTTP: A protocol for networked information

Tim Berners-Lee

Internet Draft, 1992

 

Analysis of HTTP Performance

Joe Touch, John Heidemann, Katia Obraczka

USC/Information Sciences Institute, August 16, 1996

 

Dynamic argument embedding: Preserving state on the World Wide Web

Arun Iyengar

IEEE Internet Computing, 1(2):50-56, March/April 1997


Comentários dos instrutores:

Nota: A

Texto: OK
Metodos http x funcionalidade da aplic.: OK
Implementacao funcionalidade: 
  rever: "... pois a identificacao nao precisaria ser repetida
              e ". Isto nao e' verdade    
P-http: OK 
Conclusoes: OK

Bom trabalho !

Last modified: Wed Apr 29 17:49:42 BRA 1998