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

数据格式转换

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

(智能)路由

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

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

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

面向服务的体系结构(SOA)——(2)ESB介绍及职责的更多相关文章

  1. 面向服务的体系结构(SOA)——(1)目标与核心概念

    什么是SOA? 常常听到人们拿OOP和SOA一起来说事,诸如SOA是否可以代替面向对象(OOP)或者两者比哪个更加有优势?直接回答有难度举个例子可能显得答案更容易理解.小孩子问你该认真写作业呢?还是高 ...

  2. 面向服务的体系结构(SOA)——(5)关于MEP(Message Exchange Patterns)

    SOA中的MEP和JavaEE中的JMS类似,当然了就应该是类似的,因为都是关于消息方面的.一个是对系统架构当中消息的解决思路,一个是针对Java平台中的消息的具体解决办法(严格说不是具体的,只是提供 ...

  3. 面向服务的体系结构(SOA)——(4)对于服务的理解

    在接触SOA之前对"服务"这个词没有太多的感触,无非就是为别人做事情么.当然在SOA中这个词也脱离不了这层基本的涵义,但是具体到实际的架构中对这个词的理解就更加深刻了.本文就以&q ...

  4. 面向服务的体系结构(SOA)——(3)关于BPM

    什么是BPM 很多情况下企业当中所提供的服务不是由一个分布式业务流程就可以完成的,整个服务的提供需要多个分布式流程有机的组合,于是BPM就应运而生了.要将现有的服务通过配置.编排(关于配置与编排的区别 ...

  5. 面向服务架构(SOA)和企业服务总线(ESB)

    http://www.cnblogs.com/shanyou/archive/2008/04/19/1161452.html 学习和研究在企业中实施面向服务架构(SOA),简单回顾SOA和ESB,重点 ...

  6. SOA(面向服务的体系结构)

    SOA(面向服务的体系结构) 面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务 ...

  7. SOA 面向服务的体系结构

    SOA:面向服务的体系结构(service-oriented architecture) 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 接口是采 ...

  8. SOA (面向服务的体系结构)

    面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言 ...

  9. 从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训

    [编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了 ...

随机推荐

  1. easyui datagrid 编辑器绑定事件

    依照网上的和自己想的,在获取编辑器后直接绑定事件,思路没有问题,但是总是不响应 细细浏览网上的资料,无意中看到editor 的type 类型和自己写的不一致,自己写的是textbox,而网上的是val ...

  2. Get value from agent failed: cannot connect to [[192.168.186.130]:10050]: [113]No route to host

    客户端配置zabbix-agent 后,网页端出现Get value from agent failed: cannot connect to [[192.168.186.130]:10050]: [ ...

  3. PHP中is_numeric函数十六进制绕过0day

    0×00 简介国内一部分CMS程序里面有用到过is_numberic函数,我们先看看这个函数的结构bool is_numeric ( mixed $var )如果 var 是数字和数字字符串则返回 T ...

  4. Android往SD卡上存储文件

    public class DataActivity extends Activity { private EditText filenameText; private EditText content ...

  5. IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)

    IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...

  6. update操作多张表

    sql 语句多张表UPDATE用法一.当用一个表中的数据来更新另一个表中的数据,T-SQL提供多种写法(下面列出了二种),但建议用第一种写法,虽然传统,但结构清晰.飞.飞Asp技术乐园并且要注意,当用 ...

  7. CSS 定义上划线、下划线、删除线代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. [Effective JavaScript 笔记] 第1章:让自己习惯javascript小结

    在这里整理一下,每条对应的提示 第1条:了解使用的js版本 确定应用程序支持的js的版本(浏览器也是应用程序噢) 确保使用的js特性是应用程序支持的(要不写了也运行不了) 总是在严格模式下编写和测试代 ...

  9. [BZOJ1064][Noi2008]假面舞会

    [BZOJ1064][Noi2008]假面舞会 试题描述 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢 ...

  10. linux tar文件解压

    把常用的tar解压命令总结下,当作备忘: tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个, ...