论文部分内容阅读
无线传感网可在复杂环境中大规模、长期、实时地收集物理世界信息,因而已被成功应用在诸多领域中。随着无线传感网应用的发展,无线传感网应用常因应用需求变化而需要对传感器上的可执行代码进行更新。研究者将此问题称为无线传感网应用重编程,简称为重编程。由于无线传感网部署区域复杂,重编程通常需要借助传感器间的无线通信将应用可执行代码分发到目标传感器上。然而应用可执行代码规模较大,且每个传感器的通信能力有限,重编程需要许多传感器中继进行大量的数据传输。同时由于传感器间的无线通信不可靠,数据传输过程还会引起较多通信冲突,修复通信冲突会显著增加数据传输量。因此,重编程过程会消耗大量的时间以及传感器有限的能量,从而对应用的生存期和可用性造成不利影响。因此,提供低能耗、低时耗的高效重编程以降低对应用正常运行的不利影响,近年来在无线传感网应用领域广受关注。重编程的效率与需要分发的更新代码规模以及分发过程的通信量密切相关。首先,松耦合的应用程序结构有利于使用增量式更新技术降低需要分发的更新代码规模。因此,选择合适的编程风范使应用程序具有松耦合的结构是其关键。逻辑式编程风范天然可生成松耦合的应用程序,因此综合考虑无线传感网应用的平台特征与需求特征,设计并实现表达能力强、支撑代价低的逻辑式语言是本文主要的研究内容。其次,更新代码的分发过程本质上为分布式代码分发协议(算法)的计算过程,降低上述过程的通信量本质上就是降低分布式算法的消息复杂度。因此,综合考虑无线传感网应用的平台特征与需求特征,设计并实现低消息复杂度的高效分发协议也是本文重要的研究内容。基于上述分析,借鉴本领域相关工作和进展,本文首先根据无线传感网应用特点扩展经典逻辑式语言,同时采用编译/解释方式实现了该语言,从而可生成规模较小的更新代码。其次,本文还充分利用传感器的位置信息以及电量、信道资源设计低消息复杂度的数据分发协议,从而可有效降低分发过程通信量。具体而言,本文的主要工作如下:给出了基于无线传感网平台的应用高效重编程技术框架。在分析重编程流程中影响其正确性和效率的各要素及其关系的基础上,给出了包含编程语言、语言处理系统(包含更新代码生成)、以及批量数据分发协议在内的技术框架。提出了面向重编程的逻辑式编程语言ReLog及其语言处理系统。ReLog语言根据无线传感网应用特点对经典逻辑式语言进行扩展。同时语言不涉及底层实现细节,且语言成分的组织继承了逻辑式语言松耦合的特点,因而能够生成小规模、松耦合的应用程序。语言处理系统采用编译/解释方式实现,可生成不包含代码执行控制逻辑的高层次中间代码,同时可增量式地生成重编程所需的更新代码。实验结果表明ReLog语言及其语言处理系统能够在应用需求变化时有效降低重编程所需的更新代码规模。提出了支持高效无线传感网应用重编程的批量数据分发协议T2C。T2C协议能根据传感器的位置以及剩余电量优化分发拓扑以减少中继传输数据的传感器数量,从而减少分发过程中冗余的数据传输。同时,T2C协议还能基于完整的通信冲突信息优化多信道数据传输以消除中继传感器之间的通信冲突,从而减少分发过程中用于修复丢包的数据传输。实验结果表明T2C协议能有效降低分发过程中的通信量。设计并初步实现了重编程服务管理系统。重编程服务管理系统由处于Web端的开发环境以及处于服务器端和无线传感网端的支撑环境组成,能为多个用户提供对多个无线传感网应用的开发与高效重编程服务。