一種基于移動終端的數(shù)據(jù)同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種基于移動終端的數(shù)據(jù)同步方法。
【背景技術(shù)】
[0002]上世界90年代中后期以來,無線網(wǎng)絡(luò)通信技術(shù)及互聯(lián)網(wǎng)技術(shù)得到了飛速發(fā)展,促使移動通信設(shè)備功能的不斷增強,使移動通信設(shè)備越來越智能化。移動終端已經(jīng)不僅僅滿足于用戶隨時隨地的語音業(yè)務(wù)、短信業(yè)務(wù)等基本的通信需要?;诜纸M數(shù)據(jù)的移動應(yīng)用業(yè)務(wù)也已經(jīng)顯現(xiàn)出巨大的發(fā)展?jié)摿?。人們急切要求走出固定網(wǎng)絡(luò)、有線互聯(lián)網(wǎng)絡(luò)的束縛,業(yè)務(wù)應(yīng)用的可移動應(yīng)用性、可隨時隨地接入等特性越來越受到重視。隨著移動互聯(lián)網(wǎng)的廣泛應(yīng)用,越來越多的移動應(yīng)用需要通過移動網(wǎng)絡(luò)與遠(yuǎn)程設(shè)備進(jìn)行數(shù)據(jù)交互,移動終端與遠(yuǎn)程設(shè)備之間的數(shù)據(jù)同步已經(jīng)成為本領(lǐng)域爭相研宄的技術(shù)熱點。
[0003]數(shù)據(jù)同步分為上行同步和下行同步。
[0004]在上行同步方面,目前大多數(shù)應(yīng)用業(yè)務(wù)采用的是數(shù)據(jù)實時提交的方式;當(dāng)網(wǎng)絡(luò)狀況不佳時,某些移動應(yīng)用會根據(jù)業(yè)務(wù)數(shù)據(jù)特點決定是否延遲提交。
[0005]在下行同步方面,主要分為服務(wù)端的主動推送和被動拉取兩種方式。主動推送的目的主要有兩種:1、短數(shù)據(jù)和持久化連接;2、被動拉取主要采用輪詢方式。短數(shù)據(jù)作為數(shù)據(jù)推送的最初形態(tài),適用面廣,可靠性高,但是,由于這種方式與應(yīng)用業(yè)務(wù)結(jié)合性差,所有沒有被廣泛應(yīng)用。輪詢方式實現(xiàn)技術(shù)簡單,但是存在實時性不便把握,消耗流量、電量過高等缺陷。與輪詢方式相比,持久化連接可以保證數(shù)據(jù)的實時投遞,并且較好地控制移動終端的流量和電量消耗。
[0006]移動設(shè)備持久化連接方面,蘋果推出了 APNS(Apple Push Notificat1nService,蘋果推送通知服務(wù)),安卓手機上也有C2DM (Android Cloud to DeviceMessaging)、XMPP (Extensible Messaging and Presence Protocol,可擴展通訊和表不協(xié)議)和XQTT等多種解決方案,例如airpush、pubnub。如今,國內(nèi)的技術(shù)廠家也推出了自己的移動設(shè)備持久化連接整體解決方案,即個推平臺,該平臺可以實時地將業(yè)務(wù)信息投遞到用戶的移動設(shè)備上。
[0007]目前,大多數(shù)移動應(yīng)用開發(fā)商是根據(jù)應(yīng)用的特點制定一套是用于該應(yīng)用本身的數(shù)據(jù)同步機制,這不僅增加了開發(fā)難度,增加了開發(fā)成本,延長了開發(fā)周期,還會使得應(yīng)用軟件存在結(jié)構(gòu)復(fù)雜,業(yè)務(wù)邏輯與數(shù)據(jù)同步機制高度耦合、可維護(hù)性低、可重復(fù)使用性低等缺點。并且,在某些應(yīng)用場景中,存在通信網(wǎng)絡(luò)傳輸速率低、可連接性不高等情況,目前,已有的基于持久化的數(shù)據(jù)推送解決方案沒有提供一套可靠的機制來滿足這種場景下的數(shù)據(jù)同步需求。
【發(fā)明內(nèi)容】
[0008]本發(fā)明要解決的技術(shù)問題是提供一種基于移動終端的數(shù)據(jù)同步方法,用以解決現(xiàn)有技術(shù)中,沒有形成獨立于應(yīng)用的數(shù)據(jù)同步機制、且在窄帶網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)推送實時性差的問題。
[0009]為解決上述技術(shù)問題,本發(fā)明是通過以下技術(shù)方案來解決的。
[0010]本發(fā)明提供了一種基于移動終端的數(shù)據(jù)同步方法,包括:預(yù)先在移動終端和目的移動終端中分別設(shè)置移動終端組件;在應(yīng)用服務(wù)器中設(shè)置任務(wù)管理組件;移動終端中的應(yīng)用將業(yè)務(wù)數(shù)據(jù)發(fā)送給移動終端組件,由移動終端組件將業(yè)務(wù)數(shù)據(jù)上行同步至應(yīng)用服務(wù)器;上行同步成功后,應(yīng)用服務(wù)器通過任務(wù)管理組件,將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件;下行同步成功后,目的移動終端的移動終端組件將所述業(yè)務(wù)數(shù)據(jù)提交給相應(yīng)的應(yīng)用。
[0011]其中,應(yīng)用服務(wù)器通過任務(wù)管理組件,將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件,包括:上行同步成功后,業(yè)務(wù)數(shù)據(jù)被寫入應(yīng)用服務(wù)器的應(yīng)用數(shù)據(jù)庫中;數(shù)據(jù)服務(wù)器中預(yù)設(shè)的數(shù)據(jù)監(jiān)控組件,捕獲所述業(yè)務(wù)數(shù)據(jù)庫的變化,并生成數(shù)據(jù)變更日志;應(yīng)用服務(wù)器中的任務(wù)管理組件,根據(jù)數(shù)據(jù)變更日志,生成下行同步任務(wù);任務(wù)管理組件基于下行同步任務(wù),將引起業(yè)務(wù)數(shù)據(jù)庫變化的應(yīng)用數(shù)據(jù),下行同步至目的移動終端的移動終端組件。
[0012]其中,應(yīng)用服務(wù)器通過任務(wù)管理組件,將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件,包括:應(yīng)用服務(wù)器通過任務(wù)管理組件,通過持久化連接或短數(shù)據(jù)方式,將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件。
[0013]其中,應(yīng)用服務(wù)器通過任務(wù)管理組件,通過持久化連接方式,將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件,包括:任務(wù)管理組件從創(chuàng)建的下行同步任務(wù)隊列中獲取同步對象;所述同步對象為目的移動終端的移動終端組件;根據(jù)同步對象,獲取同步對象對應(yīng)的目的移動終端的持久化連接實例;將要同步給同步對象的業(yè)務(wù)數(shù)據(jù)劃分為多個數(shù)據(jù)包,并通過持久化連接,將多個數(shù)據(jù)包發(fā)送給同步對象所屬的目的移動終端;同步對象接收多個數(shù)據(jù)包,并對多個數(shù)據(jù)組包,形成業(yè)務(wù)數(shù)據(jù);同步對象以廣播的形式,向目的移動終端上的所有應(yīng)用發(fā)送業(yè)務(wù)數(shù)據(jù);業(yè)務(wù)數(shù)據(jù)歸屬的應(yīng)用對所述業(yè)務(wù)數(shù)據(jù)進(jìn)行數(shù)據(jù)處理;同步對象在業(yè)務(wù)數(shù)據(jù)接收完畢后,向任務(wù)管理組件反饋接收完畢的回執(zhí);任務(wù)管理組件在接收到接收完畢的回執(zhí)后,關(guān)閉所述業(yè)務(wù)數(shù)據(jù)的下行同步任務(wù)。
[0014]其中,應(yīng)用服務(wù)器通過任務(wù)管理組件,通過短數(shù)據(jù)方式,將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件,包括:任務(wù)管理組件從下行同步任務(wù)隊列中獲取同步對象的標(biāo)識;所述同步對象為目的移動終端的移動終端組件;將同步對象的標(biāo)識和要同步給同步對象的業(yè)務(wù)數(shù)據(jù)封裝為短數(shù)據(jù)包;將所述短數(shù)據(jù)包提交業(yè)務(wù)服務(wù)器的短信網(wǎng)關(guān);短信網(wǎng)關(guān)基于短數(shù)據(jù)包,生成短信息,并將短信息向同步對象發(fā)送;同步對象截獲短信網(wǎng)關(guān)下發(fā)的短信息;同步對象將短信息中的業(yè)務(wù)數(shù)據(jù),以廣播的方式,發(fā)送給目的移動終端中的所有應(yīng)用;所述業(yè)務(wù)數(shù)據(jù)歸屬的應(yīng)用對所述業(yè)務(wù)數(shù)據(jù)進(jìn)行數(shù)據(jù)處理;同步對象在業(yè)務(wù)數(shù)據(jù)接收完畢后,向任務(wù)管理組件反饋接收完畢的回執(zhí);任務(wù)管理組件在接收到接收完畢的回執(zhí)后,關(guān)閉所述業(yè)務(wù)數(shù)據(jù)的下行同步任務(wù)。
[0015]其中,移動終端中的應(yīng)用將業(yè)務(wù)數(shù)據(jù)發(fā)送給移動終端組件,由移動終端組件將業(yè)務(wù)數(shù)據(jù)上行同步至應(yīng)用服務(wù)器,包括:移動終端中的應(yīng)用調(diào)用移動終端組件的數(shù)據(jù)提交接口,向移動終端組件提交業(yè)務(wù)數(shù)據(jù);移動終端組件接收到業(yè)務(wù)數(shù)據(jù)之后,創(chuàng)建上行同步任務(wù);移動終端的上行同步線程基于所述上行同步任務(wù),向業(yè)務(wù)服務(wù)器發(fā)送HTTP請求;其中,所述HTTP請求中攜帶需要同步的業(yè)務(wù)數(shù)據(jù);業(yè)務(wù)服務(wù)器的任務(wù)管理組件接收HTTP請求,并向移動終端組件返回對所述HTTP請求的處理結(jié)果;如果移動終端組件收到任務(wù)執(zhí)行成功的處理結(jié)果,則關(guān)閉所述上行同步任務(wù);如果移動終端組件收到任務(wù)執(zhí)行失敗的處理結(jié)果,則繼續(xù)向業(yè)務(wù)服務(wù)器發(fā)送所述HTTP請求。
[0016]本發(fā)明有益效果如下:
[0017]本發(fā)明通過在移動終端中設(shè)置移動終端組件,在應(yīng)用服務(wù)器中設(shè)置任務(wù)管理組件,構(gòu)建了獨立于應(yīng)用的數(shù)據(jù)同步機制,因此,本發(fā)明可以不用關(guān)心移動終端內(nèi)部的數(shù)據(jù)同步方式,即可實現(xiàn)移動終端與應(yīng)用服務(wù)器之間的數(shù)據(jù)同步,進(jìn)而本發(fā)明降低了應(yīng)用開發(fā)難度,縮短了開發(fā)周期,降低了開發(fā)成本。
【附圖說明】
[0018]圖1是根據(jù)本發(fā)明一實施例的基于移動終端的數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)圖;
[0019]圖2是根據(jù)本發(fā)明一實施例的基于移動終端的數(shù)據(jù)同步系統(tǒng)的架構(gòu)圖;
[0020]圖3是根據(jù)本發(fā)明一實施例的基于移動終端的數(shù)據(jù)同步方法的流程圖;
[0021]圖4是根據(jù)本發(fā)明一實施例的基于移動終端的數(shù)據(jù)同步方法的流程示意圖;
[0022]圖5是根據(jù)本發(fā)明一實施例的通過持久化連接方式將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件的流程圖;
[0023]圖6是根據(jù)本發(fā)明一實施例的通過持久化連接方式將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件的流程示意圖;
[0024]圖7是根據(jù)本發(fā)明一實施例的通過短數(shù)據(jù)方式將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件的流程圖;
[0025]圖8是根據(jù)本發(fā)明一實施例的通過短數(shù)據(jù)方式將業(yè)務(wù)數(shù)據(jù)下行同步至目的移動終端的移動終端組件的流程示意圖;
[0026]圖9是根據(jù)本發(fā)明一實施例的業(yè)務(wù)數(shù)據(jù)的上行同步的步驟流程圖;
[0027]圖10是根據(jù)本發(fā)明一實施例的業(yè)務(wù)數(shù)據(jù)的上行同步的步驟流程示意圖。
【具體實施方式】
[0028]本發(fā)明提供了一種基于移動終端的數(shù)據(jù)同步方法。本發(fā)明的數(shù)據(jù)同步可以獨立于業(yè)務(wù)應(yīng)用,能夠滿足窄帶網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)推送的實時性需求。
[0029]以下結(jié)合附圖以及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳