ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。
ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
ESB的五个基本功能:
1)服务的MetaData管理:在总线范畴内对服务的注册命名及寻址管理功能。
2)传输服务: 必须确保通过企业总线互连的业务流程间的消息的正确交付,传输还包括基于内容的路由功能。
3)中介:提供位置透明性的服务路由和定位服务;多种消息传递形式;支持广泛使用的传输协议。
4)多种服务集成方式: 如JCA,Web服务,Messaging ,Adaptor等.
5)服务和事件管理支持: 如服务调用的记录、测量和监控数据;提供事件检测、触发和分布功能;
ESB的八个扩展功能:
1)面向服务的元数据管理: 他必须了解被他中介的两端,即服务的请求以及请求者对服务的要求,以及服务的提供者和他所提供的服务的描述;
2) Mediation :它必须具有某种机制能够完成中介的作用,如协议转换;
3)通信:服务发布、订阅,响应 请求,同步异步消息,路由和寻址等;
4) 集成: 遗留系统适配器,服务编排和映射,协议转换,数据变换,企业应用集成中间件的连续等。
5)服务交互: 服务接口定义,服务实现的置换,服务消息模型,服务目录和发现等。
6)服务安全: 认证和授权、不可否认和机密性、安全标准的支持等;
7)服务质量: 事务,服务的可交付性等;
8)服务等级: 性能、可用性等。
ESB 中最常提到的两个功能是消息转换和消息路由。
我认为ESB或SOA,关键有4点:
1.reuse: 服务多了,就要避免重复,能重用的就重用
2.integration: 可重用服务之间会有依赖或者需要整合。才能完成更强大的功能。
3.route: 服务之间怎么整合,信息如何交换。route的过程会有过滤(filter)。
4.transform: 信息也需要转换成不同的格式。
理解ESB应该包含以下内容:
消息服务器:消息接收器、消息队列、消息发送器。。。
Router:路由
mapping:协议转换器
工作流:workflow,或者只是flow
等待。
ESB的全称是 企业 服务 总线。
应用领域是 企业级应用的集成。
关注点是 服务。
特点是 总线。
ESB应该是企业信息系统的基础性设置,各种可复用的资源(file,db,ws,jms,ftp,process,businessmodel等),可以注册到ESB,并在企业内部发布出来。同时,ESB应该易于扩展(协议,服务能力),易管理(提供监控和治理能力,QoS)。
EIP(企业集成模式)中 描述了ESB的动态轮廓:channel+filter:
一个ESB的运行时特征就像是一条流动的河(channel),中间可以走分支或者聚合(Splitter Aggregator),或者改道(router),也许某些地方,还有堤坝和水闸(flowcontrol)。
这个是我理解的ESB
总的来说,可以认为:ESB就是一个大的IOC(DI),spring的DI是object级别的,ESB的DI是service级别的.
ESB是SOA的一部分, SOA包括业务和技术两个方面,而ESB主要还是技术相关的.
webservice和esb的区别哪就是
webservice只是esb可以访问的一种服务提供者(协议)
webservice的方式只是一种大家都熟悉的一个方法,
打个比方,现在需要实现一个服务,客户端发送一个人员编码,返回人员姓名
下面的几种设计方法都可以成为esb(websphere message broker)的服务提供者
A,开发一个webservice,提供调用参数人员编码,返回包含人员姓名soap消息包
B.开发一个socketserver ,接受一个char[20]的 数组,返回char[100]的数组
C.开发一个structs action,通过 someaction.do?usercode=? 的方法返回一个json格式的姓名{name:'edwin'}
D.使用消息队列中间件,发送xml格式的请求消息,再从指定队列读取返回值
现在明白webserice和esb的关系了吧。
1.一般的esb流程是什么样子的?
是不是主系统发生soap请求。esb接收并且转换成jms然后子系统监听jms。最后得到数据。
还是。jms仅仅是内部转换。soap请求在esb转成jms后。加入队列。然后再转成soap调用子系统?
(先是整理需连接的系统,需要连接的系统功能(一般管它叫服务),确定服务的依赖关系,支持的协议(文件,WebService, RPC,...),调用的方式(同步/异步)
然后使用ESB提供的那些协议组件,一点点串起来就行。串的方式可以参考EIP (www.eaipatterns.com)
你说的两种异步方式的话都可以,
如果是同步的,也可以直接soap -> soap, 不用JMS。 一般用JMS是为了实现异步通讯 )
2.使用jms的考虑是jms对队列的信息进行持久化。防止比如子系统突然挂掉了。消息丢失。
但是有个问题。是esb自动监听jms的队列的话。会导致直接消费了。而数据没有存在队列中。还是会出现消息丢失的问题。
这个应该怎么解决。
(JMS,至少我接触的ActiveMQ, 是可以支持事务的,发生异常,可以不消费信息 )
3.esb进行协议之间的转换。每种方式都需要些一个转换方式么?有没有什么通用的。或者是自动转换的。比如soap和jms的互相转换。不是协议切换。是内容转换。
(议转换是为了配合你那些需要整合的系统,如果都是SOAP,也就不需要转了。
消息内容转换(格式,内容),一般ESB都提供各种工具的。 )
1、如果你要做同步转异步,可以在esb上做成ws转jms,然后起到一个缓冲的作用。
最后可以再同步的返回给调用方。
你也可以修改调用方为jms方式,这样就是彻底的异步了,在esb端可以jms转ws,调用业务服务方的ws。
2、esb都支持事务的,jms中如果不确认消息的话,不会从持久存储去delete掉的。
一般的esb。也可以做成是esb消费掉消息,然后存入esb自己内置的jms provider中,这样你再消费的话,也是可靠的。还可以做成补偿机制的,即esb中如何消息处理失败,把消费放回去原来的queue或是一个中间的临时queue,稍后做recover。
3、从esb的不同transport进去的数据,在esb的中介层处理时,其实消息格式都是一致的、通用的。也就是说常见的ws或jms转换在一般的esb里处理都很简单。如果稍微复杂点,也很容易扩展transformer(比如通过xslt做xml格式转换)来实现数据内容和格式的转换。
分享到:
相关推荐
摘要:随着面向服务体系结构(s0A)的推出及其深入应用,企业服务总线(EsB)在理论和应用方面成为软件开发、集成与部署的 热点技术。论文分析了ESB的原理,对其体系结构进行了归纳,根据现有的ESB实现平台,重,最介绍...
3.1. ESB事件说明 3.1.1. 查询事件 3.1.2. 回显事件 3.2. 数据展现集成配置 3.2.1. 是否支持分页 3.2.2. ESB查询服务 3.2.3. ESB回显查询服务 3.2.4. 字段设置 4. 功能示例 4.1. 数据展现集成“ESB服务”数据来源...
Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB...
esb的 实例 学习esb的初学者 可以看看
一、Jboss ESB的简介 1、 什么是ESB。 ESB的全称是Enterprise Service Bus,即企业服务总线。ESB是过去消息中间件的发展,ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放...
ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程
ESB介绍和案例
WSO2 ESB 使用手册,项目中使用到了WSO2的ESB功能作为ESB使用
文档列举了三个国产ESB的介绍:金蝶ApusicESB、锐易特软件、合众企业服务总线,希望可以对后来者提供一些建议
wso2 esb installation part 5
ESB减少了你的SOA体系中的接口的数量,大小和复杂度。 ESB在请求者和服务之间实现了: 路由服务间的消息 转化请求者和服务之间的传输协议 转换请求者和服务之间的消息格式 处理分离资源间的业务事件
文档主要介绍了Mule ESB的使用方法,并结合具体实例加深对ESB的理解,对新手很有帮助哦!
关于ESB项目的一些整理,工作原理之类。
ESB案例解析和项目实施经验分享
ESB3实例代码及文档,非常不错的学习资料
WSO2ESB 5.0.0 汉化后的jar.zip 评分: 内含 WSO2ESB 5.0.0 界面汉化的jar包 下载后将zip格式文件解压后 将jar copy 到 wso2esb-5.0.0/repository/components/plugins 中 将对应的jar替换便可完成汉化
WebService&SOA&ESB
ESB原理及Mule ESB实践
ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以...