我们知道,POA规范定义CORBA对象为具有标识、接口和实现的抽象实体。从客户机的角度来看,对象表示为对象引用,对象引用封装了对象接口类型和标识,并包含足够的信息来定位对象的实现。但从服务器的角度来看又怎样呢?
1、伺服对象
POA规范引入了伺服对象(servant)的概念,使抽象的CORBA对象能和实现该对象功能的具体编程语言实体彻底分离。这样从服务器的角度来看, CORBA对象是作为伺服对象实现的。要记住CORBA是与编程语言独立的体系结构。伺服对象可实现为C++或Java类,也可以实现为一系列的COBOL段或C函数。伺服对象的概念也有助于反映这种与编程语言的独立性。
那么ORB如何为一到来的请求找出正确的伺服对象呢?在CORBA对象关键字和伺服对象之间必然有某种绑定。下面将探讨这种绑定并讨论应用程序如何能控制这种绑定。
2、对象适配器
CORBA体系结构定义了对象适配器的概念,用来处理应用程序和O R B如何交互来管理伺服对象和CORBA对象生命周期的问题。对象适配器的一个很好的定义来自Schmidt and Vinoski(1 9 9 7):"对象适配器是一CORBA组件,负责把CORBA的对象概念适配为编程语言的伺服对象概念。"前面已讨论过CORBA对象是抽象的,而伺服对象是具体的,那么这个定义就充分表达了这一点。