我們知道,POA規(guī)范定義CORBA對象為具有標(biāo)識、接口和實(shí)現(xiàn)的抽象實(shí)體。從客戶機(jī)的角度來看,對象表示為對象引用,對象引用封裝了對象接口類型和標(biāo)識,并包含足夠的信息來定位對象的實(shí)現(xiàn)。但從服務(wù)器的角度來看又怎樣呢?
1、伺服對象
POA規(guī)范引入了伺服對象(servant)的概念,使抽象的CORBA對象能和實(shí)現(xiàn)該對象功能的具體編程語言實(shí)體徹底分離。這樣從服務(wù)器的角度來看, CORBA對象是作為伺服對象實(shí)現(xiàn)的。要記住CORBA是與編程語言獨(dú)立的體系結(jié)構(gòu)。伺服對象可實(shí)現(xiàn)為C++或Java類,也可以實(shí)現(xiàn)為一系列的COBOL段或C函數(shù)。伺服對象的概念也有助于反映這種與編程語言的獨(dú)立性。
那么ORB如何為一到來的請求找出正確的伺服對象呢?在CORBA對象關(guān)鍵字和伺服對象之間必然有某種綁定。下面將探討這種綁定并討論應(yīng)用程序如何能控制這種綁定。
2、對象適配器
CORBA體系結(jié)構(gòu)定義了對象適配器的概念,用來處理應(yīng)用程序和O R B如何交互來管理伺服對象和CORBA對象生命周期的問題。對象適配器的一個很好的定義來自Schmidt and Vinoski(1 9 9 7):"對象適配器是一CORBA組件,負(fù)責(zé)把CORBA的對象概念適配為編程語言的伺服對象概念。"前面已討論過CORBA對象是抽象的,而伺服對象是具體的,那么這個定義就充分表達(dá)了這一點(diǎn)。