自己对WSO2 ESB 见解

这周没想到要更新什么内容,就把我最近工作接触的WSO2 ESB简单介绍下吧。

 
 

前提:

一切文档,知识都要与官方文档为准。

WSO2 ESB:

http://wso2.com/products/enterprise-service-bus/

WSO2 ESB 文档:

https://docs.wso2.com/display/ESB481/WSO2+Enterprise+Service+Bus+Documentation

 
 

我这篇博客不作具体做一步步的教程,需要学习的可以参考官方文档一步步的入手。

 
 

  1. 那什么是WSO2 ESB?

     
     

    我也不想去copy什么是ESB。我举一个例子吧。

     
     

    想想在一个很大的公司,这个公司有2个大的部门。部门A,部门B。

     
     

    部门A有10个web service,5个是WCF开发的基于SOAP,安全校验是A(比如 SAML Token吧),5个是restful安全校验是B.

     
     

    部门A有5个web service,3个是JAVA开发的基于SOAP,安全校验是A(比如 SAML Token吧),2个是restful安全校验是C.

     
     

    然后前段业务需要快速开发移动APP,这需要后端service是restful风格的。由于移动变化快,需要不用的需求,需要更多数据?

    后端的web service仅仅提供最为基础的数据,虽然全,但是没有根据前段的业务去优化数据。

    有一天,移动APP需要调用部门A的service1(SOAP 风格)和service2(restful)和们部门B的service3(SOAP)去得到相关数据,然后需要调用部门A的service4(SOAP) 去更新数据。

    这样有2中方案:

     

    方案1:移动APP就需要处理很多,需要考虑不同service的协议和安全校验。

    方案2:要求后台开发一个service为移动app提供服务。

     

    显然方案1把太多的业务逻辑放在了前端。方案2,适应不了快速的APP开发。

     
     

    那么ESB就出来了,它是作为一个中间层把移动app和后端的web service分开来。

    ESB会提供web sevice与移动app打交道,这样就为前端提供一个新的service,专门满足前端APP

    的需求。统一的协议,统一的安全校验。

    这样在ESB内部就可以处理调用后端service的逻辑。

     
     

  2. 一个简单的例子。

    还是上面的那个例子:

    有一天,移动APP需要调用部门A的service1(SOAP 风格)和service2(restful)和们部门B的service3(SOAP)去得到相关数据,然后需要调用部门A的service4(SOAP) 去更新数据。

     
     

    这样移动APP说,我需要一个新的service,那么定义好需要那么得到那些数据,需要更新那些数据,需要什么协议(soap,restful),需要数据的格式是什么(xml,json)。。。。

     
     

    ESB就新建一个service提供这种服务。

    这ESB内部,得到移动app传来的数据,比如是xml把,然后把xml转换成soap或者restful,然后再ESB内部调用后端service,然后把数据在转换好,发给移动APP。

     
     

    WSO2 ESB提供很多组件,去处理请求。它可以不移动app发过来的任何格式,转换成任何格式,post到后端的service,得到数据后,再把数据转换成符合移动app的格式。

     
     

    在WSO2 esb可以用脚本语言,JS,python,ruby处理不同格式之间的转换。也可以用

    org.apache.axiom.om (java)。。

     
     

  3. 全栈工程师?

    这样开发移动app的可以在界面用js来写,在服务端可以node.js来写,在后端的WSO2 ESB可以用js来写web service来得到数据。

    这样主要后端提供好基础数据,前端就可以全栈快速的开发满足需求的功能和产品。

     
     

 
 

这些仅仅是我的简单理解和随笔。工作中,我是在一个后端WCF webservice team的,最新我们可能准备使用WOS2 ESB来为移动app提供快速的服务,所以有机会使用WSO2 ESB来做前期的调查。

 

上一篇:打开office弹出steup error 的解决办法


下一篇:ThinkPHP 学习笔记 ( 四 ) 数据库操作之关联模型 ( RelationMondel ) 和高级模型 ( AdvModel )