黃培泉 林坤林
1.廣東青年干部學(xué)院計(jì)算機(jī)工程系,廣東省 廣州市 510545
2.遼寧工程技術(shù)大學(xué)創(chuàng)新實(shí)踐學(xué)院,遼寧省 阜新市123000
基于Flex的服務(wù)分流框架的研究與應(yīng)用
黃培泉1.2林坤林1
1.廣東青年干部學(xué)院計(jì)算機(jī)工程系,廣東省 廣州市 510545
2.遼寧工程技術(shù)大學(xué)創(chuàng)新實(shí)踐學(xué)院,遼寧省 阜新市123000
基于Flex RIA技術(shù)的應(yīng)用系統(tǒng),隨著在線用戶增多,系統(tǒng)將變得越來越慢,甚至出現(xiàn)系統(tǒng)崩潰的現(xiàn)象。為解決該問題而提出一種服務(wù)分流框架,將用戶的服務(wù)進(jìn)行分類,然后根據(jù)不同的服務(wù)請(qǐng)求進(jìn)行業(yè)務(wù)分流,達(dá)到優(yōu)化系統(tǒng)的目的,使系統(tǒng)更快地響應(yīng)用戶的請(qǐng)求。服務(wù)分流框架已經(jīng)應(yīng)用于企業(yè)開發(fā)中,實(shí)驗(yàn)表明效果顯著。
RIA;Flex;框架;服務(wù)分流;富客戶端;
RIA; flex;framework; service stream; rich client
RIA(Rich Internet Applications)富互聯(lián)網(wǎng)應(yīng)用程序,具有高度互動(dòng)性、豐富用戶體驗(yàn)以及功能強(qiáng)大的客戶端。而Flex則是RIA技術(shù)的佼佼者。Flex是一個(gè)基于組件的開發(fā)框架,可以生成一個(gè)由Flash Player運(yùn)行的富互聯(lián)網(wǎng)應(yīng)用程序。Flex將基于標(biāo)準(zhǔn)的語(yǔ)言和各種可擴(kuò)展用戶界面及數(shù)據(jù)訪問組件結(jié)合起來,使得開發(fā)人員能夠構(gòu)建具有豐富數(shù)據(jù)演示、強(qiáng)大客戶端邏輯和集成多媒體的應(yīng)用程序。[1]
雖然Flex擁有諸多優(yōu)點(diǎn),由于其代碼最終被編譯成SWF文件,用戶通過瀏覽器下載SWF文件,再通過Flash播放器(Flash Player)進(jìn)行播放,對(duì)服務(wù)器和客戶端的硬件設(shè)備都有一定要求,同時(shí)不擅長(zhǎng)處理復(fù)雜的業(yè)務(wù)流程,主要還是適合展現(xiàn)。
針對(duì)上面的問題,為提高客戶端及服務(wù)端的性能,將用戶按服務(wù)類型進(jìn)行分類,達(dá)到服務(wù)分流的目的。
Flex 是一個(gè)高效、免費(fèi)的開源框架,可用于構(gòu)建具有表現(xiàn)力的Web應(yīng)用程序,這些應(yīng)用程序利用Adobe Flash Player和Adobe AIR, 運(yùn)行時(shí)跨瀏覽器、桌面和操作系統(tǒng)實(shí)現(xiàn)一致的部署。其起因是為解決傳統(tǒng)程序員在開發(fā)動(dòng)畫應(yīng)用方面所面臨的困難。[2]
Flex 采用GUI界面開發(fā),使用基于XML的MXML語(yǔ)言。Flex具有多種組件,可實(shí)現(xiàn)Web Services,遠(yuǎn)程對(duì)象,列排序,圖表等功能;FLEX內(nèi)建動(dòng)畫效果和其它簡(jiǎn)單互動(dòng)界面等。相對(duì)于基于HTML的應(yīng)用(如PHP、ASP、JSP、ColdFusion及CFMX等)在每個(gè)請(qǐng)求時(shí)都需要執(zhí)行服務(wù)器端的模板,由于客戶端只需要載入一次,F(xiàn)lex應(yīng)用程序的工作流被大大改善。Flex的語(yǔ)言和文件結(jié)構(gòu)也試圖把應(yīng)用程序的邏輯從設(shè)計(jì)中分離出來。[3]
Flex主要用于前端用戶交互的解決方案框架,當(dāng)復(fù)雜業(yè)務(wù)邏輯的信息系統(tǒng)進(jìn)行開發(fā)時(shí),往往會(huì)將系統(tǒng)分成三個(gè)部分,分別是客戶端、服務(wù)器端和數(shù)據(jù)存儲(chǔ)端。客戶端負(fù)責(zé)頁(yè)面表現(xiàn),即向用戶展現(xiàn)各種數(shù)據(jù),包括文本、表格數(shù)據(jù)、圖形圖像等;服務(wù)器端負(fù)責(zé)與客戶端通信,可采用分層設(shè)計(jì)模式;數(shù)據(jù)庫(kù)存儲(chǔ)端主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)工作。其基本工作流如圖1所示。
圖1 Flex 系統(tǒng)框架
目前,大部分Flex系統(tǒng)都采用上述的系統(tǒng)框架,同時(shí)前端可以結(jié)合一些其他優(yōu)秀的框架,比如Cairngorm 框架、Mate 框架、PureMVC框架、Swiz框架等;服務(wù)器端可采用分層設(shè)計(jì)模式,分為控制層、業(yè)務(wù)層、數(shù)據(jù)層和數(shù)據(jù)實(shí)體層等。這里可以采用Spring和Hibernate結(jié)合的方法來進(jìn)行開發(fā)。
但當(dāng)前這種系統(tǒng)框架的主要工作模式是固定不變的,對(duì)于處理大量用戶的需求,系統(tǒng)負(fù)擔(dān)太重,性能降低,經(jīng)研究,系統(tǒng)性能隨著用戶的增多而下降,如果超過1000名用戶以上,其性能下降尤為明顯,如圖2所示。
其原因與Flex內(nèi)部處理機(jī)制有關(guān),因?yàn)镕lex不同于傳統(tǒng)的HTML頁(yè)面,其下載與業(yè)務(wù)處理是不分開的,那么對(duì)于突發(fā)用戶劇增情況無(wú)能為力,同時(shí)也不具備靈活性,不能動(dòng)態(tài)增加服務(wù)等。
圖2 用戶-系統(tǒng)響應(yīng)時(shí)間
為了提高系統(tǒng)性能,在服務(wù)器端對(duì)用戶的請(qǐng)求進(jìn)行分類,下載服務(wù)與業(yè)務(wù)處理服務(wù)分開,將請(qǐng)求發(fā)往不同的服務(wù)器。如果有突發(fā)大量用戶情況那么將根據(jù)實(shí)際情況決定是否動(dòng)態(tài)添加服務(wù)器。提高系統(tǒng)的靈活性和可伸縮性,進(jìn)而提高系統(tǒng)的性能。
基于以上的分析,提出一種新型的服務(wù)分流框架,如圖3所示。
圖3 服務(wù)分流框架
使用Flex開發(fā)基于B/S結(jié)構(gòu)企業(yè)應(yīng)用,客戶端和服務(wù)器端的通信協(xié)議是我們所熟知的HTTP協(xié)議。在Flex中,基于HTTP協(xié)議訪問服務(wù)器的通信組件有三個(gè): HttpService、WebService和RemoteObject。本文采用RemoteObject,數(shù)據(jù)通信協(xié)議采用AMF,數(shù)據(jù)服務(wù)則使用免費(fèi)的BlazedS。
RemoteObject組件在“第三方軟件”的配合下,能夠調(diào)用后臺(tái)服務(wù)器對(duì)象上的方法,比如Java對(duì)象或者.net對(duì)象上的方法,從而實(shí)現(xiàn)客戶端與服務(wù)器端的通信。在客戶端應(yīng)用 RemoteObject可以直接將ActionScript對(duì)象序列化為AMF數(shù)據(jù)格式作為調(diào)用的參數(shù)和返回成果。[4]
配置flex客服端與服務(wù)器端java通信通道,打開remoting-config.xml配置如下:
判斷該用戶的請(qǐng)求,如果是業(yè)務(wù)處理則使用remoteObjectID.java方法(..);實(shí)現(xiàn)方法的調(diào)用,執(zhí)行業(yè)務(wù)處理操作。
本文提出服務(wù)分流框架解決Flex在企業(yè)應(yīng)用中存在的不足,該框架具有高度靈活性和伸縮性,對(duì)提高系統(tǒng)的性能起到了一定的作用,同時(shí)不會(huì)影響到Flex與其它框架的結(jié)合。此框架已經(jīng)應(yīng)用于阜新市國(guó)土資源局土地儲(chǔ)備交易管理系統(tǒng)當(dāng)中。
實(shí)踐證明,在500以內(nèi)用戶數(shù)同時(shí)并發(fā)的情況下,傳統(tǒng)框架與服務(wù)分流框架系統(tǒng)響應(yīng)時(shí)間沒有太大的區(qū)別;但超過500用戶并發(fā)的情況下,服務(wù)分流框架下系統(tǒng)響應(yīng)時(shí)間明顯較低,而且隨著并發(fā)用戶數(shù)的增長(zhǎng)優(yōu)勢(shì)有逐步增加的趨勢(shì)。如圖4所示。
圖4 傳統(tǒng)框架與服務(wù)分流框架數(shù)據(jù)對(duì)比
[1]Alaric Cole. Learning Flex3[M]. Canada: O’Reilly, June 2008.
[2]呂曉鵬.精通Flex3.0-基于ActionScript3.0實(shí)現(xiàn)[M].北京:人民郵電出版社,2008.
[3]夏輝.基于 FLEX 的信息系統(tǒng)框架研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012(6):35-38.
[4]Flex通信機(jī)制及與JAVA集成研究報(bào)告[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
遼寧工程技術(shù)大學(xué)優(yōu)秀青年基金《電子政務(wù)系統(tǒng)Web Office插件的研究及應(yīng)用》(編號(hào):09263)
黃培泉(1979-),男,碩士, 講師,研究領(lǐng)域?yàn)橛?jì)算機(jī)應(yīng)用;
林坤林(1972-),男, 學(xué)士, 高級(jí)實(shí)驗(yàn)師,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)技術(shù)。