Filtrbox:运用 Flex RIA 技术的语义网应用

  • Moxie Zhang
  • 崔康

2008 年 9 月 13 日

话题:Java语言 & 开发

语义网技术和服务在驱动 Web 迈向下一代(作为数据、信息和知识交换的统一媒介)进程中扮演着核心角色。最近,我们注意到一系列使用语义网技术的新尝试相继出现,它们帮助人们来消费 Internet 上持续增长的海量信息。

其中一个优秀例子就是Filtrbox,它使用了 Adobe 提供的 Flex RIA 技术构建用户界面。InfoQ 采访了 Filtrbox RIA Flex 开发人员Justin Imhoff,对该应用所需要的资源和技术做了深入探讨。关于人力资源投入,Imhoff说:

目前,我们有三名开发人员参与 Filtrbox:Tom Chikoore——架构师和 CTO;Bruce Deen——负责开发 Flex 和 Java;还有我——负责开发 Flex 和 AIR。公司的联合创始人分别是Ari NewmanTom ChikooreAri是一名优秀的企业家,指引着公司的发展方向。

对于 Flex 对 Filtrbox 的贡献,Imhoff提到:

在语义网搜索时,你需要处理大量数据。通过使用 Flex 和 AMF,我们能够快速而有效地操作这些数据,提供强大的用户体验。当然每一项技术都有缺陷,不过到目前为止,我们发现 Flex 最适合我们的需求。

对于富互联网应用(RIA)技术在应用中扮演的角色,Imhoff解释说:

RIA 的设计初衷是在使用 Internet 和服务器端存储数据的基础上,提供类似桌面交互的舒适用户体验。但是,使用 AIR 最大的障碍之一是开发既易用又具有高 级功能的大型应用。许多 RIA 应用开发公司都配有专门解决这个问题的 UI 和 UX 设计人员。语义搜索不仅仅是另外一种使用搜索技术的方式,也需要用户采用新 的方法来交互和对结果进行反馈。当使用 Google 搜索时,你使用的是导航搜索,而当你使用语义搜索时,你使用的是研究搜索。这意味着你可以通过语义提高 结果的内容相关性,提供完全符合用户搜索意愿的多种结果。实现原理就是计算用户的交互值并把值传递给搜索结果。这些结果类似于通过人工智能发掘用户喜欢或 讨厌的东西,然后对结果重新修订。语义搜索作为一个语义客户端唯一可以与普通的搜索引擎相媲美的地方就是通过 RIA 把最新的技术融合在了一起。

对于 Filtrbox 的技术架构,Imhoff指出:

我们使用 Blaze DS 与 Flex 交互来处理 AMF 请求。Blaze 是 Adobe's LiveCycle DataServices 的一款开源限制版。使用 AMF,我们可以与 Flex 交互二进制数据,减少了客户的下载时间和使用的资源。Blaze 对服务器—客户端交互具有很好的支持,帮助 Filtrbox 提供了一套高效和流水线的数据存取系统。

对于 Filtrbox,我们使用 Cairngorm 微架构(micro-architecture)来更好的适应 OOP 编程,允许采用每周更新应用的快速开发周期。对于 UI,我们使用了很多基本的 Flex 组件并扩展了他们的功能。

Imhoff补充道:

构建 Flex UI 的主要挑战是用户期望和交互。通过研究和理解在 Web 和桌面上的用户需求,慢慢的出现了一种期望和需求的共识,可以帮助提供易用和高效的界面。

速度是需要考虑的方面。许多用户喜欢 Web 上的类似 Ajax 的体验:随需加载。使用 Flex,则全部需要初始化加载。为了改善这种状况,我们实现了资源共享库(RSL),允许我们缓存 Flex、RPC 和客户端的数据可视化库,把应用大小缩小了一半。

另 外一个挑战是 UI 的整体设计。Flex 不像 HTML,没有很多可以利用的模板。在 Flex 使用流动布局(fluid layout)的挑战是应用中图片的缩放。最好使用 Scale 9 格式。 Scale 9 允许你定义图片的 9 个部分,每个部分可以自由缩放。不使用这个格式,流动布局几乎不可能实现。

团队开发,特别是工程存在部分重叠的时候确实是一个挑战。当团队开发时,你最有可能遇到的问题就是把多个工程合并成一个。最好的解决办法是使用好的 SVN 客户端或者 Flex IDE 的 subclipse。这会允许多个开发人员维护应用的当前和历史版本。

当使用 Flex 开发时,你不得不考虑为什么要使用 Flex 而不是 Ajax,你必须拥有足够的理由。Flex 作为作为商业产品的替代才刚刚起步,作为一款优秀的框架在 AIR 领域正努力占有一席之地。

当被问及希望下一版本 Flex 增加哪些特性时,Imhoff说:

我当然希望看到 Flex 在画图和打印功能方面的高级特性。我们现在不得不借用第三方产品或接口开发自己的解决方案。

其他需要提高的方面包括 Flash player 和修正在不同浏览器和操作系统支持 SSL 时的 Bug。另外就是在 Flash player 10 中重点提到的安全策略功能的加强。



查看英文原文:Filtrbox: Semantic Web in Flex RIA
Java语言 & 开发