跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

扩展 WebSphere Portal V6 个性化功能: 第 4 部分:部署使用 ATOM Feed 的资源集合

Jonathan Brunn (jbrunn@us.ibm.com), 软件工程师, EMC
Jon Brunn 是 Portal Personalization 的首席架构师。他有 6 年以上的 Personalization 及其他业务规则引擎的工作经验。他现已投身于 IBM 内部 Content Management 的标准化工作当中,并继续致力于 IBM Workplace Web Content Management (IWWCM) 的工作。

简介: 

本系列文章向您描述和展示如何扩展 IBM WebSphere Portal Personalization 功能,以便使用 Personalization 规则将外部源数据用于门户。

第 1 部分介绍了使用外部数据和 Personalization 规则的基础知识。在第 2 部分说明了如何构建简单的应用程序对象来使用该对象的属性决定何时显示和隐藏 Portlet。第 3 部分详细介绍了一个更为高级的场景,帮助我们了解了如何使用 Web 服务来从应用程序对象获取数据值。示例应用程序会根据用户所在区域的天气情况显示或隐藏页面。

本教程是本系列的最后一部分,我们将要使用资源集合来从 ATOM Feed 选择内容列表,并随后使用 Web Content Management 提供这些内容,从而将外部内容集成到门户中。

查看本系列更多内容

发布日期:  2007 年 8 月 16 日
级别: 中级

访问情况 : 2875 次浏览
评论: 

开始之前

系统要求

要按照本教程所述进行操作,您需要以下软件:

  • IBM Rational® Application Developer V6.0.1.1 或更高版本(以下称为 Application Developer)
  • WebSphere Portal V6.0 或更高版本,本系列教程均需要此软件。如果使用的是 WebSphere Portal V6.0,还需要 WebSphere Portal V6.0 fix pack 1(请参见参考资料)。
  • Web Content Management Version 6.0 或更高版本。Web Content Management 包含在您的 Portal server 安装中,采用的是有限许可。

引言

在本系列前面的教程中,我们创建了应用程序对象来访问“当前”信息。Websphere Portal Personalization(以下称为 Personalization)还实现了一个列表,称为资源集合(在第 1 部分进行了介绍)。本部分将说明如何创建和使用资源集合来从 ATOM Feed 选择内容列表,以便能将其他个性化外部内容集成到门户中。开始本教程的学习前,请下载集合的示例代码和二进制文件。

资源集合使用 Abdera(Apache 的一个开源项目)来将 Feed XML 解析为 Java 对象。图 1 说明了外部内容源与 Web Content Management 的 Personalization 组件间的关系。ATOM XML 通过 HTTP 发送到 Feed 资源集合实现(包括在下载部分中)。


图 1. ATOM 充当外部内容源与 Web Content Management Personalization 组件间的通信传输机制
ATOM 充当外部内容源与 Web Content Management Personalization 组件间的通信传输机制

WebSphere Portal Personalization 在 Feed 上充当筛选器,而 Web Content Management 为 Feed 提供表示层。要将 Web Content Management 作为另一个内容源的表示层使用,直接为该内容创建 ATOM Feed 即可。

使用 Feed 作为通信协议可带来一系列优势。可以对各种源使用集合——任何已经生成 ATOM Feed 的源。可以在集合和 Feed 生成器之间使用 HTTP 缓存,还可以将生成器移到远程服务器上。

如果对 ATOM 进行扩展,也可以通过集合处理这些属性。可以将其作为资源集合的动态属性进行访问。

可采用两种方法查询或筛选资源集合;我们将在下面对这两种方法进行讨论。我们的示例集合类实现第二个方法,称为内存筛选。将查询一直解析到数据库当然具有优势。Application Developer 包括了用于为 SQL 数据库和 LDAP 目录生成资源集合代码的向导。这些生成的资源集合将查询传递给数据库和目录。请将 Application Developer 生成的代码作为示例,了解如何将规则的查询转换为数据库可以理解的表格。

对 Feed 生成器进行筛选的资源集合

图 2 显示了 Feed 生成器处理筛选的方法。椭圆表示数据或对象,矩形表示代码或组件的位。规则的查询被转换为查询字符串,并作为请求参数传递给 Feed 生成器。资源集合要负责将查询对象转换为采用 Feed Servlet 所预期的格式的查询字符串,如 SQL 或 Xpath。


图 2. 在 Feed 生成器中完成筛选的数据流
图 2. 在 Feed 生成器中完成筛选的数据流

Feed 生成器将查询字符串传递给数据库或存储库并返回包含与查询字符串匹配的条目的 Feed。资源集合将 Feed 条目转换为资源。在此方法中,单个 Feed Servlet 可以处理所有请求。该 Servlet 将基于规则检索不同的请求。此方法的劣势在于,Feed 生成器必须理解查询字符串。因此,采用此方法构建的资源集合将仅能用于专门针对此资源集合设计的 Feed 生成器。

采用内存筛选的资源集合

图 3 显示了内存筛选方法,其中资源集合会从生成器检索 Feed 内容,数据将在使用者的内存中进行筛选。椭圆表示数据或对象,矩形表示代码或组件的位。


图 3. 在资源集合中采用内存筛选的数据流
图 3. 在资源集合中采用内存筛选的数据流

这对于筛选 100 个项左右的初始集能够正常工作,但对于大数据集将会失败。此方法的优势在于,此集合将完全基于标准。使用前一方法时,Feed Servlet 必须理解查询字符串格式,因此不能将第一个方法用于所有 Feed。

这些实际的限制并不意味着在数据集较大的情况下无法应用完全基于标准的内存筛选。不过,必须考虑 Feed 的生成。每个规则标识其将使用的 Feed。不同的规则可以使用不同的 Feed URL,每个不同的 Feed 可以在应用规则前对结果进行预先筛选。如果 Servlet 或 JSP 作为 Feed 生成器使用,该 Servlet 仍然可以接受请求参数来对 Feed 进行限制。


图 4. 缓存 Feed 响应
图 4. 缓存 Feed 响应

采用内存筛选时,Feed 的内容必须与希望在最终页面的特定位置显示的内容列表大致匹配。一个选择规则将使用一个 Feed。可以使用 Personalization 绑定规则组合 Feed 或排除特定的结果,但对 Feed 条目的排除和组合受到实际的内存和性能的限制。通常,一个 Feed URL 文档与采用内存方法的最终 Web Content Management 页面上的一个列表大体相同。

这两种 Feed 方法具有能对 Feed 进行预先呈现或缓存的优势。因此对 Feed 的请求并不一定会引发对 Content Manager 数据库的请求。可以在初始开发之后添加这些优化,还可以使用传统 Web Servlet 缓存,因为 Feed 实际就是一个通过 HTTP 访问的 XML 文档。图 4 显示了 Feed 生成器、资源集合和潜在 Web 服务器或代理缓存间的关系。

Personalization 资源集合仅将 Feed 中的数据向 Web Content Management 公开。因此,为了处理 Web Content Management 表示标记中的一些属性,必须将其包含在 Feed 中(使用标准属性或扩展属性)。需要对 Feed 的生成进行一定的考虑,以确保会进行此操作。

1 页,共 5 | 后一页

评论



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=248690
TutorialTitle=扩展 WebSphere Portal V6 个性化功能: 第 4 部分:部署使用 ATOM Feed 的资源集合
publish-date=08162007
author1-email=jbrunn@us.ibm.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。