CN110012021A - 一种移动边缘计算下的自适应计算迁移方法 - Google Patents
一种移动边缘计算下的自适应计算迁移方法 Download PDFInfo
- Publication number
- CN110012021A CN110012021A CN201910292233.6A CN201910292233A CN110012021A CN 110012021 A CN110012021 A CN 110012021A CN 201910292233 A CN201910292233 A CN 201910292233A CN 110012021 A CN110012021 A CN 110012021A
- Authority
- CN
- China
- Prior art keywords
- class
- objectfactory
- blocker
- parameter
- mobile
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及一种移动边缘计算下的自适应计算迁移方法。包括以下步骤:步骤S1:设计按需调用模式,使得移动应用程序能够按需迁移;步骤S2:根据设备上下文自动确定迁移方案,找到应用程序每个类的最佳部署位置。本发明通过自适应计算迁移框架,实现了移动应用在移动边缘环境下的自适应部署。通过本发明提高了应用的性能以及效率。
Description
技术领域
本发明涉及大数据技术领域,特别是一种移动边缘计算下的自适应计算迁移方法。
背景技术
鉴于人工智能和大数据的兴起,移动应用程序正变得既计算又数据密集。与此同时,随着计算和通信技术的快速发展,移动应用的计算平台已经从智能手机和平板电脑扩展到可穿戴设备(智能手表和智能眼镜),车辆,无人机等等。
由于种种原因移动应用的用户体验难以很好满足。一方面,不同计算平台的硬件配置非常不同,因此相同应用的性能差别很大。另一方面,大多数计算平台都是由电池供电,但电池容量不能满足复杂移动应用的需求。
计算迁移,即在远程服务器上执行应用程序的部分,是提高性能和降低移动应用程序能耗的常用技术。通过将计算密集型应用程序迁移到云服务器中,引入移动云计算(MCC),以扩展移动设备的计算能力和电池容量。尽管如此,移动设备和云服务器之间的网络通信可能会造成显着的执行延迟。为了解决延迟问题,推出了移动边缘计算(MEC)。设备可以连接到附近的移动边缘,每个移动边缘都连接到云服务器。
移动边缘在移动设备附近提供计算能力,并能够在移动设备上运行要求苛刻的应用程序,同时提供显着更低的延迟。由于移动边缘的地理分布和移动设备的移动性,移动边缘计算的运行环境非常复杂和动态。当设备在一天中移动时,其位置,网络状况和可用移动边缘等环境会不断变化。因此,应用程序开发人员在移动边缘计算中有效支持计算迁移是一项挑战。
发明内容
有鉴于此,本发明的目的是提出一种移动边缘计算下的自适应计算迁移方法,实现了移动应用在移动边缘环境下的自适应部署。
本发明采用以下方案实现:一种移动边缘计算下的自适应计算迁移方法,包括以下步骤:
步骤S1:设计按需调用模式,使得移动应用程序能够按需迁移;
步骤S2:根据设备上下文自动确定迁移方案,找到应用程序每个类的最佳部署位置。
进一步地,所述步骤S1具体包括以下步骤:
步骤S11:将应用程序的类别分为Movable类和Anchored类,其中Movable类能够在设备、移动边缘和云服务器之间迁移,Anchored类不能被迁移至远程服务器;
步骤S12:进行对象的创建和迁移;
步骤S13:进行方法调用。
进一步地,步骤S12中,进行对象的创建具体为:设计ObjectFactory来处理本地和远程创建单个对象或一组对象,采用ObjectFactory的create方法用于创建类N的实例;其中create方法的参数包括:N类的全限定类名、要创建的实例的目标位置以及类实例的构造函数参数值。
其中,当目标位置是本地主机时,ObjectFactory将直接创建实例及其ID,然后使用类名和实例ID生成代理;另外ObjectFactory为每个本地实例维护哈希表<ID,ObjectReference>;
当目标位置是远程服务器时,本地ObjectFactory将序列化参数并将它们传送到远程ObjectFactory;然后,远程ObjectFactory反序列化参数,并在远程服务器上创建实例以及其ID和代理;之后,返回ID,本地ObjectFactory使用它来生成代理;另外,ObjectFactory为每个实例维护哈希表<ID,Location>;
进一步地,步骤S12中,进行对象的迁移具体为:采用ObjectFactory用于处理迁移单个对象或一组对象;采用ObjectFactory的offload方法用于迁移类N的实例;其中offload方法的参数包括:N类的全限定类名、N类的实例ID以及要迁移的实例的目标位置。
其中,进行对象的迁移具体包括以下步骤:
步骤S121:将实例及其ID在原始节点上序列化并传送到目标节点;
步骤S122:在目标节点上创建新实例及其代理;
步骤S123:更新原始节点和目标节点上的ObjectFactory的散列表。
进一步地,步骤S3具体为:设置代理和拦截器,每个代理对象都包含一个拦截器,该拦截器用于处理对象之间的实际网络通信;从类X到类N的方法调用首先从X本地传递到代理NProxy,然后传递到拦截器;在代理NProxy的方法体中,拦截器的invokeMethod方法用于将方法调用转发给可能迁移的类N的invokeMethod的参数是:类N的全限定类名、类N的实例ID、字节码级方法签名、实际执行类N的method M所需的参数;
当类X和类N都位于同一位置时,拦截器直接使用对象引用N执行方法调用;
当类X和类N分别在两个连接节点上运行时,拦截器序列化参数并将它们传送到连接节点上的代理NProxy;远程代理NProxy反序列化参数,并使用对象引用将方法调用转发到N本地;
当类X和类N分别在两个未连接的节点上运行时,拦截器不能直接通过网络堆栈转发方法调用,在这种情况下,使用Object-Factory的copyProxy方法将代理复制到云服务器;代理和实例位置被序列化并传输到云服务器中的ObjectFactory;云服务器上的ObjectFactory反序列化代理并将实例位置记录在其哈希表中;然后,本地ObjectFactory将实例位置的信息修改为云服务器;因此,当一个方法被调用时,拦截器将首先将方法调用转发给云服务器上的代理,然后通过网络堆栈将方法调用转发给实例。
进一步地,步骤S2具体包括以下步骤:
步骤S21:使用ASM生成主要活动的程序控制流图,获取Movable类及其方法,令C={c0,c1,...,cn}表示Movable类的集合,表示ci的方法集合;
步骤S22:收集服务节点与设备之间的网络信息,令N={n0,n1,...,nz}为移动设备、边缘节点以及云服务器,令V={v0,v1,...,vz}表示远程服务器与移动设备之间的网络传输速率,令RTT={rtt0,rtt1,...,rttz}表示远程服务器与移动设备之间的RTT;
步骤S23:通过信息模型采集对应的网络信息以及每个节点上方法调用信息;令表示方法在节点nt上的执行时间,令表示方法的数据传输量;方法在nt上执行网络延迟以及方法在nt上执行的响应时间分别通过下式计算:
构建以下适应性函数表示不同部署方案下的应用相应时间:
步骤S24:将响应时间最短的部署方案作为最优技术方案。
与现有技术相比,本发明有以下有益效果:本发明通过自适应计算迁移框架,实现了移动应用在移动边缘环境下的自适应部署。通过本发明提高了应用的性能以及效率。
附图说明
图1为本发明实施例的本地调用(源结构)示意图。
图2为本发明实施例的直接远程调用(源结构)示意图。
图3为本发明实施例的间接远程调用(源结构)示意图。
图4为本发明实施例的按需调用(目标结构)示意图。
图5为本发明实施例的对象和数组的创建示意图。
图6为本发明实施例的方法调用处理过程示意图。
图7为本发明实施例的自适应框架示意图。
图8为本发明实施例的移动边缘环境示意图。
图9为本发明实施例的车牌识别系统示意图。
图10为本发明实施例的Honor MYA-AL10在四处车牌识别系统的性能比较示意图。
图11为本发明实施例的Honor STF-AL00在四处车牌识别系统的性能比较示意图。
图12为本发明实施例的Honor MYA-AL10在四处移动中车牌识别系统的性能比较示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,本实施例提供了一种移动边缘计算下的自适应计算迁移方法,包括以下步骤:
步骤S1:设计按需调用模式,使得移动应用程序能够按需迁移;
步骤S2:根据设备上下文自动确定迁移方案,找到应用程序每个类的最佳部署位置。
本实施例提出了一种新的设计模式,以便在设备环境发生变化时使应用程序保持可用状态,并以动态方式在设备,移动边缘和云服务器之间迁移。同时提出了一种新的对象代理机制来支持移动边缘计算环境下的自适应迁移。迁移计算被设计为远程创建,迁移和调用执行计算的对象。
本实施例根据设备上下文自动确定迁移方案,其中应用的不同部分可以在设备移动边缘和云服务器上执行。本实施例生成应用程序主要活动的控制流图,并检索Movable类及其方法调用。然后,本实施例引入信息模型来收集关于每个方法调用的平均数据流量的历史数据,以及它们在设备,云服务器和每个移动边缘上的执行时间,基于此本实施例提出了一种算法来找到每个类的最佳部署位置。
本实施例实现可支持设计模式和评估模型的迁移方法,使得移动应用能被部署在移动边缘环境中的每个计算节点上。当移动设备从一个位置移动到另一个位置时,框架能够支持遵循设计模式的应用程序保持可用,并能在设备,移动边缘和云服务器之间迁移。另外,框架可以根据程序调用图自动确定应用程序的迁移方案。
在本实施例中,所述步骤S1具体包括以下步骤:
步骤S11:将应用程序的类别分为Movable类和Anchored类,其中Movable类能够在设备、移动边缘和云服务器之间迁移,Anchored类不能被迁移至远程服务器;
步骤S12:进行对象的创建和迁移;
步骤S13:进行方法调用。
在本实施例中,步骤S12中,进行对象的创建具体为:设计ObjectFactory来处理本地和远程创建单个对象或一组对象,采用ObjectFactory的create方法用于创建类N的实例;其中create方法的参数包括:N类的全限定类名、要创建的实例的目标位置以及类实例的构造函数参数值。
其中,当目标位置是本地主机时,ObjectFactory将直接创建实例及其ID,然后使用类名和实例ID生成代理;另外ObjectFactory为每个本地实例维护哈希表<ID,ObjectReference>;
当目标位置是远程服务器时,本地ObjectFactory将序列化参数并将它们传送到远程ObjectFactory;然后,远程ObjectFactory反序列化参数,并在远程服务器上创建实例以及其ID和代理;之后,返回ID,本地ObjectFactory使用它来生成代理;另外,ObjectFactory为每个实例维护哈希表<ID,Location>;
在本实施例中,步骤S12中,进行对象的迁移具体为:采用ObjectFactory用于处理迁移单个对象或一组对象;采用ObjectFactory的offload方法用于迁移类N的实例;其中offload方法的参数包括:N类的全限定类名、N类的实例ID以及要迁移的实例的目标位置。
其中,进行对象的迁移具体包括以下步骤:
步骤S121:将实例及其ID在原始节点上序列化并传送到目标节点;
步骤S122:在目标节点上创建新实例及其代理;
步骤S123:更新原始节点和目标节点上的ObjectFactory的散列表。
在本实施例中,步骤S3具体为:设置代理和拦截器,每个代理对象都包含一个拦截器,该拦截器用于处理对象之间的实际网络通信;从类X到类N的方法调用首先从X本地传递到代理NProxy,然后传递到拦截器;在代理NProxy的方法体中,拦截器的invokeMethod方法用于将方法调用转发给可能迁移的类N的invokeMethod的参数是:类N的全限定类名、类N的实例ID、字节码级方法签名、实际执行类N的method M所需的参数;
当类X和类N都位于同一位置时,拦截器直接使用对象引用N执行方法调用;
当类X和类N分别在两个连接节点上运行时,拦截器序列化参数并将它们传送到连接节点上的代理NProxy;远程代理NProxy反序列化参数,并使用对象引用将方法调用转发到N本地;
当类X和类N分别在两个未连接的节点上运行时,拦截器不能直接通过网络堆栈转发方法调用,在这种情况下,使用Object-Factory的copyProxy方法将代理复制到云服务器;代理和实例位置被序列化并传输到云中的ObjectFactory;云服务器上的ObjectFactory反序列化代理并将实例位置记录在其哈希表中;然后,本地ObjectFactory将实例位置的信息修改为云服务器;因此,当一个方法被调用时,拦截器将首先将方法调用转发给云服务器上的代理,然后通过网络堆栈将方法调用转发给实例。
在本实施例中,步骤S2具体包括以下步骤:
步骤S21:使用ASM生成主要活动的程序控制流图,获取Movable类及其方法,令C={c0,c1,...,cn}表示Movable类的集合,表示ci的方法集合;
步骤S22:收集服务节点与设备之间的网络信息,令N={n0,n1,...,nz}为移动设备、边缘节点以及云服务器,令V={v0,v1,...,vz}表示远程服务器与移动设备之间的网络传输速率,令RTT={rtt0,rtt1,...,rttz}表示远程服务器与移动设备之间的RTT;
步骤S23:通过信息模型采集对应的网络信息以及每个节点上方法调用信息;令表示方法在节点nt上的执行时间,令表示方法的数据传输量;方法在nt上执行网络延迟以及方法在nt上执行的响应时间分别通过下式计算:
构建以下适应性函数表示不同部署方案下的应用相应时间:
步骤S24:将响应时间最短的部署方案作为最优技术方案。
接下来结合原理对本实施例进行进一步具体的描述。
较佳的,Android应用程序的执行可以抽象为来自不同类的方法的调用。在移动边缘计算中,类方法需要根据设备上下文在不同的计算节点上执行。本实施例假设移动边缘计算的网络环境,其中1)所有边缘总是连接到云服务器;2)移动设备总是连接到云服务器;3)移动设备可能只是连接到附近的边缘,因此当设备移动时,设备和边缘之间的连接可能会中断。在这样的假设下,本实施例可以推导出移动边缘计算现有技术中的三种方法调用的关键模式。
(1)当两个类都部署在设备或同一台服务器上时,它们可以在本地互相交互,如图1所示。类X首先获取类N的本地引用,然后调用N的方法。
(2)当一个类部署在设备上,另一个类在连接的服务器(移动边缘或云服务器)上时,它们可以远程互相交互,如图2所示。X类从远程通信服务获取对N的远程引用,然后使用该引用与N进行远程交互。远程通信服务负责在网络上将N的引用与N进行关联。
(3)当设备从一个地方移动到另一个地方时,这两个类别可以分别部署在设备和未连接的移动边缘上。因此,他们需要通过云服务器中的网关互相交互,如图3所示。X类向网关发送消息。网关从远程通信服务获取对N的远程引用,将请求转发给N,然后将结果发送回X。
特别的,为了支持这种方法调用模式,本实施例提出了按需计算迁移的设计模式,如图4所示。设计模式的核心由两个元素组成:代理和拦截器。图4中的代理NProxy与代理类N的作用相同,只是它本身不执行任何计算。如果代理类N的位置改变了,NProxy保持不变,这样调用者类X不会被注意到。
较佳的,本实施例为了使移动应用程序能够按需迁移,程序应遵循编码准则,根据编码准则自动将移动应用程序重构:
(1)Movable和Anchored类。应用程序的类别分为Movable和Anchored类型。Anchored实例需要使用一些本地资源,因此它们不能被迁移到远程服务器。相反,Movable的实例可以在设备,移动边缘和云服务器之间迁移。
(2)Class结构。作为接口类实现的代理以及可序列化的方法对于任何类的应用程序都是需要的。对于那些非私有属性,它们的修饰符需要被设置为私有的,并且需要公共的getter/setter方法;因此,获取/设置字段的调用者类应该使用相应的getter/setter方法。
(3)创建对象和数组。使用ObjectFactory负责生成类实例,如图5所示。Array接口处理数组的创建和访问。
较佳的,本实施例设计ObjectFactory来处理本地和远程创建单个对象或一组对象。ObjectFactory的“create”方法用于创建类N的实例。“create”方法的参数包括:(1)N类的全限定类名;(2)要创建的实例的目标位置;(3)类实例的构造函数参数值。
当目标位置是本地主机时,ObjectFactory将直接创建实例及其ID,然后使用类名和实例ID生成代理。另外,ObjectFactory为每个本地实例维护哈希表<ID,ObjectReference>。
当目标位置是远程服务器时,本地ObjectFactory将序列化参数并将它们传送到远程ObjectFactory。然后,远程ObjectFactory反序列化参数,并在远程服务器上创建实例以及其ID和代理。之后,返回ID,本地ObjectFactory使用它来生成代理。另外,ObjectFactory为每个实例维护哈希表<ID,Location>。
ObjectFactory也用于处理迁移单个对象或一组对象。ObjectFactory的“offload”方法用于迁移类N的实例。“offload”方法的参数包括:(1)N类的全限定类名;(2)N类的实例ID;(3)要迁移的实例的目标位置。
对象迁移的步骤包括:(1)将实例及其ID在原始节点上序列化并传送到目标节点;(2)在目标节点上创建新实例及其代理;(3)更新原始节点和目标节点上的ObjectFactory的散列表。
较佳的,在本实施例中,每个代理对象都包含一个拦截器,该拦截器用于处理对象之间的实际网络通信,如图6所示。从类X到类N的方法调用首先从X本地传递到NProxy,然后传递到拦截器。在NProxy的方法体中,拦截器的“invokeMethod”方法用于将方法调用转发给可能迁移的类N“invokeMethod”的参数是:(1)类N的全限定类名;(2)N类的实例ID;(3)字节码级方法签名;(4)实际执行N的“method M”所需的参数。
当X和N都位于同一位置时,拦截器将直接使用对象引用N执行方法调用。
当X和N分别在两个连接节点上运行时,拦截器将序列化参数并将它们传送到连接节点上的NProxy。远程NProxy反序列化参数,并使用对象引用将方法调用转发到N本地。
当X和N分别在两个未连接的节点上运行时,拦截器不能直接通过网络堆栈转发方法调用。在这种情况下,使用Object-Factory的“copyProxy”方法将代理复制到云服务器端。代理和实例位置被序列化并传输到云中的ObjectFactory。云服务器上的ObjectFactory反序列化代理并将实例位置记录在其哈希表中。然后,本地ObjectFactory将实例位置的信息修改为云服务器。因此,当一个方法被调用时,拦截器将首先将方法调用转发给云服务器上的代理,然后通过网络堆栈将方法调用转发给实例。
较佳的,Android应用程序由活动组成,并且有一个MainActivity充当应用程序的入口点。对于应用程序的每次执行,都会调用MainActivity中的类方法,该方法使用同一类内部的数据和方法或调用其他类的某些方法。这样的过程可以通过控制流程图表征。为了提高迁移性能,它需要对频繁交互的对象进行聚类,并将它们作为一个整体迁移。因此,本实施例将在MainActivity中创建的对象视为核心对象;以及在核心对象的函数体中创建的其他对象应作为整体与其相关的核心对象一起迁移。因此,可以减少确定计算迁移方案的问题,以解决应用程序的主要活动中的每个类的对象部署方法的问题。
其中,每个类可能有几个方法调用。如公式1所示,每个方法调用的响应时间由执行时间和网络延迟组成。因此,影响对象部署计划的因素很多,如方法调用,远程服务器和网络连接等。
Tresponse=Te+Td (1)
首先,本实施例使用ASM生成MainActivity的程序控制流图,获取Movable类及其方法。令C={c0,c1,...,cn}表示Movable类的集合。表示ci的方法集合;
其次,本实施例收集服务节点与设备之间的网络信息,令N={n0,n1,...,nz}为移动设备、边缘节点以及云服务器,令V={v0,v1,...,vz}表示远程服务器与移动设备之间的网络传输速率,令RTT={rtt0,rtt1,...,rttz}表示远程服务器与移动设备之间的RTT。
最后,本实施例通过信息模型采集对应的网络信息以及每个节点上方法调用信息。令表示方法在节点nt上的执行时间,令表示方法的数据传输量。方法在nt上执行网络延迟可以通过公式2计算。所以方法在nt上执行的响应时间可以通过公式3计算。
基于以上的模型,本实施例构建了适应性函数表示不同部署方案下的应用响应时间:
最后,本实施例以响应时间最短的方案作为最优部署方案。
特别的,本实施例实现了框架以支持部署在设备,移动边缘和云服务器上的设计模式和评估模型。图7显示了框架的体系结构。
对于给定的Android应用程序,代码被重构为能够进行计算迁移。ObjectFactory处理对象创建和迁移,Proxy处理对象方法调用。该代码也被分析以获得关于主活动中可移动类的方法调用的信息,该活动类用于对核心可移动类进行建模。任务,服务器和网络连接也进行建模。根据模型,Decision组件根据设备上下文计算每个核心可移动类的对象部署方案。
为了评估本实施例的方法,本实施例建立了一个移动边缘环境,并使用两个真实世界的应用程序来评估本实施例的自适应迁移。首先,验证本实施例的方法是否可行,以迁移移动边缘计算中的实际应用。其次,本实施例将自适应迁移应用程序的性能与不同场景下的原始和传统迁移应用程序的性能进行比较。最后,本实施例展示了自适应迁移带来的节能效果。
本实施例的实验环境由五个计算节点组成:两个移动设备和三个远程服务器。本实施例模拟了四个位置,分别命名为花园,游乐场,教学楼和实验楼,如图8所示。每个位置的移动设备和远程服务器之间的网络条件如表1所示。
表1设备在不同场景下的上下文环境
一个移动设备是Honor MYA-AL10与1.4GHz 4核心CPU,2GB RAM。这三个远程服务器包括两个移动边缘和一个云服务器,可用于在不同位置迁移。边缘服务器1是一款带有2.5GHz 8核CPU,4GB RAM的服务器,其网络覆盖操场和教学楼。边缘服务器2是3.0GHz 8核CPU,8GB RAM的服务器,其网络覆盖教学楼和实验楼。这款云服务器拥有3.6GHz 16核CPU16GB RAM,可在所有地点公开访问。
本实施例在评估中使用了一个车牌识别系统(LRS),它使用图像识别技术从视频流中收集汽车信息如图9所示,框架采集了以下信息。
本实施例根据原始,传统迁移应用程序和自适应迁移应用程序的比较来评估本实施例的自适应迁移框架所带来的性能改进。原始应用程序完全在设备上运行;传统的迁移应用程序通过最佳的网络连接将可移动对象的密集计算迁移到远程服务器;自适应迁移的应用程序可以使用任何远程服务器进行按需迁移。本实施例还考虑两种情况:设备停留在不同位置时,以及设备在不同位置之间移动。本实施例使用响应时间作为性能指标,其结果如图10、图11、以及图12所示。
本实施例通过自适应计算迁移框架,实现了移动应用在移动边缘环境下的自适应部署。通过本实施例能够提高了应用的性能以及效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (8)
1.一种移动边缘计算下的自适应计算迁移方法,其特征在于:包括以下步骤:
步骤S1:设计按需调用模式,使得移动应用程序能够按需迁移;
步骤S2:根据设备上下文自动确定迁移方案,找到应用程序每个类的最佳部署位置。
2.根据权利要求1所述的一种移动边缘计算下的自适应计算迁移方法,其特征在于:所述步骤S1具体包括以下步骤:
步骤S11:将应用程序的类别分为Movable类和Anchored类,其中Movable类能够在设备、移动边缘和云服务器之间迁移,Anchored类不能被迁移至远程服务器;
步骤S12:进行对象的创建和迁移;
步骤S13:进行方法调用。
3.根据权利要求2所述的一种移动边缘计算下的自适应计算迁移方法,其特征在于:步骤S12中,进行对象的创建具体为:设计ObjectFactory来处理本地和远程创建单个对象或一组对象,采用ObjectFactory的create方法用于创建类N的实例;其中create方法的参数包括:N类的全限定类名、要创建的实例的目标位置以及类实例的构造函数参数值。
4.根据权利要求3所述的一种移动边缘计算下的自适应计算迁移方法,其特征在于:
当目标位置是本地主机时,ObjectFactory将直接创建实例及其ID,然后使用类名和实例ID生成代理;另外ObjectFactory为每个本地实例维护哈希表<ID,Object Reference>;
当目标位置是远程服务器时,本地ObjectFactory将序列化参数并将它们传送到远程ObjectFactory;然后,远程ObjectFactory反序列化参数,并在远程服务器上创建实例以及其ID和代理;之后,返回ID,本地ObjectFactory使用它来生成代理;另外,ObjectFactory为每个实例维护哈希表<ID,Location>。
5.根据权利要求2所述的一种移动边缘计算下的自适应计算迁移方法,其特征在于:步骤S12中,进行对象的迁移具体为:采用ObjectFactory用于处理迁移单个对象或一组对象;采用ObjectFactory的offload方法用于迁移类N的实例;其中offload方法的参数包括:N类的全限定类名、N类的实例ID以及要迁移的实例的目标位置。
6.根据权利要求5所述的一种移动边缘计算下的自适应计算迁移方法,其特征在于:进行对象的迁移具体包括以下步骤:
步骤S121:将实例及其ID在原始节点上序列化并传送到目标节点;
步骤S122:在目标节点上创建新实例及其代理;
步骤S123:更新原始节点和目标节点上的ObjectFactory的散列表。
7.根据权利要求2所述的一种移动边缘计算下的自适应计算迁移方法,其特征在于:步骤S3具体为:设置代理和拦截器,每个代理对象都包含一个拦截器,该拦截器用于处理对象之间的实际网络通信;从类X到类N的方法调用首先从X本地传递到代理NProxy,然后传递到拦截器;在代理NProxy的方法体中,拦截器的invokeMethod方法用于将方法调用转发给可能迁移的类N的invokeMethod的参数是:类N的全限定类名、类N的实例ID、字节码级方法签名、实际执行类N的method M所需的参数;
当类X和类N都位于同一位置时,拦截器直接使用对象引用N执行方法调用;
当类X和类N分别在两个连接节点上运行时,拦截器序列化参数并将它们传送到连接节点上的代理NProxy;远程代理NProxy反序列化参数,并使用对象引用将方法调用转发到N本地;
当类X和类N分别在两个未连接的节点上运行时,拦截器不能直接通过网络堆栈转发方法调用,在这种情况下,使用Object-Factory的copyProxy方法将代理复制到云服务器;代理和实例位置被序列化并传输到云服务器中的ObjectFactory;云服务器上的ObjectFactory反序列化代理并将实例位置记录在其哈希表中;然后,本地ObjectFactory将实例位置的信息修改为云服务器;因此,当一个方法被调用时,拦截器将首先将方法调用转发给云服务器上的代理,然后通过网络堆栈将方法调用转发给实例。
8.根据权利要求1所述的一种移动边缘计算下的自适应计算迁移方法,其特征在于:步骤S2具体包括以下步骤:
步骤S21:使用ASM生成主要活动的程序控制流图,获取Movable类及其方法,令C={c0,c1,...,cn}表示Movable类的集合,表示ci的方法集合;
步骤S22:收集服务节点与设备之间的网络信息,令N={n0,n1,...,nz}为移动设备、边缘节点以及云服务器,令V={v0,v1,...,vz}表示远程服务器与移动设备之间的网络传输速率,令RTT={rtt0,rtt1,...,rttz}表示远程服务器与移动设备之间的RTT;
步骤S23:通过信息模型采集对应的网络信息以及每个节点上方法调用信息;令表示方法在节点nt上的执行时间,令表示方法的数据传输量;方法在nt上执行网络延迟以及方法在nt上执行的响应时间分别通过下式计算:
构建以下适应性函数表示不同部署方案下的应用相应时间:
步骤S24:将响应时间最短的部署方案作为最优技术方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910292233.6A CN110012021B (zh) | 2019-04-12 | 2019-04-12 | 一种移动边缘计算下的自适应计算迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910292233.6A CN110012021B (zh) | 2019-04-12 | 2019-04-12 | 一种移动边缘计算下的自适应计算迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110012021A true CN110012021A (zh) | 2019-07-12 |
CN110012021B CN110012021B (zh) | 2021-06-22 |
Family
ID=67171318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910292233.6A Active CN110012021B (zh) | 2019-04-12 | 2019-04-12 | 一种移动边缘计算下的自适应计算迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110012021B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022116814A1 (en) * | 2020-12-03 | 2022-06-09 | International Business Machines Corporation | Migrating complex legacy applications |
CN114731296A (zh) * | 2019-10-26 | 2022-07-08 | 密米克科技公司 | 用于分布式边缘云计算的方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629198A (zh) * | 2012-02-29 | 2012-08-08 | 北京大学 | 软件应用中计算逻辑的按需远程执行方法 |
CN105812461A (zh) * | 2016-03-09 | 2016-07-27 | 福州大学 | 一种移动云环境情景感知计算迁移方法 |
CN106790341A (zh) * | 2016-09-08 | 2017-05-31 | 大连海事大学 | 移动Web服务应用的自适应部署方法 |
CN107133101A (zh) * | 2017-04-27 | 2017-09-05 | 福州大学 | IoT系统中的自适应计算迁移中间件 |
-
2019
- 2019-04-12 CN CN201910292233.6A patent/CN110012021B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629198A (zh) * | 2012-02-29 | 2012-08-08 | 北京大学 | 软件应用中计算逻辑的按需远程执行方法 |
CN105812461A (zh) * | 2016-03-09 | 2016-07-27 | 福州大学 | 一种移动云环境情景感知计算迁移方法 |
CN106790341A (zh) * | 2016-09-08 | 2017-05-31 | 大连海事大学 | 移动Web服务应用的自适应部署方法 |
CN107133101A (zh) * | 2017-04-27 | 2017-09-05 | 福州大学 | IoT系统中的自适应计算迁移中间件 |
Non-Patent Citations (1)
Title |
---|
JIAJUN ZHANG, SHIHONG CHEN, BICHUN LIU, YUN MA, AND XING CHEN: "A Locally Distributed Mobile Computing Framework for DNN based Android Applications", 《ACM》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114731296A (zh) * | 2019-10-26 | 2022-07-08 | 密米克科技公司 | 用于分布式边缘云计算的方法和系统 |
CN114731296B (zh) * | 2019-10-26 | 2024-05-31 | 密米克科技公司 | 用于分布式边缘云计算的方法和系统 |
WO2022116814A1 (en) * | 2020-12-03 | 2022-06-09 | International Business Machines Corporation | Migrating complex legacy applications |
GB2616791A (en) * | 2020-12-03 | 2023-09-20 | Ibm | Migrating complex legacy applications |
US11803413B2 (en) | 2020-12-03 | 2023-10-31 | International Business Machines Corporation | Migrating complex legacy applications |
Also Published As
Publication number | Publication date |
---|---|
CN110012021B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Machen et al. | Live service migration in mobile edge clouds | |
Chen et al. | Deep learning with edge computing: A review | |
McChesney et al. | Defog: fog computing benchmarks | |
Chen et al. | An adaptive offloading framework for android applications in mobile edge computing | |
Luo et al. | Container-based fog computing architecture and energy-balancing scheduling algorithm for energy IoT | |
Stanciu | Blockchain based distributed control system for edge computing | |
CN107343025B (zh) | 分布式卫星云雾网络架构及能耗约束下的时延优化方法 | |
Roy et al. | AI-enabled mobile multimedia service instance placement scheme in mobile edge computing | |
CN102650950A (zh) | 一种支持多gpu虚拟化的平台架构及其工作方法 | |
Filip et al. | Data capsule: Representation of heterogeneous data in cloud-edge computing | |
CN110012021A (zh) | 一种移动边缘计算下的自适应计算迁移方法 | |
CN112291728A (zh) | 基于5g网络的私有行业应用平台实现架构 | |
Ebrahim et al. | A deep learning approach for task offloading in multi-UAV aided mobile edge computing | |
De Vita et al. | Using deep reinforcement learning for application relocation in multi-access edge computing | |
Salehnia et al. | SDN-based optimal task scheduling method in Fog-IoT network using combination of AO and WOA | |
Abdullaziz et al. | Enabling mobile service continuity across orchestrated edge networks | |
Hu et al. | To centralize or not to centralize: A tale of swarm coordination | |
Bin Khunayn et al. | Exploiting data dependency to mitigate stragglers in distributed spatial simulation | |
Mora et al. | Serverless computing at the edge for aiot applications | |
Coutinho et al. | Scalable fogbed for fog computing emulation | |
Vigueras et al. | A scalable architecture for crowd simulation: Implementing a parallel action server | |
Guan et al. | A novel energy efficient platform based model to enable mobile cloud applications | |
Jabour et al. | An optimized approach for efficient-power and low-latency fog environment based on the PSO algorithm | |
CN114764389A (zh) | 联合学习系统异构模拟测试平台 | |
Tärneberg | The confluence of Cloud computing, 5G, and IoT in the Fog |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |