999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種CORBA中間件通信時延性能優(yōu)化方法

2021-07-27 01:53:36劉文科
現(xiàn)代導(dǎo)航 2021年3期

呂 浩,劉文科

一種CORBA中間件通信時延性能優(yōu)化方法

呂 浩,劉文科

(中國電子科技集團公司第二十研究所,西安 710068)

CORBA是一種廣泛應(yīng)用于軟件無線電系統(tǒng)的中間件。為了滿足軟件無線電系統(tǒng)高實時性要求,本文提出基于oneway關(guān)鍵字的中間件通信時延性能優(yōu)化方法。利用該方法,通信時延降低近60%。

CORBA;軟件無線電;oneway;通信時延

0 引言

在分布式互聯(lián)互通技術(shù)領(lǐng)域中,公共對象請求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,CORBA)中間件憑借著強大的跨語言、跨操作系統(tǒng)和跨異構(gòu)平臺的能力被廣泛應(yīng)用。隨著CORBA被SCA規(guī)范所采用,越來越多的軟件無線電研究者開始關(guān)注和研究CORBA,并且開始將CORBA的應(yīng)用領(lǐng)域擴展到軟件無線電系統(tǒng)中,然而軟件無線電系統(tǒng)具有很多不同于傳統(tǒng)的計算機系統(tǒng)的特點,包括嚴(yán)格的實時性要求和靈活的通信機制等[1]。因此,為了滿足高實時性的要求,降低中間件通信時延,提高傳輸效率顯得尤為重要。

本文提出一種基于oneway的中間件通信時延性能優(yōu)化方法,并以omniORB為例進行測試,結(jié)果表明該方法能夠大幅度降低CORBA中間件的通信時延。

1 CORBA中間件

CORBA[2]是對象管理組織(Object Management Group,OMG)提出的一種面向?qū)ο蟮闹虚g件標(biāo)準(zhǔn),能屏蔽底層硬件平臺和操作系統(tǒng)的差異性,實現(xiàn)分布式環(huán)境下客戶端與服務(wù)端的通信。

1.1 CORBA體系結(jié)構(gòu)

圖1 CORBA體系架構(gòu)

CORBA對象代理請求體系結(jié)構(gòu)如圖1所示,由對象請求代管者(Object Request Broker,ORB)核心及其接口、客戶端碼根(Stub)、服務(wù)器端框架(Skeleton)、動態(tài)調(diào)用接口(Dynamic Invocation Interface,DII)、動態(tài)框架接口(Dynamic Skeleton Interface,DSI)、接口庫(Interface Repository)、實現(xiàn)庫(Implementation Repository)和對象適配器(Object Adapter)等組成[3]。

(1)ORB核心

ORB是CORBA的核心部分,提供客戶端與對象實現(xiàn)之間透明通信的機制,它的基本任務(wù)是把客戶端的請求傳遞到被激活的對象實現(xiàn)中去。

(2)接口定義語言(Interface Description Language,IDL)和語言映射

IDL用來描述對象接口,定義對象通信的操作和數(shù)據(jù)類型。IDL的語法與C++類似,同時它也增加了一些支持分布式處理的關(guān)鍵字如in、out和inout等。一個IDL說明可以包含一個或多個接口,也可以包含模塊說明。

IDL語法是一種描述性語言而非一種具體實現(xiàn)語言,利用IDL語言進行應(yīng)用程序開發(fā)時,需要將IDL語言映射為具體的編程語言,包括C++和C。IDL語言映射是CORBA應(yīng)用程序開發(fā)的關(guān)鍵,它提供了CORBA中抽象概念和模型的具體實現(xiàn)方法。

(3)碼根(Stub)和框架(Skeleton)

碼根和框架都是由IDL文件編譯生成的,且特定的框架接受特定的、對某個接口的請求。因此,通過碼根和框架的調(diào)用被通稱為靜態(tài)調(diào)用。碼根的作用是代表客戶創(chuàng)建并發(fā)請求;框架的作用則是把請求交給CORBA對象實現(xiàn)。

(4)動態(tài)調(diào)用接口DII

提供動態(tài)調(diào)用和實現(xiàn)方式。在動態(tài)方式下,客戶端或?qū)ο髮崿F(xiàn)需要查詢由接口庫提供的相應(yīng)對象接口的描述信息。在使用DII時,用戶必須自定義請求信息,包括相應(yīng)的操作及有關(guān)參數(shù)等。

(5)對象適配器

根據(jù)CORBA規(guī)范的定義,對象適配器的功能主要是完成對象引用的生成與解釋、根據(jù)對象引用找到對應(yīng)的對象實現(xiàn)、對象與實現(xiàn)的激活和終止激活、對象實現(xiàn)的注冊等。

(6)接口庫

接口庫作為一個對象而存在。應(yīng)用程序可以像調(diào)用其他CORBA對象所提供的操作一樣,來調(diào)用接口庫的操作。接口庫允許應(yīng)用程序在運行時訪問OMG IDL類型系統(tǒng)。

(7)實現(xiàn)庫

實現(xiàn)庫存儲有關(guān)服務(wù)器的信息,如服務(wù)器的名字以及相關(guān)可執(zhí)行程序的路徑。它所完成的功能與接口庫類似,只不過它存儲的是對象實現(xiàn)的信息。

(8)通用對象請求代理間通信協(xié)議(General Inter-ORB Protocol,GIOP)

OMG定義了兩個ORB之間的通信協(xié)議,即GIOP協(xié)議[2]。GIOP規(guī)范包含以下兩個元素:

1)公共數(shù)據(jù)表示(Common Data Representation,CDR)

公共數(shù)據(jù)表示是一種傳送語法,將IDL定義的數(shù)據(jù)類型映射為二進制形式。所有的IDL數(shù)據(jù)類型都使用統(tǒng)一的CDR語法編碼,保證不同的ORB實現(xiàn)之間能夠通信。它描述了如何編碼/解碼操作中的數(shù)據(jù),以便所有可能的服務(wù)端都可以抽取參數(shù)并調(diào)用遠程操作,且數(shù)據(jù)交換不會產(chǎn)生多義性。

2)GIOP消息類型

GIOP定義8種消息類型:請求消息(Request)、應(yīng)答消息(Reply)、取消請求(Cancel Request)、定位請求(Locate Request)、定位應(yīng)答(Locate Reply)、關(guān)閉連接(Close Connection)、錯誤消息(Message Error)以及分段消息(Fragment),支持ORB之間的通信。

3)GIOP消息傳輸

GIOP是一個抽象的協(xié)議,并不能進行具體的數(shù)據(jù)傳輸,它必須要被映射為具體的傳輸協(xié)議。目前應(yīng)用最廣泛的Internet上的GIOP協(xié)議就是GIOP消息到TCP/IP的映射,稱為互聯(lián)網(wǎng)內(nèi)部對象請求代理協(xié)議(Inter Inter-ORB Protocol,IIOP)。

1.2 中間件通信過程及通信時延

圖2 通信時延示意圖

中間件通信過程是指客戶端與服務(wù)端的不同域之間或者相同域內(nèi)的ORB之間使用GIOP/IIOP傳輸協(xié)議進行數(shù)據(jù)交互的過程,其中中間件通信時延是指為完成一次通信過程所需要的時間,如圖2所示。為保證準(zhǔn)確性,應(yīng)多次測試取平均值。

2 oneway及單向調(diào)用

本文提出一種基于oneway的中間件通信時延優(yōu)化方法,并以omniORB為例測試驗證。

oneway是IDL規(guī)范中定義的一個關(guān)鍵字,表明該操作是單向的。與雙向調(diào)用相比,單向調(diào)用的客戶端發(fā)出請求后,CORBA中間件將調(diào)用請求轉(zhuǎn)發(fā)給合適的服務(wù)端應(yīng)用進行處理,而客戶端不需要等服務(wù)器端的應(yīng)答,立即返回執(zhí)行后續(xù)處理,客戶端并不清楚該操作是否被正常調(diào)用[4]。單向調(diào)用以及雙向調(diào)用示意圖如圖3~圖4所示。

圖3 單向調(diào)用示意圖

圖4 雙向調(diào)用示意圖

因此,利用oneway關(guān)鍵字修飾操作,可以提高操作的傳輸效率。

3 基于oneway操作的通信時延測試

本文首先對oneway操作的實現(xiàn)及其可靠性進行測試,并在可靠傳輸?shù)幕A(chǔ)上,測試基于oneway操作的中間件通信時延。

3.1 測試環(huán)境

以Zynq7015處理器作為測試硬件平臺,其操作系統(tǒng)為Linux,構(gòu)建兩個組件通信的C/S場景,LLC作為客戶端,Net作為服務(wù)端,基于以太網(wǎng)的omniORB中間件完成通信,IP地址為192.168.10.20,測試環(huán)境如圖5所示。

圖5 測試環(huán)境示意圖

3.2 測試項及測試方法

3.2.1 oneway操作實現(xiàn)可行性及其可靠性

本文測試定義簡單接口,接口中設(shè)計一個包含單向操作的函數(shù),不具備其他功能,其參數(shù)則作為傳輸測試數(shù)據(jù)。該接口非oneway操作的IDL如下。

module Packet

const PushError PPKT_ERROR_BAD_SIZE = 1;

exception UnableToComplete

{

PushError errorCode;

};

interface OctetStream : PayloadStatus

{

void pushPacket( in StreamControlType control, in SRTF::OctetSequence payload )

雖然信息設(shè)備和信息技術(shù)的廣泛使用,為油田企業(yè)的檔案管理帶來了諸多便利,但是這些設(shè)備歸根到底還是要由人來操作。因此,檔案管理隊伍的信息素養(yǎng)的高低,就成為決定信息化數(shù)據(jù)運行管理技術(shù)應(yīng)用優(yōu)勢的核心要素。一直以來,油田企業(yè)人力資源管理的重點都是放在油田開采、技術(shù)創(chuàng)新等方面,而對于檔案管理人才隊伍的建設(shè)則缺乏足夠的重視。部分檔案管理人員甚至是從其他部門借調(diào)過來,沒有接受專業(yè)培訓(xùn)。由于專業(yè)水平和信息素養(yǎng)不高,即便是油田企業(yè)采購了信息設(shè)備,由于檔案管理人員不能熟練操作,也會影響檔案信息化數(shù)據(jù)運行管理的工作成效。

raises( UnableToComplete );

};

};

按照IDL規(guī)范將void pushPacket前添加oneway關(guān)鍵字,并刪除自定義的異常,得到oneway操作的IDL,如下所示。

module Packet

{

interface OctetStream : PayloadStatus

{

oneway void pushPacket( in StreamControlType control, in SRTF::OctetSequence payload );

};

};

因為刪去自定義異常ERROR_BAD_SIZE,本文統(tǒng)計錯包率和丟包率來判斷該接口是否收到BAD_SIZE數(shù)據(jù)包,進而判斷該接口的可靠性。

(1)測試項1:oneway操作實現(xiàn)可行性。測試步驟如下所示:

1)利用IDL-C++接口生成器將IDL翻譯生成根碼和框架,并在根碼和框架中添加測試代碼,編譯生成可執(zhí)行文件;

2)在oneway情況下,LLC中啟動測試線程,調(diào)用pushPacket發(fā)送1 kB長度數(shù)據(jù)包Oneway:LLC2NetTest----;

3)記錄客戶端和服務(wù)端發(fā)送的GIOP消息內(nèi)容;

4)在twoway情況下,LLC中啟動測試線程,調(diào)用pushPacket發(fā)送1 kB長度數(shù)據(jù)包Twoway:LLC2NetTest----;

5)記錄客戶端和服務(wù)端發(fā)送的GIOP消息交互流程及內(nèi)容。

如果客戶端與服務(wù)端GIOP消息交互流程以及內(nèi)容符合oneway定義,表明該實現(xiàn)可行,執(zhí)行測試項2,否則執(zhí)行測試項1。

(2)測試項2:oneway操作可靠性,包括丟包率和錯包率。

丟包率測試步驟如下所示:

1)在LLC中啟動測試線程,調(diào)用pushPacket發(fā)送10000次數(shù)據(jù)包;

2)在Net中統(tǒng)計調(diào)用pushPacket次數(shù)Time;

3)比較Time是否等于10000,如果相等,則無丟包;否則,有丟包,統(tǒng)計丟包個數(shù),統(tǒng)計丟包率;

4)改變發(fā)送數(shù)據(jù)包數(shù)據(jù)長度,重復(fù)步驟1)至步驟3)。

錯包率測試步驟如下所示:

1)在LLC中啟動測試線程,調(diào)用pushPacket發(fā)送10000次數(shù)據(jù)包;

2)在Net保存每次收到的數(shù)據(jù)包;

3)比較收到的數(shù)據(jù)包與發(fā)送的數(shù)據(jù)包,如果發(fā)送數(shù)據(jù)包長度與接收數(shù)據(jù)包長度相等,同時發(fā)送數(shù)據(jù)包內(nèi)容與接收數(shù)據(jù)包內(nèi)容相同,則無錯包;否則,有錯包,統(tǒng)計錯包次數(shù),計算錯包率;

4)改變發(fā)送數(shù)據(jù)包數(shù)據(jù)長度,重復(fù)步驟1)至步驟3)。

如果丟包率為0%且錯包率為0%,表明該實現(xiàn)可靠,執(zhí)行測試項3,否則執(zhí)行測試項1。

3.2.2 oneway操作通信時延

本文將完成一次LLC到Net的pushPacket接口調(diào)用所需要的時間作為中間件的通信時延。

(3)測試項3:通信時延。測試步驟如下所示:

1)在LLC組件中啟動測試線程,利用系統(tǒng)函數(shù)獲取接口開始調(diào)用的起始時間;

2)調(diào)用10000次接口函數(shù)pushPacket發(fā)送數(shù)據(jù)包;

3)利用系統(tǒng)函數(shù)獲取接口調(diào)用結(jié)束的截止時間;

4)通過起始和截止時間計算差值;

5)計算時間差值的平均值作為通信時延;

6)改變發(fā)送數(shù)據(jù)包長度,重復(fù)步驟1)至步驟5)。

4 測試結(jié)果及分析

4.1 oneway操作實現(xiàn)可行性及其可靠性結(jié)果

oneway和twoway操作通信過程涉及到的GIOP消息如圖6~圖7所示,結(jié)合GIOP消息幀格式[4]可知,twoway通信過程如下所示:

(1)客戶端向服務(wù)端發(fā)送Locate Request消息;

(2)服務(wù)端收到Locate Request消息后向客戶端發(fā)送Locate Reply消息,確認接受所指定的對象請求;

(3)客戶端向服務(wù)端發(fā)送Request消息,調(diào)用接口,開始通信;

(4)服務(wù)端向客戶端發(fā)送Response消息。

與twoway操作相比,oneway操作客戶端與服務(wù)端通信涉及Locate Request消息、Locate Reply消息以及Response消息的流程與twoway完全相同,但oneway操作服務(wù)端不向客戶端發(fā)送Response消息,符合oneway操作單項調(diào)用的含義。

圖6 oneway操作客戶端與服務(wù)端GIOP消息交互示意圖

oneway操作客戶端和服務(wù)端之間通信的Locate Request和Locate Reply消息與twoway完全相同;Request消息如圖8~圖9所示,根據(jù)幀格式可知,該消息的response_flags字段表示該操作是否是一個oneway操作[4]。oneway操作為00,twoway操作為03,符合幀格式要求。結(jié)果表明,本文采用的oneway操作實現(xiàn)方法是可行的。

圖7 twoway操作客戶端與服務(wù)端GIOP消息交互示意圖

圖8 oneway操作Request消息

圖9 twoway操作Request消息

調(diào)用10000次pushPacket接口,選取發(fā)送數(shù)據(jù)包長度分別為1 kB、3 kB、5 kB、7 kB,結(jié)果表明,在不同發(fā)送數(shù)據(jù)字節(jié)數(shù)的情況下,該操作丟包率均為0%且錯包率均為0%,表明該方法實現(xiàn)的oneway操作是可靠的,這是因為底層采用TCP/IP的通信協(xié)議,保證了傳輸?shù)目煽啃浴?/p>

4.2 oneway操作通信時延測試結(jié)果

oneway與twoway通信時延對比如圖10所示,調(diào)用10000次pushPacket接口,與twoway操作相比,oneway操作時延降低近60%,這是因為oneway操作服務(wù)端不向客戶端發(fā)送Response消息,簡化通信流程,降低通信時延。

圖10 調(diào)用10000次接口oneway與twoway時延對比圖

5 總結(jié)

本文提出基于oneway的中間件通信時延優(yōu)化方法,并以omniORB中間件為例在實際硬件平臺測試,該方法可簡化通信流程,并在保證可靠傳輸?shù)幕A(chǔ)上,將中間件通信時延可降低近60%。

[1] 軟件無線電系統(tǒng)中CORBA中間件關(guān)鍵技術(shù)研究與實現(xiàn)[D]. 長沙:湖南師范大學(xué),2016.

[2] 李方,張虹. GIOP協(xié)議和CORBA的性能優(yōu)化[J]. 微計算機信息,2006,22(21):7-10.

[3] 鞏方浩. 移動環(huán)境下CORBA應(yīng)用開發(fā)原理的分析和比較[D]. 武漢:武漢理工大學(xué),2011.

[4] 朱其亮,鄭斌. CORBA原理及應(yīng)用[M]. 北京:北京郵電大學(xué)出版社,2001.

Method to Optimize Communication Latency of CORBA

LV Hao, LIU Wenke

CORBA is a kind of middleware which is widely used in software defined radio system. In order to meet the demand of high real-time for the software defined radio system, an optimization method based on the key word oneway is proposed in the paper. By this way, 60% decrease of the communication latency of CORBA is obtained.

CORBA; Software Defined Radio; Oneway; Communication Latency

TP311

A

1674-7976-(2021)-03-227-05

2021-04-12。呂浩(1990.07-),山西呂梁人,碩士研究生,工程師,主要研究方向為軟件無線電。

主站蜘蛛池模板: 91在线中文| 手机在线免费不卡一区二| 中文字幕在线欧美| 亚洲一区二区约美女探花| 久久综合色播五月男人的天堂| 红杏AV在线无码| 亚洲自偷自拍另类小说| 伊人久热这里只有精品视频99| 日本高清在线看免费观看| 精品91自产拍在线| 亚洲精品天堂自在久久77| 99精品一区二区免费视频| 乱人伦中文视频在线观看免费| 欧美午夜在线播放| 91在线精品麻豆欧美在线| 人妻丰满熟妇AV无码区| 在线播放真实国产乱子伦| 欧美日韩高清在线| 在线国产91| AV不卡无码免费一区二区三区| 亚洲国产精品日韩专区AV| 华人在线亚洲欧美精品| 人妻91无码色偷偷色噜噜噜| 精品一区二区无码av| 欧美中文字幕在线视频| 在线网站18禁| 国产永久在线观看| 91麻豆国产视频| 亚洲有无码中文网| 久久综合色视频| 欧美亚洲香蕉| 国产精品久久国产精麻豆99网站| 中文字幕在线播放不卡| 精品一区二区三区视频免费观看| 91精品aⅴ无码中文字字幕蜜桃 | 九九热免费在线视频| 久久国产精品电影| 国产成人综合久久精品下载| 亚洲一欧洲中文字幕在线 | 88av在线播放| 大学生久久香蕉国产线观看| 日韩欧美国产中文| 亚洲精品你懂的| 亚洲日韩国产精品无码专区| 亚洲第一天堂无码专区| 精品无码国产自产野外拍在线| 欧美有码在线| 欧美午夜在线播放| 亚洲大学生视频在线播放| 日韩二区三区| 成人福利在线观看| 精品国产Av电影无码久久久| 精品成人一区二区三区电影| 亚洲中文无码av永久伊人| 日韩高清无码免费| 国产大片黄在线观看| 国产成人a毛片在线| 成人国产精品一级毛片天堂| 国产一在线观看| 亚洲高清无码久久久| 国产欧美在线观看视频| 国产精品视频白浆免费视频| 伊人久久婷婷五月综合97色| 国产成人亚洲精品蜜芽影院| 中文字幕伦视频| 五月婷婷中文字幕| 成人福利在线视频| 操国产美女| 精品伊人久久久大香线蕉欧美| 精品国产欧美精品v| 国产成人三级| 国产一区二区三区免费观看| 亚洲日本中文字幕乱码中文| 久草中文网| 亚洲精品无码日韩国产不卡| 26uuu国产精品视频| 久久国语对白| 亚洲福利视频一区二区| 大学生久久香蕉国产线观看| 精品午夜国产福利观看| 91精品专区| 夜夜操狠狠操|