【depriveof425 】Adobe Flex開源後將在RPC上有更多選擇
Adobe宣佈對Adobe Flex平臺作了大改動,大量的生命週期資料服務(LiveCycle Data Services)在BlazeDS專案中被開源,開源內容還包括AMF的規格說明和程式碼。對於那些正在考慮採用Flex平臺的人來說,這次改動應該清除了最終的成本和許可障礙。
Adobe Flex應用程式部署並執行在Flash Player中,其後臺邏輯通過RPC訪問,以一種類似於客戶/伺服器的構架方式。Flex中有很多不同的RPC選項,包括Web Services、HTTP和AMF/Data Services。AMF是一個二進位制協議,比傳統的RPC方法具有更多的優點。Adobe的James Ward在他的Blog文章“BlazeBench: Why you want AMF and BlazeDS”中著重提到了它在效能和頻寬上的優點。
Adobe的Ted Patrick在他的文章“The ABC’s of AMF”中詳細描述了AMF的基本概念,並概括列出了下列幾個優點:
1. 檔案大小 —— AMF物件非常小且使用zlib壓縮。
2. 快速序列化/反序列化 —— AMF在player中使用本地C程式碼轉化,因而執行非常之快。AMF格式本身就被設計為在低記憶體和慢CPU條件下依然能夠快速序列化和反序列化。由於 AMF資料直接被解析為物件,沒有稽核解釋或解析AMF的延遲,物件的建立可一次完成。
3. 本地型別和自定義類的支援 —— 除了displayObjects,你可以序列化Flash Player中的任何物件。在反序列的時候如果自定義類在Flash Player中,你也可以將先前序列化的物件對映回自定義類例項。
在Adobe宣佈AMF和BlazeDS開源之前,開發人員確實也有一些開源工具可選擇來使用AMF協議,這些工具由一些團體採用反向工程而得。這些開源專案包括RubyAMF、AMFPHP、SabreAMF、OpenAMF和Granite Data Services(GraniteDS)。擁有一個公開釋出的AMF規格說明應該只會幫助改善這些實現。Ruby和PHP專案仍將首選在應用程式中使用這些技術以利用AMF,就如BlazeDS是Java應用程式在遠端訪問和訊息傳遞方面是首選。
到目前為止,對於Java開發人員來說,GraniteDS是應用AMF協議的首選開源工具。當BlazeDS在週二宣佈的時候,GraniteDS 的建立者Franck Wolff顯得有點手足無措,並對GraniteDS的未來持有懷疑。他通過GraniteDS郵件列表向大家發表了他對於BlazeDS的看法:
大家好:
恩……這是一個好訊息(儘管我對此感覺還是有點怪)!
對GDS來說,唯一可能的將來是為BlazeDS遺漏的效能提供一些程式碼(我主要考慮的是透明外化(transparent externalization)、延遲載入(lazy-loading)的支援、程式碼生成)……
目前,我想我會停止任何GDS進一步的開發……歡迎大家做自由評論。
不過,在深思之後,Wolff確實看到了GraniteDS的未來發展方向。在一個開源專案運作的樣例中,他認為有很多新特性可以貢獻給BlazeDS專案,或者可以繼續獨發展GrainteDS專案。
一點點歷史回顧: GDS創立的起因是由於FDS太過昂貴,而且更重要的是,它並不與眾所周知的永續性API(EJB3/Hibernate)整合,也不提供任何延遲載入機制。這也是為什麼從最初我就建立了這個透明外化(transparent externalization)的特性(特別是HibernateExternalizer)來進行序列化並保持所有持久的相關bean的域(比如 id,version等)私有。後來,為了避免令人厭煩的手工編寫可外部化(Externalizable )AS3 bean的工作,gas3(GDS 程式碼生成器)應運而生。
BlazeDS和GDS的比較:令人感到驚奇的是,從嚴格的遠端訪問的觀點來看,BlazeDS恰恰是GDS一直以來想要實現的方向:使用 RemoteObjects的經典的AMF3遠端訪問,一個新的基於Comet的通道用於在生產者和消費者之間通過HTTP(非RTMP)交換AMF3物件。另一方面,從永續性的觀點來看,BlazeDS不包含任何資料管理的特性,所以GDS可以補充很多非常重要的但BlazeDS缺少的特性:EJB3 永續性和延遲載入的支援。
一點點策略:BlazeDS(LGPL3,含原始碼)的第一個釋出版本預告期為2008年初(沒有精確的日期……),對於我們來說最好的策略是儘快釋出 GDS1.0(在一月底之前),然後共同等待BlazeDS公開他們的原始碼。再然後,我們或者可以拷貝/貼上一些BlazeDS的好的程式碼到GDS(同一個license!)中,或者將外化+延遲載入機制+gas3新增到BlazeDS的特性中去(如果Adobe同意的話),或是甚至將GDS作為BlazeDS的一個外掛釋出(不知道有沒有這個可能性)。非常歡迎發表任何看法!
GraniteDS對整合了Java的Flex應用程式確實有一些很優秀的特性和優點。另外,BlazeDS也不僅僅是一個AMF規格說明的實現,它提供了一些GraniteDS沒有的特性,如push、訊息傳遞。拋開實現不說,很明顯,Adobe向Flex平臺開源的邁進,對於Flex開發人員是百益無害。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-332629/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在選擇開源時需要基於自身需求選擇合適的開源協議協議
- 又一巨頭選擇將資料庫開源資料庫
- 如何選擇一個Flex框架Flex框架
- 「Adobe國際認證」運用“物件選擇”工具,在PS中選擇主體物件
- Signal:更多前端框架的選擇前端框架
- 劉平川:如何選擇開源協議協議
- 「Adobe國際認證」Adobe Photoshop使用選框工具進行選擇
- 「Adobe國際認證」運用“物件選擇”工具,在PS中快速建立選區物件
- 在iOS上將Chrome開源!iOSChrome
- Adobe推出Flex2.0全面提升開發效率Flex
- 基本CSS選擇器,複合選擇器,後代選擇器CSS
- GitHub 上有哪些值得點讚的開源教程?Github
- Adobe Flex,是銀彈嗎?Flex
- 學習開源專案,不能選擇性眼瞎
- 實戰如何選擇開源許可協議協議
- CSS-選擇器4-後代選擇器CSS
- jQuery 後代選擇器jQuery
- 馬斯克將在本週開源xAI Grok馬斯克AI
- PlayJam: 60%開發商將選擇Android平臺Android
- 短影片軟體系統開發:選擇開源原始碼原始碼
- 如何選擇開源許可協議(二):開放程式碼協議
- 如openGauss、PolarDB、OceanBase等選擇開源
- IONA拓寬客戶開源 SOA 選擇範圍
- 在開源社群內“選邊站”(轉)
- 更多場景、更多選擇,Milvus 新訊息佇列 NATS 瞭解一下佇列
- 企業如何選擇開源的零程式碼開發平臺
- 根據開源資料庫選擇合適的工具資料庫
- 開源軟體那麼多,我們該如何選擇?
- MySQL與PostgreSQL:該選擇哪個開源資料庫?MySql資料庫
- oms和android在開發上有什麼不同?Android
- Adobe Flex Builder 2.0 Beta 3 配置方法FlexUI
- Nielsen:2011年3月31%表示將選擇Android 30%將選擇iOSAndroidiOS
- 「Adobe國際認證」關於 Adobe Photoshop啟動“選擇並遮住”工作區
- CSS樣式中的後代選擇器和子代選擇器CSS
- 在 Windows 環境下,有幾種開源的日誌監控軟體可供選擇,包括:Windows
- 崗位外包就選崑山邦芒人力 讓企業用工有更多選擇
- 小程式開發選擇公司等於選擇人
- 一個開源、美觀的日期選擇器(bootstrap datepicker)boot