跳转到主要内容

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

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

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

  • 关闭 [x]

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

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

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

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

  • 关闭 [x]

在 WebSphere Service Registry and Repository V7.5 中使用策略文件进行治理策略验证

黄 福伟, 高级软件开发工程师, IBM
黄福伟,来自 IBM 中国开发实验室 WebSphere 项目组的高级软件开发工程师,目前从事 WebSphere Service Registry and Repository 产品的集成开发工作。您可以通过以下方式与他联系:fwhuang@cn.ibm.com
朱 朴, 高级软件开发工程师, IBM
朱朴,来自 IBM 中国开发实验室 WebSphere 项目组的高级软件开发工程师,目前从事 WebSphere Service Registry and Repository 产品的集成开发工作。您可以通过以下方式与他联系:zhupu@cn.ibm.com。

简介: IBM WebSphere Service Registry and Repository V7.5(以下简称 WSRR)是 IBM 产品线发布的最新版本,这个版本提供了对治理策略的更多的支持,尤其是 WSRR Studio 里提供了策略文件编辑器,从而使复杂的策略文件能够以可视化的编辑工具进行灵活的编辑。本文的主要目的就是在介绍 WSRR V7.5 中治理策略框架的基础上,阐述策略文件的基本概念以及策略文件编辑器的使用方法,并通过一个实例详细的展示了策略校验如何生效的全过程。

发布日期: 2012 年 2 月 02 日
级别: 中级
访问情况 : 642 次浏览
评论: 


引言

IBM WebSphere Service Registry and Repository(以下简称 WSRR)是 IBM 推出的 SOA 领域里关键的企业级产品。简单来说,它是一个用于存储、访问、管理、治理服务信息(一般为服务元数据)的系统。在一个成功的 SOA 实施过程当中,它被用于管理和治理可重用的服务,需要访问服务的其他产品可以通过查询 WSRR 得到所需要的服务地址,从而实现动态的路由。

WSRR 在 SOA 生命周期的四个阶段(建模、开发、部署、管理)都扮演着非常重要的作用。 它可以帮助你:

  • 管理服务元数据 : 在服务的建模阶段,使用 WSRR 去创建或者重用服务描述文件、服务分类、XML 概要和其他的服务元数据。
  • 发现服务 : 在服务的开发或者组装阶段,使用 WSRR 去查找和定位已有的可重用的服务。
  • 发布服务 : 在服务的部署阶段,把服务描述文件发布到 WSRR 上。其他产品可以从 WSRR 上查询到已发布的服务信息,从而访问到正确的服务。
  • 增强服务的交互 : 在服务执行阶段(例如使用 WebSphere ESB 或者 MB 等中间件产品)通过访问 WSRR 去得到服务的元数据和服务的地址信息,分析服务的关键属性,访问到正确的服务应用。
  • 增强服务的治理 : WSRR 是 SOA 架构中服务治理的核心部分,帮助管理所有 SOA 的基础架构。

在增强服务的治理阶段,一个很重要的概念就是治理策略(Governance Policy)的实施。治理策略,就是对服务进行治理的时候所采用的策略(这种策略通过策略文件进行定义)。在 WSRR 服务器上进行策略验证的时候,就可以根据策略文件的定义对服务进行自动化的检测。

WSRR V7.5 是 IBM 产品线发布的最新版本,这个版本提供了对治理策略的更多支持,尤其是 WSRR Studio 里提供了策略文件编辑器,从而使纷繁复杂的策略文件能够以可视化的向导方式进行灵活的编辑。

本文的主要目的就是在介绍 WSRR V7.5 中治理策略框架的基础上,阐述策略文件的基本概念以及策略文件编辑器的使用方法,并通过一个实例详细的展示了策略校验如何生效的全过程。


WSRR V7.5 中使用策略验证

我们可以在 WSRR 中使用策略文件来跟踪每一个服务的生命周期,通过对贯穿设计、开发、部署阶段进行策略验证来实现自动化的检测。WSRR 中提供了很多的可插入点(plug-in),用户可以通过定制部分插入点从而提高 WSRR 的可扩展性。策略验证器正是使用了插入点这一扩展功能实现了 WSRR 中对 SOA 治理的策略验证。本章节将介绍如何在 WSRR 中开启策略验证,并介绍策略文件的定义,使我们可以对策略验证的整个过程有一个深入的认识。下面我们将首先介绍策略文件的定义。

策略文件详细介绍

如图一所示: 这是一个完整的策略文件,所有的策略文件是以 XML 格式存贮的。


图 1. 策略文件定义
图 1. 策略文件定义

在策略文件中一共分为两个大的部分:

  • 验证策略(wsrrgp:ValidatorPolicy): 这是定义验证策略的部分。一个验证策略可以包含一个或者多个策略(wsp:Policy); 一个策略又包括两个大的部分: 策略过滤(wsrrp:***Filter)和策略断言 (wsrrp:EntityAssertionPolicy)。 验证策略的部分定义了详细的验证策略,WSRR 服务器会根据这里定义的策略进行对应的验证。
  • 全局断言 (wsrrgp:ProtectionAssertion):这里是定义了全局的断言,供验证策略部分的策略断言去引用。比如图一所示,就是定义了一个角色断言。

策略过滤,顾名思义就是定义过滤条件。通俗来讲就是定义了使用验证器的过滤条件,也就是什么人 (wsrrgp:RoleOperationFilter) 在什么对象上(wsrrgp:ContentApplicablityFilter)做了什么操作(wsrrgp:WSRROperationFilter & wsrrgp:TransitionOperationFilter)才会触发策略验证(wsp:Policy).

策略断言 , 就是在符合了策略过滤的条件之后,进行什么样的验证,如果不符合这些条件就会在 WSRR 上提示错误信息。

开启策略验证器

WSRR 的运行需要装载预先定制的配置文件(Profile),配置文件分为两种基本的类型:基本配置文件(Basic Profile)和加强治理配置文件(Governance Enablement Profile)。

基本配置文件就是提供了使 WSRR 可以正常运转的基本功能,如果你不需要对服务进行治理,仅仅需要对服务进行注册、存储、查询的话,这是一个很好的选择。

加强治理配置文件是在基本配置文件的基础上提供了很多额外的功能,比如说基于组件的建模、预先定义的基于标准的生命周期管理、安全的控制、策略文件的定义等等,从而可以对业务模型进行标准化和个性化的管理。

下面我们就针对这两种配置文件进行分别说明如何开启策略验证器。正如前面所述,WSRR 中提供了很多的可插入点,可供用户配置从而开启验证器。对于加强治理配置文件来说,策略验证器已经自动开启,而且提供了很多预先定义的策略对业务模型进行验证,所以如果用户不需要自己定制额外的策略的话就不用做任何操作。对于基本配置文件,则需要手动打开策略验证插入点,上传定制的策略文件。具体的步骤如下:

首先要在 WSRR 服务器中打开配置视图,然后在上面的工具栏或者左侧的导航树中 ( 图二所示 ) 定位到 Active Profile -> Validators ->Validation properties plug-in (ValidationProperties)


图 2 . 定位到验证配置文件
图 2 . 定位到验证配置文件

在打开的校验属性文件(Validator Properties)中,在 Validators 和 GovernanceValidator 所属部分分别将如下属性 ,com.ibm.sr.governance.validator.GovernancePolicyValidator 加入进去,加入后的属性文件清单如下所示:


清单 1. 基本配置文件中的校验属性文件
	          
   ... 
 # Validator classes called by the default service registry validation functions 
 # 
 # These validators are called for all document types 
 validators=com.ibm.sr.api.SRTemplateValidator,com.ibm.sr.api. 
 SRBusinessModelValidator,com.ibm.sr.uddi.validator. 
 UDDIImgValidator,com.ibm.ws.wspolicy.dd.validator. 
 DynamicDomainValidator,com.ibm.sr.governance.validator. 
 GovernancePolicyValidator 

 # These validators are called for governed objects only 
 governanceValidators=com.ibm.sr.governance.api.SRGovernanceValidator, 
 com.ibm.sr.v6r3.policyset.validators.PolicySetValidator,com.ibm.sr. 
 governance.validator.GovernancePolicyValidator 

策略验证器打开之后就可以把自己的策略文件上传到 WSRR 服务器上,从而实现了自动的策略验证。下面就开始具体讲解如何在 WSRR Studio 中定义一个策略文件。


WSRR Studio V7.5 策略文件编辑器

WSRR Studio 是一个基于 Eclipse 开发的,提供一种可视化操作供用户配置并和 WSRR 服务器交互使用的应用程序。在 WSRR Studio V7.5 中首次实现了对于策略文件编辑的支持,从而把用户从纷繁复杂的 XML 文件中解脱出来,只需要对业务模型进行可视化的操作,运用策略文件编辑器(Policy Editor)的引导功能,就可以很方便的创建和编辑策略文件,实现管理业务模型生命周期的最终目的。

打开策略文件编辑器

在 WSRR Studio V7.5 中,可以通过两种方式打开策略文件编辑器:

新建一个加强治理配置工程 GEP75,选中这个工程,定位到 Tool -> Governance Policy Editor, 选中要打开的已经存在策略文件,如图 3 所示


图 3. 工具栏中打开策略文件编辑器
图 3. 工具栏中打开策略文件编辑器

在新建的工程中,定位到 GEP75 -> Configuration Profile Files -> Governance Policies, 右键选中一个要打开的文件,点击”Open”, 如图 4 所示


图 4. 工程导航树中打开策略文件编辑器
图 4. 工程导航树中打开策略文件编辑器

策略文件编辑器功能介绍

策略文件的编辑器将会对策略文件定义的内容按功能进行划分并展示,同时创建一系列的向导,使终端用户不必理解策略文件的语法,只需要理解业务就可以自行创建出符合标准的策略文件。图 5 所示,这是一个策略文件编辑器,这个编辑器有四大功能分区:


图 5. 策略文件编辑器
图 5. 策略文件编辑器
  • 策略和全局断言编辑区:我们可以在这里增加、删除策略和全局的断言,当点击一个策略或者全局断言后,它的详细信息就会显示在右侧区域。
  • 策略过滤编辑区:当在左侧的策略和全局断言编辑区选中一个策略时,该策略的过滤条件就会显示在这个区域,我们可以使用当中的向导对过滤条件进行可视化的编辑,这是一个相当重要的区域,每个过滤条件都有相应的向导。在图 5 中,为了方便显示整个页面,我将这个区域收缩起来,所以看不到整个策略过滤编辑区的样子。在后面的业务实例章节,我们将详细展示这个区域。
  • 策略断言编辑区:当在左侧的策略和全局编辑区选中一个策略或者全局断言时,该策略和全局断言的详细断言信息就会显示在这里。我们可以在这个区域进行增加、删除、更改断言信息。
  • 断言属性编辑区:当我们在策略断言编辑区选中一个子断言时,该断言的属性就会在这里显示,我们可以对断言的属性进行编辑并保存起来。

同时,我们还可以设置断言错误的全球化显示信息(Policy Translations),查看策略文件本身的属性(Document Properties),查看策略文件的源文件 (Source) 等等。

介绍完策略文件编辑器的基本功能,下面我们就结合一个实例来看看策略文件究竟是怎样创建并在 WSRR 服务器上生效的。


业务实例

在这个业务实例里,我将展示如何使用 WSRR Studio V7.5 创建一个业务模型(TestService),针对这个业务模型创建一个策略验证文件 (ValidateTestServicePolicy) 去验证这个服务是不是包含一个 WSDL 文档,并用策略文件编辑器进行编辑,然后上传到 WSRR 服务器上看看策略验证器的运行结果。

Studio 建模

所谓的业务模型,是 SOA 治理领域的一个概念。通俗来讲就是服务根据业务来划分,每一种服务都是在一定业务领域里的服务。在 Studio 中,我们可以首先根据我们对业务的理解,创建这样的业务模型。这样我们在 WSRR 服务器上就可以在对应的业务模型下创建服务,从而对服务进行有效的治理。

创建业务模型(TestService)的具体步骤如下:

  • 新建一个加强治理配置工程, 在 Studio 中打开 File -> New -> WSRR Configuration Project, 输入工程名称:GEP75
  • 右键点击新建的工程(GEP75),New -> WSRR Business Model, 命名为 testBusinessModel。
  • 在新创建的业务模型可视化编辑界面上,创建一个新的业务模型(TestService),并添加一个属性名称(ServiceName)。具体的步骤就是在左侧的工具栏里拖拽一个类图(Class)到右侧空白区域,并在下面的属性区域对业务模型的名称进行编辑,并添加一个属性。

图 6. 创建业务模型
图 6. 创建业务模型

我们已经创建了一个最简单的业务模型,这个模型只有一个属性,就是服务名称(ServiceName)。将来我们在 WSRR 服务器上只要在这个业务模型上创建的服务都会属于这个业务模型,我们就可以很方便的对属于同一种类的业务模型进行治理。

Studio 中创建策略文件

业务模型创建之后,我们需要创建针对这个业务模型进行验证的策略文件,在本案例中,我们要做的验证就是当我们对 TestService 进行治理的时候,验证属于这个业务模型的服务是不是至少含有一个 WSDL 文档。详细步骤如下:

  • 新建一个策略文件(图 3 所示),命名为 ValidateTestServicePolicy。
  • 在策略文件编辑器上添加一个策略(图 7 中添加策略部分)ValidateTestServicePolicy-WSDL, 创建过滤条件: a. 操作过滤,当对服务进行治理(图 7 中 Make Governable)的之后才触发验证;b. 内容过滤(图 7 中 Edit 弹出的对话框向导), 当且仅当对属于业务模型 TestService 的服务进行操作的时候才进行验证。

    图 7. 定义策略文件 – 过滤条件定义
    图 7. 定义策略文件 – 过滤条件定义

  • 在新建策略文件上新建关系断言,并编辑关系断言的属性,设定的验证条件为服务至少要含有一个 WSDL 文档,并设定验证失败的信息为“Must have a WSDL Document”. 如下图 8 所示:

    图 8. 定义策略文件 – 断言属性定义
    图 8. 定义策略文件 – 断言属性定义

通过以上步骤就创建了一个针对 TestService 的验证策略文件。该文件的作用是:当对属于业务模型(TestService)的所有服务进行治理的时候,如果发现这个服务下没有包含一个名为“testRelationship”的关系,或者这个关系下没有包含至少一个 WSDL 文档,那么就在 WSRR 服务上显示验证失败信息 “Must have a WSDL Document”.

下面我们就把这个策略文件上传到 WSRR 服务器上看看验证的结果。

上传策略文件

上传配置工程有两种做法,一种是在 Studio 里直接上传到 WSRR 服务器上,这需要在上传配置工程之前,在 Studio 里建一个 WSRR 服务器位置信息。另一种方法是将配置工程导出为一个 zip 文件,然后手动传输到 WSRR 服务器上。这里的示例将采用第一种做法,步骤如下:

    • 在 Studio 的“WSRR Location”视图里,把 WSRR 服务器的信息添加进去。
    • 右键选中配置工程,并点击“Export
    • 在弹出的对话框中选中 WebSphere Service Registry and Repository (WSRR) -> WSRR Configuration Profile
    • 直接将配置工程导出到 WSRR 服务器上,如下图 9 所示,我将配置工程导出到“My WSRR Server”上,并在服务器上激活(Active Profile)这个配置文件 , 如图 9 所示:

图 9. 导出 WSRR 配置工程
图 9. 导出 WSRR 配置工程

这样,我们所创建的配置文件将会被自动导出到指定的 WSRR 服务器上,并成功激活。我们在 WSRR 服务器上所创建的属于业务模型(TestService)的所有服务将会被正确的验证。

在 WSRR 服务器上查看结果

在所有以上步骤完成之后,我们就可以登录到 WSRR 服务器上查看结果了。首先我们需要打开我们所创建的业务模型 TestBM -> TestService,根据业务模型创建服务 (MyTestService),如下图 10 所示:


图 10. 服务器上创建业务服务
图 10. 服务器上创建业务服务

对服务进行治理:点击服务 MyTestService, 并点击 Governance,在打开的页面中点击 Govern 去开启服务治理,如图 11 所示:


图 11. 服务器上对服务进行治理
图 11. 服务器上对服务进行治理

这时,验证器就会去调用我们创建的策略文件,并作验证: 抛出我们所定义的错误信息,说明这个服务缺少一个名称为 testRelationship 的关系,这个关系里需要有一个 WSDL 文档,如下图 12 所示:


图 12. 服务器上验证文件报错信息
图 12. 服务器上验证文件报错信息

如果我们需要通过这个验证,就需要对我们创建的服务去添加一个关系,并添加一个 WSDL 文档,如下图 13 所示。我们可以搜索 WSRR 服务器上是否已经有 WSDL 文档了,如果没有,我们可以手动的上传一个 WSDL 文档,然后添加到服务(MyTestService)上。


图 13. 服务器上添加关系
图 13. 服务器上添加关系

这时,我们再去对这个服务进行治理,则会通过验证并成功实施治理。


总结

至此为止,已经详细介绍了如何使用 WSRR V7.5 Studio 创建业务模型,如何针对特定的业务模型创建策略文件,如何使用 WSRR 服务器进行策略验证等等关键信息。希望读者通过本文能对 WSRR 策略验证有一个全新的认识并灵活使用。

声明:本文仅代表作者个人观点,不代表 IBM 公司之观点。


参考资料

学习

获得产品和技术

讨论

作者简介

黄福伟,来自 IBM 中国开发实验室 WebSphere 项目组的高级软件开发工程师,目前从事 WebSphere Service Registry and Repository 产品的集成开发工作。您可以通过以下方式与他联系:fwhuang@cn.ibm.com

朱朴,来自 IBM 中国开发实验室 WebSphere 项目组的高级软件开发工程师,目前从事 WebSphere Service Registry and Repository 产品的集成开发工作。您可以通过以下方式与他联系:zhupu@cn.ibm.com。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


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


忘记密码?
更改您的密码

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

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

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

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

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


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

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=791014
ArticleTitle=在 WebSphere Service Registry and Repository V7.5 中使用策略文件进行治理策略验证
publish-date=02022012

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。