專利名稱:一種客戶端與服務(wù)器端雙向同步的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)傳輸技術(shù),更具體地,本發(fā)明涉及一種客戶端與服務(wù)器端雙向同步的方法及系統(tǒng)。
背景技術(shù):
在傳統(tǒng)網(wǎng)絡(luò)應(yīng)用程序的C/S架構(gòu)中,客戶端(C)作為服務(wù)器端(S)的數(shù)據(jù)展示和操作端它通過(guò)網(wǎng)絡(luò)連接到服務(wù)器端(S),然后讀取相應(yīng)的數(shù)據(jù)(0)進(jìn)行顯示和操作。顯示時(shí), 客戶端需要定期的刷新(重新讀取服務(wù)器的最新數(shù)據(jù))當(dāng)前顯示的數(shù)據(jù),以保持與服務(wù)器上的數(shù)據(jù)一致。在操作時(shí),需要把操作命令發(fā)送到服務(wù)器端,然后在服務(wù)器上執(zhí)行命令并根據(jù)返回結(jié)果更新客戶端數(shù)據(jù)。這種傳統(tǒng)的客戶端與服務(wù)器端的數(shù)據(jù)同步有以下一些缺點(diǎn)
1.當(dāng)系統(tǒng)中有多個(gè)客戶端(C)的時(shí)候,服務(wù)器上的數(shù)據(jù)對(duì)象更新可能比較頻繁,這種情況下,由于客戶端是定期刷新數(shù)據(jù),客戶端與服務(wù)器端的數(shù)據(jù)會(huì)有延遲,會(huì)導(dǎo)致一些客戶端正在操作的數(shù)據(jù)在服務(wù)器端已經(jīng)被修改了,從而導(dǎo)致操作失敗。2.由于客戶端是通過(guò)定期刷新服務(wù)器來(lái)更新本地?cái)?shù)據(jù)的,而無(wú)論服務(wù)器端數(shù)據(jù)是否有更新,即客戶端的數(shù)據(jù)更新是被動(dòng)的。當(dāng)系統(tǒng)中有大量的客戶端時(shí),就會(huì)降低服務(wù)器的效率,浪費(fèi)服務(wù)器資源。在一些大型的軟件系統(tǒng)中,由于業(yè)務(wù)邏輯復(fù)雜,系統(tǒng)中抽象出來(lái)的業(yè)務(wù)邏輯對(duì)象數(shù)量眾多,且對(duì)象之間常?;ハ嚓P(guān)聯(lián)。在傳統(tǒng)的三層軟件架構(gòu)中,客戶端的處理請(qǐng)求會(huì)提交給服務(wù)器,服務(wù)器負(fù)責(zé)處理請(qǐng)求,服務(wù)器在處理請(qǐng)求的過(guò)程中若需要獲取某對(duì)象的數(shù)據(jù)就會(huì)從數(shù)據(jù)庫(kù)中讀取生成對(duì)象發(fā)送到客戶端,若要修改某對(duì)象則在修改后需要在數(shù)據(jù)庫(kù)中更新此對(duì)象的數(shù)據(jù)。在有多個(gè)客戶端的時(shí)候,客戶端與服務(wù)器端的數(shù)據(jù)同步就是一個(gè)問(wèn)題。傳統(tǒng)的是通過(guò)客戶端定時(shí)刷新服務(wù)器數(shù)據(jù),以達(dá)到數(shù)據(jù)同步的目的,是一種被動(dòng)式的數(shù)據(jù)同步方式。若刷新頻率高,客戶端與服務(wù)器數(shù)據(jù)能得到較好的同步,但由于刷新頻率高,而且很多時(shí)候服務(wù)器的對(duì)象并沒(méi)有更新,會(huì)降低服務(wù)器的處理效率和性能,浪費(fèi)服務(wù)器資源。若刷新頻率低,則客戶端與服務(wù)器端的數(shù)據(jù)同步效果不好。因此當(dāng)前需要一種新的客戶端與服務(wù)器端雙向同步的技術(shù)方案來(lái)解決上述問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種客戶端與服務(wù)器端雙向同步的方法及系統(tǒng),解決了當(dāng)前客戶端與服務(wù)器端同步時(shí),服務(wù)器端負(fù)載過(guò)大的問(wèn)題。為了解決上述問(wèn)題,本發(fā)明提供一種客戶端與服務(wù)器端雙向同步的系統(tǒng),包括一個(gè)或多個(gè)應(yīng)用程序客戶端和應(yīng)用程序服務(wù)器端,所述應(yīng)用程序客戶端,用于向應(yīng)用程序服務(wù)器端發(fā)送業(yè)務(wù)請(qǐng)求;所述應(yīng)用程序服務(wù)器端還包括請(qǐng)求接收模塊、對(duì)象訂閱模塊、 對(duì)象發(fā)布模塊和對(duì)象更新檢測(cè)模塊,其中,
所述請(qǐng)求接收模塊,用于接收所述業(yè)務(wù)請(qǐng)求,并對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行解析、分發(fā);所述對(duì)象訂閱模塊,用于維護(hù)一應(yīng)用程序客戶端信息及其訂閱的對(duì)象的信息的表格, 該表格記錄了每個(gè)應(yīng)用程序客戶端需要進(jìn)行數(shù)據(jù)同步的相關(guān)信息;
所述對(duì)象更新檢測(cè)模塊,用于檢測(cè)若一應(yīng)用程序客戶端修改了一對(duì)象的數(shù)據(jù),若是,則將修改后的對(duì)象發(fā)送給對(duì)象發(fā)布模塊進(jìn)行處理;
所述對(duì)象發(fā)布模塊,用于接收所述對(duì)象更新檢測(cè)模塊發(fā)送的修改后的對(duì)象,根據(jù)該對(duì)象的信息對(duì)所述對(duì)象訂閱模塊維護(hù)的表格中查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則將修改后的該對(duì)象的數(shù)據(jù)發(fā)送到相應(yīng)應(yīng)用程序客戶端,保持客戶端與服務(wù)器端的數(shù)據(jù)同步。優(yōu)選地,所述對(duì)象訂閱模塊維護(hù)的所述表格,包括應(yīng)用程序客戶端名稱、應(yīng)用程序客戶端地址、應(yīng)用程序客戶端通信端口及其訂閱的對(duì)象列表的信息;
所述對(duì)象更新檢測(cè)模塊,還用于檢測(cè)應(yīng)用程序服務(wù)器端中對(duì)象的數(shù)據(jù)是否發(fā)生變化, 若是,則將修改后的對(duì)象發(fā)送給對(duì)象發(fā)布模塊進(jìn)行處理;
所述對(duì)象發(fā)布模塊,用于接收所述對(duì)象更新檢測(cè)模塊發(fā)送的修改后的對(duì)象,根據(jù)該對(duì)象的名稱對(duì)所述對(duì)象訂閱模塊維護(hù)的表格中查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則對(duì)更新后對(duì)象的數(shù)據(jù)進(jìn)行封裝后,將封裝后的對(duì)象的數(shù)據(jù)根據(jù)應(yīng)用程序客戶端的地址和通信端口,發(fā)送到相應(yīng)應(yīng)用程序客戶端。優(yōu)選地,所述應(yīng)用程序服務(wù)器端還包括業(yè)務(wù)邏輯處理模塊和業(yè)務(wù)邏輯對(duì)象管理模塊,其中,
所述業(yè)務(wù)邏輯處理模塊,用于接收所述請(qǐng)求接收模塊發(fā)送的所述業(yè)務(wù)請(qǐng)求,判斷如果在進(jìn)行業(yè)務(wù)處理的過(guò)程中更新或刪除了應(yīng)用程序服務(wù)器端中的某對(duì)象,則通知其它模塊有對(duì)象進(jìn)行了更新,在處理完一業(yè)務(wù)請(qǐng)求后會(huì)將處理結(jié)果返回到所述請(qǐng)求接收模塊;
所述業(yè)務(wù)邏輯對(duì)象管理模塊,用于管理應(yīng)用程序服務(wù)器端上所有的業(yè)務(wù)邏輯對(duì)象,包括對(duì)對(duì)象的查詢、更新和刪除操作。優(yōu)選地,還包括數(shù)據(jù)庫(kù)端,該數(shù)據(jù)庫(kù)端包括數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控程序單元和數(shù)據(jù)庫(kù)單元,其中,
所述數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控程序單元,用于監(jiān)控所述數(shù)據(jù)庫(kù)單元中的相應(yīng)數(shù)據(jù)表,該數(shù)據(jù)表記錄了由應(yīng)用程序客戶端直接對(duì)數(shù)據(jù)庫(kù)單元中的基礎(chǔ)數(shù)據(jù)進(jìn)行操作后數(shù)據(jù)的變化情況,根據(jù)變化情況生成基礎(chǔ)數(shù)據(jù)更新請(qǐng)求后,發(fā)送到服務(wù)器端的基礎(chǔ)數(shù)據(jù)更新模塊; 所述數(shù)據(jù)庫(kù)單元,用于存儲(chǔ)數(shù)據(jù);
所述應(yīng)用程序服務(wù)器端進(jìn)一步包括數(shù)據(jù)庫(kù)操作模塊和基礎(chǔ)數(shù)據(jù)更新模塊,其中, 所述數(shù)據(jù)庫(kù)操作模塊,用于與所述數(shù)據(jù)庫(kù)單元進(jìn)行交互,在應(yīng)用程序服務(wù)器端啟動(dòng)時(shí)從所述數(shù)據(jù)庫(kù)單元中讀取需要的數(shù)據(jù)后,構(gòu)造成各種業(yè)務(wù)邏輯對(duì)象;判斷若應(yīng)用程序服務(wù)器端對(duì)業(yè)務(wù)邏輯對(duì)象進(jìn)行修改時(shí),將修改后的數(shù)據(jù)寫(xiě)入所述數(shù)據(jù)庫(kù)單元,以保持?jǐn)?shù)據(jù)的一致性;
所述基礎(chǔ)數(shù)據(jù)更新模塊,用于接收所述數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控程序單元發(fā)送的基礎(chǔ)數(shù)據(jù)更新請(qǐng)求后,根據(jù)該更新請(qǐng)求來(lái)更新相應(yīng)的業(yè)務(wù)邏輯對(duì)象。以及提供了一種客戶端與服務(wù)器端雙向同步的方法,包括
應(yīng)用程序服務(wù)器端接收到應(yīng)用程序客戶端發(fā)送的業(yè)務(wù)請(qǐng)求后,對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行解析; 所述應(yīng)用程序服務(wù)器端判斷若一應(yīng)用程序客戶端修改了一對(duì)象的數(shù)據(jù)后,則根據(jù)應(yīng)用程序客戶端信息及其訂閱的對(duì)象的信息的表格中的信息,查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則將修改后的該對(duì)象的數(shù)據(jù)發(fā)送到相應(yīng)應(yīng)用程序客戶端,保持客戶端與服務(wù)器端的數(shù)據(jù)同步。優(yōu)選地,所述應(yīng)用程序客戶端信息及其訂閱的對(duì)象的信息的表格,包括應(yīng)用程序客戶端名稱、應(yīng)用程序客戶端地址、應(yīng)用程序客戶端通信端口及其訂閱的對(duì)象列表的信息。優(yōu)選地,還包括所述應(yīng)用程序服務(wù)器端檢測(cè)對(duì)象的數(shù)據(jù)是否發(fā)生變化,若是,則根據(jù)該對(duì)象的名稱在所述表格中查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則對(duì)更新后對(duì)象的數(shù)據(jù)進(jìn)行封裝后,將封裝后的對(duì)象的數(shù)據(jù)根據(jù)應(yīng)用程序客戶端的地址和通信端口,發(fā)送到相應(yīng)應(yīng)用程序客戶端。優(yōu)選地,還包括所述應(yīng)用程序服務(wù)器端接收到所述業(yè)務(wù)請(qǐng)求后,判斷如果在進(jìn)行業(yè)務(wù)處理的過(guò)程中更新或刪除了應(yīng)用程序服務(wù)器端中的某對(duì)象,則對(duì)所述表格進(jìn)行相應(yīng)更新,并記錄對(duì)該對(duì)象的查詢、更新和刪除操作。優(yōu)選地,進(jìn)一步包括所述應(yīng)用程序服務(wù)器端在啟動(dòng)時(shí)從數(shù)據(jù)庫(kù)中讀取需要的數(shù)據(jù)后,構(gòu)造成各種業(yè)務(wù)邏輯對(duì)象;判斷若修改了業(yè)務(wù)邏輯對(duì)象,并將修改后的數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù),以保持?jǐn)?shù)據(jù)的一致性。優(yōu)選地,進(jìn)一步包括所述應(yīng)用程序服務(wù)器端監(jiān)控?cái)?shù)據(jù)庫(kù)中的相應(yīng)數(shù)據(jù)表,該數(shù)據(jù)表記錄了由應(yīng)用程序客戶端直接對(duì)數(shù)據(jù)庫(kù)中的基礎(chǔ)數(shù)據(jù)進(jìn)行操作后數(shù)據(jù)的變化情況,根據(jù)該變化情況更新相應(yīng)的業(yè)務(wù)邏輯對(duì)象。與現(xiàn)有技術(shù)相比,應(yīng)用本發(fā)明,避免了客戶端定時(shí)向服務(wù)器端進(jìn)行刷新操作,減輕了服務(wù)器端負(fù)擔(dān),提高了服務(wù)器端的處理效率和性能;而且服務(wù)器端是主動(dòng)發(fā)起的數(shù)據(jù)同步的請(qǐng)求,當(dāng)對(duì)象發(fā)生變化后服務(wù)器端會(huì)在第一時(shí)間把更新的數(shù)據(jù)發(fā)送給各個(gè)客戶端,使客戶端與服務(wù)器端的數(shù)據(jù)同步效果得到進(jìn)一步提升。
圖1是本發(fā)明的客戶端與服務(wù)器端雙向同步的系統(tǒng)示意圖; 圖2是本發(fā)明的客戶端與服務(wù)器端雙向同步的方法的流程圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步說(shuō)明。本發(fā)明為了提高應(yīng)用服務(wù)器處理業(yè)務(wù)邏輯的效率和性能,通常在應(yīng)用服務(wù)器啟動(dòng)時(shí)就會(huì)預(yù)先把系統(tǒng)要處理的各種業(yè)務(wù)邏輯對(duì)象的數(shù)據(jù)從數(shù)據(jù)庫(kù)中讀到服務(wù)器來(lái),并生成相應(yīng)的服務(wù)器對(duì)象,每一個(gè)對(duì)象(即使是不同類的對(duì)象)都擁有唯一的名稱(ID),在客戶端發(fā)送到服務(wù)器端的請(qǐng)求中會(huì)有一個(gè)訂閱標(biāo)識(shí)位,此標(biāo)識(shí)位表示客戶端是否需要對(duì)這個(gè)請(qǐng)求中涉及到的對(duì)象進(jìn)行數(shù)據(jù)同步。若需要同步,則服務(wù)器會(huì)記錄發(fā)送此請(qǐng)求的客戶端的IP地址、端口、版本號(hào)、訂閱的對(duì)象ID號(hào)等信息,這些記錄在服務(wù)器端形成一個(gè)列表。當(dāng)服務(wù)器發(fā)現(xiàn)某個(gè)對(duì)象更新時(shí),就會(huì)去查找此列表,會(huì)給訂閱了這些對(duì)象同步請(qǐng)求的客戶端發(fā)送更新了的對(duì)象數(shù)據(jù)(客戶端需要?jiǎng)?chuàng)建一個(gè)端口監(jiān)聽(tīng)來(lái)自服務(wù)器端的對(duì)象更新消息)。從而實(shí)現(xiàn)了客戶端與服務(wù)器端數(shù)據(jù)的同步。這種數(shù)據(jù)同步的方案是由服務(wù)器作為主動(dòng)發(fā)起方,是一種主動(dòng)式的數(shù)據(jù)同步方式。客戶端需要定時(shí)的發(fā)送心跳包以使服務(wù)器知道客戶端的活動(dòng)狀態(tài)。如圖1所示,一種客戶端與服務(wù)器端雙向同步的系統(tǒng),包括一個(gè)或多個(gè)應(yīng)用程序客戶端、應(yīng)用程序服務(wù)器端和數(shù)據(jù)庫(kù)端,
所述應(yīng)用程序客戶端,用于向應(yīng)用程序服務(wù)器端發(fā)送業(yè)務(wù)請(qǐng)求;所述應(yīng)用程序服務(wù)器端還包括請(qǐng)求接收模塊、對(duì)象訂閱模塊、對(duì)象發(fā)布模塊、對(duì)象更新檢測(cè)模塊、業(yè)務(wù)邏輯處理模塊和業(yè)務(wù)邏輯對(duì)象管理模塊、數(shù)據(jù)庫(kù)操作模塊和基礎(chǔ)數(shù)據(jù)更新模塊,其中, 所述請(qǐng)求接收模塊,用于接收所述業(yè)務(wù)請(qǐng)求,并對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行解析、分發(fā); 所述對(duì)象訂閱模塊,用于維護(hù)一應(yīng)用程序客戶端信息及其訂閱的對(duì)象的信息的表格, 該表格記錄了每個(gè)應(yīng)用程序客戶端需要進(jìn)行數(shù)據(jù)同步的相關(guān)信息;
所述對(duì)象更新檢測(cè)模塊,用于檢測(cè)若一應(yīng)用程序客戶端修改了一對(duì)象的數(shù)據(jù),若是,則將修改后的對(duì)象發(fā)送給對(duì)象發(fā)布模塊進(jìn)行處理;
所述對(duì)象發(fā)布模塊,用于接收所述對(duì)象更新檢測(cè)模塊發(fā)送的修改后的對(duì)象,根據(jù)該對(duì)象的信息對(duì)所述對(duì)象訂閱模塊維護(hù)的表格中查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則將修改后的該對(duì)象的數(shù)據(jù)發(fā)送到相應(yīng)應(yīng)用程序客戶端,保持客戶端與服務(wù)器端的數(shù)據(jù)同步;
所述業(yè)務(wù)邏輯處理模塊,用于接收所述請(qǐng)求接收模塊發(fā)送的所述業(yè)務(wù)請(qǐng)求,判斷如果在進(jìn)行業(yè)務(wù)處理的過(guò)程中更新或刪除了應(yīng)用程序服務(wù)器端中的某對(duì)象,則通知其它模塊有對(duì)象進(jìn)行了更新,在處理完一業(yè)務(wù)請(qǐng)求后會(huì)將處理結(jié)果返回到所述請(qǐng)求接收模塊;
所述業(yè)務(wù)邏輯對(duì)象管理模塊,用于管理應(yīng)用程序服務(wù)器端上所有的業(yè)務(wù)邏輯對(duì)象,包括對(duì)對(duì)象的查詢、更新和刪除操作;
所述數(shù)據(jù)庫(kù)操作模塊,用于與所述數(shù)據(jù)庫(kù)單元進(jìn)行交互,在應(yīng)用程序服務(wù)器端啟動(dòng)時(shí)從所述數(shù)據(jù)庫(kù)單元中讀取需要的數(shù)據(jù)后,構(gòu)造成各種業(yè)務(wù)邏輯對(duì)象;判斷若應(yīng)用程序服務(wù)器端對(duì)業(yè)務(wù)邏輯對(duì)象進(jìn)行修改時(shí),將修改后的數(shù)據(jù)寫(xiě)入所述數(shù)據(jù)庫(kù)單元,以保持?jǐn)?shù)據(jù)的一致性;
所述基礎(chǔ)數(shù)據(jù)更新模塊,用于接收所述數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控程序單元發(fā)送的基礎(chǔ)數(shù)據(jù)更新請(qǐng)求后,根據(jù)該更新請(qǐng)求來(lái)更新相應(yīng)的業(yè)務(wù)邏輯對(duì)象。所述對(duì)象訂閱模塊維護(hù)的所述表格,包括應(yīng)用程序客戶端名稱、應(yīng)用程序客戶端地址、應(yīng)用程序客戶端通信端口及其訂閱的對(duì)象列表的信息。如表1所示
權(quán)利要求
1.一種客戶端與服務(wù)器端雙向同步的系統(tǒng),包括一個(gè)或多個(gè)應(yīng)用程序客戶端和應(yīng)用程序服務(wù)器端,其特征在于,所述應(yīng)用程序客戶端,用于向應(yīng)用程序服務(wù)器端發(fā)送業(yè)務(wù)請(qǐng)求;所述應(yīng)用程序服務(wù)器端還包括請(qǐng)求接收模塊、對(duì)象訂閱模塊、對(duì)象發(fā)布模塊和對(duì)象更新檢測(cè)模塊,其中, 所述請(qǐng)求接收模塊,用于接收所述業(yè)務(wù)請(qǐng)求,并對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行解析、分發(fā); 所述對(duì)象訂閱模塊,用于維護(hù)一應(yīng)用程序客戶端信息及其訂閱的對(duì)象的信息的表格, 該表格記錄了每個(gè)應(yīng)用程序客戶端需要進(jìn)行數(shù)據(jù)同步的相關(guān)信息;所述對(duì)象更新檢測(cè)模塊,用于檢測(cè)若一應(yīng)用程序客戶端修改了一對(duì)象的數(shù)據(jù),若是,則將修改后的對(duì)象發(fā)送給對(duì)象發(fā)布模塊進(jìn)行處理;所述對(duì)象發(fā)布模塊,用于接收所述對(duì)象更新檢測(cè)模塊發(fā)送的修改后的對(duì)象,根據(jù)該對(duì)象的信息對(duì)所述對(duì)象訂閱模塊維護(hù)的表格中查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則將修改后的該對(duì)象的數(shù)據(jù)發(fā)送到相應(yīng)應(yīng)用程序客戶端,保持客戶端與服務(wù)器端的數(shù)據(jù)同步。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述對(duì)象訂閱模塊維護(hù)的所述表格,包括應(yīng)用程序客戶端名稱、應(yīng)用程序客戶端地址、應(yīng)用程序客戶端通信端口及其訂閱的對(duì)象列表的信息;所述對(duì)象更新檢測(cè)模塊,還用于檢測(cè)應(yīng)用程序服務(wù)器端中對(duì)象的數(shù)據(jù)是否發(fā)生變化, 若是,則將修改后的對(duì)象發(fā)送給對(duì)象發(fā)布模塊進(jìn)行處理;所述對(duì)象發(fā)布模塊,用于接收所述對(duì)象更新檢測(cè)模塊發(fā)送的修改后的對(duì)象,根據(jù)該對(duì)象的名稱對(duì)所述對(duì)象訂閱模塊維護(hù)的表格中查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則對(duì)更新后對(duì)象的數(shù)據(jù)進(jìn)行封裝后,將封裝后的對(duì)象的數(shù)據(jù)根據(jù)應(yīng)用程序客戶端的地址和通信端口,發(fā)送到相應(yīng)應(yīng)用程序客戶端。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述應(yīng)用程序服務(wù)器端還包括業(yè)務(wù)邏輯處理模塊和業(yè)務(wù)邏輯對(duì)象管理模塊,其中, 所述業(yè)務(wù)邏輯處理模塊,用于接收所述請(qǐng)求接收模塊發(fā)送的所述業(yè)務(wù)請(qǐng)求,判斷如果在進(jìn)行業(yè)務(wù)處理的過(guò)程中更新或刪除了應(yīng)用程序服務(wù)器端中的某對(duì)象,則通知其它模塊有對(duì)象進(jìn)行了更新,在處理完一業(yè)務(wù)請(qǐng)求后會(huì)將處理結(jié)果返回到所述請(qǐng)求接收模塊;所述業(yè)務(wù)邏輯對(duì)象管理模塊,用于管理應(yīng)用程序服務(wù)器端上所有的業(yè)務(wù)邏輯對(duì)象,包括對(duì)對(duì)象的查詢、更新和刪除操作。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括數(shù)據(jù)庫(kù)端,該數(shù)據(jù)庫(kù)端包括數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控程序單元和數(shù)據(jù)庫(kù)單元,其中, 所述數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控程序單元,用于監(jiān)控所述數(shù)據(jù)庫(kù)單元中的相應(yīng)數(shù)據(jù)表,該數(shù)據(jù)表記錄了由應(yīng)用程序客戶端直接對(duì)數(shù)據(jù)庫(kù)單元中的基礎(chǔ)數(shù)據(jù)進(jìn)行操作后數(shù)據(jù)的變化情況,根據(jù)變化情況生成基礎(chǔ)數(shù)據(jù)更新請(qǐng)求后,發(fā)送到服務(wù)器端的基礎(chǔ)數(shù)據(jù)更新模塊; 所述數(shù)據(jù)庫(kù)單元,用于存儲(chǔ)數(shù)據(jù);所述應(yīng)用程序服務(wù)器端進(jìn)一步包括數(shù)據(jù)庫(kù)操作模塊和基礎(chǔ)數(shù)據(jù)更新模塊,其中, 所述數(shù)據(jù)庫(kù)操作模塊,用于與所述數(shù)據(jù)庫(kù)單元進(jìn)行交互,在應(yīng)用程序服務(wù)器端啟動(dòng)時(shí)從所述數(shù)據(jù)庫(kù)單元中讀取需要的數(shù)據(jù)后,構(gòu)造成各種業(yè)務(wù)邏輯對(duì)象;判斷若應(yīng)用程序服務(wù)器端對(duì)業(yè)務(wù)邏輯對(duì)象進(jìn)行修改時(shí),將修改后的數(shù)據(jù)寫(xiě)入所述數(shù)據(jù)庫(kù)單元,以保持?jǐn)?shù)據(jù)的一致性;所述基礎(chǔ)數(shù)據(jù)更新模塊,用于接收所述數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控程序單元發(fā)送的基礎(chǔ)數(shù)據(jù)更新請(qǐng)求后,根據(jù)該更新請(qǐng)求來(lái)更新相應(yīng)的業(yè)務(wù)邏輯對(duì)象。
5.一種客戶端與服務(wù)器端雙向同步的方法,其特征在于,包括應(yīng)用程序服務(wù)器端接收到應(yīng)用程序客戶端發(fā)送的業(yè)務(wù)請(qǐng)求后,對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行解析;所述應(yīng)用程序服務(wù)器端判斷若一應(yīng)用程序客戶端修改了一對(duì)象的數(shù)據(jù)后,則根據(jù)應(yīng)用程序客戶端信息及其訂閱的對(duì)象的信息的表格中的信息,查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則將修改后的該對(duì)象的數(shù)據(jù)發(fā)送到相應(yīng)應(yīng)用程序客戶端,保持客戶端與服務(wù)器端的數(shù)據(jù)同步。
6.如權(quán)利要求5所述的方法,其特征在于,所述應(yīng)用程序客戶端信息及其訂閱的對(duì)象的信息的表格,包括應(yīng)用程序客戶端名稱、 應(yīng)用程序客戶端地址、應(yīng)用程序客戶端通信端口及其訂閱的對(duì)象列表的信息。
7.如權(quán)利要求6所述的方法,其特征在于,還包括所述應(yīng)用程序服務(wù)器端檢測(cè)對(duì)象的數(shù)據(jù)是否發(fā)生變化,若是,則根據(jù)該對(duì)象的名稱在所述表格中查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則對(duì)更新后對(duì)象的數(shù)據(jù)進(jìn)行封裝后,將封裝后的對(duì)象的數(shù)據(jù)根據(jù)應(yīng)用程序客戶端的地址和通信端口,發(fā)送到相應(yīng)應(yīng)用程序客戶端。
8.如權(quán)利要求5所述的方法,其特征在于,還包括所述應(yīng)用程序服務(wù)器端接收到所述業(yè)務(wù)請(qǐng)求后,判斷如果在進(jìn)行業(yè)務(wù)處理的過(guò)程中更新或刪除了應(yīng)用程序服務(wù)器端中的某對(duì)象,則對(duì)所述表格進(jìn)行相應(yīng)更新,并記錄對(duì)該對(duì)象的查詢、更新和刪除操作。
9.如權(quán)利要求5所述的方法,其特征在于,進(jìn)一步包括所述應(yīng)用程序服務(wù)器端在啟動(dòng)時(shí)從數(shù)據(jù)庫(kù)中讀取需要的數(shù)據(jù)后,構(gòu)造成各種業(yè)務(wù)邏輯對(duì)象;判斷若修改了業(yè)務(wù)邏輯對(duì)象,并將修改后的數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù),以保持?jǐn)?shù)據(jù)的一致性。
10.如權(quán)利要求9所述的方法,其特征在于,進(jìn)一步包括所述應(yīng)用程序服務(wù)器端監(jiān)控?cái)?shù)據(jù)庫(kù)中的相應(yīng)數(shù)據(jù)表,該數(shù)據(jù)表記錄了由應(yīng)用程序客戶端直接對(duì)數(shù)據(jù)庫(kù)中的基礎(chǔ)數(shù)據(jù)進(jìn)行操作后數(shù)據(jù)的變化情況,根據(jù)該變化情況更新相應(yīng)的業(yè)務(wù)邏輯對(duì)象。
全文摘要
本發(fā)明公開(kāi)了一種客戶端與服務(wù)器端雙向同步的方法及系統(tǒng),所述方法包括,應(yīng)用程序服務(wù)器端接收到應(yīng)用程序客戶端發(fā)送的業(yè)務(wù)請(qǐng)求后,對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行解析;所述應(yīng)用程序服務(wù)器端判斷若一應(yīng)用程序客戶端修改了一對(duì)象的數(shù)據(jù)后,則根據(jù)應(yīng)用程序客戶端信息及其訂閱的對(duì)象的信息的表格中的信息,查找訂閱了該對(duì)象的應(yīng)用程序客戶端,判斷若找到,則將修改后的該對(duì)象的數(shù)據(jù)發(fā)送到相應(yīng)應(yīng)用程序客戶端,保持客戶端與服務(wù)器端的數(shù)據(jù)同步。本發(fā)明能在對(duì)象發(fā)生變化后服務(wù)器端在第一時(shí)間把更新的數(shù)據(jù)發(fā)送給各個(gè)客戶端,使客戶端與服務(wù)器端的數(shù)據(jù)同步效果得到進(jìn)一步提升。
文檔編號(hào)H04L29/06GK102291416SQ20111027164
公開(kāi)日2011年12月21日 申請(qǐng)日期2011年9月14日 優(yōu)先權(quán)日2011年9月14日
發(fā)明者王獻(xiàn)昌, 王玉穩(wěn), 羅祖麥 申請(qǐng)人:成都軟智科技有限公司