弹性连通性健康管理框架的制作方法

文档序号:7612454阅读:122来源:国知局
专利名称:弹性连通性健康管理框架的制作方法
技术领域
本发明一般涉及无线连通性,尤其涉及对无线连通性相关问题的管理。
背景技术
一些传统的手持设备提供经无线(如射频即RF)连接对一个或多个网络(如因特网、局域网、其它类型的网络或上述网络的任何组合)的访问。例如,许多手持设备使用RF 连接来向用户提供对电子邮件、网页浏览和高质量视频等服务的访问。手持设备例如可以运行操作系统,操作系统管理与经其访问因特网的移动运营商网络的连通性,并提供应用程序在该设备上执行的标准化接口和平台。连通性问题通常困扰使用RF连接来连接到一个或多个网络的手持设备。连通性问题例如由于以下因素引起在其中使用设备的环境的特性、移动运营商网络中的一个或多个组件的问题、用户尝试连接的服务器或服务的问题、和/或设备本身的问题。连通性问题可能导致连接中断和/或影响连接质量。许多传统手持设备包括用于尝试将连通性相关问题最小化的组件。例如,如果连接出了问题,这些组件将采取措施来尝试保持连接,或者如果连接已经丢失,则试图重新建立连接。然而,存在可影响连接质量的多种变数,和维持连接所需的众多组件。结果,难以预见可能出现的所有类型的差错状况和情况,并在设备上的编程逻辑中解决所有这些状况和情况。例如,手持设备上的连通性问题的常见原因是组件之间的状态失配。在已经建立连接后,由于多种事件中的任一种,状态可能失配或不同步。例如,一些移动网络运营商具有适当的策略来管理网络资源,这些策略规定超过指定时间段(如三十分钟)保持空闲的连接自动无声地断开。在连接断开之后,原先用于建立连接的网络组件可被重新部署以服务于其它业务,即使手持设备上的组件“相信”连接仍然是完好的。与保持连接相关的复杂性,如防止或解决状态失配,使得管理手持设备的连通性相关问题变得困难。

发明内容
本发明的一些实施例提供了用于快速诊断和解决连通性相关问题使得它们的影响最小化的框架。例如,本发明的一些实施例提供了监视并记录设备上、网络上和该设备所连接到的一个或多个资源上发生的连通性相关事件的“健康监视器”。健康监视器分析这些事件和/或其它信息以确定何时出现连通性问题,并确定问题是即将发生还是已经发生, 并启动恢复程序。在一些实施例,监视事件、分析以确定连通性问题是否已出现、以及从问题恢复都对用户透明地进行。以上概述是对由所附权利要求定义的本发明的非限定性的概述。


附图不旨在按比例绘制。在附图中,各个附图中示出的每一完全相同或近乎完全相同的组件由同样的标号来表示。出于简明的目的,不是每一个组件在每张附图中均被标号。在附图中图1是描绘根据本发明的一些实施例实现的健康监视器的示例性组件的框图;图2是描绘根据本发明的一些实施例实现的健康监视器的组件的示例性状态的状态图;图3是描绘根据本发明的一些实施例实现的健康监视器执行的示例性过程的顺序图;图4是描绘根据本发明的一些实施例实现的一个或多个应用程序和健康监视器之间的示例性接口的框图;图5是描绘根据本发明的一些实施例的用于在一个或多个手持设备和一个或多个分析工具之间交换设备的示例性系统的框图;图6是描绘其上可实现本发明的一些实施例的示例性计算机的框图;图7是描绘其上可存储实现本发明的各实施例的指令和数据的示例性存储介质的框图。
具体实施例方式本发明的一些实施例提供用于诊断并解决连通性相关问题的框架。例如,本发明的一些实施例提供了监视并记录手持设备上、网络上和/或该设备所连接到的一个或多个网络可访问资源上发生的连通性相关事件的“健康监视器”。该健康监视器分析这些事件和 /或其它信息,以识别连通性相关问题,并且如果识别出问题或确定问题即将发生,可启动恢复程序。在一些实施例中,对事件的监视和分析以识别当前或即将发生的连通性相关问题可以对手持设备的用户透明地进行。在本发明的一些实施例中,通过在手持设备上执行的操作系统的组件来实现健康监视器。例如,健康监视器可包括一组组件,每个组件被设计成“反映”通常用于执行网络通信的开放式系统互联(OSI)栈的七层中的一层。本领域的技术人员可以理解,OSI栈是用于执行网络通信的协议和服务的概念框架。OSI栈的七层包括应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。协议通常在栈的每一层用于一给定通信,该层包括概念上类似功能的集合,用于向其上方相邻层提供服务并从其下方相邻层接收服务。本发明的一些实施例提供与OSI栈的个别层的功能交互的组件,以及与该栈的多个层的功能交互的组件。例如,本发明的一些实施例包括各自与栈的下四层(即传输层、网络层、数据链路层和物理层)中的一层的功能交互的组件,以及跨越多于一个的层的组件。组件包括记录在每一层发生的事件,实现被设计成确定事件(或事件组)是否指示连通性问题的编程逻辑形式的规则集,并提供对恢复和恢复验证的控制。在一些实施例中,健康监视器可以实现自扼制功能,使得健康监视器组件的执行对设备电力、处理性能和存储容量具有最小的影响。一些实施例或者还可以提供应用程序编程接口(API),来使得设备上执行的应用程序能够向健康监视器提供信息和从健康监视器接收数据。例如,应用程序可使用API来识别对健康监视器来说可疑的连通性相关问题, 使得健康监视器的组件可进行调查并在有必要的情况下采取措施。图1描绘的是与OSI七层栈相关的健康监视器核心的组件的概念表示。在图1中,健康监视器核心100包括与OSI栈150中的传输层152、网络层154、数据链路层156和物理层158的功能交互的组件。具体而言,组件110与传输层152的功能交互。在所示的实例中,组件110与栈150中在传输层152中使用TCP和UDP协议的功能交互。类似地,组件 115与在网络层154中使用IP协议的功能交互。组件120与数据链路层156和物理层158上的功能交互。具体而言,在所示的实例中,组件120与使用蜂窝协议的功能交互。组件120包括故障检测组件122、诊断处理组件 124和故障恢复组件126,它们每一个都与在数据链路层156和物理层158使用蜂窝协议的功能交互。类似于与使用蜂窝协议的功能交互的组件120,组件125与使用IEEE 802. Ilx 协议的功能交互,组件130与使用蓝牙协议的功能交互。记录组件135记录在传输层152、物理层154、数据链路层156和物理层158中观察到的事件。就此,记录组件135 “跨越WSI栈150的这些层。当然,本发明不限于使用跨越 OSI栈的多个层的单个组件,因为本发明可以用多种方式中的任一种实现,包括采用数个组件,各自记录发生在栈的一个特定层中的事件。对应于OSI栈150的各个层的健康监视器核心100的各个组件可以以多种方式中的任一种与栈的各个层处的功能交互。例如,组件可以监视发生在栈的每个层处的事件,并在事件发生时,实现用于定义处理、诊断和/或修复导致该事件发生的该层处的状况的方式的一个或多个规则集。结果,健康监视器核心100的组件提供以专用于一个或各个的层的方式解决问题的能力。当然,如图1所示的记录组件135所示,健康监视器核心100的组件或者还可以提供监视栈的多个层处的通信的能力,并提供检测并解决多个层处的问题的功能。健康监视器核心100的任何一个或多个组件可以监视和/或作用于在栈中的一个或多个层处发现的问题,因为本发明的实施例在这方面不受限制。应当理解,虽然图1所示的健康监视器核心100的示例性实现包括各自反映OSI 栈的一层的多个组件,但是本发明的实施例不限于以这种方式实现,而是可以以多种方式中的任一种实现。还应当理解,本发明的实施例不限于与使用如图1所示的具体通信协议的每一层处的功能交互,因为这些协议只是作为示例给出的。在一些实施例中,健康监视器核心100如图2所示被实现为包括状态和转移的状态机,包括空闲状态205、事件处理状态210、诊断状态215、修复状态220、验证状态225和挂起状态230。在所示的实施例中,空闲状态205是健康监视器核心100的开始状态。一旦观察到指定事件,就启动转移207,使得健康监视器核心100转移到事件处理状态210。例如,当健康监视器核心100的组件检测到指示连通性相关问题的一个或多个事件或者应用程序注册已发生一个或多个这种事件的指示时,健康监视器核心100可以从空闲状态205 转移到事件处理状态210。观察到的事件可以与OSI栈的任何或所有层相关联,并且可以与使用多种协议中的任一种的通信相关。例如可以记录观察到的事件,并且日志条目可以驱动连通性相关问题的后续分析。另外,可以记录健康监视器本身采取的动作。记录例如可以按以下方式执行,该方式使健康监视器的执行对手持设备的供电、处理和存储容量的影响最小。例如,本发明的一些实施例允许在设备上本地地和/或远程地配置记录事件和/或动作的程度。例如,确定某种类型的差错急剧增加的移动网络运营商可以远程地增加记录事件或动作的粒度以诊断问题。一旦解决了问题,移动运营商可以恢复到正常记录,使健康监视器的电力、处理和存储需求最小化。本发明的一些实施例可以使用华盛顿州雷蒙德市的微软公司提供的事件跟踪窗口(ETW)机制来执行记录,并且可以用维护每个手持设备及其用户的隐私的方式来传送所记录的信息。本发明不限于这种实现,因为记录和数据传送可以用任何合适的方式、使用任何合适的工具和/或技术来执行。如果确定观察到的事件可构成应当诊断的差错,健康监视器核心100可以从事件处理状态210转移到诊断状态215,或者如果确定观察到的事件并不指示已发生差错,则转移回空闲状态205。例如,在一些实施例中,健康监视器100可确定连接和信号强度的状态, 以确定观察到的事件是否指示已发生的可能的差错,而不是仅仅临时延迟或分组重发,并仅当信号确定大于零且连接存在时转移213到诊断状态215。例如,当信号强度为零时连接存在或不存在,和当信号强度大于零时连接不存在可视为不指示差错的正常情况。由此,在所示的实例中,记录这些事件,并且健康监视器100可转移212到空闲状态。当然,可以以多种方式中的任一种来确定一个或多个观察到的事件是否指示已发生差错,本发明的实施例不限于采用信号强度或连接状态或采用任何特定技术来进行判断。如果确定已发生差错,则健康监视器核心100可以从诊断状态215转移到修复状态220,或者如果确定没有发生差错,则转移到空闲状态205。例如,健康监视器100可以查验预定地址(如通知健康监视器100指示差错的事件的应用程序提供的地址、或其它地址) 以确定到该地址的连接是否可建立。如果查验被确认,健康监视器100可确定没有发生差错,并转移217到空闲状态205。反之,如果查验未得到确认,健康监视器100可转移到修复状态220以修复差错。当然,可以以多种方式中的任一种来确定是否发生了差错,本发明的实施例不限于通过查验地址或采用任何特定技术来进行确定。如果所尝试的修复完成,健康监视器核心100可从修复状态220转移到验证状态 225,或者如果所尝试的修复未完成,则转移到挂起状态230。例如,健康监视器100例如可以通过重置分组数据协议(PDP)上下文和/或断开并重新附加连接来尝试修复差错。如果上述尝试修复中的任一个或两者未能完成,那么健康监视器100可转移222到挂起状态 230,如果所尝试的修复完成了,那么健康监视器100可转移224到验证状态225。当然,本发明的实施例不限于通过重置分组数据协议(PDP)上下文和/或断开并重新附加连接来尝试修复,因为这可以用多种方式中的任一种执行。如果完成的修复未被验证为成功,则健康监视器可从验证状态225转移回修复状态220,或者如果完成的修复被验证为成功,则转移到挂起状态230。例如,健康监视器100 可尝试查验预定地址(如最初尝试连接到的后端服务器或服务、或其它服务器或服务),如果查验被确认,则健康监视器100可转移2 到挂起状态230,如果未被确认,则健康监视器100可转移227回修复状态以重新尝试修复。当然,可以用多种方式中的任一种来验证修复,查验地址只是一个示例。例如,健康监视器100或者可以查询设备上的应用程序以确定其连通性是否已恢复。健康监视器100从挂起状态230转移232到空闲状态205。在一些实施例中,转移 232在挂起计时器期满之后发生,使得健康监视器恢复空闲状态205。应当理解,以上参考图2所述的状态和转移仅是示例,健康监视器100可采取多种状态中的任一种,包括已描述的这些和未描述的其它,以及根据图2中未描述的方式的状态之间的转移。
图3是描绘当事件发生时状态之间的示例性进展的顺序图300。具体而言,在图3 的示例中,传输控制协议(TCP)超时发生,导致健康监视器100在以上参考图2所述的状态之间转移。应当理解,OSI栈150的传输层152(图1)上的TCP超时的发生可以指示或不指示栈的较低层(即网络层154、数据链路层156和/或物理层158)上的失败。就此,在发出的通信未被确认时TCP协议提供五秒超时,之后重发该通信。TCP超时的发生可能指示由于多种因素中的任一种引起的正常延迟,多种因素包括网络组件的组织方式、网络的等待时间、 缺乏来自尝试连接到的服务器的响应等。然而,TCP超时的发生也可能由于栈的一个或多个较低层上的差错引起,在较低层中使用具有更长超时时间段的协议。结果,TCP超时(或在栈的较高层上发生的其它超时)可以作为栈的较低层上的差错的“早期指示符”,在这些较低层上使用的更长超时期满前处置TCP超时能够更快地从差错中恢复。在一些实施例中, 健康监视器100包括查找关于各个层中发生的问题的信息的组件,从而能够尽快诊断并处置差错。由于这些组件可分开地处置每个层,所以健康监视器100可精确地将差错瞄准到其发生的层,而不是不得不采用“地毯式”方案。在图3所示的顺序的开始,健康监视器(HM) 100处于空闲状态305,这时在335发生TCP超时,导致健康监视器100转移到事件处理状态310。在所示的实例中,健康监视器通过在342查询连接监视器(CM) 340以确定连接是否存在并在346查询无线电接口层 (RIL) 344以确定信号强度,从而确定是否应当将TCP超时诊断为可能的差错。在348和 350,CM 340和RIL 344分别用连接存在(在348)和信号强度大于零(在350)的指示响应于这些查询,指示存在应诊断的可能的差错,并使健康监视器100转移到诊断状态315。之后,在352健康监视器100尝试查验预定地址,并且在超时时间段356内没有接收到响应354,这指示存在差错,并使健康监视器100转移到修复状态320。申请人:认识到,断开并重新附加连接到网络上的网关可“冲洗掉” OSI栈的较低层中的差错(如状态失配)。结果,在图3的实例中,在358健康监视器100指令RIL 344断开连接,在362使RIL 344将该指令转发到调制解调器360,然后在366调制解调器将该指令传递给网络网关364。然后,在368网络网关364将连接已经断开的指示传递给调制解调器360,在370调制解调器将该指示传递给RIL 344,然后在372RIL 344将该指示传递给健康监视器100。健康监视器然后在374指令RIL 344重新附加连接,在376使RIL 344将该指令转发到调制解调器360,然后在378调制解调器将该指令传递给网络网关364。然后, 在380网络网关364将连接已经重新附加的指示传递给调制解调器360,在382调制解调器将该指示传递给RIL 344,然后在384RIL 344进而将该指示传递给健康监视器100,使得健康监视器转移到验证状态325。使用该技术,如果在栈的较低层发生差错,可以重置连接并尽快还原连通性。结果,如果发生状态失配,或者如果由于用户正驾车通过隧道或到达需要蜂窝塔切换的位置, 而这时也在传送数据的其他人也尝试切换到相同的塔而导致的弱信号而发生差错,连通性可以快速恢复。健康监视器100然后在386查验地址(如在352中查验的相同的地址)。在取消计时器390期满之前在388接收响应,使健康监视器100转移到挂起状态330。健康监视器 100然后在392启动挂起计时器,该计时器在394期满,使健康监视器转移到空闲状态305。然后,图3的顺序图完成。图4描绘了用于设备上一个或多个应用程序420的健康监视器100提供的示例性应用程序编程接口(API)410。使用API 410,应用程序420可向健康监视器100提供信息, 如发生可指示连通性相关问题的事件的指示,并可从健康监视器100接收信息,如差错已避免或已解决的指示。应当理解,图4所示的为一个或多个应用程序提供单个API的配置仅仅是一个示例,还可以提供多于一个的API,每个API可提供用于一个或多个应用程序的接口。本发明的实施例不限于任何特定的实现。图5描绘了示例性系统,它允许一个或多个分析工具560从多个手持设备510、 520、530、540和550收集关于事件和响应于事件所采取的动作的信息。例如,手持设备510、 520、530、540和550中的每一个可发送信息至一个或多个分析工具560,如使用华盛顿州雷蒙德市的微软公司提供的软件质量管理(SQM)工具。当然,本发明的实施例不限于使用SQM 来发送信息,因为可使用任何合适的技术或工具。一个或多个分析工具560可聚集并分析从各种手持设备接收到的信息,如在从设备接收到的数据中确定差错模式和/或趋势。例如,可基于移动运营商、设备、时刻、和/或任何其它标准来分割来自设备510-550的信息,以确定(作为示例)在特定时刻在特定设备或设备类型上发生某些事件。这类数据例如对移动运营商是有用的,用于指示对用户团体有益的基础结构改进。例如,在某一位置特定时刻(如在一地铁站外上午9:00)丢失连接的显著增加可指示用户团体可受益于附近的额外的蜂窝塔。从手持设备接收到的信息中可得出多种结论中的任一种,本发明并不限于此。图5的系统还可用于向任何或所有手持设备510-550分发信息。例如,一个或多个分析工具可使用网络505向任何或所有设备发送健康监视器的新版本,以实现新特征。就此,应当理解,本发明的实施例可提供演变和更新框架,从而根据先前捕获的信息将定义差错检查、恢复步骤等的规则集“推送”到各个设备。例如,当设备510-550的用户遇到由各健康监视器分析的事件,并且关于这些事件和响应于事件的动作的信息被分析时,可将健康监视器的较新版本推送到设备,以不断改进其管理连通性相关问题的有效性。在一些实施例中,规则集不仅定义如何限定事件、要采取什么动作以及如何验证恢复,还定义了健康监视器的总体行为,以使对设备的供电和/或性能的影响最小化。例如,如果蜂窝信号的强度较低,健康监视器可“自扼制”,使得组件不会连续启动并尝试确定差错状况是否存在,从而消耗电能和处理周期。类似地,如果确定存在设备几乎不能控制的差错,健康监视器可自扼制。例如,如果用户驾车通过隧道或进入地铁,导致设备接收不到或几乎接收不到信号,那么健康监视器可自扼制,使其组件不消耗电能和/或处理周期直到信号强度还原(如当用户从地铁出来),以使总体系统影响最小化。应当理解,虽然以上一些描述参考使用RF连接来连接到因特网的移动手持设备, 但是本发明的实施例不限于此。例如,本发明的实施例不必用于管理与因特网的连通性,还可用于管理与任何一种或多种类型的网络的连通性,包括局域网和/或广域网、其它类型的网络、或它们的任意组合。另外,本发明的实施例不必连接到网络,还可用于例如管理手持设备和一个或多个其它设备的连通性,如远程数据存储、无线接入点、其它类型的设备、 或它们的任意组合。当用于管理网络连通性时,可以使用任何合适的网络基础结构和/或通信协议。例如,可使用任何合适的一个或多个蜂窝网络类型(如GSM、CDMA、LTE、其它类型、或它们的任意组合)。应当理解,本发明的实施例不限于使用RF建立连通性的设备,还可以使用任何合适类型的电磁辐射或其它媒介来实现通信。本发明的实施例不限于任何特定的实现。还应当理解,此处用的术语“手持设备”在其范围中涵盖任何合适的设备,包括膝上型计算机、台式计算机、控制/监视系统、专用集成电路(ASIC)、音乐和/或视频播放器、 游戏控制台、其它类型的设备、或它们的任意组合。可以使用任何合适的一个或多个设备, 因为本发明的实施例不限于任何特定的实现。用于实施本发明的各特征的系统和方法的各方面可被实现在一个或多个计算机系统上,如图6中示出的示例性计算机系统600。计算机系统600包括输入设备602、输出设备601、处理器603、存储器系统604和存储606,这些设备全都经由可包括一个或多个总线、 交换机、网络和/或任何其他合适互连的互连机制605来直接或间接耦合。输入设备602接收来自用户或机器(例如,人类操作者)的输入,并且输出设备601向用户或机器(例如, 液晶显示器)显示或传送信息。输入和输出设备主要可被用来呈现用户界面。可被用来提供用户界面的输出设备的示例包括用于可视地呈现输出的打印机或显示屏和用于可听地呈现输出的扬声器或其他声音生成设备。可被用于用户界面的输入设备的示例包括键盘和诸如鼠标、触摸板和数字化输入板等定点设备。作为另一示例,计算机可以通过语音识别或以其他可听格式来接收输入信息。处理器603通常执行被称为操作系统(例如,微软Windows系列操作系统或任何其他合适的操作系统)的计算机程序,操作系统控制其他计算机程序的执行并提供调度、 输入/输出以及其他设备控制、会计、汇编、存储安排、数据管理、存储器管理、通信以及数据流控制。笼统而言,处理器和操作系统定义为其编写应用程序和其他计算机程序语言的计算机平台。处理器603还可执行一个或多个计算机程序以实现各种功能。这些计算机程序语言可以用任何类型的计算机程序语言来编写,包括过程程序设计语言、面向对象的程序设计语言、宏语言、或它们的组合。这些计算机程序可以存储在存储系统606中。存储系统 606可以将信息保持在易失性或非易失性介质上,并可以是固定或可移动的。在图7中更详细的示出了存储系统606。存储系统606可包括有形计算机可读和可写非易失性记录介质701,其上存储有定义计算机程序或要由该程序使用的信息的信号。记录介质例如可以是盘存储器、闪存、和 /或可用于记录和存储信息的任何其它制品。通常,在操作中,处理器603使得数据从非易失性记录介质701读入允许处理器603比对介质701进行的更快的信息访问的易失性存储器702(例如,随机存取存储器,即RAM)中。如图6所示,存储器702可位于存储系统606 中或位于存储器系统604中。处理器603 —般处理集成电路存储器604、702内的数据,然后在处理完成之后将这些数据复制到介质701中。已知有各种机制可用于管理介质701和集成电路存储元件604、702之间的数据移动,并且本发明不限于当前已知的或以后研发的任何机制。本发明也不限于特定的存储器系统604或存储系统606。至此描述了本发明的至少一个实施例的若干方面,可以理解,本领域的技术人员可容易地想到各种更改、修改和改进。这样的更改、修改和改进旨在是本发明的一部分且旨在处于本发明的精神和范围内。因此,上述描述和附图仅用作示例。
可以用多种方式中的任一种来实现本发明的上述实施例。例如,可使用硬件、软件或其组合来实现各实施例。当使用软件实现时,该软件代码可在无论是在单个计算机中提供的还是在多个计算机之间分布的任何合适的处理器或处理器集合上执行。此外,应当理解,计算机可以用多种形式中的任一种来具体化,如机架式计算机、 台式计算机、膝上型计算机、或平板计算机。另外,计算机可以具体化在通常不被认为是计算机但具有合适的处理能力的设备中,包括个人数字助理(PDA)、智能电话、或任何其他合适的便携式或固定电子设备。这些计算机可以通过任何合适形式的一个或多个网络来互连,包括作为局域网或广域网,如企业网络或因特网。这些网络可以基于任何合适的技术并可以根据任何合适的协议来操作,并且可以包括无线网络、有线网络或光纤网络。而且,此处略述的各种方法或过程可被编码为可在采用各种操作系统或平台中任何一种的一个或多个处理器上执行的软件。此外,这样的软件可使用多种合适的程序设计语言和/或程序设计或脚本工具中的任何一种来编写,而且它们还可被编译为可执行机器语言代码或在框架或虚拟机上执行的中间代码。就此,本发明可被具体化为用一个或多个程序编码的一个计算机可读介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、紧致盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、现场可编程门阵列或其他半导体器件中的电路配置、或其他非瞬态的有形计算机存储介质),当这些程序在一个或多个计算机或其他处理器上执行时,它们执行实现本发明的上述各个实施例的方法。这一个或多个计算机可读介质可以是便携的,使得其上存储的一个或多个程序可被加载到一个或多个不同的计算机或其他处理器上以便实现本发明上述的各个方面。此处以一般的意义使用术语“程序”或“软件”来指可被用来对计算机或其他处理器编程以实现本发明上述的各个方面的任何类型的计算机代码或计算机可执行指令集。另外,应当理解,根据本实施例的一个方面,当被执行时实现本发明的方法的一个或多个计算机程序不必驻留在单个计算机或处理器上,而是可以按模块化的方式分布在多个不同的计算机或处理器之间以实现本发明的各方面。计算机可执行指令可以具有可由一个或多个计算机或其他设备执行的各种形式, 诸如程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,在各实施例中,程序模块的功能可以视需要组合或分布。而且,数据结构能以任何合适的形式存储在计算机可读介质上。为简化说明,数据结构可被示为具有通过该数据结构中的位置而相关的字段。这些关系同样可以通过对各字段的存储分配传达各字段之间的关系的计算机可读介质中的位置来得到。然而,可以使用任何合适的机制来在数据结构的各字段中的信息之间建立关系,包括通过使用指针、标签、 或在数据元素之间建立关系的其他机制。本发明的各个方面可单独、组合或以未在前述实施例中具体讨论的各种安排来使用,从而并不将其应用限于前述描述中所述或附图中所示的组件的细节和安排。例如,可使用任何方式将一个实施例中描述的各方面与其他实施例中描述的各方面组合。同样,本发明可被具体化为方法,其示例已经提供。作为该方法的一部分所执行的动作可以按任何合适的方式来排序。因此,可以构建各个实施例,其中各动作以与所示的次序所不同的次序执行,不同的次序可包括同时执行某些动作,即使这些动作在各说明性实施例中被示为顺序动作。在权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰权利要求元素本身并不意味着一个权利要求元素较之另一个权利要求元素的优先级、先后次序或顺序、 或者方法的各动作执行的时间顺序,而仅用作将具有某一名字的一个权利要求元素与(若不是使用序数词则)具有同一名字的另一元素区分开的标签以区分各权利要求元素。同样,此处所使用的短语和术语是出于描述的目的而不应被认为是限制。此处对 “包括”、“包含”、或“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其等效物以及其他项目。
权利要求
1.一种用于系统中的装置(600),所述系统中使用包括多个层(150)的框架来执行通信,所述框架的所述多个层的每一个包括使用通信协议的一个或多个功能,所述装置包括至少一个处理器,所述处理器被编程为(A)执行多个组件(100),每个组件对应于所述多个层中的一个,每个组件用于与对应于该组件的层处的所述一个或多个功能交互;(B)使用所述多个组件中的一个组件来观察关于对应于所述一个组件的所述层处的事件;(C)确定所述事件指示与通信相关的差错;以及(D)启动对所述差错的修复。
2.如权利要求1所述的装置,其特征在于,所述系统包括蜂窝网络。
3.如权利要求1所述的装置,其特征在于,所述多个层包括应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。
4.如权利要求1所述的装置,其特征在于,所述装置执行操作系统,并且所述多个组件的至少一部分是所述操作系统的组件。
5.如权利要求1所述的装置,其特征在于,(A)还包括执行对应于所述多个层中多于一个的层的至少一个组件,所述至少一个组件用于与所述多于一个的层中的每一个处的一个或多个功能交互。
6.如权利要求1所述的装置,其特征在于,将所述多个层组织成包括第一层和第二层的栈,并且所述至少一个处理器进一步被编程为在(B)中,使用第一组件观察关于所述第一层的事件,以及在(D)中,通过对所述第二层采取动作来启动对所述差错的修复。
7.如权利要求6所述的装置,其特征在于,在所述栈中所述第一层高于所述第二层。
8.如权利要求1所述的装置,其特征在于,所述装置用于执行应用程序,并且所述至少一个处理器还被编程为提供接口使所述应用程序能够指示表示可疑差错的事件的出现。
9.如权利要求1所述的装置,其特征在于,所述至少一个处理器还被编程为在日志中记录以下内容中的一个或多个所观察到的事件的指示、确定为由所观察到的事件指示的差错、和启动所述差错的修复所采取的动作。
10.如权利要求9所述的装置,其特征在于,所述至少一个处理器还被编程为向分析工具发送所述日志的内容。
11.如权利要求10所述的装置,其特征在于,所述至少一个处理器还被编程为从所述分析工具接收对所述多个组件中的一个组件的更新,并安装所述更新以更新所述一个组件。
12.至少一个有形计算机可读存储介质(701),其上存储有指令,所述指令在被执行时实现一种在系统使用中的方法,所述系统中的多个设备(510,520)各自使用包括多个层 (150)的框架来执行通信,所述框架的所述多个层的每一个包括使用通信协议的一个或多个功能,多个设备中的每一个执行各自对应于所述多个层中的一个的多个组件(100),每个组件用于与对应于该组件的层处的所述一个或多个功能交互,所述方法包括以下动作(A)从所述多个设备中的每一个接收关于以下内容的指示所述设备上执行的组件观察到的事件;确定所述事件指示关于所述设备执行的通信的差错;或所述设备为了启动所述差错的修复所采取的至少一个动作;以及(B)存储从所述多个设备接收到的所述指示;以及(C)分析所述指示以确定所述指示的至少一部分所共有的特性。
13.如权利要求12所述的至少一个有形计算机可读存储介质,其特征在于,(A)还包括接收与所述多个设备相关联的移动运营商的指示,以及从所述多个设备中的每一个接收观察到所述事件的时刻。
14.如权利要求12所述的至少一个有形计算机可读存储介质,其特征在于,所述方法还包括以下动作(D)向所述多个设备的每一个发送对所述设备上执行的组件的更新。
15.如权利要求14所述的至少一个有形计算机可读存储介质,其特征在于,在(D)中发送的所述更新与在(C)中确定的特性相关。
16.如权利要求14所述的至少一个有形计算机可读存储介质,其特征在于,还包括以下动作(E)接收对所述组件的所述更新;以及(F)安装所述更新。
17.一种在系统中使用的方法,所述系统中使用包括多个层(150)的框架来执行通信, 所述框架的所述多个层的每一个包括使用通信协议的一个或多个功能,所述方法包括以下动作(A)观察在所述框架的所述多个层中的一个层处发生的事件(310);(B)确定所述事件(31 指示与使用所述框架的通信相关的差错;(C)在所述框架的所述多个层中的一个层处采取动作(320)以启动所述差错的修复。
18.如权利要求17所述的方法,其特征在于,(C)包括在所述框架中在(A)中观察到事件的同一层处采取所述动作。
19.如权利要求17所述的方法,其特征在于,所述框架的所述多个层包括第一层和第二层,所述动作(A)包括在所述第一层处观察所述事件,并且所述动作(B)包括在所述第二层处采取动作。
20.如权利要求19所述的方法,其特征在于,将所述框架的所述多个层组织成栈,并且在所述栈中所述第一层高于所述第二层。
全文摘要
本发明涉及弹性连通性健康管理框架。提供用于诊断并解决无线连通性相关问题的框架。例如,本发明的一些实施例提供了监视并记录设备上、网络上和该设备所连接到的一个或多个资源上发生的无线连通性相关事件的“健康监视器”。健康监视器可分析这些事件和/或其它信息以确定何时发生连通性问题,并确定问题是将要发生还是已经发生,并启动恢复程序。在一些实施例,监视事件、分析以确定连通性问题是否已出现、以及从问题恢复都对用户透明地进行。
文档编号H04L12/24GK102208993SQ20111006592
公开日2011年10月5日 申请日期2011年3月11日 优先权日2010年3月12日
发明者A·G·克渥克, C·李, G·J·斯科特, N·达乌德, S·古戴, T·W·库纳尔, Y·张 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1