《企业集成模式》读书笔记 - 第二章

淩亂°似流年 2022-12-07 01:57 246阅读 0赞

本书英文全名为《Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions 》对应的中译版为《《企业集成模式——设计、构建及部署消息传递解决方案》》,出版于 2003 年。绝对称得上是老前辈了…

1. 概述

本章标题为”集成方式”,主要介绍了进行应用集成的标准,以及岁月的洗礼,被证明切实有效的四种主要集成方式。

2. 应用集成的标准

在系统介绍集成方式前,让我们先来看看我们在挑选集成方式前所需要的考虑一些主要决策标准:

  1. 尽量减少所集成应用之间的耦合性,避免紧耦合的应用。紧耦合就以为着对其他应用有着过多的假设,这导致应用一旦跑起来就很难修改。
  2. 应用被集成时候的代码修改量。注意这一点并不绝对,并不是说代码修改量越少,方法就越好,这需要通盘考虑;很多时候为了实现最佳集成,多编写一些代码也是很有必要的。
  3. 集成所采用的技术。每种集成方案有自己相对应的工具和方法,而且集成方案一旦敲定,基本就很难有回头路。
  4. 数据格式。被集成的应用会在设计之处考虑自身数据被外界读取的问题,因此集成方案要提供对于统一数据格式的解决方案,以及数据格式随时间演化所带来的系统变更的预案。
  5. 数据的时效性。应该尽量减少同步数据所消耗的时间;时间越长,应用之间不同步的概率就越大,集成也就会变得更加复杂。
  6. 可靠性。集成就意味着应用与应之间的交互,相较于进程内的互相调用,进程之间的交互既然慢,又不稳定,集成方案必须对这些给出自己的解决办法。

3. 四种主要集成方式

  1. 这四种模式彼此之间相互关联,每种模式都建立在前一种模式的基础上,目的是为了找到一种更成熟的方法,来解决以前的集成方法所存在的问题。(这一点将在我们分别介绍每种集成方法的优缺点时候表现得非常明显)
  2. 四种方法都是要解决一个共同的问题:“如何集成多个应用,使它们能协同工作并交换信息”。
  3. 前三种方法直接引用了 Martin Fowler 的著作。
3.1 文件传输

让每个应用生成共享数据文件,供其他应用使用,并使用其他应用生成的文件。

优点:

  1. 集成人员不必了解应用的内部细节,这一般都是由应用小组自己通过提供的文件来解决。
  2. 确保了应用之间的关系非常松散。应用内部可以自由修改,只需要保持所生产的文件在内容和格式上不变就可以。

缺点:

  1. 最明显的就是缺乏时间特性(timeliness)。例如无法确保时序,假如A系统修改了客户的地址而产生了一个文件,而B系统在没有读取这个文件之前就将执行了投递账单的操作。亦或是A,D系统同时修改了客户地址,那么B系统应该如何抉择?
  2. 缺乏对数据格式的限制。这种情况下,不同业务系统中,相同单词语义上的不一致极可能导致问题,而且这些文件比数据格式不一致所带来的问题更加难以解决。
3.2 共享数据库

让每个应用把要共享的数据存储在一个公共数据库中。

优点:

  1. 加快了数据共享,大幅降低了因为时序问题导致数据不一致的情况。
  2. 保证了一致的数据结构,杜绝了语义上的不一致,强迫系统开发人员在一开始就必须直面不一致的问题并想办法解决。

缺点:

  1. 数据库结构的设计复杂。关联的应用越多越复杂,并且其中的很大部分复杂度还来自于非技术原因,比如行政方面。
  2. 因为被作为共享区域,因此数据库很容易成为性能瓶颈。这种尴尬局面的出现和ESB如出一辙。
  3. 应用和数据库被耦合在一起,导致无法处理协作行为。
3.3 远程过程调用

让每个应用公开提供自己的一些过程,使它们能够被远程调用,应用通过调用这些过程来执行操作并交换数据。

优点:

  1. 把应用的功能(而非数据)集成起来。
  2. 加强了应用的封装性。每个应用维护自己数据的完整性,可以任意修改其格式,而不会影响其他应用。

缺点:

  1. 增加了应用间的耦合性。远程过程调用对于数据的封装减少了应用的耦合,但应用之间的彼此互调又在事实上将不同的应用捆绑到了一起,特别是在我们需要按照特定的顺序完成某个工作的时候。
3.4 消息传递

让每个应用连接到一个公共的消息传递系统上,并通过消息来交换数据和调用行为。

优点:

  1. 灵活性。例如被交换的数据,其数据类型可以不一致。
  2. 时效性。需要被传递的数据被实时地产生并投递。
  3. 可靠性。消息传递中内置重发机制,确保消息能够被接收方获取到。
  4. 高性能。消息传递天然支持异步操作,避免堵塞主进程。
  5. 低耦合。开发人员只需要关注功能本身,数据格式的转换不属于他们需要关心的,不过这也意思到集成人员的负担就重了。

缺点:

  1. 代码的编写有一定的学习曲线。
  2. 代码测试和调试比较困难。

4. 总结

本文介绍了人们在对于集成方案的探索中,归纳总结出挑选集成解决方案的多条决策标准;以及至今为止,被验证确实有效的四种集成解决方案:基于文件,基于数据库,基于远程调用,基于消息。而本书从书名上就已经展示自己的选择 —— 基于消息是实现企业集成的最佳途径。

发表评论

表情:
评论列表 (有 0 条评论,246人围观)

还没有评论,来说两句吧...

相关阅读