MemoryGarden's Blog

努力 -----------大能猫

C++博客 首页 新随笔 联系 聚合 管理
  118 Posts :: 11 Stories :: 20 Comments :: 0 Trackbacks
Servants
 Ice 对象是一种具有类型、标识,以及寻址信息
的概念性实体。但客户请求最终必须到达具体的服务器端的处理实体,由
这样的实体提供操作调用(operation invocation)的行为。换句话说,客户
请求最后必须到达服务器,在其内部执行代码,而这些代码用特定的编程
语言编写,并在特定的处理器上执行。
在服务器端提供操作调用的行为的制品叫作servant。一个servant 提供
一个或多个Ice 对象的实质内容(或体现这些对象, incarnate)。实际上,
servant 就是服务器开发者编写的类的实例,这些类作为一个或多个Ice 对
象的servant、向服务器端run time 进行注册。类的方法对应于Ice 对象的接
口上的操作,并且提供这些操作的行为。
一个servant 可以只体现一个Ice 对象,也可以同时体现若干Ice 对象。
如果是前一种情况, servant 所体现的Ice 对象的标识在这个servant 中是隐
含的。如果是后一种情况,在每次收到请求时, servant 也会收到Ice 对象
的标识,这样, servant 可以决定在处理该请求期间,体现哪一个对象。
反过来,一个Ice 对象也可以拥有多个servant。例如,我们可以为某个
Ice 对象创建一个代理,这个对象有两个不同的地址,分别在两台机器上。
在这种情况下,我们将拥有两个服务器,每个服务器都有一个servant,但
两个servant 体现的是同一个Ice 对象。当客户调用这样的Ice 对象上的操
作时,客户端run time 只把请求发给一个服务器。换句话说,使用体现同
一个Ice 对象的多个servant,你可以构建冗余的系统:客户端run time 试着
把请求发给一个服务器,如果失败,就把请求发给第二个服务器。只有在
第二次尝试也失败的情况下,错误才会报告给客户端应用代码。
posted on 2009-12-17 12:03 memorygarden 阅读(348) 评论(0)  编辑 收藏 引用 所属分类: ICE

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理