[发明专利]IoT系统中的自适应计算迁移中间件有效
| 申请号: | 201710287185.2 | 申请日: | 2017-04-27 |
| 公开(公告)号: | CN107133101B | 公开(公告)日: | 2021-01-29 |
| 发明(设计)人: | 陈星;陈世鸿;林俊鑫 | 申请(专利权)人: | 福州大学 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50 |
| 代理公司: | 福州元创专利商标代理有限公司 35100 | 代理人: | 蔡学俊 |
| 地址: | 350108 福建省福州市*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | iot 系统 中的 自适应 计算 迁移 中间件 | ||
1.一种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接口进行实现
ArrayAInfa_array=new ArrayImplAInf(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的信息之后,处理方法参数,通过方法参数与方法名获取方法对象,利用代理对象ID找到代理对象,通过代理对象找到实际对象,然后执行方法调用;
所述决策算法包括以下两部分:
(1)数据矩阵
矩阵E表示每个计算节点对应每个功能模块所需要的计算时间Texecute
其中,eij表示第i个计算节点对应第j个功能模块的计算时间;
矩阵V表示两个计算节点之间的数据传输速率Vtransfer
其中,vij表示第i个计算节点与第j个计算节点之间的数据传输速率;
矩阵C表示每个计算节点对应每个功能模块的对象创建时间Tcreate
其中,cij表示第i个计算节点在第j个功能模块对象的创建时间;
(2)调用序列图
以G=V,Evi∈V表示每个方法节点,方法节点表示:class_object_function_node其中class为类类型,object为对象实例,function为方法,node为部署节点;eij∈E表示为vi,vj,wij,其中vi,vj分别表示方法节点i和方法节点j,wij表示vi调用vj的概率,迁移框架可以通过统计得到wij,其中
记功能模块个数为r,计算节点个数为n,则功能模块向量为(m1,m2,m3,…,mr),迁移决策部署节点为(d1,d2,d3,…,dr),则每种部署方案的适应性函数值f(x)计算公式如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州大学,未经福州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710287185.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:存储系统服务质量QoS控制方法和装置
- 下一篇:一种数据处理系统和方法





