Software e o trabalho escravo

O trabalho escravo é obviamente proibido nos países civilizados, mas o conceito de escravização possui grande interesse para o setor de TI - Tecnologia da Informação. Examinemos alguns cenários:

Primeiro cenário: Na famosa virada do milênio, alguns excelentes sistemas em operação nos CPDs, departamentos de informática ou de tecnologia de informação de várias empresas demonstraram impossibilidade de manutenção, evolução ou integração. Mas muitos destes sistemas sobreviveram ao novo século, devido aos seus méritos (valor de utilidade, robustez, costume), sendo batizados de “legacy systems”.
Segundo cenário: Os integradores de sistemas muitas vezes esbarram em dilemas. Precisam construir conexões com sistemas projetados por outras empresas, alguns dos quais não oferecem quaisquer interfaces. Não permitem transações externas, não exportam ou importam arquivos. O exemplo clássico é a solução de e-commerce que precisa se integrar aos antigos e robustos sistemas administrativos da empresa.
Terceiro cenário: Às vezes, queremos que nossos sistemas obtenham automaticamente certas informações, que qualquer internauta pode acessar facilmente na web. Mas não temos como solicitar as transações necessárias ao administrador do site.
Os três cenários acima possuem um ponto em comum: queremos tirar informações de um sistema que não nos oferece interfaces adequadas. A única interface sólida existente é a com o operador humano, que lê telas e escreve no teclado, preenchendo campos, selecionando opções, mudando de telas ou de páginas.
Uma técnica prática para resolver esses casos é a da escravização de terminais, quer sejam terminais IBM 3270 ou terminais assíncronos, quer sejam browsers de sites. Muitos, para evitar termos antipáticos, substituem “escravização” por “robotização”. O conceito é muito simples, apesar de que a prática nem sempre o é: se um operador humano consegue navegar nas telas para obter as informações desejadas, constrói-se um software que, controlando (escravizando) o terminal, obtenha o mesmo efeito. Tal software deverá saber “ler” as telas ou páginas recebidas e “digitar” no teclado. Tudo absolutamente transparente para o site, para o sistema baseado em mainframe ou para o sistema fechado, para os quais aparenta existir um operador humano no leme.
O conceito de escravização sofre sofisticações. Por exemplo, agregando-se o assim denominado algoritmo do elevador. Em um grande edifício com muitos elevadores, existem algoritmos para determinar qual elevador irá atender a uma certa chamada (Será sempre o mais próximo? E se o mais próximo estiver passando em alta velocidade?). Da mesma forma, podemos escravizar simultaneamente 10 ou 20 destes terminais. Quando ocorrer uma nova necessidade de consulta a uma dada informação, o software deverá verificar qual terminal exige a menor navegação para atingir a tela onde tal informação reside. E, então, a Teoria das Filas, baseada em Estatística, se aplica exatamente com está no livro, para se determinar os tempos de resposta a tais consultas. 
A técnica de escravização não é a mais elegante em termos das moderníssimas técnicas de software (objetos, componentes distribuídos, etc.). Mas, com certeza é de grande interesse sob o ângulo econômico financeiro. Afinal, um legacy system ou uma aplicação fechada, já exaustivamente testada e homologada, possui um valor inestimável quando podemos utilizá-la sem promover qualquer alteração no seu projeto.
É um prazer quando podemos emprestar um conceito de uma outra área do conhecimento, evitando constrangimentos éticos: afinal, quem é contra escravizar uma máquina objetivando o interesse econômico?

janeiro/2003

Nelson Lerner Barth,
Diretor da PRAGMÁTICA, empresa de projetos de sistemas informatizados sob encomenda e professor da FGV-EAESP. 

lerner@pragmatica.com.br


Esta página é parte integrante do www.guiadelogistica.com.br .