内容


为智慧的地球构建一个智能 Web 应用程序

IBM Smarter Planet 计划的主要目标之一就是构建能帮助用户改进他们业务水平的智能 Web 应用程序。一个基于 Web 的智能应用程序具有分析判断的能力,它可以根据所得到的数据推断出更多关于某个服务或某个特定用户的信息。这样的数据在最初加载时包含初始值,在用户开始使用这个应用程序后,这些值将会被修改。当前已有很多种技术能够帮助我们构建智能的 Web 应用程序,并在更加智能的发展方向上取得了很大进步,但这也仅是起步,前面仍有很长的路要走。

智能 Web 应用程序:以用户需求为中心

当前绝大多数的 Web 应用程序都是围绕着业务需求进行开发的,而对于用户的需求则考虑的较少。一个智能 Web 应用程序应该是以用户为中心的,而业务需求应该是用户需求的体现。这样的一个开发理念将能为各种应用程序领域中的不同类型的用户提供更有效的服务,并会给用户带来全新的体验和便利。这样的改变将使 Web 应用程序可以被任何用户所使用,通过充分了解用户并全面考虑用户的习惯与限制条件,这些智能应用程序甚至可以被身体有残疾的用户所使用。一个自适应用户界面,加上智能处理逻辑和一些语义定义的知识库,只需这些内容您就可以设计一个智能 Web 应用程序了。

用户界面可以适应于不同的用户,帮助他们方便地完成任务。这样的适应性可以为广泛的用户提供帮助,范围从初级用户到高级用户,直至那些身体有残障的用户。呈现给用户的信息可以依据用户的个人文件(profile)、喜好和自身条件进行修改。

用户的首选项不是一成不变的,并且可能会依服务和系统当前的状态不同而发生变化。一个可以依据用户模型在适当情况下调用规则的规则引擎就可以实现这样的条件适应。处理好用户与呈现给用户的信息之间的关系是任何智能应用程序成败的关键。规则是更小的表示这种数据与用户间的关系或业务需求的单元。这些规则可以根据类别分成组,这些不同的组可以同时被使用。

一个全面的、良好定义的知识库对于编写适应性用户界面至关重要。这个知识库需要具备合适的语义,以及信息、用户和服务之间的关系。应用程序可以使用数据的语义表示来在相应的时间对用户作出推测。

使 Web 应用程序更加智能

本节将介绍一些能使 Web 应用程序更加智能的一些方法。

可用性

可用性是指用户可以很轻松地在一个应用程序中执行所需的任务。在实际开发之前,先执行一个适当的可用性评价至关重要。可用性评价的一些常用参考有 ISO 标准 ISO 16982 和 ISO 9241。这些标准可用作一个具有一组问题的模板,可度量用户在执行不同任务时的便利和舒适度。

可访问性

可访问性是指一个应用程序可以被尽可能多的用户访问的程度。这有助于扩展业务,通过容纳最多的用户而产生更多的收入。可访问性可通过构造一个能反映用户特点的用户模型以及基于此模型定制交互来实现。对于身体残障人士,此模型反映了残障的类型并对用户界面进行定制以具有个性化的交互来帮助这些用户执行其任务。可访问性评价的常见参考基于的是 Authoring Tool Accessibility Guidelines (ATAG)、Web Content Accessibility Guidelines (WTAG) 以及 User Agent Accessibility Guidelines (UAAG)。这些指导提供了如何执行可访问性评价以便让您的应用程序获得最大的可访问性。

适应性

适应性是指一个 Web 应用程序针对某个特定用户个性化其内容与服务的能力。Web 应用程序的与众不同之处就是它可以与用户需求相适应,例如用户的界面、显示方式和导航。这将帮助用户方便地执行他们的任务,并且也可以提高用户对这个应用程序的兴趣。

构建智能 Web 应用程序

现在我们来讨论如何构建智能 Web 应用程序。我们将要设计一个可以适应性地向用户呈现内容的电子学习应用程序。

SOA

通过使用 Service Oriented Architecture (SOA),可以提取这个应用程序的服务,并可以定义调用这个服务的界面。一个电子学习应用程序的核心服务包括:

  • 用户个人文件管理器
  • 学习管理器
  • 测试管理器

您可以在一个 Web Services Description Language (WSDL) 文件中定义这些服务以便调用应用程序能知道何时、去哪里调用这些服务。WSDL 是一个 Web 服务标准,它可以用来描述 Web 服务。

适应性模块设计

一个用户的学习和测试行为可以依据他们的喜好来设计。例如,喜欢阅读的用户可以阅读文本,而喜欢听力的用户则可以听到这些信息。用户可能对用户界面也有自已的喜好。有的用户可能喜欢简单的界面,而有些用户更喜欢能提供附加信息的仪表板样式的界面。这个学习管理器负责依据用户的喜好组成一个学习用户界面。测试管理器的关键功能是提供某个概念的适应性测试,并且能让这个测试界面适合这个用户。

语义数据表示

所要呈现的信息可以在语义上定义为与用户喜好相关联。这可以确保信息能以适当的类型呈现给用户,并且这些信息可以通过使用一个 Resource Description Framework (RDF) 来完成,这是定义资源的一个常规方法。

下面的代码就是这样一个语义数据表示的示例:

<item rdf:about="http://dbpedia.org/resource/Computer"> Computer </item>

在这个示例中,‘computer’ 项在位置 ‘http://dbpedia.org/resource/Computer’ 中描述。

规则引擎

可以定义规则来针对某个特定用户个性化应用程序。规则引擎的一些应用包括决定所要呈现的主题的顺序、根据学习者的喜好生成界面等。规则引擎通常都以单独的线程构建,因此它们将一直运行。

下面是一个规则的示例:

If (learn-pref = 'text') Then learn-ui = 'readable-ui'

这个规则指定:如果这个用户的学习喜好(learn-pref)是文本信息(text),那么这个应用程序将主要由文本元素来组成用户界面(readable-ui)。

一个适应性的富用户界面

一个智能 Web 应用程序的要素之一就是要有一个适应性的用户界面。这个界面应该能适用于不同类型的信息,这些信息是在用户个人文件和喜好的基础上针对某个已知的主题而组成的。一个丰富的用户界面对于当今大多数 Web 应用程序来说都是一个基本需求。更先进的一些功能,比如刷新页面中的某个特定区域、自动完成等等,都只是作为基于 Asynchronous JavaScript + XML (Ajax) 框架的一部分提供。我们有很多种 UI 框架可供用于开发适用性富用户界面,其中包括 Websphere® Portal、JSF、Richfaces、Struts 和 Tapestry。

系统架构

本文提供了一个智能 Web 应用程序的更高层的 Model-View-Controller (MVC) 视图,并描述了表示、处理和数据访问层的核心模块。

图 1. 一个智能 Web 应用程序的 MVC 架构
表示、处理和数据访问层
表示、处理和数据访问层

数据访问层

数据访问层提供了一种语义数据存储、一个用户个人文件以及规则数据库。

语义数据存储对应的是应用程序数据的语义表示。如今的大多数 Web 应用程序与智能 Web 应用程序之间的显著区别是智能 Web 应用程序内的数据表示是通过语义定义的,而不只是在逻辑上定义。

一个用户个人文件存储了用户偏好,比如内容偏好、用户界面偏好以及用户详细信息,比如年龄、性别等。

规则数据库存储了一组规则,将用户偏好或用户个人文件链接到应用程序内的内容、用户界面以及主题。

应用程序数据、它们的关系、用户个人文件、偏好以及规则可使用任何关系型数据库存储,比如 DB2®, Oracle 等。

处理层

处理层提供了规则解释器以及适应引擎。

规则解释器读取存储在数据库内的规则并会基于用户在系统内的状态相应触发它们。系统内用户的状态可基于当前主题/子主题、主题表现等定义。

适应引擎负责基于用户偏好和规则以及用户在应用程序内的状态来调整表示和导航。

规则解释器以及适应引擎可使用一种标准的面向对象语言实现,比如 Java™ code、C++、.NET 等,并使用线程或计时器来在适当的场景下触发特定的规则。

表示层

表示层提供了用户界面以及适应性表示和导航。

智能 Web 应用程序内的用户界面应该足够灵活,以便基于可用的表示和导航元素而不是一个固定的页面设计来构成这个页面,正如在大多数 Web 应用程序中那样。

适应性表示处理的是基于用户个人文件和用户首选项来调整页面的内容。

适应性导航处理的是基于用户个人文件和首选项来调整导航元素和场景。

一个高级用户界面框架,例如 Websphere Portal、JSF、Strut 或 Tapestry,可以实现具有适应性表示和适应性导航的适应性用户界面,这将使应用程序具有在不同场景中针对不同用户修改用户界面内容的动态能力。

结束语

智能 Web 应用程序结束了过去传统 Web 应用程序只能让用户被动地去适应千篇一律的服务的时代,它把我们带入了可以依据不同用户的需求为用户提供个性化服务的新时代。智能 Web 应用程序结合了适用性,改进了用户体验,并使应用程序能够被不同类型的用户访问,以上种种优点也只是智能应用程序众多优势的一小部分。技术的进步将进一步推动 Web 应用程序向更加智能的方向发展,让 Web 应用程序更加智能的时代序幕已经拉开。


相关主题

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Web development
ArticleID=499558
ArticleTitle=为智慧的地球构建一个智能 Web 应用程序
publish-date=07082010