基于区块链的业务应用集成方法、***、终端及存储介质
技术领域
本发明实施例涉及互联网技术领域,具体涉及一种基于区块链的 业务应用集成方法、***、终端及存储介质。
背景技术
区块链是指通过密码学技术、点对点网络、共识机制和按时序组 织的区块数据结构实现的具有去中心化、不可篡改性和可追溯性等特 征的分布式记账机制。
目前,为区块链与业务应用***提供连通服务的通道一般是区块 链网关,但是区块链网关提供连通服务主要是从区块链中获取数据提 供给业务应用***。而业务应用***端发送业务信息至区块链时,通 常需要配置额外的网关接口。由于业务应用***与区块链交互时的网 关接口不统一,使得业务应用***和区块链的数据格式不统一。业务 应用***至少包括一个业务应用模块,当应用模块与区块链进行数据 交互时,需要配置多种工具才能使业务应用模块与区块链相互连通, 配置多种工具使得成本大大增加。
发明内容
为了解决上述技术问题,本发明实施例提供了一种基于区块链的 业务应用集成方法、***、终端及存储介质。
本发明提供了一种基于区块链的业务应用集成方法,包括:
当接收到第一业务应用模块发送的协作请求时,通过与所述第一 业务应用模块相连的区块链集成中间件发送至区块链网络;
通过所述区块链集成中间件接收所述区块链网络发送的协作处 理结果,并发送至所述第一业务应用模块。
进一步地,所述方法还包括:
通过所述区块链集成中间件获取所述区块链网络中的协作请求, 并发送至与所述区块链集成中间件连接的第二业务应用模块;
将所述第二业务应用模块的协作处理结果通过所述区块链集成 中间件发送至所述区块链网络。
进一步地,在通过所述区块链集成中间件获取所述区块链网络中 的协作请求,并发送至与所述区块链集成中间件连接的第二业务应用 模块之前,所述方法还包括:
通过所述区块链集成中间件筛选所述区块链网络中的协作请求。
进一步地,所述方法还包括:
将业务应用模块发送的协作请求以及协作处理结果保存在所述 区块链集成中间件中;
将从所述区块链网络中获取的协作请求以及协作处理结果保存 在所述区块链集成中间件中。
进一步地,所述方法还包括:
将业务应用模块发送的协作请求以及协作处理结果,通过所述区 块链集成中间件转换成区块链网络数据格式,发送至区块链网络;
将从所述区块链网络中获取的协作请求以及协作处理结果,通过 所述区块链集成中间件转换成业务应用模块数据格式,发送至业务应 用模块。
本发明还提供了一种基于区块链的业务应用集成***,所述*** 包括:至少一个业务应用模块,以及分别与每个业务应用模块相连接 的区块链集成中间件;
所述业务应用模块通过所述区块链集成中间件连接至区块链网 络中;
所述区块链集成中间件,用于传输所述业务应用模块与所述区块 链网络之间的数据。
进一步地,所述区块链集成中间件包括:协作请求接收组件、转 换组件、协作请求发送组件、协作任务接收组件和协作任务执行组件;
所述协作请求接收组件,用于接收所述业务应用模块发出的业务 信息;
所述转换组件,用于转换所述接收组件接收的业务信息的格式, 以及转换所述协作任务接收组件从所述区块链网络中获取协作任务 的格式;
所述协作请求发送组件,用于将所述转换组件转换后的业务信息 发送至区块链网络;
所述协作任务接收组件,用于从所述区块链网络中获取协作任 务;
所述协作任务执行组件,用于将所述转换组件转换后的协作任务 发送至目标业务应用模块。
进一步地,所述区块链集成中间件还包括:协作业务数据库,
所述协作业务数据库,用于记录所述业务应用模块与所述区块链 网络交互的数据信息。
进一步地,所述区块链集成中间件还包括:协作业务模型库,
所述协作业务模型库包括所述业务应用模块中的数据源信息、数 据转换规则,以及从所述区块链网络中获取协作任务的过滤规则。
本发明还提供了一种终端,包括处理器、通信接口、存储器和通 信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间 的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述 的基于区块链的业务应用集成方法的步骤。
本发明还提供了一种存储介质,所述存储介质上存储有基于区块 链的业务应用集成方法程序,所述基于区块链的业务应用集成方法程 序被处理器执行时实现上述任一所述的基于区块链的业务应用集成 方法的步骤。
与最接近的现有技术相比,本发明实施例中当接收到业务应用模 块发送的协作请求时,通过与该业务应用模块相连接的区块链集成中 间件发送至区块链网络;然后通过区块链集成中间件接收区块链网络 发送的协作处理结果,并发送至业务应用模块。本发明实施例通过区 块链集成中间件将业务应用模块和区块链网络连接起来,并且可以实 现业务应用模块和区块链网络的双向交互,完成双向交互所需的数据 转换和服务路由功能,与现有技术相比,不需要增加额外的工具或在 业务应用模块中做集成处理,即可实现数据的双向交互,减小业务应 用模块集成到区块链网络中的成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或 现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员 来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其 他的附图。
图1是根据一示例性实施例示出的一种基于区块链的业务应用集 成方法的流程图;
图2是根据一示例性实施例示出的区块链与业务***集成中间件 的连接关系的示意图;
图3是根据一示例性实施例示出的基于区块链的业务应用集成系 统的示意图;
图4是根据一示例性实施例示出的一种终端的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结 合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、 完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不 是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没 有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明 保护的范围。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续 的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元” 的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此, “模块”与“部件”可以混合地使用。
本申请提供了一种基于区块链的业务应用集成方法,如图1所示, 解决业务应用***与区块链网络的集成问题,通过本发明中的通用可 配置的区块链网络与业务***集成中间件,避免或减少业务应用*** 端的集成开发工作,降低基于区块链的跨组织业务协作***的技术门 槛和建设成本。业务应用***中需要经由区块链网络处理的协作请 求,以及区块链网络上需要通过业务应用***处理的协作任务,都由 区块链集成中间件收集、路由、适配和分发。其中,业务应用***包 括至少一个业务应用模块。
在步骤S101中,当接收到第一业务应用模块发送的协作请求时, 通过与所述第一业务应用模块相连的区块链集成中间件发送至区块 链网络。
在本申请实施例中,当检测到业务应用模块有协作请求时,通过 区块链集成中间件从业务应用***收集需要发起的协作请求,并通过 区块链集成中间件对该协作请求进行数据转换,转换成区块链操作参 数,最后路由到区块链网络中。
在步骤S102中,通过所述区块链集成中间件接收所述区块链网络 发送的协作处理结果,并发送至所述第一业务应用模块。
在本申请实施例中,当检测到区块链网络中有与上述协作请求相 对应的协作处理结果时,通过区块链集成中间件接收区块链网络发送 的协作处理结果,然后进行数据转换后发送至与上述协作请求对应的 业务应用模块。
进一步地,本申请实施例通过区块链集成中间件实现业务应用模 块与区块链网络的数据交互。也就是,可以将业务应用模块中的业务 信息发送至区块链网络,也可以将区块链网络中的业务信息发送至业 务应用模块。
其中,业务信息可以包括协作请求,也可以包括与协作请求对应 的协作任务,还可以包括协作处理结果。
本申请实施例,当接收到业务应用模块发送的协作请求时,通过 与该业务应用模块相连接的区块链集成中间件发送至区块链网络;然 后通过区块链集成中间件接收区块链网络发送的协作处理结果,并发 送至业务应用模块。本发明实施例通过区块链集成中间件将业务应用 模块和区块链网络连接起来,并且可以实现业务应用模块和区块链网 络的双向交互,完成双向交互所需的数据转换和服务路由功能,与现 有技术相比,不需要增加额外的工具或在业务应用模块中做集成处 理,即可实现数据的双向交互,减小业务应用模块集成到区块链网络 中的成本。
在本申请的一个可能的实施方式中,区块链与业务***集成中间 件的连接关系及应用场景如图2所示,其中○一区块链集成中间件是区 块链与业务***集成中间件;二○业务应用***是跨组织协作业务参与 各方的相关业务应用***;○三区块链网络是跨组织协作业务参与各方 共同维护(或采用)的记录协作账本和运行协作合约的去中心化区块 链网络。
跨组织协作业务参与各方均包含有区块链集成中间件,作为内部 业务应用***与区块链网络之间双向连通的桥梁,业务应用***中需 要经由区块链网络处理的协作请求,以及区块链网络上需要通过业务 应用***处理的协作任务,都由区块链集成中间件收集、路由、适配 和分发。
如图2所示,跨组织协作业务参与方一通过区块链集成中间件从 业务应用***收集需要发起的协作请求①,并路由到对应的区块链操 作(通常是智能合约操作),将协作请求转换为区块链操作参数,最 终调用区块链相关操作②;跨组织协作参与方二作为该协作请求处理 方,通过区块链集成中间件监听区块链网络事件,获取协作请求任务 ③;路由到处理该任务的业务应用***相关服务,将协作任务转换为 业务应用***处理的数据格式,最终分发到业务应用***④;在业务 应用***完成任务处理后,通过任务完成后需触发的后续协作请求, 并执行后续协作请求,将协作处理结果发送至区块链集成中间件⑤; 区块链集成中间件将该协作处理结果转换成区块链操作参数发送到 区块链网络⑥;跨组织协作业务参与方一通过区块链集成中间件从区 块链网络中监听区块链网络事件,获取协作处理结果⑦;区块链集成 中间件将获取的协作处理结果转换成业务应用***处理的数据格式, 发送到业务应用***⑧。
本申请提供的集成中间件可以根据协作业务场景需要设置相应 的集成规则,如图2所示,除了上述的执行过程外,跨组织协作参与 方三作为上述协作任务相关方,可以通过业务集成中间件收集协作任 务,并将任务内容同步到内部业务***。
在本申请的一个具体实施方式中,该基于区块链的业务应用集成 方法,还可以包括:
通过所述区块链集成中间件获取所述区块链网络中的协作请求, 并发送至与所述区块链集成中间件连接的第二业务应用模块;
将所述第二业务应用模块的协作处理结果通过所述区块链集成 中间件发送至所述区块链网络。
在本申请实施例中,可以通过区块链集成中间件监听区块链网络 中的协作请求,当监听到协作请求时,将该协作请求进行数据转换, 并发送至与区块链集成中间件连接的业务应用模块。还可以通过区块 链集成中间件将业务应用模块的协作处理结果转换后发送至区块链 网络中。
进一步地,在通过所述区块链集成中间件获取所述区块链网络中 的协作请求,并发送至与所述区块链集成中间件连接的第二业务应用 模块之前,该基于区块链的业务应用集成方法,还可以包括:
通过所述区块链集成中间件筛选所述区块链网络中的协作请求。
也就是,区块链集成中间件还可以筛选区块链网络中的协作请 求,从很多个协作请求中筛选出与该区块链集成中间件连接的业务应 用模块可以处理的协作请求。
在本申请的一个可能的实施方式中,该基于区块链的业务应用集 成方法,还可以包括:
将业务应用模块发送的协作请求以及协作处理结果保存在所述 区块链集成中间件中;
将从所述区块链网络中获取的协作请求以及协作处理结果保存 在所述区块链集成中间件中。
在本申请实施例中,区块链集成中间件可以保存业务应用模块与 区块链网络交互过程中的各种数据信息。
在本申请的一个可能的实施方式中,该基于区块链的业务应用集 成方法,还可以包括:
将业务应用模块发送的协作请求以及协作处理结果,通过所述区 块链集成中间件转换成区块链网络数据格式,发送至区块链网络;
将从所述区块链网络中获取的协作请求以及协作处理结果,通过 所述区块链集成中间件转换成业务应用模块数据格式,发送至业务应 用模块。
在本申请实施例中,取快件集成中间件可以进行业务应用模块与 区块链网络间的数据格式的转换,以实现业务应用模块与区块链网络 间的数据交互。
基于与上述方法相同的发明构思,在本申请另一实施例中,还提 供了一种基于区块链的业务应用集成***,如图3所示,该基于区块 链的业务应用集成***包括:至少一个业务应用模块,以及分别与每 个业务应用模块相连接的区块链集成中间件;
业务应用模块通过区块链集成中间件连接至区块链网络中;
区块链集成中间件,用于传输业务应用模块与区块链网络之间的 数据。
在本申请的一个可能的实施方式中,区块链集成中间件具体包 括:协作请求接收组件、转换组件、协作请求发送组件、协作任务接 收组件和协作任务执行组件。
该协作请求接收组件被配置为接收业务应用模块发出的业务信 息。
该转换组件被配置为转换接收组件接收的业务信息的格式,以及 转换协作任务接收组件从区块链网络中获取协作任务的格式。
该协作请求发送组件被配置为将转换组件转换后的业务信息发 送至区块链网络。
该协作任务接收组件被配置为从区块链网络中获取协作任务。
该协作任务执行组件被配置为将转换组件转换后的协作任务发 送至目标业务应用模块。
在本申请的一个可能的实施方式中,区块链集成中间件还可以包 括:协作业务数据库。
该协作业务数据库被配置为记录业务应用模块与区块链网络交 互的数据信息。
在本申请的一个可能的实施方式中,区块链集成中间件还可以包 括:协作业务模型库。
该协作业务模型库包括业务应用模块中的数据源信息、数据转换 规则,以及从区块链网络中获取协作任务的过滤规则。
本申请提供的区块链与业务***集成中间件的主要组件及关系, 以及与相关外部***和组件的关系如图3所示。
主要组件包括:协作请求接收组件、协作请求处理组件、协作数 据转换组件、协作请求发送组件、协作任务接收组件、协作任务处理 组件、协作任务执行组件、协作业务模型库和协作业务数据库。
其中,协作请求接收组件用于从业务***收集需要记录到区块链 或触发区块链相关事件或合约的业务请求、业务消息或业务数据,并 将收集到的协作请求信息记录到协作业务数据库,协作请求接收组件 支持主动从消息中间件、数据库***等数据源按照协作业务模型库中 配置的规则主动获取数据,同时提供服务接口由业务应用***主动发 起协作请求。协作请求接收组件,用于接收所述业务应用模块发出的 业务信息。接收方式包括多种,可以是业务应用模块通过协作请求接 收组件提供的服务接口发送协作请求;还可以是协作请求接收组件基 于协作业务模型库中配置信息从业务应用模块的数据库或消息中间 件中提取协作请求。
协作请求处理组件负责协作请求的处理调度,主要基于协作业务 模型库中配置的规则信息实现协作请求的路由调度,以及调用协作数 据转换组件和协作请求发送组件完成数据转换以及分发调度,并将处 理协作请求处理结果记录到协作业务数据库。
协作数据转换组件实现基于传入的数据文法映射规则实现数据 的转换,用于实现业务***与区块链之间的双向数据转换。
协作请求发送组件实现将协作请求发送到区块链网络,具体是通 过区块链客户端触发区块链事件或调用区块链智能合约,协作请求发 送组件所需的签名私钥等资源通过协作业务模型库里存储的资源或 资源描述信息提供。
协作任务接收组件根据协作业务模型库里的相关任务过滤规则, 通过区块链客户端,从区块链中监听收集相关的协作任务,并记录到 协作业务数据库。
协作任务处理组件负责协作任务的处理调度,主要是基于协作业 务模型库中配置的规则信息实现协作任务的路由调度,以及调用协作 数据转化组件和协作任务执行组件完成任务数据转换以及任务分发 调度,并将协作任务处理结果记录到协作业务数据库。
协作任务执行组件负责将协作任务分发到对应的内部业务应用 ***,由内部业务应用***完成任务处理,支持调用业务服务接口、 推送到消息中件件、写入到数据库等常见分发方式。协作任务执行组 件,用于将转换组件转换后的协作任务发送至目标业务应用模块。发 送方式包括多种,可以是协作任务执行组件通过调用业务应用模块服 务接口发送协作任务;也可以是协作任务执行组件基于协作业务模型 库中配置信息将协作任务写入到业务应用模块的数据库或消息中间 件。
协作业务模型库是区块链集成中间件运行的规则知识库,包含业 务应用***中服务接口、消息中件间、业务数据库等数据源信息;从 业务应用数据源获取协作任务的采集规则;内部业务***与区块链之 间的数据文法映射规则;从区块链网络获取协作任务的过滤规则;协 作请求到区块链网络操作(智能合约)以及区块链网络事件到内部业 务***的路由规则等。
协作业务数据库是区块链集成中件间的业务数据库,存储参与组 织发起的协作请求和处理的协作任务的状态信息。
在本申请另一实施例中,还提供了一种终端,如图4所示,包括 处理器501、通信接口502、存储器503和通信总线504,其中,处理器 501,通信接口502,存储器503通过通信总线504完成相互间的通信;
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下步 骤:
当接收到业务应用模块发送的协作请求时,通过与所述业务应用 模块相连的区块链集成中间件发送至区块链网络;
通过所述区块链集成中间件接收所述区块链网络发送的协作处 理结果,并发送至所述业务应用模块。
上述电子设备提到的通信总线504可以是外设部件互连标准 (PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结 构(Extended IndustryStandard Architecture,简称EISA)总线等。该通 信总线504可以分为地址总线、数据总线、控制总线等。为便于表示, 图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总 线。
通信接口502用于上述电子设备与其他设备之间的通信。
存储器503可以包括随机存取存储器(Random Access Memory,简 称RAM),也可以包括非易失性存储器(non-volatile memory),例如至 少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述 处理器的存储装置。
上述的处理器501可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP) 等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、 专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现 场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他 可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请另一实施例中,还提供了一种存储介质,所述存储介质 上存储有基于区块链的业务应用集成方法程序,所述基于区块链的业 务应用集成方法程序被处理器执行时实现上述任一所述的基于区块 链的业务应用集成方法的步骤。
本发明实施例在具体实现时,可以参阅上述各个实施例,具有相 应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、 中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在 一个或多个专用集成电路(Application Specific Integrated Circuits, ASIC)、数字信号处理器(DigitalSignal Processing,DSP)、数字信号 处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable GateArray, FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申 请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述 的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以 在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描 述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和 电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行, 取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不 应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁, 上述描述的***、装置和单元的具体工作过程,可以参考前述方法实 施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法, 可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示 意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实 现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以 集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显 示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些 接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它 的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分 开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以 位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的 需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理 单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单 元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销 售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的 理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的 部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算 机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算 机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各 个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、 移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的 介质。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何 其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过 程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列 出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固 有的要素。在没有更多限制的情况下,由语句“包括一个……”限定 的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存 在另外的相同要素。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关 系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来, 而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关 系或者顺序。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解 到本发明各个实施例所述的方法可借助软件加必需的通用硬件平台 的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实 施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技 术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产 品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干 指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器, 或者网络设备等)执行本发明各个实施例所述的方法或者实施例的某 些部分所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范 围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变 换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明 的专利保护范围内。