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

developerWorks 中国  >  SOA and Web services | WebSphere  >

使用 WebSphere Business Services Fabric v6.1 构建组合业务服务: 第 3 部分:设计和实现

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论

样例代码

英文原文

英文原文


级别: 中级

Yan Jun Mo, 软件工程师, IBM
Lei Zhang, 助理 I/T 架构师, IBM
Peng Tang, 软件工程师, IBM
Jing Feng Zhang, 软件工程师, IBM
Wei Wang, 软件工程师, IBM

2009 年 6 月 22 日

本系列的第一篇文章 “第 1 部分:WebSphere Business Services Fabric v6.1 概述” 概述了 WebSphere Business Service Fabric 6.1。在 “第 2 部分:场景简介、问题陈述和业务分析” 中,我们介绍了一个需要动态地选择服务提供者的 Visa 应用程序场景,以及如何在这个场景中使用 WBSF。在第三篇中,我们将详细介绍实现这个场景所涉及的所有步骤,使用 WBSF 6.1 构建组合业务服务,从而满足场景的需要。

简介

本系列的前一篇文章介绍了一个 Visa 应用程序场景。在这个场景中,Embassy ABC 需要在四个候选服务提供者中选择最经济有效的服务提供者,这些提供者以不同的响应时间和成本检验各种 Visa 应用程序提交的信息。在本文中,您将学习如何使用 WBSF 6.1 构建组合业务服务,从而满足这个场景的业务需要。

典型的组合业务服务开发过程涉及几种活动、角色和工具,见图 1。对这个开发模型的详细解释,请参见本系列的第 1 部分 WebSphere Business Services Fabric v6.1 概述。在本文中,我们要讨论图中列出的前五步。第 6 步将在本系列的第 4 部分 使用 Performance Manager 监视业务 中讨论。


图 1. 开发模型
开发模型

假设

本文假设已经安装了以下组件:

  • WebSphere Process Server 6.1
  • WebSphere Business Services Fabric Foundation Pack 6.1
  • WebSphere Integration Developer 6.1
  • WebSphere Business Services Fabric Tool Pack 6.1

还假设已经完成了安装后的两个设置步骤:

  • 配置联合源(可选)。如果只使用 IBM Business Services Repository,那么跳过这一步。需要配置 IBM WebSphere Business Services Fabric (WBSF),把它与 Lightweight Directory Access Protocol (LDAP) 和 WebSphere Service Registry and Repository (WSRR) 存储库集成起来(如果要使用它们的话)。
  • 授予用户对 WBSF 的访问权(必需):为了开始使用 WBSF,必须在系统中登记一个组织和它的用户。然后,必须向用户授予访问业务服务的权力。
  • 注意:对于 WBSF 安装和配置,可以参考 WBSF 6.1 安装指南。




回页首


建立 Fabric 项目

WBSF 活动在一个项目的范围内执行。每个项目与元数据内容和一个特定的团队组织(负责维护内容)相关联。在开始开发项目时,必须创建一个新的 Fabric 项目,给它分配一个团队,给属于这个项目的实例分配名称空间。

在这个项目中,我们创建一个组织(Embassy ABC)、一个项目(VisaApplication)和两个名称空间(Visa Application Schema NS 和 Visa Application Instance NS)。为此,在 Web 浏览器中打开页面 http://SERVER:PORT/fabric/,登录 Fabric Admin Console。然后执行以下步骤。

创建组织

  1. 通过选择 Subscriber Manager > Manage Subscriber 导航到 Manage Subscriber 页面。
  2. 单击 Create an Organization 按钮。输入 Embassy ABC 作为组织名称。然后单击 Create Organization 按钮。

图 2. 创建组织
创建组织

注意:本文中后续的开发过程并不使用这里创建的组织,但是后面的创建 Fabric 项目步骤除外。实际上,它主要用于业务监视。请参见 第 4 部分:使用 Performance Manager 监视业务

创建 Fabric 项目

按照以下步骤创建 Fabric 项目:

  1. 选择 Governance Manager > Configure Projects
  2. 单击 Create Project 按钮。
  3. 输入 VisaApplication 作为项目名称。选择 Business Service 作为项目类型,Embassy ABC 作为团队组织。
  4. 单击 Create Project 按钮。

图 3. 创建项目
创建项目

创建 Fabric 名称空间

需要创建两个名称空间:

  • 模式名称空间:用来存储模式信息。
  • 实例名称空间:用来存储业务服务模型实例。

创建模式名称空间:

  1. 选择 Governance Manager > Configure Namespaces
  2. 单击 Create a Namespace 按钮。
  3. 用表 1 中的值创建模式名称空间。

表 1. 模式名称空间值
Display NameVisa Application Schema NS
Namespace TypeSchema
Namespace URL http://www.abc.org/service/embassy/visa-application-sch#
Namespace Prefixvisa_pre
Owner ProjectVisaApplication

图 4. 创建名称空间
创建名称空间

使用表 2 中的值创建实例名称空间:


表 2. 实例名称空间值
Display NameVisa Application Instance NS
Namespace TypeInstance
Namespace URL http://www.abc.org/service/embassy/visa-application-ins#
Owner ProjectVisaApplication

注意:通常情况下,Fabric 项目只需要一个实例类型的名称空间。这里创建的模式名称空间主要用于本体扩展。在 “第 4 部分:使用 Performance Manager 监视业务” 中,将学习如何为登记和预订创建登记名称空间。





回页首


扩展本体

本体(ontology)是用来描述和表示知识领域的术语和概念的定义集合。OWL 是 Web Ontology Language,WBSF 使用它表示本体信息。

为什么要扩展本体?

正如本系列的第二篇文章中指出的,Visa 应用程序场景涉及几个业务概念:服务提供者、响应时间、成本和服务提供者选择规则。WBSF 的益处就在于,这些业务概念可以轻松地映射到 WBSF 概念。

  • 服务提供者映射到端点
  • 服务提供者选择规则映射到策略
  • 响应时间和成本映射到断言

从 WBSF 的角度来看,策略用来选择最合适的端点,端点由断言区分。断言描述端点的功能,见表 3。


表 3. 端点和断言
端点断言
EpVisaApplicationServiceHUGMaxResponseTime=5 daysCost=20$/tranc
EpVisaApplicationServiceOMMKMaxResponseTime=12 daysCost=10$/tranc
EpVisaApplicationServiceABQMaxResponseTime=17 daysCost=8$/tranc
EpVisaApplicationServiceUYMaxResponseTime=18 daysCost=5$/tranc

除了描述端点的功能之外,还可以使用断言定义策略。在概念上,采用 “IF (条件) THEN (断言)” 格式声明策略。例如:

IF Visa Type = Student, THEN Response Time less than 20 days,其中的 Visa Type = Student 是条件,Response Time less than 20 days 描述业务需求(采用断言形式),表示候选服务提供者的响应时间应该不超过 20 天。注意,也可以使用断言描述条件,比如 Visa Type = Student。本文后面会进一步解释端点、断言和策略。

现在,就可以回答 “为什么要扩展本体” 这个问题了:因为断言。尽管 WBSF 提供一些内置的断言类型,但是没有专门针对 Visa 应用程序业务场景的断言。更具体地说,断言类型 Cost 是内置的,但是需要通过扩展 WBSF 的核心本体来创建 ResponseTimeAssertion 和 VisaTypeAssertion。

扩展本体

按照以下步骤扩展本体:

  1. 导出 VisaApplication 项目。在 Fabric Admin Console 中,选择 Governance Manager > Import/Export。单击 Export by Project 选项卡。在 Project 下拉列表中,选择 VisaApplication。选中 Visa Application Schema NS。单击 Export to File。这会创建一个 ZIP 文件,其中包含一个 XML 文件和两个 OWL 文件(分别针对前面创建的两个名称空间)。
  2. 用 Protégé 创建新的断言并存储 OWL 文件。
  3. 把 ZIP 文件中模式名称空间的 OWL 文件替换为前一步中创建的 OWL 文件(使用相同的文件名)。在 Fabric Admin Console 中,使用 Import/Export 导入 ZIP 文件。

还可以从 这里 下载 VisaApplication-owl.zip,然后直接用 Import/Export 特性导入它,而不必自己创建新的断言。

可以用文本编辑器打开 OWL 文件,查看如何定义新的断言类型。下面的代码片段取自这个文件。


清单 1. OWL 文件内容
OWL 文件内容




回页首


构建和组装组合业务服务

业务服务常常是通过对企业后端系统和外部第三方系统提供的现有功能(作为 Web 服务公开)进行组合实现的。在为 Visa 应用程序场景构建组合业务服务之前,可以假定已经正确地定义了 Visa Information Verification 接口,而且 HUG、OMMK、ABQ 和 UY 已经实现了这个接口,因此它们可以提供 Visa Information Verification 服务(不必考虑这些服务提供者实际上在哪里。有一个预先构建的 SCA Module 项目,它附带 Visa Information Verification 接口定义和四个实现,可以下载和部署它来模拟这四个服务提供者)。

现在,可以基于现有的 Visa Information Verification 服务构建 CBS。为此,需要开发两个项目:

  • Fabric Studio 项目:通过创建、编辑、测试和提交业务服务元数据(比如接口、端点和策略),增强前面用 Governance Manager 建立的 Fabric 项目。
  • DA Module 项目:这是一个 SCA Module 项目,它使用 Business Services Dynamic Assembler(后面简称为 Dynamic Assembler)组装业务服务,可以根据 Fabric Studio 项目创建的业务服务元数据和请求动态地组合策略并选择服务。

导入 SCA Module 项目

正如前面提到的,有一个预先构建的 SCA Module 项目实现了 Visa Information Verification 服务,可以以这个项目作为起点。可以下载 Project Interchange 并把它导入您的 Composition Studio(请参见 “参考资料” 中的下载链接)。

导入之后,在 Composition Studio 中可以找到两个项目:lib.visa_application 和 module.visa_application.impl。前者定义 Visa 应用程序业务场景的接口,后者提供四个 SCA 组件,即 ProviderHUG、ProviderOMMK、ProviderABQ 和 ProviderUY。每个 SCA 组件都使用 Java 实现这个接口并作为 Web 服务公开。

还需要在 IBM WebSphere Application Server (WAS) 或 IBM WebSphere Process Server (WPS) 中部署这些 Web 服务,从而模拟四个服务提供者。

构建组合业务服务

在 Studio 项目中,可以定义一组对象(它们形成一个层次化结构),从而开发业务服务模型。

  • 应用程序套件:应用程序的集合,它们一起支持一个业务功能领域。
  • 应用程序:业务服务的集合,它们一起解决一个业务问题 —— 这是组合业务服务的同义词。
  • 业务服务:一种特定的业务功能,可以在运行时根据请求的操作上下文和建立的策略调整它的行为,从而满足服务消费者的需要。
  • 接口:定义服务消费者和服务提供者之间的通信边界。它包含一组操作和消息。
  • 端点:实现一个或多个服务接口的服务的物理地址。
  • 策略:指定消费者的需求,对于给定的上下文,端点必须满足这些需求。

为了实现 Visa 应用程序场景,需要创建表 4 中列出的对象:


表 4. 对象概述
索引名称类型描述
1VisaApplicationSuite应用程序套件代表一套相关的应用程序。这里,只构建一个应用程序
2VisaApplicationApp应用程序代表要构建的组合业务服务
3VisaApplicationBS业务服务代表 Visa 应用程序场景中的 Visa Information Verification 业务功能
4IfVisaApplicationService接口定义 Visa Information Verification 服务
5EpVisaApplicationServiceHUG端点代表服务提供者 HUG
6EpVisaApplicationServiceOMMK端点代表服务提供者 OMMK
7EpVisaApplicationServiceABQ端点代表服务提供者 ABQ
8EpVisaApplicationServiceUY端点代表服务提供者 UY
9VerifyTouristPolicy策略指定在 Visa Type 为 Tourist 时服务提供者必须满足的需求
10VerifyBusinessPolicy策略指定在 Visa Type 为 Business 时服务提供者必须满足的需求
11VerifyStudentPolicy策略指定在 Visa Type 为 Student 时服务提供者必须满足的需求
12S1模拟用来模拟根据策略选择端点的场景

为了创建这些对象,需要执行以下步骤:

启动 Composition Studio 并切换到 Business Service 透视图。

创建一个新项目。

  1. 右键单击 Business Service Explorer 视图。从上下文菜单中选择 New > Fabric Project
  2. 在 New Fabric Project 窗口中,输入 studio.visa_application 作为项目名称。

图 5. 创建 Fabric 项目
创建 Fabric 项目
  1. 单击 Next 按钮。
  2. 单击 Configure。在弹出窗口中,指定协议、主机名、端口、用户名和密码。单击 OK
  3. 在把元数据从 Business Services Repository 装载到本地存储库中之后,单击 Next 按钮。
  4. 选择 VisaApplication 作为 Fabric 项目,单击 Finish

创建应用程序套件。

  1. 右键单击 Business Service Explorer 视图。选择 New > Application Suite
  2. 在 New Application Suite 窗口中,分别指定 studio.visa_application、VisaApplicationSuiteVisa Application Instance NS 作为项目、名称和名称空间。
  3. 单击 Finish

图 6. 创建应用程序套件
创建应用程序套件

创建应用程序。

  1. 右键单击 Business Service Explorer 视图。选择 New > Application。New Application 窗口打开。
  2. 选择 studio.visa_application 作为项目。在 name 框中,输入 VisaApplicationApp。选择 Visa Application Instance NS 作为名称空间。单击 Browse 按钮并选择 VisaApplicationSuite
  3. 单击 Finish

图 7. 创建应用程序
创建应用程序

创建业务服务。

  1. 右键单击 Business Service Explorer 视图。选择 New > Business Service
  2. 选择 Optimization Service,单击 Next 按钮。
  3. 在 New Optimization Service 窗口中,指定 studio.visa_application 作为项目,VisaApplicationBS 作为名称,Visa Application Instance NS 作为名称空间,VisaApplicationApp 作为应用程序。单击 Next

图 8. 创建业务服务
创建业务服务
  1. 单击 Add Channel… 按钮。在 Display Name 框中输入 Web Service。从 Matching Channel Types 列表中选择 WebServiceChannel。单击 OK 按钮,然后单击 Next 按钮。
  2. 单击 Add Role Type… 按钮并从列表中选择 Administrator
  3. 单击 Finish

创建接口。

  1. 右键单击 Business Service Explorer 视图。选择 New > Interface
  2. 在 Import Interfaces 窗口中,选择 studio.visa_application 作为项目,Visa Application Instance NS 作为名称空间。
  3. 单击 Browse 按钮,导航到包含前面导入的 lib.visa_application 项目的文件夹,选择 IfVisaApplicationService.wsdl 并单击 Open
  4. 单击 Next
  5. 选择 IfVisaApplicationService Port Type,单击 Add 按钮。
  6. 单击 Finish

创建代表四个服务提供者的端点。

a). 创建一个名为 EpVisaApplicationServiceHUG 的端点

  1. 右键单击 Business Service Explorer 视图。选择 New > Endpoint
  2. 在 New Endpoint 窗口中,选择 studio.visa_application 作为项目。
  3. 在 Name 框中输入 EpVisaApplicationServiceHUG
  4. 选择 Visa Application Instance NS 作为名称空间。
  5. 选择 HTTP 作为地址。

图 9. 创建端点
创建端点
  1. 单击 Next
  2. 选择 SOAP 1.1 作为消息类型。
  3. 在 URL 框中,输入 http://HOST:PORT/module.visa_application.implWeb/sca/VisaApplication_HUG_Export,其中的 HOST/PORT 是部署 Visa 应用程序 Web 服务的应用服务器的主机名/端口号。
  4. 单击 Finish

b). 把端点关联到 IfVisaApplicationService 接口

  1. Business Service Explorer 视图中,双击 EpVisaApplicationServiceHUG 端点。
  2. 在编辑器区域中,单击 Interfaces 选项卡。
  3. 单击 Add Existing… 按钮。
  4. 选择 IfVisaApplicationService 并单击 OK

c). 在端点中添加断言

  1. 切换到 Assertions 选项卡。
  2. 单击 Add… 按钮。
  3. 展开 Interoperability Assertion 并选择 ResponseTimeAssertion。单击 OK
  4. 在 Response Time 框中,输入 5

d). 在端点中添加成本

  1. 切换到 Overview 选项卡。
  2. 选择 Transaction 作为成本修饰符。
  3. 在 Cost 框中,输入 20

重复以上步骤,创建另外三个端点,除了表 5、表 6 和表 7 所示的值之外,其他设置值相同。


表 5. OMMK 提供者值
NameEpVisaApplicationServiceOMMK
URLhttp://HOST:PORT/module.visa_application.implWeb/sca/VisaApplication_OMMK_Export
Response Time for the assertion12
Cost10

表 6. ABQ 提供者值
NameEpVisaApplicationServiceABQ
URLhttp://HOST:PORT/module.visa_application.implWeb/sca/VisaApplication_ABQ_Export
Response Time for the assertion17
Cost8

表 7. UY 提供者值
NameEpVisaApplicationServiceUY
URLhttp://HOST:PORT/module.visa_application.implWeb/sca/VisaApplication_UY_Export
Response Time for the assertion18
Cost5

创建策略。

a). 创建名为 VerifyTouristPolicy 的策略

  1. 右键单击 Business Service Explorer 视图。选择 New > Policy
  2. 在 Create a Policy 窗口中,选择 studio.visa_application 作为项目。
  3. 在 Name 框中,输入 VerifyTouristPolicy
  4. 选择 Visa Application Instance NS 作为名称空间。
  5. 单击 Browse… 按钮。在 Select Target 窗口中,选择 interface,然后选择 IfVisaApplicationService。单击 OK
  6. 单击 Next

图 10. 创建策略
创建策略
  1. 接受默认的 Policy Context 值。单击 Next
  2. 单击 Add… 按钮。
  3. 在弹出的 Content Selection 窗口中,选择 VisaType 作为内容类型。
  4. 单击 Add Content… 按钮。选择 Tourist 作为 VisaType。单击 OK
  5. 单击 OK 关闭 Content Selection 窗口。
  6. 单击 Finish

b). 在策略中添加断言

  1. 在编辑器区域中,单击 Add… 按钮。
  2. 展开 Interoperability Assertion 并选择 ResponseTimeAssertion。单击 OK
  3. 在 Response Time 框中,输入 10。单击 OK

重复以上步骤,创建 VerifyBusinessPolicy 策略和 VerifyStudentPolicy 策略,除了表 8 和表 9 所示的值之外,其他设置值相同。


表 8. VerifyBusinessPolicy 值
NameVerifyBusinessPolicy
VisaType for Content SelectionBusiness
Response Time for ResponseTimeAssertion15

表 9. VerifyStudentPolicy 值
NameVerifyStudentPolicy
VisaType for Content SelectionStudent
Response Time for ResponseTimeAssertion20

采用 “IF (条件) THEN (断言)” 格式声明策略,其中的条件使用上下文和内容定义,而断言来自合约。上下文是 Business Services Repository 中存储的元数据。内容信息包含在来自请求者的有效负载中(也就是请求头和体)。合约是一组断言,服务提供者在运行时必须根据上下文和内容满足这些断言。

WBSF 使用上下文和内容组合出选择端点所需的策略和合约。本文后面会进一步讨论上下文、内容、合约和策略。

创建并运行模拟:

  1. 右键单击 Business Service Explorer 视图。选择 New > Simulate
  2. 在 Name 框中,输入 S1。接受所有其他值。单击 Finish
  3. 在编辑器区域中,单击 Required Context 部分中的 Browse… 按钮。
  4. 选择 IfVisaApplicationService 并单击 OK
  5. 单击 Optional Context 部分中的 Add Content-based Dimension... 按钮。选择 VisaTypeAssertion,单击 OK。单击 Edit… 按钮。选择 Student 作为 VisaType,单击 OK
  6. 单击 Run 运行模拟。

图 11. 运行模拟
运行模拟
  1. 把 VisaType 改为 Business。单击 Run
  2. 把 VisaType 改为 Tourist。单击 Run

模拟的结果见表 10。在表中,可以看到结果完全符合前一篇文章的描述。


表 10. 模拟的结果
场景上下文/内容应用的策略找到的候选提供者选择的端点
1Interface=IfVisaApplicationService VisaType=StudentVerifyStudentPolicyEpVisaApplicationServiceUY
EpVisaApplicationServiceABQ
EpVisaApplicationServiceOMMK
EpVisaApplicationServiceHUG
EpVisaApplicationServiceUY
2Interface=IfVisaApplicationService VisaType=BusinessVerifyBusinessPolicyEpVisaApplicationServiceOMMK
EpVisaApplicationServiceHUG
EpVisaApplicationServiceOMMK
3Interface=IfVisaApplicationService VisaType=TouristVerifyTouristPolicyEpVisaApplicationServiceHUG EpVisaApplicationServiceHUG

我们来看一下测试场景 1,这个场景中有两个输入条件:

Interface=IfVisaApplicationService(上下文)和 VisaType=Student(内容)。所有三个策略都满足上下文条件,但是只有 VerifyStudentPolicy 满足内容条件。因此,WBSF 应用 VerifyStudentPolicy 策略,这个策略具有值为 20 的 ResponseTimeAssertion 断言(合约),这意味着只需要响应时间不超过 20 的端点。四个端点的响应时间都小于 20(如它们的 ResponseTimeAssertion 断言所示,分别为 5、12、17 和 18),因此它们都满足需求。为了决定最合适的端点,再考虑成本。最终选择 EpVisaApplicationServiceUY,因为它的成本是所有候选提供者中最低的。

通过分析后两个测试场景,可以更深入地理解上下文和内容如何影响策略评估,以及合约如何影响端点选择。

组合组合业务服务

WBSF 提供用于组合业务服务的 Dynamic Assembler。Dynamic Assembler 是一种高度优化的元数据驱动的组装器,它把服务消费者链接到服务提供者,可以把它看作根据请求决定要使用的端点的智能代理。

WBSF 可以以两种组件模式使用 Dynamic Assembler:Dynamic Assembler 作为 SCA 组件以及 Dynamic Assembler 作为单独的组件。SCA 模式是 IBM 推荐的模式。

为了以 SCA 模式使用 Dynamic Assembler,需要按以下步骤创建一个 Module 项目。

a.) 创建一个 SCA Module 项目:

  1. File 菜单中,选择 New > Project…,然后在 New Project 窗口中选择 Module。单击 Next。在 Module Name 框中输入 da.visa_application。单击 Finish
  2. Business Integration 视图中,右键单击 da.visa_application。选择 Properties,然后在 Properties 窗口中选择 Java Build Path。单击 Libraries 选项卡,添加三个外部 JAR:fabric-da-api.jarfabric-da-sca.jarfabric-da-scdl.jar。可以在 ToolPack 安装目录中找到这些 JAR。

b.) 创建 Dynamic Assembler 组件:

  1. Dynamic Assembler 组件拖放到组装编辑器的画布中。把它改名为 VisaApplicationDA
  2. 双击 VisaApplicationDA 组件以实现它。如果出现提示,那么接受默认的文件夹。在 Dynamic Assembly Configuration 页面上,接受默认设置。

注意:实现 Dynamic Assembler 组件相当简单。不需要您实现任何业务逻辑。只需双击它并完成配置。

c.) 创建 Context Extractor 组件。Dynamic Assembler 有一个扩展模式,可以通过这种模式定制在服务调用生命周期中调用的插件。这里需要创建一个 Context Extractor 扩展,它支持检查请求消息体并把值注入上下文中。

  1. Java 组件拖放到组装编辑器的画布中。把它改名为 VisaApplicationExtractor
  2. com.ibm.websphere.fabric.da.plugin.ContextExtractor 接口添加到 VisaApplicationExtractor 组件中。
  3. 双击以实现 VisaApplicationExtractor 组件。在实现类中添加常量属性 Type_URIVISA_TYPE

清单 2. 添加两个常量
				
private static final String Type_URI = 
"http://www.abc.org/service/embassy/visa-application-sch#VisaType";
	private static final String VISA_TYPE = "visaType";
			

  1. 通过添加以下代码完成 extractContext 方法(这个方法以 PendingRequest 对象作为参数):

清单 3. extractContext 方法
				
DataObject body = arg0.getMessageBody();
	DataObject request = (DataObject) body.getSequence(0).getValue(0);
	BusinessObject request1 =  (BusinessObject) request.getSequence(0).getValue(0);
	String type = (String) request1.getString(VISA_TYPE);
	Context context = arg0.getContext();
	context.setSelectionProperty(Type_URI, new TypedValue(type));
	return context;
			

以上代码从请求中提取出 VisaType 并把它添加到上下文中。在运行时,在构建策略之前调用 Context Extractor 扩展。然后,组装器根据注入的值执行策略评估和选择。

  1. 最后,把 VisaApplicationDA 组件连接到 VisaApplicationExtractor 组件。

最终的组装图应该像图 12 这样。


图 12. 组装图
组装图




回页首


发布组合业务服务元数据

现在,已经用 Composite Studio 创建了业务服务元数据。需要通过治理过程批准元数据。通常,这涉及两个步骤,由两个不同的角色完成:(1) 开发人员从 Composite Studio 提交更改列表;(2) 管理员检查业务服务元数据更改、批准它们并把它们发布到存储库。

从 Studio 项目提交更改列表

  1. Repository Changes 视图中,右键单击 studio.visa_application。从上下文菜单中选择 Submit Changelist
  2. 选中 studio.visa_application 单选按钮。单击 Next
  3. 单击 Add All >> 按钮。

图 13. 提交更改列表
提交更改列表
  1. 单击 Finish

在 Fabric Admin Console 中批准并发布更改

  1. 选择 Governance Manager > Manage Changes
  2. 在 Manage Changes 页面上,单击 Search
  3. 批准并发布更改。

图 14. 发布更改
发布更改




回页首


部署和测试

到目前为止,已经为 Visa Information Verification 构建了组合业务服务,提交了元数据,批准/发布了更改。现在,可以在 Dynamic Assembler 组件上执行测试,从而检查刚才发布的 CBS。

  1. Composition Studio 中,切换到 Business Integration 透视图。
  2. 展开 da.visa_application 项目。双击 Assembly Diagram
  3. 在 Assembly Diagram 中,右键单击 VisaApplicationDA 组件。
  4. 选择 Test Component
  5. 把初始请求参数 VisaType 的值改为 Business

图 15. 测试组件
测试组件
  1. 单击 Start 按钮。
  2. 选择适当的部署位置。单击 Finish

在 Console 视图上,可以看到与图 16 相似的输出消息。


图 16. Console
Console

这意味着选择了 OMMK 提供者。

同样,通过把初始请求参数 VisaType 的值改为 Student 或 Tourist,可以测试其他测试场景。

恭喜!您已经完成了构建组合业务服务所需的所有步骤。





回页首


结束语

在本文中,您学习了如何构建组合业务服务,以通过 WBSF 6.1 提供的动态的策略驱动的机制更灵活地调用服务。在本系列的下一篇文章中,您将学习如何使用 Performance Manager 监视业务服务。






回页首


下载

名字大小下载方法
本文 OWL 文件9KBHTTP
本文代码示例33KBHTTP
关于下载方法的信息


参考资料



作者简介

Yan Jun Mo 是 IBM Global Business Solution Center 的一名软件工程师,他目前正在为政府部门构建基于 SOA 的业务解决方案。


Lei Zhang 是 Global Business Solution Center 中负责政府行业中 Intelligent Transportation System 的 Road User Charging (RUC) 解决方案的首席架构师。WBSF 是 GBSC 解决方案堆栈中的重要产品之一,是 SOA 基础的一部分。特别是在 2007 年,Lei 领导一个团队加入了 WBSF V6.1 BETA 计划,验证了 WBSF 6.1 在政府解决方案开发方面非常有价值。


Peng Tang 是 IBM 的 Global Business Solution Center 的一名软件工程师,目前正在构建 CBE (Common Business Enabler),以增强通用业务服务在不同行业部门的利用。


Jing Feng 是一名 IBM GBSC 成员,主要研究 J2EE、SOA 解决方案、EAI 和 BPM 问题。


Wei Wang 是 IBM Global Business Service Center 的一名软件工程师。他目前正在为政府部门构建基于 SOA 的业务解决方案。




对本文的评价










回页首


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