Mudanças entre as edições de "PTC29008: Projeto 2: Protocolo de aplicação"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
Linha 35: Linha 35:
 
* [http://mqtt.org/ MQTT]
 
* [http://mqtt.org/ MQTT]
 
* [https://www.dds-foundation.org/ DDS]
 
* [https://www.dds-foundation.org/ DDS]
* [https://tools.ietf.org/html/rfc1350 TFTP]
 
 
* [https://stomp.github.io/stomp-specification-1.2.html STOMP]
 
* [https://stomp.github.io/stomp-specification-1.2.html STOMP]
 +
<!-- * [https://tools.ietf.org/html/rfc1350 TFTP] -->
  
 
= Especificação do protocolo =
 
= Especificação do protocolo =

Edição atual tal como às 10h58min de 3 de setembro de 2020

Próxima aula


  • Objetivos:
    • Propor um protocolo de aplicação
    • Descrever formalmente o protocolo proposto

Protocolos de aplicação


Protocolos de aplicação têm a finalidade de efetuar intercâmbio de dados entre aplicações específicas. Por sua própria definição, são protocolos muito especializados quando comparados a protocolos de comunicação. Estes últimos oferecem serviços de comunicação mais genéricos, capazes de transportarem dados independente de suas representações e suportarem diferentes modos de interação. Protocolos de aplicação, por sua vez, são projetados para o intercâmbio de dados com representação específica, e para realizarem interações com características particulares entre aplicações.

Alguns protocolos de aplicação conhecidos são:


Protocolos de aplicação podem ser caracterizados em diferentes dimensões, porém duas delas se destacam ao compará-los com protocolos de camadas mais baixas:

  • Arquitetura da aplicação: entidades se comunicam usando um protocolo segundo algum modelo de comunicação, o qual define as características das interações. Por exemplo: quem inicia a comunicação; quantas entidades podem se comunicar em uma sessão; como entidades se identificam ou se endereçam. Modelos bem conhecidos são cliente-servidor, P2P e publisher-subscriber.
  • Sintaxe e codificação: mensagens de um protocolo são estruturadas para conterem um ou mais dados, os quais podem estar representados de diferentes maneiras. Por exemplo, mensagens podem conter uma quantidade de dados fixa ou variável, dados de um único tipo ou de diferentes tipos, e dados podem ser representados codificados em ASCII, UTF-8 ou segundo alguma codificação binária.


No início da disciplina realizou-se um exercício sobre a especificação e implementação de um protocolo para bate-papo. Naquele momento, o desenvolvimento do protocolo foi em larga medida informal. No projeto 2 um novo protocolo será desenvolvido seguindo as diretrizes para especificação e desenvolvimento de protocolos. Esse novo protocolo deve seguir a especificação de um protocolo de aplicação conhecido, tal como:

Especificação do protocolo

  • Objetivos:
    • identificar o serviço a ser provido pelo protocolo
    • descrever o vocabulário do protocolo
    • especificar suas regras de procedimento (seu comportamento)


O protocolo de aplicação a ser desenvolvido deve ser especificado. Isso implica sua descrição sem ambiguidades, para que possa ser corretamente implementado. A especificação envolve a definição do serviço oferecido, seu vocabulário e sintaxe, sua gramática, e a verificação de seu comportamento. Sua implementação se chama entidade de protocolo, sendo composta por software e (por vezes) hardware.

Isso envolve:

  1. Descrever a comunicação envolvida na aplicação
  2. Definir o serviço a ser provido pelo protocolo, o que inclui a interface de acesso a serviço

Atividade: modelo do protocolo de aplicação

  1. Serviço: descreva o serviço a ser oferecido pelo protocolo
  2. Defina o vocabulário do protocolo de aplicação, incluindo os tipos de mensagens e suas sintaxes.
  3. Modele o comportamento do protocolo de aplicação. Para isso identifique os elementos capazes de representar as regras de procedimento do protocolo: mensagens, eventos, estados e transições.