一種應用共享數據的方法及系統的制作方法
【專利摘要】本發明公開一種應用共享數據的方法及系統,其中,方法包括步驟:A、第一應用向系統請求數據;B、系統判斷第一應用所請求的數據是第一應用內部的數據還是第二應用的數據,當所請求的數據是第一應用內部的數據時,獲取第一應用的應用ID轉入步驟C,否則查詢第二應用的應用ID,轉入步驟C;C、根據相應的應用ID以及請求數據的方法名查詢所請求的數據是否在緩存中,當是時直接從緩存中獲取數據;當否時根據應用ID向服務器端請求數據,并從服務器端返回數據。
【專利說明】一種應用共享數據的方法及系統
【技術領域】
[0001]本發明涉及數據共享和備份領域,尤其涉及一種應用共享數據的方法及系統。
【背景技術】
[0002]隨著智能終端的發展,各種運行在智能終端上的應用無論從數量上,還是從種類上都是大幅增長。隨著智能終端應用數量及種類的增長,為了給用戶帶來更好的體驗,在同一個終端上,整合應用間的功能的趨勢越來越明顯,應用間的交互及數據共享需求也就越來越迫切。
[0003]雖然目前各個操作系統已經提供了多種應用間數據共享的方法,如Android系統就提供了 sharePreference (一種存儲基礎類型的存儲機制)、provider (Android支持多個應用間的共享數據)、文件等方法來實現應用間的數據共享。但是這些方法沒有對數據獲取和緩存進行管理,要么需要多次從服務器端獲取數據,浪費資源;要么一個應用需要和多個應用打交道,增加了應用共享的復雜性,開發成本也相應增加,且容易出錯。
[0004]因此,現有技術還有待于改進和發展。
【發明內容】
[0005]鑒于上述現有技術的不足,本發明的目的在于提供一種應用共享數據的方法及系統,旨在解決現有技術中應用共享數據方法調用復雜、開發成本高、出錯概率高的問題。
[0006]本發明的技術方案如下:
一種應用共享數據的方法,其中,包括步驟:
A、第一應用向系統請求數據;
B、系統判斷第一應用所請求的數據是第一應用內部的數據還是第二應用的數據,當所請求的數據是第一應用內部的數據時,獲取第一應用的應用ID轉入步驟C,否則查詢第二應用的應用ID,轉入步驟C ;
C、根據相應的應用ID以及請求數據的方法名查詢所請求的數據是否在緩存中,當是時直接從緩存中獲取數據;當否時根據應用ID向服務器端請求數據,并從服務器端返回數據。
[0007]所述的應用共享數據的方法,其中,所述步驟C之后還包括:
D、當所請求的數據是從服務器端返回時,將請求的數據緩存,并建立應用ID、請求數據的方法名、數據的對應關系。
[0008]所述的應用共享數據的方法,其中,所述步驟D中,緩存數據的方式為根據數據類型采用數據庫或文件的存儲方式。
[0009]所述的應用共享數據的方法,其中,所述步驟A之前還包括:
第一應用向系統注冊,使第一應用和系統服務器端交互連接,同時獲取用于標識第一應用的應用ID。
[0010]所述的應用共享數據的方法,其中,所述步驟C中,向服務器端請求數據的過程具體包括:
Cl、根據應用ID查詢服務器端地址和協議;
C2、根據服務器端地址和協議,利用反射機制獲取服務器端請求方法;
C3、利用所述服務器端請求方法向服務器端請求數據,并解析返回的數據。
[0011]一種應用共享數據的系統,其中,包括:
消息處理模塊,用于接收并處理第一應用向系統發送的數據請求;
第一判斷模塊,用于判斷第一應用所請求的數據是第一應用內部的數據還是第二應用的數據;
第二判斷模塊,用于根據相應的應用ID以及請求數據的方法名查詢所請求的數據是否在緩存中;
數據獲取模塊,用于直接從緩存中獲取數據;
數據請求模塊,用于根據應用ID向服務器端請求數據,并從服務器端返回數據。
[0012]所述的應用共享數據的系統,其中,還包括:
數據緩存模塊,用于當所請求的數據是從服務器端返回時,將請求的數據緩存,并建立應用ID、請求數據的方法名、數據的對應關系。
[0013]所述的應用共享數據的系統,其中,還包括:
注冊模塊,用于向系統注冊,使第一應用和系統服務器端交互連接,同時獲取用于標識第一應用的應用ID。
[0014]所述的應用共享數據的系統,其中,所述數據請求模塊具體包括:
查詢單元,用于根據應用ID查詢服務器端地址和協議;
反射單元,用于根據服務器端地址和協議,利用反射機制獲取服務器端請求方法;請求解析單元,用于利用所述服務器端請求方法向服務器端請求數據,并解析返回的數據。
[0015]有益效果:本發明通過應用共享的方法進行改進,使多個應用需要服務器端同一個數據時,只需一個應用一次請求,其他應用即可復用返回數據,節省了資源,提高了效率;同時,一個應用需要多個應用的共享數據時,不需要同多個應用進行交互,降低了應用間的耦合性,同時共享數據的獲取方式一致,降低了復雜度及開發成本。
【專利附圖】
【附圖說明】
[0016]圖1為本發明應用共享數據的方法較佳實施例的流程圖。
[0017]圖2為圖1所示方法中步驟S103的具體流程圖。
[0018]圖3為本發明應用共享數據的系統較佳實施例的結構框圖。
[0019]圖4為圖3所示系統中數據請求模塊的結構框圖。
【具體實施方式】
[0020]本發明提供一種應用共享數據的方法及系統,為使本發明的目的、技術方案及效果更加清楚、明確,以下對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0021]請參閱圖1,圖1為本發明應用共享數據的方法較佳實施例的流程圖,如圖所示,其包括步驟:
5101、第一應用向系統請求數據;
5102、系統判斷第一應用所請求的數據是第一應用內部的數據還是第二應用的數據,當所請求的數據是第一應用內部的數據時,獲取第一應用的應用ID轉入步驟S103,否則查詢第二應用的應用ID,轉入步驟S103 ;
5103、根據相應的應用ID以及請求數據的方法名查詢所請求的數據是否在緩存中,當是時直接從緩存中獲取數據,當否時根據應用ID向服務器端請求數據,從服務器端返回數據。
[0022]在步驟S103中,每個應用注冊時需要預設該應用可以共享哪些數據,而這些數據就是通過方法名來區分的。比如應用A需要去用應用B中的共享數據Datal,而請求Datal的方法名getDatal已經明確(每個數據從數據提供端獲取的方法名是固定的),那么應用B就已經在系統中有一條對應的記錄表示應用B可以通過方法名為getDatal的方法來共享數據Datal,其它應用就可以根據應用B的ID和getDatal來獲取該共享數據。
[0023]在步驟SlOl中,首先是某個應用(第一應用)向系統請求數據,在向系統請求數據前,還需要預先在系統注冊,即在步驟SlOl之前還包括步驟:
第一應用向系統注冊,第一應用和系統服務器端交互連接,同時系統服務器端獲取用于標識第一應用的應用ID。在系統服務器端維護一可共享數據的應用集合,包括第二應用的需要共享數據的應用均已經向系統注冊。
[0024]向系統注冊的目的是讓注冊的應用能夠共享數據給其他應用,并能獲得其他應用的數據;在注冊后,還獲取能夠唯一標識第一應用的應用ID (appID)。此步驟中,還記錄應用和服務器端協議和方法的對應關系,這樣當需要從服務器端獲取數據時,即可按照約定的協議請求數據。
[0025]在步驟S102中,第一應用向系統請求數據后,系統會判斷其請求的數據屬于第一應用內部數據還是其他應用的數據,即判定是內部數據還是外部數據,當是內部數據時,獲取第一應用的應用ID ;當判定是其他應用例如第二應用的數據,那么查詢第二應用在注冊時獲取的應用ID,并進入到步驟S103。值得說明的是,所述第二應用與第一應用類似,已預先在系統注冊其應用信息。
[0026]在步驟S103中,系統會根據獲取到的相應的應用ID和請求數據的方法名來查詢所請求的數據是否在緩存中。如果是在緩存中已經存儲了,那么可直接從緩存中獲取相應的數據,此時應用獲取數據成功。
[0027]而當查詢到所述請求的數據不在緩存中時,則需要跟服務器端進行交互,從服務器端獲取相應的數據,此時需根據appID查詢服務器端地址、協議,按照約定的協議向服務器端請求數據,例如通過Android系統的反射機制向服務器端請求數據,然后解析返回的數據,返回至請求的第一應用。
[0028]如圖2所示,所述查詢所請求的數據是否在緩存中的步驟可具體細化為以下步驟:
S201、根據應用ID查詢服務器端地址和協議;一般地,在數據庫中存儲有相應要查找的信息,并設置應用ID與對應服務器端地址和協議的對應關系,根據應用ID進行地址與協議的查找。[0029]S202、根據服務器端地址和協議,利用反射機制獲取服務器端請求方法;
S203、利用所述服務器端請求方法向服務器端請求數據,并解析返回的數據。在解析返回的數據之后,可通知第一應用數據獲取成功。
[0030]在從服務器端獲取數據后,還需將數據緩存,以便在下次應用需要獲取該數據時,直接從緩存中獲取數據即可,所以在步驟S103之后還包括步驟:
S104、當所請求的數據是從服務器端返回時,將請求的數據緩存,并建立應用ID、請求數據的方法名、數據的對應關系。這里數據的對應關系是指應用ID,請求數據的方法名的對應關系,在注冊時我們已經將應用ID,請求數據的方法名建立了對應關系。該方法中具體有哪些對應關系,可以根據實現自行定義,例如包括“應用ID”,〃是否有緩存",〃獲取緩存數據方法名〃這幾個數據之間的對應關系。至于數據緩存的方式,可以根據數據類型的不同采用數據庫、文件或者系統的其他存儲方式進行緩存。
[0031]通過本發明,在多個應用需要獲取同一個數據時,只需要某個應用向服務器端請求一次,其他應用均可復用服務器端返回的數據,從節省了資源,提高了共享效率。
[0032]而在一個應用需要多個應用的共享數據時,也只需要與系統進行交互,而不用各個應用之間進行關聯,例如應用A需要應用B、C、D的共享數據,傳統的共享方法是應用A和應用B、C、D分別進行交互,所以應用B、C、D需要提供相應的共享方式,使應用A能夠訪問到應用B、C、D,而這些共享方式可能完全不一樣,這將增大應用共享數據的開發成本和復雜度。而采用本發明,應用A只需和系統進行交互,應用B、C、D也只需要和系統進行交互,這大大降低了出錯率和開發成本。
[0033]在本發明中,應用之間共享的數據并不受限制,即可以是用戶設置的數據,也可以是從服務器端獲取的數據,還可以是某個應用的中間結果數據,所以對于共享的數據本身具有通用性。
[0034]基于上述方法,本發明還提供一種應用共享數據的系統,如圖3所示,其包括: 消息處理模塊100,用于接收并處理第一應用向系統發送的數據請求;
第一判斷模塊200,用于判斷第一應用所請求的數據是第一應用內部的數據還是第二應用的數據;
第二判斷模塊300,用于根據相應的應用ID以及請求數據的方法名查詢所請求的數據是否在緩存中;
數據獲取模塊400,用于直接從緩存中獲取數據;
數據請求模塊500,用于根據應用ID向服務器端請求數據,并從服務器端返回數據。
[0035]進一步,還包括:
數據緩存模塊,用于當所請求的數據是從服務器端返回時,將請求的數據緩存,并建立應用ID、請求數據的方法名、數據的對應關系。
[0036]進一步,還包括:
注冊模塊,用于向系統注冊,使第一應用和系統服務器端交互連接,同時獲取用于標識第一應用的應用ID。在系統服務器端維護一可共享數據的應用集合,第一應用與其他可共享數據的應用預先向系統服務器端注冊。
[0037]進一步,如圖4所示,所述數據請求模塊500具體包括:
查詢單元510,用于根據應用ID查詢服務器端地址和協議; 反射單元520,用于根據服務器端地址和協議,利用反射機制獲取服務器端請求方法;請求解析單元530,用于利用所述服務器端請求方法向服務器端請求數據,并解析返回的數據。關于上述模塊單元的技術細節在前面的方法中已有詳述,故不再贅述。
[0038]綜上所述,本發明通過應用共享的方法進行改進,使多個應用需要服務器端同一個數據時,只需一個應用一次請求,其他應用即可復用返回數據,節省了資源,提高了效率;同時,一個應用需要多個應用的共享數據時,不需要同多個應用進行交互,降低了應用間的耦合性,同時共享數據的獲取方式一致,降低了復雜度及開發成本。
[0039]應當理解的是,本發明的應用不限于上述的舉例,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,所有這些改進和變換都應屬于本發明所附權利要求的保護范圍。
【權利要求】
1.一種應用共享數據的方法,其特征在于,包括步驟: A、第一應用向系統請求數據; B、系統判斷第一應用所請求的數據是第一應用內部的數據還是第二應用的數據,當所請求的數據是第一應用內部的數據時,獲取第一應用的應用ID轉入步驟C,否則查詢第二應用的應用ID,轉入步驟C ; C、根據相應的應用ID以及請求數據的方法名查詢所請求的數據是否在緩存中,當是時直接從緩存中獲取數據;當否時根據應用ID向服務器端請求數據,并從服務器端返回數據。
2.根據權利要求1所述的應用共享數據的方法,其特征在于,所述步驟C之后還包括: D、當所請求的數據是從服務器端返回時,將請求的數據緩存,并建立應用ID、請求數據的方法名、數據的對應關系。
3.根據權利要求2所述的應用共享數據的方法,其特征在于,所述步驟D中,緩存數據的方式為根據數據類型采用數據庫或文件的存儲方式。
4.根據權利要求1所述的應用共享數據的方法,其特征在于,所述步驟A之前還包括: 第一應用向系統注冊,使第一應用和系統服務器端交互連接,同時獲取用于標識第一應用的應用ID。
5.根據權利要求1所述的應用共享數據的方法,其特征在于,所述步驟C中,向服務器端請求數據的過程具體包括: Cl、根據應用ID查詢服務器端地址和協議; C2、根據服務器端地址和協議,利用反射機制獲取服務器端請求方法; C3、利用所述服務器端請求方法向服務器端請求數據,并解析返回的數據。
6.一種應用共享數據的系統,其特征在于,包括: 消息處理模塊,用于接收并處理第一應用向系統發送的數據請求; 第一判斷模塊,用于判斷第一應用所請求的數據是第一應用內部的數據還是第二應用的數據; 第二判斷模塊,用于根據相應的應用ID以及請求數據的方法名查詢所請求的數據是否在緩存中; 數據獲取模塊,用于直接從緩存中獲取數據; 數據請求模塊,用于根據應用ID向服務器端請求數據,并從服務器端返回數據。
7.根據權利要求6所述的應用共享數據的系統,其特征在于,還包括: 數據緩存模塊,用于當所請求的數據是從服務器端返回時,將請求的數據緩存,并建立應用ID、請求數據的方法名、數據的對應關系。
8.根據權利要求6所述的應用共享數據的系統,其特征在于,還包括: 注冊模塊,用于向系統注冊,使第一應用和系統服務器端交互連接,同時獲取用于標識第一應用的應用ID。
9.根據權利要求6所述的應用共享數據的系統,其特征在于,所述數據請求模塊具體包括: 查詢單元,用于根據應用ID查詢服務器端地址和協議; 反射單元,用于根據服務器端地址和協議,利用反射機制獲取服務器端請求方法;請求解析單元, 用于利用所述服務器端請求方法向服務器端請求數據,并解析返回的數據。
【文檔編號】H04L29/08GK103546532SQ201310274086
【公開日】2014年1月29日 申請日期:2013年7月2日 優先權日:2013年7月2日
【發明者】唐莎 申請人:Tcl集團股份有限公司