Resumo

  • O RFC 984 propôs um repositório permanente para o estado global do correio. Vários PCs do mesmo usuário manteriam cópias locais e as sincronizariam quando conectados.
  • Descritores de cerca de 100 bytes permitiam guardar o catálogo inteiro sem trazer todos os corpos das mensagens. No modo em lote, ações locais aguardavam reconexão; DMSP exigia operações atômicas e confirmação explícita.

O computador vai embora do escritório. Talvez viaje no banco de trás de um carro — David Clark e Mark Lambert mencionaram essa possibilidade em PCMAIL, em maio de 1986. O correio novo, porém, precisa chegar a algum lugar. A proposta deu a ele um repositório permanentemente conectado, com disco suficiente para guardar mensagens e o estado global estável do usuário. Os PCs podiam circular; a caixa postal tinha endereço fixo.

A liberdade do PC vinha com pobreza de recursos. Uma pessoa podia ter uma máquina no trabalho e outra em casa, mas o exemplo de equipamento típico no RFC tinha menos de um megabyte de memória e disquetes de cerca de 360 quilobytes. Não dava para levar todas as mensagens por toda parte. O projeto então separou cada uma em um descritor e um corpo.

O descritor era um resumo de aproximadamente 100 bytes, sem crescer com o texto da mensagem. Levava identidade, tamanho, campos úteis do cabeçalho e marcas de estado. Um cliente podia armazenar o conjunto inteiro desses resumos e buscar os corpos conforme houvesse espaço. A pessoa via o inventário do correio antes de escolher o que cabia no disco. Era uma solução de engenharia que mudava a experiência de ler: conhecer a existência de uma carta precedia a posse da carta.

O repositório mantinha o estado global; cada PC tinha seu estado local. Em modo interativo, com rede constante, alterações e novas mensagens circulavam de imediato. Em modo em lote, o PC trabalhava desconectado, guardava ações numa fila e as enviava na próxima conexão. DMSP cuidava das operações e da sincronização. Se havia duas máquinas para uma pessoa, havia também duas memórias temporárias do mesmo correio.

Na reconexão, adivinhação seria desastrosa. Uma operação DMSP precisava ter sucesso inteiro ou falhar inteira. Sem confirmação explícita, era considerada falha. Uma queda durante a exclusão de uma mensagem não deveria deixar o cliente e o repositório com histórias incompatíveis. O servidor registrava as mudanças que cada cliente ainda não vira. Na implementação descrita, um cliente ausente por uma semana era marcado inativo e, quando voltava, recebia uma cópia completa do estado global em vez de longa sequência de pequenas atualizações.

O registro do RFC Editor data a proposta de maio de 1986 e aponta sua substituição posterior pelo RFC 993. O texto se declarava preliminar. Seu arranjo é concreto: o repositório lembra, o PC viaja, o resumo poupa disco e o protocolo resolve o que ocorreu quando a rede reaparece. A máquina podia bater ponto e sair. O correio ficava de plantão.