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