利用 POP - C++ 实现无线传感器网络与网格的集成
1. 引言
近年来,无线传感器网络(WSNs)虽备受研究关注,但与其他计算系统的交互问题却少有人问津。像 TinyDB 和 Cougar 这类研究,虽将 WSN 抽象为整体供应用查询,优化了查询并减少无线消息传输,但限制了程序员对节点处理能力的深入挖掘,且未消除 WSN 与其他计算系统间的界限。
与之不同,我们通过扩展 POP - C++ 实现了 WSN 与网格的无缝集成,且不削弱程序员的操作能力。POP - C++ 是面向对象的网格编程语言和运行时支持系统,能支持网络上的分布式并行对象。我们扩展的目标如下:
- 让网格应用与 WSN 无缝通信:通过远程方法调用接口隐藏网络交互细节,使应用无需关注网络栈和物理介质。
- 允许多个网格应用并发使用 WSN 传感能力:每个节点可运行多个对象,每个对象能被多个接口使用,实现多应用并发。
- 实现应用独立的传感器节点软件:应用使用通用方法,减少节点程序内存的重编程,便于 WSN 部署后启动新应用。
2. POP - C++ 简介
POP - C++ 是 C++ 的扩展,用于支持需求驱动的分布式并行对象。在其对象模型中,并行对象能在运行时描述资源需求,并被分配到能支持其执行的远程节点,寻找合适节点和传输对象代码的过程对程序员透明。
POP - C++ 有特殊的方法调用语义,本地和远程调用的语法相同,且并行对象可共享,对象引用能在本地或远程方法中传递。
其运行时架构包含三个对象:
- 接口(Interface):在调用方实例化,与实际对象共享方法接口,为应用提供交互透明性。