通过ESB构建事件驱动体系结构(一)
本文基于Oracle ESB的简单示例了解如何配置ESB以“发布”企业事件……
有几种方法可以帮助对事件感兴趣的相关方使用来自 ESB 的消息:
ESB 可以将所有消息提供给 JMS 主题,并让感兴趣的相关方自己挑选获取消息以及将其转换为自定义格式的方式。
可直接从 ESB、同一服务(使用来自发信方的事件并可能将其消息转换为更规范的格式)调用每一个希望知晓消息的系统。当然,这意味着 ESB 服务需要针对增加的每一个相关方进行扩展,并且可能需要包含针对各个附加方的额外转换和过滤规则。
ESB 提供了一个接收事件、转换和丰富消息和将该事件发布到 JMS 的服务,以及一个针对感兴趣各方的专用服务。该专用服务将直接从接收服务(耦合)接收事件消息,或从 JMS(取消耦合)读取消息、为其正在服务的相关方执行附加的定制转换,以及通过适用于消息接收方的任何方式(JMS、Web 服务调用、数据库操作)提供消息。在该示例中,添加一个新的对事件(消息)感兴趣的相关方意味着要在 ESB 中创建一个独立的、松散耦合的新服务。但是,这会引入一些特殊开销、更多的服务定义以及服务实例,并且还会在内部通过外部 JMS 主题或多或少地复制 ESB 所做的内容。
在大多数情况下,第二种方法可能是最好的。注意,从 ESB 服务实例调用以通知感兴趣各方的目标服务可以并行调用也可以顺序调用(取适用的方式)
利用 Oracle ESB 开发 ESB 服务
可以在 Oracle ESB(Oracle 融合中间件中 Web 服务基础架构的 ESB 组件)中按如下方式创建该方法的简单演示。
该案例中的业务事件是聘用新员工。当新员工签订合同后,该事件将发布到 ESB。该事件消息包含姓名、年龄、性别、职务以及入职日。有多方对该事件感兴趣:
新员工需要向安全部门注册,该部门将建立帐户、颁发胸牌以便员工能够进入该机构等等。
财务部门需要为新员工准备多种工资单和支出报表。
Junior Managers Club 将邀请处于管理位置、40 岁以下的所有人参加他们的会社。为此,他们希望在聘用了符合条件的新员工时能够得到通知
使用 Oracle ESB 实现该简单的业务事件服务,如下所示:
- 本文关键词:


