手机端
or

欢迎您加入我爱方案网QQ群

1.智能产品外包服务群(311606115)
2.嵌入式项目开发群(491609563)

基于消息中间件智能家居系统的设计与实现

李志勇| 中间件,智能家居| 2010-11-30
902 收藏
分享到: 
每日精选
热门推荐

【中心议题】

  • 介绍了中间件技术的基本概念和目前在实现家庭网络平台中较有影响的主流中间件技术
  • 提出了一种基于中间件的智能家居系统原型的设计与实现

【解决方案】

  • 家庭网关安装在每个家庭中,负责收集家用设备的状态信息、控制家用设备的状态
  • 通讯网关和系统服务平台都是通过JDBC API访问数据库

1引言

随着计算机网络通信越来越改变人们的生活方式和工作方式。智能家居技术业务一例外的受到新技术的影响而具有新的软硬件结构和功能,其中影响最大的就是网络技术的兴起和应用。

基于网络的智能家居系统除了具有一般智能家居系统的基本功能以外,还可以发挥每一个家庭和整个社区联网的优势成为整个小区的一个智能终端。但是目前各厂商或机构提出的网络化智能家居的解决方案科研精力放在智能家居内部电器的通信和组网上,忽略了家庭设备与外界的互联互通,设备的远程监控。有的提出家用设备与外界的互联也多为家庭网关中嵌入WEB服务模块,是一种单一家庭的智能家居系统解决方案,没有和智能小区有效结合起来,存在很多的信息孤岛;这样的智能家居系统扩展性也很差。

2智能家居系统中间件技术

2.1中间件技术简介

中间件技术是伴随网络而发展起来的一种面向对象的技术。它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。同时中间件在负载平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提升,满足了关键业务的需求。

程序员通过调用中间件(middleware)提供的大量API,实现异构环境的通讯,从而屏蔽异构系统中复杂的操作系统和网络协议。

中间件(middleware)提供客户机与服务器之间的连接服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。

我们智能家居系统就是在家庭设备终端和控制设备终端之间加入一层通信中间件层,这个通信中间件提供服务接口,隔离底层设备通信与应用层,兼具业务软件的管理功能,可以根据控制设备终端的的指令,控制家庭设备加载、配置、运行。

 

2.2智能家居系统中的中间件技术

现在有一些构建好的基于中间件的智能小区/家居系统,这些系统基本都是将中间件建立在家庭网关的部分,然后用户利用一些控制终端控制通过家庭网关访问家庭设备,这样也能做到对家庭设备的控制和监控。

为了提高不同系统之间的互操作能力,涌现出很多家庭网络中间件规范,其中包括OSGiUPnPHAVijiniOpenCable等。在这些中间件的规范中,根据设计目的、覆盖范围和出发点不同,可以大致分为两类,一类是以家庭网关为中心形成的集中式控制的家庭网络中间件规范,OSGiOpenCable;另一类式分布式控制的家庭网络中间件规范,UPnPHAViJini,它们致力于设备与设备之间的自动识别与相互通信,设备之间构成的是对等连接。

在上述的两类智能家居解决方案中,都是关注家庭内部家庭设备的的连接,第一类是家庭设备与家庭网关相连,利用家庭网关通信,第二类则是家庭设备能够互联互通,然后在家庭网关上集成了对外的通信模块,将家庭网关作为对外的唯一接口,这样所有的家庭设备数据信息将集中在家庭网关上进行处理、转发,家庭网关成为系统的最关键部件,我们在此将这种系统称为嵌入式智能家居系统。这两类智能家居系统为了用户能够访问、控制设备,设计者一般在家庭网关上嵌入web服务或者无线模块,通过web页面或者无线遥控设备控制家庭设备。

通过上面的分析,我们可以发现这种嵌入式智能家居系统多为单一家庭提出的解决方案,没有和智能小区连接起来,存在的很多的信息孤岛,不利于信息的管理和分析。

而且,嵌入式智能家居系统也不是很利于系统的扩展,由于所有的功能控制全部集中在家庭网关部分,每当要为系统增加新的功能时,我们需要修改每个家庭网关的设置,有些时候,还需要彻底更换一台新的家庭网关设备。

基于上面对嵌入式智能家居系统中间件放在家庭网关的考虑,我们没有把数据的处理全部放在家庭网关,然后利用家庭网关把数据直接传递给用户,而是利用家庭网关把数据传到一台服务器,用户通过访问服务器上的用户门户,间接访问家庭设备。在服务器端,我们设计了另外一个数据通讯的通信中间件———通信网关,通信网关主要的功能是完成不同通信协议之间的转换,并把家庭设备的信息发送给用户,接收用户对家庭设备的控制/查询命令,转发到家庭网关。

3基于消息中间件智能家居系统的设计

3.1整体思想

在前面的分析中,我们提到目前大多实现的智能家居系统实际是为单一家庭设计的嵌入式智能家居系统解决方案,没有和智能小区有效结合起来,存在很多的信息孤岛,为了解决这个问题,我们整个智能家居系统由远程控制端、带有大型数据库的高性能服务器、家庭网络控制监控设备三部分组成。该系统的层次说明如下:

(1)客户的查询控制终端主要通过浏览器实现,应该也可以是手机、PDA等终端设备,控制命令通过有线\无线网络和后台服务器通信,后台的服务器验证用户的身份和任务,转化为数据库中的查询控制记录和参数。

(2)数据库中记载了用户和属于该用户的详细信息,并且两个用户之间的电器设备可以互不干扰,动态添加。当用户的任务到达数据库中的时候,该任务就通过通信接口向下传递。这样做的好处是,服务器的通信程序可以只写一次而提供用户和用户家庭内部控制端两部分使用,简化了系统通信结构。

 

(3)家庭内部网络系统由于需要控制硬件,所以需要系统驻留程序来不断完成控制离散设备的开关、状态等信号的任务。

通过以上分析,我们可以得出系统的结构模型,1是系统架构设计图。

3.2各模块的设计思路及功能介绍

(1)端设备—家庭网关(Home Gatway)是网络化智能家居的节点。在家庭中,通过485总线连接各中家庭设备,然后通过一个串口服务器设备(Serial to IP)完成RS-232/RS485格式和以太网传输的IP包之间的数据双向转换,从而给传统的串行设备增加联网功能。

家庭网关安装在每个家庭中,负责收集家用设备的状态信息、控制家用设备的状态。家庭网关负责完成以下事情:解析通讯网关发过来的TCP报文并向家用设备发送控制命令;接受家用设备发过来的状态信息,向通讯网关发送家用设备的状态(包括家用设备的状态改变即时发送和家用设备状态的定期发送)TCP报文。

(2)通讯网关(Communication Gateway)是系统核心部分。它获取来自家庭网关经由通信网络传送过来的数据,将数据解析后,保存到数据库中,并把数据转换后通过消息发布/订阅引擎发布给用户/小区保安。它主要的功能是完成不同通信协议之间的转换;并把家庭设备的信息发送给用户;接收用户对家庭设备的控制/查询命令,转发到家庭网关。

 

(3)系统数据库(System Database)是通过对整个软件功能的考虑来搭建的community数据源,在数据源中建立表格、视图、字段来存储用户信息、模块信息、费用信息、安防报警信息等。

JDBC(Java数据库连接,Java Database Connectivity)是一种基于X/OpenSQL命令级接口,它有一组用JAVA语言编写的类和接口组成,使得程序开发人员可以建立一个与数据库无关、与平台无关的编程接口建立数据库应用程序。通讯网关和系统服务平台都是通过JDBC API访问数据库。

(4)系统管理平台(System Manage portal)基于J2EE三层B/S架构,实现管理通讯模块通讯格式、家庭通讯设备、使用通讯设备的用户,这是一个系统运行的支撑平台,它提供、管理系统运行需要的信息和资源。

(5)控制终端(Control Terminal)主要用于用户实现对家庭设备的查询和控制以及接收家庭设备信息。用户可以通过WEB\WAP\SMS的方式连接上后台的服务程序后,实现对家庭设备的查询和控制,同时可以使用预先定制的设备信息通知通道(SMS\MMS\eMail)接收家庭设备的状态信息。

4结束语

在基于消息中间件的智能家居系统中,为了避免大多嵌入式智能家居系统中出现的信息孤岛孤岛和扩展性差的问题,我们设计了一个面向消息的中间件(message-Oriented middleware),完成异构隔离、消息传递、数据交换和模块管理等功能,为系统的可扩展性提供了良好的支持。

点赞

深圳市中电网络技术有限公司 Copyright© www.52solution.com 粤ICP备10202284号