背景技術(shù):
諸如個人計(jì)算機(jī)、智能電話和平板型設(shè)備這樣的計(jì)算設(shè)備可以充當(dāng)用于訪問諸如在線技術(shù)支持系統(tǒng)、多用戶游戲系統(tǒng)和其它多用戶系統(tǒng)這樣的多種多用戶系統(tǒng)的用戶門戶。這樣的計(jì)算設(shè)備可以與多用戶系統(tǒng)的服務(wù)器通信以便在系統(tǒng)的用戶之間傳達(dá)信息。多用戶系統(tǒng)一般被配置為,基于用戶在系統(tǒng)定義的用戶組中的成員關(guān)系提供對所存儲的信息的訪問。這可能給可能不能夠訪問期望的信息或者可能被要求傳輸或者搜遍大量可用信息以找到期望的信息的用戶帶來不便。額外地,用戶在與系統(tǒng)交互時可能被要求多次提供相同的信息。
技術(shù)實(shí)現(xiàn)要素:
本公開內(nèi)容描述了用于管理多用戶系統(tǒng)中的上下文和查詢的技術(shù)。本文中描述的技術(shù)可以在(一個或者多個)計(jì)算設(shè)備之間復(fù)制上下文或者發(fā)射將在合適的(一個或者多個)計(jì)算設(shè)備上被執(zhí)行的查詢。本文中的一些技術(shù)可以降低帶寬使用和處理器負(fù)載,同時改進(jìn)在定位期望的信息時的用戶效率。
在一些示例中,一種內(nèi)容驅(qū)動的多用戶系統(tǒng)可以包括(一個或者多個)分布式計(jì)算資源,例如,向例如復(fù)制客戶端這樣的(一個或者多個)計(jì)算設(shè)備復(fù)制用戶相關(guān)的上下文數(shù)據(jù)的(一個或者多個)合適子集的復(fù)制服務(wù)器。一種示例方法可以包括:將上下文數(shù)據(jù)存儲在所述復(fù)制服務(wù)器上,所述上下文數(shù)據(jù)是與一個或多個用戶與或者經(jīng)由多用戶系統(tǒng)進(jìn)行的交互相關(guān)的。更新記錄可以在(一個或者多個)分布式計(jì)算資源處被接收,例如在復(fù)制服務(wù)器處。更新記錄可以與所存儲的上下文數(shù)據(jù)相對應(yīng),其中,可以至少部分上基于更新記錄修改所存儲的上下文數(shù)據(jù)。傳播記錄可以至少部分上基于所接收的更新記錄被確定。每個傳播記錄可以與上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng)。傳播記錄可以被發(fā)射給例如相應(yīng)的復(fù)制客戶端。一種示例復(fù)制客戶端可以被配置為,接收傳播記錄,以及,作為響應(yīng),修改本地上下文數(shù)據(jù)。確定和發(fā)射傳播記錄可以降低帶寬使用,以及通過為每個計(jì)算設(shè)備提供僅被需要或者被批準(zhǔn)由該計(jì)算設(shè)備訪問的數(shù)據(jù)來提高安全性。響應(yīng)于所接收的更新記錄發(fā)射傳播記錄可以通過在設(shè)備的(一個或者多個)用戶請求對信息的訪問之前將該信息存儲在那個(那些)計(jì)算設(shè)備中減少訪問信息的等待時間。
在一些示例中,諸如復(fù)制客戶端這樣的計(jì)算設(shè)備可以經(jīng)由其用戶界面接收數(shù)據(jù)記錄,以及,作為響應(yīng)和使用本地上下文數(shù)據(jù)確定更新記錄。計(jì)算設(shè)備可以發(fā)射所確定的更新記錄。
一種示例服務(wù)器可以被配置為,接收引用多個數(shù)據(jù)源中的一個或多個數(shù)據(jù)源的查詢指定,至少部分上基于所接收的查詢指定選擇對于所述上下文數(shù)據(jù)的合適子集的指示,以及,將所述查詢指定發(fā)射給與所述子集指示中的所選擇的一個子集指示相對應(yīng)的所述多用戶系統(tǒng)的復(fù)制客戶端,例如,發(fā)射給保存了所指定的查詢的輸入數(shù)據(jù)的計(jì)算設(shè)備。這可以通過減少為組裝查詢的輸入而將在計(jì)算設(shè)備之間被傳輸?shù)臄?shù)據(jù)的量而降低帶寬使用。
提供本概要以便以簡化形式介紹下面在詳細(xì)說明中進(jìn)一步描述的概念的選擇。本概要不打算標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或者必要特征,其也不打算被用作在確定所要求保護(hù)的主題的范圍時的輔助。例如,術(shù)語“技術(shù)”可以在被上面描述的上下文允許時和貫穿本文檔指(一個或者多個)系統(tǒng)、(一個或者多個)方法、計(jì)算機(jī)可讀指令、(一個或者多個)模塊、算法、硬件邏輯和/或(一個或者多個)操作。
附圖說明
參考附圖描述了詳細(xì)說明。在附圖中,參考標(biāo)號的最左(一個或者多個)數(shù)字標(biāo)識了該參考標(biāo)號在其中第一次出現(xiàn)的圖。不同的圖中的相同的(一個或者多個)標(biāo)號指示相似或者相同的項(xiàng)目。
圖1是描繪根據(jù)本文中描述的一些示例的用于實(shí)現(xiàn)上下文管理或者上下文驅(qū)動的處理的示例環(huán)境的方框圖。
圖2是圖示了根據(jù)本文中描述的一些示例的用于實(shí)現(xiàn)上下文驅(qū)動的多用戶系統(tǒng)的示例技術(shù)的方框圖。
圖3是根據(jù)本文中描述的一些示例的示例客戶支持用戶界面的圖形化的表示。
圖4是示出了根據(jù)本文中描述的一些示例的分布式計(jì)算資源的示例部件的原理圖。
圖5是示出了根據(jù)本文中描述的一些示例的計(jì)算設(shè)備的示例部件的原理圖。
圖6是圖示了根據(jù)本文中描述的一些示例的用于傳播對上下文數(shù)據(jù)的變更的示例過程的流程圖。
圖7是圖示了根據(jù)本文中描述的一些示例的用于在分布式系統(tǒng)中管理查詢的示例過程的流程圖。
圖8是圖示了根據(jù)本文中描述的一些示例的用于在分布式系統(tǒng)中管理上下文數(shù)據(jù)的傳播的示例過程的流程圖。
圖9是圖示了根據(jù)本文中描述的一些示例的用于在分布式系統(tǒng)中管理上下文數(shù)據(jù)的示例過程的流程圖。
圖10是圖示了根據(jù)本文中描述的一些示例的用于在分布式系統(tǒng)中管理上下文數(shù)據(jù)的示例過程的流程圖。
圖11是圖示了根據(jù)本文中描述的一些示例的用于在分布式系統(tǒng)中處理上下文數(shù)據(jù)的示例過程的流程圖。
圖12是圖示了根據(jù)本文中描述的一些示例的用于在分布式系統(tǒng)中管理上下文數(shù)據(jù)的傳播的示例過程的流程圖。
圖13是圖示了根據(jù)本文中描述的一些示例的用于在分布式系統(tǒng)中修改本地上下文數(shù)據(jù)的示例過程的流程圖。
圖14是圖示了根據(jù)本文中描述的一些示例的用于在分布式系統(tǒng)中基于對本地上下文數(shù)據(jù)的變更修改上下文數(shù)據(jù)的示例過程的流程圖。
圖15是圖示了根據(jù)本文中描述的一些示例的用于基于對本地上下文數(shù)據(jù)的變更而變更用戶界面的形式或者內(nèi)容的示例過程的流程圖。
具體實(shí)施方式
概述
本文中描述的示例提供了用于在多用戶系統(tǒng)中的計(jì)算設(shè)備之間復(fù)制數(shù)據(jù)庫子集(“上下文管理”)和用于在計(jì)算設(shè)備之間分布數(shù)據(jù)庫查詢(“查詢管理”)的技術(shù)和結(jié)構(gòu)。上下文管理可以為用戶提供期望的信息,同時減少對于傳輸或者處理不期望或者相關(guān)的信息的需求。查詢管理可以改進(jìn)數(shù)據(jù)庫搜索或者其它查詢的速度和效率,這是通過導(dǎo)致這樣的查詢在輸入數(shù)據(jù)在其上輕松可得的多用戶系統(tǒng)中的計(jì)算設(shè)備上被執(zhí)行來達(dá)到的。
本文中描述的示例對“上下文”進(jìn)行管理。如本文中使用的,術(shù)語“上下文”指被多用戶系統(tǒng)存儲或者控制的可能是與一個或多個用戶與或者經(jīng)由多用戶系統(tǒng)進(jìn)行的(一個或者多個)交互相關(guān)的信息。通過示例而非限制,上下文數(shù)據(jù)可以包括關(guān)于用戶的產(chǎn)品和/或服務(wù)的信息、與產(chǎn)品和/或服務(wù)相關(guān)的用戶偏好信息、關(guān)于用戶經(jīng)由多用戶系統(tǒng)進(jìn)行的之前的交互的歷史信息、由多用戶系統(tǒng)響應(yīng)于這樣的交互采取的行動等。(一個或者多個)交互可以是用戶之間的,不論用戶并發(fā)地還是在時間上隔開地訪問系統(tǒng)。(一個或者多個)交互也可以是一個或多個用戶與例如自動化帳戶管理這樣的由系統(tǒng)提供的服務(wù)之間的。系統(tǒng)的用戶可以是人類或者執(zhí)行用于執(zhí)行預(yù)定的功能的自動化“代理”軟件的計(jì)算設(shè)備。
多用戶系統(tǒng)的每個用戶具有對上下文數(shù)據(jù)的相應(yīng)合適子集(即,少于全部的上下文數(shù)據(jù))的訪問,以及可以將該合適子集復(fù)制(拷貝)到該用戶正在用于訪問多用戶系統(tǒng)的計(jì)算設(shè)備上?!氨镜厣舷挛臄?shù)據(jù)”指上下文數(shù)據(jù)的合適子集的副本。本地上下文數(shù)據(jù)位于用戶的計(jì)算設(shè)備上。用戶的合適子集可以在范圍上隨時間變更,這取決于該用戶或者多用戶系統(tǒng)的其它用戶的活動。提供合適子集給予每個用戶對相關(guān)信息的訪問,而不具有相比于復(fù)制上下文數(shù)據(jù)自身的減少的帶寬和處理器負(fù)載。
多用戶系統(tǒng)可以提供大致上實(shí)時的“推送”對本地上下文數(shù)據(jù)的更新。這可以幫助確保多用戶系統(tǒng)的每個用戶及時地具有對與該用戶的角色相關(guān)的上下文信息的訪問,以及還可以減少系統(tǒng)中的等待時間。例如,在用戶alice變更alice的本地上下文數(shù)據(jù)的元素時,alice的計(jì)算設(shè)備可以將該變更傳送給多用戶系統(tǒng)的服務(wù)器。服務(wù)器然后可以將該變更或者該變更的后果傳播給用戶bob的計(jì)算設(shè)備。多用戶系統(tǒng)可以利用由bob作出的變更相反地提供傳播以便更新alice的計(jì)算設(shè)備。響應(yīng)于用戶bob的活動更新用戶alice的合適子集可以減少例如alice在bob的數(shù)據(jù)上運(yùn)行的數(shù)據(jù)庫查詢的等待時間。對于這樣的可以從alice的合適子集檢索bob的數(shù)據(jù)的查詢,alice不必在運(yùn)行查詢之前等待數(shù)據(jù)從bob被檢索出來。
額外地,等待時間可以例如通過允許alice和bob通過與經(jīng)由高速連接被連接的服務(wù)器的鏈接而非通過彼此的計(jì)算設(shè)備之間的較慢的直接連接共享數(shù)據(jù)而被進(jìn)一步減少。在一些示例中,alice與在物理上或者跨網(wǎng)絡(luò)(例如,低跳數(shù)或者往返時間)位于她的計(jì)算設(shè)備附近的服務(wù)器通信,以及,bob與在物理上或者跨網(wǎng)絡(luò)位于他的計(jì)算設(shè)備附近的服務(wù)器通信。服務(wù)器可以經(jīng)由骨干或者其它高帶寬連接被連接。雙向傳播可以允許bob和alice接近實(shí)時地共享數(shù)據(jù)。
等待時間可以被進(jìn)一步減少,這是通過在基于alice的行動對上下文數(shù)據(jù)的更新之前或者與之并行地基于alice的行動更新alice的計(jì)算設(shè)備的本地上下文數(shù)據(jù)和用戶界面,以及同樣地,對于bob的計(jì)算設(shè)備,基于bob的行動執(zhí)行這樣的操作。可以經(jīng)由對由多用戶系統(tǒng)提供的變更進(jìn)行補(bǔ)償來調(diào)和alice的本地上下文數(shù)據(jù)與bob的本地上下文數(shù)據(jù)之間的任何不一致。這可以允許具有相比于使用常規(guī)的acid(原子性、一致性、隔離性和持久性)事務(wù)模型的常規(guī)數(shù)據(jù)庫的減少的開銷和等待時間的多用戶通信。取代adic模型而使用對變更進(jìn)行補(bǔ)償也可以允許多用戶系統(tǒng)支持更多的總用戶或者更多的并發(fā)用戶。
用戶可能期望相對于它們的合適子集運(yùn)行數(shù)據(jù)庫查詢。在一些示例中,多用戶系統(tǒng)通過將查詢傳輸?shù)綄⒈粓?zhí)行的其它計(jì)算設(shè)備來管理這樣的查詢。例如,如果alice和bob共享關(guān)于alice的最愛的歌曲的數(shù)據(jù),則bob可能希望定期地運(yùn)行對于alice的新的最愛物的查詢。多用戶系統(tǒng)可以通過將查詢傳輸?shù)絘lice的計(jì)算設(shè)備來管理該查詢。由于最愛的歌曲信息在被復(fù)制之前被添加到alice的本地上下文數(shù)據(jù),所以查詢可以在新的最愛物復(fù)制到服務(wù)器之前或者與之并行地被高效地運(yùn)行。這可以減少查詢執(zhí)行的等待時間,比如果查詢在復(fù)制完成之后在bob的計(jì)算設(shè)備上被執(zhí)行時將可能的那樣更快地為bob提供信息。
在一些示例中,用戶的設(shè)備、服務(wù)器或者多用戶系統(tǒng)的其它部件可以包括響應(yīng)于所指定的對上下文數(shù)據(jù)或者本地上下文數(shù)據(jù)的變更而進(jìn)行觸發(fā)的規(guī)則。例如,在就任何單個用戶或者就用戶組而言特定的條件出現(xiàn)在上下文數(shù)據(jù)中時被激活的業(yè)務(wù)規(guī)則可以被實(shí)現(xiàn)。被規(guī)則觸發(fā)的部件可以修改上下文數(shù)據(jù)或者采取其它行動。在一些示例中,被規(guī)則觸發(fā)的部件可以使用機(jī)器學(xué)習(xí)來檢測上下文數(shù)據(jù)中的模式。這可以允許檢測跨用戶組的共性,允許用戶界面針對被該用戶組執(zhí)行的公共任務(wù)被精簡。
貫穿本公開內(nèi)容,為清楚起見,呈現(xiàn)了客戶尋求伴隨產(chǎn)品的支持的非限制的示例(“客戶支持示例”)。在該示例中,上下文驅(qū)動的多用戶系統(tǒng)是可經(jīng)由互聯(lián)網(wǎng)或者允許客戶和支持技術(shù)人員進(jìn)行通信的另一個網(wǎng)絡(luò)訪問的系統(tǒng)。在該示例中,客戶和支持技術(shù)人員是多用戶系統(tǒng)的用戶。上下文驅(qū)動的多用戶系統(tǒng)可以包括在解決客戶問題時為技術(shù)人員提供輔助的特征,例如,問題日志記錄、票據(jù)跟蹤或者遠(yuǎn)程登錄能力。額外地或者替換地,上下文驅(qū)動的多用戶系統(tǒng)可以包括與為客戶呈現(xiàn)反映該用戶的上下文信息的信息和選項(xiàng)相關(guān)聯(lián)的特征。
一些現(xiàn)有技術(shù)的方案已在服務(wù)器之間拷貝整個數(shù)據(jù)集。然而,這樣的拷貝可以消耗大量帶寬和時間。在本文中的一些示例中,僅復(fù)制具體的上下文子集可以提供對公共信息的安全的訪問,而具有減少的等待時間和網(wǎng)絡(luò)負(fù)載。對上下文子集的復(fù)制還可以允許向諸如智能電話、智能手表或者其它客戶端設(shè)備這樣的具有有限的存儲裝置的設(shè)備上的復(fù)制。
一些用于傳播上下文更新的算法可以包括接收與所存儲的上下文數(shù)據(jù)相對應(yīng)更新記錄。多個傳播記錄可以至少部分上基于所接收的更新記錄被確定。傳播記錄中的每個傳播記錄可以與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng)。多個傳播記錄可以經(jīng)由一個或多個通信接口被發(fā)射。在一些示例中,計(jì)算設(shè)備可以經(jīng)由通信接口接收傳播記錄。計(jì)算設(shè)備然后可以至少部分上基于所接收的傳播記錄修改本地上下文數(shù)據(jù)。
計(jì)算設(shè)備可以進(jìn)一步例如從用戶界面接收數(shù)據(jù)記錄。計(jì)算設(shè)備可以至少部分上基于數(shù)據(jù)記錄和本地上下文數(shù)據(jù)確定更新記錄。計(jì)算設(shè)備然后可以經(jīng)由通信接口發(fā)射所確定更新記錄。這可以提供對上下文數(shù)據(jù)子集的雙向的更新和復(fù)制。
在查詢管理的一些示例中,復(fù)制控制器或者其它計(jì)算設(shè)備可以包括其上具有上下文數(shù)據(jù)和多個子集指示的計(jì)算機(jī)存儲介質(zhì),每個子集指示標(biāo)識上下文數(shù)據(jù)的相應(yīng)的合適子集。處理單元可以執(zhí)行用于接收查詢指定和至少部分上基于所接收的查詢指定選擇子集指示中的一個子集指示的指令。處理單元可以進(jìn)一步執(zhí)行用于經(jīng)由通信接口例如向可以處置該查詢的計(jì)算設(shè)備發(fā)射所接收的查詢指定和所選擇的子集指示的標(biāo)識信息的指令。
參考圖1-15進(jìn)一步描述了用于上下文管理或者查詢管理的計(jì)算設(shè)備和方法的一些環(huán)境、配置。盡管本文中描述的許多示例涉及服務(wù)器和臺式設(shè)備,或者涉及智能電話和其它的便攜式計(jì)算設(shè)備,但例如如參考圖1討論的那樣,其它類型的計(jì)算設(shè)備或者分布式計(jì)算資源可以被使用。
圖示性環(huán)境
圖1示出了上下文管理或者其它上下文驅(qū)動的系統(tǒng)可以在其中運(yùn)行或者諸如本文中描述的那些方法這樣的上下文更新方法、查詢管理方法和其它方法可以在其中被執(zhí)行的示例環(huán)境100。所圖示的部件可以是如本文中描述的上下文驅(qū)動的多用戶系統(tǒng)的部件。在所圖示的示例中,環(huán)境100的一些設(shè)備和/或部件包括分布式計(jì)算資源102(1)-102(m)(例如,在本文中單個地或者集體地用參考標(biāo)號102來引用的計(jì)算設(shè)備),其中,m是任何大于或者等于1的整數(shù)。分布式計(jì)算資源102可以經(jīng)由一個或多個網(wǎng)絡(luò)106與彼此和與計(jì)算設(shè)備104(1)-104(n)(例如,在本文中單個地或者集體地用參考標(biāo)號104來引用的計(jì)算設(shè)備)通信,其中,n是任何大于或者等于1的整數(shù)。盡管被圖示為臺式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板型計(jì)算機(jī)或者移動電話,但分布式計(jì)算資源102和/或(一個或者多個)計(jì)算設(shè)備104可以包括多種多樣的設(shè)備類型,而不限于一種具體類型的設(shè)備。
通過示例而非限制,分布式計(jì)算資源102可以包括但不限于諸如web服務(wù)器(例如,102(1))這樣的服務(wù)器計(jì)算機(jī)、諸如數(shù)據(jù)庫服務(wù)器(例如,102(2))這樣的存儲系統(tǒng)或者包括由諸如microsoftazure或者amazonwebservice這樣的遠(yuǎn)程或者云計(jì)算服務(wù)運(yùn)行的服務(wù)器的其它服務(wù)器。(一個或者多個)計(jì)算設(shè)備104可以包括但不限于:臺式計(jì)算機(jī)(例如,104(1))、膝上型計(jì)算機(jī)、瘦客戶端、終端或者其它移動計(jì)算機(jī)(例如,104(3))、智能電話、移動電話、平板型計(jì)算機(jī)、移動電話平板型混合設(shè)備、個人數(shù)字助理(pda)或者其它電信設(shè)備(例如,104(n))、諸如車輛控制系統(tǒng)、車輛安全系統(tǒng)或者車輛的電子鑰匙這樣的汽車用計(jì)算機(jī)、便攜式或者基于控制臺的游戲設(shè)備或者諸如啟用網(wǎng)絡(luò)的電視機(jī)、機(jī)頂盒、媒體播放器、照相機(jī)或者個人錄像機(jī)(pvr)這樣的其它娛樂設(shè)備、計(jì)算機(jī)導(dǎo)航客戶端計(jì)算設(shè)備、包括全球定位系統(tǒng)(gps)設(shè)備或者其它基于衛(wèi)星的導(dǎo)航系統(tǒng)設(shè)備的基于衛(wèi)星的導(dǎo)航系統(tǒng)設(shè)備、諸如智能手表或者生物測定或者醫(yī)療傳感器這樣的可穿戴計(jì)算機(jī)、諸如生物測定或者醫(yī)療傳感器這樣的植入式計(jì)算設(shè)備、用于包括在計(jì)算設(shè)備、家電或者被配置為參與或者實(shí)現(xiàn)如本文中描述的上下文管理(例如,出于復(fù)制和數(shù)據(jù)訪問目的)或者如本文中描述的查詢管理(例如,為了處理數(shù)據(jù)時的效率)的(一個或者多個)其它計(jì)算設(shè)備中的集成部件。
不同的設(shè)備或者設(shè)備類型可以具有不同的上下文管理查詢管理方案或者需求。例如,便攜式計(jì)算設(shè)備可以規(guī)律地連接到網(wǎng)絡(luò)和從網(wǎng)絡(luò)斷開。這樣的設(shè)備可能需要用于在被連接時快速地復(fù)制本地上下文數(shù)據(jù)的小集合的高突發(fā)帶寬。這樣的設(shè)備可以在被斷開時保存本地上下文數(shù)據(jù)的變更,以使得一旦該設(shè)備被連接則那些變更可以被復(fù)制到其它用戶。諸如辦公計(jì)算機(jī)這樣的臺式計(jì)算機(jī)一般具有穩(wěn)定的網(wǎng)絡(luò)連接,因此可能比它們需要突發(fā)帶寬更需要實(shí)時交互的低等待時間。
在一些示例中,(一個或者多個)分布式計(jì)算資源102可以實(shí)現(xiàn)一個或多個復(fù)制控制器。在這些示例中的一些示例中,(一個或者多個)計(jì)算設(shè)備104可以實(shí)現(xiàn)向(一個或者多個)復(fù)制控制器提供數(shù)據(jù)或者從(一個或者多個)復(fù)制控制器接收數(shù)據(jù)的(一個或者多個)復(fù)制客戶端。(一個或者多個)復(fù)制控制器與(一個或者多個)計(jì)算設(shè)備104上的模塊協(xié)作,以便為(一個或者多個)計(jì)算設(shè)備104提供對上下文數(shù)據(jù)118的公共集合的相應(yīng)的合適子集的訪問。貫穿本公開內(nèi)容,計(jì)算設(shè)備104可以具有如下面參考本地上下文數(shù)據(jù)132討論的相應(yīng)的、不同的合適子集。一個合適子集可以在數(shù)據(jù)的一個或多個項(xiàng)的存在、不存在或者值方面與另一個合適子集不同。貫穿本公開內(nèi)容,多用戶系統(tǒng)的管理員可以具有經(jīng)由他們的(一個或者多個)計(jì)算設(shè)備104對上下文數(shù)據(jù)118的整體的訪問。在本文中對“用戶”的討論不包括以在其中他們具有這樣的訪問的角色起作用的管理員。
在一些示例中,計(jì)算設(shè)備104可以經(jīng)由(一個或者多個)網(wǎng)絡(luò)106與彼此、與分布式計(jì)算資源102或者與其它計(jì)算設(shè)備通信。例如,(一個或者多個)網(wǎng)絡(luò)106可以包括諸如互聯(lián)網(wǎng)這樣的公共網(wǎng)絡(luò)、諸如機(jī)構(gòu)或者個人內(nèi)聯(lián)網(wǎng)這樣的私有網(wǎng)絡(luò)或者私有和公共網(wǎng)絡(luò)的(一個或者多個)組合。(一個或者多個)網(wǎng)絡(luò)106可以還包括任何類型的有線或者無線網(wǎng)絡(luò),包括但不限于局域網(wǎng)(lan)、廣域網(wǎng)(wan)、衛(wèi)星網(wǎng)絡(luò)、有線電視網(wǎng)、wi-fi網(wǎng)絡(luò)、wimax網(wǎng)絡(luò)、移動通信網(wǎng)絡(luò)(例如,3g、4g等)或者其任意組合。(一個或者多個)網(wǎng)絡(luò)106可以使用諸如例如是基于分組或者基于數(shù)據(jù)報的協(xié)議這樣的通信協(xié)議,諸如互聯(lián)網(wǎng)協(xié)議(ip)、傳輸控制協(xié)議(tcp)、用戶數(shù)據(jù)報協(xié)議(udp)、其它類型的協(xié)議或者其組合。此外,(一個或者多個)網(wǎng)絡(luò)106還可以包括促進(jìn)網(wǎng)絡(luò)通信或者構(gòu)成網(wǎng)絡(luò)的硬件基礎(chǔ)設(shè)施的一些設(shè)備,諸如交換機(jī)、路由器、網(wǎng)關(guān)、接入點(diǎn)、防火墻、基站、復(fù)示器、骨干設(shè)備等。(一個或者多個)網(wǎng)絡(luò)106還可以包括使用一些拓?fù)涞目偩€協(xié)議促進(jìn)計(jì)算設(shè)備104之間的通信的設(shè)備,例如縱橫交換機(jī)、infiniband交換機(jī)或者fibrechannel交換器或者集線器。
不同的網(wǎng)絡(luò)具有例如帶寬、等待時間、可訪問性(開放的、已通告但受保護(hù)的、或者未通告的)或者覆蓋面積這樣的不同的特性。復(fù)制傳輸(例如,下面討論的更新記錄和傳播記錄)的時序和數(shù)據(jù)速率可以取決于給定的計(jì)算設(shè)備被連接到其的具體網(wǎng)絡(luò)的特性而被調(diào)整。
在一些示例中,(一個或者多個)網(wǎng)絡(luò)106可以進(jìn)一步包括使能實(shí)現(xiàn)與無線網(wǎng)絡(luò)的連接的設(shè)備,諸如無線接入點(diǎn)(wap)。示例支持通過經(jīng)由某些電磁頻率(例如,射頻)發(fā)送和接收數(shù)據(jù)的wap實(shí)現(xiàn)的連接,這樣的wap包括支持電氣和電子工程師協(xié)會(ieee)802.11標(biāo)準(zhǔn)(例如,802.11g、802.11n等)、其它標(biāo)準(zhǔn)(例如,藍(lán)牙、諸如gsm、lte或者wimax這樣的蜂窩電話標(biāo)準(zhǔn))或者其多項(xiàng)或者其組合的wap。其它示例支持特別是通過路由器、交換機(jī)或者支持ieee802.3以太網(wǎng)標(biāo)準(zhǔn)的集線器、支持rs-232標(biāo)準(zhǔn)的點(diǎn)到點(diǎn)鏈路、或者支持ibmtokenring或者ieee-488標(biāo)準(zhǔn)的網(wǎng)絡(luò)接口或者其多項(xiàng)或者其組合實(shí)現(xiàn)的有線連接。
在插圖108處圖示了示例分布式計(jì)算資源102(1)的細(xì)節(jié)。示例分布式計(jì)算資源102(1)的細(xì)節(jié)可以代表(一個或者多個)分布式計(jì)算資源102中的其它分布式計(jì)算資源102。然而,分布式計(jì)算資源102中的每個分布式計(jì)算資源102可以包括額外的或者替換的硬件和/或軟件部件。仍然參考圖1的示例,分布式計(jì)算資源102(1)可以包括諸如經(jīng)由總線114被可運(yùn)行地連接到一個或多個計(jì)算機(jī)可讀介質(zhì)112的一個或多個處理單元110,總線114在一些實(shí)例中可以包括系統(tǒng)總線、數(shù)據(jù)總線、地址總線、pci總線、迷你pci總線、外設(shè)部件互連特快總線(pcie)總線和任何多種多樣的本地、外設(shè)或者獨(dú)立總線中的一項(xiàng)或多項(xiàng)或者其任意組合。在一些未示出的示例中,(一個或者多個)分布式計(jì)算資源102中的一個分布式計(jì)算資源102中的(一個或者多個)處理單元110中的一個或多個處理單元110可以例如經(jīng)由通信接口116(在下面討論)和網(wǎng)絡(luò)106被可運(yùn)行地連接到(一個或者多個)分布式計(jì)算資源102中的一個不同的分布式計(jì)算資源102中的計(jì)算機(jī)可讀介質(zhì)112。
在一些示例中,多個處理單元110可以不同于或者除了網(wǎng)絡(luò)106之外還通過總線114交換數(shù)據(jù)。盡管處理單元110被描述為位于單個分布式計(jì)算資源102上,但不同的處理單元110在一些示例中也可以位于不同的分布式計(jì)算資源102上。在一些示例中,至少兩個處理單元110可以位于相應(yīng)的、不同的分布式計(jì)算資源102上。在這樣的示例中,相同的分布式計(jì)算資源102上的多個處理單元110可以使用該分布式計(jì)算資源102的總線114來交換數(shù)據(jù),而不同的分布式計(jì)算資源102上的處理單元110可以經(jīng)由(一個或者多個)網(wǎng)絡(luò)106交換數(shù)據(jù)。
(一個或者多個)處理單元110可以是或者包括一個或多個單核處理器、多核處理器、中央處理單元(cpu)、圖形處理單元(gpu)、通用圖形處理單元(gpgpu)或者例如經(jīng)由來自模塊或者api的編程被配置為執(zhí)行本文中描述的功能的硬件邏輯部件。例如而不限于,可以在處理單元110中或者作為處理單元110被使用的硬件邏輯單元的圖示性的類型包括現(xiàn)場可編程門陣列(fpga)、專用集成電路(asic)、專用標(biāo)準(zhǔn)產(chǎn)品(assp)、芯片上系統(tǒng)(soc)、復(fù)雜可編程邏輯設(shè)備(cpld)、數(shù)字信號處理器(dsp)和其它類型的可定制處理器。例如,處理單元110可以代表混合型設(shè)備,諸如包括被嵌入在fpga結(jié)構(gòu)中的cpu核的來自altera或者xilinx的設(shè)備。這些或者其它的硬件邏輯部件可以獨(dú)立地運(yùn)行,或者,在一些實(shí)例中,可以由cpu驅(qū)動。在一些示例中,(一個或者多個)分布式計(jì)算資源102(1)-102(m)中的至少一些分布式計(jì)算資源可以包括多個多種類型的處理單元110。例如,分布式計(jì)算資源102(1)中的處理單元110可以包括一個或多個gpgpu和一個或多個fpga的組合。
計(jì)算機(jī)可讀介質(zhì)112可以例如存儲上下文數(shù)據(jù)118、保存操作系統(tǒng)(為簡潔起見被省略)和復(fù)制框架120的可執(zhí)行指令的(一個或者多個)模塊以及可以被(一個或者多個)處理單元110加載和執(zhí)行的其它模塊、程序或者應(yīng)用。例如,用于執(zhí)行本文中的流程圖的操作的程序代碼(例如,被存儲的sql或者linq查詢)可以例如經(jīng)由網(wǎng)絡(luò)106從例如分布式計(jì)算資源102(1)這樣的服務(wù)器被下載到例如分布式計(jì)算資源102(2)這樣的數(shù)據(jù)庫服務(wù)器,以及被分布式計(jì)算資源102(1)中的一個或多個處理單元110執(zhí)行。
例如計(jì)算機(jī)可讀介質(zhì)112和計(jì)算機(jī)可讀介質(zhì)126(在下面討論)這樣的本文中描述的計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲介質(zhì)和/或通信介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括有形存儲單元,諸如易失性存儲器、非易失性存儲器和/或使用任何用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者其它數(shù)據(jù)這樣的信息的方法或者技術(shù)實(shí)現(xiàn)的其它持久的和/或輔助的計(jì)算機(jī)存儲介質(zhì)、可移除和非可移除計(jì)算機(jī)存儲介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括被包括在作為設(shè)備的一部分或者位于設(shè)備的外部的設(shè)備或者硬件部件中的有形或者物理形式的介質(zhì),包括而不限于可以被用于存儲和維護(hù)用于被計(jì)算設(shè)備訪問的信息的隨機(jī)存取存儲器(ram)、靜態(tài)隨機(jī)存取存儲器(sram)、動態(tài)隨機(jī)存取存儲器(dram)、相變存儲器(pram)、只讀存儲器(rom)、可擦除可編程只讀存儲器(eprom)、電可擦除可編程只讀存儲器(eeprom)、閃存、壓縮盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)、光學(xué)卡或者其它光學(xué)存儲介質(zhì)、盒式磁帶、磁帶、磁盤存儲裝置、磁卡或者其它磁性存儲設(shè)備或者介質(zhì)、固態(tài)存儲器設(shè)備、存儲陣列、網(wǎng)絡(luò)附接的存儲裝置、存儲區(qū)域網(wǎng)絡(luò)、寄宿的計(jì)算機(jī)存儲裝置或者存儲器、存儲設(shè)備和/或存儲介質(zhì)。
與計(jì)算機(jī)存儲介質(zhì)相反,通信介質(zhì)可以將計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者其它數(shù)據(jù)體現(xiàn)在諸如載波這樣的經(jīng)調(diào)制的數(shù)據(jù)信號或者其它傳輸機(jī)制中。如本文中定義的,計(jì)算機(jī)存儲介質(zhì)不包括通信介質(zhì)。
在一些示例中,計(jì)算機(jī)可讀介質(zhì)112可以存儲可以被(一個或者多個)處理單元110執(zhí)行的指令,如上面討論的,處理單元110可以代表被并入分布式計(jì)算資源102的處理單元。計(jì)算機(jī)可讀介質(zhì)112可以額外地或者替換地存儲可被外部的處理單元執(zhí)行的指令,諸如被上面討論的任何類型的外部cpu或者外部處理器執(zhí)行的指令。在一些示例中,例如cpu、gpu或者硬件邏輯設(shè)備這樣的至少一個處理單元110被并入分布式計(jì)算資源102,而在一些示例中,例如cpu、gpu或者硬件邏輯設(shè)備中的一項(xiàng)或多項(xiàng)這樣的至少一個處理單元110位于分布式計(jì)算資源102的外部。
分布式計(jì)算資源102還可以包括用于使能實(shí)現(xiàn)分布式計(jì)算資源102與上下文管理或者查詢管理中涉及的其它連網(wǎng)的分布式計(jì)算資源102或者(一個或者多個)其它的分布式計(jì)算資源或者計(jì)算設(shè)備104之間的通過(一個或者多個)網(wǎng)絡(luò)106的有線或者無線通信的一個或多個通信接口116。這樣的(一個或者多個)通信接口116可以包括一個或多個收發(fā)機(jī)設(shè)備,例如,諸如以太網(wǎng)nic這樣的網(wǎng)絡(luò)接口控制器(nic)或者用于通過網(wǎng)絡(luò)發(fā)送和接收通信的其它類型的收發(fā)機(jī)設(shè)備。通信接口116和本文中描述的其它通信接口可以是單宿主的或者多宿主的,以及可以包括任何數(shù)量的端口。處理單元110可以通過相應(yīng)的(一個或者多個)通信接口116交換數(shù)據(jù)。在一些示例中,通信接口116可以是pcie收發(fā)機(jī),以及網(wǎng)絡(luò)106可以是pcie總線。在一些示例中,通信接口116可以包括而不限于用于蜂窩(3g、4g或者其它的蜂窩)、wi-fi、超寬帶(uwb)、藍(lán)牙或者衛(wèi)星傳輸?shù)氖瞻l(fā)機(jī)。通信接口116可以包括有線i/o接口,諸如以太網(wǎng)接口、串行接口、通用串行總線(usb)接口、infiniband接口或者其它的有線接口。為簡單起見,從所圖示的分布式計(jì)算資源102中省略了這些和其它的部件。
在插圖122處圖示了示例計(jì)算設(shè)備104(1)的細(xì)節(jié)。示例計(jì)算設(shè)備104(1)的細(xì)節(jié)可以代表(一個或者多個)計(jì)算設(shè)備104中的其它計(jì)算設(shè)備104。然而,每個計(jì)算設(shè)備104可以包括額外的或者替換的硬件和/或軟件部件。仍然參考圖1,計(jì)算設(shè)備104(1)可以包括諸如經(jīng)由總線128被可運(yùn)行地連接到一個或多個計(jì)算機(jī)可讀介質(zhì)126的一個或多個處理單元124,總線128可以包括上面參考總線114討論的任何類型的總線。在一些未示出的示例中,(一個或者多個)計(jì)算設(shè)備104中的一個計(jì)算設(shè)備104中的(一個或者多個)處理單元124中的一個或多個處理單元124可以例如經(jīng)由通信接口130(在下面討論)和網(wǎng)絡(luò)106被可運(yùn)行地連接到(一個或者多個)計(jì)算設(shè)備104中的一個不同的計(jì)算設(shè)備104中的計(jì)算機(jī)可讀介質(zhì)126。
在一些示例中,多個處理單元124可以不同于或者除了網(wǎng)絡(luò)106之外還通過總線128交換數(shù)據(jù)。盡管處理單元124被描述為位于單個計(jì)算設(shè)備104上,但處理單元124在一些示例中也可以位于不同的計(jì)算設(shè)備104上。在一些示例中,處理單元124中的至少兩個處理單元124可以位于不同的計(jì)算設(shè)備104上。在這樣的示例中,相同的計(jì)算設(shè)備104上的多個處理單元124可以使用該計(jì)算設(shè)備104的總線128來交換數(shù)據(jù),而不同的計(jì)算設(shè)備104上的處理單元110可以經(jīng)由(一個或者多個)網(wǎng)絡(luò)106交換數(shù)據(jù)。(一個或者多個)處理單元124可以是或者包括上面參考(一個或者多個)處理單元110列出的類型中的任一種類型。例如,計(jì)算設(shè)備104(1)中的處理單元124可以是一個或多個微控制器和一個或多個asic的組合。
計(jì)算機(jī)可讀介質(zhì)126可以例如存儲本地上下文數(shù)據(jù)132(在下面討論)、操作系統(tǒng)(為簡潔起見被省略)、交互框架134和可以被(一個或者多個)處理單元124加載和執(zhí)行的其它模塊、程序或者應(yīng)用的可執(zhí)行指令。例如,用于執(zhí)行本文中的流程圖的操作的程序代碼可以例如經(jīng)由網(wǎng)絡(luò)106從例如分布式計(jì)算資源102(1)這樣的服務(wù)器被下載到例如計(jì)算設(shè)備104(1)這樣的客戶端,以及被計(jì)算設(shè)備104(1)中的一個或多個處理單元124執(zhí)行。在一些示例中,分布式計(jì)算資源102(1)包括web服務(wù)器,計(jì)算設(shè)備104(1)包括具有javascript或者其它代碼執(zhí)行引擎的web瀏覽器,并且該web瀏覽器下載和執(zhí)行由web服務(wù)器提供的代碼。這樣的代碼可以例如包括分布式應(yīng)用的用戶界面代碼,包括在分布式計(jì)算資源102(1)和計(jì)算設(shè)備104(1)兩者上運(yùn)行的代碼。
本地上下文數(shù)據(jù)132是上下文數(shù)據(jù)118的合適子集,并且有時被稱為上下文數(shù)據(jù)118的“投影”。任何數(shù)量的(一個或者多個)計(jì)算設(shè)備104可以與具有具體的上下文數(shù)據(jù)118的(一個或者多個)分布式計(jì)算資源102通信。(一個或者多個)計(jì)算設(shè)備104中的每個計(jì)算設(shè)備104可以在它相應(yīng)的本地上下文數(shù)據(jù)132中復(fù)制上下文數(shù)據(jù)118的子集,該子集可以是與針對(一個或者多個)計(jì)算設(shè)備104中的任何其它計(jì)算設(shè)備104的子集相同或者不同的。在使用sql或者其它的表/記錄/列數(shù)據(jù)庫的示例中,本地上下文數(shù)據(jù)132的每個集合可以例如包括上下文數(shù)據(jù)118中的少于全部的列、少于全部的記錄或者少于全部的表。可以基于數(shù)據(jù)庫的屬性(例如,僅所選擇的列)、基于數(shù)據(jù)的屬性(例如,僅在所選擇的列中具有特定的值或者值的范圍的行,即使那些行的全部列被返回)或者基于其任何組合選擇本地上下文數(shù)據(jù)132的每個集合的內(nèi)容。
在一些示例中,復(fù)制框架120可以在(一個或者多個)計(jì)算設(shè)備104上被執(zhí)行。在一些示例中,交互框架134可以在(一個或者多個)分布式計(jì)算資源102上被執(zhí)行。例如,在機(jī)房或者數(shù)據(jù)中心監(jiān)控應(yīng)用中,復(fù)制框架120可以在平板型或者膝上型計(jì)算機(jī)上被執(zhí)行,以及,交互框架134可以在安裝在機(jī)架上的服務(wù)器上被執(zhí)行。下面討論了這樣的和其它的示例。
在一些示例中,計(jì)算機(jī)可讀介質(zhì)126可以存儲可被(一個或者多個)處理單元124執(zhí)行的指令,如上面討論的,(一個或者多個)處理單元124可以代表被并入計(jì)算設(shè)備104的處理單元。諸如上面參考計(jì)算機(jī)可讀介質(zhì)112討論的那樣,計(jì)算機(jī)可讀介質(zhì)126可以額外地或者替換地存儲可以被外部的處理單元執(zhí)行的指令。在一些示例中,例如cpu、gpu或者硬件邏輯設(shè)備這樣的至少一個處理單元124被并入計(jì)算設(shè)備104,而在一些示例中,例如cpu、gpu或者硬件邏輯設(shè)備中的一項(xiàng)或多項(xiàng)這樣的至少一個處理單元124位于計(jì)算設(shè)備104的外部。
計(jì)算設(shè)備104還可以包括用于使能實(shí)現(xiàn)計(jì)算設(shè)備104與上下文管理或者查詢管理中涉及的其它連網(wǎng)的計(jì)算設(shè)備104或者(一個或者多個)其它計(jì)算設(shè)備之間的通過(一個或者多個)網(wǎng)絡(luò)106的有線或者無線通信的一個或多個通信接口130。這樣的(一個或者多個)通信接口130和與之通信的網(wǎng)絡(luò)106可以包括上面參考通信接口116討論的設(shè)備或者網(wǎng)絡(luò)的類型中的任一種類型。處理單元124可以通過相應(yīng)的(一個或者多個)通信接口130交換數(shù)據(jù)。為簡潔起見,從所圖示的計(jì)算設(shè)備104中省略了這些和其它的部件。
計(jì)算設(shè)備104還可以包括用戶界面136。用戶界面136可以包括被配置為用于與用戶或者與與該用戶相關(guān)的另一個計(jì)算設(shè)備(未示出)的通信的一個或多個固有的和/或外設(shè)輸出設(shè)備。輸出設(shè)備的示例可以包括顯示器、打印機(jī)、音頻揚(yáng)聲器、尋呼機(jī)或者其它的音頻輸出設(shè)備、振動馬達(dá)、線性振動器或者其它觸覺輸出設(shè)備等。
用戶界面136可以包括一個或多個固有的和/或外設(shè)輸入設(shè)備。外設(shè)輸入設(shè)備可以是用戶可操作的,或者可以被配置為用于來自其它計(jì)算設(shè)備的輸入。輸入設(shè)備的示例可以例如包括鍵盤、鍵區(qū)、鼠標(biāo)、軌跡球、鋼筆傳感器或者智能筆、光筆或者光槍、諸如操縱桿和游戲手柄這樣的游戲控制器、諸如麥克風(fēng)、語音識別設(shè)備或者語聲識別設(shè)備這樣的語音輸入設(shè)備、其它聽覺輸入、諸如觸摸屏、加速度計(jì)、抓握傳感器這樣的觸覺輸入設(shè)備、手勢輸入設(shè)備或者其它觸覺輸入等。
圖示性部件
圖2是圖示了用于實(shí)現(xiàn)上下文驅(qū)動的多用戶系統(tǒng)的示例技術(shù)200的方框圖。示例技術(shù)200可以包括復(fù)制框架120和交互框架134。復(fù)制框架120可以使用如上面參考圖1討論的分布式計(jì)算資源102來實(shí)現(xiàn)。交互框架134可以使用如上面參考圖1討論的計(jì)算設(shè)備104來實(shí)現(xiàn)。分布式計(jì)算資源102和計(jì)算設(shè)備104可以經(jīng)由相應(yīng)的通信接口116、130進(jìn)行通信。
在上面介紹的客戶支持示例中,客戶正在使用計(jì)算設(shè)備104(1)來請求支持,以及,客戶支持技術(shù)人員正在使用計(jì)算設(shè)備104(2)來提供支持。計(jì)算設(shè)備104(2)可以包括在文本中參考計(jì)算設(shè)備104(1)描述的部件,為簡潔起見,未示出那些部件。計(jì)算設(shè)備104(1)、104(2)被連接到網(wǎng)絡(luò)106,并且被配置為經(jīng)由分布式計(jì)算資源102互相通信。其它配置是可能的,并且在本文中描述了額外的示例。
多用戶系統(tǒng)是上下文驅(qū)動的。即,計(jì)算設(shè)備104(1)、104(2)具有對如上面描述的上下文的相應(yīng)部分的基本實(shí)時的訪問。計(jì)算設(shè)備104(1)、104(2)中的一個計(jì)算設(shè)備可以例如通過在數(shù)據(jù)庫中添加、移除或者改變信息來修改上下文。修改因此基本實(shí)時地對計(jì)算設(shè)備104(1)、104(2)中的另一個計(jì)算設(shè)備可見。上下文可以被分布式計(jì)算資源102存儲和管理。
在客戶支持示例和其它的示例中,計(jì)算設(shè)備104(1)的交互框架134經(jīng)由用戶界面136接收對于支持的請求。例如,用戶可以使用web瀏覽器訪問支持網(wǎng)站,或者啟動支持應(yīng)用或者智能電話應(yīng)用。請求被交互框架134接收。如本文中使用的,術(shù)語“數(shù)據(jù)記錄”指可以被用于或者是在修改本地上下文數(shù)據(jù)132時有用的例如通過用戶界面136或者經(jīng)由(一個或者多個)通信接口130被提供給交互框架134的數(shù)據(jù)。
繼續(xù)客戶支持示例,響應(yīng)于指示用戶已訪問支持網(wǎng)站的數(shù)據(jù)記錄,交互框架134確定本地上下文數(shù)據(jù)132是否應(yīng)當(dāng)被修改,并且作出任何合適的修改。交互框架134可以額外地或者替換地作出例如由對本地上下文數(shù)據(jù)132的修改觸發(fā)的對用戶界面136的形式或者內(nèi)容任何期望的變更。例如,交互框架134可以在用戶導(dǎo)航到支持網(wǎng)站時將本地上下文數(shù)據(jù)132修改為具有請求的日期和時間,以及將用戶界面136的形式或者內(nèi)容變更為指示所請求的頁面正在加載(例如,通過顯示進(jìn)度條或者下拉列表)。交互框架134確定是否對本地上下文數(shù)據(jù)132的變更中的任何變更應(yīng)當(dāng)被復(fù)制到其它設(shè)備,并且經(jīng)由通信接口130發(fā)射任何合適的更新記錄。例如,交互框架134可以發(fā)射包括關(guān)于所接收的對于支持網(wǎng)頁的請求和關(guān)于請求支持的用戶的身份的上下文信息的更新記錄。
分布式計(jì)算資源102從計(jì)算設(shè)備104接收(一個或者多個)更新記錄,并且將它們傳遞給復(fù)制框架120。復(fù)制框架120確定上下文數(shù)據(jù)118是否應(yīng)當(dāng)被修改,并且如果是,則作出合適的修改。例如,復(fù)制框架120可以記錄關(guān)于所接收的對于支持網(wǎng)頁的請求的上下文信息。
響應(yīng)于上下文數(shù)據(jù)118的變更,或者響應(yīng)于經(jīng)由通信接口116作出的數(shù)據(jù)發(fā)射或者接收,復(fù)制框架120可以激活一個或多個觀察者單元202。觀察者單元202可以包括在與復(fù)制框架120相同的分布式計(jì)算資源102上或者在不同的(一個或者多個)分布式計(jì)算資源102上執(zhí)行的計(jì)算機(jī)程序指令或者邏輯。復(fù)制框架120可以例如經(jīng)由通信接口116、例如對動態(tài)鏈接庫的過程調(diào)用或者(一個或者多個)分布式計(jì)算資源102的過程間通信(ipc)或者遠(yuǎn)程過程調(diào)用(rpc)子系統(tǒng)與(一個或者多個)觀察者單元202通信。(一個或者多個)觀察者單元202可以例如使用諸如c#這樣的microsoft.net語言或者諸如javascript這樣的語言被實(shí)現(xiàn)為軟件插件。
觀察者單元202可以對來自所選擇的(一個或者多個)源、具有所選擇的(一個或者多個)類型、、具有所選擇的(一個或者多個)值或者(一個或者多個)值的(一個或者多個)范圍或者那些項(xiàng)的任何組合的信息作出響應(yīng)。觀察者202對其作出響應(yīng)的準(zhǔn)則在本文中可以被稱為其“觸發(fā)條件”。每個觀察者單元202可以指定其自己的觸發(fā)條件,或者,多個觀察者單元202可以共享觸發(fā)條件。每個觀察者單元202可以額外地或者替換地指定其自己的輸入準(zhǔn)則?!拜斎霚?zhǔn)則”指示對應(yīng)的觀察者單元202預(yù)期接收哪些數(shù)據(jù)以進(jìn)行處理。每個觀察者單元202可以指定其自己的輸入準(zhǔn)則,或者多個觀察者單元202可以共享輸入準(zhǔn)則。在一個示例中,輸入準(zhǔn)則包括將針對所存儲的上下文數(shù)據(jù)118被執(zhí)行的數(shù)據(jù)庫查詢,并且對應(yīng)的觸發(fā)條件是數(shù)據(jù)庫查詢返回至少一行(即,上下文數(shù)據(jù)118中的至少一些數(shù)據(jù)與數(shù)據(jù)庫查詢中闡述的條件相匹配)。
觀察者單元202可以響應(yīng)于信息滿足該觀察者單元202的觸發(fā)條件采取任何期望的行動。在一些示例中,觀察者單元202可以響應(yīng)于所接收的信息而請求復(fù)制框架120修改上下文數(shù)據(jù)118。對修改的該請求允許上下文數(shù)據(jù)118的變更,以觸發(fā)上下文數(shù)據(jù)118的其它變更。對上下文數(shù)據(jù)118中的具體變更的響應(yīng)可以取決于在任何給定的時間哪個(哪些)觀察者單元202被運(yùn)行地耦合到復(fù)制框架120而不同。
在客戶支持示例中,觀察者單元202可以響應(yīng)于接收支持請求進(jìn)行觸發(fā)。該觀察者單元202可以訪問與提交請求的用戶相對應(yīng)的上下文數(shù)據(jù)118。上下文數(shù)據(jù)118可以包括關(guān)于該用戶的偏好或者背景的信息。觀察者單元202可以基于關(guān)于偏好或者背景的信息確定被請求的支持網(wǎng)頁應(yīng)當(dāng)如何被呈現(xiàn)。觀察者單元202然后可以使用所確定的呈現(xiàn)將被請求的支持網(wǎng)站發(fā)射給計(jì)算設(shè)備104(1)。額外地或者替換地,觀察者單元202可以將上下文數(shù)據(jù)118修改為指示所確定的呈現(xiàn)。web服務(wù)器(例如,在分布式計(jì)算資源102或者另一個服務(wù)器上運(yùn)行的)可以例如使用觀察者單元202從上下文數(shù)據(jù)118中檢索所確定的呈現(xiàn),并且具有包括對網(wǎng)頁的所確定的呈現(xiàn)的修改的觸發(fā)條件。web服務(wù)器然后可以使用所確定的呈現(xiàn)將被請求的支持網(wǎng)站發(fā)射給計(jì)算設(shè)備104(1)。在下面討論的圖3中示出了對該示例的圖示。
在一些示例中,復(fù)制框架120包括或者被運(yùn)行地連接到分析框架204。分析框架204可以執(zhí)行對上下文數(shù)據(jù)118或者觸發(fā)條件的具體集合的除上下文之外的其它信息的分析。例如,分析框架204可以收集對上下文數(shù)據(jù)118或者上下文數(shù)據(jù)118的時間點(diǎn)采樣的變更,并且執(zhí)行機(jī)器學(xué)習(xí),以便確定針對一個或多個觀察者單元202的新的或者經(jīng)修改的觸發(fā)條件。為簡潔起見,未在圖2中示出分析框架204的內(nèi)部細(xì)節(jié)。分析框架204可以在內(nèi)部執(zhí)行處理、請求來自分布式計(jì)算資源102(m)的處理或者執(zhí)行其任何組合。
分析框架204可以作為專用代碼或者使用一個或多個觀察者單元202被實(shí)現(xiàn)。例如,分析框架204可以包括記錄觀察者單元202,記錄觀察者單元202對上下文數(shù)據(jù)118的所選擇的變更進(jìn)行觸發(fā),并且將上下文數(shù)據(jù)118的相關(guān)部分拷貝或者摘要到例如分布式計(jì)算資源102(2)這樣的離線存儲裝置中,離線存儲裝置代表數(shù)據(jù)庫服務(wù)器。分析框架204還可以包括更新觀察者單元202,更新觀察者單元202例如從機(jī)器學(xué)習(xí)引擎(未示出)接收新的或者已更新的觸發(fā)條件,并且將該條件發(fā)射給其它的、相關(guān)的觀察者單元202以進(jìn)行處理,或者請求復(fù)制框架120根據(jù)該新條件修改上下文數(shù)據(jù)118。
在一些示例中,每個計(jì)算設(shè)備104在該計(jì)算設(shè)備104的本地上下文數(shù)據(jù)132中保存上下文數(shù)據(jù)118的少于全部的數(shù)據(jù)。在客戶支持示例中,用戶的計(jì)算設(shè)備104(1)可以存儲包括由該用戶作出的服務(wù)請求的日期和時間的本地上下文數(shù)據(jù)132。技術(shù)人員的計(jì)算設(shè)備104(2)可以存儲包括該用戶的服務(wù)歷史、計(jì)算設(shè)備104(1)的服務(wù)歷史(例如,如果計(jì)算設(shè)備104(1)已具有多于一個所有者的話)、可能與用戶對支持的請求有關(guān)的被該用戶購買的產(chǎn)品的銷售信息和來自已具有與由請求用戶經(jīng)歷的問題相似的問題的其它用戶的信息的本地上下文數(shù)據(jù)132。
例如由于來自(一個或者多個)觀察者單元202或者分析框架204的請求或者由于經(jīng)由(一個或者多個)通信接口116進(jìn)行的數(shù)據(jù)交換導(dǎo)致的對修改上下文數(shù)據(jù)118的請求在本文中被稱為“更新記錄”。在接收更新記錄時,復(fù)制框架120可以確定例如與相應(yīng)的(一個或者多個)計(jì)算設(shè)備104相對應(yīng)的一個或多個傳播記錄。復(fù)制框架120然后可以將(一個或者多個)傳播記錄發(fā)射給相應(yīng)的(一個或者多個)計(jì)算設(shè)備104。繼續(xù)客戶支持示例,在用戶請求支持時,在上下文數(shù)據(jù)118中為該請求記錄日志。復(fù)制框架120然后將(一個或者多個)傳播記錄發(fā)射給與相關(guān)的支持技術(shù)人員相對應(yīng)的(一個或者多個)計(jì)算設(shè)備104。那些(一個或者多個)計(jì)算設(shè)備104在相應(yīng)的本地上下文數(shù)據(jù)132中為該請求記錄日志。發(fā)射傳播記錄可以減少支持技術(shù)人員尋找信息花費(fèi)的時間,提高用戶與支持技術(shù)人員之間的交互的效率。將傳播記錄而非整個更新記錄發(fā)射給(一個或者多個)計(jì)算設(shè)備104可以通過僅發(fā)射每個具體的計(jì)算設(shè)備104可以利用的信息減少網(wǎng)絡(luò)帶寬。例如,被銷售人員使用的(一個或者多個)計(jì)算設(shè)備104可以在本地上下文數(shù)據(jù)132中存儲關(guān)于用戶的熟人或者朋友的信息。被支持技術(shù)人員使用的(一個或者多個)計(jì)算設(shè)備104將不需要這樣的信息,因此不將該信息發(fā)射給這樣的設(shè)備可以減少帶寬使用。
在一些示例中,在(一個或者多個)分布式計(jì)算資源102與(一個或者多個)計(jì)算設(shè)備104之間雙向地發(fā)射上下文修改(復(fù)制)。這在圖2中由虛線箭頭圖形化地代表。箭頭206代表更新記錄,即,例如由計(jì)算設(shè)備104(1)主動傳輸?shù)椒植际接?jì)算資源102的用于如上面討論的那樣修改上下文數(shù)據(jù)118的數(shù)據(jù)。該數(shù)據(jù)可以包括“拉取”數(shù)據(jù)(從計(jì)算設(shè)備104(1)的角度看),例如,利用來自計(jì)算設(shè)備104(1)的超文本傳輸協(xié)議(http)請求被傳輸?shù)尼槍W(wǎng)頁的數(shù)據(jù)。箭頭208代表例如在分布式計(jì)算資源102的帶領(lǐng)下傳輸?shù)臄?shù)據(jù)。該數(shù)據(jù)可以包括例如經(jīng)由web套接字連接傳輸?shù)摹巴扑汀睌?shù)據(jù)。如本文中使用的,“傳播記錄”包括從分布式計(jì)算資源102發(fā)射到計(jì)算設(shè)備104的用于修改本地上下文數(shù)據(jù)132的數(shù)據(jù)。在一些示例中,本地上下文數(shù)據(jù)132如上面討論的那樣僅包括上下文數(shù)據(jù)118的合適子集。箭頭206、208不代表上下文數(shù)據(jù)118與本地上下文數(shù)據(jù)132之間的直接連接。作為代替,箭頭206、208圖示了一些示例中的雙向信息流,并且圖示了在其中被使用的術(shù)語。
經(jīng)由通信接口116、130進(jìn)行的通信可以使用各種協(xié)議或者格式,例如諸如soap服務(wù)這樣的基于rpc的web服務(wù)、rest風(fēng)格的web服務(wù)、web套接字、傳輸控制協(xié)議(tcp)、用戶數(shù)據(jù)報協(xié)議(udp)、netbios或者其它協(xié)議。也可以使用諸如安全套接字層(ssl)、odata、oauth2和openid這樣的認(rèn)證、加密和授權(quán)標(biāo)準(zhǔn)。在一些示例中,使用rest風(fēng)格的web服務(wù)傳輸更新記錄。在一些示例中,使用web套接字連接傳輸傳播記錄。
在一些示例中,交互框架134、復(fù)制框架120或者(一個或者多個)觀察者單元202中的一項(xiàng)或多項(xiàng)包括例如通過數(shù)據(jù)管道部件被連接的內(nèi)部數(shù)據(jù)過濾器部件。例如,(一個或者多個)觀察者單元202可以包括針對相關(guān)事件掃描來自復(fù)制框架120的上下文數(shù)據(jù)修改的搜索過濾器、根據(jù)修改中的值產(chǎn)生新的值的變換過濾器和對新的值進(jìn)行格式化以用于包括在上下文數(shù)據(jù)118中的輸出過濾器。過濾器可以包括被配置為處理上下文數(shù)據(jù)118或者本地上下文數(shù)據(jù)132中的具體的數(shù)據(jù)結(jié)構(gòu)的過濾器。交互框架134可以包括用于選擇哪些數(shù)據(jù)記錄導(dǎo)致產(chǎn)生更新記錄的過濾器和用于選擇哪些數(shù)據(jù)記錄觸發(fā)用戶界面變更的分離過濾器。在一些示例中,使用microsoftreactiveextensions(“rx”)或者觀察者設(shè)計(jì)模式的其它實(shí)現(xiàn)方式來實(shí)現(xiàn)數(shù)據(jù)過濾器部件和數(shù)據(jù)管道部件。
在一些示例中,上下文驅(qū)動的多用戶系統(tǒng)可以包括使用數(shù)據(jù)管道部件和數(shù)據(jù)過濾器部件(“管道和過濾器”設(shè)計(jì)模式)實(shí)現(xiàn)觸發(fā)邏輯的觀察者單元202或者(一個或者多個)交互框架134。在經(jīng)由更新記錄從本地上下文數(shù)據(jù)132向上下文數(shù)據(jù)118或者經(jīng)由投影記錄從上下文數(shù)據(jù)118向本地上下文數(shù)據(jù)132復(fù)制數(shù)據(jù)時,可以將被復(fù)制的數(shù)據(jù)提供給處理管線中的數(shù)據(jù)過濾器部件。這些處理管線中的過濾器部件可以對所選擇的變更作出響應(yīng),以便提供用于包括在上下文數(shù)據(jù)118或者本地上下文數(shù)據(jù)132中的額外的或者經(jīng)修改的數(shù)據(jù)。在一些示例中,觀察者單元202可以包括響應(yīng)于alice的最愛的歌曲列表的變更來計(jì)算alice更喜歡哪些類型的音樂的統(tǒng)計(jì)數(shù)據(jù)的處理管線。那些統(tǒng)計(jì)數(shù)據(jù)可以被添加到上下文數(shù)據(jù)118,從那里它們可以被復(fù)制到bob的本地上下文數(shù)據(jù)132。bob然后可以使用統(tǒng)計(jì)數(shù)據(jù)來為alice選擇生日禮物。在一些示例中,交互框架134可以包括響應(yīng)于對統(tǒng)計(jì)數(shù)據(jù)的復(fù)制確定是否自最后一次bob為她買專輯以來alice的音樂品味已顯著改變,以及如果是這樣則經(jīng)由用戶界面136通知bob的處理管線。
在一些示例中,上下文驅(qū)動的多用戶系統(tǒng)提供諸如天氣警報這樣的地理上本地化的信息。分布式計(jì)算資源102包括被配置為生成和發(fā)射警報的例如web服務(wù)器這樣的服務(wù)器。例如智能電話的計(jì)算設(shè)備104被配置為接收和顯示警報。上下文可以包括何時給定的用戶請求天氣信息或者警報、何時警報被遞送給該用戶、在作出這樣的請求或者接收這樣的警報時該用戶位于何處(例如,用戶的智能電話的gps位置數(shù)據(jù))、每個警報的類型、該用戶是否例如通過在吐司通知(toastnotification)上進(jìn)行點(diǎn)擊來請求與給定的警報相關(guān)的額外的信息、或者該用戶通常位于哪里的每用戶的記錄。(一個或者多個)觀察者單元202或者分析框架204可以通過修改上下文數(shù)據(jù)118或者觸發(fā)條件以使得僅符合每個用戶的具體偏好的天氣警報將被發(fā)送來對上下文和更新記錄作出響應(yīng)。
例如,住在北達(dá)科他州的用戶可能在冬天不想要暴風(fēng)雪警報,因?yàn)樵撚脩粢话泐A(yù)期大雪。然而,在住在亞利桑那州的用戶訪問北達(dá)科他州時,暴風(fēng)雪警報對于該用戶可能是更有用的。類似地,住在亞利桑那州的用戶在亞利桑那州可能不想要高溫警告,但住在北達(dá)科他州的用戶在訪問亞利桑那州時可能想要高溫警告。相應(yīng)地,示例觀察者單元202可以對指示用戶針對其請求額外的信息的那些警報的上下文數(shù)據(jù)作出響應(yīng)。示例觀察者單元202可以預(yù)測用戶對暴風(fēng)雪警報還是高溫警告更感興趣,并且將該預(yù)測存儲在上下文數(shù)據(jù)118中,從那里該預(yù)測可以被復(fù)制到用戶的(一個或者多個)計(jì)算設(shè)備104的本地上下文數(shù)據(jù)132。計(jì)算設(shè)備104然后可以從本地上下文數(shù)據(jù)132中檢索投影,并且僅顯示由該預(yù)測指示的天氣警報。類似地,上下文數(shù)據(jù)118可以包括天氣警報的頻率,該頻率例如默認(rèn)是每天一個。示例觀察者單元202可以覆蓋正常的頻率,以便導(dǎo)致警報在針對用戶的區(qū)域的龍卷風(fēng)警告發(fā)布時被發(fā)送,而不考慮是否用戶已接收天氣警報。另一個示例觀察者單元202可以在用戶位于距離該用戶的住宅地址多于例如100英里的地方時通過將上下文數(shù)據(jù)118修改為指示用戶應(yīng)當(dāng)接收與用戶的當(dāng)前位置而非用戶的家庭位置相關(guān)的警報對來自用戶的對于天氣信息的請求作出響應(yīng)。這可以允許不具有位置傳感器的計(jì)算設(shè)備104調(diào)整它們的行為以適應(yīng)用戶的當(dāng)前的位置。
在一些示例中,上下文驅(qū)動的多用戶系統(tǒng)提供與管理數(shù)據(jù)中心中的功率消耗相關(guān)的服務(wù)。用戶包括數(shù)據(jù)中心的人類操作員、數(shù)據(jù)中心客戶(例如,主機(jī)托管客戶)和提供指示與數(shù)據(jù)中心的部件有關(guān)的功率消耗、溫度、正常運(yùn)行時間或者其它狀態(tài)信息的更新記錄或者接收用于控制諸如空調(diào)系統(tǒng)或者斷路器這樣的數(shù)據(jù)中心的控制部件的傳播記錄或者其它命令的自動化代理或者其它軟件或者硬件系統(tǒng)。在一些示例中,數(shù)據(jù)中心可以具有位于遍及設(shè)施的不同的電力電路上的冗余服務(wù)器。上下文數(shù)據(jù)118可以包括功率消耗和斷路器跳閘的時間歷史。分析框架204可以例如使用神經(jīng)網(wǎng)絡(luò)對時間歷史進(jìn)行分析,以便確定很可能導(dǎo)致斷路器跳閘的功率消耗的模式。分析框架204然后可以將一個或多個觀察者單元202的觸發(fā)條件修改為對所確定的模式作出響應(yīng)。在被觸發(fā)時,那些(一個或者多個)觀察者單元202可以將上下文數(shù)據(jù)118修改為向自動化代理用戶指示數(shù)據(jù)中心的相關(guān)部分應(yīng)當(dāng)被斷電以去除負(fù)載,以及網(wǎng)絡(luò)業(yè)務(wù)被轉(zhuǎn)移到其它電路上的備份機(jī)。這可以增加單個機(jī)器和數(shù)據(jù)中心整體上的正常運(yùn)行時間,以及降低預(yù)期的服務(wù)中斷的概率。
在一些示例中,上下文驅(qū)動的多用戶系統(tǒng)是促進(jìn)用戶之間的實(shí)時交互和用戶之間的簡檔信息的交換的系統(tǒng)。簡檔信息可以被存儲在上下文數(shù)據(jù)118中。這樣的系統(tǒng)的示例包括可以支持?jǐn)?shù)百或者數(shù)千的用戶實(shí)時交互的多玩家在線游戲系統(tǒng)。在這樣的系統(tǒng)中將傳播記錄限于專用于每個計(jì)算設(shè)備104的上下文數(shù)據(jù)118的子集可以顯著降低帶寬消耗和等待時間。在一些示例中,這樣的系統(tǒng)的用戶可以將其它用戶指定為“朋友”。alice的朋友的簡檔信息可以被復(fù)制到alice的本地上下文數(shù)據(jù)132,以使得她具有對她的朋友的狀態(tài)信息的低等待時間訪問,她的朋友的狀態(tài)信息例如是每個朋友當(dāng)前正在玩哪個游戲。在一些示例中,每個用戶的計(jì)算設(shè)備104可以將上下文數(shù)據(jù)118更新為包括當(dāng)前的ping時間、被放棄的分組的計(jì)數(shù)或者對于在線游戲系統(tǒng)來說在選擇用于在正在玩給定的游戲的用戶之間傳輸實(shí)時游戲信息的網(wǎng)絡(luò)連接是有用的其它信息。
圖3示出了客戶支持示例的上下文中的例如參考圖2討論的例如網(wǎng)頁300這樣的示例客戶支持用戶界面的圖形化表示。網(wǎng)頁300是由上下文驅(qū)動的多用戶系統(tǒng)提供的用于如下面在各種示例中討論的那樣為每個客戶呈現(xiàn)反映與該具體的客戶相關(guān)的上下文數(shù)據(jù)118的信息和選項(xiàng)的示例界面。網(wǎng)頁300具有兩個主要部分:在線服務(wù)部分302和技術(shù)人員呼叫部分304。在線服務(wù)部分包括可例如被用戶選擇以便執(zhí)行病毒移除(按鈕306)或者pc調(diào)整(按鈕308)的按鈕。技術(shù)人員呼叫部分304包括可例如被在線聊天、skype或者電話選擇以便建立與相應(yīng)的支持技術(shù)人員的通信的按鈕310(1)-310(4)。每個按鈕306、308、310(1)-310(4)可以包括或者關(guān)聯(lián)例如用于幫助用戶決定用戶期望哪種形式的支持的額外的信息。在所圖示的示例中,每個按鈕310(1)-310(4)包括一些組件,為清楚起見,僅在按鈕310(1)上標(biāo)記了這樣的組件。這些組件包括技術(shù)人員的圖片312、技術(shù)人員的名字314、基于之前的呼叫的技術(shù)人員的排名316和技術(shù)人員的主要語言318(由說該語言的國家的旗幟圖形化地代表)。這些組件中的全部組件可以被包括在上下文數(shù)據(jù)118中。
仍然參考圖3以及還參考圖2,繼續(xù)客戶支持示例,在用戶請求網(wǎng)頁300時,觀察者單元202可以基于來自上下文數(shù)據(jù)118的關(guān)于用戶偏好或者背景的信息而確定被請求的網(wǎng)頁300應(yīng)當(dāng)如何被呈現(xiàn)。例如,該用戶或者與作出請求的用戶處于相同的人群中的其它用戶可能傾向于更喜歡與技術(shù)人員交談而非使用自動化的服務(wù)。相應(yīng)地,觀察者單元202可以確定部分304應(yīng)當(dāng)在網(wǎng)頁300上被呈現(xiàn)在部分302之上。由于用戶一般在頁面的頂部開始查看網(wǎng)頁,將用戶更喜歡的選擇定位得更靠近頂部可以減少用戶在找到更喜歡的選擇之前閱讀頁面花費(fèi)的時間的量。該定位可以減少用戶工作量,以及使與網(wǎng)頁300的用戶交互更高效。該定位還可以減少被由用戶作出的探索性的選擇消耗的網(wǎng)絡(luò)帶寬。例如,取代選擇病毒移除按鈕306,決定不前進(jìn),以及然后選擇技術(shù)人員按鈕310(1)-310(4),用戶可以首先選擇技術(shù)人員按鈕310(1)-310(4)。使用觀察者單元202作出對網(wǎng)頁300的安排的確定允許基于上下文數(shù)據(jù)118中的關(guān)于其它用戶的信息確定放置,即使用戶未具體地指示與頁面安排相關(guān)的偏好,這也可以提升與網(wǎng)頁300的用戶交互的效率。
在一些示例中,觀察者單元202可以定制網(wǎng)頁300的內(nèi)容以及布局。例如,如果上下文數(shù)據(jù)118指示請求的用戶只說日語或者請求的用戶的ip地址處在其它用戶通常選擇說日語的技術(shù)人員的范圍中,則觀察者單元202可以指導(dǎo)技術(shù)人員按鈕310(3)(說日語的matsukoy.)被呈現(xiàn),以及技術(shù)人員按鈕310(1)、310(2)和310(4)在網(wǎng)頁300上被隱藏或者以其它方式不被呈現(xiàn)或者以比技術(shù)人員按鈕310(3)更不可見的方式(例如,更小或者更暗)被呈現(xiàn)。
網(wǎng)頁300的布局可以另外或者替換地由計(jì)算設(shè)備104(1)的交互框架134確定。在一些示例中,網(wǎng)頁300包括例如采用javascript、vbscript或者其它腳本語言的可被交互框架134執(zhí)行為從本地上下文數(shù)據(jù)132中檢索數(shù)據(jù)和調(diào)整網(wǎng)頁300的代碼。在用戶請求網(wǎng)頁300時,代碼和初始布局被立即返回,以便減少初始頁面加載時間。交互框架134然后可以執(zhí)行所接收的代碼中的至少一些代碼,以便例如經(jīng)由之前所接收的傳播記錄使用已被存儲在本地上下文132中的數(shù)據(jù)顯示網(wǎng)頁300的元素。
在頁面被加載時,交互框架134可以發(fā)送例如是指示用戶現(xiàn)在正在查看網(wǎng)頁300的“上下文變更”記錄這樣的更新記錄。該更新記錄可以對觀察者單元202進(jìn)行觸發(fā),觀察者單元202可以通過導(dǎo)致被網(wǎng)頁300需要的數(shù)據(jù)從上下文數(shù)據(jù)118被復(fù)制到本地上下文132中作出響應(yīng)。一旦數(shù)據(jù)存在于本地上下文132中,交互框架134可以基于新的數(shù)據(jù)執(zhí)行網(wǎng)頁300的進(jìn)一步的代碼以便更新網(wǎng)頁300。使用具有之后跟隨上下文驅(qū)動的更新的初始加載的“兩階段”方法可以允許對初始選擇的更快速的顯示,從而提升用戶效率。使用兩階段方法還可以使用web套接字連接(新被建立的或者之前被建立的)來傳輸數(shù)據(jù),這可以是比打開新的http連接并且通過http傳輸數(shù)據(jù)更快的。此外,使用兩階段方法允許計(jì)算設(shè)備102(1)根據(jù)支持用戶交互的需要將額外的數(shù)據(jù)復(fù)制到本地上下文數(shù)據(jù)134。這可以降低帶寬使用,因?yàn)閮H被需要的數(shù)據(jù)可以被傳輸。
在一些示例中,網(wǎng)頁300可以初始顯示在線服務(wù)部分302而不顯示技術(shù)人員部分304。觀察者單元202可以基于用戶報告的問題、人群或者上下文數(shù)據(jù)118中的其它信息選擇候選技術(shù)人員。觀察者單元202然后可以將候選技術(shù)人員的信息添加到上下文數(shù)據(jù)118,從那里該信息可以被復(fù)制到本地上下文數(shù)據(jù)134。網(wǎng)頁300的代碼然后可以顯示具有針對每個候選技術(shù)人員的技術(shù)人員按鈕的部分304,例如按鈕310(1)。
在一些示例中,響應(yīng)于對技術(shù)人員按鈕310(1)-310(4)中的一個技術(shù)人員按鈕的用戶選擇,復(fù)制框架120將上下文數(shù)據(jù)118修改為指示哪個技術(shù)人員被選擇。復(fù)制框架120然后向所選擇的技術(shù)人員的計(jì)算設(shè)備104(2)發(fā)送傳播記錄。該發(fā)送可以為所選擇的技術(shù)人員提供對關(guān)于請求的用戶的信息的更高效的訪問,從而提升該技術(shù)人員與計(jì)算設(shè)備104(2)的交互的效率。計(jì)算設(shè)備104(2)的用戶界面136然后可以呈現(xiàn)具有用于對用戶進(jìn)行輔助的選項(xiàng)或者工具(例如遠(yuǎn)程登錄工具)的所選擇的技術(shù)人員。
在所選擇的技術(shù)人員與請求的用戶一起工作時,計(jì)算設(shè)備104(2)的交互框架134可以將更新記錄發(fā)射給復(fù)制框架120。復(fù)制框架120可以響應(yīng)于更新記錄將傳播記錄發(fā)射給請求的用戶的計(jì)算設(shè)備104(1)。計(jì)算設(shè)備104(1)然后可以至少部分上基于經(jīng)修改的本地上下文數(shù)據(jù)132變更它的用戶界面136。類似地,計(jì)算設(shè)備104(1)可以發(fā)射更新記錄,復(fù)制框架120將傳播記錄提供給計(jì)算設(shè)備104(2),并且計(jì)算設(shè)備104(2)變更它的用戶界面136的形式或者內(nèi)容。對上下文修改的該雙向交換允許請求的用戶、支持技術(shù)人員和分布式計(jì)算資源102維護(hù)對于解決用戶的問題的進(jìn)度的一致視圖。例如,計(jì)算設(shè)備104(2)可以提供指示對于解決問題的每個嘗試的更新記錄。復(fù)制框架120可以將這樣的指示記錄日志在上下文數(shù)據(jù)118中,而不將對應(yīng)的傳播記錄提供給請求的用戶的計(jì)算設(shè)備104(1)。該記錄日志而不進(jìn)行對應(yīng)的傳播允許提供支持的公司和技術(shù)人員查看具體問題的完整歷史,這可以允許更有效地實(shí)施具體的問題的后續(xù)呼叫或者逐步升級。此外,記錄日志而沒有向計(jì)算設(shè)備104(1)的傳播減少了計(jì)算設(shè)備104(1)的存儲空間和由計(jì)算設(shè)備104(1)或者在與計(jì)算設(shè)備104(1)通信時消耗的帶寬,而從請求的用戶的角度看不損失功能。
記錄日志而不傳播還可以允許精簡用戶與提供支持的公司之間的交互。在一些示例中,觀察者單元202可以分析與請求的用戶的交互的歷史,并且指導(dǎo)包括或者突出地顯示與很可能能夠解決用戶問題的技術(shù)人員相對應(yīng)的按鈕310(1)-310(4)中的一個(一些)按鈕的網(wǎng)頁300被呈現(xiàn)。這樣的分析和呈現(xiàn)可以降低為解決問題將需要逐步升級的可能性,以及因此可以減少解決問題的過程中消耗的網(wǎng)絡(luò)帶寬的量。
在一些示例中,觀察者單元202可以確定跨多個用戶一致的行為模式,并且將網(wǎng)頁300配置為相應(yīng)地作出響應(yīng)。例如,如果用戶的行為歷史與已表達(dá)不滿意的其它用戶的行為歷史相對應(yīng),則觀察者單元202可以指導(dǎo)對更有經(jīng)驗(yàn)的(例如,第二等級的)技術(shù)人員的訪問通過按鈕310(1)-310(4)被呈現(xiàn)。這可以減少解決用戶的問題需要的時間,或者減少在找出解決方案時消耗的網(wǎng)絡(luò)帶寬。這是“如果客戶足夠不滿意則逐步升級”的業(yè)務(wù)規(guī)則的示例。(一個或者多個)觀察者單元202可以各自實(shí)現(xiàn)一個或多個業(yè)務(wù)規(guī)則,或者可以協(xié)作地實(shí)現(xiàn)一個或多個業(yè)務(wù)規(guī)則。在這些示例中的一些示例中,分析框架204可以通過對上下文數(shù)據(jù)118的分析確定行為模式或者所選擇的業(yè)務(wù)規(guī)則的其它方面,以及將對應(yīng)的觸發(fā)條件提供給觀察者單元202。
圖4是示出例如多用戶系統(tǒng)的服務(wù)器這樣的分布式計(jì)算資源102的示例部件的原理圖。所圖示的示例中的分布式計(jì)算資源102包括(一個或者多個)處理單元110,其可以被運(yùn)行地耦合到例如高速緩存存儲器這樣的存儲器402。分布式計(jì)算資源102還包括被連接到(一個或者多個)網(wǎng)絡(luò)106(被虛線示出)的(一個或者多個)通信接口116。(一個或者多個)處理單元110經(jīng)由總線114被耦合到(一個或者多個)通信接口116和計(jì)算機(jī)可讀介質(zhì)112。所圖示的示例中的計(jì)算機(jī)可讀介質(zhì)112包括上下文數(shù)據(jù)118。在一些示例中,上下文數(shù)據(jù)118可以是多用戶系統(tǒng)的上下文數(shù)據(jù)。上下文數(shù)據(jù)118可以是與一個或多個用戶與或者經(jīng)由多用戶系統(tǒng)進(jìn)行的(一個或者多個)交互相關(guān)的,以及可以包括來自例如電子設(shè)備104的傳感器512(圖5)這樣的多個數(shù)據(jù)源中的每個數(shù)據(jù)源的相應(yīng)數(shù)據(jù)。
在一些示例中,計(jì)算機(jī)可讀介質(zhì)112可以將上下文數(shù)據(jù)118存儲在諸如數(shù)據(jù)庫或者數(shù)據(jù)倉庫這樣的結(jié)構(gòu)化或者非結(jié)構(gòu)化的數(shù)據(jù)存儲裝置中。在一些示例中,計(jì)算機(jī)可讀介質(zhì)112可以包括語料或者關(guān)系數(shù)據(jù)庫,其具有用于使能實(shí)現(xiàn)數(shù)據(jù)訪問的一個或多個表、數(shù)組、索引、存儲過程等,例如包括超文本標(biāo)記語言(html)表、javascript對象記號(json)記錄、資源描述框架(rdf)表、web本體論語言(owl)表或者可擴(kuò)展標(biāo)記語言(xml)表??梢允褂门c諸如html、xml和javascript這樣的行業(yè)標(biāo)準(zhǔn)一致的表格式。
在所圖示的示例中,上下文數(shù)據(jù)118包括一個或多個上下文數(shù)據(jù)集404(1)-404(k),其中,k是任何大于或者等于1的整數(shù)。每個上下文數(shù)據(jù)集404可以存儲不同類型的數(shù)據(jù)或者關(guān)于不同的對象或者人的數(shù)據(jù)。復(fù)制框架120可以如下面參考確定傳播模塊414討論的那樣作為任何給定的傳播記錄的部分提供來自(一個或者多個)上下文數(shù)據(jù)集404中的一個或多個上下文數(shù)據(jù)集404的數(shù)據(jù)。在一個示例中,上下文數(shù)據(jù)集404(1)保存針對一群用戶的支持?jǐn)?shù)據(jù),以及上下文數(shù)據(jù)集404(k)保存關(guān)于一群用戶的銷售數(shù)據(jù)。在另一個示例中,上下文數(shù)據(jù)集404(1)保存與和智能電話的用戶交互相關(guān)的上下文數(shù)據(jù),例如,定制的拼寫詞典和聯(lián)系人,以及,上下文數(shù)據(jù)集404(k)保存與和多玩家游戲系統(tǒng)的用戶交互相關(guān)的上下文數(shù)據(jù)。任何給定的用戶可以由一個或多個上下文數(shù)據(jù)集404中的數(shù)據(jù)代表。
分布式計(jì)算資源102可以被配置為,就第一上下文數(shù)據(jù)集404(1)與一個或多個第一計(jì)算設(shè)備104通信,以及,就第二上下文數(shù)據(jù)集404(k)與一個或多個第二計(jì)算設(shè)備104通信。任何給定的計(jì)算設(shè)備104可以被包括在所述一個或多個第一設(shè)備、所述一個或多個第二設(shè)備或者這兩者中。該安排允許分布式計(jì)算資源102有效地向計(jì)算設(shè)備104提供相關(guān)的上下文數(shù)據(jù),同時將單個上下文數(shù)據(jù)集404維持在合理大小,以及減少處理對任何單個上下文數(shù)據(jù)集404的修改需要的處理器時間。在一些示例中,分布式計(jì)算資源102可以將對于每個上下文數(shù)據(jù)集404的更新推送到正在復(fù)制該上下文數(shù)據(jù)集404的已連接的(一個或者多個)計(jì)算設(shè)備104中的那些計(jì)算設(shè)備104。在一些示例中,分布式計(jì)算資源102可以從例如數(shù)據(jù)庫服務(wù)器102(2)這樣的多個存儲設(shè)備訪問上下文數(shù)據(jù)集404的數(shù)據(jù)。每個計(jì)算設(shè)備104可以從分布式計(jì)算資源102接收對相關(guān)的(一個或者多個)上下文數(shù)據(jù)集404的更新,而不考慮哪個數(shù)據(jù)庫服務(wù)器102(2)存儲任何具體的數(shù)據(jù)項(xiàng)。
在一些示例中,計(jì)算機(jī)可讀介質(zhì)112可以存儲計(jì)算機(jī)程序指令、邏輯或者其它指令。所存儲的指令可以與本文中描述的應(yīng)用或者過程相對應(yīng)。在一些示例中,計(jì)算機(jī)可讀介質(zhì)112存儲復(fù)制框架120、(一個或者多個)觀察者單元202、分析框架204、查詢管理框架406(在下面討論)或者可以被(一個或者多個)處理單元110執(zhí)行的其它軟件的指令。計(jì)算機(jī)可讀介質(zhì)112可以存儲用于被存儲在計(jì)算機(jī)可讀介質(zhì)112中或者被(一個或者多個)處理單元110執(zhí)行的過程、應(yīng)用、組件或者模塊的運(yùn)行的數(shù)據(jù)。在一些示例中,計(jì)算機(jī)可讀介質(zhì)112可以存儲被查詢管理框架406使用的子集指示408或者被分析框架204使用的規(guī)則集合410。每個子集指示408可以標(biāo)識上下文數(shù)據(jù)的相應(yīng)的合適子集,并且與多用戶系統(tǒng)的相應(yīng)的復(fù)制客戶端相對應(yīng)。
被存儲在計(jì)算機(jī)可讀介質(zhì)112上的復(fù)制框架120的模塊可以包括一個或多個模塊或者api,所述模塊或者api被圖示為接收模塊412、確定傳播模塊414和發(fā)射模塊416。在一些示例中,復(fù)制框架120可以包括提交模塊418。在一些示例中,與在下面更詳細(xì)討論的分析框架204的(一個或者多個)模塊一起使用復(fù)制框架120的模塊。
在復(fù)制框架120中,模塊的數(shù)量可以變得更高或者更低,以及一些類型的模塊可以以一些組合被使用。例如,與所圖示的模塊相關(guān)聯(lián)地被描述的功能可以被組合以便被更少數(shù)量的模塊或者api執(zhí)行,或者可以被拆分并且被更大數(shù)量的模塊或者api執(zhí)行。
在一些示例中,復(fù)制框架120的模塊可以包括被配置為接收與所存儲的上下文數(shù)據(jù)118相對應(yīng)的更新記錄的接收模塊412。如上面參考圖2描述的,更新記錄可以與來自(一個或者多個)觀察者單元202或者分析框架204的更新請求或者由于經(jīng)由(一個或者多個)通信接口116進(jìn)行的數(shù)據(jù)交換產(chǎn)生的更新相對應(yīng)。更新記錄可以經(jīng)由通信接口116和網(wǎng)絡(luò)106被直接接收。更新記錄可以例如包括sqlinsert、update、delete或者merge查詢、另一種查詢指定或者h(yuǎn)ttppost、put或者delete請求。更新記錄可以另外或者替換地從(一個或者多個)觀察者單元202或者分析框架204被接收。在一些示例中,接收模塊412可以被配置為,接收與相應(yīng)的、不同的上下文數(shù)據(jù)集404(1)-404(k)相對應(yīng)的多個更新記錄。
在一些示例中,復(fù)制框架120的模塊可以包括被配置為至少部分上基于所接收的更新記錄確定多個(或者至少一個)傳播記錄的確定傳播模塊414。傳播記錄中的每個傳播記錄可以與所存儲的上下文數(shù)據(jù)118的相應(yīng)的、不同的合適子集(即,少于全部的數(shù)據(jù))相對應(yīng)。這可以允許減少處理對各種子集的修改需要的帶寬,提高多用戶系統(tǒng)的速度和性能。
在客戶支持示例中,在用戶的計(jì)算設(shè)備104(1)提供具有與用戶所報告的問題有關(guān)的信息的更新記錄時,確定傳播模塊414可以確定指示問題已被成功地報告的打算用于用戶的計(jì)算設(shè)備104(1)的傳播記錄和指示問題的本質(zhì)的打算用于技術(shù)人員的計(jì)算設(shè)備104(2)的單獨(dú)的傳播記錄。在一些示例中,(一個或者多個)觀察者單元202可以對所接收的更新記錄進(jìn)行處理,以及,確定傳播模塊414可以將這樣的處理的結(jié)果包括在傳播記錄中。繼續(xù)客戶支持示例,觀察者單元202可以對在所接收的更新記錄中被指示的所報告的用戶問題進(jìn)行處理,并且確定可能的解決方案。確定傳播模塊414然后可以將對于所確定的可能的解決方案的指示包括在打算用于用戶的計(jì)算設(shè)備104(1)的傳播記錄中。
在一些示例中,接收模塊412可以接收多個如上面討論的更新記錄。在這些示例中的一些示例中,確定傳播模塊414可以確定例如與相應(yīng)的、不同的上下文數(shù)據(jù)集404(1)-404(k)相對應(yīng)的多個傳播記錄。
在與分析框架204協(xié)作的示例中,分析框架204的修改模塊420可以至少部分上基于所接收的更新記錄和上下文數(shù)據(jù)118確定傳播記錄。下面參考修改模塊420討論了示例。
在與分析框架204協(xié)作的一些示例中,修改模塊420可以進(jìn)一步至少部分上基于一個規(guī)則集合410(或者多于一個規(guī)則集合410)確定傳播記錄。規(guī)則集合可以代表如上面討論的業(yè)務(wù)規(guī)則。下面參考修改模塊420對此作了討論。
在一些示例中,復(fù)制框架120的模塊可以包括被配置為經(jīng)由一個或多個通信接口116發(fā)射多個傳播記錄的發(fā)射模塊416。在一些示例中,發(fā)射模塊416可以將一個或多個傳播記錄發(fā)射給例如具有下面討論的(一個或者多個)傳播接收模塊516的計(jì)算設(shè)備104這樣的一個或多個復(fù)制客戶端。發(fā)射模塊416可以使用microsoftrx或者通過諸如tcp或者由signala庫提供的高層web服務(wù)信道(例如,web套接字或者comet,也被稱為反向ajax)這樣的通信信道運(yùn)行的類似技術(shù)來發(fā)射傳播記錄。在一些示例中,發(fā)射模塊416可以隨多個傳播記錄中的每個傳播記錄發(fā)射相應(yīng)的標(biāo)識信息,例如,對應(yīng)的計(jì)算設(shè)備104的ip地址。
在一些示例中,確定傳播模塊414可以確定多個如上面討論的傳播記錄。在這些示例中的一些示例中,發(fā)射模塊416可以將例如與相應(yīng)的、不同的上下文數(shù)據(jù)集404(1)-404(k)相對應(yīng)的多個傳播記錄中的每個傳播記錄發(fā)射給例如相應(yīng)的計(jì)算設(shè)備104。
在一些示例中,復(fù)制框架120的模塊可以包括被配置為至少部分上基于所接收的更新記錄修改所存儲的上下文數(shù)據(jù)118的提交模塊418。提交模塊418例如可以相對于上下文數(shù)據(jù)118執(zhí)行所提供的sql查詢、對所提供的xpath查詢的結(jié)果應(yīng)用所提供的xsl樣式表并且存儲結(jié)果、或者以其它方式修改上下文數(shù)據(jù)118的(一個或者多個)表或者其它內(nèi)容或者結(jié)構(gòu)。
在一些示例中,(一個或者多個)分布式計(jì)算資源102可以實(shí)現(xiàn)分析框架204。分析框架204可以機(jī)器學(xué)習(xí),例如用以修改如上面描述的業(yè)務(wù)規(guī)則。在一些示例中,相應(yīng)地,被存儲在計(jì)算機(jī)可讀介質(zhì)112上的分析框架204的模塊可以包括所圖示的示例修改模塊420中的一個或多個模塊或者api。在一些示例中,分析模塊204可以與復(fù)制框架120的接收模塊412和確定傳播模塊414協(xié)作。
在分析框架204中,額外的模塊可以被包括,并且一些類型的模塊可以以一些組合被使用。例如,與所圖示的修改模塊420相關(guān)聯(lián)地被描述的功能可以被拆分并且被更大數(shù)量的模塊或者api執(zhí)行。
如上面討論的,在一些示例中,確定傳播模塊414在確定傳播記錄時使用(一個或者多個)規(guī)則集合410。規(guī)則集合可以例如包括使用諸如sql這樣的數(shù)據(jù)庫查詢語言或者其它計(jì)算機(jī)可執(zhí)行指令對業(yè)務(wù)規(guī)則的表述。在一些示例中,確定傳播模塊414可以被配置為,至少部分上通過對更新記錄和上下文數(shù)據(jù)應(yīng)用規(guī)則集合以標(biāo)識指示可采取行動的事件的上下文數(shù)據(jù)中的模式來確定一個或多個傳播記錄。傳播記錄中的每個傳播記錄可以與所存儲的上下文數(shù)據(jù)118的相應(yīng)的、不同的合適子集相對應(yīng)。這可以允許檢測預(yù)測很可能的事件的模式,以及然后反饋結(jié)果以更新上下文數(shù)據(jù)118,以便未來作出更好的預(yù)測。
在一些示例中,分析框架204的模塊可以包括被配置為至少部分上基于上下文數(shù)據(jù)118修改規(guī)則集合的修改模塊420。修改模塊420可以定期地、間歇地、在被事件觸發(fā)時或者在其它所選擇的時間處修改規(guī)則集合。在一些示例中,修改模塊420包括神經(jīng)網(wǎng)絡(luò)或者與神經(jīng)網(wǎng)絡(luò)通信,所述神經(jīng)網(wǎng)絡(luò)提供對規(guī)則集合的修改??梢栽谏舷挛臄?shù)據(jù)118中或者與其分離地存儲規(guī)則集合。在一些示例中,觀察者單元202可以接收對于對規(guī)則集合的修改的通知。觀察者單元202的觸發(fā)條件然后可以至少部分上基于對規(guī)則集合的修改被修改。
在一些示例中,修改模塊420被配置為,將上下文數(shù)據(jù)118中的至少一些數(shù)據(jù)應(yīng)用于例如預(yù)訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)這樣的神經(jīng)網(wǎng)絡(luò)(未示出)。神經(jīng)網(wǎng)絡(luò)系數(shù)或者公式可以被存儲在計(jì)算機(jī)可讀介質(zhì)112上。這些示例中的至少一些示例中的修改模塊420可以被配置為,至少部分上基于神經(jīng)網(wǎng)絡(luò)的輸出修改規(guī)則集合。
在這些示例中的一些示例中,上下文數(shù)據(jù)118包括針對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)以及將被神經(jīng)網(wǎng)絡(luò)分析的測試數(shù)據(jù)。繼續(xù)客戶支持示例,訓(xùn)練數(shù)據(jù)可以包括用戶報告的問題和解決那些問題的解決方案的已存儲的數(shù)據(jù)。分析框架204可以例如在新的解決方案被找到時在線地或者基于上下文數(shù)據(jù)118的快照批量地訓(xùn)練神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)訓(xùn)練輸入可以是問題的數(shù)據(jù),以及,訓(xùn)練輸出可以是解決方案。這樣,神經(jīng)網(wǎng)絡(luò)將隨著訓(xùn)練進(jìn)行而學(xué)習(xí)針對不同的用戶報告的問題的典型解決方案。在新的用戶問題被報告時,觀察者單元202可以將用戶報告的問題提供給神經(jīng)網(wǎng)絡(luò),并且為復(fù)制框架120提供具有從神經(jīng)網(wǎng)絡(luò)產(chǎn)生的建議的解決方案的更新記錄。
通過與復(fù)制框架120的(一個或者多個)模塊協(xié)作地使用分析框架204的(一個或者多個)模塊,本地上下文數(shù)據(jù)132的觸發(fā)條件和集合可以隨時間被修改以便更有效地處理到來的數(shù)據(jù)。繼續(xù)客戶支持示例,多個支持技術(shù)人員是頻繁可用的。每個技術(shù)人員的計(jì)算設(shè)備104保存了相應(yīng)的本地上下文數(shù)據(jù)132。規(guī)則集合可以指定關(guān)于用戶的哪些信息被復(fù)制到哪些計(jì)算設(shè)備104。如果一個具體的技術(shù)人員具有比其它技術(shù)人員更高的、解決伴隨一個具體的軟件包的問題的成功率,則修改模塊420可以將規(guī)則集合修改為使得該技術(shù)人員的計(jì)算設(shè)備104接收比其它技術(shù)人員的計(jì)算設(shè)備104更完整的關(guān)于具有伴隨該軟件包的問題的用戶的信息。修改模塊420可以進(jìn)一步將規(guī)則集合修改為使得觀察者單元202具有針對伴隨該軟件包的問題的專業(yè)的觸發(fā)條件。這可以被完成,以使得在用戶報告伴隨該軟件包的問題時,具有相對較高的成功率的技術(shù)人員將被指派給該用戶或者被建議與該用戶一起工作。將技術(shù)人員指派到他們很可能能夠解決的問題可以減少用戶和技術(shù)人員為解決用戶的問題而進(jìn)行交互需要的時間和帶寬。
在一些示例中,分析框架204可以處理大量用戶的上下文數(shù)據(jù)118,以便檢測問題和解決方案的典型模式。例如,用戶的計(jì)算設(shè)備104的交互框架134可以提供關(guān)于庫、系統(tǒng)組件和被安裝在計(jì)算設(shè)備104上的其它軟件的信息。分析框架204例如使用分析框架204可以標(biāo)識具體的被報告的用戶問題(如響應(yīng)于來自計(jì)算設(shè)備104的更新記錄被記錄在上下文數(shù)據(jù)118中的)與具體的被安裝的軟件包或者那些軟件包的版本之間的相關(guān)性,以及具體的軟件包或者版本的不存在與那些具體的問題的不存在之間的相關(guān)性。針對一個或多個觀察者單元202的上下文數(shù)據(jù)118或者觸發(fā)條件然后可以被修改,以便反映所標(biāo)識的相關(guān)性。在用戶問題被報告并且用戶的計(jì)算設(shè)備104包括與所標(biāo)識的相關(guān)性相對應(yīng)的軟件或者版本時,觀察者單元202可以被觸發(fā),并且可以向用戶或者支持技術(shù)人員提供建議移除或者更新處于以下情況下的具體的軟件包或者版本的信息:存在于用戶的計(jì)算設(shè)備104上、通過它們的存在與所報告的問題相關(guān)或者通過它們的不存在與所報告的問題的不存在相關(guān)。這可以允許使用減少的或者不使用任何與支持技術(shù)人員的交互解決用戶的問題,減少在計(jì)算設(shè)備104(1)與104(2)之間傳送信息需要的帶寬。
在一些示例中,支持技術(shù)人員經(jīng)由列出常見的問題、解決方案和故障排除任務(wù)的腳本與用戶一起工作。腳本對于新被聘用的或者較少經(jīng)驗(yàn)的技術(shù)人員可以是特別有用的。腳本可以經(jīng)由計(jì)算設(shè)備104(2)被呈現(xiàn)給支持技術(shù)人員。結(jié)合上面描述的對相關(guān)性的標(biāo)識或者單獨(dú)地,分析框架204可以對指示腳本的一些步驟在解決問題用戶時的有效性的上下文數(shù)據(jù)118進(jìn)行分析。分析框架204然后可以修改觸發(fā)條件或者上下文數(shù)據(jù)118,以便修改腳本。例如,更頻繁地成功的腳本步驟可以更早被放置在腳本中,或者較不頻繁地成功的腳本步驟可以更晚被放置在腳本中或者從腳本中被移除或者被移動到不同的腳本(例如,第二等級的腳本)中。
如上面討論的,分布式計(jì)算資源102可以實(shí)現(xiàn)查詢管理,例如用于安排查詢在所需的數(shù)據(jù)可用的網(wǎng)絡(luò)節(jié)點(diǎn)處被執(zhí)行。在一些示例中,相應(yīng)地,被存儲在計(jì)算機(jī)可讀介質(zhì)112上的查詢管理框架406的模塊可以包括一個或多個模塊或者api,所述模塊或者api被圖示為查詢接收模塊422、確定模塊424和發(fā)射模塊426。查詢管理框架406可以還包括用于接收和存儲子集指示408的模塊(未示出)。例如,復(fù)制框架120的確定傳播模塊414可以確定與所確定的傳播記錄相對應(yīng)的子集指示408,并且將所確定的子集指示408存儲在計(jì)算機(jī)可讀介質(zhì)112中,或者將所確定的子集指示408提供給查詢管理框架406,查詢管理框架406然后可以將所確定的子集指示408存儲在計(jì)算機(jī)可讀介質(zhì)112中。在一些示例中,傳播記錄還可以基于子集指示408中的相應(yīng)的子集指示408被確定。規(guī)則集合可以額外地或者替換地代表哪個(些)計(jì)算設(shè)備104應(yīng)當(dāng)接收上下文數(shù)據(jù)118的哪些子集。
在查詢管理框架406中,模塊的數(shù)量可以變得更高或者更低,并且一些類型的模塊可以以一些組合被使用。例如,與所圖示的模塊相關(guān)聯(lián)地被描述的功能可以被組合以便被更少數(shù)量的模塊或者api執(zhí)行,或者可以被拆分并且被更大數(shù)量的模塊或者api執(zhí)行。
在一些示例中,查詢管理框架406的模塊可以包括被配置為接收查詢指定的查詢接收模塊422。查詢指定可以經(jīng)由分布式計(jì)算資源102的(一個或者多個)通信接口116或者例如管理員圖形用戶界面這樣的用戶界面(未示出)被接收。查詢指定可以包括使用例如microsoftrx、linq、xpath或者sql這樣的數(shù)據(jù)庫查詢語言的源代碼或者經(jīng)編譯的查詢。查詢指定可以引用數(shù)據(jù)源中的一個或多個數(shù)據(jù)源。
在一些示例中,查詢管理框架406的模塊可以包括被配置為至少部分上基于所接收的查詢指定選擇子集指示408中的一個子集指示408的確定模塊424。子集指示中的每個子集指示可以標(biāo)識上下文數(shù)據(jù)118的相應(yīng)的合適子集(即,少于全部的數(shù)據(jù))。子集指示中的每個子集指示可以進(jìn)一步包括對于將上下文數(shù)據(jù)118的相應(yīng)的合適子集存儲在計(jì)算設(shè)備104的本地上下文數(shù)據(jù)132中的計(jì)算設(shè)備104的指示。確定模塊424可以額外地或者替換地至少部分上基于上下文數(shù)據(jù)118選擇子集指示408中的一個子集指示408。下面討論的選擇的一些示例。
在一些示例中,查詢管理框架406的模塊可以包括被配置為經(jīng)由通信接口發(fā)射所接收的查詢指定和所選擇的子集指示408的標(biāo)識信息的發(fā)射模塊426。標(biāo)識信息可以包括例如數(shù)據(jù)庫主鍵這樣的唯一id號、存儲過程名稱、目的地ip地址、子集指示408的副本或者標(biāo)識子集指示408的其它信息。在一些示例中,發(fā)射模塊426可以經(jīng)由通信接口116將所接收的查詢指定發(fā)射給與子集指示中的所選擇的子集指示相對應(yīng)的多用戶系統(tǒng)的復(fù)制客戶端。這可以通過減少在執(zhí)行查詢的同時在復(fù)制客戶端與服務(wù)器之間被傳輸?shù)臄?shù)據(jù)的量而減少查詢執(zhí)行的等待時間。
在一些示例中,保存所選擇的子集指示的分布式計(jì)算資源102或者計(jì)算設(shè)備104可以接收查詢指定并且執(zhí)行查詢。該計(jì)算設(shè)備104然后可以將結(jié)果提供給分布式計(jì)算資源102、在查詢指定中指定的替換的目的地或者另一個分布式計(jì)算資源102或者計(jì)算設(shè)備104。將查詢指定發(fā)射給被裝備為用于處置它們的網(wǎng)絡(luò)節(jié)點(diǎn)允許減少否則可能被分配為用于在網(wǎng)絡(luò)節(jié)點(diǎn)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)帶寬使用。這樣的發(fā)射還可以通過允許查詢?nèi)〈ǔ]^慢的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率而使用磁盤或者存儲器數(shù)據(jù)傳輸速率將將數(shù)據(jù)移入和移出執(zhí)行查詢的處理單元124地被執(zhí)行而提高查詢速度。在一些示例中,查詢指定包括實(shí)現(xiàn)microsoftrxiqbservable或者iqbservable(tsource)接口的對象實(shí)例。
將查詢指定發(fā)射給被裝備為用于處置它們的網(wǎng)絡(luò)節(jié)點(diǎn)還可以即使節(jié)點(diǎn)被限制訪問運(yùn)行查詢所需的數(shù)據(jù)也允許它們接收查詢結(jié)果。在一個示例中,查詢指定可以依賴于用戶alice的智能電話(計(jì)算設(shè)備104)的位置數(shù)據(jù)。bob可能期望使用他的計(jì)算設(shè)備104來確定alice是否在工作。然而,alice例如由于隱私原因而可能已選擇不與bob共享她的坐標(biāo)或者其它的細(xì)粒度的位置數(shù)據(jù)。在這種情況下,分布式計(jì)算資源102可以從bob接收詢問alice的位置是否處在alice的辦公樓的已知坐標(biāo)內(nèi)的查詢指定。分布式計(jì)算資源102可以將該查詢指定發(fā)射給alice的智能電話。alice的智能電話執(zhí)行所接收的查詢指定,并且例如作為更新記錄向分布式計(jì)算資源102提供對于alice是否在辦公室的是或否的指示。分布式計(jì)算資源102然后可以將包括該指示的傳播記錄提供給bob的計(jì)算設(shè)備104,bob的計(jì)算設(shè)備104可以利用查詢的結(jié)果更新bob的本地上下文數(shù)據(jù)132。相應(yīng)地,在該示例中,將bob的查詢指定發(fā)射給alice的智能電話允許bob通過檢查他的本地上下文數(shù)據(jù)132確定alice是否在辦公室,而不侵犯alice的關(guān)于對她的坐標(biāo)數(shù)據(jù)的使用的隱私限制。
在一些示例中,alice的智能電話在alice的坐標(biāo)變更時發(fā)射更新記錄。實(shí)現(xiàn)流處理或者數(shù)據(jù)流處理功能(例如,microsoftrx、elm或者labview)的(一個或者多個)觀察者單元202可以響應(yīng)于這樣的更新記錄對計(jì)算進(jìn)行觸發(fā)。被觸發(fā)的計(jì)算可以包括將查詢指定提供給分布式計(jì)算資源102以便確定alice是否在辦公室,該查詢指定可以如上面描述的那樣在alice的智能電話上被處理。被觸發(fā)的計(jì)算可以還包括將確定的結(jié)果提供給bob的本地上下文數(shù)據(jù)132。在一些示例中,alice的智能電話可以確定alice是否在辦公室,或者計(jì)算其它的數(shù)據(jù),例如對位置數(shù)據(jù)進(jìn)行聚合。alice的智能電話可以對所選擇的時間表或者以所選擇的間隔發(fā)送更新記錄以使得bob具有關(guān)于alice的位置的當(dāng)前的信息,并且具有與發(fā)射被用于確定alice是否在辦公室的位置數(shù)據(jù)相比的減少的帶寬消耗。
在一些示例中,查詢管理框架406與復(fù)制框架120互操作。在這些示例中的一些示例中,復(fù)制框架120的發(fā)射模塊416可以發(fā)射具有相應(yīng)的子集指示的標(biāo)識信息的所確定的傳播記錄中的每個傳播記錄。可以與例如相同的網(wǎng)絡(luò)分組或者相同的連接的不同網(wǎng)絡(luò)分組中的傳播記錄相關(guān)聯(lián)地發(fā)射標(biāo)識信息。在一些示例中,由建立子集指示通過其被發(fā)射的連接的分組傳達(dá)標(biāo)識信息。該發(fā)射允許查詢或者傳播記錄的接受者輕松地使查詢與傳播記錄產(chǎn)生關(guān)聯(lián)。如下面參考圖5討論的,例如在給定的計(jì)算設(shè)備104保存多于一個本地上下文子集514時,這可以減少對查詢進(jìn)行處置所需的處理。
在一些示例中,確定模塊424被配置為,確定與被查詢指定請求的輸入值相關(guān)的子集指示。例如,如果查詢指定需要來自多個數(shù)據(jù)表中的每個數(shù)據(jù)表的所選擇的列的輸入值,則確定模塊424可以確定哪個子集指示408包括例如那些表中的最高的數(shù)量、被引用的列中的最高的數(shù)量或者將被處理的數(shù)據(jù)的預(yù)期量的最高百分比。確定模塊424然后可以選擇所確定的子集指示接收查詢指定。這樣的選擇允許減少為執(zhí)行查詢在網(wǎng)絡(luò)節(jié)點(diǎn)之間被傳輸?shù)臄?shù)據(jù)的量。
在一些示例中,確定模塊424被配置為,選擇與被查詢指定需要的輸入值中的至少一些輸入值的源相對應(yīng)的子集指示408。繼續(xù)客戶支持示例,如果查詢指定使用對解決用戶的問題的嘗試的數(shù)據(jù)作為輸入,則確定模塊424可以確定與支持技術(shù)人員的計(jì)算設(shè)備104(2)相對應(yīng)的子集指示408。這樣的確定可以減少在執(zhí)行查詢指定時的等待時間,因?yàn)椴樵冎付梢砸坏┲С旨夹g(shù)人員已選擇了具體的嘗試時并且在該嘗試的數(shù)據(jù)已從支持技術(shù)人員的計(jì)算設(shè)備104(2)的本地上下文數(shù)據(jù)132被復(fù)制到上下文數(shù)據(jù)118之前在支持技術(shù)人員的計(jì)算設(shè)備104(2)上被執(zhí)行。
圖5是示出例如多用戶系統(tǒng)的復(fù)制客戶端這樣的計(jì)算設(shè)備104的示例部件的原理圖。所圖示的示例中的計(jì)算設(shè)備104包括可以被運(yùn)行地耦合到例如高速緩存存儲器這樣的存儲器502的(一個或者多個)處理單元124。計(jì)算設(shè)備104還包括被連接到(一個或者多個)網(wǎng)絡(luò)106(虛線示出)的(一個或者多個)通信接口130。(一個或者多個)處理單元124經(jīng)由總線128被耦合到(一個或者多個)通信接口130和計(jì)算機(jī)可讀介質(zhì)126。所圖示的示例中的計(jì)算機(jī)可讀介質(zhì)126包括本地上下文數(shù)據(jù)132和交互框架134的計(jì)算機(jī)程序指令、邏輯或者其它指令。
計(jì)算設(shè)備104可以包括或者被連接到用戶界面136。用戶界面136可以包括顯示器504。顯示器504可以包括有機(jī)發(fā)光二極管(olde)顯示器、液晶顯示器(lcd)、陰極射線管(crt)或者另一種類型的視覺顯示器。顯示器504可以是觸摸屏的部件,或者可以包括觸摸屏。用戶界面136可以包括上面參考用戶界面136描述的一些類型的輸出設(shè)備。(一個或者多個)處理單元124可以被可運(yùn)行地耦合到用戶界面136。
用戶界面136可以包括用戶可操作的輸入設(shè)備506(被圖形化地表示為游戲手柄)。用戶可操作的輸入設(shè)備506可以包括上面參考用戶界面136描述的一些類型的輸入設(shè)備。
計(jì)算設(shè)備104可以進(jìn)一步包括用于允許計(jì)算設(shè)備104與輸入、輸出或者i/o設(shè)備(為清楚起見,一些未被描繪)通信的一個或多個輸入/輸出(i/o)接口508。這樣的設(shè)備的示例可以包括諸如上面參考用戶界面136描述的用戶可操作的輸入設(shè)備和輸出設(shè)備這樣的用戶界面136的部件。計(jì)算設(shè)備104可以經(jīng)由與合適的設(shè)備的i/o接口508或者使用合適的電子/軟件交互方法進(jìn)行通信。例如用戶可操作的輸入設(shè)備506上的用戶輸入的輸入數(shù)據(jù)可以經(jīng)由(一個或者多個)i/o接口508被接收,以及,例如用戶界面屏幕的輸出數(shù)據(jù)可以經(jīng)由(一個或者多個)i/o接口508被提供給顯示器504以用于被用戶查看。
在一些示例中,計(jì)算設(shè)備104可以包括一個或多個測量單元510。測量單元510可以檢測計(jì)算設(shè)備104或者其環(huán)境的物理屬性或者狀態(tài)。測量單元510可以是如下面討論的傳感器的示例。用戶界面136的部件也可以是如下面討論的傳感器的示例。
測量單元510的示例可以包括用于檢測計(jì)算設(shè)備104的感應(yīng)范圍之中或者之內(nèi)的運(yùn)動、溫度、壓力、光、聲音、電磁輻射(例如,用于無線連網(wǎng))或者任何其它可檢測的形式的能量或者物質(zhì)的單元。在智能電話計(jì)算設(shè)備104的一些示例中,測量單元510可以包括加速度計(jì)、麥克風(fēng)、前置和后置照相機(jī)和用于與藍(lán)牙、wi-fi和lte的收發(fā)機(jī)。測量單元510的示例可以包括用于測量物理屬性的設(shè)備、用于進(jìn)行通信的設(shè)備或者用于接收信息的設(shè)備。在一些示例中,測量單元510可以包括網(wǎng)絡(luò)收發(fā)機(jī)(例如,通信接口130)、運(yùn)動傳感器、接近檢測器(例如,針對附近的生物、人或者設(shè)備)、光傳感器(例如,cds光敏電阻器或者光敏晶體管)、靜止成像器(例如,ccd或者cmos)、視頻成像器(例如,ccd或者cmos)、麥克風(fēng)、指紋讀取器、視網(wǎng)膜掃描儀或者觸摸屏(例如,位于用戶界面136的顯示器504之中或者與之相關(guān)聯(lián)的)。
計(jì)算設(shè)備104可以包括一個或多個傳感器512,傳感器512可以代表測量單元510或者用戶界面136的部件。在一些示例中,用戶界面136可以包括傳感器512中的至少一個傳感器512。例如,用戶界面136可以包括作為傳感器512的觸摸屏。處理單元124可以被可運(yùn)行耦合到傳感器512。傳感器512可以向(一個或者多個)處理單元124提供數(shù)據(jù)記錄。
在一些示例中,計(jì)算機(jī)可讀介質(zhì)126可以將本地上下文數(shù)據(jù)132存儲在諸如數(shù)據(jù)庫或者數(shù)據(jù)倉庫這樣的結(jié)構(gòu)化或者非結(jié)構(gòu)化的數(shù)據(jù)存儲裝置中。在一些示例中,計(jì)算機(jī)可讀介質(zhì)126可以包括語料或者關(guān)系數(shù)據(jù)庫,所述數(shù)據(jù)庫具有用于使能實(shí)現(xiàn)數(shù)據(jù)訪問的一個或多個表、數(shù)組、索引、存儲過程等,例如包括超文本標(biāo)記語言(html)表、javascript對象記號(json)記錄、資源描述框架(rdf)表、web本體論語言(owl)表或者可擴(kuò)展標(biāo)記語言(xml)表。可以使用與諸如html、xml和javascript這樣的行業(yè)標(biāo)準(zhǔn)一致的表格式。
在所圖示的示例中,本地上下文數(shù)據(jù)132包括一個或多個上下文1-l的本地上下文子集514(1)-514(l),其中,l是任何大于或者等于1的整數(shù)。每個本地上下文子集514可以與圖4的相應(yīng)的上下文子集404相對應(yīng)。存儲多個本地上下文子集514允許交互框架134更高效地處理與具體的數(shù)據(jù)記錄相關(guān)的本地上下文數(shù)據(jù)132。交互框架134可以利用少量的處理確定任何給定的數(shù)據(jù)記錄與哪個本地上下文子集514相對應(yīng),然后僅對該本地上下文子集514中的記錄進(jìn)行處理以便采取進(jìn)一步的行動。存儲多個本地上下文子集514還可以減少在修改本地上下文數(shù)據(jù)132時使用的網(wǎng)絡(luò)帶寬的量,因?yàn)槊總€修改僅可以影響本地上下數(shù)據(jù)132的部分(并且因此可以僅包括針對其的數(shù)據(jù))。
計(jì)算機(jī)可讀介質(zhì)126可以存儲用于被存儲在計(jì)算機(jī)可讀介質(zhì)126中或者被(一個或者多個)處理單元124執(zhí)行的過程、應(yīng)用、組件或者模塊的運(yùn)行的數(shù)據(jù)。在一些示例中,數(shù)據(jù)存儲庫可以存儲計(jì)算機(jī)程序指令,例如,與應(yīng)用、智能電話應(yīng)用、本文中描述的過程、交互框架134或者可被(一個或者多個)處理單元124執(zhí)行的其它軟件相對應(yīng)的指令。
被存儲在計(jì)算機(jī)可讀介質(zhì)126上的交互框架134的模塊可以包括一個或多個模塊,例如,殼模塊或者被圖示為傳播接收模塊516、傳播應(yīng)用模塊518、輸入模塊520、復(fù)制模塊522、發(fā)射模塊524和交互模塊526的應(yīng)用編程接口(api)模塊。
在交互框架134中,模塊的數(shù)量可以變得更高或者更低,并且一些類型的模塊可以以一些組合被使用。例如,與所圖示的模塊相關(guān)聯(lián)地被描述的功能可以被組合以便被更少的數(shù)量的模塊或者api執(zhí)行,或者可以被拆分并且被更大的數(shù)量的模塊或者api執(zhí)行。
在一些示例中,交互框架134的模塊可以包括被配置為經(jīng)由通信接口例如從復(fù)制服務(wù)器接收傳播記錄的傳播接收模塊516。傳播記錄可以從復(fù)制控制器或者其它的分布式計(jì)算資源102被接收。如上面討論的,傳播記錄可以指定將對本地上下文數(shù)據(jù)132作出的變更。傳播記錄可以與被(一個或者多個)分布式計(jì)算資源120保存的上下文數(shù)據(jù)118中的少于全部的數(shù)據(jù)相對應(yīng)。
在一些示例中,交互框架134的模塊可以包括被配置為至少部分上基于所接收的傳播記錄而修改本地上下文數(shù)據(jù)132的傳播應(yīng)用模塊518。通過使用傳播接收模塊516和傳播應(yīng)用模塊518,可以保持本地上下文數(shù)據(jù)132與來自(一個或者多個)分布式計(jì)算資源102或者其它(一個或者多個)計(jì)算設(shè)備104的對上下文數(shù)據(jù)118的變更同步。本地上下文數(shù)據(jù)可以是與一個或多個用戶與多用戶系統(tǒng)的(一個或者多個)交互相關(guān)的。
在一些示例中,傳播接收模塊516可以被進(jìn)一步配置為,例如如上面參考傳播記錄討論的那樣經(jīng)由通信接口接收第二傳播記錄。在這些示例中的一些示例中,傳播應(yīng)用模塊518可以被進(jìn)一步配置為,至少部分上基于所接收的第二傳播記錄來修改與本地上下文數(shù)據(jù)不同的第二本地上下文數(shù)據(jù)。例如,本地上下文子集514(1)可以響應(yīng)于所述傳播記錄而被修改,以及,本地上下文子集514(l)可以響應(yīng)于第二傳播記錄而被修改。所述傳播記錄和第二傳播記錄可以從單個分布式計(jì)算資源102或者相應(yīng)的、不同的分布式計(jì)算資源102被接收。
在一些示例中,交互框架134的模塊可以包括被配置為接收第一數(shù)據(jù)記錄的輸入模塊520。第一數(shù)據(jù)記錄可以例如從或者經(jīng)由用戶界面136、測量單元510或者另一個傳感器512被接收。第一數(shù)據(jù)記錄可以例如指示與計(jì)算設(shè)備104的用戶交互或者圍繞計(jì)算設(shè)備104的環(huán)境的狀態(tài)或者狀態(tài)變更。
在一些示例中,輸入模塊520被配置為,例如經(jīng)由i/o接口508和總線128使用一個或多個傳感器512檢測多個信號。貫穿本公開內(nèi)容,計(jì)算設(shè)備104可以檢測不被本文中描述的模塊處理或者不經(jīng)歷本文中描述的處理操作的額外的信號或者信號的集合。
所檢測的信號可以包括例如使用gps、來自手機(jī)塔或者wi-fi接入點(diǎn)的三角測量或者其它地理位置技術(shù)測量的計(jì)算設(shè)備104的位置。所檢測的信號可以包括例如由位于計(jì)算設(shè)備104之上或者與計(jì)算設(shè)備104相關(guān)聯(lián)的(一個或者多個)加速度計(jì)測量的計(jì)算設(shè)備104的運(yùn)動的速度、速率、加速度或者加速度變化率、或者計(jì)算設(shè)備104的朝向。所檢測的信號可以包括例如使用(一個或者多個)抓握傳感器或者(一個或者多個)觸摸屏確定的計(jì)算設(shè)備104在人手中的朝向、人的手的大小或者人正在使用左手還是右手抓握計(jì)算設(shè)備104。所檢測的信號可以包括例如是附近的人的語音或者語聲這樣的音頻數(shù)據(jù)。音頻數(shù)據(jù)可以被智能電話的話筒或者被計(jì)算設(shè)備104的另一個麥克風(fēng)捕獲。所檢測的信號可以包括使用計(jì)算設(shè)備104的人的視頻數(shù)據(jù)。所檢測的信號可以包括使用計(jì)算設(shè)備104的人的行為特性,例如,這個人在鍵盤或者軟鍵盤上的鍵入的節(jié)奏或者用戶正在主要使用什么風(fēng)格的輸入(例如,每字母的觸摸還是在觸摸屏上的整字滑動)。所檢測的信號可以包括攜帶計(jì)算設(shè)備104的人的步態(tài)的特性,例如,速度、腳步頻率、腿長度(從速度和腳步推斷的)或者人是否更喜歡一條腿而超過另一條腿。所檢測的信號可以使用其它的所檢測的信號被確定(例如,步態(tài)信號可以通過對加速度計(jì)和gps數(shù)據(jù)進(jìn)行處理被檢測)。
在一些示例中,交互框架134的模塊可以包括被配置為至少部分上基于第一數(shù)據(jù)記錄和本地上下文數(shù)據(jù)132確定更新記錄的復(fù)制模塊522。復(fù)制模塊522可以對第一數(shù)據(jù)記錄或者本地上下文數(shù)據(jù)132應(yīng)用過濾規(guī)則、業(yè)務(wù)規(guī)則或者其它邏輯,以便確定應(yīng)當(dāng)對上下文數(shù)據(jù)118作出哪些變更。在一些示例中,上下文數(shù)據(jù)118將全部數(shù)據(jù)的副本包括在本地上下文數(shù)據(jù)132中,以及,更新記錄將響應(yīng)于所接收的第一數(shù)據(jù)記錄在值上被變更或者將變更的任何項(xiàng)的新值包括在本地上下文數(shù)據(jù)132中。
在一些示例中,交互框架134的模塊可以包括被配置為經(jīng)由通信接口發(fā)射所確定的更新記錄的發(fā)射模塊524。發(fā)射模塊524可以將所確定的更新記錄發(fā)射給分布式計(jì)算資源102。通過使用輸入模塊520、復(fù)制模塊522和發(fā)射模塊524,可以保持上下文數(shù)據(jù)118是與對本地上下文數(shù)據(jù)132的變更同步的。(一個或者多個)分布式計(jì)算資源102可以如上面描述的那樣將變更復(fù)制到上下文數(shù)據(jù)118,以使得可以保持其它計(jì)算設(shè)備的本地上下文數(shù)據(jù)132是與對所圖示的本地上下文數(shù)據(jù)132的變更同步的。在一些示例中,發(fā)射模塊524可以經(jīng)由通信接口130將所確定的更新記錄發(fā)射給復(fù)制服務(wù)器,以便更新被存儲在復(fù)制服務(wù)器處的上下文數(shù)據(jù)。
在一個示例中,用戶alice可以具有包括測量單元510的智能電話(計(jì)算設(shè)備104),測量單元510被配置為,檢測智能電話的位置,以及因此暗含地檢測alice的位置。在一些示例中,alice可以選擇允許她的位置信息被公開地或者與僅指定的個人(例如,朋友或者聯(lián)系人)共享。額外地,alice可以選擇共享她的坐標(biāo)或者對于她的位置的更一般化的描述(例如,在家、在工作等)。在這些示例中的一些示例中,例如坐標(biāo)或者一般化的描述這樣的alice的位置信息可以被存儲在alice的本地上下文數(shù)據(jù)132中。alice的智能電話可以在alice變更位置時(就坐標(biāo)而言的,例如,在alice在任何方向上移動多于10米時,或者就一般化的描述而言的)向分布式計(jì)算資源102提供更新記錄(方框522、524)。分布式計(jì)算資源102可以將上下文數(shù)據(jù)118修改為包括alice的位置信息(方框412、418)。分布式計(jì)算資源102可以將包括alice的位置信息的更新記錄發(fā)射給具有對該信息的訪問的用戶的(一個或者多個)計(jì)算設(shè)備104(方框414、416)。
在一些示例中,上下文數(shù)據(jù)118可以保存alice的位置的坐標(biāo)和一般化的描述兩者。分布式計(jì)算資源102可以將包括坐標(biāo)的傳播記錄發(fā)射給例如用戶hector的計(jì)算設(shè)備這樣的一些計(jì)算設(shè)備,以及將包括一般化的描述而不包括坐標(biāo)的傳播記錄發(fā)射給其它計(jì)算設(shè)備104,例如用戶bob的計(jì)算設(shè)備104。bob的計(jì)算設(shè)備104可以例如響應(yīng)于alice的變更位置而接收攜帶一般描述的傳播記錄(方框516),并且相應(yīng)地修改bob的本地上下文數(shù)據(jù)132(方框518)。bob然后可以通過咨詢他自己的本地上下文數(shù)據(jù)132確定alice的一般化的位置。hector的計(jì)算設(shè)備104可以接收攜帶坐標(biāo)的傳播記錄(方框516),并且可以相應(yīng)地修改hector的本地上下文數(shù)據(jù)132(方框518)。hector然后可以通過咨詢他自己的本地上下文數(shù)據(jù)132確定alice的坐標(biāo)。
在一些示例中,輸入模塊520可以被進(jìn)一步配置為,例如經(jīng)由用戶界面136接收第二數(shù)據(jù)記錄。在這些示例中的一些示例中,復(fù)制模塊522可以被進(jìn)一步配置為,至少部分上基于第二數(shù)據(jù)記錄和與本地上下文數(shù)據(jù)不同的第二本地上下文數(shù)據(jù)來確定第二更新記錄。在這些示例中的一些示例中,發(fā)射模塊524可以被進(jìn)一步配置為,經(jīng)由通信接口130發(fā)射所確定的第二更新記錄。例如,本地上下文子集514(1)可以響應(yīng)于所述更新記錄而被修改,以及,本地上下文子集514(l)可以響應(yīng)于第二更新記錄而被修改。所述更新記錄和第二更新記錄可以被發(fā)射給單個分布式計(jì)算資源102或者相應(yīng)的、不同的分布式計(jì)算資源102。
在一些示例中,交互框架134的模塊可以包括交互模塊526。交互模塊526可以被配置為,經(jīng)由用戶界面136接收額外的數(shù)據(jù)記錄。交互模塊526可以被進(jìn)一步配置為,至少部分上基于額外的數(shù)據(jù)記錄而修改本地上下文數(shù)據(jù)132,以及,至少部分上基于額外的數(shù)據(jù)記錄和經(jīng)修改的本地上下文數(shù)據(jù)132提供輸出。交互模塊526可以經(jīng)由用戶界面136提供輸出。在一些示例中,交互模塊526被配置為,在不經(jīng)由通信接口130進(jìn)行通信的情況下或者在經(jīng)由通信接口130進(jìn)行通信之前提供輸出。這可以減少在對用戶請求或者行動作出響應(yīng)時的用戶界面136的等待時間。響應(yīng)于對本地上下文數(shù)據(jù)132的修改,交互框架134可以如上面參考圖2的箭頭206討論的那樣提供更新記錄。
使用交互模塊526允許本地的變更被更迅速地應(yīng)用或者顯示,而不需要等待網(wǎng)絡(luò)往返。如由交互模塊526執(zhí)行的計(jì)算設(shè)備104上的處理可以減少處理時間和等待時間,以及因此改進(jìn)計(jì)算設(shè)備104對用戶的響應(yīng)性。
在一些示例中,分布式計(jì)算資源102可以例如通過與更新記錄中指示的修改不同地修改上下文數(shù)據(jù)118來拒絕或者覆寫來自計(jì)算設(shè)備104的更新記錄。在一些示例中,交互模塊526可以修改本地上下文數(shù)據(jù)132。交互框架134然后可以提供更新記錄。復(fù)制框架120可以接收更新記錄,對更新記錄進(jìn)行處理(例如,使用觀察者單元202),并且確定對上下文數(shù)據(jù)118的修改。傳播記錄然后可以被發(fā)射給計(jì)算設(shè)備104。本地上下文數(shù)據(jù)132然后可以根據(jù)傳播記錄被更新。相應(yīng)地,應(yīng)用傳播記錄之后的本地上下文數(shù)據(jù)132可以與發(fā)射更新記錄之前的本地上下文數(shù)據(jù)132不同。這被稱為“補(bǔ)償”。對本地上下文數(shù)據(jù)132的變更可以被應(yīng)用,然后稍后,補(bǔ)償上下文變更可以被應(yīng)用,以便將本地上下文數(shù)據(jù)132轉(zhuǎn)變到之前的狀態(tài)或者另一個被允許的狀態(tài)。相比于如在諸如“acid”模型這樣的常規(guī)事務(wù)數(shù)據(jù)庫模型中常見的那樣延遲對本地上下文數(shù)據(jù)132的更新直到傳播記錄被接收為止,使用補(bǔ)償可以減少與計(jì)算設(shè)備104的用戶交互的等待時間。
模塊的一些組合可以在交互框架134中被使用。在一些示例中,交互框架134包括傳播接收模塊516和傳播應(yīng)用模塊518。在一些示例中,交互框架134包括輸入模塊520、復(fù)制模塊522和發(fā)射模塊524。在一些示例中,交互框架134包括交互模塊526。這些模塊的其它組合可以被使用。例如,交互框架134可以包括傳播接收模塊516、傳播應(yīng)用模塊518和交互模塊526,或者可以包括輸入模塊520、復(fù)制模塊522、發(fā)射模塊524和交互模塊526。
在一些示例中,計(jì)算設(shè)備104的計(jì)算機(jī)可讀介質(zhì)126可以包括查詢處理框架528的指令。所存儲的指令可以是可被(一個或者多個)處理單元124執(zhí)行的。查詢處理框架528可以包括接收模塊530、檢索模塊532、執(zhí)行模塊534和發(fā)射模塊536。所述模塊可以以與上面參考交互框架134的模塊討論的方式類似的各種方式被組合。可以作為復(fù)制客戶端的計(jì)算設(shè)備104可以包括如上面討論的傳感器512。
在一些示例中,查詢處理框架528可以包括被配置為經(jīng)由通信接口130接收查詢指定的接收模塊530,所述查詢指定包括引用傳感器512的數(shù)據(jù)庫查詢。查詢指定可以例如從服務(wù)器被接收,所述服務(wù)器例如是復(fù)制服務(wù)器或者其它分布式計(jì)算資源102。
在一些示例中,查詢處理框架528可以包括被配置為從傳感器512檢索數(shù)據(jù)的檢索模塊532。檢索模塊532可以直接從傳感器512或者從傳感器512數(shù)據(jù)被存儲在其中的存儲器502或者計(jì)算機(jī)可讀介質(zhì)126的區(qū)域檢索數(shù)據(jù)。
在一些示例中,查詢處理框架528可以包括被配置為使用所檢索的數(shù)據(jù)執(zhí)行數(shù)據(jù)庫查詢的執(zhí)行模塊534。執(zhí)行模塊534例如可以執(zhí)行sql存儲過程或者xpath或者其它查詢。
在一些示例中,查詢處理框架528可以包括被配置為經(jīng)由通信接口130發(fā)射所執(zhí)行的數(shù)據(jù)庫查詢的結(jié)果的發(fā)射模塊536。發(fā)射模塊536可以將結(jié)果發(fā)射給服務(wù)器、復(fù)制服務(wù)器、復(fù)制客戶端或者另一個計(jì)算設(shè)備104或者分布式計(jì)算資源102。
圖示性過程
圖6是圖示了用于使用多用戶系統(tǒng)的例如分布式計(jì)算資源102這樣的復(fù)制服務(wù)器傳播對上下文數(shù)據(jù)118的變更或者以其它方式對數(shù)據(jù)進(jìn)行復(fù)制的示例過程600的流程圖?!皬?fù)制服務(wù)器”不限于服務(wù)器類的計(jì)算機(jī),以及可以例如使用膝上型或者平板型計(jì)算機(jī)來實(shí)現(xiàn)。圖6和其它流程圖中所示的示例功能和本文中的示例過程可以在一個或多個分布式計(jì)算資源102或者計(jì)算設(shè)備104上被實(shí)現(xiàn)或者體現(xiàn)。在一些示例中,示例功能可以使用在分布式計(jì)算資源102或者計(jì)算設(shè)備104上運(yùn)行的軟件來實(shí)現(xiàn)。為了進(jìn)行圖示,下面參考圖1的分布式計(jì)算資源102(1)中的處理單元110描述了示例過程600。然而,諸如(一個或者多個)分布式計(jì)算資源102或者(一個或者多個)計(jì)算設(shè)備104的處理單元124和/或其部件這樣的其它處理單元可以實(shí)現(xiàn)諸如過程600這樣的所描述的示例過程的(一個或者多個)步驟。
在每個示例流程圖或者過程中對操作進(jìn)行描述所按照的次序不打算理解為限制,以及,任何數(shù)量的所描述的操作可以以任何次序和/或并行地被組合以便實(shí)現(xiàn)每個過程。此外,圖6-15中的每個圖中的操作可以用硬件、軟件及其組合來實(shí)現(xiàn)。在軟件的上下文中,操作代表在被一個或多個處理器執(zhí)行時導(dǎo)致一個或多個處理器執(zhí)行所詳述的操作的計(jì)算機(jī)可執(zhí)行指令。在硬件的上下文中,操作代表在電路中被實(shí)現(xiàn)的邏輯功能,例如,數(shù)據(jù)通路控制和有限狀態(tài)機(jī)排序功能。僅為了解釋清楚起見就圖1-5中示出的被專門標(biāo)識的部件描述了本文中的流程圖,并且這樣的具體的標(biāo)識不是限制性的。
在方框602處,復(fù)制框架120可以將上下文數(shù)據(jù)118存儲在復(fù)制服務(wù)器上。如上面討論的,上下文數(shù)據(jù)可以是與一個或多個用戶與或者經(jīng)由多用戶系統(tǒng)進(jìn)行的(一個或者多個)交互相關(guān)的。對上下文數(shù)據(jù)118進(jìn)行存儲可以允許分布式計(jì)算資源102充當(dāng)中間層代理?;趤碜悦總€復(fù)制客戶端的輸入修改所存儲的上下文數(shù)據(jù)可以允許復(fù)制服務(wù)器對數(shù)據(jù)進(jìn)行重新打包以便支持下面討論的“混搭(mashup)”。
在方框604處,復(fù)制框架120可以接收與所存儲的上下文數(shù)據(jù)118中的少于全部的數(shù)據(jù)相對應(yīng)的更新記錄。這可以是中間層代理的接收功能的一部分。更新記錄可以從多用戶系統(tǒng)的多個復(fù)制客戶端中的第一復(fù)制客戶端被接收。復(fù)制客戶端可以包括計(jì)算設(shè)備104。在一些示例中,所述接收可以包括響應(yīng)于來自多個復(fù)制客戶端中的第一復(fù)制客戶端的信號而接受更新記錄的數(shù)據(jù)。該信號可以例如包括經(jīng)由restapi的http“推送”(客戶端發(fā)起的)事務(wù)。在上面參考圖4的接收模塊412描述了在方框604中被執(zhí)行的示例功能。方框604之后可以跟隨方框608或者方框606。
在方框606處,至少部分上基于所接收的更新記錄額修改所存儲的上下文數(shù)據(jù)118。在上面參考圖4的提交模塊418描述了在方框604中被執(zhí)行的示例功能。
在方框608處,復(fù)制框架120可以使用復(fù)制服務(wù)器(例如,(一個或者多個)處理單元216)至少部分上基于所接收的更新記錄自動地確定多個傳播記錄。這可以是中間層代理的發(fā)射功能的一部分。傳播記錄中的每個傳播記錄可以與所存儲的上下文數(shù)據(jù)118的相應(yīng)的、不同的子集相對應(yīng),例如,與相應(yīng)的計(jì)算設(shè)備104的本地上下文數(shù)據(jù)132相對應(yīng)。相應(yīng)地,可以通過在下面的方框610中將傳播記錄而非全部上下文數(shù)據(jù)118發(fā)射給每個復(fù)制客戶端來減少帶寬。在上面參考圖4的確定傳播模塊414描述了在方框608中被執(zhí)行的示例功能。
在方框610處,復(fù)制框架120可以經(jīng)由一個或多個通信接口116將多個傳播記錄中的傳播記錄發(fā)射給例如復(fù)制客戶端中的相應(yīng)的復(fù)制客戶端。在上面參考圖4的發(fā)射模塊416描述了在方框610中被執(zhí)行的示例功能。例如,復(fù)制框架120可以使用多個傳播記錄中的每個傳播記錄發(fā)射相應(yīng)的標(biāo)識信息。復(fù)制框架120可以如上面參考發(fā)射模塊416討論的那樣將(一個或者多個)傳播記錄發(fā)射給(一個或者多個)復(fù)制客戶端或者其它(一個或者多個)計(jì)算設(shè)備104。(一個或者多個)復(fù)制客戶端可以向(一個或者多個)復(fù)制服務(wù)器發(fā)射消息以便訂閱上下文數(shù)據(jù)118的具體的投影(合適子集)。在一些示例中,所述發(fā)射可以包括向復(fù)制客戶端中的相應(yīng)的復(fù)制客戶端發(fā)射相應(yīng)的通知信號。這可以與例如經(jīng)由web套接字連接進(jìn)行的“推送”(服務(wù)器發(fā)起的)傳輸相對應(yīng)。分布式計(jì)算資源102可以例如經(jīng)由soap或者其它web服務(wù)或者rpc接口與觀察者單元202和其它后端系統(tǒng)通信,以及經(jīng)由rest或者其它面向客戶端的接口與復(fù)制客戶端通信。這可以允許分布式計(jì)算資源102橋接web服務(wù)與rest接口之間的“阻抗失配”。
繼續(xù)客戶支持示例,更新記錄可以與來自用戶的對于技術(shù)支持的請求相對應(yīng)。所存儲的上下文數(shù)據(jù)可以包括與用戶的計(jì)算設(shè)備的配置有關(guān)的第一信息和標(biāo)識支持技術(shù)人員的第二信息。多個傳播記錄可以包括:包括第一信息并且省略第二信息的第一傳播記錄;以及,包括第二信息并且省略第一信息的第二傳播記錄。所述發(fā)射(方框610)可以進(jìn)一步包括將第一傳播記錄發(fā)射給支持技術(shù)人員的復(fù)制客戶端,以及,將第二傳播記錄發(fā)射給用戶的復(fù)制客戶端。使用與相應(yīng)的合適子集相對應(yīng)的傳播記錄可以降低帶寬消耗,因?yàn)槊總€參與者僅接收與該參與者相關(guān)的數(shù)據(jù)。使用這樣的傳播記錄也可以提高系統(tǒng)的安全性,因?yàn)槊恳环絻H被提供了該方具有對其的訪問的信息。向用戶或者技術(shù)人員顯示信息在這些示例中可以是比在現(xiàn)有技術(shù)的方案中更高效的,因?yàn)樯儆谏舷挛臄?shù)據(jù)118的全部內(nèi)容的信息被顯示,并且每個傳播記錄中的信息可以是更有可能與接收相應(yīng)的信息的用戶有關(guān)的。
在一些示例中,方法600進(jìn)一步包括:從多個復(fù)制客戶端中的第二、不同的復(fù)制客戶端接收與所存儲的上下文數(shù)據(jù)的少于全部的數(shù)據(jù)相對應(yīng)的第二更新記錄;使用復(fù)制服務(wù)器至少部分上基于所接收的第二更新記錄而自動地確定多個第二傳播記錄,其中,第二傳播記錄中的每個傳播記錄與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);以及,經(jīng)由一個或多個通信接口發(fā)射多個第二傳播記錄,其中,所述傳播記錄中的至少一個傳播記錄和第二傳播記錄中的至少一個第二傳播記錄被發(fā)射給多個復(fù)制客戶端中的一個所選擇的復(fù)制客戶端。這允許使用分布式計(jì)算資源102執(zhí)行“混搭”操作。在混搭中,復(fù)制服務(wù)器聚合或者組合來自多個源的數(shù)據(jù),并且將該聚合或者組合發(fā)射給復(fù)制客戶端。
圖7是圖示了用于例如使用運(yùn)行查詢管理框架406的分布式計(jì)算資源102管理分布式系統(tǒng)中的查詢的示例過程700的流程圖。
在方框702處,查詢管理框架406接收例如經(jīng)編譯的查詢或者其它數(shù)據(jù)庫查詢這樣的查詢指定。方框702可以包括經(jīng)由通信接口116例如從計(jì)算設(shè)備104的用戶界面136接收查詢指定。在上面參考圖4的查詢接收模塊422描述了在方框702中被執(zhí)行的示例功能。
在方框704處,查詢管理框架406至少部分上基于所接收的查詢指定而選擇子集指示中的一個子集指示。在上面參考圖4的確定模塊424描述了在方框608中被執(zhí)行的示例功能。
在方框706處,查詢管理框架406經(jīng)由通信接口發(fā)射所接收的查詢指定和所選擇的子集指示的標(biāo)識信息。在上面參考圖4的發(fā)射模塊426描述了在方框706中被執(zhí)行的示例功能。
圖8是圖示了用于例如使用運(yùn)行分析框架204的分布式計(jì)算資源102管理分布式系統(tǒng)中的上下文數(shù)據(jù)118的傳播的示例過程800的流程圖。在一些示例中,圖7的方框706之后跟隨方框802。
在方框802處,分析框架204經(jīng)由通信接口116接收例如sql或者h(yuǎn)ttp事務(wù)這樣的更新記錄。在上面參考圖5的查詢接收模塊422描述了在方框702中被執(zhí)行的示例功能。方框802之后可以跟隨方框804或者方框810。
在方框804處,分析框架204至少部分上基于更新記錄、上下文數(shù)據(jù)、規(guī)則集合和子集指示中的相應(yīng)的子集指示來確定一個或多個傳播記錄。在上面參考圖4的修改模塊420描述了在方框804中被執(zhí)行的示例功能。
在方框806處,分析框架204至少部分上基于上下文數(shù)據(jù)而修改規(guī)則集合。在上面參考圖4的修改模塊420描述了在方框806中被執(zhí)行的示例功能。方框806之后可以跟隨方框802或者方框808。這樣,分析框架204可以例如隨著新的更新記錄被提供而重復(fù)地修改規(guī)則集合。修改可以例如被定期地、間歇地或者以所選擇的時間表執(zhí)行。
在一些示例中,在方框808處,分析框架204經(jīng)由通信接口116發(fā)射具有(例如,伴隨)相應(yīng)的子集指示的標(biāo)識信息的所確定的傳播記錄中的每個傳播記錄或者一個或多個傳播記錄。在上面參考圖4的發(fā)射模塊416描述了在方框808中被執(zhí)行的示例功能。
在方框810中,分析框架204至少部分上基于所接收的更新記錄而修改上下文數(shù)據(jù)。在上面參考圖4的提交模塊418描述了在方框810中被執(zhí)行的示例功能。
圖9是圖示了用于例如使用運(yùn)行復(fù)制框架120或者分析框架204的分布式計(jì)算資源102管理分布式系統(tǒng)中的上下文數(shù)據(jù)118的示例過程900的流程圖。
在方框902處,可以例如由分布式計(jì)算資源102接收更新記錄。在一些示例中,方框902可以代表方框604或者方框802。在這些示例中的一些示例中,可以在方框604或者方框802之后執(zhí)行方框904(在下面被討論)。在一些示例中,可以響應(yīng)于接收與例如是至少一個上下文數(shù)據(jù)集404這樣的所存儲的上下文數(shù)據(jù)118相對應(yīng)的更新記錄而執(zhí)行方框904。
在方框904處,分布式計(jì)算資源102確定所接收的更新記錄與所存儲的觸發(fā)條件之間的匹配。觸發(fā)條件可以例如是如在上面參考(一個或者多個)觀察者單元202討論的那樣的。如果不存在任何匹配,則接下來的方框可以是例如用于等待另一個更新記錄的方框902。如果存在匹配,則接下來的方框是方框906。
在方框906處,響應(yīng)于所述匹配,分布式計(jì)算資源102至少部分上基于所存儲的輸入準(zhǔn)則,從所存儲的上下文數(shù)據(jù)118中選擇數(shù)據(jù)。所存儲的輸入準(zhǔn)則可以如上面參考圖2討論的那樣闡述例如觀察者單元202被配置為處理哪些數(shù)據(jù)。該選擇可以包括執(zhí)行查詢、過濾、產(chǎn)生報告或者以其它方式進(jìn)行變換、取子集或者提取來自上下文數(shù)據(jù)118的數(shù)據(jù)。
在方框908處,分布式計(jì)算資源102將所選擇的數(shù)據(jù)發(fā)射給觀察者單元202。在上面參考圖2的觀察者單元202描述了在方框908中被執(zhí)行的示例功能。該發(fā)射可以例如經(jīng)由通信接口116或者在(一個或者多個)處理單元110上執(zhí)行的進(jìn)程間通信(ipc)或者遠(yuǎn)程過程調(diào)用(rpc)子系統(tǒng)被執(zhí)行。方框908可以之后跟隨例如用于根據(jù)安全性限制執(zhí)行(一個或者多個)觀察者單元202的方框910或者例如用于對(一個或者多個)觀察者單元202的遠(yuǎn)程的或者非限制性的執(zhí)行的方框912。
在方框910處,分布式計(jì)算資源102使用通常被稱為“沙盒”的權(quán)限受限的執(zhí)行配置執(zhí)行觀察者單元202的計(jì)算機(jī)程序指令。如上面討論的,(一個或者多個)觀察者單元202可以使用軟件插件來實(shí)現(xiàn)。分布式計(jì)算資源102可以執(zhí)行允許(一個或者多個)軟件插件運(yùn)行的插件宿主的計(jì)算機(jī)程序指令。插件宿主可以建立沙盒,沙盒防止軟件插件例如寫計(jì)算機(jī)可讀介質(zhì)112上的文件或者經(jīng)由網(wǎng)絡(luò)106建立與不處在受信任的系統(tǒng)的“白名單”上的計(jì)算系統(tǒng)的連接。插件宿主還可以在允許任何軟件插件執(zhí)行之前使用密碼簽名驗(yàn)證技術(shù)來確定該插件攜帶來自受信任方的密碼簽名。插件宿主可以防止未經(jīng)簽名的軟件插件執(zhí)行。
在方框912處,分布式計(jì)算資源102從觀察者單元202接收第二更新記錄。在上面參考圖2的觀察者單元202描述了在方框912中被執(zhí)行的示例功能。所述接收可以例如經(jīng)由通信接口116或者進(jìn)程間通信(ipc)或者遠(yuǎn)程過程調(diào)用(rpc)子系統(tǒng)被執(zhí)行。
在方框914處,分布式計(jì)算資源102至少部分上基于所接收的第二更新記錄而修改所存儲的上下文數(shù)據(jù)118。在上面參考圖1和2的復(fù)制框架120描述了在方框914中被執(zhí)行的示例功能。
圖10是圖示了用于例如使用運(yùn)行復(fù)制框架120或者分析框架204的分布式計(jì)算資源102管理分布式系統(tǒng)中的上下文數(shù)據(jù)118的示例過程1000的流程圖。
在方框1002處,分布式計(jì)算資源102可以等待用于對上下文數(shù)據(jù)118進(jìn)行測試的信號。在一些示例中,該信號可以由復(fù)制框架120或者其提交模塊418響應(yīng)于上下文數(shù)據(jù)的變更而產(chǎn)生。在一些示例中,該信號可以由分布式計(jì)算資源102或者一個或多個計(jì)算設(shè)備104的模塊產(chǎn)生。在一些示例中,方框1002可以是響應(yīng)于在方框604、方框606、方框802、方框810或者方框914中被產(chǎn)生的信號的。在這些示例中的一些示例中,方框1004(在下面被討論)可以在方框604、方框606、方框802、方框810或者方框914之后或者在方框1012或者方框1106(這兩者在下面被討論)之后被執(zhí)行。在一些示例中,方框1004可以響應(yīng)于接收與例如是至少一個上下文數(shù)據(jù)集404這樣的所存儲的上下文數(shù)據(jù)118相對應(yīng)的更新記錄而被執(zhí)行。在一些示例中,方框1004可以響應(yīng)于對例如是至少一個上下文數(shù)據(jù)集404這樣的所存儲的上下文數(shù)據(jù)118的修改而被執(zhí)行。
在方框1004處,分布式計(jì)算資源102可以確定所存儲的上下文數(shù)據(jù)118的至少一部分與所存儲的觸發(fā)條件之間的匹配。所存儲的上下文數(shù)據(jù)118的至少一部分可以包括最近被修改的數(shù)據(jù)(例如,在方框1004跟隨在方框914之后時)或者未在最近被修改的數(shù)據(jù)。觸發(fā)條件可以例如是如在上面參考(一個或者多個)觀察者單元202討論的觸發(fā)條件。如果不存在任何匹配,則接下來的方框可以是例如用于等待用于對上下文數(shù)據(jù)118進(jìn)行測試的另一個信號的方框1002。如果存在匹配,則接下來的方框是方框1006。在一個示例中,分布式計(jì)算資源102可以例如使用在上下文數(shù)據(jù)的部分與觸發(fā)條件相匹配時成功的microsoftrx固定查詢或者sql存儲過程確定匹配。在一些示例中,觸發(fā)條件可以包括多個單獨(dú)的準(zhǔn)則,以使得觸發(fā)條件在所述準(zhǔn)則中的任一個準(zhǔn)則被滿足時被匹配。
在方框1006處,響應(yīng)于所述匹配,分布式計(jì)算資源102可以將所存儲的上下文數(shù)據(jù)的所述至少一部分發(fā)射給觀察者單元202。例如,觸發(fā)條件可以是基于所指定的準(zhǔn)則返回來自所選擇的表的整行的數(shù)據(jù)庫查詢。所存儲的上下文的所述至少一部分可以是被返回的行。發(fā)射可以如上面參考方框908描述的那樣被執(zhí)行。方框1006可以之后跟隨方框1008或者方框1010。
在方框1008處,分布式計(jì)算資源102使用權(quán)限受限的執(zhí)行配置(“沙盒”)執(zhí)行觀察者單元202的計(jì)算機(jī)程序指令。在上面參考方框910描述了在方框1008中被執(zhí)行的示例功能。
在方框1010處,分布式計(jì)算資源102從觀察者單元202接收第二更新記錄。在上面參考方框912描述的在方框1010中被執(zhí)行的示例功能。
在方框1012處,分布式計(jì)算資源102至少部分上基于所接收的第二更新記錄而修改所存儲的上下文數(shù)據(jù)。在上面參考方框914描述了在方框1012中被執(zhí)行的示例功能。
在一些示例中,通過使用復(fù)制服務(wù)器,第二多個傳播記錄可以至少部分上基于所接收的第二更新記錄被確定,其中,所述傳播記錄中的每個傳播記錄與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng)。第二多個傳播記錄中的傳播記錄可以經(jīng)由一個或多個通信接口被發(fā)射給復(fù)制客戶端中的相應(yīng)的復(fù)制客戶端。這可以允許反應(yīng)性的事件觸發(fā),在反應(yīng)性的事件觸發(fā)中,一個事件可以觸發(fā)其它的事件。
圖11是圖示了用于例如使用運(yùn)行復(fù)制框架120或者分析框架204的分布式計(jì)算資源102處理分布式系統(tǒng)中的上下文數(shù)據(jù)118的示例過程1100的流程圖。在一些示例中,方框604或者方框802可以之后跟隨方框1102。方框1102可以響應(yīng)于接收與例如是至少一個上下文數(shù)據(jù)集404這樣的所存儲的上下文數(shù)據(jù)118相對應(yīng)的更新記錄而被執(zhí)行。方框1102可以額外地或者替換地以時間表、規(guī)律地、間歇地或者在上下文數(shù)據(jù)118的大小或者內(nèi)容已比所選擇的閾值更多地變更時(例如,分別以被更新的記錄的字節(jié)或者數(shù)量計(jì))被執(zhí)行。
在方框1102處,分布式計(jì)算資源102存儲所存儲的上下文數(shù)據(jù)118的快照。方框1102可以例如包括將所存儲的上下文數(shù)據(jù)118或者一個或多個上下文數(shù)據(jù)集404的一些或者全部數(shù)據(jù)復(fù)制到例如數(shù)據(jù)庫服務(wù)器或者另一個存儲庫這樣的分布式計(jì)算資源102(2)。方框1102可以包括將所存儲的上下文數(shù)據(jù)118或者一個或多個上下文數(shù)據(jù)集404的一些或者全部數(shù)據(jù)輸出到例如cd-rom、藍(lán)光數(shù)據(jù)光盤、磁帶或者可移除閃存存儲裝置這樣的可移除介質(zhì)。所述方法可以在方框1102之后終止,或者,如果期望處理,則方框1102可以之后跟隨方框1104。
在方框1104處,分布式計(jì)算資源102(例如,圖2的102(1)或者102(m))使用機(jī)器學(xué)習(xí)算法對所存儲的快照進(jìn)行處理。在一些示例中,機(jī)器學(xué)習(xí)算法可以包括神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。在上面參考分析框架204和修改模塊420描述了在方框1104中被執(zhí)行的示例功能。
在方框1106處,分布式計(jì)算資源102至少部分上基于機(jī)器學(xué)習(xí)算法的輸出修改所存儲的上下文數(shù)據(jù)。在上面參考提交模塊418描述了在方框1106中被執(zhí)行的示例功能。
圖12是圖示了用于例如使用運(yùn)行復(fù)制框架120的分布式計(jì)算資源102管理分布式系統(tǒng)中的上下文數(shù)據(jù)118的傳播的示例過程1200的流程圖。在一些示例中,方框604、方框610或者方框802可以之后跟隨方框1202。方框1202可以響應(yīng)于接收與例如至少一個上下文數(shù)據(jù)集404這樣的所存儲的上下文數(shù)據(jù)118相對應(yīng)的更新記錄而被執(zhí)行。
在方框1202處,分布式計(jì)算資源102接收與第二所存儲的上下文數(shù)據(jù)相對應(yīng)的第二更新記錄。在至少一些示例中,圖6的方框604包括接收與例如是上下文數(shù)據(jù)集404(1)這樣的第一上下文數(shù)據(jù)集相對應(yīng)的更新記錄。在這些示例中,方框1202包括接收與例如上下文數(shù)據(jù)集404(k)這樣的第二上下文數(shù)據(jù)集相對應(yīng)的第二更新記錄。在上面參考接收模塊412描述的在方框1106中被執(zhí)行的示例功能。
在方框1204處,分布式計(jì)算資源102至少部分上基于所接收的更新記錄確定多個第二傳播記錄。第二傳播記錄中的每個第二傳播記錄與例如上下文數(shù)據(jù)集404(k)這樣的所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng)。在上面參考確定傳播模塊414描述了在方框1106中被執(zhí)行的示例功能。
在方框1206處,分布式計(jì)算資源102經(jīng)由一個或多個通信接口發(fā)射多個第二傳播記錄,其中,第二傳播記錄中的至少一個第二傳播記錄與第二標(biāo)識信息一同被發(fā)射。在上面參考發(fā)射模塊416描述了在方框1106中被執(zhí)行的示例功能。在一些示例中,第二標(biāo)識信息與多個傳播記錄中的至少一個傳播記錄的相應(yīng)的標(biāo)識信息相匹配。這允許對于不同的上下文數(shù)據(jù)集的兩個不同的上下文修改被提供給例如單個計(jì)算設(shè)備104這樣的相同的目的地。
圖13是圖示了用于例如使用運(yùn)行交互框架134的計(jì)算設(shè)備104修改本地上下文數(shù)據(jù)130的示例過程1300的流程圖。
在方框1302處,交互框架134經(jīng)由通信接口130例如從復(fù)制控制器或者其它分布式計(jì)算資源102接收傳播記錄。在上面參考圖5的傳播接收模塊516描述了在方框1302中被執(zhí)行的示例功能。
在方框1304處,交互框架134至少部分上基于所接收的傳播記錄修改本地上下文數(shù)據(jù)132。在上面參考圖5的傳播應(yīng)用模塊518描述了在方框1304中被執(zhí)行的示例功能。在一些示例中,方框1304可以之后跟隨圖14的方框1402。
在一些示例中,方框1304可以之后跟隨方框1302。這樣,可以對于額外的傳播記錄重復(fù)方框1302、1304。在一些示例中,在方框1302處,經(jīng)由通信接口接收第二傳播記錄。在方框1304處,至少部分上基于所接收的第二傳播記錄修改與所述本地上下文數(shù)據(jù)(例如,本地上下文數(shù)據(jù)集514(1))不同的第二本地上下文數(shù)據(jù)(例如,本地上下文數(shù)據(jù)集514(l))。
圖14是圖示了用于例如使用運(yùn)行交互框架134的計(jì)算設(shè)備104基于對本地上下文數(shù)據(jù)130的變更修改上下文數(shù)據(jù)118的示例過程1400的流程圖。
在方框1402處,交互框架134例如經(jīng)由用戶界面136接收數(shù)據(jù)記錄。在上面參考圖5的輸入模塊520描述了在方框1402中被執(zhí)行的示例功能。所接收的數(shù)據(jù)記錄可以被稱為第一數(shù)據(jù)記錄。
在方框1404處,交互框架134至少部分上基于所接收的數(shù)據(jù)記錄和本地上下文數(shù)據(jù)132確定更新記錄。在上面參考圖5的復(fù)制模塊522描述了在方框1404中被執(zhí)行的示例功能。
在方框1406處,交互框架134經(jīng)由通信接口130發(fā)射所確定的更新記錄。在上面參考圖5的發(fā)射模塊524描述了在方框1406中被執(zhí)行的示例功能。方框1406可以之后跟隨方框1404。這樣,可以針對給定的數(shù)據(jù)記錄確定和發(fā)射一個或多個更新記錄。在一些示例中,方框1406之后可以跟隨圖15的方框1502。
在一些示例中,方框1406可以之后跟隨方框1402。這樣,可以對于多個數(shù)據(jù)記錄重復(fù)方框1402、1404和1406。方框1402可以包括例如經(jīng)由用戶界面136接收第二數(shù)據(jù)記錄。方框1404可以包括至少部分上基于第二數(shù)據(jù)記錄和與所述本地上下文數(shù)據(jù)(例如,本地上下文數(shù)據(jù)集514(1))不同的第二本地上下文數(shù)據(jù)(例如,本地上下文數(shù)據(jù)集514(l))確定第二更新記錄。方框1406可以包括經(jīng)由通信接口130發(fā)射所確定的第二更新記錄。
圖15是圖示了用于例如使用運(yùn)行交互框架134的計(jì)算設(shè)備104至少部分上基于對本地上下文數(shù)據(jù)130的變更例如在形式或者內(nèi)容上對用戶界面136進(jìn)行變更的示例過程1500的流程圖。
在方框1502處,交互框架134經(jīng)由用戶界面136接收數(shù)據(jù)記錄。該數(shù)據(jù)記錄可以被稱為額外的數(shù)據(jù)記錄。在上面參考圖5的輸入模塊520和交互模塊526描述了在方框1502中被執(zhí)行的示例功能和可以從其接收(一個或者多個)數(shù)據(jù)記錄的示例傳感器512。
在方框1504處,交互框架134至少部分上基于數(shù)據(jù)記錄修改本地上下文數(shù)據(jù)132。在上面參考圖5的交互模塊526描述了在方框1504中被執(zhí)行的示例功能。
在方框1506處,交互框架134經(jīng)由用戶界面136提供輸出。例如是視覺上的顯示或者聽覺上的警告這樣的輸出是至少部分上基于數(shù)據(jù)記錄和經(jīng)修改的本地上下文數(shù)據(jù)132的。在上面參考圖5的交互模塊526描述了在方框1506中被執(zhí)行的示例功能。輸出可以例如在發(fā)射更新記錄(方框1406)之前或者與之并發(fā)地被提供,這可以減少基于數(shù)據(jù)記錄更新用戶界面136時的等待時間。
在一些示例中,圖9、14和15中所示的操作可以按照任何次序被執(zhí)行、被執(zhí)行任何次。例如,可以在對兩個額外的數(shù)據(jù)記錄的處理(圖15)之間接收和處理多個第一數(shù)據(jù)記錄(圖14)。
上面描述的一些示例涉及使用(一個或者多個)分布式計(jì)算資源102在(一個或者多個)計(jì)算設(shè)備104之間分布上下文數(shù)據(jù)118。一些示例的技術(shù)效果在于,減少處理對上下文數(shù)據(jù)118和本地上下文數(shù)據(jù)132的修改所需的(一個或者多個)計(jì)算設(shè)備104或者(一個或者多個)分布式計(jì)算資源102上的帶寬和處理循環(huán)。一些示例的另一個技術(shù)效果在于,對使用(一個或者多個)傳感器512確定的世界的數(shù)據(jù)進(jìn)行處理,以及,基于經(jīng)處理的數(shù)據(jù)修改上下文數(shù)據(jù)118。一些示例的另一個技術(shù)效果在于,在電子顯示器上呈現(xiàn)計(jì)算設(shè)備104的內(nèi)部狀態(tài)的視覺表示,所述內(nèi)部狀態(tài)例如是,諸如從使用(一個或者多個)傳感器512進(jìn)行的測量導(dǎo)出的信息這樣的本地上下文數(shù)據(jù)132中的信息。
示例條款
a:一種使用多用戶系統(tǒng)的復(fù)制服務(wù)器復(fù)制數(shù)據(jù)的方法,所述方法包括:將上下文數(shù)據(jù)存儲在所述復(fù)制服務(wù)器上,所述上下文數(shù)據(jù)是與一個或多個用戶與或者經(jīng)由所述多用戶系統(tǒng)進(jìn)行的(一個或者多個)交互相關(guān)的;從所述多用戶系統(tǒng)的多個復(fù)制客戶端中的第一復(fù)制客戶端接收與所存儲的上下文數(shù)據(jù)中的少于全部的數(shù)據(jù)相對應(yīng)更新記錄;至少部分上基于所接收的更新記錄,修改所存儲的上下文數(shù)據(jù);使用所述復(fù)制服務(wù)器至少部分上基于所接收的更新記錄,自動地確定多個傳播記錄,其中,所述傳播記錄中的每個傳播記錄與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);以及,經(jīng)由一個或多個通信接口將所述多個傳播記錄中的所述傳播記錄發(fā)射給所述復(fù)制客戶端中的相應(yīng)的復(fù)制客戶端。
b:如段a詳述的所述方法,其中:所述更新記錄與來自用戶的對于技術(shù)支持的請求相對應(yīng);所存儲的上下文數(shù)據(jù)包括與所述用戶的計(jì)算設(shè)備的配置有關(guān)的第一信息和標(biāo)識支持技術(shù)人員的第二信息;所述多個傳播記錄包括:包括所述第一信息并且省略所述第二信息的第一傳播記錄;以及,包括所述第二信息并且省略所述第一信息的第二傳播記錄;以及,所述發(fā)射進(jìn)一步包括:將所述第一傳播記錄發(fā)射給所述支持技術(shù)人員的復(fù)制客戶端,以及,將所述第二傳播記錄發(fā)射給所述用戶的復(fù)制客戶端。
c:如段a或者b詳述的所述方法,進(jìn)一步包括:從所述多個復(fù)制客戶端中的不同的第二復(fù)制客戶端接收與所存儲的上下文數(shù)據(jù)中的少于全部的數(shù)據(jù)相對應(yīng)的第二更新記錄;使用所述復(fù)制服務(wù)器至少部分上基于所接收的第二更新記錄,自動地確定多個第二傳播記錄,其中,所述第二傳播記錄中的每個第二傳播記錄與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);以及,經(jīng)由一個或多個通信接口發(fā)射所述多個第二傳播記錄,其中,所述傳播記錄中的至少一個傳播記錄和所述第二傳播記錄中的至少一個第二傳播記錄被發(fā)射給所述多個復(fù)制客戶端中的所選擇的復(fù)制客戶端。
d:如段a-d中的任一段詳述的所述方法,進(jìn)一步包括:確定所述更新記錄與所存儲的觸發(fā)條件之間的匹配;以及,響應(yīng)于所述匹配執(zhí)行以下項(xiàng):至少部分上基于所存儲的輸入準(zhǔn)則,從所存儲的上下文數(shù)據(jù)中選擇數(shù)據(jù);將所選擇的數(shù)據(jù)發(fā)射給觀察者單元;從所述觀察者單元接收第二更新記錄;以及,至少部分上基于所接收的第二更新記錄,修改所存儲的上下文數(shù)據(jù)。
e:如段d詳述的所述方法,進(jìn)一步包括:使用所述復(fù)制服務(wù)器至少部分上基于所接收的第二更新記錄,自動地確定第二多個傳播記錄,其中,所述傳播記錄中的每個傳播記錄與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);經(jīng)由所述一個或多個通信接口將所述第二多個傳播記錄中的所述傳播記錄發(fā)射給所述復(fù)制客戶端中的相應(yīng)的復(fù)制客戶端。
f:如段d或者e詳述的所述方法,進(jìn)一步包括:使用權(quán)限受限的執(zhí)行配置執(zhí)行所述觀察單元的計(jì)算機(jī)程序指令。
g:如段a-f中的任一段詳述的所述方法,進(jìn)一步包括:確定所存儲的上下文數(shù)據(jù)的至少一部分與所存儲的觸發(fā)條件之間的匹配;以及,響應(yīng)于所述匹配執(zhí)行以下項(xiàng):將所存儲的上下文數(shù)據(jù)的所述至少一部分發(fā)射給觀察者單元;從所述觀察者單元接收第二更新記錄;以及,至少部分上基于所接收的第二更新記錄,修改所存儲的上下文數(shù)據(jù)。
h:如段a-g中的任一段詳述的所述方法,其中:所述接收包括:響應(yīng)于來自所述多個復(fù)制客戶端中的所述第一復(fù)制客戶端的信號,接受所述更新記錄的數(shù)據(jù);以及,所述發(fā)射包括:向所述復(fù)制客戶端中的相應(yīng)的復(fù)制客戶端發(fā)射相應(yīng)的通知信號。
i:如段a-h中的任一個段詳述的所述方法,進(jìn)一步包括:與所存儲的上下文數(shù)據(jù)分離地存儲所存儲的上下文數(shù)據(jù)的快照;使用機(jī)器學(xué)習(xí)算法對所存儲的快照進(jìn)行處理;以及,至少部分上基于所述機(jī)器學(xué)習(xí)算法的輸出,修改所存儲的上下文數(shù)據(jù)。
j:如段i詳述的所述方法,所述機(jī)器學(xué)習(xí)算法包括神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。
k:多用戶系統(tǒng)的一種服務(wù)器,所述服務(wù)器包括:通信接口;被可運(yùn)行地耦合到所述通信接口的一個或多個處理單元;以及,具有存儲在其上的以下內(nèi)容的一個或多個計(jì)算機(jī)可讀介質(zhì):多用戶系統(tǒng)的上下文數(shù)據(jù),所述上下文數(shù)據(jù)是與一個或多個用戶與或者經(jīng)由所述多用戶系統(tǒng)進(jìn)行的(一個或者多個)交互相關(guān)的,并且包括來自多個數(shù)據(jù)源中的每個數(shù)據(jù)源的相應(yīng)的數(shù)據(jù);多個子集指示,每個子集指示標(biāo)識所述上下文數(shù)據(jù)的相應(yīng)的合適子集,并且與所述多用戶系統(tǒng)的相應(yīng)的復(fù)制客戶端相對應(yīng);以及指令,其在被所述一個或多個處理單元執(zhí)行時導(dǎo)致所述一個或多個處理單元執(zhí)行包括以下項(xiàng)的操作:接收引用所述多個數(shù)據(jù)源中的一個或多個數(shù)據(jù)源的查詢指定;至少部分上基于所接收的查詢指定,選擇所述子集指示中的一個子集指示;以及,經(jīng)由所述通信接口將所接收的查詢指定發(fā)射給與所述子集指示中的所選擇的子集指示相對應(yīng)的所述多用戶系統(tǒng)的復(fù)制客戶端。
l:如段k詳述的所述服務(wù)器,所述操作進(jìn)一步包括:經(jīng)由所述通信接口接收更新記錄;至少部分上通過對所述更新記錄和所述上下文數(shù)據(jù)應(yīng)用規(guī)則集合以標(biāo)識指示可采取行動的事件的所述上下文數(shù)據(jù)中的模式來確定一個或多個傳播記錄,其中,所述傳播記錄中的每個傳播記錄與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);以及,至少部分上基于所述上下文數(shù)據(jù),修改所述規(guī)則集合。
m:如段l詳述的所述服務(wù)器,所述操作進(jìn)一步包括:至少部分上基于所接收的更新記錄,修改所述上下文數(shù)據(jù)。
n:如段l或者m詳述的所述服務(wù)器,所述修改操作包括:將所述上下文數(shù)據(jù)中的至少一些上下文數(shù)據(jù)應(yīng)用于神經(jīng)網(wǎng)絡(luò),以及,至少部分上基于所述神經(jīng)網(wǎng)絡(luò)的輸出修改所述規(guī)則集合。
o:多用戶系統(tǒng)的一種復(fù)制客戶端,所述復(fù)制客戶端包括:通信接口;用戶界面;被可運(yùn)行地耦合到所述通信接口和所述用戶界面的一個或多個處理單元;以及,具有存儲在其上的本地上下文數(shù)據(jù)和指令的一個或多個計(jì)算機(jī)可讀介質(zhì),所述指令在被所述一個或多個處理單元執(zhí)行時導(dǎo)致所述一個或多個處理單元執(zhí)行包括以下項(xiàng)的操作:經(jīng)由所述通信接口從復(fù)制服務(wù)器接收傳播記錄;至少部分上基于所接收的傳播記錄修改所述本地上下文數(shù)據(jù),其中,所述本地上下文數(shù)據(jù)是與一個或多個用戶與所述多用戶系統(tǒng)的(一個或者多個)交互相關(guān)的;經(jīng)由所述用戶界面接收數(shù)據(jù)記錄;至少部分上基于所述數(shù)據(jù)記錄和所述本地上下文數(shù)據(jù)確定更新記錄;以及,經(jīng)由所述通信接口向所述復(fù)制服務(wù)器發(fā)射所確定的更新記錄以更新被存儲在所述復(fù)制服務(wù)器處的上下文數(shù)據(jù)。
p:如段o詳述的所述復(fù)制客戶端,所述操作進(jìn)一步包括:經(jīng)由所述用戶界面接收額外的數(shù)據(jù)記錄;至少部分上基于所述額外的數(shù)據(jù)記錄修改所述本地上下文數(shù)據(jù);以及,至少部分上基于所述經(jīng)修改的本地上下文數(shù)據(jù)經(jīng)由所述用戶界面提供輸出。
q:如段p詳述的所述復(fù)制客戶端,提供所述輸出在經(jīng)由所述通信接口進(jìn)行通信之前被執(zhí)行。
r:段o-q中的任一段詳述的所述復(fù)制客戶端,所述操作進(jìn)一步包括:經(jīng)由所述通信接口接收第二傳播記錄;以及,至少部分上基于所接收的第二傳播記錄修改與所述本地上下文數(shù)據(jù)不同的第二本地上下文數(shù)據(jù)。
s:如段o-r中的任一段詳述的所述復(fù)制客戶端,所述操作進(jìn)一步包括:接收第二數(shù)據(jù)記錄;至少部分上基于所述第二數(shù)據(jù)記錄和與所述本地上下文數(shù)據(jù)不同的第二本地上下文數(shù)據(jù)確定第二更新記錄;以及,經(jīng)由所述通信接口發(fā)射所確定的第二更新記錄。
t:如段o-s中的任一段詳述的所述復(fù)制客戶端,所述復(fù)制客戶端進(jìn)一步包括傳感器,以及,所述操作進(jìn)一步包括:經(jīng)由所述通信接口接收包括引用所述傳感器的數(shù)據(jù)庫查詢的查詢指定;檢索來自所述傳感器的數(shù)據(jù);使用所檢索的數(shù)據(jù)執(zhí)行所述數(shù)據(jù)庫查詢;以及,經(jīng)由所述通信接口發(fā)射所執(zhí)行的數(shù)據(jù)庫查詢的結(jié)果。
u:一種系統(tǒng),包括:一個或多個通信接口;被耦合到所述一個或多個通信接口的一個或多個處理單元;以及,被耦合到所述處理單元并且存儲指令的例如計(jì)算機(jī)存儲介質(zhì)這樣的一個或多個計(jì)算機(jī)可讀介質(zhì),所述指令在被所述一個或多個處理單元執(zhí)行時導(dǎo)致一個或多個處理單元執(zhí)行如段a-j中的任一段詳述的操作。
v:一種其上具有的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在執(zhí)行時將計(jì)算機(jī)配置為執(zhí)行如段a-j中的任一段詳述的操作。
w:一種系統(tǒng),包括:用于將上下文數(shù)據(jù)存儲在多用戶系統(tǒng)的復(fù)制服務(wù)器上的裝置,所述上下文數(shù)據(jù)是與一個或多個用戶與或者經(jīng)由所述多用戶系統(tǒng)進(jìn)行的(一個或者多個)交互相關(guān)的;用于從所述多用戶系統(tǒng)的多個復(fù)制客戶端中的第一復(fù)制客戶端接收與所存儲的上下文數(shù)據(jù)中的少于全部的數(shù)據(jù)相對應(yīng)更新記錄的裝置;用于至少部分上基于所接收的更新記錄修改所存儲的上下文數(shù)據(jù)的裝置;用于使用所述復(fù)制服務(wù)器至少部分上基于所接收的更新記錄自動地確定多個傳播記錄的裝置,其中,所述傳播記錄中的每個傳播記錄與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);以及,用于經(jīng)由一個或多個通信接口將所述多個傳播記錄中的所述傳播記錄發(fā)射給所述復(fù)制客戶端中的相應(yīng)的復(fù)制客戶端的裝置。
x:如段w詳述的所述系統(tǒng),其中:所述更新記錄與來自用戶的對于技術(shù)支持的請求相對應(yīng);所存儲的上下文數(shù)據(jù)包括與所述用戶的計(jì)算設(shè)備的配置有關(guān)的第一信息和標(biāo)識支持技術(shù)人員的第二信息;所述多個傳播記錄包括:包括所述第一信息并且省略所述第二信息的第一傳播記錄;以及,包括所述第二信息并且省略所述第一信息的第二傳播記錄;以及,用于發(fā)射的所述裝置進(jìn)一步包括:用于將所述第一傳播記錄發(fā)射給所述支持技術(shù)人員的復(fù)制客戶端,以及,將所述第二傳播記錄發(fā)射給所述用戶的復(fù)制客戶端的裝置。
y:如段w或者x詳述的所述系統(tǒng),進(jìn)一步包括:用于從所述多個復(fù)制客戶端中的不同的第二復(fù)制客戶端接收與所存儲的上下文數(shù)據(jù)中的少于全部的數(shù)據(jù)相對應(yīng)的第二更新記錄的裝置;用于使用所述復(fù)制服務(wù)器至少部分上基于所接收的第二更新記錄自動地確定多個第二傳播記錄的裝置,其中,所述第二傳播記錄中的每個第二傳播記錄與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);以及,用于經(jīng)由一個或多個通信接口發(fā)射所述多個第二傳播記錄的裝置,其中,所述傳播記錄中的至少一個傳播記錄和所述第二傳播記錄中的至少一個第二傳播記錄被發(fā)射給所述多個復(fù)制客戶端中的所選擇的復(fù)制客戶端。
z:如段w-z中的任一個段詳述的所述系統(tǒng),進(jìn)一步包括:用于確定所述更新記錄與所存儲的觸發(fā)條件之間的匹配的裝置;以及,用于響應(yīng)于所述匹配執(zhí)行以下項(xiàng)的裝置:至少部分上基于所存儲的輸入準(zhǔn)則從所存儲的上下文數(shù)據(jù)中選擇數(shù)據(jù);將所選擇的數(shù)據(jù)發(fā)射給觀察者單元;從所述觀察者單元接收第二更新記錄;以及,至少部分上基于所接收的第二更新記錄修改所存儲的上下文數(shù)據(jù)。
aa:如段z詳述的所述系統(tǒng),進(jìn)一步包括:用于使用所述復(fù)制服務(wù)器至少部分上基于所接收的第二更新記錄自動地確定第二多個傳播記錄的裝置,其中,所述傳播記錄中的每個傳播記錄與所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);以及,用于經(jīng)由所述一個或多個通信接口將所述第二多個傳播記錄中的所述傳播記錄發(fā)射給所述復(fù)制客戶端中的相應(yīng)的復(fù)制客戶端的裝置。
ab:如段z或者aa詳述的所述系統(tǒng),進(jìn)一步包括:用于使用權(quán)限受限的執(zhí)行配置執(zhí)行所述觀察單元的計(jì)算機(jī)程序指令的裝置。
ac:如段w-ab中的任一段詳述的所述系統(tǒng),進(jìn)一步包括:用于確定所存儲的上下文數(shù)據(jù)的至少一部分與所存儲的觸發(fā)條件之間的匹配的裝置;以及,用于響應(yīng)于所述匹配執(zhí)行以下項(xiàng)的裝置:將所存儲的上下文數(shù)據(jù)的所述至少一部分發(fā)射給觀察者單元;從所述觀察者單元接收第二更新記錄;以及,至少部分上基于所接收的第二更新記錄修改所存儲的上下文數(shù)據(jù)。
ad:如段w-ac中的任一段詳述的所述系統(tǒng),其中:用于接收的所述裝置包括:用于響應(yīng)于來自所述多個復(fù)制客戶端中的所述第一復(fù)制客戶端的信號接受所述更新記錄的數(shù)據(jù)的裝置;以及,用于發(fā)射的裝置單元包括:用于向所述復(fù)制客戶端中的相應(yīng)的復(fù)制客戶端發(fā)射相應(yīng)的通知信號的裝置。
ae:如段w-ad中的任一段詳述的所述系統(tǒng),進(jìn)一步包括:用于與所存儲的上下文數(shù)據(jù)分離地存儲所存儲的上下文數(shù)據(jù)的快照的裝置;用于使用機(jī)器學(xué)習(xí)算法對所存儲的快照進(jìn)行處理的裝置;以及,用于至少部分上基于所述機(jī)器學(xué)習(xí)算法的輸出修改所存儲的上下文數(shù)據(jù)的裝置。
af:如段ae詳述的所述系統(tǒng),所述機(jī)器學(xué)習(xí)算法包括神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。
ag:如段a-j中的任一段詳述的所述方法,進(jìn)一步包括:使用權(quán)限受限的執(zhí)行配置執(zhí)行所述觀察者單元的計(jì)算機(jī)程序指令。
ah:如段a-j中的任一段詳述的所述方法,所述發(fā)射進(jìn)一步包括:使用所述多個傳播記錄中的每個傳播記錄發(fā)射相應(yīng)的標(biāo)識信息,以及,所述方法進(jìn)一步包括:接收與第二所存儲的上下文數(shù)據(jù)相對應(yīng)的第二更新記錄;至少部分上基于所接收的更新記錄確定多個第二傳播記錄,其中,所述第二傳播記錄中的每個第二傳播記錄與所述第二所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);以及,經(jīng)由一個或多個通信接口發(fā)射所述多個第二傳播記錄,其中,所述第二傳播記錄中的至少一個第二傳播記錄帶著第二標(biāo)識信息被發(fā)射,以及,所述第二標(biāo)識信息與所述多個傳播記錄中的至少一個傳播記錄的相應(yīng)的標(biāo)識信息相匹配。
ai:一種系統(tǒng),包括:一個或多個通信接口;被耦合到所述通信接口的一個或多個處理單元;以及,被耦合到所述處理單元并且存儲指令的例如計(jì)算機(jī)存儲介質(zhì)這樣的一個或多個計(jì)算機(jī)可讀介質(zhì),所述指令在被所述一個或多個處理單元執(zhí)行時,導(dǎo)致一個或多個處理單元執(zhí)行如段ag或者ah詳述的操作。
aj:一種其上具有的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在執(zhí)行時將計(jì)算機(jī)配置為執(zhí)行如段ag或者ah詳述的操作。
ak:段w-af中的任一段詳述的所述系統(tǒng),進(jìn)一步包括:用于使用權(quán)限受限的執(zhí)行配置執(zhí)行所述觀察者單元的計(jì)算機(jī)程序指令的裝置。
al:如段w-af或者ak中的任一段詳述的所述系統(tǒng),用于發(fā)射的所述裝置進(jìn)一步包括:用于隨所述多個傳播記錄中的每個傳播記錄發(fā)射相應(yīng)的標(biāo)識信息的裝置,以及,所述系統(tǒng)進(jìn)一步包括:用于接收與第二所存儲的上下文數(shù)據(jù)相對應(yīng)的第二更新記錄的裝置;用于至少部分上基于所接收的更新記錄確定多個第二傳播記錄的裝置,其中,所述第二傳播記錄中的每個第二傳播記錄與所述第二所存儲的上下文數(shù)據(jù)的相應(yīng)的、不同的合適子集相對應(yīng);以及,用于經(jīng)由一個或多個通信接口發(fā)射所述多個第二傳播記錄的裝置,其中,所述第二傳播記錄中的至少一個第二傳播記錄帶著第二標(biāo)識信息被發(fā)射,以及,所述第二標(biāo)識信息與所述多個傳播記錄中的至少一個傳播記錄的相應(yīng)的標(biāo)識信息相匹配。
結(jié)論
盡管已使用專用于結(jié)構(gòu)化特征和/或方法學(xué)動作的語言描述了所述技術(shù),但應(yīng)當(dāng)理解,所附權(quán)利要求不必限于所描述的特征或者動作。相反,作為這樣的技術(shù)的示例實(shí)現(xiàn)方式描述了所述特征和動作。
在單個方框中圖示并且參考那些方框概述了示例過程的操作。過程被圖示為方框的邏輯流,所述方框中的每個方框可以代表可以用硬件、軟件或者其組合來實(shí)現(xiàn)的一個或多個操作。在軟件的上下文中,操作代表被存儲在一個或多個計(jì)算機(jī)可讀介質(zhì)上的在被一個或多個處理器執(zhí)行時使所述一個或多個處理器能夠執(zhí)行所詳述的操作的計(jì)算機(jī)可執(zhí)行指令。概括地,計(jì)算機(jī)可執(zhí)行指令包括執(zhí)行具體的功能或者實(shí)現(xiàn)具體的抽象數(shù)據(jù)類型的例程、程序、對象、模塊、組件、數(shù)據(jù)結(jié)構(gòu)等。對操作進(jìn)行描述所按照的次序不打算理解為限制,并且任何數(shù)量的所描述的操作可以按照任何次序被執(zhí)行、按照任何次序被組合、被細(xì)分成多個子操作和/或被并行地執(zhí)行,以便實(shí)現(xiàn)所描述的過程。所描述的過程可以被與一個或多個設(shè)備102、104相關(guān)聯(lián)的資源執(zhí)行,所述資源諸如是一個或多個內(nèi)部或者外部cpu或者gpu和/或一個或多個諸如是fpga、dsp或者上面描述的其它類型這樣的硬件邏輯。
上面描述的方法和過程中的全部方法和過程可以在被一個或多個通用計(jì)算機(jī)或者處理器執(zhí)行的軟件代碼模塊中被體現(xiàn),并且經(jīng)由所述軟件代碼模塊被完全地自動化。代碼模塊可以被存儲在任何類型的計(jì)算機(jī)可讀存儲介質(zhì)或者其它計(jì)算機(jī)存儲設(shè)備中。所述方法中的一些方法或者全部方法可以替換地在專業(yè)計(jì)算機(jī)硬件中被體現(xiàn)。
除非另外專門指出,否則特別諸如是“可以”、“可以是”、“可能”或者“可能是”這樣的條件詞在本上下文中被理解為呈現(xiàn)特定的示例包括而其它的示例不包括特定的特征、元素和/或操作。因此,這樣的條件詞一般不打算暗示特定的特征、元素和/或操作對于一個或多個示例是以任何方式必需的,或者一個或多個示例必須包括用于在具有或者不具有用戶輸入或者提示的情況下決定是否特定的特征、元素和/或操作在任何具體的示例中被包括或者將被執(zhí)行的邏輯。除非另外專門指出,否則諸如短語“x、y或者z中的至少一項(xiàng)”這樣的連接詞應(yīng)當(dāng)理解為呈現(xiàn)一個項(xiàng)目、術(shù)語等可以是x、y或者z或者其組合。
在本文中被描述和/或在附圖中被描繪的流程圖中的任何例行的描述、元素或者方框應(yīng)當(dāng)理解為,潛在地代表包括用于例行地實(shí)現(xiàn)具體的邏輯功能或者元素的一個或多個可執(zhí)行指令的模塊、段或者代碼的部分。替換的實(shí)現(xiàn)方式被包括在本文中描述的示例的范圍內(nèi),在替換的實(shí)現(xiàn)方式中,取決于如本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解的所涉及的功能,元素或者功能可以被刪除,或者按照與所示或者所討論的次序不同的次序被執(zhí)行,包括基本同步地或者按照逆序被執(zhí)行。應(yīng)當(dāng)強(qiáng)調(diào),可以對上面描述的示例作出許多改變或者修改,所述改變或者修改的元素應(yīng)當(dāng)理解為特別是可接受的示例。全部這樣的修改和改變打算在本文中被包括在本公開內(nèi)容的范圍的內(nèi)并且受下面的權(quán)利要求的保護(hù)。