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服务、消息流程,便于快速构建,而且具有灵活的扩展性以及支持热部署的模式并且可以远程调试可以设置断点、逐步调试,便于准确调试定位。
相关推荐
Mediator是ESB中处理消息的组件,它根据预定义的逻辑对消息进行修改、路由或转换。在这个示例中,我们可以使用Message Builder和Message Formatter,以及Message Store和Message Processor。 1. **Message Builder...
本示例将深入探讨如何在WSO2 ESB中实现消息路由,包括协议转换、数据转换和路由决策。 首先,理解ESB中的路由概念至关重要。消息路由涉及到接收来自不同源的消息,分析其内容,然后根据业务逻辑将其转发到适当的...
**WSO2 ESB 数据转换示例** WSO2 Enterprise Service Bus (ESB) 是一个功能强大的开源中间件,用于实现服务之间的集成和通信。它提供了多种数据转换能力,允许在不同格式、协议和系统之间无缝地传递信息。在这个...
通过本项目,你可以深入理解Mule ESB的工作机制,包括: 1. **服务的创建和部署**:学习如何定义服务,编写Mule配置文件,并将它们部署到Mule ESB服务器上。 2. **服务间通信**:研究如何在服务之间传递消息,包括...
【ESB连接缓存】与【WebSphere MQ】的相关知识点主要涉及企业服务总线(Enterprise Service Bus,ESB)中的缓存机制以及如何通过WebSphere MQ进行数据库连接配置。ESB通常用于集成不同系统,而缓存在此场景下起到...
### ESB产品说明:探索企业服务总线的关键组件 企业服务总线(ESB)作为现代企业集成架构的核心组成部分,其重要性不言而喻。本文将深入解析多个开源ESB产品的特性与功能,帮助读者更好地理解ESB在企业级应用中的...
- **路由与转换**: ESB负责将消息路由到正确的目的地,并根据需要转换消息格式。 - **服务注册与发现**: ESB维护服务的注册表,使得服务消费者能动态查找和调用服务。 - **安全性与管理**: ESB提供安全机制,如...
ESB通过提供一系列中间件功能,如路由、转换、事务管理等,使得不同技术栈的应用程序可以无缝协同工作。 《SOA集成:将ESB上的服务使用者与服务提供者分离》可能会探讨如何通过ESB实现服务使用者和服务提供者的逻辑...
5. **转换与路由**:在服务之间进行数据格式转换和智能路由,确保消息能正确到达目的地。 6. **安全与管理**:ESB提供安全控制,如身份验证和授权,同时具备服务注册、监控和管理功能。 **ESB的优势:** 1. **松...
6. **消息路由与转换**:介绍ESB中的路由策略,如内容基于路由、服务代理和转换规则的设置。 7. **事务处理与异常管理**:探讨OpenESB如何处理事务和错误,确保数据的一致性和可靠性。 8. **安全与监控**:阐述...
- **服务流设计**:设计服务的路由、转换和映射规则。 - **消息模式设计**:确定消息的发送和接收模式。 ##### 5. 接口设计 - **数据接口**:设计ESB与其他系统的接口,包括数据格式和传输协议。 - **适配器设计**...
* 服务路由:能够根据业务规则将请求路由到对应的服务上,实现服务的解耦。 * 服务安全:能够提供身份验证、授权和加密机制,保护服务免受未经授权的访问。 * 服务质量:能够提供服务的性能监控和优化,确保服务...
4. **智能路由和转换**:Mule ESB内置了强大的消息路由和转换机制,可以对数据进行处理和格式转换,确保不同系统间的数据一致性。 5. **安全性和监控**:提供全面的安全策略和监控工具,保障数据安全并确保系统的...
ESB还进行服务映射、协议转换,并支持各种应用程序服务器环境和语言接口。 4. **服务质量**:ESB确保事务处理、消息传递的可靠性,支持WS-Transaction等事务标准。它还提供各种确定的传递范例,如WS-...
服务总线(ESB)是企业架构中的关键组件,它通过提供统一的消息传递和转换机制,使得不同系统和服务之间可以进行通信。ESB充当了企业内部服务之间的“交通警察”,协调数据交换并隐藏后端系统的复杂性。 2. **...
Mule 通过 Transports/Connectors 与外围的异构系统连接,提供 Routing(路由)、Transaction Management(事务管理)、Transformation(转换) 、Message Broker(消息代理) 、Transportation Management(传输...
ESB的主要功能包括消息路由、转换、服务发现、安全管理和事务处理。通过提供这些服务,ESB使得应用程序能够以松散耦合的方式进行交互,降低了系统间的依赖性,增强了系统的灵活性和可维护性。 IBM的WebSphere ESB是...
ESB的核心概念是提供一个中间层,它作为不同应用系统之间的通信桥梁,通过消息传递和转换机制,使得异构系统能够相互通信。以下是一些关键知识点: 1. **消息传递**:ESB以消息为中心,通过消息队列和发布/订阅模型...
WSO2 ESB是基于Java和OSGi框架构建的,它提供了灵活的服务代理、路由、转换和协议适配等功能。作为中间件,WSO2 ESB能够处理不同系统的API调用,确保数据在异构环境中的无缝传输。它支持多种标准如SOAP、REST、JMS、...