以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』  (http://bbs.xml.org.cn/list.asp?boardid=22)
----  轻量级AJAX框架Buffalo 2.0:性能提升30% [转自InfoQ中文网站]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=22&rootid=&id=46154)


--  作者:supremeweb
--  发布时间:4/27/2007 4:48:00 PM

--  轻量级AJAX框架Buffalo 2.0:性能提升30% [转自InfoQ中文网站]

作者 陈俊 发布于 2007年4月27日 上午1时48分

社区
[URL=http://www.infoq.com/cn/agile/]Agile[/URL],
[URL=http://www.infoq.com/cn/java/]Java[/URL]
主题
[URL=http://www.infoq.com/cn/Programming/]编程[/URL],
[URL=http://www.infoq.com/cn/webframework/]Web框架[/URL]
[URL=http://buffalo.sourceforge.net/]Buffalo[/URL]在经历了两年之久的考验后,近日正式发布[URL=http://groups.google.com/group/amowa/browse_thread/thread/dac1d69fd88914c6]2.0版本[/URL]。Buffalo是一个J2EE轻量级AJAX框架,也是国内著名的开源项目。它与[URL=http://getahead.org/dwr]DWR[/URL][URL=http://getahead.org/dwr][/URL] 和[URL=http://oss.metaparadigm.com/jsonrpc/]JSON-RPC[/URL]一样,着眼于Web远程调用(Web Remoting),其简洁而实用的特性一直以来深受开发者喜爱。 [URL=http://michael.nona.name/archives/165]Buffalo2.0[/URL]最大的特点在于其性能的提升,还有完全自行实现的Java到JavaScript协议转换。得益于新的协议实现以及为大规模AJAX调用而进行的优化,2.0版本比前一阶段版性能有进一步的提高。
在国内,对JavaScript技术深入研究的人可谓凤毛麟角,Buffalo的作者[URL=http://michael.nona.name/archives/category/amowa/]陈金洲[/URL][URL=http://michael.nona.name/archives/category/amowa/][/URL] (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框架[URL=http://getahead.org/dwr]DWR[/URL][URL=http://getahead.org/dwr][/URL] 和[URL=http://oss.metaparadigm.com/jsonrpc/]JSON-RPC[/URL]相比较,在JS-Java之间对象转换功能和协议上,Buffalo有何优势所在?

从整体产品上来说,最大的优势在于简单。核心API只有一个方法。在JS-Java对象转换上,谈不上优势吧,各有千秋:buffalo采用自我描述,完整的XML协议,DWR采用自定义文本协议,JSON对JavaScript更友好。
在一年多前的一次BEA活动上,就曾经听到[URL=http://wiki.redsaga.com/confluence/display/RSTEAM/Home]满江红开源组织[/URL]的负责人曹晓刚讲述“[URL=http://www.blogjava.net/security/archive/2006/03/14/35204.aspx]利用元数据和RIA简化企业应用程序的开发[/URL][URL=http://www.blogjava.net/security/archive/2006/03/14/35204.aspx][/URL]”的主题时推荐了Buffalo。时间过去了这么久,Buffalo并没有像许多的开源项目那样销声匿迹,而是还在不断完善,陈金洲解释了Buffalo的开发路线图和背后的支持动力:

2004年11月的时候我提出了AMOWA的概念——即面向消息的Web应用,第二年春即发布了1.0测试版本。具体的日程可以在[URL=http://www.amowa.net/buffalo/zh/changelog.html]Buffalo变更历史[/URL]里看到。从Buffalo产生至今,整整两年了。新的开发计划,还有很多特性没有完成,例如跟Spring更紧密的集成;文件上载支持,以及更好的OPOA支持等。开发计划完全取决于社区的反馈,以及功能纯粹单一的综合衡量。我不希望Buffalo成为庞然大物。

其中的动力,我想最大程度上来自于Buffalo社区。在1.2版本发布的时候我写过一篇博客“[URL=http://michael.nona.name/archives/125]写在Buffalo1.2发布之后[/URL]”。我现在的想法虽然稍有不同,但归根结底就是:开源作者提出一个想法,需要得到社区的反馈;同时作者对反馈进行响应。这是一个长期的过程。对此我一直对处在社区中,对Buffalo进行贡献的用户心存感激。Buffalo方便了他们的工作,也满足了我作为一个软件作者某种程度上的虚荣心:),这种感觉,应该是最大的动力吧。
当Buffalo的用户遇到问题时,可以联系[URL=http://groups.google.com/group/amowa/]Buffalo邮件列表[/URL],绝大多数问题都可以找到答案,其他的开发者也会帮助你解决问题。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
27.344ms