论文部分内容阅读
近年来,由于在节点微型化技术、物联网操作系统、低功耗传输组网协议以及应用层技术等方面取得重大进展,物联网作为一种新的网络应用模式,在影响国计民生的各个领域都有了长足的发展。然而早期的物联网应用通常采用“面向需求的垂直封闭式”的开发模式,即针对每个特定应用需求均为其开发一套专用的物联网软硬件系统。虽然面向需求的物联网垂直应用开发模式能根据特定应用场景对系统性能进行优化,但该类系统之间通常难以实现网络资源的复用与共享,在资源使用效率、网络规模、应用开发时间与建设成本等方面都存在发展受限性。 随着物联网中感知设备和终端数目越来越多,未来人们可以获得并使用的资源种类和数目也将十分丰富,利用已有的网络资源构建物联网应用将成为未来物联网应用构建的一种主流方式,为此,本文在面向资源的物联网应用构建方面展开深入研究。虽然国内外学术界和工业界在面向资源的物联网应用构建方法方面已有相关研究工作,但现有工作仍然不能完全满足未来高效构建物联网应用的所有需求:1)已有工作大都采用在云端或者用户端集中执行应用程序的模式,对物联网中所有资源节点的访问与控制均由云端或者用户端发出,由于相邻节点之间的通信都需要经过云端或者用户端转发,因而应用程序执行时的通信开销非常大;2)现有工作很少考虑在实际物联网应用环境中常存在的网络异构性和动态性问题,例如,不同智能家居系统由于其构造和格局存在差异,以及所采用的软硬件系统种类与数目不尽相同所引起的网络异构性,容易导致同一个应用程序在不同系统中运行异常或错误,另外由于节点失效或者移出可用区域也可能导致应用程序失效;3)已有工作很少考虑物联网系统并发应用执行时的优化,由于物联网节点资源(如能量,内存,计算能力)严重受限,且用户应用需求多种多样,物联网系统在支持并发应用时的开销将随着应用程序数目的增长而线性增长,并有可能最终超出节点能力范围导致应用程序失效;4)已有工作主要关注应用程序的构建,很少从物联网硬件终端的层面考虑如何优化支持海量个性化应用需求,例如如何保证物联网终端在支持海量应用所需通用性的同时还能针对具体应用场景进行个性化优化。 针对上述问题,分别从物联网应用构建方法、应用程序映射机制、并发应用执行优化、物联网终端设计四方面展开了深入研究。 1)针对现有集中式应用构建方法存在的通信开销过高的问题,提出一种面向资源的物联网分布式应用构建方法MacroFlow。MacroFlow的核心思想包括:a)网络中的资源包括“实体资源”和“虚拟资源”两种;b)应用程序通过配置“资源”之间的连接关系来构建应用程序;c)运行时将云端的计算任务打包成“虚拟资源”,并下载至网络中最优的物联网节点(资源装载器)中运行,实现任务分布式就近计算。为实现任务就近计算降低运行时通信开销,提出一种基于分布式“虚拟资源”寻址算法,可以在指定“实体资源”的前提下寻址最优“虚拟资源”装载器。实验结果表明,MacroFlow的运行时数据传输量与集中式方法相比减少达到48%。 2)为保证在物联网异构和动态环境下应用程序执行的鲁棒性,提出了一种物联网资源主动实例化机制EasiRAI。首先,提出一种面向资源类型进行模糊资源选择的应用编程抽象方法,用户在编写应用程序时只需指定所需的资源类型,而不需要考虑网络中存在的异构资源种类与数目所带来的差异化影响;其次,在应用程序执行时,根据物联网节点的失效概率,主动完成“实体资源”选择与“虚拟资源”下载,保证应用程序执行在最稳定的节点上;最后,当由于网络动态性导致应用程序失效时,网络会根据资源相似性进行“实体资源”的替换,而对“虚拟资源”则采用部分更新的方式实现应用程序重构。实验结果表明,在增加鲁棒性保证机制后,可提高应用程序在网络异构和动态环境下应用程序稳定度达到52%。 3)针对如何提高物联网海量并发应用执行效率的问题,提出一种利用物联网应用之间的相似性优化冗余开销的机制。该问题分为两步:n应用共享1资源;n应用共享m资源。针对n应用共享1资源的场景,提出一种基于迭代处理的贪心算法(EasiOPT),将多应用之间存在重叠的数据采集和传输任务进行合并处理,实验结果表明,当同一资源为多于10个应用程序提供资源共享服务时,EasiOPT算法可降低数据采集次数超过72%,降低传感器节点功耗超过63%。针对n应用共享m资源的场景,提出一种综合考虑任务相关度和资源相似度的并发任务执行机制(EasiCAE),在任务执行之前将任务分配至开销最低的节点中执行,实验表明,当并发任务数超过10个时,EasiCAE可节约任务开销超过31%,且随着并发任务数目的增加,EasiCAE可进一步节约任务执行开销。 4)针对如何设计物联网终端,以保证物联网终端在支持海量应用所需通用性的同时还能针对具体应用场景进行个性化优化的问题,提出了一种软硬件协同的物联网可重塑终端架构EasiSHA。首先,EasiSHA采用以可重塑计算部件为核心的终端体系结构,能够针对应用需求动态调整软硬件资源配置,在提供较高通用性的同时能够有效降低终端的硬件冗余度。其次,提出了一种计算任务资源化的复用机制,采用软硬件协同的方式实现应用程序与标准计算任务之间的松耦合,减小应用程序与计算任务之间的关联度,并结合云端任务共享机制实现计算任务的可复用性,能够最大化物联网终端的通用性,同时有效优化物联网应用的开发速度和成本。最后,提出了一种软硬件任务调度机制,根据物联网应用运行时所需终端的性能指标,实时动态改变计算任务的执行方式,在终端性能满足应用需求的前提下优化终端整体功耗。