本文是一篇软件工程论文,笔者在仔细调研了云边环境下与工作流调度算法相关的论文之后,对于工作流的多目标优化调度进行研究工作,首先,简述了研究内容、背景及意义,总结了相关的研究现状,然后,介绍了本文的研究内容及创新点,接着介绍了云计算和边缘计算的有关内容,并对工作流的概念、建模方法及常用的调度算法作出了简单的介绍。
第一章 绪论
1.1 研究背景和意义
随着物联网设备的逐渐增多,物联网作为新型基础设施技术之一逐渐走上世界舞台,成千上万的物联网设备遍布各行各行的各个角落,城市中海量物联网设备的激增,导致数据的极速增长,其中这些感知数据主要由设备数据、模型管理数据、物联应用数据[1]、物联网络数据组成。而物联网数据具有数据量大、产生周期短、产生频率高和低价值密度等特点,在数据规模极速增长的情况下,为了保障海量数据的处理速度,在进行海量数据处理时,必须保证低时延、数据检索秒级响应。物联网领域通常会使用分布式并行计算,在数据上使用Hadoop分布式文件系统,以构建起高可靠、高速宽带、较低功耗的大数据存储集群[2]。
对于物联网的边缘设备产生的数据,往往在边缘端有相应的存储设备,以满足边缘计算所需要的快速响应,但由于边缘设备的计算资源有限,因此也需要云计算中心作为其重要的组成部分,以满足海量数据的处理需求,这种计算模型即云边协同计算模型[3],如图 1-1所示。
软件工程论文怎么写
工作流是将业务流程的各个任务通过符号化描述,并根据业务流程赋予业务符号相应的规则[4]。随着近年来大数据技术的兴起,以及物联网设备的增多造成的数据量的爆炸式增长,越来越多的数据需要去处理,将这些处理过程通过结构化的方式去运行,由此产生了数据密集型工作流,由海量数据计算任务及海量数据传输构成的工作流就被称为数据密集型工作流。区别于传统的工作流,数据密集型工作流有几个特点,例如其各任务的计算量较大,各任务间的数据传输量较高,对执行节点资源要求较高,海量的数据处理所对应的数据保护问题等特点。所以,对于数据密集型工作流而言,其执行环境对于计算模型的要求比较苛刻。
.............................
1.2 国内外研究现状
由于近年来大数据处理技术的迅速发展,以及数据量的爆发式增加,海量的数据需要被处理[5],将这种处理工作采用更加结构化的方法去进行,由大量数据计算任务所组成的工作流被称为数据密集型工作流[6]。云计算和边缘计算[7]等新型计算模式,为数据密集型工作流创造了优越的执行环境,在云边环境下,为了数据密集型工作流的高效运行,并且保障其数据安全,需要对其进行合理的调度,由于各任务之间存在一定的数据依赖,所以任务调度方法的优劣将会影响数据的传输[8],进而影响整体工作流的运行效率和费用代价;此外,在隐私约束、业务约束、环境约束和容量约束等条件下进行调度,并达到一定的优化效果,这是一个值得深入研究的问题。因此,国内外不少专家学者也对云边环境下的工作流调度问题进行了有关的工作和研究。
工作流的执行时间是评判工作流执行效率的关键因素,在文献[9]中,李光智等人提出了一种单目标优化调度算法,在利用HEFT算法[10]对任务进行预调度之后,会得到一些关键任务和非关键任务,该算法会将这些非关键任务进行迁移,选择费用更低的虚拟机执行这些任务,并且保证不改变各个任务的完成时间。也有研究从电费成本方面考虑,文献[11]中,虞威等人提出了一种基于能量感知[12]的工作流调度方法,在地理分布式中心下,考虑了诸多因素,服务商的电费成本是其论文的重点优化目标。胡红宇等人提出一种工作流调度算法[13],为了给云计算环境下的科学工作流调度提供解决方案,该算法不仅优化了执行跨度,而且优化了资源利用率,并得到了不错的效果。
各服务节点之间的数据传输量是影响工作流整体执行效率的关键。科学工作流调度问题中,往往多目标优化是一个重点[14],向志华等人将数据传输量和执行时间等作为最重要优化目标,提出了一种调度方法,该方法利用有向无环图,将具有依赖关系的节点分到同组之中。在这之后,为了解决MNC科学工作流的调度问题,他们在其算法中采用遗传算法[15],设计出有效的调度译码算法,并且,给出极值解的求解方法等,然后,设计出了多目标优化调度模型[16]。为了降低工作流任务间的数据传输量,并且有效减少工作流的执行时间,薛伟祥等人提出了一种工作流调度方法[17],该调度方法基于数据依赖,达到了其优化目的。
...................................
第二章 相关理论及技术
2.1 物联网系统架构
随着传感器、移动设备、智能家居等智能设备的逐渐增多,随时随地的信息采集已经成为互联网信息获取的常态,这些设备不仅可以自主采集实时数据,而且可以对采集的信息进行相应的操作。海量的这种智能设备通过互联网信息传输技术相互连接、数据互通,组成一种动态化的分布式网络,被用于对现实世界中的人、物品、自然环境等进行监控、识别、采集、定位等,通过实时信息的采集并对信息进行系统化智能管理,便形成了物联网系统[37]。
物联网系统架构如图 2-1所示,从下到上依次由物、网、云三端组成。物端包括用户的智能设备、智能网关和传感设备等信息采集装置组成,分布在互联网的边缘侧;网端即互联网,是将整个系统中所有设备以及计算资源连接起来的网络;云端为整个物联网系统提供计算资源、存储资源等,是由众多服务器相互连接构成的分布式计算系统。由于物联网系统是由互联网连接起来的,所以物联网可以说是互联网技术的应用拓展[38]。
软件工程论文参考
................................
2.2 云边协同计算
分布式计算作为云计算的前身,经过不断的发展和技术融合,云计算技术应运而生[39],虚拟化等技术是其发展的关键技术。云计算系统本质上是一个数据中心的集合,由许多建立在虚拟计算机和具有不同性能的存储技术上的计算机组成。它提供按需访问,通过互联网向用户提供服务,并以按使用付费模式向用户提供服务。虚拟化技术作为云计算技术中的一项关键技术[40],同一个计算机系统上可以包含多台虚拟机,并且,这些虚拟机可以同时执行不同的任务,而不同的虚拟机的执行环境也是不一样的,也就是说不同的虚拟机之间没有依赖关系。同时,虚拟化技术也不会将复杂的物理系统暴露给用户。Xen,KVM和Vmware等虚拟机管理技术,已把它们确定为云计算的重要部分[41]。云环境中任务调度的最主要目的就是达到对使用者所提供各项任务的最优化调度,从而最优化网络资源的利用率。
云计算具有几个特征,可以总结如下:
(1)广泛的网络访问:云服务可以通过互联网从任何具有互联网连接的设备(如手机、PC等)访问。
(2)共享资源池:云提供商通过虚拟化技术向各种消费者动态提供一个计算资源池。通常,消费者不知道资源的位置,但他们可以指定更高级别的位置抽象。
(3)动态资源调配:根据当前的需求动态租赁和释放计算资源。与传统的根据峰值需求获取资源的模式不同,该功能允许服务提供商根据需要扩展和收缩服务,从而最小化运营成本并最大限度地提高资源利用率。这种弹性需要以最大的可靠性和安全性来实现。
(4)基于应用程序的定价:消费者根据每次使用的情况对服务收费,这意味着他们在计费期间花费了多少,这有助于降低服务成本。不同的平台使用了不同的定价模型,比如谷歌使用的细粒度计费周期,或者亚马逊EC2使用的粗粒度计费周期。
........................
第三章 云边环境下数据密集型工作流调度框架 ........................ 15
3.1 数据密集型工作流背景 .............................................. 15
3.2 云边环境下数据密集型工作流调度问题分析 ............................ 16
3.3 云边环境下的数据密集型工作流调度模型 ........................... 16
第四章 基于流程分割的数据密集型工作流调度方法 ........................... 24
4.1 数据密集型工作流调度问题 ............................... 24
4.1.1 约束条件 ..................................... 24
4.1.2 调度指标 ............................. 25
第五章 数据密集型工作流调度系统的设计与实现 ....................... 39
5.1 系统架构设计 .................................... 39
5.1.1 数据密集型工作流系统架构 ............................. 39
5.1.2 调度系统设计 ........................... 40
第五章 数据密集型工作流调度系统的设计与实现
5.1 系统架构设计
5.1.1 数据密集型工作流系统架构
软件工程论文参考
整个数据密集型工作流系统由调度系统及执行环境组成,如图 5-1所示,调度系统负责自动化调度流程,部署在云端,是用户门户入口,用户通过进入该调度系统,上传其自定义工作流以及约束条件,执行工作流的分割与调度,并可视化展示运行结果。执行环境如虚线框内所示,包含边缘节点及云中心节点,节点上部署有Flowable工作流执行引擎以及相应的大数据执行环境及存储环境,当工作流某任务需要在此节点执行并且该任务的依赖数据在此节点存储,则直接使用该节点的数据,若某任务所依赖的数据不在其执行节点,则需要从其他节点传输至此节点。
................................
第六章 总结与展望
6.1 总结
云计算和边缘计算技术诞生之后,就被各界研究学者的深度重视,他们不仅关注云边协同计算技术,同时,也关注云边协同计算技术与其他技术的互相结合,它们间彼此促进发展,然而,随之而来的是诸多的技术难题,同时也出现了诸多的研究热点,工作流的调度是一个重点话题,而且,其与云边协同执行环境相结合时,又成为当前研究的重中之重。随着工作流调度的相关问题不断发展变化,在以前的研究中,研究者们往往对单目标进行优化,如执行时间或成本,但如今,在云边环境下,在工作流调度时,必须考虑更多的客观因素,如数据量、安全性、能耗等。
数据密集型工作流作为本文的研究对象,其具有数据量大,数据传输量高,任务数较多等特点,且大数据量任务的执行具有一定的约束条件,可供调度执行的计算节点也非常充足,另外,在云边环境下,由于工作流的执行环境更加优越,所以必须更快地执行工作流,以提高效率,此外,计算节点的负载也需更加均衡,因此,整体执行时间以及计算节点的负载均衡度这两个优化目标,都必须被针对性研究,为了更好地解决以上问题,本文提出了云边环境下基于流程分割的数据密集型工作流调度方法,并对其进行了相关研究,主要有以下几点:
(1)在仔细调研了云边环境下与工作流调度算法相关的论文之后,对于工作流的多目标优化调度进行研究工作,首先,简述了研究内容、背景及意义,总结了相关的研究现状,然后,介绍了本文的研究内容及创新点,接着介绍了云计算和边缘计算的有关内容,并对工作流的概念、建模方法及常用的调度算法作出了简单的介绍
(2)在云边环境下,针对数据密集型工作流的特点,例如数据量大,业务约束较为复杂,数据传输时延普遍较大,而执行时间相对较小等,本文提出了一种基于流程分割的数据密集型工作流调度方法。根据约束条件和数据传输量,将原工作流分割为多个子工作流,使得其满足约束条件,同时,各个子工作流之间的数据传输量需降到最小,以此来保证部分任务间的关联关系,并且后续调度以工作流为单位进行,从而满足该部分任务执行所必要的约束条件。
参考文献(略)