大數(shù)據(jù)環(huán)境下實(shí)現(xiàn)數(shù)據(jù)持久化的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及領(lǐng)域,尤其設(shè)及,具體是指一種大數(shù)據(jù)環(huán)境下實(shí)現(xiàn)數(shù)據(jù)持久化的系統(tǒng) 及方法。
【背景技術(shù)】
[0002] 隨著現(xiàn)代社會科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)軟件系統(tǒng)即企業(yè)應(yīng)用系統(tǒng)的業(yè)務(wù)的不斷進(jìn) 步,企業(yè)要求軟件系統(tǒng)對業(yè)務(wù)需求的響應(yīng)速度越來越快,隨著軟件復(fù)雜度的增大,SOA (Service Oriented Archiecture的縮寫,指面向服務(wù)的架構(gòu))架構(gòu)W業(yè)務(wù)為中屯、,由業(yè)務(wù) 驅(qū)動(dòng)IT,使IT和業(yè)務(wù)更加緊密的聯(lián)系起來,SOA要求W構(gòu)件化服務(wù)為基礎(chǔ)來實(shí)現(xiàn)IT系統(tǒng)更靈 活、更易于重用、更快的應(yīng)對變化。
[0003] SD0(Service Data Objects服務(wù)數(shù)據(jù)對象,簡稱SD0)是一種編程模型的規(guī)范,SDO 框架為數(shù)據(jù)應(yīng)用程序開發(fā)提供了統(tǒng)一的框架,它允許您處理來自多種數(shù)據(jù)源的數(shù)據(jù),其中 包括關(guān)系數(shù)據(jù)庫、實(shí)體EJB組件、XML頁面、Web服務(wù)、Java Connector Architecture、 化vaServer Pages頁面等。同時(shí)支持通過標(biāo)準(zhǔn)的、動(dòng)態(tài)的數(shù)據(jù)API來表示數(shù)據(jù)對象。
[0004] SDO規(guī)范中的變更摘要(Change Summary),提供了訪問數(shù)據(jù)圖中數(shù)據(jù)對象的更改 歷史信息的機(jī)制,變更摘要用于跟蹤數(shù)據(jù)對象的變化,變化歷史包括所有自日志被激活那 一刻開始起到現(xiàn)在的對一個(gè)數(shù)據(jù)表的所有修改。如果日志被關(guān)閉,那么日志中僅包含直到 日志無效時(shí)發(fā)生變化的日志。雖然只在日志被激活時(shí)變化信息才會被記錄,但是查詢變化 信息不用關(guān)關(guān)注日志被激活還是關(guān)閉。所有變更摘要返回的信息都是只讀的。
[0005] 傳統(tǒng)基于構(gòu)件化的軟件系統(tǒng),通常會劃分為S層:指表示層(Presentation),業(yè)務(wù) 邏輯層(Business Logic) W及數(shù)據(jù)持久層(Data Persistence)。關(guān)于數(shù)據(jù)持久化層,業(yè)界 已經(jīng)有相當(dāng)成熟的解決方案,如W低級別的數(shù)據(jù)庫訪問方式的JDBC、對JDBC進(jìn)行輕量級封 裝的化bernate、對SQL實(shí)現(xiàn)靈活配置化的iBatisW及化va EE 5平臺上的標(biāo)準(zhǔn)的對象-關(guān)系 映射和持久管理接口肝A(化va Persistence API)等。W上運(yùn)些持久化層的解決方案,各有 其業(yè)務(wù)應(yīng)用的測重場景,同時(shí)已經(jīng)有相當(dāng)多已成功實(shí)施的應(yīng)用案例。
[0006] 目前運(yùn)些持久化解決方案,都要求業(yè)務(wù)開發(fā)人員能熟悉具體方案,具備相應(yīng)方案 的開發(fā)能力,并應(yīng)用其中一種(或多種相結(jié)合)持久化技術(shù),結(jié)合業(yè)務(wù)需求,最終實(shí)現(xiàn)持久化 操作。運(yùn)對業(yè)務(wù)開發(fā)人員要求較高;尤其在沒有很好的開發(fā)規(guī)范時(shí),低水平開發(fā)人員很容易 開發(fā)出效率低下的持久化功能;另外過多的關(guān)注于持久化操作,也使開發(fā)人員無法專注于 業(yè)務(wù)規(guī)則處理,開發(fā)效率無法提高。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的缺點(diǎn),提供了一種能夠?qū)崿F(xiàn)無需過多關(guān)注 持久化層的實(shí)現(xiàn)細(xì)節(jié)、借助SDO變更摘要、封裝數(shù)據(jù)庫持久化0RM(0bject Relational Mapping,簡稱ORM)、實(shí)現(xiàn)對數(shù)據(jù)庫添加、修改、刪除的透明操作、使開發(fā)人員專注于業(yè)務(wù)規(guī) 則處理的大數(shù)據(jù)環(huán)境下實(shí)現(xiàn)數(shù)據(jù)持久化的系統(tǒng)及方法。
[0008] 為了實(shí)現(xiàn)上述目的,本發(fā)明的大數(shù)據(jù)環(huán)境下實(shí)現(xiàn)數(shù)據(jù)持久化的系統(tǒng)及方法具有如 下構(gòu)成:
[0009] 該大數(shù)據(jù)環(huán)境下實(shí)現(xiàn)數(shù)據(jù)持久化的系統(tǒng),其主要特點(diǎn)是,所述的系統(tǒng)包括:
[0010] W邸應(yīng)用前端處理模塊,用W將W邸應(yīng)用的業(yè)務(wù)表單轉(zhuǎn)化為變更集的數(shù)據(jù)模型;
[0011] SDO反序列化模塊,用W將前端傳輸過來的數(shù)據(jù)模型反序列化為SDO對象模型,其 中對所述的業(yè)務(wù)表單變更集進(jìn)行反序列化;
[0012] SDO實(shí)現(xiàn)模塊,用W對SDO接口的實(shí)現(xiàn),其中包括對SDO變更摘要的實(shí)現(xiàn);
[0013] SDO變更摘要解析模塊,用W將SDO變更摘要解析成可供持久化的操作語句;
[0014] SDO持久化模塊,用WSDO數(shù)據(jù)對象的持久化操作,其中包括對SDO變更摘要的持久 化實(shí)現(xiàn);
[0015] SDO序列化模塊,用W將SDO數(shù)據(jù)對象經(jīng)解析后,轉(zhuǎn)化為W邸應(yīng)用前端所需的數(shù)據(jù)模 型。
[0016] 較佳地,所述的肥B應(yīng)用前端處理模塊包括:
[0017] 數(shù)據(jù)模型的設(shè)計(jì)子模塊,用W利用數(shù)據(jù)模型記錄業(yè)務(wù)表單的全量數(shù)據(jù)和業(yè)務(wù)表單 的變更信息;
[0018] 數(shù)據(jù)模型的解析模塊,用W將數(shù)據(jù)模型解析為化vaScript對象;
[0019] 模型數(shù)據(jù)校驗(yàn)?zāi)K,用W對數(shù)據(jù)串作進(jìn)行合法性校驗(yàn),確保傳輸?shù)臄?shù)據(jù)格式滿足 SDO變更摘要的解析要求。
[0020] 更佳地,所述的模型數(shù)據(jù)校驗(yàn)子模塊包括:
[0021 ]添加模型數(shù)據(jù)校驗(yàn)單元,用W對數(shù)據(jù)串中的添加記錄做合法性校驗(yàn);
[0022] 修改模型數(shù)據(jù)校驗(yàn)單元,用W對數(shù)據(jù)串中的修改記錄做合法性校驗(yàn);
[0023] 刪除模型數(shù)據(jù)校驗(yàn)單元,用W對數(shù)據(jù)串中的刪除記錄做合法性校驗(yàn)。
[0024] 較佳地,所述的SDO反序列化模塊包括:
[0025] SDO對象的反序列化子模塊,用W將從前端傳輸過來的請求Request解析后,將業(yè) 務(wù)表單數(shù)據(jù)解析并轉(zhuǎn)換成SDO對象;
[0026] SDO變更摘要的反序列化子模塊,用于將從前端傳輸過來的請求Request解析后, 將業(yè)務(wù)表單數(shù)據(jù)的變更解析并轉(zhuǎn)換成SDO變更摘要對象。
[0027] 較佳地,所述的SDO實(shí)現(xiàn)模塊包括:
[002引SDO的實(shí)現(xiàn)子模塊,用W根據(jù)SDO接口規(guī)范實(shí)現(xiàn)SDO規(guī)范要求;
[0029] SDO變更摘要的實(shí)現(xiàn)子模塊,用W變更摘要作為SDO規(guī)范的一部分并提供訪問SDO 數(shù)據(jù)圖中數(shù)據(jù)對象的更改歷史信息的機(jī)制。
[0030] 較佳地,所述的SDO變更摘要解析模塊包括:
[0031] 解析SDO變更摘要的添加記錄子模塊,用W讀取并解析SDO變更摘要中添加記錄部 分,并將其轉(zhuǎn)化為可持久化操作的添加記錄語句;
[0032] 解析SDO變更摘要的修改記錄子模塊,用W讀取并解析SDO變更摘要中修改記錄部 分,并將其轉(zhuǎn)化為可持久化操作的修改記錄語句;
[0033] 解析SDO變更摘要的刪除記錄子模塊,用W讀取并解析SDO變更摘要中刪除記錄部 分,并將其轉(zhuǎn)化為可持久化操作的刪除記錄語句。
[0034] 較佳地,所述的SDO持久化模塊包括:
[0035] SDO普通對象的持久化模塊,包括對象的查詢操作,持久化要求遵照數(shù)據(jù)訪問服務(wù) 規(guī)范,實(shí)現(xiàn)查詢表單數(shù)據(jù)的業(yè)務(wù)需求;
[0036] SDO變更摘要的持久化添加模塊,遵照數(shù)據(jù)訪問服務(wù)規(guī)范,執(zhí)行持久化添加記錄操 作,實(shí)現(xiàn)添加表單數(shù)據(jù)的業(yè)務(wù)需求;
[0037] SDO變更摘要的持久化修改模塊,遵照數(shù)據(jù)訪問服務(wù)規(guī)范,執(zhí)行持久化修改記錄操 作,實(shí)現(xiàn)修改表單數(shù)據(jù)的業(yè)務(wù)需求;
[0038] SDO變更摘要的持久化刪除模塊,遵照數(shù)據(jù)訪問服務(wù)規(guī)范,執(zhí)行持久化刪除記錄操 作,實(shí)現(xiàn)刪除表單數(shù)據(jù)的業(yè)務(wù)需求。
[0039] 本發(fā)明還設(shè)及一種基于所述的系統(tǒng)于大數(shù)據(jù)環(huán)境下實(shí)現(xiàn)數(shù)據(jù)持久化的方法,其特 征在于,所述的方法包括W下步驟:
[0040] (1)所述的W邸應(yīng)用前端處理模塊進(jìn)行W邸應(yīng)用前端操作;
[0041 ] (2)所述的SDO反序列化模塊進(jìn)行SDO反序列化操作;
[0042] (3)所述的SDO變更摘要解析模塊進(jìn)行SDO變更摘要解析操作;
[0043] (4)所述的SDO持久化模塊進(jìn)行SDO持久化操作;
[0044] (5)所述的SDO序列化模塊進(jìn)行SDO反序列化。
[0045] 較佳地,所述的W邸應(yīng)用前端處理模塊進(jìn)行W邸應(yīng)用前端操作,包括W下步驟:
[0046] (1-1)所述的W邸應(yīng)用前端處理模塊實(shí)時(shí)監(jiān)聽業(yè)務(wù)表單數(shù)據(jù)的變更,并存儲需添加 的表單的變更數(shù)據(jù);
[0047] (1-2)所述的W邸應(yīng)用前端處理模塊實(shí)時(shí)監(jiān)聽業(yè)務(wù)表單數(shù)據(jù)的變更,并存儲需修改 的表單的變更數(shù)據(jù);
[0048] (1-3)所述的W邸應(yīng)用前端處理模塊實(shí)時(shí)監(jiān)聽業(yè)務(wù)表單數(shù)據(jù)的變更,并存儲需刪除 的表單的變更數(shù)據(jù);
[0049] (1-4)所述的W邸應(yīng)用前端處理模塊解析模型數(shù)據(jù)將JSON格式的數(shù)據(jù)模型解析為 Ja V曰 Script 對象;
[0050] (1-5)所述的W邸應(yīng)用前端處理模塊校驗(yàn)?zāi)P蛿?shù)據(jù),對JSON串作合法性校驗(yàn),確保 傳輸?shù)臄?shù)據(jù)格式滿足SDO變更摘要的解析要求;
[0051] (1-6)所述的W邸應(yīng)用前端處理模塊將模型數(shù)據(jù)WHTTP協(xié)議方式提交請求,供后臺 邏輯處理。
[0