複製鏈接
請複製以下鏈接發送給好友

分佈式數據處理

鎖定
分佈式數據處理,就是利用分佈式計算技術對數據進行處理。隨着數據量的急劇膨脹,互聯網公司所面對的數據量已經達到了 PB級別,傳統集中式數據處理已經漸漸無法適應市場的需求,同時,個人計算機的性能得到了極大的提高,普及率也在飛速上升,這使得將處理能力分佈到網絡上的所有個人計算機上的設想成為可能,於是提出了分佈式計算的概念。
分佈式計算是和集中式計算相對的概念,一個分佈式網絡由若干台可互相通信的計算機組成,每台計算機都擁有自己的處理器和存儲設備,原先集中在單節點上的龐大計算任務被負載均衡地分派給分佈式網絡中的計算機上並行地進行處理。
中文名
分佈式數據處理
外文名
distributeddataprocessing
學    科
計算機
優    點
高效、快捷、準確
分佈式技術
DCOM、Jaca RMI、 CORBA
主要功能模塊
數據監控、存儲、查詢模塊

分佈式數據處理分佈式系統

對於用户來講,分佈式系統與其他應用系統沒有區別,都是一個獨立的系統,但從底層物理設備和結構體系來看,分佈式系統是一個龐大、複雜的體系,由若干個獨立的計算機組合而成。從硬件角度來看,分佈式系統的機器是獨立的,各不同的計算機可以分佈在世界的各個角落;從軟件角度來看,分佈式系統與用户的接口是單一的,用户無法直接感受到操作系統的分散。分佈式系統的內部結構、通信方式和功能實現對用户是透明的,這是分佈是系統的最大特點。此外,雖然分佈式系統由若干個獨立的計算機組合而成,但是當解決某一個具體的問題時,各部分能夠實現高效、統一的任務指令,隨時隨地都能與用户進行交互,既提高了系統性能,又提升了用户體驗。
可訪問性、透明性、開放性和可擴展性是分佈式系統的四個主要特性 [1] 

分佈式數據處理分佈式計算

分佈式數據處理定義

分佈式計算是指,將一個龐大的計算任務經過服務器的處理劃分為若干個小任務,然後為計算機網絡中的計算機分別分配一些小任務,通過並行處理提高處理效率,最後綜合並整理計算數據,得到最後的計算結果。
分佈式計算是指信息不只分佈在一個軟件或計算機上,而是分佈於多個軟件上,可以用多台或一台計算機同時運行若干個軟件,通過網絡實現信息的共享。與其他算法相比,分佈式算法有明顯的優勢:第一、共享資源更加方便。第二、能夠實現計算負載的平衡,用多台計算機同時處理任務。第三、可以根據實際需要合理選擇適當的計算機運行該程序。計算機分佈式計算的靈魂是平衡負載和共享資源。分佈式計算具有高效、快捷、準確的優勢 [1] 

分佈式數據處理優點

與集中式計算相比,分佈式計算的優點十分突出:
1. 分佈式網絡中的每台機器都能存儲和處理數據,降低了對機器性能的要求,所以不必購買昂貴的高性能機器,這大大降低了硬件投資成本;
2. 擴展性極佳。在當前系統存儲或計算能力不足時,可以簡單地通過增加廉價PC機的方式來增加系統的處理和存儲能力;
3. 處理能力極強。龐大的計算任務可以在合理分割後由分佈式網絡中的機器並行地處理 [2] 

分佈式數據處理主流技術

分佈式計算主流技術主要有一下三種:DCOM( 分 布 式 組 件 對 象 模型)、Jaca RMI(遠程方法調用)和 CORBA(公共對象請求代理結構) 。它們都在邏輯總線上實現了組件對象邏輯分層和位置分佈的透明性,以及相關服務,給系統開發人員提供了諸多方便 。
CORBA即通用對象請求代理體系結構(Common Object Request Broker Architechture)的縮寫,是由對象管理組OMG定義的一種分佈式體系結構。CORBA是一個開發的、與開發商無關的規範,所面向的是一個分佈式體系結構以及允許不同應用通過網絡協同工作的基礎設施。對象請求代理(ORB)也稱為對象總線,它構成了此體系的結構引擎。通過利用ORB,可以對所有常用功能的對象實現網絡支持,並幾乎都可免費獲得事務、安全和持續服務等。CORBA是一種語言中性的軟件構件模型,可以跨越不同的網絡、不同的機器和不同的操作系統,實現分佈對象之間的互操作。
DCOM是Microsoft與其他業界廠商合作提出的一種分佈構件對象模型(Distributed Component Object Model),其發展經歷了一個相當曲折的過程。DCOM起源於動態數據交換(DDE)技術,通過剪切/粘貼(Cut/Paste)實現兩個應用程序之間共享數據的動態交換。對象連接與嵌入OLE就是從DDE引伸而來的。DCOM它可以説是一種通信協議,提供組件通信的底層控制,能夠使位於不同計算機上的COM對象相互通信,關於這些計算機是在局域網、廣域網,還是工nternet之中,則不用考慮,也就是説DCOM技術實際上就是微軟用來實現COM對象的位置透明性的。而且,DCOM是COM技術的無縫擴展,這樣對於現有的基於COM的應用、組件以及工具等都易於實現向分佈式計算領域的遷移,這樣既保護了客户的己有投資,也使應用系統能適應現代技術的需要。
JavaRMI,是Sun公司的基於Java軟件的分佈式對象技術。基於Java的對象機制,它提供了一種簡單的、直接的分佈式應用系統的實現模式。JavaRM工的平台無關性是通過JVM來實現的,也就是説只要分佈於網絡中的客户機和服務器都運行JVM,就可以使用JavaRMI機制在客户程序和服務器程序間相互調用方法,實現信息傳輸。RMI是採用RPC機制,使分佈對象可以通信和協同工作。JavaRMI最大的優勢是其允許能夠象傳遞簡單類型數據一樣直接進行整個對象的傳遞,這也是其他的分佈式技術所沒有的。Java對於軟件構件的觀點與CORBA中的構件觀點存在一定的區別。在CORBA中,CORBA/ORB相當於一根軟總線,構件可以即插即用。而在Java中,軟件構件是能夠進行可視化操作的可重用軟件,它滿足一定的特徵要求,並可以根據需要進行定製和組裝 [3] 

分佈式數據處理DDSMS

在功能和性能上相比傳統功能的數據庫系統,分佈式數據處理系統(Distributed DataStream Management System, DDSMS)與傳統DBMS是相似的,在功能上DDSMS允許所有的數據或部分數據通過連續數據流的方式傳達。

分佈式數據處理區別

如果把數據集看作一個特殊的數據流,那麼可以把DDSMS定義為一個傳統數據庫系統的擴展。下面對DDSMS和DBMS進行比較。傳統DBMS與DDSMS在功能和性能方面的幾種差異:
(1)基本的計算模型不相符。傳統的數據庫管理系統假定 DBMS 被動地存儲數據單元,而用户主動發起查詢等操作,這是個用户主動,DBMS被動的模型。而DDSMS從外部數據源獲取數據,當系統檢測到符合查詢條件的數據時將數據返回給用户,這是個DDSMS主動,用户被動的模型。
(2)DBMS的查詢是精確的查詢,還沒有DBMS提供內建的功能支持近似查詢。而DDSMS由於數據量巨大並且快速變化,在很多時候只能提供近似的查詢結果。
(3)DBMS提供的是一次查詢,一次查詢獲得查詢結果,而DDSMS是連續查詢,只要用户註冊了一個查詢,並且沒有註銷這個查詢,那麼這個查詢將一直有效,DDSMS向用户不斷地返回查詢結果。
(4)DBMS通常不考慮與事務相關聯的時間和空間的限制,其調度與處理決策不考慮數據的各種時間特性,其系統的設計指標並不強調實時性和查詢服務質量的自適應性,而實時性和自適應性正好是數據流應用所必需的。

分佈式數據處理需求分析

DDSMS所處理的是一種隨時間變化的數據信息序列,也就是數據流,它的特點是:連續的、潛在的、無限的、快速的,而且傳統的DDSMS在實際處理過程中,這種數據序列具有到達順序不可控、數據的速率不穩定、數據量巨大等特點。這些特點使得設計一個DDSMS需要具有以下的功能:
(1)由於物理存儲空間的限制和處理效率的要求,對數據流進行在線處理時,一般只掃描數據一遍;
(2)在一定的時間內,能夠對數據進行排序,使無序變為有序;
(3)對用户而言,傳統的DDSMS的程序設計使用户對數據的查詢具有很好的實時性;
(4)傳統的DDSMS在處理數據中,當遇到數據流的數據量巨大已超過系統的承載能力時,隨機或者有選擇地清除一些數據以緩解系統數據的膨脹;
(5)傳統的DDSMS對異常數據的處理也提出了一些要求,首先要迅速,同時要合乎實時的要求;
(6)及時的數據用户的接口能夠為用户提供方便的數據信息查詢。

分佈式數據處理系統結構

圖1 DDSMS 的結構 圖1 DDSMS 的結構
圖1對DDSMS提供了一個可供參考的抽象系統結構。通過取樣的方法控制數據輸入的流量可以輸入監聽器。查詢庫可以處理共享,它存儲系統的連續查詢,連續查詢已經在系統中註冊。窗口查詢的臨時工作區,關於每個數據源的物理位置等靜態存儲這三個部分構成數據存儲。在當前數據流狀態上,既可以一次查詢也可以連續查詢。輸入的監控器和查詢的處理器互相聯繫,其結果存儲在臨時緩存中或通過流輸給用户,而且通過變化數據輸入速率可以對查詢計劃進行優化。這個系統可以分為下面兩個部分:
(1)服務器方面:服務器訪問接口可以處理客户和服務器相互的所有命令和數據,服務器訪問的接口被稱作是外界和服務器的紐帶。服務器等待連接用户,控制器監聽特定的端口訪問接口,通過用户給的命令、處理結果或者數據流,最終返回查詢的結果。
(2)終端接口:終端的接口是為用户操作提供的接口,屏蔽了其中的作用過程,控制命令和查詢接口構成了終端的接口,DLL在終端中是終端接口模塊 [1] 

分佈式數據處理主要功能模塊

分佈式數據處理數據監控模塊

數據監控器的功能主要有兩點:
(1)根據數據的特徵,構建概要數據。數據流是一個實時的、連續的、潛在無界的、有序的數據項的序列。由於數據流速率的變化是無法預測的,某一時刻到達的數據量可能會超過系統的計算能力(根據CPU週期和主存的大小),所以需要一個輸入監視器在需要的時候銷燬一些元組。一般採用抽樣、直方圖或者小波的方法構建概要數據。
(2)數據處理節點的負載均衡。降載的問題在傳統數據庫系統中是可以忽視的:第一,傳統的數據庫DBMS對數據進行的是靜態存儲方式;第二,對一般數據庫的查詢沒有QOS方面的需求;第三,傳統的數據庫DBMS對數據的查詢是一次性的。然而,當系統的處理能力無法負荷突發流量時,如果不進行及時處理,那麼整個系統的吞吐量和響應時間就會逐步惡化,便會導致系統發生擁塞,要解決流數據流速的不穩定的問題,DDSMS在數據查詢問題上即將要接受巨大的考驗。

分佈式數據處理存儲模塊

對於DDSMS性能方面,DDSMS是具有現實意義的。在對查詢進行處理時,待處理的數據是儲存在內存的工作區中。在其操作過程中,系統為了存儲流入的數據,必須產生查詢窗口,即為查詢分配相應的工作區。元數據與一般的關係在磁盤中保留。就像數據字典功能,元數據包含元數據。由於需要近似處理,用來存數據流的大概信息,還需要為其中的數據流設定存儲區域。

分佈式數據處理查詢模塊

在處理查詢接口提交的數據時,查詢模塊起到關鍵性的作用。不僅有數據流上的連續查詢,同時也涵蓋了傳統關係上的查詢、插入、刪除和修改等。
用户為獲取一個查詢可以通過向系統提交一個註冊申請,以方便與DDSMS進行相互交流。之後用户會接受到一個系統發來的句柄,以便於用户使用這個句柄在今後的任意時間來查詢結果,當然沒有用處時用户也可隨時註銷以往相關查詢,以保證信息的安全性 [1] 
參考資料
  • 1.    朱沙沙.分佈式數據處理系統的研究與應用[D].南京郵電大學,2013.
  • 2.    彭旭宇.分佈式數據處理系統中配置及任務管理模塊的設計與實現[D].電子科技大學,2012.
  • 3.    李治.數字城市中的分佈式數據處理關鍵技術研究[D].華中科技大學,2004.