《可穿戴计算:基于人体传感器网络的可穿戴系统建模与实现》 —2.3 编程抽象

举报
华章计算机 发表于 2020/02/13 16:35:05 2020/02/13
【摘要】 本节书摘来自华章计算机《可穿戴计算:基于人体传感器网络的可穿戴系统建模与实现》 一书中第2章,第2.3节,作者是詹卡洛·福尔蒂诺(Giancarlo Fortino)[意] 拉法埃莱·格雷维纳(Raffaele Gravina) ,斯特凡诺·加尔扎拉诺(Stefano Galzarano)冀 臻 孙玉洁 译。

2.3 编程抽象

如前所述,编程抽象为开发人员提供主要的接口,代表由运行在传感器网络基础架构上的中间件所支持的编程范式的基础。这些机制包括的一些高级结构可以用来定义各种操作(包括感知、传感器读取聚合和数据流控制)、计算和通信等。如果构造得当,这样的抽象可以将应用程序开发人员从直接处理烦琐的底层细节(比如资源管理、网络协议和电源管理等)中解脱出来。为了解决传感器网络编程问题,并支持快速有效的应用程序开发,在过去十年中,已经出现了很多针对传感器网络的框架,它们关注不同的应用方面。取决于应用的具体适用范围,每个框架都提供了明确定义的编程范式及其相关的高级抽象。在某种程度上,这些高级方法中的大多数也可用于构建BSN应用程序。但是,正如本章稍后将讨论的那样,BSN系统提出了不同的挑战,需要满足更加具体的需求。因此,需要有为满足这些特殊需求而专门设计的恰当的编程范式和支持工具,以更好地挖掘BSN的潜力。

下面列出用于传感器网络的现有编程范式和相关支持框架:

1.面向任务的范式(SPINE2[1,7]、Titan[8]和ATaG[9]):面向任务的方法旨在作为基本功能块和任务的组成部分,为开发分布式应用程序提供一种简单有效的方法。每个任务通常执行一个明确指定的操作,比如数据处理功能或传感器采样。通过这种面向数据流的互连任务链(从传感器到处理结果的数据流),开发人员能够快速将应用逻辑转换为高层次、模块化、易于重新配置的表示形式,然后通过作为运行在每个节点上的公共中间件层而提供的合适的运行时系统,在传感器网络上自动执行。这种直观的编程模型特别适合分布式信号处理,它代表BSN场景下的主要的应用。

2.基于智能体的范式(MAPS[10-12]、AFME[13]、Agilla[14]、SensorWare[15]和actorNet[16]):基于智能体的编程模型与多个理想的轻量级智能体关联,它们从一个节点迁移到另一个节点,执行特定任务的一部分,并且相互协作,以实现全局分布式应用。智能体可以读取传感器值,启动设备,并发送无线电数据包。用户无须定义每个节点的逻辑,而只需定义任意数量的智能体及其行为,并指定它们应该如何在网络上协作来完成所需的任务。按照这个模型,编程范式通过隐藏通信和移动的具体实现细节来为用户提供高级结构,以定义智能体的特征。这种范式允许开发人员构建分布式、模块化的应用程序,这样就可以利用可移动代码轻松完成重新配置和重新定位。

3.基于函数的范式(SPINE[17]、C-SPINE[18,19]、RehabSPOT[20]和CodeBlue[21]):

这些框架不基于特定形式的抽象数据或任务,它们为开发人员提供了可定制的函数,作为用于数据收集、处理和显示的主要编程接口。它们带有易于重用的库和工具,专门用来解决并标准化特定应用领域内基于传感器的系统设计的核心挑战。而且,因为没有用复杂的执行引擎来“翻译”高级抽象,所以采用了非常轻量级且灵活的中间件,来保证高水平的运行时性能。

4.宏编程范式(ATaG[9]、Logical Neighborhoods[22]、Kairos[23]和Regiment[24]):这种方法用于开发高度分布式的应用程序,因为它可以轻松定义整个传感器网络的全局行为,而不是单个节点的个别行为。这种方法曾经被设想用于处理由大量节点构成的WSN,在这种网络中,协调节点之间活动的复杂性使得很难通过有效的方法来设计应用程序。但是,当应用于BSN时,同样的有效性不能被考虑。宏编程通常具有一些语言结构,用于抽象嵌入式系统细节、通信协议、节点协作和资源分配。而且,它提供了一种机制,可以根据位置、功能和角色将传感器分成不同的逻辑组。这样,编程任务的复杂性就降低了,因为程序员只需指定组之间存在哪种协作,而底层执行环境负责把这些高级的概念性描述转化为实际的节点级操作。有了这些高级概念,任何编程不熟练的行业专家都可以利用他们熟悉的概念和术语来简单定义整个系统的行为,从而开发自己的应用程序。

5.基于模型的范式[2]:它允许开发人员定义合适的模型来表示想要的应用程序行为。通常,这种方法包括使用明确定义的建模语言(如有限状态机和流程图),以及能够从模型开始生成针对特定目标平台的底层代码的工具。虽然在一些领域它代表了标准的方法(例如汽车电子产品),但其在WSN/BSN背景下的应用尚未经过广泛调查。

6.应用驱动范例(MiLAN[25]):属于该模型的中间件旨在根据需求和要求为应用程序提供服务,特别是对于所收集数据的QoS和可靠性。它们允许程序员直接访问用于调整网络功能的通信协议栈,以支持和满足所请求的要求。

7.数据库范例(TinyDB[26]、Cougar[27]和SINA[28]):数据库模型让用户能够将整个传感器网络视为虚拟的关系型分布式数据库系统,允许在用户和网络之间使用简单易用的通信方案。通过采用易用的语言,用户能够进行直观的查询,从传感器提取感兴趣的数据。最常用的网络查询方法是利用类似SQL的语言,这是一种简单的半声明式语言。这种范式主要用于收集数据流,但其限制在于它仅提供近似结果。而且,它不支持实时应用(通常这是BSN中必需的),因为它缺少事件之间的时空关系。

8.虚拟机范式(Maté[29]、DAViM[30]和DVM[31]):虚拟机(VM)通常被需要在真正的主机上运行并模拟客户系统的软件采用。在WSN环境下,VM用于帮助各种应用程序运行在不同的平台上,而不必担心底层架构特征。用户应用程序由一组通过VM执行环境解释的简单指令集进行编码。遗憾的是,这种方法会受到因指令解释而引入的性能开销的影响。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。