苗 放, 向清松, 楊文暉
(1.成都大學(xué) 信息科學(xué)與工程學(xué)院, 四川 成都 610106;2.成都理工大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 四川 成都 610059)
?
基于Neo4j的面向體系架構(gòu)(DOA)的數(shù)據(jù)注冊(cè)中心(DRC)的實(shí)現(xiàn)
苗放1, 向清松2, 楊文暉2
(1.成都大學(xué) 信息科學(xué)與工程學(xué)院, 四川 成都610106;2.成都理工大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 四川 成都610059)
摘要:為解決大數(shù)據(jù)時(shí)代下數(shù)據(jù)急劇增長(zhǎng)帶來(lái)的信息孤島、系統(tǒng)擴(kuò)展難及數(shù)據(jù)管理過(guò)度復(fù)雜等現(xiàn)象,采用面向數(shù)據(jù)體系架構(gòu)(DOA)的思想和相關(guān)技術(shù),結(jié)合Neo4j,設(shè)計(jì)了基于圖形數(shù)據(jù)庫(kù)的具有分布式、高效率、擴(kuò)展性強(qiáng)的數(shù)據(jù)注冊(cè)中心(DRC)方案,并搭建了實(shí)驗(yàn)平臺(tái).采用分布式圖形數(shù)據(jù)庫(kù)的注冊(cè)方案已得到初步驗(yàn)證,與傳統(tǒng)的數(shù)據(jù)注冊(cè)方案相比,能夠提高系統(tǒng)的運(yùn)行效率,增強(qiáng)系統(tǒng)的擴(kuò)展性,同時(shí),簡(jiǎn)化了數(shù)據(jù)管理.
關(guān)鍵詞:大數(shù)據(jù);DOA;DRC;Neo4j;擴(kuò)展性;分布式
0引言
隨著互聯(lián)網(wǎng)技術(shù)的普及、云計(jì)算與移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,以及大數(shù)據(jù)時(shí)代來(lái)臨,其4V(Volume、Velocity、Variety、Veracity)特點(diǎn)給互聯(lián)網(wǎng)應(yīng)用帶來(lái)了諸多技術(shù)上的瓶頸[1].如何應(yīng)對(duì)數(shù)據(jù)增長(zhǎng)帶來(lái)的負(fù)面效應(yīng),已成了業(yè)界的研究熱點(diǎn).此外,隨著互聯(lián)網(wǎng)Web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在應(yīng)付Web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)SNS類型Web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了維護(hù)成本高、效率低及容災(zāi)性低等很多難以克服的問(wèn)題,而與此同時(shí)非關(guān)系型的數(shù)據(jù)庫(kù)得到了迅猛的發(fā)展[2].同時(shí),軟件技術(shù)的發(fā)展并沒有解決信息技術(shù)長(zhǎng)期存在的問(wèn)題.如信息難以共享、系統(tǒng)難以擴(kuò)展及數(shù)據(jù)管理過(guò)度復(fù)雜等問(wèn)題依然困擾著現(xiàn)在的軟件行業(yè).在這種背景下,作者于2012年提出了面向數(shù)據(jù)的體系架構(gòu)(Data-Oriented Architecture,DOA)[3].該體系結(jié)構(gòu),采用“面向數(shù)據(jù)和以數(shù)據(jù)為核心"的思路,通過(guò)數(shù)據(jù)注冊(cè)中心(Data Register Center,DRC)、數(shù)據(jù)權(quán)限中心(Data Authority Center,DAC)和數(shù)據(jù)異常中心(Data Exception Control Center,DEC)統(tǒng)一定義數(shù)據(jù)、 管理數(shù)據(jù)和提供數(shù)據(jù)服務(wù),通過(guò)數(shù)據(jù)應(yīng)用單元(Data Application Units,DAUs)對(duì)各種應(yīng)用進(jìn)行管理和服務(wù),建立一種數(shù)據(jù)大平臺(tái)與碎片化應(yīng)用的數(shù)據(jù)生態(tài)系統(tǒng).本研究利用Neo4j支持集群、效率高、一致性的特點(diǎn)[4],結(jié)合DOA的思想,初步完成了DOA的核心部件——數(shù)據(jù)注冊(cè)中心(DRC)的設(shè)計(jì),并通過(guò)實(shí)驗(yàn)驗(yàn)證了其所具有的分布式、高效率、擴(kuò)展性良好的特點(diǎn).
1相關(guān)技術(shù)
1.1面向數(shù)據(jù)的體系架構(gòu)(DOA)
1.1.1DOA的目標(biāo).
DOA的目標(biāo)是:建立一種數(shù)據(jù)大平臺(tái)與碎片化應(yīng)用的數(shù)據(jù)生態(tài)系統(tǒng)的構(gòu)建機(jī)制,從數(shù)據(jù)保護(hù)到數(shù)據(jù)授權(quán)應(yīng)用的全過(guò)程管理,有效解決大數(shù)據(jù)時(shí)代所面臨的軟件體系結(jié)構(gòu)問(wèn)題,提供基礎(chǔ)理論和方法技術(shù)支撐[2].
1.1.2DOA數(shù)據(jù)注冊(cè)思路及優(yōu)勢(shì).
DOA以數(shù)據(jù)為核心,但并不是以原始數(shù)據(jù)為核心,而是以原始數(shù)據(jù)的描述數(shù)據(jù)為核心,DOA數(shù)據(jù)注冊(cè)思路流程圖如圖1所示.
如圖1所示,多個(gè)應(yīng)用使用一套規(guī)則對(duì)應(yīng)用本身產(chǎn)生的數(shù)據(jù)進(jìn)行描述,將數(shù)據(jù)變成信息,然后將描述數(shù)據(jù)統(tǒng)一持久化到數(shù)據(jù)資源池中.若數(shù)據(jù)資源池?fù)碛凶銐虻臄?shù)據(jù),就基于現(xiàn)有數(shù)據(jù),根據(jù)業(yè)務(wù)的需要,從數(shù)據(jù)池中提取數(shù)據(jù)擴(kuò)展出新的應(yīng)用.
事實(shí)上, DOA的數(shù)據(jù)注冊(cè)思路有利于解決目前信息領(lǐng)域的如下問(wèn)題:
圖1DOA數(shù)據(jù)注冊(cè)思路流程圖
1)信息孤島.當(dāng)應(yīng)用系統(tǒng)之間無(wú)法在功能上相連、數(shù)據(jù)上共享時(shí)就容易出現(xiàn)信息孤島.DOA將應(yīng)用的數(shù)據(jù)采用統(tǒng)一管理的方式組織起來(lái),這在數(shù)據(jù)上實(shí)現(xiàn)了共享.隨著數(shù)據(jù)資源池的發(fā)展,從數(shù)據(jù)資源池上擴(kuò)展出的新的應(yīng)用越來(lái)越多,各個(gè)應(yīng)用系統(tǒng)之間的耦合性增加,從而進(jìn)一步降低了信息孤島出現(xiàn)的概率.
2)系統(tǒng)擴(kuò)展性差.隨著業(yè)務(wù)需求的不斷變化,傳統(tǒng)軟件架構(gòu)下的信息系統(tǒng)需要更改大量的代碼才能實(shí)現(xiàn)新的需求,這增加了軟件開發(fā)的維護(hù)成本,其中相當(dāng)大的一部分成本是消耗在數(shù)據(jù)的組織和維護(hù)上的.DOA采用的對(duì)數(shù)據(jù)描述的方案將數(shù)據(jù)和數(shù)據(jù)攜帶的基本信息分開,當(dāng)需求發(fā)生變化的時(shí)候,只需要更改與需求相關(guān)應(yīng)用的數(shù)據(jù)描述方案,對(duì)數(shù)據(jù)的解決方案無(wú)需修改.這既保證了應(yīng)用之間的關(guān)聯(lián),又增強(qiáng)了系統(tǒng)的擴(kuò)展性.
3)數(shù)據(jù)管理難度大.海量、多源、異構(gòu)、動(dòng)態(tài)的數(shù)據(jù)容易導(dǎo)致數(shù)據(jù)管理困難、維護(hù)成本高等問(wèn)題.在DOA架構(gòu)中,數(shù)據(jù)不直接參與管理,數(shù)據(jù)只有通過(guò)對(duì)數(shù)據(jù)描述產(chǎn)生的描述性數(shù)據(jù)才能進(jìn)行間接的統(tǒng)一管理.而數(shù)據(jù)的描述方案可以將海量、異構(gòu)的數(shù)據(jù)變成體積相對(duì)較小、格式相對(duì)統(tǒng)一的描述性數(shù)據(jù).同時(shí)結(jié)合分布式、云計(jì)算等方案可以快速處理多源、動(dòng)態(tài)的數(shù)據(jù).
1.1.3DOA重要的組件.
DOA可以適用于多應(yīng)用、多源、異構(gòu)的數(shù)據(jù)的解決方案.數(shù)據(jù)在共享的情況下容易出現(xiàn)數(shù)據(jù)異常、信息安全等問(wèn)題.在DOA架構(gòu)中,為了保障數(shù)據(jù)的安全并維護(hù)系統(tǒng)的穩(wěn)定,DOA體系結(jié)構(gòu)最重要的4個(gè)部件分別是數(shù)據(jù)注冊(cè)中心(DRC)、數(shù)據(jù)權(quán)限中心(DAC)、數(shù)據(jù)異常中心(DEC)、數(shù)據(jù)應(yīng)用單元(DAUs),各部件的功能如表1所示.
表1 DOA部件及其功能
1.2Neo4j圖形數(shù)據(jù)庫(kù)
圖是信息領(lǐng)域常見的一種數(shù)據(jù)結(jié)構(gòu).圖的強(qiáng)關(guān)系、高度對(duì)象化、算法成熟等特點(diǎn)使得圖形數(shù)據(jù)庫(kù)在SNS、推送、強(qiáng)關(guān)系的應(yīng)用中得到廣泛應(yīng)用.
Neo4j是Neo Technology公司開發(fā)的嵌入式、基于磁盤、具備完全的事務(wù)特性的Java持久化引擎.它將數(shù)據(jù)對(duì)象化并按照網(wǎng)絡(luò)的形式存放在磁盤上.
Neo4j對(duì)數(shù)據(jù)采用節(jié)點(diǎn)、標(biāo)簽、關(guān)系的方式來(lái)管理,它們的作用和與關(guān)系型數(shù)據(jù)庫(kù)的對(duì)比[4]如表2所示.
表2 Neo4j的元素
2基于Neo4j的數(shù)據(jù)注冊(cè)中心的實(shí)現(xiàn)
2.1基于DOA的數(shù)據(jù)注冊(cè)流程
2.1.1傳統(tǒng)數(shù)據(jù)注冊(cè)機(jī)制的問(wèn)題.
目前基于文件的管理應(yīng)用基本都使用了數(shù)據(jù)注冊(cè)的思想,例如云盤、圖庫(kù)就是其中的典型例子.但是目前主流的注冊(cè)機(jī)制存在2個(gè)弊端.
1)接口安全性低.現(xiàn)在大多數(shù)信息軟件多采用基于HTTP/Https的REST接口的方案來(lái)訪問(wèn)服務(wù)器.因?yàn)镠TTP/Https的安全性導(dǎo)致很多信息軟件的接口被暴露.這些接口被非信用的環(huán)境利用,從而導(dǎo)致數(shù)據(jù)泄露、信息泄密等安全性問(wèn)題.更嚴(yán)重的是,如果這些接口被惡意攻擊,那么整個(gè)信息軟件將處于癱瘓狀態(tài).
2)接口擴(kuò)展性低.有一部分信息軟件為了保證信息的安全,將接口設(shè)計(jì)得過(guò)于封閉,這樣導(dǎo)致這一部分接口擴(kuò)展性低.一旦軟件需求發(fā)生變化,就需要重新設(shè)計(jì)這些接口,造成大量的人力資源浪費(fèi).
2.1.2注冊(cè)流程的實(shí)現(xiàn).
在DOA中,為了保證數(shù)據(jù)的可靠性,服務(wù)器需要對(duì)客戶端的合法性進(jìn)行檢測(cè),可以通過(guò)服務(wù)器對(duì)客戶端傳送的請(qǐng)求數(shù)據(jù)進(jìn)行檢驗(yàn).
為了降低惡意注冊(cè)消耗資源,同時(shí)加強(qiáng)數(shù)據(jù)的安全性和合法性,服務(wù)器和客戶端之間使用類似TCP協(xié)議的三次握手模式[5].
為了增加接口的擴(kuò)展性,對(duì)數(shù)據(jù)的處理事務(wù),通過(guò)提交“數(shù)據(jù)業(yè)務(wù)表"的形式指定對(duì)數(shù)據(jù)的操作類型.然后數(shù)據(jù)注冊(cè)中心根據(jù)業(yè)務(wù)的相應(yīng)類型做出操作.整個(gè)注冊(cè)流程如圖2所示.
圖2注冊(cè)流程示意圖
如圖2所示,注冊(cè)流程可以分成客戶端發(fā)布注冊(cè)數(shù)據(jù)以及服務(wù)器接收處理注冊(cè)數(shù)據(jù)2個(gè)部分.
1)客戶端發(fā)布注冊(cè)數(shù)據(jù),其注冊(cè)過(guò)程描述如下:
①填寫業(yè)務(wù)申請(qǐng)表,然后向DRC用戶控制中心提出申請(qǐng),獲取訪問(wèn)DRC的密鑰;
②如果獲取到訪問(wèn)密鑰,將業(yè)務(wù)申請(qǐng)表同訪問(wèn)密鑰一起提交到服務(wù)器,若未獲得訪問(wèn)密鑰,則無(wú)法上傳數(shù)據(jù)到服務(wù)器;
③等待服務(wù)器驗(yàn)證,處理申請(qǐng)表;
④獲取服務(wù)器傳來(lái)的業(yè)務(wù)號(hào).
2)服務(wù)器接收、處理數(shù)據(jù).服務(wù)器在接收到客戶端傳入的數(shù)據(jù)之后,需要對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證、處理,并注冊(cè),其處理流程如下:
①檢測(cè)提出業(yè)務(wù)申請(qǐng)的客戶端的合法性;
②若客戶端合法,這為客戶端分發(fā)DRC訪問(wèn)密鑰;
③將客戶端上傳的數(shù)據(jù)和密鑰進(jìn)行校驗(yàn).校驗(yàn)成功,就將數(shù)據(jù)注冊(cè);否則,就丟棄此次申請(qǐng);
④對(duì)申請(qǐng)注冊(cè)的客戶端返回業(yè)務(wù)表單號(hào).
2.2基于Neo4j的數(shù)據(jù)業(yè)務(wù)的實(shí)現(xiàn)
為了提高整個(gè)數(shù)據(jù)中心運(yùn)行效率,本研究采用雙節(jié)點(diǎn)(預(yù)覽節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn))的方式來(lái)處理業(yè)務(wù)表單[6],設(shè)計(jì)原理見表3.
表3 節(jié)點(diǎn)類型及作用
1)數(shù)據(jù)注冊(cè).如圖3所示,當(dāng)服務(wù)器將客戶端提交的描述數(shù)據(jù)經(jīng)過(guò)驗(yàn)證之后,服務(wù)器先將數(shù)據(jù)的常用信息提取處理構(gòu)成預(yù)覽節(jié)點(diǎn),再將所有信息構(gòu)成詳細(xì)節(jié)點(diǎn),然后再將預(yù)覽節(jié)點(diǎn)和詳細(xì)節(jié)點(diǎn)用數(shù)據(jù)明細(xì)的關(guān)系鏈接起來(lái),最后再將預(yù)覽節(jié)點(diǎn)和用戶節(jié)點(diǎn)關(guān)聯(lián)起來(lái).
圖3數(shù)據(jù)注冊(cè)
2)數(shù)據(jù)更新.如圖4所示,由于數(shù)據(jù)在使用過(guò)程中不具有嚴(yán)格的實(shí)時(shí)性,因此,在更新數(shù)據(jù)時(shí),其他使用數(shù)據(jù)的客戶端可能正在使用歷史數(shù)據(jù).
圖4數(shù)據(jù)更新
更新數(shù)據(jù)的過(guò)程如下:檢測(cè)更新前的節(jié)點(diǎn)信息和當(dāng)前結(jié)點(diǎn)的信息是否一致,如果不一致,就重新讀取數(shù)據(jù);先構(gòu)建新的詳細(xì)節(jié)點(diǎn);將新詳細(xì)節(jié)點(diǎn)和預(yù)覽節(jié)點(diǎn)按照數(shù)據(jù)詳細(xì)的關(guān)系鏈接起來(lái);將舊詳細(xì)節(jié)點(diǎn)和預(yù)覽節(jié)點(diǎn)按照歷史數(shù)據(jù)的關(guān)系鏈接起來(lái);更新預(yù)覽節(jié)點(diǎn);預(yù)覽節(jié)點(diǎn),采用屬性更新法;數(shù)據(jù)節(jié)點(diǎn),采用節(jié)點(diǎn)更換法.
3)數(shù)據(jù)刪除.當(dāng)刪除數(shù)據(jù)時(shí),只需要將用戶節(jié)點(diǎn)和預(yù)覽節(jié)點(diǎn)之間的關(guān)系修改為刪除關(guān)系即可,對(duì)歷史數(shù)據(jù)在定期的維護(hù)中處理,具體如圖5所示.
圖5刪除數(shù)據(jù)
3結(jié)論
本研究對(duì)以上的設(shè)計(jì)方案搭建了實(shí)驗(yàn)平臺(tái),主要針對(duì)注冊(cè)中心的接口安全性以及運(yùn)行效率進(jìn)行了實(shí)驗(yàn)部署.實(shí)驗(yàn)環(huán)境:分布式集群節(jié)點(diǎn),3個(gè);CPU,Xeon ES-2620;內(nèi)存,8 GB;硬盤,1 TB;系統(tǒng),Unbuntu server 15.10 64 bit.此外,實(shí)驗(yàn)數(shù)據(jù)集有12 859條數(shù)據(jù);學(xué)習(xí)種類的筆記數(shù)據(jù)量達(dá)到328 MB.
實(shí)驗(yàn)結(jié)果表明:數(shù)據(jù)注冊(cè)針對(duì)不同的數(shù)據(jù)條數(shù)、數(shù)據(jù)量,速度變化明顯;數(shù)據(jù)更新時(shí),速度和數(shù)據(jù)條數(shù)有顯著關(guān)系;數(shù)據(jù)刪除時(shí),速度和數(shù)據(jù)的復(fù)雜度、數(shù)據(jù)量有顯著關(guān)系.
從實(shí)驗(yàn)結(jié)果看,本研究所涉及的注冊(cè)中心有較滿意的運(yùn)行效率,并得出以下結(jié)論:?jiǎn)螚l數(shù)據(jù)的體積越大,DRC的處理效率越低;數(shù)據(jù)量越大,DRC的處理效率越低;數(shù)據(jù)的復(fù)雜度越高,DRC的處理效率越低.
本研究采用分布式的圖形數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)現(xiàn)的DRC在一定程度上能夠提高數(shù)據(jù)處理的效率,為DOA的深入研究奠定了基礎(chǔ).
參考文獻(xiàn):
[1]維克托·邁爾·舍恩柏格,肯尼思·庫(kù)克耶.大數(shù)據(jù)時(shí)代[M].盛楊燕,周濤,譯.杭州:浙江人民出版社,2013.
[2]苗放.面向數(shù)據(jù)的體系結(jié)構(gòu)[EB/OL].[2015-11-29].http://baike.baidu.com/subview/649092/12822804.htm.
[3]麥克雷·丹,凱利·安.解密NoSQL[M].范東來(lái),滕雨木童,譯.北京:人民郵電出版社,2016.
[4]Neo Technology.The Neo4j Manual v2.3.3[EB/OL].[2016-01-13].http://neo4j.com/docs/2.3.
[5]孟小峰,慈祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn).[J]計(jì)算機(jī)研究與發(fā)展,2013,50(1):146-169.
[6]Stevens W R.TCP/IP詳解(卷3):TCP事務(wù)協(xié)議、HTTP、NNTP和UNIX域協(xié)議[M].胡谷雨,吳禮發(fā),馬春華,等譯.北京:機(jī)械工業(yè)出版社,2011.
[7]楊文暉,李國(guó)強(qiáng),苗放.面向海量空間數(shù)據(jù)存儲(chǔ)的元數(shù)據(jù)管理機(jī)制[J].計(jì)算機(jī)應(yīng)用,2015,35(5):1276-1279.
Realization of DRC Based on Data Oriented Architecture of Neo4j
MIAOFang1,XIANGQingsong2,YANGWenhui2
(1.School of Information Science and Engineering ,Chengdu University, Chengdu 610106,China;2.College of Information Sciences and Technology, Chengdu University of Technology, Chengdu 610059, China)
Abstract:In order to solve the problems caused by the dramatic increase of data in the big data period,such as the information isolated island,difficult system expansion and complex management of data,etc,the paper,combining the thoughts about Data Oriented Architecture(DOA),Neo4j and some other related technologies,designs a highly distributed,highly efficient Data Register Center(DRC) scheme with strong expansibility based on a graphic database.Moreover,for this scheme,an experiment platform is established and a test is done too.It's preliminarily verified that the registered plan based on distributed graphic database,compared with the traditional data registration scheme,can improve the system efficiency in operation,enhance the scalability of the system,and simplifies the data management.
Key words:big data;DOA;DRC;Neo4j;expansibility;distribution
文章編號(hào):1004-5422(2016)02-0143-04
收稿日期:2016-04-12.
基金項(xiàng)目:國(guó)家自然科學(xué)基金(61071121)資助項(xiàng)目.
作者簡(jiǎn)介:苗放(1958 — ), 男, 博士, 教授, 從事計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與空間信息技術(shù)及應(yīng)用研究.
中圖分類號(hào):TP311.13;TP311.52
文獻(xiàn)標(biāo)志碼:A