InfoQ.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
评论