Linux 之父出席、干货分享、圆桌讨论,精彩尽在 OpenCloudOS 社区开放日,报名戳 了解详情
写点什么

SOA 的依赖原则

  • 2013 年 7 月 31 日
  • 本文字数:1281 字

    阅读完需:约 4 分钟

在去年的 QCon 上,Ganesh Prasad 分享了他对 SOA 的看法。今年早些时候,他在一篇文章里对其中部分内容作了展开,阐述了在他是怎样将 SOA 思想视作一种面向依赖思想的:

SOA 是一门对系统之间的依赖进行分析和管理的科学,“管理依赖”意味着消除不必要的依赖,并将合规依赖转变为易于理解的契约。

为了辅助说明自己的观点,他给出了下面这幅图:

Ganesh 表示:

在业务层,对依赖的聚焦迫使我们将流程合理化并进行精简。业务流程需要能够追溯到组织机构的愿景(关于“乌托邦”的理念)、组织的任务(实现“乌托邦”的战略)和为执行那些战略所需的广泛功能(产品管理、工程、市场、销售等等)[……] 在应用层,我们尝试对操作进行分组。注意业务层已经将操作的运行时分组定义为流程,而在应用层,我们需要更加静态地对其进行分组。哪些操作是一类的,哪些不是?这就是应用层需要考虑的依赖问题。然而,只有在下面的信息层才能找到这些问题的答案,因为只有当操作共享同一份数据模型的时候他们才是“一类的”。因此,数据模型可以分为两组,分别是“外部”和“内部”。任何系统的“内部”数据模型又被称作“领域数据模型”,它们将永远不会对其他系统可见。与之相对应,系统的“外部”数据模型被称为“接口数据模型”,它们永远对外暴露并与其他系统分享。

最近,Ganesh 有机会将这些理念变为现实,并参照此方法观看实际工作中的使用情况。对于每个失败的场景,Ganesh 认为其罪魁祸首都可以归咎于违反了一个或多个依赖原则。因此,他坚信如果组织机构能够遵循这些规则,那么最终将能够“实现 SOA”。当然,我们拥有多年以来的许多其他例子——关于SOA 的失败和成功之处,以及相应的为了让SOA 成功而遵循原则与规则的尝试。Ganesh 概括出的原则,可以根据操作的层次分为四类:

业务层:

(1)可追踪性——实行核心治理,“确保每件完成的事情都与组织机构的愿景有关”。

(2)极简主义——挑战假设。

(3)领域洞察——理解业务的本性,“从基本原则重新构想业务”。

应用层:

(4)内聚与耦合——“那些属于一类的应该归到一起,并且在不同系统间仅保留最小限度的联系。”

(5)实施与曝光——“共用领域数据模型和业务逻辑的操作组都会转化为产品,而共用接口数据模型的都会转化为服务。”

(6)变体与版本——“识别出每个逻辑操作的多重并行类型,建立一种方法来支持其逻辑和接口的不断变更”。

信息(数据)层:

(7)内部与外部——“区分接口数据模型与领域数据模型”。

(8)内容与上下文——“将接口数据模型的核心数据元素与限定元素分离”。

(9)抽象与具体——“创建同时适用于内容和上下文元素的数据类型的层次结构”。

技术层:

(10)捆绑依赖——“在实现业务逻辑的过程中,避免在无关的组件之间引入新的依赖”。

(11)后期绑定——“推迟不可避免的依赖,直到最后责任点”。

(12)完成工作的合适工具——“使用最合适的机制来实现逻辑”。

对用于SOA 的面向依赖思想的原则和理念,各位读者怎么看?它们是否已经对你曾经参与的某个SOA 项目产生了帮助?现在你是否会考虑使用它们,或是基于自己的经验对其进行修订?

查看英文原文: Dependency Principles for SOA

2013 年 7 月 31 日 22:383769
用户头像

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

关注

评论

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

【深入理解TcaplusDB技术】windows部署 TcaplusDB Local版操作

数据人er

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】如何下架TcaplusDB机器

数据人er

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】如何新增TcaplusDB机型

数据人er

数据库 nosql TcaplusDB

【深入理解TcaplusDB技术】TcaplusDB集群管理操作介绍

数据人er

数据库 nosql TcaplusDB

【深入理解TcaplusDB技术】C++实现PB表的增删查改操作

数据人er

数据库 nosql TcaplusDB 腾讯游戏

一文看懂——什么是Bonree Server?

博睿数据

Server 博睿数据 IT运维

【深入理解TcaplusDB技术】如何启动TcaplusDB进程?

数据人er

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】TcaplusDB事务错误排查操作介绍

数据人er

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】TcaplusDB日常巡检介绍

数据人er

数据库 nosql TcaplusDB 腾讯游戏

易周金融分析 | 银保监会发文规范养老金融;宁波银行拿下消金牌照

易观分析

金融 银行

【深入理解TcaplusDB技术】如何管理TcaplusDB机型

数据人er

数据库 nosql TcaplusDB

【深入理解TcaplusDB技术】GO实现PB表的增删查改操作

数据人er

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】如何准备部署TcaplusDB Local 版?

数据人er

数据库 nosql TcaplusDB 腾讯游戏

浅谈 SAP UI5 框架对一些其他前端框架比如 Vue 的支持

Jerry Wang

JavaScript 前端开发 SAP Fiori 5月月更

【深入理解TcaplusDB技术】业务运维之TcaplusDB事务管理

数据人er

数据库 nosql TcaplusDB 腾讯游戏

同域下跨应用登录问题

混合应用开发 融合登录 统一登录

大数据培训拉链表优化实践分享

@零度

数据仓库 大数据开发

OpenHarmony源码解析之电话子系统——通话流程

OpenHarmony开发者社区

OpenHarmony 电话子系统

【深入理解TcaplusDB技术】Java实现TDR表的增删查改操作

数据人er

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】查看TcaplusDB线上运行情况

数据人er

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】TcaplusDB机器初始化和上架操作

数据人er

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】TcaplusDB常规单据

数据人er

数据库 nosql TcaplusDB

【深入理解TcaplusDB技术】GO实现TDR表的增删查改操作

数据人er

数据库 nosql TcaplusDB 腾讯游戏

GPU容器虚拟化:用户态和内核态的技术和实践详解

GPU容器虚拟化:用户态和内核态的技术和实践详解

SOA的依赖原则_SOA_Mark Little_InfoQ精选文章