一种面向无线传感器网络的基于状态图(statechart)的宏编程方法

《Journal of Parallel and Distributed Computing》:A statechart-based macroprogramming approach for wireless sensor networks

【字体: 大 中 小 】 时间:2026年07月08日 来源:Journal of Parallel and Distributed Computing 3.4

编辑推荐:

  分布式计算系统已成为信息技术中的一种革命性范式,使计算技术能够嵌入日常对象与环境之中。无线传感器网络(Wireless Sensor Networks,WSNs)和物联网(Internet of Things,IoT)是典型的分布式计算系统,包含大量具有异构基

  
分布式计算系统已成为信息技术中的一种革命性范式,使计算技术能够嵌入日常对象与环境之中。无线传感器网络(Wireless Sensor Networks,WSNs)和物联网(Internet of Things,IoT)是典型的分布式计算系统,包含大量具有异构基础设施的分布式设备。

WSN由于其资源受限的嵌入式环境而具有独特特征,这使其有别于IoT等分布式系统。典型的WSN传感设备(称为节点)具有受限存储器、有限计算能力以及低功耗短程无线电。WSN系统通常被设计为在极少维护条件下依靠小型电池运行数年。为尽可能延长寿命,WSN节点在其大部分生命周期中保持休眠模式。这些特征阻碍了传统操作系统与编程框架在WSN应用开发中的直接使用。

截至目前,许多WSN系统仍采用传统编程方法,即以底层C代码对单个设备进行编程。这类设计要求程序员显式管理通信、同步、数据聚合、任务分配以及潜在数百乃至数千节点之间的容错机制。这种节点级编程方法可能十分复杂,难以在大量设备间管理,并且随着系统规模增长而表现出较差的可扩展性,往往在实践上变得不可行。因此,研究趋势正从设备特定模型转向定义节点集体行为并隐藏底层系统细节复杂性的宏观模型。

宏编程(macroprogramming)是一种以统一模型表达分布式系统宏观行为的编程范式,使开发者能够编写全局程序,而无需显式管理网络中各个设备之间的通信与协同。其目标在于简化整体系统设计,并将单个节点的复杂性抽象出去。宏编程通过定义系统的宏观行为并进而影响局部操作,或通过提供由局部模型共同构建整体宏观系统的交互式框架,为大规模分布式网络提供高层抽象模型,以实现高效管理与协调。

过去十年中,宏编程研究更偏向IoT领域,旨在简化传感器、执行器和智能设备之间的宏观行为开发过程。这些方案展示了集成工具链、设计与建模支持、可视化编程以及通用建模语言等先进特性。在信息物理系统(Cyber-Physical Systems,CPS)中,也已开发出用于编程分布式系统全局行为的可视化框架,例如机器人系统。

然而,这些方案中的许多都假定设备具备一定资源与外部供电能力,以支持node.js和Linux kernel等运行时依赖。此外,其通信通常通过Wi-Fi、Bluetooth和移动网络在互联网之上完成。此类研究并非面向WSN的资源受限环境设计,因此WSN开发者无法直接采用这些宏编程方法。不过,IoT方案中的先进宏编程思想,例如可视化编程语言与通用建模框架,为资源受限WSN系统的宏编程提供了有前景的方向。

面向WSN网络的有效宏编程开发面临显著挑战,包括节点资源限制、复杂WSN系统行为的可视化表示、WSN应用的一般化建模以及跨不同系统层级的抽象。这些挑战中有许多与一般分布式系统或IoT领域所遇到的问题并不相同。

WSN节点上的资源约束要求运行时环境保持轻量化。此外,长期自主运行(通常以单块电池运行多年计)要求对睡眠周期与能耗进行谨慎管理。再者,WSN任务在部署后往往仍会动态演化,因此需要持续的软件维护与更新。因此,WSN宏编程方法不仅要简化集体行为编程,还必须纳入支持网络行为节能重构与再编程的机制。这一点将WSN宏编程方法与面向资源更丰富平台或标准互联网协议的方案区分开来。

许多早期面向WSN的宏编程方法通常聚焦于资源受限的WSN系统,并试图在单一程序中表达传感节点间的数据聚合行为。这些方案往往在系统特定编码框架内提供声明式编程结构,其文本编程脚本的复杂性可能导致理解困难,进而降低程序员与其他学科团队成员之间的协作效率,凸显出更易接近的可视化表示需求。

此外,许多WSN宏编程模型依赖特定框架。由于缺乏通用建模支持,它们难以在实现之前充分利用前期设计与建模方法。这一问题可能增加识别并解决影响应用可靠性与效率的潜在问题的难度。

另外,宏编程方案通常无法在多个层级对系统进行抽象。它们通常仅从单一宏观视角对WSN应用进行抽象,例如群组、区域或整个网络。然而,复杂WSN应用要求同一节点内不同功能模块、概念群组以及整体系统之间存在多样化的交互行为。如果宏编程框架无法处理节点特定抽象,就会在微观节点操作与宏观系统行为之间产生脱节。这一局限迫使开发者依赖低效变通方式来定义局部行为,最终削弱网络优化效果、限制大规模部署中的可扩展性,并降低系统整体灵活性。因此,需要一种能够在多个抽象层次上有效建模WSN的解决方案。

本文提出一种新颖的基于状态图(statechart)的宏编程方法,通过跨状态图事件与变量增强状态图之间的协作能力。这一创新促进了在不同抽象层次上对WSN应用进行设计、建模与编程。虽然该方案的运行时支持被设计为适配WSN节点的资源受限特征,但其编程模型作为通用状态图建模语言的扩展,也可广泛应用于IoT与CPS等更广泛领域。

状态图最初被提出用于描述复杂反应式系统,是一种可视化建模语言。尽管状态图语言能够表示底层系统行为,但其层次化状态转移范式可以通过高层图形表示对这些细节进行有效抽象。该能力使其能够通过简洁而富有表现力的图示来建模嵌入式系统中的复杂事件驱动行为。因此,既有研究已指出,状态图由于与事件驱动范式相似,可能适合作为WSN应用的表示方法。

状态图由状态及状态间转移构成。转移可由事件触发,并调用相关动作以执行计算行为。状态图中的变量还可作为事件条件与动作参数进一步影响行为。这种机制使状态能够通过生成事件或操纵共享变量来主动影响其他状态,从而在单个状态图中形成状态间协作范式。

既有工作提出了一个面向资源受限IoT与WSN设备的框架。该框架允许用户在状态图层面以可视化方式设计和建模WSN节点行为,并扩展传统Harel状态图形式体系,使变量和用户定义事件的作用域可位于单一状态图中的任意层级,包括根状态与封装子状态。这种方法使得在单个状态图中对复合状态内部状态间的局部协作及全局协同进行简洁表示成为可能。

在此基础上,本文进一步提出一种新方法,将事件与变量的作用域扩展到单个状态图之外,从而支持更广泛宏观行为的抽象。该方法从更高抽象层处理宏观协同行为:多个状态图可在单一WSN节点内并发执行,每个状态图负责节点功能的不同方面;节点和状态图可依据节点角色、位置或邻近性组织为逻辑群组,以支持区域控制与数据聚合;整个WSN系统的全局行为则在网络层级表达,以表示分布式功能模块跨网络的控制流与数据获取过程。

针对现有WSN宏编程方案的挑战,研究提出如下应对:其一,基于既有工作,状态图可借助中间件层在StateOS与FreeRTOS等面向WSN的操作系统上于资源受限节点执行,且该中间件集成了支持能量高效状态图重构的空中下载(over-the-air)协议;其二,状态图可视化符号通过组件空间配置表示应用的事件驱动控制流,提升开发可用性与可理解性;其三,状态图具备明确定义的形式化基础与经验证的数学语义,因此可作为用于WSN设计与建模的通用建模语言,并在实际实现前开展前期评估与验证;其四,跨状态图方法借助跨状态图事件与变量促进多个系统层次间的交互行为,实现同节点内、群组内乃至全网络范围的协同。

作为集成化方案,该方法通过状态图模型同时实现可视化表示与通用建模;跨状态图机制通过在状态图间建立逻辑联系,支持跨多个系统层次的抽象,并将分布式模型统一为单一系统视图;运行时中间件则在资源受限嵌入式环境中解释状态图模型,执行逻辑并管理为同步状态图所需的无线电传输。借此,开发者能够将复杂分布式WSN应用设计为内聚系统,而底层系统自动处理物理网络约束。

其核心创新在于扩展传统状态图变量与事件的作用范围,使之能够跨越不同状态图边界运行。这一新型交互机制通过部署于同一节点、跨节点群组或整个网络中的并发状态图之间的协作,支持WSN中的动态分布式控制与同步。因此,该方法简化了WSN中复杂集体行为的表示,为资源受限环境提供了一种可视化且富有表达力的宏编程范式。
该文发表于《Journal of Parallel and Distributed Computing》,聚焦无线传感器网络(Wireless Sensor Networks,WSNs)开发中长期存在的一个核心矛盾:传统节点级编程虽然能够贴近硬件、满足资源受限设备的执行需求,但在大规模网络应用中,开发者必须手动处理通信、同步、数据聚合、任务协调与容错,导致程序复杂、维护困难且可扩展性不足;而已有宏编程(macroprogramming)研究虽能从整体上抽象系统行为,却多数面向资源较丰富的物联网(Internet of Things,IoT)或信息物理系统(Cyber-Physical Systems,CPS)平台,难以直接适配低功耗、低存储、低算力、需长期电池供电运行的WSN环境。研究人员因此开展本研究,旨在构建一种既保留高层抽象与可视化建模能力,又能够落地于资源受限WSN节点并支持部署后动态重构的统一方法。论文提出了一种基于状态图(statechart)的多层级宏编程方案,通过将事件和变量的作用域扩展至跨状态图边界,实现节点级、群组级与网络级的协同建模与编程。研究结论表明,该方法能够在统一的可视化范式中表达复杂分布式行为,并通过中间件直接解释执行状态图脚本,适配资源受限嵌入式平台;原型验证显示,该方案在跨节点通信场景下引入的额外开销相对常规WSN通信延迟并不显著,同时状态图脚本尺寸显著小于等效C程序,具备远程分发与低能耗重构优势。其重要意义在于为WSN提供了一种兼顾形式化建模、可视化表达、多层抽象和动态更新能力的宏编程路径,并显示出向IoT与CPS等更广泛分布式系统扩展的潜力。

研究人员主要采用了以下关键技术方法:首先,以状态图(statechart)作为通用可视化建模语言,沿用并扩展既有状态图执行框架;其次,提出跨状态图事件与变量机制,通过ND、GRP、NWK等作用域标记实现节点、群组和网络层级交互;再次,在中间件中构建内部通信与外部通信双通道模型,结合事件队列、共享变量缓冲、状态图映射(statechart map)、帧构造器与帧解析器完成同步与消息传输;最后,采用一个区域噪声监测WSN原型开展概念验证,网络由网关、3个噪声感知群组、群组头节点和麦克风节点组成,底层平台使用StateOS,并对等效C程序进行传播时延与代码占用对比评估。

在研究结果部分,论文按照多个主题展开分析。

Statechart approach overview
研究人员首先回顾了状态图语言及其既有执行框架,说明本文方法并非凭空提出,而是建立在已有状态图节点级执行能力基础之上。论文指出,状态图是一种层次化状态机(hierarchical state machine),适于表达复杂反应式系统的事件驱动行为。其状态、转移、动作、活动以及AND/XOR复合状态等机制,使系统功能能够在图形化结构中被紧凑而清晰地表示。研究人员进一步说明,先前工作已开发出基于Web的状态图设计环境与状态图中间件,可将状态图脚本直接部署到设备端,由事件管理器、分发器(Dispatcher)和顺序器(Sequencer)解释执行。由此得出的结论是:状态图不仅适合作为WSN应用的建模语言,也已具备在资源受限设备上执行的工程基础,从而为进一步扩展到宏编程层面奠定了平台条件。

Statechart macroprogramming approach
这是全文的核心部分。研究人员提出,传统状态图中的事件和变量作用域仅限于单个状态图,难以表达跨模块、跨节点的宏观协同行为。为解决这一问题,论文定义了状态图级、节点级、群组级与网络级四类作用域:在节点内,可由多个并发状态图分别负责不同功能,再借助共享事件与变量实现同步;在群组与网络层面,可通过用户定义事件和变量实现跨节点交互。论文由此给出的核心结论是,扩展事件与变量作用域后,状态图能够从单一局部行为描述工具转变为多层级分布式系统建模工具,从而统一节点局部逻辑与系统全局行为。

Cross-statechart events and variables
围绕跨状态图接口,研究人员给出了用户定义事件、跨状态图变量及变量集合(SET)的声明方式,并通过示例说明其语义。结果表明,跨状态图事件能够在多个状态图间建立远程控制与同步关系;跨状态图变量则支持共享数据与间接协同;变量集合机制进一步适配典型数据中心型WSN中的多源数据汇聚场景,使多个传感节点可借助统一状态图设计向中心节点传输与聚合数据。由此可以总结出,跨状态图事件更偏向控制流同步,而跨状态图变量及集合更适合数据流组织,两者共同支撑了宏观系统行为的表达。

Cross-statechart communication
在通信实现层面,研究人员设计了内部通信与外部通信两种机制。内部通信用于同一节点内多个状态图之间的低延迟交互,依赖中间件内部函数调用、事件管理与共享内存;外部通信则引入分层通信模型,在应用层以上保持状态图交互抽象,在中间件中由跨状态图模块构造与解析消息,并由底层操作系统网络模块负责打包发送。论文进一步说明,状态图映射保存跨状态图元素与网络地址的关系,帧构造器将多条面向同一目的节点的消息聚合到单个原始帧中,帧解析器在接收侧恢复事件与变量更新。通过这些设计,研究人员得出的结论是,该方法在不改变应用层状态图表达方式的前提下,为跨节点状态图同步提供了系统化实现路径,并通过消息聚合降低网络传输开销。

Data consistency and synchronization challenges
论文没有回避分布式共享状态带来的数据一致性问题,而是专门讨论了在状态转移执行时间非零、无线链路存在延迟和丢包时的同步挑战。研究人员提出双层缓冲结构:状态图机(machine)中的局部缓冲用于在状态转移期间保持变量不变,转移完成后再与跨状态图共享变量缓冲同步;用户定义事件进入事件队列后,由事件管理器在并发状态图完成当前转移后再统一处理。针对跨节点延迟与丢包,论文指出可通过全局时间戳缓解竞态风险,通过底层确认与重传处理一般丢包,并在中间件层为关键事件和变量配置超时轮询机制。此处的结论是:跨状态图宏编程在工程实现上必须引入显式同步策略,而本文方案已提供初步的一致性维护机制,能够支持可预测的系统行为。

Qualitative evaluation
在定性分析中,研究人员从目标用户、可视化编程特征、可重构性以及宏编程分类角度对该方法进行定位。结果显示,状态图以图形化方式表达离散事件驱动行为,既可被具备基础编程能力的领域专家理解和使用,也适合具备一定嵌入式经验的技术人员构建更复杂应用;对于系统层开发者,则可将精力集中于动作库与协议模块等底层实现。论文同时指出,该方法属于文本—图形混合型可视化编程范式:状态与转移采用图形表示,而动作与数据处理采用类C语法脚本定义。与生成整机固件的传统方案不同,状态图脚本占用小,更利于远程重构。研究人员依据Casadei等人的宏编程分类框架,将该方法归入ad-hoc类型,其范式属于命令式(imperative),微观实体为状态图,宏到微机制主要是执行(execution),并兼有上下文(context)特征。由此可见,论文证明了该方法在概念定位上兼具控制导向与集合导向特征,是一种面向资源受限WSN的复合型宏编程方案。

Evaluating statechart-based macroprogramming approach
论文通过一个区域环境噪声测量应用开展原型验证。研究中,网络包括一个网关与三个噪声感知群组,每个群组包含一个组头节点和三个麦克风节点。麦克风节点使用均方根(root mean square,RMS)算法采集局部噪声,组头节点汇总组级RMS与峰值,网关进一步计算整个区域的噪声指标。研究人员为此设计了三类状态图:MIC、Group aggregation和Area aggregation,并将其部署到具有相似功能的节点上。结果表明,该方法能够以统一状态图模型覆盖节点、群组与网络三个层面的行为组织,其中MIC状态图负责采样与上报,Group aggregation负责同步控制、局部聚合与向网关发送结果,Area aggregation负责广播同步事件并聚合全局数据。研究结论是,该宏编程方式能够有效表达分层感知—聚合型WSN应用中的控制流与数据流。

Technical evaluation
在技术评估中,研究人员比较了状态图实现与等效C程序的传播时延与占用大小。针对MIC单元与组头节点之间的跨状态图事件和变量传播,由于状态图需经过中间件解释和管理,相比接近硬件的C实现存在明显额外开销;但在组头节点与网关之间,由于本身WSN通信就会引入数十毫秒量级延迟,在将网络调度器设为常开以排除休眠影响后,状态图方法增加的额外延迟并不显著。更重要的是,在脚本与程序尺寸比较中,状态图脚本即便与仅统计应用相关函数大小的C程序相比,仍至少小84%。这一结果说明,该方法的主要优势不在于极限时延,而在于低分发成本、低存储占用和适合远程重构。

User-experience evaluation
研究人员还从开发体验上比较了状态图与传统C开发。结果指出,等效C程序需要开发者在应用层自行实现跨设备事件处理器与复杂通信协议,并因MAC层标识等问题为不同行为相似节点分别编译程序,导致开发负担在大规模网络中快速上升。相比之下,状态图方案可用统一模型表达相似节点行为,通过共享跨状态图事件与变量来描述交互关系,显著提升可读性、可维护性、可复用性与协作性。研究人员据此认为,状态图不仅简化了建模过程,也使部署后重构、前期验证与团队交流更加高效。

讨论部分指出,本文提出的是一种面向WSN宏观行为设计与建模的状态图多层级编程方法,其关键在于将事件与变量作用域扩展到传统状态图语言之外,从而实现无缝的跨状态图交互。该宏编程范式通过共享事件与变量把跨状态图协作转化为多个状态图间的事件与数据互连,以高层抽象简化异构节点协同行为表达。对于单节点内部交互,内部同步通信机制具有较高效率;对于跨节点交互,则不可避免受到网络协议额外开销影响。论文同时承认,当前原型仍有待进一步完善,未来计划开发优化后的完整中间件以支持更多IoT与WSN平台,并改进目前依赖网络结构的群组级抽象,探索用户定义的逻辑分组方法。

结论部分可译为:综上,所提出的宏编程方法能够支持从单个节点到整个网络多个层级上的分布式系统有效设计与建模。该方法的潜力并不限于WSN,还为多种领域中复杂分布式系统的设计提供了一种图形化且富有表现力的解决方案。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号