CN107133101A - IoT系统中的自适应计算迁移中间件 - Google Patents
IoT系统中的自适应计算迁移中间件 Download PDFInfo
- Publication number
- CN107133101A CN107133101A CN201710287185.2A CN201710287185A CN107133101A CN 107133101 A CN107133101 A CN 107133101A CN 201710287185 A CN201710287185 A CN 201710287185A CN 107133101 A CN107133101 A CN 107133101A
- Authority
- CN
- China
- Prior art keywords
- mrow
- msub
- middleware
- class
- module
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5055—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种IoT系统中的自适应计算迁移中间件,包括创建模块:通过调用ObjectFactory提供的创建服务,创建服务支持对象的本地创建以及对象的远程创建;迁移模块:通过调用ObjectFactory提供的迁移服务,迁移服务支持对象迁移到远程以及对象的迁回操作;调用模块:通过调用代理对象,代理对象将调用操作转发给ObjectFactory的调用服务,调用服务将操作发送给实际对象进行处理,返回调用结果;决策模块:中间件通过拦截器获取程序执行顺序以及获取IoT的网络环境参数,通过决策算法计算部署方案的适应性函数值来获取最优部署方案,最后通过迁移模块以及调用模块进行部署实现。本发明使得普通IoT应用通过中间件的支持后可自适应计算迁移以及动态部署。
Description
技术领域
本发明涉及一种IoT系统中的自适应计算迁移中间件。
背景技术
随着IoT的发展以及IoT应用的普及,IoT应用的数据传输、计算能力得到一定的挑战,智能设备在性能和能耗方面存在问题,同时由于IoT应用多节点部署的特性,同一个IoT应用在不同的环境中,存在不同的部署方案,因此,IoT应用无法确定部署,导致了IoT应用开发以及部署的难度。计算迁移是一种可能的解决方案。然而,随着云、雾、智能终端等的增多,计算迁移面临新的挑战:即能够在一定约束下,实现IoT应用的动态部署:因为IoT应用在同一环境下,不同部署方案对IoT应用的效率起到了决定性的作用,如何根据IoT应用的复杂度以及计算资源,制定合适的部署方案。我们的工作为IoT应用提供了中间件的支持:
(1)框架支持:提供了计算迁移框架,使得IoT应用获得迁移能力;
(2)决策机制:提供了基于遗传算法的迁移决策机制,使得IoT应用能能够根据当前环境自适应部署在计算节点上。
发明内容
有鉴于此,本发明的目的在于提供一种IoT系统中的自适应计算迁移中间件,使得普通IoT应用通过中间件的支持后可自适应计算迁移以及动态部署。
为实现上述目的,本发明采用如下技术方案:
一种IoT系统中的自适应计算迁移中间件,其特征在于:包括创建模块、迁移模块、调用模块和迁移决策模块;
创建模块:通过调用ObjectFactory提供的创建服务,创建服务支持对象的本地创建以及对象的远程创建,创建服务返回的结果是对象的代理对象,
迁移模块:通过调用ObjectFactory提供的迁移服务,迁移服务支持对象迁移到远程以及对象的迁回操作,迁移服务返回的结果是对象的代理对象,
调用模块:通过调用代理对象,代理对象将调用操作转发给ObjectFactory的调用服务,调用服务将操作发送给实际对象进行处理,之后返回调用结果,
决策模块:渗透在以上三个模块中,中间件通过拦截器获取程序执行顺序以及获取IoT的网络环境参数,通过决策算法计算部署方案的适应性函数值来获取最优部署方案,最后通过迁移模块以及调用模块进行部署实现。
进一步的,所述自适应计算迁移中间件要求IoT应用符合以下持久性约束:
A、Movable、Anchored类的划分
基于对象的迁移涉及到对象所属的类类型,中间件将用户所提供的类进行两种类型的划分即Movable类和Anchored类
Movable类:1、不涉及调用特定硬件资源的类,2、不包括Anchored类对象3、不能继承Anchored类或者实现Anchored接口
Anchored类:1、涉及调用特定硬件资源的类,2、包含Anchored类对象,3、继承Anchored类或者实现Anchored接口
B、Movable类的封装
中间件为了支持对象的迁移,要求符合以下规定
1.Movable类中public方法封装成接口
2.实现Serializable接口支持序列化
3.类中的成员变量设置其修饰符为private
4.对成员变量的访问必须通过get方法以及set方法
C、对象数组的转化
中间件提供了Array泛型接口以及其实现类ArrayImpl,对于对象数组的处理需要符合以下规定
1.对象数组的创建必须使用Array接口进行实现
Array<AInf>a_array=new ArrayImpl<AInf>(n);
2.对象数组的访问必须通过Array接口提供的get以及set方法进行
其中set方法对数组内容进行赋值,get方法是对数组内容进行读取,具体如下:
AInf a=a_array.get(index);a_array.set(index,a);
D、对象创建
中间件提供ObjectFactory类负责对象代理的创建,所有Movable对象都是通过这个类进行创建、迁移,ObjectFactory负责对参数进行处理以及构造函数的匹配以及创建的对象的代理对象,所有可迁移对象的创建均需要通过ObjectFactory进行
AInf a=(AInf)ObjectFactory.create(A.class,args);
E、Anchored对象的Location配置
中间件提供了Anchored对象Location的配置,特定对象必须在指定的Location节点上进行方法调用,中间件通过解析用户提供的XML配置文件,将这些特定对象注册到中间件默认的注册服务器上,由于中间件通过反射机制进行这些Anchored对象的初始化,因此这些Anchored对象所属的类需要提供默认的构造函数。
进一步的,所述创建服务包括:
对象的本地创建:首先传入对象的构造参数以及对象的类类型,ObjectFactory对这些构造参数进行类型处理,通过处理之后的构造参数来匹配对应的构造函数,然后利用构造函数进行对象的创建,最后创建对象的代理对象并记录其计算节点位置;
对象的远程创建:首先传入构造参数以及对象类型,ObjectFactory处理构造参数,然后将其发送至目标计算节点,目标计算节点的ObjectFactory处理接收到的构造参数,匹配构造函数,然后创建对象和对象代理,保存对象代理的计算节点位置,然后将对象副本发送回源计算节点,源计算节点接收到对象副本,然后创建代理对象同时保存代理的计算节点位置。
进一步的,所述迁移模块中,对迁移对象的fields进行处理,然后将fields以及对象类型发送至远程目标节点,远程目标节点处理接收到的fields,然后创建对象及其代理对象,然后对对象的fields进行设置,保存代理对象的计算节点位置,源计算节点更新代理对象的计算节点位置。
进一步的,所述调用服务包括:
对象的本地调用:代理对象执行函数调用触发中间件拦截器的拦截,拦截器判断该代理对象的计算节点位置是否与当前计算节点位置一致,如果一致,拦截器通过方法参数与方法名匹配方法对象,利用代理对象获取到实际对象,然后执行对象调用;
对象的远程调用:代理对象调用方法触发拦截器拦截,拦截器判断代理对象的计算节点位置是否与当前节点一致,如果不一致,拦截器处理方法参数,然后将方法参数,方法名以及代理对象ID发送至代理对象计算节点位置,代理对象计算节点接收到以上信息之后,处理方法处理,通过方法参数与方法名获取方法对象,利用代理对象ID找到代理对象,通过代理对象找到实际对象,然后执行方法调用。
进一步的,所述决策算法包括以下两部分:
(1)数据矩阵
矩阵E表示每个计算节点对应每个功能模块所需要的计算时间Texecute
其中,eij表示第i个计算节点对应第j个功能模块的计算时间;
矩阵V表示两个计算节点之间的数据传输速率Vtransfer
其中,vij表示第i个计算节点与第j个计算节点之间的数据传输速率;
矩阵C表示每个计算节点对应每个功能模块的对象创建时间Tcreate
其中,cij表示第i个计算节点在第j个功能模块对象的创建时间;
(2)调用序列图
以G=<V,E>vi∈V表示每个方法节点,方法节点表示:class_object_function_node其中class为类类型,object为对象实例,function为方法,node为部署节点;eij∈E表示为<vi,vj,wij>,其中vi,vj分别表示方法节点i和方法节点j,wij表示vi调用vj的概率,迁移框架可以通过统计得到wij,其中
记功能模块个数为m,计算节点个数为n,则功能模块向量为(m1,m2,m3,…,mm),迁移决策部署节点为(d1,d2,d3,…,dm),则每种部署方案的适应性函数值f(x)计算公式如下:
本发明与现有技术相比具有以下有益效果:本发明通过提供自适应计算迁移中间件,实现了IoT应用的动态部署以及IoT应用计算的自适应迁移,通过本发明的中间件,一个普通IoT应用可自适应计算迁移及动态部署,提高了IoT应用的性能以及效率。
附图说明
图1是本发明的结构框图。
图2是本发明调用模块的设计模式图。
图3是本发明创建模块的设计模式图。
图4是本发明迁移模块的设计模式图。
图5是本发明调用序列图。
图6是本发明一实施例的节点部署情况图。
图7是本发明一实施例的车牌识别调用序列。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
请参照图1,本发明提供一种IoT系统中的自适应计算迁移中间件,一个普通的IoT应用通过中间件的支持,该IoT应用可自适应计算迁移及动态部署。其特征在于:包括创建模块、迁移模块、调用模块和迁移决策模块;对象创建指对象通过决策机制制定部署方案后自动创建在计算节点。对象调用指的是用户调用对象的方法,中间件通过拦截方法,转发到实际对象的计算节点中,进行方法调用后结果返回给用户。对象迁移是在IoT应用过程中,决策机制实时根据上下文环境,自动发起对象迁移,提高IoT应用的效率,这三个部分对用户都是透明的。
创建模块:通过调用ObjectFactory提供的创建服务,创建服务支持对象的本地创建以及对象的远程创建,创建服务返回的结果是对象的代理对象,
对象的本地创建:首先传入对象的构造参数以及对象的类类型,ObjectFactory对这些构造参数进行类型处理,通过处理之后的构造参数来匹配对应的构造函数,然后利用构造函数进行对象的创建,最后创建对象的代理对象并记录其计算节点位置;
对象的远程创建:首先传入构造参数以及对象类型,ObjectFactory处理构造参数,然后将其发送至目标计算节点,目标计算节点的ObjectFactory处理接收到的构造参数,匹配构造函数,然后创建对象和对象代理,保存对象代理的计算节点位置,然后将对象副本发送回源计算节点,源计算节点接收到对象副本,然后创建代理对象同时保存代理的计算节点位置。
迁移模块:通过调用ObjectFactory提供的迁移服务,迁移服务支持对象迁移到远程以及对象的迁回操作,迁移服务返回的结果是对象的代理对象;具体的,对迁移对象的fields进行处理,然后将fields以及对象类型发送至远程目标节点,远程目标节点处理接收到的fields,然后创建对象及其代理对象,然后对对象的fields进行设置,保存代理对象的计算节点位置,源计算节点更新代理对象的计算节点位置。
调用模块:通过调用代理对象,代理对象将调用操作转发给ObjectFactory的调用服务,调用服务将操作发送给实际对象进行处理,之后返回调用结果,调用服务包括:
对象的本地调用:代理对象执行函数调用触发中间件拦截器的拦截,拦截器判断该代理对象的计算节点位置是否与当前计算节点位置一致,如果一致,拦截器通过方法参数与方法名匹配方法对象,利用代理对象获取到实际对象,然后执行对象调用;
对象的远程调用:代理对象调用方法触发拦截器拦截,拦截器判断代理对象的计算节点位置是否与当前节点一致,如果不一致,拦截器处理方法参数,然后将方法参数,方法名以及代理对象ID发送至代理对象计算节点位置,代理对象计算节点接收到以上信息之后,处理方法处理,通过方法参数与方法名获取方法对象,利用代理对象ID找到代理对象,通过代理对象找到实际对象,然后执行方法调用。
决策模块:渗透在以上三个模块中,中间件通过拦截器获取程序执行顺序以及获取IoT的网络环境参数,通过决策算法计算部署方案的适应性函数值来获取最优部署方案,最后通过迁移模块以及调用模块进行部署实现;所述决策算法包括以下两部分:
(3)数据矩阵
矩阵E表示每个计算节点对应每个功能模块所需要的计算时间Texecute
其中,eij表示第i个计算节点对应第j个功能模块的计算时间;
矩阵V表示两个计算节点之间的数据传输速率Vtransfer
其中,vij表示第i个计算节点与第j个计算节点之间的数据传输速率;
矩阵C表示每个计算节点对应每个功能模块的对象创建时间Tcreate
其中,cij表示第i个计算节点在第j个功能模块对象的创建时间;
(4)调用序列图
请参照图5,以G=<V,E>vi∈V表示每个方法节点,方法节点表示:class_object_function_node其中class为类类型,object为对象实例,function为方法,node为部署节点;eij∈E表示为<vi,vj,wij>,其中vi,vj分别表示方法节点i和方法节点j,wij表示vi调用vj的概率,迁移框架可以通过统计得到wij,其中
记功能模块个数为m,计算节点个数为n,则功能模块向量为(m1,m2,m3,…,mm),迁移决策部署节点为(d1,d2,d3,…,dm),则每种部署方案的适应性函数值f(x)计算公式如下:
以下结合设计模式对各模块进行进一步解释说明:
A)持久化约束
同时为了支持计算迁移,所述自适应计算迁移中间件要求IoT应用符合以下持久性约束:
A、Movable、Anchored类的划分
基于对象的迁移涉及到对象所属的类类型,中间件将用户所提供的类进行两种类型的划分即Movable类和Anchored类
Movable类:1、不涉及调用特定硬件资源的类,2、不包括Anchored类对象3、不能继承Anchored类或者实现Anchored接口
Anchored类:1、涉及调用特定硬件资源的类,2、包含Anchored类对象,3、继承Anchored类或者实现Anchored接口
B、Movable类的封装
中间件为了支持对象的迁移,要求符合以下规定
1.Movable类中public方法封装成接口
2.实现Serializable接口支持序列化
3.类中的成员变量设置其修饰符为private
4.对成员变量的访问必须通过get方法以及set方法
C、对象数组的转化
中间件提供了Array泛型接口以及其实现类ArrayImpl,对于对象数组的处理需要符合以下规定
1.对象数组的创建必须使用Array接口进行实现
Array<AInf>a_array=new ArrayImpl<AInf>(n);
2.对象数组的访问必须通过Array接口提供的get以及set方法进行
其中set方法对数组内容进行赋值,get方法是对数组内容进行读取,具体如下:
AInf a=a_array.get(index);a_array.set(index,a);
D、对象创建
中间件提供ObjectFactory类负责对象代理的创建,所有Movable对象都是通过这个类进行创建、迁移,ObjectFactory负责对参数进行处理以及构造函数的匹配以及创建的对象的代理对象,所有可迁移对象的创建均需要通过ObjectFactory进行
AInf a=(AInf)ObjectFactory.create(A.class,args);
E、Anchored对象的Location配置
中间件提供了Anchored对象Location的配置,特定对象必须在指定的Location节点上进行方法调用,中间件通过解析用户提供的XML配置文件,将这些特定对象注册到中间件默认的注册服务器上,由于中间件通过反射机制进行这些Anchored对象的初始化,因此这些Anchored对象所属的类需要提供默认的构造函数。
B)调用模块
如图2所示,调用模块是通过中间的拦截器进行拦截转发实现,可以细化为对象本地调用和对象远程调用。当一个代理对象进行方法调用时,拦截器通过拦截该调用,通过ObjectFactory判断该代理对象所指向的实际对象是远程对象还是本地对象,如果是本地对象,则直接将方法调用转发给本地对象,然后得到返回结果。
如果该对象是远程对象,则ObjectFactory将通过网络连接,发送这些方法信息到远程计算节点,由远程ObjectFactory转发给远程对象代理进行调用,调用结果通过网络连接返回给本地计算节点。
C)创建模块
如图3所示,对象创建模块是通过调用ObjectFactory的create()方法进行实现的,对象创建可以细分会本地创建与远程创建,本地创建即对象在本地计算节点上创建,ObjectFactory会返回一个本地对象以及该对象的代理对象。远程创建即对象在远程计算节点上创建,本地计算节点的ObjectFactory通过网络传输将参数发送到远程计算节点,远程计算节点的ObjectFactory发起创建,最后远程计算节点返回一个远程创建对象的代理对象给本地计算节点。
D)迁移模块
如图4所示,对象迁移模块是通过调用ObjectFactory的offload()方法进行实现,对象迁移是为了支持自适应的部署,对象迁移的过程相当于对象调用和对象创建的结合,对象迁移是由ObjectFactory发起的,通过判断代理对象指向的实际对象所处的计算节点位置是否与部署方案的计算节点位置一致,如果不一致,则通过网络发送对象的状态给部署方案的计算节点,在部署方案的计算节点上进行对象的创建,然后更新代理对象。如果一致,则不需要进行任何操作。
E)决策模块
迁移决策模块是中间件实现IoT应用动态部署的关键技术,中间件通过拦截器获取IoT应用对象方法的调用序列,并且记录对象方法执行的时间信息。对于IoT应用的网络环境,中间件也进行了网络参数的采集。通过收集这些数据,中间件对数据进行建模,然后通过构建适应性函数,对于应用的不同部署方案进行了评估,最后选择最优的部署方案进行应用部署。
为了让一般技术人员更好的理解本发明的技术方案,以下结合一具体实例对本发明进行详细介绍。
为了验证本发明提出方法的有效性,使用Java语言在MyEclipse平台上实现了相应中间件。并且通过一个车牌识别应用作为案例进行方法的验证。如图7所示,车牌识别应用的处理流程:读取视频,视频取帧,灰度处理,定位车牌,OCR处理,存云服务中。计算节点分布情况如图6,其中计算节点的性能排序为节点<计算机<云。
对本发明的提出的中间件进行车牌识别应用的实验,进而中间件采集了以下的信息:
表1节点数据传输时间
表2节点上功能模块对象创建时间
表3节点上功能模块调用时间
通过中间件得到的部署方案向量为(1,1,1,8,8,8),方案对应的应用响应时间为3720ms,相比于最初的无迁移所需要时间7800ms,效率提升了200%,通过实验验证了本文提出的中间件在动态部署IoT应用以及提高IoT应用效率上的有效性。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (6)
1.一种IoT系统中的自适应计算迁移中间件,其特征在于:包括创建模块、迁移模块、调用模块和迁移决策模块;
创建模块:通过调用ObjectFactory提供的创建服务,创建服务支持对象的本地创建以及对象的远程创建,创建服务返回的结果是对象的代理对象,
迁移模块:通过调用ObjectFactory提供的迁移服务,迁移服务支持对象迁移到远程以及对象的迁回操作,迁移服务返回的结果是对象的代理对象,
调用模块:通过调用代理对象,代理对象将调用操作转发给ObjectFactory的调用服务,调用服务将操作发送给实际对象进行处理,之后返回调用结果,
决策模块:渗透在以上三个模块中,中间件通过拦截器获取程序执行顺序以及获取IoT的网络环境参数,通过决策算法计算部署方案的适应性函数值来获取最优部署方案,最后通过迁移模块以及调用模块进行部署实现。
2.根据权利要求1所述的IoT系统中的自适应计算迁移中间件,其特征在于:所述自适应计算迁移中间件要求IoT应用符合以下持久性约束:
A、Movable、Anchored类的划分
基于对象的迁移涉及到对象所属的类类型,中间件将用户所提供的类进行两种类型的划分即Movable类和Anchored类
Movable类:1、不涉及调用特定硬件资源的类,2、不包括Anchored类对象3、不能继承Anchored类或者实现Anchored接口
Anchored类:1、涉及调用特定硬件资源的类,2、包含Anchored类对象,3、继承Anchored类或者实现Anchored接口
B、Movable类的封装
中间件为了支持对象的迁移,要求符合以下规定
1.Movable类中public方法封装成接口
2.实现Serializable接口支持序列化
3.类中的成员变量设置其修饰符为private
4.对成员变量的访问必须通过get方法以及set方法
C、对象数组的转化
中间件提供了Array泛型接口以及其实现类ArrayImpl,对于对象数组的处理需要符合以下规定
1.对象数组的创建必须使用Array接口进行实现
Array<AInf>a_array=new ArrayImpl<AInf>(n);
2.对象数组的访问必须通过Array接口提供的get以及set方法进行
其中set方法对数组内容进行赋值,get方法是对数组内容进行读取,具体如下:
AInf a=a_array.get(index);a_array.set(index,a);
D、对象创建
中间件提供ObjectFactory类负责对象代理的创建,所有Movable对象都是通过这个类进行创建、迁移,ObjectFactory负责对参数进行处理以及构造函数的匹配以及创建的对象的代理对象,所有可迁移对象的创建均需要通过ObjectFactory进行
AInf a=(AInf)ObjectFactory.create(A.class,args);
E、Anchored对象的Location配置
中间件提供了Anchored对象Location的配置,特定对象必须在指定的Location节点上进行方法调用,中间件通过解析用户提供的XML配置文件,将这些特定对象注册到中间件默认的注册服务器上,由于中间件通过反射机制进行这些Anchored对象的初始化,因此这些Anchored对象所属的类需要提供默认的构造函数。
3.根据权利要求1所述的IoT系统中的自适应计算迁移中间件,其特征在于:所述创建服务包括:
对象的本地创建:首先传入对象的构造参数以及对象的类类型,ObjectFactory对这些构造参数进行类型处理,通过处理之后的构造参数来匹配对应的构造函数,然后利用构造函数进行对象的创建,最后创建对象的代理对象并记录其计算节点位置;
对象的远程创建:首先传入构造参数以及对象类型,ObjectFactory处理构造参数,然后将其发送至目标计算节点,目标计算节点的ObjectFactory处理接收到的构造参数,匹配构造函数,然后创建对象和对象代理,保存对象代理的计算节点位置,然后将对象副本发送回源计算节点,源计算节点接收到对象副本,然后创建代理对象同时保存代理的计算节点位置。
4.根据权利要求1所述的IoT系统中的自适应计算迁移中间件,其特征在于:所述迁移模块中,对迁移对象的fields进行处理,然后将fields以及对象类型发送至远程目标节点,远程目标节点处理接收到的fields,然后创建对象及其代理对象,然后对对象的fields进行设置,保存代理对象的计算节点位置,源计算节点更新代理对象的计算节点位置。
5.根据权利要求1所述的IoT系统中的自适应计算迁移中间件,其特征在于:所述调用服务包括:
对象的本地调用:代理对象执行函数调用触发中间件拦截器的拦截,拦截器判断该代理对象的计算节点位置是否与当前计算节点位置一致,如果一致,拦截器通过方法参数与方法名匹配方法对象,利用代理对象获取到实际对象,然后执行对象调用;
对象的远程调用:代理对象调用方法触发拦截器拦截,拦截器判断代理对象的计算节点位置是否与当前节点一致,如果不一致,拦截器处理方法参数,然后将方法参数,方法名以及代理对象ID发送至代理对象计算节点位置,代理对象计算节点接收到以上信息之后,处理方法处理,通过方法参数与方法名获取方法对象,利用代理对象ID找到代理对象,通过代理对象找到实际对象,然后执行方法调用。
6.根据权利要求1所述的IoT系统中的自适应计算迁移中间件,其特征在于:所述决策算法包括以下两部分:
(1)数据矩阵
矩阵E表示每个计算节点对应每个功能模块所需要的计算时间Texecute
其中,eij表示第i个计算节点对应第j个功能模块的计算时间;
矩阵V表示两个计算节点之间的数据传输速率Vtransfer
其中,vij表示第i个计算节点与第j个计算节点之间的数据传输速率;
矩阵C表示每个计算节点对应每个功能模块的对象创建时间Tcreate
其中,cij表示第i个计算节点在第j个功能模块对象的创建时间;
(2)调用序列图
以G=<V,E>vi∈V表示每个方法节点,方法节点表示:class_object_function_node其中class为类类型,object为对象实例,function为方法,node为部署节点;eij∈E表示为<vi,vj,wij>,其中vi,vj分别表示方法节点i和方法节点j,wij表示vi调用vj的概率,迁移框架可以通过统计得到wij,其中
<mrow>
<msub>
<mi>w</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>=</mo>
<munderover>
<mo>&Pi;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</munderover>
<msub>
<mi>w</mi>
<mrow>
<mi>k</mi>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
</mrow>
记功能模块个数为m,计算节点个数为n,则功能模块向量为(m1,m2,m3,…,mm),迁移决策部署节点为(d1,d2,d3,…,dm),则每种部署方案的适应性函数值f(x)计算公式如下:
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<munderover>
<mi>&Sigma;</mi>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>m</mi>
</munderover>
<msub>
<mi>w</mi>
<mrow>
<msub>
<mi>m</mi>
<mi>i</mi>
</msub>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
</mrow>
</msub>
<mo>*</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>e</mi>
<mrow>
<msub>
<mi>m</mi>
<mi>i</mi>
</msub>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mi>c</mi>
<mrow>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<msub>
<mi>m</mi>
<mi>i</mi>
</msub>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mi>t</mi>
<mrow>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<msub>
<mi>d</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>.</mo>
</mrow>
3
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710287185.2A CN107133101B (zh) | 2017-04-27 | 2017-04-27 | IoT系统中的自适应计算迁移中间件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710287185.2A CN107133101B (zh) | 2017-04-27 | 2017-04-27 | IoT系统中的自适应计算迁移中间件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107133101A true CN107133101A (zh) | 2017-09-05 |
CN107133101B CN107133101B (zh) | 2021-01-29 |
Family
ID=59715344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710287185.2A Active CN107133101B (zh) | 2017-04-27 | 2017-04-27 | IoT系统中的自适应计算迁移中间件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107133101B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445956A (zh) * | 2018-09-19 | 2019-03-08 | 北京大学 | 一种面向智能手表应用的云-端计算分载方法 |
CN110012021A (zh) * | 2019-04-12 | 2019-07-12 | 福州大学 | 一种移动边缘计算下的自适应计算迁移方法 |
CN110109702A (zh) * | 2019-05-16 | 2019-08-09 | 福州大学 | 基于代码分析的Android计算迁移在线决策方法 |
CN110177125A (zh) * | 2018-05-15 | 2019-08-27 | 广东电网有限责任公司 | 一种中间件平台迁移方法及系统 |
CN113435580A (zh) * | 2021-06-29 | 2021-09-24 | 福州大学 | 一种边缘环境下dnn应用计算卸载自适应中间件构建方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020062333A1 (en) * | 1998-06-12 | 2002-05-23 | Sanjay Anand | Method and computer program product for offloading processing tasks from software to hardware |
CN102546920A (zh) * | 2011-01-04 | 2012-07-04 | 中国移动通信有限公司 | 一种运行进程的方法、系统及设备 |
CN105812461A (zh) * | 2016-03-09 | 2016-07-27 | 福州大学 | 一种移动云环境情景感知计算迁移方法 |
-
2017
- 2017-04-27 CN CN201710287185.2A patent/CN107133101B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020062333A1 (en) * | 1998-06-12 | 2002-05-23 | Sanjay Anand | Method and computer program product for offloading processing tasks from software to hardware |
CN102546920A (zh) * | 2011-01-04 | 2012-07-04 | 中国移动通信有限公司 | 一种运行进程的方法、系统及设备 |
CN105812461A (zh) * | 2016-03-09 | 2016-07-27 | 福州大学 | 一种移动云环境情景感知计算迁移方法 |
Non-Patent Citations (2)
Title |
---|
HUAQIAN CAI等: "SM@RT Offloader: Supporting Adaptive Computation Offloading for Android Applications", 《PROCEEDINGS DEMO & POSTER TRACK OF ACM/IFIP/USENIX INTERNATIONAL MIDDLEWARE CONFERENCE》 * |
YING ZHANG等: "Refactoring Android Java Code for On-Demand Computation Offoading", 《PROCEEDINGS OF THE ACM INTERNATIONAL CONFERENCE ON OBJECT ORIENTED PROGRAMMING SYSTEMS LANGUAGES AND APPLICATIONS》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110177125A (zh) * | 2018-05-15 | 2019-08-27 | 广东电网有限责任公司 | 一种中间件平台迁移方法及系统 |
CN110177125B (zh) * | 2018-05-15 | 2021-08-31 | 广东电网有限责任公司 | 一种中间件平台迁移方法 |
CN109445956A (zh) * | 2018-09-19 | 2019-03-08 | 北京大学 | 一种面向智能手表应用的云-端计算分载方法 |
CN109445956B (zh) * | 2018-09-19 | 2022-07-22 | 北京大学 | 一种面向智能手表应用的云-端计算分载方法 |
CN110012021A (zh) * | 2019-04-12 | 2019-07-12 | 福州大学 | 一种移动边缘计算下的自适应计算迁移方法 |
CN110012021B (zh) * | 2019-04-12 | 2021-06-22 | 福州大学 | 一种移动边缘计算下的自适应计算迁移方法 |
CN110109702A (zh) * | 2019-05-16 | 2019-08-09 | 福州大学 | 基于代码分析的Android计算迁移在线决策方法 |
CN110109702B (zh) * | 2019-05-16 | 2021-07-13 | 福州大学 | 基于代码分析的Android计算迁移在线决策方法 |
CN113435580A (zh) * | 2021-06-29 | 2021-09-24 | 福州大学 | 一种边缘环境下dnn应用计算卸载自适应中间件构建方法 |
CN113435580B (zh) * | 2021-06-29 | 2022-06-07 | 福州大学 | 一种边缘环境下dnn应用计算卸载自适应中间件构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107133101B (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107133101A (zh) | IoT系统中的自适应计算迁移中间件 | |
CN109542457A (zh) | 一种边缘计算网络的分布式应用分发部署的系统及方法 | |
CN108763090A (zh) | 测试环境部署方法、装置、计算机设备和存储介质 | |
CN102087577B (zh) | 与位置无关地执行用户接口操作 | |
CN109104467A (zh) | 开发环境构建方法、装置以及平台系统和存储介质 | |
CN100421435C (zh) | 用于下一代网络、可动态扩展、开放接口技术的网关 | |
EP3837604B1 (en) | In situ triggered function as a service within a service mesh | |
US6201862B1 (en) | Method for providing at least one service to users of a telecommunication network, service control facility and server node | |
US6317428B1 (en) | Method of providing a service to users of a telecommunication network, service control facility, and processing node | |
CN104038535A (zh) | 在虚拟应用环境下改善用户体验的方法及虚拟应用系统 | |
CN108885641A (zh) | 高性能查询处理和数据分析 | |
CN109412878A (zh) | 多租户业务接入实现方法、装置及电子设备 | |
CN109614093A (zh) | 可视化智能合约系统以及智能合约的处理方法 | |
CN106331155A (zh) | 一种防止用户重复登录的方法和服务器 | |
CN115914392A (zh) | 算力网络资源调度方法及系统 | |
CN112330519A (zh) | 一种数据处理的方法和装置 | |
CN106161520A (zh) | 大数据应用平台及基于其的交互方法 | |
CN107632885A (zh) | 组件间的回调管理方法和装置 | |
CN114489585A (zh) | 一种治理功能插件化的微服务开发框架及实现方法 | |
CN107451211B (zh) | 一种基于RabbitMQ和MongoDB的下载系统 | |
CN110266787B (zh) | 一种混合云管理系统、方法及计算机设备 | |
CN116204307A (zh) | 兼容不同计算框架的联邦学习方法和联邦学习系统 | |
CN110012021B (zh) | 一种移动边缘计算下的自适应计算迁移方法 | |
KR102573652B1 (ko) | 군집 좌표 매핑 기반 정의서 분류를 이용한 스마트 컨트랙트 레포지토리 구축 방법 및 시스템 | |
US9503351B1 (en) | Deployment feedback for system updates to resources in private networks |
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 |