Zeroc Ice概念和原理

Zeroc Ice概念和原理

  • Ice Object
  • Object Adapter
  • Transport Endpoint
  • Ice Proxy
  • 客户端调用某个接口代码库(Ice Runtime)具体工作

Ice Object

Ice Object是一个可以对客户端请求进行应答的对象可位于本地地址空间也可位于远程地址空间
Ice Object使用全局唯一的Object Identity 对象标识符区别其他类型对象
Ice Object拥有一个或者多个接口,一个是主接口其余成为Facet
Ice Object在服务端具体化为一个Servant实例(用某种语言实现Slice接口并新建的对象就是Servant)
Ice Object与Servant之间使用Object Adapter进行关联

Object Adapter

提供一个或者多个通信端点,客户端通过某个通信端点连接到一个具体的Ice Object
绑定一个或者多个Servant,每个servant和Ice Object映射
客户端针对某个Ice Object的请求派发到映射的Servant上,完成整个请求流程的处理过程包括底层通信
协助生命周期管理消除Ice Object 和Servant启动和销毁过程中可能存在的竞争问题

Transport Endpoint

通信端点由服务使用的通信协议,IP地址,端口等组成
例如:default -h 192.168.1.13 -p 1000
表明采用的是tcp协议 绑定在192.168.1.13的1000端口

Ice Proxy

 Ice Proxy是Ice Object在客户端的代表,是客户端用来访问远程某个Ice Object的本地“代理”
 存在于客户端的进程地址空间中

持有以下信息:
1. 远程服务的地址信息,用来初始化通信
2. 用于定位Ice Object的对象标识符Object Identity
3. 可选的Facet, 用于确定引用 Ice Object的哪个接口

可以用一个字符串来构造一个Proxy对象:SimplePrinter: default -h 192.168.1.13 -p 1000


客户端调用某个接口代码库(Ice Runtime)具体工作

1. 定位远程对象Ice Object
2. 如果对象所在的Server处于关闭状态则自动激活server,并激活远程对象
3. 将方法的入参通过socket传输到远程对象
4. 等待回调完成
5. 将方法的出参返回客户端,如果发生异常则抛出调用异常

你可能感兴趣的:(Zeroc,Ice)