Ice是“一种现代的面向对象中间件。为上层应用提供高效的网络通信平台。它提供了跨平台 ,跨语言的解决方案。简单的示意图如下:
相关的名词:
1、 Ice 对象是一种概念性的实体,是服务器的抽象化。Ice 对象具有以下特征:
(1)Ice 对象是本地或远地的地址空间中、能响应客户请求的实体。
(2)一个 Ice 对象可在单个或多个服务器中实例化。每个 Ice 对象都有一个唯一的对象标识 (object identity)
(3)每个Ice对象都有一个或多个接口。一个接口是一个对象所支持的一系列有名称的操作。客户通过调用操作来发出请求。
2、 Servants
servant其实是服务端实质的动作代码。一个 servant 提供一个或多个 Ice 对象的实质内容 (或体现这些对象, incarnate)。实际上,servant 就是服务器开发者编写的类的实例,这些类作为一个或多个 Ice 对象的 servant、向服务器端 run time 进行注册。类的方法对应于 Ice 对象的接口上的操作,并且提供这些操作的行为。
3、 代理
代理 (Proxies)是对象的本地大使,供客户端调用。要想与某个 Ice 对象联系,客户必须持有这个对象的代理。代理是客户的地址空间中的一种制品 (artifact);对客户而言,代理就是 Ice 对象的代表 (该对象可能在远地)。一个代理充当的是一个 Ice 对象的本地大使:当客户调用代理上的操作时, Ice run time 会:1. 定位 Ice 对象
2. 如果 Ice 对象的服务器没有运行,就激活它
3. 在服务器中激活 Ice 对象
4. 把所有 in 参数传送给 Ice 对象
5. 等待操作完成
6. 把所有 out 参数及返回值返回给客户 (或在发生错误的情况下抛出异常)
代理封装了完成这一系列步骤所必需的全部信息。
4、 通信器
通信器创造适配器。
5、 对象适配器 (object adapter)
是专用于服务器端的 Ice API 的一部分:只有服务器才使用对象适配器。对象适配器把来自客户的请求映射到编程语言对象上的特定方法。换句话说,对象适配器会跟踪在内存中,都有哪些 servant,其对象标识又是什么。