ESB一种模型,服务提供者和使用者通过ESB连接而不再直连--服务提供者接入ESB,ESB提供Proxy Service;使用者调用Proxy Service。
好处:服务间的解耦,统一监控管理,并把服务代码中交互集成的部分抽离出来,只专心于自己的业务逻辑。
坏处:天然的额外中转性能消耗,中央ESB的性能瓶颈和高可用性问题,非中央式ESB的部署模式等。
ESB产品的功能:
1.满足星型连接
- 协议和位置透明(WebService,Http,JMS...)的通信集成方式,服务协议和位置的宣告式配置。
- 服务中介:如消息转换(转换、充实、过滤),事务控制,消息路由(同步/异步、发布/订阅、基于内容路由、分支与聚合...),SLA(可靠性保证,负载均衡,流量控制,异常处理)
- 服务管理监控:如配置管理,服务调用的日志、测量和监控数据的提供。
2. 满足服务编排
- 服务组合,多个服务合作完成业务的路由编排。(与工作流,BPEL 或 代码级编排的关系?)
可选产品:
Mule:MuleSource挖到了XFire的创始人后,又挖到了SalesForce的副总裁兼财务总监,但Mule2.0,3.0,却迟迟不出。Mule1.4.3对于以上的ESB标准只能打个60分不到。对高可用性,路由编排,监控界面等方面仍需努力。
BEA:概念比Mule纯粹,同时使用JMS作为message flow的底层,在Weblogic上实现HA,群集和监控管理界面。但路由编排再次走了图形编程+XML Context(XQuery)的老路,相当鸡肋。