一种数据共享方法及装置与流程

文档序号:16686799发布日期:2019-01-22 18:24阅读:175来源:国知局
一种数据共享方法及装置与流程

本申请涉及通信领域,尤其涉及一种数据共享方法及装置。



背景技术:

企业在生产运营过程中会产生大量有价值的数据,这些数据是企业的重要资产。一方面,企业可以使用这些数据优化自身运营/管理流程,提高生产效率,另一方面,企业的这些数据对第三方企业来说具有极大价值,具有潜在变现的可能。然而,企业在生产过程中产生的不同数据可能存在于不同的管理域,数据之间虽存在关联却由不同实体管理,共享效率不高,形成数据孤岛。

为了避免孤岛现象,提高数据之间的共享效率,目前提出一种中心化结构的数据共享平台,在这种数据共享平台上,数据消费方可以获取数据提供方提供的共享数据,因此,提高了共享数据的利用率。但是,通常中心化结构的数据共享平台中,对于数据提供方的数据保护力度较小,可能存在非法数据消费方在获取共享数据后,将共享数据用于非法用途中或者二次转售。由此可见,目前中心化结构的数据共享方式安全性较低,也缺乏对数据流转的有效审计手段。



技术实现要素:

本申请提供一种数据共享方法及装置,能够解决中心化结构的数据共享方式中数据安全性较低的问题。

为达到上述目的,本申请采用如下技术方案:

第一方面,本申请提供一种数据共享方法,该方法包括:数据开放平台接收所述数据消费端的数据操作消息,所述数据操作消息用于指示共享数据的操作方式;所述数据开放平台根据所述数据操作消息对所述共享数据进行处理;所述数据开放平台向所述数据消费端发送基于共享数据的处理结果。

第二方面,本申请提供一种数据开放平台,包括:接收模块、处理模块和发送模块。

其中,接收模块,用于接收所述数据消费端的数据操作消息,所述数据操作消息用于指示共享数据的操作方式;处理模块,用于根据所述数据操作消息对所述共享数据进行处理;发送模块,用于向所述数据消费端发送基于共享数据的处理结果。

第三方面,本申请提供一种数据开放平台,该数据开放平台包括:处理器、收发器和存储器。其中,存储器用于存储一个或多个程序。该一个或多个程序包括计算机执行指令,当数据开放平台运行时,处理器执行该存储器存储的该计算机执行指令,以使数据开放平台执行第一方面及其各种可选的实现方式中任意之一所述的数据共享方法。

第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当数据开放平台执行该指令时,该数据开放平台执行上述第一方面及其各种可选的实现方式中任意之一所述的数据共享方法。

第五方面,本申请提供一种通信系统,该通信系统包括区块链节点、数据提供端、数据消费端和第二方面及其各种可选的实现方式中任意之一所述的数据开放平台。

本申请实施例提供的数据共享方法,当数据消费端有数据共享使用需求时,向数据开放平台发送数据操作消息,由数据开放平台根据该数据操作消息对共享数据进行处理,并由数据开放平台向数据消费端发送处理后的结果,整个流程中,数据消费端仅仅能获取到基于共享数据的处理结果,不获取原始的共享数据,因此,在实现数据共享的同时,通过避免数据消费端直接获取原始的共享数据,减少了原始共享数据泄露的风险,提升了数据共享中的数据安全性。

附图说明

图1为本申请实施例提供的系统结构示意图;

图2为本申请实施例提供的数据开放平台的示意图;

图3为本申请实施例提供的共享数据上传流程的示意图;

图4为本申请实施例提供的数据共享方法的流程图;

图5为本申请实施例提供的数据共享方法的流程图;

图6为本申请实施例提供的数据开放平台的结构图一;

图7为本申请实施例提供的数据开放平台的结构图二;

图8为本申请实施例提供的数据开放平台的结构图三。

具体实施方式

下面结合附图对本申请实施例提供的数据共享方法及装置进行详细地描述。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。

此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。

本申请实施例提供的数据共享方法可以应用于图1所示的系统中,如图1所示,该系统可以包含:数据提供端101、区块链节点102、数据消费端103、数据开放平台104、链下存储模块105。

其中,数据提供端101为共享数据的提供端。用户可通过数据提供端101将可用于共享的数据上传,该共享数据可上传至区块链节点,并由区块链节点存储至区块链账本并同步更新到区块链状态数据库,也可将共享数据的摘要信息存储至区块链账本而原始数据存储在链下存储模块105。也就是,根据实际应用场景,数据提供端101可将共享的原始数据上链,也可将共享数据摘要信息上链而原始数据存储在链下,这里,数据上链指的是将数据上传至区块链的账本或者状态数据库,这里统一作出说明,下文不再赘述。

区块链节点102用于接收数据提供端101上传的共享数据,并将共享的原始数据存储至区块链节点中的区块链账本10221中,并同步到区块链节点中的状态数据库10222中。可选的,区块链节点为区块链技术中的peer节点,关于peer节点的具体描述可参见现有区块链技术,本申请实施例不再赘述。区块链节点102也可在区块链账本10221中存储共享数据关键摘要信息,共享数据摘要信息包括共享数据的简单介绍、数据格式、有效周期、价格、数据摘要、数据存储地址等;其中数据存储地址指向了数据在链下存储模块105的地址。

其中,区块链节点102中部署有智能合约1021,智能合约是一种程序代码,当智能合约被调用时,可对区块链账本10221及状态数据库10222中的共享数据进行读取和写入。

数据消费端103用于向数据开放平台104发送对共享数据进行操作的程序代码,以使得数据开放平台104根据该程序代码在运行环境中对共享数据进行操作、处理,之后,数据消费端可得到数据开放平台104发送的基于共享数据的处理结果,完成数据共享使用流程。这里,数据消费端103不具备直接获取共享数据的权限,即数据消费端103不能通过访问智能合约直接读取区块链节点中存储的原始共享数据,也不能直接读取链下存储模块中存储的共享数据。

数据开放平台104用于提供获取共享数据的接口,还用于提供程序代码执行的运行环境、计算资源,进而当接收到来自数据消费端103的用以操作共享数据的程序代码之后,可在运行环境中处理共享数据,并将处理结果返回给数据消费端103,满足数据消费端103的数据共享需求。

示例性的,如图2为本申请实施例提供的一种数据开放平台的示意图。该数据开放平台包括数据读取模块、数据寻址模块、数据搜索模块及代码执行环境模块。

其中,数据读取模块提供从区块链账本、区块链状态数据库、或链下存储模块读取共享数据的功能;数据寻址模块提供寻址链下存储模块中存储的共享数据的功能;数据搜索模块根据数据消费端提供的关键字搜索区块链账本并返回数据描述;代码执行环境模块为数据消费端上传的数据分析代码提供可执行环境及计算、存储等资源。

链下存储模块105用于存储共享数据。链下存储模块105包括数据访问应用程序编程接口(applicationprogramminginterface,api)模块1051和数据存储模块1052。其中,数据访问api模块1051用于响应数据开放平台104的调用请求,从而访问数据存储模块1052中存储的共享数据。

可选的,以集群方式存储共享数据,可将共享数据分布式的存储在多个链下存储模块105中,以提升系统的容错性。

在一种可能的应用场景中,本申请实施例的技术方案支持个人或者企业级别的数据共享,也就是,可以将个人数据共享,也可以是将企业数据共享,相应的,支持个人或者企业级别的数据消费,也就是,可以使用个人的共享数据,也可以使用其他企业、组织机构等的共享数据。

如此,上述数据提供端101、数据消费端103可以是个人级别的用户设备(userequipment,ue),如:手机、电脑,个人数字助理(personaldigitalassistant,pda)、膝上型计算机等。例如,个人用户a通过电脑上传可用于共享的数据,进而,其他个人或者组织机构等可通过本申请实施例提供的技术方案使用该共享数据。当然,上述数据提供端101、数据消费端103还可以是具有更强读写功能的设备,例如,可以为超级计算机。本申请实施例不对上述数据提供端101、数据消费端103的具体实现形态做出限定,任何具有通信功能的设备均可作为本申请实施例中的数据提供端和数据消费端。

上述数据开放平台104可以是硬件设备中的网络元件,也可以是在硬件设备上运行的软件功能,或者是平台(例如,云平台)上实例化的虚拟化功能。

需要说明的是,图1仅为示例性架构图,除图1中所示设备或软件功能之外,该系统还可以包括其他设备或软件功能等,本申请实施例对此不进行限定。

首先给出本申请实施例的共享数据上传流程,该流程为数据共享技术方案的基础,如图3所示,以区块链节点为peer节点、且共享数据上传至peer节点为例,共享数据上传流程包括如下步骤:

s301、数据提供端向peer节点发起部署智能合约的请求,该请求中携带待部署的智能合约的安装包。

s302、数据提供端向peer节点上传共享数据。

具体的,数据提供端调用智能合约上传该共享数据。以触发peer节点通过共识机制将该共享数据存储在区块链账本中。可选的,区块链节点还将共享数据存储在本地的状态数据库中。其中,关于区块链技术中的共识机制的详细介绍可参见现有技术,本申请实施例不再赘述。

需要说明的是,上述智能合约可以为通用型智能合约,这样,数据提供端调用该智能合约时,可直接将共享数据存储在peer节点中。智能合约还可以为具有权限的智能合约,这样,数据提供端调用该具有权限的智能合约时,智能合约先对数据提供端进行认证、鉴权,只有在确定数据提供端的身份合法后,该智能合约才将数据提供端的共享数据上传到peer节点账本中。

需要说明的是,数据提供端可以向peer节点上传共享数据的摘要信息,而将原始数据存储在链下。共享数据摘要信息可参见上文描述,这里不再赘述。

本申请实施例提供一种数据共享方法,如图4所示,该方法可以包括s401-s405:

s401、数据消费端向数据开放平台发送数据共享请求。

相应的,数据开放平台接收该数据共享请求。

其中,该数据共享请求携带搜索关键字,搜索关键字用以描述所需共享数据的特征。特征包括数据格式、数据周期,数据提供端标识等。数据提供端标识例如可以为数据提供端的地址、数据提供端的设备号等,本申请实施例对比不进行限制。

举例来说,区块链账本中存储来自不同数据提供端的多个共享数据,用户根据自身业务需求,通过在数据消费端输入关键字触发数据消费端查找所需的共享数据的流程。假定当前存在企业1提供的多个用户消费账单的共享数据、个人用户1提供的网购交易的共享数据、个人用户2提供的手机话费的共享数据。数据消费端为金融机构终端,该数据消费端期盼通过每一用户的消费情况了解用户的信用是否良好,则该数据消费端可通过携带关键字“消费账单”的数据共享请求,请求数据开放平台遍历账本获得“消费账单”相关的共享数据列表。

s402、数据开放平台获取区块链节点中存储的共享数据或者链下存储模块中的共享数据。

具体的,数据开放平台中设置有调用智能合约以访问区块链账本的接口,也就是说,数据开放平台具有调用智能合约访问区块链账本的权限,通过调用该接口,数据开放平台调用智能合约,智能合约读取peer节点中区块链账本存储的共享数据相关信息,并根据共享数据相关信息读取共享数据。其中,共享数据相关信息可以包括如下两种形式:

形式1:若数据提供端直接将共享数据上传至区块链账本中,则共享数据相关信息就是共享原始数据,即区块链账本中存储有共享原始数据。如此,在数据消费端有数据共享请求时,数据开放平台可调用智能合约,并直接从区块链账本或状态数据库中读取该共享数据。

形式2:若数据提供端将共享数据存储在区块链系统之外的存储位置,例如,数据提供端可将共享数据存储在本地(此时,图1中的链下存储模块105可以为数据提供端的本地存储模块),也可以将共享数据存储在云服务器中(此时,图1中的链下存储模块105可以为云服务器)。在这种应用场景中,共享数据相关信息为共享数据摘要和共享数据的存储地址。其中,共享数据摘要为预设位数的字符串,用于唯一表征该共享数据。共享数据的存储地址用于数据开放平台寻址该共享数据。示例性的,存储地址可以是地址链接,例如可以为域名、ip地址或者哈希地址等。

如此,在数据消费端有数据共享请求时,数据开放平台根据区块链账本中存储的共享数据摘要和共享数据的存储地址寻址到存储有共享数据的链下存储模块,并调用链下存储模块中的数据访问api,以读取数据存储模块中存储的共享数据。

结合上述举例,数据开放平台调用智能合约并通过关键字“消费账单”查询是否存在符合条件的共享数据,经查询,企业1提供的多个用户消费账单的共享数据符合条件,则获取该共享数据。

当然,数据开放平台还可以根据数据共享请求携带的关键字等信息查找初步符合用户需求的共享数据,并将初步结果反馈给用户,该初步结果可以为包含与关键字相关的多个共享数据的列表,用户可以从共享数据列表中选择最终需共享的数据。

s403、数据消费端向数据开放平台发送数据操作消息。

相应的,数据开放平台接收所述数据消费端的数据操作消息。

其中,所述数据操作消息携带用于指示共享数据的操作方式。示例性的,数据操作消息携带有用于操作共享数据的程序代码、算法中的至少一种。当然,数据操作消息还可以携带其他用于指示操作共享数据的信息,本申请实施例对此不进行限制。

在本申请实施例中,为了减少共享数据的泄露现象,仅仅数据开放平台具有通过智能合约访问共享数据的权限,其他需共享数据的数据消费端可以向数据开放平台发起数据操作消息,告知数据开放平台所需的共享数据以及需对共享数据进行的操作。

s404、所述数据开放平台根据所述数据操作消息对所述共享数据进行处理。

具体的,数据开放平台根据数据操作消息所指示的共享数据的操作方式处理共享数据,比如,根据数据操作消息中携带的算法或程序代码在自身的运行环境中分析、处理、计算共享数据。

s405、所述数据开放平台向所述数据消费端发送基于共享数据的处理后结果。

为便于理解,以下结合具体应用场景说明本申请实施例的技术方案:

企业a向使用企业b的与用户账单信息相关的共享数据,以期根据这些用户的账单信息计算出每一用户的信誉度。企业a以数据摘要信息的方式上链共享数据。在这样的需求场景中,如图5所示,本申请实施例的数据共享方法包括如下步骤:

s501、企业b的网管或其他工作人员可以通过数据消费端(例如电脑)向数据开放平台发起数据共享请求。

相应的,数据消费端接收用户输入的指令1,以触发数据消费端向数据开放平台发起数据共享请求。该数据共享请求携带关键字“消费账单”,说明用户需获取与“消费账单”相关的共享数据。

s502、数据开放平台调用智能合约读取区块链账本或区块链状态数据库中存储的与“消费账单”相关的共享数据,并根据共享数据相关信息获取链下存储模块中的共享数据。

其中,该共享数据相关信息包括“消费账单”数据的摘要和该“消费账单”数据的存储地址https://www.123.com(仅作为举例示出)。

这样一来,数据开放平台获取到相应存储地址的“消费账单”数据。

s503、数据消费端向数据开放平台发送数据操作消息,该数据操作消息携带算法1。

算法1为通过“消费账单”得到信誉度的算法。

s504、数据开放平台使用算法1在自身的运行环境中对“消费账单”数据进行运算。

s505、数据开放平台向数据消费端发起“消费账单”的运算结果,即发送根据算法1得到的信誉度。

本申请实施例提供的数据共享方法,当数据消费端有数据共享使用需求时,向数据开放平台发送数据操作消息,由数据开放平台根据该数据操作消息对共享数据进行处理,并由数据开放平台向数据消费端发送处理后的结果,整个流程中,数据消费端仅仅能获取到基于共享数据的处理结果,不获取原始的共享数据,因此,在实现数据共享的同时,又通过避免数据消费端直接获取原始的共享数据,减少了原始共享数据泄露的风险,提升了数据共享中的数据安全性。

本申请实施例可以根据上述方法示例对数据开放平台进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图6示出了上述实施例中所涉及的数据开放平台的一种可能的结构示意图。该数据开放平台包括接收模块、处理模块、发送模块、遍历模块、寻址模块以及获取模块。

其中,接收模块,用于接收所述数据消费端的数据操作消息,所述数据操作消息用于指示共享数据的操作方式;处理模块,用于根据所述数据操作消息对所述共享数据进行处理;发送模块,用于向所述数据消费端发送基于共享数据的处理结果。

需要说明的是,所述数据开放平台具有调用智能合约访问区块链账本或区块链状态数据库的权限。

在本申请实施例的一种实现方式中,所述共享数据存储在所述区块链账本中,或所述共享数据存储在所述区块链状态数据库中,或所述共享数据存储在区块链系统之外的存储位置。

在本申请实施例的一种实现方式中,在所述共享数据存储在区块链系统之外的存储位置的情况下,所述共享数据的摘要和数据存储地址存储在所述区块链账本或存储在所述区块链状态数据库,所述数据存储地址用于所述数据开放平台寻址所述共享数据。

在本申请实施例的一种实现方式中,所述数据开放平台还包括遍历模块、寻址模块以及获取模块;遍历模块,用于根据关键字在区块链账本或区块链状态数据库中遍历共享数据;寻址模块,用于依据所述遍历模块的遍历结果和共享数据特征进行寻址;获取模块,用于根据所述寻址模块的寻址结果获取原始数据。

在本申请实施例的一种实现方式中,所述数据操作消息携带指令或者数据处理程序代码,所述指令或所述数据处理程序代码用于指示所述共享数据的操作方式。

如图7所示,本申请实施例提供数据开放平台的另一种可能的结构示意图。该数据开放平台700包括:处理单元701。处理单元701用于对数据开放平台的动作进行控制管理,例如,执行上述处理模块、获取模块、寻址模块以及遍历模块执行的步骤,和/或用于执行本文所描述的技术的其它过程。数据开放平台还可以包括存储单元702和通信单元703,存储单元702用于存储数据开放平台的程序代码和数据;通信单元703用于支持数据开放平台与其他网络实体的通信,例如,执行上述接收模块、发送模块执行的步骤。

其中,参阅图8所示,上述处理单元701可以是数据开放平台800中的处理器801或控制器,该处理器801或控制器可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器801或控制器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digitalsignalprocessing,dsp)和微处理器的组合等。

存储单元702可以是数据开放平台中的存储器802等,该存储器802可以包括易失性存储器,例如随机存取存储器;该存储器802也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。

通信单元703可以是数据开放平台中的收发器、收发电路或通信接口803等。

总线804可以是扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

结合本申请公开内容所描述的方法或者算法的步骤可以由硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于ram、闪存、rom、可擦除可编程只读存储器(easableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(applicationspecificintegratedcircuit,asic)中。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、光纤、便携式紧凑磁盘只读存储器(compactdiscread-onlymemory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1