服务总线ESB是SOA的一种实现方法,它主要负责满足SOA架构所需要的服务的可扩展性及服务的可兼容性的需求。服务总线ESB究竟需要具备哪些功能呢?
1、能够在所管理的服务之间实现消息路由,也就是说能够将消息从服务A转向另一个服务B;
2、能够在服务请求这和服务提供者之间提供实现传输协议的的转换。比如说服务提供者的应用服务是EJB,应用协议是JAVA RMI,而服务请求这的应用协议是HTTP/SOAP,ESB将会把请求者的传输协议转换为Java RMI发送到服务提供者,在得到响应后,再将相应消息的传输协议转换为HTTP/SOAP返回给服务提供者;
3、能够在请求者和服务之间实现消息格式的转换;
4、能够处理不同来源的业务事件。也就是说不管业务来源与何处,不管是同步还是异步事件,都能进行响应的处理;
5、一个ESB应该使您的组织更加关注与核心技术,而不是关注如何将各种程序连接在一起的IT底层基础技术。
6、 一个ESB应该使你能够在现有的服务中加入新的服务,或者改变现有服务,而几乎没有对现有服务的使用产生影响。
作为一个企业,当一个软件厂商向你推销ESB产品时,你应该检查一下这个产品是否能够满足以上功能。
如果你只有两个系统,则使用现在的方式就好,不用折腾ESB了 如果你有多个系统,而且这些系统还是异构的,比如有些是java开发的、有些是.net开发的、有些还是C/S的比如是tuxedo、还有些是成熟产品如SAP等 我如果想将这些多个的异构系统都集成进来则就很适合ESB了 ESB的作用是协议转换和服务路由 协议转换的意思是:比如现在的tuxedo中间件他向外暴露的有服务,他的服务是一种特殊格式的协议、A系统使用的EJP、B系统使用的webservice、C系统使用的servlet、D系统使用的email、E系统使用的RMI等等 这个时候可以将这些系统都接到ESB上,经常ESB的协议转换,将他们都转换为webservice,以供其他方调用