最近由于项目的需求,需要考察一些中间件,
ICE,
ACE和
Globus都是考察的对象。ICE是由几个天才,出于对CORBA过于繁琐的厌倦,而重新开发出来的一套替代品,需要指出的是,CORBA是由上百个企业会员的组织OMG制订出的规范,比较官僚,有很多实现,商业的有曾经的IONA,免费的有MICO,ACE TAO等等,繁杂的CORBA曾经使很多人望而却步,记得当初自己看那本《CORBA C++高级编程》也是看了两三遍才知道个大概,孰不知该书的作者便是ICE的设计者之一,可想而知,ICE从一诞生开始便是为取代CORBA而来,诞生几年来,已经得到广泛认同,看来,这又一次证明了技术的前进是由个别天才不断向前推进的,简洁就是美,这个关系有些象EJB和Spring。ACE则是一套底层的通信封装机制,单纯的开发网络通信程序,是可以利用它的健壮设计的,ACE应当是比ICE底层的概念,前者可以比喻成为比socket更好的SDK,后者则是一个分布式对象模型。开发一个网络应用,ICE要相对容易的多,因为ACE太追求完美了,学习曲线是很陡峭的。GLOBUS则是一个网格的标准实现中间件。很久以前研究过网格,技术界往往会这样,一旦出来一个新的概念,在某些方面对以往做了提升,技术界人士就会很容易的狂热升级,从而制造一个又一个泡沫,网格也是如此。翻开五年前的《计算机世界》报,还曾有几个专版介绍网格,认为它是继Web之后的第三次互联网浪潮,现今看来这已成为笑柄,倒是满足了用户需求的Web 2.0成为了很热的话题——本质上,这依然是个泡沫,只不过跟网格的区别在于,Web 2.0是以用户为中心,增加用户体验度而从互联网中不断出现的新应用中总结提炼出来的概念,即便将来这个泡沫破灭,但对用户体验度改善的这种趋势是无法逆转的;而网格就不同了,跟CORBA类似,这也是学术界(CORBA是工业界)想当然冒出来的概念,它的愿景是好的,但实际使用上,却太过于超前。几年前研究GLOBUS 2.0的源码的时候,发现这实质上只是对以前就有的集群计算的一个扩展,好在这两年,随着IBM等企业的界入,网格也开始向务实的方向发展,更多的定位于企业级服务,并逐渐和SOA相融合。需要指出的是,ICE的最新版本3.0有了网格的扩展,但这种扩展,只是为了更好的扩充分布式计算资源的发现和调度,从而更好的提供企业计算能力。
我考察这些东东的目的,是因为自己平台遇到了一些问题,需要进行扩展。该平台的运转如下:服务器提供基于web提供计算服务,但由于计算任务繁重且计算线程非可重入,导致我不得不先采用同步方式确保安全服务,在未来,随着机器的增加需要进行扩充,现有的架构虽短期内可满足简单扩充的需要但并不具备好的负载均衡和动态扩充能力,因此需要改进。初步研究下来决定采用ICE架构,好的学习曲线,平台语言无关性和简洁的设计是我决定采用的关键,以后搭建完毕的时候再来这里写一些相关的细节。