ESB实现原理

     一进公司,我被分配到接口组,接口组,顾名思义,就是为系统提供接口,跟其他系统进行对接的,很高兴能玩玩这个,因为以前都没有搞过接口方面的东西,只认为就是webservice方面的东西,也不是很难,后来到公司,一开始就要我们搞ESB方面的东西,以前都没听说过的,不过这个是企业内部使用的一套webservice服务平台,有专门的人过来给我们进行培训指导,学着学着发现其实上手也比较简单,不是想象中的那么难。

     ESB,英文名称叫Enterprise Server Bus,中文叫企业服务总线,是一套企业内部接口对接的实现方式,它在现在的公司是一个集成平台,我们所发布和申请的服务都需要通过这个ESB平台来实现。下面是ESB集成平台管理的体系架构:

大家能够看到的是,它分为了几个阶段,每个阶段代表不同的环境,也代表你发布的服务所进行的环境,DEV开发环境,SIT测试环境等等。要说起ESB的实现原理,其实说白了就是socket通讯,也就是说客户端和服务端的请求和响应过程,只是它这个过程也有自己的内部实现而已。

       大家都知道,webservice就是一种跨语言、跨平台实现远程调用的一种技术,其实使用ESB平台也一样,客户端不需要管服务端是用什么语言实现的,服务端也不需要管客户端是什么语言实现的,客户端的平台是什么,例如java客户端、android客户端、IOS等等,连接客户端和服务端的就是一个WSDL文件,它可以使用http协议和jms协议实现:

如上图所示,ESB内部实现基于IBM的Message Queue即消息队列来实现的,上网查阅了一下,其实还有其他的实现方式,客户端和服务端通过ESB的交互都会交给ESB平台中的消息队列,当服务端启动的时候,ESB会将其放入到服务端的消息队列中,客户端向ESB平台请求一个服务的时候,ESB会将客户端请求加入到消息队列中,然后通过ESB路由到我们的服务端消息队列,根据先到先得原则,依次取出交给我们的服务端去处理,服务器处理完后,将信息通过ESB平台返回给客户端,大致的原理就是这个样子,客户端与服务端的对接是通过ESB平台生成的WSDL来实现的。WSDL文件的生成在企业内部通过ESB集成平台,根据我们数据提供的模板,由系统来实现的,服务端在ESB平台上是发布一个服务,而客户端是请求一个已经发布的服务,ESB平台不做webservice处理,实际上服务端还是自己做了一个webservice的实现。

        例如A系统为服务端,那么它通过ESB平台发布一个服务:根据用户关键字查询用户信息,将自己提供的数据模板(数据模板中包含了用户请求和响应相关数据信息)通过ESB平台生成WSDL文件,那么我们服务端就可以根据WSDL文件通过相关的webservice实现框架,例如CXF、XFire、Alisx等生成相关服务端代码,然后我们实现服务端的功能,例如从数据库中根据关键字查询用户信息,而客户端B系统需要使用A系统中的这个服务的时候,那么B系统需要从ESB平台上面申请这个服务,申请通过后,也会有一个WSDL文档给客户端,客户端根据WSDL文档来编写自己客户端的逻辑实现。这样当A系统部署在自己服务器上的时候,A系统进行访问的模式就是上面的那种方式了。A系统和B系统都需要在ESB平台上面进行注册,并且发布服务和申请服务都是需要管理ESB平台相关人员进行审核的。客户端与服务端通过WSDL文档进行对接,示例图如下:

大致就是这样,刚刚接触ESB这个玩意,还在初学阶段,根据自己的理解做个总结,以后慢慢深入,这篇博客会陆续更新的,将更多的知识点分享给大家!

  • 7
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值