專利名稱:用于基于消息的可伸縮的數據傳輸的系統(tǒng)和方法
技術領域:
本發(fā)明涉及信息技術領域,并且更具體地涉及一個平臺,它被配置為通過有效的基于消息的會話,啟動和處理大量網絡和其它數據備份或傳送。
背景技術:
對于數據企業(yè)和其它存儲解決方案的增長的需求已經激起了在數據備份與管理工具方面的相應需求。公司、政府和科學組織等可能要求千兆字節(jié)或兆兆字節(jié)或者更多數據的可靠備份,用于檔案或其它目的。盡管物理存儲介質諸如存儲區(qū)網絡、光存儲介質、廉價磁盤冗余陣列(RAID)和其它平臺已經增加了可用于數據管理器可用的總檔案容量,但有效地獲得主機設備的大數據備份的能力卻還沒有同樣地進步。
例如,網絡管理員可能周期性地希望提取存儲到諸如在局域網(LAN)上的服務器驅動器的網絡存儲器數據更新,并把那些數據傳輸到遠地的安全后備儲藏庫。然而,使用當前技術來計劃和執(zhí)行那種類型的大量數據傳輸不總是有效的。例如,在將LAN數據存儲到遠地的情況下,管理員可能嘗試使用常規(guī)的網絡協(xié)議諸如傳輸控制協(xié)議(TCP)移動那個數據量。
然而,TCP作為一個傳輸解決方案可證明是一個難以滿足將數據備份傳送到遠程主機的運載工具,部分地因為TCP傾向于將數據分解成相當小的信息包,大約幾十個字節(jié)至幾千個字節(jié)。當嘗試驅動千兆字節(jié)的原始或更新數據至遠程主機時,那個規(guī)模將不滿足有效傳輸的需要。而且,當在信道上執(zhí)行數據流控制,TCP可能暫停以在小至幾千字節(jié)信道上尋找可用帶寬或容量,停止和填充管道中可用的空間,并且接著等待輔助的開時隙(open slot)。再者,在使用TCP API的粒度時,在那個規(guī)模上通過間歇信道推送大約兆字節(jié)、千兆字節(jié)或更多的數據是沒有效率的。所希望的是更好的大量和其它數據備份技術。存在其它問題。
發(fā)明概述克服本領域中這些和其它問題的本發(fā)明,涉及用于基于消息的可伸縮的數據傳輸的系統(tǒng)和方法的一個方面,其中一個或多個獨立的服務器或其它節(jié)點將數據備份和其它信息通過通信引擎?zhèn)魉椭吝h程存儲器主機。在實施例中,通信引擎可與基礎傳輸層接口,諸如TCP或其它協(xié)議,并且作為從節(jié)點至遠程存儲器的數據流的媒介。通信引擎可將等待傳輸的數據分解成一組消息對象,將它們在集束進入建立的數據管道的連接上緩沖輸出。把數據封裝到基本消息對象,允許更連續(xù)傳遞數據有效負載,因為例如與表現為定期而不斷被迫停止(stop-and-go)或“聊天”類型行為的純TCP傳輸相比,只要連接沒有被占用和清除,消息就繼續(xù)。在實施例中,一個始發(fā)會話可通過多于一個連接傳輸數據,以最大化信道使用。通信引擎可執(zhí)行通信量控制,基于完成端口的輪詢以表示消息完成,或者其它信道機制,但通常不要求獨立的信息包或其它比較小的數據對象的確認。通過本發(fā)明的平臺和協(xié)議可達到高吞吐量。
圖1例示按照本發(fā)明的實施例用于處理數據備份或其它傳送的整個網絡布局的例子。
圖2例示按照本發(fā)明的實施例用于基于消息的數據傳送的結構。
圖3例示按照本發(fā)明的實施例用于基于消息的數據傳送的狀態(tài)圖。
圖4例示按照本發(fā)明的實施例基于消息的數據傳送及相關聯的協(xié)議的流程圖。
詳細說明圖1例示一個結構,在該結構中,按照本發(fā)明的實施例,用于基于消息的可伸縮的數據傳輸的系統(tǒng)和方法可運行。如在圖中所示,在實施例中一組數據源102可通過網絡104彼此通信和與遠程資源通信。在實施例中,數據源102的組可包括,例如具有硬盤的獨立的服務器、客戶機或者具有磁盤、磁帶、光或其它存儲媒體的其它節(jié)點或貴重器材(asset)。在實施例中,網絡104可能是或者包括局域網(LAN)諸如以太網、廣域網(WAN)或其它網絡類型或拓撲結構。在另外的實施例中,網絡104可以是或者包括為了數據備份的專用網絡、周期性地用于實現數據傳輸的共享網絡、因特網或者其它網絡或設備。然而,通常在數據源組102中的一個或多個數據源可能具有在周期的或其它基礎上并且以相當大的量整體地或部分地備份數據的要求。
如所示的,當產生數據備份或其它數據傳送時,在實施例中,由數據源組102中的一個或多個數據源傳輸的數據被傳送至存儲服務器106,它接著將數據傳送至存儲器108。在實施例中,存儲器108可以是或者包括硬盤資源諸如RAID庫、光盤介質諸如可寫CD-ROM或DVD-ROM或其它、磁帶驅動器、電子存儲容量諸如隨機存取存儲器、閃存或其它電子組件、或其它存儲介質。在實施例中,存儲器108也可以是或者包括或者接口到數據存儲資源,諸如存儲區(qū)網絡(storage area network)(SAN)或其它貴重器材。在實施例中,存儲器108可裝備成接受和存儲較大數量的數據備份,例如用于企業(yè)和其它目的的兆字節(jié)、千兆字節(jié)或更多。
如圖2所示,按照本發(fā)明的一個實施例,在數據源組102內的每一個源可與通信引擎110通信,以啟動、管理和完成對數據服務器106或其它遠程或本地目的地的數據傳輸會話。通信引擎110可包括或接口到應用編程接口(API)112,它向數據源組102揭示變量、調用和其它接口參數以執(zhí)行有效的數據傳送。在如所示的實施例中,在數據源組102中的每個數據源可產生或與會話組114內的相應會話相關聯。會話組104可包括輸入/輸出緩沖器116隊列,其中一個或多個輸入/輸出緩沖器被分配給每個會話。會話、隊列、緩沖器和其它資源的其它布局是有可能的。在實施例中可從會話對象類實例化一個新會話的示例性代碼的例子如下
表1
其它代碼、語言或模塊或不同API是可能的。
如所示的,在會話組114中的每個會話可依次與分派模塊組118中的分派模塊通信。分派模塊組118自己可將連接聯編于連接組120中的一個或多個。在實施例中,連接組120(它可能是一個或多個)可使用多個可能的基礎通信機制,如通過Winsock、管道或其它的TCP。聚合到邏輯管道122的連接組120中每個連接可與存儲服務器106或者其它遠程或本地主機或資源通信。在實施例中,管道122可在那個結構內建立連接組120之前建立,但其它設置階段和配置是可能的。在實施例中,本發(fā)明可在一個或多個管道中支持或使用大量連接,例如大約1000個同時發(fā)生的連接,或者更多或者更少,取決于實現。
如所示的,存儲服務器106可包含目的地輸入/輸出隊列124,以緩沖對存儲服務器106或其它最終目的地流入和流出的消息通信量。更具體地說,在固定的、周期性的、選擇的或其它時間,在數據源組102中的一個或多個源可通過通信引擎110和相關聯的資源啟動向存儲服務器106的數據傳送。數據傳送可以是或者包括,例如服務器硬盤或其它存儲器的備份,大量科學或商業(yè)數據的捕獲,或者其它數據傳輸任務。通信引擎110可將來自源組102中的一個或多個源的駐留數據分解成一組消息對象,用于更有效的排隊和傳送。
如所示的,在會話組114中例示為會話A的會話可產生兩個消息,標注為消息1和消息2,用于傳送至存儲服務器106。在實施例中那些和其它消息在大小上可能大約許多兆字節(jié),或更大或更小。同樣,所例示的會話B已經產生標注為消息3的消息用于傳輸至存儲服務器106。會話C例示為在輸入側上接收的標注為消息4的消息。
在分派模塊組118中的分派模塊可將來自輸入/輸出緩沖器116組的多個消息流聯編(bind)到連接組120的一個或多個連接,并將不同會話的多路消息聯編進入相同的連接管道。如所示的,標注為D1的分派模塊將通信量從包括消息1和消息2的會話A傳送至連接1,而分派模塊D2將至和從會話B與用于連接至連接2的會話的消息流組合起來。其它組合是可能的。如所示的,與會話組114交互的通信引擎110和分派器組118及其其它資源可嘗試通過管道122的連接組120驅動最大可能數量的掛起消息,以實現對存儲服務器106最大可能利用可用的帶寬。在實施例中,在會話組114中各個的會話可為不同的消息或消息組指定不同類型的網絡連接,諸如端口、套接字(socket)或其它參數。
在數據源組102中的每個數據源,以及在連接組120中的各個連接和在至存儲服務器106的傳輸鏈中的其它鏈路,可具有不同的可用帶寬或其它傳輸特性。輸入/輸出116的隊列和其它傳輸資源一起,允許緩沖行為以適應在那個鏈中最慢的鏈路或多個鏈路,并且改變在服務器和接收器兩側上的通信量的特性,同時最大可能利用地驅動數據傳輸。例如,通信引擎110可連續(xù)地或周期性地掃描連接組120以確定它們是由流出或流入的消息流占用。
在實施例中,可使用在Microsoft WindowsTM系的操作系統(tǒng)下可用的完成端口設備(completion port facility)進行那些探查或掃描,據此GetQueuedCompletionStatus和其它命令可返回表示某一消息從隊列中離開或不離開的消息。由于通信引擎110、分派器組118和其它資源可依賴于作為數據傳送的基本單元的消息對象,在實施例中本發(fā)明的整個操作可針對快速大量傳送,因為不存在來源于如在純TCP傳輸模式中的單獨數據塊的處理的定期而不斷被迫停止效應。相反,按照本發(fā)明,可產生相當大量的消息,進入在輸入/輸出緩沖器106的隊列中隊列,并釋放至存儲服務器106或其它目的地以進行傳輸。
在實施例中,在會話組114中的每個會話或通信引擎110可等待補充隊列,直到會話自身確定消息對象的傳輸完成。因為確認那種狀態(tài)的工作屬于傳輸器側,所以沒有來自接收器端的反饋回路,并且避免了那種類型的開銷成本。會話組114可代之以等待來自輸入/輸出緩沖器116的隊列的確認在隊列中的空間已經打開,準備下一個用于傳輸的消息。會話組114因而可不嘗試重新補充隊列,直到處理了所有消息單元為止。會話組114可包含暫停(timeout)功能,如果相應的輸入/輸出緩沖器在一固定時間段諸如1分鐘內不確認消息的出發(fā)至連接組120,則從輸入/輸出緩沖器116的隊列中移除消息。會話組114可使用一其它暫停或其它檢查準則,諸如可變的延遲時間,在撤回消息或其它之前可進行的固定或可變數量的重復嘗試或其它。
每個消息對象本身可通過連接組120中的連接使用TCD作為較低層協(xié)議來傳送。其它協(xié)議是可能的。因為通信引擎110及其關聯的基于消息的協(xié)議管理在較高層上的流控制,所以TCP數據報可在沒有小量流控制、錯誤檢測或其它處理的情況下流動,這些情況往往會減慢由本發(fā)明的實施例管理的那種類型的大量可伸縮的傳送。
在實施例中,通信引擎110、API 112和其它資源可引入安全保護層以保護傳輸至存儲服務器106或其它目的地的數據。例如,在會話組114中的每個會話或在連接組120中的每個連接,在被允許聚集到管道122之前可通過數字證書諸如Kerberos、X.509或其它對象、安全套接字層或其它機制來認證。各個消息本身可同樣被加密以阻止中途截取或更改正在移到存儲服務器106的數據。各種安全、加密或其它技術,諸如MicrosoftTMSecurity Support ProviderInterface(安全支持提供者接口)(SSPI),公共密鑰諸如RSA標準,私人密鑰諸如數字加密系統(tǒng)(Digital Encryption System)(DES)機制,或者其它可用于保護傳輸過程的消息內容或其它方面。在實施例中,認證、加密和有關信息可在API 112的層上揭示。
圖3例示了一組狀態(tài)機126,表示按照本發(fā)明的實施例的通信處理的連續(xù)狀態(tài)。如在該圖中所示,API 112可提供一個接口來調用通信資源以實現基于消息的數據傳輸,諸如服務器備份、大量數據獲取諸如科學或商業(yè)數據的捕獲。在實施例中,通過會話組114的消息傳遞是可靠的,這是對各個消息或者正在整體地傳輸或者排隊用于重新傳輸來說。如所示的,可對多個目的地建立多個會話,例示性地會話1與目的地1相連接,會話2與目的地1相連接,和會話3與目的地3相連接。如所示的,會話1和會話2可在狀態(tài)1和2之間循環(huán),等待將相應的消息傳輸至目的地1的完成或者其它觸發(fā)事件。與目的地1通信可通過用于會話1的連接1狀態(tài)機,和用于會話2的連接2狀態(tài)機。連接1和連接2的每一個可與相關聯的加密和認證狀態(tài)機通信,以防備消息對象的未經授權的觀看或更改。連接1和連接2的每一個連接可同樣與相應的套接字I/O(輸入/輸出)狀態(tài)機通信,后者控制對相應的與目的地1的套接字1和套接字2連接的訪問。會話3可與相似的狀態(tài)機通信,后者處理對目的地3的傳輸、加密、認證和套接字連接的。在實施例中,各個消息的傳輸可以是異步的,因為按照信道占用和其它因素而不是按照定時的時隙排隊和釋放消息。在實施例中,各個連接和會話的創(chuàng)建同樣可以是異步的。輔助的狀態(tài)機和互連是可能的,并且其它狀態(tài)有可能用于每個狀態(tài)機或過程。
在圖4中例示了整個數據傳輸處理。在步驟402,可產生在會話組114中的一個或多個會話。在步驟404,可從數據源組102中的一個數據源傳輸會話同步消息并且傳輸至存儲服務器106的目的地輸入/輸出緩沖器124。在步驟406,可將用于會話同步的完成消息告知存儲服務器106。在步驟408,存儲服務器106可接受會話請求。
在步驟410,可將會話同步確認消息從存儲服務器106的目的地輸入/輸出緩沖器124傳輸至用于請求數據源的輸入/輸出緩沖器組114中相應的輸入/輸出緩沖器。在步驟412,可將用于會話確認的完成消息告知數據源組102中的啟動數據源。在步驟414,傳輸數據源可將表示為消息1的第一消息傳輸至輸入/輸出緩沖器組114中其相關聯的輸入/輸出緩沖器。在步驟416,傳輸數據源可將表示為消息2的第二消息傳輸至輸入/輸出緩沖器組114中其相關聯的數據源。在步驟418,傳輸數據源可將表示為消息3的第三消息傳輸至輸入/輸出緩沖器組114中其相關聯的輸入/輸出緩沖器。在步驟420,數據源可接收一個出錯消息,表示相應的輸入/輸出緩沖器滿了,因此消息3沒有被接受到隊列中。在步驟422,消息1可傳輸至存儲服務器106的目的地輸入/輸出緩沖器124。在步驟424,可將消息1傳輸的完成消息告知存儲服務器106或其它目的地。在步驟426,可將確認消息1的收到的確認消息傳輸至那個消息的數據源的輸入/輸出緩沖器。在步驟428,可將消息1的完成消息傳輸至相應的數據源。
在步驟430,可將消息2傳輸至存儲服務器106的目的地輸入/輸出緩沖器120或其它目的地。在步驟432,可將消息2的完成消息告知存儲服務器106。在步驟434,可將消息3重新傳輸至相應于那個消息的數據源輸入/輸出緩沖器。在步驟436,可將表示收到具有零單位的窗口尺寸(WndSize)消息2的確認消息傳輸至用于那個消息的數據源的輸入/輸出緩沖器。在步驟438,可將消息2的完成消息告知那個源。在步驟440,可將消息4從數據源組102中的數據源傳輸至輸入/輸出緩沖器116隊列中相應的輸入/輸出緩沖器。
在步驟442,接收消息1的客戶機應用程序或其它資源從目的地輸入/輸出緩沖器124檢索消息1。在步驟444,可將具有1單位的窗口尺寸消息2的確認消息傳輸至那個消息的源的相應的輸入/輸出緩沖器。在步驟446,可將消息3傳輸至存儲服務器106的目的地輸入/輸出緩沖器124。在步驟448,處理可結束,重復或者返回至先前的處理點。
本發(fā)明的上述描述是例示性的,并且對于本領域的熟練技術人員在配置和實施方面將發(fā)生修改。例如,盡管在實施例中已通過經由一個至遠程主機的通信鏈路與多個數據源進行通信來描述本發(fā)明,但在實施例中一個或多個節(jié)點或會話可通過獨立的至遠程主機或其它目的地的物理或邏輯鏈路來通信。
同樣,盡管在實施例中已將本發(fā)明描述為把備份數據傳輸至單個遠程主機,但在實施例中可將數據傳遞至單獨的邏輯或物理主機或介質。描述為單數的其它硬件、軟件或其它資源可分布在實施例中,并且同樣在實施例中描述為分布的資源可被組合。因此本發(fā)明的范圍定為只受所附的權利要求書限制。
權利要求
1.一種用于管理數據傳輸的系統(tǒng),其特征在于,所述系統(tǒng)包括輸入接口,以接收由來自至少一個數據源的數據產生的多個消息對象;傳輸層的傳輸接口;以及與輸入接口和傳輸接口通信的通信引擎,該通信引擎緩沖經由傳輸層傳輸至遠程目的地的消息對象。
2.如權利要求1所述的系統(tǒng),其特征在于,至少一個數據源包括網絡。
3.如權利要求2所述的系統(tǒng),其特征在于,所述網絡包括至少一個服務器。
4.如權利要求3所述的系統(tǒng),其特征在于,所述網絡包括局域網。
5.如權利要求1所述的系統(tǒng),其特征在于,所述傳輸層包括傳輸控制協(xié)議層。
6.如權利要求1所述的系統(tǒng),其特征在于,所述遠程目的地包括存儲器主機。
7.如權利要求1所述的系統(tǒng),其特征在于,所述通信引擎在至少一個輸出緩沖器中排隊消息對象。
8.如權利要求1所述的系統(tǒng),其特征在于,所述至少一個數據源包括多個數據源。
9.如權利要求8所述的系統(tǒng),其特征在于,每個數據源與至少一個相應的會話相關聯。
10.如權利要求9所述的系統(tǒng),其特征在于,所通信引擎將至少一個會話聯編到多個至遠程目的地的連接中的至少一個連接。
11.如權利要求10所述的系統(tǒng),其特征在于,所述通信引擎將多于一個會話聯編到至遠程目的地的連接中的至少一個連接。
12.如權利要求1所述的系統(tǒng),其特征在于,按照消息完成端口的狀態(tài)至少部分地執(zhí)行消息對象的緩沖。
13.一種用于管理數據的傳輸的方法,其特征在于,所述方法包括從至少一個數據源接收數據;將數據轉換成多個消息對象;以及緩沖經由傳輸層傳輸至遠程目的地的消息對象。
14.如權利要求13所述的方法,其特征在于,所述至少一個數據源包括網絡。
15.如權利要求14所述的方法,其特征在于,所述網絡包括至少一個服務器。
16.如權利要求15所述的方法,其特征在于,所述網絡包括局域網。
17.如權利要求13所述的方法,其特征在于,所述傳輸層包括傳輸控制協(xié)議層。
18.如權利要求13所述的方法,其特征在于,所述遠程目的地包括存儲器主機。
19.如權利要求13所述的方法,其特征在于,所述緩沖消息對象的步驟包括在至少一個輸出緩沖器中排隊消息對象的步驟。
20.如權利要求13所述的方法,其特征在于,所述至少一個數據源包括多個數據源。
21.如權利要求20所述的方法,其特征在于,每個數據源與至少一個相應會話相關聯。
22.如權利要求21所述的方法,其特征在于,所述方法還包括將至少一個會話聯編到多個至遠程目的地的連接中的至少一個連接。
23.如權利要求22所述的方法,其特征在于,所述聯編步驟包括將多于一個會話聯編到至遠程目的地的連接中的至少一個連接的步驟。
24.如權利要求13所述的方法,其特征在于,按照消息完成端口的狀態(tài)至少部分地執(zhí)行緩沖消息對象的步驟。
25.一種數據庫,該數據庫通過一種方法接收數據,其特征在于,該方法包括從至少一個數據源接收數據;將數據轉換成多個消息數據;以及緩沖經由傳輸層傳輸至數據庫的消息對象。
26.如權利要求25所述的數據庫,其特征在于,所述至少一個數據源包括網絡。
27.如權利要求26所述的數據庫,其特征在于,所述網絡包括至少一個服務器。
28.如權利要求27所述的數據庫,其特征在于,所述網絡包括局域網。
29.如權利要求25所述的數據庫,其特征在于,所述傳輸層包括傳輸控制協(xié)議層。
30.如權利要求25所述的數據庫,其特征在于,所述數據庫包括存儲器主機。
31.如權利要求25所述的數據庫,其特征在于,所述緩沖消息對象的步驟包括在至少一個輸出緩沖器中排隊消息對象的步驟。
32.如權利要求25所述的數據庫,其特征在于,所述至少一個數據源包括多個數據源。
33.如權利要求32所述的數據庫,其特征在于,每個數據源與至少一個相應的會話相關聯。
34.如權利要求33所述的數據庫,其特征在于,所述方法還包括將至少一個會話聯編到多個至遠程目的地的連接中的至少一個連接的步驟。
35.如權利要求34所述的數據庫,其特征在于,所述聯編步驟包括將多于一個會話聯編到至遠程目的地的連接中的至少一個連接的步驟。
36.如權利要求25所述的數據庫,其特征在于,按照消息完成端口的狀態(tài)至少部分地執(zhí)行緩沖消息對象的步驟。
37.一種消息對象,該消息對象按照一個方法而產生,其特征在于,所述方法為從至少一個數據源接收數據;并且將數據轉換成通信引擎中的多個消息對象;以及緩沖經由傳輸層傳輸至遠程目的地的至少一個消息對象。
38.如權利要求37所述的消息對象,其特征在于,所述至少一個數據源包括網絡。
39.如權利要求38所述的消息對象,其特征在于,所述網絡包括至少一個服務器。
40.如權利要求39所述的消息對象,其特征在于,所述網絡包括局域網。
41.如權利要求37所述的消息對象,其特征在于,所述傳輸層包括傳輸控制協(xié)議層。
42.如權利要求37所述的消息對象,其特征在于,所述遠程目的地包括存儲器主機。
43.如權利要求37所述的消息對象,其特征在于,所述緩沖至少一個消息對象的步驟包括在至少一個輸出緩沖器中排隊至少一個消息對象的步驟。
44.如權利要求37所述的消息對象,其特征在于,至少一個數據源包括多個數據源。
45.如權利要求44所述的消息對象,其特征在于,每個數據源與至少一個相應的會話相關聯。
46.如權利要求45所述的消息對象,其特征在于,所述方法還包括將至少一個會話聯編到多個至遠程目的地的連接中的至少一個連接的步驟。
47.如權利要求46所述的消息對象,其特征在于,所述聯編步驟包括將多于一個會話聯編到至遠程目的地連接中的至少一個連接的步驟。
48.如權利要求37所述的消息對象,其特征在于,按照消息完成端口的狀態(tài)至少部分地執(zhí)行緩沖至少一個消息對象的步驟。
全文摘要
本發(fā)明采用消息的數據傳輸平臺,其中通信引擎根據作為基本單元的消息對象來控制服務器或其它備份數據或其它大量數據傳遞至遠程站點。來自一個或多個服務器或其它數據源的數據會話,可在用于傳遞至同樣包括通信控制的遠程數據主機的建立的管道內被緩沖。相對大的消息單元可在隊列中的信道內等待通信,并在前一個通信完成時被釋放。完成端口或其它輪詢或其它機制可表示連接已經打開供使用。在實施例中,消息對象可加以簽名或加密,以防止更新或未經授權的觀看。通信引擎可依靠TCP或其它基礎傳輸機制以實現較低層傳輸。
文檔編號G06F13/10GK1578280SQ20041006332
公開日2005年2月9日 申請日期2004年6月29日 優(yōu)先權日2003年6月30日
發(fā)明者K·帕笛瓊納斯 申請人:微軟公司