《云计算:原理与范式》一3.11 云集成的传感器架构[3]

3.11 云集成的传感器架构[3]

在过去几年中,无线传感器网络(WSN)受到极大关注[3]。因为其潜能在众多领域富有新颖性和吸引力的解决方案,如工业自动化、环境监测、运输业务、卫生保健等领域。如果将传感器得出的数据添加到各种基于Web的社会化网络或虚拟社区、博客等,我们身边将会有非常完美转换。
随着微纳米技术的快速采用,生活用品也注定在它们的业务和产品方面变成数字授权和智能化。因此,其目标是连接智能材料、设备、器件、联合消息中间件、企业信息系统和包、无所不在的服务、手持设备和彼此巧妙建立的传感器,以及保持完美、充满魅力的催化式情景感知应用。云已成为集中式、紧凑型和有能力的基础设施,为众多内在品质的用户提供以人为本和上下文感知的服务。这一长期目标需要在云和所有这些无所不在的微小系统间存在一个完美的连接和针对性的交互。本节阐述了一个强大的、有弹性的架构,对传感器网络集成到云进行了探索。不过,该架构面临许多挑战。此架构的作者提出了一个基于发布—订阅(pub-sub)的模式,从而简化了传感器网络与基于社区为中心的应用集成。另外,还需要网际互联云供应商,以防止违反用户服务水平协议。
由团队的研究人员组成的虚拟社区一起解决这个复杂的问题,他们需要提供数据存储、计算能力和安全性。例如,这个团队正在通过人口移动研究一种新型病毒的爆发。这不只需要Wiki或其他社会化组织工具。他们在患者体内放置生物传感器,以持续监控患者的病情并使用该数据大规模模拟以跟踪病毒变异和可能治愈的感染扩散。这可能需要计算资源和一个共享数据和结果的平台,但团队不能立即使用这些结果。
在这种情况下可以使用传统的HPC方法,如传感器网格(Sensor-Grid)模型,设置基础设施以部署该模型,以便在这种环境下不容易快速向外扩展基础设施。不过,云计算范式是一个很好的举措。然而,遗憾的是,目前的云服务供应商并未解决传感器网络与云应用集成的问题,因而没有基础设施支持这一方案。虚拟组织(VO)需要有一个可以与社交网络和协作工具快速部署的地方,其他专门的应用程序和工具可以组成传感器数据,并根据其订阅将其传播到VO用户。
在这里,研究人员需要登记他们的兴趣,从生物传感器中得到各种病人的状态(血压、体温、脉率等)进行大规模并行分析,并分享彼此的信息,以找到有用的问题解决方案。因此,这需要在订阅的基础上汇总、处理和传播传感器数据。另一方面,由于传感器数据需要大量的计算能力和存储,因此一个云服务供应商可能无法处理这个需求。
这需要坚持并探讨与其他云服务供应商动态合作。该架构解决了上述问题,并提供可行的解决方案。
为了使传感器网络集成到云中,这些作者提出了一个基于内容的发布-订阅模式。一个发布-订阅系统将传感器数据封装成事件,并为系统实体间的异步数据交换提供事件发布和订阅服务。MQTT-S是一个开放的基于主题的发布-订阅协议,它隐藏传感器网络的拓扑结构,并允许数据基于兴趣而不是各个设备地址传递。它允许在WSN和传统网络间,甚至不同的WSN间进行透明的数据交换。
在该架构中,像MQTT那样,系统的所有复杂性驻留在代理(broker)一端,但它与MQTT-S不同,因为它使用基于内容的发布-订阅代理,而不是基于主题的适合于应用程序的方案。发布完事件后,它从发布者传送到一个或多个订阅者,发布者无需将消息传递给任何特定的订阅者。WSN环境以外的发布-订阅代理完成匹配。在基于内容的发布-订阅系统中,必须用元数据增强传感器数据以识别不同的数据字段。例如,传感器值(也称事件)的一个元数据可以是体温、血压等。
为了将发布的传感器数据或事件提供给用户,发布订阅代理需要有一个高效、可扩展的事件匹配算法。此事件匹配算法在于适合应用场景的一系列谓词,当谓词数量急剧增加时,它也是高效、可扩展的。该架构如图3.10所示。在该架构中,传感器数据通过网关到一个发布-订阅代理。系统中的发布-订阅代理为SaaS应用程序的消费者提供信息是非常必要的,因为整个网络是非常动态的(系统)。在WSN端,传感器或执行器(SA)设备可能会随时更改它们的网络地址。无线连接很可能会失败。此外,SA节点还可能在任何时候出现故障而不是被修复,这些节点将会被新的节点替换。另外,可以将不同的SaaS应用程序托管、运行在云系统的机器的任何地方。在这种情形下,在SA设备和应用程序之间使用网络地址的传统方法作为通信手段可能会有问题,这与它们的动态性和暂时性有关。

《云计算:原理与范式》一3.11 云集成的传感器架构[3]

而且,一些SaaS应用程序可能会对相同的传感器数据感兴趣,但其目的有所不同。在这种情况下,SA节点需要管理和维护多个并行应用程序的通信手段。这可能会超过简单、低成本SA设备的有限能力。因此,发布-订阅代理是必要的,并且基于其在带宽和能力方面具有较高性能而位于云服务端。它由如下四个部分组成。
流监测和处理组件(SMPC)。传感器流有许多不同的形式。在某种情况下,它是必须捕获、过滤和实时分析的原始数据;在其他情况下,它是存储或缓存的数据。计算风格还取决于流的本性。因此,运行在云上的SMPC组件监测事件流并调用正确的分析方法。根据不同的数据传输速率和所需的加工量,SMP管理云中的并行执行框架。
注册组件(Registry Component,RC)。不同的SaaS应用程序为社区用户所需的各种传感器数据注册发布-订阅代理。对于每个应用程序,该应用程序的注册组件存储应用程序感兴趣的用户订阅和传感器的数据类型(温度、光照、压力等)。随着用于事件传递的应用程序ID到传播者组件,它还发送所有用户订阅。
分析器组件(Analyzer Component,AC)。传感器数据或事件加入发布-订阅代理后,分析器组件确定它们属于哪些应用程序,是否需要定期或紧急提供。然后,这些事件传递给传播者组件,以通过SaaS应用程序提供适当的用户。
传播者组件(Disseminator Component,DC)。对于每一个SaaS应用程序,它使用事件匹配算法为订阅用户散布传感器数据或事件。它利用云服务的并行执行框架快速传递事件。框架中的发布-订阅组件工作流程如下。
用户注册信息和各种SaaS应用订阅,然后将所有这些信息转移到发布-订阅代理注册。传感器数据由网关到达系统后,发布-订阅代理中的事件流监测和处理组件决定是否需要处理或者只是定期存储或立即交付。如果传感器数据需要定期紧急交付,分析器确定事件属于哪些SaaS应用程序,然后通过事件以及应用程序ID传递给传播者。使用事件匹配算法的传播者为每个应用程序找到适当的订阅者,并提供使用的事件。
除了发布-订阅代理外,作者还提到了其他三个组成部分:传感器云框架中的中介者(Mediator)、策略库(PR)和合作者代理(CA),配置管理器(provisioning manager)、监测和测量,以及服务注册(service registry),以使主要的云服务供应商基于VO动态合作,以防止突发的资源需求违反SLA。在创建一个新VO时,这三个组成部分共同为给定的CLP充当一个“网关”。这三个组成部分如下。
中介者(Mediator)。(资源)中介者是VO内的策略驱动实体,以确保各个参与实体能够适应改变的立场,并能够在一个动态和不确定的环境中实现它们的目标。一旦VO建立,中介者控制哪些资源与CLP合作,如何作决定并采用哪些策略。执行自动合作后,中介者会直接在谈判过程、策略管理和调度中做出任何决策。中介者为VO创建保持最初的策略,与当地合作代理一起发现外部资源并与其他CLP谈判。
策略库(Policy Repository,PR)。PR虚拟化VO内地所有策略。它包括中介者策略、VO创建策略以及由于合作安排而委托给VO的任意资源策略。这些策略有一套规则管理并控制访问VO资源。面对复杂的技术,它们提供了管理这些组件的一种方法。
合作代理(Collaborating Agent,CA)。CA是一个用于VO创建的策略驱动资源发现模块,它用做中介者与其他CLP交换策略和资源信息的管道。主要的CLP用来发现合作CLP(外部)资源,以及在中介者实际谈判开始之前让它们了解当地的政策和服务要求。
最后,交付发布的传感器数据或云应用的适当用户的事件,提出并利用一个称为SGIM(Statistical Group Index Matching)的高效、可扩展的事件匹配算法。作者还评估了其性能,并与云服务中基于无处不在的卫生保健应用场景的现有算法进行了比较。作者在研究论文中清楚地说明了与该框架同步的这一算法使传感器云连接,以便为各种下一代以社区为中心的遥感应用利用不断扩大的传感器数据。由此可以看出,这需要启动各种计算工具。这种探索比传统的HPC方法或网格方法更适合构建数据中心云计算模型。作者嵌入了基于内容的发布-订阅模型以启用该框架。