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

2010 年 12 月 19 日

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

Heather Kreger 说

[本体] 使得关键 SOA 概念易于阅读和理解,更重要的是,它提供了一组企业内 / 间一致认可的定义和关键概念的认识。任何架构师,若要与(企业内,或与企业外的厂商,供应商的)IT、业务、市场人员有效沟通,“使用同一语言交流”是其中关键。

当前枝繁叶茂的 SOA 术语有害于 SOA。该项 Open Group 的新标准试图将它们汇拢并有效地组织起来,从而建立一套通用的 SOA 语言。通用语言有助于人们问出正确的问题、清晰无误地解读问题的答案。


查看英文原文: The Open Group Releases a New Technical Standard - SOA Ontology

2010 年 12 月 19 日 07:03923
用户头像

发布了 184 篇内容, 共 64.7 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

Redis常见问题--哈希冲突

是老郭啊

哈希表 Redis项目

Spring整合WebSocket

牛初九

JAVA,.NET项目开发难上手?Learun敏捷开发框架解君愁

Philips

Java 敏捷开发 .net core

OFD版式技术深度解读:卷首语

华宇法律科技

版式文档 OFD

看百度技术专家如何深入研究,重复使用的代码经验——设计模式

周老师

Java 编程 程序员 架构 设计模式

Vue+Springboot项目部署

ZRK

Vue 前后端分离 springboot 部署

数字人民币钱包短暂露面 金融诈骗伺机而起

CECBC区块链专委会

数字货币 钱包 货币

数字货币交易平台搭建,去中心化交易所开发方案

13530558032

合约跟单软件开发,合约跟单交易所系统开发搭建

13530558032

controller-manager的主动驱逐

Geek_f24c45

Kubernetes k8s

USDT承兑商软件开发,区块链支付系统源码搭建

13530558032

Redis 持久化--AOF

是老郭啊

redis redis持久化 aof

人民版权 获2020中国产业区块链创新奖

CECBC区块链专委会

区块链 产业发展 版权

数字资产钱包开发,深圳区块链理财钱包服务商

13530558032

易观CTO郭炜:如何构建企业级大数据Ad-hoc查询引擎

易观大数据

向云再出发:如数据般飞驰的内蒙古

脑极体

Python 到底是强类型语言,还是弱类型语言?

Python猫

Java c++ Python 编程

一文带你深扒ClassLoader内核,揭开它的神秘面纱!

我没有三颗心脏

Java ClassLoader java基础 类加载器

OpenKruise:Kubernetes 核心控制器 Plus

郭旭东

Kubernetes 云原生 OpenKruise

NodeX Component - 滴滴集团 Node.js 生态组件体系

滴滴普惠出行

Spring Boot中获取配置的一些方法

Geek_416be1

Spring Boot 2

消息队列之事务消息,RocketMQ 和 Kafka 是如何做的?

yes的练级攻略

分布式事务 RocketMQ kafak 事务消息

开发者的福音,LR.NET模块化代码生成器

Learun

Java 敏捷开发 .net core 计算机程序设计艺术 软件设计

开发任务管理分析报告

森林

深入了解 Rust 异步开发模式

lipi

rust 异步

LeetCode题解:155. 最小栈,单个栈同时存储最小值,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

Redis常见问题--单线程

是老郭啊

nosql redis 线程

数字化转型需要低/零代码平台的支持

代码制造者

低代码 数字化转型 企业信息化 零代码 编程开发

【译】Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases 上篇

花里胡哨

分布式数据库 异步 Amazon Aurora 日志驱动

10万奖金等你拿!2020第四届易观OLAP算法大赛火热开启

易观大数据

新基建迎来风口 新人才仍有缺口

CECBC区块链专委会

人工智能 新基建 数字化基础

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