《可穿戴计算:基于人体传感器网络的可穿戴系统建模与实现》 —2.4 BSN框架需求
2.4 BSN框架需求
尽管BSN应用多种多样,但它们会共享一些常见的任务,而在此之上可以实现特定于应用的逻辑。正确而明晰地辨识这些任务对于实现有效且可用的BSN编程框架至关重要。
表2.2总结了对研究项目和技术原型进行深入分析后的结果,以确定BSN应用程序普遍需要的一组非常重要的任务集。
表2.2 BSN应用程序的常用任务
表2.2中列出的任务应该由框架提供,用于BSN应用程序的开发,比如通过编程抽象和工具。此外,这样一个框架应该在有效性、效率和可用性等方面满足特定(功能和非功能)要求,以便确实能够在开发时间和应用程序编程复杂性方面投入更少的努力的情况下,就可以开发出结构良好且有效利用资源的应用程序。所生成的源代码应该更易于重用和维护,并且支持通过工具进行应用程序管理。对异构传感器平台的支持也很重要,因此,系统互操作性也是一项重要的需求。最后,隐私和安全是高度重要的要求,因为保护可识别和敏感的数据很重要,例如来自生理的、可能与医学相关的信号方面的数据。表2.3列出了上述BSN专用软件框架的基础需求。
表2.3 BSN框架需求
1.编程有效性是框架为应用程序编程、调试和测试提供有效而特定支持的能力。在实践中,它通过编程抽象、软件工程方法、调试和测试工具实现。进一步来讲:
编程抽象通过提供更高级的功能来帮助开发人员专注于核心应用,前面已经讨论过。在BSN开发领域,找到以下四方面内容是至关重要的:①可调整的传感器驱动程序(可能在运行时调整采样率、灵敏度和范围,或者仅启用/禁用多通道传感器的某些特定通道),②灵活的数据结构(以处理不同的数据类型),③灵活的通信API(不同的应用程序在数据载荷方面通常需要不同的数据包长度和结构),④参数化处理功能(以便无须对它们的值进行硬编码即可设置功能参数)。
软件工程方法使用基于组件(类似对象)的方法支持快速BSN应用原型设计。一个软件框架应该提供大多数应用程序通用的预定义BSN专用组件;这将有助于开发人员在更短的时间内完成原型设计。这种常用组件的一个例子是用于清理或放大信号的信号滤波器(例如FIR滤波器)、用于减少数据传输量的特征提取器(例如,平均值、方差、过零点和信号斜率)、作为决策支持工具的分类算法(例如k-NN、决策树),以及应用程序级通信协议(例如用于节点/
服务发现、故障通知和用户数据传输的通信协议)。
调试和测试工具用于验证正在开发的应用程序的功能是否正确。调试工具有助于定位已知的错误应用程序行为的原因,而测试工具则有助于验证软件组件的正确性。它们可能包含在开发环境里面,并且由模拟器或单步调试器组成。
2.系统效率用于定性地表示系统在供电、存储和计算资源管理方面的性能。内置的可调电源管理方案允许对性能、可靠性和系统寿命之间的权衡进行调整。电源管理旨在提高BSN寿命,这通常是通过无线电工作周期,传感器下采样,或通过禁用无线数据传输以支持本地存储等方式实现的。
3.系统互操作性是指利用硬件/软件技术,在不同设备之间实现协作(即通信、分布式传感和处理)的能力。举例来说,互操作性场景包括:①基于不同的硬件架构,但使用相同编程语言在设备之间的网络构造以及通信;②同类BSN协调器之间的互操作性;③一个系统与异构类型设备互操作的极限能力(例如,通过套接字或XML RPC与Internet进行互通)。在实践中,可以利用应用程序级通信协议和支持异构传感器和协调器设备的通信适配器来实现它。
4.系统可用性是一种(非功能性)属性,指的是便于设计人员、开发人员和最终用户使用的系统。它通常由图形或基于API的BSN管理工具支持,这些工具运行在远程协调器(PC或移动设备)上。
5.隐私支持是系统保护用户机密信息的能力。加密和身份验证功能使得系统能够保持此类信息机密性,并确保只有经过授权才能拥有访问权限。隐私保护是每个实际电子医疗应用的必要条件,并且只有当所有系统层都使用隐私策略时才能有效实现。
至于编程抽象,基于2.3节讨论过的内容,似乎没有任何一个抽象可以被认为是主要的。根据具体任务和/或背景,从结果来看,某种特定的解决方案相比于其他解决方案可能是更好的选择。它们中的大多数具有针对特定应用环境而专门设计的特殊功能,但是对更加通用的用途而言,它们缺乏有用的特性。例如,基于数据库方法的框架为数据聚合及查询提供了高级服务,但无法用于定义更通用的计算。因此,以数据为中心的模型并不适用于需要通过网络进行更复杂的协作式传感器数据处理的领域。在基于BSN的特定系统环境下,大多数这类框架不允许通过网络进行分布式数据流管理和处理。快速的应用程序重配置和平***立性需要用BSN编程范式实现的两个基本要求。可重编程网络是支持快速而有效改变传感器节点行为的理想特性。像Deluge[32]和TinyCubus[33]这样的系统提供了通过无线电直接加载来更新代码的功能。不过,它们需要使用同类的硬件/软件平台;此外,代码传输是耗时且耗电的操作。VM代表实现与平台无关行为的典型方法,它允许通过适当的指令开发应用程序,这些指令由传感器节点上运行的VM进行解释。遗憾的是,这种方法由于在解释指令过程中的开销,需要很高计算和存储资源,而且性能很差。此外,使用提供的指令编写应用程序并不快速,也不够直观(例如,Maté提供了超过一百条指令),特别是在应用程序需要频繁更改的情况下。
- 点赞
- 收藏
- 关注作者
评论(0)