A Bela e A Fera: Aplicando Interface Gráfica em Sistemas Legado

 Autora: Luciane Neves - GPS

RESUMO

Em vez de perder tempo discutindo no que o mainframe supera as tecnologias WIN32 e vice-versa, por que não utilizar o que há de melhor em cada tecnologia e criar uma solução híbrida?

Que tal se o seu cliente pudesse dispor da performance e da segurança do mainframe - a fera, enquanto aproveita as facilidades de uma interface gráfica - a bela?

Este artigo apresenta uma visão geral desta solução híbrida e faz um breve estudo de caso de uso, apresentando as principais características para implementação da mesma.

INTRODUÇÃO

Os sistemas com interface caractere foram largamente construídos e utilizados na administração pública do Paraná, tanto pelo volume de dados, quanto por ser esta a tecnologia disponível anos atrás. Conseqüentemente, a maior parte dos dados se encontra hoje em bases mainframe, utilizando a tecnologia ADABAS/Natural.

Com a introdução de linguagens de quarta geração o mercado foi percebendo as facilidades em relação ao quesito usabilidade que os aplicativos gráficos traziam. Aplicações WIN32 foram então sendo disponibilizadas aos clientes. O interessante foi notar que muitas vezes a interface mais amigável não compensava, na visão do cliente, os problemas introduzidos por esta nova tecnologia. Questões como tempo de resposta a requisições, travamento de máquina, segurança de acesso, entre outras, eram argumentos contra a utilização de tecnologias WIN32.

Os defensores do mainframe devem se arrepiar ao imaginar a diferença entre a performance de um sistema com aproximadamente 3.000.000 de registros, como é o caso da base de condutores do Paraná, rodando em um servidor NT. Já desenvolvedores de aplicação WIN32 devem achar as famosas telinhas verdes da interface caractere jurássicas e muito pouco amigáveis.

Cada um dos lados tem um bom ponto a defender e, sendo que em informática a lei é aproveitar o que há de melhor em cada tecnologia, um casamento entre interfaces gráficas das linguagens WIN32 e da rapidez de processamento e segurança de um mainframe pode ser uma boa idéia.

APROVEITANDO O MELHOR DE CADA TECNOLOGIA

Se existem pontos positivos tão fortes em relação a estas tecnologias, usar o melhor de cada uma passou a ser logicamente o próximo passo no processo.

Podemos destacar em cada tecnologia os seguintes aspectos:

Aplicações gráficas

  • Interface amigável - a navegação é mais intuitiva;

  • Acompanhamento da evolução tecnológica - disponibilizar aos clientes aplicações compatíveis com as oferecidas pelo mercado;

  • Condensar várias funcionalidades em uma única tela - no mainframe, para se ter controle de acesso em nível de função, cada funcionalidade é mapeada para um programa, exigindo que o usuário conheça e execute vários comandos, por vezes mnemônicos, para processar uma operação. Na interface gráfica fica mais fácil aglutinar várias operações em uma única tela.

Aplicações mainframe

  • Manter as bases de dados de grande volume no ADABAS - não é necessário fazer a migração das bases de dados para outra plataforma;

  • Manter a estrutura de segurança do mainframe - existem estruturas de validação de chave/senha com controle do número de tentativas de acesso, de controle de acesso em nível de função por usuário, entre outros que podem ser mantidos;

  • Melhor performance com bases de dados de grande volume;

  • A lógica de negócio, de controle de transação e o acesso aos dados fica implementado em programas Natural, podendo-se, em vários casos, reaproveitar integralmente o código já existente.

INTEGRAÇÃO ENTRE AS TECNOLOGIAS

A ponte entre a plataforma WIN32 e a plataforma mainframe pode ser feita de duas formas:

  • DBCon - Esta ferramenta foi desenvolvida pela Celepar e é uma solução para integração de ambientes heterogêneos. O objetivo principal do DBCon é permitir que aplicações Cliente/Servidor ou WEB executem subprogramas Natural no mainframe, trocando parâmetros como se estivesse sendo executada uma Remote Stored Procedure, através do Microsoft Transaction Server (MTS).

  • DBGateway - Produto SYBASE, o DBGateway funciona da mesma forma que o DBCon, possibilitando a troca de dados entre as duas plataformas.

Na escolha das soluções entra em consideração, entre outros fatores, o servidor que se tem disponível e as características das aplicações que utilizarão o gateway. O DBCon roda em servidores NT enquanto o DBGateway pode rodar em servidores NT e Unix. Em aplicações corporativas, muitas vezes é recomendado um servidor UNIX de maior porte para atender o volume de dados e transações.

ESTUDO DE CASO

Para exemplificar a utilização desta solução híbrida podemos citar o caso de uma aplicação criada para atender demandas da área de habilitação do DETRAN/PR.

Contexto

Na parte operacional, os usuários do sistema de habilitação já contavam com uma aplicação com interface gráfica (SQL Windows). No entanto, funções diferenciadas de cunho administrativo se encontravam em sistemas de interface caractere e com diferentes formas de operacionalização.

A demanda era, portanto, padronizar as funcionalidades e mantê-las em um único sistema. Em um segundo momento, foi decidido manter também o padrão de interface já utilizado pelo cliente.

Partiu-se então para o desenvolvimento de uma solução de interface gráfica em Delphi acessando as bases de dados ADABAS e executando a lógica negocial e transacional através de programas Natural.

Arquitetura da solução

Os próximos itens dão uma visão geral das etapas do projeto:

Segurança de acesso:

Para conseguir se conectar ao sistema o usuário precisa ter uma chave válida no mainframe com acesso ao sistema em questão. Através de uma rotina a chave/senha é validada no mainframe. Mais de três tentativas sem sucesso bloqueiam a chave do usuário por questões de segurança. Ao obter permissão para acessar o sistema, uma outra rotina busca em base mainframe uma relação de quais funções aquela chave está habilitada a acessar. Os componentes da tela, como por exemplo, menus, botões, submenus, entre outros, são automaticamente desativados ou ocultados se o usuário não tiver permissão para as funcionalidades que eles implementam;

Integração entre as plataformas:

Foi utilizada a solução DBGateway como ferramenta de integração entre os ambientes. É necessária instalação do Sybase Open Client (32 bits);

Visão Natural/ADABAS:

Grande parte do código Natural foi reaproveitado, sendo que em alguns casos foi necessário converter a estrutura de programas para subprogramas. Os parâmetros são recebidos pelo subprograma Natural através de uma subrotina específica de gerenciamento de transações que chegam via DBGateway. O subprograma executa o processamento, podendo retornar dados, códigos de erro ou acerto através do gerenciador de transações do DBGateway;

Visão DELPHI:

Os programas Delphi ficam responsáveis, basicamente, pelas validações iniciais, pela montagem dos parâmetros de envio e posterior movimentação dos campos de retorno para as telas de saída e/ou exibição de mensagens.

Esquema Geral:

 


DIFICULDADES E SOLUÇÕES ENCONTRADAS

Ao longo do projeto foram encontradas algumas dificuldades. Listamos abaixo as principais e a solução encontrada para as mesmas:

Convivência entre Sybase Open Client 10.0.3 (16 bits) e 11 (32 bits)

Como já citado, a parte operacional do sistema de habilitação foi desenvolvida em SQL Windows, sendo que esta solução exige a instalação do Sybase Open Client 16 bits no servidor ou nas máquinas que utilizarão o sistema. A versão instalada foi a 10.0.3. A aplicação Delphi, por sua vez, necessita da Open Client 32 bits, sendo que a versão disponível era a 11. Para resolver o conflito entre as duas versões foi implementado no sistema Delphi um mecanismo de setar as variáveis de sistema SYBASE e DSQUERY na sessão aberta pelo aplicativo com os valores necessários para a execução com sucesso.

Reconexão automática

O DBGateway tem um tempo padrão de desconexão por "timeout" e por inatividade. Para evitar que o usuário tenha de voltar a fazer a conexão com o sistema foi desenvolvido um método que testa se as conexões estão ativas e, em caso negativo, faz a reconexão automática. As mensagens de erro relativas à conexão só ocorrem se realmente alguma das entidades (ambiente NATURAL/ADABAS, rede ou DBGateway) estiver com problemas.

Distribuição de versões

Uma das partes mais incômodas de desenvolver aplicações WIN32 é a questão de distribuição de versões. Para evitar que versões desatualizadas sejam utilizadas pelos usuários e eliminar a necessidade de instalação de versão em cada máquina cliente, foi desenvolvido um software que faz a atualização automática de versões, copiando os arquivos mais atuais sobre os desatualizados. A aplicação não permite que o usuário se conecte se sua versão for anterior à disponível no servidor, informando ao usuário que é necessário fazer a atualização de versão.

CONCLUSÃO

O uso deste tipo de solução híbrida pode ser bastante lucrativo. O exemplo de aplicação da solução citado no artigo já está com a segunda versão implantada, tem apresentado um bom tempo de resposta e tem se mostrado confiável.

Quanto à implementação da solução, é interesssante ressaltar para os analistas e programadores Natural, que a implementação da parte cliente em Delphi não é complicada. O único requisito, além do conhecimento da linguagem, é manter em mente que este é um projeto cliente-servidor e que, portanto, deve ser implementado como tal. A parte transacional deve ser bem organizada quando houver mais de uma rotina envolvida na execução de uma transação. A boa notícia é que as rotinas estruturais para projetos que usem esta tecnologia, como: rotinas de acesso, validação de chave/senha, verificação de funções válidas para o usuário, entre outras, já estão desenvolvidas e testadas.

Entre as vantagens do uso desta solução podemos citar:

  • Eliminação de replicação de dados: Através do acesso direto à base de dados do mainframe elimina-se a replicação de dados e todos os problemas de integridade que a mesma pode causar.

  • Minimizar custos: É possível minimizar o custo de disponibilizar uma solução gráfica, uma vez que não é necessário migrar de base de dados, comprar um novo servidor e pode-se reaproveitar código e estruturas do sistema mainframe.

  • Estabelecer uma cultura de versões: Passa-se a trabalhar com mais familiaridade com o conceito de versões de sistema, disponibilizando produto ao usuário em curto período de tempo. Em vez de esperar seis meses pelo sistema completo, em um mês o usuário pode contar com as funções prioritárias do sistema.

  • Acompanhar a tendência de mercado, utilizando o melhor de cada tecnologia: a interface gráfica do Delphi e a robustez e confiabilidade do mainframe.

A Bela e a Fera. E dizem que em Informática não existem contos de fada...