{ ice } 初识ice

ICE是什么

首先澄清下ICE不适真正的“冰”,他是“Internet Communication Engine"的缩写,是zeroC公司的力作,也是前CORBA专家开发的开源的、面向对象的、分布式通信协议中间件。

ICE能做什么

  • 跨语言通信,目前支持C、C++、.NET、.Java、Ruby、Python、JS、VB
  • 高性能RPC调用,主要产品有skype
  • 文件分发(IcePatch2)
  • 服务管理(IceBox)
  • 注册管理(Registry)
  • 负载均衡(IceGrid)
  • 版本控制(IceFacet)
  • 持久化 (freeze)

ICE调用模式(TCP、UDP、SSL)

  • Oneway
  • Twoway
  • Datagram
  • BatchOneway
  • BatchDatagram

ICE是如何工作的

ICE提供了面向对象的客户-服务的API、工具和库支持,要与ICE持有的对象通信,必须持有对象的代理,其实就是对象的实例。ICE在运行时会定位到这个对象,随后寻找和激活她。再把IN参数传递给他,再通过OUT参数获取返回结果。

代理:直接代理 、 间接代理

  • 直接代理
    本身保存了对象的标识和服务器的运行地址

  • 间接代理
    本身保存了对象的标识和对象适配器名

    间接代理没有保存对象的寻址信息,为了能正确定位服务器,客户端会用代理内部的对象适配器名,把它传给某个定位器服务,定位器会把适配器名当作关键字,在含有服务器地址的表中寻找,之后把服务器的地址返回给客户端,客户端(RunTime)现在就知道了如何联系服务器,像平常一样分发(dispatch)客户端的请求。
    ICE保证在任何网络或操作系统下,在RunTIme获取服务器成功调用一次,如果调用失败,ICE会尝试重试;重试不成功会提示客户端失败。
    ICE提供同步和异步调用

你可能感兴趣的:({ ice } 初识ice)