一种软件定义车联网计算任务迁移和调度方法与流程

文档序号:16879837发布日期:2019-02-15 22:01阅读:127来源:国知局
一种软件定义车联网计算任务迁移和调度方法与流程
本发明涉及软件定义网络、车联网
技术领域
,具体涉及一种软件定义车联网计算任务迁移和调度方法。
背景技术
:随着智能车辆的发展,汽车电子产品不断增多,车内电控系统规模和复杂性日益增加,驾乘者对智能汽车(含信息娱乐和通信)期待越来越高,越来越多的计算机应用在车辆环境中实现,而车辆资源有限,无法处理车载或路边传感器采集到的海量交通数据,由此引出新的挑战,即如何满足这些车载应用的计算需求。升级车载计算机是一种选择,但是成本高昂。云计算是另一种方法,使用远程网路服务器来满足计算需求,但是传统的集中式云计算在车辆环境中存在延时大,连接不稳定的特点。一方面,将车载客户端的工作负载卸载到远程云服务中心会造成较长的网络传输时延,并且难以实现实时数据传播。另一方面,处理移动车辆产生的大量数据会带来巨大的开销,并降低当地云资源的利用率。随着智能化技术的发展,道路中的车辆开始安装各种各样的电子通信设备,并且这些通信设备还能提供一定量的计算资源。这使得车辆与车辆之间能够在临时组建的快速变化的车载自组织网络中进行通信和计算资源共享。车辆相对于固定的基础设施具有较高的速度,因此它们的链路持续时间较短,但两个车辆在同一道路上行驶在同一方向上的速度差要小的多,因此车辆之间链路的持续时间就较长。因此,由其它车辆协助完成任务计算是可行的方法。随着软件定义网络的迅猛发展,这个新兴技术有望推动城市交通的进步,将软件定义网络引入到车联网络中,新的基于软件定义网络的车联网络将提供具有灵活性和可编程性的通信业务。软件定义网络代表了一种新兴的网络模式,它具有加入蜂窝网络和移动网络的潜力。首先,软件定义网络能够独立部署、控制、流量转发,即控制层从数据层分离出来,与基于硬件的移动网络相比具有很多优势。其次,逻辑集中控制提高了资源的服务效率。再者,可编程性使网络更加灵活,因此应用程序可以选择合适的无线接入接口来传送数据。因此,研究一种软件定义车联网络中计算任务迁移和调度方法有着重要的意义。技术实现要素:本发明的目的是提供一种软件定义车联网计算任务迁移和调度方法,用以对软件定义车联网中计算任务的迁移和调度。为了实现上述任务,本发明采用以下技术方案:一种软件定义车联网计算任务迁移和调度方法,包括以下步骤:步骤1,建立软件定义车联网所述的软件定义车联网包括:数据层,包括路边单元、基站、以及车辆;控制层,包括sdn控制器;应用层,包括各种不同的业务或应用程序;其中,控制层的sdn控制器与数据层的sdn交换机交互信息,与应用层进行通信;所述的软件定义车联网中的通信方式有:车车通信,车辆与sdn控制器通信,路边单元、基站与sdn控制器通信,以及车辆与基站、路边单元通信;所述的车辆的处理器中建立车辆的任务管理框架,包括管理模块、应用模块和后端模块,其中:应用模块用于使用户选择并下载业务,或选择并下载安装应用程序,后端模块用于对计算任务进行虚拟化、管理剩余资源以及对任务处理时间的估计;管理模块负责收集信息以及迁移计算任务;所述的基站中设置有sdn控制器的代理模块,负责接收sdn控制器的策略信息,根据策略信息更改车辆流表的流表项,完成车辆的请求;步骤2,计算任务的迁移和调度车辆从应用层下载业务或应用程序后,在执行业务或运行应用程序时产生计算任务,当计算任务超出车辆的计算能力时,则将计算任务发送至其他车辆协助完成;记发送计算任务的车辆为任务迁移请求车辆,任务的接收者为任务迁移执行车辆;请求车辆向一跳通信范围内的所有车辆发送任务迁移请求消息,接收各车辆返回到请求车辆的应答消息,请求车辆筛选处愿意执行计算任务、满足计算资源且计算能力强的车辆作为执行车辆,将执行车辆按照与请求车辆的距离由小至大进行排序,将排序后的结果发送到sdn控制器,sdn控制器收到所述的结果后,建立从请求车辆到各个执行车辆的流表并下发到所有车辆;请求车辆按照各执行车辆的计算能力将计算任务分割为子任务,除了请求车辆本身处理的部分子任务之外,将其余子任务分配给各个执行车辆,执行车辆接收到子任务后开始计算,将计算结果回传给请求车辆;当执行车辆还未将计算结果完全回传给请求车辆之前,如果执行车辆与请求车辆之间的通信断开,则执行车辆向sdn控制器发送请求消息,sdn控制器收到执行车辆的请求消息重新为执行车辆规划一条发送路径,执行车辆将计算结果发送至执行车辆所在地的基站或路边单元,基站或路边单元再将计算结果发送至请求车辆所在地的基站或路边单元,然后请求车辆再从基站或路边单元下载计算结果。进一步地,所述的管理模块负责收集信息以及迁移计算任务,其中管理模块包括:队列缓存模块,用于收集计算任务并将其放置于调度模块中,同时提供计算任务卸载接口;资源管理模块,用于控制后端模块可以使用的资源,以完成所需的计算任务;调度模块,用于和其他车辆进行通信,做任务安排,发送任务并接收结果。进一步地,所述的计算任务卸载,是指执行车辆从调度模块卸载计算任务,在虚拟机中调用匹配所需的资源,找到所需的资源后立即结束资源匹配,并按照匹配的资源完成计算任务的计算。进一步地,所述的应答消息的格式为:车辆idgps信息计算能力是否愿意执行任务请求车辆一跳通信范围内的车辆根据自身能否满足请求车辆完成计算任务所需的计算资源做出是否愿意执行任务的选择,如愿意执行任务,则用1表示,否则用0表示。进一步地,所述的sdn控制器的代理模块,在sdn控制器不能及时响应车辆需求时,sdn控制器通过有线的方式发送策略信息到基站,基站中的代理模块收到策略信息后根据策略信息更改车辆流表的流表项,完成车辆的请求。进一步地,所述的请求车辆按照各执行车辆的计算能力将计算任务分割为子任务,除了请求车辆本身处理的部分子任务之外,将其余子任务分配给各个执行车辆,包括:设当前需要执行的计算任务为k,将计算任务k划分为n个部分,n即表示子任务的总数;设执行车辆的数量为x,各执行车辆的计算能力为ni,ni表示执行车辆i在1秒可以处理的任务数量;则各执行车辆分配到的子任务为:本发明与现有技术相比具有以下技术特点:1.车辆之间进行任务传输能够实时满足车载应用的计算需求,克服了升级车辆计算机的成本,以及将任务传输至远程网络服务产生的时延问题。2.利用软件定义网络控制层与数据层解耦,将业务转发和处理从控制中分离出来,从而摆脱硬件对网络架构的限制。也就是说,数据层不关心控制策略,它只是使用控制层构建的处理输入输出的数据的方法。3.利用软件定义网络的灵活性和可编程性,能够智能的为数据层的交换机定义数据转发规则。4.车联网中有四种类型的网络接入技术,分别为蜂窝网络、车车通信、车辆和路边单元通信、有线网络,使用传统的网络架构很难进行网络管理和集成。由于软件定义网络的控制器和交换机使用统一接口和专用信道即控制信道进行通信,所以可以统一调度。5.在基站安装软件定义网络控制器代理模块,通过软件定义网络控制器代理模块避免软件定义网络控制器接收信息过载无法对部分交换机的流表进行更改。6.每个车辆的后端运行在虚拟机中,任务迁移执行车辆在虚拟机中调用所需的资源,按照匹配的资源完成任务的计算。通过虚拟机可以完成存储和网络连接。通过虚拟化可以更好的利用可用的计算资源,提升效率。7.控制层由原来的交换机转移到中央控制器,能够更有效的掌握全局信息,更智能的定义数据转发规则。附图说明图1是任务迁移请求车辆在路口收到任务迁移执行车辆结果的示意图;图2是任务迁移请求车辆与任务迁移执行车辆链路断开的示意图;图3为本发明方法的框架图;图4为车辆的任务管理框架结构示意图;图5为筛选任务执行迁移车辆的流程示意图;图6为分割计算任务的流程示意图。具体实施方式本发明公开了一种软件定义车联网计算任务迁移和调度方法,包括以下步骤:步骤1,建立软件定义车联网软件定义车联网包括:数据层,包括路边单元、基站、以及车辆;数据层将路边单元、基站、以及车辆统一作为sdn(softwaredefinednetwork,sdn)交换机,其中所述的路边单元、基站是指车联网中部署在路边进行辅助通信的设施,与有线网络直接相连,并可与车辆进行无线通信;控制层,包括sdn控制器,负责数据层资源的编排,以维护网络拓扑,状态信息;应用层,包括各种不同的业务或应用程序;所述的业务和应用程序包括例如增强现实ar(augmentedreality)、3d导航等,其中ar能够通过车辆的平视显示器提供帮助和警告信息以及提供更宽广的视野,但是在车辆运行应用程序或执行业务的过程中产生计算密集型任务,计算密集型任务对车辆的计算能力要求高,通常超过单个车辆的计算能力,而根据本发明提出的计算任务迁移和调度方法,则可以由其它车辆协助完成计算任务。其中,控制层的sdn控制器通过南向api接口向下与数据层的sdn交换机交互信息,通过北向接口向上与应用层进行通信。(1)软件定义车联网的通信方式车车通信:每个车辆都装有车载单元(obu),车辆之间通过v2v直接进行通信,通信协议为802.11p,802.11p在空旷地带的传输距离最远可达1000米。存在拐角和障碍物的复杂换将地带,传输距离为300米。本发明定义任务的发送者为任务迁移请求车辆(请求车辆),任务的接收者为任务迁移执行车辆(执行车辆)。车联网的多跳通信是一种优势,但如果跳数大于3,可靠性就会降低,而延时就会增加。车辆与sdn控制器通信:任务迁移请求车辆将筛选出的任务迁移执行车辆的id信息发送到sdn控制器;sdn控制器建立和维护请求车辆与各执行车辆的流表;当任务迁移执行车辆与任务迁移请求车辆的通信链路断开时,执行车辆发送请求消息到sdn控制器,sdn控制器为执行车辆重新规划一条返回计算结果到请求车辆的路径。路边单元、基站与sdn控制器通信:基站和路边单元接收sdn控制器的控制信息。车辆与基站、路边单元通信:任务迁移执行车辆将任务计算结果发送至路边单元或基站;请求车辆从路边单元或基站下载任务计算结果。(2)车辆的任务管理框架在车辆的处理器(车载电脑或独立的处理器)中建立车辆的任务管理框架,包括管理模块,应用模块和后端模块,其中应用模块用于使用户选择并从网上安装的应用程序;后端模块运行在虚拟机中,是指独立部署、可以本地运行的应用程序,用于对任务进行虚拟化、资源管理和处理时间的估计;管理模块是核心模块,负责收集信息以及迁移任务,管理模块由三个子模块构成:队列缓存模块:并不是所有的任务一到达就要进行调度或者是上传,每个缓存持续时间称之为缓存窗;缓存的主要原因是避免多个任务同时发现和同时传输,供计算任务卸载接口,满足要求时收集计算任务并将其放置在调度模块中。资源管理模块:控制后端模块可以使用的资源,从而完成所需计算的任务。调度模块:用于和其他车辆进行通信,做任务安排,发送任务并接收结果。调度模块是管理模块的核心模块。当执行车辆的处理器已经从所有任务中接收到所有的数据后,立即将任务置于处理队列中。按照先到先得的顺序逐个处理,在任何给定时刻,只有一个任务被执行。后端模块运行在虚拟机中,完成虚拟化、管理剩余资源以及对任务处理时间的估计。调度模块还需要一个定位系统来获取当前的地理位置。获取到的信息能够帮助sdn控制器快速找到车辆所在位置,完成计算结果的接收。所述任务卸载具体表现为:每个任务由一个车辆产生,由多个车辆处理。任务迁移请求车辆依据任务执行车辆的计算能力分割任务,除去本地自己处理的部分任务外,将剩余的子任务传输到车辆的调度模块,由调度模块传输到各任务迁移执行车辆。任务迁移执行车辆从车辆内部的调度模块卸载任务,在虚拟机中调用匹配所需的资源,即完成任务需要所需的计算资源,如cpu、内存等。在找到所需的资源后就立即结束匹配资源工作,并按照匹配的资源完成任务的计算。(3)基站中的代理模块本发明方案中,在基站中安装sdn控制器的代理模块,实现本地sdn控制器的功能,负责接收sdn控制器的策略信息,根据策略信息更改车辆流表的流表项,完成车辆的请求。在车联网中,交通量较小时,sdn控制器处理的信息较少,能够及时响应车辆需求,但当交通量增加到一定数量,sdn控制器接收的信息过载,无法针对车辆需求及时更改车辆流表的流表项。那么,sdn控制器通过有线的方式发送策略信息到基站,基站中的代理模块收到策略信息后根据策略信息更改车辆流表的流表项,完成车辆的请求。步骤2,计算任务的迁移本方案中,车辆在行驶过程时可通过两种无线网络接入到sdn控制器,包括路边单元和基站,路边单元和基站通过有线方式与sdn控制器通信。由于路边单元具有更好的通信质量和更低的接入费用,基站具有广阔的通信覆盖范围,车辆在路边单元的通信范围内首选通过路边单元与sdn控制器通信;车辆不在路边单元的通信覆盖范围内时,通过基站与sdn控制器通信。车辆从应用层下载业务或应用程序后,在执行业务或运行应用程序时产生计算任务,当计算任务超出车辆的计算能力时,例如计算任务的数量大于车辆在计算任务响应时间内的可以处理的任务数量;则将计算任务发送至其他车辆协助完成。记发送计算任务的车辆为任务迁移请求车辆,任务的接收者为任务迁移执行车辆。2.1任务迁移请求车辆筛选任务迁移执行车辆网络中每个车辆节点均有全网唯一识别码id,任务迁移请求车辆向该车一跳通信范围内的所有车辆发送任务迁移请求消息,各车辆返回到任务迁移请求车辆的应答消息的内容为:车辆idgps信息计算能力是否愿意执行任务执行车辆根据自身的条件,如:是否满足请求车辆完成计算任务所需的计算资源等条件做出是否愿意执行任务的选择,愿意为1,不愿意为0。请求车辆根据返回的消息,筛选出愿意执行任务、满足计算资源且计算能力强的任务迁移执行车辆,如图5所示。2.3,任务迁移请求车辆与sdn控制器通信任务迁移请求车辆将所选的任务迁移执行车辆按照两者的距离进行排序,距离相同时计算能力强者优先;并将排序后的结果,即执行车辆的id发送到sdn控制器,发送消息为:车辆0id车辆1id...车辆xid车辆0为任务迁移请求车辆,其余车辆为任务迁移执行车辆;sdn控制器接收到任务迁移请求车辆的消息后,建立源端口(任务迁移请求车辆)到各目的端口(任务迁移执行车辆)的流表并将包含流表项的流表下发到所有车辆,包括请求车辆和执行车辆。2.4任务迁移请求车辆分割并发送子任务到任务迁移执行车辆请求车辆按照各执行车辆的计算能力将计算任务分割为子任务,除了请求车辆本身处理的部分子任务之外,将其余子任务分配给各个执行车辆,执行车辆接收到子任务后开始计算,将计算结果回传给请求车辆,具体分割方案如下:设当前需要执行的计算任务为k,将计算任务k划分为n个部分,n即表示子任务的总数;设执行车辆的数量为x,各执行车辆的计算能力为ni,ni表示执行车辆i在1秒可以处理的任务数量;则各执行车辆分配到的子任务为:步骤3,计算结果的回传任务迁移执行车辆接收子任务后开始计算。当执行车辆还未将计算结果完全回传给请求车辆之前,如果执行车辆与请求车辆之间的通信断开,则执行车辆向sdn控制器发送请求消息,sdn控制器收到执行车辆的请求消息重新为执行车辆规划一条发送路径,执行车辆将计算结果发送至执行车辆所在地的基站或路边单元,基站或路边单元再将计算结果发送至请求车辆所在地的基站或路边单元,然后请求车辆再从基站或路边单元下载计算结果。具体地:在车辆的行驶过程中,任务迁移请求车辆与任务迁移执行车辆的通信存在两种情况:情况1,如图1所示,请求车辆与执行车辆保持持续通信直到执行车辆将计算结果返回到请求车辆;如图1所示,车1为任务迁移请求车辆,车2为任务迁移执行车辆,任务迁移执行车辆与任务迁移请求车辆一直保持持续通信直到任务迁移请求车辆接收到任务迁移执行车辆的计算结果为止。情况2,如图2所示,任务迁移执行车辆与任务迁移请求车辆的行驶方向不同或速度差异很大致使车辆不能维持通信,计算结果无法返回到请求车辆。当执行车辆的子任务计算完毕后,计算结果无法回传到请求车辆,执行车辆向sdn控制器发送请求消息;sdn控制器收到执行车辆的请求消息重新为执行车辆规划一条路径,通过在请求车辆与该执行车辆的流表中插入流表项,即通过发送flow_mod消息的方式重新规划一条返回结算结果的路径,具体方案为:执行车辆将计算结果发送至该车辆所在地的基站或路边单元;基站或路边单元再将计算结果发送至请求车辆所在地的基站或路边单元,且各基站或路边单元之间通过有线网络的方式传送计算结果;然后请求车辆从路边单元或基站下载该结果。如图2所示,车1为任务迁移请求车辆,车3为任务迁移执行车辆,车3接收到车1的子任务后行驶方向发生改变,致使与车1的链路断开。当车3子任务计算完毕之后,将结果发送至该车所在地的路边单元;路边单元通过有线网络将结果发送至基站2,请求车辆从基站2下载子任务的计算结果。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1