enterprise integration patterns——Content Enricher

来源:互联网 发布:谷嫂的淘宝店 编辑:程序博客网 时间:2024/04/27 20:47

     从事中间件研发有很长时间,对企业应用集成中的几个模式也做过一些研究和分析,并在自己的产品里面也实现过几个经典的模式,先说说对Content Enricher的理解。

     我习惯称呼为Data Enricher,Enrich翻译成中文就是“使...丰富”的意思,data enricher模式使用的场景就是:当源消息不能包含目的消息所需要的所有数据(或者信息)。

      从下面的图中,就能够很清楚的看到这个模式的应用特点,就是在于能够聚合离散的外部信息到原始消息中,并能够以附件或者是扩展消息(扩展消息方式是基于消息应该是能够复合的,且能够自描述的)的方式。

     DataEnricher

     举个简单的例子,这是我在项目中遇到的真实场景:

  • 在某系统中根据安全级别,划分存在内外网两个数据库;
  • 外网负责对internet发布部分人员信息数据,人员信息数据从内网数据库中获得;
  • 外网发布的数据中人员的相片以每个人员的ID(唯一标识)为文件名,存在内网的一台文件服务器上。

      对于目的所需要的消息而言,源消息(内网数据库)是不够丰富的,于是我在产品中实现了Content Enricher模式,在源端获取人员数据之后,利用DataEnricher构件将人员相片以附件的方式打包到源消息中,发送到目的应用。