欢迎来到天天文库
浏览记录
ID:23962349
大小:55.50 KB
页数:4页
时间:2018-11-12
《扩展websphere portal v6个性化功能》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、扩展WebSpherePortalV6个性化功能 IBM®软件数据库、以及许多其他位置。您可能还希望在规则中使用一些其他的、非用户数据。例如,如果您的业务不能满足某些关键的指标,您可能希望在执行仪表板中显示附加的Portlet。本系列文章可以帮助您向编写业务规则的非技术用户公开外部信息。 系统要求 要完成本系列教程中的内容,您需要RationalApplicationDeveloperV6.0.1.1或更高版本、WebSpherePortalV6.0或更高版本。 了解Personalization扩展 您可以使用下面两种机制之一将信息
2、公开给规则引擎:应用程序对象和资源集合。在这个部分中,您将看到应该在何时使用其中每种机制。 应用程序对象 应用程序对象允许您使用附加的当前信息来扩展WebSpherePortalPersonalization(以下称为Personalization),例如: 用户信息 用户历史和交易 位置信息 购物车信息 会话或请求信息 业务流程的状态 业务性能统计信息 资产统计信息和状态 断电或系统故障中断信息 紧急状态 日期和时间 天气 来自另一个规则系统的输出 应用程序对象的属性可以进行配置,可以在可见性规则中使用,或在选择规则中
3、用作需要进行匹配的值。您可以使用所有这些信息来决定Portlet或页面何时是可见的,或者决定要在Portlet中显示哪些内容。通常来说,应用程序对象要比资源集合更容易实现,这是因为它们不需要对Personalization接口有更多的了解。 使用应用程序对象 应用程序对象是会话或请求中的Java对象。规则引擎根据您指定的键查找会话或请求中的对象。 规则编辑器将对应用程序对象的Java类进行自检,以确定在编辑器中显示哪些属性。例如,如果该对象是一个具有公开方法getDiscountCode的购物车,那么您将在规则编辑器中看到一个discountCo
4、de属性。可用的操作符可能因属性类型不同而有所不同。在某些情况下(如日期、时间和带时间戳的属性),将根据该属性的Java类型自动为输入字段提供一些专门的值。 您还可以为应用程序对象Bean实现一个BeanInfo类。如果是这样,那么Personalization将在规则编辑器中显示BeanInfo的显示名称。您还可以使用BeanInfo在规则编辑器中隐藏某些属性,只需要让您的BeanInfo不为这些属性返回PropertyDescriptor即可。 要更改这些示例类,可以添加您自己的getter或者read方法,它们用于获取您希望在规则中使用的数据
5、。例如,在第二个教程中,您将建立一个getter方法,它可以用来从Web服务检索数据。在这个示例中,该应用程序对象用作Web服务中数据的Facade。通常,Web服务所公开的接口过于复杂,以至于编写规则的人很难直接使用。使用应用程序对象作为其他地方存储的数据的Facade,这是一种比较常见的模式。 定位应用程序对象 当运行一条规则时,规则引擎必须找到该应用程序对象的一个实例。通常,Personalization将根据您在PersonalizationPortlet中定义应用程序对象时指定的键来查找应用程序对象。例如,您可能在会话中使用键yourco
6、.shoppingCart定义了一个购物车对象。然后在执行规则时,规则引擎将调用session.getAttribute(yourco.shoppingCart)以查找您的购物车实例,假定当规则运行时,该应用程序对象位于会话中。 图1.为购物车对象定义一个应用程序对象 在第一个教程中,您将实现SelfInitializingApplicationObject接口。通常,调用规则的代码需要确保会话中存在对应于预期键的对象。创建这样的代码有时是一件麻烦且容易出错的工作。如果该规则是Portlet上的可见性规则,那么调用该规则的代码位于门户服务器中,而您
7、无法随意更改。您可能还希望为规则添加新的对象,而不需要修改所有的调用者。出现错误的一个常见原因是,在调用规则引擎之前忘了将应用程序对象放到会话中。如果使用SelfInitializingApplicationObject,那么就可以避免出现这样的错误。 在实现了SelfInitializingApplicationObject接口的情况下,如果当规则运行时没有找到应用程序对象,那么规则引擎将尝试实例化该对象。这个引擎将自动地为该对象构造的一个新的实例,然后调用其init方法,以便该对象能够有机会根据上下文对象对自己进行初始化。特别是,上下文包含了会话
8、、请求和用户名,这样一来就可以在应用程序对象中使用会话、请求和用户名中的任何信息。123下一页
此文档下载收益归作者所有