張峰,孫宗哲,OCHORA Dennis Reagan,劉建楠,宋杰
1. 國(guó)家海洋信息中心,天津 300171;2. 東北大學(xué)軟件學(xué)院,遼寧 沈陽(yáng) 110819;3. 中國(guó)石油慶陽(yáng)石化公司,甘肅 慶陽(yáng) 745115
數(shù)據(jù)產(chǎn)品在線定制平臺(tái)的探索實(shí)踐
張峰1,孫宗哲2,OCHORA Dennis Reagan2,劉建楠3,宋杰2
1. 國(guó)家海洋信息中心,天津 300171;2. 東北大學(xué)軟件學(xué)院,遼寧 沈陽(yáng) 110819;3. 中國(guó)石油慶陽(yáng)石化公司,甘肅 慶陽(yáng) 745115
大數(shù)據(jù)時(shí)代,研究機(jī)構(gòu)與企事業(yè)單位擁有海量的科學(xué)或產(chǎn)業(yè)數(shù)據(jù)(包括海洋、氣象、地質(zhì)、石油化工等行業(yè)的數(shù)據(jù)),可為客戶提供分析后的數(shù)據(jù)產(chǎn)品。目前,這些機(jī)構(gòu)尚未形成服務(wù)化的數(shù)據(jù)產(chǎn)品提供方式。分析了現(xiàn)有數(shù)據(jù)產(chǎn)品平臺(tái)的缺陷與挑戰(zhàn),提出了數(shù)據(jù)產(chǎn)品在線定制平臺(tái)的需求,設(shè)計(jì)了平臺(tái)的體系結(jié)構(gòu),并對(duì)研究平臺(tái)的服務(wù)化數(shù)據(jù)分析算法接口、數(shù)據(jù)安全性和隔離性保障、數(shù)據(jù)產(chǎn)品定價(jià)模型進(jìn)行了詳細(xì)探索實(shí)踐,最后給出了在線定制平臺(tái)的應(yīng)用示例描述。
云計(jì)算;大數(shù)據(jù);數(shù)據(jù)分析算法接口;數(shù)據(jù)即服務(wù);數(shù)據(jù)產(chǎn)品定價(jià)
海洋、地質(zhì)、氣象、石油化工等研究部門(mén)和企事業(yè)單位在采集、管理、處理和分析海量數(shù)據(jù)的同時(shí),也向外界提供了數(shù)據(jù)產(chǎn)品的定制服務(wù),將此類(lèi)數(shù)據(jù)加工成完整產(chǎn)品并發(fā)布、共享給客戶的服務(wù)稱之為數(shù)據(jù)服務(wù)。然而筆者認(rèn)為,目前數(shù)據(jù)產(chǎn)品的制作、發(fā)布和入庫(kù)機(jī)制尚存在以下問(wèn)題:產(chǎn)品制作過(guò)程以及產(chǎn)品本身均無(wú)法復(fù)用;產(chǎn)品制作尚未服務(wù)化;無(wú)法實(shí)現(xiàn)高度可定制的產(chǎn)品制作方法;產(chǎn)品制作效率不高;缺乏完備的、基于計(jì)算平臺(tái)的產(chǎn)品制作和發(fā)布流程。本文從數(shù)據(jù)產(chǎn)品的在線制作與發(fā)布技術(shù)展開(kāi),基于目前主流的云計(jì)算技術(shù),設(shè)計(jì)了一種集中式、服務(wù)化、高效、產(chǎn)品可定制且安全的數(shù)據(jù)產(chǎn)品在線定制平臺(tái)。
本文首先提出了數(shù)據(jù)產(chǎn)品在線定制平臺(tái)的體系結(jié)構(gòu),然后從平臺(tái)的關(guān)鍵技術(shù)入手,設(shè)計(jì)了用于支撐平臺(tái)定制服務(wù)的數(shù)據(jù)分析算法接口和表述性狀態(tài)傳遞(representational state transfer,REST)風(fēng)格的算法描述方式、安全隔離與數(shù)據(jù)交換系統(tǒng)以及定價(jià)模型。最終以海洋環(huán)境基礎(chǔ)數(shù)據(jù)中的水文數(shù)據(jù)為例,研發(fā)并測(cè)試能夠?qū)崿F(xiàn)關(guān)鍵研究成果的數(shù)據(jù)產(chǎn)品在線定制平臺(tái)原型,達(dá)到一定的示范性。
數(shù)據(jù)體系結(jié)構(gòu)大體可分為4層,從下到上依次為原始數(shù)據(jù)層、基礎(chǔ)數(shù)據(jù)層、數(shù)據(jù)集成層、產(chǎn)品庫(kù)。產(chǎn)品庫(kù)存放著由各個(gè)數(shù)據(jù)層產(chǎn)生、只讀、用戶定制的數(shù)據(jù)產(chǎn)品,如基礎(chǔ)數(shù)據(jù)庫(kù)的查詢結(jié)果以及數(shù)據(jù)分析后產(chǎn)生的相關(guān)結(jié)果數(shù)據(jù)集或圖形圖標(biāo)等[1]。然而,就目前的認(rèn)知,筆者認(rèn)為數(shù)據(jù)產(chǎn)品的制作、發(fā)布和入庫(kù)機(jī)制尚存在以下問(wèn)題。
一是產(chǎn)品制作過(guò)程以及產(chǎn)品本身均無(wú)法復(fù)用的問(wèn)題。前期探索發(fā)現(xiàn),目前尚缺乏一種集中式產(chǎn)品定制平臺(tái)。產(chǎn)品制作是分散、手工化的,有很多產(chǎn)品名稱不同,但其數(shù)據(jù)相同或相似,這些產(chǎn)品會(huì)視為不同的產(chǎn)品被不同的制作人重復(fù)地制作和保存。有些產(chǎn)品已經(jīng)制作過(guò)或可以通過(guò)現(xiàn)有產(chǎn)品的再次加工得到,但因?yàn)槿鄙僖粋€(gè)在線、共享的定制平臺(tái),無(wú)法得知該產(chǎn)品的制作信息,因此只能重新制作。此外,由于產(chǎn)品以一種手工或半自動(dòng)化的方式制作,因此一些復(fù)雜產(chǎn)品的制作流程以及產(chǎn)品制作時(shí)產(chǎn)生的知識(shí)和數(shù)據(jù),都無(wú)法統(tǒng)一管理和復(fù)用。
二是產(chǎn)品定制的服務(wù)化問(wèn)題。前期探索發(fā)現(xiàn),目前尚無(wú)面向用戶提供在線產(chǎn)品制作的服務(wù)。對(duì)于服務(wù)產(chǎn)品,用戶需要通過(guò)郵件、表單提交、電話或?qū)嵉氐皆L的方式提出自己的產(chǎn)品制作需求,獲得自己需要的數(shù)據(jù)產(chǎn)品,并支付費(fèi)用。用戶尚無(wú)法在線使用產(chǎn)品制作服務(wù)。
三是無(wú)法實(shí)現(xiàn)高度可定制的產(chǎn)品制作[2]。前期探索發(fā)現(xiàn),目前尚無(wú)可定制的產(chǎn)品制作過(guò)程。用戶更多的是選擇現(xiàn)有的常規(guī)產(chǎn)品,而無(wú)法定義新的產(chǎn)品需求。一些簡(jiǎn)單的需求則只能通過(guò)文字或口頭描述,由產(chǎn)品制作人員理解后加以實(shí)現(xiàn)?!爱a(chǎn)品在線制作技術(shù)”和“商品在線銷(xiāo)售技術(shù)”不同,前者需要用戶能夠靈活地在線定義產(chǎn)品制作過(guò)程,后者則僅僅需要商品信息的發(fā)布和用戶數(shù)據(jù)采集。
四是產(chǎn)品制作效率不高。前期探索發(fā)現(xiàn),目前部分?jǐn)?shù)據(jù)產(chǎn)品制作效率低,很多產(chǎn)品的計(jì)算機(jī)制作時(shí)間超過(guò)20 min甚至更長(zhǎng),算法執(zhí)行效率低,導(dǎo)致在線產(chǎn)品制作流程產(chǎn)生瓶頸。只有提高產(chǎn)品制作效率,將復(fù)雜產(chǎn)品的制作過(guò)程簡(jiǎn)化或分割為較小的產(chǎn)品,充分利用現(xiàn)有的計(jì)算結(jié)果避免重復(fù)計(jì)算,采用更高效的算法或計(jì)算平臺(tái),才能成功實(shí)現(xiàn)在線產(chǎn)品制作。
五是缺乏完備的、基于計(jì)算平臺(tái)的產(chǎn)品制作和發(fā)布流程。類(lèi)比工作流的定義,即使存在一個(gè)在線產(chǎn)品制作平臺(tái),仍然需要定義完備的產(chǎn)品制作和發(fā)布流程,使“多個(gè)參與者之間按照某種預(yù)定義的規(guī)則傳遞文檔、信息或任務(wù)”的流程可以自動(dòng)進(jìn)行,從而實(shí)現(xiàn)預(yù)期制作目標(biāo),或者促使此目標(biāo)的實(shí)現(xiàn)。需定義整個(gè)流程的關(guān)鍵節(jié)點(diǎn)、節(jié)點(diǎn)前置條件和后置條件,并研究用戶授權(quán)、付費(fèi)方式等關(guān)鍵問(wèn)題。
因此,本文提出的數(shù)據(jù)產(chǎn)品在線定制平臺(tái),將重點(diǎn)關(guān)注和解決以下問(wèn)題:滿足用戶高度可定制的在線制作產(chǎn)品要求,通過(guò)多種算法組合完成需求;提供直觀的產(chǎn)品價(jià)格展示;提高產(chǎn)品制作效率和產(chǎn)品利用率。
國(guó)內(nèi)的海洋、氣象、地質(zhì)、石油化工等科研和企事業(yè)部門(mén)經(jīng)過(guò)幾十年的發(fā)展,已積累了大量可用的數(shù)據(jù),在提供數(shù)據(jù)共享、產(chǎn)品定制服務(wù)方面已有不少研究?;仡櫱叭斯ぷ鳎瑪?shù)據(jù)共享方面已有大量先例,如南海海洋科學(xué)數(shù)據(jù)庫(kù)①http://www. ocdb.csdb.cn/、國(guó)家林業(yè)科學(xué)數(shù)據(jù)平臺(tái)②http://www. cfsdc.org/、國(guó)家地震科學(xué)數(shù)據(jù)共享中心③http://westdc. westgis.ac.cn/等,以上網(wǎng)站均在一定科學(xué)領(lǐng)域內(nèi)提供相關(guān)數(shù)據(jù)及其數(shù)據(jù)產(chǎn)品的在線共享,但并未提供產(chǎn)品的在線定制功能。在數(shù)據(jù)的定價(jià)方面,大部分?jǐn)?shù)據(jù)共享網(wǎng)站的數(shù)據(jù)均為無(wú)償共享,無(wú)償共享一方面能降低數(shù)據(jù)的共享門(mén)檻,另一方面卻會(huì)增加平臺(tái)的負(fù)載。簡(jiǎn)單的數(shù)據(jù)共享可以采用無(wú)償共享的方式,但本文平臺(tái)共享的是數(shù)據(jù)產(chǎn)品的定制服務(wù)而非數(shù)據(jù),產(chǎn)品的定制需要耗費(fèi)大量的計(jì)算資源,更適合有償共享,也更符合數(shù)據(jù)即服務(wù)的概念,所以設(shè)計(jì)一個(gè)計(jì)算服務(wù)價(jià)格的定價(jià)模型是很有必要的。Youseff L等人[3]提出了定價(jià)模型的三大形式:每單位定價(jià)(per-unit pricing)、分級(jí)定價(jià)(tiered pricing)和預(yù)訂定價(jià)(subscription-based pricing),并指出任何定價(jià)模型都至少使用了其中一種形式。本文采用的以數(shù)據(jù)價(jià)值為主導(dǎo)的定價(jià)模型屬于每單位定價(jià),但與之不同的是本文的定價(jià)單位并非只是常規(guī)意義上的計(jì)算資源,更多的是平臺(tái)采集的海量數(shù)據(jù)。
在算法接口的設(shè)計(jì)上,REST架構(gòu)是描述算法、傳遞消息的主流選擇。REST風(fēng)格的架構(gòu)具有更高的可伸縮性和更低的開(kāi)發(fā)復(fù)雜度[4],REST架構(gòu)是基于超文本傳輸協(xié)議(hypertext transfer protocol,HTTP)的,任何對(duì)資源的操作行為都是通過(guò)HTTP來(lái)實(shí)現(xiàn),通過(guò)通用的鏈接器接口對(duì)資源進(jìn)行操作,對(duì)統(tǒng)一資源標(biāo)識(shí)符(uniform resource identifier,URI)的操作限制在4個(gè)方法內(nèi):get、post、put、delete,對(duì)應(yīng)資源的增加、讀取、更新、刪除(create, read, update, delete,CRUD)操作[5]。本文采用的正是REST架構(gòu)的接口設(shè)計(jì),用戶所需數(shù)據(jù)被轉(zhuǎn)換成了數(shù)據(jù)服務(wù),減少了開(kāi)發(fā)難度。
圖1所示,水平方向體現(xiàn)用戶請(qǐng)求在平臺(tái)內(nèi)層次遞進(jìn)的過(guò)程,主要包含4個(gè)組件,分別是Web模塊、外部處理模塊、內(nèi)部處理模塊、存儲(chǔ)模塊。各組件內(nèi)部以功能分層,在垂直方向上加以區(qū)分。
Web模塊位于用戶訪問(wèn)的前端,它負(fù)責(zé)與用戶進(jìn)行交互以完成數(shù)據(jù)收集與交換工作。Web模塊采用B/S結(jié)構(gòu),支持?jǐn)?shù)據(jù)轉(zhuǎn)發(fā),即將用戶提交的信息轉(zhuǎn)發(fā)到外部處理
本平臺(tái)的體系結(jié)構(gòu)如平臺(tái)處理。在功能結(jié)構(gòu)上分為用戶訪問(wèn)層和管理訪問(wèn)層,用戶訪問(wèn)層滿足用戶申請(qǐng)服務(wù)的需求,管理訪問(wèn)層滿足管理員和外部服務(wù)平臺(tái)管理層交互的需求。
圖1 軟件體系結(jié)構(gòu)
外部處理模塊面向外網(wǎng),用于處理非隱私數(shù)據(jù),數(shù)據(jù)處理量較小,主要完成數(shù)據(jù)交換和信息處理。其分類(lèi)處理的數(shù)據(jù)和信息主要從Web平臺(tái)和內(nèi)部處理平臺(tái)獲取。
內(nèi)部處理模塊面向內(nèi)網(wǎng),是包含著大量主機(jī)的服務(wù)器集群,工作環(huán)境較為安全,用于部署應(yīng)用程序,處理涉及隱私數(shù)據(jù)的應(yīng)用請(qǐng)求,其主要完成數(shù)據(jù)產(chǎn)品和安全性的相關(guān)工作。
外部處理模塊和內(nèi)部處理模塊在功能結(jié)構(gòu)上一致,故功能分層統(tǒng)一分為應(yīng)用層、平臺(tái)層和管理層。應(yīng)用層負(fù)責(zé)應(yīng)用執(zhí)行、數(shù)據(jù)計(jì)算等,平臺(tái)層負(fù)責(zé)應(yīng)用部署、數(shù)據(jù)交換、安全隔離控制等,管理層負(fù)責(zé)用戶管理、數(shù)據(jù)管理、資源控制等。
存儲(chǔ)模塊用于存儲(chǔ)所有數(shù)據(jù)和算法,一般分為兩個(gè)部分:一部分用于存儲(chǔ)外部可訪問(wèn)到的元數(shù)據(jù),采用關(guān)系型數(shù)據(jù)庫(kù),使用HTTP訪問(wèn),作為外部存儲(chǔ)平臺(tái);另一部分存儲(chǔ)隱私的數(shù)據(jù)、數(shù)據(jù)產(chǎn)品和算法,多為非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)[6],同時(shí)使用關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù),與外部網(wǎng)絡(luò)隔絕開(kāi),作為內(nèi)部存儲(chǔ)平臺(tái)。
存儲(chǔ)模塊分為數(shù)據(jù)層和算法層,數(shù)據(jù)層存儲(chǔ)原始數(shù)據(jù)和元數(shù)據(jù),算法層存儲(chǔ)制作產(chǎn)品所需算法API。元數(shù)據(jù)用于描述數(shù)據(jù),如內(nèi)容、結(jié)構(gòu)、來(lái)源、質(zhì)量和訪問(wèn)方法,面向外網(wǎng)的元數(shù)據(jù)庫(kù)存儲(chǔ)了基礎(chǔ)數(shù)據(jù)、數(shù)據(jù)產(chǎn)品、算法的核心元數(shù)據(jù),也是用戶唯一能直接訪問(wèn)的數(shù)據(jù)庫(kù)。用戶依靠核心元數(shù)據(jù)庫(kù)獲得算法類(lèi)型、算法的可用數(shù)據(jù)范圍、算法接口的引用形式、數(shù)據(jù)范圍、數(shù)據(jù)的可用算法范圍,面向內(nèi)網(wǎng)的元數(shù)據(jù)庫(kù)存儲(chǔ)了上述數(shù)據(jù)的完整元數(shù)據(jù)。
系統(tǒng)體系結(jié)構(gòu)如圖2所示,自底向上分別為物理層、數(shù)據(jù)層、平臺(tái)服務(wù)層、應(yīng)用層。
物理層中,內(nèi)網(wǎng)服務(wù)器的運(yùn)算服務(wù)器通過(guò)交換機(jī)相連,形成一個(gè)含多個(gè)主機(jī)的計(jì)算集群,用于處理Web服務(wù)器傳入的運(yùn)算請(qǐng)求,同時(shí)完成對(duì)集群的管理和控制,如資源調(diào)度和任務(wù)調(diào)度等。內(nèi)網(wǎng)數(shù)據(jù)服務(wù)器保存完整元數(shù)據(jù)、基本數(shù)據(jù)、算法、可復(fù)用的數(shù)據(jù)產(chǎn)品等。
Web服務(wù)器使用Apache搭建完整的網(wǎng)站,搭建用戶與內(nèi)網(wǎng)服務(wù)器之間的橋梁,用戶可以通過(guò)Web進(jìn)行交互,用戶完成產(chǎn)品制作算法的設(shè)計(jì)并將其上傳到Web服務(wù)器上,Web服務(wù)器轉(zhuǎn)發(fā)算法到內(nèi)網(wǎng)服務(wù)器中進(jìn)行部署和執(zhí)行,并將執(zhí)行結(jié)果返回給用戶。外網(wǎng)數(shù)據(jù)服務(wù)器負(fù)責(zé)存儲(chǔ)算法和基礎(chǔ)數(shù)據(jù)的核心元數(shù)據(jù),核心元數(shù)據(jù)是使用頻率最高、用戶可以直接訪問(wèn)的元數(shù)據(jù),是完整元數(shù)據(jù)的子集。隔離模塊是實(shí)現(xiàn)系統(tǒng)安全隔離和信息交換[7]的硬件基礎(chǔ),是由兩臺(tái)主機(jī)和一臺(tái)隔離交換機(jī)組成的,硬件結(jié)構(gòu)如圖3所示。
數(shù)據(jù)層中分布了數(shù)個(gè)數(shù)據(jù)庫(kù),包括元數(shù)據(jù)庫(kù)、基礎(chǔ)數(shù)據(jù)庫(kù)、產(chǎn)品數(shù)據(jù)庫(kù)以及算法庫(kù),除核心元數(shù)據(jù)庫(kù)可直接與外網(wǎng)相連外,其他數(shù)據(jù)庫(kù)均處于內(nèi)網(wǎng)。
平臺(tái)服務(wù)層中,除了集成了操作系統(tǒng)、數(shù)據(jù)庫(kù)、中間件等平臺(tái)軟件以外,還集成了物理隔離網(wǎng)間技術(shù)(gap technology,GAP)系統(tǒng)所需的軟件,實(shí)現(xiàn)安全隔離前提下數(shù)據(jù)的雙向交換。
應(yīng)用層提供了多種算法API,通過(guò)API構(gòu)建完整的產(chǎn)品制作算法,向普通用戶以及管理員提供搜索、查詢等服務(wù)。
圖2 系統(tǒng)體系結(jié)構(gòu)
圖3 安全隔離和數(shù)據(jù)交換系統(tǒng)硬件結(jié)構(gòu)
4.1 核心模塊
在軟件體系結(jié)構(gòu)中,大部分功能模塊的實(shí)現(xiàn)比較常規(guī),除了一些約定俗成的功能模塊,需要對(duì)剩下的核心模塊進(jìn)行解釋。
數(shù)據(jù)目錄檢索是用戶選擇數(shù)據(jù)的窗口,此目錄的檢索內(nèi)容來(lái)自于基礎(chǔ)數(shù)據(jù)和算法API的元數(shù)據(jù)(算法API可視為另一種形式的數(shù)據(jù))。
元數(shù)據(jù)檢索是平臺(tái)極為重要的功能模塊,元數(shù)據(jù)是描述數(shù)據(jù)模型的數(shù)據(jù),它是關(guān)于數(shù)據(jù)模型的基本概念、基本關(guān)系、基本約束的語(yǔ)義,其內(nèi)容包括:數(shù)據(jù)描述,數(shù)據(jù)來(lái)源、數(shù)據(jù)所有者及數(shù)據(jù)序列(數(shù)據(jù)生產(chǎn)歷史)等的說(shuō)明,數(shù)據(jù)質(zhì)量描述,數(shù)據(jù)分析信息說(shuō)明,數(shù)據(jù)轉(zhuǎn)換方法描述等[8]。
通過(guò)元數(shù)據(jù)查詢檢索系統(tǒng),用戶可以知道數(shù)據(jù)的產(chǎn)生背景、數(shù)據(jù)質(zhì)量、數(shù)據(jù)格式、數(shù)據(jù)量大小、數(shù)據(jù)單價(jià)等信息,從而決定是否需要使用該數(shù)據(jù)制作數(shù)據(jù)產(chǎn)品。
數(shù)據(jù)產(chǎn)品存儲(chǔ)及復(fù)用功能將根據(jù)用戶制作的數(shù)據(jù)產(chǎn)品及其相關(guān)信息自動(dòng)生成相應(yīng)數(shù)據(jù)產(chǎn)品元數(shù)據(jù),例如數(shù)據(jù)范圍、數(shù)據(jù)量、產(chǎn)品制作算法等,產(chǎn)品可復(fù)用的算法范圍可以根據(jù)產(chǎn)品的制作算法得出,產(chǎn)品標(biāo)簽則由上傳者或管理員手動(dòng)添加。
4.2 控制流和數(shù)據(jù)流
平臺(tái)的數(shù)據(jù)流展示了平臺(tái)數(shù)據(jù)流動(dòng)的方向,控制流說(shuō)明了平臺(tái)及用戶前后臺(tái)交互的步驟。數(shù)據(jù)流動(dòng)較為復(fù)雜,具體的數(shù)據(jù)流動(dòng)如圖4所示。
平臺(tái)的數(shù)據(jù)流動(dòng)主要步驟如下。
步驟1 最基礎(chǔ)的數(shù)據(jù)存儲(chǔ)在基礎(chǔ)數(shù)據(jù)庫(kù)、算法庫(kù)、產(chǎn)品數(shù)據(jù)庫(kù)中,抽取這些數(shù)據(jù)庫(kù)的所有元數(shù)據(jù)形成一個(gè)完整的元數(shù)據(jù)。
步驟2 完整元數(shù)據(jù)庫(kù)中抽取核心元數(shù)據(jù)形成一個(gè)核心元數(shù)據(jù)庫(kù),供用戶查詢數(shù)據(jù)目錄、元數(shù)據(jù)和算法接口。
步驟3 用戶提交算法后,首先從元數(shù)據(jù)庫(kù)中提取產(chǎn)品元數(shù)據(jù),驗(yàn)證當(dāng)前算法是否有現(xiàn)成的產(chǎn)品可復(fù)用,并從基礎(chǔ)數(shù)據(jù)庫(kù)和算法庫(kù)中提取所需數(shù)據(jù),并打包成應(yīng)用,進(jìn)行產(chǎn)品制作,制作完成后提供下載。
步驟4 根據(jù)步驟3提取的算法和數(shù)據(jù)量,結(jié)合核心元數(shù)據(jù)中的算法及數(shù)據(jù)單價(jià),通過(guò)定價(jià)模型計(jì)算出產(chǎn)品定價(jià),并在產(chǎn)品完成后支付下載。
平臺(tái)的控制流程主要分為三大部分:用戶在前臺(tái)提交算法、后臺(tái)定價(jià)并制作產(chǎn)品、用戶在前臺(tái)付費(fèi)并下載產(chǎn)品。具體的控制流程如圖5所示。
圖4 數(shù)據(jù)流程
海量數(shù)據(jù)挖掘的關(guān)鍵問(wèn)題是數(shù)據(jù)挖掘算法的并行化。而云計(jì)算采用 MapReduce等新型計(jì)算模型,這意味著現(xiàn)有的數(shù)據(jù)挖掘算法和并行化策略不能直接應(yīng)用于云計(jì)算平臺(tái)進(jìn)行海量數(shù)據(jù)挖掘,需要進(jìn)行一定的改造。
數(shù)據(jù)產(chǎn)品的在線制作對(duì)產(chǎn)品制作過(guò)程提出可定制性要求,用戶可以根據(jù)數(shù)據(jù)分析算法庫(kù)提供的輕量級(jí)接口,運(yùn)用一種簡(jiǎn)單的過(guò)程描述語(yǔ)言,通過(guò)算法接口組裝成用戶自定義的制作過(guò)程。本文定義了一種數(shù)據(jù)分析算法接口模型和REST風(fēng)格的算法描述方式。
數(shù)據(jù)安全性是產(chǎn)品制作平臺(tái)的基石,保障數(shù)據(jù)的安全性意味著保證用戶只能通過(guò)平臺(tái)指定的方式進(jìn)行數(shù)據(jù)訪問(wèn),同時(shí)用戶只能在平臺(tái)指定的數(shù)據(jù)存儲(chǔ)區(qū)內(nèi)保存請(qǐng)求之間的數(shù)據(jù),以保障用戶定制的產(chǎn)品制作過(guò)程對(duì)數(shù)據(jù)安全性的要求。本文提出了一種在保證安全隔離的前提下,實(shí)現(xiàn)可控的數(shù)據(jù)交換的方法。
數(shù)據(jù)定制平臺(tái)的商業(yè)價(jià)值不僅在于普通平臺(tái)一段時(shí)間內(nèi)獨(dú)占的平臺(tái)軟硬件資源,還包括數(shù)據(jù)的價(jià)值以及產(chǎn)品制作過(guò)程賦予基礎(chǔ)數(shù)據(jù)的附加價(jià)值。本文設(shè)計(jì)了一個(gè)具有針對(duì)性的定價(jià)模型。
圖5 控制流程
5.1 數(shù)據(jù)分析算法接口和REST風(fēng)格的算法描述
為了準(zhǔn)確支持?jǐn)?shù)據(jù)分析算法,本文設(shè)計(jì)了一種數(shù)據(jù)分析算法接口模型,使其能夠統(tǒng)一地對(duì)產(chǎn)品定制平臺(tái)提供的各類(lèi)數(shù)據(jù)分析算法進(jìn)行描述。主要作用有:為用戶提供便利性和數(shù)據(jù)訪問(wèn)限制,用戶能且僅能通過(guò)算法接口使用產(chǎn)品制作服務(wù),進(jìn)而訪問(wèn)數(shù)據(jù);為服務(wù)方提供擴(kuò)展性,服務(wù)方可以按接口擴(kuò)展現(xiàn)有算法庫(kù),提供更多的產(chǎn)品生成算法。
數(shù)據(jù)分析算法接口是一系列自定義的面向過(guò)程的Hadoop算法接口,主要包含復(fù)雜查詢、聚集、統(tǒng)計(jì)、回歸、挖掘、可視化等算法種類(lèi),每種算法種類(lèi)作為一個(gè)接口模塊,用戶只需設(shè)置簡(jiǎn)單參數(shù)即可使用提供的算法。同時(shí),考慮到算法接口的動(dòng)態(tài)擴(kuò)展,在設(shè)計(jì)算法過(guò)程中,各個(gè)模塊間耦合度小,方便后期的算法添加。以“查找(query)特定范圍的數(shù)據(jù),計(jì)算它們的方差(variance),如果方差小于給定值,則返回?cái)?shù)據(jù)均值(mean),否則返回?cái)?shù)據(jù)直方圖(histogram)”為例,query、variance、mean和histogram均為算法庫(kù)提供的輕量接口,參數(shù)為數(shù)據(jù)的范圍。
為了解決數(shù)據(jù)的授權(quán)訪問(wèn)問(wèn)題,筆者在設(shè)計(jì)算法時(shí),給每個(gè)算法都設(shè)定了數(shù)據(jù)訪問(wèn)范圍,在算法組合后,任一算法只可訪問(wèn)算法本身規(guī)定范圍內(nèi)的數(shù)據(jù)和在制作過(guò)程中產(chǎn)生的數(shù)據(jù)。
為了實(shí)現(xiàn)算法描述的簡(jiǎn)單、直觀、高效,采用REST作為算法描述方式的規(guī)范,REST的設(shè)計(jì)理念為:不區(qū)分事物,統(tǒng)一抽象為資源;資源使用統(tǒng)一資源標(biāo)識(shí)符(uniform resource identifier,URI)為計(jì)算機(jī)指引資源所代表的文檔或?qū)ο蟮木唧w位置,將URI作為唯一標(biāo)識(shí);采用通用接口操作資源;URI不隨資源的操作而改變;采用無(wú)狀態(tài)通信?;赗EST,本文提供的接口見(jiàn)表1。接口分為數(shù)據(jù)服務(wù)和算法服務(wù),如何使用接口也將在表1中描述。
本平臺(tái)提出的接口以URI形式提供給用戶使用,用戶可以直接通過(guò)HTTP請(qǐng)求與資源進(jìn)行交互,也可以將其嵌入系統(tǒng)后進(jìn)行二次開(kāi)發(fā),用戶在系統(tǒng)窗口內(nèi)輸入U(xiǎn)RI進(jìn)行交互。
以海洋環(huán)境基礎(chǔ)數(shù)據(jù)中的水文數(shù)據(jù)為例,制作“2010—2014年渤海深度在100 m內(nèi)的平均水溫”的URI可描述為:/data/temperature/use/year/2010/2014/ use/sea/bohai/use/depth/0/100/ algorithm/average/use_data/1,其中不同data的多個(gè)type順序可替換。
5.2 定價(jià)模型
考慮到數(shù)據(jù)產(chǎn)品制作成本的特殊性,即主要成本由采集數(shù)據(jù)產(chǎn)生,產(chǎn)品制作過(guò)程中消耗的計(jì)算資源可忽略不計(jì),因此在本平臺(tái)的定價(jià)模型中,將定價(jià)粒度(即定價(jià)的基本單位)定義為制作算法,這種設(shè)計(jì)避免了為了收集和計(jì)算占用資源,使得一個(gè)訂單服務(wù)在一段時(shí)間內(nèi)獨(dú)享平臺(tái)軟硬件資源造成的資源浪費(fèi),還為用戶提前得知定價(jià)以便修改定制算法提供了可能性。
以制作算法作為支付單位的定價(jià)算法描述如下。
假設(shè)產(chǎn)品定價(jià)為P,產(chǎn)品權(quán)值為R,第i個(gè)產(chǎn)品制作算法單價(jià)為pi,采用制作算法個(gè)數(shù)為n,可得計(jì)算式:
表1 對(duì)外URI描述
其中,產(chǎn)品權(quán)值R表示不一樣的產(chǎn)品結(jié)果需要不一樣的定價(jià)方法,例如,同樣的算法和數(shù)據(jù),獲得一系列連續(xù)數(shù)值、連續(xù)數(shù)值的分布圖像、連續(xù)數(shù)值的三段分布圖像的定價(jià)必然是不同的。假設(shè)產(chǎn)品有n種形式的結(jié)果,第i種形式分別有ni個(gè)結(jié)果,每個(gè)結(jié)果的權(quán)值為ri(0≤ri≤1),可得計(jì)算式:
此外,假設(shè)第i個(gè)算法基礎(chǔ)價(jià)格為ai,該算法采用數(shù)據(jù)條數(shù)為ni,其中第j條數(shù)據(jù)的數(shù)據(jù)單價(jià)為dij、第j條元數(shù)據(jù)價(jià)格為dij',第i個(gè)產(chǎn)品制作算法單價(jià)pi的計(jì)算式如下:
其中,第j條數(shù)據(jù)的數(shù)據(jù)單價(jià)dij需要在數(shù)據(jù)導(dǎo)入的同時(shí)給定值,第j條元數(shù)據(jù)價(jià)格dij'是考慮到有部分元數(shù)據(jù)可能單獨(dú)或和數(shù)據(jù)聯(lián)合起來(lái)進(jìn)行運(yùn)算而設(shè)計(jì)的,需要在元數(shù)據(jù)導(dǎo)入同時(shí)給定,將一個(gè)已有的可復(fù)用的數(shù)據(jù)產(chǎn)品也視作一條數(shù)據(jù)。
筆者開(kāi)發(fā)了國(guó)家海洋局的海洋信息產(chǎn)品在線制作與發(fā)布系統(tǒng),系統(tǒng)實(shí)現(xiàn)了元數(shù)據(jù)的檢索、數(shù)據(jù)產(chǎn)品的定制、數(shù)據(jù)產(chǎn)品的瀏覽與獲取等功能。
用戶編寫(xiě)符合數(shù)據(jù)分析算法接口標(biāo)準(zhǔn)的算法語(yǔ)句,通過(guò)網(wǎng)站窗口提交到網(wǎng)站后臺(tái),網(wǎng)站后臺(tái)在審核數(shù)據(jù)調(diào)用權(quán)限后,傳遞到數(shù)據(jù)分析平臺(tái)進(jìn)行相關(guān)計(jì)算,生成產(chǎn)品。圖6為示例算法“2010—2014年渤海深度在100 m內(nèi)的平均水溫”的URI的解析,解析時(shí)首先識(shí)別標(biāo)識(shí)符,然后識(shí)別標(biāo)識(shí)符后跟隨的ID,用來(lái)限定數(shù)據(jù)范圍、選擇分析算法。
用戶在訂單管理頁(yè)面可以有效管理訂單。訂單號(hào)由訂單生成時(shí)間及訂單內(nèi)容組成,訂單價(jià)格在用戶提交算法后由服務(wù)器根據(jù)定價(jià)算法得出,訂單狀態(tài)實(shí)時(shí)更新。用戶支付后,點(diǎn)擊下載即可下載產(chǎn)品,產(chǎn)品根據(jù)用戶提交的算法不同,可分為單個(gè)數(shù)值、數(shù)據(jù)集、圖像集。數(shù)據(jù)產(chǎn)品在線定制平臺(tái)目前在國(guó)家海洋信息中心相關(guān)部門(mén)初步應(yīng)用,表2總結(jié)了應(yīng)用前后的效果對(duì)比。可見(jiàn),平臺(tái)能夠完成設(shè)計(jì)目標(biāo),但產(chǎn)品定制效果有待提高。最終,筆者預(yù)期可以實(shí)現(xiàn)部分產(chǎn)品生成算法的定制。
本文建立了數(shù)據(jù)產(chǎn)品在線定制平臺(tái)的體系結(jié)構(gòu)和流程,實(shí)現(xiàn)了對(duì)數(shù)據(jù)的產(chǎn)品定制,完成了算法接口和定價(jià)模型的設(shè)計(jì)和原型系統(tǒng)示例,對(duì)于完善“數(shù)字海洋”系統(tǒng)的數(shù)據(jù)管理與共享、建立完備的數(shù)據(jù)服務(wù)體系起到一定作用。
圖6 URI示例解析
進(jìn)一步的工作有:首先,定價(jià)模型需要根據(jù)進(jìn)一步實(shí)驗(yàn)給出數(shù)據(jù)之間、算法之間的基礎(chǔ)比值,以便為實(shí)現(xiàn)具體模型時(shí)提供定價(jià)參考;其次,用戶申請(qǐng)數(shù)據(jù)的過(guò)程需引入合適的權(quán)限控制系統(tǒng)以控制資源的授權(quán),避免因此帶來(lái)的安全問(wèn)題;最后,需要提升數(shù)據(jù)分析算法接口定制復(fù)雜分析算法的能力,以適應(yīng)用戶對(duì)于“高度可定制”的產(chǎn)品制作需求。
表2 應(yīng)用效果比較
[1] 張峰, 石綏祥, 殷汝廣, 等. 數(shù)字海洋中數(shù)據(jù)體系結(jié)構(gòu)研究[J]. 海洋通報(bào), 2009, 28(4): 1-8. ZHANG F, SHI S X, YIN R G, et al. A study of data architecture in digital ocean[J]. Marine Science Bulletin, 2009, 28(4): 1-8.
[2] ALBERTO P. Technologies for large data management in scientific computing[J]. International Journal of Modern Physics C, Physics and Computers, 2014, 25(2): 343-352.
[3] YOUSEFF L, BUTRICO M, SILVA D D. Toward a unified ontology of cloud computing[C]//The Grid Computing Environments Workshop, Nov. 12-16, 2008, Texas, USA. New Jersey: IEEE Press, 2008: 1-10.
[4] AZEEZ A, PERERA S, GAMAGE D, et al. Multi-tenant SOA middleware for cloud computing[C]//The 2010 IEEE 3rd International Conference on Cloud Computing, July 5-10, Miami, Florida, USA. New Jersey: IEEE Press, 2010: 458-465.
[5] FENG X, SHEN J, FAN Y. REST: an alternative to RPC for web services architecture[C]//The Future Information Networks, October 14-17, 2009, Beijing, China. New Jersey: IEEE Press, 2009: 7-10.
[6] LOMOTEY R K, DETERS R. Analyticsas-a-service (AaaS) tool for unstructured data mining[C]// 2014 IEEE International Conference on the Cloud Engineering (IC2E), March 11-14, 2014, Boston, MA, USA. New Jersey: IEEE Press, 2014: 319-324.
[7] KULKARNI G, GAMBHIR J, PATIL T, et al. A security aspects in cloud computing[C]// 2012 IEEE 3rd International Conference on the Software Engineering and Service Science (ICSESS), June 22-24, 2012, Beijing, China. New Jersey: IEEE Press, 2012: 547-550.
[8] CAZEMIER H, RASMUSSEN G D. Query engine and method for querying data using metadata model: U.S. Patent 6,609,123[P]. 2003-8-19.
作者簡(jiǎn)介
張峰(1978-),男,博士,國(guó)家海洋信息中心副研究員,主要研究方向?yàn)樵朴?jì)算與數(shù)據(jù)服務(wù)。
孫宗哲(1991-),男,東北大學(xué)軟件學(xué)院碩士生,主要研究方向?yàn)楦吣苄в?jì)算。
Ochora Dennis Reagan(1990-),男,東北大學(xué)軟件學(xué)院碩士生,主要研究方向?yàn)榇髷?shù)據(jù)處理。
劉建楠(1963-),男,就職于中國(guó)石油慶陽(yáng)石化公司,主要從事企業(yè)經(jīng)營(yíng)和信息化管理工作。
宋杰(1980-),男,博士,東北大學(xué)軟件學(xué)院副教授,中國(guó)計(jì)算機(jī)學(xué)會(huì)高級(jí)會(huì)員,主要研究方向?yàn)榇髷?shù)據(jù)存儲(chǔ)與管理、高能效計(jì)算、云計(jì)算。
Research and practice on online data production platform
ZHANG Feng1, SUN Zongzhe2, OCHORA Dennis Reagan2, LIU Jiannan3, SONG Jie2
1. National Marine Data and Information Service, Tianjin 300171, China 2. Software College, Northeastern University, Shenyang 110819, China 3. Petro China Qingyang Petrochemical Company, Qingyang 745115, China
In the big data era, the research institutes and enterprises manage massive scientific data of various disciplines, such as oceanography, meteorology, geology and petroleum, and service the clients with the analysis results that are treated as data products. Traditionally, these institutes do not provide the service-oriented production platform for data products. The shortages and challenges of the production process were analyzed, the new requirements of online production platform for scientific data product was proposed, the architecture of platform was designed, and key techniques including the serviceoriented interface for data analysis algorithms, mechanisms of data security and isolation, and the pricing model for data product were studied. Finally, the application of online production platform as a case study was explained.
cloud computing, big data, interface for data analysis algorithm, data as a service, data products pricing
TP301.41
A
10.11959/j.issn.2096-0271.2016072
2016-10-20
國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61433008,No.61502090);數(shù)字海洋開(kāi)放基金資助項(xiàng)目(No.KLD0201405);教育部博士點(diǎn)基金資助項(xiàng)目(No.20130042120006);教育部—英特爾信息技術(shù)專(zhuān)項(xiàng)科研基金資助項(xiàng)目(No.MOE-INTEL-2012-06)
Foundation Items:The National Natural Science Foundation of China(No.61433008, No.61502090), Digital Ocean Open Foundation(No.KLD0201405), Doctoral Fund of Ministry of Education of China ( No.20130042120006), Ministry of Education -Intel Information Technology Special Research Fund(No. MOE-INTEL-2012-06)