面向数据开放共享的数据模型及其运作系统的制作方法

文档序号:13542501阅读:247来源:国知局

本发明属于大数据技术领域,具体涉及面向数据开放共享的数据模型及其运作系统。



背景技术:

数据开放源于1960年代国际科联的国际科技数据委员会(codata)推动的科学数据开放(www.codata.org),但开放程度有限,并且大多集中于各自领域,例如地震科学、水利科学、天文学等等。随着数据资源的战略性和商业价值越来越显现,数据资源的开放共享变得越来越困难,到目前为止,尚未形成完全开放的数据共享局面。数据共享源于1960年代的数据库管理系统(databasemanagementsystem,dbms)的研制成功,数据脱离了具体的应用程序,由dbms统一管理,可以被多个应用程序、多个用户所共享。然而,现有的dbms的共享是封闭的、内部授权的、有限的。面对数据开放的环境,应用程序和用户对数据的访问和使用是开放的、不可预知的、无限的,数据的结构形式也是灵活复杂多样的。现有的数据模型无法保证数据开放的同时确保数据稀缺性不丧失和隐私不泄露,没有新型的数据资源组织模型难以保证实现数据开放共享的同时不影响现有系统。

本发明针对数据开放共享需求,提出一种新型的面向数据开放共享的数据模型,称为“数据盒”,包括数据描述、数据操作和约束等基本要素,数据盒是数据开放共享的基本单元,通过在数据盒中封装数据防泄漏和数据权益保护等机制,使之具有独立性、可用性、可控性。本发明提出的数据盒模型及其组织机制,能够有机合理的组织数据资源,支持数据自治开放。



技术实现要素:

本发明的目的在于提出一种新型的面向数据开放共享的数据模型及其运作系统,使得数据拥有者在数据开放的同时又能保证其数据稀缺性不丧失和隐私不泄露,并且不影响现有系统。

本发明提出的面向数据开放共享的数据模型,其核心思想是建立基于“数据盒”模型的开放数据组织,按照数据盒的方式向数据使用者开放数据,即呈现给数据使用者的是一定数量的数据盒,并且,在数据盒中封装数据防泄漏和数据权益保护等机制。这样做的好处是使得数据使用者方便使用开放数据,即外部可见、可理解、可编程;又防止了数据拥有者权益受到侵犯,即内部可控、可跟踪、可撤销。

本发明提出面向数据开放共享的数据模型,其包括:

(1)一个为数据使用者提供开放数据的基本组成单元--数据盒,见图1所示。其中,包括数据盒的数据描述、数据操作和数据约束等基本要素,以及数据盒的性质;

(2)封装在数据盒中的数据防泄漏和数据权益保护机制,并设有供外部软件使用的接口;

(3)数据盒的计量与定价,即根据数据使用者提出的要求和目标,计算数据使用者所需数据盒的数量和时间等,并进行定价。

本发明提出的面向数据开放共享的数据模型,具体内容进一步介绍如下:

(1)数据盒的数据描述:因为数据盒的设计目标是面对数据开放环境,数据来源是复杂多样、不可预知的,所以数据盒的数据描述,包括数据结构,数据结构采用bson格式,用以存储复杂类型的数据。bson格式使用c风格的数据表现形式,其编码和解码都是快速的。每个数据盒设有一个唯一的标识名,称为数据盒标牌;标识名为字符串类型。每个数据盒还设置数据使用的相应软硬件环境。数据盒性质包括最终一致性和基本可用性,由于数据盒的开放共享为数据使用者服务也是分布式环境下的,所以数据盒的性质也参考分布式存储的性质(即base理论)。其中,最终一致性是指要求系统数据副本最终能够一致,而不需要实时保证数据副本一致。基本可用性是指出现故障时,允许损失部分可用性,保证核心功能或当前重要功能可用。

(2)数据盒的数据操作:数据资源以数据盒的形式被放在数据站中,与传统的dbms相比,数据开放自治下的数据资源管理不涉及事务处理,只有数据使用,但也不同于数据仓库,数据仓库是不对外开放的。数据盒的数据操作包括:数据盒的创建、数据盒的删除(当数据盒不再被使用,则需要删除该数据盒)、数据盒的切块和切片(数据盒中存放了多条数据记录,每条数据记录有多个字段/属性,数据盒使用者可能只需要使用该数据盒中的部分数据记录或/和部分数据字段,这需要数据切块或切片操作,即选取数据盒中的部分数据记录和部分数据字段,形成新的数据盒,切块或切片后的数据盒是原始数据盒的一部分,包含原始数据盒的部分数据字段和数据记录)、数据盒的拼接(数据盒的使用者可能会使用多个数据盒中的数据记录,并且可能是这些数据盒中的部分数据字段,因此,需要将多个数据盒拼接起来,形成新的数据盒)、数据盒的交(数据盒的使用者可能需要两个数据盒共同的数据记录,数据盒的交实现共同数据记录的提取,形成新的数据盒)、数据盒的并(数据盒的使用者可能需要两个数据盒的所有数据记录,数据盒的并实现两个数据盒中的数据记录的合并,形成新的数据盒),以及数据盒中数据的查询(通过设置一定的条件,对数据盒中的数据进行查询,例如某个字段满足一定的阈值作为查询条件等)、插入(当数据盒有新的数据装入时,需要执行插入操作)、删除(数据盒中的数据不再被需要的时候,需要执行删除操作)和更新(数据盒中数据记录的某些值发生变化时,需要执行更新操作)等。此外,数据开放的粒度是有差异的,数据盒粒度划分也是数据盒的重要数据操作。

(3)数据盒的数据约束:包括数据盒约束、数据盒内数据约束、数据盒间的数据约束、数据盒多副本控制约束等。数据盒内的数据约束类似传统数据库中的数据约束;数据盒间的约束主要是指数据盒之间的关联约束;数据盒多副本控制约束主要是指数据盒可以拥有多少个副本,这些副本可被哪些是数据使用者使用(例如,对使用数据盒的机器的mac地址加以限制等等)。

(4)数据权益保护机制:即将数据盒及其权属绑定为有机整体,以明确数据权益的保护对象、保护等级以及保护粒度等;其中,保护粒度是指数据盒中的数据记录可被访问的粒度,例如,数据字段“薪水”的访问可以分为访问每一条数据记录“薪水”的具体值、访问“薪水”的平均值或统计值,等等。所述数据盒权属包括数据所有者的信息标记、开放数据的使用权限以及相应的使用许可范围、定位跟踪标识等。由于外部软件可通过数据盒接口访问数据盒中的数据,因此,数据权益保护机制还包括外部软件行为监控机制,对外部软件行为进行监控,评价软件的言行一致性,甄别权益受损的软件行为模式。

(5)数据防泄漏机制:由于数据使用者可能通过多次获取数据片段实现对数据盒中数据的拼图,形成一个完整的数据盒,导致数据泄漏。数据防泄漏机制包括,数据盒正常使用情况下的数据加密保护,实现关键数据密文形式共享;数据盒被盗取或控制情况下的数据机密性保护,提供数据盒抗盗取和抗逆向拆解能力;数据监控保护,发现数据盒的不正当使用时,启动数据盒自毁机制。

(6)数据盒的计量与计价:数据盒的计量,根据数据使用者的要求,对数据使用需求建模,根据不同的需求粒度切分数据盒,为数据使用者提供数据资源;数据盒的计价,按照数据盒的定价规则对数据使用者进行计价。

综上,按照数据盒为基本单元组织数据,并封装数据防泄漏和权益保护机制,以及提供数据盒计量和计价策略,为数据开放共享提供技术保障。

对应于上述的面向数据开放共享的数据模型,其具体运作的系统如图4所示,包括:数据源管理模块、数据盒构建与环境配置模块、数据灌装模块和交互模块四部分,以及数据站;其中:

所述数据站,用于存放以数据盒形式展示的数据资源,每个数据站配备一套数据资源管理系统,用以管理该站下的所有数据盒,并通过数据盒虚拟化、应用装载等功能供外部使用数据。

所述数据源管理模块,即数据站配备的数据资源管理系统,用于管理数据拥有者的数据源,这个数据源可能是单点的,也可能是分布式的。数据拥有者想要开放的数据都从该数据源中获得,而且数据拥有者本身并不需要关心数据源的组织方式和存储格式。

所述数据盒构建与环境配置模块,依据数据盒的大小(数据盒大小由数据拥有者提供的该数据盒中的数据记录的多少决定,即数据记录的字段数、数据记录的条数来决定数据盒的大小)、约束条件、接口和监控要求、以及环境需求(由数据拥有者提供的该数据盒初始使用环境,即使用这些数据可用的软硬件环境,例如,gpu、内存、操作系统配置等等)负责数据盒的生成以及配置数据盒的环境。(该模块对应于数据模型部分所介绍的数据描述部分。数据盒大小实际是根据数据记录的字段及其条数、值来决定的)

所述数据灌装模块,负责将数据源进行格式转化,导入数据盒中。从数据源中获取的数据可能是有不同格式的,在经过一定的格式转化之后,形成以bson格式来储存的数据盒的数据格式,以此来支持数据盒的数据灌装。(该模块对应于数据模型部分所介绍的数据描述部分内容)

所述交互模块,负责承载数据使用者使用数据盒的展示、交互。数据使用者可以通过该模块的交互来获得和使用数据盒。(该模块是把最后得到的数据盒可以交付给数据使用者)

该系统的运作流程如下:

(1)准备数据:数据拥有者选定希望开放共享的数据,确定数据字段和数据记录,并给出数据的使用约束,通过数据源管理模块将数据交付给数据盒灌装模块。

(2)数据盒构建与环境配置:配置数据所需的软硬件环境,通过数据盒构建和环境配置模块封装软硬件环境配置进入到数据盒中,生成数据盒,并分配数据盒标识。

(3)数据灌装:在数据盒灌装模块,实现原始数据格式转换,转码为bson格式,将数据拥有者想要发布的数据记录按照其约束条件实施数据盒的灌装。并且封装数据访问控制和数据防泄漏机制。

(4)数据盒交付:生成好的数据盒交付给数据站。数据使用者通过交互模块,挑选所需的数据盒,并告知希望对数据盒的使用方式和使用目的,根据数据使用者提交的数据使用需求和数据访问程序及其声明,数据拥有者对数据盒进行定价,数据站为数据使用者提供数据盒及其服务。

(5)通过上述步骤,数据拥有者可以以数据盒为基本组织单元组织所拥有的数据资源,放在数据站中,对外开放发布;数据使用者可以发出数据使用需求,从数据站中申请使用数据盒。

图2以更为形象的方式显示了这一流程。

由上介绍看见,数据盒是一个类似于现实世界中用来盛放物品的盒子的数据装置。数据盒中存放的是数据源。盒子具有便于运输的优点,数据盒也方便于数据的流通。数据盒可以配置不同的大小尺寸,可以根据数据使用者的需求装入不同大小的数据。每个盒子设置一个标识,称为数据盒标牌,用于识别数据盒。数据盒为数据使用者提供数据的访问接口,数据使用者可以声明其访问需求,通过接口访问数据盒中的数据。考虑到数据盒的使用权限,数据盒还存放数据防泄漏和数据权益保护程序。每个数据使用者可以申请获取一系列(一个或多个)数据盒。

本发明优点、特点:

本发明提出的面向数据开放的数据盒模型,将数据拥有者的数据、访问权限等进行了有机合理的组织,按照数据盒的方式向数据使用者开放数据,使得数据拥有者可以根据自己对数据的开放程度进行数据的把控,实现了数据内部可控、可跟踪、可撤销;数据使用者看到的是一系列封装好的数据盒,可以根据数据使用需求方便地选择使用数据盒,对数据使用者而言,开放的数据是外部可见的、可理解的,数据使用者也可以提出自己对数据的访问需求和程序,让数据盒拥有者进行审核,实现数据盒可编程。这种数据资源组织形式提升了数据的独立性、可用性和可控性,实现了数据自治,使得数据拥有者在数据开放的同时又能保证其数据稀缺性不丧失和隐私不泄露,有效地支持数据开放共享。

附图说明

图1为本发明的数据盒的组织结构图。

图2为本发明的以数据盒为基本单元的数据自治开放数据资源组织使用示意图。

图3为数据盒的实施步骤图。

图4为系统模块组成图。

具体实施方式

下面以数据拥有者如何将其数据资源构建为若干数据盒用于开放共享为例,来说明本数据模型的具体实施方式,参见图3所示。

(1)生成一个初始数据盒。使用java中的docker-java-api从基础镜像创建容器,基础镜像中有java、tomcat、mongodb等软件环境,生成一个初始数据盒。

(2)确定要装入数据盒的数据(如图3(a)):数据使用者选定需要装入数据盒的数据,确定需要开放的数据字段、数据记录等。例如,数据使用者有一个用mysql存储的医疗数据库,包含病人基本信息、医生基本信息、门诊就诊信息等多张表。数据拥有者希望开放的是用药数据,这涉及到病人基本信息表的非敏感字段,例如数据表中的病人就医顺序号(非身份证号或医保卡号等)、病人疾病诊断、病人用药信息等,这些数据分别在不同数据表中。数据使用者首先选定这些所需字段,以及想要开放的数据记录条数(或时间区间等),例如,开放2017年(1月-6月)的数据。

(3)根据选定的数据,设置数据盒的大小、约束条件等(如图3(b))。例如,数据使用者要开放的数据是2017年半年的数据,那么,计算2017年半年的数据量(例如20gb),根据数据量,设置该数据盒的大小。数据拥有者根据数据的特点和使用权限,设置约束条件,例如,不允许将这个数据盒与涉及到病人个体信息的数据盒进行拼接,或不允许对该数据盒中的某个字段(如年龄字段)进行逐条访问;数据盒的多副本约束,即约束该数据盒可以使用的使用者数量等等。

(4)在灌装数据拥有者数据时,配置数据盒对应的运行环境(如图3(c)):选定需要的软硬件环境,例如,intelxeone*4,nvidiagpu4g256m,ram16g等硬件环境,以及ubuntu14.04-64bit,jre8,python3等软件环境。

(5)灌装和打包数据盒:把数据装载进数据盒(如图3(d))。例如对于数据源为mysql的数据,可以使用java中的mysql-connectorapi来读取数据源中的数据,并进行数据格式转换,将这些数据输出到文件中,保存为bson格式。将bson文件复制到创建好的容器中去,并将bson文件读入。将一个用于向外界暴露数据获取接口的网站应用以war包的形式复制到容器中,并在tomcat中启动。建立数据盒标牌。打包这个镜像,并将镜像以文件形式提供给数据使用者。

(6)在该镜像中封装数据盒防泄漏机制,即数据盒正常使用情况下的数据加密保护,实现关键数据密文形式共享;数据盒被盗取或控制情况下的数据机密性保护,不允许数据盒抗盗取和抗逆向拆解,例如,根据数据拥有者的数据约束,不允许数据使用者对数据盒进行非法拼装,例如控制数据使用者的数据记录数量。

(7)在该镜像里封装数据盒访问监控机制,实施对数据盒中数据访问的控制。例如,数据使用者声明只对数据进行聚类分析,而在使用数据中,做了其他数据访问操作,被不正当使用时,那么封装在数据盒中的访问监控程序将报警并阻止非法访问操作,甚至执行数据盒自毁操作。

(8)数据盒灌装完成后,外部数据使用者可以访问和使用该数据盒。数据使用者提出对数据盒的使用需求以及使用方式,例如是做聚类分析还是逐条读取,还是只利用其中的某些字段等等,数据拥有者根据这些需求来对数据盒进行定价,通过数据站为数据使用者提供数据盒服务。数据使用者可以利用docker在其本地启动这个镜像,并通过提供的接口来获取数据,即获取数据盒,实现数据共享;同时,数据盒中封装的访问控制和防泄漏机制,又能保证数据使用者无法直接接触到数据,保证数据在共享同时的安全性。

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