BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Stephan Janssen谈Parleys.com和RIA的前景

| 作者 Jon Rose 关注 0 他的粉丝 ,译者 王丽娟 关注 0 他的粉丝 发布于 2008年4月2日. 估计阅读时间: 13 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。
Parleys.comInfoQ.com和Stephan Janssen坐在一起讨论,向他了解了Parleys.com的相关情况,并问了他对新兴的RIA平台的看法。Stephan创建了每年于比利时举办的JavaPolis大会。JavaPolis是目前仅次于JavaOne的第二大Java会议。Stephan还是Parleys.com的创始人和工程师主管。Parleys.com是一个RIA平台,用来发布视频、播客、幻灯片等诸如此类的在线学习资料。除了讨论Parleys.com,Stephan还跟InfoQ.com的读者分享了他对Adobe Flex/AIR、JavaFX、Google Web Toolkit(GWT)、以及Silverlight的看法。

你能
概述一下Parleys.com吗?
Parleys.com是下一代的RIA电子学习平台,在这个平台上,人们能在浏览器里或是在桌面上观看视频讲座。现在,Parleys.com的默认频道提供来自JavaPolis、SpringOne、BeJUG、JavaBin、Jazoon、EclipseCon的一些优秀技术演讲视频。顶级品质的Java内容总共将近有200个小时。

Parleys.com观众也能把这些讲座下载到本地磁盘离线观看,这是一个使用得越来越多的优秀特性。浏览器和桌面应用程序都能让你用全屏模式观看演讲,甚至能在观看时动态调整播放模板。播放时间轴可以让我们的观众添加注释、标签,并在需要的地方跳过幻灯片。你能在菜单栏选择自己喜欢的幻灯片演示设置(我自己喜欢3D Cube),或在自己的收藏列表中添加某个演讲、查看其它相关的演讲。

浏览器和桌面应用程序之间无缝集成是一个很好的特性。比如说,你能从浏览器中启动桌面应用程序。桌面应用程序启动之后,如果你在浏览器下载某个演讲,它会被添加到桌面应用程序的下载队列中。这样当你从浏览器中观看演讲的时候,如果该演讲已经下载过,流数据就会由桌面程序负责从本地磁盘中取得。这会节省你的(还有我们的)一些带宽。

另一个顶好的特性是后退按钮能正常工作,你还能对演讲中的某个特定的幻灯片进行深度链接。
构建应用使用的技术是什么呢?架构是什么样的?
浏览器版本我选的是Adobe Flex3,桌面客户端选用AIR。但由于服务器端设计为使用REST的服务层,所以我们可以很容易地添加其它技术类型的客户端。目前,我们正在并行地开展JavaFX客户端(它看起来非常有发展前景)、GWT、Silverlight的工作。对比较不同技术来说,这是一种有趣而有根据的检验。
Parleys.com的架构是如何发展的?
目前公布的Parleys.com版本(我们的第一个版本)是一个使用轻量级AJAX的Web应用,其中Flash和JavaScript在一起无缝协作。我们超过十万的用户很快提出了更多的RIA特性需求,像在全屏模式下观看演讲、观看过程中更换播放器模板、甚至下载演讲并离线观看。用DHTML和Ajax满足不了更进一步的需求,对此类客户端来说,考虑像Flex/AIR、JavaFX这类RIA技术会更有意义一些。在我必须决定选择哪种RIA技术的时候(2007年6月),JavaFX语言才刚刚发布。于是,合理而实际的选择就是从Adobe工具开始。
你对Adobe AIR/Flex的总体印象是什么样的?
作为一个Java开发人员,学习面向对象的ActionScript和UI标记语言实在是像公园散步般简单。但问题是(Java)开发人员不是设计人员,而设计人员需要这两项技能来使用RIA技术。这就是我对Adobe的Thermo项目感到非常兴奋的原因。它能在Photoshop设计人员和开发人员之间的鸿沟上架设一个桥梁(很令人兴奋的东西)。

Flex和AIR的另一个优点是,你能选择不同的通讯策略——比如XML、JSON、AMF(二进制格式)——容易地与Java后端协同工作。Adobe甚至(在07年的JavaPolis大会上)开源了他们名叫BlazeDS的远程产品(用Java开发),BlazeDS允许你从ActionScript访问服务器端Java服务。

与Java比起来,Flex和AIR的不足之处是质量保证方面的工具不足。例如,ActionScript代码的静态分析(像FindBugs、PMD、Simian等)还不可用。Jetbrains最近在IDEA 7.0.3中添加了对Flex的支持,我觉得是个惊喜。它让你使用代码分析器分析ActionScript代码,这是一个好的开始。不过,现在我还不确定是否要用Flex去开发一个超过500个屏幕显示的ERP应用。JavaFX对企业世界有很大影响也在于此。

对嵌入式RIA应用来说,另一个机遇是要便于搜索引擎搜索。RIA内容能被搜索引擎索引是非常重要的,这样人们才能通过Google、Yahoo等搜索引擎查找到你的站点。你可以用一个并行的静态站点来方便搜索引擎,不过这样工作量太大了。我更喜欢用RSS Feeds或Atom Publisher协议的优势来达成一样的效果……等我们试验成功之后我再告诉你。

Flex和Java之间的“交叉授粉作用”说起来也很有意思。Annotation在Java中是主流。你能观察到Flex阵营也露出了类似的端倪。比如说,Flex的元数据标签就用于与Annotation类似的行为。因此可以想象注解过的Java EE 5实体通过类似技术被重用为ActionScript实体,并在客户端映射进SQLlite。

我对Flex/AIR较高的期望有:
  • 就个人而言,我希望在AIR未来的版本中能出现Socket监听器,因为如果不这样,AIR应用中要实现完全的P2P功能也许只能使用Hack。
  • 通过AIR文件部署Java应用也许会非常棒。这可以让我利用在Java中的投入。在我们头脑风暴的时后,还想过用Java语言开发Flex和AIR应用呢。
  • 让签名的Flex应用摆脱Flash沙箱的束缚。
作为一个Java的长期倡导者,社区是如何认可你对Adobe AIR/Flex的深入研究?
Parleys.com的Flex/AIR版本已在去年12月的JavaPolis 2007大会上发布。在那个主题演讲中,我说明了技术难题,但也解释了我们的观众要求的功能。

2007年6月我们决定开发Parleys.com的一个RIA版本。我本来可以继续DHTML/AJAX路线,但我对版本1已经觉得非常痛苦了,我对Ajax的求知欲消失殆尽。2007年6月,选择JavaFX做为技术路线为时太早,而且由于我在Mac上开发,Silverlight也不可用。所以,合理的选择就是考虑Adobe Flex/AIR。服务器端仍然使用WebWork/Velocity、Spring和Hibernate来保持100%的Java。

这一选择带来的好事儿就是我的一些Java同僚震惊于Flex版的发布,于是他们决定重用相同的后端开发一个JavaFX和GWT客户端。我必须要说这看起来非常有发展前景。我会在一场非正式的JavaOne技术讨论会中介绍这些不同的Parleys.com策略。

你可以观看Parleys.com的主题演讲。
JavaFX发布已经将近一年了,你有哪些与此相关的经验呢?
JavaFX的工具支持仍需要加强,但更重要的是,我希望Sun Microsystems也能着手处理Photoshop和JavaFX之间的鸿沟,以便开发人员和设计人员能够协作(就像Adobe正在计划做的那样)。支持主流的音频、视频编解码器是JavaFX获取成功的另一个重要特性。JavaFX要是想在RIA领域分一杯羹,把JavaFX应用作为Applets部署(运行在JRE update N)、具有与Flash一样的(冷/热)启动体验也是至关重要的。希望下一届JavaOne大会上能提供相关信息。
作为一个平台,你认为JavaFX在正确的轨道上吗?它要取得成功必须实现的关键项目是什么?
JavaFX的优势当然是成熟的Java平台和快速的运行时环境,尤其是JavaFX代码编译之后。我发现重新设计现有的(企业)Swing应用有巨大的商机,MVC中的视图部分可以使用更好看的JavaFX皮肤来替换。

如果JavaFX Mobile允诺的那些都能实现,JavaFX也能得到巨大的推进。Java(FX)、AIR、Silverlight,谁第一个应用于iPhone,让我们拭目以待。
你对GWT的印象如何?你对于把Java编译成JavaScript有什么疑虑吗?
体验了DHTML/Ajax处理多浏览器/多操作系统的痛苦之后,我越来越欣赏GWT的策略。

我们已经有了Parleys.com客户端的第一个GWT原型。它看起来很不错,而且在不同的浏览器和操作系统上不需要调整。Google的确实现了他们的承诺,以Google中汇集的脑力是理所当然的。

开发新的组件有点儿挑战,我希望活跃的GWT社区能继续成长并发布更多的UI组件。发布GWT版本之后我们会关注观众们更喜欢哪一个客户端。我会让你保持消息灵通的。
你花时间研究过Silverlight吗?对它的总体印象如何?
我安装过Silverlight的版本1和版本2早期的一个Beta版。Demo确实能在Mac上的Firefox中运转,除此之外就没什么值得提的了。看看Dolmen公司中负责Microsoft技术的同事能给我带来什么惊喜吧……我可没给你们压力啊 ;)
你认为,或者说希望一年半之后RIA领域会怎样呢?
看DHTML/Ajax阵营是否能像RIA那样进取。GWT将会在这场较量中扮演重要的角色。一年半之后,我们也许就有了Flex4和AIR2。到那个时候,Photoshop设计人员先绘制出原型,Flex开发人员在上面添加一些逻辑就可以收官了。由于未来因特网和电视之间的趋同,我们将能制造类似iTunes的应用,在各种操作系统(包括Linux)上在线或离线播放HD交互式视频。

一年半之后,我应该已经知道Adobe AIR和/或Java(FX)是否运行在iPhone上,还有JavaFX Mobile的承诺能不能落实……美妙的时刻!
Parleys.com是一个真正的Web 2.0应用。希望InfoQ.com社区能借鉴Parleys.com构建过程中的经验,因为它就像领先的RIA平台相互较量的一个实验台。让我们看看什么技术能使Stephan成功,还有他的团队最终会为Parleys.com选择什么技术做为他们的主平台。
查看英文原文:Stephan Janssen On Parleys.com And The RIA Landscape

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT