IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  SOA and Web services  >

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

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论


级别: 中级

Naveen Sachdeva (sachdeva@us.ibm.com), IT 咨询专家, IBM
Indrajit Poddar (ipoddar@us.ibm.com), 顾问软件工程师, IBM 
Ying Chun Guo (guoyingc@cn.ibm.com), 软件工程师, IBM 

2007 年 12 月 20 日

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




回页首


了解场景

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


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

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


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

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


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

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


图 5. 在 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 服务注册中心将自动调用一个名为订阅者授权过程的流程,如图 7 中所示。此流程将在 WebSphere Process Server 的一个实例中运行。


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



回页首


完成任务

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


图 8. 服务提供者批准订阅请求并提供 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 中的工作流和相关用户界面开发的详细信息。

共享本文……

digg 请 Digg 这个故事
del.icio.u 发布到 del.icio.u
Slashdot Slashdot 一下!



参考资料

学习

获得产品和技术
  • 使用 IBM 试用软件开发您的下一个项目,可下载或索取 DVD 光盘。


讨论


作者简介

Naveen Sachdeva photo

Naveen Sachdeva 是业务流程管理技术全球销售团队的成员,负责 WebSphere Service Registry and Repository 产品方面的工作。在这方面,他参加了影响力较大的技术销售工作,并且负责现场支持和品牌支持。他不但是一位 IBM 认证的 IT 专家,还是一位 SOA 解决方案设计师,具有长达 14 年的 IT 经验。他在 IBM Software Group 中工作过 9 年,从事的工作包括软件开发和支持、业务合作伙伴技术支持以及技术销售。Naveen Sachdeva 为 developerWorks 撰写了一些文章,还与人合著了 IBM 红皮书。


Indrajit Poddar 是一位顾问软件工程师,现在是 IBM 软件部策略与技术团队的一名成员。他感兴趣的是采用面向服务的体系结构和 IBM Software Group 产品组合(WebSphere Application Server、Process Server, Portal Server 和 Tivoli and Rational 产品)来设计复合应用程序的体系结构。他获得了宾夕法尼亚州立大学的计算机科学与工程学士学位,以及位于印度坎普尔市的印度科技大学计算机科学与工程硕士学位。


author photo

Ying Chun Guo 是 China Technology Institute 中国软件开发实验室的一名软件工程师。她目前从事组合业务服务 (CBS) 和面向服务的体系结构 (SOA) 方面的工作。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

将您的建议发给我们或者通过参加讨论与其他人分享您的想法.




回页首


IBM、Tivoli 和 WebSphere 是 IBM Corporation 在美国和/或其他国家/地区的商标。 其他公司、产品或服务名称可能为各自所有者的商标或服务标志。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。

IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款