開源專案buffalo2.0最終版正式釋出

xuniji123發表於2007-05-10

Buffalo在經歷了兩年之久的考驗後,近日正式釋出2.0版本。Buffalo是一個J2EE輕量級AJAX框架,也是國內著名的專案。它與DWR 和JSON-RPC一樣,著眼於Web遠端呼叫(Web Remoting),其簡潔而實用的特性一直以來深受開發者喜愛。 Buffalo2.0最大的特點在於其效能的提升,還有完全自行實現的Java到JavaScript協議轉換。得益於新的協議實現以及為大規模AJAX 呼叫而進行的最佳化,2.0版本比前一階段版效能有進一步的提高。

  在國內,對JavaScript技術深入研究的人可謂鳳毛麟角,Buffalo的作者陳金洲 (Michael Chen) 就是其中之一。關於這次Buffalo 2.0版本的新特性,陳金洲這樣解釋:

  最令人振奮的特性應當是為大規模、頻繁遠端呼叫而進行最佳化的顯著效能提升。在2.0-alpha1版本的效能測試中,效能最高提升達到了30%。即便不借助於高階的測試工具,從1.2升級到2.0的使用者,應該能顯著感受到速度的提升。

  另外,Buffalo 1.x版本的使用者都知道,之前的版本都基於Burlap協議,而Burlap協議的維護者Caucho公司已經很久沒有更新這個庫了。很多在Resin上使用Buffalo的使用者發現這樣或者那樣基於Burlap的各種問題。種種考慮之後,2.0版本正式使用了完全自行編寫的協議解析和轉換。
  當問到Buffalo希望在眾多AJAX框架中扮演一個什麼樣的角色時,他回答:

  最早的時候希望Buffalo成為一個全功能、全新的、Web 2.0時代的Web框架。非同步傳輸只是其中最基礎的一部分。後來發現憑藉自己現有的資源(時間,、能力等)不太可能在能夠預見的時間內完成這一目標。目前想達到的目標是:最簡單最容易使用的AJAX框架。從使用者的反饋看來,這一目標完成的比較不錯,大多數使用者都能在很短的時間內配置Buffalo並開始使用。

  那麼和Web Remoting框架DWR 和JSON-RPC相比較,在JS-Java之間物件轉換功能和協議上,Buffalo有何優勢所在?

  從整體產品上來說,最大的優勢在於簡單。核心API只有一個方法。在JS-Java物件轉換上,談不上優勢吧,各有千秋:buffalo採用自我描述,完整的XML協議,DWR採用自定義文字協議,JSON對JavaScript更友好。

  社群力量推動Buffalo成長!

  在一年多前的一次BEA活動上,就曾經聽到滿江紅開源組織的負責人曹曉剛講述“利用後設資料和RIA簡化企業應用程式的開發”的主題時推薦了Buffalo。時間過去了這麼久,Buffalo並沒有像許多的開源專案那樣銷聲匿跡,而是還在不斷完善,陳金洲解釋了Buffalo的開發路線圖和背後的支援動力:

  2004年11月的時候我提出了AMOWA的概念——即面向訊息的Web應用,第二年春即了1.0測試版本。具體的日程可以在Buffalo變更歷史裡看到。從Buffalo產生至今,整整兩年了。新的開發計劃,還有很多特性沒有完成,例如跟Spring更緊密的整合;檔案上載支援,以及更好的OPOA支援等。開發計劃完全取決於社群的反饋,以及功能純粹單一的綜合衡量。我不希望Buffalo成為龐然大物。

  其中的動力,我想最大程度上來自於Buffalo社群。在1.2版本釋出的時候我寫過一篇部落格“寫在Buffalo1.2釋出之後”。我現在的想法雖然稍有不同,但歸根結底就是:開源作者提出一個想法,需要得到社群的反饋;同時作者對反饋進行響應。這是一個長期的過程。對此我一直對處在社群中,對Buffalo進行貢獻的使用者心存感激。Buffalo方便了他們的工作,也滿足了我作為一個作者某種程度上的虛榮心:),這種感覺,應該是最大的動力吧。

  從2.0-alpha升級到Buffalo 2.0正式版!

  當Buffalo的使用者遇到問題時,可以聯絡Buffalo郵件列表,絕大多數問題都可以找到答案,的開發者也會幫助你解決問題。

  從2.0-alpha1釋出至今,經過長達半年多的測試階段,buffalo 2.0正式版本釋出。2.0最大的關注點在於效能的提升和完全自行實現的java到javascript協議轉換。根據評測,2.0版本要比前一階段版本最高提升30%效能。這得益於新的協議實現以及為大規模AJAX呼叫而進行的最佳化。

  對於一直使用alpha版本的使用者,此次升級很簡單,只需要將相應的jar和js進行替換即可。從1.2.x版本升級的使用者,升級也很簡單:

* 刪除所有burlap*.jar, buffalo*.jar, 替換為buffalo.jar
* 替換新的buffalo.js
* 將繼承自BuffaloService的類,對session等資訊的使用替換為對RequestContext.getContext().getXXX的使用。(注意,目前有開發者報告在resin 2.1伺服器上偶爾會出現丟session的現象)

  Buffalo2.0正式版本的釋出意味著完全自我獨立的協議實現,為後續特性的開發打下了基礎。

  

  初學者可以到 look一下,這裡有詳盡的tutorials!

  當然,也會生動地展現Buffalo2.0的最新特性!

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8271432/viewspace-914379/,如需轉載,請註明出處,否則將追究法律責任。

相關文章