1. 背景概述
相信了解数通畅联的人对AEAI ESB并不陌生,其设计器ESBDesigner中内置组件有:路由和转换、数据适配器、协议适配器、协议接入适配器等4类组件,每类组件下面包含各种类型的组件节点,可以使程序流程更直观,加快开发速度。
路由和转换中包含了三个节点分别为:分支路由、合并路由和 java转换,分支路由用于将一条线路分为多个支路,合并路由为将多条分支合并到一起,java转换节点可以进行变量的数据转换和赋值,并且在模型无法满足要求时支持代码扩展。本文档详细介绍一下路由和转换的机制,希望能为使用者提供帮助。
2. 预期读者
- 数通畅联内部技术人员
- 数通畅联合作伙伴技术人员
3. 名词解释
- ESB:Enterprise Service BUS企业服务总线,一般用作数据集成平台、应用集成平台。
- 分支路由:AEAI ESB 内置组件,用于将一条线路分为多个支路
- 合并路由:AEAI ESB 内置组件,将多条分支合并到一起
- java转换:AEAI ESB 内置组件,可以进行变量的数据转换和赋值,并且在模型无法满足要求时支持代码扩展
4. 组件介绍
4.1 分支路由
选择分支路由后只可以在“基本信息”中进行配置,用于将一条线路分为多个支路。
- 别名:此处可以填写汉字,可以使节点下方现在中文,便于更直观的此节点用途。
- 控制类型:点击下拉箭头后可以看到:and、xor、or三个可选项,and为所有分支线路都会走,xor的判断方式类似于if(){}else if(){}else{}的判断方式,or的判断方式类似于if( ){ }if( ){ }if( ){ }的判断方式,xor和or的判断走向需要与分支路由分出的线的基本信息配置进行配合使用,当点击线时,线的基本信息如下所示:
- 流转类型:点击流转类型的下拉箭头后会出现auto和condition选项,当对走向不需要做判断时,即可选择auto,当需要对走向做判断时,可以在条件表达式中添加判断。
- 条件表达式:当需要对走向进行判断,流转类型选为condition时,需要在此添加判断条件,此处只可以填写Boolean类型的变量表达式,点击“选择变量”进行选择。
描述:可以对此节点功能进行简单描述,方便自己和他人以后查看。
注意:
- 当控制类型为and时,分支流程为并发进行但是当分支流程为数据插入且数据源选择相同时系统会报错。
- 当控制类型为xor时流转类型比为condition且一定有判断条件
4.2 合并路由
合并路由为将多条分支合并到一起,使用方法与分支路由基本相同,可参见“分支路由”的介绍。
匹配分支:通过匹配分支选择当前的合并路由与哪个分支路由相匹配。
注意:
- 绝大部分的流程中分支路由与合并路由选择的控制类型是相同的,但是当只有合并没有分支时选择的控制类型便不相同。
- 当控制类型为“or”时需要选择匹配的分支路由如下:
4.3 java转换
可以进行变量的数据转换和赋值,并且在模型无法满足要求时支持代码扩展。
在类别选为赋值时,支持DataBox赋值给DataSet、DataBag赋值给DataRow、DataRow赋值给DataRow、DataSet赋值给DataSet,如果都不满足要求可以选择自动与代码赋值,点击“Next”为如下界面:
- 来源变量 类型:为上一步选择赋值变量类型自动填写的。
- 来源变量 表达式:此处通过点击“选择”按钮来选择来源变量。
- 目标变量 类型:如果目标变量已经存在可直接填下一个框,如果目标变量不存在,先点击下拉箭头选择目标变量类型,然后点击“创建”按钮填写变量名称。
- 如果目标变量已存在,可点击“选择”按钮进行选择变量。扩展代码:如果模板不满足实际条件时,可可选择扩展代码,进行写代码实现。 在类别选为转换时,支持DataSet转换为数据表格,DataSet转换为基本图表,DataSet转换为基本列表,如果都不满足要求可以选择自定义代码模板转换。
- DataSet转换为数据表格:将DataSet中的数据转换为JSON数据,点击“Next”为如下界面:
- DataSet转换为基本图表:将DataSet中的数据转换为XML数据,点击“Next”为如下界面:
- DataSet转换为基本列表:与 DataSet转换为基本图表用法基本相同,将数据转换为列表图形的XML格式。自定义代码模板转换:如果模板不满足实际条件时,可选择扩展代码,进行写代码实现。
5. 样例说明
5.1 多条件分支
分支路由到各分支的连接线是condition流转类型的,均有条件表达式。通过设置控制类型为xor(if(){}else if(){}else{}),达到不同的表达式结果限制流程的走向实现了分支路由的控制效果。
流程图如下:
在HttpRequest节点添加入参condition
点击分支路由节点设置控制类型为xor(if(){}else if(){}else{})如下图:
点击分支路由节点与分支节点之间的连线,分别设置流转类型为condition,并点击按钮添加条件表达式。
在HttpResponse节点打印信息执行完成,请查看控制台日志
测试结果如下:
5.2 多线程分支
流程图中,所有连接线均为auto流转类型的,即没有条件表达式。则所有流程都会走。
流程图如下:
点击分支路由节点设置控制类型为and(所有流程都会走)如下图:
点击分支路由节点与分支节点之间的连线,分别设置流转类型为auto。
在HttpResponse节点打印信息执行完成,请查看控制台日志
测试结果如下:
5.3 循环样例
使用合并路由和分支路由的组件,配合连接线的条件表达式,实现循环操作。
流程图如下:
在HttpRequest节点添加入参counter
创建全局变量如下:
初始化参数节点扩展代码如下:
获取HttpRequest传递的参数counter的值并存放在变量”counter”中
为变量”index”赋初始值为0
点击循环合并节点配置如下:
循环体节点打印循环的次数扩展代码如下:
点击循环分支节点配置如下:
循环分支与循环合并之间的节点连线配置如下:
在HttpResponse节点打印了循环变量如下图:
测试结果如下:
6. 感悟与收获
AEAI ESB主要用于集成各业务系统,实现异构系统的互联互通,笔者自知自身的知识积累不足但至入职接触AEAI ESB以来逐步学习进步,发现AEAI ESB不仅实现了图形化的交互方式,支持拖拽式创建Web服务、消息流程,便于快速构建,而且具有灵活的扩展性以及支持热部署的模式并且可以远程调试可以设置断点、逐步调试,便于准确调试定位。
相关推荐
wso2 esb协议转换示例,包含基本的配置,博客参考http://blog.csdn.net/szh1124/article/details/42126075
wso2 esb协议转换示例,包含基本的配置,博客参考http://blog.csdn.net/szh1124/article/details/43834487
wso2 esb协议转换示例,包含基本的配置,博客参考http://blog.csdn.net/szh1124/article/details/43834877
ESB产品说明,包括多个开源ESB产品说明
本项目是用mule3.9.0版本来做的一个服务与服务之间调用的demo。包括完整的项目源码和部署开发说明文档。测试服务项目和数据库。
ESB使用及普通服务配置说明ESB使用及普通服务配置说明
.由于现在的环境并没有使用数据库,基本上使用数据库都是通过插件来访问数据库。不过由于使用缓存,插件也是访问的缓存,而非直接访问数据库。
ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程ESB ESB技术学习教程
企业服务总线(Enterprise Service Bus) 是一个整合应用和服务的灵活的连接基础组织。...路由服务间的消息 转化请求者和服务之间的传输协议 转换请求者和服务之间的消息格式 处理分离资源间的业务事件
ESB 580电力线载波机简要说明 ESB 580电力线载波机简要说明
金蝶中间件(ESB)采用SOA架构实现,通过灵活的配置,可实现数据的采集、加工、转换、交换等,是系统整合或共享数据中心解决方案应用较好的工具之一,值得推荐!
随需应变银行核心业务系统 信息总线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服务”数据来源...
关于ESB项目的一些整理,工作原理之类。
ESB介绍和案例
esb的 实例 学习esb的初学者 可以看看
ESB原理及Mule ESB实践
WEBSERVICE调试工具-ESB消息统一推送接口调用说明,内附调试工具,开发webservice接口的同学可以下载
WSO2ESB安装部署说明,详细操作使用说明,图文教程
泛微OA抛转erp esb操作文档