向清松,馬 闖,楊文暉
(成都理工大學信息科學與技術(shù)學院,四川成都,610059)
基于數(shù)據(jù)的平臺構(gòu)建相關(guān)研究
向清松,馬 闖,楊文暉
(成都理工大學信息科學與技術(shù)學院,四川成都,610059)
為應對大數(shù)據(jù)時代對傳統(tǒng)的軟件構(gòu)建模式的挑戰(zhàn),論文采用面向數(shù)據(jù)體系架構(gòu)(DOA)的思想,結(jié)合傳統(tǒng)的軟件架構(gòu)模式,設(shè)計了以數(shù)據(jù)為核心,以業(yè)務為驅(qū)動的軟件構(gòu)建模式,并經(jīng)過2015國家大學生創(chuàng)新創(chuàng)業(yè)訓練計劃“基于面向數(shù)據(jù)體系架構(gòu)(DOA)的學習平臺建設(shè)(第一期)”項目的實踐,初步證實了論文描述的構(gòu)建模式的優(yōu)越性和可實現(xiàn)性。
大數(shù)據(jù);業(yè)務;數(shù)據(jù);DOA;健壯性;軟件架構(gòu)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,人類社會迎來了“大數(shù)據(jù)”時代。數(shù)據(jù)的“4V”特性給傳統(tǒng)的互聯(lián)網(wǎng)結(jié)構(gòu)和軟件構(gòu)建模型帶來了巨大的挑戰(zhàn)。
大數(shù)據(jù)時代為來臨之前,軟件平臺的構(gòu)建很大一部分都是以業(yè)務驅(qū)動的。傳統(tǒng)的軟件開發(fā)流程基本都屬都是:首先梳理業(yè)務,然后定義數(shù)據(jù)。但在當下的“大數(shù)據(jù)”時代環(huán)境中,這種軟件平臺構(gòu)建方式不能滿足現(xiàn)有平臺開發(fā)的需要。一方面因為業(yè)務本身可能存在功能缺陷,另外一方面若現(xiàn)有的業(yè)務依賴原有的業(yè)務的數(shù)據(jù),先前的軟件平臺有很大的概率會受到很大的影響。
本文從2015國家大學生創(chuàng)新創(chuàng)業(yè)訓練計劃“基于面向數(shù)據(jù)體系架構(gòu)(DOA)的學習平臺建設(shè)(第一期)”項目的實踐出發(fā),論述基于數(shù)據(jù)的平臺構(gòu)建的優(yōu)勢和相關(guān)問題的探討。
在傳統(tǒng)的軟件構(gòu)建流程的流程中,業(yè)務是驅(qū)動軟件構(gòu)建的絕對動力。業(yè)務的梳理對軟件
構(gòu)建的范圍和架構(gòu)設(shè)計的基本框架有明確的指導意義。這在一定程度上確實會簡化和明確軟件開發(fā)的流程。但是采用這種軟件構(gòu)建方式構(gòu)建高質(zhì)量軟件需要很高的要求,例如在軟件層面上的要求就必須有:
第一:業(yè)務模型必須完整。整個軟件的構(gòu)建都是基于業(yè)務的,若業(yè)務模型不完整或不完善,整個軟件的構(gòu)建就將陷入迷茫的狀態(tài)。這使得軟件構(gòu)建不能按照先前規(guī)定的時間表來執(zhí)行計劃的風險加大,也對后期的軟件維護帶來巨大的挑戰(zhàn)。
第二:業(yè)務之間的耦合會影響現(xiàn)有的業(yè)務。在公司的軟件生態(tài)中,不難發(fā)現(xiàn)軟件具有耦合現(xiàn)象。一方面這是市場的要求,另一方面這也是業(yè)務背后的數(shù)據(jù)的要求。例如:大數(shù)據(jù)項目中的數(shù)據(jù)分析業(yè)務下的“數(shù)據(jù)打點”(簡稱“打點”)工作:“打點”一般是先確定數(shù)據(jù)點的位置,然后在數(shù)據(jù)點的位置增加代碼來收集數(shù)據(jù)。若前期在對業(yè)務需求的梳理中遺漏了部分數(shù)據(jù)點,那“打點”工作就將會重復執(zhí)行,而這種重復的代價是很高的。
第三:系統(tǒng)后期維護難,重構(gòu)風險大。前期的軟件構(gòu)建被需求限制了。若在軟件構(gòu)建后期,當需求發(fā)生變動時,軟件的維護成本將加大,甚至會使得軟件面臨重構(gòu)的風險。
以上三點是業(yè)務驅(qū)動項目構(gòu)建在軟件層面上的“高要求”,當然業(yè)務驅(qū)動項目構(gòu)建也有自己的優(yōu)勢:
(1)軟件構(gòu)建方式的受眾廣。
(2)單體項目的構(gòu)建簡單。
(3)項目的前期進度易把控。
針對以業(yè)務驅(qū)動軟件構(gòu)建的模式所帶來軟件層面上的基本問題,最好的解決方案之一“面向數(shù)據(jù)的體系架構(gòu)(DOA)”。面向數(shù)據(jù)的體系架構(gòu)(DOA)是苗放教授于2012年提出的一種用于處理海量數(shù)據(jù)的軟件架構(gòu)模式。面向數(shù)據(jù)的體系結(jié)構(gòu)(DOA),采用“面向數(shù)據(jù)和以數(shù)據(jù)為核心”的思想,通過數(shù)據(jù)注冊中心(DRC)、數(shù)據(jù)權(quán)限中心(DAC)和數(shù)據(jù)異常中心(DEC)統(tǒng) 一定義數(shù)據(jù)、 管理數(shù)據(jù)和提供數(shù)據(jù)服務;通過數(shù)據(jù)應用單元(DAUs)對各種應用進行管理和服務,建立一種數(shù)據(jù)大平臺與碎片化應用的數(shù)據(jù)生態(tài)系統(tǒng)。
面向數(shù)據(jù)的體系架構(gòu)的核心思想是面向數(shù)據(jù),以數(shù)據(jù)驅(qū)動軟件構(gòu)建。以數(shù)據(jù)驅(qū)動軟件構(gòu)建的構(gòu)建模式在軟件層面有以下的幾個顯著優(yōu)勢:
(1)信息共享。面向數(shù)據(jù)的體系架構(gòu)的核心思想是以數(shù)據(jù)為中心,業(yè)務是由數(shù)據(jù)催生的應用單元。數(shù)據(jù)層面上的數(shù)據(jù)共享一方面使得數(shù)據(jù)圈更加完善,另一方面也使得業(yè)務之間的關(guān)聯(lián)性增強。
(2)適應現(xiàn)有的軟件架構(gòu)的需要。當下“微服務化”的體系架構(gòu)已經(jīng)被眾多大型的公司給采用?!拔⒎铡钡氖滓ぷ魇菍F(xiàn)有業(yè)務拆分。拆分的標準和方案有很多,但基于數(shù)據(jù)的拆分無疑是最恰當、合理的拆分方式。基于數(shù)據(jù)的拆分可以更好的體現(xiàn)業(yè)務之間邏輯關(guān)系。同時也對服務的部署也有明顯的指導意義。
(3)增強系統(tǒng)的擴展性。在以業(yè)務驅(qū)動軟件構(gòu)建的構(gòu)建方式中,數(shù)據(jù)只是業(yè)務的一個產(chǎn)物,這使得數(shù)據(jù)和業(yè)務具有很高的耦合性,故而軟件后期的擴展性降低。但面向數(shù)據(jù)的體系架構(gòu)采用的“以數(shù)據(jù)為核心”的架構(gòu)設(shè)計從底層增加了系統(tǒng)的擴展性。業(yè)務只是數(shù)據(jù)的一種應用,系統(tǒng)的擴展不是業(yè)務簇的擴展而是數(shù)據(jù)圈的擴展。
通過上面的論述,可以 看出可以發(fā)現(xiàn)以業(yè)務為驅(qū)動的軟件構(gòu)建方式和以數(shù)據(jù)為驅(qū)動的軟件構(gòu)建方式在軟件層面各有優(yōu)勢。結(jié)合這兩種不同的軟件構(gòu)建思維是很有必要的。
兩種不同的軟件構(gòu)建思維的一種結(jié)合方式是:數(shù)據(jù)為核心,業(yè)務為驅(qū)動。業(yè)務的驅(qū)動有利于限定和明確數(shù)據(jù)的定義。而以數(shù)據(jù)為核心可以很好的體現(xiàn)面向數(shù)據(jù)的體系架構(gòu)的相關(guān)優(yōu)勢。
圖1 基本框架
現(xiàn)有的成熟的軟件構(gòu)建的架構(gòu)框架中都把數(shù)據(jù)單獨封裝成一個框架層。這樣做的目的不是使軟件以數(shù)據(jù)為核心,而是為了使軟件更好滿足“面向?qū)ο蟆钡能浖枷搿?shù)據(jù)操作封裝成一個對象,這樣可以將數(shù)據(jù)訪問產(chǎn)生的異常集中處理,使得軟件更加健壯和易于維護。
在結(jié)合以業(yè)務為驅(qū)動和以數(shù)據(jù)為驅(qū)動的兩種軟件構(gòu)建模型的優(yōu)點之后,傳統(tǒng)的軟件構(gòu)建框架就有一些修改,但為了利用以業(yè)務為驅(qū)動的軟件構(gòu)建模式的優(yōu)勢,新的軟件結(jié)構(gòu)(如圖一)只是將“以數(shù)據(jù)為中心”的核心思想融入到傳統(tǒng)的軟件結(jié)構(gòu)中去,而不對傳統(tǒng)的軟件結(jié)構(gòu)做大面積的修改。
圖1的框架圖是“基于面向數(shù)據(jù)體系架構(gòu)(DOA)的學習平臺建設(shè)(第一期)”采用的框架設(shè)計概念圖。
圖1 中各個部件的智能如下:
業(yè)務:業(yè)務是數(shù)據(jù)的一種使用方式,業(yè)務只能通過業(yè)務接口才能訪問到數(shù)據(jù),
業(yè)務接口層:業(yè)務接口層是業(yè)務訪問數(shù)據(jù)的入口。業(yè)務接口層是一個中間件,定義了業(yè)務訪問數(shù)據(jù)的業(yè)務規(guī)則。其功能主要使限制業(yè)務的非規(guī)則訪問;轉(zhuǎn)發(fā)業(yè)務請求等。
業(yè)務->數(shù)據(jù)映射層:業(yè)務->數(shù)據(jù)映射層(簡稱映射層)。映射層的功能是將業(yè)務邏輯和數(shù)據(jù)處理邏輯統(tǒng)一起來,將業(yè)務邏輯處理轉(zhuǎn)換為數(shù)據(jù)邏輯處理。
數(shù)據(jù)實體層:業(yè)務的處理邏輯被映射層封裝成了數(shù)據(jù)處理邏輯,數(shù)據(jù)實體層的作用就是處理數(shù)據(jù),進而完成業(yè)務的相關(guān)邏輯。
數(shù)據(jù)訪問層:數(shù)據(jù)訪問層和傳統(tǒng)的軟件結(jié)構(gòu)中的數(shù)據(jù)訪問層的功能是相同的,其主要的目的是用來封裝訪問數(shù)據(jù)存儲層的相關(guān)功能,這樣有助于限制異常發(fā)生的區(qū)域。使軟件具有良好的穩(wěn)定性和健壯性。
db:db層是數(shù)據(jù)存儲層,其實現(xiàn)的方案依照具體的需求來定。關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫均可以采用。數(shù)據(jù)存儲層的訪問方式在數(shù)據(jù)訪問層中被封裝。
從上述的功能介紹,圖1展現(xiàn)的軟件基本框架是傳統(tǒng)的業(yè)務驅(qū)動軟件構(gòu)建和面向數(shù)據(jù)的體系架構(gòu)的構(gòu)建方式的結(jié)合。既展示了業(yè)務驅(qū)動的軟件開發(fā)模式的優(yōu)勢,又體現(xiàn)了“以數(shù)據(jù)為核心”的軟件構(gòu)建思想,這使得軟件對于開發(fā)后期的業(yè)務需求變化具有更好的適應性。
2015國家大學生創(chuàng)新創(chuàng)業(yè)訓練計劃“基于面向數(shù)據(jù)體系架構(gòu)(DOA)的學習平臺建設(shè)(第一期)”項目對圖1的軟件框架進行了理論上的實踐。通過理論實踐圖1所展現(xiàn)的軟件框架是良好的,可行的。
“基于面向數(shù)據(jù)體系架構(gòu)(DOA)的學習平臺建設(shè)(第一期)”是2015年四川省創(chuàng)新項目,是在“大數(shù)據(jù)時代下,海量數(shù)據(jù)具有不可估量的價值,但因為沒有一個完整的數(shù)據(jù)管理平臺導致大量數(shù)據(jù)未能得到充分的利用,造成了數(shù)據(jù)的‘浪費’,目前學習資源這一塊尤為突出?!暗臅r代背景下提出的以“實現(xiàn)一款專為學習時做筆記設(shè)計的APP應用來提高他們的學習效率,解決學習過程中筆記記錄、收集的困難且耗時的近況?!睘榻鉀Q方案的一個項目。
“基于面向數(shù)據(jù)體系架構(gòu)(DOA)的學習平臺建設(shè)(第一期)”項目符合國家“互聯(lián)網(wǎng)+”行動計劃的技術(shù)發(fā)展趨勢,結(jié)合智慧教育的個性化學習需求,基于面向數(shù)據(jù)的體系結(jié)構(gòu),搭建自主學習平臺,并從移動終端Android平臺的App入手,開展創(chuàng)新訓練。能將大數(shù)據(jù)與教育密切結(jié)合起來。
“基于面向數(shù)據(jù)體系架構(gòu)(DOA)的學習平臺建設(shè)(第一期)”的優(yōu)勢有:
本項目采用DOA架構(gòu),能夠快捷開發(fā)基于數(shù)據(jù)的碎片化應用,二次開發(fā)成本低。
數(shù)據(jù)保密性能好。DOA架構(gòu)是數(shù)據(jù)“天生加密,授權(quán)使用”的機制奠定了數(shù)據(jù)的安全基石。
數(shù)據(jù)可以很便捷地在多個應用中得到共享。
大數(shù)據(jù)時代的“4V”特性給傳統(tǒng)的軟件構(gòu)建模式帶來了嚴峻的挑戰(zhàn)。苗放教授提出的“面向數(shù)據(jù)的軟件體系架構(gòu)”在數(shù)據(jù)層面上具有很好的創(chuàng)新?!耙詳?shù)據(jù)為核心”對軟件生態(tài),”微服務化“和軟件擴展等具有深層次的指導意義。
向清松,男(1993-),計算機科學與技術(shù)專業(yè),本科在讀.
馬闖,男(1984-),講師,成都理工大學信息科學與技術(shù)學院教師,主要從事大學生創(chuàng)新創(chuàng)業(yè)教育指導工作.
Research on the construction of platform based on data
Xiang Qingsong,Ma Chuang,Yang Wenhui
(Chengdu University of Technology,College of information science and technology,Chengdu,Sichuan 610059)
The construction mode of challenges to traditional software era of big data,the data oriented architecture(DOA) theory,combined with the traditional software architecture model,designed with the data as the core,business driven software construction mode,and after the 2015 National College Students' innovation and entrepreneurship training program "data oriented system based on the architecture(DOA)learning platform(the first stage)" project practice,confirmed that the description of the construction mode of superiority and realization.
big data;business;data;DOA;robustness;software architecture
TP312
A
項目簡介:2015國家大學生創(chuàng)新創(chuàng)業(yè)訓練計劃“基于面向數(shù)據(jù)體系架構(gòu)(DOA)的學習平臺建設(shè)(第一期)”項目。