Open Group发布新技术标准——SOA本体

为了通过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项目的发展而重复使用,它还为特定领域的深入实践提供了基础。