MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

ESB笔记

Posted on 2009-01-29 21:27 leekiang 阅读(650) 评论(1)  编辑  收藏 所属分类: SOA
1,Apache Synapse 是一个简单、轻量级的高性能的ESB(企业服务总线)
http://space.itpub.net/14780828/viewspace-374514

2,总线的定义(维基百科)
总线又称计算机总线或系统总线(BUS),台湾譯作「匯流排」,是指计算机组件间规范化的交换数据(Data)的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。从另一个角度来看,如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间内都仅能负责传输一个比特。因此,必须同时采用多条线路才能传送更多资料,而总线可同时传输的资料数就称为宽度(width),以位元为单位,总线宽度愈大,传输效能就愈佳。总线的带宽(Bandwidth),也就是单位时间内可以传输的总资料数(单位是Bytes/sec):总线带宽 = 频率 x 宽度。

3,企业服务总线(维基百科)
企业计算领域,企业服务总线是指由中间件基础设施产品技术实现的, 基于Web服务标准, 通过事件驱动和基于XML消息引擎,为更复杂的面向服务的架构提供的软件架构的构造物。企业服务总线通常在企业消息系统上提供一个抽象层,使得集成架构师能够不用编码而是利用消息的价值完成集成工作。

企业服务总线提供可靠消息传输、服务接入、协议转换、数据格式转换、基于内容的路由等功能,屏蔽了服务的物理位置,协议和数据格式

总线一词是对在一台电脑的不同设备间运输比特的物理总线的引申。ESB在更高抽象层次上提供类似的功能。在一个使用ESB的企业架构(enterprise architecture)中,应用将通过总线交互,而总线扮演着应用间的信息调度(message broker)的角色。这种方法的主要优点是它减少了应用间交互所需的点对点连接的数量。这样,另一方面使得对主要软件变化带来的影响进行分析更简单更直观了。通过减少一个应用系统的连接点数量,对这个系统中的一个组件的改造过程变得简单了。

4,ESB平台实现协议转换 (WebService,Http,JMS...),消息转换 (转换、充实、过滤),消息路由 (同步/异步、发布/订阅、基于内容路由、分支与聚合...)
ESB在一个SOA系统中,必须要存在么?非常有必要,没有它不能算真正实现了SOA,异构系统的构件装配需要实现真正的复用和解耦 。WebService只是解决了异构系统的调用,而SOA要解决的是系统(内)间的构件装配、依赖和引用
但ESB的实现是否已有一个同一的标准呢?
   我感觉ESB要看系统具体情况而言,不是没ESB就不SOA了,
比如我用SCA+BPEL,一样可以SOA系统,当然前提是偶的系统接口都定义好了,不需要要靠IBM,BEA那些ESB产品去忙活了,这情况也是有的哦
以前听ESB基本上都是IBM在忽悠,听多了老感觉ESB集中式的部署会引入单点故障,同时性能也会受影响。
《Enterprise Service Bus》O'Reilly 翻过一点,感觉都是在讲MOM的东东。
个人觉得ESB承载的东西太多了,感觉还是从Enterprise Integration Pattern中学起,搞点务实的先。
我简单的对比过mule\servicemix\openesb
mule,没有IDE支持,不爽
servicemix,太麻烦,写一个BPEL要好几步,而且它本身的例子都报错.不爽
openesb,利用netbean可以设计bpel,而且利用glassfish可以直接发布BPEL,还可以,又是开源的,支持JBI,SUN的开源产品越来越丰富了,大家可以试试.
在很多应用方面,我们都是利用ESB 来实现大数据量的传输的。
在性能和可靠性方面要强于很多其他解决方案!
  http://www.javaeye.com/topic/130337
感觉camel优势是消息路由、中介等工作,缺乏组件容器的能力,还是需要和别的组件容器整合使用 。Camel的component 没有 life cycle的管理, 不过你可以在ServiceMix中轻松使用camel 。还有就是最近在ServiceMix dev中在讨论如何复用Camel component的问题, 相信你说的问题在不久的将来会有比较好解决方案的。
http://www.javaeye.com/post/860098?page=7

5,http://blog.csdn.net/danny_xcz/archive/2007/05/08/1600013.aspx#1021497

一提到总线,一般学计算机专业的往往会联想到两样东西,一是网络拓扑上的总线结构,二是电脑主板上的总线。
和他们不同的是,企业服务总线是一种软件总线,但是他们都可以进行一定的类比。类比是快速学习最好的方法之一。

网络拓扑的总线由三个东西构成:网络设备(PC,服务器,交换机,路由器),端口(网卡-1个端口,路由器-n个端口),连接各个设备的网线,数据必须通过网卡端口传输到设备。
电脑主板上的总线也由三个东西构成。处理器(CPU,GPU),针脚(信号输入,输出的针脚),连接各个处理器的线路,同样在每一个时钟周期里,信号通过针脚进入处理器,再从别的针脚输出。

通过类比,可想而知,ESB软件上的总线必然也由吉祥三宝构成,在Mule里面,他们分别是UMO,End Point,数据的传输路线(当然这是无形的)。
UMO可以比喻成一个CPU,EndPoint就是这个CPU的针脚,数据从EndPoint(inbound)进入UMO,经过UMO的处理,从另一个针脚发送出(outbound),这样就完成了企业服务总线的一次最基本的操作。


11,SLA:服务等级协议(Service-Level Agreement)

评论

# re: ESB笔记  回复  更多评论   

2010-09-01 12:12 by Azureflame(东楚客)
不错,没有ESB,SCA + BPEL也能实现SOA。但是我在想一个问题,没有ESB的SOA与拥有ESB的SOA有什么区别?或者说,ESB对于SOA究竟起到了哪些不可替代的作用。也许传输协议转换算一个。

只有注册用户登录后才能发表评论。


网站导航: