面向服务的体系结构(SOA)——(2)ESB介绍及职责

企业服务总线(Enterprise Service Bus)SOA的基础设施,之因此这么说是由于要达到SOA的目标(加强灵活性)就必须有调用服务的方法,ESB的存在有效的保证了消费者可以调用供应者提供的服务。网上有不少对ESB不一样的理解,其实这取决于实现ESB方式。对于ESB来讲具体的实现方式不是固定的,可是核心思想(主要的做用)是一致的。下面将从以下几个方面阐述笔者对ESB的理解安全

数据格式转换负载均衡

ESB的存在就是为了解决SOA当中互操做的问题,因为SOA是支持异质的因此对于ESB来讲主要的做用就是处理不一样平台不一样语言之间的相互调用。那么首先要作的就是数据格式的转换。在异质的环境中若是只解决一对一的转换是饮鸩止渴,必需要为之后新加入的异质系统着想,因此人们尽量的使得目标数据格式脱离已有的平台及语言,引入一个中间格式而后将不一样平台中的API都映射到这种格式上来。对于大多数状况人们选择的是和平台无关的WebServices技术,因而SOAP也就成为了这种中间格式。对于各大厂商来讲谁都不肯意被众人忽略,因此才有了目前大多数技术对WebServices的普遍支持。spa

(智能)路由3d

这里主要研究的对象是存在ESB当中的消息内容。就像现实生活中的路由同样,你们都经过可是你们各自的数据不会被发送到他人手中。在ESB中也是一样的道理,不一样优先级的消息,不一样类型的消息是须要给予不一样处理的。从这个角度说ESB就不仅仅是一个传递消息的通道了,还须要有一套本身的能识别其余服务提供数据方法。至少应该能够区分不一样消息的消息头,只有这样才能保证消息准确无误的被传递、处理。关于智能路由的另外一个做用就是负载均衡,根据消费者的要求调用资源空闲的服务,这不仅仅须要上面所说的ESB提供可识别消息的功能,还须要ESB能够判断提供者的资源占用状况。orm

其余任务(篇幅所限后面的文章会详细叙述下面涉及到ESB的各个职责)对象

下面要叙述的ESB的各个职责都是“提供互操做性”这个核心任务的扩展。很明显异质系统经过ESB“链接”到了一块儿,而且支持“互操做”那么原有系统的安全是一个很大的问题。还须要注意的是不一样协议提供不一样形式的可靠性,例如WebServices中的HTTP协议没法保证消息传递的成功(周所周知HTTP协议是无链接、无状态的)。随着SOA的范围增大,链接到ESB上的系统增多时高效的管理服务将成为ESB最棘手的问题。做为整个环境的心脏ESB有责任检测及记录哪一个消费者调用了哪一个服务,以及一个具体的服务调用进行了多长时间。这些对于保证整个环境的良好运转是很是重要的。blog

相关文章
相关标签/搜索