为了通过 SOA 架起业务与 IT 之间沟通的桥梁, Open Group 发布了一项新技术标准—— SOA 本体——旨在更好地定义 SOA 的相关概念、术语与语义。该标准
……从业务和技术层面定义了 SOA 的相关概念、术语和语义,目标是: - 为特定领域的进一步工作建立基础
- 在业务和技术人员之间架设沟通的桥梁
- 加强业务和技术社区对 SOA 概念的理解
- 提供一种清晰且准确地描述问题和机会的方式,以促进相互之间的理解。
本体的两个核心概念是系统和元素,其中:
元素是特定的抽象级别上不可拆分的不透明实体。元素有着清晰定义的边界。
而
系统是由其他事物构成的有组织的集合。系统中的具体事物就是元素的实例,实例为系统所用。
两个概念都是通用的,它们可用于描述任意的实现方式,也可描述通用概念,系统包含元素,系统又能以层级的形式组合(由系统组成的系统)。域和域之间的差别在于其中所包含的系统和元素的具体含义的不同。
本体的另一核心概念是服务。它是 SOA 的基础,并且一直用于 SOA 系统的描述与实现的实践当中。
服务是对具有特定产出的可重复活动的逻辑描述。它是自包含的,对使用者而言它是一个“黑盒子”。
在定义服务时本体省略了通用的术语“业务”,标准中有这样一段描述:
……业务的概念因不同的视角而异——例如,在某人看来是 IT 概念,在另一人眼中却是业务(IT 的业务)。本体中定义的服务与传统意概念上的业务域或 IT 域是不相干的。
尽管在本体中服务是作为元素的子类而定义的,但是它也提到,上层类别(如系统)的实例提供的能力也可视为服务。
在本体中,与服务相关的其他上层结构有服务契约(serviceContract)、服务接口(serviceInterface)和信息类型(informationType)。
服务契约定义了交互参与者(服务提供者与服务消费者)必须(直接或间接)达成一致的术语、条件和交互规则。在交互过程中,服务契约与所有参与者进行绑定,包括服务本身和为特定的交互活动提供服务的元素。
它描述了正确使用服务所需的具体协议。它可能来自准确描述的服务功能需求,也可能产生于希望规范服务使用的愿望。
服务接口定义了其他元素与服务交互和交换信息的方式。
良好定义的服务接口使得与服务的交互非常简单,能使其他元素有条理地使用服务。服务接口告知其他元素如何向服务发送信息或从服务获取信息。 与服务之间的特殊信息交换是通过信息类型(informationType)而定义的。
SOA 的一个主要优势是服务的可组合性。SOA 的该属性由两个本体概念定义——组合和服务组合(serviceComposition)。
组合的定义是——为实现特定目标而将一组事物装配起来。SOA 本体将组合定义为系统的子类,所以,它强调:组合是一个系统,而系统不一定是组合。它还进一步区分了几种组合模式,譬如适配组合模式(Orchestration Composition Pattern)、编排组合模式(Choreography Composition Pattern)和协作组合模式(Collaboration Composition Pattern)。
下面是组合的特例:
……服务组合(serviceComposition),即将一组服务装配起来从而形成一个新的、粗粒度更大的服务。
最后,本体将事件也加入到 SOA 概念的基础范畴。
事件、发出事件或响应事件的元素,它们任何事件系统的重要内容。事实上,SOA 系统经常需要发出(并接收)事件。
标准的发布引起了 SOA 实施者的极大兴趣。 Dana Gardner 认为:
SOA 本体技术标准整合了不同的架构、工程、业务和市场域,为业务和技术人员提供了探讨问题和机会的通用术语及概念映射。它提供的一致框架可随着 SOA 项目的发展而重复使用,它还为特定领域的深入实践提供了基础。
[本体] 使得关键 SOA 概念易于阅读和理解,更重要的是,它提供了一组企业内 / 间一致认可的定义和关键概念的认识。任何架构师,若要与(企业内,或与企业外的厂商,供应商的)IT、业务、市场人员有效沟通,“使用同一语言交流”是其中关键。
当前枝繁叶茂的 SOA 术语有害于 SOA。该项 Open Group 的新标准试图将它们汇拢并有效地组织起来,从而建立一套通用的 SOA 语言。通用语言有助于人们问出正确的问题、清晰无误地解读问题的答案。
查看英文原文: The Open Group Releases a New Technical Standard - SOA Ontology
评论