移动设备管理代理系统的制作方法

文档序号:7681047阅读:170来源:国知局
专利名称:移动设备管理代理系统的制作方法
移动设备管理代理系统
背景
蜂窝技术与基于IP的技术的汇聚充当了将技术融入便携式设备的催化 剂。例如,目前诸如蜂窝电话等移动客户机可以访问诸如因特网等IP网络 上的基于IP的服务。同样地,诸如便携式计算机等计算系统可以包括便于 通过因特网向电话机目的地进行语音呼叫的移动客户机技术。这在很大程 度上归功于网络服务提供者包括了桥接主要网络的装置,使得处于两种制 度中的用户可以访问彼此的服务。
用户拥有多个计算设备且每个计算设备具有与数据及程序交互的一组 不同的要求,这种情况越来越常见。在公司环境中,随着雇员越来越具移 动性,从而例如在旅行期间经常使设备离线,保持最新的设置和信息变得 越来越重要。因此,当雇员需要(也许用新的设备)重新连接到公司环境 时,诸如操作系统、通信性能等特定的设备特性不成为阻止雇员进行所需 访问的限制是合乎要求的。
由于现今有使用了多种不同的计算系统,公司解决此问题还要更进一 步。用户可以将多种不同类型的计算机带入企业,且如果被给予适当的授 权,将可容易地访问后端系统所提供的服务。然而,对移动客户机的支持 也应该能用于提供日常工作用的透明连通性。.例如,智能电话中的启用了 设备和用户在场的通信有助于企业简化工作流并提高生产力。然而,需要 有能够毫无困难地为企业标识这些移动客户机性能无论在客户机在线还是 离线时都透明地检测和维护客户机信息的适当的机制。
因此,业务迁移到系统集成以便在基于开放式标准的基础设施方面为 多种不同类型的设备提供企业支持。然而,常规的解决方案缺乏可扩展的、 同构的、且可伸縮的体系结构来用于支持完全不同的移动客户机技术和企 业后端系统可提供的多种不同服务。以下给出简化概述以便提供对所公开的本发明的一些方面的基本理 解。此概述不是详尽综览,并且既非旨在标识出其关键/决定性要素亦非试 图界定其范围。其唯一的目的是要以简化形式给出一些概念以为稍后给出 的更详细描述的序言。
所公开的体系结构是一种灵活的、可扩展的、且稳健的移动客户机(或 客户机设备)管理系统。该系统充当寻找来自后端系统的服务的移动客户 机的代理。代理系统包括与移动客户机相关联的状态信息的虚拟客户机映 像。当移动客户机与代理交互时,代理服务器确认客户机的虚拟映像,然 后与该虚拟映像交互以优化从后端系统获取对客户机的最新更新的过程。 另外,代理系统基于状态的改变代表移动客户机自动地且异步地访问后端 系统的一个或多个任意服务。当移动客户机连接到代理时,代理将使最新 服务与虚拟映像的状态相关联。
该代理体系结构可以使用抽象组件(例如,服务驱动器)来访问并处 理任意服务,该抽象组件将完全不同的服务抽象成代理能够处理以更新虚 拟映像的客户机状态的格式。因而,该体系结构是可扩展的且可伸縮的。 而且,例如当在公司企业中被釆用时,该体系结构方便了大量移动客户机 连接来访问服务的情况下的负载平衡。可采用多个代理管理系统来动态地 扩大规模以满足对客户机服务的需求,以及当需求减少时縮小规模。换言 之,不要求客户机连接到特定的代理设备服务管理系统。
更具体而言,该代理是包括接收并处理从任意后端系统作为工作单元 提交的任务的任务执行引擎的设备管理系统。移动客户机的状态信息可以 作为虚拟客户机映像来存储,该映像可以例如与多个代理系统相关联地存 储。从而,多个代理管理系统可以依需要访问该映像。该系统促进了例如 基于虚拟设备映像(且当设备离线时)评估后端系统工作和网络接入保护 所需的任何工作的能力。任务引擎与后端系统异步地操作以基于虚拟客户 机映像的状态改变来访问所需服务。
该系统还可以维护可被频繁利用且为非易失性的设备配置服务提供者 值的高速缓存。根据确认,高速缓存的信息还可以与映像的确认分开或相结合地确认。由于任务执行引擎使用"任务"对象来抽象要对于设备执行 的工作单元,因此它能够与任意后端系统相接口。从而,将代理连接至相 应的后端系统的任意数量的驱动器可以将要对于设备执行的工作单元排 队。此外,该引擎可以批量地处理工作单元。
该代理系统可以在相关联的移动设备连接之前利用虚拟设备身份来对 一个或多个任务执行评估测试。此机制便于确定,例如何时客户机设备需 要关键更新并且应被强制联系管理端点。代理任务执行引擎与多个任意后 端系统异步地交互,从而使得驱动器能在任何时候提交工作,而无论客户 机是在线还是离线。另外,任务引擎不需要在其能开始处理前等待所有驱 动器响应。
为了实现前述及相关目的,此处结合下列描述及附图来描述所公开的 本发明的某些说明性方面。然而,这些方面仅指示了可利用此处公开的原 理的各种方法中的少数几种,且旨在包括所有这些方面及其等效方面。结 合附图阅读下面的详细描述,则其他优点和新颖特征将变得清楚。
附图简述


图1示出了根据所公开的本发明的用于提供移动客户机代理服务的计 算机实现的代理设备管理系统。
图2示出了根据本发明的用于代理设备管理的更详细的系统。
图3示出了方便移动客户代理服务的替换代理设备管理系统。
图4示出了采用调度和同步处理的替换代理设备管理系统。
图5示出了根据本发明的与示例性目录服务访问及同步相关联的流程。
图6示出了采用便于自动化一个或多个代理功能的机器学习和推理组
件的代理设备管理系统。
图7示出了经由代理系统管理移动设备的方法。 图8示出了代理处理服务和移动设备的方法。
图9示出了在将更新应用于移动设备之前对设备映像抽象执行评估测 试的方法。图IO示出了根据本发明的调度对后端服务的异步访问的方法。
图11示出了将学习和推理处理应用于代理设备管理处理的方法。
图12示出了可用于提供根据所公开的体系结构的移动设备代理处理
的计算系统的框图。
图13示出了便于为获得后端服务而由代理服务器进行的移动客户机
更新的示例性计算环境的示意性框图。
详细描述
一般而言,所公开的体系结构是一种用于寻找来自企业后端系统的服 务的移动客户机的移动客户机设备代理管理服务器。与移动客户机相关联 的客户机状态信息被存储在例如服务器处,从而当移动客户机与代理交互 时,该设备的客户机状态被更新到最新客户机状态。基于状态的改变,代 理系统代表移动客户机异步地访问后端系统的一个或多个任意服务。当移 动客户机连接到代理时,代理将使最新服务与虚拟映像的状态相关联。同 样地,该代理系统便于与客户机的异步连接,这表现在客户机可以在任何 时候连接并从代理接收最新状态信息和/或将附加的状态信息传递给代理。
现在参照附图描述本发明,其中相同的附图标记用于指代全文中相同 的元素。在以下描述中,为解释起见,描绘了众多具体细节以提供对本发 明的全面理解。然而,显然,本发明可以在没有这些具体细节的情况下实 现。在其它情况下,以框图形式示出了公知的结构和设备以便于蹄述它们。
开始参考附图,图1示出了根据所公开的本发明的用于提供移动客户
机代理服务的计算机实现的代理设备管理系统100。系统100包括,例如代 表移动客户机106异步地访问企业后端系统的任意服务104的代理组件 102。系统IOO还包括驱动器组件108,驱动器组件108包括用于访问任意 服务并将服务抽象成关于与移动客户状态相关联的处理的任务的驱动器。 在一实施例中,代理组件102和驱动器组件108组成代理设备管理系统100。 在一替换实现中,驱动器组件108可以是与设备管理系统100分开且 在其远程的组件。例如,驱动器组件108的驱动器可以各自都是相应的后 端服务(或提供该服务的系统)的一部分,从而当代理组件102请求至各个服务的连接时,在对应的服务位置处的后端驱动器方便了对相应服务的 访问。
在又一个实现中,当使新的后端系统(也提供和/或需要新的驱动器)
在线时,驱动器组件108可以方便驱动程序的上传和安装以供代理组件102 进行将来的自动化且异步的处理。
图2示出了根据本发明的用于代理设备管理的更详细的系统200。系 统200包括用于代表一个或多个移动客户机206 (表示为移动客户机p移 动客户机2,……,移动客户机M,其中M为正整数)访问提供对应的服务 (表示为服务P服务2,……,服务N,其中N为正整数)的一个或多个 后端系统204 (表示为后端系统p后端系统2,……,后端系统w)的设备 代理服务器202。每个客户机206都包括对应的客户机状态(表示为客户机 状态,,客户机状态2,……,客户机状态M)。客户机状态包括诸如操作 系统类型、版本、硬件配置、应用程序版本、用户信息、数据版本等等的 客户机信息。代理服务器202包括驱动代理服务器202访问后端系统204 的代理组件102 (例如,任务执行引擎)。代理服务器202还包括驱动器组 件108,驱动器组件108包括对应于便于访问相应的后端服务器204的每个 后端系统204 (后端系统LN)的驱动器208 (表示为驱动器LN)。服务器 202还可以包括用于为每个客户机206存储客户机状态的虚拟映像212 (表 示为客户机状态LM的映像)的相关联的数据存储210。数据存储210可以 充当经常被需要且为非易失性的设备配置服务提供者(CSP)值的高速缓存。 在第一操作中,当第一移动客户机214连接到代理202时,第一客户 机状态216被传递并存储到代理数据存储210。代理组件102确定后端系统 204中的哪一个应该被访问以提供第一客户机214所需要或所请求的服务。 一旦确定,驱动器组件108就提供用于访问对应的后端系统204和对应的 服务的相关联的驱动器208。所选服务将所需服务信息提供回驱动器组件 108,驱动器组件108将服务信息抽象成任意任务以供代理服务器202执行, 代理服务器202更新所存储的映像212的所存储的第一客户机状态和第一 客户机状态216 (如果第一客户机214被连接)。
在第二操作中,第一客户机214在以上第一操作完成之后就变为离线(例如,客户机用户关闭第一客户机214的电源,离开服务区……)。其
后,在一实现中,代理服务器202使用与先前为第一客户机214所采用的 驱动器相同的驱动器,(基于在所存储的映像212的第一客户机映像中存 储的驱动器信息)异步地连接到后端系统204,检测到至对所存储的映像 212的现有第一客户机映像的更新存在,并将数据上传至与代理服务器202 相关联地存储的第一客户机映像。最后,当第一客户机214重新连接到代 理服务器202以获得企业后端服务时,并非直通连接到代理服务器204,而 是所需信息能够容易地从代理服务器202的所存储的映像212中的第一客 户机映像中获得。
然而应该明白,第一客户机214仍可能通过代理服务器202连接到一 个或多个后端系统204。第一客户机状态216的所存储的虚拟映像212可能 不是恰好绝对最新的。这是由于可正经历代理服务器202的更新处理的虚 拟客户机映像212的多重性。换言之,当第二客户机218的数据存储210 的客户机状态的虚拟映像正经历处理时,后端系统204可以接收仍必须被 移至第一客户机状态的虚拟映像的更新。从而,数据存储210上第一客户. 机的虚拟映像将变老。如果第一客户机214要求(例如,基于用户设置) 第一客户机状态216为绝对最新,那么第一客户机214可以被直通路由到 后端系统204以获得最新信息或强制代理服务器202进行对第一机客户状 态216的全部或一部分的更新操作。在任一情况下,第一客户机状态212 的虚拟映像都将被更新。
在实际操作的更具体描述中,代理服务器202在前端(为移动设备) 异步地操作,以及在后端(为后端系统)异步地操作。换言之,当一个或 多个客户机206正连接以接收来自对应的虚拟客户机映像212的更新时, 代理服务器202可以正在后端进行访问和更新操作。为支持这一功能,代 理服务器202可以包括用于提供对所存储的虚拟映像状态212的快速读/写 访问的高速缓存子系统。因此,应该理解,可以采用多个代理服务器系统 202来处理与这些操作相关联的负载。负载平衡、规模縮放以及高速缓存将 在下文中描述。
代理服务器202的代理组件102能与多个任意后端系统204 —起工作,因为代理服务器202能使用"任务"对象将要对于移动客户机执行的工作 抽象为工作单元(或任务)。从而,将代理组件102连接至各个后端系统
204的任意数量的驱动器208可以将要对于对应的移动客户机(和客户机设 备)完成的工作排队。从而,代理组件102 (或代理引擎)可以批量地处理 任务。因而,代理服务器202方便了面向任务的抽象,从而使多个后端系 统204能将工作单元提交给中央代理组件102。
代理服务器202可以使用虚拟客户机映像212 (包括设备身份信息) 来在相应的客户连接之前对任务进行评估测试。因而,此机制可以被用来 确定客户是否需要关键更新和是否应该被立即强制联系管理端点(或后端 系统204)。
如先前所述,代理组件102与多个后端系统204 —起异步地工作。这 使驱动器208能在任何时候提交工作,而无论客户机是否被连接。另外, 代理组件102不需要在其能够开始处理来自后端系统204的服务前等待所 有驱动器响应。换言之,与第一后端系统220和第二后端系统222相关联 的驱动器可以被用于在用于第三后端系统224的驱动器响应之前的数据处 理。
图3示出了方便移动客户机代理服务的替换代理设备管理系统300。 系统300的代理服务器202包括代理引擎302,代理引擎302包括用于执行 与更新客户机106的状态相关联的任务的任务执行引擎(TEE) 304。代理 引擎302还可以包括多个接入组件306 (例如,多路复用器),以便可以经 由多个驱动器308发生向对应的多个服务310的通信。然而,可以理解, 对多路复用器306的包括是可任选的。在此,提供了至少三种服务目录 服务312 (例如,微软公司的现用目录(Active Directory) )及相关联的 目录服务驱动器314;更新服务316(例如,微软公司的Windows服务器 更新服务(Windows Server Update Service) )及相关联的更新服务驱动 器318;以及消息收发服务(例如,SMS——短消息服务、NMS——多媒体 消息收发服务、即时消息收发……)及相关联的消息收发服务驱动器322。 尽管只示出了三种服务和驱动器,但可以实现更多的服务及相关联的驱动 器。另外,如上所表明的,可以采用多个代理引擎302来动态地处理单个代理引擎302不能高效地处理的对前端上的移动设备的改变的需求及对后 端服务的改变的需求。
多路复用器306方便了与服务310的通信。TEE 304可以从客户机106 获得客户机状态,处理该状态来确定应更新哪个部分,并基于所需更新来 请求对适当的服务310的访问。TEE 304将此请求发送至多路复用器306, 以经由驱动器308路由至服务310。然后更新被传递回驱动器308以供抽象 处理为任务,接着被传递到多路复用器306来供TEE 304处理以便被插入 到客户机虚拟映像数据存储210和/或客户机102中。如前所述,任务执行 可以独立于客户机102是在线还是离线而发生。如果离线,则任务执行对 照数据存储210的客户机状态映像来发生。因而,当客户机102连接到代 理引擎302时,对客户机状态的更新根据数据存储210的虚拟客户机状态 映像而非服务310来发生。同样地,任务执行可以独立于代理202是否连 接到后端服务310而发生。只要在代理引擎302中排队了供执行的任务, 映像更新处理就可以发生。
所公开的移动设备代理管理系统是一种通用系统,这表现在不管提供 服务的后端系统的类型,后端服务都可以由代理服务器202来主存或提供、 访问和处理。例如,后端系统可以提供例如使用多种不同类型的操作系统 (例如,Unix、 Linux、 Windows、 Apple等)和文件结构、协议及数据格 式的服务。驱动器308执行转换处理以将服务信息抽象成可由TEE 304执 行的任意任务。与此相反,常规的体系结构提供不可扩展的且从移动设备 到后端系统为一对一的硬编码实现。所公开的体系结构提供在前端和后端 都异步操作的多对多可扩展实现。
图4示出了采用调度和同步处理的替换通用代理设备管理系统400。 在此,驱动器组件108包括分别对应于目录服务312、更新服务316和消息 收发服务320的目录服务驱动器314、更新服务驱动器318、和消息收发服 务驱动器332。另外,系统400是可扩展的,从而可提供第三方驱动器402 来作为对应于其它后端服务404的驱动器组件108的一部分。
代理引擎406包括TEE 304和多路复用器306,其功能己在上文中描 述。另外,代理引擎406包括同步组件408,同步组件408用于在前端同步客户机106与服务器202的虚拟状态映像之间的状态,且在代理202的后 端同步后端系统与服务器202的虚拟状态映像之间的状态。调度器组件410 方便了在服务器202在后端和/或前端上执行同步时的调度。例如,根据一 实现,同步可以基于时间信息(例如,时间、日期、自从上一次更新以来 的天数等)。在另一实现中,调度是根据状态数据的版本来进行的。应该 明白,调度可以根据每个客户机的规则、客户机的组、客户机的类别、设 备信息、根据客户机状态、后端系统策略的改变、后端数揮等等来促进。
在此,TEE 304接口至两个数据存储引擎数据存储412和历史数据 存储4M。例如,引擎数据存储412可以持久保持与例如对客户机的调度、 规则、供执行的任务和同步相关的信息。历史数据存储414可以方便存储 关于连接到此代理服务器202的多个客户机的客户机虚拟状态映像数据。 应该理解,数据存储(412和414)可以是用于快速执行和处理的高速缓冲 存储器(例如,DRAM)。从而,代理服务器202可以访问存储关于多个 代理服务器的数据的远程数据存储(未示出),其中该数据的所选部分被 上传到适当的代理服务器以供高速缓存和异步处理。
可以提供诸如根据用户偏好、状态、上下文或其它度量来预取和/或预 高速缓存信息等高速缓存功能,这增强了用户体验并弥补了便携式设备与 台式计算机相比的某些固有限制(例如,带宽、存储器、处理能力、显示 器可操作区域)。可以明白,例如,基于设备性能和用户相关度量而被视 为低价值的虚拟映像数据可以被选择性地从存储中老化出去以便为新内容 腾出空间。
在一示例性实施例中,代理服务器支持OMADM (用于设备管理的开 放移动联盟),而且服务器202与客户机之间的通信可以根据SyncML协 议进行。OMADM指定了诸如移动电话和有移动能力的便携式计算设备等 移动客户机和设备的管理。SyncML是为开放式系统而提议的基于XML(可 扩展标记语言)的协议。SyncML是用于通过任何网络来同步设备及应用程 序的公共语言。通过充分利用XML, SyncML可以用于网络化信息与任何 移动设备相同步,且移动信息可与任何网络化应用程序相同步。诸如电子 邮件、日历、待完成事项列表、联系人信息、设备信息、应用程序信息和其它所需数据等个人信息可以变得一致、可访问且处于最新状态。另外,
SyncML允许通过例如固定网络、红外线、电缆或蓝牙来进行同步。
图5示出了根据本发明的与示例性目录服务访问和同步相关联的流 程。调度器410可以启动到后端系统目录服务312的同步会话,从而代理 引擎406向目录服务驱动器314传送信息。驱动器314通过驱动器打包器 模块500来打包信息,并将所打包的信息通过目录服务组策略驱动器502 传送到目录服务312。目录服务312将所需的已更新的服务信息或工作送回 给驱动器314,驱动器314将该工作抽象为一个或多个任务。令任务通过驱 动器打包器500以被解开,然后令其通过代理引擎406至引擎数据库412 以供执行。如上所述,也可以将一个或多个任务排队以供稍后处理。因而, 可以在代理引擎406中采用任务优先化管理。
客户机106可以启动到代理引擎406的代理引擎层504(例如,SyncML) 的连接,以经由协议(例如,SyncML)传递基于XML的数据。层504将 XML数据转发给TEE 304以供处理。TEE 304从引擎数据库412拉取任务 信息并执行该任务来经由层504更新客户机106,并更新存储在活动历史数 据库414上的虚拟映像(未示出)。在层504处,所执行的任务数据被转 换回XML并通过协议传送给客户机106。现在,客户机106和虚拟状态映 像都以最新客户机状态更新了。可以明白,在一实现中,移动设备可以先 被更新,而代理则将经更新的状态保存在高速缓存中。其后,高速缓存的 信息被持久保存到代理服务器的虚拟状态映像。
图6示出了采用便于自动化一个或多个特征的机器学习和推理(MLR) 组件602的代理设备管理系统600。在此,代理服务器604包括用于处理状 态相关任务的代理引擎302、用于提供访问相关后端系统和服务104的驱动 器的驱动器组件108、用于调度同步的调度器组件410、以及用于后端服务 104的多重访问的多路复用器306。另外,服务器602可以包括例如用于快 速数据访问和客户机状态信息处理的高速缓存组件606。在一示例中,高速 缓存组件606便于例如基于虚拟映像状态(且当设备离线时)对后端系统 工作和网络接入保护所需的任何工作的预评估测试。预评估测试可以用来 确定客户机是否需要关紧更新和是否应该立即被强制联系管理端点。高速缓存组件606还可以维护可被频繁利用且为非易失性的设备配置 服务提供者值。
本发明的体系结构(例如,结合选择)可采用各种基于MLR的方案来 实现其各个方面。例如,用于确定何时异步地连接到后端服务104的过程 可以通过自动分类器系统和过程来方便。
分类器是将输入属性向量x = (xi, x2, x3, x4, xn)映射到类标签c/a^(x) 的函数。分类器也可以输出输入属于一个类的置信度,即f(x)-co^/kfe"ce(c/w^x力。这样的分类可采用概率性的和/或其它统计性的分析
(例如,分解成分析效用和成本以最大化对一人或多人的期望值)来预测 或推断用户期望自动执行的动作。
如此处所使用的,术语"推断"和"推论"通常是指从经由事件和/或数据 捕捉的一组观察结果来推理或推断系统、环境和/或用户的状态的过程。例 如,推断可用于标识特定的上下文或动作,或可生成状态的概率分布。推 断可以是概率性的,即,基于对数据和事件的考虑计算所关注状态的概率 分布。推断也可以指用于从一组事件和/或数据合成更高级事件的技术。这 类推断导致从一组观察到的事件和/或储存的事件数据中构造新的事件或动 作,而无论事件是否在相邻时间上相关,也无论事件和数据是来自一个还 是若干个事件和数据源。
支持向量机(SVM)是可采用的分类器的一个示例。SVM通过在可能 的输入空间中找出以最优方式将触发输入事件和非触发事件分离开来的超 曲面来操作。直观上,这使得分类对于接近但不等同于训练数据的测试数 据正确。可采用其它定向和非定向模型分类方法,包括,例如,各种形式 的统计回归、朴素贝叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模 型以及表示不同独立性模式的其他统计分类模型。如此处所使用的分类也 包括用于分派排名和/或优先级的方法。
如从本说明书中可以容易地理解的,本发明的体系结构可以使用显式 训练(例如,经由一般训练数据)以及隐式训练(例如,经由观察用户行 为、接收外来信息)的分类器。例如,SVM经由分类器构造器和特征选择 模块内的学习或训练阶段来配置。因此,可采用分类器来根据预定准则自动学习和执行多个功能。
例如,基于客户机设备的类型,MLR组件602可以学习和推理同步可 能不需要像其它设备类型那样频繁地被执行。在另一示例中,MLR组件602 可以学习读取客户机设备的用户偏好信息以作为区分哪些设备状态应该被 更新的优先级的手段。学习和推理也可以用来调整调度、代理服务器604 相对于其它企业代理服务器的地址加载、何时应该基于带宽和负载而扩大 规模至另一代理服务器等等。
同步也可以是基于事件触发的。在此类型的实现中,客户机设备可以 包括监视客户机状态改变的代理程序或类似的软件模块,并且当改变的范 围满足预定或所配置的触发准则时,代理程序触发对代理服务器604的同 步请求。然后对代理服务器604上关于该客户机的虚拟状态映像做出状态 更新。当对应的客户机连接到服务器604时,客户机接收最新更新。
这些只是MLR组件602可以提供的灵活性以及用于获得后端同步的方 法的少数示例。其它示例包括代理服务器周期性地向后端系统轮询关于给 定客户机或所有连接的客户机的更新。另一示例包括后端系统将对于服务 器604的更新请求排队,其中服务器以先到先服务的基础来选择请求。或 者,MLR组件602可以基于所学习和推理的行为来接收请求并区分其优先 次序。
图7示出了通过代理系统管理移动设备的方法。尽管出于解释简明的 目的,此处例如以流图或流程图形式示出的一个或多个方法被示出并描述 为一系列动作,但是可以理解和明白,本发明不受动作的次序的限制,因 为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其 它动作同时发生。例如,本领域技术人员将会明白并理解,方法可被替换 地表示为一系列相互关联的状态或事件,诸如以状态图的形式。而且,并 非所有示出的动作都是实施根据本发明的方法所必需的。
在700,代理服务器代表移动设备访问后端系统的任意服务。在702, 通过服务驱动器将来自后端系统的服务信息抽象为供在代理服务器处执行 的任务。在704,在代理服务器处存储移动设备的设备状态的抽象映像,该 映像包括服务信息。在706,基于与任意服务相关联的改变来更新移动设备的设备状态的映像。
图8示出了代理处理服务和移动设备的方法。在800,在代理服务器
处创建多个移动设备的状态的设备状态映像抽象。在802,通过用于该一个 或多个映像抽象的服务驱动器发起对任意后端系统的访问。在804,异步地 访问与任意后端系统相关联的服务。在806,通过服务驱动器返回关于一个 或多个移动设备的服务信息。在808,通过服务驱动器将服务信息抽象为供 在代理服务器处执行的任意任务。在810,基于任务的执行来更新移动设备 的相应的映像抽象。在812,当移动设备连接到代理服务器时,从相应的映 像抽象异步地更新该设备。在814,在更新过程期间从移动设备接收新的设 备信息。在816,当在线时基于该新的设备信息异步地访问后端服务以获得 新的服务信息。
图9示出了在将更新应用于移动设备之前对设备映像抽象执行评估测 试的方法。在900,为移动设备创建移动设备状态映像抽象,并将其存储在 代理服务器上。在卯2,通过用于该映像抽象的服务驱动器异步地访问任意 后端服务。在卯4,将服务接收进驱动器并抽象为供在代理服务器处执行的 任务。在906,针对该映像抽象执行任务评估测试,以确定一个或多个任务 是否应该应用于移动设备。在908,基于针对移动设备的映像抽象的测试结 果来应用或丢弃一个或多个任务。
图IO示出了根据本发明的调度对后端服务的异步访问的方法。在 1000,在代理处提供调度信息,用于在代理处更新多个移动设备状态映像。 在1002,基于调度信息,代理服务器通过服务驱动器发起对后端服务的访 问。在1004,将来自一个或多个后端系统的服务信息接收进服务驱动器, 抽象成任务,并将其排队以供在代理处的任务执行处理。在1006,针对现 有的代理状态映像执行任务。在1008,存储已更新的映像。在1010, 一个 或多个相关联的移动设备异步地连接到代理服务器并接收来自对应的映像 的已更新的状态。
图11示出了将学习和推理处理应用于代理设备管理处理的方法。在 1100,部署代理服务器以用于图像创建、异步后端服务处理以及移动设备 状态更新。在1102,将学习和推理应用于代理服务器处理。在1104,鉴于移动设备及服务访问的现有异步处理,代理服务器基于学习和推理自动地 采用提供的新调度。在1106,鉴于移动设备及服务访问的现有异步处理, 代理服务器基于学习和推理自动地采用新图像更新处理和服务访问。在 1108,鉴于第一代理服务器对移动设备及服务访问的现有异步处理,服务 处理基于学习和推理而被扩大规模至另外的代理服务器。 1
如在本申请中所使用的,术语"组件"和"系统"旨在表示计算机相 关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。 例如,组件可以是但不限于,在处理器上运行的进程、处理器、硬盘驱动 器、(光和/或磁存储介质的)多个存储驱动器、对象、可执行代码、执行 的线程、程序、和/或计算机。作为说明,运行在服务器上的应用程序和服 务器都可以是组件。 一个或多个组件可以驻留在进程和/或执行的线程内, 且组件可以位于一台计算机上和/或分布在两台或更多的计算机之间。
现在参考图12,示出了可用于提供根据所公开的体系结构的移动设备 代理处理的计算系统1200的示意图。为了提供用于其各方面的附加上下文, 图12及以下讨论旨在提供对其中可实现本发明的各方面的合适的计算系统 1200的简要概括描述。尽管以上描述是在可在一个或多个计算机上运行的 计算机可执行指令的一般上下文中进行的,但是本领域的技术人员将认识
到,本发明也可结合其它程序模块和/或作为硬件和软件的组合来实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例 程、程序、组件、数据结构等等。此外,本领域的技术人员可以理解,本 发明的方法可用其它计算机系统配置来实施,包括单处理器或多处理器计 算机系统、小型机、大型计算机、以及个人计算机、手持式计算设备、基 于微处理器的或可编程消费电子产品等,其每一个都可操作上耦合到一个 或多个相关联的设备。
所示的本发明的各方面也可在其中某些任务由通过通信网络链接的远 程处理设备来执行的分布式计算环境中实施。在分布式计算环境中,程序 模块可以位于本地和远程存储器存储设备中。
计算机通常包括各种计算机可读介质。计算机可读介质可以是可由计 算机访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质 和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据 结构、程序模块或其它数据之类的信息的任意方法或技术实现的易失性和 非易失性、可移动和不可移动介质。计算机存储介质包括但不限于RAM、
ROM、 EEPROM、闪存或者其它存储器技术、CD-ROM、数字视频盘(DVD) 或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或可以用 于存储所需信息并且可以由计算机访问的任何其它介质。
再次参考图12,用于实现各方面的示例性计算系统1200包括计算机 1202,计算机1202包括处理单元1204、系统存储器1206和系统总线1208。 系统总线1208向包括但不限于系统存储器1206的系统组件提供到处理单 元1204的接口。处理单元1204可以是市场上可购买到的各种处理器中的 任意一种。双微处理器和其它多处理器体系结构也可用作处理单元1204。
系统总线1208可以是若干种总线结构中的任一种,这些总线结构还可 互连到存储器总线(带有或没有存储器控制器)、外围总线、以及使用各 类可购买到的总线体系结构中的任一种的局部总线。系统存储器1206包括 只读存储器(ROM) 1210和随机存取存储器(RAM) 1212。基本输入/输 出系统(BIOS)储存在诸如ROM、 EPROM、 EEPROM等非易失性存储器 1210中,其中BIOS包含帮助诸如在启动期间在计算机1202内的元件之间 传输信息的基本例程。RAM 1212还可包括诸如静态RAM等高速RAM来 用于高速缓存数据。
计算机1202还包括内置硬盘驱动器(HDD) 1214(例如,EIDE、 SATA), 该内置硬盘驱动器1214还可被配置成在合适的机壳(未示出)中外部使用; 磁软盘驱动器(FDD) 1216(例如,从可移动磁盘1218中读取或向其写入); 以及光盘驱动器1220 (例如,从CD-ROM盘1222中读取,或从诸如DVD 等其它高容量光学介质中读取或向其写入)。硬盘驱动器1214、磁盘驱动 器1216和光盘驱动器1220可分别通过硬盘驱动器接口 1224、磁盘驱动器 接口 1226和光盘驱动器接口 1228连接到系统总线1208。用于外置驱动器 实现的接口 1224包括通用串行总线(USB)和IEEE 1394接口技术中的至 少一种或两者。其它外部驱动器连接技术在本发明所考虑的范围之内。驱动器及其相关联的计算机可读介质提供了对数据、数据结构、计算 机可执行指令等的非易失性存储。对于计算机1202,驱动器和介质容纳适 当的数字格式的任何数据的存储。尽管以上对计算机可读介质的描述涉及
HDD、可移动磁盘以及诸如CD或DVD等可移动光学介质,但是本领域的 技术人员应当理解,示例性操作环境中也可使用可由计算机读取的任何其 它类型的介质,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等等,并且任 何这样的介质可包含用于执行所公开的发明的方法的计算机可执行指令。 多个程序模块可储存在驱动器和RAM 1212中,包括操作系统1230、 一个或多个应用程序1232、其它程序模块1234和程序数据1236。操作系 统、应用程序、模块和/或数据的全部或部分也可被高速缓存在RAM 1212 中。应该明白,本发明可以用各种市场上可购得的操作系统或操作系统的 组合来实施。
应用程序1232和/或模块1234可以包括在此与例如代理组件102、驱 动器组件108、代理服务器202、任务执行引擎304、多路复用器306、代 理引擎406、同步组件408、调度器组件410、驱动器打包器500、策略驱 动器502、层504、 MLR组件602以及高速缓存组件606等相关联地描述 的功能和性能。
用户可以通过一个或多个有线/无线输入设备,例如键盘1238和诸如 鼠标1240等定点设备将命令和信息输入到计算机1202中。其它输入设备 (未示出)可包括话筒、IR遥控器、操纵杆、游戏手柄、指示笔、触摸屏 等等。这些和其它输入设备通常通过耦合到系统总线1204的输入设备接口 1242连接到处理单元1208,但也可通过其它接口连接,如并行端口、 IEEE 1394串行端口、游戏端口、 USB端口、 IR接口等等。
监视器1244或其它类型的显示设备也经由接口,诸如视频适配器1246 连接至系统总线1208。除了监视器1244之外,计算机通常包括诸如扬声器 和打印机等的其它外围输出设备(未示出)。
计算机1202可使用经由有线和/或无线通信至一个或多个远程计算机, 诸如远程计算机1248的逻辑连接在网络化环境中操作。远程计算机1248 可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其它常见的网络节点,并且通常包括 以上相对于计算机1202描述的许多或所有元件,尽管为简明起见仅示出了
存储器/存储设备1250。所描绘的逻辑连接包括到局域网(LAN) 1252和/ 或例如广域网(WAN) 1254等更大的网络的有线/无线连接。这一LAN和 WAN联网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计 算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN网络环境中使用时,计算机1202通过有线和/或无线通信网 络接口或适配器1256连接到局域网1252。适配器1256可以方便到LAN 1252的有线或无线通信,并且还可包括其上设置的用于与无线适配器1256 通信的无线接入点。
当在WAN网络环境中使用时,计算机1202可包括调制解调器1258, 或连接到WAN 1254上的通信服务器,或具有用于通过WAN 1254,诸如 通过因特网建立通信的其它装置。或为内置或为外置以及有线或无线设备 的调制解调器1258经由串行端口接口 1242连接到系统总线1208。在网络 化环境中,相对于计算机1202所描述的程序模块或其部分可以存储在远程 存储器/存储设备1250中。应该理解,所示网络连接是示例性的,并且可以 使用在计算机之间建立通信链路的其它手段。
计算机1202可用于与操作上设置在无线通信中的任何无线设备或实 体通信,这些设备或实体例如有打印机、扫描仪、台式和/或便携式计算机、 便携式数据助理、通信卫星、与无线可检测标签相关联的任何一个设备或 位置(例如,公用电话亭、报亭、休息室)以及电话机。这至少包括Wi-Fi 和蓝牙TM无线技术。由此,通信可以如对于常规网络那样是预定义结构, 或者仅仅是至少两个设备之间的自组织(adhoc)通信。
现在参考图13,示出了便于为获得后端服务而由代理服务器进行的移 动客户更新的示例性计算环境1300的示意性框图。系统1300包括一个或 多个客户机1302。客户机1302可以是硬件和/或软件(例如,线程、进程、 计算设备)。客户机1302可例如通过使用本发明而容纳cookie和/或相关 联的上下文信息。
系统1300还包括一个或多个服务器1304。服务器1304也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1304可以例如通过使
用本体系结构来容纳线程以执行变换。在客户机1302和服务器1304之间
的一种可能的通信能够以适合在两个或多个计算机进程之间传输的数据分 组的形式进行。数据分组可包括例如cookie和/或相关联的上下文信息。系 统1300包括可以用来使客户机1302和服务器1304之间通信更容易的通信 框架1306 (例如,诸如因特网等全球通信网络)。
通信可经由有线(包括光纤)和/或无线技术来促进。客户机1302操 作上被连接到可以用来存储对客户机1302本地的信息(例如,cookie和/ 或相关联的上下文信息)的一个或多个客户机数据存储1308。同样地,服 务器1304可在操作上连接到可以用来存储对服务器1304本地的信息的一 个或多个服务器数据存储1310。
上面描述的包括所公开的本发明的各示例。当然,描述每一个可以想 到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认 识到,许多其它组合和排列都是可能的。因此,本发明旨在涵盖所有这些 落入所附权利要求书的精神和范围内的更改、修改和变化。
此外,就在说明书或权利要求书中使用术语"包括"而言,这一术语 旨在以与术语"包含"在被用作权利要求书中的过渡词时所解释的相似的 方式为包含性的。
权利要求
1.一种计算机实现的设备管理系统(100),包括用于代表移动客户机异步地访问后端系统的任意服务的代理组件(102);以及包括用于访问所述任意服务以将其处理为与所述移动客户机的状态相关联的任意任务的驱动器的驱动器组件(108)。
2. 如权利要求所述的系统,其特征在于,所述代理组件创建所述移动客户机的状态的虚拟客户机映像,所述虚拟客户机映像与所述代理组件 相关联地存储,且所述代理组件基于对所述虚拟客户机映像的改变来访问 所述任意服务。
3. 如权利要求l所述的系统,其特征在于,所述移动客户机访问所述代理组件以接收对所述状态的改变。
4. 如权利要求l所述的系统,其特征在于,还包括用于通过所述驱动器组件来提供对所述后端系统的任意服务的访问的多重访问组件。
5. 如权利要求l所述的系统,其特征在于,所述后端系统包括服务, 所述服务包括目录服务、更新服务和消息收发服务。
6. 如权利要求l所述的系统,其特征在于,所述驱动器组件便于将所 述服务抽象成供所述代理组件执行的任意任务。
7. 如权利要求l所述的系统,其特征在于,还包括便于对所述移动客 户机的状态的改变进行评估处理的高速缓存组件。
8. 如权利要求l所述的系统,其特征在于,还包括用于调度所述代理 组件何时访问所述服务以便进行任务处理的调度组件。
9. 如权利要求l所述的系统,其特征在于,所述移动客户机使用开放移动联盟的基于XML的协议来与所述代理组件通信。
10. 如权利要求l所述的系统,其特征在于,还包括采用基于概率和/或基于统计的分析来预测或推断期望自动执行的动作的机器学习和推理组 件。
11. 一种管理设备的计算机实现的方法,包括代表移动设备访问来自后端系统的任意服务(700);通过服务驱动器将所述任意服务的服务信息抽象为任务以供在代理服务器处执行(702);在代理服务器处存储所述移动设备的设备状态的映像(704),所述映 像包括所述服务信息;以及基于与所述任意服务相关联的改变来更新所述设备状态的映像(706)。
12. 如权利要求11所述的方法,其特征在于,还包括批量地处理所述 任务。
13.如权利要求11所述的方法,其特征在于,还包括当所述移动设备 离线时执行所述任务来以最新客户机状态更新所述映像。
14. 如权利要求ll所述的方法,其特征在于,还包括将要使用对应于 所述任意服务的所述服务驱动器执行的任务排队。
15. 如权利要求11所述的方法,其特征在于,还包括异步地从所述代 理服务器访问多个后端系统,其中所述后端系统与所述任意服务相关联。
16. 如权利要求11所述的方法,其特征在于,还包括针对所述设备映 像来执行评估测试以确定所述任意服务是否与所述移动设备相兼容。
17. 如权利要求16所述的方法,其特征在于,还包括基于所述评估测试来延迟所述移动设备上的状态的更新。
18. 如权利要求11所述的方法,其特征在于,还包括在更新所述移动设备上的状态之前高速缓存设备配置值以便对所述设备状态进行条件评 估。
19. 如权利要求11所述的方法,其特征在于,还包括当所述移动设备 连接到所述代理服务器时自动地从所述设备映像更新所述移动设备上的设 备状态。
20. —种计算机实现的系统,包括用于代表移动设备访问来自后端系统的任意服务的计算机实现的装置(202);用于将所述任意服务的服务信息抽象为任务的计算机实现的装置(108);用于将所述任务写入数据库并从所述数据库读取所述任务以供在所述代理服务器处执行的计算机实现的装置(304);用于在所述代理服务器处存储所述移动设备的设备状态的映像的计算机实现的装置(412),所述映像包括所述服务#息;以及用于基于与所述任意服务相关联的改变来更新所述移动设备的设备状态的映像的计算机实现的装置(304)。
全文摘要
一种通用代理移动设备管理体系结构。该体系结构充当寻找来自后端系统的服务的移动客户机的代理。与移动客户机相关联的状态信息的虚拟客户机映像被存储,从而当移动客户机与该代理交互时,该虚拟映像更新到最新客户机状态。基于对该状态的改变,代理系统代表移动客户机异步地访问后端系统的一个或多个任意服务。当移动客户机连接到代理时,代理将最新服务与虚拟映像的状态相关联,并更新移动客户机的状态。更新和访问在代理与移动设备之间在前端以及在代理与后端系统之间在后端异步地发生。
文档编号H04W88/18GK101589599SQ200780050526
公开日2009年11月25日 申请日期2007年12月27日 优先权日2007年1月26日
发明者B·M·蒂普拉德, M·E·迪姆, M·哈格曼, S·赫佐格 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1