專利名稱:一種基于三層架構的數據傳輸系統及數據傳輸方法
技術領域:
本發明涉及數據傳輸領域,尤其涉及一種基于三層架構的數據傳輸系統及數據傳 輸方法。
背景技術:
現行業應用軟件大部分是基于關系式數據庫的信息處理系統,即MIS系統;軟件 的系統架構上從兩層的C/S結構(客戶端/服務器結構),發展到B/S結構(瀏覽器/服務 器);由于現能開發三層結構的數據傳輸系統的公司少,其次國內對三層結構的數據傳輸 的認識不足,所以現在零售行業內應用最多的是兩層C/S結構,或B/S結構。在此以連鎖零售行業的業務管理系統為例,品牌連鎖零售業企業通常在全國各 省、市、區都擁有自己的店鋪,每間店鋪有一臺或者上百、上千臺收銀系統,隨著經營規模的 日益擴展,總部對店鋪的管理業務越來越繁重,大量的數據傳輸、上萬的貨品信息、庫存信 息、上十萬的會員群體,加上各區域成本的差異、價格的差異令數據的匯總和計算量成幾何 級數增加。數據量龐大,對現有的基于兩層C/S結構,或B/S結構的數據傳輸系統,難于實 現數據從集中到分布過渡到從分布到集中的數據管理,不利于業務的線性擴展。現有技術中有一種采用基于4層構架的數據處理系統并使用硬件方式來實現,即 在界面層和業務處理層之間增加一層數據轉發層,數據轉發層由路由器組成(具體請參考 申請號為200410078182.0的中國專利申請),數據轉發層用于連接后臺服務子系統和客戶 端,根據數據屬性,將客戶端與相應后臺子服務系統的應用服務器相匹配,建立數據交互通 道,實現數據從集中到分布和從分布到集中的數據管理。
發明內容
本發明提供一種基于三層構架的數據處理系統和數據傳輸方法,平滑地實現數據 從集中到分布和從分布到集中的數據管理,實現系統性能的線性擴張。本發明公開了一種基于三層架構的數據傳輸系統,其特征在于,第一層包括若干 個客戶端,第二層包括若干個數據處理服務器,第三層包括數據庫服務器;每個所述數據處理服務器與至少一個所述客戶端連接,用于收集該客戶端的工作 狀態以及處理所述客戶端的交易數據,并將處理后的交易數據上傳至所述數據庫服務器; 以及從所述數據庫服務器讀取所述交易數據發送至所連接的所述客戶端;所述數據庫服務器與各所述數據處理服務器連接,用于存儲交易數據。本發明還公開了一種使用該數據傳輸系統進行數據傳輸的方法,其特征在于所述第一層客戶端與所述第二層的數據處理服務器建立連接;所述第二層的數據處理服務器收集所述第一層客戶端的工作狀態以及處理所述 第一層客戶端的交易數據,并將處理后的交易數據上傳至所述第三層的數據庫服務器;以 及從所述第三層的數據庫服務器讀取所述交易數據發送至所述第一層的客戶端。本發明使用軟件設計若干個數據處理服務器來完成數據的收集、數據的處理、數
3據的上傳下載,通過收集客戶端的工作狀態會獲取到是否有數據交易等信息進而處理相應 的數據,并上傳到數據庫服務器存儲,實現數據的集中管理;根據客戶端需要,將所需數據 從數據庫服務器下載到各客戶端,實現數據的分布管理。
圖1是本發明基于三層架構的數據傳輸系統框圖;圖2是本發明基于三層架構的數據傳輸系統的一個實施例示意圖;圖3是本發明基于三層架構的數據傳輸方法的一個流程圖;圖4是本發明的一個具體應用例示意圖。
具體實施例方式如圖1所示,這里的三層是邏輯上的三層,第一層包括若干個客戶端,第二層包括 若干個數據處理服務器,第三層包括若干數據庫服務器;每個數據處理服務器與至少一個客戶端連接,用于收集該客戶端的工作狀態以及 處理客戶端的交易數據;數據處理服務器將處理后的交易數據上傳至數據庫服務器;數據處理服務器從數據庫服務器讀取交易數據發送至所連接的客戶端;數據庫服務器與各數據處理服務器連接,用于存儲交易數據。本發明使用軟件設計若干個數據處理服務器來完成數據的收集、數據的處理、數 據的上傳下載和,通過收集客戶端的工作狀態會獲取到是否有數據交易等信息進而處理相 應的數據,并上傳到數據庫服務器存儲,實現數據的集中管理;根據客戶端需要,將所需數 據從數據庫服務器下載到各客戶端,實現數據的分布管理。下面是本發明的一個實施例,如圖2,有三套數據處理服務器數據處理服務器 204、數據處理服務器205和數據處理服務器206,他們分別安裝在不同的硬件服務器上(比 如計算機),為方便說明用A、B、C分別代表數據處理服務器204、數據處理服務器205和數 據處理服務器206。A所在的硬件服務器的IP地址是192. 168. 0. 1,A的端口號是001 ;B所 在的硬件服務器的IP地址是192. 168. 0. 2,B的端口號是002 ;C所在的硬件服務器的IP地 址是192. 168. 0.3,C的端口號是003 ;當系統啟動A、B、C這三套數據處理服務器后,他們會 將自己所在的IP地址和自身的端口號通知對方,例如A將其所在的IP地址192. 168. 0. 1 和自身端口號001通知B和C ;B將其所在的IP地址192. 168. 0. 2和自身端口號002通知 A和C ;C將其所在的IP地址192. 168. 0. 3和自身端口號003通知B和A ;同時還有3個客戶端客戶端201、客戶端202和客戶端203 ;客戶端可以自動向 A、B、C發送檢測信息檢測連A、B、C中的哪一個速度比較快,檢測信息包括字節數和發送時 間,客戶端會收到檢測返回信息,該檢測返回信息中包括上述的字節數和返回時間,根據返 回時間與發送時間的時間間隔的長短去判斷與所述數據處理服務器的連接速度是否一樣。 當系統啟動后,客戶端連接數據處理服務器時,客戶端會首先檢測數據庫處理服務器的速 度,選擇速度最快的那個數據處理服務器進行連接;如果檢測到A的速度最快,則連接A ;客 戶端也可以定義連接A、B、C的順序,客戶端201的定義的連接順序為A — B — C ;客戶端 202的定義的連接順序為B — A — C ;客戶端203的定義的連接順序為A — C — B ;他們將
4各自定義的連接順序存儲起來。如果檢測到連接速度一樣,則根據自身定義的連接順序連 接對于客戶端201來說,若與A連接不成功,則會自動與B連接;若與B也連接不成功,則 會與C連接。在本發明實施例中,客戶端通過自動檢測與數據處理服務器的連接速度,選擇連 接速度最快的一個進行連接;也可以通過預先存儲與數據處理服務器的連接順序,當連接 速度一樣時再以自定義方式決定與哪個數據處理服務器連接,當與第一順位的連接不成功 時,自動連接第二順位的數據處理服務器。本發明的另一個實施例,同樣參考圖2,有三套數據處理服務器數據處理服務器 204、數據處理服務器205和數據處理服務器206,他們分別安裝在不同的硬件服務器上(比 如計算機),為方便說明用A、B、C分別代表數據處理服務器204、數據處理服務器205和數 據處理服務器206。數據處理服務器由監控服務模塊、通訊服務模塊、交易數據處理服務模 塊、成本計算服務模塊和庫存計算服務模塊五個子模塊組成,各個子模塊有自己對應的端 口號。每個客戶端都有對應的唯一的ID (Identity,身份標識號碼)。系統啟動后,若A與 客戶端201連接,B與客戶端202連接,C與客戶端203連接,他們之間采用Socket方式通 訊,支持任意組網。A、B、C將其自身的服務信息(如服務名稱和數據處理服務器的端口號 等等)和各自連接的客戶端的唯一的ID上傳到數據庫服務器,某一時刻,客戶端201的工 作已經完成不需要連接A,自行切斷與A的連接,A會將這斷開連接的信息(如客戶端ID、 A的端口號和斷開連接時間等等)上傳到數據庫服務器,此時A作為后備數據處理服務器, 掃描數據庫服務器。由于某種原因,B不能正常工作,A掃描數據庫服務器發現B對應的服 務中斷,A會立即啟動繼續提供服務。收集客戶端202的工作狀態(例如是否在線、是否 已更新最新數據和是否產生交易數據等等)和處理客戶端202的交易數據,并上傳到數據 庫服務器。若A發現客戶端202沒有更新最新數據,將從數據庫服務器下載最新的數據到 客戶端202。本發明實施例中,數據處理服務器會根據掃描數據庫服務器的結果來啟動對應的 服務,當有數據處理服務器停止工作后,會啟動另外一套來保證系統的穩定性。下面介紹使用本發明公開的數據傳輸系統進行數據傳輸的方法,參考圖3,步驟如 下301、第一層客戶端與第二層的數據處理服務器建立連接;302、第二層的數據處理服務器收集第一層客戶端的工作狀態以及處理第一層客 戶端的交易數據;303、將處理后的交易數據上傳至第三層的數據庫服務器;304、從第三層的數據庫服務器讀取交易數據發送至第一層的客戶端。上述方法還可以包括步驟第一層客戶端連接第二層的其中一臺處理服務器時, 從所連接的該處理服務器獲取該層的各處理服務器的IP地址和端口號,根據預先定義的 連接順序選擇當前連接的處理服務器。客戶端通過預先存儲與數據處理服務器的連接順序,可以自定義先與哪個數據處 理服務器連接,當與第一順位的連接不成功時,自動連接第二順位的數據處理服務器。此外,還可以包括步驟第二層的數據處理服務器啟動后將自身的服務信息以及 所連接的客戶端的ID存入數據庫服務器;第二層的其他數據處理服務器掃描數據庫服務器,當在數據庫服務器中未找到自身的服務信息時進行啟動。客戶端的工作狀態可以包括是否在線、是否已更新最新數據和是否產生交易數據等等。數據處理服務器會根據掃描數據庫服務器的結果來啟動對應的服務,當有數據處 理服務器停止工作后,會啟動另外一套來保證系統的穩定性。下面是本發明的具體應用例,請參考圖4,這是一個零售行業的業務管理系統框 圖,本應用例分為4級,第一級由若干收銀機組成,收銀機包括收銀機401、收銀機402、收 銀機403和收銀機404 ;第二級由店鋪數據庫406店鋪數據庫408、數據處理服務器407和 數據處理服務器405組成;第三級由區域數據庫401和數據處理服務器409組成;第四級由 公司總部數據庫412和數據處理服務器411組成。收銀機401和收銀機402把商品類別、商品價格等信息通過數據處理服務器405 上傳至店鋪數據庫406 ;收銀機403和收銀機404把商品類別、商品價格等信息通過數據處 理服務器407上傳至店鋪數據庫408 ;店鋪數據庫406和店鋪數據庫408通過數據處理服 務器409把相應的數據信息上傳至第三級的區域數據庫410 ;區域數據庫410通過數據處 理服務器411把相應的數據信息上傳至總部數據庫412,由總部集中管理。當有新商品上架或者原有商品價格改變,把相應的信息錄入總部數據庫412中, 再把這些數據信息更新到區域數據庫410,進而更新到下一級的店鋪數據庫406和店鋪數 據庫408,再由店鋪數據庫更新到各收銀機。收銀機也可以直接在總部數據庫中查詢商品價 格等相關信息。以上的本發明實施方式,并不構成對本發明保護范圍的限定。任何在本發明的精 神和原則之內所作的修改、等同替換和改進等,均應包含在本發明的權利要求保護范圍之 內。
權利要求
一種基于三層架構的數據傳輸系統,其特征在于,第一層包括若干個客戶端,第二層包括若干個數據處理服務器,第三層包括數據庫服務器;每個所述數據處理服務器與至少一個所述客戶端連接,用于收集所述客戶端的工作狀態、以及處理所述客戶端的交易數據,并將處理后的交易數據上傳至所述數據庫服務器;以及從所述數據庫服務器讀取所述交易數據發送至所連接的所述客戶端;所述數據庫服務器與各所述數據處理服務器連接,用于存儲交易數據。
2.根據權利要求1所述的基于三層架構的數據傳輸系統,其特征在于所述數據處理 服務器還用于在啟動后將自身的IP地址和通訊端口號通知該層的其他所述數據處理服務 器;所述客戶端還用于預先存儲連接順序,以及當連接第二層的其中一臺所述數據處理服 務器時,從所連接的該數據處理服務器獲取該層的各所述數據處理服務器的IP地址和端 口號并向所述數據處理服務器發送檢測信息和接收檢測返回信息;所述檢測信息包括字節 數和發送時間;所述檢測返回信息包括所述字節數和返回時間;根據返回時間與發送時間 的時間間隔的長短去判斷與所述數據處理服務器的連接速度是否一樣,若否,則選擇速度 最快的數據處理服務器進行連接;若是,則根據所述客戶端預先存儲的連接順序進行連接。
3.根據權利要求1所述的基于三層架構的數據傳輸系統,其特征在于,所述數據處理 服務器還用于在啟動后將自身的服務信息以及所連接的客戶端的ID存入所述數據庫服務 器;以及在未啟動時掃描所述數據庫服務器,當在所述數據庫服務器中未找到自身的服務 信息時進行啟動。
4.根據權利要求1所述的基于三層架構的數據傳輸系統,所述客戶端的工作狀態包括 是否在線;是否已更新最新的數據;是否產生交易數據。
5.一種使用權利要求1所述的數據傳輸系統進行數據傳輸的方法,其特征在于所述第一層客戶端與所述第二層的數據處理服務器建立連接;所述第二層的數據處理服務器收集所述第一層客戶端的工作狀態以及處理所述第一 層客戶端的交易數據,并將處理后的交易數據上傳至所述第三層的數據庫服務器,以及從 所述第三層的數據庫服務器讀取所述交易數據發送至所述第一層的客戶端。
6.根據權利要求5所述的數據傳輸系統進行數據傳輸的方法,其特征在于,所述步驟 還包括當第二層的一個數據處理服務器啟動后,將自身的IP地址和通訊端口號通知該層 的其他所述處理服務器;所述第一層客戶端與所述第二層的數據處理服務器建立連接的步驟具體包括當第一層客戶端連接第二層的其中一臺所述處理服務器時,從所連接的該處理服務器 獲取該層的各所述處理服務器的IP地址和端口號,根據預先定義的連接順序選擇當前連 接的所述處理服務器。
7.根據權利要求5所述的數據傳輸系統進行數據傳輸的方法,其特征在于,所述步驟 還包括所述第二層的數據處理服務器啟動后將自身的服務信息以及所連接的客戶端的ID存 入所述數據庫服務器;第二層的其他數據處理服務器掃描所述數據庫服務器,當在所述數據庫服務器中未找 到自身的服務信息時進行啟動。
全文摘要
本發明公開了一種基于三層架構的數據傳輸系統,其特征在于,第一層包括若干個客戶端,第二層包括若干個數據處理服務器,第三層包括數據庫服務器;每個所述數據處理服務器與至少一個所述客戶端連接,用于收集所述客戶端的工作狀態以及處理所述客戶端的交易數據,并將處理后的交易數據上傳至所述數據庫服務器;以及從所述數據庫服務器讀取所述交易數據發送至所連接的所述客戶端;所述數據庫服務器與各所述數據處理服務器連接,用于存儲交易數據。
文檔編號H04L29/08GK101951382SQ201010296179
公開日2011年1月19日 申請日期2010年9月28日 優先權日2010年9月28日
發明者駱永基 申請人:廣州市科傳計算機科技股份有限公司