《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于會話外觀模式的EJB性能調優

基于會話外觀模式的EJB性能調優

2009-08-28
作者:梁惠平1,呂述望2

  摘 要: 通過對影響EJB性能因素的分析,給出了對EJB應用程序調優的策略和方法,并詳細說明了采用會話外觀模式的EJB設計模式后對系統性能的影響。會話外觀模式簡化了Web容器和EJB容器之間的耦合,減少了在網絡邊界上的調用過程,同時實現了對安全權限和事務的集中管理。
  關鍵詞: EJB;性能優化;會話外觀模式;耦合

?

  目前,軟件設計大多采用多層體系架構,實現了應用層與用戶層分離,這種架構形式具有更強的通用性和兼容性,提高了系統的性能和功能。
??? 在多層體系架構的應用層中,由于傳統的COM+(Component Object Model)組件技術的移植性和通用性比較有限,一般都采用J2EE的關鍵技術——EJB組件技術,該技術已得到世界上大多數廠家的支持,使系統的升級、開發過程中有更大的選擇空間。
  由于EJB組件技術作為J2EE系統技術的基礎,所以選擇不同的EJB組件模型和設計模式,在很大程度上可以影響EJB應用程序的整體性能,通常整體性能是被很小的一部分的代碼所決定。本文通過對影響EJB性能因素的分析,給出了EJB應用程序調優的策略和方法。并詳細說明了采用一種會話外觀模式的EJB設計模式后對系統性能的影響。
1 影響EJB性能的因素
  影響EJB應用程序性能的因素包括以下幾點:
??? (1)網絡帶寬和網絡業務的數量:如果網絡帶寬偏低而網絡業務較高,則應用服務器上的最優化的EJB應用程序也變得低效。
??? (2)硬件和操作系統:硬件和操作環境直接影響應用服務器的可伸縮性和性能,從而影響EJB應用程序的性能。
??? (3)應用服務器(和它們的配置)專有特性、可伸縮性的性能:應用程序的運行也依賴于運行應用程序的應用服務器,應用服務器的品牌、配置和設置都會影響應用服務器的性能和伸縮性,從而影響EJB應用程序的性能和伸縮性。
??? (4)EJB應用程序部署商為特定的應用服務器優化應用程序的知識和經驗:如果部署商沒有為操作環境和應用程序服務器優化地設置、部署參數,那么即使是最優化的EJB應用程序也會拙劣的執行。
??? (5)EJB應用程序的設計和實現:一般情況下,Bean開發人員無法控制網絡帶寬、使用的硬件類型和應用服務器的品牌。但能夠做的是:盡力地優化EJB以實現提高性能;分析裝配參數的優化設置向裝配商和部署商提供盡可能多的信息。
2 EJB應用程序的設計決策
??? 所謂EJB設計決策主要是如何選擇3種Bean:實體Bean、會話Bean和消息驅動Bean;如何選擇BMP和CMP;如何選擇本地接口和遠程接口[1,2,9]。
??? 3種Bean的選擇:如果事務中要編譯和維護數據,就要選擇實體Bean,如果數據時間上是數據的瞬像,則可使用無狀態的會話Bean,并從實體Bean中取得信息,返回數值對象。會話Bean表示業務過程,可以維護所有的業務邏輯,包括數據驗證。消息驅動Bean主要用于異步通信的過程中。
??? 有狀態的會話Bean和無狀態的會話Bean的選擇:有狀態的會話Bean需要更多的服務器資源,它在方法調用之間維護數據。無狀態的會話Bean需要更多的網絡資源,每次調用遠程方法時,需要的所有相關數據都要以參數的形式傳入。
??? BMP和CMP的選擇:CMP可以減少代碼的編寫量,而且允許容器進行很多優化,用容器實現持久性處理邏輯,具有較強的移植性。而BMP中包含數據庫訪問代碼,可以更好地控制數據實現,但額外的代碼編寫量大,移植性差。
??? 遠程接口和本地接口的選擇:本地接口可以減少開銷量,允許本地組件進行本地通信,在調用方法和參數中按引用對象傳遞,本地接口的對象不需要支持RMI-IIOP協議,傳遞速度快。遠程接口的對象在調用中按數值傳遞,提供了一個遠程的、與位置無關的視圖必須實現RMI接口,造成較大的延遲。
3 調優EJB應用程序的策略
3.1 減少遠程調用

  和EJB的分布式結構有關的主要性能的關注點就是它所需要的網絡通信量。當遠程客戶機對EJB進行調用時,需要借助RMI-IIOP協議,從而需要一定量的網絡開銷。其中包括客戶機與容器之間通過網絡傳遞數據的開銷。減少網絡開銷的方法有兩種:一種是將會話Bean作為實體Bean的前端,前端會話Bean通過對實體Bean的調用是本地方法調用,從而可以避免大量網絡通信的開銷。另外這樣可以將表示邏輯與業務邏輯分離,從而降低了EJB的復雜性。另一種是盡量使用本地接口,使用引用傳遞參數避免了調用和解調用的開銷,從而減少了不必要的網絡業務[3,7,10]
3.2 使用適當的EJB設計模式[4,7,11]
??? 設計模式可以認為是藍圖或模板解決方案,這些解決方案可以容易地修改以解決在環境中重復發生的問題。設計模式的使用可以節省時間和精力。使用驗證過的設計模式解決特定類型的問題。模式由以下元素組成:
??? (1)模式名稱:簡潔地表達了模式的本質。
??? (2)背景:問題發生的環境。
??? (3)問題:對待解決問題的細節描述。
??? (4)用途:有關形成模式的動機和基本原理的列表。
??? (5)解決方案:描述解決問題的方式,用類圖和順序圖解釋它們的結構。
??? (6)參與者及其職責:模式中所有對象的列表。
??? EJB設計模式分為:數據訪問對象模式、值對象模式、值對象裝配器模式、值對象列表處理程序模式、服務定位器模式、會話外觀模式、業務對象代表模式等7種模式。
??? 可以根據不同的實際問題應用不同的模式。值對象模式通過減少對實體Bean的精細調用而降低潛在的網絡通信量,同時通過簡單地訪問Bean的字段值給客戶端提供實體Bean,特別應用到遠程客戶端訪問實體Bean的情況。
??? 會話外觀模式允許開發人員給客戶端和表示層通過會話Bean提供大致的EJB事務邏輯訪問。這種模式向客戶提供了一個統一的訪問層和接口,負責定位、創建執行業務對象中的業務邏輯。使用會話Bean來封裝和隱藏參與業務流程的業務對象之間交互的復雜性。
4 會話外觀模式
??? 采用Grinder測試工具測試開發的原型EJB,Grinder的默認行為是發布客戶的HTTP請求,然后模擬瀏覽器請求Web服務器,通過建立1個輕便的分配器Servlet,將Web服務器上的請求給EJB容器。這樣可以很好地模仿的現實中的情況,如圖1所示。

?


4.1 測試配置及測試腳本摘錄
??? 所有的測試在三臺機器上運行:一臺運行 Grinder及其線程,另一臺運行應用服務器,第三臺運行數據庫服務器。測試在1、5、10個用戶負載下運行,通過對基準響應時間和總的事務率的測試結果,表明使用會話外觀模式的優越性。
??? 在Grinder測試腳本中執行的請求是隨著測試案例而變化的,但本質上類似,因為每個請求都是調用調度器Servlet,分析基于響應時間和總的事務率的結果[5,6,8,10]。下面是基于會話外觀測試模式的測試腳本摘錄:
??? grinder.jvm.talk=base
??? #start/stop from Grinder Cart
??? grinder.receiveCartSignals=true
??? grinder.grinderAddress=192.168.0.1
??? grinder.grinderport=789
??? ...
??? grinder.test1.parameter.url=http://sun2:5026/course/Dispatcher
??? grinder.test1.parameter.header.Content=application/x-www-form-urlencoded
??? grinder.test.description=find a course title with “6a”
??? grinder.test.paramter.post=find-6a.dat
??? ...
4.2 測試說明
??? 定義容器管理的實體Bean-CourseEJB,本文將對在CourseEJB前是否加入會話外觀模式,說明會話外觀模式的優勢。因為Web組件對實體Bean進行多次遠程調用時開銷很大。會話外觀模式使用無狀態的會話Bean封裝了Web組件需要執行的實體Bean-CourseEJB的業務邏輯[2,4]。與圖2所示的不使用會話外觀模式Facadeoff序列圖相比,圖3所示會話外觀模式使Web容器和EJB容器之間的耦合大大簡化了,多個精細的遠程實體存取器的調用變為較粗的遠程調用。即所有實體方法的調用都封裝在1個單一的會話Bean方法中:

?

?


??? public collection forCourseDescriptionLocal(String searchCourseID)
??? 該方法的實現等同于在FacadeOff中的實體Bean方法調用序列。
??? 可以把會話模式理解為在更大的粒度上實現的業務流程,在應用中,底層的企業Bean雖可以實現多種功能模塊,但這些企業Bean的功能模塊單獨存在對于客戶是沒有意義的,客戶需要的是一次完整的“操作”過程,如果在這個工程中客戶對每一種方法都要依次調用,從網絡的負荷、系統安全性及事務的集中管理等角度上都是不合理的。因此可以將“操作”作為一個會話模式封裝具體的業務過程,客戶對象在需要業務功能時只需要調用一次遠程接口,極大減少了在網絡邊界上的調用過程,同時實現了對安全權限和事務的集中管理。
4.3 測試結果比較
??? (1)響應時間對比結果如圖4所示。


??? 對于1個用戶的負載,使用會話外觀模式中使響應時間減少了38%,而10個用戶的負載使響應時間減少了81%。
??? (2)總的事務率對比結果如圖5所示。


??? 這種影響是非常顯著的,對于1個用戶的吞吐量增加了158%,10個用戶的吞吐量增加了392%。
??? 本文通過對影響EJB性能因素的分析,給出了對EJB應用程序調優的策略和方法。并詳細說明了采用會話外觀模式的EJB設計模式后對系統性能的影響。會話外觀模式減少了在網絡邊界上的調用過程,同時實現了對安全權限和事務的集中管理,使Web容器和EJB容器之間的耦合大大簡化了。隨著應用負載的增加,從系統響應時間和總的事務率都凸現出會話外觀模式的優勢,在更大的粒度上實現了業務流程。


參考文獻
[1] 孫宏濱.基于J2EE三層結構分布系統的設計與實現[J].齊齊哈爾大學學報,2002,18(4):61.
[2] 陳華軍.J2EE構建企業級應用解決方案[M].北京:人民郵電出版社,2002.
[3] 班書昊.EJB企業應用與開發實例[M].北京:北京科海電子出版社,2003.
[4] 梁剛.面向企業信息系統的J2EE[J].黑龍江通信技術,2002(1):38.
[5] CAVANESS Chuck, Special edition using enterprise java beans[D].SUN公司核心技術叢書 2002:22-27.
[6] 袁國勇.EJB組件開發模型及實現技術[J].應用技術,2002(12):22-23.
[7] 高奇微.分布式中間層EJB的研究與開發[J].中國農業大學學報,2001,6(4):88.
[8] 馬廷淮.用EJB開發J2EE應用[J].計算機應用,2002,22(4):109-110.
[9] 彭宏慶.基于EJB的多層分布式系統模型的研究與應用[J].航空計算技術,2002,32(4):106.
[10] 高振東.基于J2EE系統的EJB技術研究與應用[J].航空計算技術,2003,33(1):71.
[11] 段江.使用EJB組件技術開發多層應用[J].計算機輔助工程,2003(4):29-30.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久综合九色综合网站| 欧美三区在线视频| av成人激情| 亚洲精品1区| 亚洲高清在线播放| 小辣椒精品导航| 亚洲一区免费| 国产精品99久久久久久有的能看| 亚洲激情av| 在线日韩一区二区| 激情亚洲网站| 国内视频精品| 黄色成人av网| 一区二区在线免费观看| 激情六月婷婷久久| 一区二区三区在线观看国产| 国产尤物精品| 红桃视频成人| 亚洲丰满在线| 亚洲人成久久| 99精品国产热久久91蜜凸| 一本综合精品| 亚洲自拍偷拍麻豆| 香蕉久久夜色精品| 久久国产精品99国产| 亚洲国产精品久久久久久女王| 亚洲第一久久影院| 亚洲激情视频网站| 日韩一区二区精品葵司在线| 一区二区三区在线不卡| 亚洲黄色毛片| 亚洲第一网站| 亚洲第一在线综合在线| 亚洲国产精品www| 亚洲精品影院在线观看| 夜夜嗨av一区二区三区中文字幕| 中文在线不卡视频| 在线观看视频亚洲| 国产午夜亚洲精品羞羞网站| 国产丝袜一区二区| 国产在线乱码一区二区三区| 影音先锋欧美精品| 91久久精品网| 亚洲社区在线观看| 香蕉乱码成人久久天堂爱免费 | 亚洲日本精品国产第一区| 日韩一区二区精品视频| 亚洲欧美日韩国产综合在线| 久久久久国产精品一区| 欧美黄色日本| 国产精品一区二区男女羞羞无遮挡 | 激情亚洲一区二区三区四区| 亚洲精品国产系列| 亚洲欧美日韩区| 日韩亚洲欧美成人| 欧美亚洲视频一区二区| 欧美大片免费观看| 国产精品无码永久免费888| 伊人久久成人| 亚洲视频一区在线观看| 亚洲第一精品夜夜躁人人爽| 夜夜躁日日躁狠狠久久88av| 午夜日韩电影| 欧美精品99| 国产婷婷色综合av蜜臀av| 亚洲欧洲综合| 午夜精品一区二区三区在线播放| 亚洲人午夜精品| 欧美一区二区三区在线| 欧美激情亚洲综合一区| 国产农村妇女毛片精品久久莱园子 | 亚洲国产精品精华液2区45| 亚洲无限av看| 日韩视频一区二区三区在线播放 | 久久精品主播| 欧美日韩一区二区精品| 黄网站免费久久| 亚洲在线播放| 一区二区三区日韩欧美精品| 久久这里只有| 国产欧美日韩一区二区三区在线 | 国产一区二区剧情av在线| 亚洲乱码国产乱码精品精可以看 | 欧美婷婷久久| 亚洲激情另类| 久久精品国产一区二区电影| 亚洲欧美中文日韩v在线观看| 欧美国产日韩在线| 国产亚洲福利| 亚洲一级黄色片| 一本色道久久综合亚洲91| 嫩草国产精品入口| 国产一区二区0| 亚洲性图久久| 亚洲午夜精品国产| 欧美高清视频www夜色资源网| 国际精品欧美精品| 午夜亚洲福利| 亚洲女同精品视频| 欧美日韩一区二区三区在线| 亚洲国产三级网| 亚洲国产另类 国产精品国产免费| 欧美亚洲在线| 国产精品理论片在线观看| 亚洲精品日韩在线观看| 亚洲人成77777在线观看网| 久久资源av| 在线成人性视频| 亚洲国产精品成人va在线观看| 久久精品道一区二区三区| 国产精品欧美日韩一区二区| 9人人澡人人爽人人精品| 一本在线高清不卡dvd| 欧美激情麻豆| 91久久综合| 日韩视频永久免费| 欧美国产日韩xxxxx| 亚洲第一网站免费视频| 亚洲经典三级| 欧美激情亚洲自拍| 亚洲每日更新| 亚洲中午字幕| 亚洲欧美中文日韩v在线观看| 欧美性色综合| 亚洲视频在线二区| 亚洲尤物视频网| 国产精品天天看| 午夜精品久久久| 久久国产黑丝| 亚洲第一视频| 先锋影音一区二区三区| 亚洲欧美日韩中文视频| 国产精品v欧美精品∨日韩| 在线亚洲免费视频| 香蕉视频成人在线观看| 国产伦精品一区二区三区照片91 | 欧美一级视频免费在线观看| 久久久久久久综合| 一区二区亚洲| 99精品欧美一区| 欧美视频一区二区三区…| 一区二区三区福利| 欧美一区二区视频在线观看| 国内成人精品视频| 亚洲理论在线观看| 欧美日韩一级片在线观看| 亚洲一级二级| 久久免费99精品久久久久久| 亚洲黄色在线| 亚洲综合国产激情另类一区| 国产啪精品视频| 91久久精品一区二区别| 欧美日韩在线播放一区| 午夜久久资源| 欧美精品久久一区二区| 在线一区二区日韩| 久久精品夜色噜噜亚洲aⅴ| 在线精品国产欧美| 亚洲视频免费| 国产在线成人| av成人福利| 国产亚洲欧美日韩美女| 亚洲精品国精品久久99热一| 欧美性猛片xxxx免费看久爱| 久久国产精品久久久久久久久久| 欧美高清视频在线播放| 亚洲夜间福利| 欧美**人妖| 亚洲网站在线观看| 欧美sm视频| 亚洲欧美日本在线| 女女同性精品视频| 亚洲综合好骚| 欧美激情第六页| 先锋亚洲精品| 欧美日韩亚洲一区二区三区在线 | 亚洲国产成人一区| 欧美三日本三级少妇三2023 | 一区久久精品| 亚洲一区在线播放| 尤物yw午夜国产精品视频明星 | 国产精品专区一| 日韩午夜免费| 黑人巨大精品欧美一区二区小视频 | 久久视频一区二区| 亚洲视频播放| 欧美国产在线视频| 校园春色国产精品| 欧美日韩一区精品| 亚洲国产日韩综合一区| 国产精品极品美女粉嫩高清在线| 亚洲激情网站免费观看| 国产亚洲欧美日韩日本| 亚洲一区中文| 亚洲日本无吗高清不卡| 久久久久久久综合狠狠综合| 亚洲一区二区三区视频| 欧美日韩1区2区| 亚洲黄色精品| 国产一区二区三区av电影|