在系统集成场景中,数据传输同步和异步是比较常见的两种传输模式。同步即 “请求-响应” 的方式,而异步传输则为单向传输,调用方不关注服务端的响应。
在单线程的模式下,同步传输需要将请求进行排队,即第一个请求响应并对响应进行处理完成之后,调用端发起第二次请求 。
相比同步传输的方式,在单线程模式下,异步传输不需要对请求进行排队,即第一个请求发出之后随即发出第二个请求,不需要等待第一个请求的响应。
以上就是在点对点集成的场景中同步/异步的实现方式。
在信息化高速发展的今天,面对各式各样的信息系统,点对点集成方式逐渐形成复杂的集成网,给企业信息系统集成管理带来越来越多的挑战。
为解决集成场景的管理和监控的问题,各类企业选择使用我们的iPaaS作为企业集成工作的基石,通过集成平台完成各个系统间的数据交易,进行集中管理。
同步/异步在我们的iPaaS中有多种集成方式,可以通过API编排完成系统之间的数据转换传输。如果系统API是较为标准的接口,则可以通过直接代理的方式将API接入iPaaS进行权限、安全控制和监管。
01 场景分析
同步场景
同步场景是在系统集成过程中比较常见的场景,例如OA的流程发起服务就是一个同步执行的场景:
OA的流程发起接口经过iPaaS编排并发布给调用方调用,调用方一般为内部的各个业务系统。
调用通过iPaaS传递OA的表单信息到OA系统,并保持和OA的连接,OA接到表单数据之后执行流程发起操作,发起成功后将流程的实例ID通过iPaaS响应给调用方。
整个过程调用方-iPaaS-OA始终保持连接,直到调用方收到流程实例请求断开连接或者中途程序报错。
异步场景
我们以较为常见的主数据同步的示例来讲解下,像是人员组织主数据、基本所有业务系统都需要使用到。
有的业务系统收到数据后需要对数据进行校验和本地化处理,花费的时间相对较长,有的系统做个简单的保存就行,那么数据源头系统(主数据系统)在同步数据的时候,需不需要每个系统的同步状态都记录一遍呢?
其实是不需要的,一方面:主数据只是数据的管理方,而不是数据的需求方,另一方面,因为目标系统比较多,因此主数据不会把所有系统的数据处理状态都做记录。
主数据下发通过我们的iPaaS进行下发就会简单得多,下面是人员组织下发的场景:
从图中可以看到,iPaaS的异步组件将MDM人员信息同步的过程分成了五个会话,一个是主数据到iPaaS平台的会话,iPaaS收到数据即回复数据接收成功,随即异步组件开启四个同步线程往CRM、SRM、ERP和MES同步人员信息,五个会话互相独立,互不影响。
02 实现方式
同步场景
同步场景可使用我们的iPaaS通过API编排的方式或API代理的方式实现。
API编排的方式
API编排的方式旨在解决系统之间数据规格不一致,需要转换交易的情况,操作步骤如下:
1.在开发方式上选择类型为编排。
2.通过配置简单配置完成数据转换和同步。
API代理的方式
如果系统两端的数据结构和标准一致,那么可以通过代理的方式代理API。
异步场景
异步场景可通过我们的iPaaS异步组件实现,也可以通过第三方的消息中间件(MQ)实现。
一般情况下,异步场景要求基于iPaaS集成的上下游业务进行隔离,目标系统的数据处理状态不能影响其他集成相关系统。以下是我们的iPaaS融合集成平台实现系统异步集成的方式:
通过异步组件集成
如图所示,异步执行的分支将在接口执行的时候独立运行,其运行状态,运行时长不会影响主流程的执行,因此将目标系统的数据发送组件放在异步分支中执行,可与上游发送数据的请求进行会话隔离,彼此互不影响。
通过MQ中转消息实现
如果数据源方发送的数据较为频繁,而数据目标方由于性能方面的考虑不能高频率接收数据时,可使用第三方消息中间件的方式缓冲数据。
另外,如果目标系统需要单条顺序处理数据,可以通过队列对数据进行排序下发。使用队列的方式,iPaaS数据接收和数据下发能够使用不同的线程处理,彼此事务分割。
操作时,首先可以使用AMQP组件将数据推送到队列中:
然后建立AMQP组件监听队列并通过HTTP组件下发到目标系统。
如果目标系统有多个,那么可以创建多个监听和下发,各个监听线程互相独立,互不影响。
以上就是使用iPaaS实现数据传输同步和异步的方式,我们的iPaaS可帮助企业在不同系统之间高效完成数据集成,以实现业务流程的自动化,从而减少人为错误的机会,降低运营成本。