Sistemas para Controle de Processos
No mercado de desenvolvimento existe uma área pouco conhecida e muito interessante, a de aplicações para controle de processos. A grande maioria dos analistas e programadores está habituada ao desenvolvimento de aplicações comerciais, utilizando banco de dados e linguagens convencionais, e desconhece esse mercado.
As aplicações de controle de processos podem ser encontradas em todas as empresas que produzem um produto ou serviço onde existe a necessidade de um controle rígido dos processos envolvidos, como na produção siderúrgica, de combustíveis e gases, produtos químicos, fabricação de veículos, energia, controle de tráfego aéreo etc.
A grande diferença entre uma aplicação comercial e uma de controle de processos é justamente o tempo de resposta. Em uma aplicação comercial não é exigido um tempo de resposta rígido. Caso uma consulta apresente tempos de resposta diferentes nada vai acontecer, a não ser o mau humor dos usuários. Por outro lado, o tempo de resposta em aplicações de controle de processos é rígido, caso contrário danos irreparáveis podem ocorrer. Por exemplo, caso uma aplicação de controle de tráfego aéreo falhar, existem grandes chances de perdas materiais e humanas.
Quando falamos em controles rígidos, significa dizer que caso haja falha no sistema, o mínimo que poderá acontecer são perdas de produtividade, passando por grandes prejuízos materiais e terminando com perdas irreparáveis no caso de vidas humanas.
Utilizando o jargão de sistemas operacionais, as aplicações comerciais podem ser definidas como sendo de tempo compartilhado (time-sharing), enquanto as aplicações de controle de processos como de tempo real (real time).
Os sistemas para controle de processos são desenvolvidos de forma a maximizar a produção e minimizar seus custos, além de eliminar possíveis riscos envolvidos na produção. Tarefas que antes implicavam em alto risco para operadores de equipamentos, podem ser realizadas remotamente sem qualquer risco.
Como consultor na área de sistemas operacionais, tive contato com vários sistemas de controle de processo em inúmeras plataformas, como DOS, OS/2, Unix e alguns sistemas especialistas, mas sem dúvida a grande maioria das aplicações complexas utilizam o sistema operacional VMS (Virtual Memory System) da DEC.
Inicialmente as aplicações eram desenvolvidas em Assembly, posteriormente em linguagens de alto nível, como FORTRAN, Pascal ou C. A grande dificuldade existente quando se desenvolve este tipo de programa é a necessidade de conhecer além da linguagem, o processo que deseja-se modelar e principalmente o sistema operacional.
Uma aplicação para controle de processo exige muito do sistema operacional pois é ele que oferece o suporte necessário para a criação e gerência de processos concorrentes, mecanismos de sincronização e comunicação entre processos, acesso a dispositivos locais e remotos, controle de acesso a recursos compartilhados, deadlock etc.
A escolha pelo sistema operacional VMS pelos desenvolvedores fica clara, pois ele oferece todos os mecanismos necessários a construção dessas aplicações, através das system services (serviços do sistema), uma espécie de rotinas modulares que compõem o núcleo do sistema. Atualmente existem pacotes que tornam o desenvolvimento semelhante ao existente nas linguagens comerciais, escondendo todos os detalhes envolvidos com o sistema operacional.
Grande parte dessas aplicações são importadas das matrizes, no caso de empresas multinacionais., sendo bastante comum encontrar aplicações desenvolvidas na Alemanha, França e Estados Unidos. A manutenção e tropicalização geralmente é feita no país, mas com dificuldade devido a escassez de mão de obra especializada. Existem empresas no país, geralmente de engenharia, que produzem software de controle de processos, porém sofrem do mesmo problema. A tendência desse mercado, com a estabilização da economia, é crescer.
Por muito tempo fiquei a pensar qual plataforma viria a substituir os sistemas atuais, até aparecer o Windows NT. Para quem não sabe, o WNT foi desenvolvido pela mesma equipe que desenvolveu o VMS, utilizando tudo que tinha bom do sistema e melhorando sua arquitetura. As system services do VMS são as APIs (Application Program Interface) do WNT, que também oferecem todo o suporte necessário ao desenvolvimento de aplicação para controle de processos. Além de sua semelhança com o VMS, o Windows NT possui as vantagens de ser mais barato e ser suportado por plataformas Intel, reduzindo o custo de aquisição e upgrade de hardware. Com o Windows NT fica mais simples criar aplicações para controle de processos distribuídas, utilizando o modelo cliente servidor.
Já é possível verificar que os fornecedores de software estão portando ou já portaram suas versões para Windows NT. Inicialmente as aplicações estão sendo desenvolvidas em C++, mas não tarda para surgirem as aplicações RAD que tornam essa tarefa muito mais simples. Se o mercado de aplicações de controle de processos seguir a mesma lógica adotada para a escolha de sistemas VMS, podemos apostar que o Windows NT irá criar uma noca cultura nessa área.