Welcome

首页 / 软件开发 / 数据结构与算法 / 构建SOA组合业务服务,第10部分

构建SOA组合业务服务,第10部分2011-04-08 IBM Naveen Sachdeva等第10部分: 使用WebSphere Process Server和WebSphere Service Registry and Repository提供对服务消费的治理

通常,SOA 治理的重点是服务提供方,特别是在服务生命周期方面。很少将注意力放在消 费方或订阅方。谁应该能够看到或发现相关的服务端点?或者,发现服务的人怎样发送请求 以使用该服务?或者,与授权访问该服务相关的流程是什么?这些问题的答案因客户而异。 本文在一个称为 Jivaro Bank 的虚拟原型组合应用程序的上下文中回答了这些问题,同时还 介绍了如何使用 WebSphere Service Registry and Repository 和 WebSphere® Process Server 实现对服务消费和订阅的治理。

引言

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 银行服务订阅者授权流程概述