網絡遠程教育應用DCOM技術在遠程教育中實現(xiàn)組件化的網絡虛擬實驗室探討_第1頁
網絡遠程教育應用DCOM技術在遠程教育中實現(xiàn)組件化的網絡虛擬實驗室探討_第2頁
網絡遠程教育應用DCOM技術在遠程教育中實現(xiàn)組件化的網絡虛擬實驗室探討_第3頁
網絡遠程教育應用DCOM技術在遠程教育中實現(xiàn)組件化的網絡虛擬實驗室探討_第4頁
網絡遠程教育應用DCOM技術在遠程教育中實現(xiàn)組件化的網絡虛擬實驗室探討_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

...v.網絡遠程教育應用D技術在遠程教育中實現(xiàn)組件化的網絡虛擬實驗室探討摘要:為了使虛擬實驗室適合遠程網絡教學的需要,使它能夠在網絡上工作,利用D技術以C/S方式實現(xiàn)了組件化的虛擬實驗室。將模擬計算局部作為效勞器端,界面輸入/輸出作為客戶端。在多用戶的情況下D沒有提供分布式策略,那么利用調度對象來平衡負載,從而引入分布式處理方式。關鍵詞:遠程教育;D;虛擬實驗室;客戶/效勞器〔C/S〕Abstract:Inordertomakethevirtuallaboratoryforteachingtheneedforlong-distancenetworktoenableittoworkonthenetwork,theuseofDtechnologytoC/Sachievedtheponentsofthevirtuallaboratory.Thesimulationaspartoftheserver-side,theinterfaceI/Oasaclient.Inmanycases,usersdidnotprovideDDistributedstrategy,theuseoftargetedschedulingtobalancetheload,sotheintroductionofdistributedprocessingway.Keywords:distanceeducation;D;virtuallaboratory;client/server(C/S)前言隨著Internet的不斷擴大,日益增多的計算機正在連接到互聯(lián)網上,以共享資源。于是遠程教育作為一種新的教育模式被提上了議事日程,現(xiàn)代計算機技術和網絡技術為遠程教育的開展提供了強有力的技術保障。尤其是瀏覽器技術和數(shù)據庫技術的開展,使得教學活動不再受地域和時間上的限制,利用Internet就能進展實時或非實時的教與學,從而實現(xiàn)了跨越時空的學習。然而,大學實驗室里許多實驗課,在遠程教育的網上學習中將會有許多困難。如何在網絡課件中解決好這個問題,對于進一步辦好遠程教育是具有重要實際意義的。本文利用D(DistributedponentObjectModule)技術,將單機板的虛擬電路實驗系統(tǒng)升級為網絡版的虛擬電路實驗系統(tǒng)。虛擬電路實驗系統(tǒng)是一個用于仿真電子線路實驗的軟件。用戶通過界面在計算機屏幕上選用各種元器件搭建電路,測試波形,得到實驗數(shù)據等結果,以模擬真實實驗的方式使用戶掌握有關電路方面的知識。從功能上講,虛擬實驗室系統(tǒng)分為兩個模塊:一個是仿真計算局部,它是整個系統(tǒng)的核心局部,負責輸入數(shù)據的處理、大量的模擬計算,并向輸出界面局部傳送結果;另一個那么包括輸入界面和輸出界面兩局部。輸入局部完成用戶電路搭建時的界面處理,從某種角度來講,它完成了數(shù)據的采集。同樣,輸出界面完成結果的輸出,如波形輸出、數(shù)據輸出等。為了滿足遠程教學的需要,必須將單機虛擬實驗系統(tǒng)改造為可在網絡上運行的系統(tǒng)。從通信的開銷上來講,Socket是最適宜的。但是Socket本身是面向通信的,有復雜的通信細節(jié)需要處理。而且,Socket效勞器對于客戶來說,很難提供穩(wěn)定的應用程序接口,一旦效勞器發(fā)生了變化,客戶必須相應地變化,不利于客戶和效勞器單獨開發(fā)和維護。另外一種那么是文本采用的(ponentObjectModule)技術。1組件對象模型()現(xiàn)代的軟件開發(fā)都以模塊方式進展。每個模塊均有自己的功能,并與其它模塊以接口進展通信。于是,復雜的軟件系統(tǒng)就可以用搭積木的方式進展。這就是組件軟件的根本思想。就是實現(xiàn)軟件組件化的一種努力。實際上,是一種規(guī)定了組件之間的接口標準。還引入了面向對象的思想,對象是一個能完成一定功能的軟件模塊。對象是組件的根本構成,它以接口的方式向其它對象或軟件提供效勞。通常情況下,對象的效勞與被效勞都是客戶/效勞器的關系。對象不同于C++對象。C++對象是類的實例。C++是面向對象的編程語言,是人們在源碼級試圖實現(xiàn)軟件模塊化的一種努力。對象是二進制的標準。換言之,C++在源碼級提供了代碼重用的便利,而是在二進制級提供了可重用性。的二進制級重用是通過對象工作來實現(xiàn)的。它主要有兩種方式:(1)包容,一個對象通過利用另一對象的功能實現(xiàn)同樣的接口。(2)聚合,一個對象直接將另一對象的接口提供應客戶。由于的實現(xiàn)是在二進制級,而不是源碼級,于是決定了與語言的無關性。一個用C或C++實現(xiàn)的可以與一個用BASIC實現(xiàn)的客戶正常地通信。因此,整個軟件的一局部可以用一種語言開發(fā),而另一局部可以使用其它語言。這給軟件開發(fā)者在根據性能的要求做出編程語言選擇時提供了方便。的另一個特性是進程的透明性。一個組件可以有很多種形式出現(xiàn),比方DLL,EXE等。DLL形式的組件與客戶程序工作在同一進程,EXE組件工作在獨立的進程。無論是進程內的組件還是進程外的組件,對于客戶來講都是同樣的,客戶無需關心進程間的通信。進程間的通信是復雜的,然而掩蓋了這種復雜性。2分布式組件對象模型(D)給軟件開發(fā)帶來了極大的便利。但是,在網絡環(huán)境下,單機上的組件重用和進程透明性已不能滿足需要,必須擴展。Microsoft的D便是在網絡環(huán)境下的無縫擴展,D能夠支持在局域網、廣域網,甚至在Internet上與不同計算機的對象之間的通信。使用D,應用程序可以在位置上到達分布性,從而滿足客戶和應用的需求。D隱藏了網絡通信的細節(jié),在可以利用的網絡協(xié)議的支持下,組件或客戶無需關心對方組件的位置,便可以進展通信。因此D具有協(xié)議無關性。在網絡環(huán)境下,組件之間的通信不像在的進程內或進程間的LPC(LocalProcedureCall),而是以RPC(RemoteProcedureCall)來完成的。客戶與對象必須通過Proxy和Stub來進展通信。Proxy工作在客戶進程中,Stub工作在效勞器進程中。此外,D提供了所有在網絡上工作的軟件都應有的特殊性與平安性。3/D在網絡虛擬實驗室中的應用從程序設計的角度來看,/D的構造是這樣的:對象是構建組件的根本元素,而效勞器為組件提供進程內/外的效勞,提供了組件工作的場所。對象是一個自包含的構造,提供一定的功能,它不能直接被客戶使用,客戶必須通過接口它。對象必須通過接口來表現(xiàn)自己的功能,甚至對象的創(chuàng)立都不能由客戶直接完成,對象的創(chuàng)立必須借助一個特殊的對象,即類廠來完成。對于客戶,它可以是一個組件對象也可以是一個支持的普通程序。它通過API來調用類廠創(chuàng)立對象,并增加引用計數(shù),來決定對象的生存期。這樣庫和效勞器會在適當?shù)臅r候卸載。雖然C++對象和對象有本質的區(qū)別,但是它們在二進制一級的構造上有一定的相似性,C++對象和對象都使用VTable。而且,C++的對象描述能力使它很容易創(chuàng)立。因此C++是實現(xiàn)的最正確選擇。VisualC++在COM編程方面提供了兩種方式:一種是MFC(MicrosoftFoundationClass);一種是ATL(ActiveTemplateLibrary)。MFC是以嵌套類的方式來實現(xiàn)的;ATL大量地使用于模板,采用多重繼承的方式來實現(xiàn)。但不管是MFC還是ATL,都為開發(fā)軟件提供了極大的方便,很多的處理都由MFC提供,比方引用計數(shù)、效勞器鎖計數(shù)、類廠等。盡管MFC和ATL都能實現(xiàn),但MFC是一種開發(fā)完全應用程序的有效手段。相比之下,ATL是專為設計的。所以,ATL更適合創(chuàng)立快速小型化的組件。3.1效勞器在本文設計的網絡虛擬實驗室系統(tǒng)中,將模擬計算局部作為效勞器。對于單用戶效勞器的情況,可以使用STA(SingleThreadApartment)線程模型。在這種情況下,分作為一個對象。對于在這個組件來說,它至少應該提供一個Simulator對象、一個Isimulate接口和兩種方法。interfaceIDatdT’:IUnknown{HRESULTInputData([in]...);HRESULTOutputData([out]...);…};這個對象是一個可連接對象。在模擬算法完成之后,它必須向用戶發(fā)出通知。而用戶程序內置了一個接收器??蛻羰褂肐nputData()向效勞器傳送采集的數(shù)據,效勞器在處理數(shù)據完成之后,客戶通過OutputData()取得處理結果。對于多用戶效勞器,實際上只要簡單地在這個組件中參加注冊表信息,或者用CoCreatelnst9nEX(),以主機信息為參數(shù)就可以在指定主機上創(chuàng)立對象,利用D進展通信。位置透明性使客戶很容易使用D。如果為客戶指定相應的主機(即效勞器),客戶就可以創(chuàng)立并使用對象。3.2多用戶效勞器的負載平衡在多用戶的情況下,當用戶的數(shù)量到達一定程度的時候,多個用戶在主機上創(chuàng)立的對象實例會使效勞器的壓力增大,從而造成效勞器性能的下降,影響效勞質量。當然,可以使用多個效勞器來提供效勞,人工地平衡多個效勞器上的負載,但這將給維護帶來極大的困難。一旦用戶群動態(tài)地變化,效勞器的負載平衡將被打破。顯然,這種沒有任何分布式策略的分布式(D)是不夠的。雖然D提供了位置透明性,但是沒有提供分布式的策略,分布式策略需要軟件開發(fā)者來提供。因此,提供負載平衡是D組件開發(fā)的一個重要任務。為了平衡多個效勞器的負載,建立了如下列圖所示的系統(tǒng)構造。對于模擬計算的對象,為了防止屢次重復地創(chuàng)立和釋放,本文采用了效勞對象。效勞對象是已創(chuàng)立的對象實例。該系統(tǒng)中還引入了簡單的調度對象。調度對象是一個中間對象,它以STA(單線程Apartment)方式工作。調度對象負責建立效勞對象Simulator,維護主機列表COSERVERINFOServer[N]、對象列表ISimulate*pISimulate[N]和對象狀態(tài)列表IntState[N]。主機列表保存主機名字,對象列表存放對象接口指針,狀態(tài)列表是一個對象的狀態(tài)值。對于對象來講,它有三種狀態(tài):(1)未創(chuàng)立或創(chuàng)立失敗;(2)忙;(3)閑。三個列表都以全局變量的形式出現(xiàn)。由于使用了STA,可以不必考慮對象的同步問題。但是,多個同類對象全局變量仍然可能造成對象在線程上的平安問題。因此,本文使用臨界區(qū)(CriticalSection)來同步。此外,調度對象是一個可連接對象,它必須與效勞對象通信并獲得效勞對象的狀態(tài)。調度對象負責在主機列表指定的主機上創(chuàng)立效勞對象,并初始化。所有的客戶在需要效勞的時候應向調度對象發(fā)出請求。當有客戶向調度對象請求效勞時,調度對象檢索主機列表、對象列表和狀態(tài)列表,在選定主機上查詢并檢查對象的有效性,獲取效勞對象接口指針,并返回給客戶,然后客戶與效勞對象通信。根據的特性,此時客戶和效勞對象之間的通信是直接進展的,不經過調度對象。調度對象根據什么原那么來獲取某個主機上的對象是一個策略上的問題,實際應用中必須考慮主機的負載平衡。對于復雜的系統(tǒng),這種策略可能相當?shù)膹碗s。然而,為了簡單起見,本文采用了以執(zhí)行任務的對象在主機上的數(shù)量多少作為平衡負載的標準。在客戶使用完畢對象后,對象激發(fā)一個調度對象事件,調度對象負責將對象狀態(tài)復位。因此,調度對象是一個可連接對象,實現(xiàn)了一個接收器,接收來自效勞對象的事件。此外,調度對象還負責將效勞對象卸載。應該看到調度對象的引入增加了網絡通信量,但對于采用分布式策略的系統(tǒng)來說是必要的。實際上調度對象很大程度上起到了目錄效勞的作用。如果必要的話,調度對象加上適當?shù)哪K可以作為一個簡單的中間管理模塊,比方控制用戶登錄、限制用戶數(shù)量等。3.3客戶客戶控制著虛擬實驗室數(shù)據的采集和輸出表現(xiàn),它將直接面對用戶。對于客戶來講,它只需要在數(shù)據處理的時候,在執(zhí)行調度的主機上創(chuàng)立調度對象,本文來自范文中國網.fw789.。調度對象負責返回可用的效勞對象??蛻魧?shù)據交給效勞對象來處理,并取得輸出值。在客戶與效勞對象通信的過程中,客戶還必須接收來自效勞對象激發(fā)的事件,所以客戶必須內置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論