Protocolos na Web

 

Grupo E4

 

Marcelo Tilli e Ivan Granja (relatores), Firmiano Perlingeiro, Valmir Tadeu Fernandes

 

Sumário:

1. Introdução

2. Definições

3. Métodos HTTP x Aplicação na área de educação

4. Preservação de Estados: Descrição da implementação de uma funcionalidade usando Dynamic argument embedding

5. P-HTTP: Uma alternativa para a implementação?

6. Conclusão

 

 

1. Introdução

A utilização dos protocolos de comunicação na WEB é um dos principais componentes que permitem a troca de informações entre clientes e servidores. Nos dias de hoje o protocolo padrão responsável por essa comunicação, apesar de suas limitações, é o HTTP (HyperText Transfer Protocol). Neste trabalho, detalhes sobre esse protocolo padrão serão discutidos em consonância com as especificações de uma ambiente de ensino hipermídia baseado na WEB, que oferece cursos sob medida e provas virtuais.

 

2. Definições

A seguir, estão definidos os principais conceitos abordados neste trabalho:

HTML (Hypertext Markup Language) é uma simples linguagem para hipertexto, multimídia, e exibição de pequenos e simples documentos. Linguagem corrente utilizada em aplicações na Web. É baseada na SGML [5].

Link - Ligação. Um relacionamento explícito entre dois ou mais objetos de dados ou parte de objetos de dados [6].

HTTP (HyperText Transfer Protocol) é o protocolo usado atualmente na WEB, para transferir informações multimídia. Foi desenvolvido como uma alternativa à ineficiência de partes do protocolo FTP (file transfer protocol) [3].

URL (Uniform Resource Locator) é um subconjunto da URI (Uniform Resource Indentifier) que pode ser usada para localizar recursos através de uma identificação abstrata da localização do mesmo dentro de um identificador [8].

A aplicação que será descrita neste trabalho refere-se à implementação de um servidor HTTP para apoiar um ambiente educacional que consiste da junção do que foi sugerido por Picarelli et al.[1] e Torres et al [7]. O cenário desse ambiente de educação consiste do oferecimento de uma disciplina adaptada às necessidades e perfis de cada usuário (sob medida), cuja avaliação ocorrerá através de uma Prova Virtual. As funcionalidades modeladas para esse cenário estão numeradas e descritas à seguir:

 

  1. Compor as Disciplinas
  2. Estabelecer Perfis para cada curso (diferentes visões)
  3. Cadastrar atores com diferentes perfís e níveis de acesso
  4. Disponibilizar a disciplina/aulas (Relacionamento cursos/aulas/disciplinas/tempo máximo)
  5. Acompanhar o andamento da disciplina
  6. Aplicar provas
  7. Corrigir e pontuar as provas
  8. Disponibilizar Resultados

 

3. Métodos HTTP x Aplicação na área de educação

Métodos são as operações que podem ser desempenhadas por um determinado objeto. Quando nos referimos ao protocolo HTTP, um método é executado, quando for requisitado por um objeto identificado por uma URL [2].

Utilizando como base a aplicação modelada no cenário descrito na seção anterior, podemos relacionar as principais funcionalidade descritas com cada um dos métodos disponíveis no HTTP [2] que forem aplicáveis nesse contexto. Essa relação está descrita através da Tabela I, e logo após está descrito um breve comentário acerca da utilização dos métodos para cada uma das funcionalidades do modelo.

 

Tabela I – Relacionamento entre Funcionalidades e Métodos Aplicáveis no Cenário

Funcionalidade/ Método

1

2

3

4

5

6

7

8

GET

Ö

 

 

Ö

Ö

Ö

Ö

Ö

CHECKOUT

 

Ö

Ö

 

 

Ö

 

 

PUT

Ö

 

 

Ö

Ö

Ö

Ö

 

DELETE

Ö

Ö

Ö

Ö

Ö

Ö

 

 

POST

Ö

Ö

Ö

Ö

Ö

Ö

Ö

 

LINK

Ö

Ö

Ö

Ö

Ö

Ö

Ö

Ö

UNLINK

Ö

Ö

Ö

Ö

Ö

 

Ö

 

CHECKIN

 

Ö

Ö

 

 

Ö

 

 

A primeira funcionalidade descrita no modelo refere-se à Composição de todo o material que será usado na Disciplina. Para tarefas de composição, os métodos GET, PUT, DELETE e POST serão fundamentais para a obtenção de material já existente, atualização, remoção e criação de material. LINK e UNLINK serão utilizados para criar e atualizar as ligações necessárias entre os diferentes objetos componentes do material de aula.

A segunda funcionalidade descrita (Estabelecer Perfis), usará os métodos DELETE, PUT, POST, LINK, UNLINK, para que sejam compostas as diferentes visões dessa base de dados, utilizando o material composto no passo anterior. Os métodos CHECKOUT e CHECKIN são recomendáveis nesse contexto em substituição à GET e PUT devido à segurança requerida durante uma ação de cadastro de perfil (duas pessoas não devem ter acesso simultâneo às operações de inclusão, remoção, modificação de perfis).

A terceira funcionalidade (cadastro dos atores dos modelo) usará os mesmos métodos da segunda, pois são similares (cadastro de perfis e preferencias).

A quarta funcionalidade usará os mesmo métodos da primeira, pois realizará do relacionamento entre todo o material produzido bem como sua liberação para que seja utilizado pelos alunos (usuários do sistema).

A quinta funcionalidade (Controle e Feed-Back) necessitará dos mesmos métodos relacionadas na primeira (Composição) pois pressupõe o acesso às informações já disponíveis, bem como registro e atualização das informações referentes à realimentação (feed-back).

A sexta funcionalidade (aplicação da prova) poderá usar todos os métodos descritos na Tabela I, dependendo do tipo de prova. Por exemplo, se a prova for igual para todos os alunos, os métodos GET e PUT serão perfeitamente aplicáveis. Já se a prova for personalizada ou então se as questões forem aleatoriamente selecionadas (e em ambos os casos pode não ser aconselhável a repetição de questões), os métodos CHECKOUT e CHECHKIN devem ser usados. A utilização dos métodos PUT, POST, DELETE são requeridas para que as respostas das provas possam ser convenientemente armazenadas. O método LINK é requerido para que haja um mecanismo de ligação entre partes da prova ou, por exemplo, entre a prova e referências bibliográficas.

A sétima funcionalidade (Corrigir e Pontuar a Prova) utilizará os mesmos métodos listados na primeira funcionalidade (Composição), pois é necessário, por exemplo, recuperar as respostas dadas pelos aluno, computar e atualizar os pontos, compor e modificar gabaritos e resultados.

Finalmente, a sétima e última funcionalidade (disponibilizar resultados), utilizará apenas o métodos ligados à exibição de dados (GET e LINK), pois nesse caso, serão apenas apresentados os resultados obtidos.

4. Preservação de Estados: Descrição da implementação de uma funcionalidade usando Dynamic argument embedding

 

Preservação de estados é um necessidade em sistemas que precisam de flexibilidade no acesso aos dados, como por exemplo em sistemas de comércio eletrônico ou virtual [4]. Nos atuais padrões da Web foram desenvolvidas três soluções para esse problema denominadas cookies, Formulários HTML e Dynamic argument embedding [4].

No cenário da aplicação que está sendo discutida (Curso sob medida com prova virtual), a aplicação da prova é uma funcionalidade que requer constante acesso e atualização de bases de dados. Nesse contexto, se nenhum mecanismo de preservação de estados for implementado no sistema, cada acesso a uma nova página HTML (contendo exercícios, formulários de respostas, etc.), uma nova certificação de acesso seria necessária. Com a utilização de Dynamic argument embedding, é possível implementar apenas uma validação de senha.

Essa funcionalidade poderia ser implementada da seguinte forma: Inicialmente a página principal com os dados preliminares referentes à disciplina será apresentada. Nesse instante será solicitada a identificação, a respectiva senha do usuário e então uma seção de identificação será estabelecida. A partir daí o usuário navegará livremente através documentos que estiverem disponíveis de acordo com seu perfil e andamento da disciplina (o aluno não poderá ter acesso às provas antes de terminar a disciplina). Serão estabelecidas variáveis de estados para a senha e a identificação (USERID), e a partir de então não será requerida mais nenhuma autenticação enquanto essa seção estiver estabelecida.

 

5. P-HTTP: Uma alternativa para a implementação

Considerando a natureza da aplicação proposta, que é implementar o ensino à distância com todas as ferramentas e facilidades possíveis aos participantes, é desejável que o fluxo de informação seja processado e transmitido da maneira mais eficiente possível.

De acordo com Touch [3], as conexões TCP para acesso HTTP possuem problemas de performance, considerando que são utilizadas uma conexão por transação. Para suprir as deficiências do TCP sobre HTTP, existem propostas como: Persistent-Connection HTTP, Transaction TCP e Sharing TCP Control Blocks [3].

À medida em que a primeira transação P-HTTP se inicia, as conexões não são mais encerradas, economizando o tempo de reabertura de conexão e evitando, em tese, o "slow-start" a cada nova conexão. Além disso, se aplica bem para múltiplas conexões adjacentes [3], que pode ocorrer, por exemplo, sob páginas com imagens embutidas como é tipico do modelo proposto para educação.

Como a solução P-HTTP se propõe a conseguir uma otimização do tempo de transações, para seqüenciais de transações em um mesmo servidor, pode-se dizer que se adapta como solução para o problema.

 

6. Conclusão

 

Para que a implementação do ambiente educacional proposto seja realizada com todas as facilidade requeridas, dentre elas preservação de estados, comunicação multimídia efetiva na WEB, pode-se constatar que o protocolo HTTP não atende todos os requisitos necessários.

A utilização de cookies, dynamic argument embedding, P-HTTP, dentre outros, têm proporcionado formas de suprir (mesmo que precariamente) as deficiências encontradas no protocolo HTTP, enquanto novos padrões não forem utilizados ou mesmo o HTTP seja convenientemente revisado, estendido e melhorado.

 

Referências:

 

[1] Picareli, J.E. et al., "XML – Diferentes Visões de um mesmo dado"

http://www.dca.fee.unicamp.br/~ricarte/Courses/IA368/1s98/Xml/d3.html

 

[2] Tim Berners-Lee, "HTTP: A protocol for networked information"

Internet Draft, 1992

http://www.w3.org/Protocols/HTTP/HTTP2.html

 

[3] Joe Touch, John Heidemann, Katia Obraczka, "Analysis of HTTP Performance"

USC/Information Sciences Institute, August 16, 1996, Internet Draft,

1992 http://www.isi.edu/lsam/publications/http-perf/index.html

 

[4] Arun Iyengar, Dynamic argument embedding: "Preserving state on the World Wide Web", IEEE Internet Computing, 1(2):50-56, March/April 1997

 

[5] Jon Bosak, "XML, Java, and the future of the Web"

Sun Microsystems, Last revised 1997.03.10

 

[6] Tim Bray, Steve DeRose, "Extensible Markup Language (XML): Part 2. Linking"

W3C Working Draft, July-31-97

 

[7] Torres, M.F.C.F. et al. "Formatos de Documentos e Dados na WEB – XML"

http://www.dca.fee.unicamp.br/~ricarte/Courses/IA368/1s98/Xml/c3.html

 

[8] Berners-Lee, T., Fielding R., Masinter L, "Unifrom Resource Identifier (URI): Generic Syntax and Semantics".

http://www.ics.uci.edu/pub/ietf/uri/draft-fielding-uri-syntax-01.txt

 


Comentários dos instrutores:

Nota: B

Texto: OK
Metodos http x funcionalidade da aplic.: OK
Implementacao funcionalidade: OK     
P-http: incorreto. 
Conclusoes: OK

Bom trabalho !

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