(5)ICE通信器是干嘛的

作用

在运行期间,ice框架为了完全隔绝通信层对于客户业务服务的影响,将通信层用到的所有资源都与客户业务服务用到的资源完全隔离开来了。为了完成这个目标,写代码进行封装的时候,我们一般封装一个资源管理类来对通信层所用的资源进行管理,ice则用communicator来实现这个功能。
另一方面,框架为了完全独立,一般都有个全局的入口点,类似于程序的入口main函数。ice框架则用Ice::Communicator 来代表运行期间框架的主进入点。

管理的资源

  1. 客户端线程池
    客户端线程池会确保,在客户端,至少有一个线程可用于接收对未完成请求的答复。这确保了不会发生死锁。例如,如果服务器在操作实现中回调客户,即使客户正在等待同一服务器答复它的请求,客户端接收者线程也能处理来自服务器的请求。客户端线程池还被用于异步方法调用(AMI),用以避免在回调中发生死锁。
  2. 服务器端线程池
    这个线程池里面的线程负责接受到来的连接,并处理来自客户的请求。
  3. 配置属性
    Ice run time 的各个方面可以通过属性进行配置。每个通信器都有自己的配置属性集。
  4. 对象工厂
    为了实例化从已知基类派生的类,通信器维护有一组对象工厂,能够替Ice run time 对类进行实例化。
  5. 一个日志记录器对象
    日志记录器对象实现了Ice::Logger 接口,并负责确定Ice run time产生的日志消息的处理方式。
  6. 一个统计对象
    统计对象实现了Ice::Stats 接口,通信器会把通信流量(发送和接收字节数)告知该对象。
  7. 一个缺省路由器
    路由器实现了Ice::Router 接口。Gl

你可能感兴趣的:(ice眼中的分布式系统,ice)