内容


构建 SOA 组合业务服务,第 10 部分

使用 WebSphere Process Server 和 WebSphere Service Registry and Repository 提供对服务消费的治理

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 构建 SOA 组合业务服务,第 10 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:构建 SOA 组合业务服务,第 10 部分

敬请期待该系列的后续内容。

引言

Jivaro Bank 是一个虚拟原型组合应用程序,它可在名为 Jivaro Bank Service Registry 的自定义 WebSphere Service Registry and Repository 中发布银行服务。这些服务将由其他内部客户使用(假定内部客户拥有用户注册中心的用户帐户)。本系列中的第一篇文章构建 SOA 组合业务服务,第 1 部分:开发 SOA 组合应用程序来支持业务服务介绍了 Jivaro 银行应用程序支持的一些场景。Jivaro Bank 安全架构使用一个基于 Tivoli® Directory Server 的 LDAP 用户注册来进行身份验证。为了进行授权,它将 Tivoli Access Manager 用作其 WebSphere Portal 前端和其 WebSphere Process Server 后端的授权策略决策点。当内部客户能够在运行时调用 Jivaro 银行服务之前,需要对其进行授权,并且该客户还需要同意服务消费者与提供者之间达成的契约中规定的特定条款和条件。

为了对订阅方和消费方进行治理,Jivaro Bank 制定了以下策略:

  • 没有服务提供方的事先授权,服务订阅者不得查看和使用服务端点信息。
  • 服务订阅者可以通过通过完成服务提供方提供的在服务注册中心中的表格或契约在给定的服务中注册感兴趣的内容。
  • 得到批准后,服务订阅者应能够查看端点信息,有权调用该端点,自动获得任何服务元数据更新的通知。
  • 服务提供者应能够与该服务注册中心的服务订阅者一起来管理服务契约。
  • 任何发布的服务都可以有多个端点,可以将这些端点归类为公共或专用以及测试或生产。允许服务订阅者仅查看公共端点。

本文概述了如何使用 WebSphere Process Server 和 WebSphere Service Registry and Repository 在 Jivaro Bank 中实现这些策略。

图 1 显示的示例中,潜在订阅者 James Hu 先生想在其业务流程中(如应付帐款流程)调用发布的 Jivaro 银行服务(在本例中为用于自动清算检查的 Jivaro Bank Batch ACH Service)。首先,他需要订阅发布的服务。在订阅得到管理员批准后,他才可以找到此服务的公共端点并将其用于自己的业务流程中。应付账款流程中的调用将通过 Jivaro Bank Batch ACH Service 中介模块路由,该模块将基于多个标准把该调用路由到其中一个专用端点中。该中介模块将批处理请求中的检查数量用作确定将此请求路由到哪个内部端点的标准。有关如何将 WESB 中介模块与 WebSphere Service Registry and Repository 一起使用的示例,请参阅参考资料

Jivaro Bank 在 Jivaro 服务注册中心注册了两个内部端点:

  • highVolumeEndPoint(成本:每检查一次 5 分;响应时间:每检查一次 2 毫秒;10000 > 每批检查数量 > 1000)
  • lowVolumeEndPoint(成本:每请求一次 3 分;响应时间:每检查一次 20 毫秒;1000 > 每批检查数量 > 1)
图 1. Jivaro 银行服务订阅者授权流程概述
Jivaro 银行服务订阅者授权流程概述
Jivaro 银行服务订阅者授权流程概述

了解场景

该场景包括四个不同的角色:查看者、订阅者、服务提供者和 IT 管理员,如图 2 中所示。

图 2. Jivaro 订阅者授权治理流程中的用例和参与者
Jivaro 订阅者授权治理流程中的用例和参与者
Jivaro 订阅者授权治理流程中的用例和参与者

任何在 Jivaro Bank 用户注册中心具有用户 ID 的内部用户都可成为该 Jivaro Bank 服务注册中心的查看者。在登录到 Jivaro Bank 服务注册中心之后,查看者可以查看可供订阅的所有服务,如图 3 中所示。

图 3. Jivaro Bank 服务注册中心的查看者透视图
Jivaro Bank 服务注册中心的查看者透视图
Jivaro Bank 服务注册中心的查看者透视图

查看者可以选择一项服务并查看所选服务的一些基本信息,如版本、业务所有者和描述。对于查看者感兴趣的服务,查看者可以选择订阅该服务,如图 4 中所示。

图 4. Jivaro Bank 服务注册中心中的查看者透视图和所选服务的详细视图
Jivaro Bank 服务注册中心中的查看者透视图和所选服务的详细视图
Jivaro Bank 服务注册中心中的查看者透视图和所选服务的详细视图

在订阅发布的服务时,查看者需要在 Jivaro Bank 服务注册中心创建预注册契约模板的实例,如图 5 中所示。

图 5. 在 Jivaro Bank 服务注册中心中创建 Jivaro Bank Batch ACH Service 契约模板的实例
在 Jivaro Bank 服务注册中心中创建 Jivaro Bank Batch ACH Service 契约模板的实例
在 Jivaro Bank 服务注册中心中创建 Jivaro Bank Batch ACH Service 契约模板的实例

在创建该契约模板的实例时,查看者需要提供契约中几个项的值,例如,在任何请求中所期望的最大检查数、每小时所期望的最大调用数、期望的响应时间和契约电子邮件,如图 6 中所示。此信息对于进行容量规划的管理员角色非常有用。

图 6. 从服务注册中心中的契约模板实例化的 Jivaro Bank Batch ACH Service 契约所包含的元素
从服务注册中心中的契约模板实例化的 Jivaro Bank Batch ACH Service 契约所包含的元素
从服务注册中心中的契约模板实例化的 Jivaro Bank Batch ACH Service 契约所包含的元素

在查看者提交请求订阅服务后,Jivaro Bank 服务注册中心将自动调用一个名为订阅者授权过程的流程,如图 7 中所示。此流程将在 WebSphere Process Server 的一个实例中运行。

图 7. 与 Jivaro Bank 服务注册中心相关的订阅者授权流程
与 Jivaro Bank 服务注册中心相关的订阅者授权流程
与 Jivaro Bank 服务注册中心相关的订阅者授权流程

查看图 7 的放大图

完成任务

订阅者授权流程的首要任务是服务提供者角色的人工任务,如图 8 中所示。服务提供者是该服务的业务所有者。此处,服务提供者将根据每小时处理请求的最大数量和由 Batch ACH Service 契约中潜在订阅者所指定的期望响应时间来检查服务基础设施的能力。如果有足够的容量,则将批准该请求。服务提供者还提供与请求中的不同内部端点相关的成本。

图 8. 服务提供者批准订阅请求并提供 Jivaro Bank Batch ACH Service 成本的人工任务
服务提供者批准订阅请求并提供 Jivaro Bank Batch ACH Service 成本的人工任务
服务提供者批准订阅请求并提供 Jivaro Bank Batch ACH Service 成本的人工任务

查看者的下一个任务是接受服务提供者提供的成本。查看者批准该成本后,将在服务注册中心创建契约(在服务提供者与查看者之间)。

下一个任务是IT 管理员角色授权查看者在 Jivaro Bank 服务注册中心能够查看其订阅的服务的公共端点。IT 管理员角色还有一个任务是再次授权查看者调用所期望的服务。在 LDAP 用户注册中心,他可以通过向适当的角色(如 ACHServiceSubscriberRole)添加查看者的用户帐户来完成此任务。在该流程的最后任务中,IT 管理员将使用查看者创建的电子邮件地址在 WebSphere Service Registry and Repository 中创建订阅记录。当在 Jivaro Bank 服务注册中心中更改服务记录的属性时,订阅记录将自动通知查看者。

这将完成订阅者授权流程,该流程将使查看者转换为订阅者角色。接下来,查看者可以登录到 Jivaro Bank 服务注册中心,查看有关订阅服务的详细信息,如公共端点和相关的服务。还授权订阅者在基于 Tivoli Access Manager 的授权策略决策点调用已订阅的服务。

结束语

本文介绍了 Jivaro Bank 中的几种场景,概述了如何使用 WebSphere Process Server 和 WebSphere Service Registry and Repository 来实现订阅方服务治理。您已经了解到 WebSphere Service Registry and Repository 如何提供基于角色的访问控制,以及如何使用它来管理服务以及与服务相关的实体(如契约)。本文还介绍了 WebSphere Process Server 如何扩展 WebSphere Service Registry and Repository 并帮助实现人工工作流,如订阅者授权流程。

在本系列的下一篇文章中将详细介绍该解决方案。文中提供有关 WebSphere Service Registry and Repository 自定义、WebSphere Service Registry and Repository 与 WebSphere Process Server 集成,以及 WebSphere Integration Developer 中的工作流和相关用户界面开发的详细信息。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services
ArticleID=278675
ArticleTitle=构建 SOA 组合业务服务,第 10 部分: 使用 WebSphere Process Server 和 WebSphere Service Registry and Repository 提供对服务消费的治理
publish-date=12202007