Autor: Nelson Naoki
Umeda
Há tempos, alguns profetas
de plantão diziam que o mainframe estava com os seus dias contados.
Contrariando essas previsões, o que se viu, de alguns anos para
cá, foi que mainframes continuaram sendo vendidos. Porém, com uma
diferença: compra mainframe aquela empresa que precisa consolidar
grande volume de informações espalhadas pela rede, como, por exemplo,
tratamento de banco de dados corporativo. Trata-se de uma aplicação
típica de mainframe, pois exige grande capacidade de armazenamento,
processamento rápido de massas de dados e segurança.
Mataram o
Mainframe
Com a proliferação das
LANs, a IBM percebeu a tempo que, para manter uma infra-estrutura
já instalada e um número de usuários nada desprezível, ela teria
que promover a integração entre os ambientes SNA e as redes locais.
Surgiram soluções que substituíram as controladoras e terminais,
através de gateways SNA nos servidores de suas LANs e, assim, este
tipo de solução permitiu que redes locais se conectassem aos sistemas
corporativos sem que houvesse alteração no protocolo de toda a rede
e nas aplicações. Existe uma corrente no mercado que defende a manutenção
a longo prazo desse tipo de estrutura, alegando que isso preservaria
a base de aplicativos, o que também é um entrave a mais na migração
para a plataforma cliente/servidor. No caso do Estado do Paraná,
este tipo de solução tem sido adotado em quase todas as LANs administradas
pela Celepar. Há pouco tempo o que mais se ouvia na empresa era
que o mainframe ia morrer ou que já estava morto. Que o downsizing
ia acabar com ele, que era só ver o número de LANs que estavam sendo
instaladas. Esqueceram-se, estes profetas, que cada ponto de rede
era um potencial usuário de emulador de terminal 3270, o que aumentou,
consideravelmente, o número de usuários conectados ao mainframe,
a ponto de saturar o mesmo. Sim, estão matando o mainframe de overdose!
Futuro do
Mainframe
Porém, não podemos esquecer
do terceiro milênio. Os sistemas legados precisam ser reescritos
e preparados para o ambiente cliente servidor. A estratégia
da IBM é integrar o mainframe dentro do ambiente cliente/servidor,
obviamente tendo o mainframe como grande servidor e, assim, executando
as tarefas em que ele é bom. Assim também pensa a Microsoft
que pretende forjar links de ida e volta entre aplicações baseadas
no BackOffice baseado em NT, como SQL Server e SNA Server, com aplicações
de transação para mainframe. Também através da parceria com a Software
AG (fabricante do Adabas) estão trabalhando na ferramenta de desenvolvimento
de aplicação visual da Microsoft e tecnologia OLE. No futuro essas
ferramentas podem gerar objetos OLE em vez de apenas procedimentos
SQL Server (Previsto para 1997).
Mainframe
na Internet
E na área da Internet,
têm surgido produtos que permitem transformar o mainframe em um
site Internet, tal como web3270, que permite ao usuário, via Netscape,
executar uma aplicação VTAM, Roscoe por exemplo, e o web390, que
permitirá a construção de aplicações Internet acessando mainframe
como se acessa qualquer ambiente ou banco de dados, previsto para
o segundo semestre de 1996.
Ambiente
Mainframe de Banco de Dados
O mainframe é capaz de
desempenhar muito bem o papel de servidor de grandes bases de dados,
ou pode ter sua estrutura usada para viabilizar uma política de
backup para toda a rede. Também é uma plataforma bastante adequada
para rodar aplicações de missão crítica, função esta que ele já
vem desempenhando há algum tempo. E para que sistemas cliente/servidor
de missão crítica sejam bem sucedidos, precisamos incluir componentes
do ambiente mainframe tradicional. Isto inclui gerenciamento de
sistemas sólidos, segurança, backup/recuperação e uma abordagem
disciplinada e cuidadosa do desenvolvimento e uso. No mainframe
da Celepar temos, como gerenciador de banco de dados, o Adabas da
Software AG, que é comercializado no Brasil pela Consist, e sistemas
corporativos de clientes como DETRAN (Depto Estadual de Trânsito),
SEAD (Secretaria de Estado da Administração), SEED ( Secretaria
de Estado da Educação), SEFA (Secretaria de Estado da Fazenda),
etc., cujos dados pela sua própria natureza e importância devem
continuar centralizados no mainframe. São bases com dimensões corporativas,
com mais de 60 Gb, que podem ser compartilhados entre sistemas legados
e novos sistemas desenvolvidos na arquitetura cliente/servidor.
Desta forma, para os sistemas cliente/servidor devemos disponibilizar
ferramentas que permitam às aplicações cliente acessarem os dados
no servidor mainframe. Este tem sido um dos objetivos do Projeto
Cliente/Servidor no qual estou envolvido, mais especificamente na
avaliação de alternativas de gateway para banco de dados.
Gateway
para o Main-frame
Para tal, executamos
testes com produtos Gateway de 2 fornecedores:
- Consist, com os produtos
da Software-AG:
- Entire Net-Work/Entire
Broker.
- MPS, com os produtos
da SYBASE.
- DB-GATEWAY
- NET-GATEWAY
Produtos
da Sybase
A SYBASE, fornecedora
do banco de dados relacional SQL Server, também tem a preocupação
no sentido de se comunicar com o mainframe. Para tal disponibiliza
dois produtos:
- DB-GATEWAY (MDI Access
Server, INFOHUB)
- MAP - (NET-GATEWAY)
DB-Gateway
A Celepar adquiriu no
ano passado, devido à limitação imposta pela versão do CICS que
possuíamos em nossa instalação, o DB-Gateway (junto com o banco
de dados relacional SQL_Server versão 10).
O DB-Gateway permite
a um usuário Sybase se conectar ao mainframe de duas formas:
- executar query
usando comandos SQL dinâmico;
- executar uma espécie
de Remote Procedure Call (RPC) para ativar um programa Natural.
Em ambos os casos, o
DB-Gateway, utilizando-se do protocolo LU6.2, comunica-se com o
MDI Access Server no mainframe, que é uma transação CICS. Este,
por sua vez, no primeiro caso chama o Infohub para converter os
comandos SQL para comandos Adabas e executá-los e, no segundo caso,
inicia a execução do RPC que ativará o programa Natural desejado.
Resumidamente, a primeira
forma de comunicação é indicada para sistemas de suporte à decisão
e a segunda é voltada para aplicações transacionais.
A segunda forma, execução
de RPC, está sendo utilizada no projeto DETRAN na construção das
transações que necessitam acesso rápido ao mainframe.
Em relação ao Net-Gateway,
perde em termos de funcionalidade, ferramentas de administração
e monitoração, além de utilizar um protocolo de rede proprietário
que é o SNA.
O esquema e o fluxo de
comunicação entre os ambientes seria:
1) A aplicação cliente
inicia um pedido (ex.: execução de um programa Natural).
2) O pedido é enviado
via rede para o servidor Database Gateway que aloca uma conversação
APPC com o CICS para processar o pedido e chama o MDI Access Server.
3) O MDI Access Server
chama o núcleo Natural e executa o programa natural e se for um
comando SQL, passa o controle para o InfoHub Server.
4) Os dados fluem de
volta no mesmo caminho da execução do pedido.
MAP
(Mainframe Access Products)
O Net-Gateway da SYBASE
é um produto mais moderno. Executa as mesmas funções do DB-Gateway
porém se utiliza do protocolo TCP/IP para se comunicar com o mainframe/CICS.
O Net-Gateway é um produto MAP.
MAP (Mainframe Access
Pro-ducts) é um conjunto de produtos que permite a usuários de desktop
e workstations, comunicarem-se com o Mainframe em um ambiente Cliente/Servidor.
Os dados no Adabas serão acessados por programas Natural que por
sua vez serão "startados" via RPC (Remote Procedure Call),
solicitado pelas estações clientes.

Componentes:
- Open Server/Mainframe
- Omni SQL Access Module for DB2
- Net-Gateway
Open
Server/Mainframe
Open Server Mainframe
e Net-Gateway são produtos da SYBASE que permitem que programas
clientes, em plataformas remotas, acessem recursos no Mainframe
(na forma de Remote Procedure Call - RPCs). A comunicação entre
Open Server/Mainframe e Net-Gateway pode ser efetivada utilizando-se
dos protocolos SNA LU6.2 ou TCP/IP.
Net-Gateway
É um produto SYBASE que
permite a workstations comunicarem-se com Mainframe IBM atuando
tanto como servidores como clientes. Na Celepar irá executar em
ambiente UNIX, nas máquinas RISC. Consiste de dois programas:
- Mainframe Server Gateway
(MSG) - Usado quando o mainframe atua como Server para um cliente
SYBASE. O MSG está disponível para os protocolos LU6.2 e TCP/IP,
e roda no ambiente UNIX;
- Mainframe Client Gateway
(MCG) - Usado quando o mainframe atua como cliente do Servidor SYBASE.
O MCG está disponível apenas para o protocolo LU6.2. e roda no ambiente
UNIX.
Omni SQL
Access Modu-le for DB2 (DB2 Access Module)
Permite que usuários
remotos emitam comandos SQL para o Banco de Dados DB2 da IBM para
processamento dinâmico. Na Celepar pode ser utilizado para acessar
banco de dados Adabas via Infohub.
Exemplo de uma Aplicação
Cliente Comunicando com o Open Server/Mainframe:
O MSG aparece para cliente
como um servidor, mapeando cada pedido para o Mainframe e a transação
associada. Uma transação do tipo long-running também
é possível. Neste caso, uma transação Open Server/Mainframe pode
receber um novo conjunto de parâmetros de entrada depois do conjunto
de resultados anterior ter retornado ao cliente. Ou seja, tão logo
ele conclua as tarefas pertinentes a uma requisição, ele fica esperando
por uma nova requisição. Isto permite manter o núcleo Natural ativo
entre as chamadas RPC, evitando o overhead de start do núcleo Natural.
Fluxo da execução:
1) Estação Windows
- Aplicação Cliente pede
execução de uma RPC. ( via exec)
2) RISC 6000
- Via rede, LAN ou WAN,
o pedido de execução chega no Net-Gateway. Este valida o login e
passa a solicitação para o Open Server/Mainframe, através da controladora
3172 ligada a canal com o mainframe, utilizando o protocolo TCP/IP.
3) Mainframe IBM
- A solicitação chega
no CICS, via TCP/IP no mainframe. O CICS "starta" a transação
Open Server que por sua vez irá chamar o núcleo do Natural para
executar um programa Natural.
- O programa Natural
executa o acesso ao Adabas, recupera os dados e devolve a aplicação
cliente, executando o caminho inverso.
- Se a transação for
do tipo long-running, o núcleo do Natural não é liberado, e fica
aguardando uma nova requisição, evitando com isto o overhead do
novo start do Núcleo Natural, conforme dito anteriormente.
Uma rede SYBASE pode
também conectar múltiplos clientes e múltiplos Servers, rodando
em uma ou mais regiões CICS em um ou mais Mainframes.
O esquema de comunicação
entre os diversos ambientes pode ser visualizado na figura a seguir:

Produtos
da Software AG
Entire
Broker
Alguns
conceitos:
ENTIRE BROKER SDK - Envia
chamada remota em dois modos:
- CONNECTIONLESS (Sem conexão)
- CONNECTION ORIENTED (Orientado a conexão)
ENTIRE NET-WORK
1)CONNECTIONLESS (Sem
conexão)
- Nenhum conceito de
uma sessão entre o cliente e o servidor.
- Mensagens são simplesmente
enviadas e recebidas sem relacionamento entre qualquer outra mensagem.
- A informação sobre
a localização do servidor deve ser passada como parâmetro a cada
vez que o servidor é chamado.
2)CONNECTION ORIENTED
(Orientado a conexão)
- Na comunicação orientada
a conexão os dois parceiros da comunicação mantêm um relacionamento
entre várias chamadas.
- Requer que a sessão
seja estabelecida com uma chamada connect e encerrada
com uma chamada disconnect.
- Cada conexão no servidor
deve ser encerrada por uma desconexão correspondente, para garantir
que todos os recursos sejam liberados corretamente.
- A informação da localização
do servidor é passada como parâmetro na chamada connect.
Esta chamada retorna a identificação da sessão ou conexão.
- Enquanto a conexão
está estabelecida, os dois parceiros podem executar várias chamadas
e usar a identificação da conexão como parâmetro para cada chamada.
Por exemplo: um procedimento cliente pode enviar a um servidor de
segurança um User_Id em uma chamada e a Password em uma segunda
chamada. Usando a identificação da conexão, o servidor de segurança
conhece para qual User_Id a Password enviada na segunda chamada
se refere.

Entire
Net-Work
É o backbone da tecnologia
de processamento distribuído da Software AG. É o middleware
que provê serviço de comunicação comum e transparente para aplicações
de banco de dados corporativos. Suporta os protocolos de rede TCP/IP,
LU6.2, SPX, NETBIOS e DECnet.
O programador da aplicação
cliente, pode se comunicar com o Entire Broker SDK via uma API.
Existem vários passos que o programador deve seguir para executar
uma RPC.
Primeiro, a aplicação
cliente deve register (registrar) a si mesmo para
o Entire Broker SDK run_time System e no final, quando não mais
precisar emitir um RPC (usualmente antes de terminar), ele deve
emitir um unregister.
Uma vez a aplicação esteja
registrada com sucesso, ele pode emitir uma chamada connectionless
diretamente para qualquer número de servidores ou ele pode estabelecer
sessões e emitir chamadas connection oriented.
Exemplo: Fluxo lógico
de uma aplicação comunicando-se com dois servidores.
=> register
to_run_time
=> connect
to_server1
=>call
server1
=> connect
to_server2
=>
call server2
=>
call server2
=>
call server2
=>
call server1
=> disconnect
from_server1
=>
call server2
=> disconnect
from_server2
=> unregister from_run_time
O Entire
Broker SDK pode ser executado em dois ambientes: WINDOWS e UNIX.
No ambiente
UNIX, podemos construir uma interface de acesso a subprogramas Natural
no Mainframe de tal maneira que se possibilite o acesso a partir
das estações Windows sem que precisemos adquirir a cópia do ENTIRE
NET-WORK for WINDOWS, que é o software de Middleware da Software
AG. No lugar deste produto, podemos usar um software shareware obtido
na Internet
(tal como IPPORT.VBX) para executar esta função do Middleware.
Esta solução
tem as seguintes vantagens:
1) Dispensar
a compra do ENTIRE NET-WORK nas estações WINDOWS.
2) Segurança
(no Mainframe enxerga-se apenas uma conexão, com o UNIX, e os usuários
se conectariam com o Servidor Natural no UNIX e não no Mainframe).
3) Integridade
dos Bancos de Dados no Mainframe. Em ambientes corporativos temos
a responsabilidade de manter as Bases Corporativas íntegras, portanto,
o fato de termos algum tipo de sistema que não seja tão aberto é
interessante. Os usuários somente podem executar os módulos pré-determinados.
Teremos uma camada de interface que é conhecida somente por nós.
Para utilizarmos
o Entire Broker via UNIX, podemos nos basear em alguns conceitos
da programação JAVA, que é baseada em applets (pequenos
programas embutidos em documentos HTML). Umas poucas palavras
sobre applets para melhor compreendermos a idéia:
- Funcionamento:
Quando o usuário web clicar em um determinado ponto da página, um
applet será transferido de um servidor para a estação cliente e
o programa entrará em execução.
- Principais
Componentes: Compilador JAVA, que compila um código fonte JAVA em
uma linguagem intermediária, independente de máquina, denominada
architecture-neural byte codes; o interpretador JAVA,
que interpreta e executa os programas JAVA nas estações de trabalho;
e utilitários como um disassembler, um gerador de documentos HTML,
uma ferramenta de medição de performance.
- Ambiente:
Baseado em linguagem C++, aproveita a grande base de expertise de
programadores nesta linguagem e no C. É uma linguagem orientada
a objeto e este conceito deve ser bem explorado para se obter vantagens
do conceito de applets.
Assim, quando
falamos em programação Broker SDK, no lugar dos applets temos os
"stubs", que executam chamadas a subprogramas
Natural, que por sua vez são embutidos em pequenas funções
C. A diferença é que não será executado no cliente, mas
sim no servidor, ativado por uma chamada da estação Cliente via
IPPORT. Para cada subprograma Natural é criado um conjunto stub/função,
modular, que executa um determinado objeto. Os principais componentes
também são um compilador (que compila e gera os "stubs");
um servidor de EXECUÇÃO é uma espécie de interpretador run-time
do Broker SDK que irá rotear, via Net-Work, a execução dos objetos.
Assim como
o JAVA, todo o processo do Broker SDK é baseado em C, e as chamadas
a este objeto podem ser executadas das estações cliente via qualquer
linguagem de programação de Quarta Geração tipo VB Script, SQL-WINDOWS,
DELPHI, etc. (que podem chamar .VBX).
Para utilizarmos
o Entire Broker em uma aplicação Windows, devemos codificar a aplicação
(conforme o fluxo mostrado acima) no formato de uma DLL,
de tal forma que possamos declarar em qualquer linguagem de programação
de 4a. Geração. Para criarmos a DLL basta criar um arquivo
texto com o mapeamento dos dados (arquivo .idl) e através do pré-compilador
gerar os stubs que executarão as chamadas aos subprogramas Natural.
Aplicações
de missão crítica em cliente/servidor exigem um nível de serviço
à altura das expectativas dos usuários e da importância da aplicação
para o negócio. ( Por exemplo: no projeto DETRAN o tempo de resposta
tem que ser no mínimo igual ao da aplicação hoje existente). Neste
contexto, a gerência de performance tem um papel extremamente importante.
E por ser o ambiente mainframe já conhecido, com ferramentas de
medições já dominadas que podem identificar precisamente onde está
o problema de performance, fica mais fácil a tarefa de gerenciar
o ambiente da aplicação em termos de performance. O mainframe com
ferramentas diversas de administração, banco de dados robusto, grande
capacidade de armazenamento e recuperação de dados, memória etc.,
é o ideal para atuar como servidor de dados das aplicações de missão
crítica.
umeda@lepus.celepar.br

|