Stephan Janssen 谈 Parleys.com 和 RIA 的前景

阅读数:276 2008 年 4 月 1 日

话题:Java语言 & 开发

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