跳转到内容

ICE (中间件)

维基百科,自由的百科全书
Internet Communications Engine
开发者ZeroC
当前版本3.4.2(2011年9月7日,​13年前​(2011-09-07
预览版本3.5b(2011年5月15日,​13年前​(2011-05-15
源代码库 编辑维基数据链接
类型远程过程调用框架
许可协议GPL / 私有
网站www.zeroc.com

Internet Communications Engine,或Ice,是ZeroC开发的一个面向对象中间件平台。它提供了面向对象的远程过程调用网格计算发布/订阅功能,并有基于GPL双许可协议和一个私有许可协议。它支持LinuxSolarisWindowsMac OS X等最主要的操作系统,和C++Java.NET语言(如C#Visual Basic)、Objective-CPythonPHPRuby等语言[1]。Ice运行时的一个轻量变体叫做Ice-e,[2]可以运行在移动电话中。如它的名字所表明,该中间件可以被用于应用程序,而不需要使用HTTP协议,并且有能力穿越防火墙(这一点不同于当时的其它中间件)。

历史

ZeroC于2002年成立于佛罗里达[3]Ice的设计受到了CORBA的影响,并且实际上也是由几位有影响力的CORBA开发者创立的,包括Michi Henning。不过,按照ZeroC的说法,它比CORBA更小更简洁,因为它是由一个富有经验的开发者小团体设计的,而不是难产于委员会设计[4]

2004年,有报道称,一家名为Mutable Realms的公司在一个叫做“Wish”的游戏中使用了Ice。[5]2008年,有报道称,大熊湖太阳天文台从2005年起就在使用该软件。[6]某些版本作为开放显微镜环境的一部分被发布到了GitHub,直到2011年的3.4.2版本。[7]

组件

Ice的组件包括面向对象的远程对象调用、响应(replication还是复制?)、网格计算、故障转移、负载均衡、防火墙穿越和发布-订阅服务。为了访问这些服务,应用程序被连接到一个存根库或集合,该存根库或集合产生于一个语言无关的叫做slice的类IDL语法。

参见ICE示意图(英文)

IceStorm

是一个面向对象的发布和订阅框架,它还支持联盟(federation)和服务质量(quality-of-service)。不同于其它的发布-订阅框架如TIBCO软件公司RendezvousSmartSockets,它的消息内容是由定义良好的类的对象组成的,而不是由结构化文本组成的。

IceGrid

是一套框架,它提供面向对象的负载均衡故障转移、对象发现和注册服务。

IcePatch

协助部署基于ICE的软件。例如,希望部署新功能和/或补丁到多台服务器的用户可以使用IcePatch。

Glacier

是一个基于代理的能够穿越防火墙的服务,因此使得ICE成为一个因特网通讯引擎。

IceBox

是一个面向服务架构的容器,它包含可执行的由.dll或.so库实现的服务。这是一个更轻量的选择,可以对每个服务构建整个可执行服务。 2

Slice

Ice规范语言(Specification Language for Ice)是一个Zeroc私有的文件格式,程序员按照它来编辑独立于计算机语言的声明和类、接口、结构和枚举的定义。Slice定义文件被用来作为存根生成过程的输入。存根依次被连接到应用程序和服务器,它们应该基于由slice声明/定义的接口和类进行互相通讯。

不同于CORBA,这里的类和接口还支持继承和抽象类。此外,slice还在宏和属性的表单中提供配置选项来管理代码生成过程。一个例子是,指令可以生成STL模板list<double>,而不是默认地生成STL模板vector<double>

参见

注释

  1. ^ 语言支持(英文). [2009-08-03]. (原始内容存档于2009-07-20). 
  2. ^ Ice-E概述(英文). [2009-08-03]. (原始内容存档于2009-07-26). 
  3. ^ Zeroc公司. 公司概况(英文). Manta. [2013-07-17]. (原始内容存档于2019-11-29). 
  4. ^ Ice和CORBA的区别(英文). [2013-01-17]. (原始内容存档于2013-03-18). 
  5. ^ Michi Henning(英文). 大量游戏者中间件. 队列 (ACM). 2004-02-01 [2013-07-17]. (原始内容存档于2013-10-04). 
  6. ^ Sergij Shumko. Ice中间件应用于新太阳望远镜的望远镜控制系统 (PDF). 天文数据分析软件和系统XVII,ASP会议丛书,卷XXX,2008. 加拿大魁北克市. 2008-11-02 [2013-07-17]. (原始内容 (PDF)存档于2012-08-25). 
  7. ^ ome/zeroc-ice. 源码下载. GitHub. [2013-07-17]. (原始内容存档于2018-06-10). 

外部链接