亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)同步方法、客戶端以及服務(wù)器的制作方法

文檔序號:7684783閱讀:154來源:國知局

專利名稱::數(shù)據(jù)同步方法、客戶端以及服務(wù)器的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及通信領(lǐng)域,具體涉及一種數(shù)據(jù)同步方法、客戶端以及服務(wù)器。
背景技術(shù)
:數(shù)據(jù)同步(DataSynchronization,DS)是指在多個設(shè)備中的信息保持一致,當其中一個設(shè)備上的數(shù)據(jù)變化時,可以操作其他設(shè)備中的數(shù)據(jù)做相應的改變。同步兩端可以是任何一種類型的網(wǎng)絡(luò)設(shè)備,在任一種網(wǎng)絡(luò)上面,同步操作的數(shù)據(jù)可以是任何一種網(wǎng)絡(luò)數(shù)據(jù)。所述網(wǎng)絡(luò)設(shè)備可以為移動終端,如掌上電腦、個人數(shù)字助理(PersonalDigitalAssistant,PDA)移動電話、自動計算機和桌面計算機,同時一個用戶可以通過不同的設(shè)備訪問、操作同樣的數(shù)據(jù)集合。同步標i己i吾言(SynchronizationMakeupLanguage,SyncML)同步十辦i義是為了實J見凄W居同步這個目標而應運而生的一個新的通用標準。SyncML同步協(xié)i義是一套協(xié)i義集。通常由于服務(wù)器端比客戶端包含更多的數(shù)據(jù),而客戶端也可能只希望服務(wù)器上的一部分數(shù)據(jù),另外,客戶端還可以選擇數(shù)據(jù)的一部分字段進行同步。例如用戶需要同步"聯(lián)系人,,數(shù)據(jù)庫,但服務(wù)器上的這個數(shù)據(jù)庫包含很多數(shù)據(jù),因此用戶根據(jù)客戶端能力和自己的需求可以選擇其中的一部分來進行同步,例如只同步"聯(lián)系人,,下面的"同學,,或"同事"這些分組,用戶還可以限制數(shù)據(jù)的各個字段,例如同步時不包括每個聯(lián)系人的照片。過濾技術(shù)只用于接收方,例如客戶端發(fā)起一個過濾請求給服務(wù)器,服務(wù)器根據(jù)過濾請求中的設(shè)置給客戶端發(fā)送需要的數(shù)據(jù),而客戶端發(fā)送給服務(wù)器的數(shù)據(jù)是不受這個過濾請求的限制的。發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有的過濾技術(shù)限制了數(shù)據(jù)項中字段的最大長度,超過長度的部分會被截斷或者被丟棄,不能較好的優(yōu)化過濾功能,用戶體驗感較差
發(fā)明內(nèi)容本發(fā)明實施例,提供了一種數(shù)據(jù)同步方法、客戶端、服務(wù)器以實現(xiàn)優(yōu)化服務(wù)器過濾功能,提高用戶體驗。本發(fā)明實施例提供了一種數(shù)據(jù)同步方法,包括獲得容量限制信息;根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);向客戶端發(fā)送所述過濾數(shù)據(jù)。本發(fā)明實施例還提供了另一種數(shù)據(jù)同步方法,包括接收攜帶有字段最小長度限制信息的數(shù)據(jù)過濾請求,并從該數(shù)據(jù)過濾請求中獲取所述字段最小長度限制信息;根據(jù)所述字段最小長度限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);向客戶端發(fā)送所述過濾數(shù)據(jù)。本發(fā)明實施例進一步提供了一種客戶端,包括請求生成單元,用于生成攜帶有容量限制信息的數(shù)據(jù)過濾請求;請求發(fā)送單元,用于向服務(wù)器發(fā)送所述攜帶有容量限制信息的數(shù)據(jù)過濾請求。以及一種服務(wù)器,包括獲得單元,用于獲得容量限制信息;過濾數(shù)據(jù)生成單元,用于根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);發(fā)送單元,用于向客戶端發(fā)送所述過濾數(shù)據(jù)。實施本發(fā)明實施例,服務(wù)器獲得來自客戶端的容量限制信息,根據(jù)該容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù),從而優(yōu)化了服務(wù)器的數(shù)據(jù)過濾功能,提升了用戶體驗感。圖l是本發(fā)明數(shù)據(jù)同步方法第一實施例的流程示意圖;圖2是本發(fā)明教:據(jù)同步方法第二實施例的流程示意圖;圖3是本發(fā)明數(shù)據(jù)同步方法第三實施例的流程示意圖;圖4是本發(fā)明數(shù)據(jù)同步方法第四實施例的流程示意圖;圖5是本發(fā)明數(shù)據(jù)同步方法第五實施例的流程示意圖;圖6是本發(fā)明客戶端實施例的組成示意圖;圖7是本發(fā)明服務(wù)器實施例的組成示意圖8是本發(fā)明服務(wù)器實施例中獲得單元21的第一實施例組成示意圖;圖9是本發(fā)明服務(wù)器實施例中獲得單元21的第二實施例組成示意圖;圖10是本發(fā)明服務(wù)器實施例中獲得單元21的第三實施例組成示意圖。具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進一步地詳細描述。本發(fā)明實施例提供了一種數(shù)據(jù)同步方法,包括獲得容量限制信息;根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);向客戶端發(fā)送所述過濾數(shù)據(jù)。本發(fā)明實施例還提供了數(shù)據(jù)同步方法、客戶端以及服務(wù)器。下面分別進4亍詳細4笛述。參考圖1,是本發(fā)明數(shù)據(jù)同步方法第一實施例的流程示意圖,包括步驟Al、獲得容量限制信息;A2、根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);此處,所述步驟A1、步驟A2中所述容量限制信息的含義以及如何根據(jù)容量限制信息,執(zhí)行數(shù)據(jù)過濾操作將在本文后續(xù)實施例中進行詳細描述。A3、向客戶端發(fā)送所述過濾數(shù)據(jù)。參考圖2,是本發(fā)明數(shù)據(jù)同步方法第二實施例的流程示意圖,包括步驟Bl、接收攜帶有容量限制信息的數(shù)據(jù)過濾請求,從該過濾請求中獲得所述容量限制信息。此處,具體實現(xiàn)時,可在來自客戶端(數(shù)據(jù)過濾請求的發(fā)送方)的數(shù)據(jù)過濾請求中增加一個容量限制元素來實現(xiàn)在數(shù)據(jù)過濾請求中攜帶所述容量限制信息,例如在一具體實施例中,客戶端發(fā)起的一個數(shù)據(jù)過濾請求如下<Alert><Data>200</Data><Item><Target><LocURI>./contacts</LocURI><Filter><Meta><Type>text/x-vcard</Type></Meta><Capacity>10000</Capacity><R_ccord><Item><Meta><Type〉syncml:filtertype-cgi</Type></Meta><Data>GROUP&iCON;business&OR;GROUP&iCON;personal</Data></Item></Record></Filter></Target><Source><LocURI>dev-contacts</LocURI></Sourcc></Item〉</Alert>相對于現(xiàn)有技術(shù),在該過濾請求中設(shè)置了一個〈Capacity〉容量限制元素,上述數(shù)據(jù)過濾請求的代碼中所述〈Capacity〉1000(X/Capacity〉的含義為客戶端請求服務(wù)器根據(jù)10000字節(jié)的長度對生成的過濾數(shù)據(jù)進行限制,也即表示,服務(wù)器為該次數(shù)據(jù)過濾請求生成的總的數(shù)據(jù)項數(shù)據(jù)長度需小于10000字節(jié)。在本實施例中,〈Capacity〉作為過濾請求中的一個元素,可以置于〈Filter〉元素中,作為〈Filtei^的子元素,以表示對整個〈Filtei^元素需要過濾的數(shù)據(jù)使用該限制,也可以置于〈Record〉A(chǔ)cItem〉中,作為〈Item〉的子元素,以表示《又對〈Item〉中需要過濾的數(shù)據(jù)使用該限制,當然〈Capacity〉也可以位于同步數(shù)據(jù)包中,設(shè)置于過濾請求之外的其它部分,〈Capacity〉容量限制的值可根據(jù)客戶端剩余存儲空間或客戶端針對某數(shù)據(jù)庫的剩余存儲空間的大小進行設(shè)置。B2、根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù)。此處,通過解析來自客戶端的所述數(shù)據(jù)過濾請求,可獲得該過濾請求所請求過濾的數(shù)據(jù)項,在本例中,請求過濾的數(shù)據(jù)項為聯(lián)系人數(shù)據(jù)庫中的business分組和personal分組。這時服務(wù)器將根據(jù)上述10000字節(jié)的容量限制以及預設(shè)的數(shù)據(jù)項過濾策略,從這兩個分組中選擇足夠的數(shù)據(jù)項來發(fā)送給客戶端,所述預設(shè)的數(shù)據(jù)項過濾策略包括數(shù)據(jù)項優(yōu)先級信息和/或數(shù)據(jù)項截斷策略信息,所述數(shù)據(jù)項優(yōu)先級可以是按順序從后往前、從前往后、按數(shù)據(jù)項長度從大到小、從小到大、或是按用戶預先對數(shù)據(jù)項指定的優(yōu)先級進行。每選擇一個數(shù)據(jù)項后服務(wù)器計算出剩余的容量,若剩余的容量不足以分配給后續(xù)的數(shù)據(jù)項,則服務(wù)器可以根據(jù)預設(shè)數(shù)據(jù)項截斷策略截斷或丟棄該數(shù)據(jù)項。進一步的,若客戶端請求過濾的數(shù)據(jù)項包含的是多個字段元素,則服務(wù)還可根據(jù)預設(shè)的字段截斷策略截斷或丟棄數(shù)據(jù)項中某個字段。下面為服務(wù)器根據(jù)預設(shè)的數(shù)據(jù)項優(yōu)先級信息按順序選擇的例子。表一<table>tableseeoriginaldocumentpage9</column></row><table>月良務(wù)器從兩個分組中^J安順序選擇據(jù)項,例如該順序為business1-personall誦business2國personal2…以it匕類"l侏,當選擇了9個凄t才居項,即business5時,服務(wù)器發(fā)現(xiàn)還剩余100字節(jié)的容量,而第10個數(shù)據(jù)項persona15的長度為500字節(jié),則服務(wù)器可以丟棄該數(shù)據(jù)項,發(fā)送9個數(shù)據(jù)項給客戶端,也可以把personal5截斷為100字節(jié),發(fā)送10個數(shù)據(jù)項給客戶端。截斷的內(nèi)容,可以是服務(wù)器根據(jù)數(shù)據(jù)中字段的屬性來決定,也可以根據(jù)用戶的預設(shè)來決定。B3、向客戶端發(fā)送所述步驟B2生成的所述過濾數(shù)據(jù)。此處,客戶端接收到所述過濾數(shù)據(jù)后,將根據(jù)該過濾數(shù)據(jù)同步更新相應的本地數(shù)據(jù)庫,此處與現(xiàn)有技術(shù)類似,在此不予贅述。通過上述描述可知,本例中所述的在數(shù)據(jù)過濾請求中攜帶的容量限制為對聯(lián)系人數(shù)據(jù)庫中的數(shù)據(jù)項過濾時的數(shù)據(jù)項容量限制。當然,若本例中數(shù)據(jù)過濾請求為對字段進行過濾的字段過濾請求時,則在數(shù)據(jù)過濾請求中攜帶的容量限制信息為數(shù)據(jù)項中的字段進行容量限制的字段容量限制信息,本例中的后續(xù)具體實施例所述的容量限制即為字段容量限制。在本例中,若客戶端在發(fā)送過濾請求時,除了包括對字段的限制外,還加入了一個字段容量限制,服務(wù)器仍然對每個數(shù)據(jù)項的相應字段進行截斷,只是需按照容量限制的值來限制發(fā)送的數(shù)據(jù)項的多少。本例中數(shù)據(jù)過濾請求如下〈Alert〉<Data>200</Data><Item><Target><LocURI>./calendar/tasks</LocURI><Meta><Type>text/x-vcalendar</Type></Meta><Filter><Meta><Type〉text/x-vcalendar</Type></Meta〉<Capacity>2200</Capacity><Field><Item><Meta><Type>application/vnd.syncml-devinf+xml</Type></Meta><Data>〈![CDATA[<Property><PropName>DESCRIPTION</PropName><PropInfo><MaxSize>100</MaxSize></PropInfo></Property><Property><PropName>ATTACH</PropName><PropInfo><MaxSize>1000</MaxSize><NoTnmcate/></PropInfo></Property>]]></Data></Item〉</Field></Filter></Target><Source><LocURI>dev-tasks</LocURI〉</Sourcc〉</Item></Alert>〈Capacity〉作為過濾請求中的一個元素,可以置于〈Filter〉元素中,作為〈Filt改〉的子元素,以表示對整個〈Filter〉元素需要過濾的數(shù)據(jù)使用該限制,也可以置于〈Record〉/〈Item〉中,作為〈Item〉的子元素,以表示僅對〈Iten^中需要過濾的數(shù)據(jù)使用該限制,當然〈Capacity〉也可以位于同步數(shù)據(jù)包中,設(shè)置于過濾請求之外的其它部分,〈Capacity〉容量限制的值可根據(jù)客戶端剩余存儲空間或客戶端針對某數(shù)據(jù)庫的剩余存儲空間的大小進行設(shè)置。服務(wù)器接收到過濾請求后從日程管理數(shù)據(jù)庫中按優(yōu)先級選擇足夠的數(shù)據(jù)項發(fā)送給客戶端,只是在選擇數(shù)據(jù)項時按要求對指定的字段進行截斷或丟棄,以下是服務(wù)器按順序選擇數(shù)據(jù)項并進行處理的具體實施例表二:<table>tableseeoriginaldocumentpage12</column></row><table>表二中上半部分為數(shù)據(jù)項在服務(wù)器中的實際情況,下半部分為最后服務(wù)器發(fā)送給客戶端的數(shù)據(jù)情況。服務(wù)器逐個選擇數(shù)據(jù)項并進行相應處理,并計算此時剩余的容量限制,具體操作步驟為數(shù)據(jù)項1:DESCRIPTION字段為100字節(jié),保留;ATTACH字段為1500字節(jié),丟棄;剩余容量2200-100=2100字節(jié);數(shù)據(jù)項2:DESCRIPTION字段為0字節(jié),保留;ATTACH字段為1000字節(jié),保留;剩余容量2100-1000=1100字節(jié);數(shù)據(jù)項3:DESCRIPTION字段為150字節(jié),截斷;ATTACH字段為1000字節(jié),保留;剩余容量1100-1100=0字節(jié);經(jīng)過以上步驟后服務(wù)器發(fā)現(xiàn)剩余容量為0,已經(jīng)達到了過濾請求的最大容量限制,則不再處理后續(xù)的數(shù)據(jù)項,而只把這3個數(shù)據(jù)項發(fā)送給客戶端。若處理完前3個數(shù)據(jù)項后服務(wù)器發(fā)現(xiàn)仍有剩余容量,則服務(wù)器會繼續(xù)處理,如表三所示。表三<table>tableseeoriginaldocumentpage12</column></row><table>0100031509004150500A主4003900發(fā)送數(shù)據(jù)項DESCRIPTION字段長度(單位字節(jié))ATTACH字段長度(單位字節(jié))1100020100010090041000"、主3001900可見在對前3個數(shù)據(jù)項的字段進行截斷或丟棄操作后,仍然剩余100字節(jié)的容量,此時服務(wù)器把第4個數(shù)據(jù)項的ATTACH字段丟棄,并把DESCRIPTION字段截斷為100字節(jié),則4個數(shù)據(jù)項的這兩個字段長度正好等于容量限制2200字節(jié),因此服務(wù)器發(fā)送了四個數(shù)據(jù)項給客戶端。若服務(wù)器發(fā)現(xiàn)剩余容量不足以分配給第4個數(shù)據(jù)項的某字段,也即剩余容量小于該字段MaxSize值,則可以截斷更多的字節(jié),如表四所示表四實際數(shù)據(jù)項DESCRIPTION字段長度(單位字節(jié))ATTACH字段長度(單位字節(jié))1100150020100031509504150500總共4003950發(fā)送數(shù)據(jù)項DESCRIPTION字段長度(單位字節(jié))ATTACH字段長度(單位字節(jié))110002010003畫9504500總共2501950由表四可見在對前3個數(shù)據(jù)項的字段進行截斷或丟棄操作后,只剩余50字節(jié)的容量,此時服務(wù)器把第4個數(shù)據(jù)項的ATTACH字段丟棄,并把DESCRIPTION字段進行截斷,4個數(shù)據(jù)項的這兩個字段長度正好等于容量限制2200字節(jié),服務(wù)器發(fā)送了4個數(shù)據(jù)項給客戶端,此時第4個數(shù)據(jù)項的DESCRIPTION字段只有50字節(jié),并不滿足過濾請求中對該字段100字節(jié)的限制,但這樣處理能使用戶在總的容量限制下獲得更多的數(shù)據(jù)信息,當然服務(wù)器也可以根據(jù)用戶預先的設(shè)置選擇不發(fā)送數(shù)據(jù)項4。在以表三和表四中,對最后一個數(shù)據(jù)項的字段進行截斷或丟棄的策略可以有不同的策略,例如可以先丟棄DESCRIPTION字段,然后根據(jù)剩余容量選擇發(fā)送ATTACH字段。在本例中,在數(shù)據(jù)過濾請求中,還可進一步設(shè)置一個字段最小長度限制信息,服務(wù)器可根據(jù)該字段最小長度限制以及字段容量限制進行字段數(shù)據(jù)過濾,以使用戶可以獲得符合自己需求的數(shù)據(jù)。例如,客戶端發(fā)送給服務(wù)器的一數(shù)據(jù)過濾-清求如下<Alert><Data>200</Data〉<Item〉<Target><LocURI>./calendar/tasks</LocURI><Meta><Type〉text/x-vcalendar</Type〉</Meta><Filter><Meta><Type>text/x-vcalendar</Type〉</Meta〉<Capacity>3500</Capacity>14<Field><Item><Meta><Type>application/vnd.syncml-devinf+xml</Type></Meta><Data>〈![CDATA[<Property><PropName>DESCRIPTION</PropName〉〈Proplnfo〉<MinSize>100</MinSize></PropInfo></Property><Property><PropName>ATTACH</PropName><PropInfo><MinSize>1000</MinSize><NoTruncate/></PropInfo></Property>]]></Data></Item></Field></Filter></Target〉<Source><LocURI>dev-tasks</LocURI></Source></Item></Alert>本例在過濾請求的DESCRIPTION字段部分增加了〈MinSize〉10(X/MinSize〉描述,在過濾請求的ATTACH字段部分增加了〈MinSize〉100(X/MinSize〉描述,分別表示只同步DESCRIPTION字段長度大于IOO字節(jié)的那些數(shù)據(jù)項,ATTACH字段長度大于1000字節(jié)的那些數(shù)據(jù)項。同時本例中〈Capacity〉350(X/Capacity〉表示生成的過濾數(shù)據(jù)DESCRIPTION字段和ATTACH字段總大小不超過3500比特的容量限制,如表五所示表五<table>tableseeoriginaldocumentpage16</column></row><table>表五中上半部分為數(shù)據(jù)項字段在服務(wù)器中的實際情況,下半部分為最后服務(wù)器發(fā)送給客戶端的數(shù)據(jù)情況。服務(wù)器逐個選擇數(shù)據(jù)項并進行相應處理,并計算此時剩余的容量限制,具體操作步驟為數(shù)據(jù)項1:DESCRIPTION字段為150字節(jié),選擇發(fā)送;ATTACH字段為500字節(jié),不選擇;剩余容量3500-150=3350字節(jié);數(shù)據(jù)項2:DESCRIPTION字段為50字節(jié),不選擇;ATTACH字段為1100字節(jié),選擇發(fā)送;剩余容量3350-1100=2250字節(jié);數(shù)據(jù)項3:DESCRIPTION字段為250字節(jié),選擇發(fā)送;ATTACH字段為1900字節(jié),選擇發(fā)送;剩余容量2250-250-1900=100字節(jié);經(jīng)過以上步驟后服務(wù)器發(fā)現(xiàn)剩余容量為100,已不能再選擇更多的字段,則不再處理后續(xù)的數(shù)據(jù)項,而只把這3個數(shù)據(jù)項發(fā)送給客戶端。若處理完前3個數(shù)據(jù)項后服務(wù)器發(fā)現(xiàn)仍有剩余容量,則服務(wù)器會繼續(xù)處理,^口下表六,斤示表六實際數(shù)據(jù)項DESCRIPTION字段長度(單位字節(jié))ATTACH字段長度(單位字節(jié))11505002501500325050041501600總共6004100發(fā)送數(shù)據(jù)項DESCRIPTION字段長度(單位字節(jié))ATTACH字段長度(單位字節(jié))11500201500325004016004003100表9.可見在對前3個數(shù)據(jù)項的字段進行截斷或丟棄操作后,仍然剩余1600字節(jié)的容量,此時服務(wù)器把第4個數(shù)據(jù)項的DESCRIPTION字段丟棄,選擇發(fā)送ATTACH字段,則4個數(shù)據(jù)項的這兩個字段長度正好等于容量限制3500字節(jié)。服務(wù)器發(fā)送這四個數(shù)據(jù)項給客戶端??梢姺?wù)器根據(jù)一些策略設(shè)置,丟棄了DESCRIPTION字段,而把剩余容量分配給了ATTACH字段。參考圖3,是本發(fā)明數(shù)據(jù)同步方法第三實施例的流程示意圖,包括步驟Cl、接收攜帶有彈性過濾標志信息的數(shù)據(jù)過濾請求,從該數(shù)據(jù)過濾請求中獲取所述彈性標志位信息,解析該數(shù)據(jù)過濾請求,獲取數(shù)據(jù)過濾條件,根據(jù)所述彈性過濾標志信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制174呂息。C2、根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù)。此處,在步驟C1、步驟C2中,具體實現(xiàn)時,可在來自客戶端(數(shù)據(jù)過濾請求的發(fā)送方)的數(shù)據(jù)過濾請求中增加一個彈性過濾標志位來實現(xiàn)在數(shù)據(jù)過濾請求中攜帶所述容量限制信息,例如在一具體實施例中,客戶端發(fā)起的一個數(shù)據(jù)過濾請求如下〈Alert〉<Data>200</Data〉<Item><Target><LocURI>./calendar/tasks</LocURI〉<Meta><Type>text/x-vcalendar</Type〉</Meta><Filter><Meta><Type>text/x-vcalendar</Type></Meta><Flexible>l</Flexible><R£cord><Item〉<Meta><Type>syncml:filtertype-cgi</Type></Meta><Data>DUE&LE;20030728T000000Z&AND;STATUS&NE;COMPLETED</Data></Item></Record><Field><Item><Meta><Type>application/vnd.syncml-devinf+xml</Type></Meta><Data>〈![CDATA[<Property><PropName>DESCRIPTION</PropName〉<PropInfo><MaxSize>100</MaxSize></PropInfo〉</Property><Property><PropName>ATTACH</PropName><PropInfo><MaxSize>1000</MaxSize><NoTruncate/></PropInfo〉</Property>]]></Data></Item></Field〉</Filter></Target><Source><LocURI>dev-tasks</LocURI></Source></Item></Alert>說明在所述數(shù)據(jù)過濾請求中加入了一個〈Flexible〉標志,并設(shè)置其值為1,這表字段的容量限制,并將容量限制與這兩個字段的實際總長度進行比較,若容量限制大于或等于實際總長度,則服務(wù)器將發(fā)送所有字段數(shù)據(jù),若容量限制小于實際總長度,再對字段進行截斷或丟棄?!碏lexible〉標志作為數(shù)據(jù)過濾請求中的一個元素,可以直接置于〈Filter〉元素中,作為〈Filter〉的子元素,或置于〈Fiek^元素中,作為〈Field〉的子元素,以表示對整個〈Field〉元素包括的內(nèi)容^f吏用該方法,也可以置于〈Field〉/〈Item〉中,作為《tem〉的子元素,以表示僅對《ten^中包括的內(nèi)容使用該方法。若〈Flexible〉標志的值設(shè)為0或沒有該標志則使用現(xiàn)有技術(shù)的方法。例如,假設(shè)該次同步中所限定的2003年7月28日前未完成的曰程安排的數(shù)目為5條,而每個數(shù)據(jù)項對于DESCRIPTION字段和ATTACH字段的限制分別是100字節(jié)和1000字節(jié),即總共1100字節(jié),這樣服務(wù)器可以計算出對所有5個數(shù)據(jù)項的這兩個字段的總限制是1100x5=5500字節(jié)?,F(xiàn)假z沒這5個數(shù)據(jù)項的這兩個字段的實際長度如表七所示<table>tableseeoriginaldocumentpage20</column></row><table>服務(wù)器計算出這5個數(shù)據(jù)項的DESCRIPTION字段總長度為480字節(jié),ATTACH字段總長度為5010字節(jié),它們的總和為5490字節(jié),這小于從同步請求中計算出的兩個字段的總限制為5500字節(jié),則此時服務(wù)器將把5個數(shù)據(jù)項這兩個字#史的所有5490字節(jié)的內(nèi)容發(fā)送^合客戶端,完成該次同步。而若采用現(xiàn)有技術(shù)中的方法,服務(wù)器將會對超長的數(shù)據(jù)進行截斷或丟棄,這時發(fā)送給客戶端的5個數(shù)據(jù)項的情況將如表八所示表八:數(shù)據(jù)項DESCRIPTION字段長度(單位字節(jié))ATTACH字段長度(單位字節(jié))110010002100310050041000300總共3401500從表八中可以看出,現(xiàn)有技術(shù)中服務(wù)器發(fā)送的這兩個字段的的總字節(jié)數(shù)只有1840字節(jié)。相對與現(xiàn)有技術(shù),因此本實施例提供的方法可讓用戶獲得更多的數(shù)據(jù)信息,避免了用戶希望獲得的數(shù)據(jù)信息被截斷,從而優(yōu)化了服務(wù)器的數(shù)據(jù)過濾功能,增強了用戶體驗感。在本發(fā)明實施例方法中,若字段的實際總長度超過了長度限制,則服務(wù)器再可以根據(jù)預設(shè)數(shù)據(jù)項優(yōu)先級信息和/或字段截斷策略選擇截斷或丟棄一些字段,如表九所示表九數(shù)據(jù)項DESCRIPTION字段長度(單位字節(jié))ATTACH字段長度(單位字節(jié))1100100021501500200500450010019406004940服務(wù)器計算出兩字段的實際總長度為5540字節(jié),超出了容量限制40字節(jié),此時服務(wù)器可以所述預設(shè)的數(shù)據(jù)項優(yōu)先級信息和/或字段截斷策略對字段進行截斷或丟棄。在本例的數(shù)據(jù)過濾請求中,對于ATTACH字段,設(shè)置〈NoTruncate/〉標識,該〈NoTruncate/〉標識表示不允許服務(wù)器截斷該字#更,若未i殳置該〈NoTruncate/〉21標識,則表示允許服務(wù)器對該ATTACH字段進行截斷。如在服務(wù)器中所述字段截斷策略設(shè)置為對允許截斷的字段進行截斷,則此時服務(wù)器可以選擇一個數(shù)據(jù)項,對它的DESCRIPTION字段進行截斷,選擇數(shù)據(jù)項的方法可以是按照數(shù)據(jù)項的優(yōu)先級進行,優(yōu)先級可以是按順序從后往前、從前往后、按字段長度從大到小、從小到大、或是按用戶預先對數(shù)據(jù)項指定的優(yōu)先級進行。假設(shè)按從后往前的順序選擇,此時對數(shù)據(jù)項5的該字段進行截斷,截斷后該字段長度為60字節(jié)。再如按用戶預先指定的優(yōu)先級選擇,假設(shè)數(shù)據(jù)項4的優(yōu)先級最低,則對它的該字段進行截斷,截斷后為10字節(jié)。若選擇一個數(shù)據(jù)項進行截斷后,實際總長度仍然超過容量限制,則按照優(yōu)先級選擇另一個數(shù)據(jù)項進行截斷。再如,策略還可以設(shè)置為對不能截斷的數(shù)據(jù)字段進行丟棄,選擇數(shù)據(jù)項的方法仍然是按照上述的優(yōu)先級進行,例如按字段長度從小到大的順序,此時服務(wù)器選擇對數(shù)據(jù)項3的ATTACH字段進行丟棄。以上兩個過濾策略還可以組合或交叉使用,例如先選擇某個數(shù)據(jù)項的某字段進行丟棄,仍未滿足容量限制時,再選擇對某個數(shù)據(jù)項的某字段進行截斷?;蛘咂渌赡艿慕M合方式。通過上述描述可知,本例中所描述的容量限制為對過濾請求中所指定字段的字段容量限制。C3、向客戶端發(fā)送所述步驟C2生成的所述過濾數(shù)據(jù)。此處,步驟C3與所述步驟B3類似,在此不予贅述。參考圖4,是本發(fā)明數(shù)據(jù)同步方法第四實施例的流程示意圖,包括步驟Dl、從客戶端中獲取彈性過濾標志信息或容量限制標志信息;此處,客戶端的DS管理對象中存儲兩個標志位節(jié)點,F(xiàn)lexible節(jié)點和Capacity節(jié)點,在數(shù)據(jù)同步之前由服務(wù)器主動獲取這兩個標志位的值?!磝>FilterFlexibleCapacity其中<X>:DS管理對象的根節(jié)點;<X>/Filter:是內(nèi)部節(jié)點,用于存放過濾參數(shù);<X>/Filter/Flexible:是本發(fā)明實施例同步方法的彈性過濾標志位,有兩個可用取值0或1,值為0時表示不采用彈性過濾,值為1時采用彈性過濾;<X>/Filter/Capacity:是本發(fā)明實施例同步方法容量限制標志位,取值類型整數(shù)類型,范圍是大于等于O,小于客戶端存儲器剩余容量,若為0表示不對過濾請求進行容量限制。此處,〈Capacity〉容量限制的值可根據(jù)客戶端剩余存儲空間或客戶端針對某數(shù)據(jù)庫的剩余存儲空間的大小進行設(shè)置。在同步操作前服務(wù)器使用Get命令從該管理對象中獲得相應標志位值,用以決定在后續(xù)的同步操作中,對數(shù)據(jù)項過濾的處理方法,這兩個標志位的值可以是由用戶在本地或通過服務(wù)器遠程指定的,也可以是客戶端根據(jù)當前的存儲器情況自動指定。D2、獲取容量限制信息。此處,若在所述步驟D1中獲取的是來自客戶端的彈性過濾標志信息,則接收來自所述客戶端的數(shù)據(jù)過濾請求后,解析該數(shù)據(jù)過濾請求,獲取數(shù)據(jù)過濾條件,根據(jù)所述彈性標志位信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制信息;若在所述步驟D1中獲取的是來自客戶端的容量限制標志信息,則直接才艮據(jù)該標志位的值確定容量限制,獲取容量限制信息。D3、根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù)。D4、向客戶端發(fā)送所述步驟D3生成的所述過濾數(shù)據(jù)。參考圖五,是本發(fā)明數(shù)據(jù)同步方法第五實施例的流程示意圖,包括步驟El、接收攜帶有字段最小長度限制信息的數(shù)據(jù)過濾請求,并從該數(shù)據(jù)過濾請求中獲取所述字段最小長度限制信息;E2、根據(jù)所述字段最小長度限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);此處,在步驟E1、步驟E2中,具體實現(xiàn)時,可在來自客戶端(數(shù)據(jù)過濾請求的發(fā)送方)的數(shù)據(jù)過濾請求中增加一個字段最小長度限制MinSize元素以限制服務(wù)器下發(fā)的數(shù)據(jù)項的某些字段不能小于一個閾值,這樣用戶可以靈活的獲得一些上次同步時被丟棄的字段,提升了用戶體驗。該元素還需被加入到服務(wù)器的設(shè)備信息中,以使服務(wù)器支持此功能。例如在一具體實施例中,客戶端發(fā)起的一個數(shù)據(jù)過濾請求如下<Alert><Data>200</Data><Item><Target><Filter〉<Meta><Type>text/x-vcalendar</Type></Meta><Field><Item><Data〉〈![CDATA[<Property><PropName>ATTACH</PropName><PropInfo><MinSize>1000</MinSize></PropInfo></Property>]]></Data></Item></Field〉</Filter></Target><Source><LocURI>dev-tasks</LocURI〉</Source〉</Item></Alert>本例在過濾請求的ATTACH字段部分增加了〈MinSizeHOO(X/MinSize〉描述,表示只同步ATTACH字段長度大于IOOO字節(jié)的那些數(shù)據(jù)項。若在本次數(shù)據(jù)同步的上一次同步過程中是指定了同步ATTACH字段長度小于1000字節(jié)的那些數(shù)據(jù)項,也即上次同步會將ATTACH字段長度大于1000字節(jié)的那些數(shù)據(jù)項丟棄,24這樣通過本例的同步過程,客戶端就可獲得了上次同步時一些被丟棄的字段,提升了用戶體驗?!碝inSize〉與〈Maxsize〉一樣,屬于〈PropInfo〉元素的子元素,該元素還需被加入到服務(wù)器的設(shè)備信息中,以使服務(wù)器支持此功能。E3、向客戶端發(fā)送所述過濾數(shù)據(jù)。下面對與上述方法實施例相應客戶端、服務(wù)器進行詳細說明。參考圖6,是本發(fā)明客戶端實施例的組成示意圖,如圖所示本例所述客戶端主要包括請求生成單元11,用于生成攜帶有容量限制信息的數(shù)據(jù)過濾請求;請求發(fā)送單元12,用于向服務(wù)器發(fā)送所述攜帶有容量限制信息的數(shù)據(jù)過濾請求;過濾數(shù)據(jù)接收單元13,用于接收來自服務(wù)器的根據(jù)所述數(shù)據(jù)過濾請求生成的過濾數(shù)據(jù);同步更新單元14,用于根據(jù)所述過濾數(shù)據(jù)同步更新本地數(shù)據(jù)庫。此處,在本例中,客戶端根據(jù)用戶輸入的指示或自動觸發(fā)方式,由所述請求生成單元11生成攜帶有容量限制信息的數(shù)據(jù)過濾請求,并通過請求發(fā)送單元12向服務(wù)器發(fā)送該攜帶有容量限制信息的數(shù)據(jù)過濾請求,服務(wù)器接收到該數(shù)據(jù)過濾請求后,根據(jù)該請求中攜帶的容量限制信息,生成過濾數(shù)據(jù),并向客戶端發(fā)送該生成的過濾數(shù)據(jù),客戶端通過所述過濾數(shù)據(jù)接收單元13接收該過濾數(shù)據(jù),然后由同步更新單元14根據(jù)所述過濾數(shù)據(jù)同步更新本地數(shù)據(jù)庫。參考圖7,是本發(fā)明服務(wù)器的實施例組成示意圖,如圖所示本例所述服務(wù)器主要包括獲得單元21,用于獲得容量限制信息;此處,若用于執(zhí)行本發(fā)明數(shù)據(jù)同步方法第一實施例所述方法時,參考圖8,該獲得單元21主要包括第一接收單元2111,用于接收攜帶有容量限制信息的數(shù)據(jù)過濾請求;第一容量限制信息獲取單元2112,用于從所述數(shù)據(jù)過濾請求中獲取所述容量限制信息。此處,若用于執(zhí)行本發(fā)明數(shù)據(jù)同步方法第二實施例所述方法時,參考圖9,所述獲得單元21主要包括第二接收單元2121,用于接收攜帶有彈性過濾標志信息的數(shù)據(jù)過濾請求;第一獲取單元2122,用于從所述數(shù)據(jù)過濾請求中獲取所述彈性過濾標志信息以及數(shù)據(jù)過濾條件;第二容量限制信息獲取單元2123,用于根據(jù)所述彈性過濾標志信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制信息。此處,若用于執(zhí)行本發(fā)明數(shù)據(jù)同步方法第三實施例所述方法時,參考圖10,所述獲得單元21主要包括彈性過濾標志獲取單元2131,用于從客戶端獲取彈性過濾標志信息;第三接收單元2132,用于接收來自所述客戶端的數(shù)據(jù)過濾請求;第二獲取單元2133,用于從所述數(shù)據(jù)過濾請求中獲取數(shù)據(jù)過濾條件;第三容量限制信息獲取單元2134,用于根據(jù)所述彈性過濾標志信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制信息。過濾數(shù)據(jù)生成單元22,用于根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);發(fā)送單元23,用于向客戶端發(fā)送所述過濾數(shù)據(jù)。在本例中,服務(wù)器通過所述獲得單元21獲得容量限制信息,過濾數(shù)據(jù)生成單元22根據(jù)所述獲得單元21獲得的所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù),并通過發(fā)送單元23向客戶端發(fā)送所述過濾數(shù)據(jù)。當本例所述的服務(wù)器用于執(zhí)行本發(fā)明數(shù)據(jù)同步方法第二實施例所述方法時,本例中所述獲得單元21主要包括第一接收單元2111和第一容量限制信息獲取單元2112,此時,服務(wù)器通過所述第一接收單元2111接收來自客戶端的攜帶有容量限制信息的數(shù)據(jù)過濾請求,并通過所述第一容量限制信息獲取單元2112從所述數(shù)據(jù)過濾請求中獲取所述容量限制信息。當本例所述的服務(wù)器用于執(zhí)行本發(fā)明數(shù)據(jù)同步方法第三實施例所述方法時,本例中所述獲得單元21主要包括第二接收單元2121、第一獲取單元2122和第二容量限制信息獲取單元2123,此時,服務(wù)器通過所述第二接收單元2121接收來自客戶端的攜帶有彈性過濾標志信息的數(shù)據(jù)過濾請求,并通過所述第一獲取單元2122從所述數(shù)據(jù)過濾請求中獲取所述彈性過濾標志信息以及數(shù)據(jù)過濾條件,然后通過所述第二容量限制信息獲取單元21234艮據(jù)所述彈性過濾標志信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制信息。當本例所述的服務(wù)器用于執(zhí)行本發(fā)明數(shù)據(jù)同步方法第四實施例所述方法時,本例中所述獲得單元21主要包括彈性過濾標志獲取單元2131、第三接收單元2132、第二獲取單元2133以及第三容量限制信息獲取單元2134,此時,月良通過第三接收單元2132接收來自所述客戶端的數(shù)據(jù)過濾請求,由第二獲取單元2133從所述數(shù)據(jù)過濾請求中獲取數(shù)據(jù)過濾條件,然后通過第三容量限制信息獲取單元2134根據(jù)所述彈性過濾標志信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制信息。實施本發(fā)明實施例,服務(wù)器獲得來自客戶端的容量限制信息,根據(jù)該容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù),從而優(yōu)化了服務(wù)器的數(shù)據(jù)過濾功能,提升了用戶體驗感。以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。權(quán)利要求1、一種數(shù)據(jù)同步方法,其特征在于,包括獲得容量限制信息;根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);向客戶端發(fā)送所述過濾數(shù)據(jù)。2、如權(quán)利要求l所述的方法,其特征在于,所述獲取容量限制信息包括接收攜帶有容量限制信息的數(shù)據(jù)過濾請求,從該數(shù)據(jù)過濾請求中獲得所述容量限制信息。3、如權(quán)利要求l所述的方法,其特征在于,所述獲取容量限制信息包括接收攜帶有彈性過濾標志信息的數(shù)據(jù)過濾請求,從該數(shù)據(jù)過濾請求中獲取所述彈性過濾標志信息以及獲取數(shù)據(jù)過濾條件,根據(jù)所述彈性過濾標志信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制信息。4、如權(quán)利要求l所述的方法,其特征在于,所述獲取容量限制信息包括從客戶端中獲取彈性過濾標志信息,接收來自所述客戶端的數(shù)據(jù)過濾請求,并從該數(shù)據(jù)過濾請求中獲取數(shù)據(jù)過濾條件,根據(jù)所述彈性過濾標志信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制信息。5、如權(quán)利要求2所述的方法,其特征在于,所述容量限制信息為數(shù)據(jù)項容量限制信息。6、如權(quán)利要求3或4所述的方法,其特征在于,所述容量限制信息為字段容量限制信息。7、如權(quán)利要求2至5任意一項所述的方法,其特征在于,所述數(shù)據(jù)過濾請求中包括字段最小長度限制信息。8、如權(quán)利要求1至5任意一項所述的方法,其特征在于,所述根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作包括根據(jù)所述容量限制信息以及預設(shè)的數(shù)據(jù)項過濾策略信息,執(zhí)行數(shù)據(jù)過濾操作。9、如;K利要求8所述的方法,其特征在于,所述數(shù)據(jù)項過濾策略信息包括字段優(yōu)先級信息和/或數(shù)據(jù)項截斷策略信息和/或數(shù)據(jù)項中各字段的截斷策略信自10、一種數(shù)據(jù)同步方法,其特征在于,包括接收攜帶有字段最小長度限制信息的數(shù)據(jù)過濾請求,并從該數(shù)據(jù)過濾請求中獲取所述字段最小長度限制信息;根據(jù)所述字段最小長度限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);向客戶端發(fā)送所述過濾數(shù)據(jù)。11、一種客戶端,其特征在于,包括請求生成單元,用于生成攜帶有容量限制信息的數(shù)據(jù)過濾請求;請求發(fā)送單元,用于向服務(wù)器發(fā)送所述攜帶有容量限制信息的數(shù)據(jù)過濾請求。12、如權(quán)利要求11所述的客戶端,其特征在于,還包括過濾數(shù)據(jù)接收單元,用于接收來自服務(wù)器的根據(jù)所述數(shù)據(jù)過濾請求生成的過濾^:據(jù);同步更新單元,用于根據(jù)所述過濾數(shù)據(jù)同步更新本地數(shù)據(jù)庫。13、一種服務(wù)器,其特征在于,包括獲得單元,用于獲得容量限制信息;過濾數(shù)據(jù)生成單元,用于根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);發(fā)送單元,用于向客戶端發(fā)送所述過濾數(shù)據(jù)。14、如權(quán)利要求13所述的服務(wù)器,其特征在于,所述獲得單元包括第一接收單元,用于接收攜帶有容量限制信息的數(shù)據(jù)過濾請求;第一容量限制信息獲取單元,用于解析所述數(shù)據(jù)過濾請求,獲取所述容量限制信息。15、如權(quán)利要求13所述的服務(wù)器,其特征在于,所述獲得單元包括第二接收單元,用于接收攜帶有彈性過濾標志信息的數(shù)據(jù)過濾請求;第一獲取單元,用于從所述數(shù)據(jù)過濾請求中獲取所述彈性過濾標志信息以及數(shù)據(jù)過濾條件;第二容量限制信息獲取單元,用于根據(jù)所述彈性過濾標志信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制信息。16、如權(quán)利要求13所述的服務(wù)器,其特征在于,所述獲得單元包括彈性過濾標志信息獲取單元,用于乂人客戶端中獲取彈性過濾標志信息;第三接收單元,用于接收來自所i^戶端的數(shù)據(jù)過濾請求;第二獲取單元,用于從所述數(shù)據(jù)過濾請求獲取數(shù)據(jù)過濾條件;第三容量限制信息獲取單元,用于根據(jù)所述彈性過濾標志信息以及滿足所述數(shù)據(jù)過濾條件的數(shù)據(jù)項數(shù)獲取所述容量限制信息。全文摘要本發(fā)明公開了一種數(shù)據(jù)同步方法,包括獲得容量限制信息;根據(jù)所述容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù);將生成的過濾數(shù)據(jù)發(fā)送給過濾請求的發(fā)送方。同時,本發(fā)明還公開了相應的客戶端和服務(wù)器,本發(fā)明實現(xiàn)了服務(wù)器通過獲得來自客戶端的容量限制信息,根據(jù)該容量限制信息,執(zhí)行數(shù)據(jù)過濾操作,生成過濾數(shù)據(jù),從而優(yōu)化了服務(wù)器的數(shù)據(jù)過濾功能,提升了用戶體驗感。文檔編號H04L29/06GK101557380SQ20081002732公開日2009年10月14日申請日期2008年4月10日優(yōu)先權(quán)日2008年4月10日發(fā)明者劉海濤,悅宋,睿王申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1