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


ComUnidade WirelessBrasil                     BLOCO