之前讲述的Content Enricher与现在讲的Content Filter可以成为对消息处理的一对模式,前者解决的是从 一个系统向另一个系统发送消息时,目标系统需要的消息比源系统提供的消息多的问题,比如在人事系统中的消息中只包含了该员工所在的部门编号,但是在目的内网发版时,还需要部门名称,甚至是其他信息。
这里描述的是对应的Content Filter模式(见下图所示),顾名思义,就是内容过滤模式(也有称之为内容过滤器)。
它能够解决消息接收者要求的数据比消息发送者提供的要少,需要从消息中删除掉一部分数据元素,利用这样的模式,我认为能带来不少好处:
- 提高了安全性,根据不同的安全级别,删除掉一部分数据元素,能够保证数据的安全性,比如查询个人信息时,一般权限用户不能看到该员工的银行账号等信息;
- 合理的部署消息过滤器,删除掉冗余数据元素,能够大大减少网络带宽占有率;
- 能够根据不同规则对消息过滤后,给目的系统提供最有效数据,简化目的系统处理逻辑;
- 简化消息结构,将具有复杂层次关系的数据转换为明晰的单层关系,比如雇员信息查询过程中,如下图。