作者
Jon Rose
譯者
王麗娟
發(fā)布于
2008年4月1日 下午7時23分
- 社區(qū)
- Java
- 主題
- RIA,
- Silverlight,
- 富客戶端/桌面
- 標(biāo)簽
- Flex,
- Flash,
- JavaFX腳本,
- JavaPolis,
- GWT

InfoQ.com和Stephan Janssen坐在一起討論,向他了解了
Parleys.com的相關(guān)情況,并問了他對新興的RIA平臺的看法。Stephan創(chuàng)建了每年于比利時舉辦的
JavaPolis大會。
JavaPolis是目前僅次于JavaOne的第二大Java會議。Stephan還是Parleys.com的創(chuàng)始人和工程師主管。
Parleys.com是一個RIA平臺,用來發(fā)布視頻、播客、幻燈片等諸如此類的在線學(xué)習(xí)資料。除了討論Parleys.com,Stephan還跟
InfoQ.com的讀者分享了他對Adobe Flex/AIR、JavaFX、Google Web
Toolkit(GWT)、以及Silverlight的看法。
你能概述一下Parleys.com嗎?
Parleys.com是
下一代的RIA電子學(xué)習(xí)平臺,在這個平臺上,人們能在瀏覽器里或是在桌面上觀看視頻講座。現(xiàn)在,Parleys.com的默認(rèn)頻道提供來自
JavaPolis、SpringOne、BeJUG、JavaBin、Jazoon、EclipseCon的一些優(yōu)秀技術(shù)演講視頻。頂級品質(zhì)的Java
內(nèi)容總共將近有200個小時。
Parleys.com
觀眾也能把這些講座下載到本地磁盤離線觀看,這是一個使用得越來越多的優(yōu)秀特性。瀏覽器和桌面應(yīng)用程序都能讓你用全屏模式觀看演講,甚至能在觀看時動態(tài)調(diào)
整播放模板。播放時間軸可以讓我們的觀眾添加注釋、標(biāo)簽,并在需要的地方跳過幻燈片。你能在菜單欄選擇自己喜歡的幻燈片演示設(shè)置(我自己喜歡3D
Cube),或在自己的收藏列表中添加某個演講、查看其它相關(guān)的演講。
瀏
覽器和桌面應(yīng)用程序之間無縫集成是一個很好的特性。比如說,你能從瀏覽器中啟動桌面應(yīng)用程序。桌面應(yīng)用程序啟動之后,如果你在瀏覽器下載某個演講,它會被
添加到桌面應(yīng)用程序的下載隊列中。這樣當(dāng)你從瀏覽器中觀看演講的時候,如果該演講已經(jīng)下載過,流數(shù)據(jù)就會由桌面程序負(fù)責(zé)從本地磁盤中取得。這會節(jié)省你的
(還有我們的)一些帶寬。
另一個頂好的特性是后退按鈕能正常工作,你還能對演講中的某個特定的幻燈片進(jìn)行深度鏈接。
構(gòu)建應(yīng)用使用的技術(shù)是什么呢?架構(gòu)是什么樣的? 瀏
覽器版本我選的是Adobe
Flex3,桌面客戶端選用AIR。但由于服務(wù)器端設(shè)計為使用REST的服務(wù)層,所以我們可以很容易地添加其它技術(shù)類型的客戶端。目前,我們正在并行地開
展JavaFX客戶端(它看起來非常有發(fā)展前景)、GWT、Silverlight的工作。對比較不同技術(shù)來說,這是一種有趣而有根據(jù)的檢驗。
Parleys.com的架構(gòu)是如何發(fā)展的? 目
前公布的Parleys.com版本(我們的第一個版本)是一個使用輕量級AJAX的Web應(yīng)用,其中Flash和JavaScript在一起無縫協(xié)作。
我們超過十萬的用戶很快提出了更多的RIA特性需求,像在全屏模式下觀看演講、觀看過程中更換播放器模板、甚至下載演講并離線觀看。用DHTML和
Ajax滿足不了更進(jìn)一步的需求,對此類客戶端來說,考慮像Flex/AIR、JavaFX這類RIA技術(shù)會更有意義一些。在我必須決定選擇哪種RIA技
術(shù)的時候(2007年6月),JavaFX語言才剛剛發(fā)布。于是,合理而實際的選擇就是從Adobe工具開始。
你對Adobe AIR/Flex的總體印象是什么樣的? 作為一個Java開發(fā)人員,學(xué)習(xí)面向?qū)ο蟮腁ctionScript和UI標(biāo)記語言實在是像公園散步般簡單。但問題是(Java)開發(fā)人員不是設(shè)計人員,而設(shè)計人員需要這兩項技能來使用RIA技術(shù)。這就是我對Adobe的Thermo項目感到非常興奮的原因。它能在Photoshop設(shè)計人員和開發(fā)人員之間的鴻溝上架設(shè)一個橋梁(很令人興奮的東西)。
Flex和AIR的另一個優(yōu)點是,你能選擇不同的通訊策略——比如XML、JSON、AMF(二進(jìn)制格式)——容易地與Java后端協(xié)同工作。Adobe甚至(在07年的JavaPolis大會上)開源了他們名叫BlazeDS的遠(yuǎn)程產(chǎn)品(用Java開發(fā)),BlazeDS允許你從ActionScript訪問服務(wù)器端Java服務(wù)。
與Java比起來,F(xiàn)lex和AIR的不足之處是質(zhì)量保證方面的工具不足。例如,ActionScript代碼的靜態(tài)分析(像FindBugs、PMD、Simian等)還不可用。Jetbrains最近在IDEA 7.0.3中添加了對Flex的支持,我覺得是個驚喜。它讓你使用代碼分析器分析ActionScript代碼,這是一個好的開始。不過,現(xiàn)在我還不確定是否要用Flex去開發(fā)一個超過500個屏幕顯示的ERP應(yīng)用。JavaFX對企業(yè)世界有很大影響也在于此。
對
嵌入式RIA應(yīng)用來說,另一個機(jī)遇是要便于搜索引擎搜索。RIA內(nèi)容能被搜索引擎索引是非常重要的,這樣人們才能通過Google、Yahoo等搜索引擎
查找到你的站點。你可以用一個并行的靜態(tài)站點來方便搜索引擎,不過這樣工作量太大了。我更喜歡用RSS Feeds或Atom
Publisher協(xié)議的優(yōu)勢來達(dá)成一樣的效果……等我們試驗成功之后我再告訴你。
Flex
和Java之間的“交叉授粉作用”說起來也很有意思。Annotation在Java中是主流。你能觀察到Flex陣營也露出了類似的端倪。比如
說,F(xiàn)lex的元數(shù)據(jù)標(biāo)簽就用于與Annotation類似的行為。因此可以想象注解過的Java EE
5實體通過類似技術(shù)被重用為ActionScript實體,并在客戶端映射進(jìn)SQLlite。
我對Flex/AIR較高的期望有:
- 就個人而言,我希望在AIR未來的版本中能出現(xiàn)Socket監(jiān)聽器,因為如果不這樣,AIR應(yīng)用中要實現(xiàn)完全的P2P功能也許只能使用Hack。
- 通過AIR文件部署Java應(yīng)用也許會非常棒。這可以讓我利用在Java中的投入。在我們頭腦風(fēng)暴的時后,還想過用Java語言開發(fā)Flex和AIR應(yīng)用呢。
- 讓簽名的Flex應(yīng)用擺脫Flash沙箱的束縛。
作為一個Java的長期倡導(dǎo)者,社區(qū)是如何認(rèn)可你對Adobe AIR/Flex的深入研究? Parleys.com的Flex/AIR版本已在去年12月的JavaPolis 2007大會上發(fā)布。在那個主題演講中,我說明了技術(shù)難題,但也解釋了我們的觀眾要求的功能。
2007
年6月我們決定開發(fā)Parleys.com的一個RIA版本。我本來可以繼續(xù)DHTML/AJAX路線,但我對版本1已經(jīng)覺得非常痛苦了,我對Ajax的
求知欲消失殆盡。2007年6月,選擇JavaFX做為技術(shù)路線為時太早,而且由于我在Mac上開發(fā),Silverlight也不可用。所以,合理的選擇
就是考慮Adobe
Flex/AIR。服務(wù)器端仍然使用WebWork/Velocity、Spring和Hibernate來保持100%的Java。
這一選擇帶來的好事兒就是我的一些Java同僚震驚于Flex版的發(fā)布,于是他們決定重用相同的后端開發(fā)一個JavaFX和GWT客戶端。我必須要說這看起來非常有發(fā)展前景。我會在一場非正式的JavaOne技術(shù)討論會中介紹這些不同的Parleys.com策略。
你可以觀看Parleys.com的主題演講。
JavaFX發(fā)布已經(jīng)將近一年了,你有哪些與此相關(guān)的經(jīng)驗呢?
JavaFX
的工具支持仍需要加強(qiáng),但更重要的是,我希望Sun
Microsystems也能著手處理Photoshop和JavaFX之間的鴻溝,以便開發(fā)人員和設(shè)計人員能夠協(xié)作(就像Adobe正在計劃做的那
樣)。支持主流的音頻、視頻編解碼器是JavaFX獲取成功的另一個重要特性。JavaFX要是想在RIA領(lǐng)域分一杯羹,把JavaFX應(yīng)用作為
Applets部署(運行在JRE update
N)、具有與Flash一樣的(冷/熱)啟動體驗也是至關(guān)重要的。希望下一屆JavaOne大會上能提供相關(guān)信息。
作為一個平臺,你認(rèn)為JavaFX在正確的軌道上嗎?它要取得成功必須實現(xiàn)的關(guān)鍵項目是什么?
JavaFX的優(yōu)勢當(dāng)然是成熟的Java平臺和快速的運行時環(huán)境,尤其是JavaFX代碼編譯之后。我發(fā)現(xiàn)重新設(shè)計現(xiàn)有的(企業(yè))Swing應(yīng)用有巨大的商機(jī),MVC中的視圖部分可以使用更好看的JavaFX皮膚來替換。
如果JavaFX Mobile允諾的那些都能實現(xiàn),JavaFX也能得到巨大的推進(jìn)。Java(FX)、AIR、Silverlight,誰第一個應(yīng)用于iPhone,讓我們拭目以待。
你對GWT的印象如何?你對于把Java編譯成JavaScript有什么疑慮嗎? 體驗了DHTML/Ajax處理多瀏覽器/多操作系統(tǒng)的痛苦之后,我越來越欣賞GWT的策略。
我們已經(jīng)有了Parleys.com客戶端的第一個GWT原型。它看起來很不錯,而且在不同的瀏覽器和操作系統(tǒng)上不需要調(diào)整。Google的確實現(xiàn)了他們的承諾,以Google中匯集的腦力是理所當(dāng)然的。
開發(fā)新的組件有點兒挑戰(zhàn),我希望活躍的GWT社區(qū)能繼續(xù)成長并發(fā)布更多的UI組件。發(fā)布GWT版本之后我們會關(guān)注觀眾們更喜歡哪一個客戶端。我會讓你保持消息靈通的。
你花時間研究過Silverlight嗎?對它的總體印象如何? 我安裝過Silverlight的版本1和版本2早期的一個Beta版。Demo確實能在Mac上的Firefox中運轉(zhuǎn),除此之外就沒什么值得提的了。看看Dolmen公司中負(fù)責(zé)Microsoft技術(shù)的同事能給我?guī)硎裁大@喜吧……我可沒給你們壓力啊 ;)
你認(rèn)為,或者說希望一年半之后RIA領(lǐng)域會怎樣呢?
看
DHTML/Ajax陣營是否能像RIA那樣進(jìn)取。GWT將會在這場較量中扮演重要的角色。一年半之后,我們也許就有了Flex4和AIR2。到那個時
候,Photoshop設(shè)計人員先繪制出原型,F(xiàn)lex開發(fā)人員在上面添加一些邏輯就可以收官了。由于未來因特網(wǎng)和電視之間的趨同,我們將能制造類似
iTunes的應(yīng)用,在各種操作系統(tǒng)(包括Linux)上在線或離線播放HD交互式視頻。
一年半之后,我應(yīng)該已經(jīng)知道Adobe AIR和/或Java(FX)是否運行在iPhone上,還有JavaFX Mobile的承諾能不能落實……美妙的時刻!
Parleys.com
是一個真正的Web
2.0應(yīng)用。希望InfoQ.com社區(qū)能借鑒Parleys.com構(gòu)建過程中的經(jīng)驗,因為它就像領(lǐng)先的RIA平臺相互較量的一個實驗臺。讓我們看看什
么技術(shù)能使Stephan成功,還有他的團(tuán)隊最終會為Parleys.com選擇什么技術(shù)做為他們的主平臺。
查看英文原文:Stephan Janssen On Parleys.com And The RIA Landscape