混凝土行業(yè)中基于JCS的海量數(shù)據(jù)協(xié)同模塊建設(shè)的方法_第1頁
混凝土行業(yè)中基于JCS的海量數(shù)據(jù)協(xié)同模塊建設(shè)的方法_第2頁
混凝土行業(yè)中基于JCS的海量數(shù)據(jù)協(xié)同模塊建設(shè)的方法_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、混凝土行業(yè)中基于JCS的海量數(shù)據(jù)協(xié)同模塊建設(shè)的方法1 引言隨著預(yù)拌混凝土產(chǎn)業(yè)在國內(nèi)的迅速發(fā)展,混凝土攪拌站呈現(xiàn)由單站向多站經(jīng)營的發(fā)展趨勢,即形成混凝土集團公司。此類公司的規(guī)模一般比較大,在物理分布上形成了以某城市為中心,其他攪拌分站多點布局的態(tài)勢。在這種情況下,集團總部迫切需要某種控制手段,通過它來監(jiān)管其下屬分站的經(jīng)營情況,以方便高層的決策。伴隨著該行業(yè)的激烈競爭,在某些地區(qū)出現(xiàn)由某個大型混凝土公司來定價的局面,為了預(yù)防這種局面的出現(xiàn),抑制行業(yè)的惡性競爭,混凝土行業(yè)協(xié)會和混凝土散拌協(xié)會需要知曉某個地區(qū)的總體生產(chǎn)經(jīng)營情況,以便出臺相應(yīng)的政策來干預(yù)這種不良競爭,促進行業(yè)健康持續(xù)的發(fā)展,他們也迫切需

2、要有一種能將所轄區(qū)域的攪拌站生產(chǎn)數(shù)據(jù)及時獲取并進行匯總的信息化管理工具,以便做出合理分析。如何準(zhǔn)確高效地獲取這些海量數(shù)據(jù),是擺在混凝土集團公司,行業(yè)協(xié)會面前的難題。2 混凝土行業(yè)海量數(shù)據(jù)協(xié)同的構(gòu)想通過對大量混凝土攪拌站、混凝土集團公司、混凝土協(xié)會的調(diào)研,目前國內(nèi)混凝土行業(yè)的邏輯架構(gòu)可以分為四層,如圖1所示清晰地描述了這種層次架構(gòu)。最底層是混凝土攪拌站,即混凝土的生產(chǎn)工廠。隨著企業(yè)規(guī)模的擴大,混凝土集團公司隨即出現(xiàn),這類集團公司由多個混凝土攪拌站組成,相對于集團總部,此類混凝土攪拌站稱之為攪拌分站。集團公司總部可通過數(shù)據(jù)協(xié)同程序獲取下屬攪拌分站的相關(guān)生產(chǎn)數(shù)據(jù);同理混凝土集團公司的上級管理單位即省

3、(市)級混凝土協(xié)會,同樣可通過數(shù)據(jù)協(xié)同程序來獲取其下屬混凝土集團的所有生產(chǎn)數(shù)據(jù);最上一層為國家級混凝土協(xié)會,它也通過同樣的方式獲取其下屬協(xié)會的混凝土生產(chǎn)數(shù)據(jù)。從圖1 可以看出,不管是哪一層,數(shù)據(jù)協(xié)同程序(模塊)始終是其核心,因此,如何對它進行高效設(shè)計成為該行業(yè)海量數(shù)據(jù)協(xié)同構(gòu)想實現(xiàn)的關(guān)鍵。3 混凝土行業(yè)海量數(shù)據(jù)協(xié)同的數(shù)學(xué)模型為了能夠描述該海量數(shù)據(jù)協(xié)同程序的量級,或者稱之為時間復(fù)雜度O,以便對各級單位需要進行同步的數(shù)據(jù)總量有一個清晰的了解,同時也為程序設(shè)計人員提供相關(guān)參考信息,需要有一個數(shù)學(xué)模型能對其進行說明。結(jié)合之前描述的海量數(shù)據(jù)協(xié)同總體架構(gòu)和對實際業(yè)務(wù)的分析,得出表達式(1)所描述的數(shù)學(xué)模型,

4、其中s表示協(xié)同的數(shù)據(jù)范圍。當(dāng)s=1時,表示同步的數(shù)據(jù)范圍為混凝土集團公司,即需要將集團公司所有下屬攪拌分站的相關(guān)業(yè)務(wù)生產(chǎn)數(shù)據(jù)同步到總部,這個時候需要同步的數(shù)據(jù)總量可用表達式(2)表示。(2)某攪拌分站需要傳輸?shù)臄?shù)據(jù)總量可以用表達式(3)表示,其中q表示集團公司下屬的第q個攪拌分站。n表示這個分站需要同步的數(shù)據(jù)的種類數(shù),表達式(3)右邊的分量表示該攪拌分站下某類數(shù)據(jù)要傳輸?shù)目偭俊?紤]到攪拌分站的實際情況,每個攪拌分站傳輸?shù)臄?shù)據(jù)種類數(shù)可能不一樣,我們用n1表示某集團下屬第一個分站需傳輸數(shù)據(jù)的種類數(shù),n2表示該集團下屬第二個分站需傳輸數(shù)據(jù)的種類數(shù),以此類推。當(dāng)s=1時,實際應(yīng)用中需要傳輸?shù)臄?shù)據(jù)總量可

5、以由表達式(4)精確的表示。取n=max(n1,n2,n3.,nn)即可得到表達式(2),實際上它是表達式(4)的一種特殊情形。在程序設(shè)計和實現(xiàn)中,我們可以通過配置文件的靈活設(shè)置,來達到這一轉(zhuǎn)換的目的。通過邏輯推理和分析我們可以得到表達式(5),它表示某集團公司下屬的d個攪拌分站需要傳輸?shù)臄?shù)據(jù)總量。當(dāng)s=2,即當(dāng)同步的數(shù)據(jù)范圍為省市級混凝土協(xié)會,采用相同的推理可以得到表達式(6), institute D表示某省市級混凝土協(xié)會需要傳輸?shù)臄?shù)據(jù)總量。同理,當(dāng)s=3時,可以得到表達式(7),countryD表示國家級混凝土協(xié)會需要傳輸?shù)臄?shù)據(jù)總量。4 海量數(shù)據(jù)協(xié)同模塊的高效設(shè)計4.1 JCS多級緩存設(shè)

6、計JCS是復(fù)合式緩存工具,具有配置靈活的特點。JCS緩存對于高并發(fā)異步數(shù)據(jù)的入庫程序性能的提升有非常顯著的效果。一個JCS可以根據(jù)實際情況,定義多個region,而每個region可以定義自己的存儲類型和存儲對象的數(shù)量。在JCS中一般通過map,即鍵值對(Key、Object)來存儲和操作緩存對象。在該海量數(shù)據(jù)協(xié)同模塊中,JCS緩存的主要目的是先將從客戶端獲取的業(yè)務(wù)數(shù)據(jù)緩存起來 ,然后通過一個后臺異步程序?qū)⑾鄳?yīng)數(shù)據(jù)進行入庫處理,這樣可以顯著提升程序的效率。在該海量數(shù)據(jù)協(xié)同模型中,key可定義為一個字符串,而object則是一個復(fù)雜的對象,它包含多個屬性。4.2 自定義數(shù)據(jù)解析器的設(shè)計由表達式(

7、4)可知,集團下屬分站需要同步的數(shù)據(jù)類型數(shù)量極有可能不一樣,為了解決這類難題,提升程序的可擴展性,需要設(shè)計自定義數(shù)據(jù)解析器。如圖2所示是該解析器模型的說明。將clientKey和clientValue放入properties配置文件中,code為要同步的數(shù)據(jù)類型編碼,isSync表示是否要同步,isResend表示是發(fā)送正常數(shù)據(jù)還是異常數(shù)據(jù),sqlId表示數(shù)據(jù)庫配置文件中的key,通過它可以找到相應(yīng)sql語句,captionInfo為日志提示信息。4.3 兩級map實現(xiàn)Server端與Client端的1對多通信在基于socket的TCP通信程序中,客戶端和服務(wù)端通過connction建立連接,

8、而客戶端的session和服務(wù)端的session并非同一個。本文論述的數(shù)據(jù)協(xié)同程序中,1個服務(wù)端要對應(yīng)多個客戶端,如何準(zhǔn)確的建立兩端session的聯(lián)系,實現(xiàn)兩端在各種異常情況下的準(zhǔn)確通信,需要在服務(wù)端建立一個兩級map。以s=1為例進行說明,第一級map的key由常量字符串和攪拌分站id構(gòu)成,value為服務(wù)端新分配的session,第二級map的key的服務(wù)端新分配的sessionId,value為常量字符串和攪拌分站id的組合字符串。如圖3所示清晰地描述了這種設(shè)計思想。5 海量數(shù)據(jù)協(xié)同模塊的高效實現(xiàn)5.1 客戶端實現(xiàn)客戶端的實現(xiàn)主要包括兩部分:一部分為基于異步事件的通信模塊,主要用途為與

9、服務(wù)端建立連接,接收服務(wù)端推送過來的數(shù)據(jù),其核心方msgReceived,getCurrentConnect;另一部分為異步后臺線程,其核心方法為數(shù)據(jù)同步方法syncErpClientData和網(wǎng)絡(luò)異常診斷方法dealwithReconnectException。5.2 服務(wù)端實現(xiàn)與客戶端對應(yīng),服務(wù)端的實現(xiàn)也包括兩部分:一部分為基于異步事件的通信模塊,主要用途為啟動監(jiān)聽并響應(yīng)客戶端的連接請求,接收客戶端推送過來的數(shù)據(jù)并解析,其核心方法為startAcceptor,messageReceived;另一部分為異步后臺線程,其核心方法為緩存對象入庫處理程序storeCacheObjsToDataba

10、se,其主要作用是從服務(wù)器端緩存中取出對象,將之批量寫入服務(wù)端數(shù)據(jù)庫中,并通知相應(yīng)客戶更新其對應(yīng)標(biāo)志位。限于篇幅,這里不一一列舉其實現(xiàn)代碼。6 結(jié)束語本文在描述了國內(nèi)預(yù)拌混凝土行業(yè)對生產(chǎn)數(shù)據(jù)迫切要求的現(xiàn)狀后,結(jié)合行業(yè)規(guī)則和數(shù)據(jù)協(xié)同總體架構(gòu)提出了其實現(xiàn)的數(shù)學(xué)模型,之后,從多角度對該海量數(shù)據(jù)協(xié)同模型的高效設(shè)計進行了論述,并最終結(jié)合Socket技術(shù)和異步線程實現(xiàn)了該模型。該數(shù)據(jù)協(xié)同模型對混凝土行業(yè)各級管控單位有著重要的現(xiàn)實意義,為高層提供經(jīng)營決策的數(shù)據(jù)支持,對預(yù)防混凝土行業(yè)的惡性競爭有著重要的導(dǎo)向作用。參考文獻【1】 Michanel V.Mannino. 數(shù)據(jù)庫設(shè)計、應(yīng)用開發(fā)和管理. 清華大學(xué)出版社,2007: 181189.【2】 陳希孺. 高等數(shù)理統(tǒng)計學(xué). 中國科技大學(xué)出版社, 1999:291295.【3】 陳希孺. 概率論與數(shù)理統(tǒng). 中國科技大學(xué)出版社, 2009:110133.【4】 王梓坤. 概率論基礎(chǔ)及其應(yīng)用. 北京師范大學(xué)出版社, 2007:6085.【5】 陳吉平. 構(gòu)建Oracle高可用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論