又过一年了,更新一次自己的ESB笔记,内容实在,枯燥无味,浓缩即精华....年度最大发现应该是Fuse ESB 4.0吧。
ESB最终以两种截然不同的形态存在于实际项目中: 一种是纯粹的SOA交互基础中间件,是系统间松耦合地互操作的基础设施。 一种是ESB风格的应用,联合多个系统提供组合服务,例如电信的ISAG能力网关就是其中典型。既有一个ESB的实现作为其基础设施,同时也遵循ESB的编程模型。 两者间的界限并不明显,在渐变中ESB对周边服务的业务逻辑会越来越了解,直接体现在ESB中的业务逻辑也越来越多。
由ESB充当解耦的中介,使得服务消费者对实际服务提供者的身份、物理位置、传输协议和接口定义都是不知道也不关心的。
协议转换 (WebService、Http、JMS...)数据转换 (传输协议特定格式与ESB统一消息模型的转换,各服务间数据模型的映射转换)消息路由 (静态端点配置,基于内容的过滤与路由)MEP转换 (同步/异步)组合服务 (ESB服务编排、BPEL流程引擎)ESB支持通过简单而统一的配置完成以上功能,也支持开发者在其上编写富含业务逻辑的数据转换、消息路由甚至业务处理模块。
由ESB充当服务的中介,为服务的交互过程自然的提供一系列的基础服务 。
服务治理 (服务注册中心)QOS (负载均衡,可靠性传输,异常处理,流量控制)统一安全管理 (ESB的基本安全控制,含业务逻辑的安全控制)服务日志与监控 (服务调用及消息数据的日志清单,系统及服务的性能与状态监控)BAM业务活动监测 (如发现某个服务的调用比昨天增加超过了一定的百分比,CEP复杂事件处理)纷纷扰扰后,只剩下有实力的四国 :
Fuse ESB , 基于ServiceMix与Camel,由IONA公司(被Progress收购)提供支持,ServiceMix 4.0 重点已从JBI移到OSGI,而且IONA同时也是ActiveMQ与CXF背后的公司,三者整合良好。Mule ,最早声势最大的开源ESB,由MuleSource公司提供支持。缺点是Transport质量较差,缺乏强力的AS底层,缺少服务中介能力,服务编排方式不理想.JBoss ESB , JBoss提供支持,中规中矩没什么明显缺点的ESB,部署于JBossAS上,特色是可用JbossRules编写Router,用JBPM实现流程引擎。WSO2 ,基于Apache Synapse,由Axis2 背后的公司提供支持,但自己对Axis2一系向来不感冒。