重新认识ICE【概览】

终于知道ICE是啥意思啦,呵呵!本篇主要是对ICE的一个概览,让我们能够比较全面的了解它主要是项什么技术?主要应用场景?以及主要核心组件等;后续还会继续推出一些实战的心得与笔记;

ICE【Internet Communications Engine】是ZeroC公司的主打、核心产品,在ICE的基础上,还有很多的衍生产品,比如Ice-E【Embedded Ice】、ICE Touch、ICE for Silverlight等;ICE是一种现代的面向对象中间件,可用于替代像CORBA或COM/DCOM/COM+这样的中间件,目前已经支持的语言包括 C++, .NET, Java, Python, Ruby, PHP。他不止易于学习,还为各种有着苛刻的技术要求的应用提供了强大的网络基础设施;在像SOAP或XML-RPC这样的技术太慢、或是没有提供足够的可伸缩性或安全性之处,正是使用Ice最合适的业务场景。依据ZeroC的评测,和CORBA参考实现中性能最好的TAO【The ACM(The Adaptive Communication Environment) ORB】对比,性能提升非常明显,具体可参见:http://www.zeroc.com/performance/index.html;

作为一个高性能的互联网通信平台,ICE包含了很多分层的服务和插件【Plugins】,并且简单、高效和强大。ICE主要由以下几部分组成:

  • Slice
    ICE的规范语言,跟CORBA的IDL【Interface Definition Language】等价的东西。Slice建立了客户端和服务器端共同遵守的契约:接口。Slice也用来描述对象持久数据。
  • Slice Compilers
    Slice的规范语言可以影射成多种编程语言。目前ICE支持C++,.Net,Java,Python,Ruby,PHP的语言映射。Ice的客户端和服务器端协同工作,而不会知道分别实现的是何种编程语言。前面提到的语言映射都是指服务端,对于客户端,Ice支持的语言更多,比如还支持Silverlight、iPhone;
  • Ice
    Ice的核心库。在众多的特性当中,Ice核心库通过一个高效的协议(包含TCP/UDP层上协议压缩)来管理所有的通信任务,为多线程服务器提供了一个灵活的线程池,并且有特别的功能来支持上百万对象的可扩展性。
  • IceUtil
    一些常用的功能函数集。例如Unicode处理和多线程编程,是用C++写成。
  • IceBox
    一个专用于ICE应用的应用服务器。ICEBox可以方便地运行和管理动态加载、共享库或java类的形式Ice的服务。
  • IceGrid
    一个针对于高级网格计划的成熟服务激活和部署工具。以前的版本是IcePack,它能大大简化在异构网络之间部署应用的复杂性。只要简单的编写XML格式的一个部署描述文件,IcePack就能自动处理剩下的工作。最新的IceGrid在IcePack的基础上增加了在分布式环境下的部署功能;
  • Freeze
    Freeze提供了Ice Servants对象的自动持久性。通过几行代码,一个应用就可以生成一个高度可扩展的逐出器(evictor)来高效地管理持久对象。
  • FreezeScript
    在大的软件项目里,持久对象的数据类型改变很常见。为了最小化这些变化的影响,FreezeScript提供了相应的工具来检查和移植Freeze生成的数据库。这些工具支持XML格式的配置脚本,易于使用。
  • IceSSL
    用于Ice核心的动态的SSL传输插件。提供了认证、加密和消息完整性,使用工业标准的SSL协议来实现。
  • Glacier
    面向对象中间件平台的一个最大的挑战是安全性和防火墙。Glacier是Ice的防火墙解决方案,它大大简化了安全程序的部署。Glacier认证和过滤客户的请求并允许服务器通过安全的方式回调客户端对象。结合IceSSL的使用,Glacier提供了强大的安全解决方案,即安全,又易于配置管理。目前最新的版本是Glacier2。
  • IceStorm
    一个支持联盟的消息服务。和大多数的其他消息和事件服务相比,IceStorm支持有类型的事件,这意味着通过联盟广播一个消息和调用一个接口上的一个方法一样容易。
  • IcePatch
    一个软件修补和分发的服务。为确保运行的软件是最新的版本,要经常更新软件,这是一件乏味的工作。IcePatch自动更新在某个目录层次下的文件。只有需要更新的文件会下作到客户端,为了快速的下载更新,IcePatch使用的高效的压缩算法。目前最新的版本是IcePatch2。

前面我们提到ICE可以用来完全替代CORBA,曾经的一位CORBA大师Frank  Pilhofer这样评价过:ICE可以看成是Millennium  CORBA,扔掉了在其生命期里累积的包袱,但却保留了CORBA的全部好特性,增加了一些特性,并以一种更加明晰而整洁的方式设计它们;由于对CORBA知之甚少,所以对于ICE和CORBA/SOAP之间真正的区别体会并不多,有兴趣的同学可以参考如下的链接:
ICE vs CORBA:http://www.zeroc.com/iceVsCorba.html
ICE vs SOAP:http://www.zeroc.com/iceVsSoap.html

你可能感兴趣的:(多线程,中间件,服务器,SOAP,语言,silverlight)