写点什么

意见:SOA 不需要公共信息模型

  • 2007-07-16
  • 本文字数:1351 字

    阅读完需:约 4 分钟

松耦合并不只是使用一个公共的语法和一些协议,它还涉及一组共享语义的创建和管理。本周, Dave Linthicum 提供了关于服务建设的一组推荐,它们集中于抽象层 VS. 公共模式的想法:

1)你应该首先面对数据,定义一个公共数据或抽象层,这样服务就不会与特定的模式绑定在一起,而且还能享受数据使用的乐趣。我不会象推动抽象层那样力推公共模式。

2)抽象或公共模型应该象其它组件一样被测试。

3)不要将过多的把精力放在努力适应数据模型上,而应把精力放在跨越各服务领域的协议上,利用模式映射层为将来提供选择,以及向下面的数据层提供机动性。

David 的经验显示,在设计服务接口时,依赖一组公共模式可能被证明是僵化的,因为“它阻碍了这些服务分别地演变”。

SOA 就是要创建能在不同的环境中被重用的资产,在设计时环境往往是未知的,最大化 SOA 的好处就是让尽可能多的消费者最大化重用你的服务。但是,认为消费者总是处于采纳提供者观点的位置,或提供者与消费者总是采纳相同观点,都是天真的。即使今天是真的,但是随着时间变化,消费者和提供者可能不会处于同时向新版本接口演变立场。

即使仲裁没有明确的出现在 W3C 的 Web 服务架构中,SOA 的实践者很早就系统地使用它来取得更高层次的松耦合,使消费者和提供者之间分别地演变。不论你使用哪一种仲裁机制:发布 / 订阅,编制、多态接口…它将总是导致从消费者模式到提供者模式的转换,以及反向转换。这些转换可能由协调器来执行,或假定在消费者或提供者服务容器内发生。

既然这些转换是不可避免的,那么问题来了,你如何使这种转换从设计和运行角度来看都尽可能没有痛苦?顺便提一句,如果你打算使用独立于提供者和消费者接口的公共信息模型,并仍想要得到松耦合,那么这将导致两次转换,还不算你仍需将消息格式转换成被提供者和消费者实现所能消费的数据集合。

迈向更具管理性转换的第一步,是捕获包含在你消息中的信息语义,并从这些语义派生消费者和提供者接口。Dave 称之为“抽象层”,其他人则称之为标准数据模型(canonical data model)本体(ontology)。在这个抽象层中,结构比起语义的正规化来说是次要的。这不是个新问题,David Webber,早在1998 就引入了业务编码的概念,用来正规化分级命名XML 格式并优雅地处理本地化。更近一些时候,UN/CEFACT 开发出了一套标准,帮助管理语义和数据格式:核心组件技术规范(Core Component Technical Specification);其中一个概念是“上下文(context)”,它可让你管理跨越8 维的模式公共部分(如,它可以帮助管理德国汽车工业中的购买订单和美国半导体工业中的购买订单间的共同体)。

语义必须在严格的治理过程下被精确地管理,并被测试(正如Dave 所指出的)。可追溯的人工实物,如服务接口定义或数据库模式,是成功开发本体的关键。

以下是在面向服务架构中关于使用本体的细节:

a) 服务接口需要从本体设计(使用它们自己的结构,但是利用并仅利用本体语义)

b) 对于反复无常的消费者和提供者,在服务接口和本体间尽早建立可追溯性,对于转换的设计和实现是非常有用的,并且如果它们是从相同的本体设计,一些转换可以是自动的或直接被推断。

如果你打算开始摆弄这些概念,那么可以试试斯坦福大学开发的 protégé本体编辑器

查看英文原文: Opinion: SOA doesn’t need a Common Information Model

2007-07-16 08:531106
用户头像

发布了 255 篇内容, 共 67.9 次阅读, 收获喜欢 10 次。

关注

评论

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

关于飞桨PaddlePaddle

飞桨PaddlePaddle

paddle 开源 飞桨

BI 仪表板/数据可视化大屏最全面的设计流程梳理

搞大屏的小北

需求分析 业务场景分析 BI 分析工具 可视化数据 BI 报表

舞台LED显示屏使用禁忌

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

如何用一套代码运行跨多操作系统应用

HarmonyOS开发者

HarmonyOS

巧用Maya轴心操作小技巧,工作事半功倍!

3DCAT实时渲染

Maya,渲染 Autodesk Maya

利用混沌工程提高微服务的弹性

NGINX开源社区

nginx 微服务架构 性能 企业号 2 月 PK 榜

怎么正确使用 NPS ?用对了才事半功倍

鼎道智联

运营 用户体验 用户推荐

下一朵云,会是谁

ToB行业头条

落地DevOps的三要素

老张

DevOps 软件工程 研发效能 交付质量

深圳双机热备软件厂商哪家好?咨询电话多少?

行云管家

高可用 系统故障 双机热备

YOLOv8来啦!YOLO内卷期模型怎么选?9+款AI硬件如何快速部署?深度解析

飞桨PaddlePaddle

paddle yolo 飞桨

云端智创 | 聚焦云剪辑核心,一文详述智能生产全链路

阿里云CloudImagine

云计算 视频云 智能媒体生产

4-业务架构师眼中的需求是什么?

涛哥 数字产品和业务架构

业务架构 业务需求

华为云MRS支持lakeformation能力,打造一站式湖仓,释放数据价值

华为云开发者联盟

大数据 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

火山引擎DataTester“智能发布”:覆盖产品研发、测试、上线全流程,一站式智能管理A/B实验

字节跳动数据平台

大数据 AB testing实战 企业号 2 月 PK 榜

关于Zebec生态的改进提案,以及即将上线的 Nautilus 链

股市老人

优化数仓业务视图:过滤条件传递

华为云开发者联盟

数据库 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

关于Zebec生态的改进提案,即将上线的 Nautilus 链

西柚子

前端线下面授培训机构的选择

小谷哥

换个角度理解计算机网络,搭建计网知识框架

Java全栈架构师

程序员 面试 计算机网络 架构师 tcpip

Flutter 生成运行小程序的混合App开发实践

FinFish

flutter 移动开发 小程序技术 混合app

高性能图像处理的新利器——FlyCV

飞桨PaddlePaddle

paddle 飞桨 flycv

ONES 通过国内最权威信息安全等级认证——等保三级

万事ONES

前端技术培训学习哪个机构好?

小谷哥

面试必备多线程&高并发通关手册(面试+源码+脑图)

小小怪下士

Java 程序员 面试 多线程 高并发

君子动手不动口,FinClip 喊你做超级体验官啦!

FinClip

共攀元宇宙新高峰,2月14日沈阳元宇宙产业峰会邀您携手领跑2023

华为云开发者联盟

华为云 元宇宙 企业号 2 月 PK 榜 华为云开发者联盟 VR开发

尚硅谷发布九章云台项目视频

小谷哥

TiDB 在安信证券资产中心与极速交易场景的实践

PingCAP

TiDB

如何通俗理解信创国产化是什么意思?有哪些系统?有什么意义?

行云管家

信创 堡垒机 国产操作系统

意见:SOA不需要公共信息模型_SOA_Jean-Jacques Dubray_InfoQ精选文章