Perry Werneck Érico M. Mendonça Miris Silva - PRODEB · Principais problemas do X3270: ......
Transcript of Perry Werneck Érico M. Mendonça Miris Silva - PRODEB · Principais problemas do X3270: ......
Perry WerneckÉrico M. Mendonça
Miris Silva
Software Público Brasileiro
Mainframes
●O modelo dominante de mainframe nos anos 60 e 70 era o IBM System/370●As unidades de display, como eram conhecidas, eram ligadas diretamente por cabo coaxial a uma unidade de controle●Os terminais permitiam a interação do usuário com o sistema●Primeiros modelos de terminais de vídeo em 1972
Mainframes
3031 Processor Complex, 1977
3270
●Todos os produtos IBM utilizavam um código de 4 dígitos: System/370 → terminal 3277●Primeiros modelos da linha em 1972●Terminais “burros”, todo o processamento era feito na unidade de controle
3270
●Criado como uma evolução dos terminais utilizados na época, a linha 327x utilizava um protocolo que minimizava o uso de I/O●Utilizavam o conceito de telas editáveis, com áreas protegidas e campos delimitados●Existiram unidades de controle de 32 a 128 terminais●Utilizavam o charset EBCDIC●Conectados a 9600bps
3270
●Existiram 5 modelos principais:●Model 1: tela de 10”, 12x40●Model 2: tela de 15”, 24x80 ●Model 3: 32x80●Model 4: 43x80●Model 5: 27x132
●3279: 7 cores●3279G: gráficos
3270
IBM 3278 (museu BB)
IBM 3277
3270
Caneta ótica (terminal 2250, 1969)
IBM 3279
3270
●Acessórios como caneta ótica foram desenvolvidos●Cerca de 15 fabricantes de modelos compatíveis existiram●Sucedido pelo 5250, e depois placas IRMA para o PC●O 3270, quase 40 anos depois, ainda é largamente utilizado por vários setores, embora com formas diferentes de acesso
Emuladores de Terminal
●Com a migração para terminais não dedicados, foi necessária a criação de programas que emulassem o terminal original●Inicialmente a conexão e o protocolo físicos eram o mesmo dos terminais originais (IRMA)●Depois migrado para SNA over TCP/IP, e finalmente, TCP/IP direto
Emuladores de Terminal
●Protocolos TN3270 e TN3270e definidos por RFCs: 1576 e 2355●Hoje uma única instância de servidor TN3270e no z/OS suporta 128.000 terminais simultâneos
X3270
●O X3270 foi criado por Robert Viduya, da Universidade Rutgers, em 1991 como um “port” para o ambiente X11●É baseado em outra ferramenta, o 3270tool, do mesmo autor, de 1988, e era utilizado no ambiente SunView (precursor do OpenWindows/Solaris)●Desde 1993 é mantido por Paul Mattes●Página oficial: http://x3270.bgp.nu
X3270
●Apesar de simples, emula os principais recursos de um terminal 3270●Portado para diversos sistemas operacionais (inclusive Windows)●Desenvolvimento ativo, mas principalmente voltado à manutenção
X3270
●Principais problemas do X3270:● falta de recursos conhecidos e bastante
utilizados em ferramentas do mesmo tipo disponíveis para Windows
● Interface pouco amigável●Fontes fixas
X3270
●Principais problemas do X3270:● Impressão limitada (via pr3270)●Clipboard limitado●Nenhuma integração aos desktops modernos●Sem suporte a unicode●Problemas de segurança (trace com senha!)
X3270
X3270
X3270
●Produtos em uso à época●Personal Communications (IBM)●Host On-Demand (IBM)●WSAD/HATS (IBM)●EXTRA! (Attachmate)
pw3270
Por volta de 2002, iniciou-se a criação de um disco-matriz baseado em Linux no Banco do Brasil
●Esta iniciativa deu início ao uso de Linux no BB●A única alternativa gratuita disponível para Linux
na época era o X3270●Logo nos primeiros pilotos, os usuários
reclamaram da simplicidade excessiva do aplicativo
pw3270
●Desafios: ● Implementar recursos utilizados em ferramentas
consagradas já em uso no BB●Trazer o X3270 “para o presente”, suportando
padrões de mercado●Tornar a interface mais amigável● Implementar mecanismos que permitam a
evolução do aplicativo
pw3270
●Desafios:●Se possível, tornar o aplicativo multi-plataforma●Tirar ao máximo a dependência de ferramentas
pagas para emulação 3270●Ajudar a tornar o Linux uma alternativa atrativa
para os usuários do BB
pw3270
●Escopo inicial do projeto●Apenas fazer uma “casca” para o X3270 no
Linux, dada a complexidade de reimplementar o protocolo
●Deixar o produto mais apresentável●Apenas para uso interno no BB
pw3270
●Desenvolvimento●Linguagem: ANSI C/C++●Toolkit: GTK
●GTK escolhido por ser multiplataforma e oferecer boa parte dos recursos desejados●Principal desenvolvedor: Perry Werneck●Possui a “benção” oficial do autor do X3270
pw3270
●Nomenclatura● Inicialmente chamado de G3270 (G = GTK ou
Gráfico)●Recentemente, foi descoberto que existe um
produto comercial com este nome de uma empresa alemã
●Nome alterado para evitar possíveis conflitos de copyright
●Diversas sugestões foram dadas: gtk3270, graph3270, bb3270, br3270, pw3270
pw3270
●Versões●out/2006: primeiro “hello world” feito a partir do
c3270 (ncurses)●Nov/2006: primeira versão GTK liberada para
testes●Jan/2007: primeiro release para testes com SSL,
ações de mouse e clipboard●Fev/2007: suporte a configuração de cores,
impressão pelo sistema, fontes truetype
pw3270
●Abr/2007: suporte a extensões●Jul/2007: impressão via GTK, recursos avançados de clipboard●Nov/2007: suporte a salvamento de sessão GTK●Jun/2008: primeiro build para Windows●Ago/2008: suporte a internacionalização●Out/2008: suporte REXX para Windows●Jan/2009: transferência de arquivos
pw3270 Visual padrão com teclado de funções
pw3270Modo fullscreen
pw3270 Configuração de cores
pw3270 Impressão GTK
pw3270
Recursos avançados de clipboard
Recursos visuais avançados
pw3270
Suporte a fontes truetype
Suporte a scripts REXX
pw3270 Utilização de temas GTK nativos
pw3270Versão Windows
pw3270 no BB
●É utilizado por cerca de 100.000 usuários no Banco do Brasil●É parte integrante de todos os terminais de agência, caixa, direção geral e centrais de atendimento●O número de usuários cresce a cada dia●Estima-se um crescimento ainda maior com as recentes aquisições do BB
pw3270 no BB
●Também é utilizado por alguns setores da Caixa Econômica●No BB, a economia estimada apenas com a não-renovação de licenças para os produtos em uso já é significativa.
pw3270 no BB
●Melhoria contínua: sugestões e bug reports recebidos através de fórums internos, beta-testers e canais de atendimento do BB●O porte para Windows nasceu de uma destas sugestões●Recursos únicos ao BB: módulo de auditoria, suporte a extensões REXX, colar especial, colar como tabela
pw3270 no BB
●Licenciamento: desde o início do projeto, a idéia era que o licenciamento seguisse o modelo de software livre●A licença original do X3270 é própria, do tipo “as-is”●Durante um bom tempo, todo o desenvolvimento foi interno●Dada a maturidade do produto, foi decidida pela liberação do código
pw3270 no SPB
●Liberação de código de um produto desenvolvido para a comunidade foi uma experiência nova para o BB●Foram necessárias negociações com o autor original e com o próprio BB●Em meados de 2008, foram iniciadas negociações para hospedar o projeto inteiramente no Portal do SPB
SPB
Portal Software Público Brasileiro
O que é o SPB
●O conceito do Software Público Brasileiro - SPB é utilizado como um dos alicerces para definir a política de uso e desenvolvimento de software pelo setor público no Brasil.●A iniciativa do Portal do Software Público Brasileiro facilita a implantação de novas ferramentas nos diversos setores administrativos dos estados, promove a integração entre as unidades federativas e oferece um conjunto de serviços públicos para sociedade com base no bem software.
pw3270 no SPB
●Status atual●Migração do repositório de código já efetuada●Migração da base de dados de suporte, wiki e
tickets em progresso (Trac)
CADASTRO - PORTAL SPB
●Para obter o acesso às comunidades virtuais dos softwares disponibilizados no Portal do Software Público é necessário fazer seu cadastramento no endereço: http://www.softwarepublico.gov.br/register/user-new
●Com o usuário e senha cadastrados você poderá participar das comunidades correspondentes aos softwares de seu interesse.
COMO CONTRIBUIR
●No Software Livre, existem diversas formas para contribuir com a melhoria de um software.●Algumas formas de contribuir são: relatar bugs,criar patches, criar novas funcionalidades, ajudar pessoas no fórum, e escrever documentação/FAQs
COMO CONTRIBUIR
●Relatar um bug: relatar bugs ajuda os desenvolvedores do Portal do Software Público Brasileiro a corrigirem de forma mais rápida um comportamento não desejado. Nós usamos o sistema de tickets do Trac para coordenar a correção de bugs.
COMO CONTRIBUIR
●Criar um patch: para contribuir com um patch, que pode ser para correção de um bug ou melhoria de um trecho de código, certifique-se que seu código está em conformidade com os padrões de codificação. ●Para criar um patch, você precisa ter uma cópia de trabalho do repositório SVN.
COMO CONTRIBUIR
●Criar uma nova funcionalidade: se você alterou o código fonte do software para criar uma nova funcionalidade ou irá criar uma para alguma necessidade específica, contribua com o projeto disponibilizando-a no repositório.
COMO CONTRIBUIR
●Pedir ajuda no fórum de suporte: à primeira vista pode nem parecer mas um simples pedido de ajuda no fórum de suporte pode contribuir muito para a comunidade e para o projeto.
COMO CONTRIBUIR
●Ajudar pessoas com dificuldades no fórum de suporte: ajude a responder dúvidas no fórum de suporte. Isso evita que novos (e antigos) usuários fiquem frustrados e que desistam do portal. Lembre-se: o feedback deles é essencial na identificação de novos bugs e para identificação de pontos falhos na documentação e na usabilidade do software.
COMO CONTRIBUIR
●Transformar as dúvidas mais frequentes do fórum de suporte em itens do FAQ: com o tempo, as mesmas dúvidas aparecerão no fórum de suporte. Ao identificar uma dúvida frequente, atualize o FAQ criando uma nova entrada com a pergunta/dúvida como título e com uma resposta para a mesma.
COMO CONTRIBUIR
●Contribuir com a documentação: Uma boa documentação é determinante para o sucesso de um projeto de Software Livre. Contribua com a documentação, seja ela técnica ou de uso do software. Padrões para a criação de documentação ainda serão definidos mas não espere por eles:
CONTRIBUA!
Dúvidas? Perguntas?
Érico Mendonça <[email protected]>
Perry Werneck<[email protected]>
Miris Silva<[email protected]>