自己对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
我这篇博客不作具体做一步步的教程,需要学习的可以参考官方文档一步步的入手。
- 那什么是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的逻辑。
- 一个简单的例子。
还是上面的那个例子:
有一天,移动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)。。
- 全栈工程师?
这样开发移动app的可以在界面用js来写,在服务端可以node.js来写,在后端的WSO2 ESB可以用js来写web service来得到数据。
这样主要后端提供好基础数据,前端就可以全栈快速的开发满足需求的功能和产品。
这些仅仅是我的简单理解和随笔。工作中,我是在一个后端WCF webservice team的,最新我们可能准备使用WOS2 ESB来为移动app提供快速的服务,所以有机会使用WSO2 ESB来做前期的调查。
自己对WSO2 ESB 见解的更多相关文章
- WSO2 ESB
什么是WSO2 ESB? WSO2 ESB是一个轻量级的易于使用的企业服务资源总线.WSO2 ESB允许系统管理员和SOA架构师,消息路由,虚拟化,中介,转换,日志记录,任务调度,负载平衡,失败了路由 ...
- WSO2 ESB XML定义语法(1)
1.(基于Apache Synapse的WSO2 ESB实现)参考文件位置: http://synapse.apache.org/userguide/config.html 基于Apache Syna ...
- WSO2 ESB XML定义语法(3)
6.Property Mediator 通过Synapse调解的每条消息都可以具有一组关联的属性.Synapse引擎和底层传输在处理的每条消息上设置了许多属性,用户可以操纵这些属性来修改消息流的运行时 ...
- WSO2 ESB XML定义语法(2)
5.Proxy Service 配置 <proxy>元素用于定义Synapse代理服务. 通过基础Axis2引擎在指定的传输上创建和公开代理服务,根据标准的Axis2约定(即基于服务名称) ...
- 几款开源ESB总线的比较
现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,现在已经是百花争鸣的景象了.现在我就对现有的各种开源ESB总线依据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. CX ...
- ESB 企业服务总线
整理的OSChina 第 38 期高手问答 —— ESB 企业服务总线,嘉宾为@肖俊_David . @肖俊_David 恒拓开源架构师,热衷于JAVA开发,有多年的企业级开发经验.曾参和设计和开发基 ...
- 各种ESB产品比较(转)
介绍了主流商业和开源ESB的发展趋势.可借鉴的地方和其缺点: 主要介绍: Oracle Service Bus WebSphere Message Broker ...
- 几款开源ESB总线的比较(转)
现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,现在已经是百花争鸣的景象了.现在我就对现有的各种开源ESB总线依据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. CX ...
- ESB简介及选型(转) http://www.cnblogs.com/skyme/archive/2012/08/06/2623414.html
什么是ESB 企业服务总线(Enterprise Service Bus,ESB)的概念是从面向服务体系架构(Service Oriented Architecture, SOA)发展而来的.SOA描 ...
随机推荐
- gitolite随记
1.git clone源码 git clone git://github.com/sitaramc/gitolite 2.安装 gitolite/install -ln 3.建立git仓库 gitol ...
- android控制之 adb shell (已完成,不定期增加内容)
第一步:首先,下载adb1.0.32.zip,里面有如下图的内容: 第二步:解压缩,复制Adb.exe,和fastboot.exe到System32,注意AdbWinUsbApi.dll,AdbWin ...
- 引用 exit、return、_exit、_Exit这几个函数的区别
引用 exit.return._exit._Exit这几个函数的区别 一.exit函数和return函数的主要区别是: exit用于在程序运行的过程中随时结束程序,其参数是返回给OS的.也可以这么讲: ...
- sudo 无法解析主机的解决办法
错误存在于更改主机名字后,解决办法如下: sudo gedit /etc/hosts找到如下行:127.0.1.1 XXX将其修改为:127.0.1.1 (你现在的主机名) 保 ...
- [转]学DSP、FPGA、ARM,哪个更有前途?
1.这世界真是疯了,貌似有人连FPGA原理是什么都不知道就开始来学习FPGA了. 2.DSP就是一个指令比较独特的处理器.它虽然是通用处理器,但是实际上不怎么“通用”.技术很牛的人可以用DSP做一台电 ...
- javascript-ajax学习
/** * @todo 封装Ajax 传输类 * @param params:参数 * @example 用法: var mAjaxer = new Ajaxer(para ...
- Qt之四方分割器QuadSplitter
在Qt经常会用到分割器QSplitter,可以对多个控件进行水平或者垂直分割,但有一些特殊的需求无法满足,比如:四方分割...QuadSplitter是qt-apps里面的一个应用,挺不错的,拿来和大 ...
- sourceforge软件下载方式
访问http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/ 根据软件名称在文件列表中查找
- UVA 10594-Date Flow(无向图的最小费用网络流+题目给的数据有误)
题意:给一个有N个点的无向图,要求从1向N传送一定的数据,每条边的容量是一定的,如果能做到,输出最小的费用,否则输出Impossible. 解析:由于是无向图,所以每个有连接的两个点要建4条边,分别是 ...
- softlayer virtual machine vhd磁盘镜像导入shell脚本
脚本