InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Buzzword –使用Adobe Flex / AIR构建的RIA文字处理器

作者 Jon Rose 译者 曹云飞 发布于 2007年12月3日

领域
架构 & 设计,
企业架构,
语言 & 开发
主题
富客户端/桌面 ,
架构 ,
Web 2.0 ,
Office业务应用 ,
Java ,
RIA ,
购并
标签
收购 ,
Adobe ,
Buzzwords ,
AJAX ,
Flash ,
Flex ,
Adobe集成运行时/AIR ,
Apollo

Adobe最近投资了基于web的文字处理器 —— Buzzword的创建者Virtual Ubiquity公司。InfoQ.com联系了Adobe系统公司的David Coletta和Tad Staley以了解该产品,使用Adobe Flex来开发Buzzword的挑战和好处以及Buzzword的远景规划。

Coletta和Staley为InfoQ.com提供了Buzzword产品的特征和架构的概况:

Buzzword是使用Adobe Flex构建的一个基于web的字处理器。Buzzaword看起来用起来都象一个正规的字处理器,但是它是在一个web浏览器中运行的应用。Buzzword结合了桌面字处理器的丰富用户体验,和其它基于web的字处理器的随处访问和协同工作的能力。
没有其它的在线字处理器可以提供这么丰富的用户体验,因为在线字处理器受到HTML和JavaScript功能的限制。
Buzzword提供的丰富用户体验,包括随着每次击键即时进行的字母间距微调和重新分页。Buzzword还提供了在文档中简单而强大的操作图像的功能,包括通过拖拽来放置图片和改变图片的大小。Flash Player 9的性能有了显著的提高,这使得通过拖拽来放置图片和改变图片的大小是可行的。
Buzzword对于公众是免费的,请访问www.buzzword.com

关于为什么会选择AIR/Flex平台来开发Buzzword的问题:

在2005年我们开始评估候选平台的时候,我们考虑的基于浏览器的软件开发的平台包括Microsoft .NET,Java,AJAX (HTML + JavaScript)以及 Flex 1.5 on Flash Player 8。(当时Flex2.0的beta版还不可用,Flash Player 9正在开发中。)我们理想的开发平台必须具备的因素包括:普遍性(即在Windows,Mac和Linux都可用的平台),零安装,支持富文本和图形,以及高性能。上述的平台没有一个满足所有的条件,当时我们认为也许我们要做的是不可能的事情。
当Flex2.0的第一版和Flash Player 9在2005年秋季上市的时候,我们更新了我们的原型产品,发现Flash平台的性能有了非常显著的提高。我们马上意识到是可以Buzzword可以实现的,而Flash/Flex平台是唯一的选择。

接下来,Coletta和Staley被问到使用Flex开发Buzzword过程中遇到的挑战:

我们遇到了(并克服了大多数)相当多的挑战。这里有一些例子。
一个严重的技术挑战是,虽然Flash/Flex环境是完全可移植的并且在不同的操作系统和浏览器中工作良好,但是Flash沙箱有许多限制——完整的键盘支持以及在Flash/Flex环境中的富文本剪贴板——这些功能必须使用浏览器中的JavaScript来实现。使用JavaScript会限制我们能支持的浏览器数量,使得我们难以跟上我们所支持的浏览器的更新的步伐,总体上损害了采用Flash所带来到普遍性。
此外,宿主浏览器的工具栏和菜单栏与Buzzword竞争屏幕面积,这削弱了Buzzword的优雅的编辑方式的效果。幸运的是,Adobe AIR平台通过提供对键盘事件和系统剪贴板的直接访问,给我们完全控制窗口的能力,使得我们得以克服在浏览器内运行应用的限制。
另一个技术挑战是不使用后台线程来保持Buzzword的用户界面响应能力。在Flex开发中使用的编程语言ActionScript 3,根本上是单线程的,对于所有的网络操作都需要异步的来完成功能。在一个单独的线程中执行费时的后台操作,是保持用户界面的响应能力的一种常见技术。由于我们不能这样做,我们不得不采用其它技术来保持用户界面响应能力,这些技术有时候是笨拙而且难以实现和维护的。(但是众所周知,多线程编程是很容易出错的,所以这个限制并不是一点益处都没有。)
在开始设计的时候,在简洁和恰如其分地使用视觉效果之间作出正确的平衡是个巨大的挑战。Flash和Flex提供了非常丰富的动画和过渡,只要在应用用户界面的某个区域使用了一个动画,就必须全局地考虑如何有效安排整个应用的视觉表现。类似的,我们在界面设计的一些关键领域作出了革新,例如Buzzword的格式化工具栏,文档滚动栏和合作者栏,同时努力在视觉革新和一致性之间保持平衡。

InfoQ.com询问是否有什么东西Coletta或者Staley希望增加到Flex和/或者AIR中:

Flex和AIR有许多可能提高之处,但是许多现有的约束是必要的而且非常难以克服的,所以单纯的愿望是没有意义的。一项有用而且现实的改进是一个用于在运行时编译和运行ActionScript的工具。

Coletta和Staley对于打算采用Flex和/或者AIR的用户提供了如下建议:

当你寻找天才的时候,不要太关注他是否有Flash或者Flex方面的背景。Buzzword团队没有一个成员在开始Buzzword项目之前使用过Flash或者Flex。相反,雇佣有很强的面向对象软件开发的背景,有Java、C++或者C#语言经验的高手是更好的选择。他们会发现ActionScript 3和基于Eclipse的Flex Builder环境是非常舒适和熟悉的。

接下来Coletta和Staley被询问了有关Adobe投资的情况:

Buzzword的愿景的一个关键部分是在web上提供优雅的用户体验,这导致了我们评估并选择Adobe的Flex作为开发环境,我们的应用部署在Flash平台上。
当Adobe发现了Buzzword团队在他们的平台上做的工作,包括在最近宣布的Apollo(现在的AIR)平台上的一个早期版本后,Virtual Ubiquity在2006年秋季成为Adobe风险投资基金投资的第一个项目。
Buzzword团队认识到为了应付拥挤而混乱的新市场,我们必须与一家成熟的软件公司合作来得到某种公司运作的稳定性和产品的市场曝光,以有效的推动Buzzword进入市场。
Adobe是一个显而易见的选择——不仅仅是因为Buzzword构建于Adobe伟大的Flash平台之上,而且因为Buzzword与Adobe的传统十分吻合,两者都与伟大的设计和文档相关。我们相信与Adobe一起我们真的可以创造奇迹,并且在许多方面帮助Adobe。Adobe对于未来有一些令人激动的计划,而Buzzword已经准备好在Adobe日益增长的web应用与协同工作方面的解决方案中扮演重要的角色。欲得到更多的关于Adobe投资的信息,请查阅Adobe网站的新闻与FAQ。

Coletta和Staley谈论了Buzzword的将来:

Buzzword将继续作为一款字处理器软件而发展——我们渴望实现一些伟大的设计和创新,例如变化跟踪和给样式命名。因为Buzzword是在线交付的,所以我们能够定期更新它——我们设定了一个6~8周的更新周期,这样我们可以把握可以预见的未来。
我们还希望最近可以增加导出PDF的功能。这是在Adobe的投资公开之前从我们的用户那里得到的一个需求。
作为Adobe的一部分,我们渴望在许多领域扩展Buzzword。当然,首先是AIR平台,我们希望不仅仅使得用户可以离线使用Buzzword,而且会提供一个更干净的用户界面(没有浏览器的烦扰)甚至与桌面更紧密的集成。
除了AIR,Adobe的协同工作平台和正在发展的主机应用会为Buzzword提供一套完美的丰富的功能集补充,为在线协同工作提供一个伟大的环境。

Buzzword为使用Adobe Flex构建一个真正的富互联网应用提供了一个出色的样板。Coletta,Staley和Buzzword团队的经验会帮助那些正在评估RIA技术前景的人。

查看英文原文Buzzword - RIA Word Processor: Built Using Adobe Flex / AIR
译者简介: 曹云飞,西安交通大学计算机软件硕士。现就职于Ethos,热衷于新技术的钻研,软件架构与敏捷开发,目前从事Home Control方面的工作。参与InfoQ中文站内容建设,请邮件至china-editorial[at]infoq.com

译者 曹云飞 从事软件开发多年,包括Web应用、桌面应用、前后端开发,热衷于计算机理论与应用技术的钻研,软件架构与敏捷开发。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。