Ice对象的模型和概念。

Ice Object并非是我们的接口实现类的实例对象。我们的接口实现类的实例对象只是充当Ice Object的Servant的角色。一个Ice Object可以有众多Servant,并且Servant可以在不同的机器终端和网络上。Ice Object是概念层面上的对象,不是我们传统意义上的面向对象语言层的对象。

我们要使用某一个Ice Object,就必须通过Ice Object Proxy与Ice Object进行远程调用通讯。Ice Object Proxy并不与具体的Servant(我们对某一接口的实现类实例)直接进行通讯,Ice Object存在于Object Adapter的知识中,我们必须通过Object Adapter才能找到Ice Object,并由Object Adapter将我们的调用分派到具体的Servant,由Servant对调用进行分派处理。当某个Object Adapter添加了一个具体Servant,绑定到一个Ice Object名字后,一个Ice Object就可以通过Object Adapter被查询出来。这个Ice Object并不是一个真正存在的实体,离开了Object Adapter就没有存在的意义,就像一个由Object Adapter虚构出来的人物。当代理向Object Adapter调用对某个Ice Object进行申请调用时,Object Adapter就会由它的知识(ASM,Active Servant Map,和Locator)组织出一个Ice Object的存在,并分派调用。不同的Object Adapter可能对同一Ice Object有不同理解,也就是说在不同的Object Adapter上使用同一名字绑定了不同的Servant,或者在运行过程中修改绑定到不同的Servant。

正因为同一个Ice Object在不同Object Adapter中,有不同的理解(绑定不同的Servant实例,可能同一类型也可能不同一类型,Servant实例间可能没有共享状态)。所以我们在使用接口代理调用接口方法时,有一个Context参数,这个Context就代表着我们对这个Ice Object的使用的上下文或状态。

最新文章

  1. OleDbDataReader快速数据读取方式
  2. C#序列化
  3. 统计学习方法 --- 感知机模型原理及c++实现
  4. BIEE 10g 二次开发整理
  5. ubuntu方块乱码
  6. linux中如何启动和关闭svn
  7. Framework7 – 赞!功能齐全的 iOS7 App 前端框架
  8. 类型转换辅助工具类TypeCaseHelper
  9. 文档大师 搜狗拼音无法输入汉字_乱码的解决方法_VB6程序
  10. 大约 C++ 几个方面分析--overload, override, overwrite, rewrite
  11. SVN 中trunk、branches、tags的详解
  12. Day4----------用户、群组、权限
  13. iphone手机投屏在哪里 手机无线投屏电脑
  14. 测试python最大递归层次
  15. Keepalived详解(三):Keepalived基础功能应用实例【转】
  16. php 获取URL
  17. 转载-----BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用
  18. Java并发-懒汉式单例设计模式加volatile的原因
  19. Android开发之底部导航栏标准
  20. Nginx+php (十六)

热门文章

  1. python编程系列---多线程共享全局变量出现了安全问题的解决方法
  2. JVM(5) 类加载机制
  3. snaic和tornado的简单性能测试
  4. 设计模式C++描述----17.备忘录(Memento)模式
  5. 【原创】基于.NET的轻量级高性能 ORM - TZM.XFramework 之优雅增删改
  6. 暑期集训20190729 字典序(dictionary)
  7. 学习笔记04IIS
  8. Django学习day6——模板
  9. Go netpoll I/O 多路复用构建原生网络模型之源码深度解析
  10. Numpy 中的比较和 Fancy Indexing