ICE e Ruby

Atualmente investigo algumas tecnologias de componentes de software. Uma das mais tradicionais especificações nesse sentido é o CORBA Component Model definido pela versão 3 de CORBA. Veja que meu interesse não é em soluções direcionadas a uma linguagem específica como o EJB ou a uma plataforma apenas como o .NET (na parte que evoluiu do DCOM, mas atualmente é dependente dos produtos da Microsoft).

Mas se usar CORBA já era complexo para o desenvolvedor de uma aplicação, usar CCM então nem se fala. Por isso existe vários esforços no sentido de definir um sistema de componentes mais realista e útil aos programadores. Nessa linha os projetos Fractal e o middleware ProActive são esforços muito importantes no sentido de fornecer uma infra-estrutura por componentes de software com bom desempenho para computação paralela e distribuída. Pena que a maior parte do suporte atual ProActive está apenas para a linguagem Java.

De toda forma, CORBA tinha tudo para dar certo no caminho de componentes a não ser por algumas decisões erradas em projeto que o tornam difícil de usar e pouco eficiente em algumas situações. De forma a tornar mais concreta essa discussão, uma boa pedida para repensar em quais pecados foram cometidos na especificação da OMG é olhar o middleware Ice. Uma das coisas que gostei (além de todos os prós comentados pelos desenvolvedores) é que tem porte para a linguagem Ruby, pela qual ando reforçando minha paixão nos últimos tempos depois do meu projeto final. smile

Para os usuário ruby de plantão vale a pena tentar usar o Ice quando for necessário:

  • usar uma plataforma de computação distribuída
  • interoperar entre linguagens
  • interoperar entre plataformas
  • usar serviços como: replicação automática, travessia de firewall, deployment em escala de grade e segurança
  • manter requisitos de bom desempenho

Este último ponto é uma promessa do Ice, mas que não cheguei a comprovar ainda. smile Mas o importante é que um dos princípios do Ice é "Let’s build a middleware platform that is as powerful as CORBA, without making all of CORBA’s mistakes", que eu traduzo como "Construir um middleware que é tão poderoso quanto CORBA, sem cometer todas as falhas da especificação de CORBA".

Recentemente foi lançada uma versão 4.0 do CCM conforme: http://www.omg.org/technology/documents/formal/components.htm. Contudo não tive tempo de ver o que mudou smile

Enfim.. finalmente poderei aprender sobre uma plataforma de computação distribuída optando pela minha linguagem predileta ! uhuhuhuhuhuhu !!

Ahh.. se alguém se perguntou porquê não usar web services ala SOAP então leia:

SOAP significa usar bin-to-ascii e ascii-to-bin e isso se traduz numa enorme restrição de desempenho. Pode até ser uma boa solução caso você possa se dar ao luxo de pensar apenas na "business logic". smile

Tags:
Computação Distribuída1Add my vote for this tag Ruby1Add my vote for this tag Software Livre1Add my vote for this tag create new tag


Creative Commons License Esta obra está licenciada sob uma Licença Creative Commons.