用于无线网络连接性的可扩展框架的制作方法

文档序号:7790964阅读:137来源:国知局
用于无线网络连接性的可扩展框架的制作方法
【专利摘要】一种用于将通过蜂窝网络发送到移动计算设备的数据话务卸除到无线网络的可扩展框架,包括软件插件、通常作为移动设备操作系统一部分的插件主机,以及插件主机经由其与插件进行通信的插件接口。插件与一个或多个移动运营商相关联。该框架可包括一个或多个插件,但通常一次只有一个插件是活动的。该框架可自动检测并连接到与关联于活动插件的移动运营商相关联的无线网络。该插件可通过所连接的无线网络向移动运营商自动认证移动设备或移动设备用户。该插件不被允许访问负责检测及连接和断开连接无线网络的操作系统功能,这可改进移动操作系统稳定性和电池寿命。
【专利说明】用于无线网络连接性的可扩展框架
[0001] 背景
[0002] 随着订户对内容的要求(尤其是视频内容)增加,蜂窝网络正努力跟上。用于解 决这一问题的一种技术是Wi-Fi卸除负荷(Wi-Fi offloading),其中移动网络运营商将来 自各蜂窝网络的话务卸除到Wi-Fi网络。


【发明内容】

[0003] 提供本
【发明内容】
是为了以简化的形式介绍将在以下详细描述中进一步描述的一 些概念。本
【发明内容】
并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用 于帮助确定所要求保护的主题的范围。
[0004] 描述了一种可扩展框架,该可扩展框架允许应用开发者实现具有用于将蜂窝数据 卸除到Wi-Fi热点的因移动运营商而异的逻辑的软件插件。该框架包括插件可用来指定优 选Wi-Fi网络、尝试认证以及向平台和用户通知该连接尝试的成功或失败的接口和回调。 因为移动设备可被用在不同的网络中,单个设备可包含根据订户身份或网络属性而激活的 多个插件。
[0005] 在将通过蜂窝网络发送的数据话务卸除到移动计算设备的方法的一个实施例中, 插件主机向活动插件发送与移动设备检测到的网络有关的信息。活动插件和检测到的网络 与特定移动运营商相关联。插件返回与从检测到的网络中选择的优选网络有关的信息。移 动设备连接到优选网络之一并且插件主机请求活动插件认证该移动设备或移动设备用户。 指示认证成功的信息被从活动插件接收到并且数据话务被从蜂窝网络卸除到所连接的无 线网络。
[0006] 参考附图阅读下面的【具体实施方式】,将更清楚所公开的技术的前述和其他目标、 特征和优点。

【专利附图】

【附图说明】
[0007] 图1是描绘示例性移动计算设备的系统框图。
[0008] 图2示出了其中可实现所描述的实施例、技术和工艺的适合的实现环境的通用示 例。
[0009] 图3是经由蜂窝网络和无线网络连接到云的示例性移动计算设备的框图。
[0010] 图4是可扩展框架的示例性实现的框图。
[0011] 图5是卸除通过蜂窝网络发送到移动计算设备的数据话务的第一示例性方法的 流程图。
[0012] 图6是采用本文描述的可扩展框架的移动计算设备的框图。
[0013] 图7是卸除通过蜂窝网络发送到移动计算设备的数据话务的第二示例性方法的 流程图。
[0014] 图8是卸除通过蜂窝网络发送到移动计算设备的数据话务的第三示例性方法的 流程图。

【具体实施方式】
[0015] 本文所描述的技术允许在蜂窝网络上向/从移动计算设备(如智能电话或平板计 算机)发送的数据话务被卸除到另一无线网络(如Wi-Fi LAN(局域网))。卸除负荷是通 过在移动计算设备中实现的可扩展框架来启用的。该框架允许自动连接到无线网络并自动 认证移动设备(或移动设备用户)。该框架包括插件主机(认证软件模块主机或认证插件 主机)和一个或多个软件插件(认证软件模块或认证插件)。软件插件通常由移动网络运 营商(M0)或ISV(独立软件供应商)提供并且包含自动连接和认证所需的信息。配备有本 文描述的网络卸除负荷技术的移动计算设备可以自动连接到Wi-Fi热点来卸除蜂窝数据 话务而无需用户干预。如本文所使用的,术语"热点"意指提供网络(通常是因特网)接入 的站点。
[0016] 图1是描绘可用于执行本文中所述的任何方法的示例性移动计算设备(移动设 备)100的系统框图。移动计算设备100可包括各种可选硬件和软件组件105。一般而言, 组件105可与其他组件通信,但是出于容易例示的目的而未示出所有连接。移动计算设备 100可以是各种移动计算设备(例如,蜂窝电话、智能电话、手持式计算机、膝上型计算机、 笔记本计算机、平板设备、板式设备、媒体播放器、消费电子设备(例如,启用网络的相机、 摄像机))中的任何一个,并且可允许与诸如Wi-Fi、蜂窝或卫星网络之类的一个或多个网 络进行有线或无线通信。虽然被称为"移动"计算设备,但在一些实施例中,移动设备100可 以是通常被认为不移动的计算设备,如台式计算机或服务器。
[0017] 移动设备100可包括用于执行如信号编码、图形处理、数据处理、输入/输出处理、 电源控制和/或其他功能等任务的控制器或处理器110 (例如,信号处理器、图形处理单元 (GPU)、微处理器、ASIC或其他控制和处理逻辑电路或者软件)。操作系统112可控制对组 件105的分配和使用,并支持一个或多个应用程序113。应用程序113可包括常见移动计算 应用(例如,电子邮件应用、日历、联系人管理器、web浏览器、消息收发应用)以及其他计 算应用。
[0018] 移动计算设备100可包括存储器120。存储器120可包括不可移动存储器122和 /或可移动存储器124。不可移动或嵌入式存储器122可包括RAM、ROM、闪存、硬盘驱动器 或其他众所周知的存储器存储技术。可移动存储器124可包括闪存卡(例如SD(安全数 字)卡)、记忆棒、GSM(全球移动通信系统)系统中众所周知的订户身份模块(SIM)卡,或 者其他众所周知的存储器存储技术,诸如"智能卡"。存储器120可用于存储数据和/或用 于在设备100上运行操作系统112、应用程序113、插件主机114以及插件115的计算机可 执行指令。插件主机114可以是操作系统112的一部分。示例数据可包括可由移动计算 设备100经由一个或多个有线或无线网络发送给一个或多个网络服务器或其他设备或者 从其接收的网页、文本、图像、声音文件、视频数据、无线网络数据库或其他数据集。存储器 120可用于存储诸如国际移动订户身份(IMSI)等订户标识符,以及诸如国际移动设备标识 符(IMEI)等设备标识符。可将此类标识符传送给网络服务器以标识用户和设备。移动计 算设备100还可访问诸如外部硬件驱动器的外部存储器(未示出)。
[0019] 移动设备100可支持诸如触摸屏132、话筒134、相机136、物理键盘138、和/或轨 迹球139等一个或多个输入设备130,以及诸如扬声器142和显不器144等一个或多个输 出设备140。其他可能的输出设备(未示出)可包括压电或其他触觉输出设备。输入设备 130或输出设备140中的任一个可内置于、外置于或可移除地附连于计算设备100。外部输 入设备130和输出设备140可以通过有线或无线连接与计算设备100通信。一些设备可提 供一个以上的输入/输出功能。例如,触摸屏132和显不器144可被组合在单个输入/输 出设备中。
[0020] 无线蜂窝调制解调器160可被耦合至蜂窝调制解调器天线162,并且可支持移动 计算设备100与移动蜂窝通信网络之间的双向通信。移动设备100可包括其他基于无线电 的调制解调器,诸如Wi-Fi调制解调器163或蓝牙调制解调器164,它们中的每一个都可被 耦合至其自己的天线(例如,Wi-Fi天线168、蓝牙天线169)。蜂窝调制解调器160通常被 配置成与一个或多个蜂窝网络(诸如用于单个蜂窝网络内的数据和语音通信的GSM网络) 通信、在蜂窝网络之间通信、或在移动计算设备与公共交换电话网络(PSTN)之间通信。
[0021] 移动计算设备100还可包括:包含物理连接器172的至少一个输入/输出端口 170(其可以是例如USB端口、IEEE1394(火线)端口、和/或RS-232端口)、电源174、以 及诸如GPS接收机175之类的卫星导航系统接收机。GPS接收机175可被耦合至GPS天线 179。尽管各个天线被示为移动计算设备100的分开的硬件组件,但是它们可被结合到其他 组件中。例如,GPS天线179可被结合到GPS接收机175中。另外,在图1中示为分开的天 线可被实现为单个天线。
[0022] 所例示的组件105不是必需的或包括一切的,因为可删除任何组件并且可添加其 他组件。
[0023] 图2示出了其中可实现所描述的实施例、技术和工艺的适合的实现环境200的通 用示例。
[0024] 在示例环境200中,由云210提供各种类型的服务(例如,计算服务)。例如,云 210可包括可位于中央或是分布式的计算设备集,其向经由诸如因特网等网络连接的各种 类型的用户和设备提供基于云的服务。实现环境200可按不同方式用于实现计算任务。例 如,一些任务(例如,处理用户输入和呈现用户界面)可在本地计算设备(例如,连接的设 备230、240、250)上执行,而其他任务(例如,存储将在后续处理、移动设备或用户认证中被 使用的数据)可在云210中执行。
[0025] 在示例环境200中,云210向具有各种屏幕能力的相连接的设备230、240、250提 供服务。经连接的设备230表示具有计算机屏幕(例如,中型屏幕235)的设备。例如,经 连接的设备230可以是台式计算机、膝上型计算机、笔记本、上网本或平板计算机等。经连 接的设备240表示具有移动计算设备屏幕245 (例如,小型屏幕)的移动计算设备。例如, 经连接的设备240可以是移动电话、智能电话、个人数字助理等。经连接的设备250表示具 有大屏幕255的设备。例如,经连接的设备250可以是具有因特网连通性的电视机,或连接 至诸如机顶盒、游戏控制台等能够连接到云的另一设备的电视机。不具备屏幕能力的设备 也可被用在示例环境200中。例如,云210可向没有显示器的一个或多个计算机(例如,月艮 务器计算机)提供服务。
[0026] 可由云210通过服务提供商220、或通过其他在线服务的提供商(未描述)来提供 服务。例如,云服务可被定制成对应于特定相连接的设备(例如,相连接的设备230、240、 250)的屏幕大小、显示能力、和/或触摸屏能力。可由服务提供商220提供的服务包括例如 电子邮件、短消息服务(SMS)、多媒体消息服务(MMS)、社交联网和网站主存。服务提供商可 主存提供诸如认证插件和插件升级等各种各样的商品和服务的在线市场,以及用户可通过 购买或不通过购买来获取的、用于从云下载或通过邮件传送的媒体内容。
[0027] 在示例环境200中,云210至少部分地使用服务提供商220来向各个相连接的设 备230、240、250提供此处描述的技术和解决方案。例如,服务提供商220可提供用于各种 基于云的服务的集中式解决方案。服务提供商220可管理用户和/或设备(例如,连接的 设备230、240、250及其相应的用户)的服务订阅。
[0028] 图3是经由蜂窝网络320和无线网络330连接到云310的移动计算设备300的 框图。使用本文描述的卸除负荷方法,云310与移动设备300之间通过蜂窝网络320行进 的数据话务333可被卸除作为通过无线网络330行进的数据话务336。无线网络330可以 是任何无线WLAN(无线局域网),如由一个或多个Wi-Fi网络接入点(Wi-Fi热点)访问的 Wi-Fi网络。虽然本文描述的技术一般是参考将数据话务卸除到无线网络来讨论的,但在到 移动设备的有线连接(例如,以太网、USB、同轴电缆)可用的情况下,蜂窝话务可被卸除到 有线网络。
[0029] 如本文所使用的,术语"数据话务"包括可在移动设备300与云310之间交换的任 何类型的信息,包括音频和视频数据。
[0030] 如本文所使用的,术语"卸除负荷"意指将在云310与移动设备300之间流动的数 据话务的至少一部分从蜂窝网络320重定向到无线网络330。在一些实施例中,数据话务可 被卸除到无线网络,使得没有或只有少量数据话务通过蜂窝网络320行进。在其他实施例 中,卸除负荷涉及蜂窝网络数据话务被简单地减少,这可通过限制蜂窝网络数据率或通过 蜂窝网络320传送的数据的量、限制通过蜂窝网络320发送的数据的类型、卸除某些类型的 数据话务或以其他方式来执行。例如,卸除负荷可包括将视频数据卸除到无线网络330。在 又一些其他实施例中,在移动设备连接到无线网络330后数据话务继续通过蜂窝网络320, 并且卸除负荷在数据话务超过特定阈值时发生。可以使用其他卸除负荷方案。
[0031] 移动设备300包括操作系统340和插件350。本文描述的可扩展框架(框架)包 括操作系统340和插件350的各部分。操作系统340包括可由插件350调用的应用程序接 口(API)以及调用插件350的回调。操作系统340中的API和回调可由插件350用来例如 指定用于卸除负荷的无线网络、报告认证结果以及向操作系统340提供要呈现给移动设备 用户的消息。一般而言,单独的插件支持卸除与所拥有的无线网络相关联的任务、由单个M0 或M0的伙伴(如虚拟移动网络运营商)运营或借用的任务。插件还可支持卸除与不关联 于M0的无线网络相关联的任务,如与Wi-Fi热点聚集器直接相关联的网络(但在一些情况 下,热点聚集器可以是M0的业务伙伴)。在各实施例中,活动插件是与移动设备或移动设备 用户可连接到其无线网络的移动运营商相关联的插件。确定活动插件可以在移动计算设备 打开(例如,作为引导过程的一部分)时、在移动计算设备扫描并检测无线网络时或另一时 间来确定。
[0032] 因为移动设备可以使用与一个以上移动运营商相关联的无线网络,所以移动设备 300可以包含根据订户(移动设备和/或用户)身份或移动设备在其上接收/发送数据话 务或希望连接的蜂窝网络320的属性来激活的多个插件350。因而,可以存在一个以上活动 插件。选择激活哪一插件可以基于储存在SM卡上的属性,如IMSI、移动国家代码(MCC)、 移动网络代码(MNC)或移动订阅标识符号(MSIN);储存在移动设备的存储器中的属性,如 国际移动设备标识符(IMEI)、电子序列号(ESN)或移动设备标识符(MEID);以及储存在可 移动用户身份模块(R-UIM)或通用集成电路卡(UICC)(两种其他类型的移动计算设备智能 卡)上的属性。插件350可以向操作系统340提供它是否要基于订户和/或网络标识符信 息来激活的指示。在一些实施例中,选择活动认证插件包括查询安装在移动设备上的认证 插件并选择对该查询作出肯定响应的第一认证插件(或者如果允许多个活动认证插件则 对该查询作出肯定响应的前N个认证插件)的作为活动认证插件(或诸插件)。
[0033] 因而,多个插件可被安装在移动设备上以支持不同移动网络上的Wi-Fi热点连接 性。或者,单个插件可以支持连接到多个移动运营商的无线网络。在例如SIM卡被交换或 移动设备以其他方式从一个蜂窝网络切换到另一个蜂窝网络时,移动设备300可以从一个 插件切换到另一个插件。移动设备300还可响应于用户输入来切换插件,如在用户提供指 示移动设备300要从由第一移动运营商运营的无线网络切换到由第二移动运营商运营的 无线网络的输入时。
[0034] 操作系统340执行各种卸除负荷和网络任务。在各实施例中,这些任务由插件主 机执行。例如,操作系统340可以调用插件350来询问移动设备300当前不可检测但被假 定由于移动设备的物理位置(这可通过经由卫星导航系统接收机(例如,GPS接收机175) 接收到的信息、经由蜂窝塔之间的三角测量或基于移动设备的附近的Wi-Fi路由器的已知 位置来确定)而将要可用的网络。
[0035] 例如,移动计算设备可靠近四个Wi-Fi热点,这些热点中的三个能够连接到但不 是与移动运营商相关联的网络的接入点,该移动运营商与安装在移动设备上的软件插件相 关联。这四个无线热点恰好在移动计算设备的无线通信范围之外并且由与该活动插件相关 联的M0来运营。在这样的情况下,该框架可以向用户通知与该M0相关联的附近Wi-Fi网 络的存在。这样的通知可以经由音频、文本或视频来作出。在一个实施例中,经由地图的显 示来向用户通知附近MO Wi-Fi热点,该地图示出了用户的当前位置和附近MO Wi-Fi热点的 位置连同用户应当移动得更靠近该MO Wi-Fi热点以及与如何到达该热点有关的方向的推 荐。该MO Wi-Fi热点可被突出显示或以其他方式标记,以将它与地图上示出的其他Wi-Fi 热点区分开。
[0036] 操作系统340还可对用户请求连接到设备的无线通信范围内的已被标识为Wi-Fi 热点的特定无线网络(如路由器)作出响应并指令插件350执行针对该网络的确认和认 证。因而,该框架可以支持自动网络连接(例如,连接到插件所支持的无线网络数据库中包 含的无线网络)和手动网络连接(例如,连接到用户指定的网络)两者。此外,操作系统340 可以基于用户偏好、电池寿命、系统状态或其他因素来确定是否扫描无线网络。例如,用户 可以指示不要连接到特定网络或该设备要多频繁地扫描无线网络。在一些实施例中,移动 设备300可被配置成在该移动设备的估计电池寿命保持在阈值(它可以是默认值或用户指 定的)之上的情况下扫描网络。如本文所使用的,短语"无线通信范围"意指距移动计算设 备的距离,在该距离上移动计算设备可以与另一计算设备(如网络计算设备(如路由器)) 或另一无线计算设备(例如,智能电话)无线地通信。
[0037] 操作系统340还提供用于向用户通知与可要求用户的注意的状况(如用户的针对 网络的数据计划不合格或不足够支持数据话务卸除负荷)或者用户要联系无线网络的运 营商的客户支持有关的接口。操作系统340可以决定要在何时、多频繁以及通过什么介质 将这样的通知呈现给用户。通知属性也可由用户指定。通常,插件不能直接使得通知被呈 现给用户。通过经由操作系统向用户传递来自插件的通知,消息可经由操作系统被递送给 用户,从而允许插件生成的消息按与操作系统所提供的其他消息相一致的方式来被递送, 以维护一致的用户体验。
[0038] 操作系统340还能够从插件350接收与插件350所支持的无线网络有关的信息。 在检测到无线通信范围中的一个或多个无线网络的存在之后,操作系统340可以确定哪些 插件是活动插件并且要被用于卸除任务,如提供检测到的网络中的优选网络的列表并在作 出到无线网络的连接之后认证移动计算设备或用户。因而,插件350允许移动运营商预先 配置优选无线网络的列表。
[0039] 插件350是执行各种网络卸除负荷功能的软件模块,通常与移动设备的操作系统 分开。插件350可由例如移动运营商或独立软件供应商(ISV)提供,并且可初始安装在移 动计算设备上或由移动计算设备用户下载以供安装。插件可以向操作系统340通知一个或 多个无线网络的特性,如将移动计算设备连接到该网络所需的信息、移动设备是否要自动 连接到特定网络、哪些无线网络是优选的以及这些网络的连接优先级信息。例如,考虑包 括两个插件的移动计算设备,第一插件支持T-Mobile? Wi-Fi热点而第二插件与AT&T? Wi-Fi热点一起工作。该移动设备可以取决于它在该设备上检测到AT&T? SM卡还是 T-Mobile? SM卡或者用户尝试连接到AT&T?热点还是T-Mobile?:热点来激活适当的 插件。插件350还可向操作系统340通知到网络的连接是否需要SM卡的存在。连接优先 级信息可以是可由插件用来向插件主机提供移动设备检测到的无线网络的列表的连接次 序的任何信息。例如,无线网络可具有基于诸如网络的带宽容量等因素的优先级(例如, "1"、"2"、"3" ……或"A"、"B"、"C" ……)。
[0040] 插件350可被配置成接收在移动设备300的无线通信范围内检测到的无线网络的 列表并向操作系统340返回优选网络的列表、设备300要尝试连接到优选网络的次序,以及 优选网络的连接和认证信息。在一些实施例中,操作系统340可以基于用户设置(例如,用 户优选的Wi-Fi网络或网络连接次序)以及其他因素从优选网络中选择连接到哪一网络。 通过在卸除负荷框架内指定用户设置,用户可以通过设置一组用户偏好来管理卸除负荷偏 好,而不必在多个软件应用(例如,多个插件)内指定设置或偏好。
[0041] 插件350也可被配置成支持隐藏网络。隐藏网络包括没有主动广播它们的存在的 网络。隐藏网络可以是排他地或主要地专用于卸除负荷的网络。为了支持隐藏网络,插件 350可以提供移动设备要主动搜索的隐藏网络的网络标识符(例如,SSID)。移动设备可以 基于用户设置(例如,该系统可被配置成允许用户禁用搜索或连接到隐藏网络)、功耗率、 电池水平等来确定是否搜索这些隐藏网络。例如,移动计算设备能够对该移动计算设备的 功耗率落在功耗率阈值之下、该移动计算设备的电池水平落在电池水平阈值之下,或在该 移动设备的无线通信范围内不能检测到任何其他无线网络作出响应来发起扫描隐藏无线 网络。
[0042] 响应于来自操作系统340的移动设备已成功连接到网络的通知,插件350可以确 认该网络的身份、认证用户或执行使得该Wi-Fi连接可操作来用于卸除蜂窝话务所需的任 何其他动作。如果这些操作中的任何操作失败,则插件350可以通知操作系统340从该网 络断开连接。通常,为了改进系统稳定性,插件不能够使得移动计算设备扫描Wi-Fi网络或 连接到/断开连接无线网络。插件还通常不被允许在移动计算设备上运行后台任务。
[0043] 在一些实施例中,插件350可被配置成使得需要用户响应的各种通知被呈现给用 户。例如,在网络可被用于卸除负荷之前,插件可以使得查询被呈现在移动设备显示器上, 询问用户是否接受例如网络的使用条款或特定网络属性的设置(如隐私设置)。这些通知 还可包括可由用户简单地解散的信息通知。例如,在移动设备连接到支持播广告的特定网 络时,插件可使得一个或多个广告出现在移动设备上。广告可通过例如点击广告窗口中的 "0K"按钮或关闭广告窗口来被解散。在一些实施例中,在所连接的网络可被用于联网之前, 插件可以通过向插件主机发送用户查询请求来使得需要用户响应的通知被呈现。用户查 询请求可包括用户要批准或同意的信息(例如,使用条款的文本)或对这样的信息的引用 (例如,到可找到这些使用条款的位置的链接)。作为回复,插件主机可以向该插件发送指 示用户是否批准或同意在该用户查询请求中包含或引用的信息的信息。
[0044] 插件350可以作为移动设备300上具有设置成在插件崩溃的情况下阻止操作系统 故障的特权的专用进程而运行。如果插件崩溃,则插件进程可被重启而不影响系统稳定性。
[0045] 插件350还可被配置成指定操作系统340要周期性地(或在另一时间基础上) 发出对插件的回调,该回调使得该插件检索任何可用插件更新。移动设备300可以初始预 安装一个或多个插件350,并且附加插件可在需要时或者在它们变得可用时被添加到该设 备。在一个实施例中,该框架可包含以下插件接口中的一个或多个:初始化接口、检查网络 接口、掩码接口、预连接接口、认证接口、保持活动接口、连接失败接口、复位接口以及控制 接口。
[0046] 初始化接口可以返回注册状态(即,移动设备向蜂窝网络的注册的状态)、插件要 被更新(例如,移动运营商的Wi-Fi热点信息的更新,如新热点的位置、不再存在的热点的 移除或者另一 M0现在拥有或运营的热点的移除,等等)的频率(例如,插件更新频率)、连 接信息(例如,网络协议)、认证信息(例如,被用于网络的认证方案)、保持活动消息要被 发送以维持移动设备与无线网络之间的连接的频率(例如,保持活动消息频率)。因为插件 可包含包括与数十、数百或甚至数千无线网络有关的信息的网络数据库,所以该网络数据 库有时可能需要更新。响应于接收到插件更新频率或保持活动消息频率,插件主机可以分 别按基本上至少该周期性更新频率或保持活动消息更新来发送插件更新命令或保持活动 消息命令。例如,如果插件向插件主机提供的周期性更新频率是三天,则插件主机可以至少 大约每三天向该插件发送周期性更新命令。
[0047] 检查网络接口(例如,Check_SSID接口)可以确定与提供给该接口的一个或多个 网络标识符(例如,SSID)相关联的网络是否为该插件所知并且可被用于卸除负荷。检查 网络接口可以指示所提供的网络标识符与可被用于卸除负荷的无线网络相关联,例如通过 如果所提供的网络标识符与可被用于卸除负荷的无线网络相关联则返回"1"并且否则返回 "0"。如果提供一个以上网络标识符,则检查网络接口可返回一个或多个优选无线网络、该 优选无线网络的连接信息以及该一个或多个优选无线网络的连接次序。
[0048] 掩码接口(例如,Get_Network_Mask(获得网络掩码))返回提供给该插件的网络 标识符(例如SSID)的"掩码"。掩码是无线网络的更"用户友好"的描述符。例如,掩码接 口可以针对所提供的SSID "ATTWIFI"返回掩码"AT&T Wi-Fi热点",并且掩码"AT&T Metro Wi-Fi"可针对所提供的SSID "ATTMETROWIFI"而被返回。
[0049] 在网络连接尝试启用该插件以执行任何预连接初始化或预备任务之前,预连接接 口可被调用。
[0050] 在移动设备连接到无线网络以指导插件执行认证任务(如对照移动运营商 认证数据库来认证该移动设备或移动设备用户)之后,认证接口(例如,Attempt_ Authentication(尝试认证)接口)可被调用。认证接口可以返回认证是否成功的指示。 保持活动接口(例如,Send_Keep_Alive_Message(发送保持活动消息)接口)可被调用 来指令插件发送保持活动消息以维持无线网络连接。连接失败接口(例如,Connection_ Failure(连接失败)接口)可被调用以使得插件收集并报告所指示的网络的网络遥测数 据。周期性更新接口(例如,Peri 〇diC_Update(周期性更新)接口)使得插件执行数据库 更新并将遥测数据发送给远程服务器。复位接口可以请求插件复位成初始状态。控制接口 可以允许移动设备向插件发送任何插件专用命令。
[0051] 在各实施例中,该框架可以包含比以上列出的接口更多或更少的插件接口,接口 可以具有与以上使用的名称不同的名称,或者以上接口的变型。例如,初始化接口可以返回 上述初始化接口所返回的信息的子集,并且检查网络接口可以返回与插件相关联的无线网 络数据库中包含的所有无线网络的列表。
[0052] 图4是可扩展框架400的示例性实现的框图。框架400示出了在WLAN协议栈 (WLAN栈)410、插件主机(认证软件模块主机)420、插件(认证软件模块)430以及用户接 口控制器497之间传递的消息和信息。如果移动计算设备包括多个插件,则插件430可以 是活动认证插件(或在允许多个插件活动的情况下是活动插件之一)。通常,WLAN栈410、 插件主机420以及用户接口控制器497是移动设备操作系统的一部分。因而,插件主机420 通常包括移动计算设备操作系统的与插件430进行通信的各组件。在框架400中的一示例 性信息流中,首先,移动设备经由WLAN栈410扫描WLAN网络。可用或检测到的WLAN网络 440的列表被发送给插件主机420。插件主机420可以确定是否要从列表440中移除任何 网络,例如通过检查用户设置。例如,用户可能已经指定即使特定网络可用也不要连接到它 们。网络列表450(它可以是网络列表440的经裁剪版本)被递送给插件430。网络列表 可包括与检测到的网络工作相对应的任何信息。插件430返回可被用于卸除负荷的一个或 多个优选无线网络的网络信息460 (例如SSID)。优选网络是从插件主机420所提供的检测 到的网络中选择的。如果插件430已经提供了一个以上优选无线网络,则插件主机420选 择一个来连接。插件主机420随后发送指令WLAN栈410连接到所选无线网络的连接命令 470。例如,插件主机420可以基于插件430所提供的连接次序和/或用户指定的连接次序 选择要连接的无线网络。
[0053] 在其中存在一个以上活动认证插件的实施例中,网络列表450可由插件主机420 提供给活动插件。相同网络列表450可被发送给多个活动插件,或可发送只包括与关联于 同特定插件相关联的移动运营商的无线网络相对应的信息的网络列表450。插件主机420 随后可从活动插件430接收优选网络的网络信息460。插件主机420随后可从多个活动插 件所提供的优选网络中选择要连接的网络。
[0054] 如果移动设备能够支持多个同时网络连接,则可扩展框架可以将移动设备连接到 一个以上网络以用于卸除负荷。可扩展框架可如下进行多个网络连接以供卸除负荷。移动 设备可检测该移动设备可连接的与各移动运营商相关联的网络。检测到的网络的列表通过 WLAN组件或子系统传递给插件主机。插件主机将网络列表发送给与该移动设备可连接到其 网络的移动运营商相关联的活动插件。作为回复,活动插件中的每一个可以向插件主机发 送与一个或多个优选网络有关的信息。插件主机随后从活动插件所提供的每一优选网络列 表中选择网络并指令WLAN组件连接到所选网络。在作出了到所选网络的连接之后,对于每 一连接,通知适当的活动插件。活动插件随后尝试向所选网络认证移动设备或移动设备用 户,并且向插件主机报告认证结果。如果所连接的网络的认证是成功的,则移动设备可以使 用所连接的网络中的任何一个以供卸除负荷。
[0055] 在作出了到所选网络的连接之后,插件主机420向插件430发送该连接的连接通 知480并且请求对移动设备或移动设备的用户认证。插件430随后基于与所选网络相关联 的移动运营商来尝试执行网络上的认证并向插件主机420返回认证结果490 (这可以是异 步响应),从而报告该认证尝试的状态。认证可以使用例如802. 11开放认证、基于HTTPS的 认证、EAP-SM (可扩展认证协议-SM)或EAP-AKA (可扩展认证协议-认证和密钥管理)认 证或其他认证方案来执行。如果认证成功,则插件主机420可以将数据话务加载到所连接 的无线网络。
[0056] WLAN栈410还可向移动设备的用户接口控制器497发送(495)连接通知以向用户 通知该设备已连接到所选网络。用户接口控制器497可以向插件430查询(499)(例如,使 用Get_Network_Mask(获取网络掩码)接口)可以与网络的SSID不同的无线网络显示名 的用户友好版本,并接收作为响应的无线网络显示名的用户友好版本。
[0057] 如果认证尝试不成功,则插件主机420可将移动设备从该无线网络断开连接。如 果插件430指定了一个以上优选网络和连接次序,则插件主机420可根据连接次序尝试连 接到下一无线网络。如果认证因为用户的数据计划合格性而失败或出于可由用户校正的另 一原因而失败,则插件430可以向插件主机420传递建议用户如何修复这一问题的通知,如 联系客户支持或升级用户的数据计划。
[0058] 在一些实施例中,移动计算设备可被配置成允许用户控制卸除负荷框架的各方 面。例如,移动设备可被配置成允许用户启用或禁用到各单独的Wi-Fi热点的连接性、手动 地连接到热点网络,或使用户能够配置用户简档以供在移动运营商热点连接性已被用户禁 用的情况下连接到热点网络。例如,用户可以配置用户简档,使得即使与特定Wi-Fi热点相 关联的移动运营商的热点连接性已被用户禁用也要连接到该特定Wi-Fi热点网络。此外, 用户可配置该框架以允许自动数据话务卸除到除了插件包含其连接信息之外的网络。此 夕卜,移动计算设备可被配置成允许用户启用或禁用自动Wi-Fi网络卸除负荷。
[0059] 图5是将移动计算设备数据话务从蜂窝网络卸除到无线网络的第一示例性方法 500的流程图。方法500可由例如配置成与AT&T?蜂窝和无线网络一起操作并包含用于 启用自动连接且将数据话务卸除到AT&T?无线网络的认证插件主机和AT&T?认证插 件的智能电话来执行。在510,通过蜂窝网络传送和/或接收移动计算设备数据话务。在该 示例中,智能电话通过AT&T?蜂窝网络传送和/或接收数据话务。在520,在移动计算设 备的范围内检测一个或多个检测到的无线网络。在该示例中,用户到达咖啡店并且智能电 话检测到两个Wi-Fi热点,一个热点的基地在咖啡店内而另一个热点的基地在隔壁的办公 室内。咖啡店Wi-Fi热点是AT&T? Wi-Fi热点。在530,从该一个或多个检测到的无线 网络中选择所选无线网络。所选无线网络与移动运营商相关联。在该示例中,智能电话选 择与AT&T? Wi-Fi热点相关联的无线网络。在540,无线通信设备自动连接到所选无线 网络。在该示例中,智能电话自动连接到AT&T? Wi-Fi热点。在550,向移动运营商自动 发起移动计算设备或移动计算设备的用户的认证。在该示例中,智能电话向AT&T?自动 发起该智能电话的认证。发起认证包括通过AT&T? Wi-Fi无线网络向远程AT&T?服 务器发送信息。在560,确定移动计算设备或移动计算设备的用户的认证已经成功。在该 示例中,智能电话从远程AT&T?服务器接收指示该智能电话已被认证用于在所连接的网 络上使用的信息或智能电话可以用来确定认证已经成功的信息。在570,数据话务被卸除 到所选无线网络。在该示例中,智能电话将数据话务的至少一部分卸除到AT&T?尤线网 络。因而,智能电话自动检测并连接到AT&T?:无线网络并且将数据话务从AT&T?蜂窝 网络自动卸除到AT&T?无线网络而无须用户干预。在一些实施例中,方法500可包括比 图5中所示出的动作更少的动作。
[0060] 本文描述的可扩展框架提供了至少以下示例性优点。通过控制对内核系统API的 访问,移动设备操作系统稳定性可被改进并且电池寿命被延长。例如,通过阻止在移动设备 上执行的软件应用(如插件或与插件交互的其他软件应用)具有对扫描无线网络的存在的 系统功能的自由访问,各应用被阻止持续或频繁地扫描无线网络(这可减少电池寿命)。 [0061] 此外,随着当前移动运营商生态系统变得进一步碎片化并且不同的移动运营商继 续使用不同的解决方案和协议来将蜂窝数据卸除到Wi-Fi热点,平台开发者开发并维护满 足所有移动运营商的要求且保持最新的卸除负荷解决方案正变得更加繁重。通过允许在 移动设备上安装多个插件、安装新插件、以及更新已安装插件,该框架是动态且可扩展的框 架,该框架可适应网络通信协议中的变化、新协议的发展、新热点的存在以及移动运营商业 务领域的变化(例如,新移动运营商的出现、移动运营商的合并、移动运营商停业)。
[0062] 此外,本文描述的卸除负荷框架允许移动计算设备通过不允许访问网络扫描、连 接和断开连接特征来维护系统性能和稳定性,同时向应用开发者(M0和ISV)提供他们可以 在其中根据移动运营商的规范来实现Wi-Fi卸除负荷解决方案的框架。
[0063] 此外,系统平台开发者必须在通过允许访问内核系统API来向ISV提供灵活性与 可负面影响系统性能、稳定性以及最终用户体验的锁定API之间进行平衡。本文描述的可 扩展框架允许移动设备维持系统性能和稳定性,同时向应用开发者提供根据移动运营商的 规范来实现Wi-Fi卸除负荷解决方案的手段。
[0064] 图6是采用本文描述的可扩展框架的移动计算设备600的框图。移动计算设备 600包括一个或多个处理器610、操作系统620、插件接口 630以及认证插件640。操作系统 620包括使用插件接口 630来与认证插件640通信的认证插件主机650。插件接口 630可 包括本文描述的插件接口中的任何一个或多个(例如,初始化、认证、检查网络)以及其他 接口。
[0065] 图7是卸除通过蜂窝网络发送到移动计算设备的数据话务的第二示例性方法700 的流程图。方法700可由例如具有包括认证插件主机并存储多个插件的操作系统的平板计 算设备来执行,其中与移动运营商A相关联的插件是活动认证插件。
[0066] 在710,将与一个或多个检测到的无线网络相对应的信息从认证插件主机发送到 活动认证插件。该一个或多个检测到的无线网络和活动认证插件与移动运营商相关联。在 该示例中,平板的认证插件主机将检测到的与移动运营商A相关联的无线网络X、Y以及Z 的SSID发送给活动认证插件。
[0067] 在720,在认证插件主机处从活动认证插件接收与从一个或多个检测到的无线网 络选出的一个或多个优选无线网络相对应的信息。在该示例中,平板的认证插件主机从活 动插件接收优选无线网络X和z的SSID。指示无线网络X要在无线网络Z之前被连接的连 接次序也被发送给认证插件主机。
[0068] 在730,移动计算设备连接到一个或多个优选无线网络之一。移动计算设备连接到 的优选无线网络是所连接的无线网络。在该示例中,平板连接到无线网络X。在740,在所 连接的无线网络上向活动认证插件发送认证移动计算设备或移动计算设备的用户的请求。 在该示例中,平板的认证插件主机在无线网络X上向活动插件发送认证平板的请求。
[0069] 在750,从活动认证插件接收指示认证成功的信息。在该示例中,认证插件主机从 移动运营商A插件接收平板已被移动运营商A认证的确认。
[0070] 在760,数据话务的至少一部分被卸除到所连接的无线网络。在该示例中,平板将 它通过蜂窝网络接收和发送的数据话务的至少一部分卸除到无线网络X。
[0071] 图8是卸除通过蜂窝网络发送到移动计算设备的数据话务的第三示例性方法的 流程图。在810,提供包括认证插件主机、包含活动认证插件在内的多个认证插件、认证接口 以及检查网络接口的可扩展框架。
[0072] 在820,响应于从认证插件主机接收到对认证接口的至少一个调用,活动认证插件 尝试在移动设备要连接的网络上认证移动计算设备或移动计算设备的用户并返回所尝试 的认证是否成功的指示。在830,响应于接收到对检查网络接口的至少一个调用,其中该调 用包括与一个或多个检测到的无线网络相对应的信息,活动认证插件返回与一个或多个优 选无线网络相对应的信息和该一个或多个优选无线网络的连接次序。
[0073] 所揭示的方法中的任意能被实现为计算机可执行指令或计算机程序产品。计算机 可执行指令或计算机程序产品以及在所公开的实施例的实现期间所创建和使用的任何数 据可被存储在一个或多个计算机可读存储介质(例如,非瞬态计算机可读存储介质,诸如 一个或多个光学介质盘(诸如DVD或CD)、易失性存储器组件(诸如DRAM或SRAM)或非易 失性存储器组件(诸如闪存或硬盘驱动器))上并在计算机(例如,任何可从市场上获得的 计算机,包括智能电话或包含计算硬件的其他计算设备)上执行。计算机可读存储介质不 包括传播信号。计算机可执行指令可以是例如经由web浏览器或其他软件应用程序(诸如 远程计算应用程序)访问或下载的专用软件应用程序或软件应用程序。此类软件可例如在 单个本地计算机(例如,任何合适的可购买计算机)上或在使用一个或多个网络计算机的 网络环境中(例如,经由因特网、广域网或局域网、客户机-服务器网络(诸如,云计算网 络)或其他此类网络)执行。
[0074] 为清楚起见,只描述了基于软件的各实现的某些所选择的方面。省略了本领域公 知的其他细节。例如,应当理解,所公开的技术不限于任何特定计算机语言或程序。例如, 所公开的技术可由用C++、Java、Perl、JavaScript、Adobe Flash或任何其他合适的编程语 言编写的软件来实现。同样,所公开的技术不限于任何特定计算机或硬件类型。合适计算 机和硬件的某些细节是众所周知的,因此无需在本公开中进行详细阐述。
[0075] 此外,基于软件的实施方式中的任一个(包括例如用于使计算机执行所公开的方 法中的任一种的计算机可执行指令)可以通过合适的通信手段来上传、下载、或远程访问。 这些合适的通信手段包括,例如,因特网、万维网、内联网、电缆(包括光缆)、磁通信、电磁 通信(包括RF、微波和红外通信)、电子通信或其他这样的通信手段。
[0076] 所公开的方法还可以用被配置成执行所公开的方法中的任一种方法的专用计算 硬件来实现。例如,所公开的方法可用集成电路(如专用集成电路("ASIC")或诸如现场 可编程门阵列("FPGA")之类的可编程逻辑器件("PLD"))来实现。集成电路可嵌入或 直接耦合到移动计算设备以实现可扩展框架。
[0077] 此处公开的各种方法也可在诸如程序模块中所包括的由处理器在计算环境中执 行的指令等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任 务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。程序模块的功能 可以如各实施例中所需的组合或在程序模块之间分离。用于程序模块的计算机可执行指令 可以在本地或分布式计算环境中执行。
[0078] 如在本申请和权利要求书中使用的,单数形式"一"、"一个"和"该"包括复数形式, 除非上下文另外清楚地指明。类似地,词语"或"意在包括"和",除非上下文另外清楚地指 明。术语"包括"意味着"包含",因此,"包括A或B"意味着包含A或B以及一起包含A和 B。另外,术语"包含"意味着"包括"。此外,如本文所使用的,术语"和/或"意指短语中的 任何一个项或任何项组合。
[0079] 所公开的方法、装置和系统决不应被解释成限制性的。相反,本发明针对各公开的 实施方式(单独地或彼此的各种组合和子组合)的所有新颖和非显而易见特征和方面。所 公开的方法、装置和系统不限于任何具体方面或特征或其组合,所公开的各实施方式也不 要求存在任何一个或多个具体优点或解决各个问题。
[0080] 本文中参照本公开的装置或方法给出的操作理论、科学原理、和其他理论性描述 已出于更好理解的目的而被提供,其并非旨在对范围进行限制。所附权利要求中的装置和 方法并不限于以此类操作理论所描述的方式起作用的那些装置和方法。
[0081] 虽然为方便呈现起见所公开的方法的一些操作是以特定的顺序次序来描述的,但 应当理解,这一描述方法涵盖重新安排,除非本文阐明的具体语言需要特定排序。例如,在 某些情况下,可以重新安排或并发执行顺序地描述的操作。此外,为简明起见,附图可能未 示出其中所公开的方法可结合其他方法使用的各种方式。
[〇〇82] 在示出和描述了所示实施例的原理之后,可采用多种安排来修改这些实施例并仍 然保持忠实于以上所描述的概念。鉴于可应用所示实施例的原理的许多可能的实施例,应 当认识到,所示实施例仅是优选示例,并且不应认为是限制本发明的范围。要求保护落入所 附权利要求的范围内的所有内容。
【权利要求】
1. 一种卸除通过蜂窝网络发送到移动计算设备的数据话务的方法,所述方法包括: 从认证插件主机向活动认证插件发送与一个或多个检测到的无线网络相对应的信息, 所述一个或多个检测到的无线网络和所述活动认证插件与移动运营商相关联; 在所述认证插件主机处从所述活动认证插件接收与从所述一个或多个检测到的无线 网络选出的一个或多个优选无线网络相对应的信息; 将所述移动计算设备连接到所述一个或多个优选无线网络之一,所述移动计算设备连 接到的优选无线网络是所连接的无线网络; 在所连接的无线网络上向所述活动认证插件发送认证所述移动计算设备或所述移动 计算设备的用户的请求; 从所述活动认证插件接收指示所述认证成功的信息;以及 将所述数据话务的至少一部分卸除到所连接的无线网络。
2. 如权利要求1所述的方法,其特征在于,与所述一个或多个优选无线网络相对应的 信息包括连接次序。
3. 如权利要求2所述的方法,其特征在于,所述方法还包括至少部分地基于所述连接 次序从所述一个或多个优选无线网络中选择所连接的无线网络。
4. 如权利要求1所述的方法,其特征在于,还包括从与多个移动运营商相关联的多个 认证插件中选择所述活动认证插件。
5. 如权利要求4所述的方法,其特征在于,所述选择包括: 查询所述多个认证插件;以及 选择作出肯定响应的第一认证插件作为所述活动认证插件。
6. 如权利要求4所述的方法,其特征在于,还包括从所述多个认证插件中选择不同的 认证插件作为活动认证插件。
7. 如权利要求1所述的方法,其特征在于,还包括: 从所述活动认证插件向所述认证插件主机发送插件更新频率;以及 基本上至少以所述插件更新频率从所述认证插件主机向所述活动认证插件发送插件 更新命令。
8. 如权利要求1所述的方法,其特征在于,还包括: 在所述认证插件主机处从所述活动认证插件接收一个或多个隐藏网络的信息;以及 扫描所述一个或多个隐藏网络中的至少一个隐藏无线网络。
9. 如权利要求8所述的方法,其特征在于,所述一个或多个检测到的无线网络包括所 述至少一个隐藏无线网络。
10. -种移动计算设备,包括: 存储可由所述移动计算设备执行的指令的一个或多个计算机可读存储介质,所述指令 包括: 能够向活动认证插件发送与一个或多个检测到的网络相对应的信息并请求在所连接 的网络上认证所述移动计算设备或所述移动计算设备的用户的认证插件主机;以及 至少一个认证插件,每一认证插件能够: 响应于从所述认证插件主机接收到与一个或多个检测到的网络相对应的信息,向所述 认证插件主机提供与一个或多个优选无线网络相对应的信息以及所述一个或多个优选无 线网络的连接次序;以及 在所连接的无线网络上认证所述移动计算设备或所述移动计算设备的用户并向所述 认证插件主机发送指示所述认证是否成功的信息。
【文档编号】H04L12/70GK104067571SQ201380005712
【公开日】2014年9月24日 申请日期:2013年1月10日 优先权日:2012年1月16日
【发明者】V·霍洛斯托弗, M·S·阿拉姆, S·古戴, R·萨拉帕卡 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1