一種多客戶端數(shù)據(jù)修改消息精確推送方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息技術(shù)領(lǐng)域,尤其涉及一種多客戶端數(shù)據(jù)修改消息精確推送方法。
【背景技術(shù)】
[0002]隨著計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展,信息化成為企業(yè)統(tǒng)籌資源,提升競爭力的一項基本手段。各種各樣的信息系統(tǒng)應(yīng)運而生。在企業(yè)內(nèi)部網(wǎng)中,信息系統(tǒng)多采用客戶機/服務(wù)器的形式存在?!翱蛻舳?數(shù)據(jù)庫”形式的信息系統(tǒng)是最簡單也是最常見的信息系統(tǒng)。在信息系統(tǒng)中,往往分布著多個客戶端均可訪問數(shù)據(jù)庫,對信息進行加工處理。這樣在其中一個客戶端對共享數(shù)據(jù)庫進行修改后,其他的在線客戶端的顯示視圖也必須同步該“修改”所產(chǎn)生的影響。同時信息系統(tǒng)中多采用權(quán)限管理和多視圖的模式,不同權(quán)限的用戶登錄客戶端,可見的視圖的數(shù)量和形式可能不同,即客戶端存在運行時的差異性。在客戶端間進行數(shù)據(jù)同步需要考慮運行時的差異性,例如A客戶端在視圖a修改了數(shù)據(jù),B客戶端顯示的視圖a,C客戶端顯示視圖b的情形。客戶端A進行的“修改”需要同步到B客戶端,但是C客戶端則無需同步。
[0003]目前已經(jīng)存在采用客戶端定時刷新的方式,即每個客戶端間隔一個固定的時間長度,向數(shù)據(jù)庫服務(wù)器查詢相關(guān)數(shù)據(jù),并刷新視圖內(nèi)容,達到客戶端間的視圖同步目的。該種數(shù)據(jù)同步方式具有簡單易行,對客戶端開發(fā)要求低的特點,但是定時刷新的方式對于可編輯的視圖,對輸入存在干擾的情況,同時頻繁地訪問數(shù)據(jù)庫服務(wù)器,占用了大量的系統(tǒng)資源。出于節(jié)約系統(tǒng)資源的需求,已有采用客戶端/服務(wù)器架構(gòu)的數(shù)據(jù)同步方法。如公開專利“一種設(shè)備監(jiān)控系統(tǒng)中客戶端之間數(shù)據(jù)同步的方法(CN 101227265)”采用了客戶端與通信服務(wù)器交互的網(wǎng)絡(luò)結(jié)構(gòu),通過記錄某一客戶端數(shù)據(jù)變更字段(或某條數(shù)據(jù)記錄),將記錄發(fā)送到通信服務(wù)器,再轉(zhuǎn)發(fā)到其他客戶端,客戶端接受到同步消息后,刷新所有同步對象的方式達到同步各個客戶端數(shù)據(jù)的方法。該方法適用于設(shè)備監(jiān)控領(lǐng)域,減少了訪問數(shù)據(jù)庫的次數(shù),降低了系統(tǒng)資源消耗,但是在客戶端使用了復(fù)雜的層級式對象更新的方法,增加了客戶端開發(fā)的難度,同時,在該方法中,同步消息將發(fā)送到所有客戶端,客戶端接受到同步消息后,刷新所有的同步對象,未考慮客戶端運行狀態(tài)的差異性即視圖同步需求,造成了客戶端不必要的數(shù)據(jù)刷新。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題在于針對現(xiàn)有技術(shù)中的缺陷,提供一種多客戶端數(shù)據(jù)修改消息精確推送方法。
[0005]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種多客戶端數(shù)據(jù)修改消息精確推送方法,包括:
部署在每個客戶端中的客戶智能體和部署在服務(wù)器上的中央智能體;
所述客戶智能體包括:
消息發(fā)送模塊,用于向中央智能體發(fā)送消息; 消息監(jiān)聽模塊,用于監(jiān)聽中央智能體發(fā)送的消息;
消息識別模塊,用于解析識別各種消息類型;所述消息類型包括狀態(tài)消息和數(shù)據(jù)變更消息;
視圖標記,用于存儲當前客戶端顯示的視圖標記;
視圖切換接口,用于接收客戶端的通知更新智能體中的視圖標記;
視圖更新接口,用于連接信息系統(tǒng)客戶端中當前視圖的視圖更新方法;
所述中央智能體包括:
發(fā)送模塊,用于負責向客戶端智能體進行數(shù)據(jù)推送;
監(jiān)聽模塊,用于負責監(jiān)聽客戶端智能體發(fā)送的消息;
識別模塊,用于負責解析、識別各種類型的消息;
客戶端管理模塊,用于負責存儲和維護在線的客戶端智能體列表,該列表中包含所有運行的客戶端中的智能體;
篩選器,用于負責對客戶端刷新需求進行篩選,以實現(xiàn)精確推送;
具體步驟為:
1)中央智能體啟動,清空在線客戶智能體列表,開啟消息監(jiān)聽功能;所述中央智能體部署在服務(wù)器上;
2)信息系統(tǒng)客戶端啟動的同時,載入客戶智能體,客戶智能體的消息監(jiān)聽模塊開始工作;
若用戶尚未切換視圖,則在信息系統(tǒng)客戶端載入默認視圖;
若用戶在信息系統(tǒng)客戶端中切換視圖時,建立當前視圖的刷新方法與客戶智能體的切換接口的鏈接;
調(diào)用客戶智能體的視圖切換接口,獲取信息系統(tǒng)客戶端正在顯示的視圖標記符更新客戶智能體的視圖標記;
3)若客戶智能體的視圖標記符發(fā)生變化,客戶智能體向中央智能體發(fā)送狀態(tài)消息,所述狀態(tài)消息的內(nèi)容包括:消息類型標志、客戶智能體標記符和視圖標記;
4)信息系統(tǒng)客戶端中,用戶對視圖中的數(shù)據(jù)進行編輯操作并提交到數(shù)據(jù)庫后,信息系統(tǒng)客戶端需調(diào)用客戶智能體中的發(fā)送模塊向中央智能體發(fā)送數(shù)據(jù)變更消息,所述數(shù)據(jù)變更消息的內(nèi)容包括:消息類型標志、客戶智能體標記符和受影響視圖標記列表;
5)中央智能體在接收到客戶智能體發(fā)送的消息后,根據(jù)消息類型標志,對消息進行識另Ij,確認消息類型;
若消息為狀態(tài)消息,若在線客戶智能體列表中不存在該消息中的客戶智能體標記符,則加入該客戶智能體標記符和視圖標記;若在線客戶智能體列表中已經(jīng)存在該消息中的客戶智能體標記符,則更新該智能體的視圖標記;
若消息為數(shù)據(jù)變更消息,則利用篩選器實現(xiàn)消息精確推送:
具體步驟如下:
a)從數(shù)據(jù)變更消息中獲取發(fā)送該消息的智能體標記,以及受影響的視圖標記符列表;
b)遍歷在線客戶智能體列表的每個客戶智能體(除數(shù)據(jù)變更消息的發(fā)送者外),判斷客戶智能體的當前視圖標記是否在受影響的視圖標記符列表中;若是,則發(fā)送視圖同步消息到該客戶智能體;所述視圖同步消息的內(nèi)容包括:消息類型標志、中央智能體標記符和需要同步的視圖標記;
6)客戶智能體的消息監(jiān)聽模塊,在接收到中央智能體發(fā)送的消息后,根據(jù)消息類型標志,對消息進行識別,確認消息類型。若消息為視圖同步消息,則調(diào)用客戶智能體的視圖更新接口,實現(xiàn)視圖同步。
[0006]本發(fā)明產(chǎn)生的有益效果是:本發(fā)明的多客戶端數(shù)據(jù)修改消息精確推送方法,能夠?qū)崿F(xiàn)數(shù)據(jù)同步消息的精準推送以滿足多客戶端的差異化數(shù)據(jù)同步需求;通過視圖同步消息的精確推送,排除不必要消息發(fā)送,并保證有同步需求的客戶端得到實時同步,既減少網(wǎng)絡(luò)信道資源占用又排除不必要的數(shù)據(jù)庫查詢請求降低數(shù)據(jù)庫資源消耗??蛻糁悄荏w和中央智能體采用了胖服務(wù)器/瘦客戶端的模式,將決策過程和規(guī)則集中由中央智能體進行處理,適合于服務(wù)器功能較強而客戶機功能較弱的場合。
[0007]
【附圖說明】
[0008]下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:
圖1為本發(fā)明實施例中客戶智能體的內(nèi)部結(jié)構(gòu)圖。
[0009]圖2為本發(fā)明實施例中中央智能體的內(nèi)部結(jié)構(gòu)圖。
[0010]圖3為本發(fā)明的一個實例的結(jié)構(gòu)示意圖。
【具體實施方式】
[0011]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0012]—種多客戶端數(shù)據(jù)修改消息精確推送方法,包括:
部署在每個客戶端中的客戶智能體和部署在服務(wù)器上的中央智能體;
客戶端中部署的智能體(簡稱客戶智能體)的內(nèi)部結(jié)構(gòu)如圖1所示,客戶智能體包括: 消息發(fā)送模塊,用于向中央智能體發(fā)送消息;
消息監(jiān)聽模塊,用于監(jiān)聽中央智能體發(fā)送的消息;
消息識別模塊,用于解析識別各種消息類型;所述消息類型包括狀態(tài)消息和數(shù)據(jù)變更消息;
視圖標記,用于存儲當前客戶端顯示的視圖標記;
視圖切換接口,用于接收客戶端的通知更新智能體中的視圖標記;
視圖更新接口,用于連接信息系統(tǒng)客戶端中當前視圖的視圖更新方法;
中央智能體的內(nèi)部結(jié)構(gòu)如圖2所示,中央智能體包括:
發(fā)送模塊,用于負責向客戶端智能體進行數(shù)據(jù)推送;
監(jiān)聽模塊,用于負責監(jiān)聽客戶端智能體發(fā)送的消息;
識別模塊,用于負責解析、識別各種類型的消息;
客戶端管理模塊,用于負責存儲和維護在線的客戶端智能體列表,該列表中包含所有運行的客戶端中的智能體;
篩選器,用于負責對客戶端刷新需求進行篩選,以實現(xiàn)精確推送; 具體步驟為:
1)中央智能體啟動,清空在線客戶智能體列表,開啟消息監(jiān)聽功能;所述中央智能體部署在服務(wù)器上;
2)信息系統(tǒng)客戶端啟動的同時,載入客戶智能體,客戶智能體的消息監(jiān)聽模塊開始工作;
若用戶尚未切換視圖,則在