quinta-feira, fevereiro 04, 2021

Memórias dos Anos 80: A Comunicação Micro-a-Micro com o Z

 A principal aplicação do Z era a conexão aos minis e mainframes. Serviços on-line eram poucos e mais voltados para a pessoa física. Mas, à medida que os micros iam ocupando espaço nas empresas, aumentava a necessidade de comunicação entre micros via linha telefônica (lembrem-se, ainda não existia a internet!).


O Filtro XYModem 

A primeira solução para comunicação entre micros (que podia também ser usada com BBSs, wink, wink) foi o filtro XModem. Não lembro se fui eu que fiz a primeira versão, mas eu tinha um certo carinho por ele e certamente trabalhei na evolução dele.

A minha base inicial foram artigos na revista Dr Dobbs e o resultado foi suportar uma família de protocolos: XModem, XModem-1K, MODEM7 e YMODEM, com controle de erro por BCC e CRC. O XModem original foi um hack criado por Ward Christensen para transferir arquivos entre micros rodando CP/M-80 e a partir dele foram feitas vários aperfeiçoamentos, notadamente o YModem (criado por Chuck Forsberg). Uma herança do CPM/80 é que o XModem considerava os arquivos como um múltiplo inteiro de registros de 128 bytes, o YModem passou a controlar o tamanho em bytes.

Um momento marcante no desenvolvimento foi quando uma cópia do filtro foi enviada para testes para uma empresa. Quem testou o software foi um colega de turma da Poli que tinha uma documentação melhor que a minha e foi bastante chato nos testes... O resultado foi acrescentar no filtro uma série de heurísticas que melhoravam a recuperação de erros (por exemplo, ignorar o primeiro ACK do fim de transmissão para o caso de ser um NAK do pacote anterior que tinha sido mudado para ACK pela má qualidade da comunicação).

O mesmo Chuck Forsberg criou depois o ZModem, que era bastante popular no . Ele vendia as especificações e nós compramos (não era muito caro). O ZModem era bem complicado, lembro que o estudamos mas acho que nunca o implementamos. Mas no pacote de documentação via um documento sobre o YModem que foi bastante útil para validar e complementar as heurísticas do XYmodem.

O Filtro ZZ

Embora o filtro XYModem permitisse transferir arquivos entre micros, era uma solução limitada e não muito amigável. Daí a ideia de criar o filtro ZZ, que implementava compactação na transferência, oferecia recursos como solicitar a lista de arquivos e apagar arquivos no micro remoto e um modo não assistido, onde toda a operação era controlada por uma ponta.

Não fui eu que fiz o filtro, mas lembro de ter estudado algoritmos de compactação, particularmente o LZW.

O filtro ZZ levou a Humana a comercializar um hardware (de terceiros): uma caixinha para ligar o micro ao receber uma chamada telefônica. Com os modems trabalhando a 1200bps, a transferência de arquivos podia ser bem demorada e fazia sentido fazer a transferência nos horários em que a ligação telefônica era mais barata. A caixinha (me foge o nome) ligava o micro ao chegar uma chamada e o mantinha ligado enquanto a ligação estava ativa.

TeleZapt

O filtro ZZ atendia às necessidades de transferência de arquivos, mas muitos clientes queriam o controle remoto total do micro. Existiam softwares específicos para isso (como o Carbon Copy) e não estávamos muito seguros que o Z (ou o Zapt que o sucedeu) tinha a arquitetura adequada para isso.

Mas em 1992 acabamos "cedendo aos pedidos do mercado" e, em conjunto com uma outra software house, desenvolvemos o TeleZapt e o filtro TZMestre. O TeleZapt rodava no micro a ser controlado e o filtro TZMestre era executado no outro micro. A solução tinha algumas limitações, mas acho que vendemos um número razoável de cópias.




Nenhum comentário: