Internet Communications Engine(ICE)学习笔记

本笔记参考资料为ICE中文手册及众多网络资源,所涉侵权请自行联系本人。

        Ice是一种面向对象的中间件平台。从根本上说,这意味着Ice为构建面向对象的客户-服务器应用提供了工具、API和库支持。Ice应用适合在异种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不同的操作系统和机器架构上,并且可以使用多种网络技术进行通信。无论部署环境如何,这些应用的源码都是可移植的。

客户与服务器 (Clients and Servers)

        客户与服务器这两个术语不是对应用的特定组成部分的严格指称,而是表示在某个请求从发生到结束期间,应用的某些部分所承担的角色:

•客户是主动的实体。它们向服务器发出服务请求。

•服务器是被动的实体。它们提供服务,响应客户请求。

        在从不发出请求、而只是响应请求的意义上,许多服务器常常不是“纯粹的”服务器:它们常常充当某些客户的服务器,但为了完成它们的客户的请求,它们又会充当另外的服务器的客户。与此类似,在只从某个对象那里请求服务的意义上,客户常常也不是“纯粹的”客户:它们常常是客户-服务器混合物。例如,客户可以在服务器上启动一个长时间运行的操作,在启动该操作时,客户可以向服务器提供回调对象(callback object),供服务器用于在操作完成时向客户发出通知。在这种情况下,客户在启动操作时充当客户,而在接收操作完成通知时充当服务器。这样的角色反转在许多系统中都很常见,所以,许多客户-服务器系统常常可以被更准确地描述为对等(peer-to-peer)系统。

Ice对象 (Ice ObjectsIce对象是一种概念性的实体 (或称抽象) 。Ice对象具有以下特征:

•Ice对象是本地或远地的地址空间中、能响应客户请求的实体。

•一个Ice对象可在单个或多个服务器中实例化(后者是冗余方式) 。如果某个对象同时有多个实例,它仍是一个Ice对象。

•每个Ice对象都有一个或多个接口。 一个接口是一个对象所支持的一系列有名称的操作。客户通过调用操作来发出请求。

•一个操作有零个或更多参数,以及一个返回值。参数和返回值具有明确的类型。参数是有名称的,并且有方向:in参数由客户初始化,并传给服务器;out参数由服务器初始化,并传给客户 (返回值只是一种特殊的out参数)。

•一个Ice对象具有一个特殊的接口,称为它的主接口。此外,Ice对象还可以提供零个或更多其他接口,称为facets(面) 。客户可以在某个对象的各个facets之间进行挑选,选出它们想要使用的接口。

•每个Ice对象都有一个唯一的对象标识(object identity) 。对象标识是用于把一个对象与其他所有对象区别开来的标识值。Ice对象模型假定对象标识是全局唯一的,也就是说,在一个Ice通信域中,不会有两个对象具有相同的对象标识。

你可能感兴趣的:(Internet Communications Engine(ICE)学习笔记)