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
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 .