?

適用于軟件無線電分布式環境的CORBA 中間件性能分析*

2022-08-23 01:53然,魯瀚,郭
通信技術 2022年7期
關鍵詞:中間件單板吞吐量

鄢 然,魯 瀚,郭 蕾

(武漢中原電子集團有限公司,湖北 武漢 430205)

0 引言

提供一種開放的、可互操作的、有統一標準的軟件平臺是軟件通信體系結構[1](Software Communication Architecture,SCA)設計的目標,從而實現軟件無線電通信中對各個軟件組件的重用以及移植。由于公用對象請求代理體系(Common Object Request Broker Architecture,CORBA)具有良好的互操作性、異構性,因此被SCA 規范采用,同時受到更多人的關注。隨著軟件無線電研究的深入,越來越多種類的中間件被開發出來,包括面向消息的中間件(Message Oriented Middleware,MOM)、遠程過程調用中間件(Remote Procedure Call,RPC)、遠程方法調用中間件(Remote Method Invocation,RMI)、面向數據分發服務中間件(Data Distribution Service,DDS)、面向對象請求代理中間件(Object Request Broker,ORB)[2]等。中間件承載的作用主要是使客戶端和服務端互通,其中不可避免地會出現時延以及性能消耗。如何在眾多的中間件中選出最適合當前運行環境的中間件成為一道難題。

文獻[3]在Ubuntu 14.04 虛擬機中運行RPCexpress、TAO、omniORB、e*ORB 和ORBit 這5 種常用的中間件,從時延、可預測性、吞吐量、靜態封裝大小、動態內存占用5 個方面分別進行對比分析,實驗數據分析合理,對比充分,但實驗環境不是傳統的嵌入式軟件無線電平臺。

文獻[4]在軟件無線電教學平臺ZLSDR-1000上,基于omniORB、Binder、ZeroMQ 3 種不同架構的中間件構建測試組件,進行傳輸時延測試,實驗環境的核心芯片為ZYNQ 7030 SoC。然而該實驗環境并不是軟件無線電分布式環境,并且在單一芯片上進行測試,數據可能因為中間件設計方式和操作系統的支持,而直接通過共享內存進行傳輸。

文獻[5]基于OSSIE 0.8.1 環境的omniORB 4.1.4中間件構建通信組件,研究表明,隨著組件數量的增加和數據包長度的增加,中間件時延性能受到的影響越大。

文獻[6]在軟件無線電分布式環境下,基于嵌入式VxWorks 系統,分析TAO 中間件在不同組件數量下通信數據時延的表現,研究表明組件數量增加到3 個以上時,傳輸時延顯著增加。

國內外目前對于中間件的性能分析的相關研究主要集中在兩個方向:一類研究主要在x86 環境的虛擬機中對各種中間件進行時延、吞吐量的性能對比,數據結果具備一定的參考意義,但缺乏在嵌入式環境下的數據對比分析;另一類在嵌入式軟件無線電環境下,對基于單一中間件進行組件化開發來測試多組件下中間件的時延,但也缺乏多個中間件之間的性能對比分析。針對目前軟件無線電環境下波形對中間件軟件的實際需求,結合軟件無線電分布式場景的應用方向,本文針對常見的TAO、omniORB、e*ORB 這3 種CORBA 中間件,在平均傳輸時延、傳輸時延抖動、吞吐量3 個方面進行深入測試分析,以選出具有更高性能的中間件產品。

1 中間件的介紹

CORBA 是對象管理組(Object Management Group,OMG)提出的一種面向對象、可移植的中間件標準,它不依賴于編程語言、計算平臺、網絡協議,因此能夠實現分布式環境下客戶端與服務端之間的通信。CORBA 的主要組成部分如圖1 所示。

圖1 CORBA 的主要組成部分

如圖1 所示,ORB 是CORBA 的核心部分,也是本文性能分析主要討論的部分。把客戶端發出的請求傳遞給目標對象,并把目標對象的執行結果返回給發出請求的客戶端是ORB 的主要任務。因為ORB 屏蔽了對象的位置、狀態、通信機制等信息,所以在客戶端看來,每個對象都是透明的,并且能夠調用它,但是對客戶端而言這些對象是不能修改的,因為它并不知道每個對象的內部詳情。

1.1 TAO

TAO 是一種在自適應通信環境(Adaptive Communication Environment,ACE)的基礎上開發的中間件[7],根據CORBA 2.6 規范進行實現,該中間件是開源的,實現了核心的分布式功能。TAO 支持C、C++兩種語言,能夠適配多種操作系統。

1.2 omniORB

omniORB 是一種基于對象請求代理的中間件,根據CORBA 2.6 規范進行實現,該中間件開發的目的是能讓用戶通過簡潔和高效的方式提供CORBA規范中最實用、最普遍的功能。omniORB 支持C++和Python 兩種語言,并且適配Unix、Windows 等多種操作系統。

1.3 e*ORB

e*ORB 是一種基于對象請求代理的中間件,根據CORBA 2.3 規范進行實現,該中間件開發的目的是適配minimum CORBA,保留經常使用的接口,刪減不常用的接口,高度組件化的架構使其成為目前為止最小且最快的ORB 中間件。e*ORB 支持C++、C 和Java 3 種語言,并且適配Unix、Windows操作系統。

2 測試環境

測試環境采用典型的軟件無線電波形開發環境,具體包含了主控模塊、信號處理模塊、信道模塊和天線。主控模塊主要運行操作系統,進行業務處理、音頻收發處理等,實現系統資源控制,對外提供網口、串口、音頻接口等功能型接口,用于提供整個平臺對外的外圍接口和業務處理功能,采用SoC 芯片zynq XC7Z015 實現。信號處理模塊主要用于進行波形功能的開發,以及整個軟件無線電波形網絡路由與信號處理的開發,實現信號不同速率的抽取、插值濾波、增益控制等功能,采用SoC芯片zynq XC7Z035 實現,主控模塊與信號處理模塊通過SGMII 接口直接相連實現千兆以太網功能,組成分布式處理環境。信道模塊則采用一個射頻SoC 芯片和射頻前端功放共同實現。具體硬件結構如圖2 所示。

圖2 軟件無線電分布式硬件平臺

軟件無線電分布式環境中,SoC 芯片zynq XC7Z015 和SoC 芯片zynq XC7Z035 均運行Linux 系統,內核版本4.6.0,SoC 芯片內PS 端ARM 工作頻段為667 MHz,將中間件軟件TAO、omniORB、e*ORB 在主控模塊和信號處理模塊上運行測試。

3 中間件的性能測試

為了測試TAO、omniORB、e*ORB 這3 種中間件之間的性能差異,本文選取了平均傳輸時延、傳輸時延抖動、吞吐量這3 個傳輸性能指標進行實測分析。

實驗測試方法是通過客戶端向服務端發送數據,依靠中間件進行傳輸,并依次在zynq XC7Z035單板內,以及zynq XC7Z015 和zynq XC7Z035 雙板間兩種硬件環境下進行測試,其中,zynq XC7Z015和zynq XC7Z035 雙板間中,服務端運行在zynq XC7Z035 上,客戶端運行在zynq XC7Z015 上??蛻舳酥械膮蛋〝祿鼉热輙empstr_ptr、數據包大小pkt_len、循環次數pkt_num。其中數據包大小包括256 B、1 024 B、4 KB、8 KB、64 KB、128 KB、192 KB。循環次數為1 000 次。

本文中使用到的接口函數包括test_delay()、test_jitter()、test_throughout(),由交互式數據語言(Interactive Data Language,IDL)來實現框架代碼的生成,其IDL 定義如下:

3.1 平均傳輸時延

平均傳輸時延的測試方法具體為,先獲取數據包發送前的時間t1,然后客戶端通過中間件將數據傳輸給服務端,獲取數據包發送結束的時間t2,兩者相減的數據記為Tt=t2-t1,單位為μs,此時獲取到傳輸一次的傳輸時延,循環該過程1 000 次,再根據計算公式得出平均傳輸時延,其中Tr為平均傳輸時延,單位為μs,pkt_num為循環次數,Tt為單次傳輸時延,單位為μs。

表1、表2、表3 分別為TAO、omniORB、e*ORB 3 種中間件的平均傳輸時延測試結果。

表1 TAO 平均傳輸時延

表2 omniORB 平均傳輸時延

根據表1、表2 和表3 可以看出,使用TAO、omniORB、e*ORB 這3 種中間件進行測試,雙板的平均傳輸時延均比單板平均傳輸時延大,且數據包大小越大,平均傳輸時延越長。

表3 e*ORB 平均傳輸時延

圖3、圖4 分別為TAO、omniORB、e*ORB 3種中間件在單板和雙板條件下的平均傳輸時延測試結果。

從圖3 和圖4 可以看出,在單板的情況下,數據包比較小的時候,使用omniORB 中間件和使用e*ORB 中間件的平均傳輸時延大小相差不大,使用TAO 中間件的平均傳輸時延要稍長于另外兩種中間件。然而,數據包越大時,使用e*ORB 中間件的平均傳輸時延會比其他兩種中間件的小,而TAO 中間件的平均傳輸時延要遠大于另外兩種中間件。在雙板的情況下,數據包比較小的時候,使用omniORB 和e*ORB 中間件的平均傳輸時延大小相差不大,使用TAO 中間件的平均傳輸時延要稍長于另外兩種中間件。然而,數據包越大,使用e*ORB 中間件的平均傳輸時延會比其他兩種中間件的小,使用e*ORB 和omniORB 中間件之間的差距雙板比單板更大,使用TAO 中間件的平均傳輸時延要遠大于另外兩種中間件。

圖3 zynq XC7Z035 單板3 種中間件平均傳輸時延對比

圖4 zynq XC7Z015 和zynq XC7Z035 雙板3 種中間件平均傳輸時延對比

3.2 傳輸時延抖動

傳輸時延抖動的測試方法先是獲取數據包發送前的時間t1,然后客戶端通過中間件將數據傳輸給服務端,獲取數據包發送結束的時間t2,兩者相減的數據記為Tt=t2-t1,并存入curTime 數組中,循環該過程1 000 次,將curTime 數組中最大的數據記為Tmax,最小的數據記為Tmin,傳輸時延抖動T=Tmax-Tmin,單位為μs。

表4、表5、表6 分別為TAO、omniORB、e*ORB 3 種中間件的傳輸時延抖動測試結果。

表4 TAO 傳輸時延抖動

表5 omniORB 傳輸時延抖動

根據表4、表5、表6 可以看出,單板的傳輸時延抖動基本小于雙板的傳輸時延抖動,使用TAO中間件在單板與雙板兩種硬件測試條件下進行測試時,傳輸時延隨著數據包的增大而增大,且增長幅度大;使用omniORB 中間件在單板與雙板兩種硬件測試條件下進行測試時,傳輸時延抖動基本隨著數據包的增大而增長;使用e*ORB 中間件在單板與雙板兩種硬件測試的條件下進行測試時,傳輸時延抖動基本在一定范圍內浮動。

表6 e*ORB 傳輸時延抖動

圖5、圖6 分別為TAO、omniORB、e*ORB 3種中間件在單板和雙板條件下的傳輸時延抖動測試結果。

圖5 zynq XC7Z035 單板3 種中間件傳輸時延抖動對比

圖6 zynq XC7Z015 和zynq XC7Z035 雙板3 種中間件傳輸時延抖動對比

根據圖5、圖6 可以看出,在單板硬件測試環境下,使用e*ORB 中間件的傳輸時延抖動都較小,且維持在一定的范圍內;使用omniORB 中間件時,傳輸時延抖動隨著數據包的增大而偏大,且浮動范圍較大;使用TAO 中間件時,當數據包大小不大于64 KB 時,抖動時長在一定的范圍內波動,當數據包大小大于64 KB 時,抖動時長明顯增長且浮動范圍大。在雙板硬件測試環境下,使用e*ORB 中間件的傳輸時延抖動都較小,且抖動的幅度比單板要更小一些;使用omniORB 中間件的傳輸時延抖動基本隨著數據包的增大而增大,且隨著數據包大小的增大,抖動幅度也隨之增大;使用TAO 中間件時,當數據包大小不大于128 KB 時,傳輸時延抖動時長在一定的范圍內波動,當數據包大小大于128 KB 時,抖動時長明顯增長且浮動范圍大。

3.3 吞吐量

吞吐量的測試方法先是獲取數據包發送前的時間t1,然后客戶端通過中間件將數據傳輸給服務端,每次傳輸的數據包大小為pkt_num,次數為c,再獲取數據包發送結束的時間t2,兩者相減的數據記為Tt=t2-t1,根據公式T=(c×pkt_num)/Tt計算出吞吐量的值,其中,T為吞吐量,單位為Mbit/s,pkt_num為數據包大小,單位為MB,Tt為數據發送時間,單位為μs。

表7、表8、表9 分別為TAO、omniORB、e*ORB 3 種中間件的吞吐量測試結果。

從表7、表8、表9 可以看出,使用3 種中間件進行測試雙板的吞吐量均明顯小于單板的吞吐量。一般情況下,數據包越大吞吐量越大,當數據包足夠大的時候,吞吐量是在一定的范圍內浮動的。

表7 TAO 吞吐量

表8 omniORB 吞吐量

表9 e*ORB 吞吐量

圖7、圖8 分別為TAO、omniORB、e*ORB 3種中間件在單板和雙板條件下的吞吐量測試結果。

圖7 zynq XC7Z035 單板3 種中間件吞吐量對比

圖8 zynq XC7Z015 和zynq XC7Z035 雙板3 種中間件吞吐量對比

從圖7 和圖8 可以看出,不論是單板還是雙板,使用TAO 中間件的吞吐量都是最小的并且差距大,使用e*ORB 中間件的吞吐量都要大于使用omniORB 中間件的吞吐量,但是差距不太大。當數據包的大小大于64 KB 時,吞吐量的數據變化幅度不大,在一定的范圍內波動。

4 結語

如今,運用于數據通信中的中間件種類日益豐富,能夠解決更多數據通信中出現的問題,但是如何選擇性能最合適的中間件是十分重要的問題。中間件作為一個能夠允許組件獨立開發并能彼此交互的中間層,它起著承上啟下的作用。而數據在通過中間件傳輸的時候必然會帶來一定的時延和性能消耗。本文在zynq XC7Z035 單板以及zynq XC7Z015和zynq XC7Z035 雙板兩種硬件環境下,分別測試了TAO、omniORB、e*ORB 這3 種中間件的平均傳輸時延、傳輸時延抖動、吞吐量這3 個性能指標,并通過數據之間的對比,為后續在不同環境中選用合適的中間件提供可靠的數據支持。

猜你喜歡
中間件單板吞吐量
單板U型場地滑雪關鍵技術動作及訓練方法
劉佳宇——2018年平昌冬奧會單板滑雪女子U型場地亞軍
RFID中間件技術及其應用研究
基于Android 平臺的OSGi 架構中間件的研究與應用
2017年3月長三角地區主要港口吞吐量
2016年10月長三角地區主要港口吞吐量
2016年11月長三角地區主要港口吞吐量
封面人物 單板滑雪凌空飛燕蔡雪桐
云計算環境下中間件的負載均衡機制研究
2014年1月長三角地區主要港口吞吐量
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合