基于公共信息模型标准设计一个信息和服务定义集成策略

使用 Rational Software Architect 创建符合(Common Information Model,IEC CIM)标准的 SOA 组件

IBM Rational Software Architect 的用户都熟悉其 UML 建模功能,以及将模型转换为其他域模型(包括 Java、XSD 和 WSDL)的功能。然而,在涉及到使用能源行业信息模型,以及将模型转换成可以直接在 SOA 消息基础架构中使用的明确消息和服务定义的时候,几乎没有这方面的指南。本文将介绍一个流程以及 Rational Software Architect 扩展的使用方法,这些扩展使用了国际电工委员会的公共信息模型(Common Information Model,IEC CIM)来指导信息和服务的定义。

Darrell R. Schrag, Jr., 高级顾问专家, IBM

作者照片Darrell Schrag 自 1996 年以来一直致力于 Rational 软件。他擅长于模型驱动的开发,以及扩展 Rational Software Architect 建模平台,并一直作为 Rational Services 组织成员为客户提供大量软件部署。Darrell 也曾在 TMForum 和 IEC CIM Users Group 活动中代表 Rational。



2012 年 4 月 09 日

不断发展的公用事业价值链

电力公用事业公司正在经历大规模革新,迎接智能电网技术的不断变化的格局。这些变化已影响深入到了至今变化仍比较缓慢的 IT 基础架构。例如,如果将数千个新的智能电表添加到某公用事业网络,那么随之而来的挑战将是整合新的业务流程,以利用大量的仪表数据。随着信息流的急剧增加和公用事业的发展,根据国际电工委员会的公共信息模型(IEC CIM)标准制定的设计良好的集成策略将体现其越来越高的价值。

图 1. 革新性的变化
传统的能源价值链与革新后的能源价值链的比较

IBM® Rational® Software Architect 的用户都熟悉其 UML 建模功能,以及将模型转换为其他域的功能,这些域包括 Java、XML 架构定义语言(XSD)和 Web 服务描述语言(WSDL)。然而,在涉及到使用 IEC-CIM 等行业信息模型,以及将模型转换成可以直接在面向服务架构(SOA)消息基础架构中使用的明确消息和服务定义的时候,几乎没有这方面的指南。本文将介绍一个使用 IEC CIM 来指导消息和服务定义的流程。建立用来为企业保存所有服务定义和消息的模型之后,该模型将成为企业发展过程中可以参考的一项宝贵资产。

除了这个流程之外,我们还开发了 Rational Software Architect 的 CIM 扩展,以便为您提供帮助。这些扩展使您能够更轻松地遵循流程,并自动化可能很费时的任务。Rational Software Architect 的 CIM 扩展是以服务资产的形式提供的。请联系您的 IBM Rational 代表,了解有关获得工具包的详细信息。


CIM 的模型管理

在 Rational Software Architect 中使用 CIM 的第一步是将模型转换为 Rational Software Architect 格式。这可以通过多种方法实现,根据您所采用的路线,可能会出现不同的结果。然而,完成该工作的最简单方式是,请您的 IBM Rational 技术代表帮助您获取 Rational Software Architect 格式的特定 CIM 版本。

注意:
对象管理组(OMG)正在执行改善建模工具之间的 UML 交换的重要工作。请参阅 OMG 的 Model Interchange Working Group(模型交换工作组)Diagram Definition Finalization Team(图形定义定型组),以了解有关的详细信息。我们希望所有建模工具都能采用这些标准,在不久的将来,我们就可以将 CIM 轻松迁移到所有相关供应商的建模解决方案。

现在您已经有一个 Rational Software Architect 版本的模型,您必须制定一个如何使用该模型的策略。请在开发您的 CIM 管理策略时牢记以下细节:

  • 不应改变 CIM User Group 交付的架构完整性和模型结构。换句话说,CIM 是一个参考模型,应该以相应的方式使用它。当您不了解修改所带来的的影响时,应该制止重构模型或删除建模元素的冲动做法。
  • 可能会要求对模型本身进行扩展。在组织内部的业务流程是独特的,所以您几乎总是需要利用更多信息来扩展结构。所增加的部分应接受到管理并被捕获,让您对自定义的 IEC-CIM 扩展有易于理解和完整记录的审计线索。您的扩展也可以提交给 CIM User Group,使其有可能包含在未来的模型版本中。
  • 必须建立一个策略来处理由 CIM User Group 发布的新版本 CIM。当发布新模型时,您怎么能确保自己了解其变更以及对您的架构的影响呢?

首先,我建议您保存一个 CIM User Group 交付的 CIM 完整副本。通常需要检查原始模型,比较和对比原始 CIM 结构的架构解决方案。如果您在自己的 Rational Software Architect 工作区中保存了这个模型,您就可以使用多种 diff 工具来比较模型。

第二个模型将用于捕获您对 CIM 标准进行的扩展。使用第二个模型,您可以轻松比较扩展的 CIM 与原始 CIM,指出您添加到原始 CIM 上的增量。Rational Software Architect 的 CIM 扩展提供了一个基于电子表格的简单 diff 功能,使您可以获得一个说明模型差异的简单表格。

当然,CIM 所需的扩展是根据分析来确定的,您必须通过分析,才能确定您的架构接口和消息。您的选择有很多,如用例分析或业务流程建模,但本文并没有规定任何分析技术。无论使用哪种技术,最终都会得出一系列架构组件的接口,以及指定这些组件之间的消息流量的数据定义。Rational Software Architect 自带服务和 XSD 建模功能,您可以使用这些它们来捕获信息,并使用这些信息创建 WSDL 和 XSD 文档。

图 2. 建议的模型结构
CIM、扩展的 CIM 和服务模型

模型差异化

Rational Software Architect 有一种模型差异(diff)实用工具,也叫比较工具,该工具是其 diff/merge 功能的重要组成部分。它会显示两个模型之间的具体差异,甚至深入显示图形增量。在使用您需要的扩展来为您的组织扩展 CIM 时,Rational Software Architect 中的 diff 实用工具会帮助您了解过程中的变化。如果您需要使用基于电子表格的 diff 功能,仅对模型结构进行互相比较(包、类、属性和关联),那么 Rational Software Architect 的 CIM 扩展提供的就是这种简单功能。

图 3. 包含合并的结果的结构性变更列表,即变更的可视化
Rational Software Architect 模型 diff 输出视图

图 3 的大图

图 4. CIM 扩展模型的 diff 输出
电子表格列出元素、类型、属性或文字

图 4 的大图

扩展 CIM

您的架构分析将确定您在履行应用程序集成场景中所需的消息类型和消息类型元素。毫无疑问,您需要扩展已发布的 CIM。Rational Software Architect 中的 CIM 扩展可以提供帮助。

检查 CIM 架构

作为您的架构分析的一部分,需要检查 CIM,以了解 CIM 抽象与 CIM 之间的关系。您可以使用 Rational Software Architect 查询模型,并生成图表来帮助了解模型。其中一个这样的功能是 Browse 图。

Browse 图提供一个类似浏览器的界面,使您可以检查一个元素,并有选择地确定显示什么类型的相关元素。您可以在不同层次的深度和不同的关系类型中跟踪关系,以了解元素的范围(参见图 5)。此实用工具为您提供一种快速且简单的模型浏览方式。

图 5. Rational Software Architect 的 Browse 图
Browse 图输出的截屏

Rational Software Architect 的 CIM 扩展还提供一个快速的图表创建器。上下文菜单选项使您可以选择一个包,并拥有一个类图,描绘已创建的包中的所有类。该扩展还提供了一个建模首选项,因此您还可以确定是否显示关系。

这些功能(以及其他功能)提供了一种询问 CIM 的方式,以便了解由已发布的 CIM 所指定的模型元素和 CIM 之间的关系。当您确定整合消息定义所需要的数据范围时,该信息非常重要。

自动化模型扩展

为了尝试遵循维护 CIM 完整性和结构的原则,Rational Software Architect 的 CIM 扩展提供了一些自动化来帮助您避免改变 CIM 结构,并自动标记模型的任何增补。为了做到这一点,CIM 扩展提供了一个名为“Information Model Extend”的模型概要文件。在将该概要文件应用于某个模型时,该模型可以支持新功能。

首先,添加到的模型任何新元素都被自动标记为 «Extend» 构造型(stereotype)。这样做可以确保已标记了添加到扩展 CIM 的所有新建模结构(如图 2 中的建议模型结构所示),使它们易于识别。

其次,概要文件阻止您删除任何没有 «Extend» 构造型的模型元素。这只是​​一个防止简单删除已发布的 CIM 所提供的建模元素的保障。如果您已经确定您需要在已发布的 CIM 中删除所提供的某个元素,您可以轻松地应用构造型,然后删除该元素。

管理模型扩展

当您构建 CIM 扩展时,会有许多新的类、属性和关联被添加到模型中。重要的是要制定一项策略,指定扩展 CIM 的程序。从其他行业借鉴过来的这一策略是值得一提的一个策略:

TeleManagement Forum,也被称为 TMForum(相关链接参见 参考资料)为电信行业提供了一系列模型。它们提供的共享信息/数据(SID)模型在用途和功能上实际上等同于 CIM。

扩展 SID 模型的 TMForum 指引被总结为以下三点:

  1. 创建一个新的包,用它于保存扩展。这将保留已发布的 CIM 包结构,并确保所有的扩展都在独立的新包中。
  2. 创建子类,添加属性和关联。不需要对现有 CIM 类添加新的属性或关联,首先要为您打算扩展的类创建一个新的子类,然后将您的属性添加给它。
  3. 在新包中创建一个实体。

虽然您并不需要遵循这些指引,但它有助于对您所做的变更以及随后发布的 CIM 中的变更进行比较。无论您遵循什么策略,Rational Software Architect 的 CIM 扩展中的扩展管理功能对您都将是有益的。

首先,工具包的着色插件可以帮助您建立规则,自动用不同颜色标记扩展 CIM 中的不同类。例如,您可以指定,标记为 «Extend» 构造型的所有元素在任何图形上都是用特定颜色显示的。这为所有扩展元素提供了可视指示,使读者能够在图上快速识别它们。

图 6. 构造型颜色规则
类图的截屏,显示用颜色标记的类

此外,该工具包具有一个扩展报告机制。该报告同样是非常简单的。它只是将带有 «Extend» 构造型的所有元素转储到一个电子表格文件。伴随 «Extend» 构造型的还有一个名为 "comments" 的构造型属性。它用于将任意类型的自由形式文本信息添加到所伴随的扩展元素。该构造型属性在 Extensions 报告中。

图 7. Extensions 报告
Element、Type、Details、Keywords、Comments 列

图 7 的大图

图 8. «Extend» 构造型的 comments 属性示例
构造型的 comments 属性的截屏

创建基于 CIM 的消息

如前所述,有许多技术可以使用模型来分析集成场景,以确定适当的服务和相应的消息。这些技术都超出了本文的范围。然而,在某些时候,您将针对要成为某个特定消息的一部分的元素制定决策。您的分析就会发现所有必要的改进,并且您会将它们添加到您的扩展 CIM。

Rational Software Architect 配备的内置工具可以从 UML 生成 XSD。然而,直接从扩展 CIM 生成 XSD 可能并不可取。如果您使用 Browse diagram 快速检查 CIM,并开始浏览关系范围,只需几层,您就会很快看到 CIM 广泛的关系范围。并且,大多数关系被指定为可选(多重性下限为零,0 ..1)。您需要确定如何对待关系的多重性。此外,作为类的组成部分的许多属性在某些场景中可能并不需要。

有许多设计决策都以特定的集成场景为基础,以便产生最高效、最具体的消息负载定义。这将有助于提高吞吐量(通过您采用的任何中间件或集成策略),并减少消息负载处理。

CIM 扩展信息模型转换

为了隔离适用于您的特定消息场景的元素,Rational Software Architect 的 CIM 扩展提供了一个模式转换,将选定的各种元素复制到所建议建模结构中的第三个模型。为了选择在转换中需包含的 CIM 元素,还提供了一个模型概要文件和一组构造型。这完成了以下两件事情。

  • 首先,同一元素对于不同的消息定义可能具有不同用途。引导消息数据需求的每个场景都可以使用相同的 CIM 元素的不同方面。将元素移动到下游模型并在那里操作它们,该功能让您可以保留扩展 CIM。
  • 其次,可以将 XSD 和 SoaML(面向服务架构建模语言)概要文件应用于服务模型,同样可以保留扩展 CIM 模型。将适当的 SoaML 和 XSD 构造型应用到服务模型中的元素。

此外,服务模式的结构和组织通常与信息模型(如 CIM)有很大的区别。所有这些因素都会影响创建转换的决策,该转换将选定的元素将移动到下游模型。

让我们更详细地查看扩展 CIM 元素的选择过程。首先,可能有许多不同的场景需要使用来自扩展 CIM 的不同元素。此外,当您将选定的元素移动到后续的模型时,您可能希望使那些选定的元素保持独立。因此,Rational Software Architect 的标记模型 特性增加了一个宝贵的功能,将构造型应用程序从模型本身分离出来。您可以按需保持多个标记模型,可以将它们应用于相同的目标模式。这种关注点的分离允许多个选择操作同时进行。(如欲了解有关的更多信息,请参阅参考资料中 Rational Software Architect Information Center 的“标记模式”部分的链接。)图 9 中的截屏使用一个标记模型向扩展 CIM 模型阐释了 "Information Model Select" 模型概要文件的应用程序。请注意,扩展 CIM 显示的是 IMExtend 概要文件,而不是 IMSelect 概要文件。这是因为 IMSelect 概要文件应用程序已被外部化为标记模型。因此,任何来自 IMSelect 概要文件的构造型应用程序都将在标记模型中被捕获,而不是在扩展 CIM 中被捕获。您可以有捕获不同的选择的多个标记模型。

图 9. 标记模型
在 Project Explorer 中的标记模型示例

其实有两种选择构造型:«Select» 和 «SelectAll»。

  • «Select» 可以应用于任何类、枚举或属性。转换将处理带有这个构造型的任何项目。
  • «SelectAll» 构造型可以应用于类,它表示该转换还应该兼顾该类的所有周边元素。

您可以通过元素的 Properties 视图以标准方式应用构造型。或者您可以用鼠标右键单击 Project Explorer 中或图中的一个元素,并在 Information Model 上下文菜单中为该元素选择 SelectSelectAll

将元素移动到服务模型的转换也尝试使您不必找到选定的 CIM 元素的所有相关元素。例如,让我们来看看 IEC61968 Metering 包中的 MeterReading 类。

请注意,它实际上与其他类有六个关联,其中一个属性是 DateTimeInterval 类型,它是 IdentifiedObject 元素的一个子类。您不必找到并选择每一个 MeterReading 的相关元素,您只需要将 «SelectAll» 构造型应用于 MeterReading 即可。转换将 «SelectAll» 解释为一个指令,查找选定类的闭合元素。因此,它将根据关联、属性类型和泛化关系包括 MeterReading 的所有相关类。然而,带过来的所有相关元素都只用作类,不包括相关元素的闭合。如果您想从闭合元素获得更多数据,则必须对它们也应用适当的 «Select» 构造型。

图 10. «SelectAll» 闭合
屏幕显示与 MeterReading 相关的所有类

图 10 的大图

«Select» 构造型告诉转换只提取选定的元素。例如,如果您 «Select» 单个元素,那么将只获得选定的类。类或相关类的所有属性都不会包括在转换中。

选择要包含在转换中的多个元素,这应该是一个迭代过程。当您 «Select» 或 «SelectAll» 多个 CIM 元素,并执行转换时,您可以观察被转换的元素,然后用更多或更少的选定元素来重复该过程。在某个时刻,您应该拥有在您的特定场景中所需要的正确元素集。此时,您必须制定一些服务模型的设计决策,尤其是使消息定义与您想要的结果一致。

执行转换

执行 Information Select 转换与任何其他 Rational Software Architect 的转换一样:您要创建一个转换配置,选择 Information Model Select 转换,并包括源和目标模型。所有转换的元素都被移动到一个在目标模型的根下创建的包中。CIM 的结构基于组织性原因,但通常导致消息和服务建模元素不遵循相同的模型结构。通过将元素转换到一个包中,您可以根据服务模型的组织方式,按需要将它们移动到模型中的其他位置。在转换配置中可以指定目标包的名称。此外,转换可以使尝试处理不可导航的关联。默认情况下,在已发布的 CIM 中,会将关联创建为不可导航的。然而,转换一般不会找到不可导航的关联,因为如果关联是不可导航的,那么选定的元素并不知道这些关联的存在。如果您希望转换能够找到不可导航的关联并处理它们,那么您可以在转换配置中说明。

还有两个其他转换配置属性,它们使您可以指定如何处理不可导航的关联和目标包的名称,如图 11 所示。

图 11. Information Model Select 转换配置属性
屏幕显示了 Property 和 Value 列

作为一个例子,我们只将 «SelectAll» 构造型应用于 MeterReading 来运行转换。图 12 显示了结果。请注意,所有 MeterReading 的属性都已获得,包括与除了一个属性之外的所有属性相对应的关联。并且所有相关的类都存在,包括所有其他关联端、valuesInterval 属性类型(DateTimeInterval)以及超类(IdentifiedObject)。另外,请注意,因为闭合而被包括的类,并不包括其闭合。例如,MeterAsset 被包括在内,因为它是某个关联的另一端。不过,如果您查看 MeterAsset,就会发现它惟一的属性是表示双向关联的另一端角色的属性。没有其他属性被包括在内。

接下来,请注意,这里还提供了每个类的跟踪关系,跟踪关系提供了一个跟踪链接,可回溯到来自源模型的原始元素。如果为已转换的每个元素创建可以回溯到其原始 CIM 元素的跟踪关系,那么您便可以找到它的源。

最后,请注意,所有被转换的元素都位于 IMSelect 包中,在转换配置中,该包被指定为目标包。

图 12. 转换结果
结果转换模型的截屏

还有另一个构造型可以应用到代表关系的角色端的属性。您可以将 «Mandatory» 构造型应用于某个属性,这将迫使转换确保关联的多重性的下限值为 1(一),而不是 0(零),从而使关系变成必选项,而不是可选项。图 13 显示了 «Mandatory» 属性,该属性在完成转换后从 0..* 变成 1..*。

图 13. 源模型 «Mandatory» 属性从 0..* 更改为 1..*
使用 Madatory 构造型的结果截屏

生成 XSD 和 WSDL

当您将候选元素集以及它们的属性和关系转换为服务模型后,您需要检查每一个元素、属性和关系,并确定您在这个特定的场景中的真正目标。假设您的目标是到将信息负载保持在最低限度,那么以下是您要检查的几件事情:

超类
在一般情况下,信息模型在创建继承层次结构方面做得很好,可以确保最大限度地减少跨不同类的数据复制。虽然这是信息模型的常见用途,但您也可以选择针对单个信息扁平化这些层次。
 
关系多重性
通常情况下,信息模型将多重性的细化工作留给设计师。多重性保持非常普遍,通常假设关系的双方都知道对方(双向,或在 CIM 的情况下,非定向)。您必须检查每一个关联,并根据您的特定场景需求,通过将关联减少为一个方向来确定正确的多样性。
 
范围
当您继续跟踪相关的元素时,检查 CIM 并快速确定​​元素关系有多个层次,这很容易。在某些时候,您将需要限制相关的信息,将消息负载保持在可管理的数量。当为转换选择元素时可以解决这个问题,但是,当您进一步检查您的场景时,您可能需要削减更多消息。

XSD 建模

对 Rational Software Architect 中包括的 UML 到 XSD 转换的所有细节进行介绍已超出本文的范围。请阅读“转换 UML 模型和 XSD 架构文件”的说明(参见 参考资料 中的链接),以了解有关的更多信息。此外,请参阅参考资料中的引文,找到有用的 IBM developerWorks 文章。为了对 XSD 进行正确建模,应该将 XSD Transformation Profile 应该应用于服务模型,并且应包括 XSD Data Types 参考模型。

图 14 是使用 XSD 构造型在 Rational Software Architect 中建模的 MeterReading CIM 第 9 部分消息的一个示例。请注意 XSD 转换概要文件所提供的各种构造型。您还可以使用嵌入式类型和一个属性,该属性指出应将它作为一个匿名类型进行处理。多重性值表示上限和下限。这也是 «attributes» 的一个构造型。在大多数情况下,您可以建模要建立的任何 XSD 样式。反向(XSD 到 UML)的转换也作为 Rational Software Architect 的一部分提供。您可以在某些现有 XSD 上执行反向转换,以了解软件如何对其结构进行建模。

图 14. XSD 架构的 UML 建模的详细信息
XSD 构造型的 UML 元素,有 6 个编号

在截屏上添加的编号分别代表以下几点:

  1. «global» 元素 MeterReadings 是架构的顶层元素。
  2. «global» 元素类有一个相同名称的 «element» 属性,并且该属性是 «complexType» MeterReadings 的属性。
  3. «complexType» MeterReadings 的 «element» MeterReading 被定义为另一个 «complexType»。
  4. 可以将相同的元素复制为一个内联类,从而提供匿名元素。
  5. «simpleType» 限制通过一个 generalization 关系对标准 XSD 类型进行定义。
  6. 基数确定了上限和下限。

还有其他 XSD 构造型可以提供更多功能。通过使用内联类作为匿名元素,您可以使用 Rational Software Architect 以您喜欢的任何样式对 XSD 进行建模。

服务建模

充分发掘 Rational Software Architect 的 SoaML 概要文件和服务建模功能也超出了本文的范围。不过,请仔细查看下面的建模计量服务的示例。服务将拥有多种基于 CIM 元素使用消息负载的操作。

Rational Software Architect UML-to-WSDL 转换是 UML-to-XSD 转换的一个超集。因此,当您运行 UML-to-WSDL 转换时,您的模型中所包含的所有 XSD 构造型都将相应地获得转换。

首先,看看模型本身以及所应用的模型概要文件和库。所有型号都有 Default、Deployment 和 Standard 概要文件。在本例中,我们还添加了 XSD 和 WSDL 转换概要文件,以确保我们已准备好这些转换所需要的全部条件。SoaML 概要文件也被应用,所以我们可以对服务进行建模。此外,请注意 Semantic Annotations for WSDL(SAWSDL)概要文件,本文将在稍后讨论它,请注意,我们已经导入 XSDDataTypes 模型库。

图 15. 已应用的模型概要文件和库
已应用的模型概要文件和模型库清单

一个简单的模型结构如图 16 所示。消息负载数据包中包含了一系列在 UML 建模的 XSD 架构。您可以选择在另一个模型中保存这些 XSD 定义,并使用您喜欢的任意组织结构。但为了简便起见,本例将所有消息负载架构定义都保存在 Message Payloads 包中。还有另一个用于保存 Services 的包,这也是您定义服务的 UML 表示的地方。

图 16. 一个简单的服务模型结构
一个简单的服务模型结构的截屏

另外,请注意 Service Model 包中名为 IEC61968MessageStructure 的 XSD 架构。此架构定义标准的请求、响应和错误消息结构,如图 17 所示。

图 17. 标准的 IEC61968 消息结构
Project Explorer 视图中的 Service Model 结构

现在,让我们来看看一个服务的详细信息。图 18 显示了由构造型的 UML 元素所定义服务的主要元素。

图 18. 一个建模的服务
SoaML 构造型的 UML 元素,6 个编号

在截屏中所添加的编号分别指以下几点:

  1. «Participant» MeteringService 是顶层服务元素。它实际上是一个 UML 组件。UML-to-WSDL 转换期望将该元素作为已建模服务的根。
  2. «Service» 本身实际上是由该组件所定义的一个端口。请注意,它与绑定存在 «usage» 关系。
  3. 该绑定是一个 «SoapBinding» 构造型的 UML 组件。另外,请注意(以下是绑定的操作),该绑定有一个连接到服务接口的 «usage» 关系。
  4. 每个绑定操作都有一个连接到服务接口中其相应操作定义的 «usage» 关系。
  5. «ServiceInterface» 是一个 UML 接口,定义组成服务的详细操作。
  6. 每个操作定义其请求、响应和错误消息。

图 19 显示了如何定义消息参数的详细信息。在定义特定消息类型的服务定义中包含了一个架构。

图 19. 消息定义
XSD 构造型的消息元素的截屏

编号的元素分别表示以下几点:

  1. CreateEndDeviceControlsRequest 消息是作为一个 «global» 架构元素来输入的。
  2. «global» 元素是作为来自 IEC61968MessageStructure 架构的 RequestMessageType 来输入的。

服务建模扩展

所包含的 UML 到 WSDL 或 UML 到 XSD 的转换不支持 SAWSDL。然而,CIM 扩展提供了该功能。在图 16 中很明显有一个 SAWSDL 概要文件。此概要文件向每个 UML 包、类、接口、属性、操作和参数添加一个隐藏的和必需的 «sawsdl» 构造型。该构造型也包含三个属性:

  • loweringSchema
  • liftingSchema
  • modelReference

对于任何建模元素,您都可以在 Properties 视图中的 Advanced 选项卡上看到这些属性并对其值进行设置,如图 20 所示。在这里,您可以将 SAWSDL 属性设置为您所需的值(String),转换扩展将根据规范生成正确的输出。

此外,如果您将也包含 XSD «schema» 构造型的任何包的 SAWSDL modelReference 属性设置为根 URI,扩展将使用这个根 URI 并为其追加特定建模元素信息,使它成为架构中的每个元素的完整模型参考 URI。这使您可以针对整个架构只设置一次根 URI,并使每个元素都将根据标准的根接收到自己适当的模型参考 URI。

图 20. SAWSDL 构造型属性
SAWSDL 构造型属性的截屏

还有另一个转换扩展被应用到 UML-to-WSDL 和 UML-to-XSD 转换,让您可以从所生成的任何结果 XSD 文件中删除 UML 文档。您可以利用 Rational Software Architect 的文档功能全面记录您的所有建模元素。不过,某些用户并不希望将文档添加到生成的 XSD 输出中。默认情况下,UML-to-WSDL 转换为模型中包含文档的每个元素生成文档注释。扩展被包括在转换配置扩展选项卡中,使您可以选择这个扩展的应用程序。

图 21. 删除 XSD 文档转换扩展
删除文档的转换属性

结束语

Rational Software Architect 包含许多有价值的特性,您可以使用它们对信息建模并描述服务如何使用该信息。CIM 扩展提供了更多功能,使您可以从标准 IEC CIM 模型开始入手并生成服务模型,还可以从数据回溯到原始 CIM 定义和您定义的任何扩展。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


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


忘记密码?
更改您的密码

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

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

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

选择您的昵称



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

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

标有星(*)号的字段是必填字段。

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

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

 


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


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=809186
ArticleTitle=基于公共信息模型标准设计一个信息和服务定义集成策略
publish-date=04092012