本發明涉及信息技術領域,尤其涉及一種數據傳輸方法、系統及電子設備。
背景技術:
隨著社會經濟的發展,跨區域的文件分享成為一種新的迫切需求,且越來越受到關注。傳統的媒體制作單位(例如,電視臺等機構),在國際性事件(例如,奧運會)發生的時候,通常需要使用跨國文件傳輸服務將在國外采集到的素材傳遞到國內。當文件傳到國內后,這些機構又出于保存的目的,需要將這些文件放置在存儲系統內進行長期保存。
發明人在實現本發明的過程中發現,傳統的媒體制作單位所使用的跨國文件傳輸服務以及存儲服務通常是兩個分開的服務。這就使得客戶在使用跨國文件傳輸服務將文件傳至國內后,還需要二次上傳到存儲系統中。一方面,這樣使得完成文件的跨區域傳輸存儲的效率變得低下;另一方面,由于存儲系統是基于傳統介質的(硬盤、磁盤、磁帶等),非常不利于文件的長期保存。
技術實現要素:
本發明實施例提供一種數據傳輸方法、系統及電子設備,用于至少解決現有技術中存在的實現文件的跨區域傳輸存儲效率低下的技術問題。
第一方面,本發明實施例提供一種數據傳輸方法,其包括:
解析接收到的數據傳輸指令以確定待傳輸數據的本地存儲地址和目的地存儲地址;
建立與所述目的地存儲地址所對應的目的地云盤之間的數據傳輸通道;
根據所述本地存儲地址獲取所述待傳輸數據;
通過所述數據傳輸通道將獲取的待傳輸數據傳輸至所述目的地云盤。
第二方面,本發明實施例提供一種數據傳輸系統,包括:
指令解析模塊,用于解析接收到的數據傳輸指令以確定待傳輸數據的本地存儲地址和目的地存儲地址;
傳輸通道建立模塊,用于建立與所述目的地存儲地址所對應的目的地云盤之間的數據傳輸通道;
數據獲取模塊,用于根據所述本地存儲地址獲取所述待傳輸數據;
數據傳輸模塊,用于通過所述數據傳輸通道將獲取的待傳輸數據傳輸至所述目的地云盤。
第三方面,本發明實施例提供一種非易失性計算機可讀存儲介質,所述存儲介質中存儲有一個或多個包括執行指令的程序,所述執行指令能夠被電子設備(包括但不限于計算機,服務器,或者網絡設備等)讀取并執行,以用于執行本發明上述任一項數據傳輸方法。
第四方面,提供一種電子設備,其包括:至少一個處理器,以及與所述至少一個處理器通信連接的存儲器,其中,所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行本發明上述任一項數據傳輸方法。
第五方面,本發明實施例還提供一種計算機程序產品,所述計算機程序產品包括存儲在非易失性計算機可讀存儲介質上的計算程序,所述計算機程序包括程序指令,當所述程序指令被計算機執行時,使所述計算機執行上述任一項數據傳輸方法。
本發明實施例的數據傳輸方法、系統及電子設備的有益技術效果在于:通過建立與目的地云盤之間的數據傳輸通道,并通過所述數據傳輸通道將待傳輸數據直接傳輸至目的地云盤進行存儲。節省了將待傳輸數據傳輸至目的地后再次進行轉儲的時間開銷,提升了跨區域傳輸存儲文件的效率。
附圖說明
為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明的數據傳輸方法一實施例的流程圖;
圖2為本發明的數據傳輸方法另一實施例的流程圖;
圖3為本發明的數據傳輸方法又一實施例的流程圖;
圖4為本發明的數據傳輸系統一實施例的結構框圖;
圖5為本發明的數據傳輸系統另一實施例的結構框圖;
圖6為本發明的數據傳輸系統又一實施例的結構框圖;
圖7為本發明的電子設備的一實施例的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
本發明可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、元件、數據結構等等。也可以在分布式計算環境中實踐本發明,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。
在本發明中,“模塊”、“裝置”、“系統”等等指應用于計算機的相關實體,如硬件、硬件和軟件的組合、軟件或執行中的軟件等。詳細地說,例如,元件可以、但不限于是運行于處理器的過程、處理器、對象、可執行元件、執行線程、程序和/或計算機。還有,運行于服務器上的應用程序或腳本程序、服務器都可以是元件。一個或多個元件可在執行的過程和/或線程中,并且元件可以在一臺計算機上本地化和/或分布在兩臺或多臺計算機之間,并可以由各種計算機可讀介質運行。元件還可以根據具有一個或多個數據包的信號,例如,來自一個與本地系統、分布式系統中另一元件交互的,和/或在因特網的網絡通過信號與其它系統交互的數據的信號通過本地和/或遠程過程來進行通信。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”,不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
如圖1所示,本發明的一實施例的數據傳輸方法,包括:
S11、解析接收到的數據傳輸指令以確定待傳輸數據的本地存儲地址和目的地存儲地址;
S12、建立與所述目的地存儲地址所對應的目的地云盤之間的數據傳輸通道;
S13、根據所述本地存儲地址獲取所述待傳輸數據;
S14、通過所述數據傳輸通道將獲取的待傳輸數據傳輸至所述目的地云盤。
本實施例的數據傳輸方法通過建立與目的地云盤之間的數據傳輸通道,并通過所述數據傳輸通道將待傳輸數據直接傳輸至目的地云盤進行存儲。節省了將待傳輸數據傳輸至目的地后再次進行轉儲的時間開銷,提升了跨區域傳輸存儲文件的效率。
本實施例中的步驟S12中的數據傳輸指令可以是基于本地數據分享指令生成的,例如,本地需要進行跨區域的文件分享時會生成文件分享指令,并且根據文件分享指令生成數據傳輸指令來完成文件的跨區域分享。數據傳輸指令也可以是基于跨區域的數據訪問請求生成的。例如,第一區域需要訪問第二區域的文件時,就在第一區域生成文件訪問請求并發送至第二區域的服務器。當第二區域的服務器接收到文件訪問請求后根據文件訪問請求生成對應的數據傳輸指令以實現第一區域對第二區域的文件訪問。
本實施例中的步驟S12至步驟S14通過直接建立與目的地云盤之間的數據傳輸通道并進行待傳輸數據的傳輸,實現了快速傳輸數據的目的。保證了文件傳輸的穩定性以及文件的完整性。
在一些實施例中,所述本地存儲地址為所述待傳輸數據在本地服務器上的存儲地址和/或所述待傳輸數據在本地云盤上的存儲地址。
本實施例中根據待傳輸數據的本地存儲地址確定待傳輸數據是存儲在本地服務器還是本地云盤,并根據確定結果獲取待傳輸數據進行傳輸。本實施不限制待傳輸數據的存儲位置。并且本實施例中當確定本地服務器和本地云盤都存儲有待傳輸數據時,優先從本地云盤獲取待傳輸數據,以節省從本地服務器獲取待傳輸數據再上傳至網絡進行傳輸所耗費的時間成本,提高數據傳輸的效率。
在一些實施例中,所述數據傳輸通道能夠通過廣域網加速將所述待傳輸數據傳輸至所述目的地存儲地址所對應的服務器。本實施例中通過采用廣域網加速待傳輸數據的方法整體上提升了跨區域數據傳輸存儲的效率。本實施例中的廣域網加速為前向糾錯編碼加速或WDT加速。廣域網加速可以通過現有技術的加速傳輸方法實現,如前向糾錯編碼技術和WDT加速工具都可以實現。本發明實施例優選通過前向糾錯編碼技術進行加速傳輸,具體可以為在本地對獲取到的待傳輸數據進行編碼,將其由TCP包轉換為UDP包,然后將編碼后的UDP包通過數據傳輸通道傳輸到目的地云盤,目的地云盤接收到UDP包后進行解碼處理,將UDP包再還原為TCP包即可。通過UDP加速的方式,在傳輸的過程中,即使發生包丟失的情況,例如本來11個包,傳輸到目的地云盤的只有8個包的情況下,通過前向糾錯處理依然能夠獲取到正確的文件內容,即使發生包丟失也不影響文件的準確性。其中,前向糾錯的具體處理過程和機制,可以參考現有技術,在此不進行贅述。
如圖2所示,在一些實施例中,所述待傳輸數據以UDP數據包的形式進行傳輸;所述數據傳輸方法還包括:
S21、接收所述目的地云盤所發送的丟包信息;
S22、解析所述丟包信息以確定傳輸所述待傳輸數據過程中丟失的UDP數據包;
S23、通過所述數據傳輸通道重新傳輸所述丟失的UDP數據包至所述目的地云盤。
本實施例中通過解析來自目的地云盤所發送的丟包信息以確定數據傳輸過程中丟失的具體是哪個數據包,并相應地重新發送被丟失的數據包至目的地云盤。正是基于這種負反饋的機制(接收端檢測到丟包并把需要重傳的包信息反饋給發送端)使得本實施例的丟包重傳所針對的都是真正丟失的數據包,沒有冗余的傳輸和帶寬的浪費。
如圖3所示,在一些實施例中,所述數據傳輸方法還包括:
S31、接收所述目的地云盤所發送的最大數據存儲速率;
S32、根據所述最大數據存儲速率確定用于傳輸所述待傳輸數據的數據傳輸速率,所述數據傳輸速率小于所述最大數據存儲速率。
本實施例通過實時的接收目的地云盤所反饋的在目的地云盤進行數據存儲的最大數據存儲速率,來確定用于傳輸待傳輸數據的數據傳輸速率,并且限制數據傳輸速率小于最大數據存儲速率。從而避免了當用于傳輸待傳輸數據的數據傳輸速率大于所述最大數據存儲速率時,目的地云盤不能及時存儲傳輸來的待傳輸數據而造成的丟包情況。因此,本實施例的數據傳輸方法在實現數據的高速傳輸的情況下還保證了數據傳輸的完整性。因為,目的地云盤的吞吐能力(能夠同時進行的讀取和/或寫入的數據的總量)是有限的,而本地云盤又可能是在同時進行多個任務的讀寫工作的,所以本地云盤的實際的可用吞吐能力也是在不斷變化的。因此,在對目的地云盤進行讀寫操作時需要考慮其當前的實際吞吐能力,以保證數據讀寫的質量。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作合并,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定是本發明所必須的。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
如圖4所示為本申請一實施例提供的一種數據傳輸系統400,包括:
指令解析模塊410,用于解析接收到的數據傳輸指令以確定待傳輸數據的本地存儲地址和目的地存儲地址;
傳輸通道建立模塊420,用于建立與所述目的地存儲地址所對應的目的地云盤之間的數據傳輸通道;
數據獲取模塊430,用于根據所述本地存儲地址獲取所述待傳輸數據;
數據傳輸模塊440,用于通過所述數據傳輸通道將獲取的待傳輸數據傳輸至所述目的地云盤。
在一些實施例中,所述本地存儲地址為所述待傳輸數據在本地服務器上的存儲地址和/或所述待傳輸數據在本地云盤上的存儲地址。
在一些實施例中,所述數據傳輸通道能夠通過廣域網加速將所述待傳輸數據傳輸至所述目的地云盤。
如圖5所示,在一些實施例中,所述待傳輸數據以UDP數據包的形式進行傳輸;所述數據傳輸系統400還包括:
丟包信息接收模塊450,用于接收所述目的地云盤所發送的丟包信息;
信息解析模塊460,用于解析所述丟包信息以確定傳輸所述待傳輸數據過程中丟失的UDP數據包;
丟包數據發送模塊470,用于通過所述數據傳輸通道重新傳輸所述丟失的UDP數據包至所述目的地云盤。
如圖6所示,在一些實施例中,所述數據傳輸系統400還包括:
存儲速率接收模塊480,用于接收所述目的地云盤所發送的最大數據存儲速率;
傳輸速率確定模塊490,用于根據所述最大數據存儲速率確定用于傳輸所述待傳輸數據的數據傳輸速率,所述數據傳輸速率小于所述最大數據存儲速率。
上述本發明實施例的數據傳輸系統可用于執行本發明實施例的數據傳輸方法,并相應的達到上述本發明實施例的數據傳輸方法所達到的技術效果,這里不再贅述。
本發明實施例中可以通過硬件處理器(hardware processor)來實現相關功能模塊。
另一方面,本發明實施例提供一種非易失性計算機可讀存儲介質,所述存儲介質中存儲有一個或多個包括執行指令的程序,所述執行指令能夠被電子設備(包括但不限于計算機,服務器,或者網絡設備等)讀取并執行,以用于執行上述方法實施例中的相關步驟,例如:
解析接收到的數據傳輸指令以確定待傳輸數據的本地存儲地址和目的地存儲地址;
建立與所述目的地存儲地址所對應的目的地云盤之間的數據傳輸通道;
根據所述本地存儲地址獲取所述待傳輸數據;
通過所述數據傳輸通道將獲取的待傳輸數據傳輸至所述目的地云盤。
另一方面,本發明實施例還公開一種電子設備,該電子設備包括:
至少一個存儲器,用于存放計算機操作指令;
至少一個處理器,用于執行所述存儲器存儲的計算機操作指令,以執行:
解析接收到的數據傳輸指令以確定待傳輸數據的本地存儲地址和目的地存儲地址;
建立與所述目的地存儲地址所對應的目的地云盤之間的數據傳輸通道;
根據所述本地存儲地址獲取所述待傳輸數據;
通過所述數據傳輸通道將獲取的待傳輸數據傳輸至所述目的地云盤。
圖7是本申請另一實施例提供的執行數據傳輸方法的電子設備的硬件結構示意圖,如圖7所示,該設備包括:
一個或多個處理器710以及存儲器720,圖7中以一個處理器710為例。
執行數據傳輸方法的設備還可以包括:輸入裝置730和輸出裝置740。
處理器710、存儲器720、輸入裝置730和輸出裝置740可以通過總線或者其他方式連接,圖7中以通過總線連接為例。
存儲器720作為一種非易失性計算機可讀存儲介質,可用于存儲非易失性軟件程序、非易失性計算機可執行程序以及模塊,如本申請實施例中的數據傳輸方法對應的程序指令/模塊。處理器710通過運行存儲在存儲器720中的非易失性軟件程序、指令以及模塊,從而執行服務器的各種功能應用以及數據處理,即實現上述方法實施例數據傳輸方法。
存儲器720可以包括存儲程序區和存儲數據區,其中,存儲程序區可存儲操作系統、至少一個功能所需要的應用程序;存儲數據區可存儲根據數據傳輸裝置的使用所創建的數據等。此外,存儲器720可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態存儲器件。在一些實施例中,存儲器720可選包括相對于處理器710遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至數據傳輸裝置。上述網絡的實例包括但不限于互聯網、企業內部網、局域網、移動通信網及其組合。
輸入裝置730可接收輸入的數字或字符信息,以及產生與數據傳輸裝置的用戶設置以及功能控制有關的鍵信號輸入。輸出裝置740可包括顯示屏等顯示設備。
所述一個或者多個模塊存儲在所述存儲器720中,當被所述一個或者多個處理器710執行時,執行上述任意方法實施例中的數據傳輸方法。
上述產品可執行本申請實施例所提供的方法,具備執行方法相應的功能模塊和有益效果。未在本實施例中詳盡描述的技術細節,可參見本申請實施例所提供的方法。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上述技術方案本質上或者說對相關技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
最后應說明的是:以上實施例僅用以說明本申請的技術方案,而非對其限制;盡管參照前述實施例對本申請進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本申請各實施例技術方案的精神和范圍。