如何在SOA中实现语义互操作性

日期: 2012-10-22 来源:TechTarget中国 英文

  在面向服务体系结构(SOA)中,语义互操作性可确保服务使用者和提供者可以通过一致、灵活的方式交换数据,这种方式能满足许多非功能性的要求 (Non-Functional Requirement,NFR),如性能和伸缩性等,而不受所涉及的各种信息的限制。例如,帐单编制应用服务请求者需要获知客户余额“BALANCE”。同时,会计应用服务提供者提供名为“REMAINDER”的客户余额。实现语义互操作性的方法是,将帐单编制应用中的“BALANCE”映射到会计应用中的“REMAINDER”。

  语义互操作性是SOA中的一个重要体系结构特性,因为它使服务的使用者和提供者能够交换有意义的信息,然后遵照这些信息进行操作。它是 SOA 的基础。没有了语义,数据只是一串串没有任何意义的二进制字节。如果没有语义互操作性,服务使用者和提供者可能误解和破坏数据,最终给 SOA 和业务带来负面影响。

  广而言之,大多数信息集成都是对语义互操作性进行处理。问题在于,人们认为语义互操作性是理所当然的,并且很少在语义互操作性方面进行理性而明智的体系结构决策,因为语义解释、映射和转换通常与自主开发应用程序、企业应用程序集成 (Enterprise Application Integration,EAI) 和企业信息集成 (Enterprise Information Integration,EII) 联系在一起。因此,语义互操作性通常会在 SOA 的开发过程中被忽略。

  本文的目标是使应用程序架构师和数据架构师认识到语义和语义互操作性的重要性,以便在构建新的基于 SOA 的解决方案或者将现有系统迁移到 SOA 时能够进行合理的决策。要想理解语义互操作性,我们首先必须了解其背后的各种技术和方法,这些技术和方法统称为语义谱。此外,反模式可提醒我们避免犯错。模式和最佳实践则为我们指明了正确的方向。.我们将首先讨论语义谱,然后讨论语义互操作性的模式、反模式和最佳实践。

  语义谱

  语义谱 描述了用于创建越来越精确的数据定义的一系列技术和方法。需要在精确度与模糊度之间求得平衡——并非总是精确度越高越好——还需要考虑很多因素,如时间、成本和工作量等。

  为了定义数据元素,我们不仅需要考虑事物本身(数据实例),还需要考虑事物的定义和描述(元数据)。因此,语义谱同时覆盖了数据和元数据。它包括词汇表、控制词汇、数据词典、数据模型、分类法和维基百科中的本体。例如,“数据词典”和“数据模型”与元数据相关;而词汇表、控制词汇和分类法则与数据实例相关。本体描述则同时覆盖了这两方面。不过,有些人认为词汇表和分类法也属于元数据的范畴。本文将不讨论数据与元数据的具体区分。

  词汇表 是带有定义的术语列表。许多文档和书籍都在末尾列出了词汇表,以方便读者阅读相关内容。控制词汇 是特定方面的组织和团体人遵守的标准化术语列表。控制词汇的遵守可能是自愿的,也可能是强制性的。地区代码列表就是控制词汇。词汇表和控制词汇从开始出现书面语言就有了,通常被用作大众传播和语言框架的组成部分。

  20世纪实现数据数字化后,关系数据库被用作主要的数据持久性机制。数据词典 用于捕获不同数据元素的含义和表示形式,并就此进行交流,最常用于关系数据库。数据词典是一个重要的构件,它支持业务和 IT 社区之间进行有意义的交流。

  数据模型 描述数据元素的结构。从20世纪70年代开始,早在发明统一建模语言(Universal Modeling Language,UML)之前,关系数据库社区就已经使用实体关系(Entity-Relationship,ER)图表来改进交流和简化开发工作。

  为了应对日益复杂的异类数据库环境,人们意识到需要创建企业数据模型(Enterprise Data Model,EDM)。流行的观点认为 EDM 需要海量数据库来存储组织所处理的所有数据,但是事实上并非如此,EDM 仅仅是一个公共逻辑数据模型。它通常位于第二或第三范式。其他逻辑或物理数据模型(如 ESB、应用和数据仓库)都可以映射到这个公共逻辑数据模型。EDM 通常用作信息集成的参考模型,或者用作持久性数据库和数据仓库的基础。例如,IBM Insurance Information Warehouse (IIW) 中的企业模型就是一个 EDM 实现。EDM 允许支持数据企业视图,用以帮助降低数据冗余、提高数据质量以及加速项目的集成和新项目的开发。它还可以简化业务需求与数据模型之间的映射。

  企业分类法 用于组织一套标准化的术语、概念、目录和关键词。它被组织成一个层次结构,以表示术语和概念的隶属关系,通常与内容管理、知识管理和搜索技术关联。

  最后,根据 World Wide Web Consortium (W3C) 的说明,本体 定义用于描述和表示知识领域的术语。它指定有关领域的类(一般事物)的说明以及事物与属性(或特性)之间的关系。IEEE 下属的 Standard Upper Ontology Working Group 正在进行制定上层本体方面的工作,以支持数据互操作性、信息搜索和检索、自动推理和自然语言处理等计算机应用。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐