POA和纽带机制
我们继续了解CORBA中间件的相关知识,本篇博客我们讲解可移植对象适配器(POA)和纽带机制。
CORBA中间件的另一优势就是提供了灵活的服务端模型,该模型基于可移植对象适配器体系结构,可以帮助开发人员有效管理复杂的服务端程序。在了解POA之前我们先明白什么是CORBA对象和伺服对象,他们之间的关系是什么。
CORBA对象和伺服对象:两者之间的关系就像是面向对象中类和对象的关系,CORBA对象是一个抽象意义上的对象,可看作一个具有对象标识、对象接口以及对象实现的抽象实体。伺服对象则是指具体程序设计语言的对象,通常存在于一个服务程序进程之中。在两者中间就有一个对象适配器负责将抽象的CORBA对象映射到具体的伺服对象。了解了两者的关系,下面我们来认识POA又是怎么回事。
下面是POA的体系结构:
在上面的POA体系结构中有一个伺服对象管理器,用于取代POA活动对象映射表的功能。
为满足不同的应用需要,开发人员可以设计多个伺服对象管理器,伺服对象管理器分为伺服对象激活器和伺服对象定位器,开发人员可以利用POA策略决定选用我们使用哪种类型。
1)伺服对象激活器:由ServantActivator类型的伺服对象管理器激活的对象被记录在活动对象映射表中,利用伺服对象激活器处理请求时,POA首先查找活动对象映射表,如果找到对象标识则调用伺服对象的合适操作并将结果返回给客户程序,否则以对象标识与POA作为参数调用伺服对象激活器的incamate操作,由伺服对象激活器查找并返回一个合适的伺服对象,然后将该伺服对象登记对象映射表中,最后调用伺服对象的合适操作并将结果返回给客户程序。
2)伺服对象定位器:伺服对象定位器负责查找合适的伺服对象返回给POA,由POA调用伺服对象的合适操作并将结果返回给客户程序后,在调用伺服对象定位器的postinvoke操作。
现在我们知道了POA以及在POA体系结构中相当重要的伺服对象管理器,那么当我们设计程序需要大量长时间的操作时,我们要选择合适的POA策略来配置不同的POA。
POA策略:POA策略是一个对象,负责控制相关POA的行为以及这些POA所管理的对象。目前CORBA规范定义了7中标准的POA策略,不同的ORB产品从可伸缩性或可靠性等因素使用一些新的POA策略。在创建新的POA策略时必须指定一个POA管理器用于控制新POA的状态:
纽带机制:编写对象实现有两种途径,一是使用继承机制,另一个就是使用纽带机制。由于纽带机制不占用java语言单继承的“配额”,所以非常适合将现有的java应用程序集成到CORBA分布式对象系统中。
使用纽带机制,对象实现不必继承生成的POA类,但必须实现生成的Operations类。
这就是本篇博客所有的内容,下一篇博客我们介绍J2EE规范和J2EE企业版中间件。