CORBA对象生命周期之早期和后期绑定-Java基础-Java-编程开发
2008-05-20 04:57
731 查看
google_ad_client = "pub-8800625213955058";
/* 336x280, 创建于 07-11-21 */
google_ad_slot = "0989131976";
google_ad_width = 336;
google_ad_height = 280;
//
在伺服对象生命周期事件的定义中,已经说过伺服对象通过CORBA对象的ID依附于CORBA对象。下面会为BOA和POA代的ORB而分别讨论CORBA对象I D的概念,然而,伺服对象和CORBA对象之间的绑定的思想还是很重要的。对象适配器必须提供必需的接口,使我们能执行这种绑定。问题在于,是什么触发了真正的绑定:是某种标准应用程序逻辑还是来到的请求?下面首先介绍早期绑定,然后讨论后期绑定,或者说是通过命令的绑定。
1. 早期绑定
早期绑定通常描述的是某种标准应用程序逻辑通过对象适配器来执行绑定的情况。例如,一工厂对象可为创建新对象提供操作。这个操作的实现可创建一新的CORBA对象,并在返回新创建对象的引用之前激活一个伺服对象。因为CORBA对象现在是激活的-即存在对伺服对象的绑定-客户机现在可使用引用和激发新创建的CORBA对象。
2. 后期绑定
后期绑定意指绑定只能通过命令创建,即是在对象故障发生的情况下。如果在目标服务器的ORB运行时模块中所请求的目标对象和伺服对象之间不存在绑定,就会发生对象故障,即ORB不能为目标对象找出实现。
在对象故障的情况下, ORB可以要求应用程序提供一个伺服对象,以把这个伺服对象和目标对象绑定。如果应用程序不能完成这个请求, ORB就会引发异常以通知客户机被请求对象不存在。
创建后期绑定有两个选择:绑定只在请求期间被创建,或是绑定可以比请求生存得更久。在第一种情况中,下一个相同对象的请求会导致另一个对象故障,而第二种情况中绑定仍然存在(同时不需要任何动作来冻结伺服对象)。
图2显示了早期绑定和后期绑定的关系:基本上,早期绑定意味着应用程序采取主动。后期绑定意味着对象适配器请求应用程序提供一个伺服对象,以使绑定可以创建。这通常是通过伺服对象管理器来完成。伺服对象管理器是一个本地回调对象,由应用程序实现并注册到ORB,这样ORB在对象故障的情况下就可以激发它。
/* 336x280, 创建于 07-11-21 */
google_ad_slot = "0989131976";
google_ad_width = 336;
google_ad_height = 280;
//
在伺服对象生命周期事件的定义中,已经说过伺服对象通过CORBA对象的ID依附于CORBA对象。下面会为BOA和POA代的ORB而分别讨论CORBA对象I D的概念,然而,伺服对象和CORBA对象之间的绑定的思想还是很重要的。对象适配器必须提供必需的接口,使我们能执行这种绑定。问题在于,是什么触发了真正的绑定:是某种标准应用程序逻辑还是来到的请求?下面首先介绍早期绑定,然后讨论后期绑定,或者说是通过命令的绑定。
1. 早期绑定
早期绑定通常描述的是某种标准应用程序逻辑通过对象适配器来执行绑定的情况。例如,一工厂对象可为创建新对象提供操作。这个操作的实现可创建一新的CORBA对象,并在返回新创建对象的引用之前激活一个伺服对象。因为CORBA对象现在是激活的-即存在对伺服对象的绑定-客户机现在可使用引用和激发新创建的CORBA对象。
2. 后期绑定
后期绑定意指绑定只能通过命令创建,即是在对象故障发生的情况下。如果在目标服务器的ORB运行时模块中所请求的目标对象和伺服对象之间不存在绑定,就会发生对象故障,即ORB不能为目标对象找出实现。
在对象故障的情况下, ORB可以要求应用程序提供一个伺服对象,以把这个伺服对象和目标对象绑定。如果应用程序不能完成这个请求, ORB就会引发异常以通知客户机被请求对象不存在。
创建后期绑定有两个选择:绑定只在请求期间被创建,或是绑定可以比请求生存得更久。在第一种情况中,下一个相同对象的请求会导致另一个对象故障,而第二种情况中绑定仍然存在(同时不需要任何动作来冻结伺服对象)。
图2显示了早期绑定和后期绑定的关系:基本上,早期绑定意味着应用程序采取主动。后期绑定意味着对象适配器请求应用程序提供一个伺服对象,以使绑定可以创建。这通常是通过伺服对象管理器来完成。伺服对象管理器是一个本地回调对象,由应用程序实现并注册到ORB,这样ORB在对象故障的情况下就可以激发它。
相关文章推荐
- CORBA对象生命周期之实现和内存管理-Java基础-Java-编程开发
- CORBA对象生命周期之生命周期的评估-Java基础-Java-编程开发
- 深入探索CORBA对象生命周期之慨述-Java基础-Java-编程开发
- JAVA数组和JAVA集合类的对象操作-Java基础-Java-编程开发
- 对象引用是怎样严重影响垃圾收集器的-Java基础-Java-编程开发
- 打破Java定律:无需创建对象--Ioc容器革命-Java基础-Java-编程开发
- Java中使用JCOM操作Office对象-Java基础-Java-编程开发
- 理解Java面向对象的程序设计思想-Java基础-Java-编程开发
- Java数据对象(JDO)的前世今生-Java基础-Java-编程开发
- 【Java编程】面向对象基础
- 【JAVA优化编程】内存管理之——(2)JVM中对象的生命周期
- 编程基础知识——Java JNI开发流程(1)
- 跟着姜少学Java基础编程之十三:面向对象-成员方法
- Java多线程编程基础之线程对象
- Java 101-Java基础-Java-编程开发
- int 和 String 互相转换的多种方法-Java基础-Java-编程开发
- JAVA面试题集-Java基础-Java-编程开发
- Windows系统巧用Rundll32卸载Java虚拟机-Java基础-Java-编程开发
- Java学习从入门到精通 2书籍篇-Java基础-Java-编程开发
- Java打印程序设计全攻略-Java基础-Java-编程开发