專利名稱:低資源設(shè)備中的優(yōu)化輪詢的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及例如移動電話、智能電話、個人數(shù)字助理、超移動PC等移動和低資源設(shè)備中的資源保護(hù)。更具體地,本發(fā)明提供了用于優(yōu)化客戶端與其服務(wù)器應(yīng)用之間輪詢的技術(shù),用于減少維護(hù)客戶端與服務(wù)器之間活動和準(zhǔn)確的連接所需的開銷。
背景技術(shù):
智能移動計(jì)算設(shè)備(例如,智能電話和超移動PC)在整個社會和整個世界已經(jīng)變得無所不在。某些用戶在他們無法使用具有專用電源和硬連線網(wǎng)絡(luò)連接的更傳統(tǒng)的計(jì)算機(jī)時,通常會時不時地使用移動設(shè)備,例如在機(jī)場或餐廳。某些其他用戶依靠移動計(jì)算設(shè)備作為他們的主要數(shù)據(jù)處理設(shè)備,因?yàn)檫@些用戶在他們的日常生活或?qū)I(yè)需求上沒有甚至不需要更傳統(tǒng)的計(jì)算機(jī)。移動設(shè)備使用無線技術(shù)來通信并且使用電池來供電。這些移動設(shè)備正變得足夠先進(jìn)以作為強(qiáng)大的信息終端,僅受限于在必須對電池充電之前移動設(shè)備電池的續(xù)航時間。在涉及移動設(shè)備的某些環(huán)境中,例如ffeb,服務(wù)器不能在不考慮安全性和服務(wù)器可擴(kuò)展性的情況下向客戶端發(fā)起通信,服務(wù)器也不能與客戶端維持非常長期的連接。相反,每個客戶端必須與服務(wù)器發(fā)起或建立連接,以便向服務(wù)器發(fā)送數(shù)據(jù)以及從服務(wù)器接收數(shù)據(jù)。 另外,每個客戶端必須周期性地(優(yōu)選地,頻繁地)向服務(wù)器輪詢新的或更新的數(shù)據(jù),以便保證該客戶端具有最近期的信息和數(shù)據(jù)。因此,客戶端-服務(wù)器通信可能成為資源黑洞 (hog)和性能瓶頸,從而使得移動設(shè)備的電池快速耗盡。
發(fā)明內(nèi)容
以下提出了本發(fā)明的簡化概述,以便提供這里所描述的某些方面的基本理解。該發(fā)明內(nèi)容不是本發(fā)明的廣泛概觀。其并非意在標(biāo)識本發(fā)明的關(guān)鍵或者重要元素,或者描述本發(fā)明的范圍。以下發(fā)明內(nèi)容僅以簡化形式提出本發(fā)明的一些概念,作為以下提供的更加詳細(xì)的描述的序言。為了克服上述現(xiàn)有技術(shù)中的限制,并且克服在閱讀和理解本說明書之后出現(xiàn)的其他限制,本發(fā)明針對于更高效地管理移動客戶端與它們從其獲得數(shù)據(jù)的相應(yīng)服務(wù)器之間的客戶端-服務(wù)器通信。本發(fā)明的第一方面提供了移動客戶端(例如,移動終端)與一個或多個服務(wù)器之間的經(jīng)紀(jì)人管理的客戶端-服務(wù)器通信,所述一個或多個服務(wù)器向在移動客戶端上執(zhí)行的一個或多個對應(yīng)客戶端組件提供數(shù)據(jù)。在移動客戶端執(zhí)行的經(jīng)紀(jì)人模塊(“存根”)攔截由在該移動客戶端上執(zhí)行的任何客戶端組件發(fā)送的服務(wù)器請求消息。經(jīng)紀(jì)人存根將服務(wù)器請求消息復(fù)用成經(jīng)紀(jì)人請求消息,并且傳輸該經(jīng)紀(jì)人請求消息以便由服務(wù)器上執(zhí)行的經(jīng)紀(jì)人模塊骨架接收。當(dāng)經(jīng)紀(jì)人存根從經(jīng)紀(jì)人骨架接收響應(yīng)時,經(jīng)紀(jì)人存根將該經(jīng)紀(jì)人響應(yīng)消息去復(fù)用成分立的服務(wù)器響應(yīng)消息,每個服務(wù)器響應(yīng)消息對應(yīng)于設(shè)備上執(zhí)行的不同客戶端組件。
根據(jù)本發(fā)明的另一方面,當(dāng)經(jīng)紀(jì)人骨架(例如,執(zhí)行在web服務(wù)器上)從移動終端接收經(jīng)復(fù)用的經(jīng)紀(jì)人請求消息時,經(jīng)紀(jì)人骨架將經(jīng)紀(jì)人請求消息去復(fù)用成分立的服務(wù)器請求消息,并且將每個經(jīng)紀(jì)人請求消息轉(zhuǎn)發(fā)到在每個經(jīng)紀(jì)人請求消息中標(biāo)識的服務(wù)器。當(dāng)經(jīng)紀(jì)人骨架從每個標(biāo)識的服務(wù)器接收服務(wù)器響應(yīng)消息時,骨架將服務(wù)器響應(yīng)消息復(fù)用成單個經(jīng)紀(jì)人響應(yīng)消息,并且向移動終端發(fā)送該經(jīng)紀(jì)人響應(yīng)消息。在經(jīng)紀(jì)人骨架與經(jīng)紀(jì)人存根之間傳輸?shù)膯蝹€消息可以通過多個分組或突發(fā)進(jìn)行發(fā)送,但邏輯上對應(yīng)于單個通信。根據(jù)本發(fā)明的另一方面,移動終端上執(zhí)行的一個或多個移動客戶端可以基于用戶行為執(zhí)行與該移動客戶端上每個應(yīng)用的自適應(yīng)輪詢。當(dāng)滿足用戶交互準(zhǔn)則時,移動終端可以執(zhí)行客戶端組件來以特定間隔輪詢向該客戶端提供數(shù)據(jù)的服務(wù)器。當(dāng)沒有滿足用戶交互則準(zhǔn)時,移動終端可以執(zhí)行以不同于所述第一間隔的另一間隔輪詢服務(wù)器的客戶端組件。 在一個示例中,用戶交互準(zhǔn)則可以包括要在設(shè)備的顯示器屏幕上顯示的客戶端組件。在另一示例中,用戶交互準(zhǔn)則可以包括以比移動終端上執(zhí)行的第二客戶端組件更高的顯著級在顯示器屏幕上顯示客戶端組件。根據(jù)本發(fā)明的另一方面,服務(wù)器防護(hù)模塊可以用于針對更新的數(shù)據(jù)而獨(dú)立監(jiān)視一個或多個服務(wù)器。服務(wù)器防護(hù)模塊可以在web服務(wù)器或者具有直流電源連接和硬連線網(wǎng)絡(luò)連接的其他數(shù)據(jù)處理設(shè)備上執(zhí)行。然而,如果節(jié)省的資源和獲得的效率比當(dāng)服務(wù)器防護(hù)模塊駐留在具有恒定或直流電源的設(shè)備上更多時,則服務(wù)器防護(hù)模塊可以備選地駐留在移動終端上。服務(wù)器防護(hù)模塊從移動終端上執(zhí)行的客戶端組件接收注冊消息。每個注冊消息向服務(wù)器防護(hù)提供信息,例如對應(yīng)于該客戶端組件的服務(wù)器的地址以及該客戶端組件將用于從服務(wù)器檢索信息的查詢參數(shù)。服務(wù)器防護(hù)將該信息注冊在數(shù)據(jù)庫中。為確定每個服務(wù)器組件是否具有針對其對應(yīng)客戶端組件的新的數(shù)據(jù),服務(wù)器防護(hù)根據(jù)預(yù)定的調(diào)度周期性地輪詢每個服務(wù)器組件,或者使服務(wù)器防護(hù)了解到針對于服務(wù)器的新的更新。當(dāng)服務(wù)器組件具有針對其對應(yīng)客戶端組件的新的數(shù)據(jù)時,服務(wù)器防護(hù)通知對應(yīng)的客戶端組件,指示該服務(wù)器具有針對該客戶端組件的新的數(shù)據(jù)。根據(jù)本發(fā)明的又一方面,移動終端可以調(diào)整以適于與服務(wù)器防護(hù)交互。移動終端上的每個客戶端組件向服務(wù)器防護(hù)發(fā)送注冊消息。每個注冊消息提供對應(yīng)于向發(fā)送該消息的客戶端組件提供數(shù)據(jù)的服務(wù)器的服務(wù)器組件信息。移動終端隨后根據(jù)預(yù)定的調(diào)度向服務(wù)器防護(hù)模塊發(fā)送多個心跳消息,每個消息請求關(guān)于新的數(shù)據(jù)的可用性的狀態(tài)。移動終端從服務(wù)器防護(hù)模塊接收響應(yīng),其中該響應(yīng)對應(yīng)于心跳消息中的一個,并且指示服務(wù)器具有移動終端尚未接收到的新的數(shù)據(jù)。在一個示例中,移動終端上的客戶端組件可以隨后向其對應(yīng)的服務(wù)器發(fā)送輪詢消息來獲取該新的數(shù)據(jù),該新的數(shù)據(jù)提供了任何必要的查詢數(shù)據(jù)(例如,查詢可能依賴于的移動終端的當(dāng)前位置)。備選地,當(dāng)服務(wù)器不需要特定于或基于客戶端組件的查詢參數(shù)時 (例如,無論誰查詢服務(wù)器,服務(wù)器僅提供格林威治標(biāo)準(zhǔn)時間),則從服務(wù)器防護(hù)接收到的響應(yīng)可以直接包括由服務(wù)器提供的新的數(shù)據(jù)。
通過考慮附圖參考以下描述可以獲得本發(fā)明的更為完整的理解及其優(yōu)點(diǎn),附圖中相似的參考標(biāo)號指示相似的特征,并且其中
圖1示出了可以根據(jù)本發(fā)明的一個或多個說明性方面使用的網(wǎng)絡(luò)架構(gòu)。圖2示出了可以根據(jù)本發(fā)明的一個或多個說明性方面使用的移動終端。圖3示出了根據(jù)本發(fā)明的一個或多個說明性方面在協(xié)同客戶端與協(xié)同服務(wù)器之間的數(shù)據(jù)流。圖4示出了根據(jù)本發(fā)明的一個或多個說明性方面的經(jīng)紀(jì)人管理的服務(wù)器輪詢方法的流程圖。圖5示出了根據(jù)本發(fā)明的一個或多個說明性方面的服務(wù)器防護(hù)管理的服務(wù)器輪詢方法的流程圖。
具體實(shí)施例方式在各種實(shí)施方式的以下描述中,參考形成其一部分的附圖,并且其中通過示出可以實(shí)現(xiàn)本發(fā)明的各種實(shí)施方式的方式示出。可以理解,可以使用其他實(shí)施方式,并且在不脫離本發(fā)明的范圍的情況下可以做出結(jié)構(gòu)上和功能上的修改。圖1示出了示例性通信網(wǎng)絡(luò),通過該通信網(wǎng)絡(luò)可以實(shí)踐各種發(fā)明原理。包括移動通信設(shè)備105和110、個人數(shù)字助理(PDA) 120、個人計(jì)算機(jī)(PC) 115、服務(wù)提供商125和內(nèi)容提供商130的許多計(jì)算機(jī)和設(shè)備可以通過網(wǎng)絡(luò)100彼此通信以及與其他設(shè)備通信。網(wǎng)絡(luò)100可以包括有線和無線連接和網(wǎng)元,并且通過網(wǎng)絡(luò)的連接可以包括永久性的或臨時性的連接。通過網(wǎng)絡(luò)100的通信不限于所示設(shè)備,并且可以包括附加的設(shè)備,例如家庭視頻存儲系統(tǒng)、便攜式音頻/視頻播放器、數(shù)字照相機(jī)/攝像機(jī)、定位設(shè)備(例如GPS (全球定位系統(tǒng))設(shè)備或衛(wèi)星)、移動電視、機(jī)頂盒(STB)、數(shù)字視頻記錄器、遙控設(shè)備和其任何組合。雖然為了簡單起見在圖1中只示出了單個網(wǎng)絡(luò),但是網(wǎng)絡(luò)100可以包括相互鏈接的多個網(wǎng)絡(luò),以便提供相互聯(lián)網(wǎng)的通信。這種網(wǎng)絡(luò)可以包括一個或多個私有或公共分組交換網(wǎng)絡(luò)(例如,因特網(wǎng))、一個或多個私有或公共電路交換網(wǎng)絡(luò)(例如,公共交換電話網(wǎng)絡(luò))、配置用于促進(jìn)與移動通信設(shè)備105和110之間通信的蜂窩網(wǎng)絡(luò)(例如,通過使用基站、移動交換中心等)、短距離或中距離無線通信連接(例如,根據(jù)電氣與電子工程師協(xié)會標(biāo)準(zhǔn)no. 802. 11的一個或多個版本的無線局域網(wǎng)(WLAN)、Bluetooth 、超寬帶(UWB)^l 外和WiBree)或者高速無線數(shù)據(jù)網(wǎng)絡(luò)(例如,演進(jìn)數(shù)據(jù)優(yōu)化(EV-DO)網(wǎng)絡(luò)、通用移動通信系統(tǒng)(UMTQ網(wǎng)絡(luò)、長期演進(jìn)(LTE)網(wǎng)絡(luò)或增強(qiáng)型數(shù)據(jù)速率GSM演進(jìn)(EDGE)網(wǎng)絡(luò))。設(shè)備 105-120可以使用各種通信協(xié)議,例如因特網(wǎng)協(xié)議(IP)、傳輸控制協(xié)議(TCP)、簡單郵件傳輸協(xié)議(SMTP)等本領(lǐng)域已知協(xié)議。還可以包括例如短消息收發(fā)服務(wù)(SMS)之類的各種消息收發(fā)服務(wù)。設(shè)備105-120可以配置用于彼此交互或與其他設(shè)備交互,例如內(nèi)容服務(wù)器130或服務(wù)提供商125。在一個示例中,移動設(shè)備110可以包括客戶端軟件165,該客戶端軟件配置用于協(xié)調(diào)與內(nèi)容提供商/服務(wù)器130之間信息的傳輸和接收。在一個布置中,客戶端軟件 165可以包括應(yīng)用或服務(wù)器專用協(xié)議,用于向內(nèi)容服務(wù)器130請求內(nèi)容以及從其接收內(nèi)容。 例如,客戶端軟件165可以包括Web瀏覽器或其移動變體,并且內(nèi)容提供商/服務(wù)器130可以包括web服務(wù)器。還可以包括計(jì)費(fèi)服務(wù)(未示出),用于向提供的服務(wù)收取接入或數(shù)據(jù)費(fèi)。在服務(wù)提供商125提供蜂窩網(wǎng)絡(luò)接入(例如,無線服務(wù)提供商)的一個布置中,客戶端軟件165可以包括用于通過蜂窩網(wǎng)絡(luò)進(jìn)行接入和通信的指令??蛻舳塑浖?65可以存儲在設(shè)備110中的計(jì)算機(jī)可讀存儲器160(例如只讀存儲器或隨機(jī)訪問存儲器)中,并且可以包括使得設(shè)備110的一個或多個組件(例如,處理器155、收發(fā)器和顯示器)執(zhí)行包括這里所述功能和方法的各種功能和方法的指令。圖2示出了可以在圖1的網(wǎng)絡(luò)100中使用的計(jì)算設(shè)備,例如移動設(shè)備212。移動設(shè)備212可以包括連接到用戶接口控制230、顯示器236和所示其他元件的控制器225??刂破?25可以包括一個或多個處理器2 和存儲了軟件MO的存儲器234。移動設(shè)備212還可以包括電池250、揚(yáng)聲器252和天線254。用戶接口控制230可以包括控制器或適配器, 該控制器或適配器配置用于從小鍵盤、觸摸屏、語音接口(例如,經(jīng)由麥克風(fēng)256)、功能鍵、 游戲桿、數(shù)據(jù)手套、鼠標(biāo)等接收輸入或者向其提供輸出。由移動設(shè)備212的處理器2 和其他組件使用的計(jì)算機(jī)可執(zhí)行指令和數(shù)據(jù)可以存儲在例如存儲器234之類的存儲設(shè)施中。存儲器234可以包括任何類型的只讀存儲器(ROM) 模塊或隨機(jī)訪問存儲器(RAM)模塊或其組合,包括易失性存儲器和非易失性存儲器兩者例如各種盤。軟件240可以存儲在存儲器234中用于向處理器2 提供指令,使得當(dāng)執(zhí)行該指令時,使得處理器228、移動設(shè)備212和/或移動設(shè)備212的其他組件執(zhí)行例如這里所述的各種功能或方法。軟件可以包括應(yīng)用和操作系統(tǒng)軟件兩者,并且可以包括代碼段、指令、 小應(yīng)用、預(yù)編譯代碼、編譯代碼、計(jì)算機(jī)程序、程序模塊、引擎、程序邏輯及其組合。計(jì)算機(jī)可執(zhí)行指令和數(shù)據(jù)還可以存儲在計(jì)算機(jī)可讀介質(zhì)上,包括EEPR0M、閃存或其他存儲器技術(shù)、 CD-ROM、DVD或其他光盤存儲、磁卡帶、磁帶、磁存儲等。應(yīng)當(dāng)理解,這里所述的任何方法步驟、過程或功能可以通過將一個或多個處理器與使得處理器和其他組件執(zhí)行所述方法步驟、過程或功能的可執(zhí)行指令結(jié)合使用來實(shí)現(xiàn)。 如這里所使用的,無論是單獨(dú)使用還是與存儲器或其他計(jì)算機(jī)可讀存儲介質(zhì)中存儲的可執(zhí)行指令結(jié)合使用的術(shù)語“處理器”和“計(jì)算機(jī)”都應(yīng)當(dāng)理解為包括任何各種類型的已知計(jì)算結(jié)構(gòu),包括但不限于一個或多個微處理器、專用計(jì)算機(jī)芯片、現(xiàn)場可編程門陣列(FPGAS)、控制器、專用集成電路(ASICS)、硬件/固件組合或者其他專用或通用處理電路。移動設(shè)備212或其各種組件可以配置用于通過專用廣播收發(fā)器241接收、解碼和處理各種類型的傳輸,包括數(shù)字寬帶廣播傳輸,該傳輸例如基于數(shù)字視頻廣播(DVB)標(biāo)準(zhǔn), 例如DVB-H、DVB-H+或DVB-MHP。其他數(shù)字傳輸格式可以備選地用于遞送補(bǔ)充服務(wù)可用性的內(nèi)容和信息。附加地或備選地,移動設(shè)備212可以配置用于接收、解碼和處理通過FM/AM無線收發(fā)器對2、無線局域網(wǎng)(WLAN)收發(fā)器243和電信收發(fā)器244的傳輸。收發(fā)器M1J42、 243和244可以備選地包括獨(dú)立的發(fā)射器和接收器組件。雖然圖2的上文描述總體上涉及移動設(shè)備,但其他設(shè)備或系統(tǒng)也可以包括相同或相似的組件并且執(zhí)行相同或相似的功能和方法。例如,固定計(jì)算機(jī)(例如PC 115(圖1)) 可以包括上文所述的組件并且可以配置用于執(zhí)行與移動設(shè)備212及其組件相同或相似的功能。在基于Web的系統(tǒng)中,例如通過因特網(wǎng)的數(shù)據(jù)傳輸、客戶端-服務(wù)器通信通常遵循請求-響應(yīng)模式,其中響應(yīng)于客戶端向服務(wù)器發(fā)送HTTP請求,服務(wù)器向客戶端發(fā)回響應(yīng)。該響應(yīng)通常包括該客戶端請求的數(shù)據(jù)。在每個請求-響應(yīng)周期期間,移動客戶端需要在其無線通信網(wǎng)絡(luò)中建立TCP連接,然后使用TCP連接傳送請求/響應(yīng)消息。每個周期可以在客戶端與服務(wù)器之間進(jìn)行若干消息交換或“往返行程”,并且HTTP請求報(bào)頭經(jīng)常占有數(shù)百(例5/11 頁
如,600)個字節(jié),即便應(yīng)用凈荷只有幾個字節(jié)的數(shù)據(jù)。因此,可能會出現(xiàn)高通信延遲和低鏈路使用。設(shè)備的移動性加重了 HTTP和Web通信的問題,因?yàn)闊o線技術(shù)(例如,Wi-Fi和3G) 具有高通信延遲和低比特率。較新的無線數(shù)據(jù)通信技術(shù)也存在類似的問題。上行鏈路和下行鏈路的速度通常是非對稱的,下行鏈路較慢并且更耗能。在每次傳輸之后,無線接口可能處于高功耗狀態(tài),并且只有在非激活的預(yù)定時段之后才會轉(zhuǎn)變成低功率狀態(tài)。每次通信都會花費(fèi)CPU周期、存儲器和電池電量。如果移動客戶端有多個組件需要與服務(wù)器通信,則無線接口保持忙碌、電池快速耗盡并且移動設(shè)備可能變得反應(yīng)較慢。鑒于上文所述,本發(fā)明的多個方面針對于當(dāng)電量是有限資源時(S卩,電話沒有插入電源而是使用電池供電),針對使用移動設(shè)備進(jìn)行客戶端-服務(wù)器交互的改進(jìn)技術(shù)。本發(fā)明的技術(shù)還可以用于節(jié)省功耗,即便在設(shè)備或裝置插入電源時;用于通過節(jié)省發(fā)送的字節(jié)數(shù)量來幫助更好地利用網(wǎng)絡(luò)帶寬;以及用于通過減少通信中所使用的處理周期來更好地利用移動設(shè)備的CPU。為了說明本發(fā)明的各個方面,使用以下說明性情景。再次參考圖1,設(shè)備110、120 可以執(zhí)行提供協(xié)同服務(wù)(例如,所有用戶都能在其上繪制的共享白板,以及聊天服務(wù))的客戶端軟件165。進(jìn)一步參考圖3,客戶端軟件165可以被稱為協(xié)同客戶端301。圖3示出了每個協(xié)同客戶端與其可應(yīng)用服務(wù)器之間的邏輯數(shù)據(jù)流程圖。通過協(xié)同客戶端301,每個協(xié)同服務(wù)303、305可以作為唯一客戶端,與針對該服務(wù)的唯一服務(wù)器進(jìn)行通信。例如,聊天特征可以通過在協(xié)同客戶端301上執(zhí)行的聊天客戶端軟件模塊303與在協(xié)同服務(wù)器313 (例如, 在服務(wù)器130(圖1)上執(zhí)行的邏輯服務(wù)器)上執(zhí)行的聊天服務(wù)器軟件模塊317進(jìn)行通信來在每個協(xié)同客戶端301中提供。類似地,白板特征可以通過在協(xié)同客戶端301上執(zhí)行的白板客戶端軟件模塊305與在協(xié)同服務(wù)器313 (例如,在服務(wù)器130 (圖1)上執(zhí)行的邏輯服務(wù)器,該邏輯服務(wù)器不同于提供聊天特征的邏輯服務(wù)器)上執(zhí)行的白板服務(wù)器軟件模塊319 進(jìn)行通信來在每個協(xié)同客戶端301中提供。還可以提供附加的協(xié)同服務(wù),但這里為了說明的目的只參考了兩個。每個聊天和白板組件在客戶端都具有其自己的用戶接口,有時提供在瀏覽器窗口中的單個網(wǎng)頁內(nèi)。可以備選地使用其他用戶接口。除了具有唯一服務(wù)器,每個組件還可以具有其自己的數(shù)據(jù)庫用于存儲對應(yīng)于由該組件提供的服務(wù)/特征的數(shù)據(jù)。當(dāng)從客戶端303、 305接收請求時,應(yīng)用服務(wù)器317、319可以由Web服務(wù)器311例如使用Apache進(jìn)行調(diào)用。 客戶端303、305通常根據(jù)調(diào)度(例如,每5秒鐘)輪詢它們各自的服務(wù)器317、319,以檢索服務(wù)器上可用的更新。根據(jù)本發(fā)明一方面,經(jīng)紀(jì)人存根307和經(jīng)紀(jì)人骨架315可以用于將服務(wù)器請求進(jìn)行復(fù)用并組合成單個消息,從而節(jié)省移動客戶端中的資源。經(jīng)紀(jì)人存根307可以以Ajax (異步Jav必cript和XML)進(jìn)行編碼以用于提供在后臺與服務(wù)器通信的服務(wù)。經(jīng)紀(jì)人存根307 可以提供API (應(yīng)用編程接口),通過API客戶端組件可以向服務(wù)器313發(fā)送XMLHttp請求 (XHR),使得多個請求可以被聚合并且作為一個請求而被發(fā)送,并且輪詢間隔可以依賴于更新的可用性、網(wǎng)絡(luò)條件和服務(wù)器負(fù)載進(jìn)行動態(tài)地調(diào)整。因此,在圖3所示的示例中,并且進(jìn)一步參考圖4,用戶在步驟401中可以在他或她的移動電話上進(jìn)行瀏覽來訪問基于Web的協(xié)同服務(wù),通過該協(xié)同服務(wù)移動客戶端110、120
13經(jīng)由服務(wù)器313跨無線網(wǎng)絡(luò)(例如,高延遲網(wǎng)絡(luò))彼此通信。貫穿該過程,經(jīng)紀(jì)人模塊307、 315調(diào)解客戶端-服務(wù)器通信來使得通信更加高效。經(jīng)紀(jì)人可以包括客戶端側(cè)模塊(存根 307)和服務(wù)器側(cè)模塊(骨架31幻。存根307可以駐留在與協(xié)同客戶端組件(例如,聊天 303和白板305)相同的Web頁中,并且為它們提供API來與服務(wù)器313通信。備選地,存根 307可以獨(dú)立于客戶端組件。在步驟403,使用協(xié)同客戶端301的用戶激活協(xié)同服務(wù)中的聊天和白板服務(wù)。在步驟405,每個客戶端從其相應(yīng)的服務(wù)器請求更新。每個請求可以被稱為服務(wù)器請求消息或組件請求消息。在步驟407,經(jīng)紀(jì)人存根307攔截多個服務(wù)器請求消息,并且在步驟409,存根307可以將來自那些組件的請求復(fù)用成一個經(jīng)紀(jì)人請求消息,并且向經(jīng)紀(jì)人骨架315發(fā)送該經(jīng)復(fù)用的經(jīng)紀(jì)人請求消息。在步驟411,骨架315攔截發(fā)送自存根307的經(jīng)復(fù)用的經(jīng)紀(jì)人請求消息,并且去復(fù)用該請求。在步驟413,骨架向其相應(yīng)的原組件服務(wù)器317、319發(fā)送或分派該去復(fù)用的請求(各個組件請求消息)。在步驟415,一個或多個組件服務(wù)器317、319向其相應(yīng)的組件客戶端303、305生成響應(yīng)。在步驟417,經(jīng)紀(jì)人骨架315攔截被分別稱作服務(wù)器響應(yīng)消息或組件響應(yīng)消息的響應(yīng)。在步驟419,經(jīng)紀(jì)人骨架315復(fù)用響應(yīng)消息并且向經(jīng)紀(jì)人存根307發(fā)回經(jīng)復(fù)用的經(jīng)紀(jì)人響應(yīng)消息。在步驟421,經(jīng)紀(jì)人存根307接收經(jīng)復(fù)用的經(jīng)紀(jì)人響應(yīng)消息并且將該消息去復(fù)用成各個組件響應(yīng)消息。在步驟423,經(jīng)紀(jì)人存根307將各個響應(yīng)消息分派或轉(zhuǎn)發(fā)到其對應(yīng)的客戶端組件303、305。根據(jù)本發(fā)明的另一方面,經(jīng)紀(jì)人系統(tǒng)(例如,經(jīng)紀(jì)人骨架315和經(jīng)紀(jì)人存根307) 可以執(zhí)行自適應(yīng)輪詢。在一個實(shí)施方式中,存根可能不發(fā)送周期性的輪詢請求,直到針對該請求的最后一個連接完成(或者基于預(yù)定值,該請求超時),從而導(dǎo)致如果輪詢?nèi)蝿?wù)的間隔對于當(dāng)前網(wǎng)絡(luò)條件或服務(wù)器工作負(fù)載而言過于頻繁,則減慢輪詢?nèi)蝿?wù)。經(jīng)紀(jì)人存根還可以根據(jù)更新的可用性來調(diào)整(減慢或加速)周期性請求的輪詢間隔。更新的可用性可以是應(yīng)用特定的,其到達(dá)這樣的程度,即客戶端組件需要經(jīng)由存根API通過指示數(shù)據(jù)的可用性來向存根提供反饋的程度。在一個說明性實(shí)施方式中,雅虎連接管理器(YCM)可以用于對XHR進(jìn)行編程的跨平臺API。主接口可以是異步請求(方法、url、回叫、數(shù)據(jù)),該主接口向服務(wù)器發(fā)送異步請求。在四個參量中,方法是HTTP方法(例如,GET和POST) ;url是目標(biāo)Web服務(wù)器地址;回叫是用于處理服務(wù)器響應(yīng)的對象;數(shù)據(jù)持有待在POST請求中發(fā)送的數(shù)據(jù)。回叫對象可以提供如下三個成員成功是調(diào)用來處理成功返回的服務(wù)器響應(yīng)的功能;失敗是處理有問題響應(yīng)(例如,通信失敗或服務(wù)器錯誤)的功能;參量是任意的對象,其包含用于成功和失敗處理機(jī)處理服務(wù)器響應(yīng)的數(shù)據(jù)。API可以通過區(qū)分以下四種類型的XHR任務(wù)來影響低層XHR通信的YCM —次輪詢來查詢服務(wù)器(例如當(dāng)初始化組件時加載共享數(shù)據(jù));周期性輪詢來周期性地向服務(wù)器查詢對某些共享數(shù)據(jù)的新的更新;一次更新來通知服務(wù)器某些共享數(shù)據(jù)的本地狀態(tài)變化;以及周期性更新來周期性地向服務(wù)器發(fā)送某些共享數(shù)據(jù)的更新。每個任務(wù)可以定義唯一的id、用于獲取其url的方法以及回叫對象。更新任務(wù)另外定義用于獲取待發(fā)送數(shù)據(jù)的方法。周期性任務(wù)還可以定義用于指定發(fā)送請求的頻率的間隔。在某些實(shí)施方式中,例如當(dāng)Web服務(wù)器API支持可以生成周期性更新的輸入源(例如,麥克、照相機(jī)和GPS)時,可以使用周期性更新。一次輪詢和更新任務(wù)可以通過分別調(diào)用Ajax經(jīng)紀(jì)人方法、send_polling (task) 和send_updating(task)而在特定組件中被發(fā)送,其中對象任務(wù)如上文所定義。在組件通過調(diào)用Ajax經(jīng)紀(jì)人方法register_p0lling(task)對周期性輪詢?nèi)蝿?wù)注冊之后,由經(jīng)紀(jì)人存根將其發(fā)送。根據(jù)本發(fā)明的一方面,經(jīng)紀(jì)人存根307可以通過復(fù)用請求和調(diào)整請求間隔來管理周期性輪詢請求。在一個實(shí)施方式中,經(jīng)紀(jì)人系統(tǒng)可能僅復(fù)用周期性輪詢請求,同時將一次輪詢和更新請求作為各個消息進(jìn)行發(fā)送。復(fù)用請求必然帶來更多的運(yùn)行時間開銷。因?yàn)橐淮握埱笸ǔJ怯捎脩襞c組件UI交互而觸發(fā),因此用戶經(jīng)常期望在短時間內(nèi)看到某些UI反饋。因此,一發(fā)生交互,系統(tǒng)便可以立即發(fā)送一次請求,使得請求能夠以最小的延遲到達(dá)服務(wù)器并且獲取回響應(yīng)。在另一方面,周期性輪詢?nèi)蝿?wù)可以是用于拉動遠(yuǎn)程更新并具有更多延遲容忍的后臺活動。因此,系統(tǒng)可能僅復(fù)用周期性輪詢?nèi)蝿?wù)。在經(jīng)紀(jì)人存根307中,元系統(tǒng)定時器有規(guī)律地發(fā)出周期性請求。優(yōu)選地,定時器間隔(由系統(tǒng)參數(shù)metajnterval表示)應(yīng)當(dāng)是所有周期性請求間隔的最大公約數(shù)(gcd)。 實(shí)踐中,例如可以使用值1,000ms(或任何其他值)。周期性輪詢?nèi)蝿?wù)可以被注冊到內(nèi)部隊(duì)列,polling_tasks。每個任務(wù)t可以使用參數(shù)t. interval來表示其間隔;參數(shù)t. last_ time來表示其被發(fā)送(由其本身或復(fù)用)的最后時間;以及參數(shù)t. connection來表示其被發(fā)送所通過的連接。元定時器可以為同時滿足以下兩個條件的每個任務(wù)t掃描輪詢?nèi)蝿?wù)(l)n0W-t. last_time > = t. interval, now : ItfB^|1],\)J,R (2) t. connection ^.ιΕ^ 。 如果請求已經(jīng)發(fā)出但不是以成功或失敗完成,則連接正在進(jìn)行。那些合格的任務(wù)的URL在一個請求中經(jīng)由YCM異步請求方法向經(jīng)紀(jì)人骨架發(fā)送。同時,將它們的Iastjime參數(shù)設(shè)置成其被發(fā)送的當(dāng)前時間now。元定時器可以具有其自己的回叫對象,用于處理來自服務(wù)器的響應(yīng)。元定時器回叫對象的參量參數(shù)追蹤哪些輪詢?nèi)蝿?wù)已經(jīng)被復(fù)用和發(fā)送。當(dāng)從骨架接收到經(jīng)復(fù)用的響應(yīng)時,元定時器的響應(yīng)處理機(jī)解析該消息,找到對各個輪詢?nèi)蝿?wù)的響應(yīng),并且將它們分派到它們的響應(yīng)處理機(jī),該處理機(jī)接著解析該數(shù)據(jù)并將響應(yīng)反映在它們的組件UI上。這里所述的復(fù)用節(jié)省了所發(fā)送字節(jié)的數(shù)量以及功耗。然而,與不進(jìn)行復(fù)用時相比, 單獨(dú)任務(wù)需要花費(fèi)更長的時間來從服務(wù)器接收響應(yīng)。雖然略微更大的復(fù)用凈荷不會增加太多的傳輸時間,但與處理一個請求相比,服務(wù)器花費(fèi)更長的時間來處理多個請求。因此,如上文所解釋的,一次請求不會被復(fù)用。由于在服務(wù)器上沒有更新時,經(jīng)復(fù)用或未復(fù)用的輪詢請求可能仍然浪費(fèi)資源,因此本發(fā)明的另一實(shí)施方式可以使用自適應(yīng)輪詢的備選形式。復(fù)用中的第二條件(即元定時器通過該第二條件決定連接是否正在進(jìn)行)已經(jīng)展示了某些自適應(yīng)行為。在發(fā)起請求之后,資源沒有被釋放直到接收到響應(yīng)或者甚至出現(xiàn)超時。響應(yīng)可能由于許多原因而延遲。例如,web瀏覽器已經(jīng)達(dá)到允許在該客戶端與服務(wù)器之間建立的活動連接的最大數(shù)量;網(wǎng)絡(luò)被擁塞;或者服務(wù)器飽和,僅列舉這幾項(xiàng)。在那些情況下,將請求推到下一輪可能對于整個系統(tǒng)性能而言是有益的。另外,存根可以向組件提供一種方法,用于在接收到服務(wù)器響應(yīng)之后向存根提供正面或負(fù)面反饋polling_feedback(id,new_data),其中id是經(jīng)注冊的周期性輪詢?nèi)蝿?wù)的id,以及neW_data指示響應(yīng)中更新的可用性。正面反饋要求存根通過減少其間隔來加速輪詢?nèi)蝿?wù),而負(fù)面反饋要求存根通過增加其間隔來減慢輪詢?nèi)蝿?wù)。然而,加速或減慢的速度可以依賴于針對任務(wù)所選擇的自適應(yīng)方法。S卩,當(dāng)給定反饋時,每個周期性輪詢?nèi)蝿?wù)可以具有向存根指示如何調(diào)整其間隔的參數(shù)——adaptive_method(自適應(yīng)_方法)。自適應(yīng)方法可以使用包括min_interval和 max_interval的兩個參數(shù)來限定任務(wù)間隔可以調(diào)整的范圍。周期性輪詢?nèi)蝿?wù)可以從最初間隔開始并且該間隔隨時間調(diào)整。默認(rèn)地,可以使用混合自適應(yīng)方法,其中間隔在正面反饋時被設(shè)置成minjnterval,而在接收到負(fù)面反饋時以恒定或變化的量(metajnterval)減少。在一個說明性實(shí)施方式中,混合方法可以使用最激進(jìn)的二進(jìn)制加速和最保守的線性減慢。通過這種方式,一接收到一個更新,便連續(xù)發(fā)送多個輪詢請求,期望響應(yīng)于協(xié)同系統(tǒng)中的第一更新,若干新的更新可能跟隨著。min_interval 參數(shù)可以取與 meta_interval 相同的值,該 meta_interval 是存根發(fā)送周期性請求的最高頻率。metajnterval可以依賴于客戶端與服務(wù)器之間的平均往返行程通信時間。然而,為了簡化起見,在蜂窩網(wǎng)絡(luò)環(huán)境中,一個實(shí)施方式可以將meta_ interval設(shè)置在1,OOOms0然而,maxjnterval參數(shù)優(yōu)選地反映用戶能容忍的饋送延遲,例如,由一個用戶做出的更新到達(dá)另一用戶所花費(fèi)的時間。不同類型的協(xié)同任務(wù)(范圍從實(shí)時任務(wù)到非實(shí)時任務(wù))可以具有不同的可容忍饋送延遲。為了支持近實(shí)時協(xié)同,例如默認(rèn)組件級max_interval可以是10,OOOms0因此,系統(tǒng)可以提供set_max_interval (b)方法, 該方法允許用戶規(guī)定在存根級(應(yīng)用于所有組件)以及組件級(僅應(yīng)用于該組件)的最低輪詢頻率。當(dāng)調(diào)整每個組件的輪詢間隔時,每個組件的有效maxjnterval則是這兩個范圍的最小范圍。自適應(yīng)輪詢由此還減輕了向周期性輪詢?nèi)蝿?wù)提供“最佳”間隔的問題,因?yàn)橛脩糁恍枰?guī)定范圍而不是特定值。如果組件不太能忍受饋送延遲,則可以指定較小的最大值,例如,3,000ms。在上文示例性示例中,在從經(jīng)紀(jì)人存根307接收到經(jīng)復(fù)用的請求時,經(jīng)紀(jì)人骨架 315解析該請求并且提取原始輪詢請求。然后,服務(wù)該請求并且將響應(yīng)復(fù)用以在一個消息中發(fā)回到存根。為了服務(wù)那些請求,經(jīng)紀(jì)人骨架可能向它們的原組件服務(wù)器轉(zhuǎn)發(fā)它們的URL,或者直接對服務(wù)器功能進(jìn)行功能調(diào)用。無論采用哪種方式,那些操作都可以被串行同步或并行異步地執(zhí)行。因此,總共存在四種可能的執(zhí)行策略,即,調(diào)用-串行(串行的功能調(diào)用)、調(diào)用-異步(并行的調(diào)用)、url-串行(串行轉(zhuǎn)發(fā)URL)和url-異步(并行轉(zhuǎn)發(fā)URL)?;谏衔模粋€示例性系統(tǒng)可以包括影響性能的策略和參數(shù),如表1所示。
權(quán)利要求
1.一種設(shè)備,包括處理器,配置用于控制所述設(shè)備的某些操作;以及存儲器,存儲計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令當(dāng)由所述處理器執(zhí)行時,使得所述設(shè)備通過以下執(zhí)行服務(wù)器輪詢軟件模塊,攔截多個服務(wù)器請求消息,每個服務(wù)器請求消息接收自所述設(shè)備上執(zhí)行的不同客戶端組件;將所述多個服務(wù)器請求消息復(fù)用成經(jīng)紀(jì)人請求消息;以及傳輸所述經(jīng)紀(jì)人請求消息。
2.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述指令進(jìn)一步執(zhí)行 接收經(jīng)紀(jì)人響應(yīng)消息;去復(fù)用所述經(jīng)紀(jì)人響應(yīng)消息來獲得多個服務(wù)器響應(yīng)消息,每個服務(wù)器響應(yīng)消息對應(yīng)于所述設(shè)備上執(zhí)行的不同客戶端組件;以及將所述多個服務(wù)器響應(yīng)消息中的每個服務(wù)器響應(yīng)消息轉(zhuǎn)發(fā)到其對應(yīng)的客戶端組件。
3.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述指令進(jìn)一步執(zhí)行 以預(yù)定間隔重復(fù)所述攔截、復(fù)用、傳輸、接收、去復(fù)用和轉(zhuǎn)發(fā)。
4.根據(jù)權(quán)利要求3所述的設(shè)備,其中通過等待執(zhí)行所述重復(fù)直到針對所述經(jīng)紀(jì)人請求消息的在先連接已經(jīng)完成而進(jìn)一步執(zhí)行所述服務(wù)器輪詢。
5.根據(jù)權(quán)利要求1所述的設(shè)備,包括移動電話。
6.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述軟件模塊包括經(jīng)紀(jì)人存根。
7.根據(jù)權(quán)利要求1所述的設(shè)備,其中傳輸所述經(jīng)紀(jì)人請求消息包括向經(jīng)紀(jì)人骨架傳輸所述經(jīng)紀(jì)人請求消息。
8.根據(jù)權(quán)利要求2所述的設(shè)備,其中所述服務(wù)器響應(yīng)消息中的一個包括請求輪詢間隔改變的反饋,并且其中所述指令進(jìn)一步包括基于所述反饋調(diào)整所述輪詢間隔。
9.一種方法,包括攔截多個服務(wù)器請求消息,每個服務(wù)器請求消息接收自設(shè)備上執(zhí)行的不同客戶端組件;將所述多個服務(wù)器請求消息復(fù)用成經(jīng)紀(jì)人請求消息;以及傳輸所述經(jīng)紀(jì)人請求消息。
10.根據(jù)權(quán)利要求9所述的方法,進(jìn)一步包括 接收經(jīng)紀(jì)人響應(yīng)消息;去復(fù)用所述經(jīng)紀(jì)人響應(yīng)消息來獲得多個服務(wù)器響應(yīng)消息,每個服務(wù)器響應(yīng)消息對應(yīng)于所述設(shè)備上執(zhí)行的不同客戶端組件;以及將所述多個服務(wù)器響應(yīng)消息中的每個服務(wù)器響應(yīng)消息轉(zhuǎn)發(fā)到其對應(yīng)的客戶端組件。
11.根據(jù)權(quán)利要求9所述的方法,進(jìn)一步包括以預(yù)定間隔重復(fù)所述攔截、復(fù)用、傳輸、接收、去復(fù)用和轉(zhuǎn)發(fā)。
12.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括等待執(zhí)行所述重復(fù)直到針對所述經(jīng)紀(jì)人請求消息的在先連接已經(jīng)完成。
13.根據(jù)權(quán)利要求10所述的方法,其中所述服務(wù)器響應(yīng)消息中的一個包括請求輪詢間隔改變的反饋,并且其中所述方法進(jìn)一步包括基于所述反饋調(diào)整所述輪詢間隔。
14.一個或多個存儲了計(jì)算可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行時通過以下進(jìn)行服務(wù)器輪詢攔截多個服務(wù)器請求消息,每個服務(wù)器請求消息接收自不同的客戶端組件; 將所述多個服務(wù)器請求消息復(fù)用成經(jīng)紀(jì)人請求消息;以及傳輸所述經(jīng)紀(jì)人請求消息。
15.根據(jù)權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),所述指令進(jìn)一步包括 接收經(jīng)紀(jì)人響應(yīng)消息;去復(fù)用所述經(jīng)紀(jì)人響應(yīng)消息來獲得多個服務(wù)器響應(yīng)消息,每個服務(wù)器響應(yīng)消息對應(yīng)于不同的客戶端組件;以及將所述多個服務(wù)器響應(yīng)消息中的每個服務(wù)器響應(yīng)消息轉(zhuǎn)發(fā)到其對應(yīng)的客戶端組件。
16.根據(jù)權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),所述指令進(jìn)一步包括以預(yù)定間隔重復(fù)所述攔截、復(fù)用、傳輸、接收、去復(fù)用和轉(zhuǎn)發(fā)。
17.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包括等待執(zhí)行所述重復(fù)直到針對所述經(jīng)紀(jì)人請求消息的在先連接已經(jīng)完成。
18.根據(jù)權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其中所述軟件模塊包括經(jīng)紀(jì)人存根。
19.根據(jù)權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其中傳輸所述經(jīng)紀(jì)人請求消息包括向經(jīng)紀(jì)人骨架傳輸所述經(jīng)紀(jì)人請求消息。
20.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其中所述服務(wù)器響應(yīng)消息中的一個包括請求輪詢間隔改變的反饋,并且其中所述指令進(jìn)一步包括基于所述反饋調(diào)整所述輪詢間隔。
21.一種方法,包括接收經(jīng)復(fù)用的經(jīng)紀(jì)人請求消息;將所述經(jīng)紀(jì)人請求消息去復(fù)用成多個組件請求消息;轉(zhuǎn)發(fā)每個組件請求消息;接收對應(yīng)于每個組件請求消息的組件響應(yīng)消息;將所述組件響應(yīng)消息復(fù)用成經(jīng)紀(jì)人響應(yīng)消息;以及發(fā)送所述經(jīng)紀(jì)人響應(yīng)消息。
22.根據(jù)權(quán)利要求21所述的方法,其中從移動終端接收所述經(jīng)復(fù)用的經(jīng)紀(jì)人請求消息,并且其中向所述移動終端發(fā)送所述經(jīng)紀(jì)人響應(yīng)消息。
23.根據(jù)權(quán)利要求21所述的方法,其中轉(zhuǎn)發(fā)每個組件請求消息包括將每個組件請求消息轉(zhuǎn)發(fā)到所述組件請求消息中標(biāo)識的服務(wù)器或組件。
24.根據(jù)權(quán)利要求21所述的方法,其中接收對應(yīng)于每個組件請求消息的組件響應(yīng)消息包括從所標(biāo)識的服務(wù)器或組件中的每個接收組件響應(yīng)消息。
25.根據(jù)權(quán)利要求21所述的方法,其中所述組件響應(yīng)消息中的一個包括請求輪詢間隔改變的反饋值。
26.—個或多個存儲了計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令當(dāng)被執(zhí)行時,執(zhí)行接收經(jīng)復(fù)用的經(jīng)紀(jì)人請求消息;將所述經(jīng)紀(jì)人請求消息去復(fù)用成多個組件請求消息;轉(zhuǎn)發(fā)每個組件請求消息; 接收對應(yīng)于每個組件請求消息的組件響應(yīng)消息; 將所述組件響應(yīng)消息復(fù)用成經(jīng)紀(jì)人響應(yīng)消息;以及發(fā)送所述經(jīng)紀(jì)人響應(yīng)消息。
27.根據(jù)權(quán)利要求沈所述的計(jì)算機(jī)可讀介質(zhì),其中從移動終端接收所述經(jīng)復(fù)用的經(jīng)紀(jì)人請求消息,并且其中向所述移動終端發(fā)送所述經(jīng)紀(jì)人響應(yīng)消息。
28.根據(jù)權(quán)利要求沈所述的計(jì)算機(jī)可讀介質(zhì),其中轉(zhuǎn)發(fā)每個組件請求消息包括將每個組件請求消息轉(zhuǎn)發(fā)到所述經(jīng)紀(jì)人請求消息中標(biāo)識的服務(wù)器或組件。
29.根據(jù)權(quán)利要求沈所述的計(jì)算機(jī)可讀介質(zhì),其中接收對應(yīng)于每個組件請求消息的組件響應(yīng)消息包括從所標(biāo)識的服務(wù)器或組件中的每個接收組件響應(yīng)消息。
30.根據(jù)權(quán)利要求沈所述的計(jì)算機(jī)可讀介質(zhì),其中所述組件響應(yīng)消息中的一個包括請求輪詢間隔改變的反饋值。
31.一種設(shè)備,包括處理器,配置用于控制所述設(shè)備的某些操作;以及存儲器,存儲計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令當(dāng)由所述處理器執(zhí)行時,執(zhí)行接收經(jīng)復(fù)用的經(jīng)紀(jì)人請求消息;將所述經(jīng)紀(jì)人請求消息去復(fù)用成多個組件請求消息;轉(zhuǎn)發(fā)每個組件請求消息;接收對應(yīng)于每個組件請求消息的組件響應(yīng)消息;將所述組件響應(yīng)消息復(fù)用成經(jīng)紀(jì)人響應(yīng)消息;以及發(fā)送所述經(jīng)紀(jì)人響應(yīng)消息。
32.根據(jù)權(quán)利要求31所述的設(shè)備,其中從移動終端接收所述經(jīng)復(fù)用的經(jīng)紀(jì)人請求消息,并且其中向所述移動終端發(fā)送所述經(jīng)紀(jì)人響應(yīng)消息。
33.根據(jù)權(quán)利要求31所述的設(shè)備,其中轉(zhuǎn)發(fā)每個組件請求消息包括將每個組件請求消息轉(zhuǎn)發(fā)到所述經(jīng)紀(jì)人請求消息中標(biāo)識的服務(wù)器或組件。
34.根據(jù)權(quán)利要求31所述的設(shè)備,其中接收對應(yīng)于每個組件請求消息的組件響應(yīng)消息包括從所標(biāo)識的服務(wù)器或組件中的每個接收組件響應(yīng)消息。
35.根據(jù)權(quán)利要求31所述的設(shè)備,其中所述組件響應(yīng)消息中的一個包括請求輪詢間隔改變的反饋值。
36.一種設(shè)備,包括處理器,配置用于控制所述設(shè)備的某些操作;以及存儲器,存儲了計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令當(dāng)由所述處理器執(zhí)行時,配置所述設(shè)備通過以下執(zhí)行服務(wù)器輪詢當(dāng)滿足用戶交互準(zhǔn)則時,執(zhí)行客戶端組件來以第一速率輪詢服務(wù)器,其中所述服務(wù)器向所述客戶端組件提供數(shù)據(jù);以及當(dāng)不滿足所述用戶交互準(zhǔn)則時,執(zhí)行所述客戶端組件來以不同于所述第一速率的第二速率輪詢所述服務(wù)器。
37.根據(jù)權(quán)利要求36所述的設(shè)備,其中所述用戶交互準(zhǔn)則包括在所述設(shè)備的顯示器屏幕上顯示客戶端組件。
38.根據(jù)權(quán)利要求36所述的設(shè)備,其中所述用戶交互準(zhǔn)則包括以比在所述設(shè)備上執(zhí)行的第二客戶端組件更高的顯著級在顯示器屏幕上顯示客戶端組件。
39.根據(jù)權(quán)利要求36所述的設(shè)備,其中所述第一速率快于所述第二速率。
40.根據(jù)權(quán)利要求36所述的設(shè)備,包括移動電話。
41.一種方法,包括執(zhí)行客戶端組件;當(dāng)滿足用戶交互準(zhǔn)則時,客戶端組件以第一速率輪詢服務(wù)器,其中所述服務(wù)器向所述客戶端組件提供數(shù)據(jù);以及當(dāng)不滿足所述用戶交互準(zhǔn)則時,所述客戶端組件以不同于所述第一速率的第二速率輪詢所述服務(wù)器。
42.根據(jù)權(quán)利要求41所述的方法,其中所述用戶交互準(zhǔn)則包括在用戶接口上顯示所述客戶端組件。
43.根據(jù)權(quán)利要求41所述的方法,進(jìn)一步包括執(zhí)行第二客戶端組件,并且其中所述用戶交互準(zhǔn)則包括以比第二客戶端組件更高的顯著級在用戶接口上顯示客戶端組件。
44.根據(jù)權(quán)利要求41所述的方法,其中所述第一速率快于所述第二速率。
45.根據(jù)權(quán)利要求41所述的方法,其中執(zhí)行客戶端組件包括在包括移動電話的設(shè)備上執(zhí)行所述客戶端組件。
46.根據(jù)權(quán)利要求42所述的方法,進(jìn)一步包括在所述移動電話的顯示器屏幕上顯示所述用戶接口。
47.一個或多個存儲了計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可讀指令當(dāng)被執(zhí)行時,通過以下執(zhí)行服務(wù)器輪詢當(dāng)滿足用戶交互準(zhǔn)則時,執(zhí)行客戶端組件來以第一速率輪詢服務(wù)器,其中所述服務(wù)器向所述客戶端組件提供數(shù)據(jù);以及當(dāng)不滿足所述用戶交互準(zhǔn)則時,執(zhí)行所述客戶端組件來以不同于所述第一速率的第二速率輪詢所述服務(wù)器。
48.根據(jù)權(quán)利要求47所述的計(jì)算機(jī)可讀介質(zhì),其中所述用戶交互準(zhǔn)則包括在所述設(shè)備的顯示器屏幕上顯示所述客戶端組件。
49.根據(jù)權(quán)利要求47所述的計(jì)算機(jī)可讀介質(zhì),其中所述用戶交互準(zhǔn)則包括以比所述設(shè)備上執(zhí)行的第二客戶端組件更高的顯著級在顯示器屏幕上顯示所述客戶端組件。
50.根據(jù)權(quán)利要求47所述的計(jì)算機(jī)可讀介質(zhì),其中所述第一速率快于所述第二速率。
51.一種設(shè)備,包括處理器,配置用于控制所述設(shè)備的某些操作;以及存儲器,存儲計(jì)算機(jī)可讀指令,當(dāng)所述計(jì)算機(jī)可讀指令由所述處理器執(zhí)行時,配置所述設(shè)備通過以下充當(dāng)服務(wù)器防護(hù)接收注冊消息,所述注冊消息向?qū)?yīng)于客戶端組件的服務(wù)器組件提供服務(wù)器信息;在數(shù)據(jù)庫中注冊所述服務(wù)器信息;根據(jù)預(yù)定的調(diào)度輪詢所述服務(wù)器組件來確定所述服務(wù)器組件是否具有針對所述客戶端組件的新的數(shù)據(jù);以及當(dāng)所述服務(wù)器組件具有針對所述客戶端組件的新的數(shù)據(jù)時,發(fā)送尋址到所述客戶端組件的消息,指示所述服務(wù)器組件具有針對所述客戶端組件的新的數(shù)據(jù)。
52.根據(jù)權(quán)利要求51所述的設(shè)備,其中所述服務(wù)器信息包括通用于所述服務(wù)器組件的不變數(shù)據(jù),并且包括基于所述客戶端組件的變化數(shù)據(jù)。
53.根據(jù)權(quán)利要求51所述的設(shè)備,其中所述服務(wù)器信息僅包括通用于所述服務(wù)器的不變數(shù)據(jù),并且其中所述設(shè)備進(jìn)一步配置用于當(dāng)所述服務(wù)器組件具有針對所述客戶端組件的新的數(shù)據(jù)時,向所述服務(wù)器組件發(fā)送查詢,所述查詢包括所述不變數(shù)據(jù);以及響應(yīng)于所述查詢,在消息中向所述客戶端組件轉(zhuǎn)發(fā)從所述服務(wù)器組件接收的任何數(shù)據(jù)。
54.根據(jù)權(quán)利要求51所述的設(shè)備,其中所述預(yù)定的調(diào)度基于接收自所述客戶端組件的心跳消息。
55.—個或多個存儲了計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可讀指令當(dāng)被執(zhí)行時,執(zhí)行接收注冊消息,所述注冊消息向?qū)?yīng)于客戶端組件的服務(wù)器組件提供服務(wù)器信息; 在數(shù)據(jù)庫中注冊所述服務(wù)器信息;根據(jù)預(yù)定的調(diào)度輪詢所述服務(wù)器組件來確定所述服務(wù)器組件是否具有針對所述客戶端組件的新的數(shù)據(jù);以及當(dāng)所述服務(wù)器組件具有針對所述客戶端組件的新的數(shù)據(jù)時,發(fā)送尋址到所述客戶端組件的消息,指示所述服務(wù)器組件具有針對所述客戶端組件的新的數(shù)據(jù)。
56.根據(jù)權(quán)利要求55所述的計(jì)算機(jī)可讀介質(zhì),其中所述服務(wù)器信息包括通用于所述服務(wù)器組件的不變數(shù)據(jù),并且包括基于所述客戶端組件的變化數(shù)據(jù)。
57.根據(jù)權(quán)利要求55所述的計(jì)算機(jī)可讀介質(zhì),其中所述服務(wù)器信息僅包括通用于所述服務(wù)器的不變數(shù)據(jù),并且其中所述設(shè)備進(jìn)一步配置用于當(dāng)所述服務(wù)器組件具有針對所述客戶端組件的新的數(shù)據(jù)時,向所述服務(wù)器組件發(fā)送查詢,所述查詢包括所述不變數(shù)據(jù);以及響應(yīng)于所述查詢,在消息中向所述客戶端組件轉(zhuǎn)發(fā)從所述服務(wù)器組件接收的任何數(shù)據(jù)。
58.根據(jù)權(quán)利要求55所述的計(jì)算機(jī)可讀介質(zhì),其中所述預(yù)定的調(diào)度基于接收自所述客戶端組件的心跳消息。
59.一種方法,包括接收注冊消息,所述注冊消息向?qū)?yīng)于客戶端組件的服務(wù)器組件提供服務(wù)器信息; 在數(shù)據(jù)庫中注冊所述服務(wù)器信息;根據(jù)預(yù)定的調(diào)度輪詢所述服務(wù)器組件來確定所述服務(wù)器組件是否具有針對所述客戶端組件的新的數(shù)據(jù);以及當(dāng)所述服務(wù)器組件具有針對所述客戶端組件的新的數(shù)據(jù)時,發(fā)送尋址到所述客戶端組件的消息,指示所述服務(wù)器組件具有針對所述客戶端組件的新的數(shù)據(jù)。
60.根據(jù)權(quán)利要求59所述的方法,其中所述服務(wù)器信息包括通用于所述服務(wù)器組件的不變數(shù)據(jù),并且包括基于所述客戶端組件的變化數(shù)據(jù)。
61.根據(jù)權(quán)利要求59所述的方法,其中所述服務(wù)器信息僅包括通用于所述服務(wù)器的不變數(shù)據(jù),并且其中所述設(shè)備進(jìn)一步配置用于當(dāng)所述服務(wù)器組件具有針對所述客戶端組件的新的數(shù)據(jù)時,向所述服務(wù)器組件發(fā)送查詢,所述查詢包括所述不變數(shù)據(jù);以及響應(yīng)于所述查詢,在所述消息中向所述客戶端組件轉(zhuǎn)發(fā)從所述服務(wù)器組件接收的任何數(shù)據(jù)。
62.根據(jù)權(quán)利要求59所述的方法,其中所述預(yù)定的調(diào)度基于接收自所述客戶端組件的心跳消息。
63.一種設(shè)備,包括 處理器;以及存儲器,存儲了計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令當(dāng)由所述處理器執(zhí)行時,配置所述設(shè)備通過以下來輪詢服務(wù)器無線地發(fā)送尋址到服務(wù)器防護(hù)模塊的注冊消息,其中所述注冊消息包括對應(yīng)于向所述設(shè)備上執(zhí)行的客戶端組件提供數(shù)據(jù)的服務(wù)器組件的服務(wù)器信息;根據(jù)預(yù)定的調(diào)度發(fā)送尋址到所述服務(wù)器防護(hù)模塊的多個心跳消息;以及接收對所述心跳消息中一個的響應(yīng),所述響應(yīng)指示所述服務(wù)器組件具有所述設(shè)備尚未接收到的新的數(shù)據(jù)。
64.根據(jù)權(quán)利要求63所述的設(shè)備,其中所述服務(wù)器信息包括通用于所述服務(wù)器組件的不變數(shù)據(jù)和基于所述設(shè)備的變化數(shù)據(jù),以及其中所述設(shè)備進(jìn)一步配置用于通過基于接收的所述響應(yīng)向所述服務(wù)器組件發(fā)送輪詢消息來輪詢所述服務(wù)器組件,所述輪詢消息基于所述不變數(shù)據(jù)和變化數(shù)據(jù)兩者。
65.根據(jù)權(quán)利要求63所述的設(shè)備,其中所述服務(wù)器信息僅包括通用于所述服務(wù)器組件的不變數(shù)據(jù),以及其中從所述服務(wù)器防護(hù)模塊接收的所述響應(yīng)包括響應(yīng)于查詢由所述服務(wù)器組件基于所述服務(wù)器信息提供的數(shù)據(jù)。
66.根據(jù)權(quán)利要求63所述的設(shè)備,其中接收響應(yīng)包括從所述服務(wù)器防護(hù)模塊接收響應(yīng)。
67.一種方法,包括無線地發(fā)送尋址到服務(wù)器防護(hù)模塊的注冊消息,其中所述注冊消息包括對應(yīng)于向所述客戶端組件提供數(shù)據(jù)的服務(wù)器組件的服務(wù)器信息;根據(jù)預(yù)定的調(diào)度發(fā)送尋址到所述服務(wù)器防護(hù)模塊的多個心跳消息;以及接收對所述心跳消息中一個的響應(yīng),所述響應(yīng)指示所述服務(wù)器組件具有所述客戶端尚未接收到的新的數(shù)據(jù)。
68.根據(jù)權(quán)利要求67所述的方法,其中所述服務(wù)器信息包括通用于所述服務(wù)器組件的不變數(shù)據(jù)和基于所述設(shè)備的變化數(shù)據(jù),所述方法進(jìn)一步包括,基于接收的所述響應(yīng),向所述服務(wù)器組件發(fā)送輪詢消息,所述輪詢消息基于所述不變數(shù)據(jù)和變化數(shù)據(jù)兩者。
69.根據(jù)權(quán)利要求67所述的方法,其中所述服務(wù)器信息僅包括通用于所述服務(wù)器組件的不變數(shù)據(jù),以及其中從所述服務(wù)器防護(hù)模塊接收的所述響應(yīng)包括響應(yīng)于查詢由所述服務(wù)器組件基于所述服務(wù)器信息提供的數(shù)據(jù)。
70.根據(jù)權(quán)利要求67所述的方法,其中接收所述響應(yīng)包括從所述服務(wù)器防護(hù)模塊接收所述響應(yīng)。
71.—個或多個存儲了計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令當(dāng)被執(zhí)行時,執(zhí)行無線地發(fā)送尋址到服務(wù)器防護(hù)模塊的注冊消息,其中所述注冊消息包括對應(yīng)于向所述設(shè)備上執(zhí)行的客戶端組件提供數(shù)據(jù)的服務(wù)器組件的服務(wù)器信息;根據(jù)預(yù)定的調(diào)度發(fā)送尋址所述服務(wù)器防護(hù)模塊的多個心跳消息;以及接收對所述心跳消息中一個的響應(yīng),所述響應(yīng)指示所述服務(wù)器組件具有所述設(shè)備尚未接收到的新的數(shù)據(jù)。
72.根據(jù)權(quán)利要求71所述的計(jì)算機(jī)可讀介質(zhì),其中所述服務(wù)器信息包括通用于所述服務(wù)器組件的不變數(shù)據(jù)和基于所述設(shè)備的變化數(shù)據(jù),以及其中所述設(shè)備進(jìn)一步配置用于通過基于接收的所述響應(yīng)向所述服務(wù)器組件發(fā)送輪詢消息來輪詢所述服務(wù)器組件,所述輪詢消息基于所述不變數(shù)據(jù)和變化數(shù)據(jù)兩者。
73.根據(jù)權(quán)利要求71所述的計(jì)算機(jī)可讀介質(zhì),其中所述服務(wù)器信息僅包括通用于所述服務(wù)器組件的不變數(shù)據(jù),以及其中從所述服務(wù)器防護(hù)模塊接收的所述響應(yīng)包括響應(yīng)于查詢由所述服務(wù)器組件基于所述服務(wù)器信息提供的數(shù)據(jù)。
74.根據(jù)權(quán)利要求71所述的計(jì)算機(jī)可讀介質(zhì),其中接收響應(yīng)包括從所述服務(wù)器防護(hù)模塊接收響應(yīng)。
全文摘要
描述了用于優(yōu)化移動客戶端對服務(wù)器輪詢的方法和系統(tǒng),由此允許移動終端通過更高效地使用資源(例如,移動終端中的處理器和收發(fā)器)來保護(hù)電池壽命。經(jīng)紀(jì)人系統(tǒng)可以用于最小化用于輪詢的無線通信流量。經(jīng)紀(jì)人存根在客戶端攔截服務(wù)器輪詢消息,將服務(wù)器請求復(fù)用在一起,并且將該經(jīng)復(fù)用的消息向去復(fù)用該消息并酌情轉(zhuǎn)發(fā)該消息的經(jīng)紀(jì)人骨架轉(zhuǎn)發(fā)。輪詢還可以基于用戶行為動態(tài)調(diào)整,或者服務(wù)器防護(hù)可以用于監(jiān)視數(shù)據(jù)的變化,并且當(dāng)服務(wù)器防護(hù)檢測到服務(wù)器上有針對該客戶端的新的數(shù)據(jù)或更新的數(shù)據(jù)時通知客戶端輪詢其相應(yīng)服務(wù)器。
文檔編號H04L12/56GK102224715SQ200980146848
公開日2011年10月19日 申請日期2009年9月23日 優(yōu)先權(quán)日2008年9月23日
發(fā)明者U·錢德拉, 李杜 申請人:諾基亞公司