zoukankan      html  css  js  c++  java
  • 自己对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来做前期的调查。

     

  • 相关阅读:
    JavaScript 移动端拖动元素
    JavaScript轮播图
    JavaScript缓动动画函数封装
    JavaScript mouseenter和mouseover的区别
    类欧几里得算法
    AGC043 A~C 解题报告
    「UOJ495」新年的促销
    「BZOJ4842」Delight for a Cat
    Atcoder AGC002 解题报告
    Atcoder AGC001 解题报告
  • 原文地址:https://www.cnblogs.com/zizifn/p/4752859.html
Copyright © 2011-2022 走看看