专家分析:从信息角度透视SOA设计

SOA设计技巧的主流是以企业IT资产的功能分解为中心的,常常是事后才想起对SOA信息方面进行处理。在实际中,SOA解决方案需要囊括一组广泛的设计考虑,反映出信息架构的最佳实践,以全面支持可伸缩的、一致的并且可重用的信息访问。在他们的新文章中,Brian Byrne、David McCarty、Guenter Sauter、Peter Worcester以及John Kling介绍了代表SOA设计中的信息透视图的一系列模式和能力。他们的方法保证了最佳的方式利用信息以支持SOA解决方案的技术目标和业务目标:

  • 服务可以跨整个企业重用。
  • 向消费者公开的业务数据是准确、完整和及时的。
  • 跨业务领域和技术层共享的数据具有共同的结构,对于所有参与方具有共同的含义。
  • 将企业的各个业务领域链接在一起的核心数据实体跨所有业务线保持一致和可信。
  • 企业能够从它的数据和数据系统获得最大的业务价值。

这篇文章定义了三个主要的SOA相关模式:

  • 通过业务术语表定义数据语义

任何成功的SOA都需要建立一个通用的容易访问的业务术语表,业务术语表定义与过程、服务和数据相关的术语。SOA实施人员在整理组织中公认的业务语言和缩写词时,常常发现术语存在不一致的地方。如果客户、渠道、收入等关键术语的定义不一致,就不可能实现与这些术语相关的服务。如果相关人员对服务的参数(即服务获得的数据集)的含义有不同的解释,服务的实现就不可能成功。关键在于,业务分析师和技术人员必须对SOA领域的所有方面(包括过程、服务和数据)使用的术语有共同的理解。业务术语表可以消除在描述核心业务概念时出现歧义的可能性,从而避免误解数据需求。业务术语表建立一个通用的词汇表来控制词汇的定义,从而消除误解。每个词汇的定义包含描述和其他元数据,还要确定它在分类体系中的位置。由专人负责术语的定义:他们帮助定义术语并支持对术语的管理。

  • 通过规范化建模定义数据结构

在设计服务时,一致的术语表是好的起点,但是仅有术语表还不够。还必须清楚地了解业务信息的结构。服务的输入和输出参数(即消息)常常不是单一数据类型那么简单。它们代表着复杂的实体及其关系定义。如果SOA架构师在设计公开的服务模型数据格式时使用规范化模型,那么可以大大改进SOA项目的开发时间和质量。过程、服务/消息和数据模型的规范化会加快设计速度,利用数据建模的规范化方针,避免不必要的转换。从而产生能够满足不同服务消费者需要的服务定义,因此可以减少重复的服务。规范化数据模型在数据层建立这种统一的格式,而规范化消息模型在服务层定义这种统一的格式。规范化数据模型和消息模型的模式将在本系列的后续文章中讨论。Industry Models提供一组过程、服务和数据模型,可以使用它们进行服务体系结构的分析和设计,确保跨建模领域的数据定义保持严格一致。它们定义对特定行业领域进行建模的最佳实践,并提供一个可扩展的框架,这样在添加更多服务时不必重新设计SOA。

  • 分析数据质量

如果考虑了上面描述的概念,设计师就可以让服务设计在模型和元数据工件之间保持高度的一致性。但是,这并不能够保证服务返回的数据质量是可接受的。数据即使满足它原来的存储库和应用程序的规则和约束,也不一定能够满足企业级的需求。在将数据通过SOA向企业范围公开时,在原来的应用程序中无关紧要的质量问题可能会变成很严重的问题。因此,问题就是:公开的数据的质量是否满足SOA项目的需求,以及如何有效地做出这一判断?建议的解决方案是在服务分析和设计期间进行数据质量评估。在对支持服务的源系统进行分类之后,就可以开始研究它们的数据质量问题。……应该检查数据是否符合相关的完整性规则。应该检查是否存在重复的数据,研究在数据匹配和聚合期间如何解决重复的数据。以这些分析为基础,可以采取适当的措施来确保服务的实现能够满足潜在服务消费者对数据精确性和含义的要求。

随着SOA成熟,SOA信息设计的问题变得越来越重要。SOA从业者开始认识到使用规范数据(相较于EAI里的规范数据)是构建可重用组合式服务而不会遭遇映射中介大杂烩的必要条件。