一種移動(dòng)終端處理數(shù)據(jù)沖突的方法和裝置的制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例提供一種移動(dòng)終端處理數(shù)據(jù)沖突的方法和裝置,其中方法包括:登錄同一帳號(hào)的不同客戶(hù)端分別向服務(wù)器發(fā)送新增修改刪除請(qǐng)求,所述新增修改刪除請(qǐng)求中包含請(qǐng)求數(shù)據(jù);如果所述請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突,客戶(hù)端將所述請(qǐng)求數(shù)據(jù)的sourceid刪除,并為所述請(qǐng)求數(shù)據(jù)生成新sourceid;客戶(hù)端將具有所述新sourceid的請(qǐng)求數(shù)據(jù)上傳到服務(wù)器上。本發(fā)明實(shí)施例解決了通過(guò)沖突事件處理機(jī)制解決了現(xiàn)有技術(shù)中多個(gè)客戶(hù)端修改同一個(gè)便簽會(huì)丟掉的問(wèn)題。
【專(zhuān)利說(shuō)明】
一種移動(dòng)終端處理數(shù)據(jù)沖突的方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施例涉及移動(dòng)終端技術(shù)領(lǐng)域,尤其涉及一種移動(dòng)終端處理數(shù)據(jù)沖突的方法和裝置。
【背景技術(shù)】
[0002]近年來(lái),隨著移動(dòng)通信技術(shù)的飛速發(fā)展和移動(dòng)終端智能化趨勢(shì)的加快,人們正走入一個(gè)新的移動(dòng)互聯(lián)網(wǎng)時(shí)代。多種多樣具備網(wǎng)絡(luò)連接能力的移動(dòng)終端,諸如手機(jī)、平板電腦、電紙書(shū)等的出現(xiàn),帶給人們隨時(shí)隨地訪問(wèn)互聯(lián)網(wǎng)的便捷。Android的出現(xiàn),更是將移動(dòng)終端推向了以應(yīng)用和數(shù)據(jù)為主導(dǎo)的時(shí)代。今天的移動(dòng)終端平臺(tái)具備了辦公、娛樂(lè)、社交等多種功能,其存儲(chǔ)的數(shù)據(jù)也變得更加豐富,例如圖片、音樂(lè)、視頻、動(dòng)畫(huà)等等。
[0003]用戶(hù)在享受不同類(lèi)型移動(dòng)終端帶來(lái)的便捷時(shí),也遇到了多終端存儲(chǔ)的數(shù)據(jù)統(tǒng)一性管理的問(wèn)題。多終端數(shù)據(jù)同步的現(xiàn)有方案之一可以基于SyncML(Synchronizat1n MarkupLanguage)協(xié)議進(jìn)行,SyncML是通用的移動(dòng)數(shù)據(jù)同步化協(xié)議,可以在兼容的設(shè)備、程序及網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)同步。
[0004]此外,移動(dòng)終端上的原有同步架構(gòu)可以處理同步事件,使登錄了一個(gè)賬號(hào)的移動(dòng)終端能夠保持?jǐn)?shù)據(jù)的同步。
[0005]例如:
[0006]A、B兩個(gè)移動(dòng)終端登錄同一賬號(hào)的情況下,
[0007]當(dāng)A新增一個(gè)便簽,同步后,B也會(huì)得到這個(gè)新增的便簽;
[0008]當(dāng)A改變一個(gè)便簽的內(nèi)容,同步后,B也會(huì)改變這個(gè)便簽;
[0009]當(dāng)A刪除一個(gè)便簽,同步后,B也會(huì)刪除這個(gè)便簽。
[0010]但是有一種場(chǎng)合,當(dāng)A、B同時(shí)修改一個(gè)便簽,那情形會(huì)是怎樣呢?
[0011]圖1為現(xiàn)有技術(shù)中客戶(hù)端數(shù)據(jù)同步的流程示意圖,具體步驟如下:
[0012]客戶(hù)端新建一個(gè)數(shù)據(jù)A到服務(wù)器,此時(shí)A的etag為null;
[0013]服務(wù)器處理成功后在服務(wù)器保留A和A的etag,給A的etag傳給客戶(hù)端;
[0014]客戶(hù)端修改A,把A和客戶(hù)端A的etag傳給服務(wù)器;
[0015]服務(wù)器把客戶(hù)端傳來(lái)的etag和服務(wù)器的etag相比較。如果相同修改成功服務(wù)器會(huì)更新etag,并把新的etag傳給客戶(hù)端。如果不同返回錯(cuò)誤碼412,認(rèn)為發(fā)生了沖突。
[0016]可以看出,數(shù)據(jù)每一次同步后,服務(wù)器都會(huì)給這個(gè)數(shù)據(jù)一個(gè)特殊字符串etag,該etag代表當(dāng)前數(shù)據(jù)在服務(wù)器的版本。
[0017]同步數(shù)據(jù)的時(shí)候,數(shù)據(jù)可能在多個(gè)客戶(hù)端展現(xiàn),不同的數(shù)據(jù)用sourceid來(lái)唯一標(biāo)示。sourceid是在向服務(wù)器新增數(shù)據(jù)的時(shí)候,給數(shù)據(jù)生成的唯一的字符串。服務(wù)器也用sourceid來(lái)表示一個(gè)數(shù)據(jù),數(shù)據(jù)在服務(wù)器插入成功后,同時(shí)把數(shù)據(jù)對(duì)應(yīng)的sourceid更新到數(shù)據(jù)庫(kù)中。
[0018]如果兩個(gè)客戶(hù)端對(duì)同一個(gè)版本數(shù)據(jù)比如便簽NI做了修改,移動(dòng)終端A把NI修改為Nll,移動(dòng)終端B把NI修改為NI 2。
[0019]如果A請(qǐng)求先到達(dá)服務(wù)器,根據(jù)etag的邏輯,NI的etag和服務(wù)器上的etag是相同的,那么服務(wù)器上的NI就被修改成了Nll,并且服務(wù)器和客戶(hù)端A都將更新這個(gè)數(shù)據(jù)的etag。
[0020]于是當(dāng)?shù)诙€(gè)客戶(hù)端B的請(qǐng)求過(guò)來(lái)的時(shí)候,服務(wù)器發(fā)現(xiàn)B的etag不一樣,就會(huì)認(rèn)為這是一種沖突請(qǐng)求,那第二個(gè)客戶(hù)端B的請(qǐng)求會(huì)失敗。
[0021]根據(jù)原有同步框架的邏輯,B請(qǐng)求失敗后,就會(huì)把服務(wù)器上的Nll同步到B客戶(hù)端,使得B上的NI 2又變成了 NI I。
[0022]這樣,N12這個(gè)修改就丟掉了。
[0023]如果兩個(gè)客戶(hù)端同時(shí)修改同一個(gè)便簽,會(huì)丟掉一個(gè)客戶(hù)端的修改數(shù)據(jù),這對(duì)用戶(hù)來(lái)說(shuō)是不可接受的。
【發(fā)明內(nèi)容】
[0024]本發(fā)明實(shí)施例提供一種移動(dòng)終端處理數(shù)據(jù)沖突的方法和裝置,通過(guò)沖突事件處理機(jī)制解決了現(xiàn)有技術(shù)中多個(gè)客戶(hù)端修改同一個(gè)便簽會(huì)丟掉的問(wèn)題。
[0025]本發(fā)明實(shí)施例提供一種移動(dòng)終端處理數(shù)據(jù)沖突的方法,包括:
[0026]登錄同一帳號(hào)的不同客戶(hù)端分別向服務(wù)器發(fā)送新增修改刪除請(qǐng)求,所述新增修改刪除請(qǐng)求中包含請(qǐng)求數(shù)據(jù);
[0027]如果所述請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突,客戶(hù)端將所述請(qǐng)求數(shù)據(jù)的sourceid刪除,并為所述請(qǐng)求數(shù)據(jù)生成新sourceid;
[0028]客戶(hù)端將具有所述新sourceid的請(qǐng)求數(shù)據(jù)上傳到服務(wù)器上。
[0029]本發(fā)明實(shí)施例提供一種用于處理沖突事件的移動(dòng)終端,包括:
[0030]第一處理模塊,用于向服務(wù)器發(fā)送新增修改刪除請(qǐng)求,所述新增修改刪除請(qǐng)求中包含請(qǐng)求數(shù)據(jù);
[0031]第二處理模塊,用于如果所述請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突,將所述請(qǐng)求數(shù)據(jù)的source id刪除,并為所述請(qǐng)求數(shù)據(jù)生成新source id;
[0032]第三處理模塊,用于將具有所述新sourceid的請(qǐng)求數(shù)據(jù)上傳到服務(wù)器上。
[0033]和現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提供的移動(dòng)終端處理數(shù)據(jù)沖突的方法和裝置,通過(guò)為存在數(shù)據(jù)沖突的請(qǐng)求數(shù)據(jù)重新生成新sourceid,具有新sourceid的請(qǐng)求數(shù)據(jù)就是一個(gè)新的請(qǐng)求數(shù)據(jù)了,因此不會(huì)再存在數(shù)據(jù)沖突,從而解決了現(xiàn)有技術(shù)中多個(gè)客戶(hù)端修改同一個(gè)便簽會(huì)丟掉修改數(shù)據(jù)的問(wèn)題。
【附圖說(shuō)明】
[0034]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1為現(xiàn)有技術(shù)中客戶(hù)端數(shù)據(jù)同步的流程示意圖;
[0036]圖2為本發(fā)明的一個(gè)具體實(shí)施例中移動(dòng)終端處理數(shù)據(jù)沖突的方法的流程示意圖;
[0037]圖3為本發(fā)明的一個(gè)具體實(shí)施例中移動(dòng)終端處理數(shù)據(jù)沖突的方法的詳細(xì)流程示意圖;
[0038]圖4為本發(fā)明的一個(gè)具體實(shí)施例中用于處理沖突事件的裝置的架構(gòu)示意圖。
【具體實(shí)施方式】
[0039]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0040]實(shí)施例一:
[0041]圖2為本發(fā)明的一個(gè)具體實(shí)施例中移動(dòng)終端處理數(shù)據(jù)沖突的方法的流程示意圖。
[0042]如圖2所示,該方法應(yīng)用于移動(dòng)終端上,包括:
[0043]步驟S21,登錄同一帳號(hào)的不同客戶(hù)端分別向服務(wù)器發(fā)送新增修改刪除請(qǐng)求,所述新增修改刪除請(qǐng)求中包含請(qǐng)求數(shù)據(jù);
[0044]步驟S22,如果請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突,客戶(hù)端將請(qǐng)求數(shù)據(jù)的sourceid刪除,并為請(qǐng)求數(shù)據(jù)生成新sourceid;
[0045]步驟S23,客戶(hù)端將具有新sourceid的請(qǐng)求數(shù)據(jù)上傳到服務(wù)器上。
[0046]實(shí)施例二:
[0047]圖3為本發(fā)明的一個(gè)具體實(shí)施例中移動(dòng)終端處理數(shù)據(jù)沖突的方法的詳細(xì)流程示意圖。
[0048]如圖3所示,該方法應(yīng)用于移動(dòng)終端上,包括:
[0049]步驟S31,登錄同一帳號(hào)的不同客戶(hù)端分別向服務(wù)器發(fā)送新增修改刪除請(qǐng)求,所述新增修改刪除請(qǐng)求中包含請(qǐng)求數(shù)據(jù)。
[0050]在本步驟中,登錄同一帳號(hào)的不同客戶(hù)端分別向服務(wù)器上傳新增修改刪除的請(qǐng)求,這可以是一個(gè)批量執(zhí)行操作的過(guò)程,例如,客戶(hù)端向服務(wù)器新增或者修改100個(gè)數(shù)據(jù),這100個(gè)數(shù)據(jù)放到可以一個(gè)新增修改刪除請(qǐng)求。
[0051 ]其中新增修改刪除請(qǐng)求可以是httpPut請(qǐng)求,具體操作為:定義數(shù)據(jù)格式,按照定義的數(shù)據(jù)格式序列化100個(gè)數(shù)據(jù),并將序列化后的100個(gè)數(shù)據(jù)放到httpPut請(qǐng)求中。
[0052]步驟S32,服務(wù)器接收到請(qǐng)求數(shù)據(jù)后,判斷請(qǐng)求數(shù)據(jù)是否存在數(shù)據(jù)沖突,如果是,進(jìn)行步驟S33;如果否,進(jìn)行步驟S35。
[0053]在本步驟中,向服務(wù)器新增數(shù)據(jù)是不會(huì)發(fā)生沖突的。沖突發(fā)生在修改和刪除的請(qǐng)求上,加上同步的先后順序沖突操作分為三種:
[0054]1.修改-修改沖突;
[0055]2.修改-刪除沖突,這是修改的請(qǐng)求先到達(dá)服務(wù)器。
[0056]3.刪除-修改沖突,刪除的請(qǐng)求先到達(dá)服務(wù)器。
[0057]數(shù)據(jù)每一次同步后,服務(wù)器都會(huì)給客戶(hù)端這個(gè)數(shù)據(jù)一個(gè)特殊字符串etag,該etag代表當(dāng)前數(shù)據(jù)在服務(wù)器的版本。
[0058]例如,如果移動(dòng)終端A和移動(dòng)終端B這兩個(gè)客戶(hù)端對(duì)同一個(gè)版本數(shù)據(jù)NI做了修改,移動(dòng)終端A把NI修改為Nll,移動(dòng)終端B把NI修改為NI 2。
[0059]如果A的請(qǐng)求先到達(dá)服務(wù)器,根據(jù)etag的邏輯,NI的etag和服務(wù)器上的etag是相同的,那么服務(wù)器上的NI就被修改成了Nll,并且服務(wù)器和客戶(hù)端A都將更新這個(gè)數(shù)據(jù)的etag。[ΟΟ?Ο]于是當(dāng)B的請(qǐng)求過(guò)來(lái)的時(shí)候,服務(wù)器發(fā)現(xiàn)B的etag不一樣,就會(huì)認(rèn)為這個(gè)請(qǐng)求包括沖突數(shù)據(jù)。
[0061]在現(xiàn)有技術(shù)中,B的請(qǐng)求會(huì)失敗,則服務(wù)器上的Nll會(huì)同步到B,使得B修改的N12又變成了NI I。這樣,NI 2這個(gè)修改就丟掉了。
[0062]在本發(fā)明具體實(shí)施例中,如果服務(wù)器接收到登錄同一帳號(hào)的不同客戶(hù)端的請(qǐng)求數(shù)據(jù)后,根據(jù)請(qǐng)求數(shù)據(jù)的etag判斷出該請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突時(shí),并不會(huì)直接向B反饋請(qǐng)求失敗。
[0063]步驟S33,服務(wù)器向客戶(hù)端返回新增修改刪除回應(yīng),該新增修改刪除回應(yīng)包括請(qǐng)求數(shù)據(jù)的狀態(tài)碼。
[0064]在本步驟中,如果服務(wù)器接收到登錄同一帳號(hào)的不同客戶(hù)端的請(qǐng)求數(shù)據(jù)后,根據(jù)請(qǐng)求數(shù)據(jù)的etag判斷該請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突時(shí),會(huì)向客戶(hù)端返回新增修改刪除回應(yīng),該新增修改刪除回應(yīng)包括請(qǐng)求數(shù)據(jù)的狀態(tài)碼,例如狀態(tài)碼為412代表該請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖關(guān)O
[0065]步驟S34,客戶(hù)端接收服務(wù)器返回的新增修改刪除回應(yīng),根據(jù)新增修改刪除回應(yīng)中請(qǐng)求數(shù)據(jù)的狀態(tài)碼確定請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突時(shí),將請(qǐng)求數(shù)據(jù)的sourceid刪除,并為請(qǐng)求數(shù)據(jù)生成新sourceid ο
[0066]在本步驟中,sourceid是在向服務(wù)器新增修改刪除數(shù)據(jù)的時(shí)候,給數(shù)據(jù)生成的唯一的字符串。
[0067]客戶(hù)端接收服務(wù)器返回的新增修改刪除回應(yīng),如果新增修改刪除回應(yīng)中請(qǐng)求數(shù)據(jù)的狀態(tài)碼為412,則表示請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突。
[0068]客戶(hù)端可以將請(qǐng)求數(shù)據(jù)的sourceid刪除,并為請(qǐng)求數(shù)據(jù)生成新sourceid,清除該請(qǐng)求數(shù)據(jù)的etag。
[0069]因?yàn)閟ourceid是唯一標(biāo)識(shí)一個(gè)數(shù)據(jù)的,由于存在數(shù)據(jù)沖突的請(qǐng)求數(shù)據(jù)的sourceid已經(jīng)改變成新sourceid,從而具有新sourceid的請(qǐng)求數(shù)據(jù)就是一個(gè)新的請(qǐng)求數(shù)據(jù)了。
[ΟΟΤ?]步驟S35,客戶(hù)端將新增修改刪除請(qǐng)求中的具有新sourceid的請(qǐng)求數(shù)據(jù)上傳到服務(wù)器上。
[0071 ] 在本步驟中,sourceid是唯一標(biāo)識(shí)一個(gè)數(shù)據(jù)的,對(duì)于服務(wù)器來(lái)說(shuō),具有新sourceid的請(qǐng)求數(shù)據(jù)就是一個(gè)新的請(qǐng)求數(shù)據(jù)了,因此不會(huì)再存在數(shù)據(jù)沖突。
[0072]步驟S36,服務(wù)器根據(jù)請(qǐng)求數(shù)據(jù)進(jìn)行修改并同步到客戶(hù)端。
[0073]在本步驟中,如果服務(wù)器接收到的數(shù)據(jù)請(qǐng)求不存在數(shù)據(jù)沖突,則服務(wù)器按照現(xiàn)有的方式進(jìn)行處理,即根據(jù)etag的邏輯,請(qǐng)求數(shù)據(jù)的etag和服務(wù)器上的etag是相同的,那么服務(wù)器上的數(shù)據(jù)就被修改成了請(qǐng)求數(shù)據(jù),并且服務(wù)器和客戶(hù)端都將更新這個(gè)數(shù)據(jù)的etag。
[0074]實(shí)施例三:
[0075]圖4為本發(fā)明的一個(gè)具體實(shí)施例中用于處理沖突事件的移動(dòng)終端的結(jié)構(gòu)示意圖。
[0076]如圖4所示,本發(fā)明的裝置包括:
[0077]第一處理模塊41,用于向服務(wù)器發(fā)送新增修改刪除請(qǐng)求,所述新增修改刪除請(qǐng)求中包含請(qǐng)求數(shù)據(jù);
[0078]第二處理模塊42,用于如果請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突,將請(qǐng)求數(shù)據(jù)的sourceid刪除,并為請(qǐng)求數(shù)據(jù)生成新sourceid;
[0079]第三處理模塊43,用于將具有新sourceid的請(qǐng)求數(shù)據(jù)上傳到服務(wù)器上。
[0080]具體地,
[0081 ]所述第一處理模塊,具體用于:
[0082]定義數(shù)據(jù)格式;
[0083]按照定義的所述數(shù)據(jù)序列化請(qǐng)求數(shù)據(jù);
[0084]將序列化后的請(qǐng)求數(shù)據(jù)放到httpPut請(qǐng)求中;
[0085]向服務(wù)器發(fā)送httpPut請(qǐng)求。
[0086]所述第二處理模塊,具體用于:
[0087]接收服務(wù)器返回的新增修改刪除回應(yīng);
[0088]如果從所述新增修改刪除回應(yīng)中獲取到數(shù)據(jù)沖突的狀態(tài)碼,則確定存在數(shù)據(jù)沖關(guān);
[0089]將所述請(qǐng)求數(shù)據(jù)的sourceid刪除,為所述請(qǐng)求數(shù)據(jù)生成新sourceid,并清除所述請(qǐng)求數(shù)據(jù)的etag。
[0090]本發(fā)明實(shí)施例提供的移動(dòng)終端處理數(shù)據(jù)沖突的方法和裝置,通過(guò)為存在數(shù)據(jù)沖突的請(qǐng)求數(shù)據(jù)重新生成新source id,具有新source id的請(qǐng)求數(shù)據(jù)就是一個(gè)新的請(qǐng)求數(shù)據(jù)了,因此不會(huì)再存在數(shù)據(jù)沖突,從而解決了現(xiàn)有技術(shù)中多個(gè)客戶(hù)端修改同一個(gè)便簽會(huì)丟掉修改數(shù)據(jù)的問(wèn)題。
[0091]以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
[0092]通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0093]最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種移動(dòng)終端處理數(shù)據(jù)沖突的方法,其特征在于,包括: 登錄同一帳號(hào)的不同客戶(hù)端分別向服務(wù)器發(fā)送新增修改刪除請(qǐng)求,所述新增修改刪除請(qǐng)求中包含請(qǐng)求數(shù)據(jù); 如果所述請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突,客戶(hù)端將所述請(qǐng)求數(shù)據(jù)的sourceid刪除,并為所述請(qǐng)求數(shù)據(jù)生成新sourceid; 客戶(hù)端將具有所述新sourceid的請(qǐng)求數(shù)據(jù)上傳到服務(wù)器上。2.根據(jù)權(quán)利要求1所述的移動(dòng)終端處理數(shù)據(jù)沖突的方法,其特征在于,所述登錄同一帳號(hào)的不同客戶(hù)端分別向服務(wù)器發(fā)送新增修改刪除請(qǐng)求,所述新增修改刪除請(qǐng)求中包含請(qǐng)求數(shù)據(jù)的步驟包括: 定義數(shù)據(jù)格式; 按照定義的所述數(shù)據(jù)序列化請(qǐng)求數(shù)據(jù); 將序列化后的請(qǐng)求數(shù)據(jù)放到httpPut請(qǐng)求中; 登錄同一帳號(hào)的不同客戶(hù)端分別向服務(wù)器發(fā)送httpPut請(qǐng)求。3.根據(jù)權(quán)利要求1所述的移動(dòng)終端處理數(shù)據(jù)沖突的方法,其特征在于,所述方法還包括: 服務(wù)器接收到登錄同一帳號(hào)的不同客戶(hù)端的請(qǐng)求數(shù)據(jù)后,根據(jù)所述請(qǐng)求數(shù)據(jù)的etag判斷是否存在數(shù)據(jù)沖突; 如果請(qǐng)求數(shù)據(jù)的etag和服務(wù)器上的etag不同,則存在數(shù)據(jù)沖突,服務(wù)器向客戶(hù)端返回新增修改刪除回應(yīng),所述新增修改刪除回應(yīng)包括請(qǐng)求數(shù)據(jù)的狀態(tài)碼。4.根據(jù)權(quán)利要求3所述的移動(dòng)終端處理數(shù)據(jù)沖突的方法,其特征在于,所述方法還包括: 預(yù)先設(shè)置數(shù)據(jù)沖突的狀態(tài)碼; 如果客戶(hù)端從服務(wù)器返回的新增修改刪除回應(yīng)中獲取到數(shù)據(jù)沖突的狀態(tài)碼,則確定存在數(shù)據(jù)沖突。5.根據(jù)權(quán)利要求1所述的移動(dòng)終端處理數(shù)據(jù)沖突的方法,其特征在于,所述客戶(hù)端將所述請(qǐng)求數(shù)據(jù)的sourceid刪除,并為所述請(qǐng)求數(shù)據(jù)生成新sourceid的步驟包括: 客戶(hù)端將所述請(qǐng)求數(shù)據(jù)的sourceid刪除,為所述請(qǐng)求數(shù)據(jù)生成新sourceid,并清除所述請(qǐng)求數(shù)據(jù)的etag。6.一種用于處理沖突事件的移動(dòng)終端,其特征在于,包括: 第一處理模塊,用于向服務(wù)器發(fā)送新增修改刪除請(qǐng)求,所述新增修改刪除請(qǐng)求中包含請(qǐng)求數(shù)據(jù); 第二處理模塊,用于如果所述請(qǐng)求數(shù)據(jù)存在數(shù)據(jù)沖突,將所述請(qǐng)求數(shù)據(jù)的sourceid刪除,并為所述請(qǐng)求數(shù)據(jù)生成新sourceid; 第三處理模塊,用于將具有所述新sourceid的請(qǐng)求數(shù)據(jù)上傳到服務(wù)器上。7.根據(jù)權(quán)利要求6所述的用于處理沖突事件的移動(dòng)終端,其特征在于,所述第一處理模塊,具體用于: 定義數(shù)據(jù)格式; 按照定義的所述數(shù)據(jù)序列化請(qǐng)求數(shù)據(jù); 將序列化后的請(qǐng)求數(shù)據(jù)放到httpPut請(qǐng)求中; 向服務(wù)器發(fā)送httpPut請(qǐng)求。8.根據(jù)權(quán)利要求7所述的移動(dòng)終端處理數(shù)據(jù)沖突的方法,其特征在于,所述第二處理模塊,具體用于: 接收服務(wù)器返回的新增修改刪除回應(yīng); 如果從所述新增修改刪除回應(yīng)中獲取到數(shù)據(jù)沖突的狀態(tài)碼,則確定存在數(shù)據(jù)沖突; 將所述請(qǐng)求數(shù)據(jù)的sourceid刪除,為所述請(qǐng)求數(shù)據(jù)生成新source id,并清除所述請(qǐng)求數(shù)據(jù)的etag。
【文檔編號(hào)】H04L29/08GK105915572SQ201510921272
【公開(kāi)日】2016年8月31日
【申請(qǐng)日】2015年12月12日
【發(fā)明人】江丹, 楊丹
【申請(qǐng)人】樂(lè)視移動(dòng)智能信息技術(shù)(北京)有限公司