第13章 集成限界上下文
- 第1章 DDD入门
- 第2章 领域、子域和限界上下文
- 第3章 上下文映射图
- 第4章 架构
- 第5章 实体
- 第6章 值对象
- 第7章 领域服务
- 第8章 领域事件
- 第9章 模块
- 第10章 聚合
- 第11章 工厂
- 第12章 资源库
- 第13章 集成限界上下文
- 第14章 应用程序
本章学习路线图
- 温习有关集成限界上下文的基础知识
- 学习通过REST资源的方式来集成限界上下文,以及这种方式的优缺点
- 学习使用消息来集成限界上下文
- 学习在不同限界上下文中维护重复信息时所面临的挑战
- 学习通过示例进一步掌握集成限界上下文的设计方法
集成基础知识
有多种方式来进行限界上下文之间的集成:
- 在一个限界上下文中暴露应用程序编程接口(API),然后再另一个限界上下文中通过远程过程调用(RPC)的方式访问该API。
- 使用消息机制,每一个需要交互的系统都使用消息队列或订阅-发布机制。
- 使用Restful HTTP。
分布式系统之间存在根本性区别
任何一个分布式开发者都应该知道以下分布式计算原则:
- 网络是不可靠的。
- 总会存在时间延迟,有时甚至非常严重。
- 带宽是有限的。
- 不要假设网络是安全的。
- 网络拓扑结构将发生变化。
- 知识和政策在多个管理员之间传播。(?)
- 网络传输是有成本的。
- 网络是异构的。
跨系统边界交换信息
我们需要一种可靠的方法在两个系统之间传递信息数据,所传递的信息数据的结构应该能被所有的系统所消费。有多种方式可以生成信息数据的结构,比如XML、JSON。
通过REST资源集成限界上下文
当一个限界上下文以URI的方式提供了大量的REST资源时,我们便可以称其为开放主机服务(3)。
本章以SaaSOvation公司将REST原则应用与身份与访问上下文为例展开,具体详见书中分析过程和代码示例。
通过消息集成限界上下文
在使用消息进行继承时,任何一个系统都可以获得更高层次的自治性。只要消息基础设施正常工作,即使其中一个交互系统不可用,消息依然可以得到发送和投递。当事件发生时,系统将通过消息机制将这些时间发送到对事件感兴趣的相关方。
本章以Scrum产品和敏捷项目管理上下文的交互为例,给出通过消息集成的方式,具体详见书中分析过程、代码示例和注意事项。