胡海波
【摘要】 網絡數據庫中的數據之間的關系不是一一對應的,本文由此分析了作為公共對象請求代理體系結構的CORBA如何能很好的解決異構性導致的應用軟件在互操作性、兼容性等方面的問題。
【關鍵詞】 CORBA技術 網絡數據庫 技術應用
一、引言
在企業采用的不同系統間不可避免地在編程語言、操作系統、網絡協議、數據庫結構等方面存在異構性,使系統的可移植性、可重用性和互操作性受到限制。為此,引入了中間件概念。CORBA技術就是一種中間件技術。
二、基本概念
CORBA其實就是把用其他語言開發的程序碼和關于該程序碼能力和如何調用該程序碼的資訊包到一個套裝(package)中,包成套裝的物件則可以在網絡上被其他程序(或CORBA物件)調用。網絡數據庫(也叫WEB數據庫)以后臺數據庫為基礎的,加上一定的前臺程序,通過瀏覽器完成數據存儲、查詢等操作的系統。例如,將數據存入數據庫,或者對數據庫進行查詢操作等,最后網站將操作結果傳回給瀏覽器,通過瀏覽器將結果告知用戶。
三、CORBA體系結構
CORBA體系結構與規范建立在OMG的對象模型基礎之上,它主要由三個關鍵部分組成:接口定義語言IDL、對象請求代理ORB和標準通信協議IIOP。OMG制定了公共對象請求代理結構CORBA這一ORB的技術規范標準,詳細定義了ORB應具備的特性和提供的接口。CORBA3.0具有以下幾個組成部分:(1)ORB內核;(2)OMG接口定義語言IDL;(3)接口池;(4)存根進程與框架進程;(5)動態請求與分發;(6)對象適配器。
CORBA各組成部件間的關系如圖1所示。
四、CORBA技術應用
4.1 應用一
(1)一些數據庫系統不一定支持很多操作系統。選擇一個數據庫系統可能適合數據庫服務器,但是要把所有客戶端都限制在指定的操作系統是不適宜的。(2)CORBA比數據庫系統支持的語言的范圍更廣。一些數據庫系統支持多種語言但不支持它們之間的互操作,或者說,對一種語言支持得比較全面,但對其他的則支持的有限。(3)使用 CORBA 來系統集成使系統的各構件能直接通信,而用數據庫系統來進行系統集成需要使用一個數據庫在構件間傳遞信息。兩種方法都很有用,將CORBA和數據庫集成就使系統設計者能根據各子系統的不同選擇合適的方法來實現。(4)CORBA提供和OLE的緊密集成,允許VB和其他一些腳本語言能象調用OLE對象一樣容易地調用遠程CORBA對象(不管它們是否存儲在數據庫中) 。
4.2 應用二
三層結構的基本元素是客戶機、應用服務器和數據庫服務器客戶機通過應用服務器輸出的IDL 接口來訪問應用服務器應用服務器扮演雙重角色,一方面是CORBA 服務器,另一方面作為數據庫客戶機訪問數據庫服務器以獲得持久狀態信息。遠程客戶通過客戶 Stub向本地的ORB發出連接服務對象的請求;客戶端的ORB 轉發此請求;通過IIOP協議,經由網絡轉送至應用服務器方的ORB;應用服務器方的 ORB 在接收到請求后,通過對象適配器尋找對應的 Skeleton,然后獲得相應的對象實現;對象實現執行相關的方法,如果需要連接數據庫,則通過JDBC與數據庫服務器進行連接,將SQL提交給數據庫系統;數據庫服務器解釋執行 SQL語句,然后將執行結果返回應用服務器上的服務對象;服務對象對結果處理后傳回給客戶端。
五、CORBA技術前景
CORBA技術可以實現分布式異構環境下面向對象軟件的可重用性、可移植性和互操作性,建立起一種跨硬件平臺、操作系統、網絡環境以及數據庫的異構型應用環境。有些開發商的可視化軟件系統中預設了CORBA組件工具,用戶很容易使用,而不用IDL編寫。將來,該項技術在應用中會不斷完善,為編程人員提供解決難題的利器。