`
lvwenwen
  • 浏览: 930796 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

ESB

ESB 
阅读更多
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格式转换)来实现数据内容和格式的转换。
分享到:
评论

相关推荐

    ESB原理架构实现及应用

    摘要:随着面向服务体系结构(s0A)的推出及其深入应用,企业服务总线(EsB)在理论和应用方面成为软件开发、集成与部署的 热点技术。论文分析了ESB的原理,对其体系结构进行了归纳,根据现有的ESB实现平台,重,最介绍...

    泛微Ecology9.0数据展现集成之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 IDE (mule ESB)

    Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB...

    esb简单例子 学习esb的初学者 可以看看

    esb的 实例 学习esb的初学者 可以看看

    Jboss ESB简介及开发实例

    一、Jboss ESB的简介 1、 什么是ESB。 ESB的全称是Enterprise Service Bus,即企业服务总线。ESB是过去消息中间件的发展,ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放...

    ESB技术学习教程,适用初学ESB人员

    ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程

    ESB介绍和案例

    ESB介绍和案例

    WSO2 ESB 使用手册

    WSO2 ESB 使用手册,项目中使用到了WSO2的ESB功能作为ESB使用

    国产ESB产品介绍

    文档列举了三个国产ESB的介绍:金蝶ApusicESB、锐易特软件、合众企业服务总线,希望可以对后来者提供一些建议

    wso2 esb installation part 5

    wso2 esb installation part 5

    WebService&ESB入门

    ESB减少了你的SOA体系中的接口的数量,大小和复杂度。 ESB在请求者和服务之间实现了: 路由服务间的消息 转化请求者和服务之间的传输协议 转换请求者和服务之间的消息格式 处理分离资源间的业务事件

    Mule ESB手册-中文版

    文档主要介绍了Mule ESB的使用方法,并结合具体实例加深对ESB的理解,对新手很有帮助哦!

    关于ESB关于ESB关于ESB

    关于ESB项目的一些整理,工作原理之类。

    ESB案例解析和项目实施经验分享

    ESB案例解析和项目实施经验分享

    ESB3实例代码及文档

    ESB3实例代码及文档,非常不错的学习资料

    WSO2ESB 5.0.0 汉化包

    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入门介绍

    WebService&SOA&ESB

    ESB原理及Mule ESB实践

    ESB原理及Mule ESB实践

    IBM公司ESB、WEBSPHERE、SOA技术交流

    ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以...

Global site tag (gtag.js) - Google Analytics