Documente Academic
Documente Profesional
Documente Cultură
Introdução
A idéia de publicar alguns livros com a coletânea de posts que já escrevi para o meu blog
no developerWorks (www.ibm.com/developerworks/blogs/page/ctaurion) vinha me
martelando há algum tempo. As minhas observações sobre os acesso ao blog mostravam
que depois de algum tempo os posts eram “esquecidos”, uma vez que o ritmo de inserção
de novos posts tem sido intenso. Gosto de escrever e um blog me dá a liberdade que as
colunas nas revistas especializadas (escrevo para Computerworld Brasil, Mundo Java,
Linux Magazine e Espírito Livre), por razões editoriais, não permitem. De maneira geral
levanto um post a cada três ou quatro dias. Como escrevo os posts de acordo com o
momento, muitas vezes o texto pode até parecer meio deslocado para quem não esteja
acompanhando sistemáticamente o tema. O volume de material acumulado, acredito, é
bem razoável. O blog começou em janeiro de 2007 e em julho de 2009, quando comecei a
preparação desta série de livros, já somava mais de 400 posts.
Surgiu a idéia: por que não agrupar os posts por temas e publicá-los para acesso online?
Uma conversa com meu amigo, desenvolvedor e escritor, Claudio de Souza Soares, definiu
o projeto. Sim, vou publicar os posts em forma de livro eletrônico.
A primeira etapa foi agrupar os posts por assuntos, identificando as relevâncias entre eles.
As tags me ajudaram nisso. Assim, cada assunto ou conjunto de assuntos se tornará um
livro. Procurei manter os posts, na medida do possivel iguais aos publicados originalmente.
Claro que corrigi alguns erros ortográficos, que passaram em branco quando os posts foram
inicialmente levantados.
Este ebook aborda um tema pelo qual tenho muito carinho: os mainframes. Comecei minha
carreira profissional lá pelos idos da década de 70, exatamente em um IBM /360 modelo 40.
Uma máquina de 256 Kbytes! Maquinão, mas que hoje é uma memória simplesmente
ridícula. De lá para cá acompanhei, ora de perto, ora de longe sua evolução e a eterna sopa
de letras que tivemos de aprender ao longo destes anos. Após os /360, vieram os 370 com
memória virtual. Foi neste sistema que estudei bastante o assunto memória virtual, ainda
pouco conhecido. Lembro de inúmeros artigos e papers debatendo influência de fenômenos
como working set de programas e thrashing nos mecanismos de paginação. Em 1980
surgiram os sistemas XA (Extended Architecture) e o espaço de endereçamento passou de
24 bits para 31 bits. Em 1990 os sistemas ESA/390, já com 44 bits e em 2000 os zSeries,
que viram a introdução dos 64 bits e o sistema operacional z/OS. Trabalhei com diversos
modelos de mainframe, como alguns 360 e 370 (os modelos 148 e 158, por exemplo), os
4341 e 4381, os 3090...A história dos 360 pode ser encontrada em
ftp://ftp.software.ibm.com/eserver/zseries/misc/bookoffer/download/360revolution_040704
.pdf.
2
MVS. A sua última versão é o z/OS. E, claro, não poderia deixar de lado o VM/CMS,
sistema pelo qual me apaixonei à primeira vista! Acompanhei bem de perto sua evolução.
Um pouco de sua história vocês encontram no Wikipedia
(http://en.wikipedia.org/wiki/History_of_CP/CMS). Foi com o VM/370 que aprendi os
conceitos de virtualização e hypervisor. Também com VM/370 me aprofundei nos estudos
de capacity planning, indo mais a fundo nos algoritmos de melhoria de performance e
teoria das filas. Foi nestes sistemas que me aprofundei nos estudos de modelos que
simulavam o desempenho dos discos com tecnologia RPS (Rotational Positioning Sensing),
que melhorava a latência rotacional.
E os outros sistemas que faziam e fazem parte do mundo dos maiframes? O CICS, os
antigos DL1, IMS e SQL/DS. O bem conhecido DB2...Em banco de dados convivi também
com alguns SGBD que desapareceram como o Total. Também siglas de telecomunicações
como BTAM, SNA e VTAM. Aliás, quem for adepto da frase “recordar é viver”, sugiro a
leitura do livro “A History of Modern Computing”, de Paul E. Ceruzzi.
Os mainframes estão conosco há 45 anos. Sua longevidade tem uma explicação: são
sistemas que mantém grande parte das atividades comerciais do mundo funcionando. Sem
eles não teriamos os sistemas financeiros e de seguros. Nao teriamos sistemas de reservas
de passagens aéreas e nem processamento de cartões de crédito.
3
EAL 4+ e as partições lógicas (LPAR) com EAL5. EAL signfica Evaluation Assurance
Level (http://en.wikipedia.org/wiki/Evaluation_Assurance_Level).
Todos os URL que aparecem nos textos foram acessados e checados durante a preparação
original dos posts, mas como a Web é extremamente dinâmica, existe a grande
possibilidade de alguns destes URL já não existirem ou terem sido alterados, pelos quais
pedimos antecipadamente nossas desculpas.
Lembro também que as opiniões expressas neste ebook e em toda a série de ebooks (como
o foram no blog) são fruto de estudos, análises e experiêncis pessoais, não devendo em
absoluto serem consideradas como opiniões, visões e idéias de meu empregador, a IBM,
nem de seus funcionários. Em nenhum momento, no blog e aqui, falo em nome da IBM,
mas apenas e exclusivamente em meu nome.
Cezar Taurion
Agosto de 2009
4
Gameframe: os mainframes como plataforma para games
No final de abril de 2007 a IBM lançou um press release que me deixou muito empolgado:
vai criar um gameframe, ou um mainframe híbrido, integrando a este sistema o processador
Cell Broadband Engine (Cell/BE). Este sistema é especialmente talhado para aplicações de
“virtual worlds” , sejam estes games MMOG (Massive Multiplayer Online Game), como o
Taikidom (www.taikodom.com.br) da brasileira Hoplon (www.hoplon.com.br ) ou
plataformas para social-networking como o Second Life e outros.
A Hoplon está participando do projeto e temos que parabenizar o seu principal executivo,
Tarquínio Teles, que é uma pessoa simplesmente brilhante. E quem sabe um dia o pessoal
do Second Life também não vai adotar esta tecnologia?
Mas, porque fiquei contente? Comecei minha carreira no /360 e o meu primeiro programa
foi escrito em Cobol. O segundo foi em Assembler (e os meus colegas dinossauros talvez
ainda se lembrem do livro de cabeceira da época, o Principles of Operation e sua sopa de
siglas, como PSW, CCW, TLB e outras).
Mas, falando sério, porque este movimento de integrar o Cell/BE ao mainframe, criando
um gameframe? Primeiro, o mercado de games tem uma projeção de crescimento fantástica.
Em 2004, a receita global deste mercado já era de mais de 25 bilhões de dólares e algumas
estimativas apontam que em 2009 deverá estar na casa dos 55 bilhões de dólares. E em
breve os jogos MMOG deverão ultrapassar os jogos baseados em PC, principalmente pela
possibilidade de interação entre seus usuários, impulsionados pela disseminação da banda
larga. Jogar em grupo é bem mais agradável que jogar sozinho contra uma máquina...
Para ter-se um nível de realismo próximo da realidade, os processadores devem ter uma
capacidade fantástica. O Cell/BE com seus múltiplos núcleos é voltado à computação
intensiva. Hoje ele é o cérebro do PlayStation 3 da Sony e com sua integração ao
mainframe, com certeza vai abrir um novo espaço no cenário dos mundos virtuais.
5
jogo ou o mundo virtual, mais e mais usuários se conectam para interagir uns com os outros.
Em um ambiente de computação tradicional, quanto mais usuários conectados, menos
tempo de máquina cada um dispõe. Para jogos interativos, degradações na velocidade dos
jogos ou dos mundos virtuais é uma das piores situações, que pode levar ao desestímulo
dos seus usuários e ao fracasso da iniciativa.
Como os investimentos iniciais seriam muito altos (os custos fixos também seriam altos) e
a receita chegaria muito devagar, pois estas aplicações são baseados em mercado de massa,
com um grande numero de usuários pagando valores muito pequenos pelo uso do jogo ou
do mundo virtual, o modelo de computação tradicional simplesmente inviabilizaria o
negócio. Claramente, o modelo exige computação sob demanda (on demand), onde o
mainframe, pela possibilidade de operar centenas de máquinas virtuais (e em Linux) sem
necessidade de conexões físicas, é uma alternativa extremamente válida.
O mainframe, ou melhor, gameframe, tem alta capacidade de I/O, tem latência mínima,
pois utiliza um recurso chamado Hypersocket para comunicação interna entre as diversas
máquinas virtuais e com o uso do Cell /BE tem também agora um processador
especializado em computação intensiva. Melhor que isso, só dois disso!
6
Discutindo TCO
Sim, energia é um fator de grande importância e em breve deve se tornar uma grande
preocupação dos CFOs e dos CIOs. Para termos uma idéia da magnitude do consumo de
energia em TI, já temos estudos que mostram que este consumo por parte de servidores
dobrou entre 2000 e 2005. Segundo o Gartner Group, em 2010 metade das empresas
listadas na Forbes 2000 estarão gastando mais dinheiro com energia que com seus
computadores. Outros estudos mostram que somente nos EUA o gasto com energia
relacionada com TI já atinge 29 bilhões de dólares e que esta taxa deve crescer pelo menos
54% ao ano. Outro instituto de pesquisa, o Robert Frances Group declarou em 2006:
“Power and cooling costs will increase to more than one-third of the total IT budget”. E
pior, segundo o IDC, 46,8% dos CIOs não sabem quantos watts por metro quadrado seus
data centers estão consumindo. E os outros mais de 50% apenas “acham” que sabem...
Não é de se estranhar que já começa a se tornar consenso que reduzir o consumo de energia
será muito em breve uma das principais preocupações dos executivos de TI.
O ambiente distribuído foi implementado por máquinas com custo de aquisição bem
menores que os mainframes, mas traziam em seu bojo uma série de problemas,
desconhecidos ou subestimados na época. O software e o hardware destas máquinas não
7
tinham sido projetados para computação transacional, com carga diferenciada e intensiva
em I/O. Em conseqüência, foi necessário adotar-se um modelo de distribuição intensiva,
uma aplicação por servidor. O resultado foi uma grande ineficiência no uso dos recursos
computacionais. Um recente estudo do IDC mostrou que a utilização média dos cerca de 30
milhões de servidores de todos os portes que existem no mundo, situa-se em torno dos 15%.
O IDC estima que o excesso de capacidade instalada é de 140 bilhões de dólares.
Algumas estimativas, analisando a utilização por tipo de servidores, chega-se a uma média
de 5%-10% de utilização para servidores de base Intel ou AMD (ou 90%-95% de
capacidade não utilizada!), 15%-30% para servidores de tecnologia Risc (70%-85% de
capacidade não utilizada!) e, de forma bem diferenciada, em torno dos 80% para os
mainframes.
Claramente tem-se que pensar em uma solução para este desafio. Primeiro, devemos
quebrar percepções arraigadas, tipo “Mainframe é sempre mais caro que um servidor da
chamada plataforma baixa”. Se olharmos apenas o custo de aquisição, sim. Mas se
pensarmos em uma empresa com dezenas ou centenas de servidores e analisarmos seu TCO,
ou seja, quanto custa manter toda a infra-estrutura em operação em um período de 3 a 5
anos, considerando gastos com pessoal, energia, suporte, gerenciamento, softwares
aplicativos, upgrades, procedimentos operacionais, etc, veremos que nem sempre este
axioma será verdadeiro.
Tem uma frase muito interessante de Matt Eastwood, VP de Enterprise Platforms, do IDC,
que há poucos meses disse: “It’s becoming increasingly clear that the typical enterprise
computing infrastructure will require additional investment in order to deliver on these
objectives (business efficiency, improved customer satisfaction and accelerated revenue
growth). This next generation infrastructure will be denser, more energy efficient, easier to
manage, better integrated, more virtual, and much more resilient. For most organizations
this represents a long-term journey requiring IT investment in the new computing
capabilities necessary to meet the IT and business flexibility needs of tomorrow’s dynamic
enterprise. We are still in the early stages of this journey today”.
Para surpresa de muitos, o IDC recentemente liberou um relatório onde diz que o Brasil é o
sexto mercado mundial de mainframes. O primeiro é claro, são os EUA. Segundo este
analista de mercado, o Brasil corresponde a 1,5% dos investimentos mundiais em TI e gera
8
mais de 11% da receita global de mainframes. E mainframes não são apenas para
dinossauros. A garotada também começa a se interessar por estes sistemas! O 1° Concurso
de Mainframes para estudantes no Brasil, aberto pela IBM, resultou em mais de 2000
inscritos, oriundos de quase 400 instituições diferentes.
Então, vamos pensar out-of-the box? Será que soluções que à primeira vista são excluídas
(mainframe é muito caro...) não deveriam ser repensadas?
9
OpenSolaris nos mainframes
Em agosto de 2007 passou meio desapercebido por aqui o anúncio conjunto que a IBM e
Sun fizeram nos EUA. Neste anúncio a IBM anunciava que estará distribuindo em breve o
sistema operacional Solaris (pelo menos para alguns mercados) em determinados modelos
de servidores de base Intel (System x) e BladeCenter. Vejam em http://www-
03.ibm.com/press/us/en/pressrelease/22163.wss. O acordo prevê que engenheiros da IBM e
Sun trabalharão em conjunto para garantir que haja perfeita integração entre o Solaris e os
periféricos acoplados aos servidores IBM. Afinal, um servidor não é somente feito de
processadores. Agora estes servidores estarão aptos a rodar o Windows, Linux e Solaris. A
IBM foi a primeira empresa a assinar um acordo deste tipo com a Sun. A outra empresa que
havia feito isso era a Fujitsu, mas em sua linha de servidores baseado em processadores
Sparc.
Na prática, este acordo é uma decorrência do sucesso do Linux. Quando a IBM anunciou o
suporte ao Linux em toda sua linha de servidores, muita gente imginou que perderiamos
espaço no mercado de hardware. Não foi o que aconteceu. O VP senior de Systems and
Technology Group da IBM, Bill Zeitler disse textualmente no anúncio: “We are doing
better on the whole now that we do give customers choice” e “When we decided to put
Linux on mainframes, we debated whether that would compromise us or open us to
competition we didn't have, but it opened us up to more customers and enabled us to
compete based on our merits. There will be times when customers look at us and at Sun and
decide Sun's hardware is better, but in my experience, you are better off meeting clients in
the way they want to be met”.
É verdade. Hoje, indiscutivelmente, quem define a melhor solução para si é o cliente e ele
quer ter opções de escolha. Não quer ficar dependente de uma única empresa e se sujeitar
ao seu ritmo de evolução tecnológica. Na minha opinião, o mundo dos sistemas
verticalizados, onde da aplicação ao sistema operacional você depende de uma única
corporação está com seus dias contados...
Bem quanto ao Aix, Bill Zeitler também comentou: “mature vendors respond to customer
requirements, and that is what we are doing. We will continue investing in AIX, but we
know lots of customers like Solaris. We don't see that as a compromise. It adds to our
commitment to interoperatibility in the marketplace”.
10
e que portanto OpenSolaris em System z é algo que não deve ser descartado... Vejam
http://sinenomine.net/node/607.
Bem, nada ainda está formalizado, embora em recentes eventos de mainframes, como
System z and zSeries Expo, em Munique na Alemanha e WAVV 2007 (World Alliance of
VSE VM Linux), a Sine Nomine apresentou palestras descrevendo o projeto OpenSolaris
no System z. Vejam a apresentação em http://www.sinenomine.net/system/files/L04-
OpenSolariszSeries_0.pdf. Caso queiram acessar outras apresentações do WAVV 2007
acessem http://www.wavv.org/wavv2007/presentations/index.htm. Para a rapaziada dos
mainframes, tem palestras bem interessantes.
Interessante também é o que saiu na mídia sobre o acordo e uma eventual versão do
OpenSolaris rodando em mainframes. Vejam alguns relatos em
http://www.infoworld.com/article/07/08/16/Solaris-on-z-mainframes-next-on-the-agenda-
for-IBM-Sun_1.html e
http://computerworld.com/action/article.do?command=viewArticleBasic&taxonomyName
=mainframes_and_supercomputers&articleId=9031183&taxonomyId=159&intsrc=kc_top.
E quanto aos analistas de indústria? Muitos disseram que foram surpreendidos pelo acordo
(e quem não foi?) , como Charles King, da Pund-It Inc (http://www.pund-it.com/) que
afirmou “I could not have imagined this occurring when Scott McNealy was CEO of Sun, it
seems Jonathan Schwartz is taking the company in a more open and software-driven
direction”. Também disse que “IBM can only gain from the deal. It has limited its
partnership to System x and blade servers, so there is no conflict with IBM's Unix, or
System p platform. I don't see it as a huge income generator for IBM, but it portrays itself
as the provider of a wider array of solutions, and this puts IBM way ahead of the curve”.
Quanto ao System z, ele disse “There was a lot of doubt in the industry questioning the
value of it, but Linux gave mainframe a whole new life, and IBM pressed forward with
specialty processor for Java and Web apps. There is a ton of business out there from users
with huge, aging Sun Sparc rack servers – especially in the financial services and telco
space[s] -- where the mainframe has won as a consolidation platform. With Solaris
available, I can imagine IBM moving Sparc onto mainframe platforms”.
O IDC também opinou sobre assunto “You could have Solaris running on the mainframe
with virtualization capabilities, with logical partitions and multiple instances of Solaris
running, the way we've seen with Linux”.
Na minha opinião, no novo cenário da virtualização, faz todo o sentido colocar novas
alternativas como o sistema Solaris em servidores como System x e System z. Os clientes
precisam consolidar em máquinas mais robustas seus diversos sistemas operacionais hoje
esparsamente (e de forma custosa...) distribuídos pela empresa e a IBM oferecer uma gama
mais ampla de alternativas é uma “sacada” bem inteligente.
11
Os mainframes continuam saudáveis
Estive em mais um evento IBM Comunidades, em novembro de 2007, desta vez no Rio de
Janeiro. Curioso, mas embora more no Rio quase não faço palestras aqui. Que pena!
Na apresentação mostrei que o mainframe (nosso System z), apesar das más linguas,
continua forte e saudável.
Para exemplificar com alguns números, usei dados do evento “System z Summit
Symposium” que a IBM realizou em junho deste ano, em New York. O evento reuniu
analistas de indústria para debater o presente e o futuro do System z e mostrou muitos
números interessantes.
Por exemplo, pouca gente sabe que existem 10.000 mainframes em operação no mundo
inteiro, com uma capacidade instalada de mais de 11 milhões de MIPS. Para se ter uma
comparação em 2000 haviam 3,5 milhões de MIPS instalados e cerca de 9 milhões em fins
de 2005. Ou seja, em menos de dois anos, mais de 2 milhões de MIPS foram instalados!
Olhando-se por outro prisma, multiplicou-se por mais de três a base instalada de MIPS em
apenas 7 anos...Este crescimento mostra que o mainframe continua firme.
São duas as razões para este crescimento. Uma é a compatibilidade dos novos sistemas com
o software legado. Existem cerca de 200 bilhões de linhas de código Cobol em uso hoje e
cerca de cinco bilhões são adicionadas à esta base a cada ano! Uma estimativa econômica
de quanto custaria substituir esta imensa base de sistemas legados chegou a cifra
astronômica de vinte trilhões de dólares.
12
1.2 milhões de MIPS foram para o IFL, rodando Linux. Segundo Stallings, cerca de 25%
dos MIPS vendidos hoje o são para Linux.
13
ZaaP: Java em mainframes
O que se consegue com isoo? Uma maior consolidação do parque computacional. Você
pode ter no mainframe não apenas os sistemas legados (escritos em Cobol, por exemplo),
mas também os novos sistemas escritos em Java. E adicionando processadores IFL, você
consolidaria também seus inúmeros sistemas Linux. E em breve, com o suporte ao
OpenSolaris, aplicações que rodavam em máquinas Sun/Solaris poderão também ter sua
carga deslocada para o mainframe.
14
Curso de Pós-graduação em Mainframes!
Agora em maio de 2008 tive a oportunidade de fazer a aula inaugural do curso de pós-
graduação em mainframes, na UniverCidade, no Rio de Janeiro.
Até há algum tempo atrás, quem trabalhava com mainframes era visto como um dinossauro.
Aliás, eu também sou um dinossauro da família dos informaticossauros, pois comecei
minha carreira no /360 e o meu primeiro programa foi escrito em Cobol. O segundo foi em
Assembler (e os meus colegas dinossauros talvez ainda se lembrem do livro de cabeceira da
época, o Principles of Operation e sua sopa de siglas, como PSW, CCW, TLB e outras).
Querem mais? Que tal Java no mainframe? A IBM, depois do sucesso do processador
especializado IFL (Integrated for Linux) acoplado ao processadores dos mainframes lançou
um outro processador, desta vez voltado a consolidar workloads Java nestas máquinas. Este
processador chama-se zAAP (System z Application Assist Processor). Este processador
(podem ter vários no mesmo computador) opera de forma assíncrona com os processdores
comuns de uso geral, e executam código dos programas Java. Com isso, reduz-se a carga
nestes processadores de uso geral, liberando ciclos de CPU para outros aplicativos. E,
chamo a atenção, os processos Java rodam no zAAP sem precisar de nenhuma modificação.
Na palestra mostrei que um dos principais obstáculos para uma maior disseminação do
mainframe é exatamente a percepção errônea que é um sistema obsoleto. E que pouca gente
usa...
Mas, alguns números nos mostram outro cenário: existem 10.000 mainframes em operação
no mundo inteiro, com uma capacidade instalada de mais de 11 milhões de MIPS. Para se
ter uma comparação em 2000 haviam 3,5 milhões de MIPS instalados e cerca de 9 milhões
em fins de 2005. Ou seja, em menos de dois anos, mais de 2 milhões de MIPS foram
instalados! Olhando-se por outro prisma, multiplicou-se por mais de três a base instalada de
MIPS em apenas sete anos.... Interessante que no ano passado, já haviam sido instalados
cerca de 1.2 milhões de MIPS nos processadores IFL, rodando Linux. Na prática, cerca de
25% dos MIPS vendidos hoje o são para Linux. Estes dados mostram de forma inequívoca
que o mainframe continua firme.
15
E para os próximos anos? O lançamento da nova linha de máquinas z10 (vejam em
http://www-03.ibm.com/systems/z/news/announcement/20080226_annc.html) e a nova
política industrial brasileira, apoiando fortemente a exportação de software, deverá
aumentar em muito a demanda por profissionais capacitados em mainframes, pelo maior
número de projetos off-shoring que deverão surgir..
16
Mainframes: qual a percepção do mercado?
Uma recente conversa com um colega meu, CIO de uma grande corporação foi
emblemática da percepção de muitos executivos quanto aos mainframes. Ele, como muitos
outros profissionais é da geração formada durante o movimento de downsizing, que
consagrou o modelo cliente-servidor e que considerava “politicamente correto” desligar o
mainframe. Nesta época, início dos anos 90, todo e qualquer projeto de consultoria
recomendava a mesma coisa: troquem os caríssimos mainframes pelos baratos servidores
distribuídos. Claro que muitas decisões de troca foram acertadas, mas muitas outras se
revelaram inadequadas. O custo de propriedade de ambientes distribuidos se mostrou muito
mais caro que se imaginava.
Há tempos fiz um pequeno exercício onde analisei informalmente uma empresa que
houvesse desligado o mainframe no início dos anos 90 e quanto gastou em TI com seu
ambinete distribuído, considerando todos os fatores que envolvem o TCO. Comparei com a
alternativa de manter do mainframe (evoluindo com novos modelos) e claro, com um
consequente uso bem mais restrito de servidores distribuídos. O ambiente 100% distribuído
consumiu em 15 anos mais dinheiro que a alternativa de se manter um ambiente mixto.
O IFL, por exemplo, surgiu em 2001 e é usado para consolidar centenas de servidores
Linux distribuídos pelos cantos da empresa em uma única máquina. O Linux no mainframe
consegue explorar todas as características únicas do hardware como sua reconhecida
confiabilidade, construída por features como processadores redundantes, elevados niveis de
deteção e correção de erros e conectividade inter-server de altissima velocidade. O nível de
disponibilidade do ambiente operacional do mainframe é muito maior que dos sistemas
distribuidos. E abrir uma máquina virtual Linux em um mainframe leva alguns minutos,
enquanto que comprar, instalar e configurar um servidor distribuido pode levar semanas.
17
O zAAP apareceu em 2004 e é orientado a rodar aplicações Java. Com este engine, as
aplicações Java, que consomem muita CPU, são executadas fora dos processadores
principais, os liberando para outras atividades. E o que é melhor, a aplicação não precisa ser
alterada para rodar no zAAP. Um resultado positivo é a redução do número de stacks de
programação TCP/IP, firewalls e interconexões físicas (e suas latências...) que são
requeridas quando os servidores de aplicação e de data bases estão em máquinas separadas.
E o zIIP, que foi lançado em 2006, volta-se para o processamento de aplicações baseadas
em banco de dados. O zIIP permite centralizar mais facilmente os dados no mainframe,
diminuindo a necessidade de se ter múltiplas cópias espalhadas por dezenas de servidores.
Com o zIIP o mainframe torna-se o data hub da empresa.
Bem, questionado quanto a citar alguns aspectos positivos da consolidação lembrei a ele:
menos pontos de falha, eliminação da latencia de rede, menos componentes de hardware e
software para gerenciar, uso mais eficiente dos recursos computacionais, melhor gestão de
cargas mixtas batch e transacionais, maior facilidade de diagnósticos e
determinação/correção de erors, recovery/rollback muito mais eficiente... O resultado? Um
melhor TCO!
Interessante que uma vez criada uma percepção, tona-se dificil mudar as idéias. Olhar o
mainframe sob outra ótica é uma mudança de paradigmas e mudar paradigmas não é facil.
Paradigma é como as pessoas vêem o mundo, ele explica o próprio mundo e o torna mais
compreensível e previsível. Mudar isso exige, antes de mais nada, quebrar percepções
arraigadas. Mas, por que não repensar o mainframe? Um estudo de TCO pode mostrar que
talvez as idéias e hábitos que tem mantido a TI da companhia nos últimos anos não sejam
tão mais válidos assim...
18
Revisitando o uso de games em mainframes
Em outubro de 2008 foi lançado o jogo online Taikodom, pela Hoplon Infotainment
(www.hoplon.com), empresa genuinamente brasileira. Esta empresa foi criada no ano de
2000, em Florianópolis e investiu cerca de 15 milhões de reais e quatro anos de árduo
trabalho para desenvolver o jogo. O Taikodom é um jogo interessantíssimo, onde os
participantes agem como se estivessem no século XXIII. Mas, o coração do jogo é uma
tecnologia chamada Bitverse, que permite criar ambientes de terceira dimensão, que podem
ser usados por exemplo, além de jogos em ações de ensino a distância. O Bitverse foi
escrito em Java, demonstrando de forma inequívoca a potencialidade desta linguagem para
jogos.
O ambiente operacional de um jogo MMOG demanda não apenas uma máquina cliente
poderosa, com boa capacidade gráfica, mas também uma largura de banda bem rápida.
Além disso, a arquitetura dos servidores também deve ser desenhada para eliminar a
latência, que é o maior inimigo dos jogos online. A latência faz com que as ações do jogo
pareçam irreais, lentas, tirando o prazer de jogar. Os servidores nos jogos MMOG tem
adicionalmente a tarefa de gerenciar a interação entre os milhares de jogadores, garantindo
inclusive que suas ações estejam corretas. Os servidores, são, portanto, cruciais para que o
jogo opere adequadamente.
19
Mas, geralmente quando se fala em games, imagina-se apenas entretenimento e lazer, para
adolescentes e “vadios”. Mas, o uso de ambientes tridimensionais está se disseminando
rápido e à medida que a geração Y se entranhe nas empresas, mais e mais veremos pressão
para termos estas tecnologias em nossas empresas. Aqui mesmo já discuti este assunto em
alguns posts como em “Virtual Worlds, Virtual Leaders”
(http://www.ibm.com/developerworks/blogs/page/ctaurion/20081008) e “Quem é esta
Geração Y”, em http://www.ibm.com/developerworks/blogs/page/ctaurion/20080921.
Games está se tornando coisa séria, de uso empresarial, para diversos usos como o
Energyvlle criado pela Chevron para divulgar sua política ecoconsciente
(http://www.economistgroup.com/our_news/press_releases/2007/the_economist_group_an
d_chevron_launch_interactive_energyville_game.html) ou America’s Army
(http://www.americasarmy.com/) criado pelo Exército americano para motivar
recrutamento. Existe inclusive um site especifico para discutir os chamados “Serious
Games” que é o Serious Games Initiative, acessado em http://www.seriousgames.org/.
Bem, e como o Brasil está posicionado na indústria de games? Entrei no site da Abragames
e descobri uma pesquisa sobre a indústria brasileira de jogos eletrônicos
(http://www.abragames.org/docs/Abragames-Pesquisa2008.pdf). Alguns dados da pesquisa:
E como se ganha dinheiro produzindo games? Por exemplo, o mercado de MMOG permite
basicamente dois modelos de receita: venda de assinaturas ou o que foi adotado npela
Hoplon, de entregar o jogo de graça, mas ofertar produtos pagos, como roupas, armas,
espaçonaves, etc. Estes produto são virtuais, mas custam dinheiro real!
20
Uma edição do IBM Journal of Research and Development dedicado ao Z10
É um processador de 64 bits, de 4,4 GHz (comparem com os 1,7 GHZ do z9) que
apresenta um desempenho bem superior ao modelo anterior (z9), não apenas pelas
melhorias na densidade dos circuitos e na velocidade do clock, mas muito devido às
mudanças em sua microarquiteura. Vale a pena ler o paper.
Mas, aproveitando a deixa, falamos que o z10 é um processador de 64 bits. Chegar até estes
64 bits foi uma longa estrada. Os primeiros mainframes, os 360, tinham registradores de 32
bits, mas apenas 24 bits eram usados como endereçamento, limitando a memória a 16MB.
Aliás, esta capacidade de memória era algo inimaginável para a época, meados da década
de 60, do século passado. Lembro que quando comecei a programar, em Assembler 360, no
início dos anos 70, trabalhava no então CSD (Centro de Serviços de Dados) da IBM, no
centro do Rio, que possuia então 3 mainframes 360/40. Dois deles com 64K e um, o
famoso “quarentão”, com 256K. Um espanto. Imaginem então 16 MB! Na prática os 360
maiores tinham 1 MB e alguns raros “monstros” chegavam a 6 MB!
Depois vieram os 370, que implementavam memória virtual. Este recurso permitia que um
programa fosse maior que a memória real. Por exemplo, o programa poderia ter 4 MB,
embora a máquina real tivesse apenas 1 MB. Mas, o endereçamento restrito a 24 bits já era,
claramente, uma limitação para o início dos anos 80. Apareceu então o 370/XA, com
endereçamento de 31 bits. Pouco depois ficava patente que mesmo estes 31 bits eram
insuficientes e surgiu a arquitetura 370/ESA, que permitia segmentação de modo a um
programa acessar mais de uma região de memória de 31 bits.
E finalmente em 2001, apareceu a série z, com 64 bits. Ou seja, foram 37 anos de evolução
para chegar aos 64 bits.
Mas, continuando a conversa sobre mainframes, é indiscutivel que mesmo com a crise
econômica, o mainframe continua vendendo bem. Só para termos idéia, nos últimos cinco
anos a capacidade instalada de mainframes, medida em MIPS (milhões de intruções por
segundo) simplesmente dobrou. E, segundo alguns dados do Gartner Group a base instalada
21
de mainframes em todo o mundo já ultrapassa 14 milhões de MIPS. Ora e ainda tem gente
que fala que o mainframe está com os dias contados.
Um ponto importante: a IBM vem investindo muito nos programas de educação para
mainframes, no mundo todo. Hoje pelo menos 500 universidades, inclusive várias no Brasil,
tem programas de educação em mainframe. O resumo da história: existem boas
oportunidades profissionais para quem conhece mainframes.
22
Mercado de offshore: mainframes no topo da lista
E que tecnologias foram mais usadas nestes serviços? Em primeiro lugar, Cobol, que gerou
554 milhões de reais ou mais de 33% de todas atividades de desenvolvimento e manutenção.
Depois, vem Java com 21% e em terceiro lugar, ABAP (SAP), com 14%.
E para que regiões do planeta estamos exportando serviços de offshore? EUA em primeiro
lugar com 80%, seguido de longe pelos países da América Latina com 8% e Europa com
7%. O relatório também apontou que a empresa que mais exportou serviços de offshore foi
a IBM.
Uma parte interessante do relatório é a que aborda quais as vantagens do Brasil em relação
a seus concorrentes mundiais. Os pontos que aparecem com maior destaque são os aspectos
geográficos (time zone e tempo de deslocamento), aspectos políticos e econômicos (regime
político estável e democrático, e estabilidade econômica), aspectos culturais (afinidade
cultural com os EUA) e boa qualidade e comprometimento dos profissionais. Por outro
lado temos também algumas desvantagens, como pouca maturidade de governança,
escassez de mão de obra qualificada, alta carga tributária, arcabouço trabalhista e carência
de profissionais com fluência em inglês.
23
Programando em mainframes e outros bichos
Saguão do aeroporto Santos Dumont, esperando mais um vôo para São Paulo. Reencontro
um amigo de longa data. Começamos a carreira profissional praticamente na mesma época,
meados dos anos 70. Conversa vai, conversa vem. E recordamos as experiências em
programação. Quase um livro de história...
Meu envolvimento com Cobol foi bem grande. Lembro que também escrevi muitos
programas Cobol para máquinas Burroughs...Cobol, apesar de ser uma linguagem da
chamada terceira geração, tem suas estruturas de dados e controle derivadas diretamente
das operações da máquina. Por exemplo, nas estruturas de dados, nos mainframes 360 e
370 se os dados usados em computações não estivessem em formato compactado, tornava
necessário que o compilador primeiro compactasse todas as variáveis envolvidas na
operação aritmética, para então fazer os computação, descompactando, no fim, o resultado.
Este processo desperdiçava os carissimos recursos dos sistemas da época: memória e
processador. Assim, durante um periodo de tempo, já então na Shell, uma das minhas
tarefas era analisar o código fonte dos programas Cobol e desenhar ações de otimização.
24
controle para alguma posição, nem sempre facilmente visualizada, dentro do código e fazia
com que a tarefa de depuração do programa se tornasse algo terrivel. Nos anos 70 apareceu
um grande debate sobre esta questão e um pesquisador/professor chamado Edsger W.
Dijkstra escreveu um paper “GOTO Statement Considered Harmful”, onde dizia “the
quality of programmers is a decreasing function of the desnsity of GOTO statements in the
programs they produce”. Surgiu a programação estruturada e lembro que, adorando a idéia,
dei várias palestras e cursos sobre o tema. Foi um debate bem interessante.
Nesta época ainda tentei escrever programas para uma linguagem criada pela IBM, a PL/1.
Esta linguagem não decolou. Muito complexa e inchada. Mas, foi divertido escrever alguns
poucos programas em PL/1.
Muitos anos depois surgiram linguagens que ficavam muito mais distantes das máquinas
físicas, explorando o conceito de máquinas virtuais. Java é um exemplo tipico. O programa
Java roda dentro de uma JVM (Java virtual machine) que é um ambiente próprio. O
compilador Java não gera código de máquina, mas sim um código especifico para esta
máquina virtual. Caso seja necessario fazer com que o programa rode em outros
computadores, simplesmente escreve-se uma JVM para este computador. O código gerado
pelo compilador continua sendo o mesmo. Este conceito foi depois adotado pela Microsoft
em sua linguagem C#. Escrevi vários programas em Java. É uma das linguagens que gosto
mais. Aliás, existem mais de 200 linguagens de programação que geram código para
JVM....vejam em http://www.is-research.de/info/vmlanguages /.
E vieram as scripting languages. Para mim a primeira scripting language foi o JCL dos
sistemas operacionais de mainframe. Mas, usei bastante uma das primeiras destas
linguagens, a Rexx, que surgiu no VM/370. Depois, já com Unix usei o sh (Shell Script). E,
com Web me arrisquei a escrever algumas linhas de código em PHP e Python.
Nos anos 80 e 90 me interessei muito pela programação orientada objetos. Ministrei vários
cursos e foi a época em que aprendi a escrever programas em C++.
Juntando tudo, acabei brincando com várias linguagens...tempos bons! Ah, parece ser
muito...mas existem centenas e centenas de linguagens de programação. Uma lista delas
aparece em http://sk.nvg.org/lang/lang.html.
25
Autor
Cezar Taurion
26