posts - 101,  comments - 29,  trackbacks - 0

          圖 1 顯示了 Axis2、Metro 和 CXF 未使用任何 WS-Security 時(shí)的測試時(shí)間。從圖中可以看出,當(dāng)請求較多而響應(yīng)較少時(shí),Metro 的速度顯著快于 Axis2 和 CXF(大約快 25%);而當(dāng)請求較少,響應(yīng)較多時(shí),其速度與 Apache 棧相同。(在本文的所有圖中,較短的柱表示時(shí)間更短,速度更快,即性能越好。)


          圖 1. 無安全框架時(shí)的測試時(shí)間
          無安全框架時(shí)的測試時(shí)間柱狀圖 

          這些結(jié)果顯示了一些不同于 Metro 1.5 和 Axis2 1.5.1 之間的 早期比較 的有趣的差異。時(shí)間結(jié)果說明,至少對于測試應(yīng)用程序所使用的數(shù)據(jù)來說,Metro 2.0 在單位請求處理方面快于 Axis2 和 CXF。在與 XML 之間的數(shù)據(jù)轉(zhuǎn)換方面,三個(gè)棧的運(yùn)行速度基本相同。這是 Metro 和 CXF 的預(yù)期結(jié)果,因?yàn)樗鼈兌际褂?JAXB 參考實(shí)現(xiàn)來進(jìn)行轉(zhuǎn)換。從這些結(jié)果中可以判斷, Axis2 所使用的默認(rèn) Axis2 Databinding Framework (ADB) 綁定實(shí)現(xiàn)的運(yùn)行速度與 JAXB 相當(dāng)。

          回頁首

          使用 WS-Security 時(shí)的性能

          下圖展示了以下安全配置的測試時(shí)間:

          • plain:無安全(與 圖 1 中的值相同)
          • username:針對請求的 WS-Security 純文本 UsernameToken
          • sign:主體和頭部的 WS-Security 簽名,使用時(shí)間戳
          • signencr:主體和頭部的 WS-Security 簽名,使用時(shí)間戳和主體加密

          圖 2 展示了 1000 個(gè)請求而響應(yīng)較少時(shí)的測定時(shí)間:


          圖 2. 響應(yīng)較少時(shí)的測定時(shí)間
          響應(yīng)較少時(shí)的測定時(shí)間柱狀圖 

          圖 3 顯示了同樣 1000 個(gè)請求但響應(yīng)較少時(shí)的相對時(shí)間(已標(biāo)準(zhǔn)化為 CXF 結(jié)果):


          圖 3. 響應(yīng)較少時(shí)的標(biāo)準(zhǔn)化時(shí)間
          響應(yīng)較少時(shí)的標(biāo)準(zhǔn)化時(shí)間柱狀圖 

          在本測試中的所有安全配置中,Axis2 始終是速度最慢的棧。Metro 始終是速度最快的,但 Metro 和 CXF 之間的性能差異將顯著小于 CXF 和 Axis2 之間的性能差異:在不同配置中,Metro 大約比 CXF 快 10%,而 Axis2 要比 CXF 慢一半還多。

          圖 4 顯示了 100 個(gè)請求但響應(yīng)較多時(shí)的測定測試時(shí)間:


          圖 4. 響應(yīng)較多時(shí)的測定時(shí)間
          響應(yīng)較多時(shí)的測定時(shí)間柱狀圖 

          圖 5 顯示了 100 個(gè)請求而響應(yīng)較多時(shí)的相對時(shí)間(已標(biāo)準(zhǔn)化為 CXF 結(jié)果):


          圖 5. 響應(yīng)較多時(shí)的標(biāo)準(zhǔn)化時(shí)間
          響應(yīng)較多時(shí)的標(biāo)準(zhǔn)化時(shí)間柱狀圖 

          在第二項(xiàng)測試中,Axis2 仍然慢于 Metro 和 CXF(仍然只有 CXF 的一半左右),并且 Metro 和 CXF 處理少量響應(yīng)消息的速度則反過來了,CXF 的速度要快 15%。

          CXF 2.1.7 與 2.1.6

          這些測試結(jié)果反映了 CXF 在版本 2.1.6 和 2.1.7 之間的性能得到顯著改善。代碼調(diào)優(yōu)對此功不可沒,但重要的是修復(fù)了 “通過 CXF 使用 WS-Security” 中所討論的問題。CXF 2.1.6 未處理 UsernameToken WS-SecurityPolicy 配置,除非存在一個(gè) <sp:TransportBinding>策略或某種形式的加密或簽名策略。通常,使用 UsernameToken 時(shí)需要提供一個(gè)增加的策略 — 特別是純文本 UsernameToken,因?yàn)槿绻麤]有傳輸級和消息級加密,則用戶名和密碼在傳遞過程中將是可見的。但是,從策略的角度來說,使用 UsernameToken 是絕對高效的(與本文的 username 配置相同),并且為 CXF 2.1.7 實(shí)現(xiàn)的修復(fù)將處理這個(gè)問題。作為修復(fù)的一部分,CXF 2.1.7 在這種特殊情況下將跳過將 WS-Security 處理添加到響應(yīng)消息流中的步驟。

          與 CXF 2.1.6 運(yùn)行的相同測試相比,在 username 配置中刪除消息流中的 WS-Security 將 CXF 的總體性能提高了幾個(gè)百分比。遺憾的是,版本之間的這種改善有點(diǎn)失真。如果 usernaeme 測試用例使用傳輸級或消息加密,則響應(yīng)消息流中將提供 WS-Security 處理,并造成該配置的 CXF 時(shí)間結(jié)果慢很多。但未來的 CXF 版本有希望擴(kuò)展策略分析,這樣僅在需求時(shí)才會在請求或響應(yīng)流中配置 WS-Security,從而將性能優(yōu)勢擴(kuò)展到更廣泛的用例(包括那些只需在一個(gè)方向上簽名或加密的用例)。

          posted on 2012-07-15 01:15 mixer-a 閱讀(1141) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 彭山县| 微山县| 叙永县| 康保县| 鄯善县| 新宾| 双城市| 唐河县| 易门县| 承德县| 西丰县| 密山市| 铁力市| 博兴县| 泸溪县| 通城县| 海阳市| 昌图县| 莆田市| 定襄县| 定日县| 彰化县| 黎平县| 漳浦县| 普陀区| 灵武市| 台东县| 来宾市| 偏关县| 禄丰县| 武川县| 儋州市| 平泉县| 修水县| 茂名市| 叶城县| 包头市| 怀来县| 灵璧县| 宜兴市| 嘉定区|