Java+Flex打造完美RIA應(yīng)用
漂亮的圖形和用戶界面是豐富的互聯(lián)網(wǎng)應(yīng)用程序(RIA應(yīng)用)的最明顯的特征。但是側(cè)重于外表,忽略一個(gè)重要的客客戶端功能:豐富的數(shù)據(jù);Java+Flex無疑是解決這一問題的完美方案。
能夠在客戶端迅速的過濾和排序數(shù)千行的數(shù)據(jù),比如,可以在業(yè)務(wù)應(yīng)用上提供更好的體驗(yàn),而不是花費(fèi)時(shí)間翻閱幾十行的數(shù)據(jù)。或者,允許用戶快速可視化數(shù)據(jù)的交互式圖表,可以證明這比讓一個(gè)用戶從服務(wù)器上閱讀靜態(tài)圖表有效得多。
如此的交互式體驗(yàn)是有可能實(shí)現(xiàn)的,因?yàn)樨S富的客戶端技術(shù)有能力有效的從服務(wù)器上面獲取大量的相關(guān)數(shù)據(jù),以及在客戶端的地址空間執(zhí)行與顯示相關(guān)的處理。另外,一個(gè)豐富的客戶端可以從多個(gè)服務(wù)器應(yīng)用中獲取數(shù)據(jù),得到一個(gè)混合的結(jié)果。
逐步加強(qiáng)
逐步加強(qiáng),這個(gè)術(shù)語是由Steven Champeon 創(chuàng)造的,指的是能夠一步一步的改進(jìn)傳統(tǒng)能力,Web 1.0風(fēng)格的應(yīng)用程序,伴隨著豐富的客戶端功能:代替必須要批發(fā)購(gòu)買豐富的客戶端技術(shù),這就有可能在客戶端引進(jìn)一種更好的用戶體驗(yàn),而不需要大幅度的改寫。在這個(gè)系列的另一端,當(dāng)與應(yīng)用程序的架構(gòu)深度結(jié)合的時(shí)候,一個(gè)豐富的客戶端技術(shù)需要提供某種能力來實(shí)現(xiàn)最大程度的客戶端利用,比如,利用本地圖形加速或者客戶端環(huán)境的多核CPU架構(gòu)。
一個(gè)分析豐RIA應(yīng)用的方法就是研究將它們引進(jìn)到現(xiàn)有的企業(yè)級(jí)應(yīng)用程序中的難易度。Flex,Adobe的開源豐富客戶端技術(shù),為逐步加強(qiáng)現(xiàn)有的企業(yè)級(jí)應(yīng)用提供了很多種可能性。這篇文章介紹了五種技術(shù),開發(fā)者可以使用這些技術(shù)來改善用戶體驗(yàn),現(xiàn)有的企業(yè)級(jí)Web應(yīng)用程序的視覺吸引也使用Flex: 程序員常用的Flex代碼總結(jié)將一個(gè)Flex用戶界面放入到一個(gè)現(xiàn)有的HTML頁(yè)面中(FlashVars):這種技術(shù)需要幾乎沒有改變現(xiàn)有的企業(yè)應(yīng)用,但是可以通過簡(jiǎn)單HTML提供重要用戶界面的改進(jìn)。
HTTP數(shù)據(jù)存取:這種技術(shù)設(shè)想暴露了企業(yè)應(yīng)用的Flex數(shù)據(jù)服務(wù)的客戶可通過HTTP拜訪。這樣的數(shù)據(jù)服務(wù)可以返回JSON格式的數(shù)據(jù)。JSON在Java+Flex打造的RIA應(yīng)用的數(shù)據(jù)傳送中起到重要作用。
XML 與HTTP:這是早前技術(shù)的一個(gè)變化,但是在現(xiàn)在的技術(shù)下,客戶端可以從服務(wù)器存取XML數(shù)據(jù),使用Flex的語言級(jí)別XML的支持來處理顯示數(shù)據(jù)。遠(yuǎn)程方法調(diào)用服務(wù)器端Java對(duì)象:這項(xiàng)技術(shù)依賴于開源BlazeDS遠(yuǎn)程架構(gòu),為服務(wù)器上面Java對(duì)象的Flex客戶端的直接參考進(jìn)行安排。通過HTTP,客戶端—服務(wù)器之間的交流仍然可以進(jìn)行,使得這項(xiàng)技術(shù)適用于與安全的企業(yè)應(yīng)用防火墻相互配合。
分布式信息:Flex的遠(yuǎn)程方法調(diào)用是基于一種普遍的Flex信息框架。這種框架可以被用來推動(dòng)服務(wù)器端的數(shù)據(jù)到Flex客戶端,并且對(duì)于Flex客戶端而言,是可以與企業(yè)級(jí)應(yīng)用系統(tǒng)相結(jié)合的。
第一項(xiàng)技術(shù)將會(huì)在這篇文章中進(jìn)行解釋;第二以及第三項(xiàng)技術(shù)將會(huì)在隨后的文章中進(jìn)行解釋;最后兩項(xiàng)技術(shù)將會(huì)在這一系列文章的結(jié)論部分進(jìn)行說明。 Flex:Engine Yard的全新云服務(wù)
除了這五項(xiàng)技術(shù)以外,F(xiàn)lex客戶端可以開放一個(gè)直接聯(lián)結(jié)端口到網(wǎng)絡(luò)服務(wù)器。直接聯(lián)結(jié)端口,無論如何,是一項(xiàng)重要的工具,主要用于流媒體類型的應(yīng)用,對(duì)于企業(yè)發(fā)展的幫助比較小。最終,F(xiàn)lex也支持SOAP。但是SOAP與HTTP技術(shù)是非常相似的,在很多現(xiàn)代Web 技術(shù)中SOAP應(yīng)用程序正在逐漸取代RESTful HTTP。
在這一些列文章之后,將會(huì)描述Flex與Java框架Spring應(yīng)用相結(jié)合的情況;另一篇文章將會(huì)研究Flex 和Scala結(jié)合的情況。
每一種Flex集成技術(shù)用一個(gè)運(yùn)行實(shí)例來說明:管理書店貨存清單的應(yīng)用,允許用戶增添以及編輯圖書的數(shù)據(jù),也包括查找圖書功能。
圖一,用戶界面出現(xiàn)視覺的主要細(xì)節(jié),包括圖書標(biāo)題的數(shù)據(jù)網(wǎng)格,一系列的查找過濾,以及一個(gè)詞條控制板。
HTML嵌入(FlashVars)
Flex應(yīng)用程序運(yùn)行在Flash Player上。Flash Player是一種有特色的瀏覽器插件,但是Adobe的AIR運(yùn)行時(shí)也使得桌面部署Flex應(yīng)用程序。Flash Player的主要部分是ActionScript虛擬計(jì)算機(jī),執(zhí)行Flash字節(jié)碼所在的Flex應(yīng)用程序的編譯。Adobe開源ActionScript虛擬計(jì)算機(jī)2006版本,然后作為Mozilla Tamarin項(xiàng)目繼續(xù)實(shí)現(xiàn)它的部署。Flash Player,它本身并不是開源的,增加了應(yīng)用管理,多媒體規(guī)范,運(yùn)行時(shí)間分配和更新,以及其它ActionScript VM性能。
通過Java+Flex的結(jié)合,無疑將對(duì)程序的用戶界面做出愉快的改進(jìn),同時(shí),又保證了RIA應(yīng)用在數(shù)據(jù)和業(yè)務(wù)處理能方面不再一無是處。
【編輯推薦】