劉崢嶸
(廣東茂名幼兒師范專科學校,理學院, 廣東,茂名 525000)
實時分布對象是一種分布式主動對象,其包含了分布式主動對象的兩方面特征,一種是該對象與客戶端同時運行于不同的地址空間,另一種是它主動定義了公開的調用接口,可以實時接收多種用戶請求,并向其提供相應的服務。實時分布的本質是實時并行,而要實現實時并行就需要對分布式對象控制編程,最理想狀態下的實時分布對象編程方法應該具有并行分布式高水平的編程風格,實時分布對象編程是解決并行軟件互操作問題的一種編程技術,通過編程對實時分布對象開發出具有良好分布式效果的軟件。但是隨著網絡技術的快速發展,實時分布對象編程方法也是五花八門,比如基于CORBA實時分布對象編程方法、基于YUO實時分布對象編程方法、基于Java實時分布對象編程方法等,以上提出的編程方法由于編程過程較復雜,沒有完全達到理想的效果,開發出來的軟件質量較差,傳統編程方法還不能夠完全滿足應用需求,為此本文想要運用模糊數學理論設計出一種新的實時分布對象編程方法[1]。20世紀70年代美國紐約大學控制論專家Zaduh L.A教授在一篇開創性論文中提出了模糊數學概念,它標志著模糊數學理論的誕生,后來隨著模糊數學理論的飛速發展,模糊數學理論被應用到了多個領域中。本文利用模糊數據理論計算出實時分布對象,形成一種基于模糊數學理論的實時分布對象編程方法,并且通過與傳統編程方法進行對比實驗,來檢驗本文設計方法是否能滿足應用需求和為實時分布對象編程提供理論依據。
為了實時分布對象編程,本文設計的方法主要是以模糊數學作為理論指導,利用模糊數學理論組建C++或者Java類庫結構來開發應用程序接口,以此代替傳統的計算機語言編輯器,用于高精度的實時分布對象編程。最終編程的實時分布對象要滿足以下設計需求:具有過去、現在、將來的時間基準;能夠實時統一遠程或者本地用戶終端發出的服務請求;能夠具有從分布對象方法請求到結果返回的時限定義功能;具有時間觸發行為;執行分布式的對象方法;實時的對象方法請求。根據以上實時分布對象功能需求,首先通過創建全局時間資源為計算網絡節點中的實時并行對象提供時間資源,然后引入實時分布軟件的構件來執行并行方法,通過構造合理的組件參數來實現傳輸和處理大參數集的多消息交換,通過創建實時對象服務請求API提供到達服務實時分布對象方法的存取路徑,最后通過并行通道的構建實現了實時分布對象的編程。圖1為基于模糊數學理論的實時分布對象編程流程圖。

圖1 基于模糊數學理論的實時分布對象編程流程圖
為了產生有效的可并行的實時對象,首先必須創建全局時間資源,全局時間資源是為計算出網絡節點中實時并行對象提供時間資源[2]。常用的創建全局時間資源的方法有絕對時間方法和相對時間方法,由于實時分布對象必須要通過編碼“NOW”來獲得并行對象的實時時間值,并且這個實時時間值還必須要與統一協調時間的當前數值相一致,如果不能滿足這個條件,當不同地理位置的分布式對象都保留著不同的時間資源時,就無法達到實時分布對象的要求,并且相互作用下的分布對象將會導致不可預測的后果[3]。由于絕對時間方法創建的全局時間資源效果較差,所以此次采用相對時間方法來創建全局時間資源。首先以分布式網絡中分布對象的起始時間為基準,即DSD-start-time,以ms作為并行對象所經歷的相對時間值,根據分布式網絡節點證實屬于初始分布節點配置的所有并行節點已經做好準備,然后向所有初始分布對象部署DSD-start-time,當DSD-start-time都部署完畢后,所有部署完畢的并行對象開始執行各自的程序部分,以此實現了全局時間資源的創建。
傳統編程方法開發的對象屬于非分布式的消極對象,不具備適應網絡配置實時動態轉變的能力,導致無法滿足相對復雜的分布式網絡程序需求[4]。所以本文引入實時分布軟件,實現實時分布對象在分布式網絡節點間動態地移動。在分布式網絡中,每個實時分布對象和它的服務方法都要具有唯一的、合法的對象名稱。為了避免或減少使用符號名來調用服務方法帶來的網絡開銷,當一個實時分布對象用符號名被具體聲明時,比如“ RHO2” ,這個對象的每一個服務方法的符號名都會被注冊到運行引擎上[5]。假設這個實時對象只有一個服務方法,則注冊名只能為“RHO1” ,此時在每個潛在的客戶實時分布對象終端節點上創建一個相對應的RHO1門對象,當RHO1門對象被具體聲明時,對應的服務方法的符號名作為實時分布對象的參數,因此客戶終端只能利用符號名來調用服務方法,而不使用其門對象,以此實現實時分布對象在分布式網絡節點間動態地移動。
構造組件參數其實就是通過語言編程定義實時分布對象服務方法的參數結構。傳統構建組件參數的方法是通過語言編輯器完成的,語言編輯器雖然操作簡單,但是構造的組件參數會與實時分布對象的服務方法不符,所以本文通過把所有服務方法的參數打包成一個結構體變量,實時分布對象執行引擎把指針指向參數結構體變量,將參數結構體變量轉化為消息上傳到分布式網絡中進行傳輸,以此完成組件參數的構造[6]。這種方法能夠保證參數在分布式網絡上的傳輸與處理大參數集的多消息交換。
任何實時分布對象語言都必須提供多種類型的服務請求,所以需要創建實時對象服務請求API,API是實時分布對象的接口,通過該接口來實現實時分布對象服務請求的調用[7]。實施對象服務請求API的創建可以運用門對象方法來實現,門對象可以提供服務方法的存取路徑,為了簡化實時分布對象服務請求的調用,可以將分布式對象服務請求的調用操作作為CLASS類[8]。當實時分布對象調用一個服務方法后,客戶終端等待直到服務方法返回結果消息,為了實現這個過程,本文以模糊數學理論為理論依據,創建了一個模糊數學編碼來實現實時分布對象服務請求的調用,圖2為模糊數學編碼圖。

圖2 模糊數學編碼
在圖2中,Blockingsr1給定的最后時間期限的類型是ms,可以說明該全局時間資源為相對時間,Blockingsr2給定的最后時間期限的類型也是ms,表明為相對時間,說明該編碼的計算過程滿足上文所建立的全局時間資源要求[9]。 通過模糊數學編碼使實時分布對象的服務請求能夠在最后期限之前返回到客戶終端,以此實現實時對象服務請求API的創建。
最后需要構建一個并行通道,使實時分布對象的服務請求能夠在分布式網絡中順暢地流通。為了并行通道也能滿足實時分布對象遠程服務方法的請求,本文使用數據成員的邏輯消息并行通道進行交換服務方法[10]。在并行通道設計時,首先構建2個RMMC結構的存取門,這2個存取門可以被注明為多個遠程協作的實時分布對象的數據成員, 當數據成員通過存取門發布服務方式請求時,服務請求將會被直接傳遞到實時分布對象執行引擎的緩沖區中,通過執行引擎去執行,當請求執行完畢后,剩下的數據成員會以同樣的方式陸續進行交換。該并行通道能夠更有效率地實現實時分布對象服務方法的調用,以此實現基于模糊數學理論的實時分布對象編程[11]。
上文運用模糊數學理論設計了一個實時分布對象編程方法,為了證明該方法能夠滿足實時分布對象的編程需求,將其與傳統方法進行對比實驗,檢驗基于模糊數學理論的實時分布對象編程方法的有效性。下表為此次實驗環境參數表。
使用2種方法對實時分布對象進行編程,向實時分布對象發布700個服務請求,對比實時分布對象的服務請求執行率。圖3為服務請求執行率。

表1 實驗環境參數表

圖3 服務請求執行率
從圖3中可以看出,使用本文設計的方法編程的實時分布對象對服務請求的平均執行率為87%,而傳統方法編程的實時分布對象對服務請求的執行率平均為56%。說明此次設計的編程方法可以更好地滿足服務請求的高效性。
本文將模糊數學理論應用到實時分布對象編程中,形成了一種新的編程方法,雖然在該方面取得了一定的研究成果,但是由于研究時間較短,該方法還存在一些不足之處,今后還需要對該方法進行深入研究。