公司信息化系统越来越多,系统之间的交互也多了,最初的直接交互方式变得越来越难以管理。
以下是碰到的一些问题:
1.A系统调用B系统接口,A系统依赖于B系统,B系统不可用时,A也不可用,往往是用户反馈A系统异常时才发现是B系统的问题。属于最低级的被动管理。
2.系统之间的接口调用越来越多,依赖关系都在脑子里面和代码里面,就算有文档也很分散,就是统一在一个文档里面也表达的是一个蜘蛛网的依赖关系图。
3.可用性要求即使是企业信息化系统也变得越来越高,可用性可能要求99.9%以上。不可管理的系统交互是不可接受的。很多时候系统交互是可以异步的,异步消息处理和数据缓存以提高可用性与性能的也已是大势所趋。
ESB很好的解决了以上问题。
我想象中的ESB应该具有以下功能:
1.首先是一个消息中间件以支撑异步同步远程接口调用
2.所有系统提供外部服务或使用外部服务必须在ESB中注册,系统间不能直接交互,必须通过ESB作为中介。
3.ESB能主动监控所有注册的服务,主动报警
4.支持数据缓存,在实时性要求不高的情况下且服务不可用时不影响用户使用。
5.所有消费服务的系统都依赖于ESB,ESB不能成为单点,ESB不仅要有高可靠性,同事还需要支持伸缩性,很容易做负载均衡,不管是软负载还是硬负载。
6.ESB的后台管理功能,包括记录和展现对现有服务的使用情况,性能, 服务可用状态,动态切换服务
esb开源资料:http://www.codeplex.com/site/search?projectSearchText=esb