利用动态动作委托运行软件应用_3

文档序号:9672522阅读:来源:国知局
务Se根据不同测量判定在本地还是在远程委托执行app动作。例如,当电池电量低于阈值时,在远程委托执行app动作,而当可用无线连接的带宽低于阈值时,在本地委托执行app动作。
[0040]当评估服务Se判定在远程委托执行app动作时,评估服务Se将用于发现远程移动设备的相应可用性的显式意图提交给发现服务Sd,操作系统305将该发现服务Sd直接绑定到其(06.Discover)。作为对其的响应,发现服务Sd对(例如,连接到同一个WiFi点的或者连接到同一个电信小区的)移动设备附近的任何远程移动设备广播请求执行app动作的可用性的意图,该图中仅示出一个远程移动设备。利用带撇号的符号100’区分的每个远程移动设备具有操作系统305’和类似委托app (利用320表示),其同样包括代理服务(利用Sp’表示)、评估服务(利用Se’表示)、测量服务(利用Sm’表示)和发现服务(利用Sd’表示);委托app320’具有类似的清单文件325’(对app的动作具有不同的意图过滤器,该图中未示出)。请求执行app动作的可用性的意图对于发现服务Sd’是显式的,使得操作系统305’将发现服务Sd’直接绑定到其(07.Request)。
[0041]根据一个或者多个的一组策略(例如,从该图中未示出的相应内容提供商读取),发现服务Sd’判定远程移动设备100’是否可用于执行app动作。为此,可以执行不同策略。首先,发现服务Sd’确定远程移动设备100’是否具有app意图要求的所有特征(即,所讨论的例子中的气压计)。如果未找到要求的特征,则始终使远程移动设备100’可用。相反,关于远程移动设备100’的可用性的判定基于其一个或者多个选择量度。在这种情况下,发现服务Sd’提交测量服务Sm’测量量度的显式意图,操作系统305’将发现服务Sd’直接绑定到其(如上所述,利用在相应意图或者硬编码中在发现服务Sd’级定义的由评估服务Se’传递的量度)。测量服务Sm’测量量度并且使其指示返回发现服务Sd’ (08.Measure) 0然后,发现服务Sd’可以判定使远程移动设备100’可用而不根据不同策略。例如,可以使远程移动设备100’仅对其他预授权的移动设备(例如,同一个组织的)可用。此外,当电池电量高于第一阈值时,可以使远程移动设备100’可用,以仅共享app意图要求的特征,而电池电量高于第二阈值(大于第一阈值)时,可以使远程移动设备100’可用,以执行app动作。发现服务Sd’将指出远程移动设备100’的可用性(即,完全可用、部分可用或者不可用)响应与其例如其处理能力、工作存储器容量、传感器特性的可能特性一起返回移动设备100的发现服务 Sd(09.Response)。
[0042]假定发现服务Sd已经找到一个或者多个可用于执行(完全地或者部分地)app动作的远程移动设备100’,则其根据一个或者多个的一组策略(例如,从该图中未示出的相应内容提供商读取)选择远程移动设备100’中的一个。为此,可以执行不同的策略。首先,发现服务Sd对完全可用于执行app动作的远程移动设备100’给予优先;如果多个远程移动设备100’保持,则可以基于远程移动设备100’的特性(如以相应响应方式返回的)并且/或者基于相应连接(例如,类型和带宽)选择。然后,发现服务Sd将完全或者仅部分地可用于执行app动作的远程移动设备100’ (如果存在)的指示返回评估服务S2(010.Availability)。
[0043]总之,评估服务Se将app意图的评估结果返回代理服务Sp ;该结果指出是必须在本地或者必须在远程执行app动作,并且对于后者情况,其还指出完全地或者部分地可用于这样做的远程移动设备100’ (动作Oil.Decis1n)。
[0044]当必须在本地执行app动作时,代理服务Sp提交服务S0执行app动作的显式意图,操作系统305将该服务S0绑定到其。然后,激活服务S0,以执行app动作(即,在所讨论的例子中,测量本地大气压力并且根据其随着时间的变化确定天气预报);服务S0将执行app动作的任何结果(S卩,在所讨论的例子中,本地大气压力和天气预报)返回代理服务Sp(012.Local)。
[0045]相反,假定已经找到完全可用于执行app动作的远程移动设备100’,则代理服务Sp将使得执行app动作的意图发送到其;该意图还包括app 310的映像(或者至少服务S0)。使得执行app动作的意图对于代理服务Sp’是显式的,使得操作系统305’直接将该代理服务Sp’绑定到其(013.Remote)。在对此做出响应时,代理服务Sp’例示虚拟机330 (例如,利用Quick EMUlator或者QEMU)模拟移动设备100。然后,代理服务Sp’由相应映像创建app 310的克隆(称为克隆app 310’),因此,该克隆app 310包括相同的活动(利用A0’、A1’表示)和相同的服务(利用S0’表示)(014.Clone)。这样,利用用作用于使远程移动设备100’屏蔽克隆app 310’的隔离层的虚拟机330,克隆app 310’可以运行于任何操作系统305’ (即使与移动设备100的操作系统305不同)上。在这方面,代理服务Sp’提交服务S0’执行app动作的显式意图,操作系统305’使服务S0’直接绑定到其。然后,激活服务S0’,以执行app动作(S卩,在所讨论的例子中,测量本地大气压力并且根据其随着时间的变化确定天气预报);服务S0’使app动作的执行结果(即,在所讨论的例子中,本地大气压力和天气预报)返回代理服务Sp’ (015.Execute) 0这样,远程移动设备100’执行的动作基于在移动设备100的附近测量的值。在这种状况下,术语“附近”旨在参考销用测量值的动作。换句话说,远程移动设备100’应当以可接受的精确度测量表示其在移动设备100所在位置处的值的物理量(与其位置有关)(S卩,同一个WiFi区域或者电信小区内的本地大气压力)。代理服务Sp’又将此结果返回代理服务Sp (016.Return)。
[0046]总之,代理服务Sp —通过代理服务Sp’ (A16)从服务SO (A12)或者从服务S0’收到执行app动作的结果,代理服务Sp就使其返回活动A0(017.Result)。然后,正常继续运行app 310。这样,已经在本地或者在远程执行app动作的事实对app 310不透明(除了稍许性能不同),app 310完全不知执行其的移动设备100的能力。
[0047]在上述技术中,(由委托app 320)在应用级执行委托执行动作。因此,可以实现要求的结果,既无需要求操作系统305没有变化(或者最低配置变更),也无需要求特定程序模型变化。实际上,app 310未变化,S卩,仍写入其,以在本地运行,而无需强迫特定改造或者任何量测工具;此外,利用其本机的或者内置的机构(最多需要改变app的分布策略,以使其甚至安装于没有其要求特征的移动设备上),由操作系统305象使用一样管理。
[0048]现在参考图4,示出表示可以用于实现本公开实施例的另一个示例性应用场景的主软件单元的角色的合作图。
[0049]该场景与上述场景的不同之处在于,已经找到只能用于共享app意图要求的特征的远程移动设备100’(但是不完全执行其);典型例子是意图app要求的传感器,但是其不位于移动设备100上。在这种情况下,当代理服务Sp从评估服务Se收到评估app意图的评估结果时(011),其将使得共享传感器的意图发送到远程移动设备100’ ;如上所述,使得共享传感器的意图对代理服务Sp’是显式的,因此,操作系统305’将代理服务Sp’直接绑定到其(013.1.Share)。在对此做出响应时,代理服务Sp’激活该传感器(即,所讨论的例子中的气压计)。然后,代理服务Sp’使相应物理量的测量值(即,所讨论的例子中的本地大气压力)返回代理服务Sp’ (015.1.Sense) 0代理服务Sp’又使该测量值返回代理服务Sp(016.1.Return)。
[0050]在这方面,代理服务Sp将使得执行app动作的意图发送到云环境405 ;该意图还包括app 310的映像(或者至少服务S0的)和测量值。云环境405根据服务按需提供计算资源(例如,按使用计费);云提供商使云服务可用,在请求时,云提供商提供、配置表情释放云资源(使得一般情况下,它们是虚拟类型的,其实际实现对用户完全不透明)。在该特定情况下,云环境405包括模拟移动设备(下面称为虚拟移动设备100”)的虚拟机;为此,虚拟移动设备100”具有相同的操作系统(利用305”表示)和简化委托app (利用320”表示),该简化委托app仅包括具有其清单文件(利用325”表示)的代理服务(利用Sp”表示)。使得执行app动作的意图对于代理服务Sp”是显式的,使得操作系统305”将代理服务Sp”直接绑定到其(13.2.Virtual) ο然后,代理服务Sp’由相应映像创建app 310的克隆(称为克隆app 310”),然后,该克隆app 310”包括相同的活动(利用A0”、A1”表
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1