扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
引言
本系列文章讨论使用 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 的模块使您能够:
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,您可以实例化:
CBS 组装过程中的角色和职责
此 CBS 组装中包括的建议角色为(图 1):
图 1. CBS 组装过程中的角色和职责
|
创建 CBS 模型
下面是创建 CBS 模型的常规步骤。本文剩下的部分将详细阐述与这些步骤中每个步骤关联的任务。
1. 设置 Fabric 项目
WebSphere Business Services Fabric 活动是在项目范围内执行的,并且每个项目都配置为与元数据和维护该内容的团队关联。
首先,在 Web 浏览器中键入以下 URL,以访问 WebSphere Business Services Fabric 门户;缺省的用户 ID 为 admin
,缺省密码为 webify
(图 2):
URL http://<server name:port number>/fabric/
其次,架构师需要创建一个新项目(图 3)。选择 Governance Manager => Configure Projects。
输入或选择下面的值(图 3):
Loan Origination
图 3. 创建 Fabric 项目
2. 为项目创建命名空间
命名空间为 CBS 元模型中的对象提供一种分组方法,从而使系统更具模块化。CBS 元模型中的所有对象必须属于命名空间。这里使用以下两种类型的命名空间:
创建这些命名空间的步骤:
选择 Governance Manager => Configure Namespaces。
使用下面的值创建模式类型的命名空间(图 4):
Loan Origination Schema
lo
http://intbank/loan/loanorigination#
使用下面的值创建实例命名空间(图 5):
Loan Origination Instance
http://intbank/loan/loanorigination-inst#
3. 配置 CBS 环境
CBS 环境可以关联部署业务服务端点的系统,因此,如果请求包含生产环境,则不能使用为测试环境分配的端点。
选择 Governance Manager => Configure Environments。
创建名称为 Loan Origination Testing Environment
的测试环境(图 6)。
4. 定义组织
定义业务案例中描述的三个组织:
选择 Subscriber Manager => Manage Subscriber(图 7)。
在 Organization Name 字段中输入组织名称:International Bank
,并按 Create Organization。
创建名称为 International Bank of California
的另一个组织,并选择 International Bank 作为“父组织”。
类似地,创建名称为 International Bank of Texas
的组织,并选择 International Bank 作为“父组织”。
图 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 本体的基本流程包括以下常规步骤:
稍后将介绍如何使用这些断言。要创建断言,请执行以下操作:
创建新的 Protege 项目(图 8):
http://intbank/loan/loanorigination
(这是上面创建的模式命名空间),然后单击 Next。
在安装 IBM Business Services Tool Pack 时,请导入 Fabric 本体存根,它位于 <fabric 安装目录>\ ToolPack\Plugins\SDKs\fabric-sdk-6.0.0\owl 下。要导入存根,请执行以下操作:
要扩展 ContentBasedAssertion:
LoanAmountAssertion
。
ServiceProviderAssertion
的另一个断言。 要创建 loanAmount 属性,请执行以下步骤:
loanAmount
。
core:assertionPropertyComparator
,值为 LessThanComparator。
core:controlWidget
,值为 integer。 要创建 serviceProvider 属性:
serviceProvider
。
core:assertionPropertyComparator
,值为 EqualComparator
。
core:controlWidget
,值为 dataRange
。 使用文件后缀名 .owl 保存 Protege 项目,如 loanorigination.owl
(Protege Version 3.2 Build 236 不能存储包含空格的文件名)。
从 WebSphere Business Services Fabric 导出模式本体:
将 OWL 文件替换为导出的模式文件:
.ocp
。 将模式文件导回 WebSphere Business Services Fabric:
前面创建的数据存储在 WebSphere Business Services Fabric 的 Business Service Repository 中。
图 18. 导入本体文件
6. 创建 SOBA 项目
在 Composition Studio 中创建 SOBA 项目:
首先,您需要设置工作区参数。启动 Composition Studio,并打开 Preference 对话框,以设置 Catalog Configuration,如图 19 所示。缺省的用户名和密码分别为 admin
和 webify
。Composition Studio 从 Business Services Repository 使用这里提供的配置检索项目、命名空间和本体(在前一部分中创建)。
接下来,您需要创建 Composition Studio 项目。要创建与 Business Services Repository 中项目关联的本地项目,请打开 SOBA Assembly 透视图,并右键单击 SOBA Explorer 视图,以创建新的 SOBA 项目。此 SOBA 项目的名称不必与在 WebSphere Business Services Fabric 门户中创建的项目名称一致,它只表示元数据资源的本地库(图 20)。
单击 Next 按钮,然后单击 Replicate 按钮,以便从 Business Services Repository 中检索可用项目数据,并将其复制到本地开发环境(即 Composition Studio)。此流程与从源控制系统检索源代码类似。选择 Next,选择您先前在 WebSphere Business Services Fabric 中创建的项目,然后进行复制,并单击 Finish 按钮(图 21)。
复制完成后,请切换到 SOBA Assembly 透视图。在 Loan Origination 项目下,您将看到 Business Process Models 和 SOBA Models,如图 22 所示。Business Process Models 下的资源表示业务领域的视图,而 SOBA Models 下的资源表示 Information Technology (IT) 透视图的视图(包含应用程序套件和要实现的应用程序)。
7. 填充业务流程模型轮廓
要捕获业务流程的轮廓:
创建业务生态系统(一种业务服务网络的集合),它可以捕获 SOBA 架构师设计的现有客户构件(甚至模型)。要创建业务生态系统,请右键单击 SOBA Explorer 视图(图 23),并选择 New => Business Ecosystem。输入名称(如 Banking Business Ecosystem
),并单击 Finish。
创建业务服务网络,这是业务流程套件的集合。选择 New => Business Services Network,输入名称(如 Banking Business Service Network
),并选择您刚才创建的业务生态系统。
创建业务流程套件,这是一组业务流程,可以集成到一组相关的组合业务服务。选择 New => Business Process Suite,输入名称(如 Banking Business Process Suite
),并选择您刚才创建的业务服务网络名称。
创建业务流程,这是组织为实现共同目标而执行的一组业务活动。选择 New => Business Process,输入名称(如 Banking Business Process
),并选择您刚才创建的业务流程套件。
8. 组合 SOBA 模型
接下来,您必须组合应用程序套件和应用程序:
应用程序套件是 Business Services Repository 中的资源,表示一套相关的应用程序。应用程序套件可以包含许多应用程序。选择 New => Application Suite,并输入名称(如 Banking Application Suite
)。
此处,应用程序表示 CBS,它是围绕复杂的端到端业务流程构建的业务服务集合,是对特定行业的优化。选择 New => Application,输入名称(如 Loan Application
),并选择您刚才创建的应用程序套件。
完成流程和 SOBA 模型后,图 24 演示了结果轮廓。
图 24. 包含业务流程模型和SOBA 模型的 SOBA Explorer 视图
9. 创建 SOBA 资源
要创建与应用程序关联的资源,请切换到 SOBA Resource 透视图。可用的资源是业务服务、Web 服务和端点,它们组合为 IBM Business Services Dynamic Assembler (Dynamic Assembler) 使用的应用程序。
业务服务是业务功能,可以在运行时基于业务策略和用户上下文执行该功能。Composition Studio 提供的三种业务服务是流程服务、可视化服务和优化服务;对于本文而言,这里只使用流程服务。要创建业务服务,请执行以下操作:
Loan Processing Service
),并选择先前创建的 Loan Application 应用程序,以便将服务资源与该应用程序关联。单击 Next。
Web Service Channel
),并从 Matching Channel Types 列表中选择值 WebServiceChannel(图 25)。单击 Next。
在 Composition Studio 中创建的 Web 服务基于在 WSDL 或 BPEL 文档中定义的端口类型。可以提取和编录特定 WSDL 或 BPEL 文档(可以有许多 WSDL 定义)的每个端口类型的 Web 服务模型。对于本文而言,我们提供 WSDL 来创建 Web 服务。要创建 Web 服务,请执行以下操作:
前一篇文章中描述了以下两个端点:Credit Digger 和 Customer Credit Information System。CCIS 端点的 ServiceProviderAssertion 为“Internal”,LoanAmountAssertion 为“0”(这意味着任何贷款数额都大于 0)。Credit Digger 的 ServiceProviderAssertion 为“External”,LoanAmountAssertion 为“10000”(这意味着贷款数额大于 10,000 美元)。要创建端点,请执行以下操作:
Customer Credit Information System
,保留所有其他字段的缺省值,并单击 Next。
http://localhost:9080/CreditVeriCR/services/CreditVerificationSrvc
,并单击 Finish。(URL 应表示部署的实际 Web 服务;本文假设服务部署在 URL 所示的位置。)
0
。
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. 断言属性
我们使用策略目标的自然排序(图 29)解决冲突。对于同一断言类型,在更具体的目标中设置的策略可以覆盖在高级目标中定义的策略。Dynamic Assembler 在解决策略之间的冲突时使用更具体的目标。如果多个端点都可以完成请求,则选择成本最低的端点。
图 29. 策略目标的自然排序
创建策略:
将透视图切换到 SOBA Policy。
右键单击 Policy Explorer 视图,并选择 New => Policy。
输入策略名称,如 Policy for International Bank of California
(P1),并单击 Browse 按钮,以便 在 Web 服务级别设置目标(图 30)。单击 Next。
单击 Add,以便为组织(本例中为加利福尼亚国际银行)设置上下文目标(图 31),然后单击 Next。
添加 loanAmount 内容类型,并选择 is greater than 比较方式,输入值 10000
。
单击 Finish。
单击 Contract 选项卡,展开 Interoperability 部分(图 32),从列表框添加 ServiceProviderAssertion,并选择 External。
重复上述步骤以创建另一个策略:Policy 2 for International Bank of California
(P2),将其目标设置为应用程序 Loan Application,将内容目标设置为组织 International Bank of California,并将内容类型设置为 loanAmount。选择 is greater than 比较方式,输入值 10000
,并在 Contract 选项卡中为 ServiceProviderAssertion 输入 Internal。(这是专门为稍后的策略覆盖测试创建的。)
第三次重复上述步骤,以创建 Policy for International Bank
(P3),其目标在 Web 服务级别,上下文目标为组织 International,没有内容断言,并且在 Contract 选项卡中将 ServiceProviderAssertion 设置为 Internal。
图 30. 策略目标
图 31. 内容目标
图 32. 策略契约
11. 提交更改
在 Composition Studio 中完成上述所有步骤后,您可以提交更改,以便在 Governance Manager 上执行进一步审批周期,在将更改发布到 Business Services Repository 之前,Governance Manager 管理一系列更改列表。
要提交更改列表,在 Composition Studio 中,请单击 Catalog Changes 视图(图 33)中的 Submit Changelist 按钮。
更改的资源在提交后无法修改。在 Governance Manger 拒绝、或批准和发布请求,并且结果更新回到本地目录之前,您必须等待。
要批准和发布更改列表,您需要作为管理员身份登录到 WebSphere Business Services Fabric 门户,并单击 My Inbox 来显示待定的请求。要处理请求,请单击提交请求,然后按顺序单击 Approve 和 Publish 按钮(图 34)。只有实际发布的更改才能在 WebSphere Business Services Fabric 运行时正常运行。
要将批准或发布的更改列表更新回 Composition Studio,只需在 Composition Studio 中单击 Update Catalog 按钮(图 35)。
12. 模拟策略
Composition Studio 提供了 Policy Simulator,以便在检查工作系统的更改之前测试业务服务的端点选择场景。Policy Simulator 可以模拟端点选择(给出您提供的上下文),并提供有关用于决策的策略和断言的反馈信息、候选端点和所选择的端点。
要在 Composition Studio 上启动 Policy Simulator,请单击工具栏上的图标(图 36),然后单击 Finish 按钮。请输入以下值(基于前面创建的资源;某些字段位于 Optional Criteria 部分下):
11000
单击 Run Simulation 按钮。您会在 Simulation Result 部分中看到结果,如图 37 所示。模拟器在模拟过程中清楚地列出了调用的策略、应用的断言和候选端点,最后一项是最适合请求的所选端点。
将组织更改为 International Bank 或 International Bank of Texas,以查看不同的结果(图 38)。
图 36. 策略模拟器
图 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. 没有覆盖的策略模拟
图 39. 具有覆盖的策略模拟
|
结束语
本文介绍了如何在 WebSphere Business Services Fabric 和 Composition Studio 中组装组合业务服务、扩展本体、定义策略,以及在 Policy Simulator 中模拟策略的端点选择。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者