現(xiàn)代通信技術(shù)以及因特網(wǎng)與無線網(wǎng)絡(luò)的發(fā)展允許通過各種各樣的設(shè)備諸如計算機、個人數(shù)據(jù)助理、蜂窩電話、智能電話、平板計算機等等給終端用戶供應(yīng)各種服務(wù)。通過這樣的設(shè)備而可利用的服務(wù)的示例包括社交網(wǎng)絡(luò)應(yīng)用、游戲應(yīng)用、旅游服務(wù)、電子郵件、日歷服務(wù)等等。例如,用戶能夠使用這樣的應(yīng)用連接到社交網(wǎng)絡(luò)、回顧新聞、接收旅游信息更新和接收電子郵件等等。這些應(yīng)用也能夠允許用戶接收有關(guān)一個或多個新聞事件的更新、日歷更新以及社交媒體網(wǎng)絡(luò)上新的帖子等等。這樣的應(yīng)用經(jīng)由諸如移動設(shè)備之類的計算系統(tǒng)提供豐富的用戶體驗。一般而言,應(yīng)用服務(wù)器用于給客戶端計算系統(tǒng)提供與應(yīng)用相關(guān)聯(lián)的后端服務(wù)。例如,主辦(host)社交網(wǎng)絡(luò)應(yīng)用的應(yīng)用服務(wù)器可以使得社交網(wǎng)絡(luò)信息服務(wù)于(serve to)在移動設(shè)備上運行的社交網(wǎng)絡(luò)客戶端應(yīng)用。
移動設(shè)備面臨著與電池使用、網(wǎng)絡(luò)成本等等相關(guān)的限制。因此,許多移動平臺嘗試通過最小化使用移動設(shè)備的CPU與其他資源的應(yīng)用的數(shù)量來減少電池使用。此外,為了減少電池的消耗和降低網(wǎng)絡(luò)成本,移動平臺也可以最小化移動設(shè)備與網(wǎng)絡(luò)上的服務(wù)進(jìn)行通信并保持連接至網(wǎng)絡(luò)上的服務(wù)的時間量。
技術(shù)實現(xiàn)要素:
在本文公開的可操作的(actionable)事件通知提供允許應(yīng)用服務(wù)從終端用戶收集信息的可操作的通知。可操作的事件通知包括提供通知服務(wù)的通知服務(wù)器,其從提供應(yīng)用服務(wù)的應(yīng)用服務(wù)器接收通知請求并將通知傳送至用戶,其中這些通知包括定義將經(jīng)由目標(biāo)設(shè)備的用戶界面呈現(xiàn)的通知UI表單(form)的規(guī)范(specification)。目標(biāo)設(shè)備向用戶呈現(xiàn)通知UI表單,以接收用戶響應(yīng)。這些用戶響應(yīng)被反向傳送至通知服務(wù)。通知服務(wù)處理這些用戶響應(yīng)并在必要時將其傳送至應(yīng)用服務(wù)和/或在通知服務(wù)上對其進(jìn)行處理(例如,將其重定向至另一應(yīng)用服務(wù)器或其他目的地)??晒┻x擇地,這些用戶響應(yīng)被直接從客戶端設(shè)備傳送至請求通知的應(yīng)用服務(wù)。在一種實現(xiàn)方式中,通知服務(wù)修改在從應(yīng)用服務(wù)接收的通知請求中提供的回叫識別,將其替換為用于通知服務(wù)的識別。
在一些實現(xiàn)方式中,提供制造的物品作為計算機程序產(chǎn)品。計算機程序產(chǎn)品的一種實現(xiàn)方式提供編碼處理器可執(zhí)行程序的有形的處理器可讀存儲介質(zhì)。在本文也描述和敘述其他的實現(xiàn)方式。
提供這個概述部分來以簡化形式介紹下面在具體描述部分中進(jìn)一步描述的概念的選擇。這個概述部分并不打算用于識別所請求保護(hù)的主題的關(guān)鍵特性或基本特性,也不打算用于限制所請求保護(hù)的主題的范疇。
附圖說明
圖1舉例說明用于在本文公開的可操作的事件通知的示例數(shù)據(jù)源和流。
圖2舉例說明用于在本文公開的可操作的事件通知的通知服務(wù)器的示例架構(gòu)的示例。
圖3舉例說明用于在本文公開的可操作的事件通知的應(yīng)用服務(wù)器的示例架構(gòu)的示例。
圖4舉例說明用于在本文公開的可操作的事件通知的客戶端設(shè)備的示例架構(gòu)的示例。
圖5舉例說明在客戶端設(shè)備上提供的示例可操作的通知。
圖6舉例說明在本文公開的通知服務(wù)器的示例操作。
圖7舉例說明在本文公開的應(yīng)用服務(wù)器的示例操作。
圖8舉例說明在本文公開的客戶端設(shè)備的示例操作。
圖9舉例說明在實現(xiàn)所描述的技術(shù)中可能是有用的示例系統(tǒng)。
圖10舉例說明在實現(xiàn)所描述的技術(shù)中可能是有用的另一示例系統(tǒng)。
具體實施方式
為了遞送信息至運行在客戶端設(shè)備上的應(yīng)用,應(yīng)用服務(wù)器能夠使用將推送通知發(fā)送至客戶端設(shè)備的通知服務(wù)器。例如,在發(fā)送突發(fā)新聞至移動設(shè)備的用于新聞應(yīng)用的應(yīng)用服務(wù)器的場景中,新聞應(yīng)用服務(wù)器將事件通知請求張貼(post)至通知服務(wù)器。通知服務(wù)器可能已使得通信連接向移動設(shè)備開放,或者它可以響應(yīng)于從應(yīng)用服務(wù)器接收的事件通知請求而開放通信連接。通知服務(wù)器使用通信連接將通知遞送至移動設(shè)備。移動設(shè)備的操作系統(tǒng)處理該通知并且經(jīng)由移動設(shè)備的用戶界面向設(shè)備用戶呈現(xiàn)視覺、音頻或視聽通知??晒┻x擇地,移動設(shè)備可以簡單地將該通知遞送至移動應(yīng)用,以便進(jìn)一步處理。應(yīng)該明白:客戶端設(shè)備(例如目標(biāo)設(shè)備)可以是移動或非移動設(shè)備(例如機頂盒、游戲機、臺式計算機等等)。
在各種實現(xiàn)方式中,在本文公開的可操作的事件通知促進(jìn)在客戶端設(shè)備與后端應(yīng)用服務(wù)器之間有效的雙向通信,其中后端應(yīng)用服務(wù)器為在客戶端設(shè)備上運行的各種應(yīng)用提供服務(wù)。例如,可操作的事件通知可以促進(jìn)在主辦社交網(wǎng)絡(luò)應(yīng)用的應(yīng)用服務(wù)器與諸如智能電話之類的運行社交網(wǎng)絡(luò)應(yīng)用的客戶端設(shè)備之間有效的雙向通信。在一種實現(xiàn)方式中,應(yīng)用服務(wù)器可以使用在本文公開的可操作的事件通知來從客戶端設(shè)備獲得反饋而在客戶端設(shè)備上不執(zhí)行客戶端應(yīng)用。例如,可操作的事件通知可以發(fā)送通知用戶界面(UI)表單規(guī)范至移動設(shè)備,并且移動設(shè)備的操作系統(tǒng)可以向用戶呈現(xiàn)利用該規(guī)范所定義的通知UI表單而不調(diào)用任何的移動應(yīng)用或與任何的移動應(yīng)用進(jìn)行通信。
也被稱為“toast(吐司)”的某些通知對于以簡單的不過度擾亂由終端用戶正在進(jìn)行的對于客戶端設(shè)備的使用的即時方式來提醒終端用戶而言是有用的,其中通知導(dǎo)致圖形顯示器在客戶端設(shè)備上彈出部分的圖形用戶界面顯示。在本文所描述的各種示例中,這樣的在通知服務(wù)器和客戶端設(shè)備上的通知系統(tǒng)被擴(kuò)展并被增強,以使得信息能夠從客戶端設(shè)備被傳送至通知服務(wù)器和/或應(yīng)用服務(wù)器。可操作的通知系統(tǒng)使得計算與通信工作負(fù)荷能夠遠(yuǎn)離客戶端設(shè)備而被移動到其他的實體諸如通知服務(wù)器和/或應(yīng)用服務(wù)器上。在一些示例中,客戶端設(shè)備(諸如移動電話、臺式計算機或游戲機)上的操作系統(tǒng)被修改和/或在客戶端設(shè)備上提供通知UI表單處理模塊。從應(yīng)用服務(wù)器供應(yīng)商的角度來看,可操作的通知系統(tǒng)導(dǎo)致更有效地使用其資源和/或更易于為其編寫應(yīng)用軟件的更好的客戶端設(shè)備。對于客戶端設(shè)備的終端用戶來說,可用性也得到改善。例如,通過使用UI表單規(guī)范,有可能確保:可操作的通知的“外觀與感覺(look and feel)”和/或風(fēng)格對于可操作的通知與之相關(guān)聯(lián)的特殊應(yīng)用服務(wù)而言是恰當(dāng)?shù)???刹僮鞯耐ㄖ到y(tǒng)也使得可操作的通知更可用于終端用戶。另外,通過使用可操作的通知,終端用戶具有快速的應(yīng)用服務(wù)的即時控制。當(dāng)在客戶端設(shè)備上的軟件應(yīng)用與應(yīng)用服務(wù)器之間進(jìn)行通信時,可以使用web(網(wǎng)絡(luò))連接,諸如web套接字。這樣的通信信道可能耗費時間來建立,而如果使用可操作的通知服務(wù)的話,通知信道已被建立并且在通知服務(wù)與客戶端設(shè)備之間是可用的。
可操作的事件通知的實現(xiàn)方式給移動設(shè)備用戶提供通知UI表單規(guī)范,以便從用戶收集信息。例如,響應(yīng)于來自新聞應(yīng)用服務(wù)器的通知請求,可操作的事件通知經(jīng)由移動設(shè)備的用戶界面來呈現(xiàn)通知UI表單,以便從用戶收集輸入,其中通知UI表單提示用戶指示是否該用戶有興趣找出更多關(guān)于新聞故事的事情。即,通知UI表單能夠是提示用戶以預(yù)期方式、諸如通過輕叩觸摸屏的區(qū)域、提供文本或語音輸入、捕獲視頻或靜止圖像等等來輸入信息的文本、視覺或可聞和/或圖形元素的任何組合。提供事件通知服務(wù)的事件通知服務(wù)器可以包括或訪問用于各種應(yīng)用服務(wù)器和各種客戶端設(shè)備的通知UI表單規(guī)范的數(shù)據(jù)庫。在這樣的實現(xiàn)方式中,當(dāng)可操作的事件通知從應(yīng)用服務(wù)器接收到通知請求時,事件通知服務(wù)器從通知UI表單規(guī)范的數(shù)據(jù)庫中選擇通知UI表單規(guī)范、將通知UI表單規(guī)范傳送至移動設(shè)備并請求移動設(shè)備操作系統(tǒng)向用戶呈現(xiàn)通知UI表單而不調(diào)用移動應(yīng)用。在可供選擇的實現(xiàn)方式中,可操作的事件通知可以請求移動設(shè)備操作系統(tǒng)分析由用戶經(jīng)由通知UI表單規(guī)范所提供的信息并確定是否調(diào)用移動應(yīng)用來響應(yīng)用戶提供的信息的分析。
圖1舉例說明用于在本文公開的可操作的事件通知100的示例數(shù)據(jù)源和流。使用通知服務(wù)器108,可操作的事件通知100促進(jìn)在各種用戶102和104與各種應(yīng)用服務(wù)器諸如應(yīng)用服務(wù)器106之間和/或在其之中跨越網(wǎng)絡(luò)120的通信。在一個示例中,應(yīng)用服務(wù)器106代表IP上語音(VOIP)服務(wù)器,其使用各種類型的設(shè)備諸如移動電話、智能電話、膝上型計算機、臺式計算機等等給用戶提供VOIP與瞬時消息傳送(IM)服務(wù)(示例“應(yīng)用服務(wù)”)。外部事件源110諸如新聞或RSS提要(feed)(可供選擇的“應(yīng)用服務(wù)”)也可以使用網(wǎng)絡(luò)120諸如因特網(wǎng)與通知服務(wù)器108進(jìn)行通信,以便給終端用戶102和104的裝備提供通知。
用戶102和104可以使用網(wǎng)絡(luò)120與應(yīng)用服務(wù)器106、通知服務(wù)器108連接以及相互連接。例如,用戶102在他或她的智能電話122上安裝能夠用于與用戶104通信的VOIP應(yīng)用。為了啟動與用戶104的通信,用戶102發(fā)送通知請求130至應(yīng)用服務(wù)器106。應(yīng)用服務(wù)器106處理該請求以確定它需要給其發(fā)送通知的目標(biāo)設(shè)備。應(yīng)用服務(wù)器106可以具有存儲各種設(shè)備至用戶的映射的存儲器。因而,應(yīng)用服務(wù)器106可以使用該映射來識別目標(biāo)移動設(shè)備124。在目前情況下,如果用戶102已請求與用戶104的連接,則應(yīng)用服務(wù)器106確定它需要發(fā)送通知至目標(biāo)移動設(shè)備124(例如,以便將傳入消息通知移動設(shè)備124)。
為了節(jié)省電池功率,移動設(shè)備124的操作系統(tǒng)一般嘗試減少在任何時間在移動設(shè)備124上執(zhí)行的客戶端應(yīng)用的數(shù)量。例如,在一種實現(xiàn)方式中,當(dāng)前未被用戶104使用的所有應(yīng)用可以被終止或被暫停,以便節(jié)省電池功率。因而,當(dāng)從用戶102發(fā)送請求時,移動設(shè)備124上的VOIP或IM應(yīng)用可能沒有在運行。此外,為了節(jié)省移動設(shè)備124所使用的通信帶寬,移動設(shè)備124可能不具有與應(yīng)用服務(wù)器106進(jìn)行的任何開放的通信連接。因此,為了發(fā)送通知至設(shè)備124,應(yīng)用服務(wù)器106發(fā)送通知請求132至通知服務(wù)器108。至通知服務(wù)器108的通知請求的另一示例包括來自諸如新聞提要之類的需要發(fā)送新聞更新至用戶104的事件源110的事件通知134。
例如,通知請求132可以包括事件識別內(nèi)容(例如消息、新聞項目等等的簡短子集)、回叫規(guī)范、用戶識別、設(shè)備識別等等。用戶識別和設(shè)備識別二者能夠被視為通知目標(biāo)識別,其代表應(yīng)用服務(wù)器正嘗試將事件通知給其的(一個或多個)目標(biāo)目的地。例如,對于提供社交網(wǎng)絡(luò)服務(wù)的應(yīng)用服務(wù)器106來說,通知請求132可以包括用于查看社交網(wǎng)絡(luò)更新、有關(guān)社交網(wǎng)絡(luò)頁面的更新(諸如新張貼的注釋)以及來自用戶的預(yù)期回叫的規(guī)范(諸如注釋響應(yīng))、喜歡/不喜歡輸入等等的客戶端設(shè)備的識別。此外,回叫規(guī)范也可以將社交網(wǎng)絡(luò)服務(wù)器106指定為來自用戶的任何響應(yīng)的目的地。在一種實現(xiàn)方式中,采用統(tǒng)一資源識別符(URI)、統(tǒng)一資源定位符(URL)等等的形式來提供回叫規(guī)范。
通知服務(wù)器108能夠修改回叫規(guī)范來識別通知服務(wù)器108而非應(yīng)用服務(wù)器106。以這種方式,通知服務(wù)器108能夠管理來自移動設(shè)備124的任何響應(yīng)。通知服務(wù)器108能夠在針對所接收的響應(yīng)的反應(yīng)中執(zhí)行恰當(dāng)?shù)牟僮?,其包括將響?yīng)反向轉(zhuǎn)發(fā)至在原始回叫規(guī)范中識別的應(yīng)用服務(wù)器106。
在一種實現(xiàn)方式中,來自應(yīng)用服務(wù)器106的通知請求132也包括定義將向用戶104呈現(xiàn)的通知UI表單的通知UI表單規(guī)范。可供選擇地,通知服務(wù)器106可以確定與通知相關(guān)聯(lián)的恰當(dāng)?shù)耐ㄖ猆I規(guī)范。在還一可供選擇的實現(xiàn)方式中,通知請求132可以包括在客戶端設(shè)備124上調(diào)用(例如啟動執(zhí)行、帶至前臺)恰當(dāng)應(yīng)用的請求。例如,在應(yīng)用服務(wù)器106是VOIP應(yīng)用服務(wù)器的情況下,通知請求132可以指定在設(shè)備124上調(diào)用VOIP應(yīng)用。
一旦接收到通知請求132,通知服務(wù)器108就確定通知請求132的源、通知請求132的事件識別內(nèi)容以及目標(biāo)設(shè)備。例如,來自VOIP應(yīng)用服務(wù)器的通知請求132指定為通知的預(yù)定目的地的移動設(shè)備(例如,電話號碼)??晒┻x擇地,通知請求132可以僅將一用戶或一組用戶指定為該通知的不太具體的目的地(例如,用戶),在這種情況下,通知服務(wù)器108確定與該用戶或該組用戶相關(guān)聯(lián)的一個或多個目標(biāo)設(shè)備。
通知服務(wù)器108可以包括確定通知136的目的地并將通知136發(fā)送至這樣的設(shè)備的重定向模塊。此外,通知服務(wù)器108也包括通知服務(wù)器108將其與通知136相關(guān)聯(lián)的通知UI表單規(guī)范的數(shù)據(jù)庫。例如,一旦接收到VOIP通知請求132,通知服務(wù)器108就選擇定義請求用戶104指定是否用戶104有興趣在移動設(shè)備124上進(jìn)行VOIP呼叫的通知UI表單的通知UI表單規(guī)范并將所選擇的通知UI表單規(guī)范與通知136相關(guān)聯(lián)。相關(guān)聯(lián)的通知UI表單規(guī)范能夠與通知136一起或否則與通知136相關(guān)聯(lián)被發(fā)送至移動設(shè)備124。
可供選擇地,通知UI表單可以請求用戶104指定用戶希望在其中接收VOIP呼叫的可供選擇的設(shè)備。例如,如果用戶104具有使用移動設(shè)備124和計算機126來接收VOIP呼叫的能力,通知UI表單可以呈現(xiàn)兩個選擇按鈕,而用戶104能夠從這兩個選擇按鈕中選擇期望的目標(biāo)設(shè)備。
移動設(shè)備124可以使用移動設(shè)備124的操作系統(tǒng)來向用戶104呈現(xiàn)通知UI表單而在移動設(shè)備124上不調(diào)用VOIP應(yīng)用。例如,通知UI表單可以收集來自用戶的輸入,諸如“忽略這個呼叫”,并隨后將用戶的“忽略”響應(yīng)發(fā)回至通知服務(wù)器108而在移動設(shè)備124上不調(diào)用VOIP應(yīng)用。在一些其他的示例中,移動設(shè)備124使用設(shè)備124的操作系統(tǒng)來呈現(xiàn)通知UI表單并且也可以調(diào)用VOIP應(yīng)用,而無論是在利用操作系統(tǒng)來處理通知UI表單的同時還是在其之后。例如,所安裝的VOIP應(yīng)用可以完全在前臺被調(diào)用或在后臺被調(diào)用,以允許操作系統(tǒng)和/或通知UI表單從所安裝的應(yīng)用中提取信息。在還一可供選擇的實現(xiàn)方式中,只在移動設(shè)備124的用戶界面中通過通知UI表單從用戶104接收到一個或多個輸入之后才調(diào)用VOIP應(yīng)用。此外,移動設(shè)備124也可以基于有關(guān)用戶104的各種參數(shù)諸如用戶的偏好、位置等等來修訂被呈現(xiàn)給用戶104的通知UI表單。
移動設(shè)備124收集由用戶104通過在移動設(shè)備124的用戶界面中呈現(xiàn)的通知UI表單提供的信息并將UI響應(yīng)140發(fā)送至通知服務(wù)器108。這些收集和發(fā)送操作可以利用移動設(shè)備124(或其他的目標(biāo)設(shè)備)的操作系統(tǒng)來執(zhí)行。因而,例如,在VOIP通知的情況下,移動設(shè)備124收集由用戶104經(jīng)由通知UI表單提供的與是否用戶104想接受VOIP呼叫等等有關(guān)的信息,并將該信息作為UI響應(yīng)140發(fā)送至通知服務(wù)器108。通知服務(wù)器108處理UI響應(yīng)140并針對應(yīng)用服務(wù)器106生成通知響應(yīng)142。例如,如果用戶104已指示在具體的稍后時間上接收VOIP呼叫的期望,則通知服務(wù)器108針對應(yīng)用服務(wù)器106生成包括指定時間的通知響應(yīng)142。
可供選擇地,在處理通知UI表單之后,移動設(shè)備124可以確定在移動設(shè)備124上激活應(yīng)用。因而,響應(yīng)于與VOIP請求相關(guān)的通知UI表單,移動設(shè)備124可以激活VOIP應(yīng)用。隨后,客戶端設(shè)備上的VOIP應(yīng)用直接發(fā)送應(yīng)用響應(yīng)144至應(yīng)用服務(wù)器106。例如,應(yīng)用響應(yīng)144可以包括來自用戶104的VOIP呼叫的接受。應(yīng)用服務(wù)器106處理通知響應(yīng)142和/或應(yīng)用響應(yīng)144并針對用戶102生成用戶響應(yīng)146。
因而,由于在移動設(shè)備124和通知服務(wù)器108之間現(xiàn)有的和正在進(jìn)行的通信連接的有效利用(其作為利用通知服務(wù)器提供給移動設(shè)備的推送通知服務(wù)的結(jié)果而可獲得),可操作的事件通知100促進(jìn)在各種用戶、應(yīng)用服務(wù)器、事件源等等之間的通信。在應(yīng)用服務(wù)器106與移動設(shè)備124之間沒有新的通信信道需要被建立。此外,由于移動設(shè)備124不必在該設(shè)備上調(diào)用應(yīng)用來從用戶104收集信息,所以可操作的事件通知100在客戶端設(shè)備124上節(jié)省電池功率。對于移動設(shè)備124的終端用戶來說,可用性也得到改善。
應(yīng)該明白:每一個應(yīng)用服務(wù)和每一個通知服務(wù)可以通過多個分布式應(yīng)用服務(wù)器和通知服務(wù)器、利用各種各樣的包括負(fù)載平衡、優(yōu)化路由和資源管理的優(yōu)化來管理。應(yīng)用服務(wù)器或通知服務(wù)器可以采用單個服務(wù)器系統(tǒng)或多個分布式服務(wù)器系統(tǒng)的形式。
圖2舉例說明用于在本文公開的可操作的事件通知的通知服務(wù)器200的示例架構(gòu)。通知服務(wù)器200包括被配置成通信地連接至各種應(yīng)用服務(wù)器206的網(wǎng)絡(luò)接口模塊202以及被配置成與各種客戶端設(shè)備208進(jìn)行通信的設(shè)備接口模塊204。應(yīng)該明白:接口模塊202和204可以被集成并且可以與單個網(wǎng)絡(luò)或與不同的網(wǎng)絡(luò)接口。通知服務(wù)器200可以利用至網(wǎng)絡(luò)諸如因特網(wǎng)的高速通信連接在應(yīng)用服務(wù)器上或在專用服務(wù)器上進(jìn)行實現(xiàn)。在一種實現(xiàn)方式中,通知服務(wù)器200具有與客戶端設(shè)備208之中的每一個進(jìn)行的至少一個現(xiàn)有的且正在進(jìn)行的通信連接。通知服務(wù)器200被配置成經(jīng)由現(xiàn)有的且正在進(jìn)行的通信連接(諸如TCP信道)發(fā)送推送通知至設(shè)備208。應(yīng)用服務(wù)器206可以使用高速、高容量二進(jìn)制異步接口等等與通知服務(wù)器200進(jìn)行通信。例如,在一種實現(xiàn)方式中,應(yīng)用服務(wù)器206在安全套接字層(SSL)上使用HTTP POST請求與通知服務(wù)器200進(jìn)行通信。在一些實現(xiàn)方式中,這樣的通信信道可以是雙向的。例如,通知服務(wù)器200可以將在客戶端設(shè)備208上經(jīng)由通知UI表單所收集的某用戶反饋張貼至應(yīng)用服務(wù)器206。
應(yīng)該明白:通知UI表單也可以提供大量豐富的用戶界面活動。例如,應(yīng)用服務(wù)器能夠指定:通知UI表單提供通過用戶界面來中斷用戶并允許用戶將提醒釘至特殊的用戶界面瓷磚(tile)的提醒,將來自提醒的凈荷的一些信息添至用戶的日歷等等。經(jīng)由通過客戶端設(shè)備的用戶界面而呈現(xiàn)的通知UI表單,可以使得其他的動作是可利用的。
通知服務(wù)器200的實現(xiàn)方式也包括鑒別模塊212來鑒別從應(yīng)用服務(wù)器206接收的通知請求以及驗證模塊214來驗證這樣的通知請求。例如,鑒別模塊212對通知請求的源進(jìn)行鑒別,以確保只有合法的通知請求才利用通知服務(wù)器200來處理。在另一種實現(xiàn)方式中,驗證模塊214驗證在通知請求中包括的凈荷或內(nèi)容。在通知請求中包括的示例內(nèi)容可以是針對目標(biāo)用戶的消息、目標(biāo)用戶的識別、將被發(fā)送至目標(biāo)設(shè)備的通知UI表單規(guī)范等等。相應(yīng)地,驗證模塊214能夠驗證通知請求的內(nèi)容,以確保該請求并不包括任何的惡意代碼、病毒等等。
通知服務(wù)器200也包括預(yù)取模塊216,其預(yù)取用于服務(wù)于通知請求的信息。例如,在分析通知請求之后,預(yù)取模塊216從通知UI表單數(shù)據(jù)庫230中取出通知UI表單規(guī)范。通知UI表單規(guī)范定義能夠在目標(biāo)設(shè)備上經(jīng)由用戶界面呈現(xiàn)的通知UI表單。在其他參數(shù)之中,預(yù)取模塊216尤其可以使用通知請求的源、目的地和/或內(nèi)容來確定將用于服務(wù)于該通知請求的通知UI表單規(guī)范。在一種實現(xiàn)方式中,應(yīng)用服務(wù)器206可能已提供將用于服務(wù)于具體類型的通知請求的具體的通知UI表單規(guī)范。因而,通知UI表單數(shù)據(jù)庫230能夠依據(jù)通知請求的源、通知UI表單規(guī)范的目的地、通知請求的類型和/或內(nèi)容等等來存儲這樣的通知UI表單規(guī)范。例如,如果該通知請求對于VOIP消息請求而言來源于VOIP應(yīng)用服務(wù)器,則使用基于VOIP的通知UI表單規(guī)范。另一方面,對于IM消息而言,不同的通知UI表單規(guī)范用于來自IM服務(wù)器的通知請求。在還一種實現(xiàn)方式中,第一VOIP服務(wù)器可以采用收集與接受方的進(jìn)行VOIP呼叫的意愿有關(guān)的信息的通知UI表單,而另一VOIP服務(wù)器可以采用也收集與接受方的在其上面進(jìn)行呼叫的首選設(shè)備有關(guān)的信息的通知UI表單。
在預(yù)取模塊216的另一種實現(xiàn)方式中,諸如圖像、音頻、圖標(biāo)等等之類的通知UI表單的UI組件可以被收集并被準(zhǔn)備(例如,針對目標(biāo)設(shè)備的特殊顯示器進(jìn)行格式化)。這些UI組件可以與在通知服務(wù)器216上利用預(yù)取模塊216所選擇的通知UI表單進(jìn)行組合??晒┻x擇地,某些UI組件可以與通知UI表單相分離地被發(fā)送至目標(biāo)設(shè)備,其中目標(biāo)設(shè)備(例如,在目標(biāo)設(shè)備上的操作系統(tǒng))在目標(biāo)設(shè)備上向用戶呈現(xiàn)通知表單之前將這些UI組件與所接收的通知UI表單進(jìn)行組合。
通知服務(wù)器200也可以包括存儲有關(guān)與各種用戶相關(guān)的通信連接的信息的用戶信道數(shù)據(jù)庫232。在一種實現(xiàn)方式中,信道信息依據(jù)(例如,如利用設(shè)備識別所識別的)客戶端設(shè)備來分類??晒┻x擇地,信道信息依據(jù)用戶識別或另一信道影響因素來分類。例如,用戶信道數(shù)據(jù)庫232包括有關(guān)與關(guān)聯(lián)于具體設(shè)備的每一個VOIP識別、關(guān)聯(lián)于具體用戶的每一個VOIP識別等等相關(guān)的信道的信息。
表單修改模塊218能夠在必要時基于來自通知請求的內(nèi)容、請求源和/或目標(biāo)設(shè)備的識別或其他的參數(shù)來修改通知UI表單規(guī)范。示例修改可以包括而不限于改變通知UI表單以支持特殊類型的目標(biāo)設(shè)備(例如,移動電話相對于游戲機相對于便攜式計算機)、將所接收的通知UI表單的格式從豐富格式簡化為與具有不太復(fù)雜的顯示能力的目標(biāo)設(shè)備相兼容的不太豐富的格式(例如,將豐富的圖形通知UI表單簡化為用于具有有限顯示能力的低端移動電話的純文本UI表單)。表單修改模塊218將修改的UI表單規(guī)范與正在進(jìn)行的針對客戶端設(shè)備208之一的通知相關(guān)聯(lián)。重定向模塊220將該通知與恰當(dāng)?shù)耐ㄖ猆I表單規(guī)范一起重定向至客戶端設(shè)備208之一。
圖3舉例說明用于在本文公開的可操作的事件通知的應(yīng)用服務(wù)器300的示例架構(gòu)。應(yīng)用服務(wù)器300包括與通知服務(wù)器306進(jìn)行通信的通知服務(wù)器接口302以及與各種客戶端設(shè)備308進(jìn)行通信的用戶接口304。推送通知模塊310生成將從應(yīng)用服務(wù)器300發(fā)送至通知服務(wù)器306的推送通知請求。例如,如果客戶端設(shè)備308經(jīng)由提供IM服務(wù)的應(yīng)用服務(wù)器300請求至另一設(shè)備的IM連接,則推送通知模塊319生成用于發(fā)送通知至其他設(shè)備的通知請求。在這樣的情況下,通知服務(wù)器接口302將通知請求傳送至通知服務(wù)器306,以便發(fā)送IM請求至目標(biāo)設(shè)備。推送通知模塊310也可以生成回叫URL,其中回叫URL與利用應(yīng)用服務(wù)器300發(fā)送至通知服務(wù)器306的通知請求一起被包括。這樣的回叫URL可以指定:針對該通知的客戶端設(shè)備響應(yīng)可以被發(fā)回至應(yīng)用服務(wù)器300或至某一其他目的地。在一些實現(xiàn)方式中,通知服務(wù)器306可以修改回叫URL,以致客戶端設(shè)備將響應(yīng)發(fā)回至通知服務(wù)器306而非利用應(yīng)用服務(wù)器300所指定的原始回叫URL。
應(yīng)用服務(wù)器300也包括在應(yīng)用服務(wù)器300上注冊用戶的設(shè)備308的用戶注冊模塊324。例如,用戶注冊可以包括用戶賬戶信息、用戶識別、口令等等。因而,對于提供IM服務(wù)的應(yīng)用服務(wù)器300來說,用戶注冊模塊324可以包括有關(guān)與用戶相關(guān)的客戶端設(shè)備的識別的信息,諸如移動設(shè)備的電話號碼、計算機識別、電子郵件地址等等。事件-用戶映射模塊326存儲事件至各種用戶的映射。對于提供新聞服務(wù)的應(yīng)用服務(wù)器300來說,事件-用戶映射模塊326存儲有關(guān)哪些新聞事件應(yīng)被提供給特殊用戶等等的信息。例如,第一用戶可能有興趣獲得與體育賽事相關(guān)的更新,而第二用戶可能有興趣獲得與政治事件相關(guān)的更新等等。在這樣的情況下,事件-用戶映射模塊326將體育賽事更新的源映射至第一用戶并將政治事件更新的源映射至第二用戶。類似地,對于提供VOIP服務(wù)的應(yīng)用服務(wù)器300來說,事件-用戶映射模塊326將來自主叫用戶的VOIP請求映射至目標(biāo)用戶。
利用通知UI表單所收集的并利用通知服務(wù)器306或應(yīng)用服務(wù)器300所處理的用戶響應(yīng)的其他示例可以包括但不限于用戶是接受還是拒絕VOIP呼叫、是否用戶“喜歡”所接收的內(nèi)容、被反向張貼至社交媒體網(wǎng)絡(luò)的響應(yīng)消息等等。
表單構(gòu)造和修改模塊328構(gòu)造和/或修改定義用于經(jīng)由客戶端設(shè)備308之一的用戶界面將事件傳送至用戶的通知UI表單的通知UI表單規(guī)范。例如,對于與VOIP請求相關(guān)的事件來說,表單構(gòu)造和修改模塊328構(gòu)造或修改定義請求目標(biāo)用戶指定他或她的進(jìn)行VOIP呼叫的意愿的通知UI表單的通知UI表單規(guī)范。表單構(gòu)造和修改模塊328可以使用存儲在通知UI表單數(shù)據(jù)庫332中的通知UI表單規(guī)范并酌情修改這樣的UI表單規(guī)范。應(yīng)用服務(wù)器300也包括客戶端設(shè)備信息數(shù)據(jù)庫334,其包括有關(guān)客戶端設(shè)備308的信息,諸如客戶端設(shè)備的制造和模型等等。表單構(gòu)造和修改模塊328也可以使用客戶端設(shè)備信息數(shù)據(jù)庫334中的信息來修改從通知UI表單數(shù)據(jù)庫332中選擇的通知UI表單規(guī)范。例如,如果通知UI表單規(guī)范被構(gòu)造用于在具有Flash播放器能力的設(shè)備上的呈現(xiàn)而客戶端設(shè)備并不具有Flash播放器能力,則表單構(gòu)造和修改模塊328能夠相應(yīng)地修改這樣的通知UI表單規(guī)范。
應(yīng)用服務(wù)器300也包括回叫接收模塊312,其被配置成接收從通知服務(wù)器306或客戶端設(shè)備308接收的回叫?;亟薪邮漳K312將接收的回叫傳送至處理來自通知服務(wù)器306的回叫的回叫處理模塊330。例如,處理回叫可以牽涉:處理由用戶提供的信息以響應(yīng)被呈現(xiàn)給用戶的通知UI表單,構(gòu)造響應(yīng)消息,開放另一通信等等。例如,對于提供VOIP服務(wù)的應(yīng)用服務(wù)器300來說,如果來自通知服務(wù)器306的回叫指定用戶想在可供選擇的設(shè)備上接收VOIP呼叫,則回叫處理模塊330能夠生成將被發(fā)送至可供選擇的設(shè)備的VOIP請求。
圖4舉例說明用于在本文公開的可操作的事件通知的客戶端設(shè)備400的示例架構(gòu)。例如,客戶端設(shè)備400可以是移動電話、膝上型計算機、游戲機、機頂盒、智能電話等等??蛻舳嗽O(shè)備400包括與通知服務(wù)器406進(jìn)行通信的通知服務(wù)器接口402以及與各種應(yīng)用服務(wù)器408進(jìn)行通信的應(yīng)用服務(wù)器接口。通知服務(wù)器接口402可以從通知服務(wù)器406接收推送通知,其中推送通知可以包括定義將被呈現(xiàn)給用戶的通知UI表單的通知UI表單規(guī)范。通知處理模塊410處理在該通知中接收的信息。例如,通知處理模塊410可以分析通知,以便在客戶端設(shè)備400上確定目的地模塊來接收該通知中的內(nèi)容。因而,如果該通知請求在客戶端設(shè)備400上調(diào)用應(yīng)用,則通知處理模塊410從應(yīng)用數(shù)據(jù)庫432中調(diào)用應(yīng)用。應(yīng)用數(shù)據(jù)庫432可以包括被配置成在客戶端設(shè)備400上執(zhí)行的各種應(yīng)用的可執(zhí)行文件。在一些實現(xiàn)方式中,回傳(postback)模塊412可以諸如通過在將其返回至服務(wù)器之前將本地數(shù)據(jù)打包、壓縮本地數(shù)據(jù)和/或?qū)ζ浜灻麃頊?zhǔn)備針對恰當(dāng)服務(wù)器的響應(yīng)。
在各種示例中,客戶端設(shè)備的操作系統(tǒng)430被增強,以啟用可操作的通知。如果該通知命令客戶端設(shè)備400向用戶呈現(xiàn)通知UI表單而不調(diào)用應(yīng)用,則操作系統(tǒng)430通過呈現(xiàn)利用與該通知相關(guān)聯(lián)接收的通知UI表單規(guī)范所定義的通知UI表單來處理該通知。對于包括通知UI表單規(guī)范或者與通知UI表單規(guī)范相關(guān)聯(lián)的通知來說,操作系統(tǒng)430使用通知UI表單處理模塊428來處理通知UI表單規(guī)范并向用戶呈現(xiàn)通知UI表單。輸入/輸出模塊426使用諸如觸摸屏之類的設(shè)備輸出資源在客戶端設(shè)備400上呈現(xiàn)通知UI表單并且使用諸如鍵盤之類的輸入從用戶接收輸入。內(nèi)容接收模塊424從用戶信息數(shù)據(jù)庫434接收內(nèi)容,以便由輸入/輸出模塊426使用。因而,呈現(xiàn)給用戶的通知UI表單可以利用存儲在用戶信息數(shù)據(jù)庫424上的各種默認(rèn)的或其他的用戶信息來填充。
通知UI表單處理模塊428收集由用戶響應(yīng)于通知UI表單所提供的信息并確定是從應(yīng)用數(shù)據(jù)庫432中調(diào)用應(yīng)用還是將回傳通知返回至通知服務(wù)器406。示例用戶輸入并不限于鍵盤輸入而可以包括但不限于語音響應(yīng)、利用移動照相機或其他輸入設(shè)備所捕獲的靜止或視頻圖像數(shù)據(jù)等等?;貍髂K412生成通過通知服務(wù)器接口402被傳送至通知服務(wù)器406的回傳通知。
在各種實現(xiàn)方式中,內(nèi)容接收模塊424、輸入/輸出模塊426和通知UI表單處理模塊428之中的任何一個或多個可以整體或部分與操作系統(tǒng)430一起構(gòu)成一個整體。
在示例中,移動通信設(shè)備或其他的目標(biāo)設(shè)備包括被安排成從該設(shè)備與之進(jìn)行實質(zhì)上持續(xù)不斷的通信的通知服務(wù)器接收通知消息的操作系統(tǒng);操作系統(tǒng)被安排成解析所接收的通知消息中的通知UI表單規(guī)范、使用UI表單規(guī)范來在移動通信設(shè)備的顯示器上顯示UI表單、接收用戶輸入以響應(yīng)所顯示的UI表單以及基于所接收的用戶輸入與通知服務(wù)器和應(yīng)用服務(wù)器之中的任何一個進(jìn)行通信。
圖5舉例說明在客戶端設(shè)備502上響應(yīng)于通知而提供的通知UI表單500中所呈現(xiàn)的示例可操作的通知。通知UI表單500可以被提供給用戶以響應(yīng)自應(yīng)用服務(wù)器504至通知服務(wù)器506的通知請求。通知UI表單500利用客戶端設(shè)備502的操作系統(tǒng)來處理和呈現(xiàn)并且可以包括文本通知510,其包括在客戶端設(shè)備502上顯示的通知的內(nèi)容。作為示例,舉例說明的通知UI表單500也包括可以識別啟動該通知的應(yīng)用服務(wù)器的圖片/標(biāo)志512。
在一種實現(xiàn)方式中,應(yīng)用服務(wù)器504可以是向用戶發(fā)送有關(guān)對于VOIP會話的請求的通知的VOIP服務(wù)。在這種情況下,文本通知510通知用戶:另一用戶已請求與設(shè)備502的用戶進(jìn)行的VOIP會話。文本通知510可以包括有關(guān)請求VOIP會話的用戶的信息以及識別VOIP會話的其他信息。圖片/標(biāo)志512可以識別VOIP應(yīng)用服務(wù)器。通知UI表單500也包括能夠由用戶用于輸入他或她的注釋的注釋字段520。其他示例UI組件可以包括視頻和/或音頻剪輯、語音消息、靜止圖像、化身(avatar)、圖標(biāo)等等。
通知UI表單500的輸入字段530提供用戶能夠選擇來提交選定(choice)(例如,將通知重定向至的另一目標(biāo)設(shè)備的選定)的許多輸入選定532、534和536。例如,對于與VOIP服務(wù)通知相關(guān)的通知UI表單500來說,輸入字段530包括與用戶希望用于VOIP會話的設(shè)備相關(guān)的輸入選定。在一種實現(xiàn)方式中,輸入字段523-536的選擇以有關(guān)對于通知服務(wù)器506而言是已知的用戶的信息為基礎(chǔ)。因而,如果通知服務(wù)器506基于過去使用而可能知道那個(用戶)的話,則用戶在臺式機、平板計算機和智能電話之中的每一個上安裝VOIP應(yīng)用。因此,通知UI表單500呈現(xiàn)對于這三個設(shè)備的輸入選定。在可供選擇的實現(xiàn)方式中,輸入字段530也可以是下拉列表或輸入字段,其中用戶能夠手動提供所請求的信息。示例用戶輸入不限于鍵盤輸入,而可以也包括但不限于語音響應(yīng)、利用移動照相機或其他輸入設(shè)備所捕獲的靜止或視頻圖像數(shù)據(jù)等等。
另外,其他的通知UI表單可以收集其他的用戶輸入,諸如是否接受VOIP呼叫、是否客戶端“喜歡”所接收的內(nèi)容等等。通知UI表單類型能夠隨著目標(biāo)設(shè)備、隨著目的地用戶、隨著應(yīng)用服務(wù)的類型等等而變化。
提交按鈕540允許用戶保存和提交使用通知UI表單500所提供的信息。在一種實現(xiàn)方式中,通知UI表單500中的信息在設(shè)備502上不被處理而被發(fā)送至通知服務(wù)器506,以便進(jìn)一步處理??晒┻x擇地,設(shè)備502的操作系統(tǒng)可以處理通知UI表單500中的信息,以便在設(shè)備級上作出一個或多個決定。例如,設(shè)備502的操作系統(tǒng)可以在設(shè)備502上調(diào)用應(yīng)用,以響應(yīng)從用戶接收的輸入。通知服務(wù)器506處理從通知UI表單500中收集的信息并在必要時與應(yīng)用服務(wù)器504進(jìn)行通信。
圖6舉例說明在本文公開的通知服務(wù)器的示例操作600。接收操作602從應(yīng)用服務(wù)器諸如VOIP服務(wù)、IM服務(wù)等等接收通知請求。例如,接收操作602通過安全套接字層(SSL)從應(yīng)用服務(wù)接收通知請求。通知請求可以包括針對目標(biāo)用戶或目標(biāo)設(shè)備的消息、目標(biāo)用戶或目標(biāo)設(shè)備的識別、將被發(fā)送至目標(biāo)用戶或目標(biāo)設(shè)備的通知UI表單等等。鑒別操作604鑒別通知請求,以確保:從鑒別的應(yīng)用服務(wù)中接收該通知請求。驗證操作606對該通知請求進(jìn)行驗證,以確保:在從應(yīng)用服務(wù)器接收的通知請求中沒有惡意代碼。
分析操作608分析通知請求,以確定將響應(yīng)于該通知請求而采取的各種操作。例如,分析操作可以確定目標(biāo)用戶的身份、由目標(biāo)用戶使用的設(shè)備、用于與目標(biāo)用戶進(jìn)行通信的通信連接、由目標(biāo)用戶使用的設(shè)備的能力等等。
確定操作610確定和/或修改與通知請求相關(guān)的通知UI表單規(guī)范。例如,確定操作610可以在通知服務(wù)器上從通知UI表單數(shù)據(jù)庫中選擇通知UI表單規(guī)范??晒┻x擇地,來自應(yīng)用服務(wù)器的通知請求可以包括通知UI表單規(guī)范。確定操作610也可以基于與接收該通知的用戶、用于顯示該通知的客戶端設(shè)備等等相關(guān)的各種參數(shù)來修改所選擇的與通知請求相關(guān)聯(lián)的通知UI表單規(guī)范。一些示例可以包括客戶端設(shè)備的視覺形狀因子(例如,可利用的屏幕區(qū)域(real estate))、客戶端設(shè)備的硬件性能能力、可利用的通信帶寬、網(wǎng)絡(luò)可靠性等等。例如,確定操作610能夠基于由接收通知的用戶所使用的設(shè)備的類型來改變將顯示在通知UI表單中的一個或多個控制、輸入框等等。因而,如果客戶端設(shè)備不包括彩色顯示器,則能夠?qū)⑼ㄖ猆I表單修改成以灰度級進(jìn)行顯示。可供選擇地,確定操作610基于用于與客戶端設(shè)備進(jìn)行通信的信道的帶寬來改變用于通知UI表單的規(guī)范,其中較高分辨率通知UI表單用于較高帶寬信道,而較低分辨率通知UI表單用于較低帶寬信道。
修改操作612可以修改通知請求中的一個或多個回叫規(guī)范。因而,如果用于VOIP服務(wù)的應(yīng)用服務(wù)器已利用將VOIP服務(wù)指定為回叫目的地的回叫規(guī)范將通知發(fā)送至通知服務(wù)器,則修改操作612能夠修改這樣的回叫規(guī)范,以便將通知服務(wù)器指定為回叫目的地。例如,修改操作612可以修改回叫規(guī)范,以致回叫目的地是識別通知服務(wù)器的URL/URI。
發(fā)送操作614發(fā)送通知至目標(biāo)設(shè)備?;谠谕ㄖ埱笾刑峁┑男畔?、有關(guān)在通知服務(wù)器上存儲的用戶的信息等等來選擇目標(biāo)設(shè)備。在一種實現(xiàn)方式中,通知服務(wù)器具有存儲有關(guān)用于各種客戶端設(shè)備的通信連接的信息的存儲器。發(fā)送操作614選擇這樣的連接之一并通過所選擇的連接將通知發(fā)送至客戶端設(shè)備。
接收操作616從客戶端設(shè)備接收用戶響應(yīng)。例如,接收操作616接收針對有關(guān)被發(fā)送至客戶端設(shè)備的VOIP會話請求的通知的用戶響應(yīng)。在一種實現(xiàn)方式中,用戶響應(yīng)包括由用戶通過連同通知一起被呈現(xiàn)給用戶的通知UI表單所提供的信息。在其中通知包括VOIP會話請求的示例中,用戶響應(yīng)可以包括用戶的參與VOIP會話的意愿、用于參與VOIP會話的可供選擇的設(shè)備的識別、由用戶針對VOIP會話所建議的可供選擇的時間等等。
處理操作618處理用戶響應(yīng)來確定恰當(dāng)?shù)膭幼?。例如,基于用戶響?yīng)的內(nèi)容,處理操作616可以形成應(yīng)被發(fā)送至始發(fā)了該通知請求的應(yīng)用服務(wù)器的通知響應(yīng)。發(fā)送操作620將通知響應(yīng)發(fā)送至應(yīng)用服務(wù)器。
圖7舉例說明在本文公開的應(yīng)用服務(wù)器的示例操作700。分析操作702分析利用應(yīng)用服務(wù)或相關(guān)服務(wù)所確定的事件。例如,如果應(yīng)用服務(wù)器提供社交網(wǎng)絡(luò)應(yīng)用服務(wù),則分析操作702可以分析由用戶在社交網(wǎng)站上發(fā)出的帖子。確定操作704確定是否應(yīng)用服務(wù)器需要發(fā)送通知至用戶以響應(yīng)該事件。如果確定將要發(fā)送通知,則另一確定操作706確定是否通知UI表單規(guī)范將與該通知相關(guān)聯(lián)。如果指示通知UI表單規(guī)范,則選擇操作708在應(yīng)用服務(wù)器上從通知UI表單數(shù)據(jù)庫中選擇通知UI表單規(guī)范并將該通知UI表單規(guī)范與將被發(fā)送至目標(biāo)設(shè)備的通知相關(guān)聯(lián)。
發(fā)送操作710利用或不利用通知UI表單規(guī)范將通知請求發(fā)送至通知服務(wù)器。通知請求也可以包括其他的內(nèi)容,諸如用戶的識別、將顯示給用戶的內(nèi)容、客戶端設(shè)備識別等等。接收操作712從通知服務(wù)器接收通知響應(yīng)。通知響應(yīng)可以包括由用戶經(jīng)由在客戶端設(shè)備上顯示的通知UI表單所提供的信息。確定操作714處理該通知響應(yīng)來確定是否通信連接需要被開放來直接與客戶端設(shè)備進(jìn)行通信。如果是這樣的話,則通信操作716開放通信連接用于直接與客戶端設(shè)備進(jìn)行通信。
圖8舉例說明在本文公開的客戶端設(shè)備的示例操作800。在一種實現(xiàn)方式中,這些操作800由客戶端設(shè)備的操作系統(tǒng)來執(zhí)行而在客戶端設(shè)備上不調(diào)用相關(guān)的應(yīng)用??晒┻x擇地,客戶端設(shè)備的操作系統(tǒng)可以在客戶端設(shè)備上調(diào)用應(yīng)用,其中該應(yīng)用執(zhí)行這些操作800之中的一些操作。
(例如,客戶端設(shè)備操作系統(tǒng)的或在客戶端設(shè)備上的應(yīng)用的)接收操作802從通知服務(wù)器接收通知。例如,該通知可以包括將被顯示給用戶的內(nèi)容、被呈現(xiàn)給用戶的通知UI表單等等。該通知與安裝在客戶端設(shè)備上的應(yīng)用相關(guān)聯(lián)。該通知也可以與特殊設(shè)備、特殊用戶或客戶端設(shè)備上的特殊硬件或軟件組件相關(guān)聯(lián)。鑒別和驗證操作804鑒別和/或驗證該通知,以查明該通知的源、該通知的內(nèi)容等等。(例如,客戶端設(shè)備操作系統(tǒng)的或在客戶端設(shè)備上的應(yīng)用的)處理操作806處理該通知。這樣的處理可以包括確定該通知所涉及的客戶端設(shè)備上的應(yīng)用、確定與該通知相關(guān)聯(lián)的任何的通知UI表單規(guī)范、確定能夠用于更新通知UI表單規(guī)范的任何默認(rèn)內(nèi)容等等。例如,如果該通知與社交網(wǎng)絡(luò)應(yīng)用相關(guān)并包括通知UI表單規(guī)范,其中通知UI表單規(guī)范包括用于“喜歡”、“不喜歡”等等的輸入字段,則處理操作806可以選擇恰當(dāng)?shù)膱D標(biāo)來呈現(xiàn)這樣的輸入字段。
(例如,客戶端設(shè)備操作系統(tǒng)的或在客戶端設(shè)備上的應(yīng)用的)呈現(xiàn)操作808在客戶端設(shè)備上呈現(xiàn)通知UI表單。通知UI表單的示例包括針對用戶的消息、識別應(yīng)用的標(biāo)志、用于來自用戶的自由形式內(nèi)容的輸入字段、給用戶提供各種選項的輸入字段、采用下拉列表的形式的輸入字段、提交選項等等。(例如,客戶端設(shè)備操作系統(tǒng)的或在客戶端設(shè)備上的應(yīng)用的)接收操作810經(jīng)由通知UI表單來接收用戶輸入。確定操作812處理這些用戶輸入,以確定是否將在客戶端設(shè)備上開放應(yīng)用。如果是這樣的話,(例如,客戶端設(shè)備操作系統(tǒng)的或在客戶端設(shè)備上的應(yīng)用的)操作814開放應(yīng)用并發(fā)送內(nèi)容至該應(yīng)用,其中發(fā)送至該應(yīng)用的內(nèi)容包括與該通知一起接收的內(nèi)容、通過通知UI表單接收的內(nèi)容等等。(例如,客戶端設(shè)備操作系統(tǒng)的或在客戶端設(shè)備上的應(yīng)用的)發(fā)送操作816形成響應(yīng)并將響應(yīng)發(fā)送至通知服務(wù)器。
圖9舉例說明在實現(xiàn)所描述的技術(shù)中可能是有用的示例系統(tǒng)。用于實現(xiàn)所描述的技術(shù)的圖9的示例硬件和操作環(huán)境包括計算設(shè)備,諸如采用游戲機或計算機20的形式的通用計算設(shè)備、移動電話、個人數(shù)據(jù)助理(PDA)、機頂盒或其他類型的計算設(shè)備。在圖9的實現(xiàn)方式中,例如,計算機20包括處理單元21、系統(tǒng)存儲器22以及操作地將包括系統(tǒng)存儲器的各種系統(tǒng)組件耦合至處理單元21的系統(tǒng)總線23??梢詢H僅具有一個處理單元21或可以具有一個以上的處理單元21,以致計算機20的處理器包括單個中央處理單元(CPU)或多個處理單元,其通常被稱為并行處理環(huán)境。計算機20可以是常規(guī)計算機、分布式計算機或任何其他類型的計算機;本發(fā)明并不如此進(jìn)行限制。
系統(tǒng)總線23可以是包括存儲器總線或存儲器控制器、外圍總線、交換結(jié)構(gòu)、點到點連接以及使用各種各樣總線架構(gòu)之中的任何一種的本地總線的若干類型的總線結(jié)構(gòu)之中的任何一種。系統(tǒng)存儲器也可以被簡稱為存儲器,并且包括只讀存儲器(ROM)24和隨機存取存儲器(RAM)25。在ROM 24中存儲基本輸入/輸出系統(tǒng)(BIOS)26,其包含有助于諸如在啟動期間在計算機20內(nèi)的部件之間傳遞信息的基本例程。計算機20進(jìn)一步包括用于從硬盤(未顯示)讀取和寫至硬盤的硬盤驅(qū)動器27、用于從可移除磁盤29讀取或?qū)懼量梢瞥疟P29的磁盤驅(qū)動器28以及用于從可移除光盤31諸如CD ROM、DVD或其他光學(xué)媒體讀取或?qū)懼量梢瞥獗P31的光盤驅(qū)動器30。
硬盤驅(qū)動器27、磁盤驅(qū)動器28以及光盤驅(qū)動器30分別利用硬盤驅(qū)動接口32、磁盤驅(qū)動接口33以及光盤驅(qū)動接口34被連接至系統(tǒng)總線23。這些驅(qū)動器及其相關(guān)聯(lián)的計算機可讀媒體為計算機20提供計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的非易失性存儲。本領(lǐng)域技術(shù)人員應(yīng)該意識到:在示例操作環(huán)境中可以使用能夠存儲利用計算機可訪問的數(shù)據(jù)的任何類型的計算機可讀媒體,諸如磁帶、閃存卡、數(shù)字視頻盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等。
許多程序模塊可以被存儲在硬盤、磁盤29、光盤31、ROM 24或RAM 25上,其包括操作系統(tǒng)35、一個或多個應(yīng)用程序36、其他程序模塊37以及程序數(shù)據(jù)38。用戶可以通過諸如鍵盤40和指向設(shè)備42之類的輸入設(shè)備將命令和信息輸入至個人計算機20。其他的輸入設(shè)備(未顯示)可以包括麥克風(fēng)、操縱桿、游戲墊、衛(wèi)星天線、掃描儀等等。這些和其他的輸入設(shè)備時常通過被耦合至系統(tǒng)總線的串行端口接口46被連接至處理單元21,但是可以利用其他接口諸如并行端口、游戲端口或通用串行總線(USB)進(jìn)行連接。監(jiān)視器47或其他類型的顯示設(shè)備也經(jīng)由接口諸如視頻適配器48被連接至系統(tǒng)總線23。除了監(jiān)視器之外,計算機典型地還包括其他的外圍輸出設(shè)備(未顯示),諸如揚聲器和打印機。
計算機20可以使用至一個或多個遠(yuǎn)程計算機諸如遠(yuǎn)程計算機49的邏輯連接而操作在連網(wǎng)環(huán)境中。這些邏輯連接利用耦合至計算機20的一部分的通信設(shè)備或計算機20的一部分來實現(xiàn);本發(fā)明并不限于特殊類型的通信設(shè)備。遠(yuǎn)程計算機49可以是另一計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、客戶端、對等設(shè)備或其他的常見網(wǎng)絡(luò)節(jié)點,并且典型地包括上面相對于計算機20所描述的部件之中的許多或所有部件,盡管在圖9中僅舉例說明了記憶存儲設(shè)備50。圖9中所描繪的邏輯連接包括局域網(wǎng)(LAN)51和廣域網(wǎng)(WAN)52。這樣的連網(wǎng)環(huán)境在為所有類型的網(wǎng)絡(luò)的辦公網(wǎng)絡(luò)、企業(yè)級計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的事。
當(dāng)被使用在LAN連網(wǎng)環(huán)境中時,計算機20通過網(wǎng)絡(luò)接口或適配器53被連接至本地網(wǎng)絡(luò)51,其是一種類型的通信設(shè)備。當(dāng)被使用在WAN連網(wǎng)環(huán)境中時,計算機20典型地包括調(diào)制解調(diào)器54、網(wǎng)絡(luò)適配器、某種類型的通信設(shè)備或任何其他類型的通信設(shè)備,用于通過廣域網(wǎng)52建立通信??梢允莾?nèi)部的或外部的調(diào)制解調(diào)器54經(jīng)由串行端口接口46被連接至系統(tǒng)總線23。在連網(wǎng)環(huán)境中,相對于個人計算機20所描繪的程序引擎或其部分可以被存儲在遠(yuǎn)程記憶存儲設(shè)備中。意識到:所示的網(wǎng)絡(luò)連接是示例,并且可以使用用于在計算機之間建立通信鏈路的其他裝置和通信設(shè)備。
在示例實現(xiàn)方式中,通知服務(wù)器、各種應(yīng)用服務(wù)器以及其他的引擎和服務(wù)可以利用存儲在存儲器22和/或存儲設(shè)備29或31中并利用處理單元21來處理的指令來體現(xiàn)。用戶簡檔、用戶請求、有關(guān)用戶的社交網(wǎng)絡(luò)的信息以及其他數(shù)據(jù)可以被存儲在存儲器22和/或作為永久性數(shù)據(jù)儲存器的存儲設(shè)備29或31中。進(jìn)一步,通知服務(wù)器代表被配置成為網(wǎng)絡(luò)連接的系統(tǒng)提供服務(wù)功能的硬件和/或軟件。這樣的服務(wù)可以使用通用計算機和專業(yè)軟件(諸如執(zhí)行服務(wù)軟件的服務(wù)器)、專用計算系統(tǒng)和專業(yè)軟件(諸如執(zhí)行服務(wù)軟件的移動設(shè)備或網(wǎng)絡(luò)器具)或其他的計算配置來實現(xiàn)。
術(shù)語“模塊”、“程序”、“服務(wù)”和“引擎”可以用于描述被實現(xiàn)來執(zhí)行一個或多個特殊功能的計算系統(tǒng)20的方面。在一些情況中,這樣的模塊、程序、服務(wù)或引擎可以經(jīng)由執(zhí)行利用系統(tǒng)存儲器22保持的指令的處理單元21來實例化。將明白:不同的模塊、程序和/或引擎可以根據(jù)相同的應(yīng)用、服務(wù)、代碼塊、對象、庫、例程、API、函數(shù)等等進(jìn)行實例化。同樣,相同的模塊、程序和/或引擎可以利用不同的應(yīng)用、服務(wù)、代碼塊、對象、例程、API、函數(shù)等等進(jìn)行實例化。術(shù)語“模塊”、“程序”和“引擎”旨在涵蓋個別的或成組的可執(zhí)行文件、數(shù)據(jù)文件、庫、驅(qū)動器、腳本、數(shù)據(jù)庫記錄等等。
圖10舉例說明在實現(xiàn)所描述的技術(shù)中可能是有用的另一示例系統(tǒng)(被標(biāo)記為移動設(shè)備1000)。移動設(shè)備1000包括處理器1002、存儲器1004、顯示器1006(例如,觸摸屏顯示器)和其他接口1008(例如,鍵盤)。存儲器1004一般包括易失性存儲器(例如,RAM)和非易失性存儲器(例如,閃存)二者。操作系統(tǒng)1010諸如Microsoft Windows? Phone操作系統(tǒng)駐留在存儲器1004中并由處理器1002來執(zhí)行,盡管應(yīng)該明白:可以采用其他的操作系統(tǒng)。
一個或多個應(yīng)用程序1012被加載在存儲器1004中并由處理器1002在操作系統(tǒng)1010上進(jìn)行執(zhí)行。應(yīng)用1012的示例包括但不限于電子郵件程序、調(diào)度程序、個人信息管理器、因特網(wǎng)瀏覽程序、多媒體播放器應(yīng)用等等。通知管理器1014也被加載在存儲器1004中并由處理器1002來執(zhí)行,以便向用戶呈現(xiàn)通知。例如,在宣傳(promotion)被觸發(fā)并被呈現(xiàn)給購物者時,通知管理器1014能夠引起移動設(shè)備1000發(fā)出嗶嗶聲或(經(jīng)由振動設(shè)備1018)振動并在顯示器1006上顯示該宣傳。
移動設(shè)備1000包括電源1016,其利用一個或多個電池或其他的電源來供電并給移動設(shè)備1000的其他組件提供功率。電源1016也可以被連接至外部電源,而外部電源優(yōu)先于(override)內(nèi)置電池或其他電源或?qū)?nèi)置電池或其他電源再充電。
移動設(shè)備1000包括一個或多個通信收發(fā)信機1030來提供網(wǎng)絡(luò)連接性(例如,移動電話網(wǎng)絡(luò)、Wi-Fi?、BlueTooth?等等)。移動設(shè)備1000也包括各種其他的組件,諸如定位系統(tǒng)1020(例如,全球定位衛(wèi)星收發(fā)信機)、一個或多個加速計1022、一個或多個照相機1024、音頻接口1026(例如,麥克風(fēng)、音頻放大器與揚聲器和/或音頻插孔)以及附加的儲存器1028。也可以采用其他的配置。
在示例實現(xiàn)方式中,移動操作系統(tǒng)、各種應(yīng)用以及其他的模塊與服務(wù)可以利用存儲在存儲器1004和/或存儲設(shè)備1028中并利用處理單元1002來處理的指令來體現(xiàn)。用戶偏好、服務(wù)選項以及其他的數(shù)據(jù)可以被存儲在存儲器1004和/或作為永久性數(shù)據(jù)儲存器的存儲設(shè)備1028中。
移動設(shè)備1000和計算機20可以包括各種各樣有形的計算機可讀存儲媒體以及無形的計算機可讀通信信號。有形的計算機可讀儲存器能夠利用能夠被移動設(shè)備1000或計算機20訪問并且包括易失性與非易失性存儲媒體、可移除與不可移除存儲媒體二者的任何可用媒體來體現(xiàn)。有形的計算機可讀存儲媒體排除無形的通信信號并且包括采用任何的用于存儲信息諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)的方法或技術(shù)來實現(xiàn)的易失性與非易失性、可移除與不可移除的存儲媒體。有形的計算機可讀存儲媒體包括但不限于RAM、ROM、EEPROM、閃存或其他的存儲技術(shù)、CDROM、數(shù)字多用途盤(DVD)或其他的光盤儲存器、磁帶盒、磁帶、磁盤儲存器或其他的磁存儲設(shè)備或任何其他的能夠用于存儲期望信息并能夠利用移動設(shè)備1000或計算機20來訪問的有形介質(zhì)。相比于有形的計算機可讀存儲媒體,無形的計算機可讀通信信號可以體現(xiàn)駐留在調(diào)制的數(shù)據(jù)信號諸如載波或其他的信號傳輸機制中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)。術(shù)語“調(diào)制的數(shù)據(jù)信號”意味著這樣的信號,其特征之中的一個或多個以在該信號中編碼信息的方式進(jìn)行設(shè)置或改變。
在本文描述的本發(fā)明的實施例在一個或多個計算機系統(tǒng)中被實現(xiàn)為邏輯步驟。本發(fā)明的邏輯操作被實現(xiàn):(1)作為在一個或多個計算機系統(tǒng)中執(zhí)行的一系列處理器實現(xiàn)的步驟;以及(2)作為在一個或多個計算機系統(tǒng)內(nèi)互連的機器或電路引擎。實現(xiàn)方式是取決于實現(xiàn)本發(fā)明的計算機系統(tǒng)的性能要求的選定的問題。相應(yīng)地,構(gòu)成在本文描述的本發(fā)明的實施例的邏輯操作被不同地稱為操作、步驟、對象或引擎。此外,應(yīng)該明白:除非以其他方式明確要求或者利用權(quán)利要求語言固有地使得特定順序是有必要的,否則可以按照任何順序來執(zhí)行邏輯操作。
上面的說明、示例和數(shù)據(jù)提供本發(fā)明的示例性實施例的結(jié)構(gòu)和使用的完整描述。因為能夠作出本發(fā)明的許多實施例而不背離本發(fā)明的精神與范疇,所以本發(fā)明駐留在以下所附的權(quán)利要求書中。此外,在另一實施例中可以組合不同實施例的結(jié)構(gòu)特性而不背離所敘述的權(quán)利要求書。