在 IBM SmartCloud 上实现业务流程即服务,第 2 部分: 在多个租户之间共享 BPM 中间件

本文介绍了如何在云中设置一个多租户业务流程管理环境,使您能够支持更多团队以更少的安装和配置来创建和部署他们自己的业务流程。此设置旨在使用相同的中间件安装的租户时间提供尽可能多的隔离和共享。我们还探讨了如何在 BPM 项目生命周期中通常使用的开发、测试和生产环境中设置不同的 BPM 组件。 本文来自于 IBM Business Process Management Journal 中文版

Daniel Bauman, 顾问软件工程师, IBM

Daniel Bauman 自 1999 年开始就是 IBM 的软件工程师。他参与过许多企业 BPM 项目,是一位专攻 WebSphere Application Server 和 BPM 软件的顾问。



2012 年 7 月 26 日

简介

最近我们的团队与 IBM® CIO 组织联合创建了一个虚拟化的 IBM 业务流程管理 (BPM) 环境,该环境可在多个团队之间共享资源,从而降低采用 BPM 带来的成本,通过共享最佳实践、技巧和技术来促进更紧密的协作。我们的许多企业客户有时还会问我们,他们如何能够使用 IBM BPM 产品实现多租户。在团队或业务单元之间实现共享的常见原因包括:

  1. 通过减少安装和配置来提高管理基础架构的效率。
  2. 减少软件许可费用。
  3. 减少部署时间和工作。
  4. 减少入职培训新租户的时间,因为基础堆栈是共享的,所以入职培训流程是自动化的。
  5. 通过更快地部署新创新,为客户加快价值实现速度。

在本文中,您将逐步了解如何使用 IBM BPM 产品实现这些目标。


共享 BPM 中间件

共享 BPM 中间件的场景如下:

  • 将一个租户定义为一个希望协作和开发其业务流程的用户团队。在企业环境中,这可能对应于一个业务单元或业务单元内的一个团队。
  • 通过提供租户管理的某种形式的自助服务门户,针对系统对租户进行入职培训。入职培训后,来自该租户的用户即可在共享的 IBM Business Process Manager Process Designer 和 Process Center 中开始创作和测试流程。它们的流程不会被来自其他租户的其他用户看到。
  • 为每个租户配备一个专门的 Process Server,将该服务器连接到共享的 Process Center。只有来自该租户的用户可在专用于该租户的 Process Server 上部署、运行和监视流程。可以将此流程集群化,以满足每个租户的不同 SLA 需求。

图 1 显示了总体拓扑结构。

图 1. 共享 BPM 中间件
共享 BPM 中间件

此拓扑结构中的组成部分包括:

  • BSS (Business Support Services) 自助服务门户支持租户和一个租户内的用户注册。在幕后,该软件为每个租户配备 BPM Process Server,并以一种安全的方式自动化它们的配置。高级部署可能包括针对您的基础架构的订阅和结算服务。
  • 使用用于电子商务(WebSeal、Policy Server 和 Directory Server)的 IBM Tivoli® Access Manager (TAM) 来实现安全限制,提供租户感知能力。当一个 HTTP 请求到达时,WebSeal 与 Policy Server 合作确定请求的资源是否受到保护。如果该资源是受到保护的,那么 WebSeal 会确保用户是经过验证的。WebSeal 还用于为请求建立一个租户上下文。租户上下文包含用于识别用户属于哪个租户的元数据,使用户可路由到合适的 Process Server。我们的最佳实践 [2] 文章介绍了如何使用 Tivoli Access Manager 在多租户云解决方案中提供访问控制。
  • Process Designer 和 Process Center:流程创作环境可在多个租户之间共享。每个租户使用一个惟一的租户 ID 标识。租户 ID 用于在共享的 Process Center 中创建一个,来自同一个租户的所有用户都会自动添加到该组中。借助此配置,可将一个租户的流程可与另一个租户的流程进行隔离。
  • 租户感知的 Process Server:为每个租户配备了它们自己的 Process Server,所以它们可在自己的 Process Server 中运行和监视子自己的流程。如果从系统删除了一个租户,它们的 Process Server 会自动解除配备。
  • 共享的 TAM Directory Server:在租户注册期间,所有用户都会添加到同一个共享 LDAP。LDAP 模式具有标识租户名称和一个用户的租户 ID 的更多属性。
  • 共享的 DB2 服务器:租户可以在一定的限制下共享同一个数据库服务器。请参阅 共享一个数据库服务器 了解有关的更多信息。

自定义 BPM 中间件

为了实现图 1 中的拓扑结构,您需要按如下方式自定义软件产品:

  1. 让 Process Center 和 Process Server 使用同一个共享 LDAP。
  2. 在服务器之间启用单一登录。
  3. 在 WebSeal 虚拟机中创建逆向代理规则,以便将租户用户路由到正确的 Process Server。
  4. 为每个租户用户设置合适的 BPM 角色。
  5. 确定数据库服务器配置。

以下各节将介绍如何完成这些任务。为了使任务更容易理解,我们将介绍如何使用产品用户界面执行这些任务。

您还可以开发脚本来自动化这些任务。在我们的实验室中,我们使用 Image Construction and Composition Tool 和 IBM Workload Deployer 将自定义设置制作为虚拟映像和模式,以便能够轻松地部署到不同的云环境,包括 IBM SmartCloud Enterprise [5] 和 IBM PureApplication Systems [6]

让 Process Center 和 Process Server 使用同一个共享 LDAP

使用 Tivoli Directory Server 作为一个共享 LDAP,并在其中定义租户、用户和组。共享的 Process Center 和该租户专用的 Process Servers 必须配置为使用连锁存储库。您可使用管理控制台添加共享 LDAP,如图 2 所示。本系列的 第 1 部分 介绍了如何使用 ICON 扩展 BPM 云映像,并展示了如何自动化此步骤。

图 2. 启用连锁存储库
启用连锁存储库

启用单一登录

单一登录 (SSO) 使用户只需登录一次即可访问 Process Center、Process Portal 等,系统不会提示他们再次登录它们中的每一个。LTPA 令牌用于在 WebSeal、共享的 Process Center 和特定于租户的 Process Server 之间实现 SSO。LTPA 密钥文件是从 WebSeal 中导出的,然后会导入到 Process Center 以及每个特定于租户的 Process Server 中,如图 3 所示。

图 3. 将 LTPA 密钥文件导入 Process Center 和 Process Servers 中
将 LTPA 密钥文件导入 Process Center 和 Process Servers 中

因为 Process Designer 是在一个 Windows® 虚拟机上运行的,所以要使用 Remote Desktop Connection 来连接它,而不是使用 WebSeal。在 Windows 虚拟机上,应该向每个用户的操作系统添加一个用户 ID,使每个租户的用户均可使用他们的 Windows ID 进行登录。

在 WebSeal 虚拟机中创建逆向代理规则

WebSeal 虚拟机上的 Apache HTTP Server 提供了逆向代理支持,将传入的 HTTP 请求分配到合适的位置。该 URL 会基于租户上下文 而重写,所以请求均可分配给共享的 Process Center 应用程序和租户感知 Process Server 应用程序。要完成此任务,需要更新此虚拟机上的两个文件:/etc/hosts 和 /etc/httpd/conf/httpd.conf。

hosts 文件定义一个 IP 地址的逻辑名称。例如,当我们针对我们的环境对租户进行入职培训时,以下输入会自动添加到 hosts 文件中:
170.224.166.39 bpm200001

该 IP 地址 (170.224.166.39) 表示为租户配备的 Process Server IP。逻辑名称包含一个前缀 (bpm) 和租户的惟一 ID (200001)。

httpd.conf 文件允许您定义一些条件重写 [7]。例如,您可按如下方式定义一条将用户路由到它们的租户 Process Server Admin 控制台的规则:

RewriteCond "%{HTTP:tenantid}" !^$
RewriteRule "^/ProcessAdmin/(.*)$" "http://bpm%{HTTP:tenantid}/ProcessAdmin/$1" [P,QSA,L]

条件重写检查 HTTP 请求头部是否有一个租户 ID。如果请求头部中有租户 ID,那么重写规则会将针对 /ProcessAdmin 的所有请求路由到一个特定于租户的 Process Server。

在我们的示例中,一个具有租户 ID 200001 的租户将路由到 Process Server http://bpm200001/ProcessAdmin/。根据 /etc/hosts 文件中定义的逻辑映射,这等同于路由到 http://170.224.166.39/ProcessAdmin/

为每个租户用户设置合适的 BPM 角色

在一个共享服务的多租户系统中,一般有 3 个不同的用户角色:

  • 租户用户:此角色表示一个租户用户。
  • 租户管理员:此角色表示一个负责管理来自租户的操作和用户的用户。一个租户必须拥有至少一个租户管理员。
  • 超级管理员:此角色表示负责管理整个多租户环境的超级管理员。

IBM BPM 软件需要设置一些用户角色,创作、部署和监视工作才能进行。作为负责多租户 BPM 部署的超级用户,您需要考虑如何将租户角色映射到 BPM 角色,以支持典型的 BPM 生命周期并提供想要的隔离。例如:

  1. 您如何允许租户用户在共享的 Process Designer 和 Process Center 中创建业务流程?
  2. 您如何在租户用户之间建立限制,使他们只能部署到特定于自己的租户的 Process Server?
  3. 您如何允许租户管理员使用 Process Admin 控制台管理特定于其租户的 Process Server 上的租户用户和流程?

让我们看看超级管理员如何在多租户环境中执行以下 3 种配置。

配置 1:

要使每个租户用户能够执行创作,需要将每个租户用户添加到共享 Process Center 上的 tw_authors 组中,如图 4 所示。

图 4. 将所有租户用户添加到 tw_authors 组
将所有租户用户添加到 tw_authors 组

配置 2:

要在租户用户彼此之间建立限制,并使他们只能部署到特定于自己的租户的 Process Server,在共享的 Process Center 上,需要为每个租户创建一个惟一的组名称(比如 tenant1tenant2),将来自一个租户的所有用户添加到他们自己的组中。

在特定于租户的 Process Server 上,更新 100Custom.xml 文件,以便为租户指定相应的组名称 [8]。在我们的示例中,在 tenant1 Process Server 上,所用代码如下:

<properties>
  <server merge="mergeChildren">
    <process-center-install-group merge="replace">tenant1</process-center-install-group>
  </server>
</properties>

配置 3:

要使租户管理员能够管理他们的租户用户和例程,请在每个特定于租户的 Process Server 上执行以下操作:

  1. 将租户管理员添加到 tw_admins 组,如图 5 所示。
    图 5. 将所有租户管理员添加到 tw_admins 组
    将所有租户管理员添加到 tw_admins 组
  2. 将租户管理员添加到 WebSphere Application Server 中的管理员角色中,如图 6 所示。
    图 6. 将所有租户管理员添加为 WebSphere Application Server 管理员
    将所有租户管理员添加为 WebSphere Application Server 管理员

完成这些配置后,来自每个租户的用户应该能够按照 BPM 生命周期来创作、部署和监视其流程。


共享一个数据库服务器

Process Server 的默认安装和配置是:每个租户都拥有自己的数据库服务器,BPM 数据库安装在数据库服务器上,如图 7 左侧所示。

在需要更多共享的多租户环境中,可以拥有一个共享的数据库服务器,为每个租户提供特定于租户的 BPM 数据库,将每个特定于租户的 Process Server 配置到这个特定于租户的数据库,如图 7 的右侧所示 [4]

图 7. 共享一个数据库服务器
共享一个数据库服务器

端到端用户体验

有了上述配置,租户用户就能够使用浏览器和远程桌面连接,从他们的 Windows Mac® 使用 IBM BPM 产品。例如,图 8 显示了一个使用远程桌面连接在 SmartCloud Enterprise 上运行的 IBM Process Designer 的租户用户。

图 8. 使用远程桌面连接到 SmartCloud Enterprise 上的 Process Designer
使用远程桌面连接到 SmartCloud Enterprise 上的 Process Designer

同一个用户也可登录到 BSS 自助服务门户,访问共享的 Process Center 或自己的特定于租户的 Process Server,如图 9 所示。

图 9. 使用一个 Web 浏览器访问 Process Center 和 Process Server
使用一个 Web 浏览器访问 Process Center 和 Process Server

在开发、测试和生产环境中共享 BPM

在典型的 BPM 项目生命周期中,IT 团队会为开发、测试和生产使用不同的环境。图 10 显示了如何使用一个共享的 Process Center 将流程快照推广到开发、测试和生产环境中的 Process Server。职责分离也可通过 BPM 软件实现,其中开发人员可将流程快照推广到一个开发 Process Server,但只有授权的测试人员才能将流程快照推广到测试环境中的 Process Server,只有管理员能够将流程快照推广到生产环境中的 Process Center。此功能使项目团队只需在 BPM 项目生命周期中拥有极少的组件,这进一步降低了成本。

图 10. 在开发、测试和生产环境中共享 BPM
在开发、测试和生产环境中共享 BPM

结束语

本文介绍了如何使用 IBM BPM 产品实现良好的共享和隔离水平。还演示了如何创建一个虚拟化共享服务环境,您的应用程序开发团队可在其中快速上手工作,无需在他们各自的工作站上安装任何软件。建立一个集中化的组织来管理共享环境,这样做应该能实现更好的标准化、一致性和重用。

共享环境也带来了新的业务和技术挑战。例如,您需要在租户之间协调和协商软件版本。系统的负载现在变成了 N(而不是 1 )个租户的负载总和。在未来的文章中,我们将分享解决这些问题的更多技术。

参考资料

学习

获得产品和技术

讨论

条评论

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=827799
ArticleTitle=在 IBM SmartCloud 上实现业务流程即服务,第 2 部分: 在多个租户之间共享 BPM 中间件
publish-date=07262012