黃培泉 林坤林
1.廣東青年干部學院計算機工程系,廣東省 廣州市 510545
2.遼寧工程技術大學創新實踐學院,遼寧省 阜新市123000
基于Flex的服務分流框架的研究與應用
黃培泉1.2林坤林1
1.廣東青年干部學院計算機工程系,廣東省 廣州市 510545
2.遼寧工程技術大學創新實踐學院,遼寧省 阜新市123000
基于Flex RIA技術的應用系統,隨著在線用戶增多,系統將變得越來越慢,甚至出現系統崩潰的現象。為解決該問題而提出一種服務分流框架,將用戶的服務進行分類,然后根據不同的服務請求進行業務分流,達到優化系統的目的,使系統更快地響應用戶的請求。服務分流框架已經應用于企業開發中,實驗表明效果顯著。
RIA;Flex;框架;服務分流;富客戶端;
RIA; flex;framework; service stream; rich client
RIA(Rich Internet Applications)富互聯網應用程序,具有高度互動性、豐富用戶體驗以及功能強大的客戶端。而Flex則是RIA技術的佼佼者。Flex是一個基于組件的開發框架,可以生成一個由Flash Player運行的富互聯網應用程序。Flex將基于標準的語言和各種可擴展用戶界面及數據訪問組件結合起來,使得開發人員能夠構建具有豐富數據演示、強大客戶端邏輯和集成多媒體的應用程序。[1]
雖然Flex擁有諸多優點,由于其代碼最終被編譯成SWF文件,用戶通過瀏覽器下載SWF文件,再通過Flash播放器(Flash Player)進行播放,對服務器和客戶端的硬件設備都有一定要求,同時不擅長處理復雜的業務流程,主要還是適合展現。
針對上面的問題,為提高客戶端及服務端的性能,將用戶按服務類型進行分類,達到服務分流的目的。
Flex 是一個高效、免費的開源框架,可用于構建具有表現力的Web應用程序,這些應用程序利用Adobe Flash Player和Adobe AIR, 運行時跨瀏覽器、桌面和操作系統實現一致的部署。其起因是為解決傳統程序員在開發動畫應用方面所面臨的困難。[2]
Flex 采用GUI界面開發,使用基于XML的MXML語言。Flex具有多種組件,可實現Web Services,遠程對象,列排序,圖表等功能;FLEX內建動畫效果和其它簡單互動界面等。相對于基于HTML的應用(如PHP、ASP、JSP、ColdFusion及CFMX等)在每個請求時都需要執行服務器端的模板,由于客戶端只需要載入一次,Flex應用程序的工作流被大大改善。Flex的語言和文件結構也試圖把應用程序的邏輯從設計中分離出來。[3]
Flex主要用于前端用戶交互的解決方案框架,當復雜業務邏輯的信息系統進行開發時,往往會將系統分成三個部分,分別是客戶端、服務器端和數據存儲端。客戶端負責頁面表現,即向用戶展現各種數據,包括文本、表格數據、圖形圖像等;服務器端負責與客戶端通信,可采用分層設計模式;數據庫存儲端主要負責數據的存儲工作。其基本工作流如圖1所示。

圖1 Flex 系統框架
目前,大部分Flex系統都采用上述的系統框架,同時前端可以結合一些其他優秀的框架,比如Cairngorm 框架、Mate 框架、PureMVC框架、Swiz框架等;服務器端可采用分層設計模式,分為控制層、業務層、數據層和數據實體層等。這里可以采用Spring和Hibernate結合的方法來進行開發。
但當前這種系統框架的主要工作模式是固定不變的,對于處理大量用戶的需求,系統負擔太重,性能降低,經研究,系統性能隨著用戶的增多而下降,如果超過1000名用戶以上,其性能下降尤為明顯,如圖2所示。
其原因與Flex內部處理機制有關,因為Flex不同于傳統的HTML頁面,其下載與業務處理是不分開的,那么對于突發用戶劇增情況無能為力,同時也不具備靈活性,不能動態增加服務等。

圖2 用戶-系統響應時間
為了提高系統性能,在服務器端對用戶的請求進行分類,下載服務與業務處理服務分開,將請求發往不同的服務器。如果有突發大量用戶情況那么將根據實際情況決定是否動態添加服務器。提高系統的靈活性和可伸縮性,進而提高系統的性能。
基于以上的分析,提出一種新型的服務分流框架,如圖3所示。

圖3 服務分流框架
使用Flex開發基于B/S結構企業應用,客戶端和服務器端的通信協議是我們所熟知的HTTP協議。在Flex中,基于HTTP協議訪問服務器的通信組件有三個: HttpService、WebService和RemoteObject。本文采用RemoteObject,數據通信協議采用AMF,數據服務則使用免費的BlazedS。
RemoteObject組件在“第三方軟件”的配合下,能夠調用后臺服務器對象上的方法,比如Java對象或者.net對象上的方法,從而實現客戶端與服務器端的通信。在客戶端應用 RemoteObject可以直接將ActionScript對象序列化為AMF數據格式作為調用的參數和返回成果。[4]
配置flex客服端與服務器端java通信通道,打開remoting-config.xml配置如下:

判斷該用戶的請求,如果是業務處理則使用remoteObjectID.java方法(..);實現方法的調用,執行業務處理操作。
本文提出服務分流框架解決Flex在企業應用中存在的不足,該框架具有高度靈活性和伸縮性,對提高系統的性能起到了一定的作用,同時不會影響到Flex與其它框架的結合。此框架已經應用于阜新市國土資源局土地儲備交易管理系統當中。
實踐證明,在500以內用戶數同時并發的情況下,傳統框架與服務分流框架系統響應時間沒有太大的區別;但超過500用戶并發的情況下,服務分流框架下系統響應時間明顯較低,而且隨著并發用戶數的增長優勢有逐步增加的趨勢。如圖4所示。

圖4 傳統框架與服務分流框架數據對比
[1]Alaric Cole. Learning Flex3[M]. Canada: O’Reilly, June 2008.
[2]呂曉鵬.精通Flex3.0-基于ActionScript3.0實現[M].北京:人民郵電出版社,2008.
[3]夏輝.基于 FLEX 的信息系統框架研究[J].計算機技術與發展,2012(6):35-38.
[4]Flex通信機制及與JAVA集成研究報告[R].信息科技有限公司,2012(4)
The Research and Application of Service Streaming Framework Base on Flex
Huang Peiquan1.2, Lin Kunlin1
1.Department of Computer Engineering, Guangdong Youth Leaders College, Guangzhou 510545, China
2.College of Innovation and Practice, Liaoning Technical University, Liaoning Fuxin 123000, China
With the increase in online users,the application system based on Flex RIA technology will become more and more slowly, or even system cause the phenomenon of system crashes.In order to solve the problem and achieve the purpose of optimization system, a service streaming framework was proposed,which the user services are classified,and then, depending on defferent service request,the business is shunted to make the system faster response to user requests.The service streaming framework has been applied to enterprise development, experimental results show that the effect is obvious.
P315.69
A
10.3969/j.issn.1001-8972.2012.21.034
遼寧工程技術大學優秀青年基金《電子政務系統Web Office插件的研究及應用》(編號:09263)
黃培泉(1979-),男,碩士, 講師,研究領域為計算機應用;
林坤林(1972-),男, 學士, 高級實驗師,研究方向為計算機網絡技術。