本申請是申請日為2011年11月18日、申請?zhí)枮?01180065101.1、發(fā)明名稱為“計算機(jī)的延遲關(guān)?!钡闹袊l(fā)明專利申請的分案申請。
相關(guān)申請的交叉引用
本申請要求于2010年11月18日提交的、名稱為“User Interaction in a Computer Operating System”的第61/415,243號美國臨時申請的優(yōu)先權(quán),其全部內(nèi)容通過引用合并于此。
技術(shù)領(lǐng)域
本文涉及用于與計算機(jī)操作系統(tǒng)的用戶交互的系統(tǒng)和技術(shù)。
背景技術(shù):
計算機(jī)(例如,臺式PC、膝上型計算機(jī)、上網(wǎng)本計算機(jī)或者智能電話)用來操作的核心結(jié)構(gòu)可以包括基本輸入和輸出系統(tǒng)或者BIOS、操作系統(tǒng)和其他部件,這些部件可以被稱為占用為操作計算機(jī)提供基本功能的軟件“?!???梢栽诘谝淮谓油ê鸵龑?dǎo)計算機(jī)時訪問BIOS,并且BIOS可以提供用于計算機(jī)的基本功能,比如標(biāo)識、測試和初始化系統(tǒng)設(shè)備,這些系統(tǒng)設(shè)備包括存儲為了引導(dǎo)計算機(jī)而進(jìn)一步需要的代碼的存儲設(shè)備。用于操作系統(tǒng)的代碼可以存儲于這樣的附加設(shè)備上,并且可以提供計算機(jī)的進(jìn)一步引導(dǎo)直至它被完全引導(dǎo)并且準(zhǔn)備好操作。
操作系統(tǒng)一般用作在計算機(jī)硬件與計算機(jī)的用戶之間的接口。操作系統(tǒng)可以提供多種功能。例如,操作系統(tǒng)可以提供圖形用戶界面(GUI),計算機(jī)的用戶可以通過該GUI從計算機(jī)接收輸出并且可以通過該GUI向計算機(jī)提供輸入。操作系統(tǒng)也可以提供各種第三方應(yīng)用在其上執(zhí)行的平臺,其中操作系統(tǒng)提供應(yīng)用所需要的服務(wù)并且也提供如下機(jī)制,應(yīng)用可以通過該機(jī)制與其他資源(比如其他應(yīng)用、外圍設(shè)備(例如,打印機(jī)、相機(jī)等)和與操作系統(tǒng)本身提供的服務(wù))通信。
技術(shù)實現(xiàn)要素:
本文描述可以被實施為用于計算設(shè)備的操作系統(tǒng)的一部分或者在包括多個不同計算設(shè)備的系統(tǒng)中實施的系統(tǒng)和技術(shù)。例如,各種機(jī)制可以用來同步計算設(shè)備與在基于云的系統(tǒng)中存儲的數(shù)據(jù),由此使主控的計算機(jī)服務(wù)器系統(tǒng)可用于公眾的成員訪問系統(tǒng),并且系統(tǒng)轉(zhuǎn)而提供各種服務(wù),比如數(shù)據(jù)存儲和備份、文檔存儲、電子郵件尋路由和處置以及其他有用服務(wù)。計算設(shè)備可以是如下形式,該形式具有相對小的本地存儲裝置并且因此在主控的服務(wù)器系統(tǒng)存儲用戶的數(shù)據(jù)。附加地,可以配置設(shè)備以使得它實質(zhì)上持續(xù)連接到網(wǎng)絡(luò)(例如,無線網(wǎng)絡(luò))并且經(jīng)由網(wǎng)絡(luò)連接到因特網(wǎng)。作為結(jié)果,設(shè)備上的各種部件可以被布置用于根據(jù)接近常通方式操作。
具體地,下面詳細(xì)描述用于在以下情況下延遲計算機(jī)關(guān)停的過程(例如,將計算機(jī)置于休眠模式或掛起模式,或者完全將計算機(jī)關(guān)閉),其中計算機(jī)實踐中否則很快被關(guān)停以便保存功率,具體地電池功率(即,在設(shè)備沒有接收AC功率的某些實例中關(guān)??梢愿焖俪霈F(xiàn))。此關(guān)停通常由缺少用戶與設(shè)備(例如,平板計算機(jī)或智能電話計算機(jī))的交互或者關(guān)閉設(shè)備(例如,平板計算機(jī)或上網(wǎng)本)上的蓋子觸發(fā)。使用下文所述技術(shù),此設(shè)備的關(guān)停可以基于計算機(jī)關(guān)于其環(huán)境和其他變量做出的確定有意延遲預(yù)定量。例如,相對于深夜,計算機(jī)可以基于白天的某時刻延遲關(guān)停一標(biāo)準(zhǔn)時間,例如,在假設(shè)用戶可能簡單地從辦公室移向會議室同時他或她的膝上型計算機(jī)的蓋子關(guān)閉的工作日期間延遲關(guān)停。
同樣,計算機(jī)可以以基于正在計算機(jī)上執(zhí)行的應(yīng)用或者正在計算機(jī)上顯示的內(nèi)容的關(guān)停時序為基礎(chǔ)。例如,假設(shè)用戶應(yīng)當(dāng)在其旨在長時間退出使用計算機(jī)之前已經(jīng)保存并關(guān)閉了文檔,如果文字處理文檔為打開(并且可選擇地,如果文字處理文檔打開并且具有未保存的改變),則計算機(jī)可以延遲關(guān)停預(yù)定量。在進(jìn)行這種延遲確定時,計算機(jī)的位置也可以被考慮。例如,針對在工作或在家的用戶,計算機(jī)可以延遲關(guān)停,但如果用戶處于其他地方則不延遲,假設(shè)用戶在其關(guān)閉計算機(jī)時可能正要離開不熟悉的位置,因此將會長時間不再使用計算機(jī)。另外,定位技術(shù)(例如,GPS)可以用于確定計算機(jī)的速度,并且在某個速度之上更快關(guān)??梢员挥|發(fā),假設(shè)用戶關(guān)閉蓋子并且騎自行車或在汽車中(其是當(dāng)計算機(jī)可能具有高速的兩個示例)用戶并不期望使用設(shè)備。類似地,用戶的電子日歷可以被咨詢以確定是否關(guān)閉設(shè)備。例如,如果用戶在其日歷兩個會議之間的時間關(guān)閉設(shè)備上的蓋子,則系統(tǒng)可以假設(shè)其不久將在下一會議打開并且可以避免關(guān)停,而如果日歷示出是最后一個會議并且日歷中沒有其他事情,則設(shè)備可以立即關(guān)停假設(shè)用戶將去做一些不需要使用計算機(jī)的事情(如做些運動)。另外,剩余電量可以與先前考慮的一個或多個混合,使得當(dāng)電池電量更低或低于預(yù)定閾值時設(shè)備更容易被關(guān)停。
在關(guān)停計算機(jī)方面確定的延遲還可以取決于計算機(jī)以及在該計算機(jī)上操作的設(shè)備的直接環(huán)境。例如,如果設(shè)備上的近距離傳感器指示某物接近設(shè)備(尤其在其頂部或底部),假設(shè)設(shè)備已經(jīng)被滑入手提袋而不是被簡單地攜帶在用戶的手中,該設(shè)備可以被更快速地關(guān)閉。類似地,可以確定設(shè)備相對垂直的方向,并且系統(tǒng)可以確定垂直設(shè)備(高于其厚度)指示長關(guān)閉的可能性或大于或小于水平設(shè)備。此外,計算機(jī)上設(shè)備(諸如網(wǎng)絡(luò)接口)的活動可以提供附加指示。例如,當(dāng)3G接口或4G接口在設(shè)備上被激活時相比當(dāng)WiFi接口被激活時,設(shè)備可以更快或更慢關(guān)停。
在其他示例中,計算機(jī)可以學(xué)習(xí)用戶的偏好以在做出通常被認(rèn)為是關(guān)停計算機(jī)的指示(諸如通過關(guān)閉蓋子)的指示之后重新使用計算機(jī)。例如,每次用戶關(guān)閉并重新打開蓋子,操作系統(tǒng)可以記錄蓋子被關(guān)閉的時間長度,并且可以記錄上文所述因素(例如,白天的某時刻、地理位置、設(shè)備上打開的應(yīng)用、設(shè)備的速度、電池電量以及應(yīng)用中出現(xiàn)的內(nèi)容及其狀態(tài))中一個或多個因素的狀態(tài)。在足夠次此類循環(huán)之后,系統(tǒng)可以使用標(biāo)準(zhǔn)統(tǒng)計技術(shù)來標(biāo)識“長”關(guān)閉(其指示設(shè)備應(yīng)當(dāng)快速被關(guān)閉)和“短”關(guān)閉(其指示設(shè)備不應(yīng)當(dāng)被關(guān)閉以便當(dāng)用戶重新打開時可以快速可用)之間的關(guān)聯(lián)。統(tǒng)計關(guān)聯(lián)繼而可以被分析用于形成模型以應(yīng)用于確定將來延遲設(shè)備關(guān)停多長時間。例如,此類分析可以確定工作日上午9點與下午4點之間實例的90%是“短”關(guān)閉,使得生成的模型在此情況下產(chǎn)生更大的延遲。還可以確定下午5點之后當(dāng)只有web瀏覽器打開的實例的95%是“長”關(guān)閉,使得其在此情況下可以被更快速地關(guān)閉。
這里所述技術(shù)的某些實現(xiàn)方式可以提供一個或多個優(yōu)勢。例如,用戶可以從當(dāng)他或她離開會議或關(guān)閉其蓋子時使得計算機(jī)不自動關(guān)停中受益。因此,用戶可以立即回到工作而不需要等待計算機(jī)重啟。同樣,用戶可以避免嘗試在其手臂上平衡打開的膝上型計算機(jī)同時站在會議室外,然后試圖攜帶著該膝上型計算機(jī)、筆記本并同時打開門的尷尬情況。因此,用戶對該設(shè)備的滿意度可以提升并且用戶可以從相同制造商購買更多設(shè)備或者向好友或其他熟人推薦所述設(shè)備。同時,設(shè)備可以在動作適當(dāng)時快速關(guān)停,并且可以因此節(jié)省電能并避免生成不必要的熱量。在一個實現(xiàn)方式中,公開了一種計算機(jī)實施的計算機(jī)關(guān)停方法。所述方法包括:標(biāo)識計算設(shè)備已經(jīng)從其中所述計算設(shè)備上的輸入和輸出機(jī)制對于用戶可訪問的打開配置移向其中所述輸入和輸出機(jī)制中的至少某些對于用戶不可訪問的關(guān)閉配置;響應(yīng)于標(biāo)識所述計算設(shè)備已經(jīng)從所述打開配置移向所述關(guān)閉配置,啟動關(guān)停定時器;等待由所述關(guān)停定時器建立的預(yù)定時間段,并且從所述關(guān)停定時器確定所述計算設(shè)備可以從活躍狀態(tài)轉(zhuǎn)變成其中所述計算設(shè)備的功耗組件被掉電的休眠狀態(tài);以及在確定所述計算設(shè)備可以被轉(zhuǎn)變之后,將所述計算設(shè)備從所述活躍狀態(tài)轉(zhuǎn)變成所述休眠狀態(tài)。標(biāo)識所述計算設(shè)備已經(jīng)從所述打開配置移向所述關(guān)閉配置可以包括從所述計算設(shè)備上的蓋開關(guān)接收信號。同樣,標(biāo)識所述計算設(shè)備已經(jīng)從所述打開配置移向所述關(guān)閉配置可以包括從連接至所述計算設(shè)備的攝像頭獲得預(yù)定類型的信號。例如,所述計算設(shè)備采取翻蓋設(shè)備或滑蓋設(shè)備的形式。
在某些方面,所述方法還包括監(jiān)視所述計算設(shè)備上由將所述設(shè)備從所述打開配置移向所述關(guān)閉配置發(fā)起的關(guān)停序列,以及延遲所述計算設(shè)備從所述活躍狀態(tài)到所述休眠狀態(tài)的轉(zhuǎn)變,直到所述預(yù)定時間段之后并且所述關(guān)停序列結(jié)束。所述方法還可以包括從所述計算設(shè)備的用戶接收用于改變所述預(yù)定時間段的輸入,并且保存所述用戶輸入供所述關(guān)停定時器稍后訪問,以及隨后標(biāo)識所述計算設(shè)備已經(jīng)從所述關(guān)閉配置移向所述打開配置,并且取消所述關(guān)停定時器。在其他方面,所述方法包括隨后標(biāo)識所述計算設(shè)備已經(jīng)從所述打開配置移向所述關(guān)閉配置,并且重新啟動所述關(guān)停定時器。
在另一實現(xiàn)方式中,描述了一種計算設(shè)備中計算機(jī)實現(xiàn)的活動控制系統(tǒng)。所述系統(tǒng)包括:傳感器,被布置為確定何時所述計算設(shè)備已經(jīng)從其中輸入和輸出機(jī)制對于用戶可訪問的打開配置移向其中所述輸入和輸出機(jī)制中的至少某些對于用戶不可訪問的關(guān)閉配置;關(guān)停定時器,響應(yīng)所述計算設(shè)備已經(jīng)從所述打開配置移向所述關(guān)閉配置的確定,并且編程用于訪問定義可變關(guān)停延遲時間段的值的數(shù)據(jù);以及計算機(jī)活動管理器,響應(yīng)所述關(guān)停延遲定時器,并且編程用于延遲所述計算設(shè)備從活動狀態(tài)到其中所述計算設(shè)備的功耗組件被掉電的休眠狀態(tài)的轉(zhuǎn)變,直到所述關(guān)停延遲時間段到期。所述系統(tǒng)還可以包括開關(guān),被布置為當(dāng)所述計算設(shè)備從所述打開配置移向所述關(guān)閉配置時被觸發(fā)。此外,所述系統(tǒng)可以包括用戶接口,編程用于接收延遲時間段的用戶輸入并且將所述用戶提供的延遲時間段保存為所述可變關(guān)停延遲時間段的值。
在某些方面,所述傳感器包括與軟件交互的攝像頭,用于將所述攝像頭中出現(xiàn)的預(yù)定圖像與將所述設(shè)備從所述打開配置移向所述關(guān)閉配置的事件相關(guān)。同樣,將所述設(shè)備從打開配置移向所述關(guān)閉配置可以包括執(zhí)行用于禁用所述計算設(shè)備上虛擬鍵盤的動作。另外,所述計算設(shè)備可以包括頂部,以及通過滑動機(jī)制連接至所述頂部的底部,并且其中將所述設(shè)備從打開配置移向所述關(guān)閉配置包括在所述底部上滑動所述頂部。在某些方面,系統(tǒng)進(jìn)一步包括關(guān)停監(jiān)視器響應(yīng)關(guān)于所述計算設(shè)備上運行的應(yīng)用的狀態(tài)的信息,并且其中所述計算機(jī)活動管理器被布置為延遲所述計算設(shè)備從所述活躍狀態(tài)到所述休眠狀態(tài)的轉(zhuǎn)變,直到所述關(guān)停延遲時間段之后并且由所述關(guān)停監(jiān)視器確定的應(yīng)用的活動到期。
在又一實現(xiàn)方式中,公開了一種計算設(shè)備中計算機(jī)實現(xiàn)的活動控制系統(tǒng),所述系統(tǒng)包括:傳感器,被布置為確定何時所述計算設(shè)備已經(jīng)從其中輸入和輸出機(jī)制對于用戶可訪問的打開配置移向其中所述輸入和輸出機(jī)制中的至少某些對于用戶不可訪問的關(guān)閉配置;關(guān)停定時器,響應(yīng)所述計算設(shè)備已經(jīng)從所述打開配置移向所述關(guān)閉配置的確定,并且編程用于訪問定義可變關(guān)停延遲時間段的值的數(shù)據(jù);以及用于將所述計算設(shè)備從活動狀態(tài)轉(zhuǎn)變成其中所述計算設(shè)備的功耗組件僅在所述關(guān)停延遲時間段到期之后被掉電的休眠狀態(tài)的裝置。
在附圖和下文描述中闡述一個或者多個實施方式的細(xì)節(jié)。其他特征和優(yōu)點將從描述和附圖以及從權(quán)利要求變得清楚。
附圖說明
圖1是用于提供計算設(shè)備的延遲的鎖定的過程的概念圖。
圖2是使用上下文對象的操作系統(tǒng)的概念圖。
圖3是用于維持計算設(shè)備上的存儲器控制的系統(tǒng)的概念圖。
圖4是利用在計算機(jī)過程之間的消息傳遞提供線程親合性的系統(tǒng)的概念圖。
圖5是提供無狀態(tài)環(huán)境中的狀態(tài)信息的系統(tǒng)的概念圖。
圖6是跨越網(wǎng)絡(luò)為計算設(shè)備提供成像的系統(tǒng)的概念圖。
圖7是提供計算設(shè)備的遠(yuǎn)程監(jiān)視和控制的系統(tǒng)的概念圖。
圖8是用于提供在計算設(shè)備上高速緩存集中存儲于主控的計算機(jī)系統(tǒng)上的數(shù)據(jù)的系統(tǒng)的概念圖。
圖9是用于提供計算設(shè)備的延遲的鎖定的過程的流程圖。
圖10是用于管理操作系統(tǒng)中的上下文對象的過程的流程圖。
圖11是用于維持計算設(shè)備上的存儲器控制的過程的流程圖。
圖12是用于利用在計算機(jī)過程之間的消息傳遞提供線程親和性的過程的流程圖。
圖13是用于提供無狀態(tài)環(huán)境中的狀態(tài)信息的過程的流程圖。
圖14是跨越網(wǎng)絡(luò)為計算設(shè)備提供成像的過程的流程圖。
圖15是用于提供計算設(shè)備的遠(yuǎn)程監(jiān)視和控制的過程的流程圖。
圖16是用于提供在計算設(shè)備上高速緩存集中存儲于主控的計算機(jī)系統(tǒng)上的數(shù)據(jù)的過程的流程圖。
圖17示出可以用來實施這里描述的技術(shù)的計算機(jī)設(shè)備和移動計算機(jī)設(shè)備的示例。
各種附圖中的相似標(biāo)號指示相似單元。
具體實施方式
本文描述用于例如使用在計算設(shè)備(比如移動智能電話或上網(wǎng)本)上運行的操作系統(tǒng)的元素來提供用戶與設(shè)備的交互的系統(tǒng)和技術(shù)。在某些實現(xiàn)方式中,系統(tǒng)和技術(shù)可以提供可以與一個或者多個主控的服務(wù)器系統(tǒng)通信并且可以從服務(wù)器系統(tǒng)服務(wù)的各種操作系統(tǒng)部件。具體而言,可以設(shè)計操作系統(tǒng)以使得運行它在執(zhí)行它的時間中的多數(shù)時間有因特網(wǎng)連接。作為結(jié)果,可以設(shè)計由操作系統(tǒng)執(zhí)行的操作中的許多操作以假設(shè)網(wǎng)絡(luò)連接可用并且依賴于高速緩存技術(shù)或者其他橋接方式直至可以恢復(fù)網(wǎng)絡(luò)連接。具體而言,這里描述的設(shè)備可以具有與一個或者多個蜂窩電話網(wǎng)絡(luò)的數(shù)據(jù)部分通信以達(dá)到因特網(wǎng)的接近總是連接的無線數(shù)據(jù)接口。
具體地,這里詳細(xì)描述了一種可以改變設(shè)備關(guān)停(即,完全關(guān)機(jī)或進(jìn)入需要花費片刻從其恢復(fù)的功率節(jié)省模式)時間量的設(shè)備,當(dāng)用戶采取動作,設(shè)備可以感測該動作可能指示或可能不指示用戶期望將長時間不使用設(shè)備時,設(shè)備因此應(yīng)當(dāng)進(jìn)入不活躍狀態(tài)(例如,掛起模式或休眠模式)從中恢復(fù)將花費微不足道的時間量。設(shè)備可以基于設(shè)備狀態(tài)的多個觀察量做出延遲或不延遲的決定,或者延遲多少的決定,包括設(shè)備上硬件的狀態(tài)(計算機(jī)上正在運行的設(shè)備)、設(shè)備周圍的環(huán)境(例如,其他對象靠近、白天的某時刻、溫度、使用設(shè)備上的儀器的加速度和速度讀數(shù)以及設(shè)備的地理位置)、操作系統(tǒng)中運行的對象的狀態(tài)(哪些應(yīng)用正在該設(shè)備上運行以及這些應(yīng)用正在做什么,包括是否當(dāng)前正在顯示可能不需要用戶保存的文檔或其他內(nèi)容)。
圖1是用于提供計算設(shè)備的延遲的鎖定的過程的概念圖。一般而言,系統(tǒng)提供一種用于允許便攜計算設(shè)備的用戶采取動作以關(guān)停便攜計算設(shè)備而不立即關(guān)停設(shè)備(即,設(shè)備有意延遲關(guān)停)的機(jī)制。作為結(jié)果,如果用戶在采取這樣的動作之后改變他的或者她的想法,則用戶可以重新激活設(shè)備而無需采取對于這一特征而言原本如果設(shè)備將在用戶采取這樣的動作時立即關(guān)停則將另外需要的其他步驟。
在該圖中,示出在這一情況下為具有翻蓋(clamshell)設(shè)計的膝上型計算機(jī)的便攜計算設(shè)備的三個不同狀態(tài)。在第一狀態(tài)102中,計算機(jī)打開并且操作,并且時間是中午12點鐘。計算機(jī)上的顯示器108指示鎖定定時器已經(jīng)被設(shè)置成10秒。這里通過示例提供顯示器108,但是在實際使用中,設(shè)備不會顯示定時器上剩余的數(shù)量,并且定時器不會已經(jīng)在狀態(tài)102所示點開始操作。
在狀態(tài)104,在五秒之后,顯示器被關(guān)閉到計算機(jī)的基部——如下動作,該動作將正常地使計算機(jī)立即開始進(jìn)入休眠或者其他形式的不活躍模式。這樣的改變將包括使計算機(jī)上的微處理器掉電、關(guān)斷顯示器108、關(guān)斷冷卻扇和其他關(guān)聯(lián)機(jī)制、使圖形處理單元(GPU)掉電以及在設(shè)備上執(zhí)行其他功率節(jié)省技術(shù)。這些動作中的每個動作可以使得當(dāng)蓋子被重新打開時對設(shè)備的操作延遲,并且此延遲對于不期望關(guān)停只是暫時關(guān)閉蓋子的用戶而言是惱人的。雖然未由狀態(tài)104示出,但是設(shè)備在它已經(jīng)被關(guān)閉僅數(shù)秒時尚未完全掉電或者開始掉電,因為在這一示例中,設(shè)備具有在它甚至將開始關(guān)停序列之前的10秒內(nèi)置延遲(并且甚至可以有在該序列開始之后的某一不確定時間直至設(shè)備經(jīng)過它可以被重新激活的點而無大量用戶介入,比如錄入解鎖口令)。取而代之,可以比如通過關(guān)斷顯示器108來使有限數(shù)目的特征掉電以便向用戶給予設(shè)備在掉電這樣的印象。但是重新激活設(shè)備可以此時無需比再次打開設(shè)備更多的任何動作,并且其可以實質(zhì)上立即可用于執(zhí)行工作(例如,對于平均上電而言小于1秒或5秒)。
在關(guān)閉設(shè)備之后的14秒和9秒之后,在狀態(tài)106,例如打開設(shè)備,因為用戶的設(shè)備決定他們不想停止使用設(shè)備并且取而代之需要使用設(shè)備來執(zhí)行附加工作。由于定時器被設(shè)置成在10秒之后到期,所以設(shè)備尚未向它的休眠或者其他掉電狀態(tài)轉(zhuǎn)變。取而代之,設(shè)備上的需要大量時間來恢復(fù)功率的所有系統(tǒng)已經(jīng)保持上電,并且僅有限系統(tǒng)已經(jīng)被掉電,比如顯示器108。也在這一示例中,定時器已經(jīng)再次被重置成10秒,從而使得如果用戶再次關(guān)閉設(shè)備,則它不會在閉合之后的10秒內(nèi)開始進(jìn)入休眠或者其他不活躍模式。也在某些實施方式中,設(shè)備可以響應(yīng)于一個輸入而不是另一輸入來立即進(jìn)入睡眠。例如,錄入控制鍵組合可以使設(shè)備立即進(jìn)入睡眠,并且錄入這樣的組合可以被假設(shè)為用戶更有意圖。對照而言,關(guān)閉翻蓋設(shè)備可以實施預(yù)定延遲,因為這樣的動作可以更可能被預(yù)計為暫時動作(例如,在用戶將設(shè)備從一個地點移向下一地點時)。
用于開始使設(shè)備掉電的過程的特定延遲時間可以由設(shè)備的用戶設(shè)置。例如,如果用戶不想最大化電池節(jié)省并且頻繁關(guān)閉他們的計算機(jī)并且然后立即或者之后不久確定他們想要再次開始在他們的計算機(jī)上工作,則用戶可以設(shè)置用于定時器在設(shè)備開始使它的各種系統(tǒng)掉電以進(jìn)入睡眠或者休眠模式之前倒計時的相對長的時段。
盡管這里將設(shè)備示出為具有翻蓋布置,該翻蓋布置將在計算機(jī)的鉸鏈附近包括開關(guān),從而使得可以在翻蓋關(guān)閉并且計算機(jī)可以確定進(jìn)入掉電模式時按下開關(guān),但是也可以使用其他實現(xiàn)方式。例如,平面觸屏寫字板或者平板計算機(jī)可以允許用戶通過按壓設(shè)備的前表面、后表面或者外圍邊緣上的電源按鈕來使它掉電。這樣的動作可以使設(shè)備上的顯示器立即關(guān)斷以便向用戶給予設(shè)備正在完全掉電這樣的印象。然而,設(shè)備上的其他子系統(tǒng)(比如微處理器、存儲器控制器、圖形處理單元和其他這樣的子系統(tǒng))可以如上文討論的那樣在超時延遲的持續(xù)時間內(nèi)保持接通。
除了使系統(tǒng)掉電之外,定時器還可以用來延遲開始在計算設(shè)備(比如所示計算設(shè)備)上重置的安全裝置。例如,可以布置某些計算設(shè)備以使得在它們被置于睡眠模式或者其他不活躍模式時用戶將請求口令或者其他安全機(jī)制以使設(shè)備恢復(fù)完全活躍模式。在沒有這里討論的定時器的情況下,用戶如果他們關(guān)閉他們的設(shè)備或者以其他方式使它不活躍并且然后快速想起他們需要再次使用設(shè)備,則可能被迫重新錄入他們的口令。在具有定時器(比如這里討論的定時器實現(xiàn)方式)的情況下,用戶可以在他們已經(jīng)完成某個操作以使他們的設(shè)備不活躍之后快速按壓按鈕或者打開設(shè)備,并且他們可以讓用于設(shè)備的主頁或者桌面接近立即向他們顯示而無需他們重新錄入他們的口令或者其他證明信息以解鎖設(shè)備。簡言之,設(shè)備上的從解鎖狀態(tài)到鎖定狀態(tài)的轉(zhuǎn)變可以被有意地延遲確定的和用戶可選的時間段。
如上文更全面所述,延遲時間可以改變并且由設(shè)備自動計算。例如,延遲時間可以基于在設(shè)備被關(guān)閉時可以被標(biāo)識的多個變量由設(shè)備確定。例如,如上文所述,設(shè)備上應(yīng)用的狀態(tài)可以被分析(如白天的某時刻)以便例如更可能施加延遲或?qū)⑹┘酉鄬ΩL的延遲,其中在工作日以及未保存文檔在設(shè)備上打開期間該事件發(fā)生。類似地,設(shè)備的方向、設(shè)備的運動(均經(jīng)由速度測量并且來自可以指示用戶在汽車中而不是走路的加速計)以及在進(jìn)行確定時還可以被考慮的其他類似因素。
如上文所述,多個此類因素可以被組合以便在將確定。例如,白天的某時刻和設(shè)備的地理位置的組合可以被組合,并且在計算得分時每個分量可以被給定特定權(quán)重,其中得分可以線性相關(guān)或者對應(yīng)于施加延遲的長度。類似地,學(xué)習(xí)系統(tǒng)可以基于先前設(shè)備狀態(tài)的觀察量及其出現(xiàn)打開和關(guān)閉事件時周圍環(huán)境來確定延遲。例如,每次關(guān)閉設(shè)備時可以拍攝設(shè)備的快照,并且可以記錄關(guān)閉設(shè)備與下一次重新打開設(shè)備之間的時間。設(shè)備的某些狀態(tài)繼而可以統(tǒng)計上與用戶是否將不久再次打開設(shè)備或不打開設(shè)備相關(guān)。這些狀態(tài)繼而可以用于“延遲模型”,通過該模型用于延遲設(shè)備關(guān)停的時間可以作為先前學(xué)習(xí)的相關(guān)性的函數(shù)。特定學(xué)習(xí)系統(tǒng)和針對此類系統(tǒng)的統(tǒng)計分析是已知的,并且可以用于這里所述分析的上下文中。
以這一方式,這里描述的系統(tǒng)和方法可以提供用戶與計算設(shè)備的更方便體驗。設(shè)備可以在用戶已經(jīng)指示掉電命令之后略微延遲它的掉電,并且這樣的延遲可以用來如果用戶快速改變他的或者她的想法則允許設(shè)備快速上電。在相同時間,掉電延遲可以相對短,從而使得設(shè)備未用完過量電池功率。
圖2是使用上下文對象的操作系統(tǒng)的概念圖。一般而言,上下文對象是操作系統(tǒng)對象,該操作系統(tǒng)對象已經(jīng)隨它或者為它存儲關(guān)于上下文的信息,對象先前已經(jīng)在該上下文中存在于操作系統(tǒng)中,包括通過描述在第一對象已經(jīng)在操作系統(tǒng)中被創(chuàng)建和/或活躍時已經(jīng)在操作系統(tǒng)中存在和活躍的其他對象。
在該圖中,以基本翻蓋膝上型計算機(jī)的形式示出計算機(jī)202,但是計算機(jī)202可以采取其他形式,比如智能電話、觸屏寫字板或者平板設(shè)備。在計算機(jī)202的屏幕上示出對象的多個可視表示,并且這些可視表示包括在計算機(jī)202上加載的應(yīng)用的圖標(biāo)和表示。例如,圖標(biāo)208代表比如通過存儲于計算機(jī)202上的持久存儲裝置上或者從計算機(jī)202可訪問的服務(wù)器系統(tǒng)來從計算機(jī)202可訪問的特定字處理文檔。例如,計算機(jī)202可以存儲cookie或者其他機(jī)制,它可以通過該cookie或者其他機(jī)制向服務(wù)器系統(tǒng)標(biāo)識它本身以指示與服務(wù)器系統(tǒng)的向計算機(jī)202的用戶注冊的賬戶。計算機(jī)202可以使用這樣的機(jī)制以便從服務(wù)器系統(tǒng)獲得信息,比如獲得代表圖標(biāo)208的文檔的數(shù)據(jù)。用戶可以然后通過選擇圖標(biāo)來調(diào)用文檔。
小部件或者小配件212由計算機(jī)202的顯示器上的時鐘代表并且指示也可以在計算機(jī)202上顯示的對象類型。小部件或者小配件212可以采用多種熟悉形式并且可以從第三方被提供為代碼,這些第三方草擬應(yīng)用以補(bǔ)充以其他方式在設(shè)備202上加載的操作系統(tǒng)上可用的功能。新聞饋送214以新聞聚合器的形式代表在設(shè)備202上運行的活躍應(yīng)用,該新聞聚合器向計算機(jī)202的用戶示出新近當(dāng)前事件更新。
圖標(biāo)204以計算機(jī)202將執(zhí)行的持久搜索的形式代表對象。持久搜索是由設(shè)備(比如計算機(jī)202)自動重復(fù)的搜索。例如,計劃去歐洲度假的用戶可以建立去歐洲的航空公司航班的持久搜索,從而使得如果航班在某一價格變得可用則可以立即通知用戶。
一對框206、210指示可以與對象208和204之一關(guān)聯(lián)地保存的上下文數(shù)據(jù)。例如,框210指示用于文檔或者字處理文檔(比如文檔208)的上下文信息。在框210中示出各種字段以指示可以隨對象保存的上下文信息類型。例如,對象包括描述它屬于的對象類型的名稱和關(guān)于計算機(jī)202上存儲的所有其他對象唯一標(biāo)識對象的標(biāo)識號。
框210也示出初始地創(chuàng)建對象的時間和在創(chuàng)建對象208時也在計算機(jī)202上打開的對象的列表。附加地,框210包括在上次使用對象208時打開的其他對象的列表。在這一示例中,用戶在創(chuàng)建字處理對象208時和上次使用它時均回顧網(wǎng)站www.test.com。也在創(chuàng)建字處理文檔時,持久搜索對象204在計算機(jī)202上活躍。這樣的共同出現(xiàn)可以指示文檔被用戶創(chuàng)建以包含由持久搜索生成的信息。例如,如果用戶從持久搜索結(jié)果向剪貼板復(fù)制信息、創(chuàng)建文檔并且然后向文檔中粘貼搜索結(jié)果或者其他復(fù)制的數(shù)據(jù),則可以形成就這一點而言的又一更強(qiáng)推斷。也可以如框210中所示與對象208關(guān)聯(lián)地存儲這樣的信息(例如,通過確定上次何時保存文檔、由當(dāng)時打開的其他應(yīng)用共享文檔中的什么信息,因此指示在文檔與對象之間復(fù)制內(nèi)容)。
框210也示出文檔對象208已經(jīng)與之交互的對象。在這一示例中,文檔208已經(jīng)與應(yīng)用web打印機(jī)交互,這可以指示已經(jīng)在該打印機(jī)上打印出文檔208。可以存儲在對象之間的特定直接交互,因為它們可以提供在對象與其他對象之間的尤其強(qiáng)連接的指示。這樣的連接可以用來標(biāo)識用戶,該用戶是對象在特定情形中的預(yù)計用戶。
框206指示已經(jīng)與對象204關(guān)聯(lián)地存儲的上下文信息。同樣,對象的名稱包括唯一標(biāo)識號以及創(chuàng)建對象的時間。如框206中所示,四個不同其他對象在創(chuàng)建持久搜索對象204時活躍。這些其他對象包括字處理文檔、電子表格文檔和在創(chuàng)建持久搜索對象時在計算機(jī)202上查看的兩個不同網(wǎng)頁???06也指示持久搜索對象已經(jīng)與計算機(jī)202上的地圖應(yīng)用和聯(lián)系人應(yīng)用交互。訪問日志也指示用戶已經(jīng)訪問對象的時間并且也可以包括指示用戶與對象做過什么的信息。
使用這里所示的信息,可以用計算機(jī)202向用戶提供多種服務(wù)。例如,在下次在計算機(jī)202上起動對象208時,計算機(jī)202可以查看信息框210(實際上是計算機(jī)202或者另一設(shè)備上存儲的數(shù)據(jù),但是框210在這一幅圖中代表這樣的數(shù)據(jù))以確定設(shè)備202的用戶在特定文檔也已經(jīng)打開以用于字處理時已經(jīng)頻繁讓www.test.com網(wǎng)頁在瀏覽器中打開。這樣的確定可以在適當(dāng)境況中用來在打開文檔時自動起動瀏覽器,其中網(wǎng)頁在瀏覽器中活躍。以這樣的方式,用戶可以通過選擇用于與多個推斷有關(guān)的應(yīng)用之一的僅一個圖標(biāo)來使這些應(yīng)用被激活。
圖3是用于維持計算機(jī)設(shè)備305上的存儲器控制的系統(tǒng)300的概念圖。示例系統(tǒng)300可以包括控制在設(shè)備305上執(zhí)行軟件應(yīng)用310的操作系統(tǒng)330。在一個實現(xiàn)方式中,設(shè)備105可以是包含操作系統(tǒng)330的蜂窩電話,操作系統(tǒng)330能夠同時執(zhí)行若干軟件應(yīng)用。在備選實現(xiàn)方式中,計算設(shè)備305可以是膝上型計算機(jī)、個人計算機(jī)、個人數(shù)字助理或者其他適當(dāng)計算設(shè)備。
在設(shè)備305是電話的一個實現(xiàn)方式中,在接通電話之后,可以從持久存儲器320加載電話的操作系統(tǒng)330,并且操作系統(tǒng)330可以向用戶呈現(xiàn)包含預(yù)定圖標(biāo)顯示的圖形用戶界面。每個圖標(biāo)可以是可為用戶所用的應(yīng)用或者用于應(yīng)用的代理;在被選擇時,選擇的圖標(biāo)如果必要則可以向操作系統(tǒng)330傳遞關(guān)聯(lián)應(yīng)用的參數(shù)和在存儲器中的文件位置,操作系統(tǒng)330轉(zhuǎn)而可以執(zhí)行應(yīng)用310。每個執(zhí)行的應(yīng)用使用電話的持久存儲器320的段;隨著應(yīng)用繼續(xù)運行,它的存儲器要求可以增加。隨著用戶執(zhí)行更多應(yīng)用310或者運行的應(yīng)用310消耗附加存儲器,電話的存儲器320可以最終變得不足以適應(yīng)應(yīng)用310的存儲器需求。
在示例性實現(xiàn)方式中,存儲器管理系統(tǒng)300可以通過在持久存儲器320已經(jīng)被耗盡時終止一個或者多個應(yīng)用310并且在用戶返回到應(yīng)用時恢復(fù)終止的應(yīng)用來對存儲器短缺做出響應(yīng)。在某些實現(xiàn)方式中,由于終止的應(yīng)用窗口可能被另一應(yīng)用窗口完全或者部分遮蔽,所以用戶可能未意識到已經(jīng)終止了應(yīng)用。在用戶選擇切換回到應(yīng)用時,可以重新起動應(yīng)用,并且除了可能在顯示應(yīng)用時的遲緩響應(yīng)之外,用戶可能不知道應(yīng)用被暫時終止。
在示例實現(xiàn)方式中,操作系統(tǒng)330可以根據(jù)用戶與圖形用戶界面的交互對應(yīng)用310排行,并且每個應(yīng)用310可以響應(yīng)于來自操作系統(tǒng)的信號生成和保存關(guān)于它的當(dāng)前狀態(tài)的信息。應(yīng)用可以自行保存這樣的狀態(tài)信息或者可以向操作系統(tǒng)330提供信息,操作系統(tǒng)330轉(zhuǎn)而可以向持久存儲裝置(例如,閃存)保存信息。
如果存儲器320被耗盡,則操作系統(tǒng)330可以終止一個或者多個排行的應(yīng)用310并且稍后響應(yīng)于用戶請求重建終止的應(yīng)用。例如,一旦操作系統(tǒng)330已經(jīng)加載,則用戶可以選擇文檔查看應(yīng)用以讀取存儲的文檔。隨后,在文檔查看器仍然在運行之時,用戶可以打開web瀏覽器并且開始因特網(wǎng)沖浪。在web瀏覽會話的中間,用戶響應(yīng)于電子郵件已經(jīng)到達(dá)這樣的通知可以選擇電話的電子郵件應(yīng)用以回顧新郵件。隨著用戶閱讀電子郵件,用戶可以嘗試運行日歷應(yīng)用以創(chuàng)建用于在電子郵件中提到的事件的提醒。
在示例性實現(xiàn)方式中,隨著用戶打開新應(yīng)用,操作系統(tǒng)330可以根據(jù)一個或者多個動態(tài)標(biāo)準(zhǔn)對應(yīng)用310排行。這里,操作系統(tǒng)330可以用以下方式按照重要性的降序?qū)\行應(yīng)用310排行:電子郵件應(yīng)用、web瀏覽器和文檔查看器。這樣的排序可以按照各種方式出現(xiàn)。例如,可以將應(yīng)用分離成各種類別,比如必需業(yè)務(wù)應(yīng)用、娛樂應(yīng)用等。在一些實現(xiàn)方式中,操作系統(tǒng)330可以識別特定應(yīng)用在它在后臺中時處于休眠,因此它可以將該應(yīng)用分類為低優(yōu)先級。但是另一應(yīng)用可以持續(xù)通過網(wǎng)絡(luò)訪問信息(例如,消息接發(fā)程序)并且因此可以被排行為更高優(yōu)先級應(yīng)用。在一些實現(xiàn)方式中,將應(yīng)用劃分成兩個類別:可見應(yīng)用和不可見應(yīng)用。不可見應(yīng)用(即窗口對用戶不可見的那些應(yīng)用)比可見應(yīng)用排行更低。在備選實現(xiàn)方式中,應(yīng)用的開發(fā)者可以自行對應(yīng)用分類,或者用戶可以對應(yīng)用分類或者以其他方式排行,并且可以向操作系統(tǒng)330提供這樣的分類或者排行。
隨著用戶與應(yīng)用310交互,每個應(yīng)用可以生成和保存關(guān)于應(yīng)用的當(dāng)前狀態(tài)的信息。例如,在應(yīng)用進(jìn)入其中它可以在任何時間被操作系統(tǒng)330關(guān)閉的狀態(tài)(例如,應(yīng)用不再對用戶可見)時,操作系統(tǒng)330可以通知應(yīng)用保存它的當(dāng)前狀態(tài)。
返回到例示性示例,由于電話的存儲器320可能不足以一次運行所有四個應(yīng)用,所以操作系統(tǒng)330可以在它打開日歷應(yīng)用時選擇終止最低排行應(yīng)用(在這一示例中為文檔查看器),因為它已經(jīng)用完存儲器。在備選實現(xiàn)方式中,操作系統(tǒng)330可以預(yù)測即將來臨的存儲器短缺并且終止一個或者多個應(yīng)用以防止存儲器用完。例如,如果當(dāng)前可用存儲器數(shù)量降至預(yù)定閾值以下,則操作系統(tǒng)可以關(guān)閉低排行應(yīng)用以將當(dāng)前可用存儲器數(shù)量帶到閾值以上。在備選實現(xiàn)方式中,操作系統(tǒng)330可以比較應(yīng)用310的即將到來的存儲器請求與當(dāng)前可用存儲器數(shù)量;如果請求的數(shù)量超過當(dāng)前可用數(shù)量,則操作系統(tǒng)將關(guān)閉一個或者多個應(yīng)用。
在這樣的情形中,操作系統(tǒng)330可以標(biāo)識一個或者多個最低排行應(yīng)用并且暫時終止它們。操作系統(tǒng)330也可以設(shè)置標(biāo)志作為可能需要在稍后時間(例如,在存儲器釋放時)自動重新起動的應(yīng)用的指示。
選擇待關(guān)閉的應(yīng)用可以通過其他技術(shù)而出現(xiàn)。例如,操作系統(tǒng)330可以確定特定應(yīng)用所需要的存儲器數(shù)量并且然后標(biāo)識可以釋放該存儲器數(shù)量加上某一開銷存儲器安全區(qū)的其他操作應(yīng)用。作為一個示例,應(yīng)用可以請求3000K的額外存儲器,并且三個其他應(yīng)用可能各自能夠分別釋放2000K、3000K和35000K的存儲器。操作系統(tǒng)330可以確定可以通過關(guān)閉前兩個程序來實現(xiàn)對存儲器的最少“損壞”或者可用存儲器的最佳使用,因為它們最接近地迫近需要的存儲器數(shù)量。備選地,操作系統(tǒng)可以被編程用于偏好于關(guān)閉盡可能少的應(yīng)用。在這樣的情形中,在該示例中將關(guān)閉第三個應(yīng)用。
一旦用戶已經(jīng)完成使用日歷應(yīng)用,則用戶可以選擇返回到文檔查看應(yīng)用。在操作系統(tǒng)330檢測到用戶嘗試返回到已經(jīng)被暫時關(guān)閉的文檔查看應(yīng)用時,操作系統(tǒng)330可以使用保存的狀態(tài)信息來重建應(yīng)用。
為了這樣做,操作系統(tǒng)330可以先感測用于訪問文檔查看應(yīng)用的命令,并且可以從存儲的標(biāo)志察覺這樣的應(yīng)用活躍、但是已經(jīng)被暫時關(guān)閉。操作系統(tǒng)330然后可以起動應(yīng)用并且向應(yīng)用傳遞保存的狀態(tài)信息以使得可以用應(yīng)用在它被暫時關(guān)閉時的形式或者基本上用它在它被暫時關(guān)閉時的形式重建它。備選地,應(yīng)用可以已經(jīng)與操作系統(tǒng)配合存儲了它自己的狀態(tài)信息,并且可以自己訪問和實施這樣的信息。
圖4是利用在計算機(jī)過程之間的消息傳遞提供線程親合性的系統(tǒng)的概念圖。一般而言,系統(tǒng)示出一對過程,該對過程在計算設(shè)備上執(zhí)行并且相互通信以在過程之間傳遞信息。例如,一個過程可以將消息與關(guān)于第二過程將如何對消息做出響應(yīng)或者反應(yīng)的信息一起向第二過程傳遞,并且第二過程一旦它已經(jīng)對消息做出響應(yīng)或者反應(yīng)則可以向第一過程提供確認(rèn)。更具體地參照圖4,系統(tǒng)400包括第一過程402和第二過程404。過程402、404二者可以在單個計算設(shè)備以時間重疊方式同時或者基本上同時執(zhí)行。
第一過程402可以例如是顯示一個或者多個文檔412的文檔管理程序。文檔管理程序可以例如是字處理應(yīng)用或者在Web瀏覽器中實施字處理應(yīng)用的Web應(yīng)用。在某些實例中,Web瀏覽器可以是操作系統(tǒng)的一部分,其中Web瀏覽器是用于操作系統(tǒng)的僅有本機(jī)應(yīng)用,并且所有其他應(yīng)用作為Web應(yīng)用內(nèi)的Web應(yīng)用來操作。
第二過程404示出執(zhí)行地圖應(yīng)用414。例如,在系統(tǒng)中運行的不同Web應(yīng)用可以訪問基于服務(wù)器的地圖服務(wù)并且可以用公知方式提供信息以用于使用地圖地理的圖形瓦片來顯示地理位置。例如,可以使用別針或者其他圖標(biāo)在地圖上指示執(zhí)行過程402、404的設(shè)備的用戶的位置。也可以在設(shè)備上將單獨過程402、404表示為單個Web瀏覽器的單獨標(biāo)簽頁,其中過程互為沙盒,包括通過一般防止在不同域之間的通信出現(xiàn)于Web瀏覽器內(nèi)的實現(xiàn)方式。
在過程402、404之間傳遞的箭頭集合指示可以從過程之一向另一過程以及相反傳達(dá)的消息和信息。例如,可以初始地從過程402向過程404發(fā)送消息406。例如,消息可以指示將引起用于過程404的顯示改變的信息。在這一示例中,例如,消息406可以包括可以用來使地圖應(yīng)用414中顯示的地圖的不同區(qū)域被示出的緯度和經(jīng)度或者地址描述。
附加地,過程402可以向過程404傳遞關(guān)于過程404將執(zhí)行涉及消息406的一個或者多個命令的方式的信息。在這一示例中,信息是按照優(yōu)先級命令408的形式。優(yōu)先級命令408可以向過程404通知它應(yīng)當(dāng)向它的涉及消息406的執(zhí)行給予的優(yōu)先級。例如,如果過程402不是時間敏感的過程形式,則優(yōu)先級命令408可以指示對消息406的響應(yīng)不會被過程404視為高優(yōu)先級。
可以根據(jù)特定境況向過程404單獨或者一起和直接或者間接傳遞消息406和優(yōu)先級命令408。例如,當(dāng)在單個更大消息中一起傳遞消息406和優(yōu)先級命令408時,過程404可以解析更大消息以標(biāo)識消息的消息部分和在消息內(nèi)嵌入的優(yōu)先級命令。在其他示例中,可以隨消息406包括附加信息,并且可以如對于過程402和過程404被編程用于操作和互操作的方式而言適合的那樣標(biāo)識和處理附加信息。過程402和過程404的互操作性可以由兩個過程維持,這些過程符合用于格式化在過程之間的通信的應(yīng)用編程接口(API)或者其他相似標(biāo)準(zhǔn)。
在某些實現(xiàn)方式中,過程404可以向處理器402傳遞回消息。一個這樣的消息是確認(rèn)410,該確認(rèn)410向過程402指示過程404已經(jīng)完全作用于消息406。在某些實現(xiàn)方式中,確認(rèn)410可以簡單地通過過程404響應(yīng)于接收消息406向過程402提供回信息而出現(xiàn)。在這一具體示例中,這樣的信息可以包括可以向由過程402管理的文檔412中自動集成的、由應(yīng)用404確定的地圖區(qū)域的圖像。
以這一方式,可以通過允許一個過程向另一過程傳達(dá)附加信息來增強(qiáng)過程間通信,該附加信息包括過程何時是在Web瀏覽器應(yīng)用中在沙盒環(huán)境中運行的單獨窗口或者標(biāo)簽頁的部分。這樣的通信可以允許第一過程控制另一過程執(zhí)行某個代碼的方式、包括第二過程向代碼的執(zhí)行給予的優(yōu)先級。作為結(jié)果,可以提供在過程之間的更緊密互操作性而仍然維持防止過程之一非法控制或者影響其他過程之一的高安全性水平。
圖5是在無狀態(tài)環(huán)境中提供狀態(tài)信息的系統(tǒng)的概念圖。一般而言,系統(tǒng)500使用服務(wù)器系統(tǒng)502以代表服務(wù)器系統(tǒng)502的特定用戶保存關(guān)于登錄到服務(wù)器系統(tǒng)502的各種設(shè)備上的瀏覽器應(yīng)用的狀態(tài)的最新狀態(tài)信息。例如,在瀏覽器是設(shè)備(比如計算設(shè)備504)上的操作系統(tǒng)的僅有本機(jī)應(yīng)用時,可以持續(xù)向服務(wù)器系統(tǒng)502上傳并且在服務(wù)器系統(tǒng)502中更新狀態(tài)信息。以這樣的方式,如果用戶關(guān)斷計算設(shè)備504或者以其他方式移向另一計算設(shè)備并且從另一計算設(shè)備登錄到服務(wù)器系統(tǒng)502,則可以向在該另一設(shè)備上運行的應(yīng)用復(fù)制用于瀏覽器應(yīng)用的狀態(tài)信息,其中該應(yīng)用也可以在其中Web瀏覽器應(yīng)用為僅有本機(jī)應(yīng)用的操作系統(tǒng)中運行,并且所有其他應(yīng)用是在瀏覽器應(yīng)用內(nèi)運行的web應(yīng)用。同樣,如果用戶關(guān)閉一個設(shè)備上的會話并且稍后啟動相同設(shè)備,則這里討論的技術(shù)可以使用在服務(wù)器系統(tǒng)而不是在設(shè)備本身上存儲的狀態(tài)數(shù)據(jù)來重建會話。作為結(jié)果,系統(tǒng)可以操作而無需用于在設(shè)備上存儲這樣的信息的過量存儲器,并且可以在設(shè)備之間更容易共享狀態(tài)信息。
系統(tǒng)500在這一示例中包括通過網(wǎng)絡(luò)506(比如因特網(wǎng)和有關(guān)連接網(wǎng)絡(luò))與服務(wù)器系統(tǒng)502通信的計算設(shè)備504??梢匀菁{服務(wù)器系統(tǒng)502作為向系統(tǒng)500的用戶提供各種Web服務(wù)的系統(tǒng)中的更大數(shù)據(jù)中心的一部分。例如,服務(wù)器系統(tǒng)502可以包括一個或者多個Web服務(wù)器,該Web服務(wù)器可以提供用于生成用于在計算設(shè)備504上顯示的文檔的HTML代碼。
計算設(shè)備504包括多個特定部件,這些部件允許存儲用于將通常為無狀態(tài)應(yīng)用的瀏覽應(yīng)用的狀態(tài)信息以使得可以在稍后時間在設(shè)備504上或者在另一設(shè)備上復(fù)制計算設(shè)備504的狀態(tài)。例如,如果用戶將設(shè)備504置于睡眠模式或者關(guān)斷設(shè)備504,則在操作系統(tǒng)允許設(shè)備504完全進(jìn)入睡眠模式之前可以已經(jīng)向服務(wù)器系統(tǒng)502保存了(例如,在用戶利用web瀏覽器執(zhí)行他的或者她的最后動作時)或者可以向服務(wù)器系統(tǒng)502上傳了設(shè)備504的最當(dāng)前狀態(tài)。例如,如果設(shè)備504被編程用于每當(dāng)設(shè)備504上的狀態(tài)信息有改變時上傳狀態(tài)信息改變的指示符,則狀態(tài)信息可以先前已經(jīng)存儲于服務(wù)器系統(tǒng)502。狀態(tài)信息除了為了重建設(shè)備的狀態(tài)而需要的其他相關(guān)信息之外還可以包括用于當(dāng)前顯示于設(shè)備上的頁面的文檔對象模型(DOM)。
現(xiàn)在參照可以在設(shè)備504中實施的特定部件,示出瀏覽器應(yīng)用510,并且瀏覽器應(yīng)用510可以是在設(shè)備504上本機(jī)執(zhí)行的僅有應(yīng)用??梢栽谠O(shè)備504上單獨存儲HTML 508以使得瀏覽器應(yīng)用510可以渲染它。HTML 508可以采用多種形式并且可以在一個或者多個示例中被表示為文檔對象模型(DOM)樹。設(shè)備504也可以存儲和實施JavaScript 512和JavaScript變量514。例如,在渲染HTML 508時,HTML可以包括指向?qū)⒃谠O(shè)備504上運行的各種JavaScript程序的指針或者對這些程序的調(diào)用。這些程序在執(zhí)行時可以取回或者生成在程序的操作中需要的變量或者其他信息。
用戶接口516也可以被存儲于設(shè)備上并且可以代表各種參數(shù),這些參數(shù)包括在設(shè)備504的可視顯示器或者屏幕上顯示的內(nèi)容的當(dāng)前表示。例如,用戶界面516可以存儲關(guān)于瀏覽器的什么標(biāo)簽頁在特定時間打開的信息和/或操作系統(tǒng)是否支持特定類型的應(yīng)用(比如在瀏覽器的頂部之上顯示的浮動窗格)作為特征狀態(tài),以及可以用來描述設(shè)備504上的顯示的當(dāng)前狀態(tài)并且可以進(jìn)一步用來重構(gòu)與設(shè)備504上的當(dāng)前顯示的信息匹配的顯示的其他適當(dāng)信息。
網(wǎng)頁保存應(yīng)用518也可以被實施于設(shè)備504上,并且可以跟蹤瀏覽器510和其他瀏覽器或者在設(shè)備504上執(zhí)行的其他程序的當(dāng)前狀態(tài)。例如,網(wǎng)頁保存應(yīng)用518可以截獲對或者來自設(shè)備504上的特定部件的調(diào)用以確定關(guān)于由瀏覽器510代表的內(nèi)容或者關(guān)于其他信息已經(jīng)進(jìn)行的改變。網(wǎng)頁保存應(yīng)用518然后可以使通信由設(shè)備504生成并且被引向服務(wù)器系統(tǒng)502以指示在瀏覽器510的當(dāng)前狀態(tài)中已經(jīng)進(jìn)行的改變。例如,設(shè)備504可以向服務(wù)器系統(tǒng)502提供如下信息,該信息指示已經(jīng)打開瀏覽器標(biāo)簽頁并且也提供用于該標(biāo)簽頁的URL。
網(wǎng)頁保存應(yīng)用518和設(shè)備504上的其他部件也可以具有對圖像520的數(shù)據(jù)存儲庫的訪問權(quán)。在某些方面中,圖像520簡單地是操作系統(tǒng)級圖像,比如用于為了運行設(shè)備504和重建設(shè)備504的狀態(tài)而需要的一般圖標(biāo)和其他基本信息的圖像。圖像也可以是網(wǎng)頁上的圖像或者由設(shè)備504上的Web應(yīng)用使用的圖像,并且可以代表網(wǎng)頁保存應(yīng)用518存儲圖像以用于在應(yīng)用518中或者由應(yīng)用518稍后訪問。
在一個示例中使用這里描述的系統(tǒng)500,可以捕獲并且向服務(wù)器系統(tǒng)502上傳用戶的設(shè)備的當(dāng)前狀態(tài)。用戶然后可以比如通過從家用計算機(jī)移向網(wǎng)絡(luò)計算機(jī)來移向另一計算設(shè)備并且在用戶已經(jīng)引導(dǎo)另一設(shè)備并且可能提供證書以向服務(wù)器系統(tǒng)502標(biāo)識他們自己(人工或者經(jīng)由另一設(shè)備上的保存的cookie)時可以讓設(shè)備504的完全狀態(tài)在工作計算機(jī)或者其他這樣的設(shè)備被復(fù)制。作為結(jié)果,用戶可以從一個設(shè)置向另一設(shè)置切換或者可以回到他們更方便地離開并且可以能夠更高效地使用設(shè)備504上的應(yīng)用的地方。例如,如果用戶建立應(yīng)用或者代表用戶在瀏覽器501中執(zhí)行的Web應(yīng)用,則用戶可能想要保持那些Web應(yīng)用在稍后時間或者在另一設(shè)備運行。例如,用戶可能偏好于讓電子郵件Web應(yīng)用、文檔編輯應(yīng)用、地圖應(yīng)用和一般web瀏覽窗口始終打開,并且狀態(tài)復(fù)制技術(shù)可以無論用戶何時從一個機(jī)器移向另一機(jī)器都允許用戶這樣做而無需人工重建狀態(tài)。
可以使用系統(tǒng)500中的其他部件來影響當(dāng)用戶提供關(guān)于用戶是否希望設(shè)備進(jìn)入不活躍狀態(tài)的模糊標(biāo)識時設(shè)備進(jìn)入不活躍狀態(tài)的方式—即用戶標(biāo)識可以被合理地解釋為旨在停止使用設(shè)備504一段較短時間(例如在5分鐘以下或者在10分鐘以下)或者一段較長時間(例如多于5分鐘,或者多于10分鐘,或者多于15分鐘)。例如,可以包括定時器522以識別是否已經(jīng)發(fā)生關(guān)于是否關(guān)停機(jī)器的模糊用戶標(biāo)識(例如,蓋子已經(jīng)被關(guān)閉,用戶已經(jīng)停止鍵入或者存在諸如觸摸屏輸入的其他交互的停止),并且可以開始計數(shù)以確定足夠的時間何時已經(jīng)到期,使得可以發(fā)生關(guān)停序列。延遲模塊524可以標(biāo)識相關(guān)變量用于在事件發(fā)生時確定延遲時段,并且可以向定時器提供在當(dāng)前環(huán)境下由系統(tǒng)500確定為適當(dāng)延遲時間的時間。延遲模塊524可以考慮上文討論的因素的變化。同樣,學(xué)習(xí)模塊526可以從定時器522獲得蓋子關(guān)閉以及重新打開的時間,并且也可以收集當(dāng)此類改變發(fā)生時關(guān)于設(shè)備的狀態(tài)的數(shù)據(jù),諸如一天中的時間、設(shè)備的地理位置(例如使用GPS包)、設(shè)備的定向、在設(shè)備上執(zhí)行的應(yīng)用、在這些應(yīng)用中的任何應(yīng)用中的內(nèi)容等等。學(xué)習(xí)模塊可以跨越打開和關(guān)閉設(shè)備的許多不同實例分析此類信息并且學(xué)習(xí)模塊或者單獨的服務(wù)器系統(tǒng)可以執(zhí)行靜態(tài)分析以開發(fā)定義在關(guān)閉計算機(jī)不久之后用戶何時有可能或者不可能希望再次使用計算機(jī)的模型。系統(tǒng)500使用的特定數(shù)據(jù)可以總是特定用于用戶,或者可以是服從于多個用戶并且由服務(wù)器系統(tǒng)向設(shè)備504提供的數(shù)據(jù)。兩種類型的數(shù)據(jù)可以是靜態(tài)的,或者最初可以以默認(rèn)形式提供,并且隨后可以使用學(xué)習(xí)模塊526和針對設(shè)備504的用戶隨時間關(guān)于實際活動的觀察量來更新。
圖6是跨越網(wǎng)絡(luò)為計算設(shè)備提供成像的系統(tǒng)600的概念圖(其中這里的圖像是系統(tǒng)映像而不是圖形圖像,比如照片)。一般而言,系統(tǒng)600包括多種設(shè)備,比如可以通過網(wǎng)絡(luò)606(比如因特網(wǎng))與主控的服務(wù)器系統(tǒng)602通信的移動計算設(shè)備604。除了提供各種主控的服務(wù)(比如搜索引擎服務(wù)、地圖服務(wù)、電子郵件服務(wù)、文檔管理服務(wù)等)之外,主控的服務(wù)器系統(tǒng)602也可以與設(shè)備604上的操作系統(tǒng)配合以便管理設(shè)備604上的操作系統(tǒng)。例如,設(shè)備604上的操作系統(tǒng)可以是具有形式為Web瀏覽器的單個本機(jī)應(yīng)用的操作系統(tǒng),并且在設(shè)備604上執(zhí)行的其他應(yīng)用可以作為Web瀏覽器中的Web應(yīng)用來這樣做。這樣的方式可以最小化需要存儲于設(shè)備604上并且由設(shè)備604管理的本機(jī)應(yīng)用的數(shù)目。附加地,如這里描述的那樣,這樣的布置可以簡化設(shè)備604可以由主機(jī)計算機(jī)系統(tǒng)602管理的方式。
在這一示例中,將設(shè)備604示出為存儲圖像608。圖像可以定義什么部件持久存儲于設(shè)備604上。例如,圖像608可以包括超出設(shè)備604上的固件以外的基本操作系統(tǒng),具體為程序,其中單個程序可以是設(shè)備上的操作系統(tǒng)的圖像的一部分,該操作系統(tǒng)具有形式為Web瀏覽器的單個本機(jī)應(yīng)用。一般而言,圖像可以用來保證多個計算機(jī)具有它們中的部件的共同基線以便提高用于管理和維持這樣的計算機(jī)的可操作性的能力。具體而言,公司可能想要某一數(shù)目的軟件部件可用于它的雇員而其他部件不可用,因此它可以定義圖像并且可以在首次部署雇員的機(jī)器時在機(jī)器上安裝該圖像。
在這一示例內(nèi),服務(wù)器系統(tǒng)602與設(shè)備604和從系統(tǒng)602接收服務(wù)的其他設(shè)備配合以便維持或者修復(fù)設(shè)備上的圖像。如圖中所示,服務(wù)器602可以在提供這樣的服務(wù)時運用多個特定部件。例如,可以提供圖像接口610以與遠(yuǎn)程設(shè)備(比如設(shè)備604)交互。圖像接口610可以例如與設(shè)備通信以驗證每個設(shè)備上的圖像仍然準(zhǔn)確。例如,在不允許向設(shè)備添加應(yīng)用時,比如在僅有本機(jī)應(yīng)用是瀏覽器而附加應(yīng)用是未被持久存儲的web應(yīng)用時,哈??梢杂稍O(shè)備604上的本機(jī)部件組成,并且可以存儲和比較該哈希與每當(dāng)引導(dǎo)設(shè)備604時計算的后續(xù)哈希。如果哈希不匹配,則這可以指示已經(jīng)危及了用于設(shè)備604上的操作系統(tǒng)的核心部件。在這樣的情形中,設(shè)備604可以向圖像接口610發(fā)送消息,該消息可以使接口610轉(zhuǎn)而使服務(wù)器系統(tǒng)602的其他部件執(zhí)行某些操作。
例如,圖像重構(gòu)器616可以被編程用于標(biāo)識、收集和組裝用于圖像的特定部件,該圖像可以是用于設(shè)備604的替換圖像。圖像重構(gòu)器616可以初始地查看圖像索引618以標(biāo)識假設(shè)安裝于設(shè)備604上的圖像的形式。例如,可以針對設(shè)備604提供用于操作系統(tǒng)的特定修訂號。備選地,按照不同制造商或者用戶基礎(chǔ)的設(shè)備可以各自具有定制圖像,但是單個制造商提供的線中的設(shè)備可以具有共同圖像。因此,圖像索引618可以能夠接收用于設(shè)備或者操作設(shè)備的公司的制造商和機(jī)型的標(biāo)識符,并且標(biāo)識將響應(yīng)于來自這樣的設(shè)備的請求而構(gòu)建的圖像(其中圖像可以從由系統(tǒng)存儲的共同可交換部件構(gòu)建)。
在這一示例中,圖像可以由圖像片段構(gòu)建。例如,操作系統(tǒng)的某些級別可以是圖像的一部分,并且模塊操作系統(tǒng)中的每個級別可以是用于圖像的單獨片段。同樣,共同級別中的不同特征也可以被視為和存儲為單獨圖像片段。圖像重構(gòu)器616或者圖像更新器614可以使用來自圖像索引618的信息,該信息例如可以將圖像標(biāo)識符映射到組成整個圖像的各種片段或者部件。
同樣,用戶設(shè)備映射622也可以執(zhí)行功能,比如先前針對圖像索引618描述的功能,包括通過將特定用戶或者用戶組或者特定機(jī)器類型映射到特定圖像。例如,設(shè)備的用戶可以登錄系統(tǒng)602并且可以被提供一個或者多個網(wǎng)頁,用戶可以在該網(wǎng)頁上針對他們想要在他們的設(shè)備604上呈現(xiàn)的圖像選擇特定部件或者片段??梢耘c用于用戶的標(biāo)識符關(guān)聯(lián)地保存這些部件,從而使得對重建圖像的后續(xù)嘗試可以自動選擇由用戶先前選擇的那些部件。
利用重構(gòu)的圖像,圖像更新器614與可以控制這里討論的在部件之間的一般操作和協(xié)調(diào)的操作接口612配合可以通過圖像接口610和網(wǎng)絡(luò)606向設(shè)備604供應(yīng)更新的圖像。比如在服務(wù)器系統(tǒng)602已經(jīng)通過網(wǎng)絡(luò)606意外或者有意地擦除(wipe)設(shè)備604時,更新可以包括用于設(shè)備604的整個圖像。
在某些實現(xiàn)方式中,可以運用服務(wù)器系統(tǒng)602以從設(shè)備604遠(yuǎn)程擦除圖像并且在一些實例中用新圖像替換圖像。例如,如果設(shè)備604被竊,則系統(tǒng)602可以擦除設(shè)備604上的圖像并且可以使用可以向設(shè)備604上的固件中并入的標(biāo)識符以防止設(shè)備604再次獲得圖像。備選地,設(shè)備604可以被系統(tǒng)602遠(yuǎn)程擦除并且然后可以被恰當(dāng)所有者恢復(fù),從而使得一旦所有者已經(jīng)驗證設(shè)備回到恰當(dāng)控制中,服務(wù)器系統(tǒng)602然后可以向設(shè)備604提供新的和更新的圖像。
例如,在初始地引導(dǎo)設(shè)備604時,公共密鑰可以存儲于固件的小型只讀段中,并且密鑰可以用來檢查設(shè)備604上的內(nèi)核。可以比如通過創(chuàng)建原有標(biāo)識符的相同哈希函數(shù)運行部件來檢驗密鑰或者不同標(biāo)識符(比如設(shè)備上的操作系統(tǒng)部件中的一個或者多個操作系統(tǒng)部件的哈希版本或者其他哈希版本(在密鑰本身是哈希版本時)與在引導(dǎo)時間在設(shè)備上的部件。如果未產(chǎn)生匹配,則這可以指示已經(jīng)危及設(shè)備604(因為核心代碼在它不應(yīng)已經(jīng)改變時已經(jīng)改變)并且某人已經(jīng)嘗試改變設(shè)備600上的本機(jī)文件以比如將設(shè)備604轉(zhuǎn)變成傀儡(bot)或者用于其他目的。
在操作棧的低級別的通信接口然后可以在用戶可以干擾引導(dǎo)序列之前產(chǎn)生與服務(wù)器系統(tǒng)602的網(wǎng)絡(luò)連接,并且可以指示圖像中的失敗已經(jīng)出現(xiàn)于設(shè)備604上。服務(wù)器系統(tǒng)602然后可以使用上文討論的部件以構(gòu)建用于設(shè)備604的新圖像并且向設(shè)備604傳送新圖像。設(shè)備604然后可以用新圖像替換潛在毀壞的圖像并且用新圖像操作,包括通過完成危及的圖像。
設(shè)備604也可以向服務(wù)器系統(tǒng)602傳遞回危及的圖像或者表征危及的圖像的數(shù)據(jù)。服務(wù)器系統(tǒng)602然后可以分析危及的圖像嘗試確定什么引起危及。例如,服務(wù)器系統(tǒng)602可以比較危及的圖像與來自被服務(wù)器系統(tǒng)602分配相同初始圖像的其他設(shè)備的危及的圖像。如果標(biāo)識了多個匹配的危及的圖像,則這樣的標(biāo)識可以指示單個實體對抗設(shè)備的協(xié)調(diào)攻擊已經(jīng)出現(xiàn)。
因此,以這里描述的方式,遠(yuǎn)程重新成像系統(tǒng)600可以提供用于以方便方式更新設(shè)備(比如設(shè)備604)的機(jī)制。例如,由于設(shè)備604未持久存儲大量代碼,因此對圖像的頻繁更新可以提供對設(shè)備604的用戶的最少破壞。如上文討論的使用云發(fā)表的圖像數(shù)據(jù)也可以提供用于擦除特定客戶端設(shè)備并且然后從服務(wù)器系統(tǒng)602對它們重新成像的方便方式。附加地,服務(wù)器系統(tǒng)602可以能夠通過簡單地使用一起組成整個圖像的可交換部件并且然后將那些部件的組合映射到用戶設(shè)備映射數(shù)據(jù)庫622中的特定設(shè)備來存儲用于大量不同用戶設(shè)備的圖像,以便能夠從跨越所有設(shè)備或者特定大設(shè)備組而共同的構(gòu)建塊的相對唯一組合重構(gòu)特定圖像。
圖7是提供計算設(shè)備的遠(yuǎn)程監(jiān)視和控制的系統(tǒng)700的概念圖。一般而言,系統(tǒng)700涉及計算設(shè)備702,該計算設(shè)備702可以是以便攜計算設(shè)備(比如智能電話或者平板計算機(jī)或者膝上型計算機(jī))的形式。計算設(shè)備702可以是加載有很輕操作系統(tǒng)的設(shè)備,該操作系統(tǒng)比如是僅有形式為Web瀏覽器的本機(jī)應(yīng)用的操作系統(tǒng),并且其中以在Web瀏覽器上運行的Web應(yīng)用的形式提供其他應(yīng)用。與上文描述的其他設(shè)備一樣,設(shè)備702可以通過網(wǎng)絡(luò)708(比如因特網(wǎng))交互以與臺式計算機(jī)706中的服務(wù)器系統(tǒng)704通信。臺式計算機(jī)706可以是由與擁有計算設(shè)備702相同的人擁有的計算機(jī)。例如,用戶可以在工作地或者家里具有臺式計算機(jī)并且可以在路上使用便攜計算設(shè)備702。這里描述的系統(tǒng)700可以涉及通過使欺詐者或者類似人更難以干擾用于設(shè)備702的操作系統(tǒng)并且提供檢查用于檢查惡意代碼或者內(nèi)容的機(jī)會來提供計算設(shè)備中的更大安全性。
圖中的示例棧示出用于在引導(dǎo)過程期間的較早階段標(biāo)識安全漏洞的一個示例機(jī)制。棧在這一示例中被相對壓縮并且在它的最低級別包括可以在固件中實施的BIOS 716。BIOS可以執(zhí)行用于BIOS的傳統(tǒng)操作并且也可以包括用于與服務(wù)器系統(tǒng)704建立有限網(wǎng)絡(luò)連接的代碼。有限連接在這一示例中用來從設(shè)備702向服務(wù)器系統(tǒng)704(在引導(dǎo)過程已經(jīng)達(dá)到可以容易被黑客的級別之前)或者從服務(wù)器系統(tǒng)704向設(shè)備702報告惡意活動。作為一個示例,用戶可以發(fā)現(xiàn)設(shè)備702已經(jīng)被竊并且可以使用計算機(jī)706登錄到計算機(jī)系統(tǒng)704。用戶然后可以請求擦除、關(guān)停設(shè)備702或者它可以拍攝當(dāng)前用戶的圖片并且報告設(shè)備702的當(dāng)前位置或者其他適當(dāng)動作。在下次引導(dǎo)設(shè)備702時,BIOS 716可以通過由網(wǎng)絡(luò)硬件718發(fā)送的消息通知服務(wù)器系統(tǒng)704,網(wǎng)絡(luò)硬件718可以包括用于執(zhí)行無線通信的機(jī)制。服務(wù)器系統(tǒng)704可以用狀態(tài)消息做出回應(yīng)。通常,狀態(tài)消息可以指示所有事物都好。然而,由于用戶已經(jīng)登錄并且報告設(shè)備702遺失,所以服務(wù)器系統(tǒng)704在這一示例中向設(shè)備702指示已經(jīng)有問題。
服務(wù)器系統(tǒng)704如在網(wǎng)絡(luò)708與設(shè)備702之間的返回箭頭所示可以提供用于設(shè)備702的后續(xù)操作的指令。例如服務(wù)器系統(tǒng)704可以通知設(shè)備702比如在設(shè)備702感測到有人在設(shè)備702上鍵入時拍攝設(shè)備702的用戶的數(shù)字圖像。已經(jīng)完全引導(dǎo)的設(shè)備702可以自動上傳圖片而未通知當(dāng)前用戶(假定為竊賊)。附加地,這樣的圖像可以伴隨有指示設(shè)備702的當(dāng)前位置的GPS數(shù)據(jù)。以這一方式,執(zhí)法當(dāng)局可以知道前往何處發(fā)現(xiàn)設(shè)備702并且也可以具有特定用戶在設(shè)備702被竊之時使用設(shè)備這樣的證據(jù)。
用于引導(dǎo)設(shè)備702的棧的其余部分也相對緊湊。例如在已經(jīng)使用BIOS代碼716來進(jìn)行基本安全檢查之后,可以執(zhí)行用于操作系統(tǒng)714的代碼并且可以起動操作系統(tǒng)的基本部件。作為操作系統(tǒng)起動的部分或者作為相似、但是單獨動作的部分,然后可以打開服務(wù)712并且使服務(wù)712在設(shè)備702上可用,并且可以起動應(yīng)用710、比如用于操作系統(tǒng)714的專用本機(jī)Web瀏覽器應(yīng)用。
也可以自動和定期、包括在已經(jīng)出現(xiàn)完全引導(dǎo)之后執(zhí)行安全檢查。例如看門狗定時器702可以在設(shè)備702上運行并且可以使設(shè)備702上的安全性被定期檢查。例如這里所示??梢栽谒约旱南到y(tǒng)分區(qū)中并且在它被更新時可以讓功能應(yīng)用于它的代碼以便創(chuàng)建哈希值。在觸發(fā)看夢定時器720時,如果操作系統(tǒng)是其中這些部件中的每個部件總是在棧中并且除了在更新期間之外不變,則可以對棧在當(dāng)時包含的無論任何內(nèi)容執(zhí)行相似哈希。然后可以比較新哈希與用于棧的存儲的哈希(也可以對棧中的少于所有部件執(zhí)行哈希)。如果值已經(jīng)改變,則可以通知服務(wù)器系統(tǒng)704并且服務(wù)器系統(tǒng)704可以隨后向設(shè)備702發(fā)送出信號以比如鎖定設(shè)備、擦除設(shè)備702上的存儲裝置、重新格式化設(shè)備上的存儲介質(zhì)或者執(zhí)行其他這樣的操作。服務(wù)器系統(tǒng)704也可以通過備份信道、比如工作電子郵件或者文字消息通知來通知設(shè)備702的合法用戶。
設(shè)備702在向服務(wù)器系統(tǒng)704報告問題時可以在發(fā)現(xiàn)問題時立即或者更晚時間報告。例如BIOS 716可以生成用于指示設(shè)備702的問題的標(biāo)識符。BIOS 716然后可以允許棧的其他部件被執(zhí)行以便使設(shè)備702有完全特征。一旦完全引導(dǎo)設(shè)備702,可以使網(wǎng)絡(luò)硬件718向服務(wù)器系統(tǒng)704提供標(biāo)識符使得服務(wù)器系統(tǒng)704知道和理解設(shè)備702具有問題并且使得服務(wù)器系統(tǒng)704可以向設(shè)備702發(fā)送適當(dāng)消息、比如用于重新引導(dǎo)的消息并且重新引導(dǎo)一個或者多個特定過程而且擦除設(shè)備702上的存儲介質(zhì)或者重新格式化設(shè)備702上的存儲介質(zhì)。
圖8是提供在計算設(shè)備上高速緩存集中存儲于主控的計算機(jī)系統(tǒng)上的數(shù)據(jù)的系統(tǒng)的概念圖。一般而言,系統(tǒng)800使用計算設(shè)備802上的存儲裝置808以用作為用于服務(wù)器系統(tǒng)804上的存儲裝置810的高速緩存。以這樣的方式,可以通過在許多境況中允許高速緩存的數(shù)據(jù)808停留在設(shè)備802并且在相對更少實例中需要通過網(wǎng)絡(luò)806的往返以便加速處理來使設(shè)備802的操作更高效和迅速。這里可以如同上文討論的其他設(shè)備實施設(shè)備802為具有如下操作系統(tǒng),對于該操作系統(tǒng)而言Web瀏覽器是僅有應(yīng)用并且其他應(yīng)用作為Web瀏覽器Web應(yīng)用來操作。也可以在設(shè)備802上實施針對圖7討論的棧。
在該圖中,示出設(shè)備802存儲三個特定值:A、B和C。類似地,服務(wù)器系統(tǒng)804以對應(yīng)方式以A和B形式存儲那些值中的兩個值。服務(wù)器系統(tǒng)804也存儲用于D的值。示出存儲裝置810中的用于A和B的值而在它們周圍有括號以指示那些項目為“臟”并且可以未被嘗試訪問存儲裝置810的其他設(shè)備所信任,因為它們可能已經(jīng)在存儲裝置808中被設(shè)備802改變。實質(zhì)上,服務(wù)器系統(tǒng)804操作如同設(shè)備802已經(jīng)檢查這些值一樣——即使另一設(shè)備針對它們產(chǎn)生請求,服務(wù)器系統(tǒng)804仍然可以查詢設(shè)備802以獲得它們的最新值并且從設(shè)備802重獲對它們的控制。也如圖該圖中所示,僅項目B如存儲裝置808中的項目B上的撇號所示已經(jīng)在設(shè)備802相對于從服務(wù)器系統(tǒng)804獲得的項目的版本有改變。
在操作之時,設(shè)備802可以執(zhí)行造成用于項目A、B和/或C的值改變的各種操作。在適當(dāng)時間點,設(shè)備802可以向服務(wù)器系統(tǒng)804提交這樣的改變,該服務(wù)器系統(tǒng)又可以更新存儲裝置810中的用于項目的值。設(shè)備802也可以指示使用項目來完成它,并且作為響應(yīng),服務(wù)器系統(tǒng)804可以解除將項目標(biāo)記為系統(tǒng)800中的受控類型的值。以這一方式,可以在設(shè)備802上運行的Web應(yīng)用與用于服務(wù)器系統(tǒng)804的數(shù)據(jù)存儲庫之間方便地高速緩存數(shù)據(jù)。
圖9是用于提供計算設(shè)備的延遲鎖定的過程的流程圖。一般而言,該過程可以在被布置成用于在用戶比如通過關(guān)閉翻蓋設(shè)備的蓋子或者通過按壓寫字板設(shè)備上的按鈕或者其他部件以將它置于安全睡眠模式來關(guān)閉設(shè)備時延遲從活躍模式轉(zhuǎn)向安全或者鎖定模式、比如睡眠模式的計算設(shè)備上執(zhí)行。在這一示例中,安全睡眠模式是如下模式,用戶在該模式中必須錄入口令或者執(zhí)行另一相似操作以解鎖設(shè)備以便再次使用它。一般而言,這樣的設(shè)備稱為被鎖定,因為它除了簡單地恢復(fù)接通設(shè)備之外還需要用于重新激活的活躍輸入,并且還花費了大量時間被激活(例如,多于若干秒)。
這里描述的過程有意地引入的延遲可以允許用戶在他們指示他們想要設(shè)備進(jìn)入睡眠或者鎖定模式之后在用戶在完全將它置于睡眠模式之前快速改變他們的想法并且需要再次使用設(shè)備的情況下在短時間段內(nèi)返回到設(shè)備。在延遲被適當(dāng)定時并且短暫時,這樣的延遲可以向過程引入最少安全負(fù)擔(dān),因為恰當(dāng)和原有用戶可能貫穿延遲時段停留在設(shè)備附近使得擅入者不能在設(shè)備向鎖定模式轉(zhuǎn)變之前拿走它。
該過程始于框302,其中它開始監(jiān)視計算設(shè)備以確定用戶是否已經(jīng)指示它應(yīng)當(dāng)執(zhí)行特定動作。在框304,該過程接收關(guān)于鎖定時間的用戶輸入。例如用戶可以配置他們的計算設(shè)備以便具有在將設(shè)備改變成睡眠模式之前的可以針對特定用戶而變化的延遲。例如在這一實例中,用戶可以標(biāo)識9秒的延遲以便提供用于用戶改變他的或者她的想法并且重建設(shè)備的活躍狀態(tài)的充分時間。響應(yīng)于用戶的關(guān)于用于鎖定設(shè)備的延遲時間的輸入,在框506,該過程調(diào)整用于設(shè)備的鎖定時間參數(shù)。這樣的參數(shù)可以持久存儲于設(shè)備上使得從一個會話到另一會話,用于鎖定設(shè)備的延遲時段相同,并且用戶可以開始感覺舒適,因為如果時間尚未到期,則他們將能夠使設(shè)備快速復(fù)活。
在框908,該過程標(biāo)識設(shè)備已經(jīng)比如通過用戶關(guān)閉設(shè)備上的殼蓋以推動設(shè)備上的功率開關(guān)或者通過用戶直接按壓用于關(guān)斷設(shè)備或者將它移入睡眠模式的開關(guān)從打開配置移向關(guān)閉配置。這里討論的相關(guān)轉(zhuǎn)變是如下轉(zhuǎn)變,該轉(zhuǎn)變需要大量用戶輸入以返回到用于設(shè)備的活躍可操作模式使得它多于簡單地將設(shè)備從關(guān)閉配置移向打開配置,這可以關(guān)斷屏幕、但是容易可逆,因為未鎖定設(shè)備并且大量部件尚未響應(yīng)于模式改變而掉電。然而為了向用戶給予已經(jīng)接收他們的輸入這樣的反饋,即使正在延遲將設(shè)備移向需要大量用戶輸入來恢復(fù)的睡眠模式,仍然可以在設(shè)備從打開配置移向關(guān)閉配置之后立即閃爍設(shè)備上的屏幕。
在框910,該過程啟動與在時間超速到期時鎖定設(shè)備連結(jié)的關(guān)停定時器。時間參數(shù)在這一實例中是用戶在框904選擇的并且設(shè)備在塊906應(yīng)用的參數(shù)。例如設(shè)備可以一旦它被關(guān)閉就閃爍屏幕并且啟動9秒倒計數(shù)定時器、但是可以直至定時器到期才移向不同模式。因此在912,該過程反復(fù)檢查以確定設(shè)置的定時器是否已經(jīng)到期。如果它未到期,則該過程在塊914檢查是否已經(jīng)打開設(shè)備。如果已經(jīng)打開設(shè)備,則該過程返回到在塊902監(jiān)視計算設(shè)備。隨后,用戶可以設(shè)置輸入用于鎖定定時器的新時間或者可以再次將設(shè)備從打開配置移向關(guān)閉配置并且因此重復(fù)這里討論的動作中的一些或者所有動作。
如上所述,定時器應(yīng)用的特定量的時間可以基于設(shè)備和周圍環(huán)境的狀態(tài)以及用戶隨時間使用設(shè)備的方式而以多種不同方式改變。例如,如上所具體解釋的那樣,在輸入進(jìn)入鎖定模式時可以測量多個參數(shù),并且可以結(jié)合多個參數(shù)以計算針對定時器的延遲時段。并且可以通過(經(jīng)由上文討論的各個變量)將在鎖定輸入時設(shè)備的狀態(tài)與針對用戶用多長時間來啟動使用該設(shè)備或者再次嘗試使用該設(shè)備(例如由于需要用戶向鎖定設(shè)備中輸入密碼)進(jìn)行相關(guān)而隨時間追蹤用戶的實際使用。
一旦定時器已經(jīng)到期,該過程然后在框916鎖定設(shè)備。設(shè)備的這樣的鎖定除了需要用戶解鎖輸入以將設(shè)備帶回到活躍狀態(tài)之外也可以涉及到減緩設(shè)備上的特定處理器或者完全去除供給它們的功率、關(guān)斷顯示屏幕、關(guān)斷空氣流通扇和汲取電功率的其他項目并且等待用戶重新激活和解鎖設(shè)備。
圖10是用于管理操作系統(tǒng)中的上下文對象的過程的流程圖。一般而言,該過程涉及到關(guān)聯(lián)操作系統(tǒng)中的對象與元數(shù)據(jù),該元數(shù)據(jù)描述在創(chuàng)建那些對象時和/或當(dāng)在設(shè)備上改變或者另外操控它們時在它們周圍的上下文。
該過程始于1002,其中在操作系統(tǒng)中實例化對象。對象可以采用多種形式并且這里出于示例目的而為可以在字處理應(yīng)用中編輯的字處理文檔。在框1004,該過程標(biāo)識上下文元數(shù)據(jù),該上下文元數(shù)據(jù)定義其他打開對象在啟動時間的狀態(tài)。例如用戶可以讓W(xué)eb瀏覽器向特定URL打開并且該過程可以存儲用于Web瀏覽器和用于URL的標(biāo)識符。這樣的上下文元數(shù)據(jù)如果它指示用戶在查看網(wǎng)頁、然后決定在字處理程序中關(guān)于網(wǎng)頁做筆記則可以是相關(guān)的。因此,它可以有益于創(chuàng)建和存儲在瀏覽器應(yīng)用中的網(wǎng)頁URL與字處理應(yīng)用中的字處理文檔之間的相關(guān)性。并且作為結(jié)果,在框1006存儲上下文元數(shù)據(jù),并且在框1008存儲關(guān)于實例化的對象的信息。
在框1010,可以在某一時間之后、比如在用戶向字處理文檔中鍵入信息并且完成編輯文檔之后關(guān)閉對象,并且隨后可以比如在用戶想要編輯文檔更多一些時接收用于打開對象的請求。在重新打開對象時,各種其他應(yīng)用可以在當(dāng)時運行,并且它們可以再次與用戶打開這一文檔的原因相關(guān)。同樣例如瀏覽器可以向與用戶相關(guān)的話題并且通過延伸向作為對象的文檔打開。
作為結(jié)果并且為了捕獲這樣的信息,在塊1012,該過程用關(guān)于打開對象而不是實例化的對象的信息更新上下文元數(shù)據(jù)。因此,可以在用戶連續(xù)打開、關(guān)閉和操控對象時創(chuàng)建、添加到和更新用于對象的元數(shù)據(jù)貯存庫,該元數(shù)據(jù)貯存庫可以是代表對象本身的域文件的部分——其中向它添加的數(shù)據(jù)代表對象在如在相同時間執(zhí)行的其他應(yīng)用定義的每個境況中的上下文和關(guān)于那些其他應(yīng)用在做什么的信息。因此在框1014中,用戶經(jīng)歷關(guān)閉和打開對象的其他循環(huán),并且更新元數(shù)據(jù)。
這樣的上下文元數(shù)據(jù)可以在它被確定為充分指示用戶的意圖時最終用來執(zhí)行自動動作。例如在用戶打開文檔時系統(tǒng)可以向瀏覽器中的搜索引擎自動執(zhí)行搜索并且可以隨文檔顯示搜索結(jié)果——如果上下文元數(shù)據(jù)的分析指示用戶通常在打開文檔時執(zhí)行搜索(例如,如果文檔跟蹤用于公司的估價并且搜索用于公司的當(dāng)前估價使得他或者她可以向文檔中剪切和粘貼它)。
圖11是用于維持計算設(shè)備上的存儲器控制的過程的流程圖。該過程1100可以例如由系統(tǒng)、比如系統(tǒng)400執(zhí)行。然而另一系統(tǒng)或者系統(tǒng)組合可以用來執(zhí)行過程1100。
參照圖11,過程1100圖示應(yīng)用在用于管理計算設(shè)備上的潛在存儲器短缺的示例方法中的生命周期。該方法始于步驟1105,其中執(zhí)行應(yīng)用。例如操作系統(tǒng)可以響應(yīng)于用戶請求或者在另一應(yīng)用要求時從持久存儲器加載應(yīng)用。接著在步驟1110,系統(tǒng)400確定應(yīng)用的狀態(tài)是否已經(jīng)改變。在一些實現(xiàn)方式中,應(yīng)用監(jiān)視器220可以記住應(yīng)用何時取得聚焦、何時已經(jīng)創(chuàng)建新應(yīng)用或者何時已經(jīng)終止應(yīng)用。在一個備選實施方式中,除了上文提到的改變之外或者取代這些改變,應(yīng)用管理器還可以監(jiān)視用系統(tǒng)的用戶輸入(例如按鍵、鼠標(biāo)電極、觸筆或者手指敲擊等)以確定應(yīng)用何時已經(jīng)改變狀態(tài)。
如果未檢測到狀態(tài)改變,則該方法繼續(xù)步驟1115,其中系統(tǒng)確定儲存器短缺是否存在。如果系統(tǒng)確定系統(tǒng)存儲器短缺確實存在,則該方法繼續(xù)下文討論的步驟1130。然而如果存儲器短缺未存在,則重復(fù)步驟1110。
一旦檢測到狀態(tài)改變,該方法繼續(xù)步驟1120。在步驟1120,生成和存儲狀態(tài)信息。由于可以在任何時間取消在某些狀態(tài)中的應(yīng)用,所以在應(yīng)用監(jiān)視器檢測到狀態(tài)改變之后,應(yīng)用監(jiān)視器可以通知應(yīng)用生成并且在持久存儲器中存儲狀態(tài)信息。在示例實現(xiàn)方式中,狀態(tài)信息可以包括用來重建應(yīng)用如同應(yīng)用在它被終止之前一樣的信息。例如狀態(tài)信息可以包括但不限于應(yīng)用的窗口在顯示器上的位置、用戶對應(yīng)用文件進(jìn)行的任何改變和用戶的優(yōu)選查看模式。一旦生成狀態(tài)信息,應(yīng)用可以向持久存儲器存儲狀態(tài)信息。
在生成和保存狀態(tài)信息之后,該方法繼續(xù)步驟1115,其中系統(tǒng)確定存儲器短缺是否存在。如果系統(tǒng)確定存儲器已經(jīng)用完,則內(nèi)核可以通知應(yīng)用終止器通過取消一個或者多個應(yīng)用來使存儲器可用。在備選實現(xiàn)方式中,內(nèi)核可以確定存儲器是否變得稀缺。內(nèi)核可以通過比較來自應(yīng)用的存儲器請求與當(dāng)前可用存儲器來檢測迫在眉睫的存儲器短缺。內(nèi)核也可以確定可用存儲器數(shù)量是否低于預(yù)定閾值。在檢測到短缺時,內(nèi)核可以采取步驟以釋放足夠存儲器以保證選擇的應(yīng)用將具有充分存儲器以繼續(xù)正常操作。
如果系統(tǒng)已經(jīng)確定需要存儲器,則該方法繼續(xù)步驟1130,其中應(yīng)用終止器確定應(yīng)用是否為最低排行應(yīng)用、即應(yīng)用是否在應(yīng)用分級的底部。如果應(yīng)用未在分級224的底部,則該方法返回到步驟1110,其中系統(tǒng)監(jiān)視應(yīng)用的狀態(tài)改變。如果應(yīng)用在分級的底部,則該方法繼續(xù)步驟1140,其中取消應(yīng)用。在一些實現(xiàn)方式中,應(yīng)用終止器確定應(yīng)用是否為程序棧中的最后應(yīng)用。如果是這樣,則取消應(yīng)用和任何關(guān)聯(lián)線程。
在步驟1150,系統(tǒng)確定是否應(yīng)當(dāng)恢復(fù)應(yīng)用。在示例實現(xiàn)方式中,如果系統(tǒng)檢測到用戶嘗試返回到取消的應(yīng)用,則該方法返回到步驟1105,其中使用存儲的狀態(tài)信息來恢復(fù)應(yīng)用。例如系統(tǒng)可以檢測用戶嘗試關(guān)閉或者最小化覆蓋取消的應(yīng)用的窗口。作為響應(yīng),系統(tǒng)400從持久存儲器加載用于應(yīng)用的狀態(tài)信息并且使用存儲的信息以恢復(fù)應(yīng)用。
如果系統(tǒng)400未檢測到嘗試與取消的應(yīng)用交互,則該方法返回到步驟1150,其中系統(tǒng)400再次確定是否恢復(fù)應(yīng)用。
圖12是用于用在計算機(jī)過程之間的消息傳遞提供線程親和性的過程的流程圖。一般而言,這里示出該過程為出現(xiàn)于在單個計算機(jī)上執(zhí)行的過程之間。例如兩個過程可以代表在設(shè)備上運行并且被布置用于相互沙盒以便保護(hù)設(shè)備41上的存儲器免于其他應(yīng)用的兩個不同應(yīng)用。該過程始于塊1202,其中實例化每個過程。
在塊106并且在過程已經(jīng)運行一段時間之后,過程可以確定它需要過程B的動作或者需要從過程B接收回信息。并且作為結(jié)果,在框106,過程A傳遞具有信息的消息,該信息定義過程B需要代表過程A對多快工作于消息。因此,在塊108,過程B接收消息并且在塊110從優(yōu)先級信息分離消息的正文。過程B然后使用優(yōu)先級信息或者可以從過程A隨消息傳遞的其他信息以確定如何處置消息。例如過程A可能需要關(guān)于計算機(jī)設(shè)備的當(dāng)前狀態(tài)的報告以便完成它的工作,并且如果等待信息以這樣完成將明顯減緩用戶立即需要的過程,則過程A可以提供信息,該信息可以過程B使它的操作優(yōu)先于所有其他操作。因此在框1212,過程B可以基于優(yōu)先級信息改變它的聚焦。例如如果過程B先前經(jīng)過長久、但是非時間敏感的過程工作,則它可以保存用于這樣的活動的狀態(tài)信息并且可以擱置它的工作直至過程B已經(jīng)對過程A做出響應(yīng)。以這一方式,過程可以用方便方式相互來回通信以便提供針對通過過程產(chǎn)生的請求的更聚焦響應(yīng)。
圖13是用于提供無狀態(tài)環(huán)境中的狀態(tài)信息的過程的流程圖。一般而言,該過程涉及到跟蹤應(yīng)用、比如web瀏覽器的窗格或者在web瀏覽器中運行的一個或者多個web應(yīng)用的狀態(tài)改變并且向存儲關(guān)于那些改變的信息的服務(wù)器系統(tǒng)傳遞這樣的信息。針對相同用戶而登錄的以后計算機(jī)然后可以從服務(wù)器系統(tǒng)獲得狀態(tài)信息并且可以相應(yīng)地重建上次保存的狀態(tài)。
該過程始于框1302,其中用戶以正常方式操作計算設(shè)備。計算設(shè)備可以執(zhí)行操作系統(tǒng),該操作系統(tǒng)執(zhí)行形式為Web瀏覽器的單個本機(jī)應(yīng)用并且其他應(yīng)用在Web瀏覽器以內(nèi)運行、比如作為Web應(yīng)用來運行。瀏覽器中的每個窗格和每個Web應(yīng)用可以出于安全目的而在它自己的隔離過程中被沙盒。
在塊1304,該過程定期或者響應(yīng)于設(shè)備上的狀態(tài)改變而保存設(shè)備上的一個或者多個活躍DOM的圖像。這樣的活動可以出現(xiàn)于相關(guān)狀態(tài)是網(wǎng)頁的當(dāng)前狀態(tài)、比如用戶是否與網(wǎng)頁上的活躍內(nèi)容(例如JavaScript創(chuàng)建的內(nèi)容)交互時。取代DOM信息或者除了該信息之外也可以包括其他狀態(tài)信息以便完全捕獲設(shè)備的和設(shè)備中的不同過程的當(dāng)前狀態(tài)。例如可以維持和更新設(shè)備上的每個活躍過程的列表并且也可以更新定義那些過程的當(dāng)前狀態(tài)的特定參數(shù)。這樣的信息可以在相同時間或者以后向服務(wù)器上傳,該服務(wù)器向計算設(shè)備提供信息,并且服務(wù)器系統(tǒng)可以組織信息使得可以以后重構(gòu)設(shè)備的上次保存的狀態(tài)。
在塊1308,針對這樣的重構(gòu)的請求出現(xiàn)。例如用于向與第一設(shè)備相同的用戶經(jīng)由服務(wù)器系統(tǒng)注冊的設(shè)備的引導(dǎo)過程可以自動到達(dá)服務(wù)器系統(tǒng)以獲得用于注冊的設(shè)備的用戶賬戶的最新近狀態(tài)信息。服務(wù)器系統(tǒng)然后可以訪問用于特定設(shè)備的存儲的圖像(其中用戶或者用戶組)可以定義用于他們的設(shè)備的圖像,設(shè)備將在它們被引導(dǎo)時自動拍攝這些圖像。設(shè)備也可以使用與圖像的部件關(guān)聯(lián)的數(shù)據(jù)以重構(gòu)網(wǎng)頁和其他對象到它們在用戶上次使用向用戶的與服務(wù)器系統(tǒng)的賬戶注冊的計算機(jī)時的狀態(tài),無論更早的計算機(jī)和更晚的計算機(jī)是否系統(tǒng)或者互不相同。
在框1314,該過程顯示頁面和其他對象而它們的先前保存狀態(tài)不變。
圖14是跨越網(wǎng)絡(luò)為計算設(shè)備提供成像的過程的流程圖。一般而言,這里示出該過程出現(xiàn)于與主控的服務(wù)器系統(tǒng)通信的一個或者多個客戶端設(shè)備上。僅出于示例目的而提供在這一示例中示出的特定工作劃分,并且其他動作可以在不同實現(xiàn)方式中由相似部件或者由不同部件進(jìn)行。這里所示過程主要涉及到存儲用于構(gòu)造圖像的圖像數(shù)據(jù),這些圖像各自定義客戶端設(shè)備將在它被引導(dǎo)時如何操作。在主控的中心服務(wù)器系統(tǒng)存儲和構(gòu)造圖像,并且在引導(dǎo)時間向客戶端設(shè)備提供圖像數(shù)據(jù)。
該過程始于框1402,其中多個不同客戶端設(shè)備以普通方式由設(shè)備的用戶操作。每個用戶可以比如在框1404在他們的特定設(shè)備上為圖像建立參數(shù)并且可以向主控的服務(wù)器系統(tǒng)提交設(shè)備圖像,該服務(wù)器系統(tǒng)可以在框1406接收圖像。例如用戶可以想要在他們引導(dǎo)他們的設(shè)備時加載特定應(yīng)用(比如Web應(yīng)用)并且可以想要以特定方式設(shè)置設(shè)備上的設(shè)置。
在框1408,服務(wù)器系統(tǒng)比較用于特定設(shè)備的圖像與在服務(wù)器系統(tǒng)的存儲的數(shù)據(jù)。例如服務(wù)器系統(tǒng)可以存儲一起組成各種不同圖像的部件并且可以簡單地存儲每個部件的一個副本和將部件映射到用于客戶端設(shè)備的每個圖像的基本文字或者相似文件。例如數(shù)的二進(jìn)制列表可以用來標(biāo)識整個圖像,其中列表中的每個位置可以標(biāo)識可以存在于或者可以未存在于特定圖像中的特定部件,并且其中針對特定設(shè)備在該位置存在一可以向服務(wù)器系統(tǒng)指示設(shè)備在它的圖像中具有特定部件。因此例如在框1410,該過程用更小同義詞替換設(shè)備圖像的部分。在剛才描述的示例中,同義詞可以是簡單位值,而在其他實現(xiàn)方式中,同義詞可以是對于系統(tǒng)中的特定部件而言唯一的文字?jǐn)?shù)字標(biāo)識符。
在框1412,服務(wù)器系統(tǒng)隨設(shè)備標(biāo)識符保存減少大小的圖像,該設(shè)備標(biāo)識符指向?qū)儆谔囟▓D像的設(shè)備。例如系統(tǒng)可以在一個位置存儲用于特定部件的代碼并且可以與上文討論的二進(jìn)制流一起并且在其他位置存儲對于設(shè)備而言唯一的設(shè)備標(biāo)識符。
在以后時間,特定設(shè)備可以如框1414所示請求圖像,并且服務(wù)器系統(tǒng)可以在塊1416訪問用于該設(shè)備的圖像并且擴(kuò)展它。作為一個示例,設(shè)備可以每當(dāng)它被引導(dǎo)時請求圖像并且可以在它關(guān)斷時未本地存儲它的圖像。這樣的擴(kuò)展可以涉及到遍歷二進(jìn)制列表、比如上文隨服務(wù)器系統(tǒng)討論的二進(jìn)制列表并且收集其中列表中的每個值是一而不是零的部件。也可以使用其他用于收集部件或者另外構(gòu)建用于設(shè)備的圖像的技術(shù)。
在框1418,服務(wù)器系統(tǒng)向客戶端設(shè)備傳輸回它已經(jīng)構(gòu)建的圖像,在框1420,客戶端設(shè)備加載圖像并且允許設(shè)備由設(shè)備的用戶完全操作。并且使用這里討論的技術(shù),特別是在大量設(shè)備關(guān)于主控的系統(tǒng)操作,可以在系統(tǒng)以跨越系統(tǒng)減少大小的方式存儲圖像數(shù)據(jù)。
圖15是用于提供計算設(shè)備的遠(yuǎn)程監(jiān)視和控制的過程的流程圖。一般而言,該過程通過在操作系統(tǒng)棧中的低級別進(jìn)行安全檢查以便減少黑客在檢查出現(xiàn)的級別以下的級別進(jìn)入棧來為客戶端計算設(shè)備提供安全性。
該過程始于框1502,其中用戶接通設(shè)備。在框1504,設(shè)備訪問它的引導(dǎo)固件并且以熟悉方式開始引導(dǎo)過程。固件可以是bios的部分或者設(shè)備上的其他結(jié)構(gòu)。固件也可以包括用于在設(shè)備與主控的服務(wù)器系統(tǒng)之間的無線傳輸?shù)臋C(jī)制,并且在框1506,該過程使用這樣的功能以向主控的服務(wù)器系統(tǒng)發(fā)送消息。消息可以視為用于標(biāo)識設(shè)備自從設(shè)備上次向主控的服務(wù)器系統(tǒng)報到起的境況改變的請求。在框1508,服務(wù)器系統(tǒng)接收消息并且標(biāo)識設(shè)備和設(shè)備的參數(shù)。例如主控的服務(wù)器系統(tǒng)可以使用設(shè)備標(biāo)識符以確定與設(shè)備相關(guān)的任何事件是否已經(jīng)出現(xiàn)、比如設(shè)備的用戶報告設(shè)備已經(jīng)被竊并且應(yīng)當(dāng)被封鎖或者擦除或者重新格式化它。附加地,設(shè)備的標(biāo)識可以如關(guān)于圖14討論的那樣用來標(biāo)識用于設(shè)備的圖像并且開始收集部件,這些部件用于向設(shè)備提供回圖像用于進(jìn)一步引導(dǎo)設(shè)備。
在框1510,服務(wù)器系統(tǒng)訪問關(guān)于設(shè)備的存儲的信息、比如緊接上文關(guān)于設(shè)備的用戶的報告和設(shè)備是否已經(jīng)被竊而討論的信息。在框1512,服務(wù)器系統(tǒng)生成和傳輸用于將對設(shè)備執(zhí)行的動作的數(shù)據(jù)。如關(guān)于圖14討論的那樣,這樣的動作可以包括設(shè)備將在引導(dǎo)時執(zhí)行的提供用于設(shè)備的圖像。這樣的動作也可以涉及將關(guān)于設(shè)備實施的安全性。例如,如果引導(dǎo)固件發(fā)送的消息指示自從最新近更新起已經(jīng)改變設(shè)備上的棧的部分,則將對設(shè)備執(zhí)行的動作可以包括擦除設(shè)備或者重新格式化設(shè)備上的存儲結(jié)構(gòu)、比如閃存或者硬驅(qū)動??梢皂憫?yīng)于來自設(shè)備的用戶的、設(shè)備已經(jīng)被竊這樣的外部指示來執(zhí)行相似動作。因此,對設(shè)備的動作可以響應(yīng)于在引導(dǎo)時間從設(shè)備接收的信息或者響應(yīng)于未從設(shè)備接收、但是從外部源、比如調(diào)入報告的用戶接收的其他信息。
在框1514,客戶端設(shè)備接收數(shù)據(jù)和指令,并且在框1516,客戶端設(shè)備使用引導(dǎo)固件以處理已經(jīng)接收的數(shù)據(jù)和/或執(zhí)行已經(jīng)接收的指令??梢越邮盏钠渌愋偷闹噶畎ㄓ糜趫蟾婊仃P(guān)于設(shè)備的信息使得可以恢復(fù)設(shè)備的指令。例如設(shè)備可以如上文討論的那樣使用機(jī)載相機(jī)來拍攝數(shù)字照片嘗試捕獲使用設(shè)備的竊賊的圖像并且可以將照片與指示設(shè)備的位置的GPS數(shù)據(jù)一起傳輸回。
圖16是用于提供在計算設(shè)備上高速緩存集中存儲于主控的計算機(jī)系統(tǒng)上的數(shù)據(jù)的過程的流程圖。一般而言,該過程指示用于基于web的計算設(shè)備如何可以一般存儲于主控的服務(wù)器系統(tǒng)、但是也可以向與主控的服務(wù)器系統(tǒng)通信的客戶端設(shè)備上高速緩存并且依賴于主控的服務(wù)器系統(tǒng)用于操作設(shè)備上的應(yīng)用,這些應(yīng)用包括Web瀏覽器中的Web應(yīng)用。
該過程始于塊1602和1604,其中客戶端設(shè)備和主控的服務(wù)器設(shè)備二者存儲用于設(shè)備的基于賬戶的信息。例如每個設(shè)備或者系統(tǒng)可以存儲用于設(shè)備的用戶ID,該用戶ID將設(shè)備相關(guān)到與主控的服務(wù)器系統(tǒng)的特定用戶賬戶。在框1606,客戶端設(shè)備請求服務(wù)器側(cè)信息,并且在框1608,主控的服務(wù)器系統(tǒng)獲得請求的信息并且向客戶端設(shè)備傳輸它。主控的服務(wù)器系統(tǒng)也可以存儲用于標(biāo)識將來將對請求信息進(jìn)行的改變的信息。在某些實現(xiàn)方式中,主控的服務(wù)器系統(tǒng)可以假設(shè)將編輯向客戶端設(shè)備提供的用于編輯的任何信息使得主控的服務(wù)器系統(tǒng)可以在向客戶端設(shè)備傳遞這樣的數(shù)據(jù)時標(biāo)記或者至少臨時標(biāo)記它為臟。在框1612,客戶端設(shè)備接收請求的信息,并且響應(yīng)于用戶與客戶端設(shè)備的交互,它可以修改請求的信息。在適當(dāng)時間,從客戶端設(shè)備向主控的服務(wù)器系統(tǒng)傳輸回修改的信息。這樣的適當(dāng)時間可以由向服務(wù)器系統(tǒng)定期提供回信息的時鐘或者由特定事件——比如用戶選擇應(yīng)用中的定義的控件——確定。
在框1616,服務(wù)器系統(tǒng)取回修改的信息,并且在框1616,它使用存儲的信息以標(biāo)識對請求的信息的改變。例如系統(tǒng)可以比較從客戶端設(shè)備接收回的信息與先前標(biāo)記為臟的信息以確定是否已經(jīng)對向客戶端設(shè)備給予的信息進(jìn)行任何相關(guān)改變。在框1620,服務(wù)器系統(tǒng)可以用信息的更新的子集替換子集。因此例如在系統(tǒng)確定沒有在系統(tǒng)上的臟數(shù)據(jù)與從客戶端設(shè)備接收回的數(shù)據(jù)之間的匹配時,服務(wù)器系統(tǒng)可以插入來自客戶端設(shè)備的改變的信息。
圖17示出可以隨這里描述的技術(shù)使用的通用計算機(jī)設(shè)備1700和通用移動計算機(jī)設(shè)備1750的示例。計算設(shè)備1700旨在于代表各種形式的數(shù)字計算機(jī),比如膝上型計算機(jī)、臺式計算機(jī)、工作站、個人數(shù)字助理、服務(wù)器、刀片服務(wù)器、主機(jī)和其他適當(dāng)計算機(jī)。計算設(shè)備1750旨在于代表各種形式的移動設(shè)備,比如個人數(shù)字助理、蜂窩電話、智能電話和其他相似計算設(shè)備。這里所示部件、它們的連接和關(guān)系及其功能意味著僅為示例性而并非意味著限制在本文中描述和/或要求保護(hù)的本發(fā)明的實現(xiàn)方式。
計算設(shè)備1700包括處理器1702、存儲器1704、存儲設(shè)備1706、連接到存儲器1704和高速擴(kuò)展端口1710的高速接口1708以及連接到低速總線1714和存儲設(shè)備1706的低速接口1712。使用各種總線來互連并且可以在共同母板上裝配或者以如適當(dāng)?shù)钠渌绞窖b配部件1702、1704、1706、1708、1710和1712中的每個部件。處理器1702可以處理用于在計算設(shè)備1700內(nèi)執(zhí)行的指令,這些指令包括在存儲器1704中或者在存儲設(shè)備1706上存儲的用于在外部輸入/輸出設(shè)備(比如耦合到高速接口1708的顯示器1716)上顯示用于GUI的圖形信息的指令。在其他實現(xiàn)方式中,多個處理器和/或多個總線可以如適當(dāng)?shù)哪菢优c多個存儲器和存儲器類型一起使用。也可以連接多個計算設(shè)備1700,其中每個設(shè)備提供必需操作的部分(例如,作為服務(wù)器組、成組刀片服務(wù)器或者多處理器系統(tǒng))。
存儲器1704存儲計算設(shè)備1700內(nèi)的信息。在一個實現(xiàn)方式中,存儲器1704是一個或者多個易失性存儲器單元。在另一實現(xiàn)方式中,存儲器1704是一個或者多個非易失性存儲器單元。存儲器1704也可以是另一形式的計算機(jī)可讀介質(zhì),比如磁盤或者光盤。
存儲設(shè)備1706能夠提供用于計算設(shè)備1700的海量存儲。在一個實現(xiàn)方式中,存儲設(shè)備1706可以是或者包含計算機(jī)可讀介質(zhì),比如軟盤設(shè)備、硬盤設(shè)備、光盤設(shè)備或者帶設(shè)備、閃存或者其他相似固態(tài)存儲器設(shè)備或者如下設(shè)備的陣列,這些設(shè)備包括存儲區(qū)域網(wǎng)絡(luò)或者其他配置中的設(shè)備。可以在信息載體中有形地體現(xiàn)計算機(jī)程序產(chǎn)品。計算機(jī)程序產(chǎn)品也可以包含在被執(zhí)行時執(zhí)行一種或者多種方法(比如上文描述的方法)的指令。信息載體是計算機(jī)或者機(jī)器可讀介質(zhì),比如存儲器1704、存儲設(shè)備1706、在處理器1702上的存儲器或者傳播的信號。
高速控制器1708管理用于計算設(shè)備1700的帶寬密集操作,而低速控制器1712管理更低帶寬密集操作。這樣的功能分配僅為示例性。在一個實現(xiàn)方式中,高速控制器1708耦合到存儲器1704、顯示器1716(例如,通過圖形處理器或者加速器)并且耦合到可以接受各種擴(kuò)展卡(未示出)的高速擴(kuò)展端口1710。在該實現(xiàn)方式中,低速控制器1712耦合到存儲設(shè)備1706和低速擴(kuò)展端口1714。可以包括各種通信端口(例如,USB、藍(lán)牙、以太網(wǎng)、無線以太網(wǎng))的低速擴(kuò)展端口可以例如通過網(wǎng)絡(luò)適配器耦合到一個或者多個輸入/輸出設(shè)備(比如鍵盤、指點設(shè)備、掃描儀)或者聯(lián)網(wǎng)設(shè)備(比如交換機(jī)或者路由器)。
如圖中所示,可以用多個不同形式實施計算設(shè)備1700。例如,可以將它實施為標(biāo)準(zhǔn)服務(wù)器1720或者多次實施于成組這樣的服務(wù)器中。也可以將它實施為架式服務(wù)器系統(tǒng)1724的一部分。附加地,可以在個人計算機(jī)(比如膝上型計算機(jī)1722)中實施它。備選地,來自計算設(shè)備1700的部件可以與移動設(shè)備(未示出)(比如設(shè)備1750)中的其他部件組合。這樣的設(shè)備中的每個設(shè)備可以包含計算設(shè)備1700、1750中的一個或者多個計算設(shè)備,并且整個系統(tǒng)可以由相互通信的多個計算設(shè)備1700、1750組成。
計算設(shè)備1750包括處理器1752、存儲器1764和輸入/輸出設(shè)備(比如顯示器1754、通信接口1766和收發(fā)器1768)以及其他部件。設(shè)備1750也可以具有用于提供附加存儲的存儲設(shè)備,比如微驅(qū)動或者其他設(shè)備。使用各種總線來互連部件1750、1752、1764、1754、1766和1768中的每個部件,并且可以在共同母板上或者以如適當(dāng)?shù)钠渌绞窖b配部件中的若干部件。
處理器1752可以執(zhí)行計算設(shè)備1750內(nèi)的指令,這些指令包括在存儲器1764中存儲的指令??梢詫⑻幚砥鲗嵤榘ǚ蛛x以及多個模擬和數(shù)字處理器的芯片的芯片集。處理器可以例如提供設(shè)備1750的其他部件的協(xié)調(diào),比如控制用戶界面、由設(shè)備1750運行的應(yīng)用和設(shè)備1750的無線通信。
處理器1752可以通過控制接口1758和耦合到顯示器1754的顯示器接口1756與用戶通信。顯示器1754可以例如是TFT LCD(薄膜晶體管液晶顯示器)或者OLED(有機(jī)發(fā)光二極管)顯示器或者其他適當(dāng)顯示器技術(shù)。顯示器接口1756可以包括用于驅(qū)動顯示器1754以向用戶呈現(xiàn)圖形和其他信息的適當(dāng)電路裝置??刂平涌?758可以從用戶接收命令并且轉(zhuǎn)換它們以用于向處理器1752提交。附加地,可以提供與處理器1752通信的外部接口1762以便實現(xiàn)設(shè)備1750與其他設(shè)備的近區(qū)域通信。外部接口1762可以例如在一些實現(xiàn)方式中提供有線通信或者在其他實現(xiàn)方式中提供無線通信,并且也可以使用多個接口。
存儲器1764存儲計算設(shè)備1750內(nèi)的信息??梢詫⒋鎯ζ?764實施為一個或者多個計算機(jī)可讀介質(zhì)、一個或者多個易失性存儲器單元或者一個或者多個非易失性存儲器單元中的一項或者多項。也可以提供擴(kuò)展存儲器1774并且該擴(kuò)展存儲器可以通過可以例如包括SIMM(單列直插存儲器模塊)卡接口的擴(kuò)展接口1772連接到設(shè)備1750。這樣的擴(kuò)展存儲器1774可以提供用于設(shè)備1750的額外存儲空間或者也可以存儲用于設(shè)備1750的應(yīng)用或者其他信息。具體而言,擴(kuò)展存儲器1774可以包括用于實現(xiàn)或者補(bǔ)充上文描述的過程的指令并且也可以包括安全信息。因此,例如,可以提供擴(kuò)展存儲器1774作為用于設(shè)備1750的安全模塊并且可以用允許安全使用設(shè)備1750的指令對擴(kuò)展存儲器1774編程。附加地,可以經(jīng)由SIMM卡將安全應(yīng)用與附加信息一起提供,比如以不可黑客方式將標(biāo)識信息放置于SIMM卡上。
如下文討論的那樣,存儲器可以例如包括閃存和/或NVRAM存儲器。在一個實現(xiàn)方式中,在信息載體中有形地體現(xiàn)計算機(jī)程序產(chǎn)品。計算機(jī)程序產(chǎn)品包含在被執(zhí)行時執(zhí)行一種或者多種方法(比如上文描述的方法)的指令。信息載體是計算機(jī)或者機(jī)器可讀介質(zhì),比如存儲器1764、擴(kuò)展存儲器1774、在處理器1752上的存儲器或者可以例如通過收發(fā)器1768或者外部接口1762接收的傳播的信號。
設(shè)備1750可以通過可以在必要時可以包括數(shù)字信號處理電路裝置的通信接口1766無線地通信。通信接口1766可以在各種模式或者協(xié)議(比如GSM語音呼叫、SMS、EMS或者M(jìn)MS消息接發(fā)、CDMA、TDMA、PDC、WCDMA、CDMA2000或者GPRS以及其他模式或者協(xié)議)之下提供通信??梢岳缤ㄟ^射頻收發(fā)器1768出現(xiàn)這樣的通信。附加地,可以比如使用藍(lán)牙、WiFi或者其他這樣的收發(fā)器(未示出)出現(xiàn)短程通信。附加地,GPS(全球定位系統(tǒng))接收器模塊1770可以向設(shè)備1750提供附加的與導(dǎo)航和位置有關(guān)的無線數(shù)據(jù),該數(shù)據(jù)可以如適當(dāng)?shù)哪菢佑稍谠O(shè)備1750上運行的應(yīng)用使用。
設(shè)備1750也可以使用音頻編碼解碼器1760來可聽地通信,該編碼解碼器1760可以從用戶接收口述信息并且將它轉(zhuǎn)換成可用數(shù)字信息。音頻編碼解碼器1760可以同樣地比如通過例如在設(shè)備1750的頭戴式受話器中的揚聲器生成用于用戶的可聽聲音。這樣的聲音可以包括來自語音電話呼叫的聲音、可以包括記錄的聲音(例如,語音消息、音樂文件等)并且也可以包括由在設(shè)備1750上操作的應(yīng)用所生成的聲音。
如圖中所示,可以用多個不同形式實施計算設(shè)備1750。例如,可以將它實施為蜂窩電話1780。也可以將它實施為智能電話1782、個人數(shù)字助理或者其他相似移動設(shè)備的一部分。
可以在數(shù)字電子電路裝置、集成電路裝置、特殊設(shè)計的ASIC(專用集成電路)、計算機(jī)硬件、固件、軟件和/或其組合中實現(xiàn)這里描述的系統(tǒng)和技術(shù)的各種實現(xiàn)方式。這些各種實現(xiàn)方式可以包括在可編程系統(tǒng)上可執(zhí)行和/或可解譯的一個或者多個計算機(jī)程序中的實現(xiàn)方式,該可編程系統(tǒng)包括可以是特殊或者通用的至少一個可編程處理器、至少一個輸入設(shè)備和至少一個輸出設(shè)備,該可編程處理器被耦合用于從存儲系統(tǒng)接收數(shù)據(jù)和指令以及向存儲系統(tǒng)傳輸數(shù)據(jù)和指令。
這些計算機(jī)程序(也被稱為程序、軟件、軟件應(yīng)用或者代碼)包括用于可編程處理器的機(jī)器指令并且可以用高級過程和/或面向?qū)ο蟮木幊陶Z言和/或用匯編/機(jī)器語言來實施。如這里所用,術(shù)語“機(jī)器可讀介質(zhì)”、“計算機(jī)可讀介質(zhì)”指代用來向可編程處理器提供機(jī)器指令和/或數(shù)據(jù)的任何計算機(jī)程序產(chǎn)品、裝置和/或設(shè)備(例如,磁盤、光盤、存儲器、可編程邏輯器件(PLD)),該可編程處理器包括接收機(jī)器指令作為機(jī)器可讀信號的機(jī)器可讀介質(zhì)。術(shù)語“機(jī)器可讀信號”指代用來向可編程處理器提供機(jī)器指令和/或數(shù)據(jù)的任何信號。
為了提供與用戶的交互,可以在計算機(jī)上實施這里描述的系統(tǒng)和技術(shù),該計算機(jī)具有用于向用戶顯示信息的顯示設(shè)備(例如,CRT(陰極射線管)或者LCD(液晶顯示器)監(jiān)視器)以及用戶可以用來向計算機(jī)提供輸入的鍵盤和指點設(shè)備(例如,鼠標(biāo)或者跟蹤球)。其他種類的設(shè)備也可以用來提供與用戶的交互;例如,向用戶提供的反饋可以是任何形式的感官反饋(例如,可視反饋、聽覺反饋或者觸覺反饋);并且可以用包括聲音、話音或者觸覺輸入的任何形式接收來自用戶的輸入。
可以在計算系統(tǒng)中實施這里描述的系統(tǒng)和技術(shù),該計算系統(tǒng)包括后端部件(例如,作為數(shù)據(jù)服務(wù)器)或者包括中間件部件(例如,應(yīng)用服務(wù)器)或者包括前端部件(例如,具有如下圖形用戶界面或者Web瀏覽器的客戶端計算機(jī),用戶可以通過該圖形用戶界面或者Web瀏覽器與這里描述的系統(tǒng)和技術(shù)的實現(xiàn)方式交互)或者這樣的后端、中間件或者前端部件的任何組合。系統(tǒng)的部件可以由任何數(shù)字?jǐn)?shù)據(jù)通信形式或者介質(zhì)(例如,通信網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)和因特網(wǎng)。
計算系統(tǒng)可以包括客戶端和服務(wù)器。客戶端和服務(wù)器一般相互遠(yuǎn)離并且通常通過通信網(wǎng)絡(luò)交互。借助在相應(yīng)計算機(jī)上運行并且相互具有客戶端-服務(wù)器關(guān)系的計算機(jī)程序產(chǎn)生客戶端和服務(wù)器關(guān)系。
已經(jīng)描述了許多實施方式。然而,將理解,可以進(jìn)行各種修改而不脫離本發(fā)明的精神實質(zhì)和范圍。例如,已經(jīng)關(guān)于電視廣告描述了本文的許多內(nèi)容,但是也可以解決其他形式的將來的基于查看者資格的廣告,比如電臺廣告和在線視頻廣告。
附加地,在圖中描繪的邏輯流程無需所示的特定順序或者依次順序以實現(xiàn)所需結(jié)果。附加地,可以提供其他步驟或者可以從描述的流程消除步驟并且可以向描述的系統(tǒng)添加或者從描述的系統(tǒng)去除其他部件。因而,其他實施方式在所附權(quán)利要求的范圍內(nèi)。