本發(fā)明實施例涉及物流業(yè)的技術(shù)領(lǐng)域,尤其涉及一種發(fā)送數(shù)據(jù)的方法、數(shù)據(jù)服務(wù)器以及中間層服務(wù)器。
背景技術(shù):
隨著物流業(yè)的快速發(fā)展,使得貨物流轉(zhuǎn)速度大大加快。集裝箱碼頭作為全球物流運轉(zhuǎn)的樞紐,對信息技術(shù)依賴度高,普遍利用了先進的動態(tài)實時碼頭操作系統(tǒng)(Terminal operation system,TOS),反映系統(tǒng)中箱信息,為碼頭計劃和控制作業(yè)等提供最優(yōu)方案。
TOS系統(tǒng)性能優(yōu)化已成為港口建設(shè)的重要組成部分,性能優(yōu)劣直接影響港口效率及競爭力的提升?,F(xiàn)有的TOS系統(tǒng),客戶端直接通過中間層服務(wù)器訪問數(shù)據(jù)庫,使得數(shù)據(jù)庫訪問量過大,導(dǎo)致客戶端的業(yè)務(wù)操作響應(yīng)慢,嚴(yán)重制約了TOS系統(tǒng)的性能提升。隨著港口業(yè)務(wù)的快速發(fā)展,需要處理的業(yè)務(wù)量也會越來越大,碼頭現(xiàn)有TOS系統(tǒng)性能已無法滿足需求。
如圖1所示,參考圖1中,在現(xiàn)有的TOS系統(tǒng)中,多采用非緩存機制進行數(shù)據(jù)庫訪問,具體步驟如下:
1)、基于港口業(yè)務(wù)需要,客戶端向中間層服務(wù)器發(fā)起相關(guān)業(yè)務(wù)請求;
2)、根據(jù)業(yè)務(wù)請求,判斷業(yè)務(wù)類型(業(yè)務(wù)調(diào)用或者查詢業(yè)務(wù))。如果是業(yè)務(wù)調(diào)用,則執(zhí)行如下步驟:
A、中間層服務(wù)器對數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)進行更新;
B、中間層服務(wù)器把更新后的業(yè)務(wù)對象數(shù)據(jù)發(fā)送到TOS系統(tǒng)的實時服務(wù)器;
C、實時服務(wù)器將更新后的業(yè)務(wù)對象數(shù)據(jù)分別發(fā)送各個客戶終端。
否則,執(zhí)行如下步驟:
A、中間層服務(wù)器將根據(jù)查詢業(yè)務(wù)請求,從數(shù)據(jù)庫中獲取相關(guān)數(shù)據(jù);
B、中間層服務(wù)器將獲取的數(shù)據(jù)反饋給客戶端。
在現(xiàn)有技術(shù)中,港口所有業(yè)務(wù)均通過中間層直接進行數(shù)據(jù)庫訪問,極大的增加了數(shù)據(jù)庫的訪問壓力,提高了對港口服務(wù)器性能的要求,而且極易造成服務(wù)器崩潰;面對港口客戶端大規(guī)模訪問數(shù)據(jù)庫時,磁盤I/O往往成為性能瓶頸,導(dǎo)致客戶端的業(yè)務(wù)響應(yīng)延遲過高,降低了客戶端的效率。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提出一種發(fā)送數(shù)據(jù)的方法、數(shù)據(jù)服務(wù)器及中間層服務(wù)器,旨在解決減少對數(shù)據(jù)庫的訪問壓力且提高客戶端訪問效率的問題。
為達此目的,本發(fā)明實施例采用以下技術(shù)方案:
第一方面,一種發(fā)送數(shù)據(jù)的方法,所述方法包括:
獲取客戶端發(fā)送的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括查詢業(yè)務(wù)請求或者操作業(yè)務(wù)請求;
若確定所述業(yè)務(wù)請求為所述查詢業(yè)務(wù)請求,則將從數(shù)據(jù)庫中獲取預(yù)先存儲的表對象,將所述表對象組裝為與所述查詢業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端;
若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給服務(wù)器,使得所述中間層服務(wù)器根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;將所述更新后 的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端。
優(yōu)選地,所述若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給中間層服務(wù)器,包括:
若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則獲取所述操作業(yè)務(wù)請求中包括的所述客戶端的信息,所述客戶端的信息包括所述客戶端的身份標(biāo)識信息以及待更新的表對象的信息;
將所述客戶端的信息發(fā)送給所述中間層服務(wù)器。
第二方面,一種發(fā)送數(shù)據(jù)的方法,所述方法包括:
接收數(shù)據(jù)服務(wù)器發(fā)送的操作業(yè)務(wù)請求;
根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;
將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給客戶端。
優(yōu)選地,所述將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給客戶端,包括:
獲取所述操作業(yè)務(wù)請求中攜帶的客戶端的身份標(biāo)識信息;
將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給與所述身份標(biāo)識信息對應(yīng)的所述客戶端。
優(yōu)選地,所述方法還包括:
初始化所述數(shù)據(jù)服務(wù)器中存儲的表對象和業(yè)務(wù)對象。
第三方面,一種數(shù)據(jù)服務(wù)器,所述數(shù)據(jù)服務(wù)器包括:
第一獲取模塊,用于獲取客戶端發(fā)送的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括查詢業(yè)務(wù)請求或者操作業(yè)務(wù)請求;
第二獲取模塊,用于若確定所述業(yè)務(wù)請求為所述查詢業(yè)務(wù)請求,則將從 數(shù)據(jù)庫中獲取預(yù)先存儲的表對象,將所述表對象組裝為與所述查詢業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端;
發(fā)送模塊,用于若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給服務(wù)器,使得所述中間層服務(wù)器根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端。
優(yōu)選地,所述發(fā)送模塊,包括:
獲取單元,用于若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則獲取所述操作業(yè)務(wù)請求中包括的所述客戶端的信息,所述客戶端的信息包括所述客戶端的身份標(biāo)識信息以及待更新的表對象的信息;
發(fā)送單元,用于將所述客戶端的信息發(fā)送給所述中間層服務(wù)器。
第四方面,一種中間層服務(wù)器,所述中間層服務(wù)器包括:
接收模塊,用于接收數(shù)據(jù)服務(wù)器發(fā)送的操作業(yè)務(wù)請求;
第一發(fā)送模塊,用于根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;
第二發(fā)送模塊,用于將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給客戶端。
優(yōu)選地,所述第二發(fā)送模塊,用于:
獲取單元,用于獲取所述操作業(yè)務(wù)請求中攜帶的客戶端的身份標(biāo)識信息;
發(fā)送單元,用于將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給與所述身份標(biāo)識信息對應(yīng)的所述客戶端。
優(yōu)選地,所述中間層服務(wù)器還包括:
初始化模塊,用于初始化所述數(shù)據(jù)服務(wù)器中存儲的表對象和業(yè)務(wù)對象。
本發(fā)明實施例通過獲取客戶端發(fā)送的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括查詢業(yè)務(wù)請求或者操作業(yè)務(wù)請求;若確定所述業(yè)務(wù)請求為所述查詢業(yè)務(wù)請求,則將從數(shù)據(jù)庫中獲取預(yù)先存儲的表對象,將所述表對象組裝為與所述查詢業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端;若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給服務(wù)器,使得所述中間層服務(wù)器根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端。本發(fā)明不同于傳統(tǒng)港口TOS操作系統(tǒng),引入一種改進的內(nèi)存數(shù)據(jù)緩存技術(shù),該技術(shù)不同于傳統(tǒng)緩存機制即數(shù)據(jù)發(fā)生變化導(dǎo)致緩存數(shù)據(jù)整個需要更新,而是針對港口客戶端頻繁操作的數(shù)據(jù)進行部分更新,速度更快;系統(tǒng)進行業(yè)務(wù)操作時,通過將緩存的數(shù)據(jù)對象化,使得數(shù)據(jù)集中的單個數(shù)據(jù)更新時,僅更新該單條數(shù)據(jù),提高緩存的命中率,減輕業(yè)務(wù)操作對數(shù)據(jù)庫的訪問壓力,特別是可以有效解決高頻度訪問模式業(yè)務(wù)系統(tǒng)的應(yīng)用壓力;同時,根據(jù)不同的業(yè)務(wù)應(yīng)用場景可調(diào)整內(nèi)存數(shù)據(jù)緩存策略,將內(nèi)存數(shù)據(jù)分為2部分,表對象和業(yè)務(wù)對象,其中表對象的更新需要觸發(fā)那類業(yè)務(wù)對象的更新,都是基于數(shù)據(jù)庫中設(shè)置的緩存策略可配置的,提高緩存命中率,顯著提高了客戶端業(yè)務(wù)操作的響應(yīng)速度。
附圖說明
圖1是現(xiàn)有技術(shù)提供的一種發(fā)送數(shù)據(jù)的系統(tǒng)架構(gòu)圖;
圖2是本發(fā)明實施例發(fā)送數(shù)據(jù)的方法第一實施例的流程示意圖;
圖3是本發(fā)明實施例發(fā)送數(shù)據(jù)的方法第二實施例的流程示意圖;
圖4是本發(fā)明實施例發(fā)送數(shù)據(jù)的方法第三實施例的流程示意圖;
圖5是本發(fā)明實施例數(shù)據(jù)服務(wù)器的功能模塊示意圖;
圖6是本發(fā)明實施例發(fā)送模塊的功能模塊示意圖;
圖7是本發(fā)明實施例中間層服務(wù)器的功能模塊示意圖;
圖8是本發(fā)明實施例第二發(fā)送模塊的功能模塊示意圖;
圖9是本發(fā)明實施例中間層服務(wù)器的另一功能模塊示意圖;
圖10是本發(fā)明實施例提供的一種發(fā)送數(shù)據(jù)的系統(tǒng)架構(gòu)圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明實施例作進一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明實施例,而非對本發(fā)明實施例的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明實施例相關(guān)的部分而非全部結(jié)構(gòu)。
實施例一
參考圖2,圖2是本發(fā)明實施例發(fā)送數(shù)據(jù)的方法第一實施例的流程示意圖。
在實施例一中,所述發(fā)送數(shù)據(jù)的方法包括:
步驟201,獲取客戶端發(fā)送的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括查詢業(yè)務(wù)請求或者操作業(yè)務(wù)請求;
具體的,本發(fā)明將原來僅具有廣播式發(fā)送功能的實時服務(wù)器改為數(shù)據(jù)服務(wù)器,數(shù)據(jù)服務(wù)器內(nèi)存設(shè)了數(shù)據(jù)緩存,包括表對象的數(shù)據(jù)緩存和業(yè)務(wù)對象的數(shù)據(jù)緩存兩部分。
步驟202,若確定所述業(yè)務(wù)請求為所述查詢業(yè)務(wù)請求,則將從數(shù)據(jù)庫中 獲取預(yù)先存儲的表對象,將所述表對象組裝為與所述查詢業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端;
具體的,數(shù)據(jù)服務(wù)器根據(jù)港口活動數(shù)據(jù)和數(shù)據(jù)庫,初始化緩存中的表對象;憑借TOS系統(tǒng)的基礎(chǔ)調(diào)用,初始化業(yè)務(wù)對象;基于港口業(yè)務(wù)需求,客戶端提交業(yè)務(wù)請求;判斷業(yè)務(wù)類型,決定處理方式。如果是查詢業(yè)務(wù),數(shù)據(jù)服務(wù)器查看緩存業(yè)務(wù)對象是否已存在,如果存在直接發(fā)回客戶端,否則進行如下步驟:
A、根據(jù)查詢業(yè)務(wù)及數(shù)據(jù)庫,緩存中的表對象進行數(shù)據(jù)組裝;
B、將組裝的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換,從而獲取相應(yīng)的業(yè)務(wù)對象;
C、反饋數(shù)據(jù)給客戶端。
步驟203,若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給中間層服務(wù)器,使得所述中間層服務(wù)器根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端。
優(yōu)選地,所述若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給中間層服務(wù)器,包括:
若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則獲取所述操作業(yè)務(wù)請求中包括的所述客戶端的信息,所述客戶端的信息包括所述客戶端的身份標(biāo)識信息以及待更新的表對象的信息;
將所述客戶端的信息發(fā)送給所述中間層服務(wù)器。
具體的,如果是業(yè)務(wù)調(diào)用,則需要中層服務(wù)器修改相應(yīng)的數(shù)據(jù)庫數(shù)據(jù),然后修改數(shù)據(jù)緩存中的對應(yīng)部分(不是全部僅是部分),將修改數(shù)據(jù)發(fā)回客 戶端。
本發(fā)明實施例通過獲取客戶端發(fā)送的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括查詢業(yè)務(wù)請求或者操作業(yè)務(wù)請求;若確定所述業(yè)務(wù)請求為所述查詢業(yè)務(wù)請求,則將從數(shù)據(jù)庫中獲取預(yù)先存儲的表對象,將所述表對象組裝為與所述查詢業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端;若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給服務(wù)器,使得所述中間層服務(wù)器根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端。本發(fā)明不同于傳統(tǒng)港口TOS操作系統(tǒng),引入一種改進的內(nèi)存數(shù)據(jù)緩存技術(shù),該技術(shù)不同于傳統(tǒng)緩存機制即數(shù)據(jù)發(fā)生變化導(dǎo)致緩存數(shù)據(jù)整個需要更新,而是針對港口客戶端頻繁操作的數(shù)據(jù)進行部分更新,速度更快;系統(tǒng)進行業(yè)務(wù)操作時,經(jīng)過內(nèi)存數(shù)據(jù)緩存命中過濾,減輕業(yè)務(wù)操作對數(shù)據(jù)庫的訪問壓力,特別是可以有效解決高頻度訪問模式業(yè)務(wù)系統(tǒng)的應(yīng)用壓力;同時,根據(jù)不同的業(yè)務(wù)應(yīng)用場景,可調(diào)整內(nèi)存數(shù)據(jù)緩存策略,提高緩存命中率,顯著提高了客戶端業(yè)務(wù)操作的響應(yīng)速度。
實施例二
參考圖3,圖3是本發(fā)明實施例發(fā)送數(shù)據(jù)的方法第二實施例的流程示意圖。
在實施例二中,所述發(fā)送數(shù)據(jù)的方法包括:
步驟301,接收數(shù)據(jù)服務(wù)器發(fā)送的操作業(yè)務(wù)請求;
步驟302,根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;
步驟303,將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給客戶端。
優(yōu)選地,所述將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給客戶端,包括:
獲取所述操作業(yè)務(wù)請求中攜帶的客戶端的身份標(biāo)識信息;
將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給與所述身份標(biāo)識信息對應(yīng)的所述客戶端。
具體的,如果是業(yè)務(wù)調(diào)用,則需要中層服務(wù)器修改相應(yīng)的數(shù)據(jù)庫數(shù)據(jù),然后修改數(shù)據(jù)緩存中的對應(yīng)部分(不是全部僅是部分),將修改數(shù)據(jù)發(fā)回客戶端。
本發(fā)明實施例通過獲取客戶端發(fā)送的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括查詢業(yè)務(wù)請求或者操作業(yè)務(wù)請求;若確定所述業(yè)務(wù)請求為所述查詢業(yè)務(wù)請求,則將從數(shù)據(jù)庫中獲取預(yù)先存儲的表對象,將所述表對象組裝為與所述查詢業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端;若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給服務(wù)器,使得所述中間層服務(wù)器根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端。本發(fā)明不同于傳統(tǒng)港口TOS操作系統(tǒng),引入一種改進的內(nèi)存數(shù)據(jù)緩存技術(shù),該技術(shù)不同于傳統(tǒng)緩存機制即數(shù)據(jù)發(fā)生變化導(dǎo)致緩存數(shù)據(jù)整個需要更新,而是針對港口客戶端頻繁操作的數(shù)據(jù)進行部分更新,速度更快;系統(tǒng)進行業(yè)務(wù)操作時,經(jīng)過內(nèi)存數(shù)據(jù)緩存命中過濾,減輕業(yè)務(wù)操作對數(shù)據(jù)庫的訪問壓力,特別是可以有效解決高頻度訪問模式業(yè)務(wù)系統(tǒng)的應(yīng)用壓力;同時,根據(jù)不同的業(yè)務(wù)應(yīng)用場景,可調(diào)整內(nèi)存數(shù)據(jù)緩存策略,提高緩存命中率,顯著提高了客戶端業(yè)務(wù)操作的響應(yīng)速度。
實施例三
參考圖4,圖4是本發(fā)明實施例發(fā)送數(shù)據(jù)的方法第三實施例的流程示意圖。
在實施例二的基礎(chǔ)上,所述方法還包括:
步驟304,初始化所述數(shù)據(jù)服務(wù)器中存儲的表對象和業(yè)務(wù)對象。
實施例四
參考圖5,圖5是本發(fā)明實施例數(shù)據(jù)服務(wù)器的功能模塊示意圖。
在實施例四中,所述數(shù)據(jù)服務(wù)器包括:
第一獲取模塊501,用于獲取客戶端發(fā)送的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括查詢業(yè)務(wù)請求或者操作業(yè)務(wù)請求;
第一發(fā)送模塊502,用于若確定所述業(yè)務(wù)請求為所述查詢業(yè)務(wù)請求,則將從數(shù)據(jù)庫中獲取預(yù)先存儲的表對象,將所述表對象組裝為與所述查詢業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端;
第二發(fā)送模塊503,用于若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給中間層服務(wù)器,使得所述中間層服務(wù)器根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端。
優(yōu)選地,參考圖6,圖6是本發(fā)明實施例發(fā)送模塊的功能模塊示意圖。
所述第二發(fā)送模塊503,包括:
獲取單元601,用于若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則獲取所述操作業(yè)務(wù)請求中包括的所述客戶端的信息,所述客戶端的信息包括所述客戶端的身份標(biāo)識信息以及待更新的表對象的信息;
發(fā)送單元602,用于將所述客戶端的信息發(fā)送給所述中間層服務(wù)器。
本發(fā)明實施例通過獲取客戶端發(fā)送的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括查詢業(yè)務(wù)請求或者操作業(yè)務(wù)請求;若確定所述業(yè)務(wù)請求為所述查詢業(yè)務(wù)請求,則將從數(shù)據(jù)庫中獲取預(yù)先存儲的表對象,將所述表對象組裝為與所述查詢業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端;若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給服務(wù)器,使得所述中間層服務(wù)器根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端。本發(fā)明不同于傳統(tǒng)港口TOS操作系統(tǒng),引入一種改進的內(nèi)存數(shù)據(jù)緩存技術(shù),該技術(shù)不同于傳統(tǒng)緩存機制即數(shù)據(jù)發(fā)生變化導(dǎo)致緩存數(shù)據(jù)整個需要更新,而是針對港口客戶端頻繁操作的數(shù)據(jù)進行部分更新,速度更快;系統(tǒng)進行業(yè)務(wù)操作時,經(jīng)過內(nèi)存數(shù)據(jù)緩存命中過濾,減輕業(yè)務(wù)操作對數(shù)據(jù)庫的訪問壓力,特別是可以有效解決高頻度訪問模式業(yè)務(wù)系統(tǒng)的應(yīng)用壓力;同時,根據(jù)不同的業(yè)務(wù)應(yīng)用場景,可調(diào)整內(nèi)存數(shù)據(jù)緩存策略,提高緩存命中率,顯著提高了客戶端業(yè)務(wù)操作的響應(yīng)速度。
實施例五
參考圖7,圖7是本發(fā)明實施例中間層服務(wù)器的功能模塊示意圖。
在實施例五中,所述中間層服務(wù)器包括:
接收模塊701,用于接收數(shù)據(jù)服務(wù)器發(fā)送的操作業(yè)務(wù)請求;
第一發(fā)送模塊702,用于根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;
第二發(fā)送模塊703,用于將所述更新后的表對象組裝為與所述操作業(yè)務(wù) 請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給客戶端。
優(yōu)選地,參考圖8,圖8是本發(fā)明實施例第二發(fā)送模塊的功能模塊示意圖。
所述第二發(fā)送模塊703,用于:
獲取單元801,用于獲取所述操作業(yè)務(wù)請求中攜帶的客戶端的身份標(biāo)識信息;
發(fā)送單元802,用于將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給與所述身份標(biāo)識信息對應(yīng)的所述客戶端。
本發(fā)明實施例通過獲取客戶端發(fā)送的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括查詢業(yè)務(wù)請求或者操作業(yè)務(wù)請求;若確定所述業(yè)務(wù)請求為所述查詢業(yè)務(wù)請求,則將從數(shù)據(jù)庫中獲取預(yù)先存儲的表對象,將所述表對象組裝為與所述查詢業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端;若確定所述業(yè)務(wù)請求為所述操作業(yè)務(wù)請求,則將所述操作業(yè)務(wù)請求發(fā)送給服務(wù)器,使得所述中間層服務(wù)器根據(jù)所述操作業(yè)務(wù)請求更新預(yù)先存儲的表對象的數(shù)據(jù),將更新后的表對象發(fā)送給所述數(shù)據(jù)庫進行存儲;將所述更新后的表對象組裝為與所述操作業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)數(shù)據(jù),并將所述業(yè)務(wù)數(shù)據(jù)發(fā)送給所述客戶端。本發(fā)明不同于傳統(tǒng)港口TOS操作系統(tǒng),引入一種改進的內(nèi)存數(shù)據(jù)緩存技術(shù),該技術(shù)不同于傳統(tǒng)緩存機制即數(shù)據(jù)發(fā)生變化導(dǎo)致緩存數(shù)據(jù)整個需要更新,而是針對港口客戶端頻繁操作的數(shù)據(jù)進行部分更新,速度更快;系統(tǒng)進行業(yè)務(wù)操作時,經(jīng)過內(nèi)存數(shù)據(jù)緩存命中過濾,減輕業(yè)務(wù)操作對數(shù)據(jù)庫的訪問壓力,特別是可以有效解決高頻度訪問模式業(yè)務(wù)系統(tǒng)的應(yīng)用壓力;同時,根據(jù)不同的業(yè)務(wù)應(yīng)用場景,可調(diào)整內(nèi)存數(shù)據(jù)緩存策略,提高緩存命中率,顯著提高了客戶端業(yè)務(wù)操作的響應(yīng)速度。
實施例六
參考圖9,圖9是本發(fā)明實施例中間層服務(wù)器的另一功能模塊示意圖。
在實施例五的基礎(chǔ)上,所述中間層服務(wù)器還包括:
初始化模塊704,用于初始化所述數(shù)據(jù)服務(wù)器中存儲的表對象和業(yè)務(wù)對象。
實施例七
參考圖10,圖10是本發(fā)明實施例提供的一種發(fā)送數(shù)據(jù)的系統(tǒng)架構(gòu)圖。
在實施例七中,基于內(nèi)存數(shù)據(jù)緩存機制,本發(fā)明提出了一種TOS操作系統(tǒng)性能優(yōu)化方法。本技術(shù)方案的基本思想為:將原來僅具有廣播式發(fā)送功能的實時服務(wù)器改為數(shù)據(jù)服務(wù)器,數(shù)據(jù)服務(wù)器內(nèi)存設(shè)了數(shù)據(jù)緩存(包括表對象和業(yè)務(wù)對象兩部分)。不同于傳統(tǒng)緩存機制,港口客戶端業(yè)務(wù)大多頻繁涉及數(shù)據(jù)的某個或若干屬性,為提升處理速度且減少工作量,對緩存中數(shù)據(jù)修改部分進行更新且精確投遞給相關(guān)客戶端,減少了數(shù)據(jù)庫訪問壓力,提升了客戶端的響應(yīng)速度。具體步驟如下:
1)、根據(jù)港口活動數(shù)據(jù)和數(shù)據(jù)庫,初始化緩存中的表對象;
2)、憑借TOS系統(tǒng)的基礎(chǔ)調(diào)用,初始化業(yè)務(wù)對象;
3)、基于港口業(yè)務(wù)需求,客戶端提交業(yè)務(wù)請求;
4)、判斷業(yè)務(wù)類型,決定處理方式。如果是查詢業(yè)務(wù),數(shù)據(jù)服務(wù)器查看緩存業(yè)務(wù)對象是否已存在,如果存在直接發(fā)回客戶端,否則進行如下步驟:
A、根據(jù)查詢業(yè)務(wù)及數(shù)據(jù)庫,緩存中的表對象進行數(shù)據(jù)組裝;
B、將組裝的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換,從而獲取相應(yīng)的業(yè)務(wù)對象;
C、反饋數(shù)據(jù)給客戶端。
如果是業(yè)務(wù)調(diào)用,則需要中層服務(wù)器修改相應(yīng)的數(shù)據(jù)庫數(shù)據(jù),然后修改數(shù)據(jù)緩存中的對應(yīng)部分(不是全部僅是部分),將修改數(shù)據(jù)發(fā)回客戶端。
以上結(jié)合具體實施例描述了本發(fā)明實施例的技術(shù)原理。這些描述只是為了解釋本發(fā)明實施例的原理,而不能以任何方式解釋為對本發(fā)明實施例保護范圍的限制?;诖颂幍慕忉專绢I(lǐng)域的技術(shù)人員不需要付出創(chuàng)造性的勞動即可聯(lián)想到本發(fā)明實施例的其它具體實施方式,這些方式都將落入本發(fā)明實施例的保護范圍之內(nèi)。