用于控制移动计算装置上的软件程序的使用的方法和系统的制作方法

文档序号:10594440阅读:340来源:国知局
用于控制移动计算装置上的软件程序的使用的方法和系统的制作方法
【专利摘要】提供了用于控制一个或多个移动计算装置上的一个或多个软件程序的使用的解决方案。相应的方法包括监视每个移动计算装置的位置的指示,以确定移动计算装置的位置区域。该方法包括将每个软件程序分配给使用组。对于每个位置区域,每个软件程序类型的软件程序被分配给对应的使用组,该使用组提供满足每个软件程序的一个或多个使用要求的一个或多个使用特性;这根据取决于每个使用组的一个或多个使用权重的一个或多个优化标准来执行。该方法包括根据对应的使用组的使用特性,启用每个软件程序的使用。
【专利说明】
用于控制移动计算装置上的软件程序的使用的方法和系统
技术领域
[0001]本公开涉及信息技术(IT)领域。更具体地,本公开涉及移动计算装置上的软件程序的使用的控制。【背景技术】
[0002]近年来,特别是由于智能电话和平板电脑的广泛普及,移动计算装置(或仅仅是移动装置)已经变得越来越流行。移动装置基本上无所不在地进行许多活动,因为它们几乎可以在任何地方使用;特别地,移动装置的用户可运行许多移动软件应用,也称为(移动)应用 (App)。应用是被专门设计成在移动装置上运行的软件程序。为此,应用相对精简(以应对移动装置的计算/电源约束)、简单(以应对移动装置的小屏幕)并且快速(以应对用户在移动性方面降低的注意力);相反,应用可以利用在移动装置上通常可用的特定特征(例如GPS接收机、照相机、加速计)。用户需求和开发设施已造成应用的数量和种类的爆发(例如,用于信息检索、电子商务、多媒体播放、游戏)。[〇〇〇3]应用(如同任何其它软件程序)的使用可能要求符合特定的限制(例如,可用的许可权、所允许的资源消耗);然而,移动装置上的应用的使用的控制可能相当有挑战性。 [〇〇〇4]为此,例如,提供了网上商店以浏览可用的应用(例如,用于特定的操作系统),查看关于它们的信息(包括用户的评论和评级),并下载选定的应用。一些商店还提供许可服务,其可用于对于从这些商店下载的应用执行许可政策;特别地,应用可以查询许可服务器,以验证它是否被正确地许可以在安装了该应用的移动装置上使用,以便相应地启用或禁用它的使用(例如,使用仅在移动装置的用户是应用的所记录的购买者时启用的应用)。
【发明内容】

[0005]在此呈现本公开的简化概述,以便提供其基本理解;然而,本概述的唯一目的是以简化形式介绍本公开的一些概念,作为下面的更详细的描述的前序,而并不被解释为标识其主要元件,也不作为其范围的描述。
[0006]—般而言,本公开是基于如下的思想:根据移动计算装置上的软件程序的分组,控制软件程序的使用。
[0007]特别地,一个方面提供了一种用于控制一个或多个移动计算装置上的一个或多个软件程序的使用的方法。该方法包括:监视每个移动计算装置的位置的指示,以确定(多个位置区域中)移动计算装置的位置区域。该方法包括将每个软件程序分配给(用于对应的移动计算装置的位置区域的该软件程序的软件程序类型的多个使用组中的)使用组。对于每个位置区域,每个软件程序类型的软件程序被分配给对应的使用组,该使用组提供满足每个软件程序的一个或多个使用要求的一个或多个使用特性;这根据取决于每个使用组的一个或多个使用权重的一个或多个优化标准来执行。该方法包括根据对应的使用组的使用特性,启用每个软件程序的使用。
[0008]在实施例中,所述将每个软件程序分配给使用组包括:对于每个位置区域,进一步根据用于该位置区域的软件程序类型的使用组的一个或多个使用约束,将每个软件程序类型的软件程序分配给用于该位置区域的软件程序类型的使用组。
[0009]在实施例中,所述将每个软件程序分配给使用组包括:对于每个位置区域,将至少一个软件程序从对应的使用组移动到用于该位置区域的对应的软件程序类型的不同的使用组。
[0010]另一个方面提供了用于实现该方法的计算机程序(以及对应的计算机程序产品)。
[0011]另一个方面提供了对应的系统。【附图说明】
[0012]本公开的解决方案以及其它特征和优点将结合附图并参考以下仅以非限制性指示给出的详细描述来得到最好的理解(其中,为了简单起见,对应的元件用相同或相似的参考标记表示,并且不再重复其说明,每个实体的名称通常用于表示其类型和属性一一诸如值、内容和表示)。
[0013]图1示出了其中可应用根据本公开的实施例的解决方案的计算基础架构的示意性框图;[〇〇14]图2A-图2G示出了根据本公开的实施例的解决方案的示例性应用;
[0015]图3示出了可用于实现根据本公开的实施例的解决方案的主要软件组件;
[0016]图4示出了描述与根据本公开的实施例的解决方案的实施有关的活动流的活动图。【具体实施方式】
[0017]参考图1,示出了其中可以应用根据本公开的实施例的解决方案的计算基础架构 100的示意性框图。
[0018]计算基础架构100包括例如无线保真(W1-Fi)类型的若干(无线网络)接入点105。 接入点105用于将在其传输范围115内的不同的移动(计算)装置110连接到对应的无线局域网(WLAN)中。
[0019]每个移动装置110(例如,智能电话或平板电脑)被设计成在其正常操作期间由其用户运输;因此,移动装置110—般由电池供电,它相当小而轻,并且支持无线连接性(在所讨论的示例中,连接到接入点105)。每个移动装置110具有安装在其上的不同应用(S卩,移动软件应用),其可用于由它的用户执行相应的功能。
[0020]接入点105进而连接到因特网(例如,通过固定线路电话网络)。因特网由通过全球通信网络120互连的数百万服务器计算设备(或仅仅是服务器)形成。就与本公开有关的而言,因特网包括应用控制服务器125(或多个);如以下所描述的,应用控制服务器125用于控制移动装置110上的应用的使用。
[0021]应用控制服务器125包括并行连接到总线结构130的若干单元。详细地说,一个或多个微处理器(yP)135控制应用控制服务器125的操作;RAM 140由微处理器135直接用作工作存储器,ROM 145存储用于应用控制服务器125的引导程序的基本代码。应用控制服务器 125还具有大容量存储器,其包括用于读取/写入可移动存储单元160(例如光盘)的一个或多个硬盘150和驱动器155。此外,应用控制服务器125包括一个或多个外围单元165,诸如键盘、鼠标、监控器和网络适配器(例如,用于将应用控制服务器125插入数据中心,然后允许它通过路由器/交换机子系统与网络120通信)。例如,硬盘150可由数据中心的存储单元提供,驱动器155和外围单元165可由数据中心的控制台提供。每个移动装置110具有适度规模的相似结构;例如,在这种情况下,大容量存储器可以包括闪存卡,外围单元可以包括W1-Fi 类型的无线网络适配器(用于与接入点105通信)、用于与移动电话基础设施(在图中未示出)通信的移动电话收发机和GPS接收机(用于跟踪移动装置110的位置)。[〇〇22]现在参考图2A至图2G,示出了根据本公开的实施例的解决方案的示例性应用。 [〇〇23]从图2A开始,移动装置可跨越多个位置区域移动(例如,每个位置区域由与一个或多个对应的接入点的连接来定义)。监视移动装置的位置(在所讨论的示例中,由移动装置连接到的接入点指示)以确定它们的位置区域。例如,在如图所示的非常简化的场景中,七个移动装置(用标记110.1、110.2、110.3、110.4、110.5、110.6和110.7区分)在位置区域 LA.1中(例如,公司的场所)。
[0024]对于每个(应用)类型的应用定义多个使用组,这些使用组可在移动装置110.1-110.7在位置区域LA.1中时在移动装置110.1-110.7上使用。应用类型的每个使用组提供用于其应用的一个或多个使用特性,即,应用的实例(例如,不同的功能/性能);在所讨论的示例中,对于实现信息检索服务的应用类型可定义三个使用组,该应用类型可以在以下模式中使用:基本模式,其中只启用有限的特征(组Gb);标准模式,其中启用所有的特征(组Gs); 高级模式,其中启用所有的特征,并保证最小带宽(组Gp)。应用类型的每个使用组还与一个或多个使用权重(例如,许可成本)相关联;在所讨论的示例中,使用组Gb(用于基本模式)、 Gs(用于标准模式)和Gp(用于高级模式)具有递增的使用权重。
[0025]在移动装置110.1-110.7上运行的每个应用与一个或多个使用要求(例如,对应的用户所要求的功能和/或性能)相关联;因此,在所讨论的示例中,使用要求可由在移动装置 110.1-110.7上运行的上述应用类型的应用所要求的特征和(可能地,)带宽来定义。
[0026]每个应用被分配给用于它的移动装置的位置区域的它的应用程序类型的一个使用组。对于每个位置区域,每个应用类型的应用被分配给使用特性满足应用的使用要求的 (用于该位置区域的应用类型的)使用组;该操作根据一个或多个优化标准执行,该优化标准取决于对应的使用组的使用权重(例如,通过最小化成本函数,该成本函数等于每个使用组的使用权重与分配给该使用组的应用的数量相乘的总和)。因此,在所讨论的示例中,在移动装置110.1-110.7上运行的上述应用被分配给向所需功能提供最低使用权重的使用组;如图所示,移动装置110.2、110.6上的应用仅需要使用有限的特征,因此,它们被分配给使用组Gb,移动装置110.1、110.3、110.5、110.7上的应用需要使用其它特征(除了有限的特征以外)但没有任何带宽要求,因此,它们被分配给使用组Gs,移动装置110.4上的应用需要使用其它特征(除了有限的特征以外)并且需要比(所保证的)最小带宽更高的带宽,因此, 它被分配给使用组Gp。然后,移动装置110.1-110.7上的应用程序的使用根据(它们已被分配到的)对应的使用组的使用特性来启用;这样,移动装置110.2、110.6上的应用(组Gb)仅启用有限的特征,移动装置110.1、110.3、110.5、110.7上的应用(组Gs)启用所有的特征,移动装置110.4上的应用(Gp组)启用所有的特征并具有被保证的最小带宽。
[0027]然后,另一个移动装置110.8进入位置区域LA.1;移动装置110.8运行上述应用类型的相同应用;移动装置110.8上的应用仅需要使用有限的特征。因此,如图2B所示,移动装置110.8上的应用被分配给使用组Gb(以便仅具有被启用的有限的特征)。
[0028]转到图2C,移动装置110.6上的应用现在需要使用相同应用的除了其有限的特征以外的一个或多个其它特征(但没有任何带宽要求)。因此,移动装置110.6上的应用从使用组Gb移动到使用组Gs(以便启用所有的特征)。[〇〇29]这样,移动装置的典型的游动行为可被利用以优化它们的应用的使用。其结果,显著地改善了对应的限制的管理(例如,可用的许可权,所允许的资源消耗)。此外,将应用分配给它们的使用组是动态的;例如,该分配根据移动装置的位置和/或它们的使用要求随时间自动地改变。
[0030]在实施例中,每个使用组还与一个或多个使用约束(例如,可同时分配给使用组的最大数量的应用)相关联;在所讨论的示例中,使用组Gb可最多具有10个应用,使用组Gs可最多具有5个应用,使用组Gp可最多具有2个应用。
[0031]在这种情况下,可能发生一个或多个(不可分配)应用可能不能分配给任何满足它们的使用要求的使用组。例如,如图2D所示,如果移动装置110.8上的应用需要使用相同应用的除了有限的特征以外的一个或多个其它特征,则它可能不能从使用组Gb移动到使用组 Gs;事实上,在这种情况下,使用组Gs的使用约束可能不被满足,因为它已经达到了最大数量的应用(5)。
[0032]在实施例中,响应于此,移动装置110.1-110.8上的至少一个应用从其(当前)使用组移动到用于位置区域LA.1的对应的应用类型的不同(新)的使用组。该操作可以基于每个应用的使用优先权(例如,对于在正常用户的移动装置上运行的应用为低,对于在特权用户的移动装置上运行的应用为高)。在所讨论的示例中,如图2E所示,在移动装置110.5上运行的应用(被分配给使用组Gs)具有低优先权;因此,该应用可以从使用组Gs向下移动(即降级)到使用组Gb,以使得与有限的特征不同的特征不启用,然后可能不再使用。这样,使用组 Gs的应用变得低于其最大数量的应用(S卩,4〈5)。因此,移动装置110.8上的应用现在可以从使用组Gb移动到使用组Gs。[〇〇33]相反地,如图2F所示,在移动装置110.3上运行的应用(被分配给使用组Gs)具有高优先级;因此,该应用可以从使用组Gs向上移动(即升级)到使用组Gp,以使得所有的特征保持启用,但现在具有所保证的最小带宽。在这种情况下同样,使用组Gs的应用变得低于它的最大数量的应用(即,4〈5)。因此,移动装置110.8上的应用现在可以如上所述地从使用组Gb 移动到使用组Gs。
[0034]这样,所有的应用可被分配给对应的使用组(即使当它们的使用约束不被满足时);特别地,当一个或多个(较低优先权)应用被降级时,实现该结果但对使用要求不利,而当一个或多个(更高优先级)应用被升级时,实现相同的结果但对使用权重不利。
[0035]在实施例中,除了或代替上述的应用在使用组之间的移动,在相同的情况下,可提供恢复动作的指示(例如,在到可能没有被分配的每个应用的移动装置的消息中);恢复动作表示应当允许该应用被分配到满足其使用要求的使用组的操作。例如,恢复动作可建议移动装置从其(当前)位置区域移动到不同(新)的位置区域(诸如在同一公司的另一个场所)。在所讨论的示例中,如图2G所示,移动装置110.8可移动到位置区域LA.2中,其中使用组Gs的应用低于其最大数量的应用。因此,在位置区域LA.2中,移动装置110.8上的应用现在可被分配给使用组Gs。
[0036]这样,可以满足使用约束而不会不利地影响使用要求,也不影响使用权重(以对移动装置的用户带来一些负担为代价,诸如用户移动到不同的位置区域)。
[0037]现在参考图3,示出了可用于实现根据本公开的实施例的解决方案的主要软件组件300。软件组件300通常存储在大容量存储器中,并在程序运行时被加载(至少部分地)到对应的计算设备的工作存储器中。最初,程序例如从可移动存储单元或网络安装到大容量存储器中。在这方面,每个软件组件可表示代码模块、代码段或代码部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。[〇〇38]特别地,每个移动装置110(在图中仅示出一个)运行一个或多个应用205。移动装置110还运行启用代理210(例如,也由特定应用实现),其启用移动装置110上的(其它)应用 205的使用。为此,启用代理210可利用位置监视器215,其监视移动装置110随时间的的位置 (例如,通过其GPS接收机)。此外,启用代理210访问应用储存库220,其存储关于在移动装置上安装的所有应用205的信息。例如,应用储存库220可包括用于每个应用的条目;该条目指示应用的当前使用要求及其可能涉及应用的使用要求的变化的功能(在上述的示例中,诸如导致从基本模式过渡到标准模式的特征,反之亦然)。
[0039]应用控制服务器125运行启用服务器225,其控制在所选择的移动装置110(例如, 对应公司的雇员的所有移动装置)上运行的应用205的使用的启用。为此,启用服务器225与每个(所选择的)移动装置110的启用代理210进行交互。此外,启用服务器225与分配引擎 230协作,分配引擎230控制应用被分配到对应的使用组。分配引擎230利用位置检测器235, 其根据每个移动装置的位置确定其位置区域。为此,位置检测器235可利用接入点监控器 240,其监控连接到所选择的接入点的移动装置(例如,在公司的所有场所中)。位置检测器 235进一步访问位置区域储存库245,其存储多个预定义位置区域的定义;例如,对公司的每个场所定义位置区域(如由其一个或多个接入点标识),并且在公司的所有场所以外定义另外的位置区域。
[0040]此外,分配引擎230访问使用组储存库250,其存储关于所有可用的使用组的信息。 例如,使用组储存库250包括用于每个位置区域的条目,该条目包括用于可在该位置区域中使用的每个应用类型的条目,该用于每个应用类型的条目进而包括用于应用在该位置区域中运行时可被分配到的每个使用组的条目;该条目表示用于在该位置区域中的应用类型的使用特性、使用权重和使用约束以及有关在此时被分配给使用组的对应的应用的信息(诸如它们的应用数量)。使用特性规定对应的应用程序可以在移动装置上如何使用。例如,使用特性可按照功能或性能来定义;这些使用特性的例子是启用特征、可访问的内容、所保证的性能。使用权重定义使用组如何有助于对应的应用的分配的优化。例如,使用权重可根据在经济费用或资源消耗方面由对应的应用的使用而引起的成本来定义;这些使用权重的例子是将要支付的金额、估计的带宽消耗或处理功率消耗。使用约束定义对应的应用被分配给使用组应当满足的条件。例如,使用约束可以根据商业或技术的考虑来定义;这些使用约束的例子是可运行的最大数量的应用、可使用的最大资源量(根据对应的许可条件或资源可用性)。
[0041]分配引擎230进一步访问移动装置储存库255,其存储有关所有移动装置的信息。 例如,移动装置储存库255包括用于每个移动装置的条目;用于移动装置的条目表示它此时的位置区域。进而,用于移动装置的条目包括用于在其上安装的每个应用的条目;用于应用的条目表示其应用类型、使用要求、使用优先权和此时它被分配到的可能的使用组。使用要求定义应用应当在移动装置上如何使用。例如,使用要求可对于每个应用单独定义,或者对于每个移动装置(或用户)全局定义,以静态方式或者以动态方式;这些使用要求的例子是如特征、内容、性能(例如,服务质量(QoS)的最小值,测量的指标,诸如带宽、响应时间)那样的所需功能。使用优先权定义用于应用被分配到对应的使用组的偏好的顺序。例如,使用优先权也可以对于每个应用程序单独定义或者对于每个移动装置(或用户)全局定义,以静态方式或者以动态方式;这些使用优先权的例子是取决于移动装置的用户的角色的值、取决于应用的许可所支付的金额的值、取决于应用关于其使用的等待时间的值。
[0042]现在参考图4,示出了描述与根据本公开的实施例的解决方案的实现有关的活动流的活动图。[〇〇43] 特别地,该图表示由应用控制服务器采用方法400控制对应的移动装置上的应用的使用的示例性过程。在这方面,每个框可代表用于实现应用控制服务器上的指定逻辑功能的一个或多个可执行指令。[〇〇44]当可能导致应用的使用改变的变化事件发生时,过程就从框403开始到达框406。 这可以在移动装置改变其位置区域时、应用改变其使用要求时(包括其起始)、或者在应用停止时发生。例如,位置检测器监视每个移动装置的位置(如由接入点监视器提供);位置检测器检测移动装置从一个位置区域移动到另一个位置区域时该移动装置的位置区域的任何变化(如在位置区域储存库中定义的),并向分配引擎通知该变化。此外,在每个移动装置上的启用代理监视在其上运行的应用;启用代理检测应用的使用要求的任何变化(通过将功能的任何所需变化与应用储存库相比较)或其停止。响应于此,启用代理向启用服务器通知该变化,启用服务器将该变化转发到分配引擎。
[0045]响应于任何变化事件,首先,启用代理更新与前一个情况有关的信息。具体地,对于其移动装置已经离开(旧的)位置区域或者已经停止的每个应用程序,分配引擎相应地更新移动装置储存库中的对应的条目(递减其使用组的应用数量)。此外,分配引擎验证一个或多个应用是否已从该(原始)使用组降级/升级到另一个(当前)使用组(如以下所描述的)。如果是,则分配引擎选择这些降级/升级的应用中将被恢复到其原始使用组的应用;例如,分配引擎根据其配置对升级的应用程序或降级的应用程序给予特权;以使用优先权的升序、然后对于相同的使用优先权以分配到当前使用组的时间的降序来选择升级的应用程序,或者以使用优先权的降序、然后对于相同的使用优先权以分配到当前使用组的时间的升序来选择降级的应用程序。分配引擎将所选择的(降级/升级的)应用从当前使用组移回到原始使用组;相应地,分配引擎更新移动装置储存库(指示所选择的应用程序现在被分配给原始使用组)和使用组储存库(递减当前使用组的应用数量,并递增原始使用组的应用数量)。然后,启用代理更新与新的情况有关的信息。具体地,启用代理更新移动装置储存库中用于改变位置区域的移动装置的条目或用于改变使用要求的应用的条目。
[0046]然后,执行用于处理受影响的应用(S卩,在改变位置区域的移动装置上运行的所有应用或改变使用要求的特定应用)的循环。循环在框409处开始,其中分配引擎考虑当前的受影响的应用(以任意顺序从第一个开始)。在框412处,分配引擎从移动装置储存库取得有关当前应用的信息(即,其应用类型、使用要求和对应的移动装置的当前位置区域)。继续到框415,分配引擎从使用组储存库取得有关用于当前位置区域的该应用类型的所有使用组的信息(即,使用特性、使用权重、使用约束、所分配的应用);这些使用组(是用于当前应用的分配的候选)以使用权重的升序来排列。
[0047]执行用于处理候选使用组的另一个循环。循环在框418处开始,其中分配引擎考虑当前的候选使用组(按使用权重的升序从第一个开始)。在框421处,分配引擎将当前使用组的使用特性与当前应用的使用特性进行验证;然后,活动流根据该验证的结果来分支。如果当前使用组的使用特性满足当前应用的使用特性(意味着它适合于具有最低使用权重的当前应用的分配),则在框424处,分配引擎进一步将当前使用组的所分配的应用与它的使用约束进行验证。如果当前使用组的所分配的应用允许当前应用添加到当前使用组(例如,当应用数量低于最大数量时),活动流前进到框427。在该阶段,分配引擎将当前应用分配给当前使用组;相应地,分配引擎更新移动装置储存库(指示当前应用被分配到当前使用组)和使用组储存库(递增当前使用组的应用数量,可能递减其前一个使用组的应用数量)。
[0048]相反,如果在框424处分配引擎确定当前使用组的所分配的应用不允许当前应用添加到当前使用组(即,在所讨论示例中,当应用数量已经达到最大数量时),则活动流前进到框430。在这种情况下,当前应用可能不被分配给当前使用组,S卩,适合于满足具有最低使用权重的当前应用的使用要求的使用组;因此,活动流根据分配引擎的配置来分支。
[0049]具体地,如果分配引擎被配置成对使用权重给予特权(对使用要求不利),则在框 433处,分配引擎搜索具有较低使用权重(以降序)的当前应用的相同应用类型的任何其它 (新)使用组,该新使用组适合于接收另一个应用的添加(即,在所讨论示例中,应用数量低于最大数量)。活动流根据该搜索的结果进一步在框436处分支。如果已经发现新使用组,则在框439处,分配引擎在当前应用和分配给当前使用组的相同应用类型的应用程序中选择用于降级到新使用组的应用(例如,以使用优先权的升序,然后对于相同的使用优先权以分配到当前使用组的时间的降序);此时,如果需要,分配引擎将当前应用分配到当前使用组 (如上所述地更新对应的信息),然后将所选择的应用从当前使用组移动到新使用组,并相应地更新移动装置储存库(指示所选择的应用现在被分配给新使用组)和使用组储存库(如果需要,递减当前使用组的应用数量,并递增新使用组的应用数量)。
[0050]返回到框430,如果分配引擎被配置成对使用要求给予特权(对使用权重不利),则在框442处,分配引擎搜索具有较高使用权重(以升序)的当前应用的相同应用类型的任何其它(新)使用组,该新使用组适合于如上所述地接收另一个应用程序的添加。活动流根据该搜索的结果进一步在框445处分支。如果已经发现新使用组,则在框448处,分配引擎在当前应用和分配给当前使用组的相同应用类型的应用中选择用于升级到新使用组的应用(例如,以使用优先权的降序,然后对于相同的使用优先权以分配到当前使用组的时间的升序);此时,分配引擎将当前应用分配到当前使用组,然后将所选择的应用从当前使用组移动到新使用组,如上所述。[〇〇51] 活动流从框427、框439或框448到达框451。此时,分配引擎向启用服务器通知已经发生的变化(即,伴随所选择的应用的可能降级/升级的当前应用的分配);启用服务器然后通过向这些应用的移动装置的启用代理发送对应的消息来相应地启用这些应用程序的使用(启用/禁用对应的功能)。[〇〇52] 返回到框436,如果没有应用程序可被降级,则在框454处,分配引擎验证用于应用的升级的使用组是否已经被搜索到。如果没有,则活动流返回到框442,以便尝试升级应用,如上所述。同样,返回到框445,如果没有应用可被升级,则在框457处,分配引擎验证用于应用的降级的使用组是否已经被搜索到。如果没有,则活动流返回到框433,以便尝试降级应用,如上所述。
[0053]返回到框421,如果当前使用组的使用特性不满足当前应用的使用特性,则在框 460处,分配引擎验证最后一个候选使用组是否已经被考虑。如果没有,则过程返回到框418 以对下一个候选使用组(具有较高使用权重)重复相同的操作。相反(g卩,当在当前位置区域中没有使用特性可以满足当前应用的使用要求的使用组可用时),活动流前进到框463;当没有应用可被降级或升级以允许将当前应用分配给当前使用组时,从框454或框457也到达同一点。此时,分配引擎确定可在允许当前应用的分配的尝试中执行的任何动作;例如,分配引擎可以按与当前位置区域之间的距离的降序搜索不同(新)的位置区域,其中在当前应用的同一个移动装置上运行的所有应用可以被分配给使用组(通过重复上述的相同操作)。 继续到框466,分配引擎向启用服务器通知这些恢复动作(例如,当新位置区域被发现时建议移动到新位置区域,或者指示不可能在此时使用当前应用),启用服务器进而将这些恢复动作转发到当前应用的移动装置的启用代理,以用于显示。[〇〇54]然后,活动流从框451或框466到达框469。此时,分配引擎验证最后一个受影响的应用是否已经被考虑。如果没有,则过程返回到框409,以对下一个受影响的应用程序重复相同的操作。相反,活动流返回到框403,等待下一个变化事件。
[0055]当然,为了满足局部和特定要求,本领域的技术人员可以对本公开应用许多逻辑和/或物理的修改和改动。更具体地,尽管本公开已经参考一个或多个实施例以一定程度的特殊性进行了描述,但是应当理解,也可以在形式和细节以及其它实施例中进行各种省略、 替换和改变。特别地,本公开的不同实施例甚至可以执行,而无需在前面的描述中阐述的提供更透彻的理解的特定细节(诸如数值);相反,众所周知的特征可被省略或简化,以免用不必要细节模糊描述。此外,显然可以将结合本公开的任何实施例描述的特定元件和/或方法步骤与任何其它实施例结合,作为一般设计选择。在任何情况下,序数或其它限定符仅用作标记以区分具有相同名称的元件,但本身并不意味着任何优先、排名或顺序。此外,术语“包括”、“包含”、“具有”、“含有”和“涉及”(及其任何形式)应当旨在具有开放、非穷举的含义 (即,并不限于所列举的项目),术语“基于”、“取决于”、“根据”、“……的函数”(及其任何形式)应当旨在作为非排他的关系(即,具有可能的其它变量),术语“一 / 一个”应当旨在作为一个或多个项目(除非另外明确指出),术语“用于……的部件”(或任何“部件加功能”的表述)应当旨在作为任何适于或被配置为执行相关功能的结构。
[0056]例如,实施例提供了用于控制一个或多个移动计算装置上的一个或多个软件程序的使用的方法。然而,该方法可用于控制软件程序的任何使用(例如,在任何组织中或在对应的在线商店中的运行或甚至只是下载)。软件程序可以是任何数量和任何类型的(例如, 出于任何目的的应用,诸如电子邮件客户端、远程银行服务、导航器、或窗口小部件、代理), 并且可以在任何数量和类型的移动计算装置(例如,上网本)上运行。[〇〇57]在实施例中,该方法包括监视每个移动计算装置的位置的指示,以便确定(在多个位置区域中)移动计算装置的位置区域。然而,移动装置的位置可以用任何方式指示(例如, 通过GPS坐标、移动电话小区、IP地址),并可以用任何方式来监视(例如,通过移动装置本身);此外,移动装置的位置区域可以用任何方式来确定(例如,在移动装置上通过比较GPS坐标和预定的范围),位置区域可以是任何数量和任何类型的(例如,诸如州或城市的地理区域,,诸如学校、博物馆、购物中心的已知机构,可能具有用于位置未知的移动装置的默认位置区域)。
[0058]在实施例中,该方法包括将每个软件程序分配给(在用于对应的移动计算装置的位置区域的该软件程序的软件程序类型的多个使用组中的)使用组。对于每个位置区域,每个软件程序类型的软件程序被分配给对应的使用组,该使用组提供满足每个软件程序的一个或多个使用要求的一个或多个使用特性;这根据取决于每个使用组的一个或多个使用权重的一个或多个优化标准来执行。然而,使用组可以是任何数量的,每个使用组都具有任何数量和类型的使用特性和使用权重,每个软件程序可以具有任何数量和类型的使用要求 (参见下面)。此外,软件程序可以根据任何数量和类型的优化标准被分配给使用组;例如, 该操作可以通过优化(即,最小化或最大化)任何基于使用权重的目标函数(例如,根据移动装置的特性区分使用权重的贡献,例如,随处理功率增加)来解析地执行。在任何情况下,该操作可在任何时间执行(例如,响应于任何配置变化或对应的命令,周期性地对于每个位置区域的移动计算装置上的所有软件程序)。
[0059]在实施例中,该方法包括根据对应的使用组的使用特性,启用每个软件程序的使用。然而,软件程序的使用可以以任何方式启用,即使仅对于有限的时间段(例如,通过将对应的令牌下载到移动装置)。
[0060]在实施例中,至少一个软件程序的使用要求包括该软件程序的一个或多个性能指标的要求值。然而,(任何数量的软件程序的)使用要求可包括任何数量和类型的性能指标的要求值(例如,延迟、数据传输率)。在实施例中,至少一个使用组的使用特性包括对应的软件程序类型的一个或多个性能指标的最小值。然而,(任何数量的使用组的)使用特性可包括任何数量和类型的性能指标的最小值(见上文)。在实施例中,至少一个软件程序的使用要求包括该软件程序的一个或多个所需特征。然而,(任何数量的软件程序的)使用要求可以包括任何数量和类型的所需特征(例如,组件的启用、资源的分配)。在实施例中,至少一个使用组的使用特性包括对应的软件程序类型的一个或多个启用特征。然而,(任何数量的使用组的)使用特性可包括任何数量和类型的启用特征(见上文)。更一般地,使用要求和使用特性可以采用不同的、可替代的或附加的方式定义(例如,仅通过性能指标,仅通过特征,通过性能指标和特征的任意组合,通过服务水平协议或SLA)。
[0061]在实施例中,至少一个使用组的使用权重包括对应的软件程序类型的一个或多个许可成本指标。然而,(任何数量的使用组的)使用权重可包括任何数量和类型的许可成本指标(例如,最多阈值数量的软件程序的固定金额以及用于每个额外的软件程序的定额,用于不同类型的移动计算装置的不同成本)。更一般地,使用权重可以采用不同的、可替代的或附加的方式定义(例如,通过资源消耗指标,通过许可成本指标和资源消耗指标的任何组合)。
[0062]在实施例中,所述将每个软件程序分配给使用组的步骤包括:对于每个位置区域, 进一步根据用于该位置区域的软件程序类型的使用组的一个或多个使用约束,将每个软件程序类型的软件程序分配给用于该位置区域的软件程序类型的使用组。然而,任何数量的使用组(下至没有)可包括任何数量和类型的使用约束(例如,软件程序在其中运行的移动计算装置的最大总处理功率,分配给软件程序的最大总带宽,诸如最大使用时间的特定使用策略)。
[0063]在实施例中,所述将每个软件程序分配给使用组的步骤包括:对于每个位置区域, 将至少一个软件程序从对应的使用组移动到用于该位置区域的对应的软件程序类型的不同使用组。然而,任何数量的软件程序可以被移动到任何不同的使用组(例如,仅将其升级, 仅将其降级,按照使用权重仅将其移动到直接相邻的使用组);在任何情况下,该特征在简化的实现中也可以省略。
[0064]在实施例中,所述将每个软件程序分配给使用组的步骤包括:对于每个位置区域, 根据该位置区域中软件程序类型的每个软件程序的使用优先权,将至少一个软件程序从对应的使用组移动到用于该位置区域的对应的软件程序类型的不同使用组。然而,使用优先权可以采用任何方式定义(例如,具有一定范围的值,仅仅低/高,在未指定时具有默认值); 此外,软件程序移动到不同使用组可以采用任何方式根据使用优先权执行(例如,具有防止降级和/或升级的相同值)。在任何情况下,该操作可以基于不同的、可替代的或附加的标准,即使不使用任何使用优先权(例如,根据软件程序的过去的或剩余的运行时间)。
[0065]在实施例中,该方法包括以下步骤:响应于软件程序中的至少一个不可分配软件程序不能分配给任何使用组,向对应的移动计算装置提供至少一个恢复动作的指示,以用于允许将每个不可分配软件程序分配给使用组。然而,该操作可以响应于不同的、可替代的或附加的事件执行(例如,当应用的分配成本超过阈值时),或者该操作可以完全省略。此夕卜,恢复动作可以是任何数量和任何类型的(见下文),并且它们可以采用任何方式提供给移动计算装置(例如,经由通知、短消息服务(SMS)、电子邮件)。
[0066]在实施例中,所述提供至少一个恢复动作的指示的步骤包括用于每个不可分配软件程序的以下操作。选择至少一个新位置区域(不同于不可分配软件程序的移动装置的位置区域),其中,将不可分配软件程序分配给使用组是可能的;向不可分配软件程序的移动计算装置提供所述至少一个新位置区域的指示。然而,该新位置区域可以以任何数量和任何方式(例如,只在预定距离内)选择,并且其任何指示(例如,相应的描述性名称)可以以任何方式提供给移动计算装置(见上文)。更一般地,可以设想不同的、可替代的或附加的恢复动作(例如,建议使用不同的软件程序)。
[0067]—般地,如果用等效的方法实现相同的解决方案,则类似的考虑适用(通过使用多个步骤或其部分的具有相同功能的类似步骤,通过除去非本质的一些步骤,或者通过增加另外的可选步骤);此外,这些步骤可以按不同的顺序、同时或者以交叉的方式(至少部分地)执行。
[0068]实施例提供了计算机程序,该计算机程序被配置以当计算机程序在计算系统上执行时使该计算系统执行如上所述的相同方法。实施例提供了用于控制一个或多个移动计算装置上的一个或多个软件程序的使用的计算机程序产品;该计算机程序产品包括具有程序指令的计算机可读存储介质,其中程序指令可由计算系统执行,以使该计算系统执行如上所述的相同方法。然而,程序可被实现为独立的模块、用于既存应用(例如,许可应用)的插件、或者甚至直接在后者中实现;此外,程序可以在任意数量和类型的服务器上实现(例如, 作为服务)或者甚至部分或全部在移动计算装置上实现。
[0069]本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形装置。计算机可读存储介质例如可以是一一但不限于一一电存储装置、磁存储装置、光存储装置、电磁存储装置、半导体存储装置或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、 可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理装置, 或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储装置。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理装置中的计算机可读存储介质中。用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA) 指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如 Smalltalk、C++等,以及常规的过程式编程语言一诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。这里参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他装置以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。也可以把计算机可读程序指令加载到计算机、其它可编程数据处理设备、或其它装置上,使得在计算机、其它可编程数据处理设备或其它装置上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理设备、或其它装置上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0070]实施例提供了被配置以执行相同方法的步骤的系统。然而,该方法也可以在基于不同体系结构的系统(例如,本地网络、广域网、全球网、蜂窝网络或卫星网络)上执行,并利用任何类型的(有线和/或无线)连接。[〇〇71] —般地,如果系统具有不同的结构或包括等同组件或者具有其它操作特性,则类似的考虑适用。在任何情况下,每个组件可被分离成多个元件,或者两个或更多个组件可被组合在一起成为单个元件;此外,每个组件可被复制以支持对应的操作的并行执行。此外, 除非另外指出,不同组件之间的任何交互通常不需要是连续的,并且可以是直接的或者是通过一个或多个媒介间接的。
【主权项】
1.一种用于控制一个或多个移动计算装置上的一个或多个软件程序的使用的方法,所 述方法包括:监视每个移动计算装置的位置的指示,以确定多个位置区域中所述移动计算装置的位 置区域;将每个软件程序分配给用于对应的移动计算装置的位置区域的所述软件程序的软件 程序类型的多个使用组中的使用组,其中对于每个位置区域,根据取决于每个使用组的一 个或多个使用权重的一个或多个优化标准,每个软件程序类型的软件程序被分配给对应的 使用组,该使用组提供满足每个软件程序的一个或多个使用要求的一个或多个使用特性; 以及根据对应的使用组的使用特性,启用每个软件程序的使用。2.根据权利要求1所述的方法,其中,至少一个软件程序的使用要求包括该软件程序的 一个或多个性能指标的要求值,至少一个使用组的使用特性包括对应的软件程序类型的一 个或多个性能指标的最小值。3.根据权利要求1所述的方法,其中,至少一个软件程序的使用要求包括该软件程序的 一个或多个所需特征,至少一个使用组的使用特性包括对应的软件程序类型的一个或多个 启用特征。4.根据权利要求1所述的方法,其中,至少一个使用组的使用权重包括对应的软件程序 类型的一个或多个许可成本指标。5.根据权利要求1所述的方法,其中,所述将每个软件程序分配给使用组包括:对于每 个位置区域,进一步根据用于所述位置区域的软件程序类型的使用组的一个或多个使用约束,将每 个软件程序类型的软件程序分配给用于所述位置区域的软件程序类型的使用组。6.根据权利要求5所述的方法,其中,所述将每个软件程序分配给使用组包括:对于每 个位置区域,将至少一个软件程序从对应的使用组移动到用于所述位置区域的对应的软件程序类 型的不同的使用组。7.根据权利要求6所述的方法,其中,所述将每个软件程序分配给使用组包括:对于每 个位置区域,根据所述位置区域中的软件程序类型的每个软件程序的使用优先权,将至少一个软件 程序从对应的使用组移动到用于所述位置区域的对应的软件程序类型的不同的使用组。8.根据权利要求1所述的方法,其中,响应于所述软件程序中的至少一个不可分配软件 程序不能分配给任何使用组,所述方法进一步包括:向对应的移动计算装置提供至少一个恢复动作的指示,以用于允许将每个不可分配软 件程序分配给使用组。9.根据权利要求8所述的方法,其中,所述提供至少一个恢复动作的指示包括:对于每 个不可分配软件程序,选择与所述不可分配软件程序的移动装置的位置区域不同的至少一个新位置区域,其 中,所述将不可分配软件程序分配给使用组是可能的;以及向所述不可分配软件程序的移动计算装置提供所述至少一个新位置区域的指示。10.—种用于控制一个或多个移动计算装置上的一个或多个软件程序的使用的系统, 所述系统包括:位置检测器,其被配置为监视每个移动计算装置的位置的指示,以确定多个位置区域 中所述移动计算装置的位置区域;分配引擎,其被配置为将每个软件程序分配给用于对应的移动计算装置的位置区域的 软件程序的软件程序类型的多个使用组中的使用组,其中,对于每个位置区域,根据取决于 每个使用组的一个或多个使用权重的一个或多个优化标准,每个软件程序类型的软件程序 被分配给对应的使用组,该使用组提供满足每个软件程序的一个或多个使用要求的一个或 多个使用特性;以及启用服务器,其被配置为根据对应的使用组的使用特性,启用每个软件程序的使用。11.根据权利要求10所述的系统,其中,至少一个软件程序的使用要求包括所述软件程 序的一个或多个性能指标的要求值,至少一个使用组的使用特性包括对应的软件程序类型 的一个或多个性能指标的最小值。12.根据权利要求10所述的系统,其中,至少一个软件程序的使用要求包括所述软件程 序的一个或多个所需特征,至少一个使用组的使用特性包括对应的软件程序类型的一个或 多个启用特征。13.根据权利要求10所述的系统,其中,至少一个使用组的使用权重包括对应的软件程 序类型的一个或多个许可成本指标。14.根据权利要求10所述的系统,其中,所述分配引擎还被配置为进一步根据用于所述 位置区域的软件程序类型的使用组的一个或多个使用约束,将每个软件程序类型的软件程 序分配给用于每个位置区域的软件程序类型的使用组。15.根据权利要求14所述的系统,其中,所述分配引擎还被配置为将至少一个软件程序 从对应的使用组移动到用于每个位置区域的对应的软件程序类型的不同的使用组。16.根据权利要求15所述的系统,其中,所述分配引擎还被配置为根据所述位置区域中 的软件程序类型的每个软件程序的优先权,将至少一个软件程序从对应的使用组移动到用 于每个位置区域的对应的软件程序类型的不同的使用组。17.根据权利要求10所述的系统,其中,所述分配引擎还被配置为响应于所述软件程序 中的至少一个不可分配软件程序不能分配给任何使用组,向对应的移动计算装置提供至少 一个恢复动作的指示,以用于允许将每个不可分配软件程序分配给使用组。18.根据权利要求17所述的系统,其中,所述分配引擎还被配置为对于每个不可分配软 件程序,选择所述位置区域中的与所述不可分配软件程序的移动装置的位置区域不同的至 少一个新位置区域,其中,所述将不可分配软件程序分配给使用组是可能的,以及向所述不 可分配软件程序的移动计算装置提供所述至少一个新位置区域的指示。
【文档编号】G06F9/445GK105956422SQ201610126243
【公开日】2016年9月21日
【申请日】2016年3月7日
【发明人】M·阿尔切塞, G·西亚诺, C·马里内利, L·皮凯蒂
【申请人】国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1