專利名稱:彈性連通性健康管理框架的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及無線連通性,尤其涉及對無線連通性相關(guān)問題的管理。
背景技術(shù):
一些傳統(tǒng)的手持設(shè)備提供經(jīng)無線(如射頻即RF)連接對一個或多個網(wǎng)絡(luò)(如因特網(wǎng)、局域網(wǎng)、其它類型的網(wǎng)絡(luò)或上述網(wǎng)絡(luò)的任何組合)的訪問。例如,許多手持設(shè)備使用RF 連接來向用戶提供對電子郵件、網(wǎng)頁瀏覽和高質(zhì)量視頻等服務(wù)的訪問。手持設(shè)備例如可以運行操作系統(tǒng),操作系統(tǒng)管理與經(jīng)其訪問因特網(wǎng)的移動運營商網(wǎng)絡(luò)的連通性,并提供應(yīng)用程序在該設(shè)備上執(zhí)行的標準化接口和平臺。連通性問題通常困擾使用RF連接來連接到一個或多個網(wǎng)絡(luò)的手持設(shè)備。連通性問題例如由于以下因素引起在其中使用設(shè)備的環(huán)境的特性、移動運營商網(wǎng)絡(luò)中的一個或多個組件的問題、用戶嘗試連接的服務(wù)器或服務(wù)的問題、和/或設(shè)備本身的問題。連通性問題可能導(dǎo)致連接中斷和/或影響連接質(zhì)量。許多傳統(tǒng)手持設(shè)備包括用于嘗試將連通性相關(guān)問題最小化的組件。例如,如果連接出了問題,這些組件將采取措施來嘗試保持連接,或者如果連接已經(jīng)丟失,則試圖重新建立連接。然而,存在可影響連接質(zhì)量的多種變數(shù),和維持連接所需的眾多組件。結(jié)果,難以預(yù)見可能出現(xiàn)的所有類型的差錯狀況和情況,并在設(shè)備上的編程邏輯中解決所有這些狀況和情況。例如,手持設(shè)備上的連通性問題的常見原因是組件之間的狀態(tài)失配。在已經(jīng)建立連接后,由于多種事件中的任一種,狀態(tài)可能失配或不同步。例如,一些移動網(wǎng)絡(luò)運營商具有適當?shù)牟呗詠砉芾砭W(wǎng)絡(luò)資源,這些策略規(guī)定超過指定時間段(如三十分鐘)保持空閑的連接自動無聲地斷開。在連接斷開之后,原先用于建立連接的網(wǎng)絡(luò)組件可被重新部署以服務(wù)于其它業(yè)務(wù),即使手持設(shè)備上的組件“相信”連接仍然是完好的。與保持連接相關(guān)的復(fù)雜性,如防止或解決狀態(tài)失配,使得管理手持設(shè)備的連通性相關(guān)問題變得困難。
發(fā)明內(nèi)容
本發(fā)明的一些實施例提供了用于快速診斷和解決連通性相關(guān)問題使得它們的影響最小化的框架。例如,本發(fā)明的一些實施例提供了監(jiān)視并記錄設(shè)備上、網(wǎng)絡(luò)上和該設(shè)備所連接到的一個或多個資源上發(fā)生的連通性相關(guān)事件的“健康監(jiān)視器”。健康監(jiān)視器分析這些事件和/或其它信息以確定何時出現(xiàn)連通性問題,并確定問題是即將發(fā)生還是已經(jīng)發(fā)生, 并啟動恢復(fù)程序。在一些實施例,監(jiān)視事件、分析以確定連通性問題是否已出現(xiàn)、以及從問題恢復(fù)都對用戶透明地進行。以上概述是對由所附權(quán)利要求定義的本發(fā)明的非限定性的概述。
附圖不旨在按比例繪制。在附圖中,各個附圖中示出的每一完全相同或近乎完全相同的組件由同樣的標號來表示。出于簡明的目的,不是每一個組件在每張附圖中均被標號。在附圖中圖1是描繪根據(jù)本發(fā)明的一些實施例實現(xiàn)的健康監(jiān)視器的示例性組件的框圖;圖2是描繪根據(jù)本發(fā)明的一些實施例實現(xiàn)的健康監(jiān)視器的組件的示例性狀態(tài)的狀態(tài)圖;圖3是描繪根據(jù)本發(fā)明的一些實施例實現(xiàn)的健康監(jiān)視器執(zhí)行的示例性過程的順序圖;圖4是描繪根據(jù)本發(fā)明的一些實施例實現(xiàn)的一個或多個應(yīng)用程序和健康監(jiān)視器之間的示例性接口的框圖;圖5是描繪根據(jù)本發(fā)明的一些實施例的用于在一個或多個手持設(shè)備和一個或多個分析工具之間交換設(shè)備的示例性系統(tǒng)的框圖;圖6是描繪其上可實現(xiàn)本發(fā)明的一些實施例的示例性計算機的框圖;圖7是描繪其上可存儲實現(xiàn)本發(fā)明的各實施例的指令和數(shù)據(jù)的示例性存儲介質(zhì)的框圖。
具體實施例方式本發(fā)明的一些實施例提供用于診斷并解決連通性相關(guān)問題的框架。例如,本發(fā)明的一些實施例提供了監(jiān)視并記錄手持設(shè)備上、網(wǎng)絡(luò)上和/或該設(shè)備所連接到的一個或多個網(wǎng)絡(luò)可訪問資源上發(fā)生的連通性相關(guān)事件的“健康監(jiān)視器”。該健康監(jiān)視器分析這些事件和 /或其它信息,以識別連通性相關(guān)問題,并且如果識別出問題或確定問題即將發(fā)生,可啟動恢復(fù)程序。在一些實施例中,對事件的監(jiān)視和分析以識別當前或即將發(fā)生的連通性相關(guān)問題可以對手持設(shè)備的用戶透明地進行。在本發(fā)明的一些實施例中,通過在手持設(shè)備上執(zhí)行的操作系統(tǒng)的組件來實現(xiàn)健康監(jiān)視器。例如,健康監(jiān)視器可包括一組組件,每個組件被設(shè)計成“反映”通常用于執(zhí)行網(wǎng)絡(luò)通信的開放式系統(tǒng)互聯(lián)(OSI)棧的七層中的一層。本領(lǐng)域的技術(shù)人員可以理解,OSI棧是用于執(zhí)行網(wǎng)絡(luò)通信的協(xié)議和服務(wù)的概念框架。OSI棧的七層包括應(yīng)用層、表示層、會話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層。協(xié)議通常在棧的每一層用于一給定通信,該層包括概念上類似功能的集合,用于向其上方相鄰層提供服務(wù)并從其下方相鄰層接收服務(wù)。本發(fā)明的一些實施例提供與OSI棧的個別層的功能交互的組件,以及與該棧的多個層的功能交互的組件。例如,本發(fā)明的一些實施例包括各自與棧的下四層(即傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層)中的一層的功能交互的組件,以及跨越多于一個的層的組件。組件包括記錄在每一層發(fā)生的事件,實現(xiàn)被設(shè)計成確定事件(或事件組)是否指示連通性問題的編程邏輯形式的規(guī)則集,并提供對恢復(fù)和恢復(fù)驗證的控制。在一些實施例中,健康監(jiān)視器可以實現(xiàn)自扼制功能,使得健康監(jiān)視器組件的執(zhí)行對設(shè)備電力、處理性能和存儲容量具有最小的影響。一些實施例或者還可以提供應(yīng)用程序編程接口(API),來使得設(shè)備上執(zhí)行的應(yīng)用程序能夠向健康監(jiān)視器提供信息和從健康監(jiān)視器接收數(shù)據(jù)。例如,應(yīng)用程序可使用API來識別對健康監(jiān)視器來說可疑的連通性相關(guān)問題, 使得健康監(jiān)視器的組件可進行調(diào)查并在有必要的情況下采取措施。圖1描繪的是與OSI七層棧相關(guān)的健康監(jiān)視器核心的組件的概念表示。在圖1中,健康監(jiān)視器核心100包括與OSI棧150中的傳輸層152、網(wǎng)絡(luò)層154、數(shù)據(jù)鏈路層156和物理層158的功能交互的組件。具體而言,組件110與傳輸層152的功能交互。在所示的實例中,組件110與棧150中在傳輸層152中使用TCP和UDP協(xié)議的功能交互。類似地,組件 115與在網(wǎng)絡(luò)層154中使用IP協(xié)議的功能交互。組件120與數(shù)據(jù)鏈路層156和物理層158上的功能交互。具體而言,在所示的實例中,組件120與使用蜂窩協(xié)議的功能交互。組件120包括故障檢測組件122、診斷處理組件 124和故障恢復(fù)組件126,它們每一個都與在數(shù)據(jù)鏈路層156和物理層158使用蜂窩協(xié)議的功能交互。類似于與使用蜂窩協(xié)議的功能交互的組件120,組件125與使用IEEE 802. Ilx 協(xié)議的功能交互,組件130與使用藍牙協(xié)議的功能交互。記錄組件135記錄在傳輸層152、物理層154、數(shù)據(jù)鏈路層156和物理層158中觀察到的事件。就此,記錄組件135 “跨越WSI棧150的這些層。當然,本發(fā)明不限于使用跨越 OSI棧的多個層的單個組件,因為本發(fā)明可以用多種方式中的任一種實現(xiàn),包括采用數(shù)個組件,各自記錄發(fā)生在棧的一個特定層中的事件。對應(yīng)于OSI棧150的各個層的健康監(jiān)視器核心100的各個組件可以以多種方式中的任一種與棧的各個層處的功能交互。例如,組件可以監(jiān)視發(fā)生在棧的每個層處的事件,并在事件發(fā)生時,實現(xiàn)用于定義處理、診斷和/或修復(fù)導(dǎo)致該事件發(fā)生的該層處的狀況的方式的一個或多個規(guī)則集。結(jié)果,健康監(jiān)視器核心100的組件提供以專用于一個或各個的層的方式解決問題的能力。當然,如圖1所示的記錄組件135所示,健康監(jiān)視器核心100的組件或者還可以提供監(jiān)視棧的多個層處的通信的能力,并提供檢測并解決多個層處的問題的功能。健康監(jiān)視器核心100的任何一個或多個組件可以監(jiān)視和/或作用于在棧中的一個或多個層處發(fā)現(xiàn)的問題,因為本發(fā)明的實施例在這方面不受限制。應(yīng)當理解,雖然圖1所示的健康監(jiān)視器核心100的示例性實現(xiàn)包括各自反映OSI 棧的一層的多個組件,但是本發(fā)明的實施例不限于以這種方式實現(xiàn),而是可以以多種方式中的任一種實現(xiàn)。還應(yīng)當理解,本發(fā)明的實施例不限于與使用如圖1所示的具體通信協(xié)議的每一層處的功能交互,因為這些協(xié)議只是作為示例給出的。在一些實施例中,健康監(jiān)視器核心100如圖2所示被實現(xiàn)為包括狀態(tài)和轉(zhuǎn)移的狀態(tài)機,包括空閑狀態(tài)205、事件處理狀態(tài)210、診斷狀態(tài)215、修復(fù)狀態(tài)220、驗證狀態(tài)225和掛起狀態(tài)230。在所示的實施例中,空閑狀態(tài)205是健康監(jiān)視器核心100的開始狀態(tài)。一旦觀察到指定事件,就啟動轉(zhuǎn)移207,使得健康監(jiān)視器核心100轉(zhuǎn)移到事件處理狀態(tài)210。例如,當健康監(jiān)視器核心100的組件檢測到指示連通性相關(guān)問題的一個或多個事件或者應(yīng)用程序注冊已發(fā)生一個或多個這種事件的指示時,健康監(jiān)視器核心100可以從空閑狀態(tài)205 轉(zhuǎn)移到事件處理狀態(tài)210。觀察到的事件可以與OSI棧的任何或所有層相關(guān)聯(lián),并且可以與使用多種協(xié)議中的任一種的通信相關(guān)。例如可以記錄觀察到的事件,并且日志條目可以驅(qū)動連通性相關(guān)問題的后續(xù)分析。另外,可以記錄健康監(jiān)視器本身采取的動作。記錄例如可以按以下方式執(zhí)行,該方式使健康監(jiān)視器的執(zhí)行對手持設(shè)備的供電、處理和存儲容量的影響最小。例如,本發(fā)明的一些實施例允許在設(shè)備上本地地和/或遠程地配置記錄事件和/或動作的程度。例如,確定某種類型的差錯急劇增加的移動網(wǎng)絡(luò)運營商可以遠程地增加記錄事件或動作的粒度以診斷問題。一旦解決了問題,移動運營商可以恢復(fù)到正常記錄,使健康監(jiān)視器的電力、處理和存儲需求最小化。本發(fā)明的一些實施例可以使用華盛頓州雷蒙德市的微軟公司提供的事件跟蹤窗口(ETW)機制來執(zhí)行記錄,并且可以用維護每個手持設(shè)備及其用戶的隱私的方式來傳送所記錄的信息。本發(fā)明不限于這種實現(xiàn),因為記錄和數(shù)據(jù)傳送可以用任何合適的方式、使用任何合適的工具和/或技術(shù)來執(zhí)行。如果確定觀察到的事件可構(gòu)成應(yīng)當診斷的差錯,健康監(jiān)視器核心100可以從事件處理狀態(tài)210轉(zhuǎn)移到診斷狀態(tài)215,或者如果確定觀察到的事件并不指示已發(fā)生差錯,則轉(zhuǎn)移回空閑狀態(tài)205。例如,在一些實施例中,健康監(jiān)視器100可確定連接和信號強度的狀態(tài), 以確定觀察到的事件是否指示已發(fā)生的可能的差錯,而不是僅僅臨時延遲或分組重發(fā),并僅當信號確定大于零且連接存在時轉(zhuǎn)移213到診斷狀態(tài)215。例如,當信號強度為零時連接存在或不存在,和當信號強度大于零時連接不存在可視為不指示差錯的正常情況。由此,在所示的實例中,記錄這些事件,并且健康監(jiān)視器100可轉(zhuǎn)移212到空閑狀態(tài)。當然,可以以多種方式中的任一種來確定一個或多個觀察到的事件是否指示已發(fā)生差錯,本發(fā)明的實施例不限于采用信號強度或連接狀態(tài)或采用任何特定技術(shù)來進行判斷。如果確定已發(fā)生差錯,則健康監(jiān)視器核心100可以從診斷狀態(tài)215轉(zhuǎn)移到修復(fù)狀態(tài)220,或者如果確定沒有發(fā)生差錯,則轉(zhuǎn)移到空閑狀態(tài)205。例如,健康監(jiān)視器100可以查驗預(yù)定地址(如通知健康監(jiān)視器100指示差錯的事件的應(yīng)用程序提供的地址、或其它地址) 以確定到該地址的連接是否可建立。如果查驗被確認,健康監(jiān)視器100可確定沒有發(fā)生差錯,并轉(zhuǎn)移217到空閑狀態(tài)205。反之,如果查驗未得到確認,健康監(jiān)視器100可轉(zhuǎn)移到修復(fù)狀態(tài)220以修復(fù)差錯。當然,可以以多種方式中的任一種來確定是否發(fā)生了差錯,本發(fā)明的實施例不限于通過查驗地址或采用任何特定技術(shù)來進行確定。如果所嘗試的修復(fù)完成,健康監(jiān)視器核心100可從修復(fù)狀態(tài)220轉(zhuǎn)移到驗證狀態(tài) 225,或者如果所嘗試的修復(fù)未完成,則轉(zhuǎn)移到掛起狀態(tài)230。例如,健康監(jiān)視器100例如可以通過重置分組數(shù)據(jù)協(xié)議(PDP)上下文和/或斷開并重新附加連接來嘗試修復(fù)差錯。如果上述嘗試修復(fù)中的任一個或兩者未能完成,那么健康監(jiān)視器100可轉(zhuǎn)移222到掛起狀態(tài) 230,如果所嘗試的修復(fù)完成了,那么健康監(jiān)視器100可轉(zhuǎn)移224到驗證狀態(tài)225。當然,本發(fā)明的實施例不限于通過重置分組數(shù)據(jù)協(xié)議(PDP)上下文和/或斷開并重新附加連接來嘗試修復(fù),因為這可以用多種方式中的任一種執(zhí)行。如果完成的修復(fù)未被驗證為成功,則健康監(jiān)視器可從驗證狀態(tài)225轉(zhuǎn)移回修復(fù)狀態(tài)220,或者如果完成的修復(fù)被驗證為成功,則轉(zhuǎn)移到掛起狀態(tài)230。例如,健康監(jiān)視器100 可嘗試查驗預(yù)定地址(如最初嘗試連接到的后端服務(wù)器或服務(wù)、或其它服務(wù)器或服務(wù)),如果查驗被確認,則健康監(jiān)視器100可轉(zhuǎn)移2 到掛起狀態(tài)230,如果未被確認,則健康監(jiān)視器100可轉(zhuǎn)移227回修復(fù)狀態(tài)以重新嘗試修復(fù)。當然,可以用多種方式中的任一種來驗證修復(fù),查驗地址只是一個示例。例如,健康監(jiān)視器100或者可以查詢設(shè)備上的應(yīng)用程序以確定其連通性是否已恢復(fù)。健康監(jiān)視器100從掛起狀態(tài)230轉(zhuǎn)移232到空閑狀態(tài)205。在一些實施例中,轉(zhuǎn)移 232在掛起計時器期滿之后發(fā)生,使得健康監(jiān)視器恢復(fù)空閑狀態(tài)205。應(yīng)當理解,以上參考圖2所述的狀態(tài)和轉(zhuǎn)移僅是示例,健康監(jiān)視器100可采取多種狀態(tài)中的任一種,包括已描述的這些和未描述的其它,以及根據(jù)圖2中未描述的方式的狀態(tài)之間的轉(zhuǎn)移。
圖3是描繪當事件發(fā)生時狀態(tài)之間的示例性進展的順序圖300。具體而言,在圖3 的示例中,傳輸控制協(xié)議(TCP)超時發(fā)生,導(dǎo)致健康監(jiān)視器100在以上參考圖2所述的狀態(tài)之間轉(zhuǎn)移。應(yīng)當理解,OSI棧150的傳輸層152(圖1)上的TCP超時的發(fā)生可以指示或不指示棧的較低層(即網(wǎng)絡(luò)層154、數(shù)據(jù)鏈路層156和/或物理層158)上的失敗。就此,在發(fā)出的通信未被確認時TCP協(xié)議提供五秒超時,之后重發(fā)該通信。TCP超時的發(fā)生可能指示由于多種因素中的任一種引起的正常延遲,多種因素包括網(wǎng)絡(luò)組件的組織方式、網(wǎng)絡(luò)的等待時間、 缺乏來自嘗試連接到的服務(wù)器的響應(yīng)等。然而,TCP超時的發(fā)生也可能由于棧的一個或多個較低層上的差錯引起,在較低層中使用具有更長超時時間段的協(xié)議。結(jié)果,TCP超時(或在棧的較高層上發(fā)生的其它超時)可以作為棧的較低層上的差錯的“早期指示符”,在這些較低層上使用的更長超時期滿前處置TCP超時能夠更快地從差錯中恢復(fù)。在一些實施例中, 健康監(jiān)視器100包括查找關(guān)于各個層中發(fā)生的問題的信息的組件,從而能夠盡快診斷并處置差錯。由于這些組件可分開地處置每個層,所以健康監(jiān)視器100可精確地將差錯瞄準到其發(fā)生的層,而不是不得不采用“地毯式”方案。在圖3所示的順序的開始,健康監(jiān)視器(HM) 100處于空閑狀態(tài)305,這時在335發(fā)生TCP超時,導(dǎo)致健康監(jiān)視器100轉(zhuǎn)移到事件處理狀態(tài)310。在所示的實例中,健康監(jiān)視器通過在342查詢連接監(jiān)視器(CM) 340以確定連接是否存在并在346查詢無線電接口層 (RIL) 344以確定信號強度,從而確定是否應(yīng)當將TCP超時診斷為可能的差錯。在348和 350,CM 340和RIL 344分別用連接存在(在348)和信號強度大于零(在350)的指示響應(yīng)于這些查詢,指示存在應(yīng)診斷的可能的差錯,并使健康監(jiān)視器100轉(zhuǎn)移到診斷狀態(tài)315。之后,在352健康監(jiān)視器100嘗試查驗預(yù)定地址,并且在超時時間段356內(nèi)沒有接收到響應(yīng)354,這指示存在差錯,并使健康監(jiān)視器100轉(zhuǎn)移到修復(fù)狀態(tài)320。申請人:認識到,斷開并重新附加連接到網(wǎng)絡(luò)上的網(wǎng)關(guān)可“沖洗掉” OSI棧的較低層中的差錯(如狀態(tài)失配)。結(jié)果,在圖3的實例中,在358健康監(jiān)視器100指令RIL 344斷開連接,在362使RIL 344將該指令轉(zhuǎn)發(fā)到調(diào)制解調(diào)器360,然后在366調(diào)制解調(diào)器將該指令傳遞給網(wǎng)絡(luò)網(wǎng)關(guān)364。然后,在368網(wǎng)絡(luò)網(wǎng)關(guān)364將連接已經(jīng)斷開的指示傳遞給調(diào)制解調(diào)器360,在370調(diào)制解調(diào)器將該指示傳遞給RIL 344,然后在372RIL 344將該指示傳遞給健康監(jiān)視器100。健康監(jiān)視器然后在374指令RIL 344重新附加連接,在376使RIL 344將該指令轉(zhuǎn)發(fā)到調(diào)制解調(diào)器360,然后在378調(diào)制解調(diào)器將該指令傳遞給網(wǎng)絡(luò)網(wǎng)關(guān)364。然后, 在380網(wǎng)絡(luò)網(wǎng)關(guān)364將連接已經(jīng)重新附加的指示傳遞給調(diào)制解調(diào)器360,在382調(diào)制解調(diào)器將該指示傳遞給RIL 344,然后在384RIL 344進而將該指示傳遞給健康監(jiān)視器100,使得健康監(jiān)視器轉(zhuǎn)移到驗證狀態(tài)325。使用該技術(shù),如果在棧的較低層發(fā)生差錯,可以重置連接并盡快還原連通性。結(jié)果,如果發(fā)生狀態(tài)失配,或者如果由于用戶正駕車通過隧道或到達需要蜂窩塔切換的位置, 而這時也在傳送數(shù)據(jù)的其他人也嘗試切換到相同的塔而導(dǎo)致的弱信號而發(fā)生差錯,連通性可以快速恢復(fù)。健康監(jiān)視器100然后在386查驗地址(如在352中查驗的相同的地址)。在取消計時器390期滿之前在388接收響應(yīng),使健康監(jiān)視器100轉(zhuǎn)移到掛起狀態(tài)330。健康監(jiān)視器 100然后在392啟動掛起計時器,該計時器在394期滿,使健康監(jiān)視器轉(zhuǎn)移到空閑狀態(tài)305。然后,圖3的順序圖完成。圖4描繪了用于設(shè)備上一個或多個應(yīng)用程序420的健康監(jiān)視器100提供的示例性應(yīng)用程序編程接口(API)410。使用API 410,應(yīng)用程序420可向健康監(jiān)視器100提供信息, 如發(fā)生可指示連通性相關(guān)問題的事件的指示,并可從健康監(jiān)視器100接收信息,如差錯已避免或已解決的指示。應(yīng)當理解,圖4所示的為一個或多個應(yīng)用程序提供單個API的配置僅僅是一個示例,還可以提供多于一個的API,每個API可提供用于一個或多個應(yīng)用程序的接口。本發(fā)明的實施例不限于任何特定的實現(xiàn)。圖5描繪了示例性系統(tǒng),它允許一個或多個分析工具560從多個手持設(shè)備510、 520、530、540和550收集關(guān)于事件和響應(yīng)于事件所采取的動作的信息。例如,手持設(shè)備510、 520、530、540和550中的每一個可發(fā)送信息至一個或多個分析工具560,如使用華盛頓州雷蒙德市的微軟公司提供的軟件質(zhì)量管理(SQM)工具。當然,本發(fā)明的實施例不限于使用SQM 來發(fā)送信息,因為可使用任何合適的技術(shù)或工具。一個或多個分析工具560可聚集并分析從各種手持設(shè)備接收到的信息,如在從設(shè)備接收到的數(shù)據(jù)中確定差錯模式和/或趨勢。例如,可基于移動運營商、設(shè)備、時刻、和/或任何其它標準來分割來自設(shè)備510-550的信息,以確定(作為示例)在特定時刻在特定設(shè)備或設(shè)備類型上發(fā)生某些事件。這類數(shù)據(jù)例如對移動運營商是有用的,用于指示對用戶團體有益的基礎(chǔ)結(jié)構(gòu)改進。例如,在某一位置特定時刻(如在一地鐵站外上午9:00)丟失連接的顯著增加可指示用戶團體可受益于附近的額外的蜂窩塔。從手持設(shè)備接收到的信息中可得出多種結(jié)論中的任一種,本發(fā)明并不限于此。圖5的系統(tǒng)還可用于向任何或所有手持設(shè)備510-550分發(fā)信息。例如,一個或多個分析工具可使用網(wǎng)絡(luò)505向任何或所有設(shè)備發(fā)送健康監(jiān)視器的新版本,以實現(xiàn)新特征。就此,應(yīng)當理解,本發(fā)明的實施例可提供演變和更新框架,從而根據(jù)先前捕獲的信息將定義差錯檢查、恢復(fù)步驟等的規(guī)則集“推送”到各個設(shè)備。例如,當設(shè)備510-550的用戶遇到由各健康監(jiān)視器分析的事件,并且關(guān)于這些事件和響應(yīng)于事件的動作的信息被分析時,可將健康監(jiān)視器的較新版本推送到設(shè)備,以不斷改進其管理連通性相關(guān)問題的有效性。在一些實施例中,規(guī)則集不僅定義如何限定事件、要采取什么動作以及如何驗證恢復(fù),還定義了健康監(jiān)視器的總體行為,以使對設(shè)備的供電和/或性能的影響最小化。例如,如果蜂窩信號的強度較低,健康監(jiān)視器可“自扼制”,使得組件不會連續(xù)啟動并嘗試確定差錯狀況是否存在,從而消耗電能和處理周期。類似地,如果確定存在設(shè)備幾乎不能控制的差錯,健康監(jiān)視器可自扼制。例如,如果用戶駕車通過隧道或進入地鐵,導(dǎo)致設(shè)備接收不到或幾乎接收不到信號,那么健康監(jiān)視器可自扼制,使其組件不消耗電能和/或處理周期直到信號強度還原(如當用戶從地鐵出來),以使總體系統(tǒng)影響最小化。應(yīng)當理解,雖然以上一些描述參考使用RF連接來連接到因特網(wǎng)的移動手持設(shè)備, 但是本發(fā)明的實施例不限于此。例如,本發(fā)明的實施例不必用于管理與因特網(wǎng)的連通性,還可用于管理與任何一種或多種類型的網(wǎng)絡(luò)的連通性,包括局域網(wǎng)和/或廣域網(wǎng)、其它類型的網(wǎng)絡(luò)、或它們的任意組合。另外,本發(fā)明的實施例不必連接到網(wǎng)絡(luò),還可用于例如管理手持設(shè)備和一個或多個其它設(shè)備的連通性,如遠程數(shù)據(jù)存儲、無線接入點、其它類型的設(shè)備、 或它們的任意組合。當用于管理網(wǎng)絡(luò)連通性時,可以使用任何合適的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)和/或通信協(xié)議。例如,可使用任何合適的一個或多個蜂窩網(wǎng)絡(luò)類型(如GSM、CDMA、LTE、其它類型、或它們的任意組合)。應(yīng)當理解,本發(fā)明的實施例不限于使用RF建立連通性的設(shè)備,還可以使用任何合適類型的電磁輻射或其它媒介來實現(xiàn)通信。本發(fā)明的實施例不限于任何特定的實現(xiàn)。還應(yīng)當理解,此處用的術(shù)語“手持設(shè)備”在其范圍中涵蓋任何合適的設(shè)備,包括膝上型計算機、臺式計算機、控制/監(jiān)視系統(tǒng)、專用集成電路(ASIC)、音樂和/或視頻播放器、 游戲控制臺、其它類型的設(shè)備、或它們的任意組合??梢允褂萌魏魏线m的一個或多個設(shè)備, 因為本發(fā)明的實施例不限于任何特定的實現(xiàn)。用于實施本發(fā)明的各特征的系統(tǒng)和方法的各方面可被實現(xiàn)在一個或多個計算機系統(tǒng)上,如圖6中示出的示例性計算機系統(tǒng)600。計算機系統(tǒng)600包括輸入設(shè)備602、輸出設(shè)備601、處理器603、存儲器系統(tǒng)604和存儲606,這些設(shè)備全都經(jīng)由可包括一個或多個總線、 交換機、網(wǎng)絡(luò)和/或任何其他合適互連的互連機制605來直接或間接耦合。輸入設(shè)備602接收來自用戶或機器(例如,人類操作者)的輸入,并且輸出設(shè)備601向用戶或機器(例如, 液晶顯示器)顯示或傳送信息。輸入和輸出設(shè)備主要可被用來呈現(xiàn)用戶界面??杀挥脕硖峁┯脩艚缑娴妮敵鲈O(shè)備的示例包括用于可視地呈現(xiàn)輸出的打印機或顯示屏和用于可聽地呈現(xiàn)輸出的揚聲器或其他聲音生成設(shè)備??杀挥糜谟脩艚缑娴妮斎朐O(shè)備的示例包括鍵盤和諸如鼠標、觸摸板和數(shù)字化輸入板等定點設(shè)備。作為另一示例,計算機可以通過語音識別或以其他可聽格式來接收輸入信息。處理器603通常執(zhí)行被稱為操作系統(tǒng)(例如,微軟Windows系列操作系統(tǒng)或任何其他合適的操作系統(tǒng))的計算機程序,操作系統(tǒng)控制其他計算機程序的執(zhí)行并提供調(diào)度、 輸入/輸出以及其他設(shè)備控制、會計、匯編、存儲安排、數(shù)據(jù)管理、存儲器管理、通信以及數(shù)據(jù)流控制?;\統(tǒng)而言,處理器和操作系統(tǒng)定義為其編寫應(yīng)用程序和其他計算機程序語言的計算機平臺。處理器603還可執(zhí)行一個或多個計算機程序以實現(xiàn)各種功能。這些計算機程序語言可以用任何類型的計算機程序語言來編寫,包括過程程序設(shè)計語言、面向?qū)ο蟮某绦蛟O(shè)計語言、宏語言、或它們的組合。這些計算機程序可以存儲在存儲系統(tǒng)606中。存儲系統(tǒng) 606可以將信息保持在易失性或非易失性介質(zhì)上,并可以是固定或可移動的。在圖7中更詳細的示出了存儲系統(tǒng)606。存儲系統(tǒng)606可包括有形計算機可讀和可寫非易失性記錄介質(zhì)701,其上存儲有定義計算機程序或要由該程序使用的信息的信號。記錄介質(zhì)例如可以是盤存儲器、閃存、和 /或可用于記錄和存儲信息的任何其它制品。通常,在操作中,處理器603使得數(shù)據(jù)從非易失性記錄介質(zhì)701讀入允許處理器603比對介質(zhì)701進行的更快的信息訪問的易失性存儲器702(例如,隨機存取存儲器,即RAM)中。如圖6所示,存儲器702可位于存儲系統(tǒng)606 中或位于存儲器系統(tǒng)604中。處理器603 —般處理集成電路存儲器604、702內(nèi)的數(shù)據(jù),然后在處理完成之后將這些數(shù)據(jù)復(fù)制到介質(zhì)701中。已知有各種機制可用于管理介質(zhì)701和集成電路存儲元件604、702之間的數(shù)據(jù)移動,并且本發(fā)明不限于當前已知的或以后研發(fā)的任何機制。本發(fā)明也不限于特定的存儲器系統(tǒng)604或存儲系統(tǒng)606。至此描述了本發(fā)明的至少一個實施例的若干方面,可以理解,本領(lǐng)域的技術(shù)人員可容易地想到各種更改、修改和改進。這樣的更改、修改和改進旨在是本發(fā)明的一部分且旨在處于本發(fā)明的精神和范圍內(nèi)。因此,上述描述和附圖僅用作示例。
可以用多種方式中的任一種來實現(xiàn)本發(fā)明的上述實施例。例如,可使用硬件、軟件或其組合來實現(xiàn)各實施例。當使用軟件實現(xiàn)時,該軟件代碼可在無論是在單個計算機中提供的還是在多個計算機之間分布的任何合適的處理器或處理器集合上執(zhí)行。此外,應(yīng)當理解,計算機可以用多種形式中的任一種來具體化,如機架式計算機、 臺式計算機、膝上型計算機、或平板計算機。另外,計算機可以具體化在通常不被認為是計算機但具有合適的處理能力的設(shè)備中,包括個人數(shù)字助理(PDA)、智能電話、或任何其他合適的便攜式或固定電子設(shè)備。這些計算機可以通過任何合適形式的一個或多個網(wǎng)絡(luò)來互連,包括作為局域網(wǎng)或廣域網(wǎng),如企業(yè)網(wǎng)絡(luò)或因特網(wǎng)。這些網(wǎng)絡(luò)可以基于任何合適的技術(shù)并可以根據(jù)任何合適的協(xié)議來操作,并且可以包括無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)或光纖網(wǎng)絡(luò)。而且,此處略述的各種方法或過程可被編碼為可在采用各種操作系統(tǒng)或平臺中任何一種的一個或多個處理器上執(zhí)行的軟件。此外,這樣的軟件可使用多種合適的程序設(shè)計語言和/或程序設(shè)計或腳本工具中的任何一種來編寫,而且它們還可被編譯為可執(zhí)行機器語言代碼或在框架或虛擬機上執(zhí)行的中間代碼。就此,本發(fā)明可被具體化為用一個或多個程序編碼的一個計算機可讀介質(zhì)(或多個計算機可讀介質(zhì))(例如,計算機存儲器、一個或多個軟盤、緊致盤(CD)、光盤、數(shù)字視頻盤(DVD)、磁帶、閃存、現(xiàn)場可編程門陣列或其他半導(dǎo)體器件中的電路配置、或其他非瞬態(tài)的有形計算機存儲介質(zhì)),當這些程序在一個或多個計算機或其他處理器上執(zhí)行時,它們執(zhí)行實現(xiàn)本發(fā)明的上述各個實施例的方法。這一個或多個計算機可讀介質(zhì)可以是便攜的,使得其上存儲的一個或多個程序可被加載到一個或多個不同的計算機或其他處理器上以便實現(xiàn)本發(fā)明上述的各個方面。此處以一般的意義使用術(shù)語“程序”或“軟件”來指可被用來對計算機或其他處理器編程以實現(xiàn)本發(fā)明上述的各個方面的任何類型的計算機代碼或計算機可執(zhí)行指令集。另外,應(yīng)當理解,根據(jù)本實施例的一個方面,當被執(zhí)行時實現(xiàn)本發(fā)明的方法的一個或多個計算機程序不必駐留在單個計算機或處理器上,而是可以按模塊化的方式分布在多個不同的計算機或處理器之間以實現(xiàn)本發(fā)明的各方面。計算機可執(zhí)行指令可以具有可由一個或多個計算機或其他設(shè)備執(zhí)行的各種形式, 諸如程序模塊。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等。通常,在各實施例中,程序模塊的功能可以視需要組合或分布。而且,數(shù)據(jù)結(jié)構(gòu)能以任何合適的形式存儲在計算機可讀介質(zhì)上。為簡化說明,數(shù)據(jù)結(jié)構(gòu)可被示為具有通過該數(shù)據(jù)結(jié)構(gòu)中的位置而相關(guān)的字段。這些關(guān)系同樣可以通過對各字段的存儲分配傳達各字段之間的關(guān)系的計算機可讀介質(zhì)中的位置來得到。然而,可以使用任何合適的機制來在數(shù)據(jù)結(jié)構(gòu)的各字段中的信息之間建立關(guān)系,包括通過使用指針、標簽、 或在數(shù)據(jù)元素之間建立關(guān)系的其他機制。本發(fā)明的各個方面可單獨、組合或以未在前述實施例中具體討論的各種安排來使用,從而并不將其應(yīng)用限于前述描述中所述或附圖中所示的組件的細節(jié)和安排。例如,可使用任何方式將一個實施例中描述的各方面與其他實施例中描述的各方面組合。同樣,本發(fā)明可被具體化為方法,其示例已經(jīng)提供。作為該方法的一部分所執(zhí)行的動作可以按任何合適的方式來排序。因此,可以構(gòu)建各個實施例,其中各動作以與所示的次序所不同的次序執(zhí)行,不同的次序可包括同時執(zhí)行某些動作,即使這些動作在各說明性實施例中被示為順序動作。在權(quán)利要求書中使用諸如“第一”、“第二”、“第三”等序數(shù)詞來修飾權(quán)利要求元素本身并不意味著一個權(quán)利要求元素較之另一個權(quán)利要求元素的優(yōu)先級、先后次序或順序、 或者方法的各動作執(zhí)行的時間順序,而僅用作將具有某一名字的一個權(quán)利要求元素與(若不是使用序數(shù)詞則)具有同一名字的另一元素區(qū)分開的標簽以區(qū)分各權(quán)利要求元素。同樣,此處所使用的短語和術(shù)語是出于描述的目的而不應(yīng)被認為是限制。此處對 “包括”、“包含”、或“具有”、“含有”、“涉及”及其變型的使用旨在包括其后所列的項目及其等效物以及其他項目。
權(quán)利要求
1.一種用于系統(tǒng)中的裝置(600),所述系統(tǒng)中使用包括多個層(150)的框架來執(zhí)行通信,所述框架的所述多個層的每一個包括使用通信協(xié)議的一個或多個功能,所述裝置包括至少一個處理器,所述處理器被編程為(A)執(zhí)行多個組件(100),每個組件對應(yīng)于所述多個層中的一個,每個組件用于與對應(yīng)于該組件的層處的所述一個或多個功能交互;(B)使用所述多個組件中的一個組件來觀察關(guān)于對應(yīng)于所述一個組件的所述層處的事件;(C)確定所述事件指示與通信相關(guān)的差錯;以及(D)啟動對所述差錯的修復(fù)。
2.如權(quán)利要求1所述的裝置,其特征在于,所述系統(tǒng)包括蜂窩網(wǎng)絡(luò)。
3.如權(quán)利要求1所述的裝置,其特征在于,所述多個層包括應(yīng)用層、表示層、會話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層。
4.如權(quán)利要求1所述的裝置,其特征在于,所述裝置執(zhí)行操作系統(tǒng),并且所述多個組件的至少一部分是所述操作系統(tǒng)的組件。
5.如權(quán)利要求1所述的裝置,其特征在于,(A)還包括執(zhí)行對應(yīng)于所述多個層中多于一個的層的至少一個組件,所述至少一個組件用于與所述多于一個的層中的每一個處的一個或多個功能交互。
6.如權(quán)利要求1所述的裝置,其特征在于,將所述多個層組織成包括第一層和第二層的棧,并且所述至少一個處理器進一步被編程為在(B)中,使用第一組件觀察關(guān)于所述第一層的事件,以及在(D)中,通過對所述第二層采取動作來啟動對所述差錯的修復(fù)。
7.如權(quán)利要求6所述的裝置,其特征在于,在所述棧中所述第一層高于所述第二層。
8.如權(quán)利要求1所述的裝置,其特征在于,所述裝置用于執(zhí)行應(yīng)用程序,并且所述至少一個處理器還被編程為提供接口使所述應(yīng)用程序能夠指示表示可疑差錯的事件的出現(xiàn)。
9.如權(quán)利要求1所述的裝置,其特征在于,所述至少一個處理器還被編程為在日志中記錄以下內(nèi)容中的一個或多個所觀察到的事件的指示、確定為由所觀察到的事件指示的差錯、和啟動所述差錯的修復(fù)所采取的動作。
10.如權(quán)利要求9所述的裝置,其特征在于,所述至少一個處理器還被編程為向分析工具發(fā)送所述日志的內(nèi)容。
11.如權(quán)利要求10所述的裝置,其特征在于,所述至少一個處理器還被編程為從所述分析工具接收對所述多個組件中的一個組件的更新,并安裝所述更新以更新所述一個組件。
12.至少一個有形計算機可讀存儲介質(zhì)(701),其上存儲有指令,所述指令在被執(zhí)行時實現(xiàn)一種在系統(tǒng)使用中的方法,所述系統(tǒng)中的多個設(shè)備(510,520)各自使用包括多個層 (150)的框架來執(zhí)行通信,所述框架的所述多個層的每一個包括使用通信協(xié)議的一個或多個功能,多個設(shè)備中的每一個執(zhí)行各自對應(yīng)于所述多個層中的一個的多個組件(100),每個組件用于與對應(yīng)于該組件的層處的所述一個或多個功能交互,所述方法包括以下動作(A)從所述多個設(shè)備中的每一個接收關(guān)于以下內(nèi)容的指示所述設(shè)備上執(zhí)行的組件觀察到的事件;確定所述事件指示關(guān)于所述設(shè)備執(zhí)行的通信的差錯;或所述設(shè)備為了啟動所述差錯的修復(fù)所采取的至少一個動作;以及(B)存儲從所述多個設(shè)備接收到的所述指示;以及(C)分析所述指示以確定所述指示的至少一部分所共有的特性。
13.如權(quán)利要求12所述的至少一個有形計算機可讀存儲介質(zhì),其特征在于,(A)還包括接收與所述多個設(shè)備相關(guān)聯(lián)的移動運營商的指示,以及從所述多個設(shè)備中的每一個接收觀察到所述事件的時刻。
14.如權(quán)利要求12所述的至少一個有形計算機可讀存儲介質(zhì),其特征在于,所述方法還包括以下動作(D)向所述多個設(shè)備的每一個發(fā)送對所述設(shè)備上執(zhí)行的組件的更新。
15.如權(quán)利要求14所述的至少一個有形計算機可讀存儲介質(zhì),其特征在于,在(D)中發(fā)送的所述更新與在(C)中確定的特性相關(guān)。
16.如權(quán)利要求14所述的至少一個有形計算機可讀存儲介質(zhì),其特征在于,還包括以下動作(E)接收對所述組件的所述更新;以及(F)安裝所述更新。
17.一種在系統(tǒng)中使用的方法,所述系統(tǒng)中使用包括多個層(150)的框架來執(zhí)行通信, 所述框架的所述多個層的每一個包括使用通信協(xié)議的一個或多個功能,所述方法包括以下動作(A)觀察在所述框架的所述多個層中的一個層處發(fā)生的事件(310);(B)確定所述事件(31 指示與使用所述框架的通信相關(guān)的差錯;(C)在所述框架的所述多個層中的一個層處采取動作(320)以啟動所述差錯的修復(fù)。
18.如權(quán)利要求17所述的方法,其特征在于,(C)包括在所述框架中在(A)中觀察到事件的同一層處采取所述動作。
19.如權(quán)利要求17所述的方法,其特征在于,所述框架的所述多個層包括第一層和第二層,所述動作(A)包括在所述第一層處觀察所述事件,并且所述動作(B)包括在所述第二層處采取動作。
20.如權(quán)利要求19所述的方法,其特征在于,將所述框架的所述多個層組織成棧,并且在所述棧中所述第一層高于所述第二層。
全文摘要
本發(fā)明涉及彈性連通性健康管理框架。提供用于診斷并解決無線連通性相關(guān)問題的框架。例如,本發(fā)明的一些實施例提供了監(jiān)視并記錄設(shè)備上、網(wǎng)絡(luò)上和該設(shè)備所連接到的一個或多個資源上發(fā)生的無線連通性相關(guān)事件的“健康監(jiān)視器”。健康監(jiān)視器可分析這些事件和/或其它信息以確定何時發(fā)生連通性問題,并確定問題是將要發(fā)生還是已經(jīng)發(fā)生,并啟動恢復(fù)程序。在一些實施例,監(jiān)視事件、分析以確定連通性問題是否已出現(xiàn)、以及從問題恢復(fù)都對用戶透明地進行。
文檔編號H04L12/24GK102208993SQ20111006592
公開日2011年10月5日 申請日期2011年3月11日 優(yōu)先權(quán)日2010年3月12日
發(fā)明者A·G·克渥克, C·李, G·J·斯科特, N·達烏德, S·古戴, T·W·庫納爾, Y·張 申請人:微軟公司