新四季網

在corba中利用模型轉換實現實時異步通信的方法

2023-05-26 13:51:06 1

在corba中利用模型轉換實現實時異步通信的方法
【專利摘要】本發明公開了一種在CORBA中利用模型轉換實現實時異步通信的方法,包括:定義CORBA組件模型中的初始接口定義語言;制定從初始接口定義語言轉換為實時異步接口定義語言的映射規則;根據映射規則將初始接口定義語言通過模型轉換技術轉換成實時異步接口定義語言;通過模型轉換技術根據實時異步接口定義語言生成CORBA組件模型中客戶端與對象請求代理之間代碼和伺服器端與對象請求代理之間代碼;利用前述代碼實現CORBA組件模型中客戶端與伺服器端之間實時異步通信的業務邏輯。本發明利用了模型轉換技術實現了CORBA系統中組件之間的實時異步通信,提高了客戶端的計算性能,為CORBA應用程式的後續開發有效地奠定了基礎。
【專利說明】在CORBA中利用模型轉換實現實時異步通信的方法
【技術領域】
[0001]本發明屬於軟體開發【技術領域】,尤其涉及一種在CORBA中利用模型轉換實現實時異步通信的方法。
【背景技術】
[0002]ORBA (Common Object Request Broker Architecture,公共對象請求代理體系結構)是一個由OMG(Object Management Group)組織提出的標準,用於實現分布式計算。
[0003]與RPC(Remote Procedure Call,遠程過程調用)有所不同,基於面向對象技術的CORBA能夠處理和解決遠程對象之間的協同操作。微軟的DCOM (Distributed ComponentObject Model,分布式組件對象模型)也能解決這個問題,但是它是基於Windows作業系統的,因此它只能在Windows作業系統上很好地實現。CORBA是平臺無關以及語言無關的,它使用IDL(Interface Definition Language,接口定義語言)來允許所有語言創建或者使用CORBA組件。
[0004]CORBA定義的對象模型會提供以下幾個功能特徵:
[0005].客戶端/伺服器端關係:在一個分布式系統中,對象是通過調用服務來和其它對象進行交互的。
[0006]?通過引用訪問:在一個客戶端對象能請求伺服器對象之前,客戶端必須要獲得一個指向伺服器端的引用。除此之外,這個調用是通過一個知名的強類型接口被執行的。能被調用的服務和這些服務的籤名在編譯階段是已知的,並且依賴於客戶端持有的引用的類型。
[0007].同步調用:服務的調用導致了客戶端和伺服器端之間的同步:一次調用是一個雙向的問答式交互。在交互過程中,客戶端發送參數,伺服器端返回結果。調用會在客戶端阻塞:它不得不在繼續它的後續工作前等待結果。這是基本調用模式,儘管CORBA提供了單向服務。
[0008]?異步調用:不同於同步調用,客戶端在伺服器返迴響應結果前不會被阻塞。所以CORBA組件模型中的異步方法調用允許客戶端組件向目標組件發送非阻塞請求。
[0009]在CORBA中,IDL用於描述服務。IDL可以被映射到一些程式語言,比如C++或者Java,並且分為2個部分。在客戶端的部分叫做IDL Stub,在伺服器端的部分叫做IDLSkeleton。重要的是2個部分能用不同的程式語言實現。對象的實現需要基於伺服器端上的skeleton來編碼。此外,客戶端不得不通過stub來訪問伺服器上的方法。客戶端和伺服器端是通過ORB (Object Request Broker,對象請求代理)總線來進行通信的。
[0010]實際上,C ORBA是一種多層客戶端/伺服器端架構,準確地說是3層客戶端/伺服器端模式。2層客戶端/伺服器端模式的問題在於,它們高度耦合,客戶端和伺服器端使用一種私有的通信協議,這會導致在伺服器上的更改會影響客戶端。與2層客戶端/伺服器端模式不同,在3層客戶端/伺服器端模式中,客戶端和伺服器端不能與對方直接通信,而是通過代理來通信。CORBA中的代理就是0RB。由於ORB的存在,客戶端和伺服器端不需要考慮通信細節,相反地只需要考慮功能的實現。所以從這個角度來說,CORBA是一種中間件技術。CORBA的架構如圖1所示。
[0011]IDL是CORBA系統中的一個重要概念。IDL的語法很像C++和Java。ORB使得CORBA成為平臺無關。然而,IDL使得CORBA語言無關。IDL只定義接口而不是實現,就像Java語言中的接口。IDL不是一個真正的程式語言,所以如果使用IDL來編寫應用程式,那麼有必要把IDL映射成對應的程式語言,比如C++或者Java。在映射之後,客戶端的Stub代碼和伺服器端的Skeleton代碼會被生成。實際上,編寫IDL是編寫CORBA應用程式的第一步,在整個軟體設計過程中有著舉足輕重的地位。
[0012]目前在CORBA中實現異步方法調用的過程中沒有設定統一的從初始IDL到異步IDL的映射規則。因此,每次在CORBA上進行軟體開發之前,需要重新定義一套適用於軟體開發的異步通信IDL的轉換規則,給開發過程帶來了很大的不便。

【發明內容】

[0013]本發明克服了現有技術中沒有規範異步IDL文件等缺陷,提出了一種在CORBA組件模型上利用模型轉換技術實現實時異步通信的方法,利用了模型轉換技術實現了在CORBA中組件之間的實時異步通信。本發明中提供了統一的映射規則,並提供了基於該映射規則的工具,使得開發者能通過工具快速地自動生成符合該規範的異步IDL文件,既提高了開發效率,又規範了 CORBA異步調用的實現方法。
[0014]本發明提出了一種在CORBA中利用模型轉換實現實時異步通信的方法,CORBA模型組件中包括客戶端、伺服器端與對象請求代理,包括如下步驟:
[0015]步驟一:定義CORBA組件模型中的初始接口定義語言;
[0016]步驟二:制定從所述初始接口定義語言轉換為實時異步接口定義語言的映射規則;
[0017]步驟三:根據所述映射規則將所述初始接口定義語言通過模型轉換技術轉換成實時異步接口定義語言;
[0018]步驟四:通過模型轉換技術根據所述實時異步接口定義語言生成所述CORBA組件模型中所述客戶端與所述對象請求代理之間的client stub代碼和所述伺服器端與所述對象請求代理之間的server skeleton代碼;
[0019]步驟五:利用所述client stub代碼和所述server skeleton代碼實現所述CORBA組件模型中客戶端與伺服器端之間實時異步通信的業務邏輯。
[0020]本發明提出的所述在CORBA中利用模型轉換實現實時異步通信的方法中,步驟一中定義所述初始接口定義語言包括如下步驟:
[0021]步驟Al:通過進行需求分析得到需求分析報告;所述需求報告包括待定義的模塊、接口、屬性和操作;
[0022]步驟A2:利用所述初始接口定義語言的語法定義接口的屬性信息;所述屬性信息包括屬性的類型;
[0023]步驟A3:利用所述初始接口定義語言的語法定義接口的操作信息;所述操作信息包括接口的操作,操作的參數列表以及操作的返回類型。
[0024]本發明提出的所述在CORBA中利用模型轉換實現實時異步通信的方法中,步驟二中通過如下步驟制定映射規則:
[0025]步驟B1:定義在所述初始接口定義語言轉換為所述實時異步接口定義語言的轉換過程中所述初始接口定義語言中的操作的映射規則;
[0026]步驟B2:定義所述轉換過程中所述初始接口定義語言的的屬性的映射規則;
[0027]步驟B3:定義所述實時異步接口定義語言的異常處理機制;
[0028]步驟B4:定義所述轉換過程中響應處理器的映射規則;
[0029]步驟B5:定義所述轉換過程和中所述響應處理器中異常處理操作的映射規則;
[0030]步驟B6:定義所述實時異步接口定義語言中的連接器;
[0031]本發明提出的所述在CORBA中利用模型轉換實現實時異步通信的方法中,所述步驟二進一步包括:步驟B7:啟動所述CORBA組件模型中所述客戶端與所述伺服器端之間的實時異步通信。
[0032]本發明提出的所述在CORBA中利用模型轉換實現實時異步通信的方法中,步驟三中的所述模型轉換技術是操作型QVT模型轉換技術,轉換過程包括如下步驟:
[0033]步驟Cl:為所述操作型QVT模型轉換技術確定模型類型;所述模型類型中包括映射體;
[0034]步驟C2:將所述映射規則應用至所述映射體中,所述操作型QVT模型轉換技術根據所述映射體實現所述初始接口定義語言轉換成實時異步接口定義語言。
[0035]本發明提出的所述在CORBA中利用模型轉換實現實時異步通信的方法中,所述步驟四包括如下步驟:
[0036]步驟Dl:定義實時異步接口定義語言轉換成所述CORBA組件模型的程式語言的轉換規則;
[0037]步驟D2:根據所述轉換規則將所述實時異步接口定義語言轉換成Client Stub代碼;
[0038]步驟D3:根據所述轉換規則將所述實時異步接口定義語言轉換成ServerSkeleton 代碼。
[0039]本發明提出的所述在CORBA中利用模型轉換實現實時異步通信的方法中,所述編程語目包括Java、C++。
[0040]本發明提出的所述在CORBA中利用模型轉換實現實時異步通信的方法中,所述步驟五包括如下步驟:
[0041]步驟El:在所述CORBA組件模型中,所述客戶端利用所述Client Stub代碼實現與代理端之間的業務邏輯;
[0042]步驟E2:在所述CORBA組件模型中,所述伺服器端利用所述Server Skeleton代碼實現與所述代理端之間的實時異步通信的業務邏輯。
[0043]本發明提出的所述在CORBA中利用模型轉換實現實時異步通信的方法中,定義實時異步通信的業務邏輯之後進一步包括:
[0044]步驟E3:所述客戶端與所述伺服器端之間實時編譯並運行程序。
[0045]本發明的有益效果是,成功地利用了模型轉換技術實現了 CORBA系統中組件之間的實時異步通信,使得在客戶端向伺服器端發送請求後直到伺服器端做出響應期間,客戶端不會被阻塞等待,以此提高了客戶端的計算性能,為CORBA應用程式的後續開發有效地奠定了基礎。
【專利附圖】

【附圖說明】
[0046]圖1是本發明中CORBA體系結構的示意圖。
[0047]圖2是本發明在CORBA中利用模型轉換實現實時異步通信的方法的流程圖。
[0048]圖3是本發明中的步驟一定義初始接口定義語言的流程圖。
[0049]圖4是本發明中的步驟二定義初始接口定義語言轉換到實時異步接口定義語言的映射規則的流程圖。
[0050]圖5是本發明中的步驟四利用模型轉換技術將實時異步IDL轉換成CORBA中的clientstub代碼和serverskeleton代碼的流程圖。
[0051]圖6是本發明中的步驟五實現CORBA客戶端和伺服器端的業務邏輯,並且編譯和運行程序流程圖。
【具體實施方式】
[0052]結合以下具體實施例和附圖,對本發明作進一步的詳細說明。實施本發明的過程、條件、實驗方法等,除以下專門提及的內容之外,均為本領域的普遍知識和公知常識,本發明沒有特別限制內容。
[0053]如圖2所示,本發明的在CORBA組件模型上利用模型轉換技術實現實時異步通信的實現方法包括以下步驟:
[0054]步驟S1:定義CORBA組件模型中的初始接口定義語言(Interface DefinitionLanguage,接口定義語言);
[0055]步驟S2:制定從所述初始接口定義語言轉換為實時異步接口定義語言的映射規則;
[0056]步驟S3:根據所述映射規則將所述初始接口定義語言轉換成實時異步接口定義
語H ;
[0057]步驟S4:通過模型轉換技術根據所述實時異步接口定義語言生成所述CORBA組件模型中的client stub代碼和server skeleton代碼;
[0058]步驟S5:利用所述client stub代碼和所述server skeleton代碼實現所述CORBA組件模型中客戶端與伺服器端之間實時異步通信的業務邏輯、編譯和運行程序。以下對於每個步驟作進一步說明。
[0059]如圖3所示,步驟SI中根據需求定義初始接口定義語言包括下述步驟:
[0060]步驟Al,分析定義初始接口定義語言時的需求信息,得到需求分析報告。從需求分析報告中得出要定義哪些模塊,接口,屬性或者操作等等,並予之合理的命名。
[0061]步驟A2根據需求分析報告,利用初始接口定義語言的語法定義接口的屬性信息包括屬性以及屬性的類型,前綴等等;
[0062]步驟A3,根據需求分析報告,利用初始接口定義語言的語法定義接口的操作,操作的參數列表以及操作的返回類型,從而定義了生成初始接口定義語言。該步驟A3之後進一步包括步驟A4,在上述過程中添加必要的注釋,使得實現接口的開發人員能更有效準確地理解該接口的功能。[0063]通過上述步驟Al至A4後生成一個後綴名為idl」的文件,該文件即為所定義的初始接口定義語言。以上各步驟可以通過在文本文件中使用初始接口定義語言的語法進行編寫,編寫完畢後把文本的後綴名從txt」更改為idl」即可。該文件中的部分定義如下代碼片段所示,其中主要定義了接口中主要元素,包括接口的屬性信息(包括屬性的類型,前綴)及操作等,該文件的語法採用BNF範式定義:
[0064]
【權利要求】
1.一種在CORBA中利用模型轉換實現實時異步通信的方法,CORBA模型組件中包括客戶端、伺服器端與對象請求代理,其特徵在於,包括如下步驟: 步驟一:定義CORBA組件模型中的初始接口定義語言; 步驟二:制定從所述初始接口定義語言轉換為實時異步接口定義語言的映射規則;步驟三:根據所述映射規則將所述初始接口定義語言通過模型轉換技術轉換成實時異步接口定義語言; 步驟四:通過模型轉換技術根據所述實時異步接口定義語言生成所述CORBA組件模型中所述客戶端與所述對象請求代理之間的client stub代碼和所述伺服器端與所述對象請求代理之間的server skeleton代碼; 步驟五:利用所述client stub代碼和所述server skeleton代碼實現所述CORBA組件模型中客戶端與伺服器端之間實時異步通信的業務邏輯。
2.如權利要求1所述的在CORBA中利用模型轉換實現實時異步通信的方法,其特徵在於,步驟一中定義所述初始接口定義語言包括如下步驟: 步驟Al:通過進行需求分析得到需求分析報告;所述需求報告包括待定義的模塊、接口、屬性和操作; 步驟A2:利用所述初始接口定義語言的語法定義接口的屬性信息;所述屬性信息包括屬性的類型; 步驟A3:利用所述初始接口定義語言的語法定義接口的操作信息;所述操作信息包括接口的操作,操作的參數列表以及操作的返回類型。
3.如權利要求1所述的在CORBA中利用模型轉換實現實時異步通信的方法,其特徵在於,步驟二中通過如下步驟制定映射規則: 步驟B1:定義在所述初始接口定義語言轉換為所述實時異步接口定義語言的轉換過程中所述初始接口定義語言中的操作的映射規則; 步驟B2:定義所述轉換過程中所述初始接口定義語言的的屬性的映射規則; 步驟B3:定義所述實時異步接口定義語言的異常處理機制; 步驟B4:定義所述轉換過程中響應處理器的映射規則; 步驟B5:定義所述轉換過程和中所述響應處理器中異常處理操作的映射規則; 步驟B6:定義所述實時異步接口定義語言中的連接器。
4.如權利要求1所述的在CORBA中利用模型轉換實現實時異步通信的方法,其特徵在於,所述步驟二進一步包括:步驟B7:啟動所述CORBA組件模型中所述客戶端與所述伺服器端之間的實時異步通信。
5.如權利要求1所述的在CORBA中利用模型轉換實現實時異步通信的方法,其特徵在於,步驟三中的所述模型轉換技術是操作型QVT模型轉換技術,轉換過程包括如下步驟: 步驟Cl:為所述操作型QVT模型轉換技術確定模型類型;所述模型類型中包括映射體; 步驟C2:將所述映射規則應用至所述映射體中,所述操作型QVT模型轉換技術根據所述映射體實現所述初始接口定義語言轉換成實時異步接口定義語言。
6.如權利要求1所述的在CORBA中利用模型轉換實現實時異步通信的方法,其特徵在於,所述步驟四包括如下步驟:步驟Dl:定義實時異步接口定義語言轉換成所述CORBA組件模型的程式語言的轉換規則; 步驟D2:根據所述轉換規則將所述實時異步接口定義語言轉換成Client Stub代碼; 步驟D3:根據所述轉換規則將所述實時異步接口定義語言轉換成Server Skeleton代碼。
7.如權利要求5所述的在CORBA中利用模型轉換實現實時異步通信的方法,其特徵在於,所述編程語目包括Java、C++。
8.如權利要求1所述的在CORBA中利用模型轉換實現實時異步通信的方法,其特徵在於,所述步驟五包括如下步驟: 步驟El:在所述CORBA組件模型中,所述客戶端利用所述Client Stub代碼實現與代理端之間的業務邏輯; 步驟E2:在所述CORBA組件模型中,所述伺服器端利用所述Server Skeleton代碼實現與所述代理端之間的實時異步通信的業務邏輯。
9.如權利要求6所述的在CORBA中利用模型轉換實現實時異步通信的方法,其特徵在於,定義實時異步通信的業務邏輯之後進一步包括: 步驟E3:所述客戶端與所述伺服器端之間實時編譯並運行程序。
【文檔編號】G06F9/44GK103902283SQ201410074874
【公開日】2014年7月2日 申請日期:2014年3月3日 優先權日:2014年3月3日
【發明者】何積豐, 錢宇清, 韓嘉臻, 劉靜 申請人:華東師範大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀