一种数据交换方法、装置、电子设备及存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据交换方法、装置、电子设备及存储介质。
背景技术
随着技术发展,业务需求复杂性的增加,需要部署越来越多应用***。原来在一个应用***中可以完成的业务流程,现在则需要在多个应用***之间通过多次交互来实现。各个应用***之间的联系非常密切,频繁进行数据交换。
一般情况下,每两个应用***之间需设置数据交换***,用来处理不同应用***之间的数据交换。但是,由于各应用***的数据内容、格式等方面存在差异,不同应用***之间进行数据交换的方式也各异。在实现本发明过程中发明人发现,当***数量较多时,开发人员需要对每两个应用***之间都开发一套数据交换***,工作量较大。并且,有的应用***之间数据交换相似度较高,开发人员重复工作较多。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种数据交换方法、装置、电子设备及存储介质。
第一方面,本申请实施例提供了一种数据交换方法,对异构的第一应用***和第二应用***进行数据交换,所述方法包括:
获取所述第一应用***的待交换数据;
确定所述待交换数据对应的路由组件;
通过所述路由组件对所述待交换数据进行处理,得到处理后的目标数据;
将所述目标数据发送到所述第二应用***。
可选的,所述获取所述第一应用***的待交换数据,包括:
获取所述待交换数据在所述第一应用***中的地址信息;
根据所述地址信息从所述第一应用***获取所述待交换数据。
可选的,所述确定所述待交换数据对应的路由组件,包括:
确定所述待交换数据所要交换到的第二应用***;
获取所述待交换数据的源传输协议及目标传输协议;
根据所述源传输协议及目标传输协议从组件库中匹配所述待交换数据对应的路由组件。
可选的,所述确定所述待交换数据对应的路由组件,包括:
获取对组件选项的选定操作;
确定被选定的所述组件选项对应的路由组件为所述待交换数据对应的路由组件。
可选的,所述方法还包括:
获取各个应用***的传输协议;
根据所述传输协议确定不同应用***之间进行数据交换的数据处理规则;
将所述数据处理规则对应的数据处理操作封装成所述路由组件;
将所述路由组件存储到组件库中。
可选的,所述路由组件包括:
数据传输组件、数据加解密组件及格式转换组件。
第二方面,本申请实施例提供了一种数据交换装置,包括:
第一获取模块,用于获取第一应用***的待交换数据;
第一确定模块,用于确定所述待交换数据对应的路由组件;
处理模块,用于通过所述路由组件对所述待交换数据进行处理,得到处理后的目标数据;
发送模块,用于将所述目标数据发送到第二应用***。
可选的,所述装置还包括:
第二获取模块,用于获取各个应用***的传输协议;
第二确定模块,用于根据所述传输协议确定不同应用***之间进行数据交换的数据处理规则;
封装模块,用于将所述数据处理规则对应的数据处理操作封装成所述路由组件;
存储模块,用于将所述路由组件存储到组件库中。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
根据所要交换的待交换数据确定数据交换平台上对应的路由组件,通过路由组件对待交换数据进行处理,得到目标应用***所支持的目标数据。这样,研发人员无需在每两个异构应用***之间都开发一套用于数据交换的组件,通过一个数据交换平台统一进行异构应用***之间的数据处理,提高数据交换效率,降低研发人员工作量,尤其降低重复工作。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据交换***的结构示意图;
图2为本申请实施例提供的一种数据交换方法的流程图;
图3为本申请另一实施例提供的一种数据交换方法的流程图;
图4为本申请实施例提供的数据交换平台的界面示意图;
图5为本申请另一实施例提供的数据交换平台的界面示意图;
图6为本申请另一实施例提供的数据交换平台的界面示意图;
图7为本申请实施例提供的一种数据交换装置的框图;
图8为本申请另一实施例提供的一种数据交换装置的框图;
图9为本申请实施例提供的一种数据交换平台的框图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本实施例中,应用***为对用户提供服务的信息***,如基金销售***、信贷***等。由于有的应用***需要使用其他应用***提供的数据才能为用户提供相关的服务,因此,应用***之间的存在数据交换的需要。
但是,异构的应用***之间无法进行直接的数据交换。***异构,指的是两个应用***存在所运行的计算机体系结构不同、操作***不同或数据模式不同等等。由于***异构差异导致两个应用***之间不能直接进行数据交换,需要基于两者数据格式、加解密、传输方式的不同,对所需交换的数据进行处理。本申请实施例在异构应用***之间,设置统一的数据交换平台,对异构应用***之间的待交换数据进行处理。
图1为本申请实施例提供的数据交换***的结构示意图。如图1所示,任意两个应用***20a、20b、20c、……之间,通过数据交换平台10实现数据交换。
本实施例中,根据各个应用***的内置标准格式(Inner Message),将应用***之间进行数据交换的数据处理操作组件化,即将每一项数据处理操作都封装成路由组件(Component),或者也可以将关联度较高的两项或两项以上的数据处理操作封装成一个组件。例如,文件传输、加解密、数据转换等操作都被封装成一个个组件,存储在数据交换平台10的组件库中。
路由组件包括以下几种类型的组件:数据传输组件、数据加解密组件及格式转换组件。
数据传输组件包括:HTTP组件、SFTP组件、DUBBO组件、MYSQL数据读写组件等等。
数据加解密组件包括:DES加密组件、MD5验签组件等。
格式转换组件可以包括提供模板配置的组件,如将竖线分割文本转换为定长文本文件或者转为excel文件的组件等等,可根据需求进行配置。
组件库中还可包括常见的HTTP、SFTP、MQ等协议对应的路由组件。
数据交换平台10通过路由组件,可以实现异构应用***之间跨协议的数据交换。
这样,研发人员无需在每两个异构应用***之间都开发一套用于数据交换的组件,通过一个数据交换平台统一进行异构应用***之间的数据处理,提高数据交换效率,降低研发人员工作量,尤其降低重复工作。
下面对本发明实施例所提供的一种数据交换方法进行介绍。
图2为本申请实施例提供的一种数据交换方法的流程图。如图2所示,该方法对异构的第一应用***和第二应用***进行数据交换,包括以下步骤:
步骤S11,获取第一应用***的待交换数据。
其中,该待交换数据可以是用户从第一应用***上传到数据交换平台,也可以是在数据交换平台上输入待交换数据在第一应用***中的地址信息,由数据交换平台根据地址信息从第一应用***获取该待交换数据。
可选的,用户可以仅在第一应用***上提出将待交换数据从第一应用***推送到第二应用***的推送请求,由第一应用***将待交换数据传输到数据交换平台,而不是用户主动将数据上传到平台,即数据交换的具体过程用户无感知。
步骤S12,确定待交换数据对应的路由组件。
路由组件的确定方式有多种,可以由用户自己选定,还可以由数据交换平台根据待交换数据格式及目标传输协议进行推荐。
步骤S13,通过路由组件对待交换数据进行处理,得到处理后的目标数据。
步骤S14,将目标数据发送到第二应用***。
本实施例中,根据所要交换的待交换数据确定数据交换平台上对应的路由组件,通过路由组件对待交换数据进行处理,得到目标应用***所支持的目标数据。这样,研发人员无需在每两个异构应用***之间都开发一套用于数据交换的组件,通过一个数据交换平台统一进行异构应用***之间的数据处理,提高数据交换效率,降低研发人员工作量,尤其降低重复工作。
本实施例中,在数据交换平台上,需要预先构建组件库。图3为本申请另一实施例提供的一种数据交换方法的流程图。如图3所示,该方法还包括:
步骤S21,获取各个应用***的传输协议;
步骤S22,根据传输协议确定不同应用***之间进行数据交换的数据处理规则;
步骤S23,将数据处理规则对应的数据处理操作封装成路由组件;
步骤S24,将路由组件存储到组件库中。
本实施例中,预先在数据交换平台中构建组件库,将异构应用***之间数据交换所需的数据处理操作都封装为路由组件存储在组件库中,这样,后续在异构应用***之间进行数据交换时,可以调用组件库中的路由组件进行处理,无需研发人员手动编写代码,提高数据交换效率,降低研发人员工作量,尤其降低重复工作。
可选的,步骤S11包括:获取待交换数据在第一应用***中的地址信息;根据地址信息从第一应用***获取待交换数据。
图4为本申请实施例提供的数据交换平台的界面示意图。如图4所示,在该界面上,用户可以输入待交换数据的地址信息。如第一应用***内置的标准格式(图4中的“文件源类型”)为安全文件传送协议(Secret File Transfer Protocol,简称SFTP),则用户输入待交换数据的SFTP-IP地址(图4中的“文件sftp-ip地址”)及SFTP端口号(图4中的“sftp端口号”)等地址信息。数据交换平台则可根据SFTP-IP地址及SFTP端口号从第一应用***中获取该待交换数据。
可选的,在图4的界面中,还可输入数据交换所需的其他配置信息,如“服务名称”、“处理时间类型”等等。
可选的,用户也可在数据交换平台上设定新的数据格式。图5为本申请另一实施例提供的数据交换平台的界面示意图。如图5所示,在该界面上,用户可以设定文件格式对应的“模板编号”。例如,设定模板编号“yhlc_income”对应的文件解析类别为“文件体解析”,用户还可在界面上设定“映射列字段定义”的具体内容。如果用户对模板原有“映射列字段定义”中的内容进行了修改,则生成该模板对应的新的路由组件,并存储在组件库中。
在一个可选实施例中,上述步骤S12中,在数据交换平台上,确定待交换数据对应的路由组件,包括以下至少一种方式:
方式一,数据交换平台自动根据待交换数据的属性从组件库中选择路由组件。
上述步骤S12包括:
步骤A1,确定待交换数据所要交换到的第二应用***;
步骤A2,获取第一应用***对应的源传输协议及第二应用***对应的目标传输协议;
步骤A3,根据源传输协议及目标传输协议从组件库中匹配待交换数据对应的路由组件。
可选的,步骤A1包括:根据接收到的数据推送请求或数据订阅请求确定待交换数据对应的第二应用***。
其中,推送请求可以由数据提供方发送,订阅请求可由数据接收方发送。
例如,数据交换平台接收到数据提供方发送的对待交换数据的推送请求,该推送请求中包含该待交换数据所处的第一应用***信息以及所要发送到的第二应用***信息。数据交换平台确定要将该待交换数据从第一应用***路由到第二应用***。
又例如,数据提供方仅将待交换数据从第一应用***上传到数据交换平台或是将待交换数据在第一应用***中的地址信息发送到数据交换平台,而未指定将待交换数据发送到哪个应用***。数据交换平台接收到数据接收方发送的对该待交换数据的订阅请求时,可根据订阅请求确定数据接收方所处的第二应用***,进而确定要将该待交换数据从第一应用***路由到第二应用***。
其中,源传输协议即包括待交换数据在第一应用***中的内置标准格式、加解密方式及传输方式等等,而目标传输协议包括第二应用***中的内置标准格式、加解密方式及传输方式等等。数据交换平台根据这些信息,可以自动推荐将数据从第一应用***传输到第二应用***的所需的路由组件。
例如,第一应用***为外部金融合作方(如基金公司)***,按日通过SFTP提供超过10G的文件数据,第二应用***为内部结算***,需要对文件数据进行处理;
内部结算结算在使用本平台时只需提供如下信息:
1、***处理时间:根据提供的参数,数据交换平台自动选择调度组件作为调度入库。
2、待处理文件样例:数据交换平台根据文件样例信息自动生成文件模板信息。
3、提供传输协议为SFTP,提供相关IP及密钥文件:数据交换平台根据这些参数自动选择SFTP组件,并加载相关参数信息,作为接入端组件。
4、提供内部结算***地址及数据接收方式:需要使用MQ异步分布式处理的方式处理。数据交换平台自动加载MQ组件,并加载相关订阅主题参数,作为接收端组件。
根据上述4项信息,数据交换平台自动形成完整路由规则供用户使用:调度组件->SFTP组件->文件数据转换组件->MQ发送组件。在此直接发布改路由即可开始数据处理,内部结算***只需关注自己的数据处理逻辑,数据无缝传输、转换就完成了。
方式二,用户可以选择所需的路由组件。
该数据交换平台提供用户交互界面,在该界面上,用户可以选择组件库中各个路由组件对应的选项,已选定所需路由组件。
上述步骤S12包括:获取对组件选项的选定操作;确定被选定的组件选项对应的路由组件为待交换数据对应的路由组件。
可选的,用户也可在平台中设置常用的路由组件集合,并设置路由组件集合对应的名称,这样,下次使用时可以直接通过名称查询到该路由组件集合。
可选的,数据交换平台也会记录用户历史选择的路由组件,并提供历史记录的界面,用户可以通过查找历史记录选择路由组件。
另外,在上述方式一中,若数据交换平台推荐的路由组件不满足用户需求,用户也可在推荐的基础上选择所需的路由组件。
图6为本申请另一实施例提供的数据交换平台的界面示意图。如图6所示,在该界面上,用户可以通过输入或选择编号或名称来选择路由组件。例如,用户选择的路由组件的路由编号为“FCDoneFileRouter”,路由名称为“生产空文件并上传sftp路由”,界面上还显示出其路由配置的具体内容。
可选的,路由配置可以由用户输入,如用户可以新建一个路由,定义其名称及具体配置内容。
本实施例中,通过数据交换平台上的用户交互界面,可以快速实现对路由组件的配置,从而提高数据交换的效率,并且用户操作方便,无需编程。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图7为本申请实施例提供的一种数据交换装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图7所示,该数据交换装置应用于数据交换平台,包括:
第一获取模块71,用于获取第一应用***的待交换数据;
第一确定模块72,用于确定待交换数据对应的路由组件;
处理模块73,用于通过路由组件对待交换数据进行处理,得到处理后的目标数据;
发送模块74,用于将目标数据发送到第二应用***。
图8为本申请另一实施例提供的一种数据交换装置的框图,如图8所示,该装置还包括:
第二获取模块75,用于获取各个应用***的传输协议;
第二确定模块76,用于根据传输协议确定不同应用***之间进行数据交换的数据处理规则;
封装模块77,用于将数据处理规则对应的数据处理操作封装成路由组件;
存储模块78,用于将路由组件存储到组件库中。
图9为本申请实施例提供的一种数据交换平台的框图,如图9所示,该数据交换平台10包括:文件解析路由11和文件生成路由12。
其中,文件解析路由11包括:文件下载组件111、第一文件转换组件112和消息队列发送组件113。数据交换平台可以基于用户输入的地址信息通过文件下载组件111从第一应用***20a下载待交换数据,经第一文件转换组件112的处理后,通过消息队列发送组件113发送到第二应用***20b。
文件生成路由12包括数据接收组件121、第二文件转换组件122和文件推送组件123。文件生成路由12将第二应用***20b上传的数据处理后发送到第一应用***20a。用户可以通过第二应用***20b将待交换的待交换数据上传至数据交换平台,数据交换平台通过数据接收组件121接收到待交换数据后,经第二文件转换组件122处理后,通过文件推送组件123推送到第一应用***20a。
可选的,文件解析路由11和文件生成路由12均为由多个路由组件组成的集合,分别对应于从第一应用***到第二应用***的数据交换的处理规则以及从第二应用***到第一应用***的数据交换的处理规则。实际上,每个处理规则所对应的组件集合并不限于接收、转换、发送这三个组件,还可包括其他处理操作所对应的组件。
本实施例中,数据交换平台10还可以与MySQL数据库30a和/或MongoDB数据库30b连接。
其中,MySQL数据库为一个关系型数据库,数据交换平台10通过MySQL数据库30a进行控制数据的转换。MongoDB数据库是一个基于分布式文件存储的非关系型数据库,数据交换平台10通过MongoDB数据库30b临时存储文件/数据。
可选的,数据交换平台可以与其他多种类型的数据库连接,如SQL Server、Oracle、Sybase、DB2、Memcached和Redis等等,在这些数据库中进行数据存储、管理等。
本实施例中,第一应用***20a可以提供支持以下至少一种协议的数据源服务:SFTP、HTTP、MySQL、Mongo、HBase等等。
本申请实施例还提供一种电子设备,如图10所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,P C I)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。