熊贇,朱揚勇
1. 復(fù)旦大學(xué)計算機科學(xué)技術(shù)學(xué)院,上?!?01203;2. 上海市數(shù)據(jù)科學(xué)重點實驗室,上?!?01203
20世紀(jì)60年代國際科學(xué)理事會的國際科技數(shù)據(jù)委員會(CODATA)推動了科學(xué)數(shù)據(jù)開放①www.codata.org,但開放程度有限,并且大多集中于各自領(lǐng)域,如地震科學(xué)、水利科學(xué)、天文學(xué)等[1-3]。隨著數(shù)據(jù)資源的戰(zhàn)略性和商業(yè)價值越來越突顯[4],數(shù)據(jù)資源的開放共享變得越來越困難,目前為止,尚未形成完全開放的數(shù)據(jù)共享局面。20世紀(jì)60年代,數(shù)據(jù)庫管理系統(tǒng)(database management system, DBMS)的研制成功[5,6]使數(shù)據(jù)脫離了具體的應(yīng)用程序,由DBMS統(tǒng)一管理,這種數(shù)據(jù)資源管理模式是封閉的、內(nèi)部授權(quán)的、有限的。而在數(shù)據(jù)開放的環(huán)境中,應(yīng)用程序和用戶對數(shù)據(jù)的訪問和使用是開放的、不可預(yù)知的、無限的,數(shù)據(jù)的結(jié)構(gòu)形式也是靈活、復(fù)雜多樣的。在數(shù)據(jù)自治開放模式中,數(shù)據(jù)由數(shù)據(jù)擁有者在法律框架下自行確權(quán)和管理、自行制定開放規(guī)則(即數(shù)據(jù)自治),然后將數(shù)據(jù)開放給使用者,包括上傳數(shù)據(jù)到應(yīng)用軟件使用數(shù)據(jù)或下載數(shù)據(jù)到使用者的設(shè)備中。其中面臨的問題首先是讓數(shù)據(jù)使用者看得見有哪些數(shù)據(jù),其次是如何合理組織數(shù)據(jù)以方便應(yīng)用軟件使用、計量和管控[7,8]。
然而,現(xiàn)有的數(shù)據(jù)資源管理技術(shù)(數(shù)據(jù)庫管理系統(tǒng)、文件系統(tǒng))和應(yīng)用軟件技術(shù)針對處于封閉不開放狀態(tài)的數(shù)據(jù),聚焦于盡量保護系統(tǒng)數(shù)據(jù)不受外界侵害,即針對數(shù)據(jù)安全風(fēng)險和隱私威脅進(jìn)行研發(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ù)只有一個使用者,因而不能很好地適應(yīng)數(shù)據(jù)開放下的多用戶數(shù)據(jù)訪問的動態(tài)應(yīng)用需求;更重要的是,由于添加噪聲導(dǎo)致結(jié)果丟失準(zhǔn)確性,限制了數(shù)據(jù)的使用,不利于數(shù)據(jù)開放。
● 開放數(shù)據(jù)的訪問/應(yīng)用軟件往往是事先未知的,當(dāng)使用方在特定條件下對數(shù)據(jù)資源有修改能力時,數(shù)據(jù)仍存在被零成本復(fù)制的風(fēng)險,開放的數(shù)據(jù)資源需要額外保護機制,這需要制定軟件訪問數(shù)據(jù)的行為規(guī)范,并對數(shù)據(jù)訪問行為建模和持續(xù)監(jiān)控。
因此,需要有新型的數(shù)據(jù)組織方式合理組織數(shù)據(jù),以適應(yīng)數(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),能有效支持?jǐn)?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ù)盒中的自主程序單元接口進(jìn)行受控的訪問。這樣做的好處是既方便數(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ì)。
圖1 數(shù)據(jù)盒的組織結(jié)構(gòu)
● 封裝在數(shù)據(jù)盒中的數(shù)據(jù)防泄露和數(shù)據(jù)權(quán)益保護機制,并設(shè)有供外部軟件使用的接口。
● 數(shù)據(jù)盒的計量與定價,即根據(jù)數(shù)據(jù)使用者提出的要求和目標(biāo),計算數(shù)據(jù)使用者所需數(shù)據(jù)盒的數(shù)量和時間等,并進(jìn)行定價。
(1)數(shù)據(jù)盒的數(shù)據(jù)描述
因為數(shù)據(jù)盒的設(shè)計目標(biāo)是面對數(shù)據(jù)開放環(huán)境的,數(shù)據(jù)來源復(fù)雜多樣、不可預(yù)知,所以數(shù)據(jù)盒的數(shù)據(jù)描述包含數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)采用BSON(binary serialized document format)存儲復(fù)雜類型的數(shù)據(jù)。BSON使用C語言風(fēng)格的數(shù)據(jù)表現(xiàn)形式,其編碼和解碼都是快速的。每個數(shù)據(jù)盒設(shè)有唯一的標(biāo)識名(字符串類型),稱為數(shù)據(jù)盒標(biāo)牌。每個數(shù)據(jù)盒還設(shè)置數(shù)據(jù)使用的相應(yīng)軟硬件環(huán)境。由于開放數(shù)據(jù)盒為數(shù)據(jù)使用者服務(wù)是在分布式環(huán)境下進(jìn)行的,所以數(shù)據(jù)盒的性質(zhì)也參考分布式存儲的性質(zhì),即數(shù)據(jù)盒性質(zhì)包括最終一致性和基本可用性。其中,最終一致性是指要求系統(tǒng)數(shù)據(jù)副本最終能夠一致,而不需要實時保證數(shù)據(jù)副本一致;基本可用性是指出現(xiàn)故障時,允許損失部分可用性,保證核心功能或當(dāng)前重要功能可用。
(2)數(shù)據(jù)盒的數(shù)據(jù)操作
數(shù)據(jù)資源以數(shù)據(jù)盒的形式存放在數(shù)據(jù)站中,與傳統(tǒng)的DBMS相比,數(shù)據(jù)開放自治下的數(shù)據(jù)資源管理不涉及事務(wù)處理,只有數(shù)據(jù)使用,但也不同于數(shù)據(jù)倉庫,數(shù)據(jù)倉庫是不對外開放的。數(shù)據(jù)盒的數(shù)據(jù)操作包括數(shù)據(jù)盒的創(chuàng)建、數(shù)據(jù)盒的刪除(當(dāng)數(shù)據(jù)盒不再被使用時,則需要刪除該數(shù)據(jù)盒)、數(shù)據(jù)盒的切塊和切片(數(shù)據(jù)盒中存放了多條數(shù)據(jù)記錄,每條數(shù)據(jù)記錄有多個字段/屬性,數(shù)據(jù)盒使用者可能只需要使用該數(shù)據(jù)盒中的部分?jǐn)?shù)據(jù)記錄和部分?jǐn)?shù)據(jù)字段,這需要數(shù)據(jù)切塊或切片操作,即選取數(shù)據(jù)盒中的部分?jǐn)?shù)據(jù)記錄和部分?jǐn)?shù)據(jù)字段,形成新的數(shù)據(jù)盒,切塊或切片后的數(shù)據(jù)盒是原始數(shù)據(jù)盒的一部分,包含原始數(shù)據(jù)盒的部分?jǐn)?shù)據(jù)字段和數(shù)據(jù)記錄)、數(shù)據(jù)盒的拼接(數(shù)據(jù)盒的使用者可能會使用多個數(shù)據(jù)盒中的數(shù)據(jù)記錄,并且可能是這些數(shù)據(jù)盒中的部分?jǐn)?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è)置一定的條件,對數(shù)據(jù)盒中的數(shù)據(jù)進(jìn)行查詢,例如某個字段滿足一定的閾值作為查詢條件等)、插入(當(dāng)數(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ù)盒的機器的MAC地址加以限制等)。
數(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ù)所有者的信息標(biāo)記、開放數(shù)據(jù)的使用權(quán)限以及相應(yīng)的使用許可范圍、定位跟蹤標(biāo)識等。外部軟件可通過數(shù)據(jù)盒接口訪問數(shù)據(jù)盒中的數(shù)據(jù),因此,數(shù)據(jù)權(quán)益保護機制還包括外部軟件行為監(jiān)控機制,對外部軟件行為進(jìn)行監(jiān)控,評價軟件的言行一致性,甄別權(quán)益受損的軟件行為模式。
由于數(shù)據(jù)使用者可能通過多次獲取數(shù)據(jù)片段實現(xiàn)對數(shù)據(jù)盒中數(shù)據(jù)的拼圖,形成一個完整的數(shù)據(jù)盒,導(dǎo)致數(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ù)盒的不正當(dāng)使用時,啟動數(shù)據(jù)盒自毀機制。
數(shù)據(jù)盒的計量是指根據(jù)數(shù)據(jù)使用者的要求,對數(shù)據(jù)使用需求建模,根據(jù)不同的需求粒度切分?jǐn)?shù)據(jù)盒,為數(shù)據(jù)使用者提供數(shù)據(jù)資源;數(shù)據(jù)盒的定價是指按照數(shù)據(jù)盒的定價規(guī)則對數(shù)據(jù)使用者進(jìn)行定價。
綜上,按照數(shù)據(jù)盒為基本單元組織數(shù)據(jù),并封裝數(shù)據(jù)防泄露和權(quán)益保護機制以及提供數(shù)據(jù)盒計量和定價策略,為數(shù)據(jù)開放提供技術(shù)保障。
以數(shù)據(jù)盒形式展示的數(shù)據(jù)資源存放在數(shù)據(jù)站中,每個數(shù)據(jù)站配備一套數(shù)據(jù)資源管理系統(tǒng),用以管理該站下的所有數(shù)據(jù)盒,并通過數(shù)據(jù)盒虛擬化、應(yīng)用裝載等功能供外部使用數(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)境配置模塊負(fù)責(zé)數(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ù)灌裝模塊負(fù)責(zé)將數(shù)據(jù)源進(jìn)行格式轉(zhuǎn)化,導(dǎo)入數(shù)據(jù)盒。從數(shù)據(jù)源中獲取的數(shù)據(jù)可能是有不同格式的,在經(jīng)過一定的格式轉(zhuǎn)化之后,形成BSON以支持?jǐn)?shù)據(jù)盒的數(shù)據(jù)灌裝。
(4)交互模塊
交互模塊負(fù)責(zé)承載數(shù)據(jù)使用者使用數(shù)據(jù)盒的展示、交互。數(shù)據(jù)使用者可以通過該模塊的交互來獲得和使用數(shù)據(jù)盒。該模塊把最后得到的數(shù)據(jù)盒交付給數(shù)據(jù)使用者。
該系統(tǒng)的運作流程如下。
● 準(zhǔn)備數(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ù)盒標(biāo)識。
● 數(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ù)盒進(jìn)行定價,數(shù)據(jù)站為數(shù)據(jù)使用者提供數(shù)據(jù)盒及其服務(wù)。
通過上述步驟,數(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ù)資源組織使用示意
從數(shù)據(jù)盒的基本要素組成以及運作系統(tǒng)架構(gòu)可以看到,數(shù)據(jù)盒是一個類似于現(xiàn)實世界中用來盛放物品的盒子的數(shù)據(jù)裝置,盒中存放的是數(shù)據(jù)源。盒子便于運輸,也便于數(shù)據(jù)的流通。數(shù)據(jù)盒可以配置不同大小的尺寸,可以根據(jù)數(shù)據(jù)使用者的需求裝入不同大小的數(shù)據(jù)。每個盒子設(shè)置一個標(biāo)識,稱為數(shù)據(jù)盒標(biāo)牌,用于識別數(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)限等進(jìn)行了有機合理的組織,使得數(shù)據(jù)使用者能夠很方便地看見有哪些數(shù)據(jù)被開放、數(shù)據(jù)的結(jié)構(gòu)和組成等,按照數(shù)據(jù)盒的方式向數(shù)據(jù)使用者開放數(shù)據(jù),使數(shù)據(jù)擁有者可以根據(jù)數(shù)據(jù)的開放程度進(jìn)行數(shù)據(jù)的把控,實現(xiàn)了數(shù)據(jù)內(nèi)部可控、可跟蹤、可撤銷;并且,數(shù)據(jù)盒的集成形式為數(shù)據(jù)使用者/應(yīng)用軟件的使用、計量、管控提供了便利。數(shù)據(jù)使用者看到的是一系列封裝好的數(shù)據(jù)盒,可以根據(jù)數(shù)據(jù)使用需求方便地選擇使用數(shù)據(jù)盒。對數(shù)據(jù)使用者而言,開放的數(shù)據(jù)是外部可見的、可理解的,數(shù)據(jù)使用者也可以提出自己對數(shù)據(jù)的訪問需求和程序,讓數(shù)據(jù)盒擁有者進(jìn)行審核,實現(xiàn)數(shù)據(jù)盒可編程。這種數(shù)據(jù)資源組織形式提升了數(shù)據(jù)的獨立性、可用性和可控性,實現(xiàn)了數(shù)據(jù)自治。
數(shù)據(jù)盒的生命周期包括以下幾個階段。
● 創(chuàng)建:選擇/生成一個具有指定存儲和計算能力的基礎(chǔ)映像實例。
● 灌裝:向映像實例中添加用戶所選的數(shù)據(jù),還可以添加用戶根據(jù)數(shù)據(jù)自治開放標(biāo)準(zhǔn)編寫的程序模塊。
● 運輸:將灌裝了數(shù)據(jù)的數(shù)據(jù)盒運送給用戶,運輸方式可以為在線,也可為離線。
● 加載使用:用戶根據(jù)使用說明在本地加載數(shù)據(jù)盒,所有訪問受到數(shù)據(jù)盒訪問控制的限制。用戶可以要求重新灌裝數(shù)據(jù)或自定義模塊。
● 銷毀:到達(dá)指定的訪問期限后,數(shù)據(jù)盒自動銷毀內(nèi)部數(shù)據(jù)。
面向數(shù)據(jù)盒的軟件開發(fā)和運行平臺主要為數(shù)據(jù)盒的加載和使用環(huán)節(jié)提供支撐,著重解決數(shù)據(jù)盒應(yīng)用開發(fā)和運行的技術(shù)問題,對傳統(tǒng)的集成開發(fā)環(huán)境和運行環(huán)境進(jìn)行了必要的技術(shù)改造和擴展。
下面以數(shù)據(jù)擁有者如何將其數(shù)據(jù)資源構(gòu)建為若干數(shù)據(jù)盒用于開放為例,說明本數(shù)據(jù)模型的具體實施方式,如圖4所示。
(1)生成一個初始數(shù)據(jù)盒
使用Java中的Docker-Java-API從基礎(chǔ)鏡像創(chuàng)建容器,基礎(chǔ)鏡像中有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ī)??ㄌ柕龋?、病人疾病診斷、病人用藥信息等,這些數(shù)據(jù)分別在不同數(shù)據(jù)表中。數(shù)據(jù)使用者首先選定這些所需字段以及想要開放的數(shù)據(jù)記錄條數(shù)(或時間區(qū)間等),例如,開放2017年1—6月的數(shù)據(jù)。
(3)根據(jù)選定的數(shù)據(jù),設(shè)置數(shù)據(jù)盒的大小、約束條件等
如圖4(b)所示,若數(shù)據(jù)使用者要開放的數(shù)據(jù)是2017年半年的數(shù)據(jù),那么,計算2017年半年的數(shù)據(jù)量(例如20 GB),根據(jù)數(shù)據(jù)量,設(shè)置該數(shù)據(jù)盒的大小。數(shù)據(jù)擁有者根據(jù)數(shù)據(jù)的特點和使用權(quán)限,設(shè)置約束條件,例如,不允許將這個數(shù)據(jù)盒與涉及病人個體信息的數(shù)據(jù)盒進(jìn)行拼接,或不允許對該數(shù)據(jù)盒中的某個字段(如年齡字段)進(jìn)行逐條訪問;數(shù)據(jù)盒的多副本約束即約束該數(shù)據(jù)盒的使用者數(shù)量等。
(4)在灌裝數(shù)據(jù)擁有者數(shù)據(jù)時,配置數(shù)據(jù)盒對應(yīng)的運行環(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ù)裝載進(jìn)數(shù)據(jù)盒
如圖4(d)所示,例如對于數(shù)據(jù)源為MySQL的數(shù)據(jù),可以使用Java中的MySQL-connectorAPI來讀取數(shù)據(jù)源中的數(shù)據(jù),并進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,將這些數(shù)據(jù)輸出到文件中,保存為BSON。將BSON文件復(fù)制到創(chuàng)建好的容器中,并將BSON文件讀入。將一個用于向外界暴露數(shù)據(jù)獲取接口的網(wǎng)站應(yīng)用以war包的形式復(fù)制到容器中,并在Tomcat中啟動。建立數(shù)據(jù)盒標(biāo)牌。打包這個鏡像,并將鏡像以文件形式提供給數(shù)據(jù)使用者。
圖4 數(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ù)盒進(jìn)行非法拼裝;控制數(shù)據(jù)使用者的數(shù)據(jù)記錄數(shù)量等。
(7)在該鏡像里封裝數(shù)據(jù)盒訪問監(jiān)控機制,實施對數(shù)據(jù)盒中數(shù)據(jù)訪問的控制
例如,數(shù)據(jù)使用者聲明只對數(shù)據(jù)進(jìn)行聚類分析,但在使用數(shù)據(jù)過程中,如果數(shù)據(jù)使用者還做了其他數(shù)據(jù)訪問操作,不正當(dāng)使用數(shù)據(jù)時,那么封裝在數(shù)據(jù)盒中的訪問監(jiān)控程序?qū)缶?,并阻止非法訪問操作,甚至執(zhí)行數(shù)據(jù)盒自毀操作。
(8)數(shù)據(jù)盒灌裝完成后,外部數(shù)據(jù)使用者可以訪問和使用該數(shù)據(jù)盒
數(shù)據(jù)使用者提出對數(shù)據(jù)盒的使用需求以及使用方式(例如聚類分析、逐條讀取、只利用其中的某些字段等),數(shù)據(jù)擁有者根據(jù)這些需求對數(shù)據(jù)盒進(jìn)行定價,通過數(shù)據(jù)站為數(shù)據(jù)使用者提供數(shù)據(jù)盒服務(wù)。數(shù)據(jù)使用者可以利用Docker在其本地啟動這個鏡像,并通過提供的接口獲取數(shù)據(jù),即獲取數(shù)據(jù)盒,實現(xiàn)數(shù)據(jù)開放;同時,數(shù)據(jù)盒中封裝的訪問控制和防泄露機制又能保證數(shù)據(jù)使用者無法直接接觸到數(shù)據(jù),保證數(shù)據(jù)在開放時的安全性。
本文提出的面向數(shù)據(jù)自治開放的數(shù)據(jù)盒模型,將數(shù)據(jù)擁有者的數(shù)據(jù)、訪問權(quán)限等進(jìn)行了有機合理的組織,使得數(shù)據(jù)擁有者可以根據(jù)自己對數(shù)據(jù)的開放程度進(jìn)行把控。數(shù)據(jù)使用者也可以提出自己對數(shù)據(jù)的訪問需求和程序,讓數(shù)據(jù)盒擁有者進(jìn)行審核,實現(xiàn)數(shù)據(jù)盒可編程。這種數(shù)據(jù)資源組織形式提升了數(shù)據(jù)的獨立性、可用性和可控性,實現(xiàn)了數(shù)據(jù)自治,使得數(shù)據(jù)擁有者在數(shù)據(jù)開放的同時又能保證其數(shù)據(jù)稀缺性不喪失和隱私不泄露,有效地支持了數(shù)據(jù)開放。
參考文獻(xiàn):
[1]MINSTER B, CAMPBELL J W, DOZIER J, et al.Earth observations from space: the first 50 years of scientific achievements[C]//AGU Fall Meeting, December 10-14,2007, San Francisco, USA. Washington DC: National Academies Press, 2008:1-8.
[2]MAGEE A F, MAY M R, MOORE B R.The dawn of open access to phylogenetic data[J]. PloS One, 2014, 9(10): e110268.
[3]KAUPPINEN T, DE ESPINDOLA G M.Linked open science-communicating,sharing and evaluating data, methods and results for executable papers[J]. Procedia Computer Science, 2011, 4(4): 726-731.
[4]朱揚勇, 熊贇. 數(shù)據(jù)資源保護與開發(fā)利用[M].上海: 上??萍嘉墨I(xiàn)出版社, 2008: 133-137.ZHU Y Y, XIONG Y. Protection and utilization of data resources[M]. Shanghai:Shanghai Scientific & Technical Publishers, 2008: 133-137.
[5]CODD E F. A relational model of data for large shared data banks[J].Communications of the ACM, 1970, 13(6):377-387.
[6]JEFFREY U. First course in database systems[M]. New Jersey: Prentice-Hall Inc, 1997.
[7]鄭磊. 開放政府?dāng)?shù)據(jù)研究:概念辨析、關(guān)鍵因素及其互動關(guān)系[J]. 中國行政管理,2015(11): 13-18.ZHENG L. Study on open government data:definitions, factors and interactions [J].Chinese Public Administration, 2015(11):13-18.
[8]鄭磊. 開放政府?dāng)?shù)據(jù)的價值創(chuàng)造機理:生態(tài)系統(tǒng)的視角[J]. 電子政務(wù), 2015(7): 2-7.ZHENG L. Value creation mechanism of open government data: from ecosystem perspective[J]. e-Government, 2015(7):2-7.
[9]GENTRY C. Fully homomorphic encryption using ideal lattices[C]//STOC,May 30-June 2, 2009, Bethesda, USA.New York: ACM Press, 2009(4): 169-178.
[10]SAHAI A, WATERS B. Fuzzy identitybased encryption[M]. Heidelberg:Springer, 2005: 457-473.
[11]DWORK C. Differential privacy[C]//The 33rd International Conference on Automata, Languages and Programming.July 10-14, 2006, Venice, Italy. Heidelberg:Springer, 2006: 1-12.
[12]CARMINATI B, FERRARI E, MORASCA S, et al.A probability-based approach to modeling the risk of unauthorized propagation of information in on-line social networks[C]//The 1st ACM Conference on Data and Application Security and Privacy,February 21-23, 2011, San Antonio, USA.New York: ACM Press, 2011: 51-62.
[13]GORLA A, TAVECCHIA I, GROSS F, et al.Checking App behavior against app descriptions[C]//The 36th International Conference on Software Engineering,May 31-June 7, 2014, Hyderabad, India.New York: ACM Press, 2014: 1025-1035.