《企业集成模式》读书笔记 - 第八章
本书英文全名为《Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions 》对应的中译版为《《企业集成模式——设计、构建及部署消息传递解决方案》》,出版于 2003 年。绝对称得上是老前辈了…
1. 概述
本章标题为”消息转换”,该模式意图解决集成多方数据不一致的情况。
前面介绍的:
- “消息通道”通过在应用之间提供公共的传输层,消除了应用中各个传输协议之间的依赖。
- “消息路由器”提供了位置独立性,使得方发送的应用不必依赖接收方应用的位置。
而消息转换则消息了双方在数据格式上的依赖。
2. 信封包装器
采取类似TCP/IP协议的模式,采用层层嵌套的方式将消息传递到接收方。其中的包装器和解包器是对称存在的。
3. 内容扩充器
如果消息接收方所需要的信息是多于消息发送方的,这个时候我们就需要求助于内容扩充器。
一般情况下,内容扩充器需要访问额外的数据源(例如数据库,文件系统等)来获取额外的数据。获取到的额外数据也将被附加到消息中,继续向后传递给接收者。
4. 内容过滤器
相较于上一小节的“内容扩充器”,内容过滤器则是恰恰相反地根据消息接收方的需要,削减消息体中不必要的信息,达到减少网络传输量和信息安全的目的。
5. 声明标签
相较于”内容过滤器”对于消息中数据中永久移除,有些时候我们只是想要临时去掉某些数据,而在之后的某个环节再将这些数据找回来。这个时候我们就需要声明标签的支持。
使用声明标签,我们将会把那些需要临时去掉的数据持久化到某个公共地方,然后将对应的唯一标识码存放在消息体,然后在之后的适当时机使用该唯一标识码取回被临时移除的消息。
6. 规范器
可以看作一个消息路由器和针对每种消息格式提供的专有消息转换器组合而成的解决方案。
使用规范器,可以将多种不同格式的消息统一为一种公共格式,方便后续的统一处理。
7. 规范数据类型
当进行系统集成的时候,如果只是针对系统两两之间进行消息格式转换,那随着并入解决方案的系统数量的增加,格式转换器的数量将呈现指数级别的增长,因此我们需要采取一种措施,来减少这类依赖。
定义独立于所有应用的,规范的数据类型,并让所有应用都能够产生并消息使用这个公共格式的消息,这是一个经过检验的好办法。
不过需要注意的是,如果集成的应用数量并不多的话,使用此类方法反而会显得复杂。毕竟使用规范数据类型每次消息传递都要涉及两次转换(一次是从源转换为公共格式,接着从公共格式转换为目标格式)。
设计规范数据模型是一件非常困难的事情,所以不要试图定义一个大而全的方案,只模拟一部分反而更容易成功设计出规范数据模型。
8. 总结
相交于笔者从Apache Camel中学来的EIP内容,本章中的第7小节中的内容应该算是比较有提示作用的,通过建立非大而全的公共数据模型来将集成方案中的职责下方一部分到各个应用,降低维护量的同时也极大提升了可维护性。
还没有评论,来说两句吧...