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

內(nèi)容提供商網(wǎng)站交互的系統(tǒng)、服務(wù)器和移動(dòng)設(shè)備及其方法

文檔序號(hào):6350394閱讀:191來源:國(guó)知局
專利名稱:內(nèi)容提供商網(wǎng)站交互的系統(tǒng)、服務(wù)器和移動(dòng)設(shè)備及其方法
技術(shù)領(lǐng)域
本發(fā)明涉及包括移動(dòng)設(shè)備的通信,并且更具體地涉及這樣的移動(dòng)設(shè)備與互聯(lián)網(wǎng)內(nèi)容提供商網(wǎng)站之間的通信。
背景技術(shù)
諸如社交網(wǎng)網(wǎng)站(SNW)、新聞?dòng)嗛喸?、音樂和相片網(wǎng)站的內(nèi)容提供商網(wǎng)站(CPW)、 以及諸如企業(yè)到企業(yè)(Mb)或企業(yè)到消費(fèi)者(b2c)網(wǎng)站的其它類型的網(wǎng)站是交互式網(wǎng)站, 其支持諸如新聞、天氣、個(gè)人和/或企業(yè)信息、圖片、視頻以及歌曲的各種形式的數(shù)據(jù)的下載和/或上傳(例如,發(fā)帖),并且從而有助于在人和人群之中的人與人之間的連接的創(chuàng)建和維護(hù)。由一個(gè)用戶將數(shù)據(jù)上傳到CPW能夠允許其他用戶訪問和/或下載所上傳的數(shù)據(jù)。 通常,SNW為無數(shù)用戶提供了架構(gòu),以創(chuàng)建分別標(biāo)識(shí)相應(yīng)的用戶的相應(yīng)的個(gè)人空間或?qū)I(yè)空間并且允許上傳的數(shù)據(jù)與相應(yīng)的空間相關(guān)聯(lián)。
CPW能夠與正在操作常常經(jīng)由因特網(wǎng)型網(wǎng)絡(luò)與CPW聯(lián)系的各種不同類型的設(shè)備中的任何一個(gè)的用戶進(jìn)行通信。逐漸地,用戶采用移動(dòng)設(shè)備來與CPW進(jìn)行交互。隨著這樣的通信活動(dòng)增加,有發(fā)展著對(duì)于改進(jìn)在進(jìn)行這樣的通信活動(dòng)中的質(zhì)量和/或用戶友好性的不斷增加的需求。另外,還發(fā)展著對(duì)于改進(jìn)這樣的通信活動(dòng)的效率以改進(jìn)移動(dòng)設(shè)備的電池性能并且減少所有設(shè)備的數(shù)據(jù)傳輸?shù)牟粩嘣黾拥男枨蟆?br> 因此,如果能夠提供將幫助至少部分地解決前述發(fā)展需要中的一個(gè)或多個(gè)、以改進(jìn)的移動(dòng)設(shè)備和/或其它設(shè)備和/或用于允許移動(dòng)設(shè)備與CPW進(jìn)行通信的改進(jìn)的方法的形式的改進(jìn),其將是有利的。


圖1以示意形式示出了包括與多個(gè)內(nèi)容提供商網(wǎng)站進(jìn)行通信的多個(gè)移動(dòng)設(shè)備的示例通信系統(tǒng),其中通信中的一些經(jīng)由中間web服務(wù)器發(fā)生;
圖2是示出圖1的移動(dòng)設(shè)備中的一個(gè)的示例組件的框圖3是示出圖1的中間web服務(wù)器的示例組件的框圖;以及
圖4-9是示出圖1的中間web服務(wù)器和移動(dòng)設(shè)備的操作的各種示例步驟的示例性流程圖。
圖10是圖示中間服務(wù)器的操作的示例性流程圖11是圖示移動(dòng)設(shè)備的操作的示例性流程圖12是圖示中間服務(wù)器的操作的示例性流程圖13是圖示中間服務(wù)器的操作的示例性流程圖14圖示了移動(dòng)設(shè)備的示例性操作;
圖15是圖示移動(dòng)設(shè)備的操作的示例性流程圖16是圖示中間服務(wù)器的操作的示例性流程圖17是根據(jù)實(shí)施例的另一示例性通信系統(tǒng);
圖18是根據(jù)實(shí)施例的又一示例性通信系統(tǒng);
圖19圖示了客戶端設(shè)備與中間服務(wù)器之間的示例性通信;
圖20圖示了中間服務(wù)器的后端的示例性推式服務(wù);
圖21圖示了根據(jù)一個(gè)實(shí)施例的、用于導(dǎo)入聯(lián)系人的示例性方法;
圖22圖示了根據(jù)實(shí)施例的示例性序列;
圖23-30圖示了根據(jù)實(shí)施例的來自客戶端設(shè)備的示例性屏幕;
圖31圖示了根據(jù)實(shí)施例的另一示例性通信系統(tǒng);以及
圖32圖示了根據(jù)一個(gè)實(shí)施例的示例性協(xié)議。
具體實(shí)施方式
參考圖1,以簡(jiǎn)化的示意形式示出了示例通信系統(tǒng)100的框圖。如所示,在這個(gè)實(shí)施例中通信系統(tǒng)100包括三個(gè)移動(dòng)設(shè)備102,其中的一個(gè)被示出為經(jīng)由通信鏈路105與服務(wù)器進(jìn)行通信,所述服務(wù)器在本實(shí)施例中為web服務(wù)器104。移動(dòng)設(shè)備102分別表示由個(gè)人 (或用戶)或可能地由期望或需要通信能力的其它實(shí)體(例如,上網(wǎng)本或其它計(jì)算機(jī))操作的通信設(shè)備。在一些實(shí)施例中,例如,移動(dòng)設(shè)備102可以為蜂窩電話、諸如個(gè)人數(shù)字助理的其它無線設(shè)備、和/或諸如能連接到網(wǎng)絡(luò)(通信鏈路105)并且與網(wǎng)絡(luò)進(jìn)行通信的膝上型計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)的設(shè)備中的任何一個(gè)。
通信系統(tǒng)100此外被示出為包括三個(gè)內(nèi)容提供商網(wǎng)站(CPW) 106,其中的一個(gè)被示出為經(jīng)由通信鏈路108與中間web服務(wù)器104進(jìn)行通信。另外,通信鏈路110還被提供成支持與web服務(wù)器104進(jìn)行通信的移動(dòng)設(shè)備102中的一個(gè)直接與也與該web服務(wù)器進(jìn)行通信的CPW106中的那一個(gè)進(jìn)行通信,而無需web服務(wù)器104的調(diào)解。盡管移動(dòng)設(shè)備102中的僅一個(gè)和CPW 106中的一個(gè)被示出為與web服務(wù)器104進(jìn)行通信,但是將理解的是,取決于時(shí)間或者操作環(huán)境,移動(dòng)設(shè)備102和CPW 106中的任何一個(gè)或全部都能夠與web服務(wù)器進(jìn)行通信。同樣地,取決于時(shí)間或者操作環(huán)境,移動(dòng)設(shè)備102中的任何一個(gè)都能夠經(jīng)由諸如鏈路110的直接通信鏈路進(jìn)入與CPW 106中的任何一個(gè)的通信。
盡管圖1中示出了三個(gè)移動(dòng)設(shè)備102,但是在其它實(shí)施例中,僅一個(gè)移動(dòng)設(shè)備與 web服務(wù)器104進(jìn)行通信,或者替代地任何任意數(shù)量的移動(dòng)設(shè)備能夠與web服務(wù)器104進(jìn)行通信。同樣地,盡管在圖1中示出了三個(gè)CPW 106,但是在其它實(shí)施例中,僅一個(gè)CPW與 web服務(wù)器104進(jìn)行通信,或者替代地任何任意數(shù)量的CPW能夠與web服務(wù)器104進(jìn)行通信。此外,在其它實(shí)施例中,任何任意數(shù)量的移動(dòng)設(shè)備能夠經(jīng)由諸如鏈路110的直接通信鏈路與任何任意數(shù)量的CPW進(jìn)行通信。也就是說,圖1旨在表示采用經(jīng)由web服務(wù)器接口彼此間接地或者彼此直接進(jìn)行通信的任何任意數(shù)量的移動(dòng)設(shè)備和任何任意數(shù)量的CPW的各種系統(tǒng)中的任何一個(gè)系統(tǒng)。
取決于實(shí)施例,通信鏈路105、108以及110能夠?yàn)閱蝹€(gè)網(wǎng)絡(luò)或多個(gè)網(wǎng)絡(luò)的一部分, 并且每個(gè)鏈路能夠包括一個(gè)或多個(gè)有線和/或無線通信通道,例如,陸上通訊線(例如,光纖、銅)布線,微波通信、無線電信道、無線路徑、內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)和/或萬維網(wǎng)通信通路(他們本身能夠采用無數(shù)的中間硬件和/或軟件設(shè)備,包括例如無數(shù)的路由器等)。此外,各種通信協(xié)議和方法學(xué)能夠被用來在移動(dòng)設(shè)備102、web服務(wù)器104以及CPW 106之間經(jīng)由通信鏈路105、108以及110進(jìn)行通信,包括例如傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)、可擴(kuò)展消息存在協(xié)議(XMPP)、文件傳輸協(xié)議(FTP)等。在其它實(shí)施例中,也能夠利用用于幫助多個(gè)移動(dòng)設(shè)備102與CPW 106之間的信號(hào)的傳輸?shù)钠渌愋偷耐ㄐ沛溌?。盡管在本實(shí)施例中,通信鏈路/網(wǎng)絡(luò)和服務(wù)器都被討論為基于web的,但是在其它實(shí)施例中,鏈路/網(wǎng)絡(luò)和服務(wù)器能夠采取各種非基于web的形式。
如將在下文中有關(guān)圖3-16更詳細(xì)地討論的,web服務(wù)器104被配置成充當(dāng)移動(dòng)設(shè)備102與CPW 106之間的中間物。移動(dòng)設(shè)備102與CPW106之間的各種類型的通信通過web 服務(wù)器104、被web服務(wù)器104處理和/或監(jiān)視,所述各種類型的通信包括例如包括文件(例如,相片、音樂、視頻、文本輸入等)的上傳和下載、博客發(fā)布以及消息傳遞(例如,短消息服務(wù)(SMS)、多媒體消息服務(wù)(MMS)以及即時(shí)發(fā)消息(IM))的通信。CPW通常旨在包括支持諸如個(gè)人和/或企業(yè)信息、圖片、視頻以及歌曲的各種形式的數(shù)據(jù)的下載和上傳(例如,發(fā)布)并且從而有助于人和人群之中的人與人之間的連接的創(chuàng)建和維持的各種交互式網(wǎng)站。 CPff 的示例包括例如 i^acebookTM、MySpaceTM、hi5TM、Linkedln 以及 Twitter 。為了本發(fā)明的目的,CPW還能夠被理解成包括各種其它類型的網(wǎng)站(例如,企業(yè)到企業(yè)或企業(yè)到消費(fèi)者網(wǎng)站),盡管不完全地或主要地集中在社交網(wǎng)上,然而也包括社交網(wǎng)類型特征。其它內(nèi)容提供商網(wǎng)站包括RSS的源或其它新聞?dòng)嗛喸础⒅T如Picasa 或Wwtobucket 的相片服務(wù)、以及諸如LastFM 的音樂服務(wù)。
簡(jiǎn)易信息聚合(RSS)指的是用來頻繁地發(fā)布諸如博客條目、新聞?lì)^條、音頻以及視頻的更新的作品的web訂閱源格式。RRS文檔(其被稱為“訂閱源”或“頻道”)包括完全的或概略的文本、加上諸如出版日期和原創(chuàng)作者的元數(shù)據(jù),并且可以包括相片。
參考圖2,提供了圖示根據(jù)一個(gè)實(shí)施例的諸如移動(dòng)設(shè)備102的移動(dòng)設(shè)備的示例內(nèi)部組件200的框圖。如圖2中所示,組件200包括一個(gè)或多個(gè)無線收發(fā)器202、203、205、處理器204(例如,微處理器、微計(jì)算機(jī)、專用集成電路等)、存儲(chǔ)器部分206、一個(gè)或多個(gè)輸出設(shè)備208、以及一個(gè)或多個(gè)輸入設(shè)備210。在至少一些實(shí)施例中,存在包括諸如顯示器的一個(gè)或多個(gè)輸出設(shè)備208和諸如小鍵盤或觸摸傳感器的一個(gè)或多個(gè)輸入設(shè)備210的用戶接口。內(nèi)部組件200進(jìn)一步能夠包括組件接口 212以向輔助組件或附件提供直接連接以用于另外的或增強(qiáng)的功能性。內(nèi)部組件200優(yōu)選地還包括諸如電池的電源214,以用于向其它內(nèi)部組件提供電力同時(shí)使移動(dòng)設(shè)備能夠是可攜帶的。內(nèi)部組件200中的全部都能夠經(jīng)由一個(gè)或多個(gè)內(nèi)部通信鏈路232(例如,內(nèi)部總線)耦合到彼此,并且與彼此進(jìn)行通信。
無線收發(fā)器202中的每一個(gè)都利用無線技術(shù)以便進(jìn)行通信,所述無線技術(shù)能夠包括例如(但不限于)基于蜂窩的通信技術(shù),諸如模擬通信(使用AMPS)、數(shù)字通信(使用 CDMA、TDMA, GSM、iDEN、GPRS、EDGE 等)、以及下一代通信(使用 UMTS、WCDMA, LTE、IEEE 802. 16等)或其變體;或?qū)Φ然蛘咦越M織通信技術(shù),諸如HomeRF (射頻)、藍(lán)牙以及IEEE 802. ll(a、b、g或η);或其它無線通信技術(shù),諸如紅外技術(shù)。在本實(shí)施例中,無線收發(fā)器202 包括蜂窩收發(fā)器203和無線局域網(wǎng)(WLAN)收發(fā)器205,但是在其它實(shí)施例中,存在這些類型中的無線收發(fā)器中的僅一個(gè)(并且可能地這些類型的無線收發(fā)器和/或其它類型的無線收發(fā)器都不存在)。通過使用無線收發(fā)器202,移動(dòng)設(shè)備102不僅能經(jīng)由通信鏈路110與CPW 106進(jìn)行通信并且還能經(jīng)由通信鏈路105與web服務(wù)器104 (并且因此再次間接與CPW 106) 進(jìn)行通信。
與移動(dòng)設(shè)備102的內(nèi)部組件200的其它部分相結(jié)合的無線收發(fā)器202的示例操作能夠采取各種形式并且能夠包括例如操作,在該操作中,在接收到無線信號(hào)時(shí),內(nèi)部組件檢測(cè)通信信號(hào)并且收發(fā)器202對(duì)該通信信號(hào)進(jìn)行解調(diào)以重新獲得由無線信號(hào)傳送的諸如語音和/或數(shù)據(jù)的傳入信息。在從收發(fā)器202接收到傳入信息之后,處理器204對(duì)該傳入信息進(jìn)行格式化以用于一個(gè)或多個(gè)輸出設(shè)備208。同樣地,為了無線信號(hào)的傳輸,處理器204 對(duì)傳出的信息進(jìn)行格式化,其可以或可以不由輸入設(shè)備210來激活,并且將該傳出信息傳遞到無線收發(fā)器202中的一個(gè)或多個(gè)以調(diào)制成通信信號(hào)。無線收發(fā)器202經(jīng)由無線和(也可能有線的)通信鏈路將經(jīng)調(diào)制的信號(hào)傳遞到諸如web服務(wù)器104和CPW 106中的一個(gè)或多個(gè)的其它設(shè)備(以及可能地傳遞到諸如小區(qū)塔、接入點(diǎn)、或另一服務(wù)器或各種遠(yuǎn)程設(shè)備中的任何一個(gè)的其它設(shè)備)。
取決于實(shí)施例,內(nèi)部組件200的輸入和輸出設(shè)備208、210能夠包括各種視覺、音頻和/或機(jī)械輸出。例如,輸出設(shè)備208能夠包括諸如液晶顯示器和發(fā)光二極管指示器的一個(gè)或多個(gè)視覺輸出設(shè)備216 ;諸如揚(yáng)聲器、警報(bào)器和/或蜂鳴器的一個(gè)或多個(gè)音頻輸出設(shè)備 218 ;和/或諸如振動(dòng)機(jī)構(gòu)或其它觸覺反饋系統(tǒng)的一個(gè)或多個(gè)機(jī)械輸出設(shè)備220。視覺輸出設(shè)備216尤其能夠包括視頻屏幕。同樣地,以舉例的方式,輸入設(shè)備210能夠包括諸如光學(xué)傳感器(例如,相機(jī))的一個(gè)或多個(gè)視覺輸入設(shè)備222 ;諸如麥克風(fēng)的一個(gè)或多個(gè)音頻輸入設(shè)備224;以及諸如翻轉(zhuǎn)傳感器、鍵盤、小鍵盤、選擇按鈕、導(dǎo)航群集、觸摸板、觸摸屏、電容傳感器、運(yùn)動(dòng)傳感器、以及開關(guān)的一個(gè)或多個(gè)機(jī)械輸入設(shè)備226。能夠致動(dòng)輸入設(shè)備210 中的一個(gè)或多個(gè)的動(dòng)作能夠不僅包括按鈕或其它致動(dòng)器的物理按壓/致動(dòng),而且還包括例如打開移動(dòng)設(shè)備、將設(shè)備解鎖、使設(shè)備移動(dòng)以致動(dòng)運(yùn)動(dòng)、使設(shè)備移動(dòng)以致動(dòng)位置定位系統(tǒng)以及對(duì)設(shè)備進(jìn)行操作。
如圖2中所示,移動(dòng)設(shè)備102的內(nèi)部組件200還能夠包括各種類型的傳感器2 中的一個(gè)或多個(gè)。傳感器2 能夠包括例如接近傳感器(光檢測(cè)傳感器、超聲收發(fā)器或紅外收發(fā)器)、觸摸傳感器、高度傳感器、能夠包括例如全球定位系統(tǒng)(GPQ接收器、三角測(cè)量接收器、加速計(jì)、傾斜傳感器、陀螺儀的位置電路、或能夠標(biāo)識(shí)移動(dòng)設(shè)備102的當(dāng)前位置或用戶設(shè)備接口(運(yùn)載模式)的任何其它信息收集設(shè)備。
內(nèi)部組件200的存儲(chǔ)器部分206能夠包括各種形式(例如,只讀存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器、靜態(tài)隨機(jī)存取存儲(chǔ)器、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器等)中的任何一個(gè)的一個(gè)或多個(gè)存儲(chǔ)器設(shè)備,并且能夠由處理器204用來存儲(chǔ)和檢索數(shù)據(jù)。由存儲(chǔ)器部分206存儲(chǔ)的數(shù)據(jù)能夠包括但是不必限于操作系統(tǒng)、應(yīng)用以及信息數(shù)據(jù)。每個(gè)操作系統(tǒng)都包括控制通信設(shè)備的基本功能的可執(zhí)行代碼,所述通信設(shè)備的基本功能諸如在內(nèi)部組件200之中包括的各種組件之間的交互,經(jīng)由無線收發(fā)器202和/或組件接口 212與外部設(shè)備的通信、以及應(yīng)用和數(shù)據(jù)向存儲(chǔ)器部分206的存儲(chǔ)和從存儲(chǔ)器部分206的對(duì)應(yīng)用和數(shù)據(jù)的檢索。每個(gè)應(yīng)用都包括利用操作系統(tǒng)為通信設(shè)備提供諸如文件系統(tǒng)服務(wù)的更多的特定功能性和在存儲(chǔ)器部分206 中存儲(chǔ)的受保護(hù)的和無保護(hù)的數(shù)據(jù)的處理的可執(zhí)行代碼。信息數(shù)據(jù)是能夠被用于執(zhí)行通信設(shè)備的功能的操作系統(tǒng)或應(yīng)用引用和/或操縱的非可執(zhí)行代碼或信息。
接下來參考圖3,更詳細(xì)地示出了圖1的web服務(wù)器104的另外的示例組件。如所示,web服務(wù)器104包括存儲(chǔ)器部分302、與該存儲(chǔ)器部分進(jìn)行通信的處理器部分304、以及用于將通信鏈路105、108與處理器304對(duì)接的一個(gè)或多個(gè)輸入/輸出(I/O)接口(未示出)。處理器部分304進(jìn)一步包括后端部分306(或社交網(wǎng)處理器)和前端部分308。后端部分306經(jīng)由通信鏈路108與CPW 106(以虛線示出)進(jìn)行通信,而前端部分308經(jīng)由通信鏈路105與移動(dòng)設(shè)備102(也以虛線示出)進(jìn)行通信。
如在下文中進(jìn)一步詳細(xì)地討論的,在至少一些實(shí)施例中,后端部分306支持與諸如CPW 106的CPW的拉式(pull)通信。拉式通信能夠例如使用對(duì)web典型的類型的表述性狀態(tài)轉(zhuǎn)移(REST)架構(gòu)來實(shí)現(xiàn),并且當(dāng)這樣的后端部分被配置成生成對(duì)于要在由web服務(wù)器104確定的時(shí)間/環(huán)境從諸如CPW 106的CPW提供給后端部分306的信息的請(qǐng)求時(shí),響應(yīng)于此CPW搜索所請(qǐng)求的數(shù)據(jù)并且將其提供回web服務(wù)器。同樣地,如在下文中進(jìn)一步詳細(xì)地討論的,在至少一些實(shí)施例中,前端部分308與諸如移動(dòng)設(shè)備102的移動(dòng)設(shè)備協(xié)力建立推式信道。
在至少一些這樣的實(shí)施例中,推式信道允許前端部分308在由web服務(wù)器104確定的時(shí)間/環(huán)境將來自web服務(wù)器104的通知(由前端部分所生成)提供給移動(dòng)設(shè)備102。 該通知能夠指示可用于提供給移動(dòng)設(shè)備的信息內(nèi)容。移動(dòng)設(shè)備102進(jìn)而能夠以移動(dòng)設(shè)備認(rèn)為適當(dāng)?shù)姆绞綄?duì)該通知作出響應(yīng)。這樣的響應(yīng)通常(但是未必一直)構(gòu)成可用的信息內(nèi)容中的一些或全部從中間web服務(wù)器104的前端部分提供給移動(dòng)設(shè)備的請(qǐng)求。
參考圖4,提供了示出圖1和圖3的web服務(wù)器104具體地當(dāng)與諸如如圖1中所示的移動(dòng)設(shè)備102和CPW 106的移動(dòng)設(shè)備和CPW進(jìn)行交互以及在諸如如圖1中所示的移動(dòng)設(shè)備102與CPW 106的移動(dòng)設(shè)備與CPW之間調(diào)解通信時(shí)的操作的示例步驟的流程圖。在開始步驟400處開始由圖4的流程圖表示的處理之后,在步驟402處web服務(wù)器104通過建立諸如與圖1的移動(dòng)設(shè)備102的通信鏈路105的與移動(dòng)設(shè)備的通信鏈路來開始操作。如將在下文中進(jìn)一步詳細(xì)地描述的,取決于實(shí)施例,與移動(dòng)設(shè)備建立通信鏈路能夠?qū)嶋H上包括與該移動(dòng)設(shè)備建立多個(gè)通信鏈路(能夠并行或在不同的時(shí)間存在)。
在一些這樣的情況下,多個(gè)通信鏈路是不同的類型的,例如,包括推式信道或除了推式信道之外的通信協(xié)議。而且,盡管與移動(dòng)設(shè)備102建立通信鏈路通常包括與基站建立電路轉(zhuǎn)換連接,并且因此通信設(shè)備將標(biāo)識(shí)信息提供給基站,移動(dòng)設(shè)備由此將它本身標(biāo)識(shí)到電信網(wǎng)絡(luò),但是到web服務(wù)器104的連接還能夠經(jīng)由網(wǎng)際協(xié)議(IP)連接或移動(dòng)設(shè)備正與其進(jìn)行通信的基站與負(fù)載平衡器/防火墻之間的點(diǎn)到點(diǎn)(P2P)電信連接,并且還能夠包括將來自web服務(wù)器的響應(yīng)信號(hào)往后提供給移動(dòng)設(shè)備,移動(dòng)設(shè)備由此識(shí)別到其正與web服務(wù)器聯(lián)系。
一旦完成步驟402,則在步驟404處,web服務(wù)器104進(jìn)一步建立與CPW的通信鏈路,諸如與圖1所示的CPW 106的通信鏈路108。在步驟404處通信鏈路的建立能夠包括例如提供一個(gè)或多個(gè)web服務(wù)調(diào)用和/或其它技術(shù)。在步驟404之后,web服務(wù)器104維持與CPW 106的正在進(jìn)行的通信,所述通信可以是(但是不必是)定期的通信,并且web服務(wù)器104在一個(gè)或多個(gè)時(shí)間從CPW獲得(拉式)信息。從CPW獲得的信息能夠包括各種不同類型的信息中的任何一個(gè),包括例如有關(guān)聯(lián)系人或朋友(包括聯(lián)系人列表)、新朋友或更新的聯(lián)系人、特殊消息、新聞、事件的信息,和可能地包括文件(諸如圖像文件或文本文件)或其它形式的數(shù)據(jù)的其它類型的信息。一旦在步驟406處獲得信息,則在步驟408處web服務(wù)器對(duì)所獲得的信息進(jìn)行處理。
另外參考圖5,根據(jù)一個(gè)實(shí)施例示出了與圖4的步驟406和步驟408相對(duì)應(yīng)的示例子步驟。如所示,步驟406(獲得步驟)能夠被理解為包括以開始子步驟500開始并且進(jìn)一步包括三個(gè)另外的子步驟502、504以及506的若干子步驟。更具體地,在子步驟502中, web服務(wù)器104將拉式信號(hào)發(fā)送到CPW 106,并且在子步驟504處,在web服務(wù)器的后端部分306處從CPW往回接收信息。在后端部分306處接收到信息之后,在步驟506處,該信息然后從后端部分被推到web服務(wù)器104的前端部分308。
進(jìn)一步如圖5中所示,在一個(gè)實(shí)施例中步驟408(處理步驟)能夠包括在子步驟 518處結(jié)束之前在子步驟508處開始的若干子步驟(圖5示出了與步驟408相對(duì)應(yīng)的子步驟,如為與步驟406相對(duì)應(yīng)的子步驟的接續(xù))。更具體地,在子步驟508處,一旦web服務(wù)器 104的前端部分308接收到在子步驟506處從后端306部分所推的信息,則該信息被放入到通用傳輸隊(duì)列中。接下來,在子步驟510處,信息能夠可選地被壓縮。此外,在子步驟512 處,信息能夠可選地被轉(zhuǎn)換成不同的格式,例如二進(jìn)制格式。如由框509所另外表示的(以虛線示出),在子步驟512處發(fā)生的格式轉(zhuǎn)換能夠包括對(duì)由CPW 106提供的特定格式信息的移除,以便對(duì)信息的格式進(jìn)行標(biāo)準(zhǔn)化并且移除站點(diǎn)特定的格式信息,然而不是來源身份,或者另外修改信息的格式以成為提供給移動(dòng)設(shè)備的統(tǒng)一的或通用的格式,無論作為信息的來源的CPW格式如何。
接下來,在子步驟514處,信息基于其是否是高重要性或低重要性被過濾。如由子步驟511、513、515以及517(以虛線示出)所進(jìn)一步表示的,這個(gè)過濾操作能夠進(jìn)一步包括確定。即,如子步驟511處所示,web服務(wù)器104能夠確定信息是否關(guān)系到朋友、新朋友、特殊消息、新聞或者事件。如果是這樣的話,則在子步驟513處,該信息被指派低級(jí)別狀態(tài)。然而,如果信息不落入那些分組中的一個(gè),則該過濾處理繼續(xù)進(jìn)行到子步驟515,在該處web 服務(wù)器確定信息是否關(guān)系到狀態(tài)更新。如果其關(guān)系到,則在子步驟517處高級(jí)別狀態(tài)被指派給該信息。在本示例實(shí)施例中,如果在子步驟515處信息被確定為不關(guān)系到狀態(tài)更新,則處理再次返回到子步驟513。將認(rèn)識(shí)到web服務(wù)器104能夠確定該信息是否為用戶的狀態(tài)更新,并且如果它是,則將該信息看作高級(jí)別,或者高優(yōu)先級(jí),并且如果它不是,則將該信息看作低級(jí)別,或低優(yōu)先級(jí)。其它類型的信息也可以被看作高優(yōu)先級(jí),然而期望限制導(dǎo)致通信設(shè)備的不斷增加的活動(dòng)的消息的數(shù)量。
一旦完成了過濾子步驟514,則處理前進(jìn)到子步驟516,其中web服務(wù)器104 (具體地web服務(wù)器的前端部分308)確定可能在步驟406處從CPW 106獲得的信息與更早地從該相同的CPW接收到的先前的信息之間存在的一個(gè)或多個(gè)差異。在本實(shí)施例中,最終傳送回移動(dòng)設(shè)備102的僅是這樣的差異信息。如已經(jīng)提到,由圖5所表示的、并且與圖4的步驟 408相對(duì)應(yīng)的子步驟在子步驟518處結(jié)束。將認(rèn)識(shí)到,步驟516能夠有利地在步驟504與步驟506之間在后端部分306中發(fā)生,在該情況下如果從內(nèi)容被拉(pull)用于特定訂戶的先前時(shí)間在CPW信息中存在改變,則信息將僅在web服務(wù)器104中進(jìn)一步被處理。這將釋放服務(wù)器資源以繼續(xù)從CPW拉信息以用于設(shè)備102的用戶或使用中間web服務(wù)器和CPW的其它用戶。
返回圖4,一旦完成了步驟408,則web服務(wù)器104考慮經(jīng)處理的信息中的一個(gè)或多個(gè)部分具有高重要性還是不具有高重要性(例如,具有低重要性,或可能具有中間重要性或某個(gè)其它重要性級(jí)別)。如果確定經(jīng)處理的信息具有高重要性,則在步驟412處web服務(wù)器104的前端部分308經(jīng)由跨越通信鏈路105建立的推式信道將高重要性經(jīng)處理的信息發(fā)送到移動(dòng)設(shè)備102。這在由web服務(wù)器確定的時(shí)間立即發(fā)生,如經(jīng)由使用推式信道可能進(jìn)行的。如果在步驟410處確定經(jīng)處理的信息不具有高重要性,則經(jīng)處理的信息的發(fā)送能夠被延遲直到另一更適當(dāng)?shù)臅r(shí)間為止以從而減少設(shè)備與服務(wù)器之間的通信活動(dòng),并且因此減少設(shè)備上的電池消耗。因此,在步驟414處,web服務(wù)器104等待適當(dāng)?shù)臅r(shí)間將經(jīng)處理的信息發(fā)送到移動(dòng)設(shè)備102。然后,一旦適當(dāng)?shù)臅r(shí)間已經(jīng)出現(xiàn),則在步驟416處然后信息由web 服務(wù)器104發(fā)送到移動(dòng)設(shè)備102。
低重要性經(jīng)處理的信息由web服務(wù)器104發(fā)送到移動(dòng)設(shè)備102的適當(dāng)時(shí)間能夠基于各種考慮。例如,在一些實(shí)施例中,這樣的適當(dāng)時(shí)間僅僅是定期出現(xiàn)的時(shí)間,在該時(shí)間處移動(dòng)設(shè)備102輪詢web服務(wù)器104以獲得信息。這樣的輪詢通常包括將來自移動(dòng)設(shè)備102 的查詢信號(hào)重復(fù)地發(fā)送到web服務(wù)器104。在其它情況下,當(dāng)特定的環(huán)境已經(jīng)出現(xiàn)時(shí)適當(dāng)?shù)臅r(shí)間就出現(xiàn)。例如,當(dāng)移動(dòng)設(shè)備102做出請(qǐng)求如果同時(shí)是在相同的時(shí)間web服務(wù)器104 已經(jīng)確定特定數(shù)量的低重要性經(jīng)處理的信息已經(jīng)被存儲(chǔ)用于傳輸?shù)揭苿?dòng)設(shè)備的情況時(shí),用于發(fā)送低重要性經(jīng)處理的信息的適當(dāng)時(shí)間能夠出現(xiàn)。盡管在上述描述中,通過web服務(wù)器 104獲得信息被描述為包括拉,而通過移動(dòng)設(shè)備從web服務(wù)器獲得低重要性信息被描述為包括輪詢,但是應(yīng)當(dāng)理解,取決于實(shí)施例,拉操作或輪詢操作(和定期通信或者異步通信) 能夠分別由web服務(wù)器和移動(dòng)設(shè)備中的任何一個(gè)使用,以分別從CPW 106和web服務(wù)器獲得信息。另外,設(shè)想當(dāng)移動(dòng)設(shè)備102未被連接到系統(tǒng)100時(shí),服務(wù)器能夠正從內(nèi)容提供網(wǎng)站 106拉信息,作為這樣的結(jié)果服務(wù)器將保留信息直到移動(dòng)設(shè)備重新連接為止,或者當(dāng)足夠的時(shí)間過去以致服務(wù)器刪除該信息時(shí)。
無論高重要性或低重要性信息是否分別在步驟412和步驟416處發(fā)送到移動(dòng)設(shè)備102,一旦完成這些步驟,則一系列的另外的步驟由正在與移動(dòng)設(shè)備、CPW、或另外的移動(dòng)設(shè)備/CPW交互的web服務(wù)器104來執(zhí)行。更具體地在這點(diǎn)上,一旦完成了步驟412和步驟 416,則在步驟418-428處,來自移動(dòng)設(shè)備102的信息能夠被上傳到web服務(wù)器104并且進(jìn)一步提供給CPW 106。如圖4中所示出,在步驟418處,這樣的交互能夠通過web服務(wù)器104 從移動(dòng)設(shè)備102接收標(biāo)識(shí)信息開始。這樣的標(biāo)識(shí)信息的接收不必一直發(fā)生,例如,如果這樣的標(biāo)識(shí)信息已經(jīng)在步驟402處被接收到。然后,在步驟420處,web服務(wù)器104另外地從移動(dòng)設(shè)備102接收內(nèi)容信息。內(nèi)容信息能夠包括例如諸如圖像文件或文本文件的文件、或移動(dòng)設(shè)備的用戶想要已經(jīng)上傳到在CPW處存在的用戶簡(jiǎn)檔(例如,“背景墻”)的其它數(shù)據(jù)。
接下來,在步驟422處,web服務(wù)器104從移動(dòng)設(shè)備102接收指令web服務(wù)器將內(nèi)容信息上傳到CPW 106的命令。在替代實(shí)施例中,這個(gè)命令不必由移動(dòng)設(shè)備102明確地提供給web服務(wù)器104,因?yàn)樵谶@樣的實(shí)施例中,web服務(wù)器假定由移動(dòng)設(shè)備提供的所有內(nèi)容信息應(yīng)當(dāng)進(jìn)一步被上傳到該移動(dòng)設(shè)備所關(guān)聯(lián)的任何CPW。進(jìn)一步地,然后在步驟似4處, web服務(wù)器104將從移動(dòng)設(shè)備102接收到的標(biāo)識(shí)信息發(fā)送到CPW 106以便認(rèn)證該web服務(wù)器與該CPW之間的關(guān)系。響應(yīng)于發(fā)送這個(gè)標(biāo)識(shí)信息,通常如果認(rèn)證是符合要求的,則從CPW 往回接收到令牌,如由步驟426所指示的。如關(guān)于步驟418,在所有的實(shí)施例中步驟4M和步驟似6不必在這個(gè)時(shí)候被明確地執(zhí)行,特別地在這樣的動(dòng)作被視為在步驟402、404中的通信鏈路的建立的一部分的情況下。無論認(rèn)證何時(shí)發(fā)生,認(rèn)證處理允許web服務(wù)器104代表移動(dòng)設(shè)備102和作為移動(dòng)設(shè)備102的代理來與CPW 106進(jìn)行交互。假定適當(dāng)?shù)恼J(rèn)證已經(jīng)發(fā)生,則在步驟4 處內(nèi)容信息由web服務(wù)器104發(fā)送到CPW 106。
設(shè)想當(dāng)移動(dòng)設(shè)備102首次連接到服務(wù)器并且在web服務(wù)器上建立內(nèi)容提供商網(wǎng)站時(shí),用于內(nèi)容提供商網(wǎng)站上的特定用戶賬戶的針對(duì)web服務(wù)器104將內(nèi)容上傳到內(nèi)容提供商網(wǎng)站106和從內(nèi)容提供商網(wǎng)站106下載內(nèi)容所需要的用戶ID和密碼能夠由用戶加載到 web服務(wù)器104中。web服務(wù)器將用戶ID和密碼存儲(chǔ)在存儲(chǔ)器中,并且只要用戶不改變他們,就使用該用戶ID和密碼來訪問CPW,以維持與CPW的持續(xù)連接,不管移動(dòng)設(shè)備102是否被連接。進(jìn)一步設(shè)想如果對(duì)于預(yù)定的時(shí)間段移動(dòng)設(shè)備不從服務(wù)器請(qǐng)求信息,或者如果用于將內(nèi)容下載到設(shè)備的用戶設(shè)備隊(duì)列超過老化閾值和/或存儲(chǔ)容量閾值,則能夠在頻率上減少或者完全暫停從CPW 106拉信息。
除了先前描述的上傳處理之外,在一些環(huán)境下,操作移動(dòng)設(shè)備102的用戶將還期望內(nèi)容被上傳到不止一個(gè)CPW 106。這樣的處理能夠通過web服務(wù)器104來促進(jìn),如由圖4 的步驟430-438所指示的,特別在內(nèi)容信息已經(jīng)由移動(dòng)設(shè)備102提供給web服務(wù)器的情況下。更具體地如所示,在步驟430處,由web服務(wù)器104確定web服務(wù)器是否已經(jīng)從移動(dòng)設(shè)備102接收到指令web服務(wù)器將內(nèi)容信息提供給另一 CPW的進(jìn)一步命令。如果已經(jīng)接收到這樣的命令,則在下一個(gè)步驟432處,web服務(wù)器104確定是否已經(jīng)建立與其它CPW的通信鏈路。如果尚未建立這樣的通信鏈路,則處理前進(jìn)到步驟434,其中從移動(dòng)設(shè)備102接收到另外的標(biāo)識(shí)信息,并且隨后在步驟436處在web服務(wù)器104與其它CPW 106之間建立通信鏈路。也就是說,如果尚未建立與其它CPW的通信鏈路,如在步驟432處所確定的,則為了建立這樣的通信鏈路,再次必須從移動(dòng)設(shè)備102向web服務(wù)器104提供標(biāo)識(shí)信息,允許web服務(wù)器與該其它CPW有關(guān)地被認(rèn)證以便操作為與該其它CPW有關(guān)的移動(dòng)設(shè)備的代理(例如, 與上文中與步驟424-4 有關(guān)地所描述的基本上相同的操作)。
一旦步驟436處建立通信鏈路,或者如果在步驟432處確定已經(jīng)建立與其它CPW 的通信鏈路,則處理前進(jìn)到步驟438,在該處內(nèi)容信息被上傳到其它CPW。因此,借助于步驟 430-438,在步驟4 處已經(jīng)提供給第一 CPW的內(nèi)容信息被另外地提供給另一 CPW。將理解的是,盡管圖4沒有示出在重復(fù)執(zhí)行步驟418-438中的立即循環(huán),但是步驟能夠與無數(shù)部分的信息和不止一個(gè)另外的CPW有關(guān)地重復(fù)無數(shù)次。設(shè)想將以統(tǒng)一的格式從移動(dòng)設(shè)備102提供內(nèi)容,并且服務(wù)器后端將單獨(dú)地并且適當(dāng)?shù)貙?duì)數(shù)據(jù)進(jìn)行格式化以用于內(nèi)容正被上傳到的目標(biāo)CPW中的每一個(gè)。
進(jìn)一步關(guān)于圖4,一旦完成了步驟438,或者在步驟430處由web服務(wù)器104確定沒有接收到命令的情況下,則在步驟440處web服務(wù)器另外繼續(xù)進(jìn)行以確定移動(dòng)設(shè)備102 是否已經(jīng)從web服務(wù)器斷開連接。即使移動(dòng)設(shè)備102已經(jīng)從web服務(wù)器104斷開連接,但是作為一般規(guī)則web服務(wù)器將仍然維持其與CPW 106的通信鏈路,web服務(wù)器先前已經(jīng)進(jìn)入對(duì)于該CPW 106的通信,并且與該CPW 106相關(guān)地該web服務(wù)器能充當(dāng)代表已經(jīng)被斷開連接的移動(dòng)設(shè)備的代理,如由步驟442所表示的。因此,即使web服務(wù)器代表其正在行動(dòng)的移動(dòng)設(shè)備102暫時(shí)地離開通信,web服務(wù)器104也能夠在正在進(jìn)行的基礎(chǔ)上繼續(xù)與CPW106相關(guān)地進(jìn)行操作。因此,web服務(wù)器104能夠繼續(xù)操作以從各種CPW 106拉信息并且可以隨著時(shí)間的推移訪問和監(jiān)視這樣的信息,使得當(dāng)先前斷開連接的移動(dòng)設(shè)備被重新連接到web服務(wù)器時(shí),web服務(wù)器能夠立即(如果有的話)提供可用的最近的、更新的CPW信息。
盡管上文的描述,并且盡管圖4中未示出,但是在某些實(shí)施例中移動(dòng)設(shè)備102還可能將該web服務(wù)器停止代表它本身與CPW 106中的一個(gè)或多個(gè)相關(guān)地行動(dòng)的指令傳送到 web服務(wù)器104,在該情況下,web服務(wù)器將這樣做。最后,還如圖4中所示,當(dāng)步驟442已經(jīng)完成或倘若在步驟440處確定移動(dòng)設(shè)備102仍然連接時(shí),web服務(wù)器104繼續(xù)確定是否存在與移動(dòng)設(shè)備102和/或CPW 106中的其它移動(dòng)設(shè)備102和/或CPW 106建立另外的通信鏈路的需要或期望。根據(jù)本流程圖,如果不存在這樣的需要或期望,則處理在步驟446處結(jié)束,而如果存在這樣的需要或期望,則處理返回到開始步驟400。
應(yīng)當(dāng)理解的是,盡管如圖4中所示的特定步驟,但是取決于實(shí)施例各種另外的或不同的步驟能夠由web服務(wù)器104來執(zhí)行,并且取決于實(shí)施例能夠?qū)D4中所示的特定步驟中的一個(gè)或多個(gè)進(jìn)行重新排列,重復(fù)或完整地消除。而且,根據(jù)圖4的流程圖執(zhí)行的步驟中的一些能夠當(dāng)執(zhí)行步驟中的其它步驟的同時(shí)在正在進(jìn)行的或連續(xù)的基礎(chǔ)上重復(fù)。例如, 即使當(dāng)諸如與從移動(dòng)設(shè)備到web服務(wù)器并且然后到CPW中的一個(gè)或多個(gè)的內(nèi)容信息的上傳有關(guān)的由步驟418-438表示的那些的其它交互也正在進(jìn)行時(shí),與從CPW 106接收到的信息的獲得和處理和到移動(dòng)設(shè)備102的高重要性信息的立即(或基本上立即)發(fā)送有關(guān)的步驟 406-412能夠在正在進(jìn)行的或連續(xù)的基礎(chǔ)上重復(fù)。另外,盡管圖4相當(dāng)詳細(xì)地描述了 web 服務(wù)器104正與多個(gè)CPW 106連續(xù)地或同時(shí)地進(jìn)行通信的可能性,并且圖示了由給定移動(dòng)設(shè)備和這樣的一個(gè)或多個(gè)CPW之間的web服務(wù)器促進(jìn)的示例交互,但是應(yīng)當(dāng)理解的是,就允許類似的交互在任何數(shù)量的其它移動(dòng)設(shè)備和這樣的一個(gè)或多個(gè)CPW之間發(fā)生而言,可以由 web服務(wù)器在相同的時(shí)間或基本上相同的時(shí)間執(zhí)行相同的處理。
設(shè)想后端部分306能夠包括用于每個(gè)CPW 106的單獨(dú)的插件,包括適合其相應(yīng)CPW 的相應(yīng)API。插件中的每一個(gè)都包括用于其相應(yīng)CPW的API,插件由此從網(wǎng)站拉信息并且將該信息重新格式化成移動(dòng)設(shè)備102客戶端的通用格式。此外,當(dāng)由后端部分306上傳時(shí),來自移動(dòng)設(shè)備的內(nèi)容將從移動(dòng)設(shè)備102客戶端程序的統(tǒng)一格式重新格式化為由與該插件相關(guān)聯(lián)的CPW規(guī)定的適當(dāng)格式。以這種方式,來自用戶設(shè)備102的內(nèi)容能夠以具有統(tǒng)一格式的單個(gè)消息被發(fā)送,并且其將如由用戶選擇一樣被路由和由用于作為其目標(biāo)的相應(yīng)CPW中的每一個(gè)的后端部分插件中的每一個(gè)格式化。
轉(zhuǎn)向圖6,提供了示出當(dāng)移動(dòng)設(shè)備102與web服務(wù)器進(jìn)行交互,并且借助于這個(gè)交互能夠與一個(gè)或多個(gè)CPW進(jìn)行交互時(shí)移動(dòng)設(shè)備102的操作的示例步驟的另外的流程圖。也就是說,圖6旨在圖示移動(dòng)設(shè)備102的操作的示例步驟,其相對(duì)于如上文中的圖4和圖5中所圖示的由web服務(wù)器104執(zhí)行的多個(gè)步驟是補(bǔ)充的(或者大部分是補(bǔ)充的)。此外,如在下文中將被進(jìn)一步描述的,圖6還包括使移動(dòng)設(shè)備102能在不用通過web服務(wù)器104的調(diào)解的情況下直接或者與(但是獨(dú)立于)通過web服務(wù)器的調(diào)解一起同時(shí)地與CPW 106中的一個(gè)或多個(gè)進(jìn)行交互的步驟。如圖6中所示,一旦在開始步驟600處開始操作,則在步驟 602處移動(dòng)設(shè)備102通過與web服務(wù)器建立通信鏈路并且經(jīng)由web服務(wù)器因此與CPW建立通信鏈路來開始其與web服務(wù)器104的交互。
另外參考圖7,步驟602能夠被理解為包括如在圖7中所圖示的若干子步驟。如所示,一旦在子步驟700處開始,則移動(dòng)設(shè)備102激活在移動(dòng)設(shè)備上支持的推式信道應(yīng)用,如在子步驟702處所指示的。然后,在子步驟704處移動(dòng)設(shè)備102將標(biāo)識(shí)信息提供給web服務(wù)器104。這樣的標(biāo)識(shí)信息能夠包括例如規(guī)定特定移動(dòng)設(shè)備(例如,序列號(hào)、型號(hào)或者產(chǎn)品參考號(hào))的標(biāo)識(shí)碼、與利用該移動(dòng)設(shè)備的用戶的身份有關(guān)的信息、或諸如登錄或密碼代碼的其它編碼信息。接下來,在子步驟706處,確定在移動(dòng)設(shè)備102處是否存在經(jīng)由web服務(wù)器與CPW 106中的特定一個(gè)建立通信鏈路的期望。如果在這個(gè)時(shí)候不存在這樣的期望,則由圖7表示的處理在子步驟708處結(jié)束。替代地,如果存在經(jīng)由web服務(wù)器104與CPW 106 建立通信鏈路的期望,如能夠由將指示這樣的期望的命令提供給移動(dòng)設(shè)備102的用戶所指示的,則在子步驟710處移動(dòng)設(shè)備另外地將指令web服務(wù)器建立這樣的通信鏈路的命令發(fā)送到web服務(wù)器。
另外,在子步驟712處,移動(dòng)設(shè)備102另外地將另外的web標(biāo)識(shí)信息發(fā)送給web服務(wù)器104,允許該web服務(wù)器與CPW 106建立通信鏈路,并且充當(dāng)用于與該CPW進(jìn)行其通信的移動(dòng)設(shè)備的代理。在一些實(shí)施例中在子步驟712處發(fā)送的標(biāo)識(shí)信息能夠與子步驟704的標(biāo)識(shí)信息相同,在該情況下不需要執(zhí)行子步驟712。一旦在子步驟712處已經(jīng)提供標(biāo)識(shí)信息,則在子步驟714處在移動(dòng)設(shè)備與web服務(wù)器之間建立了推式信道鏈路。一旦完成了子步驟714,則能夠執(zhí)行在步驟602之后的由圖6表示的處理的剩余步驟(如由框“返回到A” 所指示的)。
返回到圖6,一旦在步驟602處建立了與web服務(wù)器104的通信鏈路,則在步驟604 處移動(dòng)設(shè)備102經(jīng)由推式信道(例如,在子步驟714處建立的推式信道)從web服務(wù)器接收高重要性信息。如已經(jīng)參考圖4-5所描述的,在本實(shí)施例中以異步的方式,也就是,在不是由移動(dòng)設(shè)備確定的時(shí)間將該信息從web服務(wù)器104提供給移動(dòng)設(shè)備102。除了在異步的基礎(chǔ)之上接收這樣的高重要性信息之外,如由后續(xù)步驟606所進(jìn)一步表示的,移動(dòng)設(shè)備102 能夠另外地將與待由web服務(wù)器下載到移動(dòng)設(shè)備的其它信息有關(guān)的一個(gè)或多個(gè)查詢發(fā)送到web服務(wù)器104。如在上文中參考圖5所討論的,盡管高重要性信息能夠包括諸如狀態(tài)更新信息的信息,但是其它信息(例如,低重要性信息)能夠包括諸如聯(lián)系人/朋友信息、新朋友信息、聯(lián)系人列表、相片或視頻、特殊消息、新聞或者事件信息。
在步驟606處由移動(dòng)設(shè)備102提供的查詢能夠在定期性的基礎(chǔ)上或者在由該移動(dòng)設(shè)備確定的其它時(shí)間被提供。盡管在本實(shí)施例中設(shè)想移動(dòng)設(shè)備102將確定何時(shí)對(duì)web服務(wù)器104進(jìn)行查詢,該查詢進(jìn)而確定是否將除了高重要性信息之外的信息從web服務(wù)器傳送到移動(dòng)設(shè)備,但是在其它實(shí)施例中這樣的查詢和/或信息的下載能夠在通過web服務(wù)器與移動(dòng)設(shè)備之間的雙方協(xié)定所確定的時(shí)間、在由web服務(wù)器獨(dú)自單獨(dú)地所確定的時(shí)間(例如, 當(dāng)web服務(wù)器已經(jīng)確定已經(jīng)收集到足夠量的低重要性信息時(shí))、或在諸如已經(jīng)對(duì)兩個(gè)設(shè)備進(jìn)行編程的制造商的另一實(shí)體或一方所確定的時(shí)間發(fā)生。無論其是否是來自移動(dòng)設(shè)備102 的促使通過web服務(wù)器104將信息往回發(fā)送到移動(dòng)設(shè)備的查詢或者其是否是促使發(fā)送這樣的信息的其它觸發(fā),如在步驟608處所指示的,最終還由移動(dòng)設(shè)備從web服務(wù)器接收到這樣的其它信息。盡管步驟602能夠被認(rèn)為是圖4的步驟402的補(bǔ)充,但是步驟604-608能夠被認(rèn)為是由圖4的步驟406-412(并且特別地步驟414-412)表示的web服務(wù)器操作的補(bǔ)充。
仍參考圖6,在后續(xù)步驟609處,由移動(dòng)設(shè)備102從web服務(wù)器104接收到的信息通過移動(dòng)設(shè)備來顯示或以其它方式輸出。這樣的信息的顯示/輸出發(fā)生的程度將取決于實(shí)施例。在至少一些實(shí)施例中,信息通過移動(dòng)設(shè)備102以標(biāo)準(zhǔn)化的方式來顯示/輸出,使得 CPW特定格式信息或特征不被提供為所顯示的/輸出的信息的一部分。更具體地在一些這樣的實(shí)施例中,CPW特定格式信息和特征由web服務(wù)器104、或者在一些替代實(shí)施例中由移動(dòng)設(shè)備或web服務(wù)器和移動(dòng)設(shè)備兩者的組合來編校。
在執(zhí)行這樣的編校中,在不同的CPW處發(fā)現(xiàn)的類似類型的信息,即使通過不同的 CPff以不同的方式引用(例如,如在發(fā)布站點(diǎn)發(fā)現(xiàn)的信息或代替如在背景墻上發(fā)現(xiàn)的信息),也被識(shí)別為在概念上類似類型的,并且基于這樣的識(shí)別,這樣的信息能夠以常見的方式被顯示(可輸出)在移動(dòng)設(shè)備上,而無論信息的起源如何。也就是說,考慮到這樣的CPW 特定格式信息或特征的編校,來自不同的CPW的相同的概念類型的信息,即使在不同的CPW 處不同地格式化,仍然以相同或類似、一致的方式被顯示在移動(dòng)設(shè)備上,而無論該信息的起源如何,因此有助于用戶的對(duì)這樣的信息的回顧。應(yīng)當(dāng)進(jìn)一步注意到,這樣的信息能夠不僅包括文本和圖像數(shù)據(jù)而且包括廣泛的各種其它數(shù)據(jù),包括支持在移動(dòng)設(shè)備上的交互式窗口和數(shù)據(jù)條目字段的顯示的數(shù)據(jù),用戶能夠?qū)⑷缓竽軌虮话l(fā)送回到web服務(wù)器的另外的信息或命令鍵入到交互式窗口和數(shù)據(jù)條目字段中。
接下來,在步驟610處,移動(dòng)設(shè)備102確定是否存在將在移動(dòng)設(shè)備處當(dāng)前可用的內(nèi)容信息上傳到web服務(wù)器和/或最終地上傳到CPW106的需要或期望。例如,基于是否已經(jīng)由移動(dòng)設(shè)備從用戶或其它來源接收到特定類型的信息或者特定的事件是否已經(jīng)發(fā)生或者觸發(fā)這樣的上傳事件的時(shí)間是否已經(jīng)過去,該需要或期望能夠由移動(dòng)設(shè)備102自動(dòng)地確定。通常,響應(yīng)于提供給移動(dòng)設(shè)備102的用戶命令,這樣的需要/期望將發(fā)生。如果在步驟 610處,確定不存在這樣的需要/期望,則如所示該處理前進(jìn)到下文中所討論的步驟622。 然而,如果在步驟610處確定存在這樣的需要/期望,則在步驟612處移動(dòng)設(shè)備102將內(nèi)容信息發(fā)送到web服務(wù)器104并且在步驟614處移動(dòng)設(shè)備另外地將用于將該內(nèi)容信息上傳到 CPff 106的命令發(fā)送到web服務(wù)器。步驟610-614能夠被理解為通常為圖4的步驟418-428 的補(bǔ)充,除了在如參考步驟418所討論的從移動(dòng)設(shè)備102提供以用于認(rèn)證目的的標(biāo)識(shí)信息能夠被理解為已經(jīng)在圖6中所示出的步驟602處提供(替代地,適合于這個(gè)目的的另外的標(biāo)識(shí)信息能夠被剛好在步驟612之前提供)的范圍內(nèi)除外。
一旦完成步驟614,則在步驟616處,移動(dòng)設(shè)備102進(jìn)一步確定是否存在將內(nèi)容信息上傳到除了該信息已經(jīng)被上傳到的第一個(gè)CPW以外的一個(gè)或多個(gè)另外的CPW的需要/期望。再者,該需要或期望能夠基于包括除了別的以外由移動(dòng)設(shè)備的用戶提供給移動(dòng)設(shè)備的一個(gè)或多個(gè)指令的各種因素來確定。如果在步驟616處確定不存在這樣的需要或期望,則該處理再次前進(jìn)到下文中所討論的步驟622。然而,如果在步驟616處確定存在這樣的需要或期望,則處理前進(jìn)到步驟618,其中經(jīng)由web服務(wù)器在移動(dòng)設(shè)備與這樣的另外的CPW之間建立另外的通信鏈路。步驟618能夠被視為圖4的步驟432-436的補(bǔ)充并且取決于實(shí)施例能夠包括子步驟,其中移動(dòng)設(shè)備首先確定與這樣的另外的CPW的通信鏈路是否已經(jīng)存在, 并且如果確定這樣的通信鏈路還不存在,則將另外的標(biāo)識(shí)信息發(fā)送到web服務(wù)器以與這樣的另外的CPW建立通信鏈路并且允許web服務(wù)器在這樣的通信中充當(dāng)移動(dòng)設(shè)備的代理。
一旦在步驟618處與另外的CPW 106建立了另外的通信鏈路,則在步驟620處移動(dòng)設(shè)備102進(jìn)一步將用于將內(nèi)容信息上傳到該另外的CPW 106的命令發(fā)送到web服務(wù)器 104。步驟620的執(zhí)行能夠被理解為對(duì)應(yīng)于圖4的步驟430,要進(jìn)一步理解的是,步驟618和步驟620的執(zhí)行的順序是可逆的,使得那些步驟更接近地對(duì)應(yīng)于圖4的步驟430-436的順序。另外參考圖6,一旦完成步驟620,則假定web服務(wù)器104實(shí)際上將內(nèi)容信息上傳到另外的CPW。盡管未示出,但是在一些實(shí)施例中,一旦完成這樣的上傳,則web服務(wù)器104將確認(rèn)這樣的上傳已經(jīng)發(fā)生的指示信號(hào)發(fā)送回到移動(dòng)設(shè)備102。
盡管圖6的上述步驟以及圖4的步驟將web服務(wù)器104的使用預(yù)想為移動(dòng)設(shè)備 102與CPW之間的中間物,但是web服務(wù)器不必一直調(diào)解這樣的通信而是在一些情況下移動(dòng)設(shè)備直接(也就是說,直接經(jīng)由不包括任何web服務(wù)器、或者至少不包括如上文所描述的 web服務(wù)器的一個(gè)或多個(gè)網(wǎng)絡(luò))關(guān)于CPW中的一個(gè)或多個(gè)進(jìn)行交互。在該點(diǎn)上,一旦完成步驟620 (或,在一些情況下,如上文所討論的步驟610和步驟616),則在步驟622處移動(dòng)設(shè)備102進(jìn)一步確定是否存在移動(dòng)設(shè)備與CPW 106中的一個(gè)或多個(gè)直接進(jìn)行通信的需要或期望。
如果在步驟622處移動(dòng)設(shè)備102確定這不是該情況,則移動(dòng)設(shè)備能夠?qū)⑵洳僮鞣祷氐焦?jié)點(diǎn)A,響應(yīng)于此,該處理在步驟604處再次開始并且向前進(jìn)行。假定這個(gè)發(fā)生,移動(dòng)設(shè)備102因此繼續(xù)不僅從web服務(wù)器104接收信息而且也繼續(xù)操作以在重復(fù)、持續(xù)的基礎(chǔ)上將內(nèi)容信息上傳到web服務(wù)器。然而如果在步驟622處移動(dòng)設(shè)備102確定存在直接與CPW 106進(jìn)行通信的需要或期望,則移動(dòng)設(shè)備繼續(xù)進(jìn)行到步驟624,在該處移動(dòng)設(shè)備建立這樣的直接通信鏈路。
是否存在直接與CPW 106進(jìn)行通信的需要或期望能夠基于各種考慮來確定。在一些情況下,移動(dòng)設(shè)備102對(duì)此自動(dòng)地確定并且因此自動(dòng)地繼續(xù)進(jìn)行以與CPW 106建立直接通信鏈路。例如,如果用戶請(qǐng)求關(guān)于特定主題的更多的信息并且從給定CPW的該信息的下載經(jīng)由與CPW的直接通信來最好地完成(例如,就數(shù)據(jù)傳輸?shù)男实鹊榷?,則移動(dòng)設(shè)備能夠嘗試直接連接到CPW。而且,可能在一些情況下,用戶可能希望查看在特定CPW處可用的具有與該CPW相關(guān)聯(lián)的特定格式的信息,并且可能不希望查看這樣的信息的編校的視圖,如在信息到移動(dòng)設(shè)備的途中被web服務(wù)器104處理的情況下可能提供的。而且,是否存在直接與CPW 106進(jìn)行通信的需要或期望的確定能夠基于明確地請(qǐng)求這樣的通信的用戶命令的接收來確定。
取決于實(shí)施例,在步驟6M處的直接通信鏈路的建立能夠包括各種特定的命令或移動(dòng)設(shè)備的操作,其在一些環(huán)境下能夠包括從用戶接收輸入。例如,在一種環(huán)境下,用戶通過使瀏覽器應(yīng)用/程序在移動(dòng)設(shè)備上打開和運(yùn)行并且通過將用于CPW的URL(統(tǒng)一資源定位符)鍵入到由瀏覽器提供的輸入字段來發(fā)起這樣的直接通信鏈路的建立,因此瀏覽器進(jìn)入與CPW的通信中并且CPW進(jìn)而將網(wǎng)頁或其它信息返回到瀏覽器,移動(dòng)設(shè)備(和用戶)由此能夠參與與CPW的進(jìn)一步的通信。在其它實(shí)施例中,直接通信鏈路的建立是不包括任何特定用戶動(dòng)作的自動(dòng)處理。
無論如何建立直接通信鏈路,一旦建立了該鏈路,則在進(jìn)一步的步驟擬6處移動(dòng)設(shè)備102直接將信息發(fā)送到CPW 106和/或直接從CPW106接收信息(再次,沒有上文所描述的web服務(wù)器的調(diào)解)。隨后,在步驟6 處,移動(dòng)設(shè)備進(jìn)一步確定是否存在停止與web 服務(wù)器104的現(xiàn)有通信鏈路的需要/期望。如果不存在這樣的需要/期望,則處理返回到節(jié)點(diǎn)A并且再次步驟604和后續(xù)步驟被重復(fù)。也就是說,在移動(dòng)設(shè)備與CPW之間的直接通信 (沒有web服務(wù)器調(diào)解)和間接通信(經(jīng)由web服務(wù)器)兩者能夠同時(shí)地繼續(xù)。然而,如果在步驟6 處確定存在停止基于服務(wù)器的通信的需要或期望,則處理前進(jìn)到步驟630,在該處與web服務(wù)器的移動(dòng)設(shè)備通信被中斷(其對(duì)應(yīng)于在上文中關(guān)于圖4所討論的步驟440)。
在本實(shí)施例中,如上文所討論的,web服務(wù)器104被配置成將其本身維持在其先前代表移動(dòng)設(shè)備與其進(jìn)行通信的CPW或站點(diǎn)的通信中,即使在與移動(dòng)設(shè)備的通信已經(jīng)終止之后,其中web服務(wù)器繼續(xù)充當(dāng)移動(dòng)設(shè)備的代理。然而,在其它實(shí)施例中,當(dāng)移動(dòng)設(shè)備終止其與web服務(wù)器的通信時(shí),web服務(wù)器與CPW的通信被切斷。在任何情況下,在步驟630之后,在步驟632處可能存在代表移動(dòng)設(shè)備與web服務(wù)器重新建立通信的新的需要或期望。正如在步驟622處確定是否與CPW106進(jìn)入直接通信或者在步驟6 處停止與web服務(wù)器104通信的情況下一樣,在步驟632處是否存在代表移動(dòng)設(shè)備102重新建立與web服務(wù)器104通信的需要或期望能夠基于各種考慮中的任何一個(gè),包括例如觸發(fā)這樣的活動(dòng)的用戶命令、 電池電源考慮等。如果在步驟632處確定應(yīng)當(dāng)重新建立基于服務(wù)器的通信,則處理返回到開始步驟600。如果不是,則在結(jié)束步驟634處結(jié)束由圖6表示的處理。
分別轉(zhuǎn)向圖8和圖9,在進(jìn)一步的實(shí)施例中,由web服務(wù)器104和移動(dòng)設(shè)備102執(zhí)行的操作能夠與圖4-7中所示的那些稍微不同。更具體地,在一些其它實(shí)施例中,web服務(wù)器104不是執(zhí)行圖4中所示的節(jié)點(diǎn)B與節(jié)點(diǎn)C之間的步驟408-416,而是以不同的方式操作,包括圖8中所示的步驟800-814。如所示,一旦從節(jié)點(diǎn)B行進(jìn),則web服務(wù)器104不是執(zhí)行處理步驟408 (和圖5中所示的對(duì)應(yīng)步驟),而是執(zhí)行步驟800、802以及804。特別在步驟800處,web服務(wù)器104確定在步驟406中剛剛從CPW 106獲得/拉的信息與在更早時(shí)間從該CPW先前接收到的信息之間是否已經(jīng)發(fā)生改變。如果在步驟802處檢測(cè)到改變,則在步驟804處web服務(wù)器104的前端部分308將該改變信息放到改變列表中。在這些步驟與web服務(wù)器104與其聯(lián)系的多個(gè)CPW有關(guān)地重復(fù)地被執(zhí)行的情況下,與CPW中的每一個(gè)有關(guān)地檢測(cè)到的改變信息能夠全部被置于改變列表中,在該情況下其能夠被稱為通用改變列表。
接下來,在步驟806處,web服務(wù)器104的前端部分308確定經(jīng)處理的信息是具有高重要性還是不具有高重要性(例如,低重要性)。在執(zhí)行這個(gè)確定中,能夠考慮到與在上文中與圖4的步驟410有關(guān)地所討論的相同的考慮,并且因此在圖8中步驟806還被標(biāo)記為步驟410。取決于經(jīng)處理的信息是被確定具有高重要性還是低重要性,該處理然后相應(yīng)地前進(jìn)到步驟808或步驟810。在步驟808中,一旦已經(jīng)確定經(jīng)處理的信息具有高重要性(例如,信息關(guān)系到狀態(tài)更新),則web服務(wù)器104的前端部分308經(jīng)由推式信道將指示已經(jīng)發(fā)生高重要性改變的通知發(fā)送到移動(dòng)設(shè)備102。同樣地,在步驟810處,一旦已經(jīng)確定經(jīng)處理的信息具有低重要性,則web服務(wù)器104的前端部分308經(jīng)由推式信道將指示已經(jīng)發(fā)生低重要性改變的通知發(fā)送到移動(dòng)設(shè)備102。
一旦在步驟808或步驟810中已經(jīng)發(fā)送了通知,則在步驟812處web服務(wù)器104 的前端部分308在稍后的時(shí)間能夠從移動(dòng)設(shè)備102接收用于自身發(fā)送該改變信息的請(qǐng)求。 能夠在如由移動(dòng)設(shè)備102確定的任何時(shí)間接收該請(qǐng)求。通常,如果改變信息具有高重要性, 則移動(dòng)設(shè)備102將在步驟808處接收到通知之后立即或非??彀l(fā)送對(duì)于該信息的請(qǐng)求。與此相反,如果改變信息具有低重要性,則移動(dòng)設(shè)備經(jīng)常常等待直到對(duì)于這樣的請(qǐng)求的預(yù)定時(shí)間(例如,定期性或非定期性輪詢時(shí)間)已經(jīng)到達(dá)為止。例如,設(shè)備可以等待不超過5分鐘來請(qǐng)求高重要性信息并且在請(qǐng)求之間等待15-30分鐘來下載低重要性信息。在任何情況下,一旦在步驟812處從移動(dòng)設(shè)備102接收到對(duì)于改變信息的傳輸?shù)恼?qǐng)求,則所請(qǐng)求的改變信息隨后由web服務(wù)器104的前端部分308發(fā)送到移動(dòng)設(shè)備102。在本示例中,優(yōu)選的是, 這個(gè)改變信息不通過推式信道來發(fā)送,或者替代地僅高重要性改變信息通過推式信道來發(fā)送,以減少移動(dòng)設(shè)備被加電以接收該改變內(nèi)容的時(shí)間量,然而認(rèn)識(shí)到在其它實(shí)施例中所有的改變信息都能夠經(jīng)由推式信道來發(fā)送。一旦在步驟814處發(fā)送這個(gè)信息,或如果在步驟 812處未接收到對(duì)于該信息的請(qǐng)求(或至少在預(yù)定時(shí)間段內(nèi)未接收到)或如果在步驟802處在從CPW 106接收到的信息中未檢測(cè)到改變,則該處理返回到圖4的節(jié)點(diǎn)C(并且因此返回到步驟418)。應(yīng)當(dāng)認(rèn)識(shí)到,如果沒有內(nèi)容應(yīng)當(dāng)需要用于上傳到內(nèi)容提供商網(wǎng)站,則當(dāng)其將繼續(xù)從內(nèi)容提供商網(wǎng)站106拉內(nèi)容時(shí)web服務(wù)器104將返回到步驟406,與內(nèi)容是否正被上傳到移動(dòng)設(shè)備102客戶端無關(guān)。
盡管在本示例中,在步驟808和812處經(jīng)由推式信道以相同的方式來提供改變信息的通知,而不管該改變信息是具有高重要性還是具有低重要性,但是這個(gè)不必一直是這種情況。在其它實(shí)施例中,例如,有關(guān)高重要性改變的通知能夠比有關(guān)低重要性改變的通知更迅速地、或以某種其它方式被發(fā)送。另外,雖然在圖8的本示例中在步驟814處改變信息的發(fā)送發(fā)生在與在步驟808、810處的通知的發(fā)送不同的時(shí)間,但是這個(gè)不必一直是這種情況。例如,在一個(gè)其它實(shí)施例中,在高重要性改變信息的內(nèi)容為小的(例如,小于100個(gè)字符的文本消息)的情況下,該內(nèi)容能夠與高重要性改變的通知一起(或者甚至充當(dāng)高重要性改變的通知)被提供。從上述描述中,還應(yīng)當(dāng)顯而易見的是,在至少一些實(shí)施例中,就與 CPff 106和移動(dòng)設(shè)備102的不同部分的相應(yīng)的通信而言,后端部分的操作能夠大體上或完全地與前端部分的操作無關(guān)。取決于實(shí)施例,各種不同類型的通信,例如包括拉或輪詢的那些、或定期性或異步的通信能夠被任一端部分采用,而不管另一端部分的操作。因此,后端部分306能夠連續(xù)地從CPW 106拉內(nèi)容并且將改變發(fā)送到前端部分308,而不管前端部分正在做什么。前端部分308能夠同樣地推到移動(dòng)設(shè)備102并且等待請(qǐng)求下載改變內(nèi)容,或使服務(wù)器和移動(dòng)設(shè)備同步,而不用關(guān)心在任何特定時(shí)刻后端部分306正在做什么。
至于圖9,在其中所提供的流程圖示出了在一些其它實(shí)施例中,如何不是執(zhí)行圖6 中所示的節(jié)點(diǎn)A與節(jié)點(diǎn)D之間的步驟604-609,而是移動(dòng)設(shè)備102以包括步驟900-914的不同的方式操作。圖9中所示的由移動(dòng)設(shè)備102執(zhí)行的步驟900-914是特別地相對(duì)于圖8 中所示的由web服務(wù)器104執(zhí)行的步驟800-814的補(bǔ)充。如圖9中所示,一旦從節(jié)點(diǎn)A繼續(xù),則移動(dòng)設(shè)備102不是執(zhí)行圖6的接收步驟604,而是能夠從web服務(wù)器104接收在從CPW 106最近并且在更早時(shí)間提供的信息中已經(jīng)檢測(cè)到一個(gè)或多個(gè)改變的通知(在步驟808、 810中的一個(gè)或兩者處發(fā)送的)。如果在步驟900處接收到通知,則在步驟902處移動(dòng)設(shè)備 102確定該通知是指示該改變具有高重要性還是具有低重要性。
如果在步驟902處確定該改變具有高重要性,則在步驟904處移動(dòng)設(shè)備102確定是否應(yīng)當(dāng)立即從web服務(wù)器104獲得該高重要性改變信息。盡管在一些實(shí)施例中一直是應(yīng)當(dāng)盡可能快地獲得高重要性改變信息的情況,但是在其它實(shí)施例中,由于各種原因移動(dòng)設(shè)備仍然能夠確定將優(yōu)選地推遲嘗試從web服務(wù)器獲得該信息(例如,因?yàn)橐苿?dòng)設(shè)備電量低)。假定在步驟904處移動(dòng)設(shè)備102確定應(yīng)當(dāng)立即獲得改變信息,則處理前進(jìn)到步驟906, 在該處移動(dòng)設(shè)備立即將用于請(qǐng)求將高重要性改變信息立刻提供給移動(dòng)設(shè)備的請(qǐng)求信號(hào)發(fā)送到web服務(wù)器。作為響應(yīng),在步驟908處,移動(dòng)設(shè)備102最終從web服務(wù)器接收到所請(qǐng)求的改變信息(或該信息中的至少一些,如由web服務(wù)器104所確定的)。在這點(diǎn)上,步驟908 的執(zhí)行補(bǔ)充了圖8的步驟814的執(zhí)行。
如果替代地在步驟902處由移動(dòng)設(shè)備確定該通知指示改變信息具有低重要性,或如果在步驟904處移動(dòng)設(shè)備確定不應(yīng)當(dāng)(或需要)立即獲得改變信息,則處理前進(jìn)到步驟 910。在步驟910處,移動(dòng)設(shè)備102進(jìn)一步確定用于輪詢web服務(wù)器104以獲得改變信息的適當(dāng)時(shí)間是否已經(jīng)出現(xiàn)。這樣的適當(dāng)時(shí)間可以是定期性出現(xiàn)的時(shí)間,或在其它實(shí)施例中,能夠由移動(dòng)設(shè)備102基于各種其它考慮(例如,自從另一事件已經(jīng)流逝的預(yù)定量的時(shí)間,或如接收到指令移動(dòng)設(shè)備從web服務(wù)器104獲得內(nèi)容信息的用戶命令)來確定。
如果在步驟910處用于輪詢web服務(wù)器的適當(dāng)時(shí)間仍然未出現(xiàn),則處理能夠重復(fù)該步驟直到這樣的時(shí)間出現(xiàn)(或能夠前進(jìn)到處理的另一步驟和/或可能地在不同的時(shí)間返回到步驟910)為止。然而,如果在步驟910處適當(dāng)時(shí)間已經(jīng)出現(xiàn),則處理前進(jìn)到步驟912, 在該處輪詢/請(qǐng)求信號(hào)由移動(dòng)設(shè)備102發(fā)送到web服務(wù)器104。一旦發(fā)送了該信號(hào),則該處理返回到移動(dòng)設(shè)備102接收所請(qǐng)求的改變信息的步驟908。進(jìn)一步如圖9中所示,一旦完成步驟908,則移動(dòng)設(shè)備102繼續(xù)進(jìn)行執(zhí)行步驟913,其中所接收到的信息由移動(dòng)設(shè)備102來顯示或以別的方式輸出以支持移動(dòng)設(shè)備的用戶對(duì)信息的回顧。如所示,步驟913能夠相同于或類似于圖6的步驟609。
雖然在步驟908處由web服務(wù)器104發(fā)送的改變信息常常是移動(dòng)設(shè)備102的用戶最感興趣的,但是這個(gè)改變信息常常不包括在由web服務(wù)器對(duì)該信息進(jìn)行處理之前在CPW 106處原始可用的各種內(nèi)容(以及格式化)信息。也就是說,雖然由web服務(wù)器104提供的信息能夠包括諸如事件、最近的狀態(tài)信息、來自其它人的評(píng)論等的各種內(nèi)容,并且雖然移動(dòng)設(shè)備102也能夠理所當(dāng)然將某個(gè)標(biāo)準(zhǔn)信息顯示為其用戶界面的一部分(例如,用戶的名稱、 用戶與其聯(lián)系的CPW等),但是由于web服務(wù)器104的調(diào)解而造成相當(dāng)量的內(nèi)容和/或其它信息能夠被排除在外。因此,一旦在步驟913處顯示了改變信息,則用戶可以決定不僅獲得改變信息而且獲得其它內(nèi)容(或甚至格式化)信息將是所希望的。如果用戶希望獲得這樣的其它信息,則在后續(xù)步驟914處移動(dòng)設(shè)備進(jìn)一步確定是否已經(jīng)接收到用于獲得不是在步驟908處從web服務(wù)器104接收到的其它信息的用戶命令。例如,當(dāng)用戶選擇由移動(dòng)設(shè)備顯示的圖標(biāo)時(shí),能夠接收到這樣的命令,其在步驟913處可以被顯示為改變信息的一部分。
如果在步驟914處確定接收到這樣的命令,則在步驟916處移動(dòng)設(shè)備102與CPW 106建立直接通信鏈路。建立直接通信鏈路的這個(gè)操作能夠相同于或類似于與上文所討論的步驟6M相關(guān)聯(lián)的操作,并且能夠包括被設(shè)計(jì)成既建立通信鏈路又發(fā)出用戶所期望的其它信息的標(biāo)準(zhǔn)的基于web的客戶端-服務(wù)器通信(例如,包括統(tǒng)一資源定位符(URL)的輸入/傳輸和/或與CPW 106的web頁面進(jìn)行對(duì)接)。因此,一旦在步驟916處建立直接通信鏈路之后,則在步驟918處從CPW 106接收用戶所期望的其它信息。一旦完成步驟918,以及在確定在步驟914處沒有接收到用戶命令的情況下或在步驟900處接收到來自web服務(wù)器104的通知的情況下,則該處理返回到節(jié)點(diǎn)D并且繼續(xù)圖6的步驟610。
在本發(fā)明的另一替代實(shí)施例中,后端部分306包括多個(gè)插件或處理器,其中的每一個(gè)都與相應(yīng)的CPW 106相關(guān)聯(lián)。每個(gè)插件都包括用于其關(guān)聯(lián)CPW 106的應(yīng)用編程接口 (API)。每個(gè)插件都使用超文本傳輸協(xié)議(HTTP)以持續(xù)地從其相應(yīng)內(nèi)容提供商網(wǎng)站106拉 fn息ο
當(dāng)后端部分306插件檢測(cè)到改變時(shí),改變被加載到隊(duì)列中并且前端部分308將通知推到移動(dòng)設(shè)備102。后端部分306中的所有插件將繼續(xù)向隊(duì)列加載根據(jù)包括例如信息源的ID(源內(nèi)容提供商網(wǎng)站標(biāo)識(shí))、用戶設(shè)備的賬戶ID、內(nèi)容類型、優(yōu)先級(jí)以及信息的通用格式所格式化的信息。例如,對(duì)于狀態(tài),格式可以為類型(狀態(tài)、情緒、STATUS_AND_M00D)、動(dòng)作(清除狀態(tài)或更新狀態(tài))、提供商、聚合服務(wù)賬號(hào)id、外部id、如果更新是用于朋友的朋友 id、狀態(tài)文本、發(fā)布日期和時(shí)間。web服務(wù)器104通過將由所有的插件拉的內(nèi)容組合到用于每個(gè)相應(yīng)設(shè)備(或用戶賬號(hào))的通用改變列表中來為每個(gè)用戶設(shè)備(或用戶賬號(hào))構(gòu)建統(tǒng)一的訂閱源。內(nèi)容被隨著時(shí)間的推移而構(gòu)建,并且每個(gè)條目能夠被加時(shí)間戳。
以下算法能夠用于檢測(cè)在服務(wù)器同步期間的改變,其中服務(wù)器同步被理解成包括 web服務(wù)器104與CPW 106的同步(通過比較,客戶端同步能夠被理解成包括諸如移動(dòng)設(shè)備102的客戶端與web服務(wù)器的同步)。web服務(wù)器104程序維持用于每個(gè)賬號(hào)的三個(gè)號(hào)碼cla、wl以及w2。cla是改變列表錨,wl是改變列表窗口的開始時(shí)間(采樣),而w2是改變列表窗口的結(jié)束時(shí)間(采樣)。服務(wù)器104存儲(chǔ)落入窗口 [wl,w2]內(nèi)部的改變列表的部分。在服務(wù)器同步期間(即,后端部分從CPW拉)找到的所有改變用等于當(dāng)前w2( S卩,在遞增1之前)的同步錨被加戳。一旦窗口大小達(dá)到或超過最大窗口大小mw,則該程序就暫停服務(wù)器同步(內(nèi)容提供商網(wǎng)站大小同步)。一旦暫停,則當(dāng)接收到新的客戶端輪詢時(shí)服務(wù)器將恢復(fù)服務(wù)器同步。其它變量是作為客戶端錨的ca,OFF是指示沒有同步活動(dòng)的標(biāo)記。cla、wl以及w2的值根據(jù)以下狀態(tài)轉(zhuǎn)變規(guī)則來更新事情狀態(tài)轉(zhuǎn)變初始化cla = 0, w 1 = 0, w2 = 0, off = 0Re々3EA 止如果 w2-wl>=mw,貝Ijw2 = w2+1,月艮務(wù)器同步
Off= 1vK 戶端 |丨'J 步,w 1 <= ca <= w2 w 1 = ca, off = 0各戶端M少,cla < wl ji'-ll. cla = w2+l, wl = cla, w2 = cla, off = 0 (^<%1或0&>%2)(也可以叫“改變列表復(fù)位”)
當(dāng)客戶端輪詢以獲得改變時(shí),如果客戶端錨ca落入[wl,w2]內(nèi)部,則部分同步將工作并且服務(wù)器發(fā)送回落入[ca,w2]的改變(并且刪除比ca老的改變)。在對(duì)同步作出結(jié)論后,ca將被更新。如果當(dāng)客戶端輪詢以獲得改變時(shí),客戶端錨落在[wl,w2]的外部,則在web服務(wù)器104與移動(dòng)設(shè)備102中的客戶端程序之間將發(fā)生新的完全同步。
設(shè)想當(dāng)窗口大小達(dá)到mw時(shí)服務(wù)器同步(后端插件拉用于特定設(shè)備102的內(nèi)容) 能夠針對(duì)特定移動(dòng)設(shè)備102賬戶被暫停,在此情況下在缺少客戶端輪詢的情況下稍有丟失的推(到設(shè)備的通知)可能造成設(shè)備的服務(wù)中斷。設(shè)想如果自上一個(gè)w2以來存在未決的改變,則對(duì)于發(fā)送推式可能是有利的,只要自wl以來存在未決的改變,則能夠發(fā)送推式。
進(jìn)一步設(shè)想在本文中所描述的中間web服務(wù)器104能夠有利地與于2009年5 月 21 日提交的、題為 A MOBILE COMPUTING DEVICE AND METHOD WITH ENHANCED POLING MANAGEMENT的美國(guó)臨時(shí)申請(qǐng)61/180,301中所描述的設(shè)備輪詢管理器一起使用。
現(xiàn)將對(duì)作為上傳內(nèi)容的示例的還被稱為圖片的照片上傳進(jìn)行描述。通過將照片緩存在中間web服務(wù)器104存儲(chǔ)器302處,能夠采用中間web服務(wù)器104來優(yōu)化將照片從用戶設(shè)備102上傳到多個(gè)社交網(wǎng)系統(tǒng)106的處理。示例性流程可以為如下
1.在步驟1002處,中間web服務(wù)器前端308向后端部分306指示用戶設(shè)備102上傳了照片(圖10);
2.在步驟1004處,web服務(wù)器前端或后端部分將照片URL和系統(tǒng)范圍的唯一照片ID給予新照片;
3.在步驟1006處,照片ID被下載到設(shè)備102,響應(yīng)于此,設(shè)備客戶端程序?qū)⒄掌?ID與照片名稱相關(guān)聯(lián);
4.在步驟1008處,后端通過HTTP將文件下載到諸如/tmp/uniqu印hotoid. tmp的位置;
5.在步驟1010處,與目標(biāo)內(nèi)容提供商網(wǎng)站中的每一個(gè)相關(guān)聯(lián)的相應(yīng)后端部分306 插件為每個(gè)內(nèi)容提供商網(wǎng)站提交work. uploadPhoto以上傳這個(gè)照片文件;
6.在步驟1012處,后端部分將照片分享的成功或失敗的報(bào)告往回提供給前端部分;
7.在步驟1014處,前端能夠可選地向用戶設(shè)備102通知成功或失??;
8.在步驟1016處,在預(yù)定時(shí)間段已經(jīng)過去之后,該照片被刪除。
在操作中,來自用戶設(shè)備102的照片從用戶設(shè)備102上傳到網(wǎng)絡(luò)的前端部分308, 如由步驟1102(圖11)處所指示的。前端部分308或后端部分306將照片緩存在中間web 服務(wù)器302中持續(xù)預(yù)定的時(shí)間段以允許在步驟1206(圖1 中將同一照片提交到不同系統(tǒng)的網(wǎng)站而不要求該照片由用戶設(shè)備102再次上傳。在預(yù)定的時(shí)間段之后,該照片將被擦除。 預(yù)定的時(shí)間段可以是任何時(shí)間段,并且根據(jù)存儲(chǔ)器約束和使用的頻率來選擇。時(shí)間段可以例如為M小時(shí),該時(shí)間段能夠在相片被上傳到存儲(chǔ)器302的時(shí)間開始,從而一旦圖片被上傳,則設(shè)置了該時(shí)間段,或者該時(shí)間段可以一旦照片上傳到內(nèi)容提供商106就開始,從而每當(dāng)圖片被上傳到新的內(nèi)容提供商時(shí)該時(shí)間段就被延長(zhǎng)。
對(duì)于一個(gè)示例性實(shí)施例而言,在步驟1102(圖11)處,相片作為動(dòng)作與指定的內(nèi)容提供商網(wǎng)站106的標(biāo)識(shí)一起從移動(dòng)設(shè)備102被上傳到中間服務(wù)器前端308并且存儲(chǔ)在網(wǎng)絡(luò)服務(wù)器的臨時(shí)存儲(chǔ)器中。在步驟1004(圖10)處,前端308將該照片轉(zhuǎn)發(fā)到后端306中的插件,該插件能夠例如專用于由移動(dòng)設(shè)備指定的內(nèi)容提供商網(wǎng)站。在步驟1006處,網(wǎng)絡(luò)服務(wù)器前端部分308還將包括與所保存的相片相關(guān)聯(lián)的照片標(biāo)識(shí)(ID)的消息往回發(fā)送到用戶設(shè)備102。照片ID標(biāo)識(shí)位置或指向在web服務(wù)器存儲(chǔ)器302處存儲(chǔ)照片的位置的指示器。 在步驟1104中移動(dòng)設(shè)備接收照片ID并且如在步驟1106中所指示的將照片ID與照片的名稱相關(guān)聯(lián)(映射)。隨后,在步驟1108中,如果移動(dòng)設(shè)備102經(jīng)由用戶接口選擇將同一照片發(fā)送到不同的社交網(wǎng)系統(tǒng),則移動(dòng)設(shè)備將照片ID而不是實(shí)際的照片發(fā)送到網(wǎng)絡(luò)服務(wù)器。作為響應(yīng),中間服務(wù)器104將檢索照片并且將其轉(zhuǎn)發(fā)到專用于另一內(nèi)容提供商網(wǎng)站106的另一插件,如步驟1204(圖1 中所指示的。在步驟1110中,設(shè)想一旦從存儲(chǔ)器302中移除照片,則更新將被發(fā)送到用戶設(shè)備102以便用戶設(shè)備移除照片名稱和照片ID的關(guān)聯(lián),使得設(shè)備將上傳該相片。如果另一方面不再存儲(chǔ)照片,并且服務(wù)器接收到用于上傳與照片ID相關(guān)聯(lián)的照片的請(qǐng)求,則前端部分將錯(cuò)誤消息發(fā)送到訂戶設(shè)備,響應(yīng)于此,該訂戶設(shè)備將被邀請(qǐng)?jiān)俅紊蟼髟撜掌?br> 對(duì)于其它實(shí)施例而言,web服務(wù)器后端部分306將確定從用戶設(shè)備102上傳的相片是否在目標(biāo)社交網(wǎng)系統(tǒng)的必要限制(例如,尺寸和大小)內(nèi)。設(shè)想當(dāng)從存儲(chǔ)器302中移除圖片時(shí)這個(gè)能夠由與每個(gè)內(nèi)容提供商網(wǎng)站相關(guān)聯(lián)的插件來處理,因?yàn)槊總€(gè)插件都能夠存儲(chǔ)對(duì)于相片的內(nèi)容提供商網(wǎng)站的限制。如果滿足限制,則后端306能夠?qū)⒄掌恢卑l(fā)送到目標(biāo)內(nèi)容提供商網(wǎng)站。否則,照片將根據(jù)內(nèi)容提供商網(wǎng)站的要求來調(diào)整大小。為了調(diào)整相片大小和/或?qū)⒄掌s放到目標(biāo)大小,確定了調(diào)整大小因子。能夠被用來確定調(diào)整大小因子X的特別有利的算法為如下
x/100 = ((t-f) / (kc)) “ (0. 5)
其中
χ是調(diào)整大小百分比
t是以字節(jié)為單位的目標(biāo)大小,并且可以例如大約1兆字節(jié)或更小,并能夠有利地小于200,000字節(jié),并且在一個(gè)實(shí)現(xiàn)中是100,000字節(jié)。
f是用于文件大小的小容差因子
k是常量因子,并且可以小于1,以及有利地能夠小于0.5,而且在一個(gè)實(shí)現(xiàn)中被選擇為0. 23ο
c是以字節(jié)為單位的原始文件的大小。
通過將相片存儲(chǔ)在web服務(wù)器104中,通過準(zhǔn)許移動(dòng)設(shè)備在不同的時(shí)間將媒體發(fā)送到不同的社交網(wǎng)絡(luò)服務(wù)器同時(shí)通過設(shè)備通過其進(jìn)行通信的局域網(wǎng)或廣域網(wǎng)將該媒體僅僅上傳一次,服務(wù)器有助于減少設(shè)備的電力消耗和通信網(wǎng)絡(luò)上的帶寬負(fù)擔(dān)。此外,web服務(wù)器能夠采用每個(gè)內(nèi)容提供商網(wǎng)站所期望的格式的媒體,并且設(shè)備不必知道或適應(yīng)這些需求以成功地上傳該媒體。
還設(shè)想,能夠在步驟1302 (圖1 中經(jīng)由中間web服務(wù)器104將照片下載到設(shè)備 102。例如,對(duì)于RSS新聞?dòng)嗛喸炊?,來自RSS內(nèi)容源的照片由具有新聞?dòng)嗛喸锤乓暮蠖诵侣動(dòng)嗛喸磥砝.?dāng)在步驟1304中后端306檢測(cè)到這樣的新聞信息是新的,或者換句話說自由后端部分從這個(gè)CPW拉先前的RSS新聞?dòng)嗛喸匆詠硪呀?jīng)發(fā)生改變時(shí),則服務(wù)器104的后端部分306將針對(duì)客戶端設(shè)備將在步驟1306中適當(dāng)?shù)馗袷交挠嗛喸磦魉偷角岸瞬糠帧?前端部分308將向客戶端設(shè)備102生成低優(yōu)先級(jí)推式通知并且設(shè)備102的隊(duì)列將裝載有概要和照片。當(dāng)客戶端設(shè)備此后將輪詢請(qǐng)求發(fā)送到前端部分以獲得內(nèi)容時(shí),在步驟1308中前端將傳送包括包含已格式化的照片和概要的該新聞?dòng)嗛喸吹年?duì)列的內(nèi)容。移動(dòng)設(shè)備102上的客戶端程序?qū)?huì)將概要和關(guān)聯(lián)的照片顯示在移動(dòng)設(shè)備102顯示器216上。通過示例的方式,如果輸入210包括在顯示器上的觸摸傳感器(通常被稱為觸摸屏),則用戶能夠在概要和照片處觸摸該屏,并且用戶接口將通過鏈路110直接連接到與新聞?dòng)嗛喸锤乓?照片相關(guān)聯(lián)的內(nèi)容提供商網(wǎng)站并且將有關(guān)該新聞?dòng)嗛喸吹牧硗獾男畔⒓虞d在顯示器216上以供用戶查看。后端部分306因此檢測(cè)并且格式化用于該設(shè)備的新照片和概要,并且前端部分 308向設(shè)備通知內(nèi)容是可用的并且響應(yīng)于來自設(shè)備的輪詢請(qǐng)求而將新聞?dòng)嗛喸聪螺d到移動(dòng)設(shè)備102。
進(jìn)一步設(shè)想,移動(dòng)設(shè)備102中的客戶端程序?qū)⒋鎯?chǔ)有關(guān)用戶具有服務(wù)器帳戶的每個(gè)內(nèi)容提供商網(wǎng)站的內(nèi)容類型和特性的一些定義。在步驟1502中,設(shè)備的用戶接口將根據(jù)用戶在服務(wù)器上設(shè)定哪些賬號(hào)而變化。例如,假定用戶在他們的web服務(wù)器104帳號(hào)上進(jìn)入hcebook 和Twitter 。當(dāng)用戶與用戶接口交互以構(gòu)建待上傳到內(nèi)容提供商網(wǎng)站的消息1402(圖14)時(shí),用戶接口顯示器呈現(xiàn)用于消息將被發(fā)送的目標(biāo)內(nèi)容提供商網(wǎng)站的 “FaCeb00k”、“TWitter”或“所有”的選擇(未示出)。在步驟1504中,取決于做出了哪個(gè)選擇,用于消息的參數(shù)可以是不同的(例如,字符的數(shù)量)。如果用戶選擇所有,則長(zhǎng)度1404 將是兩個(gè)內(nèi)容提供商網(wǎng)站限制中的較短的。進(jìn)一步設(shè)想能夠提供長(zhǎng)度計(jì)數(shù)1404和告警1406。在步驟1506中當(dāng)用戶鍵入文本時(shí),在達(dá)到限制之前準(zhǔn)許的剩余字符被顯示在字符限制1404中。在步驟1514中,在某個(gè)閾值處,諸如30個(gè)字符,將顯示告警1406。在步驟1516 中,當(dāng)超過限制時(shí),剩余字符將轉(zhuǎn)向負(fù)計(jì)數(shù),或者用戶將被阻止輸入另外的字符。在用戶改變目的地內(nèi)容提供商源的情況下,限制將適當(dāng)?shù)馗淖?。例如,如果在?chuàng)建消息之后Twitter 網(wǎng)站被添加為目的地,則限制將減小。如果Twitter 網(wǎng)站作為目的地被移除,則限制增加。
移動(dòng)設(shè)備102生成具有取決于用戶設(shè)備在中間web服務(wù)器上設(shè)定的一個(gè)或多個(gè)內(nèi)容提供商網(wǎng)站的操作參數(shù)1404的用戶接口顯示216。對(duì)于消息,通用消息輸入域1402被呈現(xiàn)在顯示器216上以供用戶輸入文本,大小上限基于由被選擇為消息文本的目的地的一個(gè)或多個(gè)社交網(wǎng)網(wǎng)站所準(zhǔn)許的最小的最大消息大小。限制能夠保留在客戶端移動(dòng)設(shè)備上。當(dāng)消息大小變得在限制的預(yù)定量?jī)?nèi)時(shí),移動(dòng)設(shè)備客戶端程序能夠生成告警1406。如果在步驟 1508中一個(gè)或多個(gè)社交網(wǎng)網(wǎng)站改變,則在步驟1510中限制改變。來自用戶接口輸入的內(nèi)容填充了消息輸入?yún)^(qū)域1402,并且當(dāng)達(dá)到限制時(shí)能夠生成告警??蛻舳顺绦蛴靡粋€(gè)或多個(gè)目的地社交網(wǎng)web網(wǎng)站的身份來傳送在步驟1602(圖16)處由服務(wù)器前端接收到的消息。后端部分在步驟1604中針對(duì)一個(gè)或多個(gè)目的地網(wǎng)站對(duì)消息進(jìn)行格式化并且在步驟1606中以社交網(wǎng)網(wǎng)站所期望的格式上傳該消息。
從以上描述中,應(yīng)當(dāng)明顯的是,采用諸如上文所討論的那些的許多不同的操作步驟的各種方法均由本發(fā)明包括。此外,除上文所描述的具體實(shí)施例以外本發(fā)明還旨在包括各種替代實(shí)施例,包括采用具有除了或代替上文所描述的那些以外的其它操作步驟的方法的實(shí)施例,以及采用具有以除了或代替上文所討論的步驟的特定順序或組合以外的各種順序或組合的步驟的方法的實(shí)施例。進(jìn)一步應(yīng)當(dāng)明顯的是,根據(jù)上文所描述的實(shí)施例中的一個(gè)或多個(gè)的系統(tǒng)在就促進(jìn)由用戶操作的移動(dòng)設(shè)備與社交網(wǎng)網(wǎng)站之間的交互而言的在若干方面中能夠提供增強(qiáng)的功能性。取決于實(shí)施例,能夠增強(qiáng)用戶與社交網(wǎng)網(wǎng)站之間的通信的質(zhì)量、如移動(dòng)設(shè)備用戶所體驗(yàn)的社交網(wǎng)網(wǎng)站和關(guān)聯(lián)的事務(wù)處理的用戶友好性、和/或移動(dòng)設(shè)備與這樣的網(wǎng)站之間的通信的效率中的任何一個(gè)或多個(gè)。
圖17圖示了另一示例性通信系統(tǒng)1700。圖中的通信系統(tǒng)1700包括中間web服務(wù)器1704,在本文中還被稱為web服務(wù)器、媒介web服務(wù)器、聚合服務(wù)器、或聚合服務(wù)。web服務(wù)器1704可以包括內(nèi)容提供商處理器1716、核心服務(wù)處理器1718以及存儲(chǔ)器1714,如下文進(jìn)一步詳細(xì)地描述的。
web服務(wù)器1704在一個(gè)或多個(gè)用戶設(shè)備1702和1703與一個(gè)或多個(gè)內(nèi)容提供商網(wǎng)站1706-1708之間交換信息,所述一個(gè)或多個(gè)內(nèi)容提供商網(wǎng)站1706-1708還可以被稱為內(nèi)容提供商、社交網(wǎng)網(wǎng)站、新聞源或新聞?dòng)嗛喸?。用戶設(shè)備1702和1703可以是在本文中所討論的用戶設(shè)備中的任何一個(gè)。響應(yīng)于來自用戶設(shè)備的輪詢,中間web服務(wù)器1704從內(nèi)容提供商網(wǎng)站1706-1708拉信息并且使信息對(duì)用戶設(shè)備1702-1703可用。用戶設(shè)備1702和 1703還能夠經(jīng)由中間web服務(wù)器1704將內(nèi)容推到內(nèi)容提供商網(wǎng)站。此外,用戶設(shè)備1702、 1703能夠通過互聯(lián)網(wǎng)1705經(jīng)由直接連接1720直接訪問內(nèi)容提供商網(wǎng)站(CPW) 1706-1708, 所述互聯(lián)網(wǎng)1705還可以被稱為萬維網(wǎng)或簡(jiǎn)單地稱為web。
用戶設(shè)備1702和1703、中間web服務(wù)器1704、以及內(nèi)容提供商網(wǎng)站1706經(jīng)由互聯(lián)網(wǎng)1705連接,并且由第一互聯(lián)網(wǎng)網(wǎng)絡(luò)1705’和第二互聯(lián)網(wǎng)網(wǎng)絡(luò)1705”來圖示。根據(jù)對(duì)于每個(gè)設(shè)備1702和1703的設(shè)置、根據(jù)選擇的與每個(gè)特定內(nèi)容提供商相關(guān)聯(lián)的應(yīng)用程序接口(API),中間web服務(wù)器1704經(jīng)由互聯(lián)網(wǎng)網(wǎng)絡(luò)1705”訪問內(nèi)容提供商網(wǎng)站使得可訪問的內(nèi)容,并且以容易處理的格式使內(nèi)容對(duì)用戶設(shè)備可用。中間web服務(wù)器1704還接收通過互聯(lián)網(wǎng)1705或經(jīng)由諸如蜂窩網(wǎng)絡(luò)的另一通信網(wǎng)絡(luò)傳送的、源自用戶設(shè)備1702和1703 的內(nèi)容,并且以用于相應(yīng)內(nèi)容提供商網(wǎng)站的適當(dāng)格式將該信息提供給適當(dāng)?shù)膬?nèi)容提供商 1706-1708。圖18圖示了又一示例性通信系統(tǒng)1800,其中,用戶設(shè)備1802經(jīng)由互聯(lián)網(wǎng)網(wǎng)絡(luò) 1805連接到中間web服務(wù)器1804。圖18中被圖示為移動(dòng)設(shè)備的用戶設(shè)備1802還可以經(jīng)由P2P載波連接1822連接到中間web服務(wù)器1804。中間web服務(wù)器1804經(jīng)由互聯(lián)網(wǎng)1805 連接到內(nèi)容提供商網(wǎng)站1806-1808,并且經(jīng)由P2P連接1821連接到運(yùn)營(yíng)商網(wǎng)絡(luò)1820。運(yùn)營(yíng)商網(wǎng)絡(luò)1820可以包括可以具有到后端插件的連接的地址簿。中間web服務(wù)器1804包括內(nèi)容提供商處理器1816以從內(nèi)容提供商網(wǎng)站 1806-1808拉信息,處理信息以標(biāo)識(shí)新內(nèi)容,并且如果標(biāo)識(shí)了新信息,則生成發(fā)送到核心服務(wù)處理器1818的通知。該信息可以被本地地存儲(chǔ)在web服務(wù)器1804內(nèi)的存儲(chǔ)器1814中。 核心服務(wù)處理器1818向用戶設(shè)備1802、1803通知新信息是可用的并且存儲(chǔ)用戶設(shè)備信息以用于與用戶設(shè)備同步。核心服務(wù)1818對(duì)來自用戶設(shè)備1802和1803的輪詢做出響應(yīng)以將內(nèi)容提供給相應(yīng)用戶設(shè)備。由用戶設(shè)備1802或1803傳送的信息還可以通過web服務(wù)器1804發(fā)布到內(nèi)容提供商網(wǎng)站1806-1808。從用戶設(shè)備1802或1803提供的內(nèi)容由核心服務(wù)處理器1818來接收,由內(nèi)容提供商處理器1816來格式化以與內(nèi)容提供商網(wǎng)站1806-1808中的一個(gè)或全部兼容,并且發(fā)送到適當(dāng)?shù)膬?nèi)容提供商1806-1808。內(nèi)容提供商網(wǎng)站1806-1808的示例包括社交網(wǎng)絡(luò)網(wǎng)站(SNW),諸如i^acebook 、 Twitter 以及Myspace 。其它內(nèi)容提供商網(wǎng)站可以是照片網(wǎng)站,諸如Photobucket 、或者新聞源,包括提供簡(jiǎn)易信息聚合(RSQ訂閱源的任何源或新聞內(nèi)容的任何其它源。上述示例不被認(rèn)為是詳盡的,而是能夠?yàn)橛脩粼O(shè)備提供內(nèi)容的源的類型的示例。源可以包括用于移動(dòng)設(shè)備的特殊內(nèi)容,或者用于個(gè)人計(jì)算機(jī)的內(nèi)容。還可以被稱為后端、后端部分、或社交網(wǎng)絡(luò)處理器(SNP)的中間web服務(wù)器的內(nèi)容提供商處理器1816包括用于每個(gè)內(nèi)容提供商的相應(yīng)插件1824。每個(gè)插件1擬4都可以具有相應(yīng)的處理器和/或存儲(chǔ)定義的程序或API,以用于從其相應(yīng)的內(nèi)容提供商拉內(nèi)容并且用適當(dāng)?shù)母袷綄⑿畔脑O(shè)備上傳到相應(yīng)的內(nèi)容提供商。核心服務(wù)處理器1818還被稱為前端。核心服務(wù)處理器1818包括web支持門戶應(yīng)用服務(wù)器1826、核心web服務(wù)應(yīng)用服務(wù)器1828、以及推式服務(wù)器1830。核心服務(wù)處理器 1818和內(nèi)容提供商處理器1816連接到存儲(chǔ)器1814,所述存儲(chǔ)器1814充當(dāng)臨時(shí)儲(chǔ)存器或緩存,其能夠例如使用分割成數(shù)據(jù)庫(kù)的大存儲(chǔ)器系統(tǒng)來實(shí)現(xiàn)。如圖18中所圖示,移動(dòng)設(shè)備1802能夠經(jīng)由諸如有線以太網(wǎng)或無線802. χ連接的局域網(wǎng)或經(jīng)由蜂窩網(wǎng)絡(luò)連接到基站1832。運(yùn)營(yíng)商能夠通過基站1832與負(fù)載平衡器和防火墻SSL 1834之間的P2P連接1822連接到中間web服務(wù)器。運(yùn)營(yíng)商基站1832還能夠通過互聯(lián)網(wǎng)1805連接到中間web服務(wù)器1804。P2P連接1821還可能存在于插件18M與運(yùn)營(yíng)商網(wǎng)絡(luò)1820之間。推式服務(wù)器1830可以例如通過TCP連接連接到用戶設(shè)備1802。核心web服務(wù)服務(wù)器1擬8和web支持門戶1擬6可以經(jīng)由HTTP連接來連接。插件18M還可以經(jīng)由HTTP 連接與內(nèi)容提供商網(wǎng)站1806-1808進(jìn)行通信。如上文所討論的,相應(yīng)的插件18M支持諸如hcebook 、Twitter , MySpace 的社交網(wǎng)網(wǎng)站和諸如RSS、AT0M、POdcasts等等的內(nèi)容訂閱源。此外,插件18M可以被提供用于發(fā)消息門戶,諸如Yahoo 郵件、Google 郵件、以及Microsoft 郵件。然而,電子郵件服務(wù)仍然可以由移動(dòng)設(shè)備1802和1803直接訪問,并且來自郵件服務(wù)的聯(lián)系人列表經(jīng)由前端服務(wù)進(jìn)行備份。數(shù)據(jù)聚合(從內(nèi)容提供商到設(shè)備的信息)和通知API (從設(shè)備到內(nèi)容提供商)可以支持各種活動(dòng),諸如狀態(tài)、通知(新的郵件、訂閱源改變)、朋友訂閱源、以及朋友/ 聯(lián)系人。web服務(wù)器1804還支持推式信道(以向設(shè)備提供通知)、空中軟件供應(yīng)、對(duì)于設(shè)備的中間web服務(wù)器的設(shè)定和配置(例如,用戶的賬號(hào)、偏好等)以及web服務(wù)。中間web服務(wù)器1804特征是用戶設(shè)備安全性、基于微件的web訪問、設(shè)備備份和恢復(fù)、以及運(yùn)營(yíng)商支持工具。中間web服務(wù)器1804可以向設(shè)備1802或1803提供賬戶管理、推以及數(shù)據(jù)服務(wù)。 賬戶管理服務(wù)可以提供設(shè)定和設(shè)備設(shè)定、支持服務(wù)標(biāo)識(shí)、用于用戶的服務(wù)器設(shè)置以及其它賬戶/用戶配置。推式服務(wù)可以提供用于向設(shè)備通知其具有新內(nèi)容或可用數(shù)據(jù)的服務(wù),因此支持向用戶及時(shí)呈現(xiàn)諸如狀態(tài)、新聞以及朋友更新的動(dòng)態(tài)數(shù)據(jù),而無需用戶設(shè)備必須直接輪詢內(nèi)容提供商。數(shù)據(jù)服務(wù)可以包括對(duì)于設(shè)備上傳、檢索以及用于各種類型的數(shù)據(jù)的同步服務(wù)。例如,訂閱源將從內(nèi)容提供商網(wǎng)站檢索到的信息提供給設(shè)備,上傳將來自設(shè)備的內(nèi)容提供給內(nèi)容提供商網(wǎng)站,并且同步使得能夠?qū)崿F(xiàn)設(shè)備1802或1803與服務(wù)器上緩存的同

少ο連接到中間web服務(wù)器1804的設(shè)備1802或1803首次可以連接到設(shè)備設(shè)定服務(wù)以進(jìn)行初始設(shè)備設(shè)定,諸如設(shè)置鍵入電子郵件賬戶以與聚合服務(wù)相關(guān)聯(lián)、設(shè)定內(nèi)容提供商網(wǎng)站以由設(shè)備訪問、鍵入密碼和用戶標(biāo)識(shí),以及建立諸如語言的偏好。一旦完成了設(shè)備設(shè)定, 則為客戶端設(shè)備和推式服務(wù)建立了持續(xù)的TPC/IP連接。當(dāng)中間web服務(wù)器1804檢測(cè)到已經(jīng)發(fā)生影響用于特定設(shè)備的數(shù)據(jù)的改變時(shí),信號(hào)經(jīng)由推式服務(wù)發(fā)送到設(shè)備。在這個(gè)時(shí)候由設(shè)備決定判斷是否直接連接到相關(guān)的數(shù)據(jù)服務(wù)并且檢索任何新的或修改的數(shù)據(jù)。例如, 設(shè)備可以輪詢服務(wù)器以獲得該信息,并且經(jīng)由用戶界面(例如,顯示器)將該信息呈現(xiàn)給用戶。該用戶能夠查看該信息,并且決定是否直接訪問該源以獲得另外的信息。由插件18M從內(nèi)容提供商網(wǎng)站1806-1808拉的信息在中間web服務(wù)器1804中處理并且與先前的信息進(jìn)行比較以標(biāo)識(shí)改變。可從內(nèi)容提供商1806-1808得到的信息可以具有眾多類型。聚合服務(wù)1804所支持的那些內(nèi)容類型被監(jiān)視以獲得改變。當(dāng)檢測(cè)到事情時(shí),條目被添加到改變列表以提供給用戶設(shè)備。改變列表包含從初始化或從最后的改變列表錨開始已經(jīng)發(fā)生的所有事情。事情包括發(fā)布,包括但不限于狀態(tài)或評(píng)論,新聞?dòng)嗛喸?、社交網(wǎng)絡(luò)聯(lián)系人的更新。更具體地,對(duì)于每個(gè)內(nèi)容提供商1806-1808,定義集合被提供用于聚合服務(wù)支持的內(nèi)容類型的子集。與內(nèi)容提供商相關(guān)聯(lián)的插件1擬4將從內(nèi)容提供商網(wǎng)站1806-1808拉所支持的內(nèi)容。然后可以再檢查內(nèi)容以獲得改變。當(dāng)改變發(fā)生時(shí),該改變作為改變列表的一部分被傳送到前端1818。在操作中,服務(wù)器1804和設(shè)備1802每個(gè)都存儲(chǔ)改變錨。服務(wù)器1804將連續(xù)不斷地從內(nèi)容提供商網(wǎng)站1806-1808拉內(nèi)容以保持與內(nèi)容提供商網(wǎng)站1806-1808同步。每當(dāng)后端部分1816拉內(nèi)容,其檢查改變。如果檢測(cè)到改變,則其被添加到可以被存儲(chǔ)在例如存儲(chǔ)器1814中的改變列表。設(shè)備1802同步到服務(wù)器1804以保持在改變上最新的,并且服務(wù)器 1804和設(shè)備1802使用錨來確定要交換多少信息。以下術(shù)語與web服務(wù)器1804的后端部分改變同步相關(guān)聯(lián)■服務(wù)器同步-服務(wù)器從數(shù)據(jù)的原版同步(例如,后端從諸如hcebook 、 Twitter 等的內(nèi)容提供商網(wǎng)站的同步)■客戶端同步-移動(dòng)設(shè)備102中的客戶端程序與前端同步(核心服務(wù)服務(wù)器)■ CLA-改變列表錨-采樣(時(shí)間或改變)在該處如在服務(wù)器中記錄的發(fā)生最后的完全或部分同步(在聚合服務(wù)服務(wù)器程序處記錄的)■改變列表版本-改變列表可以被給予版本號(hào)以幫助同步跟蹤■ Wl-存儲(chǔ)的改變列表窗口的較低的采樣(開始)_W2-存儲(chǔ)的改變列表窗口的較高的采樣(結(jié)束)■ MW-最大窗口大小(能夠被指定為時(shí)間跨度,改變數(shù)量,或時(shí)間跨度和改變數(shù)量的組合)■ OFF-指示同步是否被暫停的標(biāo)志■ CA-客戶端錨-采樣(時(shí)間或改變)在該處如在設(shè)備中記錄的發(fā)生最后的完全或部分同步(在聚合服務(wù)客戶端程序處記錄的)。當(dāng)在服務(wù)器同步期間檢測(cè)到改變時(shí)能夠使用以下同步傳輸隊(duì)列算法,并且確保新信息被提供給設(shè)備使得設(shè)備被更新。web服務(wù)器1804程序針對(duì)每個(gè)賬戶維持三個(gè)數(shù)值 CLA、W1以及W2。服務(wù)器1804程序存儲(chǔ)落入在窗口 [W1,W2]內(nèi)部的改變列表的部分。在服務(wù)器同步期間發(fā)現(xiàn)的所有改變用等于當(dāng)前W2(即,在W2遞增1之前)的同步錨來加戳。一旦窗口大小到達(dá)或者超過最大窗口大小mw,則程序就暫停服務(wù)器同步(內(nèi)容提供商web大小同步)。一旦暫停,則當(dāng)接收到新的客戶端輪詢時(shí),服務(wù)器1804將重新開始服務(wù)器同步。 CLA, Wl以及W2的值根據(jù)以下狀態(tài)轉(zhuǎn)換規(guī)則來更新
事情狀態(tài)轉(zhuǎn)換
初始化CLA = 0, Wl = 0, W2 = 0, OFF = 0
BBiWR止如果 W2-W1>=MW,則 W2 =服務(wù)器同少W2+1, Off= I
各戶端 I' ij 步,W1 <= CA <= W2 W1 = CA, OFF = 0
各戶端Mil;·,CLA < Wl 并丄I. CLA = W2+1, Wl = CLA, W2 = CLA, (CA < Wl或CA > W2)OFF = OC也可以叫“改變列表復(fù)位”)當(dāng)客戶端1802或1803輪詢以獲得改變時(shí),如果客戶端錨CA落入[Wl,W2]內(nèi)部, 則部分同步將工作并且服務(wù)器往回發(fā)送落入[Ca,W2]內(nèi)部的改變(并且刪除老于CA的改變)。否則,服務(wù)器和客戶端開始完全同步。當(dāng)且僅當(dāng)客戶端錨CA小于Wl或大于W2(即, CA在窗口的外部)時(shí)客戶端才需要完全同步。在這種情況下,客戶端錨CA是“無效的”。 當(dāng)且僅當(dāng)改變列表錨CAL小于Wl (即,服務(wù)器不具有當(dāng)前改變列表的完整歷史)時(shí)服務(wù)器 1804復(fù)位其改變列表。服務(wù)器1804將窗口 W,W2]發(fā)送給客戶端,其中“0”告訴客戶端其應(yīng)當(dāng)進(jìn)行完全同步。盡管賬戶要與單個(gè)設(shè)備相關(guān)聯(lián),但是在聚合服務(wù)中用戶可能想要不止一個(gè)設(shè)備同步到同一用戶賬戶。在缺少改變列表復(fù)位的情況下,多個(gè)設(shè)備和單個(gè)設(shè)備一樣工作。在改變列表復(fù)位的情況下,可能在多個(gè)設(shè)備之間發(fā)生將引起改變列表在服務(wù)器上不斷地復(fù)位的競(jìng)態(tài)條件。例如,設(shè)備1輪詢以獲得改變,發(fā)送無效的CA。服務(wù)器1804不具有當(dāng)前改變列表的完整歷史,因此其復(fù)位其改變列表。設(shè)備1再次輪詢以獲得改變,使Wl往上移動(dòng)。然后設(shè)備2輪詢以獲得改變,并且由于由設(shè)備1的輪詢引起的改變列表復(fù)位,所以其CA肯定是無效的。然后服務(wù)器1804被迫再次復(fù)位其改變列表。設(shè)備2然后可以再次輪詢以獲得改變,使Wl往上移動(dòng)。如果設(shè)備1然后輪詢以獲得改變,并且由于改變列表復(fù)位所以其CA 肯定是無效的并且服務(wù)器1804被迫再次復(fù)位其改變列表。為了避免這個(gè)競(jìng)態(tài)條件,服務(wù)器1804能夠?yàn)槊總€(gè)設(shè)備保持一個(gè)確認(rèn)的客戶端錨 (“ACA”),并且當(dāng)最小的ACA大于當(dāng)前的Wl時(shí)僅將Wl往上移動(dòng)。替代地,服務(wù)器可以為 Wl創(chuàng)建緩沖區(qū),即服務(wù)器將不一直將Wl往上移動(dòng)到CA,而是移動(dòng)到CA或W2-MW/2中的最小值。在與內(nèi)容提供商(例如,F(xiàn)acebook )進(jìn)行同步的背景下,由于內(nèi)容提供商處理器 1816(即,SNP處理器或后端部分)不具有數(shù)據(jù)的原版的事實(shí)的原因(即,來自Facebook 或其它內(nèi)容提供商網(wǎng)站1808-1808中的一個(gè)的數(shù)據(jù)未被全部拷貝),并且服務(wù)器1804沒有本地地存儲(chǔ)改變的完整歷史,所以服務(wù)器1804將需要時(shí)不時(shí)地(例如,當(dāng)設(shè)備過期時(shí))復(fù)位(即,從頭開始重建)改變列表。因此,在不同的時(shí)間構(gòu)建的改變列表的背景下,相同的時(shí)間戳/同步錨能夠意指不同的情況。考慮圖22中所圖示的事情2200的以下序列。在圖22中,aX意指“添加項(xiàng)目X”, mX意指“修改項(xiàng)目X”,以及dX意指“刪除項(xiàng)目X”。如圖22中所見,服務(wù)器以僅具有在存儲(chǔ)器1814中本地地存儲(chǔ)的(m2,a2)的改變列表CLl (2210)開始,并且客戶端具有(al,a2)??蛻舳税l(fā)送同步錨t (2212),其為過期的因此服務(wù)器擦除CLl,并且重建改變列表,具有(a2,a3)的CL2 (2220)本地地存儲(chǔ)在存儲(chǔ)器 114中??蛻舳巳缓髱е渫藉^^222 回來并且服務(wù)器往回發(fā)送(a!3)??蛻舳爽F(xiàn)在具有(al,a2, a3),并且失去(dl)。應(yīng)當(dāng)已經(jīng)發(fā)生的是服務(wù)器往回發(fā)送了(a2,a3)并且通知設(shè)備進(jìn)行完全同步。如果這個(gè)發(fā)送失敗,則當(dāng)客戶端再帶著t回來時(shí),服務(wù)器可能強(qiáng)制完全同步或僅往回發(fā)送(a3)。為了避免這個(gè)問題,版本號(hào)能夠與改變列表一起保存,而不是僅保存?zhèn)€別改變。也就是說,每當(dāng)改變列表在服務(wù)器上復(fù)位時(shí),該改變列表的版本就遞增1。然后當(dāng)從客戶端接收到老的版本號(hào)時(shí),服務(wù)器將明確地知道客戶端需要完全同步。在另一實(shí)施例中,web服務(wù)器1804可以為每個(gè)設(shè)備存儲(chǔ)客戶端錨,并且當(dāng)所存儲(chǔ)的客戶端錨與從設(shè)備接收到的同步錨(例如,在上文示例中的t)失去同步時(shí)強(qiáng)制完全同步。對(duì)于任何給定的改變列表CL和任何給定的改變C,當(dāng)且僅當(dāng)C來自其版本低于CL的版本的改變列表時(shí)才存在錨(C) <版本(CL),然后服務(wù)器不必在服務(wù)器與客戶端之間傳送額外的版本號(hào)——服務(wù)器僅需要將當(dāng)前改變列表的版本存儲(chǔ)在服務(wù)器上,并且將傳入的客戶端同步錨與這個(gè)版本號(hào)進(jìn)行比較以確定客戶端是否是版本過期的(并且因此需要完全同步)。服務(wù)器能夠通過從相同序列號(hào)拾取同步錨和改變列表來實(shí)現(xiàn)這個(gè)。
這種方法的一個(gè)結(jié)果是服務(wù)器不再能夠?qū)⑼獠康臅r(shí)間戳(例如,伴隨hcebook 消息發(fā)生的那些)用作同步錨,而是指派其自己的同步錨。中間web服務(wù)器1804可以以無論哪一種的語言將其通過后端從內(nèi)容提供商網(wǎng)站 1806-1808所拉的內(nèi)容提供給移動(dòng)設(shè)備1802-1803。例如,如果客戶的i^acebook 偏好是法語,則hcebook 將發(fā)送法語的內(nèi)容,并且該內(nèi)容將以法語通過中間web服務(wù)器1804的聚合服務(wù)。這與用戶設(shè)備和社交網(wǎng)絡(luò)提供商的直接關(guān)系一致,其中,賬戶持有者不能夠在他們的設(shè)備上改變語言偏好,而是在社交網(wǎng)絡(luò)提供商網(wǎng)站上選擇語言。當(dāng)由后端1816在由web服務(wù)器1804支持的“內(nèi)容類型”中檢測(cè)到改變時(shí)(即,聚合服務(wù)),該后端1816將通知前端部分1818將通知發(fā)送到用戶設(shè)備1802或1803。web服務(wù)器1804還可以插入(sink)新聞?dòng)嗛喸?。新聞源可以通過移動(dòng)設(shè)備服務(wù)提供商(例如,蜂窩運(yùn)營(yíng)商)或用戶設(shè)備來選擇。中間web服務(wù)器1804能夠?yàn)槠渲欣昧擞脩粼O(shè)備的市場(chǎng)和語言中的每一個(gè)提供本地內(nèi)容。在一個(gè)實(shí)施例中,中間web服務(wù)器1804 不可以翻譯內(nèi)容的語言,但是僅可以通過后端部分1816從新聞服務(wù)內(nèi)容提供商所拉的內(nèi)容。web服務(wù)器1804還可以插入管理訂閱源。管理訂閱源消息能夠通過系統(tǒng)管理者來創(chuàng)建,他們被局部化并且他們以用于設(shè)備的正確語言被發(fā)送到用戶設(shè)備。web服務(wù)器1804還可以插入聯(lián)系人,諸如朋友列表。如果聯(lián)系人不經(jīng)常被更新,則聚合服務(wù)的前端1818可以偶爾使他們同步,例如,不是一天一次以上或兩次。支持異步改變通知的提供商對(duì)于這個(gè)處理是個(gè)例外并且這樣的改變被立即同步。當(dāng)中間web服務(wù)器1804后端1816檢測(cè)到在社交網(wǎng)絡(luò)網(wǎng)站中已經(jīng)更新聯(lián)系人時(shí), 其通過推式信道將低優(yōu)先級(jí)信號(hào)發(fā)送到在設(shè)備1802或1803中存儲(chǔ)的聚合服務(wù)客戶端程序。一旦接收到這個(gè)信號(hào),則聚合服務(wù)客戶端將通過在服務(wù)器1804的前端中調(diào)用聚合服務(wù)的同步web服務(wù)來發(fā)起雙向同步操作。聚合服務(wù)客戶端還可以允許用戶手動(dòng)地發(fā)起同步。例如,設(shè)備1802可以包括使用戶能夠請(qǐng)求與web服務(wù)前端同步的菜單。在聚合服務(wù)客戶端程序上的聯(lián)系人的改變可以以 “緩慢的”方式與web服務(wù)器同步。在將改變發(fā)送到服務(wù)器前端1818之前,客戶端程序?qū)⒃诳膳渲玫臅r(shí)間段中對(duì)改變進(jìn)行批處理。如上文所討論的,朋友訂閱源是關(guān)于社交網(wǎng)網(wǎng)站提供商的網(wǎng)絡(luò)中的聯(lián)系人/朋友的信息。當(dāng)聚合服務(wù)檢測(cè)到新的訂閱源元素時(shí),其通過推式信道將低優(yōu)先級(jí)信號(hào)發(fā)送到用戶設(shè)備中的聚合服務(wù)客戶端程序。一旦接收到這個(gè)信號(hào),則客戶端將使用適當(dāng)?shù)膚eb服務(wù)輪詢交換從聚合服務(wù)中取得訂閱源。訂閱源可以包括來自若干內(nèi)容提供商1806-1808的元
ο狀態(tài)通常由用戶針對(duì)多數(shù)內(nèi)容提供商手動(dòng)地設(shè)置,但是聚合服務(wù)客戶端程序也能夠支持即時(shí)發(fā)消息(IM)風(fēng)格呈現(xiàn)。狀態(tài)被監(jiān)視用于訂戶(自身狀態(tài))并且用于所有的關(guān)聯(lián)朋友(朋友狀態(tài))。自身狀態(tài)還可以使用適當(dāng)?shù)膚eb服務(wù)通過聚合服務(wù)客戶端程序在提供商中設(shè)置。當(dāng)聚合服務(wù)web服務(wù)器后端檢測(cè)到狀態(tài)的變化(自身的或朋友的)時(shí),其通過推式信道將高優(yōu)先級(jí)信號(hào)發(fā)送到聚合服務(wù)客戶端程序。這個(gè)推式信號(hào)能夠在其凈荷中有利地包含狀態(tài)值。支持狀態(tài)的社交網(wǎng)提供商將在提供商設(shè)置中具有入口。每個(gè)提供商都將包括定義如下的狀態(tài)設(shè)置提供商到提供商ID的映射;狀態(tài)文本的最大長(zhǎng)度;如果支持情緒,則情緒列表和/或可用反應(yīng)的列表。在一個(gè)實(shí)施例中,用戶或提供商可以鍵入無效的或空字符串以清除狀態(tài)。如果用戶正在設(shè)置情緒,則用戶可以提供該情緒的標(biāo)識(shí)、對(duì)該情緒的描述,選擇描繪該情緒的預(yù)定義圖片或?yàn)橛脩暨x擇的圖片提供url。web服務(wù)器1804后端1816插件18M能夠直接從社交網(wǎng)網(wǎng)站獲得狀態(tài)和情緒更新,并且向核心web服務(wù)1擬8通知任何改變。狀態(tài)和情緒更新可以包含以下信息類型(狀態(tài)、情緒、STATUS_AND_M00D)、動(dòng)作(清除狀態(tài)或更新狀態(tài))、內(nèi)容提供商(例如,內(nèi)容提供商1806-1808中的一個(gè))、聚合服務(wù)賬戶id、外部id、如果更新是針對(duì)朋友則朋友id、狀態(tài)文本和/或發(fā)布日期。如果更新是情緒或STATUS_AND_M00D更新,則更新可以包括如上文所討論的id、描述、圖片名稱和/或圖片url。id、描述、圖片名稱以及圖片url被包括以支持定制情緒。Id常常是數(shù)字,并且描述、圖片名稱以及圖片url是文本。一些社交網(wǎng)提供商允許用戶按照狀態(tài)行事。Facebook 例如允許用戶對(duì)狀態(tài)進(jìn)行評(píng)論。Twitter 允許用戶指示喜愛的狀態(tài)以及答復(fù)狀態(tài)。狀態(tài)反應(yīng)提供這個(gè)能力并且能夠與朋友動(dòng)作非常類似而且與朋友訂閱源和朋友訂閱源反應(yīng)非常類似。例如,使用聚合服務(wù)器1804的一個(gè)好處是,通過進(jìn)行改變列表的定期性的主動(dòng)復(fù)位來有利地消除將改變或更新中的任何一個(gè)永久地存儲(chǔ)在服務(wù)器上的需要。結(jié)果,客戶端設(shè)備將必須執(zhí)行與聚合服務(wù)器1804的更多的完全同步。因?yàn)楫?dāng)窗口大小達(dá)到麗時(shí)服務(wù)器同步被暫停,所以在缺少客戶端輪詢的情況下很少丟失的推式可以造成設(shè)備的服務(wù)停歇期。能夠采用某些措施來使這種情況不太可能發(fā)生。例如,代替僅當(dāng)自上一個(gè)W2以來存在未決的改變時(shí)才發(fā)送推式,只要自Wl以來(或在多個(gè)設(shè)備情況下自每個(gè)設(shè)備的ACA以來)存在未決的改變就能夠發(fā)送推式。這個(gè)方式確實(shí)導(dǎo)致正被發(fā)送的冗余推式和因此客戶端的冗余輪詢,但是如果Wl (或在多個(gè)設(shè)備情況下每個(gè)設(shè)備的ACA)被包括在推式消息中則能夠最小化后者的不利。核心web服務(wù)應(yīng)用服務(wù)器1擬8包括核心服務(wù)應(yīng)用,該核心服務(wù)應(yīng)用的主要功能將是從后端1816(社交網(wǎng)處理器(SNP))接收數(shù)據(jù)并且對(duì)其進(jìn)行封裝以傳遞到客戶端設(shè)備。這些應(yīng)用包括朋友訂閱源、社交網(wǎng)朋友、發(fā)消息/郵件以及新聞。它們可以具有共有的若干屬性數(shù)據(jù)流可以是從服務(wù)器到客戶端的單方向的;沒有客戶端改變可以被往回交付給核心 web服務(wù)應(yīng)用服務(wù)器1擬8并且數(shù)據(jù)不被永久地維持在核心web服務(wù)應(yīng)用服務(wù)器1擬8中。前端1818能夠提供同步傳輸隊(duì)列、用于通過同步信道將數(shù)據(jù)向下發(fā)送到客戶端設(shè)備1802或1803的過渡機(jī)構(gòu)。核心web服務(wù)應(yīng)用服務(wù)器1擬8中的應(yīng)用能夠向傳輸隊(duì)列注冊(cè)它們的同步應(yīng)用ID,所述傳輸隊(duì)列進(jìn)而向由作為應(yīng)用的代理的前端1818控制的同步引擎注冊(cè)。傳輸隊(duì)列支持一個(gè)或多個(gè)條目到隊(duì)列中的入隊(duì)。每個(gè)條目都能夠指定對(duì)隊(duì)列不透明的多個(gè)字段,包括一點(diǎn)數(shù)據(jù);提供商的名稱;項(xiàng)目是否構(gòu)成添加、修改或刪除以及用于條目的唯一 ID。同步傳輸隊(duì)列不關(guān)心指派給這些字段中的任何一個(gè)的值;其僅僅以其被排隊(duì)的順序?qū)?shù)據(jù)進(jìn)行排序。應(yīng)用在入隊(duì)期間不獲取任何鎖。隊(duì)列允許應(yīng)用連續(xù)不斷地將數(shù)據(jù)添加到隊(duì)列中。前端1818還能夠通過用于每個(gè)應(yīng)用的同步錨來提供對(duì)客戶端狀態(tài)的跟蹤。這個(gè)同步錨不可以暴露給應(yīng)用。前端1818可以進(jìn)一步當(dāng)其已經(jīng)驗(yàn)證了客戶端已經(jīng)接收到它時(shí)提供從隊(duì)列中移除數(shù)據(jù)。當(dāng)客戶端進(jìn)來為了其下一次更新請(qǐng)求時(shí),能夠容易地確定這個(gè)驗(yàn)證;前端1818能夠假定客戶端設(shè)備已經(jīng)接收和處理了具有在先的同步錨的任何條目。在期滿時(shí)段之后前端1818能夠清除應(yīng)用數(shù)據(jù)。每個(gè)應(yīng)用都能夠指定任何數(shù)量的限額大小和持續(xù)時(shí)間對(duì)(例如,在一天以后允許不超過1000個(gè)條目,在一周之后允許不超過100個(gè)條目,以及不允許老于一個(gè)月的條目)。核心web服務(wù)應(yīng)用服務(wù)器1擬8可以具有例行地檢查隊(duì)列并且弄清用于任何客戶端設(shè)備的隊(duì)列是否不符合的保管服務(wù)。保管服務(wù)能夠通過刪除其已經(jīng)發(fā)送給客戶端的記錄來滿足限額。否則,保管服務(wù)將為過度限額設(shè)備清除隊(duì)列中的所有的該應(yīng)用的數(shù)據(jù)。當(dāng)隊(duì)列不能夠履行客戶端的更新請(qǐng)求時(shí),前端1818能夠調(diào)用應(yīng)用提供的回叫。如果設(shè)備已經(jīng)被擦(例如,擦除)或者如果用戶已經(jīng)脫機(jī)足夠長(zhǎng)使保管服務(wù)已經(jīng)清除了隊(duì)列, 則這種情況可能發(fā)生。在這種情況下,應(yīng)用被通知隊(duì)列需要復(fù)位,并且期望應(yīng)用從頭開始對(duì)數(shù)據(jù)進(jìn)行重新排隊(duì)??蛻舳吮环祷刂甘舅腻^不再有效的錯(cuò)誤代碼,并且期望的是客戶端將往回復(fù)位到錨0。隊(duì)列進(jìn)入復(fù)位狀態(tài)直到應(yīng)用指示其已經(jīng)重新住入隊(duì)列為止。直到該時(shí)間為止,隊(duì)列針對(duì)任何客戶端更新請(qǐng)求而返回零個(gè)條目。前端1818還可以允許應(yīng)用強(qiáng)制設(shè)備的隊(duì)列的復(fù)位。如果應(yīng)用檢測(cè)到后端部分已經(jīng)經(jīng)歷災(zāi)難性的故障并且不再能夠向應(yīng)用提供差別的改變,則這可能是必要的。在核心web服務(wù)應(yīng)用服務(wù)器18 中的應(yīng)用能夠向隊(duì)列提供回叫,所述回叫能夠?qū)⒁幌盗嘘?duì)列條目轉(zhuǎn)化成用于客戶端的有效的改變列表。由于隊(duì)列是數(shù)據(jù)不可知論的,所以在其能夠被返還到同步引擎以用于傳輸?shù)皆O(shè)備之前,應(yīng)用可以對(duì)該隊(duì)列數(shù)據(jù)進(jìn)行解釋。隊(duì)列可以是數(shù)據(jù)庫(kù)支持的。每逢客戶端做出更新請(qǐng)求或隊(duì)列被復(fù)位時(shí),獲取鎖,但是這不阻止應(yīng)用繼續(xù)將數(shù)據(jù)扔進(jìn)隊(duì)列中。聚合服務(wù)web服務(wù)器1804暴露兩個(gè)同步有關(guān)的web服務(wù)調(diào)用。第一個(gè)調(diào)用是稱作更新的POST方法。這個(gè)調(diào)用從服務(wù)器中檢索客戶端程序能夠使用的改變列表以合并在最新的服務(wù)器改變中??蛻舳松系臓顟B(tài)信息經(jīng)由用于每個(gè)同步應(yīng)用的同步錨來維持,其是被初始設(shè)置為零的長(zhǎng)值。當(dāng)客戶端請(qǐng)求給定的同步應(yīng)用ID的服務(wù)器改變時(shí),客戶端作為參數(shù)提供其當(dāng)前的錨。服務(wù)器返回格式化的改變列表以及最近的服務(wù)器錨。在客戶端成功地合并服務(wù)器改變之后,其必須將其錨更新成服務(wù)器的值??蛻舳四軌蛑付撁娲笮?shù)以限制改變列表的大小;在這種情況下,“isjiiore”標(biāo)志被設(shè)置成指示客戶端需要取得更多的更新。更新可以是允許客戶端同時(shí)地為多個(gè)同步應(yīng)用id取得服務(wù)器更新的成批調(diào)用,這能夠有助于減少往返的數(shù)量。第二調(diào)用是稱作交付的POST方法,其將客戶端的改變列表發(fā)送到服務(wù)器1804。客戶端1802在請(qǐng)求中再次規(guī)定其最后的錨。注意,如果客戶端1802沒有被更新成最新的服務(wù)器版本,則服務(wù)器1804將(通過特定的錯(cuò)誤響應(yīng))拒絕交付請(qǐng)求。在這種情況下,客戶端1802應(yīng)當(dāng)在重試之前調(diào)用更新并且合并服務(wù)器的最新改變。因此,客戶端通常應(yīng)當(dāng)在交付其改變之前調(diào)用更新。客戶端程序檢測(cè)并且解決任何沖突。交付必須是無沖突的,并且因此沖突可能僅當(dāng)客戶端取得服務(wù)器更新并且嘗試將其合并到其本地?cái)?shù)據(jù)儲(chǔ)存器中時(shí)才發(fā)生,其可以包含競(jìng)爭(zhēng)客戶端改變。一般而言,存在客戶端必須處理的三個(gè)種類的沖突 服務(wù)器-模型-客戶端-模型。自上一次成功的同步以來,客戶端和服務(wù)器兩者都已經(jīng)對(duì)特定數(shù)據(jù)項(xiàng)目做出了改變。 服務(wù)器-模型-客戶端-刪除。服務(wù)器正在試圖修改自上一次成功的同步以來客戶端已經(jīng)刪除的數(shù)據(jù)項(xiàng)目。 服務(wù)器-刪除-客戶端-模型。服務(wù)器正在試圖刪除自上一次成功的同步以來客戶端已經(jīng)修改的項(xiàng)目。注意,同步web服務(wù)調(diào)用是關(guān)于在客戶端與服務(wù)器應(yīng)用之間交換的同步數(shù)據(jù)的格式是完全地不可知論的。服務(wù)器與客戶端改變列表是端點(diǎn)經(jīng)由同步框架交換的不透明點(diǎn)。 在這個(gè)意義上,同步web服務(wù)調(diào)用主要地是兩個(gè)端點(diǎn)之間的錨定的傳輸機(jī)制。聚合服務(wù)web服務(wù)器1804還可以具有聚合服務(wù)同步協(xié)議處理機(jī)、同步有限狀態(tài)機(jī)構(gòu),這在圖19中被描述。一旦聚合服務(wù)同步任務(wù)通過同步引擎控制器從隊(duì)列中取出, 則控制器調(diào)用處理機(jī)的executeSyncO方法,其往下進(jìn)行在開始處開始的流程圖。盡管 executeSync調(diào)用塊直到完成為止,但是對(duì)于要完成的整個(gè)任務(wù),存在超時(shí)(通常2分鐘,然而這是可配置的)。圖19是圖示示例性同步操作的流程圖1900。最簡(jiǎn)單的場(chǎng)景是遵循圖19中的流程圖的結(jié)果,從開始1901筆直往下。如果同步被強(qiáng)制(即,作為服務(wù)器推式通知或另一應(yīng)用的顯式力量的結(jié)果)或如果與處理機(jī)相關(guān)聯(lián)的同步適配器具有本地改變,則同步繼續(xù)進(jìn)行(步驟1902)。如果處理機(jī)不具有改變,則該處理結(jié)束。(步驟1903)。如果存在改變,或者同步被強(qiáng)制,則處理機(jī)獲得客戶端的錨(步驟1904),并且調(diào)用同步WS處理機(jī)以得到有差別的服務(wù)器改變。(步驟190 。如果請(qǐng)求是成功的(步驟1906),則處理機(jī)現(xiàn)在具有一點(diǎn)(字節(jié)陣列)以經(jīng)由updateClientO調(diào)用合并到適配器中(步驟1907)。如果合并成功(步驟1908),則客戶端適配器必須將其錨更新成服務(wù)器的錨,并且這個(gè)值被發(fā)送到緩存 (步驟1909)。處理機(jī)可以被配置成在頁面中檢索更新;10的頁面大小指示客戶端僅想要具有相對(duì)于客戶端的接下來的10個(gè)錨值記錄。如果使用了頁面,則處理機(jī)將繼續(xù)取得并且合并更新,直到被明確地告知在服務(wù)器上不存在進(jìn)一步的數(shù)據(jù)。(步驟1910)。接下來,處理機(jī)確定是否存在任何本地客戶端改變(步驟1911)。如果不存在客戶端改變,則處理結(jié)束 (步驟1912)。如果存在客戶端改變,則處理機(jī)檢索改變(步驟191 并且將該改變交付給服務(wù)器。(步驟1914)。處理機(jī)然后將確認(rèn)該交付是成功的(步驟1915)。如果該交付是成功的,則服務(wù)器將往下發(fā)送其新的錨。(步驟1916)當(dāng)確認(rèn)該交付時(shí),錨被給予適配器;適配器必須假定該交付失敗直到其接收到這個(gè)確認(rèn)為止。最終,新的錨被中繼到緩存(步驟
1916)。流程圖1900的側(cè)枝圖示了如何處理若干失敗情況。服務(wù)器可以拒絕在更新請(qǐng)求中的客戶端錨。如果錨是負(fù)的,或者如果客戶端提交了大于服務(wù)器錨的錨(具有下面的一個(gè)例外的情況),則這種情況將發(fā)生。在這種情況下,客戶端被告知清除其數(shù)據(jù)并且從頭開始。(步驟1917)。服務(wù)器可以推測(cè)客戶端處于損壞的狀態(tài)并且要求客戶端請(qǐng)求(步驟
1917)。這與上文中的基本上是相同的情況。服務(wù)器可能請(qǐng)求恢復(fù)(步驟1918),其指示客戶端需要將所有其數(shù)據(jù)向上發(fā)送到服務(wù)器(完全同步),使得服務(wù)器能夠從客戶端數(shù)據(jù)恢復(fù)。這可能在災(zāi)難恢復(fù)的過程中或者當(dāng)客戶端被遷移到新的云(從一個(gè)服務(wù)器104移動(dòng)到不具有其數(shù)據(jù)的另一服務(wù)器104)時(shí)發(fā)生。當(dāng)客戶端錨為非零時(shí),如果服務(wù)器錨為零,則服務(wù)器還能夠檢測(cè)到對(duì)于恢復(fù)的需要。
該流程圖還圖示了沖突處理過程(步驟1919)??梢岳缭诳蛻舳顺绦蛏贤瓿蓻_突處理。服務(wù)器可能告訴客戶端程序,當(dāng)后者試圖交付設(shè)備改變時(shí)其為過期的。為了簡(jiǎn)單起見,當(dāng)客戶端被更新成最新的服務(wù)器數(shù)據(jù)時(shí)服務(wù)器才允許交付。因此,從不存在服務(wù)器側(cè)沖突。聚合服務(wù)客戶端電話(例如,圖18的移動(dòng)設(shè)備180 的基礎(chǔ)特征中的一個(gè)是用來自用戶以及時(shí)且有效的方式簽約的各種社交網(wǎng)絡(luò)的新數(shù)據(jù)來對(duì)其進(jìn)行更新的能力。為了做這個(gè),已經(jīng)確定,聚合服務(wù)包括將通知發(fā)送到設(shè)備的機(jī)制,使得其能夠知道何時(shí)從圖18的聚合服務(wù)核心服務(wù)應(yīng)用服務(wù)器1818檢索新數(shù)據(jù)。為了提供其具有的這樣的服務(wù),期望通過推式信道將通知發(fā)送到用戶設(shè)備1802 或1803。推式信道可以一直在使用作為發(fā)消息協(xié)議的基礎(chǔ)的XMPP的TCP/IP連接上。能夠被用作發(fā)消息的基礎(chǔ)的系統(tǒng)的一個(gè)示例是Jabber XCP服務(wù)器(www. jabber, com)。圖20圖示了用于示例性推式信道的服務(wù)器側(cè)推式架構(gòu)2000,其可以通過圖18中的推式服務(wù)器1830來實(shí)現(xiàn)。該推式架構(gòu)2000包括推式服務(wù)通知API 2002、推式服務(wù)請(qǐng)求處理機(jī)2004、推式服務(wù)調(diào)度器2006、推式服務(wù)XMPP消息生成器2008以及推式服務(wù)認(rèn)證插件 2010 至 Jabber XCP 2012。推式服務(wù)通知API 2002由后端服務(wù)(例如,圖18的推式服務(wù)器1830)用來將通知和數(shù)據(jù)發(fā)送到特定的賬戶設(shè)備。在一個(gè)實(shí)施例中,API可以被定義為如下public class SignalData {
public enum Action {
ADD, REPLACE, DELETE
構(gòu)建新的SignalData對(duì)象
*@paramkey -針對(duì)當(dāng)查找這個(gè)數(shù)據(jù)項(xiàng)時(shí)能夠匹配的關(guān)
鍵字
*@param data -持有待發(fā)送到客戶端的不透明數(shù)據(jù)的字
符串
*@param maxDelay -在發(fā)送這個(gè)數(shù)據(jù)之前要等待的最
大秒數(shù)
*@param expiresAfter -自刪除這個(gè)數(shù)據(jù)的當(dāng)前時(shí)間以來
的秒數(shù)
*@param Action -呈現(xiàn)這個(gè)特定數(shù)據(jù)項(xiàng)的動(dòng)作
*Action.ADD -添加數(shù)據(jù)項(xiàng)而不管關(guān)鍵字如何
*Action.REPLACE -如果存在與這個(gè)關(guān)鍵字匹配的另
一數(shù)據(jù),則替換它。否則,添加該數(shù)據(jù)項(xiàng)。
*Action.DELETE -找到與當(dāng)前關(guān)鍵字匹配的數(shù)據(jù)項(xiàng)并且刪除它。在這個(gè)關(guān)鍵字和數(shù)據(jù)中可以是空的。public SignalData(String key, String data, int maxDelay, int expiresAfter, Action action);
I*
* Simple getters
*/
public String getKey(); public String getData(); public int getMaxDelay(); public int getExpiresAfter(); public Action getAction();
}
public interface Signaling {
*準(zhǔn)備排隊(duì)等候?qū)⒁幌盗袛?shù)據(jù)發(fā)送到與特定賬戶相關(guān)聯(lián)的設(shè)備。
*@param appld -從其發(fā)送這個(gè)數(shù)據(jù)的應(yīng)用的id
*@param accountld -要向其發(fā)送這個(gè)數(shù)據(jù)的設(shè)備的賬戶
的id
*@param deviceld -要向其發(fā)送這個(gè)數(shù)據(jù)的設(shè)備的id
*@param SignalData -要發(fā)送到設(shè)備的一系列數(shù)據(jù)項(xiàng)。呈現(xiàn)每條數(shù)據(jù)的動(dòng)作被嵌入每條數(shù)據(jù)
public void sendPushData(String appld, String accountld,
String deviceld, SignalData[] data); } sendPushData方法構(gòu)造web服務(wù)調(diào)用,其將調(diào)用推式服務(wù)請(qǐng)求處理機(jī) (PSRH) 2004。PSRH 2004 是暴露可以被表示為 /blur-services-l. 0/ws/push/signaldata的RESTful資源的web服務(wù)調(diào)用的服務(wù)器。在一個(gè)實(shí)施例中,推式服務(wù)請(qǐng)求處理機(jī)2004在每個(gè)POST上執(zhí)行以下操作 對(duì)推式數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換; 檢查以弄清是否已經(jīng)存在發(fā)布用于這個(gè)特定賬戶id-設(shè)備id的數(shù)據(jù); 如果已經(jīng)存在發(fā)布的數(shù)據(jù),則基于與每個(gè)數(shù)據(jù)項(xiàng)一起發(fā)送的動(dòng)作來添加/替換或刪除該數(shù)據(jù); 如果不存在數(shù)據(jù),則為這個(gè)賬戶id-設(shè)備id創(chuàng)建新的隊(duì)列并且將向其添加該數(shù)據(jù)。 必要時(shí),終止隊(duì)列上的任何數(shù)據(jù); 將數(shù)據(jù)往回保存到數(shù)據(jù)儲(chǔ)存器; 對(duì)于被添加的每個(gè)數(shù)據(jù)項(xiàng),為該數(shù)據(jù)項(xiàng)生成新的序列id并且存儲(chǔ)它;以及 如果API調(diào)用在其曾經(jīng)開始這個(gè)服務(wù)之前失敗,則將不記錄丟失的消息。一個(gè)解決方案是API它本身將這個(gè)序列id存儲(chǔ)在數(shù)據(jù)庫(kù)中使得將捕獲其這樣的錯(cuò)失。數(shù)據(jù)庫(kù)中的序列id的存儲(chǔ)是必要的,因?yàn)锳PI被綁定到無國(guó)籍的服務(wù)器,如果所存儲(chǔ)的調(diào)度時(shí)間大于上述值,則通過數(shù)據(jù)項(xiàng)中的每一個(gè)并且得到最小的最大延遲值以及將其添加到當(dāng)前時(shí)間,然后將調(diào)度請(qǐng)求發(fā)送到調(diào)度器。當(dāng)推式服務(wù)請(qǐng)求處理機(jī)2004接收到觸發(fā)調(diào)度更新的數(shù)據(jù)項(xiàng)時(shí),其將請(qǐng)求發(fā)送到推式服務(wù)調(diào)度器2006以調(diào)度待發(fā)送的消息。推式服務(wù)調(diào)度器2006是經(jīng)由RESTful url暴露單個(gè)資源的服務(wù)器。例如,RESTful主體可以是[{〃 blurAcctld" 〃 ...",〃 provider s" [“ facebook",“ my space",...]},...]。優(yōu)選地,每云將存在這些調(diào)度器中的僅一個(gè),但是可以存在更多。推式服務(wù)調(diào)度器2006優(yōu)選地是專用服務(wù)器,然而,在其它實(shí)施例中推式服務(wù)調(diào)度器2006可以是另一服務(wù)器的一部分。推式服務(wù)調(diào)度器2006將所有的其調(diào)度保持在內(nèi)部存儲(chǔ)器(未示出)中。推式服務(wù)調(diào)度器2006能夠使用HTTP 1. 1持久連接以及二進(jìn)制協(xié)議以確保最佳的吞吐量。在一個(gè)實(shí)施例中,當(dāng)進(jìn)行新的調(diào)度請(qǐng)求時(shí),推式服務(wù)調(diào)度器2006可以對(duì)調(diào)度進(jìn)行串并轉(zhuǎn)換(調(diào)度僅包含aCCOimt_id、deviCe_id以及調(diào)度時(shí)間) 并且將調(diào)度放在調(diào)度隊(duì)列上。在后臺(tái)處理線程中,調(diào)度隊(duì)列等待并且在適當(dāng)?shù)臅r(shí)刻對(duì)推式服務(wù)xmpp消息生成器2008進(jìn)行web服務(wù)調(diào)用以生成XMPP消息。響應(yīng)于來自推式服務(wù)調(diào)度器2006的請(qǐng)求,推式服務(wù)XMPP消息生成器2008創(chuàng)建 XMPP消息。在一個(gè)實(shí)施例中,對(duì)于每個(gè)請(qǐng)求,推式服務(wù)XMPP消息生成器2008都可以從請(qǐng)求中得到account_id和device_id,在數(shù)據(jù)儲(chǔ)存器中找到與account_id和device_id相關(guān)聯(lián)的所有數(shù)據(jù),并且對(duì)數(shù)據(jù)進(jìn)行檢索以及將它從數(shù)據(jù)儲(chǔ)存器中刪除。推式服務(wù)XMPP消息生成器2008可以將數(shù)據(jù)封裝到XMPP消息元素中并且將該XMPP消息發(fā)送到XMPP服務(wù)器2012。用于客戶端設(shè)備(例如,圖18的移動(dòng)設(shè)備1802)的賬戶設(shè)定處理能夠進(jìn)行對(duì)XMPP 服務(wù)器2012的調(diào)用以創(chuàng)建XMPP賬戶。替代地,為了解脫這個(gè)額外的調(diào)用并且?guī)椭J(rèn)證,組件能夠用于XMPP服務(wù)器2012,XMPP服務(wù)器2012將利用聚合服務(wù)認(rèn)證架構(gòu)的(例如,對(duì)關(guān)于特定賬戶的信息進(jìn)行驗(yàn)證和檢索的核心服務(wù)處理器1818)。在設(shè)備設(shè)定期間,用戶能夠創(chuàng)建能夠有利地與特定設(shè)備相關(guān)聯(lián)的新賬戶(聚合服務(wù)賬戶)。與這個(gè)動(dòng)作相關(guān)聯(lián)的數(shù)據(jù)將以賬戶服務(wù)決定存儲(chǔ)它的任何方式被存儲(chǔ)在賬戶數(shù)據(jù)庫(kù)中。XMPP服務(wù)器2012可以具有充當(dāng)附連到XMPP服務(wù)器的分組過濾器的組件。當(dāng)該組件接收到認(rèn)證請(qǐng)求時(shí),其從該請(qǐng)求中得到適當(dāng)?shù)恼J(rèn)證令牌。該組件然后使用那些令牌來進(jìn)行對(duì)帳戶應(yīng)用的調(diào)用以認(rèn)證用戶。該組件然后將指示用戶認(rèn)證成功或失敗的信號(hào)發(fā)送到 XMPP服務(wù)器2012。輔助組件還可以被附連到還能夠充當(dāng)分組過濾器的XMPP服務(wù)器2012。這個(gè)輔助組件將查找存在分組而非認(rèn)證分組。由于所有的XMPP客戶端發(fā)出了存在分組以便于接收消息,所以成功地附連到web服務(wù)器(例如,圖18中的web服務(wù)器1804)的任何XMPP客戶端都將發(fā)送XMPP存在分組。這個(gè)輔助組件能夠檢測(cè)存在分組并且讓推式服務(wù)請(qǐng)求處理機(jī) 2004知道何時(shí)連接或不連接客戶端。這使推式服務(wù)請(qǐng)求處理機(jī)2004能夠告訴推式服務(wù)調(diào)度器2006是否需要處理對(duì)于特定客戶端的調(diào)度。推式信道是向設(shè)備1802及時(shí)提供通知的盡力服務(wù)。推式信道可能不確保朝信道下發(fā)送的所有數(shù)據(jù)到達(dá)設(shè)備1802。實(shí)際上,要求是即使當(dāng)推式信道未被激活時(shí)設(shè)備也能夠操作。很少有支持這個(gè)要求的使用情況。首先,有時(shí)候會(huì)存在由于零星覆蓋的原因設(shè)備將不能夠激活推式信道。在這樣的實(shí)例中,手動(dòng)地使數(shù)據(jù)同步而不用激活推式信道是最理想的。而且,由于推式信道一直在連接,所以如果電話進(jìn)入漫游模式則服務(wù)可能想要關(guān)閉推式信道。因此,推式服務(wù)的主要責(zé)任是及時(shí)地提供通知并且提供檢測(cè)推未達(dá)到設(shè)備的手段。推式服務(wù)將通知作為不透明的、應(yīng)用特定的、離散數(shù)據(jù)發(fā)送到設(shè)備1802。用從零開始并且在達(dá)到例如2~31的閾值之后往回翻轉(zhuǎn)到零的序列id來標(biāo)記每條數(shù)據(jù)。在一個(gè)實(shí)施例中,序列id可以被如下生成。核心服務(wù)服務(wù)器1擬8檢測(cè)推是必要的并且準(zhǔn)備待推到設(shè)備1802的數(shù)據(jù)。核心服務(wù)服務(wù)器1818然后用所準(zhǔn)備的數(shù)據(jù)調(diào)用能夠被推式服務(wù)器1830 控制的推式API。推式API然后檢索account_id/device_id。推式API使用account_id/ devicejd來從持久存儲(chǔ)器中查找下一個(gè)序列id。推式API然后用該序列id來標(biāo)記數(shù)據(jù)并且將數(shù)據(jù)發(fā)送到推式請(qǐng)求處理機(jī)。推式API然后將成功消息返回給核心服務(wù),例如核心服務(wù)服務(wù)器1擬8。核心服務(wù)服務(wù)器1擬8接收該成功消息并且認(rèn)為該消息待發(fā)送。如果推式API未能檢索到序列id,則推式API拋出異議并且從不發(fā)送推式消息。 當(dāng)這種情況發(fā)生時(shí),推式API能夠存儲(chǔ)事情的歷史并且當(dāng)序列機(jī)構(gòu)返回到工作次序時(shí),其然后能夠基于所存儲(chǔ)的歷史對(duì)該序列進(jìn)行復(fù)位。如果推式API不能夠?qū)⑼剖桨l(fā)送到推式請(qǐng)求處理機(jī),則推式API可以拋出不同的異議。當(dāng)這種情況發(fā)生時(shí),因?yàn)樾蛄衖d已經(jīng)在持久性存儲(chǔ)器中遞增,所以下一個(gè)推式將接收下一個(gè)序列id并且如果下一個(gè)推式碰巧使其達(dá)到設(shè)備1802,則設(shè)備1802現(xiàn)將發(fā)生故障。 替代地,如果在推式請(qǐng)求處理機(jī)將請(qǐng)求發(fā)送到調(diào)度器之前推式請(qǐng)求處理機(jī)崩潰,則推式消息從不被發(fā)送,序列中的間隙可能出現(xiàn)。在這些情況下,設(shè)備1802可以請(qǐng)求完全同步。聚合服務(wù)器1804可以向客戶端設(shè)備1802提供統(tǒng)一訂閱源。當(dāng)用戶設(shè)備1802請(qǐng)求從中間web服務(wù)器1804發(fā)送多個(gè)訂閱源時(shí),能夠采用統(tǒng)一訂閱源來提供所有的訂閱源數(shù)據(jù)。統(tǒng)一訂閱源包含各種訂閱源類型中的一個(gè)或多個(gè)訂閱源。統(tǒng)一訂閱源的目的是允許客戶端用單個(gè)請(qǐng)求得到所有其訂閱源,而不是進(jìn)行單獨(dú)的請(qǐng)求以得到朋友訂閱源數(shù)據(jù)、 新聞?dòng)嗛喸磾?shù)據(jù)以及其它數(shù)據(jù)。訂閱源可以是例如可以包括關(guān)于可從社交網(wǎng)網(wǎng)站得到的用戶的朋友的更新的朋友訂閱源,所述社交網(wǎng)網(wǎng)站諸如hcebook 、MySpace , Twitter , Linkedln ^訂閱源還可以是新聞?dòng)嗛喸?,該新聞?dòng)嗛喸窗ɡ缈蓮目梢詠碜愿鞣N源的RSS訂閱源、Yahoo 新聞、Digg 等中得到的新聞信息。替代地,訂閱源可以是可以包括來自諸如Yahoo 天氣的源的天氣信息的天氣訂閱源;或可以包括服務(wù)狀態(tài)信息的管理訂閱源。如上文所討論,能夠通過聚合服務(wù)器1804從各種源收集訂閱源,諸如從用于 hcebook 的相應(yīng)插件1擬4或新聞?dòng)嗛喸?。訂閱源能夠按用戶發(fā)布到web服務(wù)服務(wù)器 1擬8。訂閱源特定web服務(wù)將具有通用訂閱源格式的訂閱源發(fā)布到訂閱源工廠。當(dāng)訂閱源工廠接收到訂閱源時(shí),其將低優(yōu)先級(jí)通知發(fā)送到推式管理器,如上文所討論的。訂閱源在訂閱源工廠中進(jìn)行積累并且在某個(gè)時(shí)間或事情之后,推式管理器將推式發(fā)送給客戶端。例如, 客戶端1802能夠進(jìn)行單個(gè)請(qǐng)求以得到所有其訂閱源。在一個(gè)實(shí)施例中,聚合服務(wù)器1804能夠采用兩個(gè)協(xié)議來提供統(tǒng)一訂閱源特征。第一協(xié)議定義訂閱源特定web服務(wù)(諸如朋友訂閱源web服務(wù)、新聞?dòng)嗛喸磜eb服務(wù)等)將如何與訂閱源工廠web服務(wù)進(jìn)行交互。當(dāng)訂閱源特定web服務(wù)具有要發(fā)送到訂閱源工廠web 服務(wù)的訂閱源數(shù)據(jù)時(shí),其使用諸如/ws/feedmill/0/feedGrain/accoimtID的相關(guān)請(qǐng)求URI 進(jìn)行HTTP POST方法請(qǐng)求。在請(qǐng)求主體中所包括的將是已經(jīng)具有通用訂閱源格式的訂閱源數(shù)據(jù)以及訂閱源類型。服務(wù)器將用HTTP狀態(tài)代碼來作出響應(yīng)。第二協(xié)議定義訂閱源工廠將如何與客戶端1802進(jìn)行交互。當(dāng)客戶端1802從訂閱源工廠請(qǐng)求它的訂閱源時(shí),其進(jìn)行包含用于被客戶端處理的每個(gè)訂閱源類型的序列號(hào)的簡(jiǎn)單web服務(wù)調(diào)用。服務(wù)器響應(yīng)將包含所有的訂閱源數(shù)據(jù)。關(guān)于“訂閱源工廠”術(shù)語,對(duì)“統(tǒng)一訂閱源”進(jìn)行了描述。發(fā)送到訂閱源工廠web服務(wù)的訂閱源數(shù)據(jù)將使用通用訂閱源格式來發(fā)送。這個(gè)使得能夠以一致的方式來處理來自各種源的任意數(shù)據(jù)。下文是服務(wù)器能夠期望接收到的公用和非公用數(shù)據(jù)。公用數(shù)據(jù)能夠包括提供商、賬戶id、主體類型、類別、ID、鏈接、概要、發(fā)布時(shí)間標(biāo)題、動(dòng)作和/或地理標(biāo)簽。訂閱源的提供商在朋友訂閱源、新聞?dòng)嗛喸?、天氣訂閱源以及管理訂閱源中被找到。賬戶ID可以是聚合服務(wù)賬戶ID。朋友訂閱源還能夠包括賬戶ID。朋友訂閱源可以包括主體和主體類型,新聞?dòng)嗛喸春吞鞖庥嗛喸窗╝tomContent。管理訂閱源還能夠包括主體和主體類型。一個(gè)或多個(gè)類目,如由聚合服務(wù)所定義的那樣。朋友訂閱源和管理訂閱源包括類型和子類型。訂閱源能夠包括一個(gè)或多個(gè)鏈接。朋友訂閱源能夠包括一個(gè)或多個(gè)URL,streamURL或到媒體項(xiàng)的鏈接。新聞?dòng)嗛喸春吞鞖庥嗛喸茨軌虬?atomLink。管理訂閱源還能夠包括URL。新聞?dòng)嗛喸春吞鞖庥嗛喸茨軌虬╝tomSummary。 管理訂閱源能夠包括概要。訂閱源可以包括發(fā)布每個(gè)項(xiàng)目的時(shí)間。訂閱源還能夠包括標(biāo)題和用于該訂閱源的標(biāo)題類型或該訂閱源中的數(shù)據(jù)。新聞?dòng)嗛喸春吞鞖庥嗛喸茨軌虬?atomTitle。訂閱源還能夠包括能夠被執(zhí)行的一個(gè)或多個(gè)動(dòng)作和地理標(biāo)識(shí)元數(shù)據(jù)。訂閱源還可以包括非公用的數(shù)據(jù)類型,諸如externallD,用戶的提供商側(cè)用戶ID 在朋友訂閱源中被發(fā)現(xiàn),contactID、聚合服務(wù)ID可以在朋友訂閱源和externalContactID 中被發(fā)現(xiàn),聯(lián)系人的內(nèi)容提供商網(wǎng)站ID在朋友訂閱源中被發(fā)現(xiàn)。在下文中使用以下術(shù)語來討論客戶端1802與聚合服務(wù)器1804之間的示例性交互 訂閱源類型-訂閱源的特定類型(即新聞、朋友、管理、天氣...); 訂閱源顆粒-在給定訂閱源類型中的特定條目。作為示例,對(duì)于新聞?dòng)嗛喸矗嗛喸搭w??梢允仟?dú)立的新聞項(xiàng)目。在每種類型的訂閱源內(nèi)包含的實(shí)際數(shù)據(jù)取決于訂閱源的類型,然而他們將全部具有相同的格式(見留置權(quán))。每個(gè)訂閱源顆粒被看作對(duì)訂閱源工廠的不透明的字符串; 訂閱源小球-特定類型的訂閱源顆粒集; 訂閱源袋-從服務(wù)器發(fā)送到客戶端的數(shù)據(jù),由一個(gè)或多個(gè)小球構(gòu)成; 訂閱源槽-在處理散發(fā)從服務(wù)器發(fā)送的訂閱源小球的客戶端上的組件; 訂閱源工廠-在處理從多個(gè)源收集訂閱源小球并且將它們封裝在訂閱源袋中以發(fā)送到客戶端的服務(wù)器上的組件;以及 訂閱源倉(cāng)-在存儲(chǔ)訂閱源顆粒直到由設(shè)備請(qǐng)求為止的組件?;旧掀鋵B表隱藏在下面。希望消耗給定的訂閱源類型的在客戶端1802上的應(yīng)用將首先使用向訂閱源槽注冊(cè)。這個(gè)注冊(cè)將簡(jiǎn)單地包括指示給定的應(yīng)用在消耗中對(duì)哪一個(gè)訂閱源感興趣和方法,諸如 Android 意圖,其應(yīng)當(dāng)被用來通知應(yīng)用何時(shí)呈現(xiàn)新的數(shù)據(jù)。可以準(zhǔn)許給定應(yīng)用注冊(cè)用于許多訂閱源類型。當(dāng)設(shè)備1802是Android 設(shè)備時(shí),當(dāng)訂閱源小球在客戶端上被接收時(shí), Android意圖將被發(fā)送到所有注冊(cè)的應(yīng)用,包含在這個(gè)意圖中包括的數(shù)據(jù)的訂閱源類型、從服務(wù)器發(fā)送的實(shí)際的訂閱源小球(所注冊(cè)的應(yīng)用通常具有解析這個(gè)數(shù)據(jù)的方式)、這個(gè)訂閱源小球的序列號(hào)、以及在訂閱源槽與應(yīng)用(在注冊(cè)時(shí)間時(shí)設(shè)置的)之間共享的應(yīng)用秘密, 使得應(yīng)用能夠認(rèn)證這個(gè)來自訂閱源槽的意圖。訂閱源槽還將提供應(yīng)用針對(duì)給定的訂閱源類型取消注冊(cè)它們自身的方式。訂閱源槽還能夠提供應(yīng)用能夠向其通知它們已經(jīng)完成處理的給定訂閱源類型的最后的序列號(hào)的機(jī)制。這個(gè)信息將在與訂閱源工廠通信中使用以指示客戶端具有僅剩的訂閱源小球,因此訂閱源工廠能夠確定其需要將哪個(gè)數(shù)據(jù)發(fā)送給客戶端。如果多個(gè)應(yīng)用被注冊(cè)用于給定的訂閱源類型,則最小序列號(hào)將被保持并且發(fā)送給訂閱源工廠。響應(yīng)于由推式管理器告知數(shù)據(jù)正在服務(wù)器上等待它,訂閱源槽從訂閱源工廠中取得數(shù)據(jù)。潛在地,還將存在使用戶能夠手動(dòng)地發(fā)起訂閱源的取得的機(jī)制,如果它們認(rèn)為其必要的話。將立即準(zhǔn)許來自訂閱源槽的僅一個(gè)取得請(qǐng)求,并且在當(dāng)一個(gè)正在處理過程中時(shí)另一個(gè)被請(qǐng)求的情況下,第二個(gè)將失敗(具有適當(dāng)?shù)腻e(cuò)誤代碼)。能夠存在訂閱源槽將開始取得它的訂閱源的一個(gè)web服務(wù)調(diào)用。例如,可以具有以下HTTP GET形式(減去需要發(fā)送的任何認(rèn)證/登錄數(shù)據(jù)),/ws/feedmi11/0/feedMe/accountID ? news = X&admin = Y&friend = Z 其中 accoimtID是用戶的賬戶ID并且X、Y以及Z是客戶端已經(jīng)分別針對(duì)訂閱源類型新聞、管理員以及朋友處理過的最后的序列號(hào)。僅僅設(shè)備為之設(shè)置(經(jīng)由一些外部的設(shè)定機(jī)構(gòu))的訂閱源類型將被指定在以上線中。可以向用戶指示處理來自這個(gè)調(diào)用的錯(cuò)誤情況(用戶不允許(UserNotAllowed)、用戶未找到(userNotFound)、系統(tǒng)忙(systemBusy)等)。在系統(tǒng)是忙的情況下,服務(wù)器能夠使用已經(jīng)被配置的(潛在地經(jīng)由管理/配置訂閱源)一些間隔來退回。由于實(shí)際的訂閱源小球的處理在應(yīng)用處理中被完成,并且潛在地可能是耗時(shí)的, 所以由于序列號(hào)可能不具有更新的機(jī)會(huì),所以訂閱源槽取得請(qǐng)求可能結(jié)果是接收相同的數(shù)據(jù)。這個(gè)發(fā)生應(yīng)當(dāng)不是頻發(fā)的但是可能在完成推式管理器訂閱源槽取得之后立即由用戶發(fā)起的訂閱源槽取得引發(fā),如果許多推被快速連續(xù)從服務(wù)器發(fā)送,指示存在對(duì)客戶端可用的訂閱源數(shù)據(jù),則在部分/完全接收到訂閱源袋之后或在準(zhǔn)許多個(gè)應(yīng)用注冊(cè)用于相同的訂閱源類型中之后,設(shè)備立即崩潰,流氓應(yīng)用從不更新它的序列號(hào)(或更新成假值)。由于序列號(hào)適用于可以包含許多訂閱源顆粒的整個(gè)訂閱源小球,所以注冊(cè)過的應(yīng)用將必須告訴訂閱源槽它們已經(jīng)處理了整個(gè)訂閱源小球,即使實(shí)際上它們僅僅關(guān)心訂閱源顆粒的子集。本質(zhì)上給定的訂閱源小球的處理是全部或沒有,不提供精細(xì)的顆粒度。沒能用序列號(hào)更新訂閱源槽將導(dǎo)致準(zhǔn)許多個(gè)應(yīng)用注冊(cè)用于相同的訂閱源類型。如上文所提到的,客戶端請(qǐng)求采取包含由客戶端處理的用于每個(gè)訂閱源類型的序列號(hào)的簡(jiǎn)單web服務(wù)調(diào)用的形式。對(duì)客戶端請(qǐng)求的服務(wù)器響應(yīng)包含將在下文中描述的實(shí)際訂閱源袋。訂閱源袋頭部(FBH)可以具有若干元素,例如,版本、內(nèi)容類型(例如,數(shù)據(jù)或錯(cuò)誤)或所包含的訂閱源小球數(shù)量(僅用于數(shù)據(jù)情況)或在錯(cuò)誤類型情況下的錯(cuò)誤代碼。每個(gè)訂閱源小球都還能夠包括包含訂閱源類型、訂閱源小球的長(zhǎng)度以及訂閱源小球的序列號(hào)的頭部(FPH)。在一個(gè)實(shí)施例中,訂閱源袋可以看起來如下(FBH) (FPH)(訂閱源小球數(shù)據(jù))(FPH)(訂閱源小球數(shù)據(jù))(FPH)(訂閱源小球數(shù)據(jù))...例如,錯(cuò)誤情況可以簡(jiǎn)單地包含 (FBH)。訂閱源工廠將必須處理從以下兩個(gè)不同的位置傳入的請(qǐng)求,(1)要求它的訂閱源的設(shè)備,如上文所討論的,和( 為給定用戶提供特定的訂閱源類型訂閱源顆粒的應(yīng)用處理器。應(yīng)用處理器能夠經(jīng)由HTTPP0ST調(diào)用向訂閱源工廠提供訂閱源顆粒,其在一個(gè)實(shí)施例中可以看起來如下/ws/feedmill/O/feedGrain/accountID,其中實(shí)際的訂閱源顆粒(具有公用格式)和訂閱源類型將被包括在請(qǐng)求主體中。訂閱源工廠用適當(dāng)?shù)腍TTP狀態(tài)代碼來做出響應(yīng)。在每個(gè)成功的訂閱源顆粒添加之后,低優(yōu)先級(jí)通知被發(fā)送到推式管理器,指示訂閱源數(shù)據(jù)對(duì)客戶端是可用的。每個(gè)用戶將具有訂閱源倉(cāng),其將包含等待傳遞到設(shè)備的所有訂閱源顆粒的訂閱源顆粒。該表能夠有利地包括訂閱源類型的列、序列號(hào)(無符號(hào)整數(shù) (單調(diào)增加值))以及訂閱源準(zhǔn)許數(shù)據(jù)(字符串?dāng)?shù)組(或許最大大小))。該表中的每行都可以對(duì)應(yīng)于經(jīng)由以上HTTP POST調(diào)用添加的訂閱源顆粒。為了限制用戶的訂閱源表中的條目的數(shù)量,每訂閱源類型能夠存在可配置的最大數(shù)量的行。當(dāng)這個(gè)限制被命中時(shí)所發(fā)生的將落入到2個(gè)類別中1.允許老化-在這種情況下,當(dāng)處理器嘗試為已經(jīng)處于限制的訂閱源類型添加訂閱源顆粒時(shí),最老的訂閱源顆粒被移除。2.不允許老化-在這種情況下,添加實(shí)際上失敗并且錯(cuò)誤被往回發(fā)送(經(jīng)由HTTP 狀態(tài)代碼)到應(yīng)用處理器。在存儲(chǔ)了訂閱源顆粒之后,訂閱源工廠用來響應(yīng)于訂閱源槽對(duì)其訂閱源(信息) 的請(qǐng)求(輪詢)而提供信息。訂閱源工廠得到對(duì)于特定用戶的訂閱源的請(qǐng)求,查詢用于所有訂閱源的用戶的訂閱源倉(cāng),考慮該請(qǐng)求指定的序列號(hào)來構(gòu)建訂閱源袋并且將其發(fā)送到設(shè)備以及(基于請(qǐng)求序列號(hào))從用戶的訂閱源倉(cāng)中移除老的訂閱源顆粒。由于每個(gè)訂閱源類型訂閱源顆粒都是用戶的訂閱源表中的行,所以存在需要實(shí)際上添加訂閱源顆粒的多個(gè)數(shù)據(jù)庫(kù)調(diào)用。在一個(gè)實(shí)施例中,例如,訂閱源工廠可以得到當(dāng)前由這個(gè)訂閱源類型使用的行的數(shù)量。如果行的數(shù)量大于行的最大數(shù)量并且如果允許老化,則移除最老的條目。如果不允許老化,則訂閱源工廠可以返回錯(cuò)誤。訂閱源工廠然后可以將訂閱源顆粒添加到表。在訂閱源表上可以不要求鎖定。這是因?yàn)槊總€(gè)行都是獨(dú)立的并且在給定的時(shí)間點(diǎn)得到所有的訂閱源的處理不應(yīng)當(dāng)與新的行的添加發(fā)生沖突,因?yàn)檫@兩個(gè)操作不影響相同的
皇A
朱口 ο批處理機(jī)制存在可以被用來將相同的訂閱源顆粒添加到多個(gè)用戶(即,告訴所有 Twitter 用戶站點(diǎn)當(dāng)機(jī)了)。為了適應(yīng)批處理機(jī)制,能夠采用將在一個(gè)實(shí)施例中將可以采取“/ws/feedmill/0/feedGrainForMany” 的形式的另一 HTTP POS Tweb 服務(wù)調(diào)用,其中實(shí)際的訂閱源顆粒以及用戶列表將被包括在請(qǐng)求主體中。用戶列表的精確格式將取決于主用戶表與訂閱源工廠之間的交互。聚合服務(wù)客戶端應(yīng)用,例如在客戶端設(shè)備1802上裝載的應(yīng)用,能夠使用具有不同的安全性級(jí)別的單獨(dú)的內(nèi)容提供商來訪問聯(lián)系人數(shù)據(jù)。可以記住一些重要的目標(biāo)來構(gòu)建聚合服務(wù)的聯(lián)系人設(shè)計(jì) 設(shè)備上的聯(lián)系人存儲(chǔ)應(yīng)當(dāng)符合客戶端設(shè)備1802的標(biāo)準(zhǔn)(例如,當(dāng)使用Androd 設(shè)備時(shí)的Android 標(biāo)準(zhǔn))。 聯(lián)系人數(shù)據(jù)應(yīng)當(dāng)與網(wǎng)絡(luò)服務(wù)聯(lián)系人數(shù)據(jù)保持同步。 每個(gè)聯(lián)系人應(yīng)當(dāng)被作為單個(gè)個(gè)體呈現(xiàn)給用戶,因?yàn)槟鞘怯脩粼鯓酉氲铰?lián)系人。將直接從電子郵件服務(wù)器或社交網(wǎng)絡(luò)網(wǎng)站1806-1808中獲得許多聯(lián)系人。這些網(wǎng)絡(luò)中的一些具有禁止通過第三方應(yīng)用訪問它們的聯(lián)系人數(shù)據(jù)的服務(wù)條款。為此,來自社交網(wǎng)絡(luò)的聯(lián)系人(在下文中被稱為朋友)將被保留在客戶端1802中的單獨(dú)的數(shù)據(jù)庫(kù)中。與呈現(xiàn)合并的個(gè)體的目標(biāo)相組合的這個(gè)限制提出了技術(shù)挑戰(zhàn),因?yàn)樵赨I中正被合并的聯(lián)系人記錄必須從單獨(dú)的數(shù)據(jù)庫(kù)收集。在下文中這個(gè)文檔使用這些術(shù)語 聯(lián)系人-指的是在標(biāo)準(zhǔn)Android數(shù)據(jù)庫(kù)中存儲(chǔ)的人。 朋友-指的是在私有社交網(wǎng)數(shù)據(jù)庫(kù)中存儲(chǔ)的人。眷所有聯(lián)系人-指的是聯(lián)系人和朋友的聯(lián)合。 合并的聯(lián)系人-指的是聯(lián)系人和朋友的交集。在設(shè)備上,聯(lián)系人被存儲(chǔ)在由所有應(yīng)用共享的數(shù)據(jù)庫(kù)中。聚合服務(wù)擴(kuò)展標(biāo)準(zhǔn)聯(lián)系人以添加另外的數(shù)據(jù)和能力。聚合服務(wù)客戶端聯(lián)系人將是標(biāo)準(zhǔn)聯(lián)系人的超集;第三方應(yīng)用將能夠使用標(biāo)準(zhǔn)API來訪問聯(lián)系人。除了擴(kuò)展的聯(lián)系人數(shù)據(jù)庫(kù)以外,聚合服務(wù)聯(lián)系人針對(duì)社交網(wǎng)朋友引入了并行數(shù)據(jù)庫(kù)。這個(gè)數(shù)據(jù)庫(kù)具有另外的安全性以阻止通過第三方應(yīng)用的訪問。在大多數(shù)方式中,盡管存在很少的差別,但是數(shù)據(jù)庫(kù)的架構(gòu)和性能對(duì)聯(lián)系人而言是一樣的;朋友中不支持組。如果用戶將朋友添加到組,則聚合服務(wù)自動(dòng)地用該朋友的數(shù)據(jù)的副本來創(chuàng)建聯(lián)系人,并且將該聯(lián)系人添加到組。而且,為了支持跨越聯(lián)系人和朋友合并的身份,朋友數(shù)據(jù)庫(kù)包含對(duì)聯(lián)系人身份的引用。用戶可以配置設(shè)備1802以使用來自各種提供商1806-1808的信息。這個(gè)信息可以包括電子郵件、聯(lián)系人、照片以及社交網(wǎng)事情。公用聯(lián)系人提供商的示例為Google 、 Yahoo 以及hcebook 。例如,用戶還可以例如從激活同步導(dǎo)入數(shù)據(jù)以得到電子郵件聯(lián)系人,或者經(jīng)由訂戶身份模塊(SIM)卡或電纜連接從他們的先前的電話中導(dǎo)入數(shù)據(jù)。通過訪問設(shè)定,當(dāng)最初對(duì)設(shè)備進(jìn)行配置時(shí)或在其后的任何時(shí)間可以添加提供商。此外,運(yùn)營(yíng)商可以提供商可以將聯(lián)系人從運(yùn)營(yíng)商1820直接提供給插件1824,從而能夠?qū)⒙?lián)系人經(jīng)由服務(wù)器前端部分下載到設(shè)備。圖21圖示了根據(jù)一個(gè)實(shí)施例的用于導(dǎo)入聯(lián)系人的示例性方法。從內(nèi)容提供商 2110導(dǎo)入的每個(gè)聯(lián)系人都作為單獨(dú)的聯(lián)系人記錄來存儲(chǔ)。指代同一個(gè)體的聯(lián)系人在用戶界面(“UI”)中被示出為一個(gè)人,但是記錄在數(shù)據(jù)庫(kù)中仍然保持分開。聚合服務(wù)將支持與核心服務(wù)處理器2130進(jìn)行通信的多個(gè)同步適配器2220-2128。 這包括用于gmail 聯(lián)系人的Google的默認(rèn)同步適配器、地址簿適配器、以及針對(duì)聚合服務(wù)編寫的適配器,包括交換激活同步(EAQ、社交網(wǎng)聯(lián)系人以及同步到聚合服務(wù)的聯(lián)系人。這些同步適配器中的每一個(gè)都必須將他們同步到設(shè)備上的聯(lián)系人標(biāo)識(shí)為它們自己的,使得聯(lián)系人的改變僅被往回同步到原始源。對(duì)于針對(duì)聚合服務(wù)編寫的適配器,聯(lián)系人數(shù)據(jù)庫(kù)中的新的列被用來標(biāo)識(shí)該同步源。沒有用于這個(gè)列的值的聯(lián)系人被假定屬于Google 或另一第二方。聯(lián)系人源中的一個(gè)將被標(biāo)識(shí)為向其添加在設(shè)備上創(chuàng)建的聯(lián)系人的默認(rèn)地址簿。替代地,默認(rèn)的聯(lián)系人源可以是聚合服務(wù)的聯(lián)系人。用戶可以能夠選擇哪一個(gè)地址簿是默認(rèn)的,并且哪一個(gè)地址簿應(yīng)當(dāng)用于特定的聯(lián)系人。雖然來自不同的提供商的聯(lián)系人被存儲(chǔ)為單獨(dú)的聯(lián)系人記錄,但是不管它們實(shí)際上是否指的是同一個(gè)體,UI 一直嘗試將聯(lián)系人作為個(gè)體呈現(xiàn)給用戶。新的“身份”表可以作為客戶端聯(lián)系人在同一數(shù)據(jù)庫(kù)中創(chuàng)建。在該表中存在用于每個(gè)個(gè)體的一個(gè)行。新的列能夠被添加到“人們”表,指示聯(lián)系人記錄屬于哪一個(gè)個(gè)體。身份表可以不與聚合服務(wù)器1804同步。當(dāng)添加了聯(lián)系人時(shí),其被動(dòng)態(tài)地創(chuàng)建在客戶端設(shè)備1802 上。例外是用戶可以手動(dòng)地合并或取消合并聯(lián)系人記錄。對(duì)身份的這些手動(dòng)改變應(yīng)當(dāng)被保留,并且因此與聚合服務(wù)器1804同步。當(dāng)聯(lián)系人被添加在客戶端設(shè)備1802上時(shí),他們與其它聯(lián)系人記錄匹配以確定他們是否指的是同一個(gè)體。如果不存在匹配,則新的行被添加到身份表。在人們表中的身份列被更新以指向身份行。聯(lián)系人權(quán)限內(nèi)的新內(nèi)容URL可能可用來訪問身份而非人們。許多聚合服務(wù)代碼將使用這些URL來訪問聯(lián)系人。身份表包括用于存儲(chǔ)來自人們的最近的社交網(wǎng)狀態(tài)更新的列。這個(gè)數(shù)據(jù)能夠被顯示在出現(xiàn)在整個(gè)產(chǎn)品中的“身份徽章”微件上,包括各種聯(lián)系人屏、主屏回路卡以及消息尋址。聯(lián)系人的所有用戶界面視圖或編輯實(shí)際上將在聚合服務(wù)認(rèn)為是同一人的聯(lián)系人記錄集合上操作。該聯(lián)系人記錄集合取自身份表。任何合并策略都包含生成兩種類型的錯(cuò)誤的危險(xiǎn)過度合并(即,將單獨(dú)的個(gè)體呈現(xiàn)為一個(gè)人)和欠合并(即,將一個(gè)個(gè)體呈現(xiàn)為單獨(dú)的人)。設(shè)想聚合服務(wù)服務(wù)器將在過度合并方面犯錯(cuò),為此 解決一個(gè)類別的錯(cuò)誤比解決兩者更容易。 單個(gè)個(gè)體將被存儲(chǔ)在多個(gè)提供商中比兩個(gè)個(gè)體將合理地看起來像同一人更有可能。
如果聚合服務(wù)過度合并,則用戶容易標(biāo)識(shí)實(shí)際上屬于不同的人的數(shù)據(jù)。 如果聚合服務(wù)欠合并,則其將對(duì)用戶來說看起來像是“缺少的”數(shù)據(jù)。這對(duì)用戶來說將是令人苦惱的,并且將難以找到應(yīng)當(dāng)已經(jīng)被合并的其它聯(lián)系人記錄。用戶能夠決定何時(shí)聚合服務(wù)具有過度合并或欠合并的聯(lián)系人。這個(gè)從聯(lián)系人細(xì)節(jié)活動(dòng)的“源”部分來完成。當(dāng)以下中的一個(gè)為真時(shí),通過聚合服務(wù)來合并聯(lián)系人記錄正好具有相同的名稱; 記錄共享電話號(hào)碼并且記錄中的一個(gè)將該號(hào)碼標(biāo)識(shí)為移動(dòng)電話或工作電話;記錄共享電子郵件地址,除非記錄中的兩者都將其標(biāo)識(shí)為主電子郵件并且記錄雙方都已經(jīng)被標(biāo)識(shí)為電話的所有者。如果他們從相同的源被同步,則不可以合并記錄(例如,將不合并具有相同的名稱的兩個(gè)hcebook 朋友)。注意當(dāng)在客戶端設(shè)備1802上創(chuàng)建聯(lián)系人時(shí),聯(lián)系人的副本被創(chuàng)建用于每個(gè)可寫的源。因此,在電話上用相同名稱創(chuàng)建的兩個(gè)聯(lián)系人將可能合并在一起, 因?yàn)榈谝粋€(gè)的聚合服務(wù)版本將與第二個(gè)的版本合并。在聯(lián)系人應(yīng)用中,用戶能夠創(chuàng)建組或從服務(wù)提供商導(dǎo)入它們。用戶將使用這些組來過濾他查看的聯(lián)系人的集合而且與他們(電子郵件/短信息(sms))進(jìn)行通信。因?yàn)榻M成員關(guān)系表包含對(duì)聯(lián)系人的表的引用,所以社交網(wǎng)朋友在技術(shù)上不可以是組的成員。當(dāng)用戶將朋友添加到組時(shí),聚合服務(wù)通過創(chuàng)建虛設(shè)的聯(lián)系人記錄來規(guī)避這個(gè)問題。沒有將聯(lián)系人的數(shù)據(jù)(電話或地址)添加到虛設(shè)的記錄。人能夠?qū)儆诓恢挂粋€(gè)組。當(dāng)創(chuàng)建新的組并且指派成員時(shí),用戶具有當(dāng)聯(lián)系這個(gè)組時(shí)哪一個(gè)電子郵件或號(hào)碼用于該成員的選項(xiàng)。例如,可以使用相應(yīng)的主電話或電子郵件來聯(lián)系該組。這可能是聯(lián)系該組的默認(rèn)方法。替代地,可以使用不同的電子郵件和/或電話或所有的電子郵件和/或電話號(hào)碼來聯(lián)系該組。當(dāng)修改組時(shí),用戶能夠改變組的成員。此外,然而,當(dāng)聯(lián)系該組時(shí)用戶還可以改變將被用于每個(gè)成員的聯(lián)系方法。例如,在“查看聯(lián)系人”屏中可以過濾組,其中用戶能夠例如經(jīng)由下拉來按組過濾聯(lián)系人的集合。用戶能夠給組發(fā)電子郵件或短消息。在一個(gè)實(shí)施例中,用戶從“查看聯(lián)系人”屏經(jīng)由菜單選項(xiàng)來做這個(gè)。在電子郵件應(yīng)用中,用戶可以將組選擇為電子郵件的接受者。當(dāng)挑選該組時(shí),用戶能夠暫時(shí)地覆寫將用于每個(gè)成員的電子郵件地址。如果用戶不覆寫,則將使用用于每個(gè)成員的由用戶指定的默認(rèn)電子郵件。然而更可能地,因?yàn)榇蠖鄶?shù)用戶將不為組中的每個(gè)成員指定明確的電子郵件地址,所以將使用主電子郵件。當(dāng)將電子郵件發(fā)送給組時(shí)(或也許當(dāng)選擇組以向其發(fā)送電子郵件時(shí)),UI將指示該組中的每個(gè)成員是否都擁有電子郵件并且將能夠接收它。表可以被添加到聯(lián)系人數(shù)據(jù)庫(kù),以使用每種通信模式跟蹤擁有者已經(jīng)與每個(gè)聯(lián)系人進(jìn)行的最近的通信。在聯(lián)系人應(yīng)用中,列表視圖的最近選項(xiàng)卡(tab)提及使用任何通信模式的最近的通信。聯(lián)系人細(xì)節(jié)視圖的歷史選項(xiàng)卡列舉了有關(guān)所有的聯(lián)系人通信方法的最近活動(dòng)。
權(quán)利要求
1.一種聚合服務(wù)服務(wù)器,所述聚合服務(wù)服務(wù)器被配置成與用戶設(shè)備和多個(gè)不同的內(nèi)容提供商進(jìn)行通信,包括處理器,所述處理器被配置成從所述多個(gè)不同的內(nèi)容提供商獲得內(nèi)容并且進(jìn)一步被配置成將所獲得的內(nèi)容推到所述用戶設(shè)備。
2.根據(jù)權(quán)利要求1所述的聚合服務(wù)服務(wù)器,其中,所述處理器進(jìn)一步被配置成從所述用戶設(shè)備接收狀態(tài)更新并且將所述狀態(tài)更新發(fā)送到所述多個(gè)內(nèi)容提供商中的對(duì)應(yīng)的內(nèi)容提供商。
3.根據(jù)權(quán)利要求1所述的聚合服務(wù)服務(wù)器,進(jìn)一步包括多個(gè)插件,每個(gè)插件對(duì)應(yīng)于所述多個(gè)內(nèi)容提供商中的相應(yīng)的內(nèi)容提供商并且被配置成傳送和接收來自所述對(duì)應(yīng)的內(nèi)容提供商的通信。
4.根據(jù)權(quán)利要求3所述的聚合服務(wù)服務(wù)器,進(jìn)一步包括存儲(chǔ)器,其中,所述處理器進(jìn)一步被配置成從所述插件中的一個(gè)插件接收更新,以將優(yōu)先級(jí)指派給所述更新并且將所述更新和所指派的優(yōu)先級(jí)存儲(chǔ)在所述存儲(chǔ)器中。
5.根據(jù)權(quán)利要求4所述的聚合服務(wù)服務(wù)器,其中,所述處理器進(jìn)一步被配置成基于向所接收到的更新所指派的優(yōu)先級(jí)來對(duì)到所述用戶設(shè)備的推進(jìn)行調(diào)度。
6.根據(jù)權(quán)利要求5所述的聚合服務(wù)服務(wù)器,其中,所述處理器進(jìn)一步被配置成從所述用戶設(shè)備接收對(duì)于數(shù)據(jù)的請(qǐng)求并且被進(jìn)一步配置成將存儲(chǔ)在所述存儲(chǔ)器中的任何更新推到所述用戶設(shè)備。
7.根據(jù)權(quán)利要求6所述的聚合服務(wù)服務(wù)器,其中,所述對(duì)于數(shù)據(jù)的請(qǐng)求是對(duì)于來自所有所述內(nèi)容提供商的更新的單個(gè)請(qǐng)求。
8.根據(jù)權(quán)利要求4所述的聚合服務(wù)服務(wù)器,其中,每個(gè)插件被配置成將所接收到的更新重新格式化成與所述用戶設(shè)備兼容的格式。
9.根據(jù)權(quán)利要求7所述的聚合服務(wù)服務(wù)器,其中,所述處理器進(jìn)一步被配置成通過以下將所接收到的內(nèi)容推到與單個(gè)賬戶相關(guān)聯(lián)的多個(gè)用戶設(shè)備監(jiān)視推到所述用戶設(shè)備中的每一個(gè)用戶設(shè)備的所述內(nèi)容;以及基于所述監(jiān)視將內(nèi)容推到所述用戶設(shè)備中的每一個(gè)用戶設(shè)備。
10.一種使用中間服務(wù)器來控制客戶端設(shè)備與多個(gè)內(nèi)容提供商之間的通信的方法,包括由所述中間服務(wù)器從所述多個(gè)內(nèi)容提供商中的一個(gè)內(nèi)容提供商接收更新;由所述中間服務(wù)器將優(yōu)先級(jí)指派給所接收到的更新;以及由所述中間服務(wù)器基于所指派的優(yōu)先級(jí)對(duì)所接收到的更新到所述客戶端設(shè)備的推進(jìn)行調(diào)度。
11.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括由所述中間服務(wù)器從所述客戶端設(shè)備接收對(duì)于更新的單個(gè)請(qǐng)求;以及響應(yīng)于所述單個(gè)請(qǐng)求,由所述中間服務(wù)器將更新從所有所述內(nèi)容提供商推到所述客戶端設(shè)備。
12.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括監(jiān)視已經(jīng)被推到所述客戶端設(shè)備的所述更新;以及基于所述監(jiān)視,將更新推到所述用戶設(shè)備。
13.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括將所接收到的更新重新格式化成與所述客戶端設(shè)備兼容的格式。
14.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括定期性地將更新推到所述客戶端設(shè)備。
15.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括當(dāng)更新被指派了高優(yōu)先級(jí)時(shí),將所述更新推到所述客戶端設(shè)備。
16.一種中間服務(wù)器,所述中間服務(wù)器被配置成與用戶設(shè)備和多個(gè)不同的內(nèi)容提供商進(jìn)行通信,包括存儲(chǔ)器;內(nèi)容提供商處理器,所述內(nèi)容提供商處理器被配置成從所述多個(gè)不同的內(nèi)容提供商獲得更新并且將所述更新存儲(chǔ)在所述存儲(chǔ)器中;以及核心服務(wù)處理器,所述核心服務(wù)處理器被配置成將存儲(chǔ)在存儲(chǔ)器中的所述更新推到所述用戶設(shè)備。
17.根據(jù)權(quán)利要求16所述的中間服務(wù)器,其中,所述內(nèi)容提供商處理器進(jìn)一步被配置成將從所述多個(gè)不同的內(nèi)容提供商所獲得的更新重新格式化成與所述用戶設(shè)備兼容的格式。
18.根據(jù)權(quán)利要求16所述的中間服務(wù)器,其中,所述核心服務(wù)處理器將優(yōu)先級(jí)指派給所獲得的存儲(chǔ)在所述存儲(chǔ)器中的更新。
19.根據(jù)權(quán)利要求18所述的中間服務(wù)器,其中,所述核心服務(wù)處理器基于所指派的優(yōu)先級(jí)對(duì)所獲得的存儲(chǔ)在存儲(chǔ)器中的更新到所述用戶設(shè)備的推進(jìn)行調(diào)度。
20.根據(jù)權(quán)利要求16所述的中間服務(wù)器,其中,在所獲得的更新已經(jīng)被推到所述用戶設(shè)備之后,所述核心服務(wù)處理器從所述存儲(chǔ)器中刪除所獲得的更新。
全文摘要
一種聚合服務(wù)服務(wù)器,該聚合服務(wù)服務(wù)器被配置成與用戶設(shè)備和多個(gè)不同的內(nèi)容提供商進(jìn)行通信。處理器被配置成從所述多個(gè)不同的內(nèi)容提供商獲得內(nèi)容并且進(jìn)一步被配置成將所獲得的內(nèi)容推到所述用戶設(shè)備。
文檔編號(hào)G06F17/30GK102498486SQ201080040489
公開日2012年6月13日 申請(qǐng)日期2010年9月10日 優(yōu)先權(quán)日2009年9月10日
發(fā)明者保羅·韋恩·漢加斯, 克里斯托弗·A·米特拉, 克里斯托弗·雷平斯基, 利恩·T·馬米特蘇卡, 史蒂芬·J·塞韋里內(nèi)克, 威廉·N·坎普二世, 希瑟·M·勒羅伊, 托尼·魯賓遜, 斯科特·I·普特曼, 米蘭·S·布拉姆巴特, 胡鑫, 薩普納·索尼, 賽魯斯·P·馬斯特, 阿尼什·M·沙阿, 馬克森·R·惠勒, 魏凱 申請(qǐng)人:摩托羅拉移動(dòng)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1