Padronização de protocolos de comunicação

Protocolos de Comunicação

editar

A comunicação envolve a troca de uma série de mensagens entre duas entidades. Parte fundamental para a comunicação bem sucedida é a premissa a respeito das informações transmitidas e recebidas, como por exemplo a linguagem e o meio de transmissão [1]. Caso as entidades envolvidas na comunicação não concordem em relação a estas premissas, não será possível estabelecer um diálogo adequada.

Restrições a respeito do formato, meios de transmissão, e ações a serem tomadas no envio e recebimento de mensagens são definidas por meio de protocolos. A partir do momento em que duas entidades sigam o mesmo protocolo, pode-se garantir que a comunicação será estabelecida. Assim como qualquer outra entidade, componentes de hardware e software também estão sujeitos a protocolos de comunicação [2].

Antes de abordar os protocolos de federação, é necessário entender a necessidade de protocolos de comunicação a partir da utilização em redes de computadores. Também se faz necessário discutir o processo de padronização desses protocolos, o que deve ajudar na discussão a respeito da definição e utilização de padrões na construção de sistemas federados.

Suítes de Protocolos

editar

No contexto da computação, redes de comunicação são construídas com diferentes tecnologias de acordo com necessidades e restrições específicas, o que prejudica a capacidade de intercomunicação entre dispositivos [1]. A Internet, por exemplo, é uma coleção de redes menores que eventualmente utilizam tecnologias diferentes, como é o caso de linhas telefônicas, e transmissão a rádio [3]. Um desafio diferente é alcançar a intercomunicação em um sistema complexo como tal, onde as redes que o compõem utilizam seus próprios protocolos, desta vez específicos ao meio de transmissão.

Existem duas observações fundamentais ao projeto de redes de comunicação [1]:

  • Não existe nenhuma tecnologia de rede capaz de satisfazer às restrições de todos os possíveis contextos;
  • Usuários desejam intercomunicação universal.

A primeira observação sugere que a necessidade de interoperabilidade eventualmente pode surgir entre sistemas incompatíveis. Ainda assim, a discrepância deve ser invisível ao usuário, que de qualquer forma espera a interoperabilidade, ponto reafirmado pela segunda observação.

Esse tipo de interoperabilidade pode ser implementada tanto no nível das aplicações quanto no nível da rede. Enquanto a primeira estratégia supõe que as aplicações prevejam explicitamente suporte a cada uma das tecnologias, a segunda estratégia é mapeada desde o hardware, providenciando uma camada de abstração para os componentes utilitários.

A intercomunicação no nível de rede (ou simplesmente internet [1]) também pode empregar um modelo de camadas. Neste caso, os protocolos são organizados em uma hierarquia vertical, de acordo com seus objetivos. A interface entre cada camada é bem definida, o que concede modularidade ao sistema [2].

Neste tipo de hierarquia as mensagens são enviadas sucessivamente da camada mais superior até a camada mais inferior durante a transmissão, o inverso do que acontece no recebimento. Apenas as camadas mais inferiores do transmissor e destinatário são conectadas por meio de um meio de transmissão arbitrário, o que garante abstração do meio para as camadas superiores.

Padronização de Protocolos

editar

A definição de protocolos é apenas o primeiro passo para a intercomunicação de sistemas. Se não existir um acordo a respeito da especificação utilizada será mais difícil estabelecer a comunicação entre serviços [2]. A padronização garante o estabelecimento deste acordo.

O conceito de efeito de rede indica que a adoção de um protocolo se torna mais valiosa à medida que um maior número de entidades também o utilize [4]. Justifica-se portanto o interesse em incentivar a padronização de protocolos.

A partir do momento em que uma série de entidades entra em consenso a respeito da especificação de um protocolo, estabelece-se um padrão de facto. A iniciativa de padronização também pode surgir através de entidades regulamentadoras, como a Organização Internacional para a Padronização (ISO), ou a Internet Engineering Task Force (IETF), o que leva ao estabelecimento padrões de jure [3].

O processo de definição de novos padrões de jure depende da entidade regulamentadora relacionada, e ocasionalmente parte de padrões de facto já utilizados na comunidade. Geralmente uma especificação é proposta, discutida, e revisada pela entidade antes de se tornar um padrão, o que no caso da ISO pode levar de seis meses a alguns anos [3].

Propostas e padrões estabelecidos devem ser documentados de alguma forma. A IETF adota o formato de Request for Comments (RFC), publicações que descrevem completamente uma especificação, e estão disponíveis a consulta pela comunidade.

Uma proposta deve cumprir uma série de requisitos antes de ser endossado por uma organização. No caso da IETF, cada proposta passa por vários níveis de maturidade até alcançar a categoria de padrão. Cada um destes níveis pode ser alcançado ao satisfazer as recomendações de determinados grupo da comunidade. Um exemplo destes requisitos é a exigência de uma prova de conceito de interoperabilidade, como uma implementação de referência entre duas ou mais entidades distintas [5].

Protocolos de federação também estão sujeitos ao efeito de rede, e apresentam as mesmas necessidades de padronização. O Simple Mail Transfer Protocol é um exemplo de especificação utilizado na interoperabilidade de sistemas federados que passou por um esforço oficial de padronização, tornando-se um caso interessante na análise deste processo.

Simple Mail Transfer Protocol

editar

Um sistema de e-mails pode ser considerado federado, já que respeita a definição de implementações interoperáveis no modelo cliente servidor apresentadapor [6]. O SMTP é um dos protocolos utilizados na implementação de interoperabilidade entre serviços distintos.

Trata-se de um protocolo para o transporte e entrega de mensagens de e-mail entre processos. A especificação garante que a troca de mensagens aconteça entre clientes que se localizam em redes diferentes, o que permite a construção de um serviço que funcione de maneira confiável sobre a internet [7].

Caracterizado como um protocolo orientado a conexões entre clientes e servidores, ou transmissores e receptores, o SMTP é guiado por uma série de comandos predefinidos. Os servidores também são responsáveis por retransmitir mensagens, caso não sejam os destinatários finais [2].

A troca de mensagens geralmente acontece em um único salto após o estabelecimento de uma conexão orientada entre o remetente e o destinatário. A retransmissão de mensagens é uma alternativa, utilizada por exemplo em casos em que um usuário moveu sua caixa de e-mails de um servidor para outro e deseja receber as mensagens no seu novo endereço.

O SMTP é um protocolo intermediário entre servidores de e-mail que alternam entre os papéis de transmissor e receptor. Cada um destes servidores possui seus próprios clientes, constituindo sistemas menores onde a interação não é necessariamente coberta pela especificação do SMTP. Os mecanismos de comunicação entre o servidor e o usuário destes sistemas não é necessariamente compatível e eventualmente utilizam outros padrões, como por exemplo POP3 ou IMAP [3].

O SMTP eventualmente passou pelo processo de padronização da IETF que levou à publicação de uma RFC. Trata-se de um padrão de jure aberto, definido por uma organização ainda que adotado pelo mercado.

Considerando a descentralização da arquitetura e a padronização do protocolo, qualquer novo sistema é capaz de implementar e se tornar parte da federação com relativa facilidade. Nestes casos a heterogeneidade entre os sistemas intermediários é completamente transparente para os usuários do serviço, o que o indica como um protocolo de federação bem sucedido.

  1. 1,0 1,1 1,2 1,3 COMER, D. E. Internetworking with TCP/IP, Volume 1: Principles, Protocols, and Architectures, Fourth Edition. 4th. ed. Upper Saddle River, NJ, USA: Prentice Hall PTR, 2000. ISBN 0130183806. 
  2. 2,0 2,1 2,2 2,3 KUROSE, J. F.; ROSS, K. W. Computer Networking: A Top-Down Approach (6th Edition). 6th. ed. [S.l.]: Pearson, 2012. ISBN 0132856204, 9780132856201. 
  3. 3,0 3,1 3,2 3,3 TANENBAUM, A. S.; WETHERALL, D. J. Computer Networks. 5th. ed. Upper Saddle River, NJ, USA: Prentice Hall Press, 2010. ISBN 0132126958, 9780132126953. 
  4. LIEBOWITZ, S. J.; MARGOLIS, S. E. Network Externalities (Effects). 1998. Disponível em: <https://web.archive.org/web/20160410041613/http://www.utdallas. edu/~liebowit/palgrave/network.html>. 
  5. POSTEL, J. IAB Official Protocol Standards. [S.l.], 1992. 1-32 p. Disponível em: <https://tools.ietf.org/rfc/rfc1280.txt>. 
  6. BAROCAS, S. et al. A critical look at decentralized personal data architectures. CoRR, abs/1202.4503,2012.Disponívelem:<http://arxiv.org/abs/1202.4503>. 
  7. KLENSIN, J. Simple Mail Transfer Protocol. [S.l.], 2001. 1-79 p. Disponível em: <https://tools.ietf.org/rfc/rfc1280.txt>.