将 WebSphere Lombardi V7.2 属性与 OpenLDAP 和例行任务中定义的用户相关联

本文将演示一种设计模式,该模式使用了 WebSphere® Lombardi 属性以及 OpenLDAP 服务器中定义的用户,以支持决策制定或路由等活动。如果用户属性(例如语言)是在 LDAP 服务器中定义的,用于例行活动,例如 WebSphere Lombardi 中的路由,那么使用来自 LDAP 服务器的 JNDI API 查询属性时可能会产生一些成本。推荐的设计模式可帮助提高性能,并且可在无需使用 WebSphere Lombardi 中的用户同步选项的前提下采用该模式。

Sateesh Balakrishnan, IT 专家, IBM

Sateesh Balakrishnan 是一位 IT 专家,任职于 IBM Software Services for WebSphere (ISSW)。他有超过 10 年的工作经验,目前从事 BPM 和 BRMS 领域研究,擅长领域包括 WebSphere Lombardi 和 WebSphere ILOG。此前,他在 ISSW 从事 WebSphere Application Server 中的应用程序基础架构流、以及 WebSphere Application Server 的性能诊断和调优。他担任过多种职位,其中包括 J2EE 解决方案设计和开发。他目前对 BPM 和 BRMS 系统比较感兴趣。



2012 年 4 月 12 日

简介

IBM® WebSphere Lombardi Edition V7.2(以下简称为 Lombardi)包含一个内部安全性提供程序,您可利用它来创建和维护 Lombardi 用户和组。您可以结合使用内部 Lombardi 安全性提供程序以及外部 LDAP 安全性提供程,例如注册到 Lombardi 嵌入式应用服务器的 OpenLDAP。在使用内部 Lombardi 安全性时,可以在 Lombardi 中任意选择来自两个提供程序的用户和组;举例来说,在流程开发的过程中将用户绑定到参与者组。

本文介绍了将 Lombardi 属性与 OpenLDAP Server 2.4 中定义的用户相关联的以下步骤,并为动态路由场景使用了关联。

本文假设已经安装了 OpenLDAP 服务器,并且使用 Lombardi 进行了配置。


定义 Lombardi 属性

这一节将介绍在 Lombardi 中定义用户属性的步骤。

用户属性定义

用户属性定义是您可以在 Lombardi 的用户定义中配置的一个属性(参数)。举例来说,如果您需要将一个流程任务路由至一名用户的经理,那么就需要了解每一名用户的经理。通过创建用户属性,用户便可与其经理相关联。您可以在图 1 所示的 Library 的 Data 编目中,创建用户属性定义。

图 1. 定义用户属性
定义用户属性

在创建时,将显示一个对话框,询问此属性的名称,如图 2 所示。

图 2. 定义属性
定义属性

用户属性的定义参数应如图 3 所示。

图 3. 属性细节(查看图 3 的大图
属性细节

本用例创建了一个名为 "Reporting Manager" 的属性。


将属性关联到 LDAP 服务器中定义的用户

这一节将介绍为属性赋值并将属性关联到用户的步骤。

成批的用户属性指派

您可以在这个区域中设置与用户相关的属性。登录 Lombardi Process Admin Console。单击 User Management 选项,在该选项下单击 Bulk User Attribute Assignment

在此选项下的 Select an Attribute 部分中,列出了所定义的全部属性。对于用户 "user"(来自 LDAP 服务器),用户 "Jeni"(来自 LDAP 服务器)是与其有关联的 Reporting Manager(报告经理),如图 4 所示。

图 4. 用户属性分配(查看 图 4 的大图
用户属性指派

将 LDAP 服务器中定义的用户与 Lombardi 中定义的组相关联

这一节将介绍 Lombardi 中的组配置。

用户管理

Lombardi 管理器其自己的用户和组模型。用户管理是通过 User Management 部分中的 Process Admin Console 执行的。在这里,组是根据来自 LDAP 服务器的用户和内部安全性提供程序定义的。这些组随后将用作参与者组。

安全性组

组管理是在 User Management > Group Management 下的 Process Admin Console 中执行的。

在图 5 中,一个名为 "TSO" 的组定义为包含两个用户 "user" 和 "tso1"。这两个用户是分别在 OpenLDAP 和 Lombardi 内部存储库中定义的。

图 5. 组管理(查看 图 5 的大图
组管理

类似地,还定义了另外一个称为 "TCGroup" 的组,其中包含两个来自 OpenLDAP 的用户,如图 6 所示。

图 6. 组管理(查看 图 6 的大图
组管理

使用这些关联的一个动态路由用例

现在,您将定义一个业务流程定义 (BPD),并使用属性定义 ReportingManager 来实现一个路由场景。图 7 展示了我们所讨论的流程的快照。其中包括两个活动,分别是 Call Customer 和 TC approve。它们分别位于参与者组 TSO(电话销售人员)和 TC 组(团队协调员)之中。

图 7. 业务流程定义(查看 图 7 的大图
业务流程定义

在 Business Process Definition 的变量部分中,如图 8 所示的以下变量是在私有范围内定义的。我们关注的是类型为 TSO 的复杂变量 TSODetails,其中包含变量、名称和 reportingTo。

图 8. BPD 变量
业务流程定义变量

Call Customer 活动是作为一项人为服务实现的,如图 9 所示。此外,清单 1 中展示的提取用户属性并将其指派给一个变量的逻辑也是在这里实现的。这个变量值随后将用于 Business Process Definition 的下一项活动的路由逻辑之中。

图 9. Call Customer 活动的实现
Call Customer 活动的实现
清单 1. 获取用户属性并将其指派给变量
            tw.local.userName=tw.system.user_loginName;
var user=tw.system.org.findUserByName(tw.local.userName);
tw.local.TSOreportingTo= user.getAttributes().get("ReportingManager");

在清单 1 中,Lombardi 系统 API 用于获取已登录用户的属性。getAttributes().get("ReportingManager") 方法会动态返回对应用户的指定属性值。用户对象是通过调用 findUserByName() 方法获得的,该方法获取用户名作为参数。

随后,对于 TC approve 活动,在 Routing 部分的 Property 选项卡中,选择将 Assign To 设置为 List of Users,并与 reportingTo 变量绑定,如图 10 所示。这样,在工作项从 Call Customer 路由到下一个活动时,发起请求的相应用户的经理集合获得工作项。

图 10. 路由定义(查看 图 10 的大图
路由定义

在上面的场景中,属于 TSO 参与者组的用户 “user” 对活动 Call Customer 执行了操作。在完成之后,任务将路由至 TC approve 活动,并动态指派给属于 TC 参与者组的用户 "Jeni"。用户 "Jeni" 也是用户 "user" 的经理。路由逻辑是在 Properties 选项卡的路由部分中配置的。


结束语

本文介绍了如何使用在 LDAP 等外部存储库中定义的用户,以及在 WebSphere Lombardi 中定义的属性。本文还给出了一个用于检索属性的 API,展示了基于属性的动态路由场景。

致谢

作者特此感谢 Harsha Bushana 在审阅本文时作出的努力。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

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

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

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

选择您的昵称



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

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

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

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

 


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


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=809963
ArticleTitle=将 WebSphere Lombardi V7.2 属性与 OpenLDAP 和例行任务中定义的用户相关联
publish-date=04122012