quinta-feira, fevereiro 16, 2017

Emulador de Telnet - PW3270

Existem diversos programas para emulação de terminal, atualmente estou usando um programa chamado PW3270 que é um emulador de terminal 3270 totalmente livre, com recursos avançados e uma interface amigável (elaborada em GTK), comparável às melhores ferramentas do mercado (Windows e Linux).

A ferramenta foi desenvolvida pelo Banco do Brasil para facilitar o acesso ao equipamento de grande porte (mainframe) pelos computadores pessoais (PCs). O Banco do Brasil aproveitou um conjunto de soluções livres disponíveis na internet e as melhorou tecnicamente.

A principal funcionalidade da ferramenta é de emular terminais de grande porte e tendo como características técnicas o desenvolvimento na linguagem C, o uso do ToolKit GTK, com base nos softwares livres x3270 e c3270, demonstrando a preocupação com a adoção de padrões abertos e com a aderência à política de software livre do executivo federal. Para baixar esse programa basta acessar o Portal SPB no endereço Clique Aqui

Telas para Baixar



Options

Qual é o parametro que coloco o IP do mainframe? Qual parametro que gravo um trace do programa PW3270? Essas perguntas podemos ver nas OPTIONS do PW3270, para descobrir essas opções outras abra o DOS, vai na pasta onde esta o PW3270.EXE e de o comando
C:\Program Files\pw3270>pw3270.exe -? > e:\teste.txt

C:\Program Files\pw3270>

Na partição E vai estar um arquivo chamado teste.txt
Usage:
  pw3270.exe [OPTION…] - 3270 Emulator for Gtk

Help Options:
  -?, --help               Show help options

Application Options:
  -a, --appname=pw3270     Application name
  -d, --datadir            Path to application data files
  -s, --session=pw3270     Session name
  -h, --host               Host to connect
  -c, --colors=16          Set reported colors (8/16)
  -t, --systype=S390       Host system type
  -S, --toggleset          Set toggles ON
  -R, --togglereset        Set toggles OFF
  -C, --charset            Set host charset
  -m, --remap              Remap charset from xml file
  -M, --model              The model of 3270 display to be emulated
  -D, --autodisconnect     Minutes for auto-disconnect
  -P, --pluginpath         Path for plugin files
  -T, --tracefile          Set trace filename
  -L, --log                Log to file

Configurar múltiplas conexões no PW3270

Depois que o software já foi instalado, ele vai criar por padrão um icone no desktop de seu computador para você começar a usar ele, agora imagine que você quer acessar o TSO, CICS, Complete, simples, crie um atalho apontando o IP/PORTA que você quer - clique com o mouse com o botão direito nele e em Propriedades - depois vai aparece uma opção em Destino coloque as configurações para o mainframe onde você trabalha, dá para criar vários icones do PW3270 e cada um acessando um determinado aplicativo (CICS, Complete, TSO entre outros), vou deixar um exemplo ao lado.
"C:\Program Files\pw3270\pw3270.exe" --remap "charsets\bracket.xml" --host=10.2.0.11:1023 --session=Desenvolvimento
"C:\Program Files\pw3270\pw3270.exe" --remap "charsets\bracket.xml" --host=10.2.0.11:23 --session=Produção
"C:\Program Files\pw3270\pw3270.exe" --remap "charsets\bracket.xml" --host=L:fandezhi.efglobe.com:23 --session=Produção



SSL

O SSL (Secure Socket Layer) permite que as informações viajem do emulador para o servidor e vice-versa usando um túnel de transmissão seguro para combater a espionagem. A quantidade de verificação depende do estilo de certificado SSL envolvido.

Exemplo, dois tipos de atalhos, um com SSL e o outro não;
"C:\Program Files\pw3270\pw3270.exe" --host=L:fandezhi.efglobe.com:23
"C:\Program Files\pw3270\pw3270.exe" --host 10.2.14.23:1023

EBCDIC

O velho problema dos caracteres acentuados no mainframe. O fato é que a tabela de caracteres EBCDIC não possui nativamente caracteres acentuados. O que é feito é uma "guambiarra" para usar espaços vazios da tabela de códigos. Esta tabela EBCDIC é usada como referência na conversão de dados ASCII para EBCDIC ou vice-versa. Tal conversão é necessária na transferência de arquivos de dados entre computadores que usam padrões diferentes entre si. Esta conversão torna-se mais difícil quando os dados são compactados ou binários. Esta alteração é feita numa tabela de conversão da controladora de terminais. Para facilitar o PW3270 tem uma opção que dá para colocar as opções EBCDIC que você queira utilizarno seu ambiente - Como podemos configurar para utilizar "charset EBCDIC" semelhante do x3270 ou wc3270? Nas pastas do PW3270 tem uma pasta chamada charsets, dentro dela tem um arquivo chamado bracket.xml, configure os seus caracteres EBCDIC neste arquivo, e altere o atalho do PW3270 para chamar este arquivo com o comando --remap
"C:\Program Files (x86)\pw3270\pw3270.exe" --remap "charsets\bracket.xml" --host=10.2.14.23:1023 --session=Desenvolvimento

O backet.xml padrão vem desse jeito - só alterara do jeito que o seu ambiente precise:

Associar PageDown com PA2

Como fazer para associar a tecla Page Down com a função PA2? De forma que eu tenha o mesmo comportamento do outro emulador, permitindo que eu navegue pelas LPars. Edite o arquivo 00default.xml do diretório ui

C:\Program Files\pw3270\ui

E procure por:

Troque por:

Se quiser trocar também a função da roda do mouse para navegar da mesma forma troque:

Por:

Configurar LU NAME

Podemos colocar uma impressora especifica em um emulador, no atalho configura assim:
"C:\Program Files\pw3270\pw3270.exe" --host=tn3270s:endereço_mainframe:porta?LUNAME=TICE0010
Após conectar no mainframe com o PW3270 a LU NAME TICE0010 (minha impressora) vai estar definida automaticamente;

Habilitar TRACE ou LOG

A função de trace no PW3270 não é instalada por padrão, para habilitar você precisa desinstalar o PW3270 e instalar de novo, quando estiver instalando tem que marcar a opção em "Menus, Keypads & Toolbars -> View trace Menu". Com essa opção marcada após instalar PW3270 vai aparece um menu extra em "Exibir" com várias opções de trace. (Observação - Se você quiser descobrir o porque esta desconectando o PW3270 no mainframe o mais indicado seria o "Data Stream" que registra a comunicação com o host).

Para gravar o log marque o arquivo que você quer salvar
"C:\Program Files\pw3270\pw3270.exe" --host=L:endereço_mainframe:porta  --log="C:\Claudemar\Deletar\pw3270\claudemar.txt" --tracefile="C:\Claudemar\Deletar\pw3270\claudemar1.txt"

Depois de instalado o trace no PW3270 - habilite o tipo de trace que você quer;



Instando no Linux Mint

Esses foram os comandos que rodei para instalar (Ubuntu) - como o Linux Mint é uma derivação do Ubuntu; Outras Versões
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/PerryWerneck:/pw3270/xUbuntu_19.04/ /' > /etc/apt/sources.list.d/home:PerryWerneck:pw3270.list"
sudo apt-get update
sudo apt-get install pw3270

Esse foi o passo a passo que fiz para instalar no Linux Mint o PW3270;
linux@mint:~$ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/PerryWerneck:/pw3270/xUbuntu_19.04/ /' > /etc/apt/sources.list.d/home:PerryWerneck:pw3270.list"
linux@mint:~$ sudo apt-get update
Ign:1 http://dl.google.com/linux/chrome/deb stable InRelease
Ign:2 http://packages.linuxmint.com tessa InRelease
Atingido:3 http://dl.google.com/linux/chrome/deb stable Release
Atingido:4 http://packages.linuxmint.com tessa Release
Atingido:5 http://archive.ubuntu.com/ubuntu bionic InRelease
Obter:6 http://security.ubuntu.com/ubuntu bionic-security InRelease [88,7 kB]
Atingido:7 http://archive.canonical.com/ubuntu bionic InRelease
Atingido:8 http://archive.ubuntu.com/ubuntu bionic-updates InRelease                                                 
Obter:9 http://download.opensuse.org/repositories/home:/PerryWerneck:/pw3270/xUbuntu_19.04  InRelease [1.576 B]
Obter:10 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74,6 kB]
Obter:13 http://download.opensuse.org/repositories/home:/PerryWerneck:/pw3270/xUbuntu_19.04  Packages [2.262 B]
Baixados 167 kB em 9s (18,4 kB/s)
Lendo listas de pacotes... Pronto

Deu um erro essa parte - normal - tinha um outro processo usando o PW3270 - como estava reinstalando acredito tinha um outro acessando;
linux@mint:~$ sudo apt-get install pw3270
E: Não foi possível obter trava /var/lib/dpkg/lock-frontend - open (11: Recurso temporariamente indisponível)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

Continuando
linux@mint:~$ sudo apt-get install pw3270
Lendo listas de pacotes... Pronto
Construindo árvore de dependências     
Lendo informação de estado... Pronto
The following additional packages will be installed:
  lib3270 libv3270
Os NOVOS pacotes a seguir serão instalados:
  lib3270 libv3270 pw3270
0 pacotes atualizados, 3 pacotes novos instalados, 0 a serem removidos e 286 não atualizados.
É preciso baixar 317 kB de arquivos.
Depois desta operação, 1.136 kB adicionais de espaço em disco serão usados.

Continuando
Você quer continuar? [S/n] S
Obter:1 http://download.opensuse.org/repositories/home:/PerryWerneck:/pw3270/xUbuntu_19.04  lib3270 5.2-0 [105 kB]
Obter:2 http://download.opensuse.org/repositories/home:/PerryWerneck:/pw3270/xUbuntu_19.04  libv3270 5.2-0 [95,1 kB]
Obter:3 http://download.opensuse.org/repositories/home:/PerryWerneck:/pw3270/xUbuntu_19.04  pw3270 5.2-0 [116 kB]
Baixados 317 kB em 2s (146 kB/s)
A seleccionar pacote anteriormente não seleccionado lib3270.
(Lendo banco de dados ... 253536 ficheiros e directórios actualmente instalados.)
A preparar para desempacotar .../lib3270_5.2-0_amd64.deb ...
A descompactar lib3270 (5.2-0) ...
A seleccionar pacote anteriormente não seleccionado libv3270.
A preparar para desempacotar .../libv3270_5.2-0_amd64.deb ...
A descompactar libv3270 (5.2-0) ...
A seleccionar pacote anteriormente não seleccionado pw3270.
A preparar para desempacotar .../pw3270_5.2-0_amd64.deb ...
A descompactar pw3270 (5.2-0) ...
A processar 'triggers' para mime-support (3.60ubuntu1) ...
A processar 'triggers' para desktop-file-utils (0.23+linuxmint4) ...
Configurando lib3270 (5.2-0) ...
A processar 'triggers' para libc-bin (2.27-3ubuntu1) ...
A processar 'triggers' para gnome-menus (3.13.3-11ubuntu1.1) ...
Configurando libv3270 (5.2-0) ...
Configurando pw3270 (5.2-0) ...
A processar 'triggers' para libc-bin (2.27-3ubuntu1) ...
linux@mint:~$ cat /home/meu_usuário/.config/pw3270.conf

4 comentários:

  1. Não encontrei nenhuma opção como o noverifycert do x3270. Sem essa opção eu levo mais 4 min pra conectar. Sabe dizer se tem algo similar?

    ResponderEliminar
    Respostas
    1. Essa opção só conheço o X3270 o PW3270 checando o options dele não aparece, o PW3270 tem uma lista de ajuda, o criador do PW3270 ajuda todos lá que pedem ajuda - pergunta lá que ele vai te responder:

      https://listas.softwarepublico.gov.br/pipermail/pw3270/

      Eliminar
    2. Na versão do artigo não tem essa opção; as versões mais novas permitem isso através de uma edição manual no arquivo de sessão.

      Eliminar