国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于用戶-服務器環(huán)境的中間件技術比較和測試

2013-07-19 10:06:54張秋霞
實驗室研究與探索 2013年5期
關鍵詞:分布式計算序列化數組

張秋霞,李 焱

(1.黃河科技學院 現代教育技術中心,河南 鄭州450063;2.鄭州航空工業(yè)管理學院 計算中心,河南 鄭州450015)

0 引 言

自從上世紀90 年代以來,計算工業(yè)一直在使用如DCOM、CORBA 面向對象的中間件平臺。在程序開發(fā)者使用分布式計算的性能指標,面向對象中間件是十分重要的,性能高效的分布式應用程序的需求一天天增長。而實現分布式應用程序的效率,取決于選擇適當的分布式計算中間件技術,使得程序開發(fā)過程中分布式計算中間件技術具有更好的性能。如何在多項技術中選擇最高效的分布式計算對象中間件技術以構建高性能的分布式應用是本文研究的重點。本文針對常用的四個分布式計算對象中間件技術對比分析,包括通用對象請求代理體系結構(CORBA)[1],ZeroC 開發(fā)的互聯(lián)網通信引擎(ICE)[2],AIST 開發(fā)的HORB[3],微軟開發(fā)的Dot NET Remoting[4]。

迄今所做的研究工作大多是基于通用的分布式計算對象的中間件技術,包括CORBA,RMI 和DCOM。文獻[5]比較了CORBA,RMI 和DCOM 三者在兩個應用之間傳遞消息速度的性能。文獻[6]再次比較了CORBA,DCOM 和RMI 三者的性能,但是使用了不同的性能指標。文獻[7]對基于Java 的分布式對象中間件技術,其中包括RMI 和RMI-IIOP 做了性能分析、比較和優(yōu)化。文獻[8]對RMI 的性能效率做了廣泛的研究,并且與其它分布式對象中間件做了比較。遵循不同的性能指標選擇最合適的中間件會讓開發(fā)人員開發(fā)出高效的分布式應用,中間件需降低計算和延遲時間以便達到程序開發(fā)所要求的性能水平,使能在分布式應用中產生較低的額外開銷[9-12]。以前還沒有對分布式對象中間件技術研究工作根據不同的性能指標作過比較。本文通過性能評價檢測,對選定的四種分布式計算對象中間件技術進行比較。

1 分布式計算對象中間件技術

中間件技術的分類很多,本文挑選常用的中間件ICE、Dot NET Remoting、CORBA、HORB 進行性能評價和比較。

1.1 ICE

ICE (Internet Communications Engine)是一種面向對象的中間件平臺[13]。從根本上說,這意味著ICE 為構建面向對象的客戶-服務器應用提供了工具、API和庫支持。ICE 應用適合在異種環(huán)境中使用:客戶和服務器可以用不同的編程語言編寫,可以運行在不同的操作系統(tǒng)和機器架構上,并且可以使用多種網絡技術進行通信。無論部署環(huán)境如何,這些應用的源碼都是可移植的。ICE 已經成為一個新的面向對象的中間件技術,與傳統(tǒng)的面向對象的DCOM 和CORBA 技術相比具有先進的功能。隨著面向對象的中間件的發(fā)展,分布式應用也進入了新的計算模式[14]。ICE 中間件平臺處理任何中間件提供很多的重要功能,例如封送處理和解封送處理映射邏輯對象地址到物理傳輸終點,根據本機C/S 模式改變數據的表述,并且根據需求自動啟動服務器。ICE 架構由不同的組件組成,其中包括ICE、Slice、代理代碼、框架代碼、對象適配器和ICE 協(xié)議[15]。

1.2 Dot NET Remoting

Dot NET Remoting 可以使我們建立基于. NET Framework 的分布式應用以解決一些分布式應用問題。Dot NET Remoting 為分布式對象提供了一個基礎框架,通過它,我們建立使用對象為網絡通信應用。Dot NET Remoting 組成部件包括客戶端對象、服務器對象、代理對象、通道和格式化器。

1.3 CORBA

CORBA (Common Object Request Broker Architecture)是由對象管理組織(OMG)開發(fā)的標準分布式對象架構。CORBA 是一個分布式的面向對象的客戶機/服務器平臺,用于構建基于對象的分布式應用。CORBA 包括面向對象的遠程過程調用(RPC)機制,提供了基本的遠程過程調用服務。CORBA 構架的主要部件包括對象請求代理(ORB)、IDL stubs、ORB接口和對象適配器。

CORBA 對象引用不透明性存在一定的問題:它不僅需要更加復雜的API 和運行支持,還會妨礙構建現實的系統(tǒng)。為此,CORBA 增加了像 corbaloc 和corbaname 這樣的機制,以及用于進行引用比較的is_equivalent 和hash 操作。所有這些機制都降低了對象引用的不透明性,但CORBA 平臺的其他部分仍試圖維持引用是不透明的。導致開發(fā)者引用既不是完全不透明的、也不是完全透明的,所帶來的混亂和復雜性相當大。

1.4 HORB

HORB 是輕量型分布式計算中間件,它擴展了Java 網絡計算功能,以便開發(fā)基于Java 的分布式應用。用HORB 編寫的程序可以在任何操作系統(tǒng)上運行。這是從Java 繼承來的特點,HORB 基于java 編寫的程序在許多機器上運行往往不需要重新編譯。鑒于HORB 程序可以在許多不同類型機器上運行的特點,程序員可以方便地利用HORB 的可移植性。HORB 的部件包括代理對象、基礎對象、對象請求代理(ORB)[4]。

2 實驗測試和比較

本文通過設置用戶-服務器環(huán)境進行中間件技術的性能評價。測試環(huán)境由兩臺電腦組成,一臺作為客戶端服務器,另一臺作為服務器,兩者由一個100 Mbit的網絡連接。操作系統(tǒng)選用Windows XP 操作系統(tǒng),該系統(tǒng)可以承載實驗所需軟件的所有需求。測試中使用的軟件Sun JDK1.5 來實現CORBA,HORB 和ICE 的安裝啟動,Dot NET Framework 平臺被用來測試基于TCP 的Dot NET Remoting,最后使用可檢測額外開銷的分析器,其中有ethereal 、hpjmeter 分析器和CLR 分析器。本文對選定的中間件技術ICE、CORBA、HORB和Dot NET Remoting 進行測試結果進行了比較。

2.1 測試方法

對中間件進行測試可分為兩大類:第一類是額外開銷測試,第二個是往返延遲測試。針對每個測試類別中進行兩次測試:首先是原始數據類型測試(這是基于單一數據的特定數據類型值),其次是在測試中使用數組測試(這是基于使用大量數據進行的測試)。在測試往返延遲的原始數據的同時,檢查中間件往返延遲的可擴展性因子,并討論測試的結果。

2.2 開銷測試

開銷測試的根本目的在于檢查對于實際傳輸的網絡數據有多少額外的網絡流量是由中間件技術產生的。

2.2.1 原始數據類型測試

將不同數據類型的數據值傳遞到遠端,這個測試反映了中間件技術在額外開銷方面的性能。圖1 展示的是原始數據類型和空調用方法的開銷測量值。我們可以觀察到,在不同的分布式計算對象中間件技術中,所有原始數據類型產生的開銷取決于數據類型位的大小。在所有分布式計算對象中間件技術中,Long 和Double 原始數據類型相比其他數據類型產生更高的開銷。這是因為Long 和Double 型數據在所有分布式計算對象中間件技術中都是用64 bit 表示的。比較所選擇的中間件技術的整體性能,我們可以看到與其他中間技術相比Java IDL 所產生的開銷最大。其中最重要的原因是,CORBA 的IIOP 協(xié)議使用公共數據表示(CDR)。并且,CDR 的padding 規(guī)則產生較高的網絡開銷。

圖1 額外開銷(原始數據類型)

另一方面,ICE 在網絡額外開銷方面表現得較好,它產生的網絡開銷比CORBA 低50%。其原因是ICE的編碼規(guī)則非常簡潔,從而降低了額外開銷。從實驗中我們所看到的結果,HORB 比Dot NET Remoting 表現要好,因為HORB 不使用任何類型的鏈接復用,而鏈接復用會產生過多的數據復制,增加網絡的開銷。HORB 沒有ICE 表現好是由于HORB 的編碼規(guī)則表現最差。

2.2.2 數組檢測

數組測試的前提是使用相同的原始數據測試。并且,客戶端應用對選定的原始數據類型可以設置不同的數組大小。本文選擇Double 數據類型進行陳列實驗測試,通過原始數據類型測試表明在四個中間件技術中Double 原始數據類型表現最差,如圖1 所示。我們所評價的分布式計算對象中間件技術的性能測試是基于不同數組大小的Double 數據類型。在圖2 中,可以根據數組傳送觀察中間件技術的性能。如果比較圖1 和圖2 會發(fā)現在額外開銷方面Dot NET Remoting 已經替代了CORBA 的位置,圖形顯示Dot NET Remoting產生的開銷比表現最好的ICE 多4 倍,究其原因是Dot NET Remoting 處理大型數據的效率偏低。因此,當我們增加數組的大小,Dot NET Remoting 的額外開銷也隨之增加,如圖2 所示。

ICE 與所有其他的分布式計算對象中間件技術相比顯示出最佳的性能,其背后的原因是對比其它所有中間件技術,ICE 使用了更簡潔的編碼技術。

圖2 額外開銷(不同數組的大小)

2.3 往返延遲測試

這些測試的原因是要檢查依據中間件技術執(zhí)行完整的調用方法每調用一次需要多少ms。在原始數據類型檢測中,本文檢測基于在多個客戶端負載下,分布式計算對象中間件技術能有多高的往返延遲性能。因為可擴展性也是一項檢查中間件技術性能的重要性能指標。

2.3.1 原始數據類型檢測

原始數據類型檢測用來選擇較高的中間件技術往返遲延性能。采用發(fā)送單、雙精度值的原始數據類型值。借助越來越多的客戶端需求數,來測試中間件的可擴展性因子。從圖3 可以看到,相比所有其他分布式計算對象中間件技術HORB 呈現出最佳的性能。

圖3 往返延遲(單精度數據值傳送)

從圖3 分析,隨著客戶端數目的增加,HORB 與其它中間件技術之間的性能差異也越來越大。HOBR 產生的往返延遲比表現最差的CORBA 少4 倍。HORB中間件技術這種性能背后的原因是HORB 使用系統(tǒng)對 象 序 列,包 括 ObjectOutputStream 和ObjectInputStream,其中ObjectOutputStream 本身產生了緩沖。

從實驗結果分析,序列化過程比其它中間件序列花費更少的時間。另一方面,Java CORBA 在每調用消耗ms 數方面的性能表現最差,因為CORBA 在CDR的過程中使用padding,使得序列化過程減緩。因此所有其它的分布式計算對象中間件相比,CORBA 的往返延遲性能最差。相比Dot NET Remoting,ICE 每調用所用ms 數最小。我們已收集的結果顯示,在序列化的過程中ICE 比Dot NET Remoting 所用時間更少。這說明ICE 序列化過程比Dot NET Remoting 更快。

2.3.2 數組測試

這個檢測的目的在于,當用戶發(fā)送大量用數組傳遞的數據時,檢查往返延遲的性能。這個測試使用不同大小的Double 數據類型數組。從圖4 中我們能清晰地看到,Dot NET Remoting 在處理大尺寸數據方面表現最差,根據我們已收集到的數據來看是因為序列化過程花費了更多的時間。相比HORB,它大約有5倍的往返延遲。另一方面,由于序列化的效率,HORB的效率結果最好。ICE 比 CORBA 和 Dot NET Remoting 的測試結果更好。

圖4 往返延遲(數組傳遞)

3 結 語

本文針對分布式計算對象中間件技術ICE、HOBR、Dot NET Remoting 和CORBA 的額外開銷和往返延遲這兩項性能指標做了詳細的性能評價和比較。在不同的測試環(huán)境下測試了這些性能指標。開銷測試表明,影響分布式計算對象中間件技術開銷的因素有數據復制、簡潔或是復雜的編碼規(guī)則。在用任意數據類型和任意數據尺寸的額外開銷測試中,相比較其他的中間件技術ICE 的測試結果更好。在往返延遲測試中,因為對序列化的過程使用了外部序列化器,HOEB具有低的往返延遲。借助分析器收集的結果表明,HORB 在序列化過程中花費的時間比ICE 少。根據實驗結果,我們給分布式應用開發(fā)建議,在額外開銷方面ICE 是最有效的中間件。對時間要求嚴格的分布式應用,HORB 是對構建時間要求嚴格的分布式應用的最佳選擇。

[1] 車文富. CORBA 與OLE/COM 互操作實現技術[J].計算機工程與應用,2007,13(2):104-106.

[2] 王宇. 基于ICE 的安全中間件的研究與實現[J]. 現代計算機(專業(yè)版),2011,9 (5):71-73.

[3] http://horb.aist.go.jp/horb/doc/guide

[4] NONG Sun-bo. Research of a database platform based on EMS-API CIM[D]. Beijing:Tsinghua University,2001:99-101.

[5] Florian Mircea Boain Aan Rares,RMI VERSUS CORBA. A MessageTransfer Speed Comparison[J]. Stidia University,2004,1(1):104-107.

[6] Bracho A,Matteo A,Metzner Ch. ATanxonomy For Comparing Distributed Object Technologies[J]. CLEI Electronic,2009,2 (2):58-61.

[7] Matjaz B Juric,Ivan Rozman,Alan P Stevens,Marjan Hericko,Simon Nash. Java 2 Distributed Object Models Performance Analysis[J],Comparison and Optimization,2008 1(1):381-385.

[8] Sanjay P Ahuja,Renato Quintao. Performance Evaluation of Java RMI: A Distributed Object Architecture for Internet Based Applications”[C]∥8th International Symposium on Modeling,Analysis and Simulation of Computer Telecommunication Systems,2009:125-129.

[9] (美)戴維斯. 開源SOA[M].高宇翔譯.北京:電子工業(yè)出版社,2010.

[10] 孔 浩,姜 娜.URP 中基于POX 的業(yè)務系統(tǒng)集成模型的設計與實現[J].長春工程學院學報,2012,13(2):103-105.

[11] (美)布 朗.SOA 實踐指南:應用整體架構.[M]. 胡鍵譯. 北京:機械工業(yè)出版社,2009.

[12] 孔 浩,顧慶傳.利用SOA 對高校URP 業(yè)務進行標準化設計的研究[J]. 昆明理工學院學報,2012 (3):86-88.

[13] (美)休依特.Java SOA Cookbook[M]. 孫 燕譯. 北京:清華大學出版社,2011.

[14] 梁金明. 基于Web 的畢業(yè)設計管理與監(jiān)控系統(tǒng)設計[J]. 四川理工學院學報(自然科學版),2011,24(5):537-540.

[15] 張橫云,何海濤.SOA 體系的安全研究與設計[J]. 四川理工學院學報(自然科學版),2009,22(1):44-47.

猜你喜歡
分布式計算序列化數組
JAVA稀疏矩陣算法
電腦報(2022年13期)2022-04-12 00:32:38
如何建構序列化閱讀教學
甘肅教育(2020年14期)2020-09-11 07:58:36
JAVA玩轉數學之二維數組排序
電腦報(2020年24期)2020-07-15 06:12:41
基于云計算的移動學習平臺設計與實現
軟件導刊(2016年11期)2016-12-22 21:47:07
云計算中MapReduce分布式并行處理框架的研究與搭建
Java 反序列化漏洞研究
面向異構分布式計算環(huán)境的并行任務調度優(yōu)化方法
尋找勾股數組的歷程
作文訓練微格化、序列化初探
語文知識(2015年12期)2015-02-28 22:02:15
VB數組在for循環(huán)中的應用
考試周刊(2012年88期)2012-04-29 04:36:47
蓬莱市| 嘉黎县| 陆丰市| 平顶山市| 吴忠市| 仙游县| 买车| 内江市| 舒城县| 安岳县| 华亭县| 札达县| 南溪县| 平乐县| 永修县| 广昌县| 肥西县| 务川| 靖边县| 武隆县| 饶平县| 政和县| 元朗区| 文昌市| 社会| 金乡县| 历史| 奉新县| 镇沅| 多伦县| 杭州市| 唐河县| 得荣县| 玉门市| 昌吉市| 综艺| 米脂县| 卓尼县| 万山特区| 惠东县| 东宁县|