CN105431826A - 利用动态动作委托运行软件应用 - Google Patents

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

Info

Publication number
CN105431826A
CN105431826A CN201480043044.0A CN201480043044A CN105431826A CN 105431826 A CN105431826 A CN 105431826A CN 201480043044 A CN201480043044 A CN 201480043044A CN 105431826 A CN105431826 A CN 105431826A
Authority
CN
China
Prior art keywords
action
component
remote
computing machine
trust
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480043044.0A
Other languages
English (en)
Other versions
CN105431826B (zh
Inventor
C.马林利
L.皮切蒂
A.多纳特利
G.兰弗朗奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN105431826A publication Critical patent/CN105431826A/zh
Application granted granted Critical
Publication of CN105431826B publication Critical patent/CN105431826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

提供了一种在计算机器上运行软件应用的解决方案。相应方法(O1-O17)包括:注册(O1)委托组件的能力,以在计算机器上执行一个或者多个的一组动作,每个动作由该动作的至少一个特性定义;通过委托组件从软件应用接收(O2-O3)用于执行动作中的一个的请求,根据委托组件的注册,请求在运行时绑定到委托组件;以及根据至少一个本地组件的可用性,委托组件将动作的执行委托(O4-O17)到能够执行动作的至少一部分的计算机器的至少一个本地组件和/或者能够执行动作的至少一部分的至少一个远程计算机器的至少一个远程组件。

Description

利用动态动作委托运行软件应用
技术领域
本公开涉及数据处理领域。更具体地说,本公开涉及软件应用的运行。
背景技术
软件程序在计算机器上按照常规运行,以执行任何有用任务。典型例子是移动应用(或者简称app),移动应用是为了在移动设备(例如,智能电话和平板电脑)上运行而设计的软件应用。最近几年,随着其数量和式样的爆炸式增长,该app越来越普及。
特别是,该app提供范围广阔的丰富功能(例如,执行位置、环境、增强现实服务)。这牵涉增加请求移动设备的(硬件和/或者软件)资源。例如,该app可以牵涉高能消耗;此外,该app可以请求不同的传感器测量相应物理量(诸如,用于测量大气压力的气压计)。
然而,移动设备的能力不可能跟上app的发展。因此,某些app可能不能在特定移动设备上运行,或者因为其固有限制或者因为其临时限制。特别是,当移动设备缺少app要求的资源时(例如,因为其具有低灵敏度的传感器或者其是老型号),移动设备可能固有地不能运行某些app;典型例子是当app要求移动设备上不存在的传感器时。此外,当app要求的资源瞬间不可用时,移动设备可能临时不能运行某些app;典型例子是当app要求高能耗抱歉电池电量低时。
因此,对于移动设备的固有限制,这要求利用更新并且更强大的型号更新其,同时具有相应成本;然而,移动设备的升级可能不容易(例如,因为预算制约)或者不适当(例如,当对要求资源的需要仅是偶尔时)。相反,对于临时限制,这就要求等待,直到要求的资源回归可用(例如,电池充电);然而,在许多实际情况下(例如,当马上需要一个信息时),相应延迟不可容忍。
作为一种选择,US-A-2012/0265884(在此通过引用合并其全部公开内容)建议了一种用于确定对移动设备和一个或者多个云提供商/在移动设备和一个或者多个云提供商之间分配执行代码成本的技术。可以根据属于移动设备和云提供商的执行分配数据,评定(或者确定)执行分配成本;例如,移动设备的功率消耗可以用作确定如何分配应用程序的weblet的因素。
特别是,“Towardsanelasticapplicationmodelforaugmentingthecomputingcapabilitiesofmobiledeviceswithcloudcomputing,XinwenZhang,AnugeethaKunjithapatham,SangohJeong,SimonGibbs,JournalMobileNetworksandApplicationsarchiveVolume16Issue3,June2011Pages270-284”(在此通过引用合并其全部公开内容)描述了一种弹性应用模型,该弹性应用模型使得能够利用云资源增强资源有限的移动设备的能力。该模型包含将单个用于分割为多个称为weblet的组件(其执行位置是透明的)和weblet执行配置的动态适应。
此外,“Clonecloud:elasticexecutionbetweenmobiledeviceandcloud,Yung-GonChun,SunghwanIhm,PetrosManiatis,MayurNaik,AshwinPatti,EuroSys'11ProceedingsofthesixthconferenceonComputersystems,Pages301-314”(在此通过引用合并其全部公开内容)建议了一种动态分析与动态剖面的组合,以在针对目标计算和通信环境优化执行时间和能量使用时,以细粒度自动分割应用。在运行时,通过使线程从处于选择点的移动设备迁移到云端中的仿制机、在此执行分割的剩余部分、以及将迁移线程重新集成到移动设备,进行应用分割。
然而,这样要求实质改变编程模型和/或者app运行的环境。
发明内容
在此提供本公开的简化发明内容,以有助于对本公开的基本理解;然而,发明内容的唯一目的是作为下面的更详细描述的前序,以简化方式引入本公开的一些概念,并且不能将其理解为其关键要素的鉴别,也不能理解为是对其范围的阐述。
在一般术语中,本公开基于动态地委托执行动作的想法。
特别是,独立权利要求阐述了本公开的一个或者多个方面,并且从属权利要求阐述了其有利特征,在此通过引用逐字合并所有权利要求的措辞(参考,对每个其他方面已做必要变更的特定方面提供任何有利特征)。
更具体地说,一个方面提供了一种在计算机器上运行软件应用的方法,其中根据所述至少一个本地组件的可用性,响应在运行时绑定到委托组件的相应请求,委托组件将执行动作委托到至少一个本地组件和/或者至少一个远程组件(能够执行该动作的至少一部分)。
另外方面提供了一种相应计算机程序(和相应计算机程序产品)。
另外方面提供了一种相应系统。
附图说明
参考下面的详细描述最好理解本公开的解决方案以及本公开的其他特征和优点,仅作为非限制性说明给出下面的详细描述,结合附图阅读下面的详细描述(其中为了简洁起见,利用相同或者类似的参考符号表示相应元件,并且不重复其解释,并且每个实体的名称既用于指出其类型又用于指出其属性-诸如数值、内容和代表性)。特别是:
图1示出计算机器的方框图,其中可以应用根据本公开实施例的解决方案,
图2示出根据本公开实施例的解决方案的示例性应用的图解说明,
图3示出表示可以用于实现本公开实施例的示例性应用场景的主软件单元的角色的合作图,以及
图4示出表示可以用于实现本公开实施例的另一个示例性应用场景的主软件单元的角色的合作图。
具体实施方式
特别是参考图1,方框图示出计算机器100,其中可以应用根据本公开实施例的解决方案。
特别是,计算机器100是移动设备,例如,智能电话或者平板电脑。移动设备100包括几个并联到母线结构105的单元。详细地说,微处理器(μP)110或许更多地控制移动设备100的操作;RAM115用作微处理器110的工作存储器,并且ROM120存储用于移动设备100的自举的基本代码。移动设备100还设置有大容量存储器125,该大容量存储器125包括内部闪速存储器和可能的外部闪速存储卡(诸如,SD类型的)。此外,例如,移动设备100具有输入/输出(I/O)单元130、移动电话收发信机(TX/RX)、WiFi类型的无线网接口卡(WNIC)、触摸屏、命令按钮、扬声器和麦克风。
现在参考图2,示出根据本公开实施例的解决方案的示例性应用的图解说明。
通用移动设备运行一个或者多个(移动)app。每个app都要求执行一个或者多个动作(例如,利用相应传感器测量物理量)。利用其一个或者多个特征(例如,名称)定义每个动作,从而之后动态地将动作绑定到运行时执行的实际组件。这样,app可以使用其他app的功能,而无需准确知道哪个其他程序提供其(分解为仅当需要时最适合执行其的组件的动作)。
在根据本公开实施例的解决方案中,移动设备还包括委托组件,该委托组件将自己注册为能够执行一组一个或者多个包括app的上述动作的动作(由相应特征定义)。
因此,当app需要执行动作时,委托组件收到相应请求(根据注册,在运行时,绑定到其)。
委托组件将动作的执行委托到或许更多地是移动设备的本地组件(能够执行动作,或者至少部分动作)并且/或者委托到或许更多地位于例如另一个移动设备上或者云环境上的或许更多地是远程计算机器的远程组件(能够执行动作,或者至少部分动作)。关于如何委托执行动作的判定基于本地组件的可用性。例如,当移动设备具有相应传感器时,在本地执行动作;相反,则完全在另一个移动设备上或者部分地在另一个移动设备上(共享相应传感器的)和云环境上(利用共享传感器测量的值)在远程执行动作。
这样,甚至当移动设备(或者更一般地说任何计算机器)不能支持app时(或者因为其固有限制,或者因为其临时限制),app(或者更一般地说任何软件应用)仍可以运行;特别是,当软件应用要求的资源或者在计算机器上没有(例如,因为其具有灵敏度低的传感器或者其是老型号)或者瞬间不可用(例如,因为其电池电量低)时,这是能够做到的。
因此,对于计算机器的固有限制,可以避免更新其(利用更新并且更强大的型号),同时节省相应成本;甚至当其更新不容易或者不适合时,软件应用仍可以运行(于可用计算机器上)。相反,对于计算机器的瞬间限制,当实际需要时,软件应用可以运行(无需等待到要求的资源回归可用)。
现在参考图3,示出表示可以用于实现本公开实施例的示例性应用场景的主软件单元的角色的合作图。
特别是,软件单元通常存储于大容量存储器中,并且当程序在运行时,(至少部分地)装载到移动设备的工作存储器中。首先,将程序从移动储存设备或者从网络(诸如因特网)安装在大容量存储器上。在这方面,每个软件单元都可以表示代码模块,代码分段或者代码部分,该代码模块,代码分段或者代码部分包括一个或者多个用于实现特定逻辑功能的可执行指令。特别是,该图既描述了软件单元的静态结构又描述了其动态性能(利用一系列交换消息,每个交换消息分别表示以符号“O”在前的序列号表示的相应操作)。
移动设备100具有直接在其硬件上运行的(移动)操作系统305,其硬件限定在上面运行任何其他程序的软件平台(例如,GoogleInc.的Android,注册商标);操作系统305具有主要对触摸屏设计的用户界面,该触摸屏基于利用手势采用可能的触觉反馈(即,对应于实际位置的输入)的直接操纵。
不同app可以安装于移动设备100上,每个app(例如,以Java编程语言编写的)意在运行于沙盒(sandbox)(即,对移动设备100的紧密控制资源提供访问的隔离环境)中。app包括一个或者多个组件,其中可以单独激活每个组件,以执行特定任务。每个组件都可以是活动的(显示用户界面的单个屏幕)、服务(运行于背景中)、广播接收机(响应广播通知)或者内容提供商(管理数据储存)。app还包括清单文件。该清单文件宣告对操作系统305可见的app的组件;可以利用指出其能力的一个或者多个意图过滤器可以宣告每个组件(即,每个分别指出组件能够执行的任务)。清单文件宣告可能特征,每个可能特征分别指出app使用的(硬件和/或者软件)资源(例如,操作系统级、VoIP、传感器、WiFi、蓝牙、摄像机、GPS、USB);每个特征都可以具有指出在没有其的情况下不能运行的app要求该特征,还是只有在没有其的情况下仍可以运行的app优选该特征。对于当安装app时不检验其在移动设备100上的可用性的操作系统305,该特征仅是信息性的(但是其他应用可以使用它们,例如,以防止在不能运行其的移动设备上下载该app)。清单文件还宣告允许访问app的沙盒之外的资源(处于其装备的用户设备100的用户要特许的)。
通过对操作系统305的内容分解器提交相应请求,激活每个内容提供商。通过对操作系统305提交相应消息(称为意图),激活每个活动、访问和广播接收机。意图可以是显式的也可以是隐式的。显式内容指出要激活的特定组件(在同一个app中或者在不同app中),该特定组件静止地(或者早期)绑定到其。相反,隐式意图仅指出要执行(对于活动和服务)或者通知(对于广播接收机)的动作,使得分别执行或者接收动作的实际组件在运行时动态地(或者之后)绑定到其。利用其一个或者多个特征将该动作定义为抽象水平的(隐式)意图。特别是,意图定义动作的类型(利用相应常数);该意图还可以定义要动作的数据(例如,位置和类型)、应当激活的一个或者多个组件类别、要传送到激活组件的额外信息以及指示如何管理激活组件的标志。通过找到能够执行或者接受其动作的组件,操作系统305在运行时分解每个意图。为此,操作系统305包括利用所有安装的app的意图过滤器在意图中定义的动作。每个意图过滤器同样指出组件在抽象级能够执行(对于活动和服务)或者接受(对于广播接收机)的动作;特别是,意图过滤器定义一个或者多个动作类型,并且其还可以定义要动作的数据及其一个或者多个类别。对意图测试每个意图过滤器;当意图的动作类型与其动作类型中的一个匹配时,意图的每个类别与其类别中的一个匹配时以及意图的数据与其一个匹配时,认为意图过滤器通过测试。然后,操作系统305激活其意图过滤器通过该测试的组件(然而,当没有发现组件时,产生例外);当多个组件通过该测试时,用户手动地或者自动地选择其中一个(例如,根据优先权或者由默认)。
在所讨论的例子中,非常简单的app310安装于移动设备100上。app310包括采用服务S0的活动A0(或者包含在或者不包括在app310中)和另一个活动a1(如虚线的相应箭头所示,在运行时隐式绑定)。app310具有清单文件315,该清单文件315尤其定义具有意图过滤器的活动A0、A1并且可以定义定义服务S0;特别是,活动A0具有两个意图过滤器IFA0a、IFA0b,并且服务S0(如果存在)具有意图过滤器IFS0(具有任何相应要求特征的指示)。例如,app310实现短期天气预报;活动A0提供app310的开始屏幕(具有对应于其意图过滤器IFA0a和IFA0b的两种不同布局),服务S0测量本地大气压力,并且根据其随着时间的变化(具有指出气压计的相应动作和需要的意图过滤器IFS0),确定天气预报,并且活动A1显示天气预报。
在根据本公开实施例的解决方案中,委托app320也安装在移动设备100上。委托app320包括代理服务Sp,该代理服务Sp将自己注册为能够执行一个或者多个服务(安装于移动设备100上的app的)的动作;特别是,在所讨论的例子中,代理服务Sp将自己注册为能够执行服务S0的相同动作。代理服务Sp采用评估服务Se,该评估服务Se评估对代理服务Sp请求的每个动作的委托。评估服务Se采用测量服务Sm,该测量服务Sm测量移动设备100的一个或者多个量度(例如,电池电量、可用无线连接、相应带宽)。评估服务Se还采用发现服务Sd,该发现服务Sd发现可用于执行对代理服务Sp请求的动作的其他计算机器(例如,其他移动设备、下面称为远程移动设备)。发现服务Sd还对来自其他移动设备的相应请求做出响应;对于该用途,发现服务Sd还采用测量服务Sm。委托app320建议清单文件325,该清单文件325尤其利用其意图过滤器定义服务Sp、Se、Sm、Sd;特别是,代理服务Se与服务S0具有相同的意图过滤器IFS0;评估服务Se具有用于评估动作的委托的意图过滤器IFe;测量服务Sm具有用于测量移动设备100的量度的意图过滤器IFm;并且发现服务Sd具有用于发现远程移动设备的可用性的意图过滤器IFda和用于对相应请求做出响应的意图过滤器IFdr。
利用操作系统305注册app310和委托app320的意图过滤器(如在其清单文件315和325中分别指出的)。当每个app310、320分别安装于移动设备100上时并且每当其清单文件315、325分别更新时,执行该操作;特别是参考委托app320,通过下载其新版本以跟上移动设备的技术发展或者通过对安装的/删除的app的服务附加/移除意图过滤器,可以更新清单文件325(O1.Register)。
每当app310运行时,一激活其,其活动A0就将服务S0的动作的意图(分别称为app意图和app动作)提交给操作系统305。特别是,在所讨论的例子中,根据其随着时间的变化以及该用途的气压计的需要,app意图指出监视本地大气压力并且确定天气预报(O2.Intent)。通过找到能够执行app动作的组件,操作系统305试图分解app意图。在这种情况下,操作系统305始终在查明代理服务Sp通过对app意图的测试(因为利用相同app动作的意图过滤器注册)。此外,操作系统305还可以在通过对app意图测试的移动设备100上找到本地服务(即,在所讨论的例子中,当服务S0存在于移动设备100上时);然而,将代理服务Sp的意图过滤器注册为默认的,以使操作系统305在任何情况下选择其。因此,app意图始终动态地绑定到代理服务Sp,使得激活其,以执行在此所指的动作(O3.Bind)。
在对其做出响应时,代理服务Sp提交利用评估服务Se评估app意图的显式意图,操作系统305将该评估服务Se直接绑定到其(O4.Evaluate)。根据一个或者多个的一组策略(例如,从从该图中未示出的相应内容提供商读取),评估服务Se判定是必须在本地或者必须远程执行app动作。为此,可以执行不同的策略。首先,评估服务Se确定能够执行app动作的本地服务是否存在于移动设备100上;为此,评估服务Se检验是否存在通过对app意图的测试本地服务(即,所讨论的例子中的服务S0)以及移动设备100是否具有app意图要求的所有特征(即,所讨论的例子中的气压计)。如果未找到具有要求特征的本地服务,则始终在远程委托执行app动作。相反,判定在本地还是在远程委托执行app动作可以基于移动设备100的一个或者多个选择量度。在这种情况下,评估服务Se提交用于使测量服务Sm测量量度的显式意图,操作系统305将该测量服务Sm直接绑定到其。可以在测量服务Sm级定义要测量的量度(例如,从该图未示出的相应内容提供商读取),在相应意图中,它们可以由评估服务Se传递,或者可以对它们硬编码。测量服务Sm测量量度并且使其指示返回评估服务Se(O5.Measure)。然后,评估服务Se根据不同测量判定在本地还是在远程委托执行app动作。例如,当电池电量低于阈值时,在远程委托执行app动作,而当可用无线连接的带宽低于阈值时,在本地委托执行app动作。
当评估服务Se判定在远程委托执行app动作时,评估服务Se将用于发现远程移动设备的相应可用性的显式意图提交给发现服务Sd,操作系统305将该发现服务Sd直接绑定到其(O6.Discover)。作为对其的响应,发现服务Sd对(例如,连接到同一个WiFi点的或者连接到同一个电信小区的)移动设备附近的任何远程移动设备广播请求执行app动作的可用性的意图,该图中仅示出一个远程移动设备。利用带撇号的符号100’区分的每个远程移动设备具有操作系统305’和类似委托app(利用320表示),其同样包括代理服务(利用Sp’表示)、评估服务(利用Se’表示)、测量服务(利用Sm’表示)和发现服务(利用Sd’表示);委托app320’具有类似的清单文件325’(对app的动作具有不同的意图过滤器,该图中未示出)。请求执行app动作的可用性的意图对于发现服务Sd’是显式的,使得操作系统305’将发现服务Sd’直接绑定到其(O7.Request)。
根据一个或者多个的一组策略(例如,从该图中未示出的相应内容提供商读取),发现服务Sd’判定远程移动设备100’是否可用于执行app动作。为此,可以执行不同策略。首先,发现服务Sd’确定远程移动设备100’是否具有app意图要求的所有特征(即,所讨论的例子中的气压计)。如果未找到要求的特征,则始终使远程移动设备100’可用。相反,关于远程移动设备100’的可用性的判定基于其一个或者多个选择量度。在这种情况下,发现服务Sd’提交测量服务Sm’测量量度的显式意图,操作系统305’将发现服务Sd’直接绑定到其(如上所述,利用在相应意图或者硬编码中在发现服务Sd’级定义的由评估服务Se’传递的量度)。测量服务Sm’测量量度并且使其指示返回发现服务Sd’(O8.Measure)。然后,发现服务Sd’可以判定使远程移动设备100’可用而不根据不同策略。例如,可以使远程移动设备100’仅对其他预授权的移动设备(例如,同一个组织的)可用。此外,当电池电量高于第一阈值时,可以使远程移动设备100’可用,以仅共享app意图要求的特征,而电池电量高于第二阈值(大于第一阈值)时,可以使远程移动设备100’可用,以执行app动作。发现服务Sd’将指出远程移动设备100’的可用性(即,完全可用、部分可用或者不可用)响应与其例如其处理能力、工作存储器容量、传感器特性的可能特性一起返回移动设备100的发现服务Sd(O9.Response)。
假定发现服务Sd已经找到一个或者多个可用于执行(完全地或者部分地)app动作的远程移动设备100’,则其根据一个或者多个的一组策略(例如,从该图中未示出的相应内容提供商读取)选择远程移动设备100’中的一个。为此,可以执行不同的策略。首先,发现服务Sd对完全可用于执行app动作的远程移动设备100’给予优先;如果多个远程移动设备100’保持,则可以基于远程移动设备100’的特性(如以相应响应方式返回的)并且/或者基于相应连接(例如,类型和带宽)选择。然后,发现服务Sd将完全或者仅部分地可用于执行app动作的远程移动设备100’(如果存在)的指示返回评估服务S2(O10.Availability)。
总之,评估服务Se将app意图的评估结果返回代理服务Sp;该结果指出是必须在本地或者必须在远程执行app动作,并且对于后者情况,其还指出完全地或者部分地可用于这样做的远程移动设备100’(动作O11.Decision)。
当必须在本地执行app动作时,代理服务Sp提交服务S0执行app动作的显式意图,操作系统305将该服务S0绑定到其。然后,激活服务S0,以执行app动作(即,在所讨论的例子中,测量本地大气压力并且根据其随着时间的变化确定天气预报);服务S0将执行app动作的任何结果(即,在所讨论的例子中,本地大气压力和天气预报)返回代理服务Sp(O12.Local)。
相反,假定已经找到完全可用于执行app动作的远程移动设备100’,则代理服务Sp将使得执行app动作的意图发送到其;该意图还包括app310的映像(或者至少服务S0)。使得执行app动作的意图对于代理服务Sp’是显式的,使得操作系统305’直接将该代理服务Sp’绑定到其(O13.Remote)。在对此做出响应时,代理服务Sp’例示虚拟机330(例如,利用QuickEMUlator或者QEMU)模拟移动设备100。然后,代理服务Sp’由相应映像创建app310的克隆(称为克隆app310’),因此,该克隆app310包括相同的活动(利用A0’、A1’表示)和相同的服务(利用S0’表示)(O14.Clone)。这样,利用用作用于使远程移动设备100’屏蔽克隆app310’的隔离层的虚拟机330,克隆app310’可以运行于任何操作系统305’(即使与移动设备100的操作系统305不同)上。在这方面,代理服务Sp’提交服务S0’执行app动作的显式意图,操作系统305’使服务S0’直接绑定到其。然后,激活服务S0’,以执行app动作(即,在所讨论的例子中,测量本地大气压力并且根据其随着时间的变化确定天气预报);服务S0’使app动作的执行结果(即,在所讨论的例子中,本地大气压力和天气预报)返回代理服务Sp’(O15.Execute)。这样,远程移动设备100’执行的动作基于在移动设备100的附近测量的值。在这种状况下,术语“附近”旨在参考销用测量值的动作。换句话说,远程移动设备100’应当以可接受的精确度测量表示其在移动设备100所在位置处的值的物理量(与其位置有关)(即,同一个WiFi区域或者电信小区内的本地大气压力)。代理服务Sp’又将此结果返回代理服务Sp(O16.Return)。
总之,代理服务Sp一通过代理服务Sp’(A16)从服务S0(A12)或者从服务S0’收到执行app动作的结果,代理服务Sp就使其返回活动A0(O17.Result)。然后,正常继续运行app310。这样,已经在本地或者在远程执行app动作的事实对app310不透明(除了稍许性能不同),app310完全不知执行其的移动设备100的能力。
在上述技术中,(由委托app320)在应用级执行委托执行动作。因此,可以实现要求的结果,既无需要求操作系统305没有变化(或者最低配置变更),也无需要求特定程序模型变化。实际上,app310未变化,即,仍写入其,以在本地运行,而无需强迫特定改造或者任何量测工具;此外,利用其本机的或者内置的机构(最多需要改变app的分布策略,以使其甚至安装于没有其要求特征的移动设备上),由操作系统305象使用一样管理。
现在参考图4,示出表示可以用于实现本公开实施例的另一个示例性应用场景的主软件单元的角色的合作图。
该场景与上述场景的不同之处在于,已经找到只能用于共享app意图要求的特征的远程移动设备100’(但是不完全执行其);典型例子是意图app要求的传感器,但是其不位于移动设备100上。在这种情况下,当代理服务Sp从评估服务Se收到评估app意图的评估结果时(O11),其将使得共享传感器的意图发送到远程移动设备100’;如上所述,使得共享传感器的意图对代理服务Sp’是显式的,因此,操作系统305’将代理服务Sp’直接绑定到其(O13.1.Share)。在对此做出响应时,代理服务Sp’激活该传感器(即,所讨论的例子中的气压计)。然后,代理服务Sp’使相应物理量的测量值(即,所讨论的例子中的本地大气压力)返回代理服务Sp’(O15.1.Sense)。代理服务Sp’又使该测量值返回代理服务Sp(O16.1.Return)。
在这方面,代理服务Sp将使得执行app动作的意图发送到云环境405;该意图还包括app310的映像(或者至少服务S0的)和测量值。云环境405根据服务按需提供计算资源(例如,按使用计费);云提供商使云服务可用,在请求时,云提供商提供、配置表情释放云资源(使得一般情况下,它们是虚拟类型的,其实际实现对用户完全不透明)。在该特定情况下,云环境405包括模拟移动设备(下面称为虚拟移动设备100”)的虚拟机;为此,虚拟移动设备100”具有相同的操作系统(利用305”表示)和简化委托app(利用320”表示),该简化委托app仅包括具有其清单文件(利用325”表示)的代理服务(利用Sp”表示)。使得执行app动作的意图对于代理服务Sp”是显式的,使得操作系统305”将代理服务Sp”直接绑定到其(13.2.Virtual)。然后,代理服务Sp’由相应映像创建app310的克隆(称为克隆app310”),然后,该克隆app310”包括相同的活动(利用A0”、A1”表示)和相同的服务(利用S0’表示)(14.2.Clone)。在这方面,代理服务Sp”提交服务S0’执行app动作的显式意图,操作系统305”将服务S0”直接绑定到其;该意图还包括已经收到的测量值。然后,激活服务S0”,以执行app动作;然而,在这种情况下,服务S0”直接对测量值操作,而无需感测其(即,在所讨论的例子中,根据测量的本地大气压力随时间的变化,确定天气预报);服务S0”使app动作的执行结果(即,在所讨论的例子中,本地大气压力和天气预报)返回代理服务Sp”(15.2.Execute)。代理服务Sp”又使该结果返回代理服务Sp(16.2.Return)。
在app310的正常连续运行的情况下,利用使app动作的执行结果返回活动A0(O17)的代理服务Sp,如上进行操作流。
例如,因为复杂性,这样使移动设备100执行不可行的动作;实际上,云环境405提供无限计算资源的错觉。因此,对于高资源要求动作(例如,图像识别服务),这特别有利。与此同时,这些动作可以基于在移动设备100的附近测量的值(利用移动设备100’)。
自然,为了满足本地特殊要求,本技术领域内的技术人员可以将在此描述的解决方案应用于许多逻辑和/或者物理调节和转换。更具体地说,尽管具体参考其一个或者多个实施例在某种程度上描述了该解决方案,但是应当明白,可以在型式和细节方面做出各种省略、替换和变更以及其他实施例。特别是,甚至可以实施本公开的不同实施例,而无需为了更透彻理解其而前面的描述陈述的特定细节(诸如数值),相反,为了不因为不必要细节妨碍理解描述,所以可以省略或者简化众所周知的特征。此外,显然,根据一般设计选择,旨在可以将结合本公开的实施例描述的具体元件和/或者方法步骤合并于任何其他实施例中。总之,序数词和限定词仅用作标记,从而以相同名称识别元件,但是本身并不暗示优先权、优先或者顺序。此外,术语:包含、包括、具有、含有和涵盖(及其任何型式)应当旨在开放式意义,而非穷举意义(即,不局限于陈述的项目),术语:基于、取决于、根据、通过(及其任何型式)应当旨在非排他性关系(即,具有涵盖的其他进一步特征),并且术语一个/一应当旨在一个或者多个项目(除非另外明确地指出)。
例如,实施例提供了一种在计算机器上运行软件应用的方法。该方法包括下面的步骤。注册委托组件在计算机器(由其至少一个特性定义每个计算机器)执行一个或者多个的一组动作的能力。委托组件从软件应用接收执行动作中的一个动作的请求;在运行时,根据其注册,使该请求绑定到委托组件。根据所述至少一个本地计算机可用性,委托组件将动作的执行委托到计算机器的至少一个本地组件(能够执行该动作的至少一部分)并且/或者委托到至少一个远程计算机器(能够执行动作的至少一部分)的至少一个远程组件。
然而,软件应用可以是任何类型的(例如,显示自动更新内容的专用接口工具集(widget)),并且其可以运行于任何计算机器上,甚至不是移动类型的(例如,笔记本)。委托组件可以是任何类型的(例如,广播接收机、库、应用),并且可以以任何方式注册其能力(参见如下)。每个动作可以由任意数字和特性类型定义(例如,参考统一资源标识符或者URI)。可以以任何方式(例如,通过利用挂钩技术截取其甚或在操作系统中),可以将每个请求绑定到委托组件。根据定义本地组件的可用性的任何特性(例如,固有的或者临时传感器存在、存储空间、微处理器类型、操作系统级、电池电量、GPS覆盖、WiFi或者3G连接),可以将动作的执行委托到任意数量的任何类型的本地组件和/或者远程组件。
在实施例中,所述委托执行动作包括:从本地组件或者远程组件接收动作的执行结果;以及使该结果返回软件应用。
然而,可以以任何方式(例如,部分地来自不同本地组件/远程组件)采集动作的结果,并且其可以是任何类型的(低至简单返回代码)。总之,动作的执行还可以不使结果返回软件应用。
在实施例中,所述委托执行动作包括:当计算机器上不存在本地组件时,将动作的执行委托到远程组件。
然而,还可以将委托在远程执行动作的判定调节到由用户手动批准。
在实施例中,所述委托执行动作包括:当计算机器上存在本地组件时,测量计算机器的至少一个量度;并且根据所述至少一个量度,将动作的执行委托到本地组件或者远程组件。
然而,量度可以是任何数量的任何类型的(例如,微处理器使用率、工作存储器占用)。可以以任何方式(例如,在请求时或者周期性地)测量量度。此外,委托在本地还是在远程执行动作的判定可以基于其他策略(例如,根据连接成本、要求的服务质量)。总之,当可能时,没有什么能妨碍始终委托在本地执行动作。
在实施例中,动作包括服务的背景中的执行。
然而,动作可以是任何类型的(例如,从简单操作到整个应用)。
在实施例中,动作包括感测物理量。
然而,物理量可以是任何类型的,并且可以利用任何数量的或者任何类型的传感器(例如,加速度表、光传感器、罗盘、陀螺仪、近距离传感器),感测其。
在实施例中,所述委托执行动作包括:将感测物理量委托到第一远程计算机器的第一远程组件;从第一远程组件接收物理量的测量值;以及通过传递物理量的测量值,将执行该服务委托到本地组件或者第二远程计算机器的第二远程组件。
然而,该动作可以要求在任何数量的任何类型的远程计算机器上感测任何数量的物理量(参见如下);然后,通过传递基于物理量的测量值的任何值(例如,简单测量值或者由一个或者多个测量值计算的值),可以将执行服务委托到任何数量的任何类型的计算机器的任何数量的本地组件和/或者远程组件。
在实施例中,计算机器是移动设备;第一远程计算机器是位于移动设备附近的另一个移动设备,并且网络服务提供第二远程计算机器。
然而,另一个移动设备可以与移动设备处于任何位置关系(例如,位于蓝牙覆盖范围内),并且网络服务可以是任何类型的(例如,万维网服务)。总之,计算机器、第一远程计算机器和第二计算机器可以是任何类型的。
在实施例中,所述委托执行动作包括:发现位于计算机器附近的每个远程计算机器的可用性,以执行动作的至少一部分。
可以以任何方式(例如,在对特定动作请求时或者通过周期性地对每个动作采集其并且在请求时从采集信息中提取特定动作中的一个)发现远程计算机器的可用性。此外,可以以任何方式判定每个远程计算机器的可用性(例如,根据负荷情况或者由用户手动批准)判定每个远程计算机器的可用性;总之,某些远程计算机器可以始终可用(例如,当执行公用事业时)。可以以任何方式(甚至无差别地)选择要发现的远程计算机器。
在实施例中,所述委托执行动作包括:将执行动作委托到模拟计算机器的虚拟计算机器。
然而,可以以任何方式(或者在请求时,或者事先并且保持与计算机器同步)例示虚拟机。总之,可用在远程计算机器上(没有虚拟层)直接执行动作。
在实施例中,所述委托执行动作包括:使远程计算机器由其映像克隆软件应用。
然而,克隆可以仅涉及本地组件或者整个软件应用。总之,没有什么能够防止下载(从任何位置)要求的组件或者整个软件应用并且将要求的组件和整个软件应用临时安装在远程计算机器上(假定其操作系统兼容)。
在实施例中,所述注册委托组件的能力包括:对于指出委托组件的能力以执行动作的动作中的每个动作,对委托组件提供具有意图过滤器的清单文件。
然而,清单文件可以具有任何格式,并且其可以由任何其他储存结构(例如,数据库)替换。总之,没有什么能够妨碍以任何其他方式(例如,利用在其安装时执行的特定指令)注册委托组件的能力。
通常,如果利用等同方法执行相同的解决方案,则类似考虑适用(利用许多步骤中具有相同功能的类似步骤,移除不重要的一些步骤,或者进一步附加任选步骤);此外,可以以不同顺序、同时或者以交错方式(至少部分地)执行步骤。
另外实施例提供了一种计算机程序,以当在计算机器上执行计算机程序时,使计算机器执行上述方法的步骤。
另外实施例提供了一种计算机程序产品,该计算机程序产品包括嵌入了计算机程序的非临时计算机可读介质,该计算机程序包括可直接装载到计算机器的工作存储器中的代码,从而配置计算机器,以执行相同的方法。
然而,上述解决方案可以实现为单独软件应用、可以实现为操作系统的插件、甚或直接在操作系统本身中实现。本技术领域内的技术人员明白,本发明的方案可以实现为系统、方法或者计算机程序产品。因此,本发明的各个方面可以取完全硬件实施例、完全软件实施例(包含固件、常驻软件、微代码等等)或者将软件和通常可以统称为“电路”、“模块”或者“系统”的硬件方面组合的实施例的型式。此外,本发明的各个方面可以取嵌入一个或者多个计算机可读介质的计算机程序产品的型式,该一个或者多个计算机可读介质具有嵌在其上的计算机可读程序代码。可以采用一个或者多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读储存介质。计算机可读储存介质可以是但并不局限于是例如:电子的,磁的、光的、电磁的、红外的或者半导体系统、装置或者设备或者上述的任何适当组合。计算机可读储存介质的更具体的例子(非穷举的列表)包括如下:具有一个或者多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光储存器件、磁储存器件或者上述的任意适当组合。在本说明书的语境中,计算机可读储存介质可以是能够含有或者存储指令执行系统、装置或者设备使用的或者结合指令执行系统、装置或者设备使用的程序的任何有形介质。计算机可读信号介质可以包含有计算机可读程序代码以例如基带方式或者一部分载波的方式嵌入内的传播数据信号。该传播数据信号可以取各种型式中的任何一种,包含但不局限于:电磁的、光的或者其任何适当组合。计算机可读信号介质可以是其不是计算机可读储存介质并且能够传送、传播或者输送由指令执行系统、装置或者设备使用的或者结合指令执行系统、装置或者设备使用的程序的任何计算机可读介质。可以利用包含但并不局限于无线、电线、光纤电缆、RF等等或者上述的任何适当组合的任何适当介质发送嵌在计算机可读介质上的程序代码。可以以一个或者多个编程语言的任何组合编写用于执行本发明各个方面的操作的计算机程序代码,所述编程语言包含:面向对象的编程语言,诸如Java、Smalltalk、C++等;以及常规的过程式编程语言,诸如“C”编程语言或类似的编程语言。计算机代码可以完全在有关计算机上执行、作为独立软件封装执行、部分地在该计算机上执行并且部分地在远程计算机上执行或者完全在远程计算机上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,生成了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机程序指令存储在计算机可读存储介质中,这些指令使得计算机、其他可编程数据处理装置或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令产生一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令。也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以生成计算机实现的过程,从而使得在计算机、其它可编程数据处理装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
另外实施例提供包括用于执行上述方法的步骤的装置的系统。
然而,也可以在基于不同体系架构(例如,局域网、广域网、全球网、蜂窝网或者卫星网)并且采用任何类型的(有线和/或者无线)连接的系统上执行该方法。
通常,如果系统具有不同的结构或者包括等同组件,或者其具有其他操作特性,则类似的考虑适用。总之,可以将其每个组件分离为多个元件,也可以将两个或者多个组件一起组合为单个元件;此外,可以复制每个组件,以支持并行执行相应操作。此外,除非另有说明,不同组件之间的任何交互通常不需要是连续的,并且其可以直接的或者是通过一个或者多个中间体间接的。

Claims (14)

1.一种在计算机器上运行软件应用的方法(O1-O17),所述方法包括:
注册(O1)委托组件的能力,以在所述计算机器上执行一个或者多个的一组动作,每个所述动作由所述动作的至少一个特性定义,
通过所述委托组件从所述软件应用接收(O2-O3)对于执行所述动作中的一个的请求,根据所述委托组件的注册,所述请求在运行时绑定到所述委托组件,以及
根据所述至少一个本地组件的可用性,通过所述委托组件将所述动作的执行委托(O4-O17)到能够执行所述动作的至少一部分的所述计算机器的至少一个本地组件,和/或能够执行所述动作的至少一部分的至少一个远程计算机器的至少一个远程组件。
2.根据权利要求1所述的方法(O1-O17),其中所述委托(O4-O17)所述动作的执行包括:
从所述本地组件或者所述远程组件接收(O12;O16;O16.2)所述动作的执行的结果,以及
使所述结果返回(O17)返回所述软件应用。
3.根据权利要求1或者2所述的方法(O1-O17),其中当所述计算机器上不存在本地组件时,所述委托(O4-O17)所述动作的执行包括:
将所述动作的执行委托(O13-O16;O13.1-O16.2)到所述远程组件。
4.根据权利要求1或者3所述的方法(O1-O17),其中当所述计算机器上存在所述本地组件时,所述委托(O4-O17)所述动作的执行包括:
测量(O5)所述计算机器的至少一个量度,以及
根据所述至少一个量度,将所述动作的执行委托(O6-O17)到所述本地组件或者所述远程组件。
5.根据权利要求1至4中的任何一项所述的方法(O1-O17),其中所述动作包括在服务的所述背景中的执行。
6.根据权利要求5所述的方法(O1-O17),其中所述动作包括感测物理量。
7.根据权利要求6所述的方法(O1-O17),其中所述委托(O4-O17)所述动作的执行包括:
将所述物理量的感测委托(O13.1-O16.1)到第一远程计算机器的第一远程组件,
从所述第一远程组件接收(O16.1)所述物理量的测量,以及
通过传递基于所述物理量的测量的值,将所述服务的执行委托(O13.2-O16.2)到所述本地组件或者第二远程计算机器的第二远程组件。
8.根据权利要求7所述的方法(O1-O17),其中所述计算机器是移动设备,所述第一远程计算机器是位于所述移动设备附近的另一个移动设备,并且所述第二远程计算机器通过网络服务提供。
9.根据权利要求1至8中的任何一项所述的方法(O1-O17),其中所述委托(O4-O17)所述动作的执行包括:
发现(O6-O10)位于所述计算机器的附近的每个远程计算机器的可用性,以执行所述动作的至少一部分。
10.根据权利要求1至9中的任何一项所述的方法(O1-O17),其中所述委托(O4-O17)所述动作的执行包括:
将所述动作的执行委托(O13.2-O16.2)到模拟所述计算机器的虚拟计算机器的所述远程组件。
11.根据权利要求1至10中的任何一项所述的方法(O1-O17),其中所述委托(O4-O17)所述动作的执行包括:
使得(O14;O14.2)所述远程计算机器由所述本地组件的映像至少克隆所述本地组件。
12.根据权利要求1至11中的任何一项所述的方法(O1-O17),其中所述注册(O1)委托组件的能力包括:
对于指示所述委托组件的能力的所述动作中的每个动作,对所述委托组件提供(O1)基于意图过滤器的清单文件,以执行所述动作。
13.一种当在计算机器(100)上执行所述计算机程序时使得所述计算机器执行根据权利要求1至12中的任何一项所述方法的所述步骤(O1-O17)的计算机程序(320)。
14.一种包括用于执行权利要求1至12中的任何一项所述方法(O1-O17)的装置(320)的系统(100)。
CN201480043044.0A 2013-07-31 2014-07-07 在本地移动设备上运行软件应用的方法和系统 Active CN105431826B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1313660.1 2013-07-31
GB1313660.1A GB2516833A (en) 2013-07-31 2013-07-31 Running software application with dynamic action delegation
PCT/EP2014/064439 WO2015014570A1 (en) 2013-07-31 2014-07-07 Running software application with dynamic action delegation

Publications (2)

Publication Number Publication Date
CN105431826A true CN105431826A (zh) 2016-03-23
CN105431826B CN105431826B (zh) 2019-08-13

Family

ID=49167234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480043044.0A Active CN105431826B (zh) 2013-07-31 2014-07-07 在本地移动设备上运行软件应用的方法和系统

Country Status (5)

Country Link
US (1) US10257267B2 (zh)
JP (1) JP6587613B2 (zh)
CN (1) CN105431826B (zh)
GB (1) GB2516833A (zh)
WO (1) WO2015014570A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870468B1 (en) * 2014-11-13 2018-01-16 Marvell International Ltd. System and method for segregating data in a dynamic programming language
EP3079059A1 (en) * 2015-04-07 2016-10-12 Huawei Technologies Co., Ltd. Method and apparatus for a mobile device based cluster computing infrastructure
US10826933B1 (en) * 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US20180052573A1 (en) * 2016-08-17 2018-02-22 Microsoft Technology Licensing, Llc Interaction with a file storage service through a messaging bot
CN108021219A (zh) * 2016-11-03 2018-05-11 华为技术有限公司 电子设备控制方法、装置及电子设备
US20210200597A1 (en) * 2018-03-16 2021-07-01 Sony Corporation Information processing device, information processing method, and program
US11659028B2 (en) * 2021-09-22 2023-05-23 Toyota Motor Engineering & Manufacturing North America, Inc. Data offloading rate determination using mean field games

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350752A (zh) * 2007-07-20 2009-01-21 美国博通公司 在通讯网络中管理信息的处理的方法和系统
US20090023452A1 (en) * 2007-07-20 2009-01-22 Thomas Quigley Method and system for dynamically splitting jobs across multiple agnostic processors in wireless system
US20100131590A1 (en) * 2008-11-21 2010-05-27 Samsung Electronics Co., Ltd. Extending the capability of computing devices by using dynamically scalable external resources
US20130174174A1 (en) * 2012-01-03 2013-07-04 Samsung Electronics Co., Ltd. Hierarchical scheduling apparatus and method for cloud computing
CN103309563A (zh) * 2013-06-28 2013-09-18 贝壳网际(北京)安全技术有限公司 已显示页面的切换方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05274399A (ja) * 1992-03-25 1993-10-22 Toshiba Corp 画像処理装置
CA2207746A1 (en) 1997-06-13 1998-12-13 Ironside Technologies Inc Method of manipulating software components through a network with enhanced performance and reduced network traffic
JP3932641B2 (ja) * 1998-01-21 2007-06-20 富士通株式会社 リモートアクセスシステム
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US7062527B1 (en) * 2000-04-19 2006-06-13 Silicon Graphics, Inc. Management and scheduling of a distributed rendering method and system
DE60136247D1 (de) * 2000-06-16 2008-12-04 Microsoft Corp System und Verfahren zur interaktiven Kommunikation zwischen Objekten in einer verteilten Rechnerumgebung
US6990662B2 (en) 2001-10-31 2006-01-24 Hewlett-Packard Development Company, L.P. Method and system for offloading execution and resources for resource-constrained networked devices
JP2006252218A (ja) * 2005-03-11 2006-09-21 Nec Corp 分散処理システム及びプログラム
US7627593B2 (en) * 2005-08-25 2009-12-01 International Business Machines Corporation Method and system for unified support of multiple system management information models in a multiple host environment
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
CN100558038C (zh) * 2006-03-31 2009-11-04 国际商业机器公司 服务注册器以及相关系统和方法
US8355709B2 (en) 2006-10-23 2013-01-15 Qualcomm Incorporated Device that determines whether to launch an application locally or remotely as a webapp
CN101849224B (zh) * 2007-10-20 2016-04-27 思杰系统有限公司 用于远程处理三维图像数据的方法和系统
US8239538B2 (en) * 2008-11-21 2012-08-07 Samsung Electronics Co., Ltd. Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments
US7970830B2 (en) 2009-04-01 2011-06-28 Honeywell International Inc. Cloud computing for an industrial automation and manufacturing system
US8644854B2 (en) * 2009-12-03 2014-02-04 Osocad Remote Limited Liability Company System and method for processing enhanced data exchanged with an enhanced mobile station via a wireless connection
JP2013061845A (ja) * 2011-09-14 2013-04-04 Ricoh Co Ltd 携帯機器及びその制御方法
US20130073600A1 (en) 2011-09-21 2013-03-21 Jonathan A. Jenkins Remote process execution management
JP6463598B2 (ja) * 2012-11-20 2019-02-06 三星電子株式会社Samsung Electronics Co.,Ltd. 着用式電子デバイスからのプロセッシングの委任

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350752A (zh) * 2007-07-20 2009-01-21 美国博通公司 在通讯网络中管理信息的处理的方法和系统
US20090023452A1 (en) * 2007-07-20 2009-01-22 Thomas Quigley Method and system for dynamically splitting jobs across multiple agnostic processors in wireless system
US20100131590A1 (en) * 2008-11-21 2010-05-27 Samsung Electronics Co., Ltd. Extending the capability of computing devices by using dynamically scalable external resources
US20130174174A1 (en) * 2012-01-03 2013-07-04 Samsung Electronics Co., Ltd. Hierarchical scheduling apparatus and method for cloud computing
CN103309563A (zh) * 2013-06-28 2013-09-18 贝壳网际(北京)安全技术有限公司 已显示页面的切换方法及装置

Also Published As

Publication number Publication date
GB201313660D0 (en) 2013-09-11
CN105431826B (zh) 2019-08-13
JP2016528624A (ja) 2016-09-15
JP6587613B2 (ja) 2019-10-09
US20160164960A1 (en) 2016-06-09
WO2015014570A1 (en) 2015-02-05
GB2516833A (en) 2015-02-11
US10257267B2 (en) 2019-04-09

Similar Documents

Publication Publication Date Title
CN105431826A (zh) 利用动态动作委托运行软件应用
US11711670B2 (en) Method for activating service based on user scenario perception, terminal device, and system
EP3403177B1 (en) Managing delivery of code and dependent data using application containers
US9886262B2 (en) Adaptive upgrade to computing systems
CN105723337B (zh) 用于从交互式开发环境递增地编译软件制品的方法和系统
CN107710157A (zh) 多租户、租户特定的应用程序
WO2015167943A1 (en) Dynamic update installer for customized software
US20150067669A1 (en) Method for managing application and electronic device thereof
US20160048383A1 (en) Isv update delivery
KR20150008653A (ko) 휴대 단말기의 사용 로그를 활용하는 방법 및 이를 이용한 장치
CN111414152B (zh) 业务逻辑的实现方法、系统、可读介质和电子设备
US10839037B2 (en) Connected application experience
US20160328219A1 (en) Mobile application development collaboration system
CN114077368B (zh) 车载小程序运行方法、装置、计算机设备及存储介质
CN112579191A (zh) 一种组件加载方法、装置及系统
US10303462B2 (en) Windows support of a pluggable ecosystem for universal windows application stores
CN111625326B (zh) 任务管线执行方法、装置及电子设备
CN113031984A (zh) 双芯智能电表管理单元应用程序远程在线升级方法和装置
CN112905336A (zh) 数据采集方法、装置、设备及存储介质
WO2015196001A1 (en) Subscriber defined dynamic eventing
CN111367763B (zh) 应用程序安装成功率预测方法、装置、存储介质和设备
CN117009209A (zh) 一种灰度发布方法、装置、电子设备及存储介质
CN116842296A (zh) 微前端的应用访问方法、装置、计算机设备以及存储介质
CN116489224A (zh) 多云容器调度方法、装置、设备及存储介质
CN114237819A (zh) 基于Java虚拟机进行处理的方法及装置、电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant