面向数据自治开放的数据盒模型
面向數(shù)據(jù)自治開放的數(shù)據(jù)盒模型
熊贇1,2,朱揚勇1,2
1. 復旦大學計算機科學技術(shù)學院,上海 201203
2. 上海市數(shù)據(jù)科學重點實驗室,上海 201203
摘要:在數(shù)據(jù)自治開放模式中,數(shù)據(jù)使用者可以將數(shù)據(jù)上傳到應用軟件或下載數(shù)據(jù)到其設備中。其中面臨的問題首先是讓數(shù)據(jù)使用者看得見有哪些數(shù)據(jù),其次是如何合理組織數(shù)據(jù)方便應用軟件使用、計量和管控。提出了一個數(shù)據(jù)盒模型作為數(shù)據(jù)自治開放環(huán)境下的基本數(shù)據(jù)模型,介紹了數(shù)據(jù)盒的基本要素組成及運作系統(tǒng)架構(gòu),說明了該數(shù)據(jù)模型的具體實施方式。
關(guān)鍵詞:數(shù)據(jù)開放;數(shù)據(jù)共享;數(shù)據(jù)自治開放;數(shù)據(jù)模型
doi:10.11959/j.issn.2096-0271.2018015
論文引用格式:熊贇, 朱揚勇. 面向數(shù)據(jù)自治開放的數(shù)據(jù)盒模型[J]. 大數(shù)據(jù), 2018, 4(2): 21-30.
XIONG Y, ZHU Y Y. Data box: a novel data model for self-governing openness of data[J]. Big Data Research, 2018, 4(2): 21-30.
1? 引言
20世紀60年代國際科學理事會的國際科技數(shù)據(jù)委員會(CODATA)推動了科學數(shù)據(jù)開放,但開放程度有限,并且大多集中于各自領(lǐng)域,如地震科學、水利科學、天文學等[1-3]。隨著數(shù)據(jù)資源的戰(zhàn)略性和商業(yè)價值越來越突顯[4],數(shù)據(jù)資源的開放共享變得越來越困難,目前為止,尚未形成完全開放的數(shù)據(jù)共享局面。20世紀60年代,數(shù)據(jù)庫管理系統(tǒng)(database management system,DBMS)的研制成功[5,6]使數(shù)據(jù)脫離了具體的應用程序,由DBMS統(tǒng)一管理,這種數(shù)據(jù)資源管理模式是封閉的、內(nèi)部授權(quán)的、有限的。而在數(shù)據(jù)開放的環(huán)境中,應用程序和用戶對數(shù)據(jù)的訪問和使用是開放的、不可預知的、無限的,數(shù)據(jù)的結(jié)構(gòu)形式也是靈活、復雜多樣的。在數(shù)據(jù)自治開放模式中,數(shù)據(jù)由數(shù)據(jù)擁有者在法律框架下自行確權(quán)和管理、自行制定開放規(guī)則(即數(shù)據(jù)自治),然后將數(shù)據(jù)開放給使用者,包括上傳數(shù)據(jù)到應用軟件使用數(shù)據(jù)或下載數(shù)據(jù)到使用者的設備中。其中面臨的問題首先是讓數(shù)據(jù)使用者看得見有哪些數(shù)據(jù),其次是如何合理組織數(shù)據(jù)以方便應用軟件使用、計量和管控[7,8]。
然而,現(xiàn)有的數(shù)據(jù)資源管理技術(shù)(數(shù)據(jù)庫管理系統(tǒng)、文件系統(tǒng))和應用軟件技術(shù)針對處于封閉不開放狀態(tài)的數(shù)據(jù),聚焦于盡量保護系統(tǒng)數(shù)據(jù)不受外界侵害,即針對數(shù)據(jù)安全風險和隱私威脅進行研發(fā),主要解決途徑包括密碼技術(shù)、噪音擾亂技術(shù)、訪問控制和軟件行為監(jiān)控機制[9-13]。這些方法雖然在一定程度上保護了數(shù)據(jù)的安全和隱私,但是在保護數(shù)據(jù)權(quán)益上有以下缺陷。
● 諸多加密和多授權(quán)機制、安全策略、信任級別等方式是采用數(shù)據(jù)封閉的思路解決數(shù)據(jù)非法訪問問題的,無法用于數(shù)據(jù)開放下保護數(shù)據(jù)權(quán)益和數(shù)據(jù)機密性。
● 差分隱私等隱私保護方法大多針對靜態(tài)數(shù)據(jù)集,且通常是針對單點式數(shù)據(jù)需求,即假定數(shù)據(jù)只有一個使用者,因而不能很好地適應數(shù)據(jù)開放下的多用戶數(shù)據(jù)訪問的動態(tài)應用需求;更重要的是,由于添加噪聲導致結(jié)果丟失準確性,限制了數(shù)據(jù)的使用,不利于數(shù)據(jù)開放。
● 開放數(shù)據(jù)的訪問/應用軟件往往是事先未知的,當使用方在特定條件下對數(shù)據(jù)資源有修改能力時,數(shù)據(jù)仍存在被零成本復制的風險,開放的數(shù)據(jù)資源需要額外保護機制,這需要制定軟件訪問數(shù)據(jù)的行為規(guī)范,并對數(shù)據(jù)訪問行為建模和持續(xù)監(jiān)控。
因此,需要有新型的數(shù)據(jù)組織方式合理組織數(shù)據(jù),以適應數(shù)據(jù)自治開放模式。本文提出一個數(shù)據(jù)盒模型作為數(shù)據(jù)自治開放環(huán)境下的基本數(shù)據(jù)模型,稱為“數(shù)據(jù)盒”,以有效組織用于開放的數(shù)據(jù)資源。數(shù)據(jù)盒是數(shù)據(jù)自治開放的基本單元,包括數(shù)據(jù)描述、數(shù)據(jù)操作和約束等基本要素,并通過在數(shù)據(jù)盒中封裝數(shù)據(jù)防泄露和數(shù)據(jù)權(quán)益保護等機制,使之具有獨立性、可用性、可控性,使得數(shù)據(jù)擁有者在數(shù)據(jù)開放的同時又能保證數(shù)據(jù)稀缺性不喪失和隱私不泄露,并且不影響現(xiàn)有系統(tǒng),能有效支持數(shù)據(jù)自治開放。
2 ?面向數(shù)據(jù)自治開放的數(shù)據(jù)模型
面向數(shù)據(jù)自治開放的數(shù)據(jù)模型的核心思想是建立基于“數(shù)據(jù)盒”模型的開放數(shù)據(jù)組織,按照數(shù)據(jù)盒的方式向數(shù)據(jù)使用者開放數(shù)據(jù),即呈現(xiàn)給數(shù)據(jù)使用者的是一定數(shù)量的數(shù)據(jù)盒,并且,在數(shù)據(jù)盒中封裝數(shù)據(jù)防泄露和數(shù)據(jù)權(quán)益保護等機制。也就是說,數(shù)據(jù)盒是帶有自主程序單元和內(nèi)在計算能力的數(shù)據(jù)組織存儲模型。數(shù)據(jù)擁有者將數(shù)據(jù)灌裝入數(shù)據(jù)盒中,封裝的數(shù)據(jù)只能通過數(shù)據(jù)盒中的自主程序單元接口進行受控的訪問。這樣做的好處是既方便數(shù)據(jù)使用者使用開放數(shù)據(jù),即外部可見、可理解、可編程,又能防止數(shù)據(jù)擁有者權(quán)益受到侵犯,即內(nèi)部可控、可跟蹤、可撤銷。面向數(shù)據(jù)自治開放的數(shù)據(jù)模型包括以下幾個方面。
● 為數(shù)據(jù)使用者提供開放數(shù)據(jù)的基本組成單元——數(shù)據(jù)盒,如圖1所示,包括數(shù)據(jù)盒的數(shù)據(jù)描述、數(shù)據(jù)操作和數(shù)據(jù)約束等基本要素以及數(shù)據(jù)盒的性質(zhì)。
● 封裝在數(shù)據(jù)盒中的數(shù)據(jù)防泄露和數(shù)據(jù)權(quán)益保護機制,并設有供外部軟件使用的接口。
● 數(shù)據(jù)盒的計量與定價,即根據(jù)數(shù)據(jù)使用者提出的要求和目標,計算數(shù)據(jù)使用者所需數(shù)據(jù)盒的數(shù)量和時間等,并進行定價。
圖1 數(shù)據(jù)盒的組織結(jié)構(gòu)
2.1 數(shù)據(jù)盒基本要素
(1)數(shù)據(jù)盒的數(shù)據(jù)描述
因為數(shù)據(jù)盒的設計目標是面對數(shù)據(jù)開放環(huán)境的,數(shù)據(jù)來源復雜多樣、不可預知,所以數(shù)據(jù)盒的數(shù)據(jù)描述包含數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)采用BSON(binary serialized document format)存儲復雜類型的數(shù)據(jù)。BSON使用C語言風格的數(shù)據(jù)表現(xiàn)形式,其編碼和解碼都是快速的。每個數(shù)據(jù)盒設有唯一的標識名(字符串類型),稱為數(shù)據(jù)盒標牌。每個數(shù)據(jù)盒還設置數(shù)據(jù)使用的相應軟硬件環(huán)境。由于開放數(shù)據(jù)盒為數(shù)據(jù)使用者服務是在分布式環(huán)境下進行的,所以數(shù)據(jù)盒的性質(zhì)也參考分布式存儲的性質(zhì),即數(shù)據(jù)盒性質(zhì)包括最終一致性和基本可用性。其中,最終一致性是指要求系統(tǒng)數(shù)據(jù)副本最終能夠一致,而不需要實時保證數(shù)據(jù)副本一致;基本可用性是指出現(xiàn)故障時,允許損失部分可用性,保證核心功能或當前重要功能可用。
(2)數(shù)據(jù)盒的數(shù)據(jù)操作
數(shù)據(jù)資源以數(shù)據(jù)盒的形式存放在數(shù)據(jù)站中,與傳統(tǒng)的DBMS相比,數(shù)據(jù)開放自治下的數(shù)據(jù)資源管理不涉及事務處理,只有數(shù)據(jù)使用,但也不同于數(shù)據(jù)倉庫,數(shù)據(jù)倉庫是不對外開放的。數(shù)據(jù)盒的數(shù)據(jù)操作包括數(shù)據(jù)盒的創(chuàng)建、數(shù)據(jù)盒的刪除(當數(shù)據(jù)盒不再被使用時,則需要刪除該數(shù)據(jù)盒)、數(shù)據(jù)盒的切塊和切片(數(shù)據(jù)盒中存放了多條數(shù)據(jù)記錄,每條數(shù)據(jù)記錄有多個字段/屬性,數(shù)據(jù)盒使用者可能只需要使用該數(shù)據(jù)盒中的部分數(shù)據(jù)記錄和部分數(shù)據(jù)字段,這需要數(shù)據(jù)切塊或切片操作,即選取數(shù)據(jù)盒中的部分數(shù)據(jù)記錄和部分數(shù)據(jù)字段,形成新的數(shù)據(jù)盒,切塊或切片后的數(shù)據(jù)盒是原始數(shù)據(jù)盒的一部分,包含原始數(shù)據(jù)盒的部分數(shù)據(jù)字段和數(shù)據(jù)記錄)、數(shù)據(jù)盒的拼接(數(shù)據(jù)盒的使用者可能會使用多個數(shù)據(jù)盒中的數(shù)據(jù)記錄,并且可能是這些數(shù)據(jù)盒中的部分數(shù)據(jù)字段,因此,需要將多個數(shù)據(jù)盒拼接起來,形成新的數(shù)據(jù)盒)、數(shù)據(jù)盒的交(數(shù)據(jù)盒的使用者可能需要兩個數(shù)據(jù)盒共同的數(shù)據(jù)記錄,數(shù)據(jù)盒的交實現(xiàn)共同數(shù)據(jù)記錄的提取,形成新的數(shù)據(jù)盒)、數(shù)據(jù)盒的并(數(shù)據(jù)盒的使用者可能需要兩個數(shù)據(jù)盒的所有數(shù)據(jù)記錄,數(shù)據(jù)盒的并實現(xiàn)兩個數(shù)據(jù)盒中的數(shù)據(jù)記錄的合并,形成新的數(shù)據(jù)盒)以及數(shù)據(jù)盒中數(shù)據(jù)的查詢(通過設置一定的條件,對數(shù)據(jù)盒中的數(shù)據(jù)進行查詢,例如某個字段滿足一定的閾值作為查詢條件等)、插入(當數(shù)據(jù)盒有新的數(shù)據(jù)裝入時,需要執(zhí)行插入操作)、刪除(數(shù)據(jù)盒中的數(shù)據(jù)不再被需要的時候,需要執(zhí)行刪除操作)和更新(數(shù)據(jù)盒中數(shù)據(jù)記錄的某些值發(fā)生變化時,需要執(zhí)行更新操作)等。此外,數(shù)據(jù)開放的粒度是有差異的,數(shù)據(jù)盒粒度劃分也是數(shù)據(jù)盒的重要數(shù)據(jù)操作。
(3)數(shù)據(jù)盒的數(shù)據(jù)約束
數(shù)據(jù)盒的數(shù)據(jù)約束包括數(shù)據(jù)盒約束、數(shù)據(jù)盒內(nèi)的數(shù)據(jù)約束、數(shù)據(jù)盒間的數(shù)據(jù)約束、數(shù)據(jù)盒多副本控制約束等。數(shù)據(jù)盒內(nèi)的數(shù)據(jù)約束類似于傳統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)約束;數(shù)據(jù)盒間的數(shù)據(jù)約束主要是指數(shù)據(jù)盒之間的關(guān)聯(lián)約束;數(shù)據(jù)盒多副本控制約束主要是指數(shù)據(jù)盒可以擁有多少個副本,這些副本可被哪些數(shù)據(jù)使用者使用(例如,對使用數(shù)據(jù)盒的機器的M AC地址加以限制等)。
2.2 數(shù)據(jù)權(quán)益保護機制
數(shù)據(jù)權(quán)益保護機制是將數(shù)據(jù)盒及其權(quán)屬綁定為有機整體,以明確數(shù)據(jù)權(quán)益的保護對象、保護等級以及保護粒度等。其中,保護粒度是指數(shù)據(jù)盒中的數(shù)據(jù)記錄可被訪問的粒度,例如,數(shù)據(jù)字段“薪水”的訪問可以分為訪問每一條數(shù)據(jù)記錄“薪水”的具體值、訪問“薪水”的平均值或統(tǒng)計值等。數(shù)據(jù)盒權(quán)屬包括數(shù)據(jù)所有者的信息標記、開放數(shù)據(jù)的使用權(quán)限以及相應的使用許可范圍、定位跟蹤標識等。外部軟件可通過數(shù)據(jù)盒接口訪問數(shù)據(jù)盒中的數(shù)據(jù),因此,數(shù)據(jù)權(quán)益保護機制還包括外部軟件行為監(jiān)控機制,對外部軟件行為進行監(jiān)控,評價軟件的言行一致性,甄別權(quán)益受損的軟件行為模式。
2.3 數(shù)據(jù)防泄露機制
由于數(shù)據(jù)使用者可能通過多次獲取數(shù)據(jù)片段實現(xiàn)對數(shù)據(jù)盒中數(shù)據(jù)的拼圖,形成一個完整的數(shù)據(jù)盒,導致數(shù)據(jù)泄露。數(shù)據(jù)防泄露機制包括:數(shù)據(jù)盒正常使用情況下的數(shù)據(jù)加密保護,實現(xiàn)關(guān)鍵數(shù)據(jù)密文形式共享;數(shù)據(jù)盒被盜取或控制情況下的數(shù)據(jù)機密性保護,提供數(shù)據(jù)盒抗盜取和抗逆向拆解能力;數(shù)據(jù)監(jiān)控保護,發(fā)現(xiàn)數(shù)據(jù)盒的不正當使用時,啟動數(shù)據(jù)盒自毀機制。
2.4 數(shù)據(jù)盒的計量與定價
數(shù)據(jù)盒的計量是指根據(jù)數(shù)據(jù)使用者的要求,對數(shù)據(jù)使用需求建模,根據(jù)不同的需求粒度切分數(shù)據(jù)盒,為數(shù)據(jù)使用者提供數(shù)據(jù)資源;數(shù)據(jù)盒的定價是指按照數(shù)據(jù)盒的定價規(guī)則對數(shù)據(jù)使用者進行定價。
綜上,按照數(shù)據(jù)盒為基本單元組織數(shù)據(jù),并封裝數(shù)據(jù)防泄露和權(quán)益保護機制以及提供數(shù)據(jù)盒計量和定價策略,為數(shù)據(jù)開放提供技術(shù)保障。
3 ?數(shù)據(jù)盒運作系統(tǒng)框架
以數(shù)據(jù)盒形式展示的數(shù)據(jù)資源存放在數(shù)據(jù)站中,每個數(shù)據(jù)站配備一套數(shù)據(jù)資源管理系統(tǒng),用以管理該站下的所有數(shù)據(jù)盒,并通過數(shù)據(jù)盒虛擬化、應用裝載等功能供外部使用數(shù)據(jù)。其具體運作的系統(tǒng)如圖2所示,包括數(shù)據(jù)源管理模塊、數(shù)據(jù)盒構(gòu)建與環(huán)境配置模塊、數(shù)據(jù)灌裝模塊、交互模塊。
圖2 系統(tǒng)模塊組成
各個模塊介紹如下。
(1)數(shù)據(jù)源管理模塊
數(shù)據(jù)源管理模塊即數(shù)據(jù)站配備的數(shù)據(jù)資源管理系統(tǒng),用于管理數(shù)據(jù)擁有者的數(shù)據(jù)源,這個數(shù)據(jù)源可能是單點的,也可能是分布式的。數(shù)據(jù)擁有者想要開放的數(shù)據(jù)都從該數(shù)據(jù)源中獲得,而且數(shù)據(jù)擁有者本身并不需要關(guān)心數(shù)據(jù)源的組織方式和存儲格式。
(2)數(shù)據(jù)盒構(gòu)建與環(huán)境配置模塊
數(shù)據(jù)盒構(gòu)建與環(huán)境配置模塊負責數(shù)據(jù)盒的生成以及數(shù)據(jù)盒環(huán)境的配置。
依據(jù)數(shù)據(jù)盒的大小(數(shù)據(jù)盒大小由數(shù)據(jù)擁有者提供的該數(shù)據(jù)盒中的數(shù)據(jù)記錄的多少決定,即由數(shù)據(jù)記錄的字段數(shù)、數(shù)據(jù)記錄的條數(shù)決定數(shù)據(jù)盒的大小)、約束條件、接口和監(jiān)控要求以及環(huán)境需求(由數(shù)據(jù)擁有者提供的該數(shù)據(jù)盒初始使用環(huán)境,即使用這些數(shù)據(jù)可用的軟硬件環(huán)境,例如,GPU、內(nèi)存、操作系統(tǒng)配置等)構(gòu)建數(shù)據(jù)盒,并配置數(shù)據(jù)盒環(huán)境。數(shù)據(jù)盒大小實際是根據(jù)數(shù)據(jù)記錄的字段及其條數(shù)、值決定的。
(3)數(shù)據(jù)灌裝模塊
數(shù)據(jù)灌裝模塊負責將數(shù)據(jù)源進行格式轉(zhuǎn)化,導入數(shù)據(jù)盒。從數(shù)據(jù)源中獲取的數(shù)據(jù)可能是有不同格式的,在經(jīng)過一定的格式轉(zhuǎn)化之后,形成BSON以支持數(shù)據(jù)盒的數(shù)據(jù)灌裝。
(4)交互模塊
交互模塊負責承載數(shù)據(jù)使用者使用數(shù)據(jù)盒的展示、交互。數(shù)據(jù)使用者可以通過該模塊的交互來獲得和使用數(shù)據(jù)盒。該模塊把最后得到的數(shù)據(jù)盒交付給數(shù)據(jù)使用者。
該系統(tǒng)的運作流程如下。
● 準備數(shù)據(jù):數(shù)據(jù)擁有者選定希望開放的數(shù)據(jù),確定數(shù)據(jù)字段和數(shù)據(jù)記錄,并給出數(shù)據(jù)的使用約束,通過數(shù)據(jù)源管理模塊將數(shù)據(jù)交付給數(shù)據(jù)盒灌裝模塊。
● 數(shù)據(jù)盒構(gòu)建與環(huán)境配置:配置數(shù)據(jù)所需的軟硬件環(huán)境,通過數(shù)據(jù)盒構(gòu)建與環(huán)境配置模塊將軟硬件環(huán)境配置信息封裝到數(shù)據(jù)盒中,生成數(shù)據(jù)盒,并分配數(shù)據(jù)盒標識。
● 數(shù)據(jù)灌裝:在數(shù)據(jù)盒灌裝模塊,實現(xiàn)原始數(shù)據(jù)格式轉(zhuǎn)換,轉(zhuǎn)碼為BSON,將數(shù)據(jù)擁有者想要發(fā)布的數(shù)據(jù)記錄按照其約束條件實施數(shù)據(jù)盒的灌裝,并且封裝數(shù)據(jù)訪問控制和數(shù)據(jù)防泄露機制。
● 數(shù)據(jù)盒交付:將生成的數(shù)據(jù)盒交付給數(shù)據(jù)站。數(shù)據(jù)使用者通過交互模塊,挑選所需的數(shù)據(jù)盒,并告知數(shù)據(jù)盒的使用方式和使用目的,根據(jù)數(shù)據(jù)使用者提交的數(shù)據(jù)使用需求和數(shù)據(jù)訪問程序及其聲明,數(shù)據(jù)擁有者對數(shù)據(jù)盒進行定價,數(shù)據(jù)站為數(shù)據(jù)使用者提供數(shù)據(jù)盒及其服務。
通過上述步驟,數(shù)據(jù)擁有者可以以數(shù)據(jù)盒為基本組織單元組織所擁有的數(shù)據(jù)資源,放在數(shù)據(jù)站中,對外開放發(fā)布;數(shù)據(jù)使用者可以發(fā)出數(shù)據(jù)使用需求,從數(shù)據(jù)站中申請使用數(shù)據(jù)盒。
以數(shù)據(jù)盒為基本單元的數(shù)據(jù)自治開放數(shù)據(jù)資源組織使用示意如圖3所示。
圖3 ?以數(shù)據(jù)盒為基本單元的數(shù)據(jù)自治開放數(shù)據(jù)資源組織使用示意
4 ?數(shù)據(jù)盒模型的特性和效果
從數(shù)據(jù)盒的基本要素組成以及運作系統(tǒng)架構(gòu)可以看到,數(shù)據(jù)盒是一個類似于現(xiàn)實世界中用來盛放物品的盒子的數(shù)據(jù)裝置,盒中存放的是數(shù)據(jù)源。盒子便于運輸,也便于數(shù)據(jù)的流通。數(shù)據(jù)盒可以配置不同大小的尺寸,可以根據(jù)數(shù)據(jù)使用者的需求裝入不同大小的數(shù)據(jù)。每個盒子設置一個標識,稱為數(shù)據(jù)盒標牌,用于識別數(shù)據(jù)盒。數(shù)據(jù)盒為數(shù)據(jù)使用者提供數(shù)據(jù)的訪問接口,數(shù)據(jù)使用者可以聲明其訪問需求,通過接口訪問數(shù)據(jù)盒中的數(shù)據(jù)。考慮到數(shù)據(jù)盒的使用權(quán)限,數(shù)據(jù)盒還存放數(shù)據(jù)防泄露和數(shù)據(jù)權(quán)益保護程序。每個數(shù)據(jù)使用者可以申請獲取一系列(一個或多個)數(shù)據(jù)盒。數(shù)據(jù)盒將數(shù)據(jù)擁有者的數(shù)據(jù)、訪問權(quán)限等進行了有機合理的組織,使得數(shù)據(jù)使用者能夠很方便地看見有哪些數(shù)據(jù)被開放、數(shù)據(jù)的結(jié)構(gòu)和組成等,按照數(shù)據(jù)盒的方式向數(shù)據(jù)使用者開放數(shù)據(jù),使數(shù)據(jù)擁有者可以根據(jù)數(shù)據(jù)的開放程度進行數(shù)據(jù)的把控,實現(xiàn)了數(shù)據(jù)內(nèi)部可控、可跟蹤、可撤銷;并且,數(shù)據(jù)盒的集成形式為數(shù)據(jù)使用者/應用軟件的使用、計量、管控提供了便利。數(shù)據(jù)使用者看到的是一系列封裝好的數(shù)據(jù)盒,可以根據(jù)數(shù)據(jù)使用需求方便地選擇使用數(shù)據(jù)盒。對數(shù)據(jù)使用者而言,開放的數(shù)據(jù)是外部可見的、可理解的,數(shù)據(jù)使用者也可以提出自己對數(shù)據(jù)的訪問需求和程序,讓數(shù)據(jù)盒擁有者進行審核,實現(xiàn)數(shù)據(jù)盒可編程。這種數(shù)據(jù)資源組織形式提升了數(shù)據(jù)的獨立性、可用性和可控性,實現(xiàn)了數(shù)據(jù)自治。
5 ?具體實施方式
數(shù)據(jù)盒的生命周期包括以下幾個階段。
● 創(chuàng)建:選擇/生成一個具有指定存儲和計算能力的基礎映像實例。
● 灌裝:向映像實例中添加用戶所選的數(shù)據(jù),還可以添加用戶根據(jù)數(shù)據(jù)自治開放標準編寫的程序模塊。
● 運輸:將灌裝了數(shù)據(jù)的數(shù)據(jù)盒運送給用戶,運輸方式可以為在線,也可為離線。
● 加載使用:用戶根據(jù)使用說明在本地加載數(shù)據(jù)盒,所有訪問受到數(shù)據(jù)盒訪問控制的限制。用戶可以要求重新灌裝數(shù)據(jù)或自定義模塊。
● 銷毀:到達指定的訪問期限后,數(shù)據(jù)盒自動銷毀內(nèi)部數(shù)據(jù)。
面向數(shù)據(jù)盒的軟件開發(fā)和運行平臺主要為數(shù)據(jù)盒的加載和使用環(huán)節(jié)提供支撐,著重解決數(shù)據(jù)盒應用開發(fā)和運行的技術(shù)問題,對傳統(tǒng)的集成開發(fā)環(huán)境和運行環(huán)境進行了必要的技術(shù)改造和擴展。
下面以數(shù)據(jù)擁有者如何將其數(shù)據(jù)資源構(gòu)建為若干數(shù)據(jù)盒用于開放為例,說明本數(shù)據(jù)模型的具體實施方式,如圖4所示。
圖4 數(shù)據(jù)盒的實施步驟
(1)生成一個初始數(shù)據(jù)盒
使用Java中的Docker-Java-API從基礎鏡像創(chuàng)建容器,基礎鏡像中有Java、Tomcat、MongoDB等軟件環(huán)境,生成一個初始數(shù)據(jù)盒。
(2)確定要裝入數(shù)據(jù)盒的數(shù)據(jù)
如圖4(a)所示,數(shù)據(jù)使用者選定需要裝入數(shù)據(jù)盒的數(shù)據(jù),確定需要開放的數(shù)據(jù)字段、數(shù)據(jù)記錄等。例如,數(shù)據(jù)使用者有一個用MySQL存儲的醫(yī)療數(shù)據(jù)庫,包含病人基本信息、醫(yī)生基本信息、門診就診信息等多張表。數(shù)據(jù)擁有者希望開放的是用藥數(shù)據(jù),這涉及病人基本信息表的非敏感字段,例如數(shù)據(jù)表中的病人就醫(yī)順序號(非身份證號或醫(yī)??ㄌ柕?#xff09;、病人疾病診斷、病人用藥信息等,這些數(shù)據(jù)分別在不同數(shù)據(jù)表中。數(shù)據(jù)使用者首先選定這些所需字段以及想要開放的數(shù)據(jù)記錄條數(shù)(或時間區(qū)間等),例如,開放2017年1—6月的數(shù)據(jù)。
(3)根據(jù)選定的數(shù)據(jù),設置數(shù)據(jù)盒的大小、約束條件等
如圖4(b)所示,若數(shù)據(jù)使用者要開放的數(shù)據(jù)是2017年半年的數(shù)據(jù),那么,計算2017年半年的數(shù)據(jù)量(例如20 GB),根據(jù)數(shù)據(jù)量,設置該數(shù)據(jù)盒的大小。數(shù)據(jù)擁有者根據(jù)數(shù)據(jù)的特點和使用權(quán)限,設置約束條件,例如,不允許將這個數(shù)據(jù)盒與涉及病人個體信息的數(shù)據(jù)盒進行拼接,或不允許對該數(shù)據(jù)盒中的某個字段(如年齡字段)進行逐條訪問;數(shù)據(jù)盒的多副本約束即約束該數(shù)據(jù)盒的使用者數(shù)量等。
(4)在灌裝數(shù)據(jù)擁有者數(shù)據(jù)時,配置數(shù)據(jù)盒對應的運行環(huán)境
如圖4(c)所示,選定需要的軟硬件環(huán)境,例如,Intel Xeon E3*4、Nvidia GPU 4G 256 m、RAM 16 GB等硬件環(huán)境以及Ubuntu 14.04-64bit、jre8、Python3等軟件環(huán)境。
(5)灌裝和打包數(shù)據(jù)盒,把數(shù)據(jù)裝載進數(shù)據(jù)盒
如圖4(d)所示,例如對于數(shù)據(jù)源為MySQL的數(shù)據(jù),可以使用Java中的MySQL-connectorAPI來讀取數(shù)據(jù)源中的數(shù)據(jù),并進行數(shù)據(jù)格式轉(zhuǎn)換,將這些數(shù)據(jù)輸出到文件中,保存為BSON。將BSON文件復制到創(chuàng)建好的容器中,并將BSON文件讀入。將一個用于向外界暴露數(shù)據(jù)獲取接口的網(wǎng)站應用以war包的形式復制到容器中,并在Tomcat中啟動。建立數(shù)據(jù)盒標牌。打包這個鏡像,并將鏡像以文件形式提供給數(shù)據(jù)使用者。
(6)在該鏡像中封裝數(shù)據(jù)盒防泄露機制
數(shù)據(jù)盒防泄露機制作用如下:數(shù)據(jù)盒正常使用情況下的數(shù)據(jù)加密保護,實現(xiàn)關(guān)鍵數(shù)據(jù)密文形式共享;數(shù)據(jù)盒被盜取或控制情況下的數(shù)據(jù)機密性保護,不允許數(shù)據(jù)盒抗盜取和抗逆向拆解;根據(jù)數(shù)據(jù)擁有者的數(shù)據(jù)約束,不允許數(shù)據(jù)使用者對數(shù)據(jù)盒進行非法拼裝;控制數(shù)據(jù)使用者的數(shù)據(jù)記錄數(shù)量等。
(7)在該鏡像里封裝數(shù)據(jù)盒訪問監(jiān)控機制,實施對數(shù)據(jù)盒中數(shù)據(jù)訪問的控制
例如,數(shù)據(jù)使用者聲明只對數(shù)據(jù)進行聚類分析,但在使用數(shù)據(jù)過程中,如果數(shù)據(jù)使用者還做了其他數(shù)據(jù)訪問操作,不正當使用數(shù)據(jù)時,那么封裝在數(shù)據(jù)盒中的訪問監(jiān)控程序?qū)缶?#xff0c;并阻止非法訪問操作,甚至執(zhí)行數(shù)據(jù)盒自毀操作。
(8)數(shù)據(jù)盒灌裝完成后,外部數(shù)據(jù)使用者可以訪問和使用該數(shù)據(jù)盒
數(shù)據(jù)使用者提出對數(shù)據(jù)盒的使用需求以及使用方式(例如聚類分析、逐條讀取、只利用其中的某些字段等),數(shù)據(jù)擁有者根據(jù)這些需求對數(shù)據(jù)盒進行定價,通過數(shù)據(jù)站為數(shù)據(jù)使用者提供數(shù)據(jù)盒服務。數(shù)據(jù)使用者可以利用Docker在其本地啟動這個鏡像,并通過提供的接口獲取數(shù)據(jù),即獲取數(shù)據(jù)盒,實現(xiàn)數(shù)據(jù)開放;同時,數(shù)據(jù)盒中封裝的訪問控制和防泄露機制又能保證數(shù)據(jù)使用者無法直接接觸到數(shù)據(jù),保證數(shù)據(jù)在開放時的安全性。
6 ?結(jié)束語
本文提出的面向數(shù)據(jù)自治開放的數(shù)據(jù)盒模型,將數(shù)據(jù)擁有者的數(shù)據(jù)、訪問權(quán)限等進行了有機合理的組織,使得數(shù)據(jù)擁有者可以根據(jù)自己對數(shù)據(jù)的開放程度進行把控。數(shù)據(jù)使用者也可以提出自己對數(shù)據(jù)的訪問需求和程序,讓數(shù)據(jù)盒擁有者進行審核,實現(xiàn)數(shù)據(jù)盒可編程。這種數(shù)據(jù)資源組織形式提升了數(shù)據(jù)的獨立性、可用性和可控性,實現(xiàn)了數(shù)據(jù)自治,使得數(shù)據(jù)擁有者在數(shù)據(jù)開放的同時又能保證其數(shù)據(jù)稀缺性不喪失和隱私不泄露,有效地支持了數(shù)據(jù)開放。
點擊下方?閱讀原文?即可獲取全文
作 者 簡 介
熊贇(1980-),女,博士,復旦大學計算機科學技術(shù)學院教授。2004年起從事數(shù)據(jù)領(lǐng)域方面的研究工作,作為項目負責人主持國家自然科學基金、上海市科學技術(shù)委員會發(fā)展基金以及企業(yè)合作項目。相關(guān)研究成果在國際權(quán)威期刊和會議發(fā)表論文40余篇、出版著作3本。目前主要研究方向為數(shù)據(jù)科學和大數(shù)據(jù)。
?
朱揚勇(1963-),男,博士,復旦大學計算機科學技術(shù)學院教授、學術(shù)委員會主任,上海市數(shù)據(jù)科學重點實驗室主任。1989年起從事數(shù)據(jù)領(lǐng)域研究,2008年提出數(shù)據(jù)資源保護和利用,2009年發(fā)表了數(shù)據(jù)科學論文“Data explosion,data nature and dataology”,并出版專著《數(shù)據(jù)學》,對數(shù)據(jù)科學進行了系統(tǒng)探討和描述。2010年創(chuàng)辦了“International Workshop on Dataology and Data Science”,2014年和石勇、張成奇共同創(chuàng)辦了“International Conference on Data Science”。擔任第462次香山科學會議“數(shù)據(jù)科學與大數(shù)據(jù)的理論問題探索”的執(zhí)行主席、“大數(shù)據(jù)技術(shù)與應用叢書”主編。目前主要研究方向為數(shù)據(jù)科學、大數(shù)據(jù)。
?
《大數(shù)據(jù)》期刊
《大數(shù)據(jù)(Big?Data?Research,BDR)》雙月刊是由中華人民共和國工業(yè)和信息化部主管,人民郵電出版社主辦,中國計算機學會大數(shù)據(jù)專家委員會學術(shù)指導,北京信通傳媒有限責任公司出版的科技期刊。
關(guān)注《大數(shù)據(jù)》期刊微信公眾號,獲取更多內(nèi)容
總結(jié)
以上是生活随笔為你收集整理的面向数据自治开放的数据盒模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 构造函数中调用构造函数new和delet
- 下一篇: 顶嵌