|
门户(Portal)为用户提供了一种通过 Web 访问各种后台应用和信息系统的统一接口。然而Portal 将信息和服务集成的同时,也带来了用户的多样性。如何满足特定用户或者用户群体的特定需求,为其提供可定制的个性化内容成为了一个必须解决的问题。
通常,要解决网站个性化问题需要涉及到以下资源和技术:
- 用户:门户网站的所有可访问用户的相关信息及属性。
- 内容:网站能够展现给用户的内容及服务,也包括展现内容或者提供服务的方式。
- 匹配技术:将用户关联到恰当的内容的技术,可能包括过滤、规则引擎、推荐引擎等。
IBM WebSphere Portal(以下称 WebSphere Portal)应用不同的匹配技术处理了用户和内容两种资源,为您提供了多种层次的个性化支持:
- 根据用户概要的定制:WebSphere Portal 可以根据事先定义好的用户或用户组的概要向用户展现其需要的内容。例如,当一个新用户注册后,WebSphere Portal 可以根据在用户概要中定义的语言偏好为其显示特定语言的内容。另外,您还可以把某个页面的布局情况或者对页面上某些资源的访问控制信息记录在用户概要中,WebSphere Portal 将根据用户概要显示页面上的资源。
- 基于规则的个性化引擎:用户可以定义一系列业务规则用于决定哪些内容可以被哪些用户访问到。用户可以通过WebSphere Portal 提供的规则编辑 Portlet 来撰写业务规则并通过WebSphere Portal 提供的规则引擎来完成这些业务规则的执行。这种方式可以非常灵活地把用户资源和内容资源联系起来。本文通过 WebSphere Portal 提供的规则引擎,可以轻松的实现诸如“在每年7月的时候为结婚1-2年的用户提供育婴产品的目录服务”之类的业务规则。
- 基于协作筛选的个性化推荐:一般这个层次的个性化支持需要大量的统计数据作为基础。例如,有若干位经常访问体育新闻页面的用户都购买了某种体育产品,则 WebSphere Portal 可能为其他也经常访问体育新闻页面的用户推荐这款产品。WebSphere Portal 对这方面的支持是通过 Feedback 机制和 Likeminds 引擎实现的。
本文将重点介绍前两种方式的个性化支持,关于“基于协作筛选的个性化推荐”相关内容,请您参考附录中关于 Feedback 和 Likeminds 的资源。通过本文,您可以了解如何使用 WebSphere Portal 提供的机制进行基于用户概要的个性化定制,以及如何使用规则引擎实现更加灵活的基于规则的个性化支持。
WebSphere Portal 提供了多种个性化定制机制,用户可以通过这些个性化定制方式访问到基于用户实际需求而重新组合的 Portal 的资源集合。本部分内容以 Portal 外观的个性化定制、访问控制和可视性规则、简单类别匹配为例,介绍几种用户常用到的个性化定制方法。
WebSphere Portal 为用户提供了多种编辑 Portal 外观的个性化定制方式。
下面是一个通过编辑用户概要文件的首选语言对 Portal 进行外观个性化定制的示例。
在 Portal 中新注册两个用户,其中,user_zh 的用户概要文件中将中文设置为首选语言,user_jp 的用户概要文件中将日文设置为首选语言,通过这样的个性化定制方式,以用户 user_zh 和 user_jp 登录后的 Portal 外观对比如图 1 所示。
除了通过设置用户概要文件中首选语言或其他属性来个性化定制 Portal 外观的方式外,WebSphere Portal 用户还可以把某个页面的 portlet 布局情况或者页面上某些资源的访问控制信息记录在用户概要中,Portal 将根据用户概要显示页面上的资源。
WebSphere Portal 提供对页面、Portlets 、文档等资源的访问控制,使得每个成员登录后只能访问被授权资源。这种个性化定制方式是通过 WebSphere Portal 提供的访问控制和可视性规则实现的。
访问控制决定了允许用户访问页面或 Portlet 时拥有的权限。为了查看页面和 Portlet,必须使用户具有对该资源的足够访问权限。您可以参考资源中关于访问控制的资源。可视性规则可以定义 Portlet 在某种条件下对特定 Portal 用户可见或隐藏。
下面是一个在 Portal 的管理页面通过个性化采集器创建可视性规则的应用实例。在该实例中,有标题为“招聘人员信息”的页面,该页面由“人员查找程序”和“频繁访问的用户数”两个 Portlet 组成,通过对 Portlet “频繁访问的用户数”进行可视性规则映射使其对特定用户可见或隐藏。
1.登录 WebSphere Portal ,进入“管理”->“管理页面”,对页面“招聘人员信息”进行页面布局编辑。
2.在弹出的“编辑布局”页面中,点“显示 portlet 规则映射”,显示所编辑页面的 portlet规则映射情况。
3.为 Portlet “频繁访问的用户数”新建映射规则。如图2所示。
4.在弹出的“个性化采集器“界面上定义可视性规则“user1 可见“,如图 3,此可视性规则的逻辑判断语义是当前用户是 user1 时显示页面或 portlet,对其他用户,页面或portlet 隐藏,保存创建的可视性规则。
通过以上4个步骤,设置了 portlet“频繁访问的用户数“的映射规则为可视性规则“user1可见”。
在完成这些设置后,由“人员查找程序”和“频繁访问的用户数”这两个 Portlet 组成的页面“招聘人员信息”展现给用户 user1 和用户 user2 的页面内容是不同的。在可视性规则“user1 可见”的作用下,用户 user1 可以访问到“招聘人员信息”页面上的 portlet“频繁访问的用户数”,而该 portlet 对 user2 则是隐藏不可见的。如图4所示。
需要注意的是,访问控制的优先级高于可视性规则。在应用可视性规则之前,您必须拥有访问该页面或 portlet 的权限。访问控制还决定了是否在搜索中返回页面或 portlet。如果用户没有对 portlet 或页面的访问权,那么在搜索结果中将看不到这些 portlet 或页面;如果用户可以访问 portlet 或页面,但是将可视性规则设置为隐藏页面或 portlet ,那么仍将在搜索结果中会显示它。
WebSphere Portal 的 Web Content Management (以下称 WCM )组件提供了类别匹配的个性化定制方法。WCM 支持将 Web 内容( Web Content )划分为很多类别( Category ),并将这些类别的内容通过编辑用户概要文件分配给特定用户。通过这种方式,您可以自定义登录后所要浏览的内容。
1.登录 WebSphere Portal,进入 WCM。
2.在 WCM 里,选择”新建”->”类别”。新建两个标题分别为”体育新闻”和”经济新闻”的类别。
3.对每个类别编辑用户概要文件,对类别”经济新闻”操作用户概要文件的示例如图 5 所示。
4.在”用户概要文件选择”界面中,点”选择”为该类别指定访问用户。
5.在弹出的”人员查找”界面上,搜索并添加用户 userB 。则用户 userB 可访问类别为”经济新闻”的 Web 内容。
同理,对用户 userA 进行概要分析,使用户 userA 可以访问类别为”体育新闻”的 web 内容。
通过以上操作,userA 可以查看类别为“体育新闻”的内容,userB 可以查看类别为“经济新闻”的内容。如图 7 所示。
WCM 提供的这种个性化定制方式将用户概要文件和内容类别进行匹配,个性化定义了用户登录 Portal 后所浏览的内容。
WebSphere Portal 还提供了个性化规则引擎,它能够根据访问者的偏好以及上下文环境设置,为其选择适用于该概要文件的内容。用户通过 WebSphere Portal 个性化提供的编辑界面撰写业务规则,并应用在具体的页面和 Portlet 中,为当前门户访问者提供基于上下文属性的特定资源和内容。
WebSphere Portal 的个性化规则引擎主要包含如下项:
资源( Resource )
组织展现给门户访问者的内容。WebSphere Portal 个性化组件将 Web 站点的内容和资源结构化,组织成资源集合(Resource Collection),通过请求最终显示在其所访问的 Web 页面上。一个资源集合定义一系列属性,用以描述具有相似特点的一组资源。Web 站点中的新闻文章、产品、统计信息和教材等,均能在 WebSphere Portal 个性化组件中各被定义为一个资源集合。
WebSphere Portal 个性化组件为 WCM 组件提供了缺省的资源集合。Web Content 和 Web Component ,分别用来表示 WCM 中的 Web 内容和 Web 组件两类资源。用户也能根据具体的业务需要来定义自己的资源集合。
用户可以在定义资源集合时指定该资源所拥有的属性,称为固有属性。用户也可以在运行阶段扩展资源的属性,称为动态属性。
规则( Rule )
个性化引擎通过执行具体的规则来完成内容的选择。撰写规则时需要定义具体的条件判断语句,在规则运行时个性化引擎根据当前访问者的属性设定和上下文环境匹配条件判断语句,并根据判断结果决定执行那些工作。因此个性化组件能够通过规则的执行实现对 Web 站点展现内容的个性化。
一条规则通常包含逻辑条件判断语句和对应的执行动作定义。执行动作可以是根据逻辑判断选择具体的返回资源,也可以返回逻辑判断对应的当前访问者概要分析结果。图 8 为一个典型的规则”选择内容规则1”的内容定义。该规则包含三条直观的逻辑判断子句及子句间的逻辑关系,执行动作为返回所有满足逻辑条件的 Web 内容。
WebSphere Portal 个性化提供了如下几种规则类型:
- 操作规则,该类规则将完成某些动作或返回某些资源,包括选择内容操作规则,更新操作规则和电子邮件操作规则。
- 概要分析规则,根据个人(通常是当前站点访问者)的属性来对用户进行分类。
- 绑定规则,使操作和概要分析程序结合在一起,以指定遇到已定义的条件时要执行的操作。
- 推荐规则,基于 LikeMinds 引擎向站点访问者推荐内容。
- 可视性规则,决定用户在站点中将看到的内容或应该向用户显示的内容。
WebSphere Portal 个性化支持对所有类型的规则进行方便的可视化编辑。编辑界面能够满足用户制定具有高复杂度逻辑条件判断语句的规则。逻辑条件判断语句中可以引用与用户相关的上下文信息,因此可通过规则的执行结果实现用户访问的个性化。
示例:创建一条规则:
1.登录 WebSphere Portal,进入个性化(Personalization)编辑页面。
2.点击业务规则链接,点击”新建””规则”以打开规则编辑界面。
3.在规则编辑界面,将规则命名为”选择内容规则1”,制定和编辑逻辑条件判断语句,完成后保存。如图 9所示。
4.在 Personalization 导航器中将看到保存的规则,单击规则名称将在页面下方的编辑器中显示规则:”选择内容规则1”的内容。
内容点(Content Spot)和竞销(Campaign)
用户使用内容点来在 Web 页面上调用规则,是规则在页面上的代表或占位符。当访问者查看页面时,页面上的内容点会被触发,通过规则映射通知规则引擎执行哪个规则,从而将执行结果展现到客户端。
图 10 为一个内容点的示例,当访问者访问部署了内容点的页面时,将根据内容点中指定的缺省映射触发规则“选择内容规则1”。
下面介绍一个 Personalization 术语—竞销,用来定义一个时间范围,在该时间内为内容点提供更高优先度的规则映射。一条竞销包含一组规则到内容点的映射,优先级别,以及开始时间和结束时间。在竞销周期内,页面上的内容点将执行竞销中所映射的规则。用户能够在WebSphere Portal 个性化提供的编辑页面中创建和编辑内容点和竞销。
图 11 为竞销的示例,根据该竞销定义,在2008年7月3日到2009年7月3日之间(称为竞销期),页面上的内容点将执行竞销中所映射的规则。图12定义了”新建内容点”在该竞销中将映射到规则”择内容规则2”因此在竞销期内(每一条规则映射允许再次定义自己映射的生效期,但必须在所属竞销的竞销期之内),当访问者访问部署有该内容点的页面时,将不触发执行上一节例子中的规则”择内容规则1”而是触发规则”择内容规则2”更多有关内容点、竞销以及规则映射的执行机制,请参阅参考资料中所列的 WebSphere Portal 信息中心。
预览执行结果
WebSphere Portal 个性化组件中提供了预览功能。用户可在规则的撰写过程中进行预览,使规则的执行结果满足预期要求。
在规则和内容点的编辑界面上,点击预览选项卡,即可测试规则和内容点的执行和返回结果。预览结果如下图,将返回符合逻辑判断语句的 Web 内容。因内容点的执行处于图12中规则映射所定义的竞销期内,执行”容点1”回的是”择内容规则 2”结果。请参阅 WebSphere Portal 信息中心,获取关于 WCM 操作与设置的详细文档。
通过 WebSphere Portal 个性化组件提供的的个性化列表 portlet ,也能进行预览。个性化列表 portlet 用于显示来自规则、内容点或资源的个性化内容。在很多情况下,它使您无需自己对新的 portlet 和 JSP 进行编码即可看到返回的具体资源内容。
如图14,点击个性化列表 Portlet 右上角的”配置”,进入个性化列表 Portlet 配置界面。在”索了哪些 Personalization 资源”栏中,点击下三角符号并打开”择规则、内容点或资源集合”选择需要预览的具体个性化对象,如选择”择内容规则 1”。
在”示选项”项卡中,配置需要显示和预览的具体属性(图 15)。保存配置信息后,就能在个性化列表 Portlet 中看到规则、内容点以及资源集合的预览结果(图 16)。
选择”上次修改日期”作为标题属性,点击确定后,个性化列表 Portlet 将执行”选择内容规则 1”,并在 Portlet 中显示返回的内容的”上次修改日期”属性:
在 Web 站点中使用规则展现个性化内容
使用 WebSphere Portal 个性化组件提供的 API 可以将编辑完成的规则或内容点应用到具体的Portlet 和 JSP 页面上。下面的清单 1 给出了一个在 JSP 页面上应用内容点的示例。
清单 1. 在 JSP 页面上应用内容点触发个性化规则引擎的示例
<%@page import="com.ibm.websphere.personalization.*" %>
<%@page import="com.ibm.websphere.personalization.context.*" %>
<%@page import="com.ibm.websphere.personalization.resources.*" %>
<%@page import="com.ibm.wcp.runtime.util.*" %> |
将该 JSP 页面作为 Portlet 的 View 模式界面,部署到 WebSphere Portal 上。该 Portlet 执行“内容点 1”,并通过方法 ((Resource)results[i]).getId() 显示返回结果的 Id。您可以通过参考资料中提供的 WebSphere Portal 信息中心 获得更多的个性化 API 信息。
WebSphere Portal 个性化组件为用户提供了扩展规则引擎的接口。用户可以通过实现接口来创建满足业务需要的新资源集合( Resource Collection ),也可以通过添加应用程序对象( Application Object )来扩展规则中的可用属性集合。
扩展资源集合( Resource Collection )
用户可以通过实现个性化组件提供的 API 来定义自己的资源集合。资源集合的定义需要实现如下接口:
com.ibm.websphere.personalization.resources.Resource 接口提供从客户数据存储到个性化规则引擎资源集合的映射。通过实现 Resource 接口,能够使特定的资源和内容为个性化规则引擎所用。
com.ibm.websphere.personalization.resources.ResourceDomain3 接口用以组织资源实例,通过 ResoureDomain3 实现读取和查找具体资源实例的方法。在选择操作规则和推荐规则的执行过程中,规则引擎将调用 ResourceDomain3 提供的方法来查找和定位资源集合。
com.ibm.websphere.personalization.resources.ResourceManager3 接口提供资源的管理方法,并负责个性化引擎中的资源与用户数据存储之间的同步。
扩展应用程序对象(Application Object)
WebSphere Portal 个性化中的规则调用应用程序对象以获取上下文属性,作为规则中逻辑判断条件的参数来源。在规则编辑界面,用户指定规则中使用的应用程序对象属性。规则在执行时将通过上下文获取应用程序对象具体的值,并完成逻辑条件判断。
创建一个应用程序对象需要将应用程序对象的实现类上传到 WebSphere Portal 的类路径( ClassPath )中,并在个性化编辑界面中新建一个应用程序对象。
图 17是创建应用程序对象的界面,其中会话密钥一栏是规则运行时该应用对象在请求( request )或会话( session )中的键值。类名是该应用程序对象的实现类。应用程序对象创建成功后,可在规则编辑器将其属性应用于规则逻辑条件判断语句中。
WebSphere Portal 个性化也提供若干安装即用的应用程序对象,包括 Action Bean、Action Count、Browser Capability、Category Bean、Category Count、Date、Portlet Attributes、Request 和 Session 对象。