WebSphere Business Services Fabric(以下称为 Fabric)提供了一个利用相关业务流程和服务来创建和管理组合业务应用程序的端到端平台。为了创建组合业务应用程序,Fabric 提供了根据您的业务领域调整和扩展基本 Fabric 业务模型的能力,包括扩展角色、断言和通道。
基于 SOA 的行业特定解决方案中的灵活性通常由业务策略驱动,业务策略可以帮助业务流程适应不同的业务场景。围绕用户角色创建业务策略是非常普遍的做法,在 Fabric 的概念验证和技术演示过程中尤其是如此。为此,Fabric 开发人员首先需要向所提供的基本角色集添加自定义角色,从而根据业务领域调整 Fabric 业务模型。本文描述如何完成此任务。向 Fabric 业务模型添加自定义角色以后,管理员可以围绕这些角色创建策略和断言。
在本文中,您将了解如何使用 Fabric 建模工具向 Fabric 业务模型添加自定义角色。要充分利用本文,您应该非常了解 Fabric、本体和通用建模语言(universal modeling language,UML)建模。
重要:本文基于 Fabric V6.1,并且不适用于较旧的版本,例如 V6.0.2。
为了完成本文中的步骤,您需要安装了以下插件的 Rational® Software Architect V7(以下称为 Software Architect)或更高版本:
- UML 建模
- UML 到 UML 的转换和模式
- WSDL 和 XSD 建模与转换
- 转换创作
- Fabric 建模工具
- WebSphere Business Services Fabric Core Stubs(作为 Fabric Tool Pack V6.1 的一部分提供)
更多信息:有关插件的详细安装说明,请参阅 IBM 红皮书 Getting Started with IBM WebSphere Business Services Fabric V6.1 的 8.7.1 节。
用例概述
Fabric 附带了一些基本角色,例如 Administrator、QA Engineer 等等。对于本文中的用例,我们将构建一家名为 AcmeOrg 的医疗诊所中的基于角色的服务订阅。该解决方案应该基于用户的角色,为经过身份验证的用户提供对所供应的服务集的访问。实现此目的的第一步是向 Fabric 业务模型添加角色。在我们的示例中,我们将添加 Physician、CheckInClerk 和 Patient 角色。
在本文中,我们将逐步完成添加自定义角色的步骤。我们将不介绍如何设置基于角色的访问。
要添加自定义角色,您将执行以下步骤,后续的部分将详细描述这些步骤:
- 步骤 1:创建新的 Fabric 核心模型
- 步骤 2:将 UML 模型转换为 Fabric 内容存档
- 步骤 3:为项目创建 Fabric 构件
- 步骤 4:将自定义角色导入项目
创建 Fabric 核心模型涉及到在 Software Architect 中创建新的 UML 模型,其中包含诸如通道、角色和策略断言等 Fabric 元素。这些与本体构造型相结合的模型元素将转换为 Web 本体语言(Web Ontology Language,OWL)构造,然后可以将这些构造导入 Fabric Web 工具。然后开发人员可以在 Rational Software Architect Composition Studio 中使用这些导入的断言、通道和角色对业务策略建模,将通道和角色分配到业务服务,等等。在本文中,我们将重点关注如何扩展角色。
- 通过完成以下步骤,创建一个名为 FabricRoleExtProject 的新 UML 项目和一个名为 FabricRoleExtModel 的模型,该模型引用 Fabric-Model-Stub 和 wbsf_profile:
- 在 Software Architect 中,选择 File => New => Project,如图 1 所示。
图 1. 选择新建项目 - 选择 UML Project 并单击 Next,如图 2 所示。
图 2. 选择 UML 项目 - 指定 FabricRoleExtProject 作为项目名称,然后单击 Next。
- 指定 FabricRoleExtModel 作为模型名称,然后单击 Next。
- 添加对 Fabric-Model-Stubs 的引用,然后单击 Finish,如图 3 所示。
图 3. 添加对 Fabric-Model-Stubs 的引用
- 在 Software Architect 中,选择 File => New => Project,如图 1 所示。
- 通过完成以下步骤,添加 Fabric 核心本体概要:
- 选择 FabricRoleExtModel 并单击 Details 选项卡,如图 4 所示。如果接收到警告消息,请将其忽略。
图 4. FabricRoleExtModel 属性 - 单击 Applied Profiles 部分中的 Add。
- 在 Select Profile 对话框中,选择 Fabric Core Ontology Profile,然后单击 OK,如图 5 所示。
图 5. 选择所应用的概要 - 保存项目。
- 选择 FabricRoleExtModel 并单击 Details 选项卡,如图 4 所示。如果接收到警告消息,请将其忽略。
- 要将 XSDDataTypes 模型库添加到 FabricRoleExtProject,请执行以下操作:
- 选择 FabricRoleExtModel 并单击 Details 选项卡。
- 单击 Model Libraries 中的 Add。
- 在 Deployed Library 下面,选择 XSDDataTypes 并单击 OK 以将模型库添加到 FabricRoleExtProject,如图 6 所示。
图 6. 将 XSDDataTypes 库添加到 FabricRoleExtProject - 保存项目。
- 完成以下步骤创建一个名为 FabricRoleExtPkg 的新包,其构造型为 fabricNamescape:
- 右键单击 FabricRoleExtModel 并选择 Add UML => Package,如图 7 所示。
图 7. 将新的包添加到模型 - 指定 FabricRoleExtPkg 作为名称。
- 选择 FabricRoleExtPkg 并单击 Properties 选项卡。
- 选择 Stereotypes => Apply Stereotypes,选中 fabricNamescape,然后单击 OK,如图 8 所示。
图 8. 将新的包添加到模型 - 保存项目。
- 右键单击 FabricRoleExtModel 并选择 Add UML => Package,如图 7 所示。
- 将以下属性添加到 fabricNamespace 构造型,如图 9 所示:
- directory:指定应该用于保存转换 OWL 的目录。在此例中,该目录为 Fabricroleextensiondir。
- uri:指定命名空间 URI。此 uri 应该与这些角色所属的 Fabric 项目的模式命名空间匹配。在此例中,该 URI 为 http://www.ibm.com/industry/poc/role/extension。
图 9. 指定构造型属性 - 完成以下步骤在该包中创建一个名为 CheckinClerkRole 的新类:
- 选择 Fabric-Model-Stubs => Models => Subscriber ntology => Role。
- 将 Role OWL 类拖到 FabricRoleExtMode => FabricRoleExtPkg => Main 窗口的模型窗口中,如图 10 所示。
图 10. 将角色拖到模型 - 通过选择 Add UML => Class 创建一个新的 OWL 类,如图 11 所示,并将其命名为 AcmeOrg。
图 11. 创建新的 OWL 类 - 将 OWLclass 构造型添加到 AcmeOrg,如图 12 所示。
图 12. 将 OWLclass 构造型添加到 AcmeOrg - 创建 OWLclass 角色的泛化,如图 13 所示。
图 13. 创建泛化
- 创建另一个名为 CheckinClerkRole 的类,其构造型为 OWLclass,并带有 AcmeOrg 的泛化。
- 重复步骤 7 添加角色 Physician 和 Patient。完成后,FabricRoleExtModel UML 模型应该与图 14 所示类似。
图 14. 自定义角色的 UML 模型
注意:如果据以调整 Fabric 业务模型的业务领域不需要像我们的示例中那样在主要组或部门下面对角色分组,您可以直接将自定义角色与 Fabric 模型中的 Role OWL 类相关联,如图 15 所示。
图 15. 不对角色分组的 UML 模型
现在您已在模型中添加了所有的角色,您需要将 UML 模型转换为 Fabric 内容存档(以下称为 FCA)文件,以将其导入 Fabric。为此,请完成以下操作步骤:
- 在 Software Architect 中,选择 Modeling => Transform. => New Configuration,如图 16 所示。
图 16. 创建新的配置 - 在 New Transformation Configuration 对话框中,如图 17 所示,请指定 FabricRoleExtTransformation 作为名称,并从列表中选择 OWL Transformation。
- 单击 Finish。
图 17. 创建新的转换 - 同时选择 FabricRoleExtModel 作为源和目标,如图 18 所示,然后单击 Finish。
图 18. 指定源和目标 - 要执行转换,请右键单击 FabricRoleExtTransformation 并选择 Transform. => OWL Transformation。
在转换时,生成的 OWL 文件将在 Fabricroleextensiondir 文件夹中的 FabricOWLProject 中创建,此文件夹是您在 FabricRoleExtPkg => fabricNamespace 构造型属性中为 fabricNamespace 构造型的 directory 属性指定的目录。
生成的 OWL 应该类似如下:
<?xml version="1.0"?>
要创建将拥有业务服务目录中的自定义角色的 Fabric 本体扩展,请执行以下步骤:
- 作为管理员登录位于 http:///fabric 的管理控制台。
- 选择 Subscriber Manager => Manage Subscribers 并创建一个名为 ACME 的新组织。如果希望将此项目与另一个组织相关联,您可以跳过此步骤。
- 创建一个名为 FabricRoleExt 的新项目,其类型为 Ontology Extension,如图 19 所示,并将其与 ACME 组织或其他所需的组织关联起来。
图 19. 创建 FabricRoleExt 项目 - 将您在上面添加到包的相同模式命名空间 (http://www.ibm.com/industry/poc/role/extension) 添加到项目,如图 20 所示。
图 20. 创建 FabricRoleExt 项目 - 选择 Import/Export 并单击 Export by project 选项卡。
- 选择 Full Content 作为 Content Type,选择 FabricRoleExt 作为 Project,选中 RoleExtSchema 命名空间,然后单击 Export to File,如图 21 所示,以将生成的 FabricRoleExt-owl.zip 保存到硬盘驱动器。
图 21. 导出项目 - 将 FabricRoleExt-owl.zip 文件的内容解压缩到某个临时位置。
- 在 /FabricOWLProject/Fabricroleextensiondir 中查找 OWL 转换文件 FabricRoleExtPkg.owl。
- 将 FabricRoleExtPkg.owl 复制到在步骤 7 中指定的临时位置。
- 从临时位置删除 http_www.ibm.com_industry_poc_role_extension.owl。
- 将 FabricRoleExtPkg.owl 重命名为 http_www.ibm.com_industry_poc_role_extension.owl。
- 将 content.xml 和 http_www.ibm.com_industry_poc_role_extension.owl 压缩到一个名为 FabricRoleImportExt.zip 的压缩文件中。
完成以下步骤将该 zip 文件导入 Fabric 业务服务目录:
- 作为管理员登录位于 http:///fabric 的管理控制台。
- 选择 Governance Manager => Import/Export。
- 将 FabricRoleImportExt.zip 文件导入 Fabric 业务服务目录,如图 22 所示。
图 22. 将角色导入 Fabric - 确保文件成功导入,如图 23 所示。
图 23. 文件导入成功 - 导入文件以后,复制 Composition Studio 中的目录。现在可以使用新的角色来构建业务策略和断言了。
按照本文中的步骤操作,您应该已经成功地创建并导入了自定义角色,Fabric 管理员可以围绕这些角色构建策略和断言了。管理员还可以使用 Fabric Subscriber Manager 向这些自定义角色订阅服务。
- 通过完成以下步骤,创建一个名为 FabricRoleExtProject 的新 UML 项目和一个名为 FabricRoleExtModel 的模型,该模型引用 Fabric-Model-Stub 和 wbsf_profile:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-594340/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14789789/viewspace-594340/