如何将AI能力与大数据技术结合,助力数据分析治理等工作的效率大幅提升,优化大数据引擎的性能及成本? 了解详情
写点什么

轻量级 AJAX 框架 Buffalo 2.0: 性能提升 30%

  • 2007-04-27
  • 本文字数:1440 字

    阅读完需:约 5 分钟

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 更友好。

在一年多前的一次 BEA 活动上,就曾经听到满江红开源组织的负责人曹晓刚讲述“利用元数据和 RIA 简化企业应用程序的开发”的主题时推荐了 Buffalo。时间过去了这么久,Buffalo 并没有像许多的开源项目那样销声匿迹,而是还在不断完善,陈金洲解释了 Buffalo 的开发路线图和背后的支持动力:

2004 年 11 月的时候我提出了 AMOWA 的概念——即面向消息的 Web 应用,第二年春即发布了 1.0 测试版本。具体的日程可以在 Buffalo 变更历史里看到。从 Buffalo 产生至今,整整两年了。新的开发计划,还有很多特性没有完成,例如跟 Spring 更紧密的集成;文件上载支持,以及更好的 OPOA 支持等。开发计划完全取决于社区的反馈,以及功能纯粹单一的综合衡量。我不希望 Buffalo 成为庞然大物。其中的动力,我想最大程度上来自于 Buffalo 社区。在 1.2 版本发布的时候我写过一篇博客“写在 Buffalo1.2 发布之后”。我现在的想法虽然稍有不同,但归根结底就是:开源作者提出一个想法,需要得到社区的反馈;同时作者对反馈进行响应。这是一个长期的过程。对此我一直对处在社区中,对 Buffalo 进行贡献的用户心存感激。Buffalo 方便了他们的工作,也满足了我作为一个软件作者某种程度上的虚荣心:),这种感觉,应该是最大的动力吧。

当 Buffalo 的用户遇到问题时,可以联系 Buffalo 邮件列表,绝大多数问题都可以找到答案,其他的开发者也会帮助你解决问题。

2007-04-27 01:481826
用户头像

发布了 27 篇内容, 共 94149 次阅读, 收获喜欢 15 次。

关注

评论

发布
暂无评论
发现更多内容

高亮架构训练营毕业设计-设计电商秒杀系统

高亮

架构训练营

架构训练营模块四作业

老实人Honey

架构训练营

Apache Flink的体系架构(三)

数据与智能

flink 时间戳

模块四作业

seawolflin

二叉树遍历和分治

泽睿

算法 遍历 分治

值值得收藏,揭秘 MySQL 多版本并发控制实现原理

架构精进之路

MySQL MVCC 8月日更

架构实战营-毕业设计项目

༺NPE༻

业务定制型异地多活架构业务设计

arctec

模块四作业

Tina

学生管理系统的考试试卷存储方案

技术是伙伴

架构实战营

千万级学生管理系统的考试试卷存储方案-模块四

hello

架构训练营

模块四

Winston

商城异地多活架构

arctec

【架构设计模块四】:设计千万级学生管理系统的考试试卷存储方案

Ryoma

三个问题,颠覆你的三观

非著名程序员

个人成长 认知提升 个人提升 8月日更

04 设计模式之生成器模式

陈皮的JavaLib

Java 面试 设计模式 8月日更 生成器模式

【LeetCode】第 N 个泰波那契数Java题解

Albert

算法 LeetCode 8月日更

架构实战营-毕业设计

笑春风

架构实战营 毕业设计

夏日

架构实战营

架构训练营——毕业总结

开拓纪

架构训练营 毕业总结

架构实战营-毕业总结

笑春风

初识宽度优先搜索

泽睿

架构实战营 毕业总结

小遵

毕业设计:设计电商秒杀系统

开拓纪

架构训练营 毕业设计

架构实战营 毕业总结

CR

架构实战营 毕业设计

小遵

毕业设计:设计电商秒杀系统

Johnny

架构实战营

架构实战营 - 模块四

Testcase

架构实战营

《项目管理三步法》教你搞定孩子 作业拖延症

Ian哥

架构师学习心得

ifc177

毕业总结

yu

架构实战营

轻量级AJAX框架Buffalo 2.0:性能提升30%_Java_陈俊_InfoQ精选文章