(3)ICE服务员起到的作用

为什么叫服务员

Ice 对象是一种具有类型、标识、寻址信息的概念性实体。由此话可以得出的结论是Ice对象相当于通信协议,只是定义了一个通信的规范。也就是规定好了客户想要的服务(函数调用),享受服务时需要提供的资料信息(函数参数),以及最终的服务结果(函数参数和返回值)。但是至于服务具体是怎么完成的,Ice对象是不负责的。

为了完成客户服务,服务端必须要对请求进行处理。换句话说,就是每个Ice对象都要有相应的负责人,这个负责人当然可以同时负责一个或者多个Ice对象。所谓负责Ice对象,无非就是满足Ice对象的需求。Ice对象的需求其实只有一个,那就是Ice对象里面的操作,所以这些负责人最终的工作就是实现Ice对象里面的操作。这些负责人在Ice框架中有个专门的术语,叫做Ice服务员(servant)。

一个Ice服务源可以只服务一个Ice 对象,也可以同时服务若干Ice 对象。如果是前一种情况, Ice服务员所服务的Ice 对象的标识在这个Ice服务员中是隐含的。如果是后一种情况,在每次收到请求时, Ice服务员也会收到Ice 对象的标识。这样, Ice服务员可以在处理该请求期间,决定服务于哪一个Ice对象。

反过来,一个Ice 对象也可以拥有多个Ice服务员。例如,我们可以为某个Ice 对象创建一个代理,这个对象有两个不同的地址,分别在两台机器上。在这种情况下,我们将拥有两个服务器,每个服务器都有一个Ice服务员,但两个Ice服务员服务的是同一个Ice 对象。
当客户调用这样的Ice 对象上的操作时,客户端的Ice底层环境只把请求发给一个服务器。换句话说,使用服务于同一个Ice 对象的多个Ice服务员,你可以构建冗余的系统,来实现容灾。
客户端Ice底层环境在发送请求时,会试着把请求发给其中一个服务器。如果失败,就把请求发给第二个服务器依次类推。只有在所有尝试都失败的情况下,错误才会上报给客户端应用。

通信框架图

对象有了,代理也有了,服务员也有了,Ice完成通信所需要的基本组件都已经齐了。
这里写图片描述

servant在Ice中的实现

servant在Ice中又叫负责类,负责一个或多个Ice 对象,类的方法对应于Ice 对象的接口上的操作,并且提供这些操作的行为。
负责类的命名方式一般是在Ice对象类型后面加大写字母“I”。接着在服务器端对负责类进行注册,也就是把这个负责类和负责的Ice对象建立联系。
维护这个联系信息的东西叫做适配器,也就是下个章节要讲的adapter。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值