您所在的位置:e-works首页 > 基础信息化 >

面向物联网的系统及其中间件设计

发表时间:2011/1/31 邵华钢 程劲 王辉 李志 来源:万方数据
鉴于物联网(IOT)的应用在医疗行业日益广泛,提出一种适合IOT 网络的系统设计方法TOA 和对应中间件TOC。TOA 将“人”、“物”及所有相关的智能系统都抽象成一个地位完全平等的IOT 互联对象,统一了IOT 网络环境中联网对象之间的交互模式。在TOC 中间件系统设计实现中,采用XMPP 协议进行消息交换,利用基于Pipe & Filter 的Agent 架构模式支持多样异构的智能设备,方便Agent 的升级和扩充。通过在某医院医疗垃圾管理系统的成功应用,验证了TOA 的设计思想和TOC 中间件系统,

  1、概述

  物联网(Internet of Things, IOT)是指将各种信息传感设备,如射频识别装置、红外感应器、全球定位系统、激光扫描器植入各种物品,实现物品的智能化,将这些信息传感设备与互联网结合起来形成的一个巨大网络,并在物品与人之间实现信息共享和互联。近年来,物联网已显现出巨大发展潜力与应用空间,是21 世纪最有发展前途的信息技术之一。但是,由于物联网的联网对象非常广泛、种类极其繁多,而且这些联网对象来自不同的厂商,可能采用不同的系统平台,如何使这些对象实现有效的交互非常困难。此外,如果缺乏一种有效统一的“人-物”、“物-物”交互模型以及交互平台,那么对象之间的交互路径与联网对象之间呈现几何级数关系,在两两联网对象之间独立实现交互接口会引入巨大工作量,造成大量资源浪费,也会给系统维护带来很大负担。

  本文提出一种面向物联网的架构— — TOA(Things Oriented Architecture)以及基于该架构的中间件— —TOC(Things Oriented Communication)。TOA 的基本理念是把IOT网络环境中“人-物”、“物-物”之间的沟通和交互进行统一处理,注重独立实现各个IOT 联网对象的系统功能,并通过简单、统一的接口进行联系,接口采用中立方式进行定义,从而实现IOT 联网对象之间的松耦合。而中间件TOC 为快速部署IOT应用提供了基础性的技术平台。TOA 的设计思想及基于该思想的中间件TOC在某医院医疗垃圾管理系统的实际应用表明,系统部件运行稳定、维护方便、可扩展性好,取得了较好效果,得到了用户的肯定。

  2、TOA思想及TOC设计

  2.1 TOA思想

  IOT的目标是把一切“物”进行互联,但联网不是目的,只是手段。在完成各种“物”的联网后,需要利用这种连接改进业务、提高效率、实现需求。在物联网环境中,不仅“人-人”之间存在交互,“人-物”之间及“物-物”之间都存在普遍的联系和交互。

  TOA的基本理念是把IOT网络环境中“人-物”、“物-物”之间的沟通和交互进行统一处理,使IOT 网络中的“人”、“物”及所有相联的智能系统都能基于完全平等的地位在IOT 全网络范围内进行沟通和交互。TOA 注重独立实现各个IOT 联网对象的系统功能,并通过简单、统一的接口进行联系,接口采用中立方式进行定义,从而实现IOT 联网对象之间的松耦合。

  为支持基于TOA思想的物联网应用系统具体开发,本文设计实现了一基于TOA 思想的中间件TOC,中间件TOC 为快速部署IOT 应用提供了基础性的技术平台。在TOC 中间件中,每个IOT 联网对象维护一个交互列表(Concerning Things List, CTL),在进行IOT 联网对象间交互时,只要选取列表中的IOT 对象,即可实现对象间的协作与通信。CTL 支持IOT 对象的添加和删除,交互过程支持基于Push的菜单式协作及服务(Service)发布,一方面可简化交互过程和交互接口的设计,另一方面,Push过程可完成IOT 对象自身服务的自解释,在不熟悉的对象或服务之间也可轻松完成沟通。

  2.2 TOC整体结构

  TOC中间件系统由Server、Client、Agent 3 个部分组成,整体上采用P2P 设计技术,Server 与Client 之间采用XMPP协议(Extensible Messaging and Presence Protocol, XMPP)格式[3]进行消息交换,如图1 所示。

TOC系统结构

  (1)Server。Server 的主要作用是负责Client 基本信息的注册、存储及IOT对象的维护等,同时实现对异步交互的支持,为离线对象的信息提供临时存储转发,此外,Server还承担呈现状态(Presence)的维护功能。

  (2)Client。Client 模块是TOC交互模块的基本部分,Client负责与Server 之间进行基于TCP/IP 的Socket 通信,负责交互会话(Session)的管理和维护,负责交互列表的本地管理和展示。交互过程支持一种基于Push 的菜单式协作,一方面可简化交互过程和交互接口的设计,另一方面,Push 过程可完成IOT对象自身服务的自解释,在不熟悉的对象或服务之间也可轻松完成沟通。Client 的原型系统界面如图2 所示。

TOC Client及对应的CTL列表

  (3)Agent。Agent 在整个TOC 系统中起到关键性的作用,Agent 为抽象和统一“人-物”、“物-物”间的交互提供支持。Agent 由外部接口(External Interface) 和消息解释器(Interpreter)组成。

  2.3 Agent设计

  Agent是整个TOC 架构完成复杂IOT 对象互联的基础,其中解释器是Agent 的大脑,用于解释外部其他IOT 联网对象的交互请求。外部接口连接具体IOT 联网对象,该模块一方面发送外部设备能够理解的请求至外部设备,另一方面接收外部设备的响应和外部设备的感知,同时需要把该类信息转换成其他IOT 对象能够理解的格式。另外,Agent 的模块设计采用管道过滤器(Pipe & Filter)的设计模式,管道负责数据的传递,它把原始数据传递给第1 个过滤器,把一个过滤器的输出传递给下一个过滤器,作为下一个过滤器的输入,重复这个过程直到处理结束。过滤器负责数据的处理,过滤器可以有多个,每个过滤器对数据做特定的处理,它们之间没有依赖关系,一个过滤器不必知道其他过滤器的存在。这种松耦合的设计使过滤器只需要实现单一的功能,从而降低了系统的复杂度,也使过滤器之间依赖最小,从而可以更加灵活地组合实现新的功能,保证新功能的添加或更新驱动接口不需要重构(Rebuilding)整个Agent。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:熊东旭