内容


使用 WebSphere Business Services Fabric 开发自适应组合业务服务,第 3 部分

CBS 建模、本体编辑和策略模拟

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 使用 WebSphere Business Services Fabric 开发自适应组合业务服务,第 3 部分

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

此内容是该系列的一部分:使用 WebSphere Business Services Fabric 开发自适应组合业务服务,第 3 部分

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

引言

本系列文章讨论使用 IBM WebSphere Business Services Fabric Version 6.0 创建组合业务服务的完整过程。第 1 部分介绍了组合业务服务的概念,并说明了 WebSphere Business Services Fabric 如何支持这些服务的开发。第 2 部分阐述了 WebSphere Business Services Fabric 如何通过演示结果分析和设计步骤来帮助解决提出的业务问题。

本部分将介绍通过 IBM WebSphere Business Composition Studio(以下称为 Composition Studio)并使用第 2 部分中描述的业务场景创建组合业务服务 (CBS) 模型(也称为面向服务的业务应用程序 (SOBA))的步骤。本文还讨论 CBS 在 Composition Studio 中建模、编辑本体和策略定义以及使用 Policy Simulator 来验证组装。

本文假设您已阅读了本系列文章的前两篇文章

组件术语

为便于您开始,让我们定义一些本文使用的 WebSphere Business Services Fabric 术语和组件:

  • Governance Manager:CBS 结构的所有组装时间控制是使用 IBM Business Services Governance Manager 执行的,通过 WebSphere Business Services Fabric 门户可以访问该管理器。TFoundation Pack 中这一基于 Web 的模块使您能够:

    • 控制对 Business Services Repository 中的业务服务模型和策略的访问和可视性。
    • 强制执行 Business Services Repository 中业务服务模型的一致性和相关性。
    • 控制对 Business Services Repository 中 CBS 元数据的更改。
    • 在 WebSphere Business Services Fabric 的实例之间迁移 CBS 元数据。
  • Subscriber Manager:IBM Business Services Subscriber Manager 允许 CBS 管理员管理服务的用户、角色、组织和订阅。Subscriber Manager(通过 WebSphere Business Services Fabric 门户可以访问)是 Foundation Pack 中基于 Web 的模块,它使您能够:

    • 创建和管理用户和组织。
    • 管理组织向可用服务的注册。
    • 管理用户对组织的订阅。
  • Composition Studio:IBM Business Services Composition Studio 可以让 CBS 架构师、业务分析人员和集成开发人员相互合作并构建供 WebSphere Business Services Fabric 使用的 IBM Business Services Repository。Composition Studio 是用于 WebSphere Integration Developer 的基于 Eclipse 的插件,使用它可以填充 IBM Business Services Repository 中存储的服务元数据。通过 Composition Studio,您可以实例化:

    • 资源(应用程序套件、应用程序模型、业务服务模型、Web 服务模型和端点模型)
    • 策略
    • 业务流程模型(业务生态系统、业务流程和流对象)。

CBS 组装过程中的角色和职责

此 CBS 组装中包括的建议角色为(图 1):

  • 架构师具有所有 CBS 企业范围的总体观念,并批准开发人员在变更列表中进行的更改。
  • 集成开发人员在 Composition Studio 中创建 CBS 的元数据。
图 1. CBS 组装过程中的角色和职责
图 1. CBS 组装过程中的角色和职责
图 1. CBS 组装过程中的角色和职责

创建 CBS 模型

下面是创建 CBS 模型的常规步骤。本文剩下的部分将详细阐述与这些步骤中每个步骤关联的任务。

  1. 设置 Fabric 项目
  2. 为项目创建命名空间
  3. 配置 CBS 环境
  4. 定义组织
  5. 扩展断言本体
  6. 创建 SOBA 项目
  7. 填充业务流程模型轮廓
  8. 组合 SOBA 模型
  9. 创建 SOBA 资源
  10. 定义策略
  11. 提交更改
  12. 模拟策略

1. 设置 Fabric 项目

WebSphere Business Services Fabric 活动是在项目范围内执行的,并且每个项目都配置为与元数据和维护该内容的团队关联。

  1. 首先,在 Web 浏览器中键入以下 URL,以访问 WebSphere Business Services Fabric 门户;缺省的用户 ID 为 admin,缺省密码为 webify(图 2):

    URL http://<server name:port number>/fabric/

    图 2. WebSphere Business Services Fabric 门户
    图 2. WebSphere Business Services Fabric 门户
    图 2. WebSphere Business Services Fabric 门户
  2. 其次,架构师需要创建一个新项目(图 3)。选择 Governance Manager => Configure Projects

  3. 输入或选择下面的值(图 3):

    • 项目名称: Loan Origination
    • 项目类型:SOBA
    • 团队组织:System(或其他适用的值)
图 3. 创建 Fabric 项目
图 3. 创建 Fabric 项目
图 3. 创建 Fabric 项目

2. 为项目创建命名空间

命名空间为 CBS 元模型中的对象提供一种分组方法,从而使系统更具模块化。CBS 元模型中的所有对象必须属于命名空间。这里使用以下两种类型的命名空间:

  • 模式命名空间描述特定于域的类和 CBS 元模型的属性。
  • 实例命名空间将对象存储在用户在 Composition Studio 中创建的 CBS 元模型中。

创建这些命名空间的步骤:

  1. 选择 Governance Manager => Configure Namespaces

  2. 使用下面的值创建模式类型的命名空间(图 4):

    • 显示名称: Loan Origination Schema
    • 命名空间类型:Schema
    • 命名空间前缀: lo
    • 命名空间 URI: http://intbank/loan/loanorigination#
      (结尾的“#”对于 Fabric 是必需的,否则您将无法保存)
    • 所有者项目:Loan Origination(前面已创建)
    图 4. 创建模式命名空间
    图 4. 创建模式命名空间
    图 4. 创建模式命名空间
  3. 使用下面的值创建实例命名空间(图 5):

    • 显示名称: Loan Origination Instance
    • 命名空间类型:Instance
    • 命名空间 URI: http://intbank/loan/loanorigination-inst#
      (结尾的“#”对于 Fabric 是必需的,否则您将无法保存)
    • 所有者项目:Loan Origination(前面已创建)
    图 5. 创建实例命名空间
    图 5. 创建实例命名空间
    图 5. 创建实例命名空间

3. 配置 CBS 环境

CBS 环境可以关联部署业务服务端点的系统,因此,如果请求包含生产环境,则不能使用为测试环境分配的端点。

  1. 选择 Governance Manager => Configure Environments

  2. 创建名称为 Loan Origination Testing Environment 的测试环境(图 6)。

    图 6. 配置环境
    图 6. 配置环境
    图 6. 配置环境

4. 定义组织

定义业务案例中描述的三个组织:

  1. 选择 Subscriber Manager => Manage Subscriber(图 7)。

  2. 在 Organization Name 字段中输入组织名称:International Bank,并按 Create Organization

  3. 创建名称为 International Bank of California 的另一个组织,并选择 International Bank 作为“父组织”。

  4. 类似地,创建名称为 International Bank of Texas 的组织,并选择 International Bank 作为“父组织”。

图 7. 创建组织
图 7. 创建组织
图 7. 创建组织

5. 扩展断言本体

本体是用于描述和表示某个知识领域的术语和概念定义的集合,它可以包括关注领域中的概念(类和一般事物)、概念之间的关系、以及属性 (property) 或特性 (attribute) 和值。

WebSphere Business Services Fabric 使用 Web Ontology Language (OWL) 表示内部数据的模式和数据。扩展本体可让您更改模式(即断言类型和关联的属性),并且 Composition Studio 允许您根据新定义的模式创建新的数据(如端点和断言)。WebSphere Business Services Fabric 中的三种类型的本体扩展包括:

  • 通道表示将消息发送到业务服务的机制。
  • 角色决定用户的访问控制。
  • 断言描述端点的特征和功能。

这里将介绍称为 Protege 的开放源代码工具(主要在史丹福大学开发),以便您可以创建两个新断言来描述策略功能和定义端点功能。(WebSphere Business Services Fabric 预计在后续版本中为本体扩展提供自已的工具。)本文提供了在 Protege 中创建这些断言的步骤:

扩展 WebSphere Business Services Fabric 本体的基本流程包括以下常规步骤:

  1. 在 Protege 中创建新的断言,并存储 OWL 文件。
  2. 从 WebSphere Business Services Fabric 门户导出项目的模式。
  3. 将 OWL 文件替换为导出的模式文件。
  4. 通过门户将模式文件导回 WebSphere Business Services Fabric。

稍后将介绍如何使用这些断言。要创建断言,请执行以下操作:

  1. 创建新的 Protege 项目(图 8):

    1. 在 Protege 中,选择 Create New Project...
    2. 选择 OWL/RDF Files,并单击 Next
    3. 输入本体 URI:http://intbank/loan/loanorigination(这是上面创建的模式命名空间),然后单击 Next
    4. 选择 OWL/DL 作为“语言概要”,然后单击 Next
    图 8. Protege 项目
    图 8. Protege 项目
    图 8. Protege 项目
  2. 在安装 IBM Business Services Tool Pack 时,请导入 Fabric 本体存根,它位于 <fabric 安装目录>\ ToolPack\Plugins\SDKs\fabric-sdk-6.0.0\owl 下。要导入存根,请执行以下操作:

    1. 单击 Metadata 选项卡,并使用 Import ontology... 按钮导入本体(图 9)。
    2. 选择 Import an ontology contained in a specific local file,并单击 Next
    3. 单击 Browse for File 按钮(图 10)找到本地本体文件。选择 core-stub.owl,并单击 Select
    4. 单击 Close
    5. 重复这些步骤,以导入 assertion-stub.owl 文件。
    图 9. 导入本体文件
    图 9. 导入本体文件
    图 9. 导入本体文件
    图 10. 浏览本地文件
    图 10. 浏览本地文件
    图 10. 浏览本地文件
  3. 要扩展 ContentBasedAssertion:

    1. 选择 OWL Classes 选项卡(在图 11 中标识为 1)。
    2. 打开 PolicyAssertion 树。
    3. 选择 ContentBasedAssertion 类(在图 11 中标识为 2)。
    4. 单击 Create subclass(在图 11 中标识为 3)。
    5. 将类命名为 LoanAmountAssertion
    6. 选择 Create new annotation value 图标(图 12)。
    7. 选择 core:assertionType,并单击 OK
    8. 确保为属性值选择 Endpoint Selection
    9. 重复这些步骤,以创建名为 ServiceProviderAssertion 的另一个断言。
    图 11. 扩展基于内容的断言
    图 11. 扩展基于内容的断言
    图 11. 扩展基于内容的断言
    图 12. 创建新的注释值
    图 12. 创建新的注释值
    图 12. 创建新的注释值
  4. 要创建 loanAmount 属性,请执行以下步骤:

    1. 选择 Properties 选项卡。(在图 13 中标识为 1)
    2. 单击 Create datatype property 按钮(在图 13 中标识为 2)。
    3. 将该属性命名为 loanAmount
    4. 在 Domain 下单击 Add named class(es)(图 14),浏览并选择前面创建的 LoanAmountAssertion(图 15)。
    5. 在 Range 下选择 int,并确保选中 Functional
    6. 将新的注释值添加到 loanAmount 属性,方法与步骤 3 类似,将属性命名为 core:assertionPropertyComparator,值为 LessThanComparator
    7. 添加另一个新注释,其名称为 core:controlWidget,值为 integer
      图 13. 创建属性
      图 13. 创建属性
      图 13. 创建属性
      图 14. 添加已命名的类
      图 14. 添加已命名的类
      图 14. 添加已命名的类
      图 15. 选择已命名的类
      图 15. 选择已命名的类
      图 15. 选择已命名的类
  5. 要创建 serviceProvider 属性:

    1. 选择 Properties 选项卡(在图 13 中标识为 1)。
    2. 单击 Create datatype property 按钮(在图 13 中标识为 2)。
    3. 将该属性命名为 serviceProvider
    4. 在 Domain 下单击 Add named class(es)(图 14),浏览并选择前面创建的 ServiceProviderAssertion
    5. 在 Range 下选择 string,并确保选中 Functional,然后为 Range 添加两个值:InternalExternal(图 16)。
    6. 将新的注释值添加到 serviceProvider 属性,方法与步骤 3 类似,并将该属性命名为:core:assertionPropertyComparator,值为 EqualComparator
    7. 添加另一个新注释,其名称为 core:controlWidget,值为 dataRange
    图 16. 为范围添加值
    图 16. 为范围添加值
    图 16. 为范围添加值
  6. 使用文件后缀名 .owl 保存 Protege 项目,如 loanorigination.owl(Protege Version 3.2 Build 236 不能存储包含空格的文件名)。

  7. 从 WebSphere Business Services Fabric 导出模式本体:

    1. 登录到 WebSphere Business Services Fabric 门户。
    2. 选择 Governance Manager => Import/Export,并选择 Export by Project 选项卡。
    3. 选择 Loan Origination 项目(图 17)。
    4. 选中 Loan Origination Schema,并单击 Export to File 按钮。
    5. 在本地保存该文件(其扩展名将为 .ocp)。
    图 17. 导出项目模式
    图 17. 导出项目模式
    图 17. 导出项目模式
  8. 将 OWL 文件替换为导出的模式文件:

    1. 提取前面创建的 .ocp 文件(此文件实际上是压缩格式,所以您可以使用解压缩实用工具提取该存档文件)。压缩文件应包含 content-pack.xml(清单文件)和 Loan Origination Schema.owl。
    2. 将 Loan Origination Schema.owl 替换为在步骤 f 中创建的 loanorigination.owl(例如将 loanorigination.owl 文件重命名为“Loan Origination Schema.owl”,然后替换为从 .ocp 文件提取的文件)。
    3. 使用文件压缩实用工具存档两个文件(content-pack.xml 和 Loan Origination Schema.owl),并记住将扩展名更改为 .ocp
  9. 将模式文件导回 WebSphere Business Services Fabric:

    1. 登录到 WebSphere Business Services Fabric 门户。
    2. 选择 Governance Manager => Import/Export
    3. 单击 Browse 按钮,选择在步骤 h 中创建的 .ocp 文件,然后单击 Import File(图 18)。
    4. 如果文件导入正确,则会显示成功导入消息。

前面创建的数据存储在 WebSphere Business Services Fabric 的 Business Service Repository 中。

图 18. 导入本体文件
图 18. 导入本体文件
图 18. 导入本体文件

6. 创建 SOBA 项目

在 Composition Studio 中创建 SOBA 项目:

  1. 首先,您需要设置工作区参数。启动 Composition Studio,并打开 Preference 对话框,以设置 Catalog Configuration,如图 19 所示。缺省的用户名和密码分别为 adminwebify。Composition Studio 从 Business Services Repository 使用这里提供的配置检索项目、命名空间和本体(在前一部分中创建)。

    图 19. 设置工作区参数
    图 19. 设置工作区参数
    图 19. 设置工作区参数
  2. 接下来,您需要创建 Composition Studio 项目。要创建与 Business Services Repository 中项目关联的本地项目,请打开 SOBA Assembly 透视图,并右键单击 SOBA Explorer 视图,以创建新的 SOBA 项目。此 SOBA 项目的名称不必与在 WebSphere Business Services Fabric 门户中创建的项目名称一致,它只表示元数据资源的本地库(图 20)。

    图 20. 创建 SOBA 项目
    图 20. 创建 SOBA 项目
    图 20. 创建 SOBA 项目
  3. 单击 Next 按钮,然后单击 Replicate 按钮,以便从 Business Services Repository 中检索可用项目数据,并将其复制到本地开发环境(即 Composition Studio)。此流程与从源控制系统检索源代码类似。选择 Next,选择您先前在 WebSphere Business Services Fabric 中创建的项目,然后进行复制,并单击 Finish 按钮(图 21)。

    图 21. 选择要复制的 Fabric 项目
    图 21. 选择要复制的 Fabric 项目
    图 21. 选择要复制的 Fabric 项目
  4. 复制完成后,请切换到 SOBA Assembly 透视图。在 Loan Origination 项目下,您将看到 Business Process Models 和 SOBA Models,如图 22 所示。Business Process Models 下的资源表示业务领域的视图,而 SOBA Models 下的资源表示 Information Technology (IT) 透视图的视图(包含应用程序套件和要实现的应用程序)。

    图 22. SOBA Explorer 视图
    图 22. SOBA Explorer 视图
    图 22. SOBA Explorer 视图

7. 填充业务流程模型轮廓

要捕获业务流程的轮廓:

  1. 创建业务生态系统(一种业务服务网络的集合),它可以捕获 SOBA 架构师设计的现有客户构件(甚至模型)。要创建业务生态系统,请右键单击 SOBA Explorer 视图(图 23),并选择 New => Business Ecosystem。输入名称(如 Banking Business Ecosystem),并单击 Finish

    图 23. 创建业务生态系统
    图 23. 创建业务生态系统
    图 23. 创建业务生态系统
  2. 创建业务服务网络,这是业务流程套件的集合。选择 New => Business Services Network,输入名称(如 Banking Business Service Network),并选择您刚才创建的业务生态系统。

  3. 创建业务流程套件,这是一组业务流程,可以集成到一组相关的组合业务服务。选择 New => Business Process Suite,输入名称(如 Banking Business Process Suite),并选择您刚才创建的业务服务网络名称。

  4. 创建业务流程,这是组织为实现共同目标而执行的一组业务活动。选择 New => Business Process,输入名称(如 Banking Business Process),并选择您刚才创建的业务流程套件。

8. 组合 SOBA 模型

接下来,您必须组合应用程序套件和应用程序:

  1. 应用程序套件是 Business Services Repository 中的资源,表示一套相关的应用程序。应用程序套件可以包含许多应用程序。选择 New => Application Suite,并输入名称(如 Banking Application Suite)。

  2. 此处,应用程序表示 CBS,它是围绕复杂的端到端业务流程构建的业务服务集合,是对特定行业的优化。选择 New => Application,输入名称(如 Loan Application),并选择您刚才创建的应用程序套件。

完成流程和 SOBA 模型后,图 24 演示了结果轮廓。

图 24. 包含业务流程模型和SOBA 模型的 SOBA Explorer 视图
图 24. 包含业务流程模型和SOBA 模型的 SOBA Explorer 视图
图 24. 包含业务流程模型和SOBA 模型的 SOBA Explorer 视图

9. 创建 SOBA 资源

要创建与应用程序关联的资源,请切换到 SOBA Resource 透视图。可用的资源是业务服务、Web 服务和端点,它们组合为 IBM Business Services Dynamic Assembler (Dynamic Assembler) 使用的应用程序。

  1. 业务服务是业务功能,可以在运行时基于业务策略和用户上下文执行该功能。Composition Studio 提供的三种业务服务是流程服务可视化服务优化服务;对于本文而言,这里只使用流程服务。要创建业务服务,请执行以下操作:

    1. 右键单击 Resource Explorer 视图,并选择 New => Business Service
    2. 选择 Process Service,然后单击 Next
    3. 输入服务的名称(如 Loan Processing Service),并选择先前创建的 Loan Application 应用程序,以便将服务资源与该应用程序关联。单击 Next
    4. 单击 Add Channel... 按钮,在 Display Name 字段中输入显示名称(如 Web Service Channel),并从 Matching Channel Types 列表中选择值 WebServiceChannel(图 25)。单击 Next
    5. 单击 Add Role Type... 按钮,并选择您希望对此服务具有访问权限的 Administrator(或任何其他角色)。完成后,单击 Finish
    图 25. 为流程服务添加通道
    图 25. 为流程服务添加通道
    图 25. 为流程服务添加通道
  2. 在 Composition Studio 中创建的 Web 服务基于在 WSDL 或 BPEL 文档中定义的端口类型。可以提取和编录特定 WSDL 或 BPEL 文档(可以有许多 WSDL 定义)的每个端口类型的 Web 服务模型。对于本文而言,我们提供 WSDL 来创建 Web 服务。要创建 Web 服务,请执行以下操作:

    1. 右键单击 Resource Explorer 视图,并选择 New => Web Service
    2. 选择 Create Web Service Model from a WSDL,然后单击 Next
    3. 找到名为 CreditVerificationSrvc.wsdl 的 WSDL(下载部分中提供),并单击 Next
    4. 添加可用的服务 CreditVerificationSrvc,并单击 Next
    5. 单击 Finish
    6. 返回到前一步骤创建的 Loan Processing Service,并单击 Overview 选项卡(图 26)。
    7. Detail... 按钮,然后按 Add(图 27),以选择刚才创建的 CreditVerificationSrvc
    图 26. 将 Web 服务添加到流程服务的通道
    图 26. 将 Web 服务添加到流程服务的通道
    图 26. 将 Web 服务添加到流程服务的通道
    图 27. 添加 Web 服务
    图 27. 添加 Web 服务
    图 27. 添加 Web 服务
  3. 前一篇文章中描述了以下两个端点:Credit Digger 和 Customer Credit Information System。CCIS 端点的 ServiceProviderAssertion 为“Internal”,LoanAmountAssertion 为“0”(这意味着任何贷款数额都大于 0)。Credit Digger 的 ServiceProviderAssertion 为“External”,LoanAmountAssertion 为“10000”(这意味着贷款数额大于 10,000 美元)。要创建端点,请执行以下操作:

    1. 右键单击 Resource Explorer 视图,并选择 New => Endpoint
    2. 输入名称:Customer Credit Information System,保留所有其他字段的缺省值,并单击 Next
    3. 输入 URL:http://localhost:9080/CreditVeriCR/services/CreditVerificationSrvc,并单击 Finish。(URL 应表示部署的实际 Web 服务;本文假设服务部署在 URL 所示的位置。)
    4. 单击此端点的 Web Service 选项卡,以便将该端点与现有 Web 服务关联。单击 Add Existing...,并选择前面创建的 CreditVerificationSrvc 服务。
    5. 选择 Environment 选择卡,然后单击 Add Existing... 按钮,并选择 Loan Origination Testing Environment
    6. 单击 Assertions 选项卡,并展开 Interoperability 部分。从列表框添加 ServiceProviderAssertion,并选择 Internal
    7. 添加 LoanAmountAssertion,并输入 0
    8. Overview 选项卡中,添加值为 1 的成本,并选择 Transaction for Cost Modifier(这意味着每事务成本为 1 美元)。记住保存更改。
    9. 按照同一规则组合 Credit Digger 的端点:可以将 URL 的值设置为 http://localhost:9080/CreditVeriCD/services/CreditVerificationSrvc;将 ServiceProviderAssertion 添加为 External,将 LoanAmountAssertion 添加为 10000,将 Transaction Cost Modifier 的成本添加为 5

10. 定义策略

策略是为选择服务端点向 Dynamic Assembler 提供可接受过程(规则)的机制。策略在概念上以 IF(条件) THEN(断言)格式进行声明:如果满足指定的条件(上下文和内容),则产生指定的契约(以组合断言的形式),以匹配在可用端点中定义的功能。

在策略断言的属性中(图 28),有两个字段值得注意:

  • 如果将断言标记为 Required,则在端点选择过程中,不能满足该断言的任何端点将自动作为候选丢弃。如果没有将断言标记为 Required,则 Dynamic Assembler 将其认为是“应该使用”。

  • 如果在策略中断言为 Locked,则将使用此断言,无论更具体的策略目标中是否存在策略。这意味着将覆盖自然排序或策略目标。

图 28. 断言属性
图 28. 断言属性

我们使用策略目标的自然排序(图 29)解决冲突。对于同一断言类型,在更具体的目标中设置的策略可以覆盖在高级目标中定义的策略。Dynamic Assembler 在解决策略之间的冲突时使用更具体的目标。如果多个端点都可以完成请求,则选择成本最低的端点。

图 29. 策略目标的自然排序
图 29. 策略目标的自然排序

创建策略:

  1. 将透视图切换到 SOBA Policy。

  2. 右键单击 Policy Explorer 视图,并选择 New => Policy

  3. 输入策略名称,如 Policy for International Bank of California (P1),并单击 Browse 按钮,以便 在 Web 服务级别设置目标(图 30)。单击 Next

  4. 单击 Add,以便为组织(本例中为加利福尼亚国际银行)设置上下文目标(图 31),然后单击 Next

  5. 添加 loanAmount 内容类型,并选择 is greater than 比较方式,输入值 10000

  6. 单击 Finish

  7. 单击 Contract 选项卡,展开 Interoperability 部分(图 32),从列表框添加 ServiceProviderAssertion,并选择 External

  8. 重复上述步骤以创建另一个策略:Policy 2 for International Bank of California (P2),将其目标设置为应用程序 Loan Application,将内容目标设置为组织 International Bank of California,并将内容类型设置为 loanAmount。选择 is greater than 比较方式,输入值 10000,并在 Contract 选项卡中为 ServiceProviderAssertion 输入 Internal。(这是专门为稍后的策略覆盖测试创建的。)

  9. 第三次重复上述步骤,以创建 Policy for International Bank (P3),其目标在 Web 服务级别,上下文目标为组织 International,没有内容断言,并且在 Contract 选项卡中将 ServiceProviderAssertion 设置为 Internal

图 30. 策略目标
图 30. 策略目标
图 30. 策略目标
图 31. 内容目标
图 31. 内容目标
图 31. 内容目标
图 32. 策略契约
图 32. 策略契约
图 32. 策略契约

11. 提交更改

在 Composition Studio 中完成上述所有步骤后,您可以提交更改,以便在 Governance Manager 上执行进一步审批周期,在将更改发布到 Business Services Repository 之前,Governance Manager 管理一系列更改列表。

  1. 要提交更改列表,在 Composition Studio 中,请单击 Catalog Changes 视图(图 33)中的 Submit Changelist 按钮。

    图 33. Catalog Changes 视图中的更改列表
    图 33. Catalog Changes 视图中的更改列表

    更改的资源在提交后无法修改。在 Governance Manger 拒绝、或批准和发布请求,并且结果更新回到本地目录之前,您必须等待。

  2. 要批准和发布更改列表,您需要作为管理员身份登录到 WebSphere Business Services Fabric 门户,并单击 My Inbox 来显示待定的请求。要处理请求,请单击提交请求,然后按顺序单击 ApprovePublish 按钮(图 34)。只有实际发布的更改才能在 WebSphere Business Services Fabric 运行时正常运行。

    图 34. 批准和发布更改列表
    图 34. 批准和发布更改列表
    图 34. 批准和发布更改列表
  3. 要将批准或发布的更改列表更新回 Composition Studio,只需在 Composition Studio 中单击 Update Catalog 按钮(图 35)。

    图 35. 更新发布的更改列表
    图 35. 更新发布的更改列表

12. 模拟策略

Composition Studio 提供了 Policy Simulator,以便在检查工作系统的更改之前测试业务服务的端点选择场景。Policy Simulator 可以模拟端点选择(给出您提供的上下文),并提供有关用于决策的策略和断言的反馈信息、候选端点和所选择的端点。

要在 Composition Studio 上启动 Policy Simulator,请单击工具栏上的图标(图 36),然后单击 Finish 按钮。请输入以下值(基于前面创建的资源;某些字段位于 Optional Criteria 部分下):

  • 业务服务:Loan Processing Service
  • 通道:Web Service Channel
  • Web 服务:CreditVerificationSrvc
  • 环境:Loan Origination Testing Environment
  • 组织:International Bank of California
  • 内容:loanAmount: 11000

单击 Run Simulation 按钮。您会在 Simulation Result 部分中看到结果,如图 37 所示。模拟器在模拟过程中清楚地列出了调用的策略、应用的断言和候选端点,最后一项是最适合请求的所选端点。

将组织更改为 International BankInternational Bank of Texas,以查看不同的结果(图 38)。

图 36. 策略模拟器
图 36. 策略模拟器
图 36. 策略模拟器
图 37. 策略模拟结果
图 37. 策略模拟结果
图 37. 策略模拟结果

前面创建的两个策略(Policy 1 for International Bank of California (P1) 和 Policy 2 for International Bank of California (P2))之间的不同之处是策略目标和契约。P1(Web 服务)指定的顺序比 P2(应用程序)具体,因此在冲突解决的过程中 P1 将生效。要演示策略覆盖如何工作,请修改 P2 策略,并选中断言属性中的 Locked 复选框(图 28)。重新运行策略模拟,您将看到不同的结果(图 39)。

图 38. 没有覆盖的策略模拟
图 38. 没有覆盖的策略模拟
图 38. 没有覆盖的策略模拟
图 39. 具有覆盖的策略模拟
图 39. 具有覆盖的策略模拟
图 39. 具有覆盖的策略模拟

结束语

本文介绍了如何在 WebSphere Business Services Fabric 和 Composition Studio 中组装组合业务服务、扩展本体、定义策略,以及在 Policy Simulator 中模拟策略的端点选择。

下一期将介绍如何将 Web 服务端点部署到 WebSphere Process Server,如何将其与 WebSphere Business Services Fabric 集成,以及如何编写 Java 程序来测试集成。

本系列的其他文章


相关主题


评论

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere, SOA and web services
ArticleID=241177
ArticleTitle=使用 WebSphere Business Services Fabric 开发自适应组合业务服务,第 3 部分: CBS 建模、本体编辑和策略模拟
publish-date=07192007