一種分布式倉儲數據處理方法、設備和系統的制作方法
【技術領域】
[0001]本發明涉及倉儲技術領域,具體涉及一種分布式倉儲數據處理方法、設備和系統。
【背景技術】
[0002]無論是傳統零售商還是電商企業,供應鏈的優劣都是其成敗的重要決定因素之一,供應鏈中極其重要的一環是倉儲系統,倉儲系統的響應速度直接影響整個供應鏈的響應速度,間接影響客戶體驗和公司整體采銷策略。常見的倉儲系統主要有兩種,圖1和圖2分別示出了兩者的系統架構,圖1是在各倉庫(如北京倉、上海倉)均部署整套倉儲系統和數據庫,同時在服務器端部署匯總數據庫,各倉庫端與服務器端形成整個倉儲系統;圖2是將服務器和數據庫集中部署在一處,各地倉庫通過其客戶端或網站直接訪問異地服務器,執行倉儲功能。但是,采用圖1的方式需要在多地部署服務器和數據庫,投入成本高,且數據版本難于管理;采用圖2的方式工作時各地庫房需要遠程訪問服務器,訪問過程受網絡狀況的制約,訪問速度和可用性得不到保證。
【發明內容】
[0003]有鑒于此,本發明提出一種分布式倉儲數據處理方法、設備和系統,倉庫客戶端并不是完全依賴服務端數據,而是與服務端處于部分同步的狀態,客戶端操作響應快。
[0004]本發明提供一種分布式倉儲數據處理方法,包括:接收來自服務端設備的業務數據并存儲在本地,其中業務數據包括若干數據包,每個數據包具有唯一的標識符;在本地數據包經過操作后,將操作結果發送給所述服務端設備,并升級該本地數據包的版本號;向其他客戶端設備廣播該本地數據包的最新版本;接收所述服務端設備和所述其他客戶端設備廣播的數據包版本,相應地更新本地數據包及其版本號。
[0005]優選地,該方法還包括:接收所述服務端設備下發的數據分析任務,基于本地數據執行所述數據分析任務,分析完畢后將結果發送給所述服務端設備。
[0006]本發明還提供一種分布式倉儲數據處理方法,包括:根據操作節點對業務數據進行拆分,將業務數據拆分為若干數據包,為每個數據包分配唯一的標識符;將數據包下發給各個操作節點上的客戶端設備,記錄數據包與客戶端設備的對應關系;接收來自所有客戶端設備的數據包版本,相應地更新本地數據包及其版本號;向所有客戶端設備廣播該本地數據包的最新版本。
[0007]優選地,其中所述操作節點包括以下各項中的至少兩項:驗收節點、上架節點、庫存節點、揀貨節點、發貨節點。
[0008]優選地,該方法還包括:根據用戶需求建立數據分析任務,對完成該數據分析任務所需的時長進行預估。
[0009]優選地,該方法還包括:當預估時長小于等于預設閾值時,基于本地數據執行所述數據分析任務,分析完畢后將結果反饋給用戶;當預估時長大于預設閾值時,將所述數據分析任務拆分為若干子任務,將各子任務下發給相關客戶端設備;其中,拆分所述數據分析任務時,根據各客戶端設備持有數據包的情況,將數據分析任務中涉及單個客戶端設備所持有的數據包的部分拆分為一個子任務。
[0010]優選地,該方法還包括:接收各客戶端設備發送的針對子任務的分析結果,然后將分析結果反饋給用戶。
[0011]本發明還提供一種客戶端設備,包括:數據接收模塊,用于接收來自服務端設備的業務數據并存儲在本地,其中業務數據包括若干數據包,每個數據包具有唯一的標識符;數據發送模塊,用于在本地數據包經過操作后,將操作結果發送給所述服務端設備,并升級該本地數據包的版本號;數據廣播模塊,用于向其他客戶端設備廣播該本地數據包的最新版本;數據更新模塊,用于接收所述服務端和所述其他客戶端設備廣播的數據包版本,相應地更新本地數據包及其版本號。
[0012]本發明還提供一種服務端設備,包括:數據拆分模塊,用于根據操作節點對業務數據進行拆分,將業務數據拆分為若干數據包,為每個數據包分配唯一的標識符;數據下發模塊,用于將數據包下發給各個操作節點上的客戶端設備,記錄數據包與客戶端設備的對應關系;數據接收模塊,用于接收來自所有客戶端設備的數據包版本,相應地更新本地數據包及其版本號;數據廣播模塊,用于向所有客戶端設備廣播該本地數據包的最新版本。
[0013]本發明還提供一種分布式倉儲數據處理系統,包括:服務端設備和至少兩個客戶端設備,其中,所述服務端設備用于根據操作節點對業務數據進行拆分,將業務數據拆分為若干數據包,為每個數據包分配唯一的標識符;將數據包下發給各個操作節點上的客戶端設備,記錄數據包與客戶端設備的對應關系;接收來自所有客戶端設備的數據包版本,相應地更新本地數據包及其版本號;向所有客戶端設備廣播該本地數據包的最新版本;所述客戶端設備用于接收來自服務端設備的業務數據并存儲在本地,其中業務數據包括若干數據包,每個數據包具有唯一的標識符;在本地數據包經過操作后,將操作結果發送給所述服務端設備,并升級該本地數據包的版本號;向其他客戶端設備廣播該本地數據包的最新版本;接收所述服務端設備和所述其他客戶端設備廣播的數據包版本,相應地更新本地數據包及其版本號。
[0014]有益效果:利用本發明實施例的分布式倉儲數據處理方案,使得倉庫客戶端并不是完全依賴服務端數據,而是與服務端處于部分同步的狀態,既充分利用了客戶端計算資源,避免了各地分庫房部署的巨大費用,又解決了集中部署受網絡狀況影響嚴重的問題,一線工作人員使用本發明實施例的終端設備操作響應速度快,操作體驗得到提升。
【附圖說明】
[0015]圖1和圖2是現有技術中兩種典型的倉儲系統架構圖。
[0016]圖3是現有技術中一種典型的庫房客戶端系統架構圖。
[0017]圖4是本發明實施例分布式倉儲數據處理方法在客戶端的流程框圖。
[0018]圖5是本發明實施例分布式倉儲數據處理方法在服務端的流程框圖。
[0019]圖6和圖7分別是本發明實施例的客戶端設備和服務端設備結構圖。
[0020]圖8是本發明實施例的分布式倉儲數據處理系統結構圖。
【具體實施方式】
[0021]以下結合附圖以及具體實施例,對本發明的技術方案進行詳細描述。
[0022]圖3示例性地示出了一種典型的倉儲系統中在倉庫使用的庫房系統,根據不同的業務流程,庫房系統具有“驗收”、“上架”、“庫存”、“揀貨”和“發貨”等操作節點,各個節點上的工作人員通過本地客戶端進行業務處理,向服務端上傳和下載數據,服務端管理人員進行統一管理調度。
[0023]圖4示出了本發明實施例的分布式倉儲數據處理方法在客戶端的處理流程框圖,包括:
[0024]S101,接收來自服務端設備的業務數據并存儲在本地,其中業務數據包括若干數據包,每個數據包具有唯一的標識符;
[0025]S102,在本地數據包經過操作后,將操作結果發送給服務端設備,并升級該本地數據包的版本號;
[0026]S103,向其他客戶端設備廣播該本地數據包的最新版本;
[0027]S104,接收服務端設備和其他客戶端設備廣播的數據包版本,相應地更新本地數據包及其版本號。
[0028]圖5示出了本發明實施例的分布式倉儲數據處理方法在服務端的處理流程框圖,包括:
[0029]S201,根據操作節點對業務數據進行拆分,將業務數據拆分為若干數據包,為每個數據包分配唯一的標識符;
[0030]S202,將數據包下發給各個操作節點上的客戶端設備,記錄數據包與客戶端設備的對應關系;
[0031]S203,接收來自客戶端設備的數據包版本,相應地更新本地數據包及其版本號;
[0032]S204,向所有客戶端設備廣播該本地數據包的最新版本。
[0033]在實際應用場景中,首先,服務組將所有的數據拆分成合理大小的數據包,并為每個數據包分配唯一的標識。拆分原則是:根據具體使用的業務場景和系統中的每個操作節點進行拆分,每個操作節點涉及的數據拆分為一個數據包。
[0034]工作時,各客戶端的業務人員根據本客戶端節點的常用操作,從服務端下載相關的數據包,存儲在本地,服務組根據數據包標識符記錄每個客戶端存儲的包情況。業務人員在客戶端進行數據操作時直接使用本地數據,操作完成后,將操作后的最終數據結果發給服務組,還將本地數據包版本號升級。同時,在局域網內廣播升級后的數據包版本,將其他客戶端持有的相同包(標識符相同)的版本全部升級。
[0035]另一方面,服務組收到客戶端發來的操作結果后,記錄該操作結果,同時將服務組內對應的數據包版本升級,并對所有客戶端廣播最新的包版本(客戶端據此對本地的包版本進行升級),確保系統內所有客戶端中相同標識符的數據包版本一致。如果某個客戶端的數據包不符合最新版本號,也可由工作人員手動下載最新的包版本存儲在本地。
[0036]以“上架”過程舉例來說,首先服務組將所有的待上架數據,根據不同的機構和庫房一一例如“沈陽-3C庫房”一一拆分成不同的數據包,如果沈陽-3C庫房有客戶端連接到服務器,而且該客戶端平時進行過“上架”業務,則該客戶端將下載服務組拆分好的對應數據包,存儲到本地。
[0037]之后,當業務人員使用此客戶端進行上架作業時,客戶端直接使用本地下載的數據包進行“上架”操作,比如此時本地數據包中一共包含了 100件商品,業務人員對其中一件進行了“上架”,此時,本地的數據包會改變為99件待上架,I件已上架。此時數據包的改變就是從待上架商品中減1,同時產生I個數量的已上架,客戶端就將此2項變動,發給服務組,同時將自身的版本號加I。
[0038]服務組收到變更后,將原來100件待架商品對應的數據包中減掉I件商品,同時將數據包的版本號加I。同時將這個數據包的數據變化和版本號變化發送給所有持有這個數據包的客戶端,通知其進行變更。
[0039]除了原100件待上架商品的數據包外,服務