José Ribamar Smolka Ramos
Telecomunicações
Artigos e Mensagens
ComUnidade
WirelessBrasil
Março 2011 Índice Geral
25/03/11
• Eu vejo o futuro repetir o passado, eu vejo um museu de grandes novidades
de J. R. Smolka <smolka@terra.com.br>
para wirelessbr@yahoogrupos.com.br, Celld-group@yahoogrupos.com.br
data 20 de março
assunto Eu vejo o futuro repetir o passado, eu vejo um museu de grandes
novidades
Oi gente,
Hoje eu me bati, por acaso, com um pedido de explicação no LinkedIn sobre o que
era, afinal, essa tal de cloud computing. E refletindo sobre que reposta dar a
esta pergunta eu fui assaltado pela lembrança destes versos de
O Tempo não Para,
(pedindo licença ao Cazuza).
Aqui está a resposta que eu dei (não estranhem, porque no LinkedIn eu
geralmente me expresso em inglês).
Excuse me if I'm a little blunt with this. Anyone who (like
me) followed the discussions about distributed systems back in the 90's must
feel all this "cloudy" hoopla little more than marketing repackaging of an old
topic.
Everybody comfy with the 3-tier model for applications architecture, right?
Browsers and web servers make the access tier, applications servers embody the (guess
what) application processing tier and database servers carry the burden of the
data access tier.
Usually we think of servers (web, application and database) all hosted at some
datacenter and LAN-interconnected, right? What about scattering those
application pieces all over? Even allocating processing capacity as a service?
That's when you start to go cloudy.
Things can get even more interesting when you buy access to entire applications
off-the-shelf and you start using software as a service (SAAS).
And things go on and on from here...
Vou aproveitar para comentar com vocês mais alguns exemplos de como velhas
idéias podem sofrer repackaging e ser apresentadas como inovação, de acordo com
a versão cínica para o aforismo de Lavoisier: na natureza nada se cria, tudo se
copia.
Programação orientada a objeto
Toda a história da programação de computadores pode ser resumida em uma grande
busca por abstrações. Linguagens Assembly são mais abstratas que linguagens de
máquina, linguagens procedurais de 3a geração (ex.: FORTRAN e COBOL) são mais
abstratas que linguagens assembly, e assim por diante. E no topo desta cadeia de
abstração estão, hoje em dia, as linguagens de programação baseadas no paradigma
de OO (object orientation).
Mas será que a alegação dos proponentes e defensores da OO que ela representa
uma quebra de paradigma em relação à maneira anterior de programar faz sentido?
Uma observação atenta das boas práticas de programação utilizadas na era pré-OO
(principalmente programação estruturada e modularização) mostram que seria mais
correto chamar OO de um novo formalismo para uma tendência que já existia.
Portanto não temos uma verdadeira quebra de paradigma, mas um caso de renomear
algo já existente e apresentá-lo como novo.
Lá pelos idos de 1982 eu já via programadores COBOL (aqui em Salvador - BA, não
foi no sul-maravilha não!) estruturando seus programas com o uso de bilbiotecas
de módulos estanques que encapsulavam também as estruturas de dados necessárias
à sua operação, e podiam ter seus serviços específicos invocados através de
entry points (terei ouvido alguém falar em encapsulamento, métodos e
polimorfismo?). Enfim... daí para uma visão formal de OO foi muito mais uma
questão de incluir restrições sintáticas e semânticas nos compiladores do que
propriamente quebrar paradigmas de programação.
Virtualização
Quem tenha experiência com sistemas operacionais deve conhecer, mesmo que
superficialmente, os algoritmos de time sharing (para repartição do tempo de
processador entre os processos a executar) e demand paging (suporte da abstração
de memória virtual utilizada pelos processos a executar). Não vou entrar em
detalhes sobre estes algoritmos aqui (em breve devo publicar artigos sobre eles
na série Sistemas de Computação que venho publicando no
meu blog), mas o
interessante é que os mesmos princípios que permitem que um processo em execução
tenha a visão abstrata de possuir controle total sobre o processador e a memória
da máquina podem ser extrapolados de tal forma que um sistema operacional
inteiro pode ser executado dentro de um desses ambientes virtuais.
Em 1962 a IBM lançou, para uso com os computadores da famíia /360 mod. 67 em
diante, o sistema operacional CP/67 que serviu de base para o lançamento do VM/370
em 1972. Embora o VM tenha sido criado como ferramenta de apoio à migração entre
outros sistemas operacionais da IBM ele acabou adquirindo uma vida própria e
sendo adotado coo ferramenta básica de produtividade em muitos data centers. Eu,
particularmente, trabalhei muito com o VM, e gostei!
Além do VM, que é uma solução de virtualização totalmente baseada em software, a
IBM também lançou uma ferramenta de apoio à virtualização baseada em microcódigo,
o PR/SM (Processor Resource/System Manager) a partir de 1985 nas máquinas
da série 3090-E. Neste caso cada máquina virtual configurada é chamada de LPAR (Logical
Partition).
A propósito, tanto o VM (agora denominado z/VM) quanto o PR/SM continuam
disponíveis até hoje nas máquinas IBM zSeries.
Pois é gente... Continuo pensando no Cazuza. O tempo não para...
[ ]'s
J. R. Smolka
--------------------------------
Comentário de Rubens
JS:
Hoje eu me bati, por acaso, com um pedido de explicação
no LinkedIn sobre o que era, afinal, essa tal de cloud computing. (...)
Anyone who (like me) followed the discussions about distributed systems
back in the 90's must feel all this "cloudy" hoopla little more than
marketing repackaging of an old topic.
É exatamente o que eu penso, desde quando comecei a ouvir pela primeira vez esse
conceito de "cloud computing"... É apenas um retorno repaginado ao velho
processamento/armazenamento centralizados, mas com um nome novo. :-)
É preciso reconhecer que tem a vantagem de entreter a imprensa, que adora falar
muito de "coisas novas".
Excelente seu texto!
[ ] Rubens