摘要:傳統的遠程教育系統,一般都是孤立和分散的,其結構基本上都是Client/Serve模式,無法將教育資源和顯示方式相分離,這對于信息的查詢、傳輸都是不利的。而分布式技術在遠程教育中應用,改變了傳統的遠程教育系統的結構,解決了傳統的遠程教育系統的不足。該文首先對分布式對象技術的標準及其特點進行了介紹,然后探討了基于CORBA技術在網絡遠程教學系統的應用與研究。
關鍵詞:CORBA;RMI;DCOM;網絡教學;分布式遠程教育系統
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2009)15-4096-03
Distributed Object Technology in Network Teaching Research
TANG Li
(Anhui Economic Management Cadres Institute, Hefei 230051, China)
Abstract: Traditional distance education systems, are generally isolated and scattered, and their structures are basically Client/Serve mode, unable to educational resources and display phase separation, which is the query information, transmission are all unfavorable. And distributed technology in distance education applications, has changed the traditional structure of distance education system to address the traditional distance education system. This article first distributed object technology standards and their characteristics are introduced, then explored the network based on CORBA technology in the application of distance learning systems and research.
Key words: CORBA; RMI; DCOM; XML; network teaching; distributed distance education system
1 引言
日新月異的信息交流技術促進了遠程教育的飛速發展,而運程教育技術的關鍵是教育資源的開發、組織與管理。由于歷史的原因,我國的遠程教育站點往往都是自行建立遠程教育系統,分散而且孤立。分散孤立的遠程教育系統也已成為阻礙遠程教育系統快速發展的一個因素,隨著我國教育科研網帶寬的不斷提高,校內各服務站點的數據以及應用程序共享、校際間的遠程教育合作越來越受到人們的關注。怎么樣消除信息孤島,使各信息站點能夠共享數據,使得各高校之間能夠優勢互補,避免重復開發,節省開發教育資源和應用系統的人力和財力成為近來研究的熱點。
分布式對象技術的體系結構和支撐環境都有較大發展,分布式對象技術在提高信息處理能力、系統協作能力、系統可靠性和可擴展性方面有良好的表現。鑒于此本文提出的分布式對象技術的設計框架,可以較好地解決網絡教學系統中的可擴展性、共享性和跨平臺應用的問題。
2 分布式對象技術
分布式對象技術主要是在分布式異構環境下建立應用系統框架和對象構件,在應用系統框架的支撐下,開發者可以將軟件功能包裝為更易管理和使用的對象,這些對象可以跨越不同的軟硬件平臺進行互操作。目前主要的分布式互操作標準有Microsoft的OLE/COM/DCOM標準、Sun公司的Java RMI標準和OMG組織的CORBA標準。下面對三種技術加以介紹,并對三種標準加以比較。
2.1 CORBA技術分析
CORBA 是 OMG 組織在 1991 年提出的公用對象請求代理程序結構技術規范。 CORBA 有很廣泛的應用,它易于集成各廠商的不同計算機,從大型機一直到微型內嵌式系統的終端桌面,是針對大中企業應用的優秀體系結構。
CORBA的底層結構是基于面向對象模型的,由OMG接口描述語言(OMG Interface Definition Language, OMG IDL)、對象請求代理(ObjectRequest Broker, ORB)和IIOP標準協議(Internet Inter-ORB Protocol)3個關鍵模塊組成。如圖1。
使用接口描述語言編寫的對象接口,使得與語言無關的獨立性成為可能。IDL使得所有CORBA對象以一種方式被描述,僅僅需要一個由語言(C/C++、CORBA或Java)到IDL的“橋梁”。CORBA對象的互通要以對象請求代理為中介,這種互通信可以在多種流行通信協議之上實現。在 TCP/IP上。來自于不同開發商的ORB用于IIOP標準協議通訊。
CORBA 技術規范利用了當今軟件技術發展的最新成果,在基于網絡的分布式應用環境下實現應用軟件的集成,使得面向對象的軟件在分布、異構環境下實現重用、可移植和互操作。其特點如下:
① 在 CORBA 規范中引入了代理(Broker)的概念,一個代理至少可以完成對客戶方提出的抽象服務請求的映射;自動發現和尋找服務器;自動設定路由,實現到服務器方的執行。
② 實現客戶與服務對象的完全分開,客戶不需要了解服務對象的實現過程以及具體位置。
③ 應用程序間的統一接口。CORBA提供軟總線機制,這是系統定義的一組接口規范,使得在任何環境下,采用任何語言開發的軟件只要符合接口規范的定義,均能集成到CORBA系統中。
④ CORBA采用面向對象的軟件實現方法開發應用系統,實現對象內部細節的完整封裝,保留對象方法的對外接口定義。
⑤ 分層的設計原則和實現方式。CORBA規范只是針對OMA體系結構中的 ORB 制定的工業標準,而面向對象定義則可以在OMA的應用對象或應用開發環境中逐步分層定義和實現。
2.2 DCOM
目前,Microsoft的分布式組件對象模型(Distributed Componont Object Model)僅運行于兩種操作系統之上:Windows95和WindowsNT4。Microsoft正在與第三方開發商協作,以將DCOM移到其它的操作系統上(包括MVS和幾種UNIX操作系統)。象CORBA一樣,DCOM是獨立于語言的,它用Microsoft的對象描述語言(ODL)通過接口對對象加以描述。
與CORBA相比,DCOM有三個缺點。首先,它由單一開發者(微軟)定義并控制,這大大限制了DCOM使用者的選擇范圍(比方說開發工具和風格)。其次,DCOM缺乏眾多的平臺支持,這極大程度地制約了代碼的可重用性和DCOM應用的可擴展性。最后,與CORBA相比,DCOM是一種非常不成熟的技術。盡管微軟目前正為DCOM加入消息和事務支持,但這些功能在1994年的CORBA2.0就已經實現了,并且正由幾家不同的CORBA軟件開發商所發行。
2.3 RMI
Remote Method Invocation是最新的JDK1.1中的重要特色。RMI使得Java客戶能夠訪問遠程服務對象。這聽起來似乎十分類似于CORBA,但兩者并不一樣。其關鍵在于服務器端的應用程序也必須用Java編寫,且只能使用JDK1.1中提供的工具。你根本無法把過去編制的代碼加到新程序中去,除此之外,RMI還有許多其它缺陷。
與CORBA不同,RMI沒有服務這一概念。另外,根據RMI寫出的Java服務器對象往往性能低劣,這個缺點源于Java虛擬機。(有趣的是,JavaCORBA服務器比RMI服務器表現出更好的性能。)RMI也不包括象CORBAORB那樣的對象擊活功能。
實際上,RMI及Java技術更可能向OMG的標準靠攏,而不是背道而馳。Sun已經宣布,Java事務服務(JavaTransactionServeces)將建立在OMG的對象事務服務(ObjectTransactionServeces)。該公司還曾發布其長遠計劃:使RMI對象可以通過IIOP互通訊。
3 CORBA技術在網絡教學中的應用和實現
3.1 系統結構
基于CORBA技術的分布式遠程教育系統的框架結構,其組成如下:
1) 若干Web 服務器。按照分布式服務的要求,這些服務器理論上可以處在網絡上的任何位置。服務器承載整個遠程教育系統的服務,響應用戶的請求,將教學資源處理后,以適當的方式傳送到客戶端,供學習者使用。
2) 一個或數個CORBA代理。CORBA代理的功能是在監聽到網絡上有對某一對象的服務請求時,負責尋找提供該對象服務的應用程序,使請求者和服務者之間建立網絡連接,以便進行相應的服務。
3) 一個或數個數據庫服務器或者XML資源庫。存放教學資源,按照實際需要,可以使用數據庫服務系統,也可以是純粹的XML文件。數據庫系統中也可以存放XML格式的數據,這只是XML格式的數據的存在形式。而數據庫中的其他格式的數據,也可以經過處理,轉化成XML格式的數據,以便在網絡上傳輸。
4) 客戶端,嵌入JAVA運行時環境的瀏覽器。
3.2 系統配置及其實現
1) Web服務器。采用Windows 2000 Server,在該服務器上安裝Sun 公司的J2SDK 1.4.1 for Windows,使之具有JAVA開發環境,然后再安裝Sun公司的jwsdp-1_0_01 for Windows,該軟件包是一個支持JAVA的Web服務器,與Windows 2000 Server的Internet Information Server配合使用,其服務端口為8080,根據用戶的情況,可以更改為其他端口。
2) CORBA代理。采用Borland 公司的Visibroker4.51 for JAVA,在網絡中安裝在某幾臺PC上,使用時,只需要運行內含程序Smart Agent即可。
3) 數據庫系統。采用Oracle 數據庫系統。
4) 開發及其運行。用Jbuilder 7.0進行開發應用系統,將所用教學資源以XML文件的形式置入合適的目錄中,或者將數據存入到數據庫中;使用IDL文件定義服務對象接口;用Html_CORBA Client向導制作Web頁面,為了充分使用JAVA所具有的各種功能,該頁面可以用Jsp來實現;用CORBA Application Server向導制作服務器端對象的服務實現;多媒體信息的傳送和顯示可以用JAVA Applet來完成,因此需要將這些JAVA Applet置入合適的位置,以便讓頁面文件調用。系統工作時,首先由客戶端通過瀏覽器發出服務請求,當該請求不涉及CORBA對象時,Web服務器就直接處理,而當涉及到CORBA對象時,就會通過SmartAgent去尋找該對象的實現,對于用戶來講,并不關心對象服務實現的方式和位置。
3.3 系統中的核心問題及解決方法
該系統的核心問題是服務器端CORBA對象服務的實現及其XML信息的處理?;贑ORBA的分布式遠程教育系統,其服務分布在不同的服務器上,并且這種服務是透明的。對于用戶來講,并不知道服務是由誰來提供和怎樣提供的。要保證這種服務,服務器端最核心的也是最重要的工作就是CORBA服務對象的實現,而這種服務又和教育資源緊密相連,本系統中教育資源又往往以XML信息的形式存在,因此,在CORBA服務對象中,怎樣處理XML信息,也是非常關鍵的。
我們以前面談到的XML文件信息為例來說明怎樣來解決XML信息的處理和CORBA服務對象的實現。我們知道,上述的XML文件信息表示的是分形樹圖像,它內含了分形樹的所有信息。
如果在系統中,服務器端需要提供向客戶端傳送并顯示分形樹的服務,那么,可以用如下IDL文件來定義CORBA對象接口:
Module ShowImage
{
interface fractal
{
void display();
};
};
對其進行編譯分別得到符合IIOP協議的服務器端skeleton文件和客戶端stub文件??蛻舳顺绦虻木帉?,只需把調用fractal對象的方法display()置入相關頁面,而在服務器端,在skeleton文件的基礎上,實現fractal對象中的display()方法。在實現該方法的過程中,完成對XML信息的處理。對XML信息的處理,可以采用三種模型:SAX、DOM或JDOM。分形樹是用JDOM模型實現的,當然,最終的結果,不會因為不同的處理模型而改變。
對于服務器端,只要設計好服務對象,并用IDL接口文件進行描述,那么余下的工作,便是CORBA對象服務的實現了。只要大家共用的是同一個IDL文件,就不會存在服務上的沖突。在通常情況下,該類系統可以參照上述的模式進行開發。
3.4 利用CORBA技術開展遠程教學的益處
基于CORBA技術的分布式遠程教育系統和傳統的網絡教學系統最大的差異是結構上的不同和教育資源存在形式的不同,正因為如此,具有多方面的優勢,可以歸納為以下幾點:
1) 我們可以使用各種信息、數據,無論它們分布在數字世界的哪個角落。
2) 我們可以對信息、數據進行各種自動化處理,無論它們需要哪個公司的哪個軟件。這種處理是無縫集成的,就好像使用專門編制的軟件一樣。
3) 我們可以隨意更改事務處理流程,實行物業動態管理。這種改變,革新對辦公室自動化、電子商務的現有設施影響很小。我們可以最大限度的重用已經存在的軟件、硬件和數據信息。
4) 我們可以使用、控制各種數字化的設施:嵌入程序的智能電視、錄像機、報警系統、傳感器以及各種幾乎類似“職業選手”的“個人數字助理”——PDA等,只要這些帶程序的入式數字化設備接入了互聯網。
4 總結
總之分布式對象技術中的三個標準技術都有其優勢,特別是CORBA技術是一種方興未艾的中間件技術,它的出現是軟件發展的進步,由于CORBA規范能夠充分利用現今各種技術發展的最新成果,所以CORBA規范和中間件產品正受到越來越多的重視。而DCOM和RMI都有其各自特點,他們能和CORBA集合使用發展未來分布式系統,如果我們能將這些技術合理地運用于之相適應在遠程網絡教育中,一定能推動遠程教育的快速發展。隨之會產生網絡教育,網絡虛擬實驗等一系列方便于教學和研究的系統。
參考文獻:
[1] 王志堅,費玉奎,婁淵清.軟件構件技術及其應用[M].北京:科學出版社,2005.
[2] 王曉東.實時CORBA及應用研究[J].計算機應用研究,2002,(1):96-98.
[3] 何克抗.網絡教學結構與網絡教學模式探討[J].教育技術通訊,2001,(5).
[4] Andrew S.Tanenbaum Maarten van Steen.分布式系統原理與范型[M].楊劍峰,常曉波,李敏,譯.北京:清華大學出版社,2001.
[5] 何克抗.網絡教學結構與網絡教學模式探討[J].教育技術通訊,2001.
[6] Michi Henning,Steve Vinoski, Adnanced CORBA Programming with C++[M].北京:清華大學出版社,2000.