3、系统软件设计
根据模块化的设计原则,在功能上把系统软件划分为三层,即数据服务层.逻辑处理层和用户表示层.数据服务层将标签采集到的各设备的数据信息存储到磁盘上;逻辑处理层提供一系列数据处理接口,根据系统的要求将各种类信息进行归并.去冗余等操作;用户表示层与系统用户直接交互,接受用户的访问请求,出现异常情况及时向用户报告。
3.1 数据服务层
智能家庭用电信息系统使用关系型数据库MySQL 存储数据信息.图3所示是其数据库表结构。
图3
本系统对用户的电表.系统的用电设备.环境监测位置及用户信息进行统一编号,并以编号作为唯一标识符连接各个实体。
系统包括六张表:系统信息表存储用户家庭用电总体信息,系统以固定的时间间隔计算系统的电量消耗情况,因而时间作为主键.其他的字段信息包括总用电量.月用电量.停电阈值和剩余电量.设备信息表存储系统监测设备的相关信息,本系统为每个用电设备预设了最大的消耗电量值.该表以设备编号为主键,同时对设备位置.设备名称及购买时间等信息也进行了存储.电能计量标签采集的数据存储到设备用电信息表中,该表以设备编号和计量时间作为联合主键,实时反映设备用电信息.环境监测标签采集的数据存入家居安防信息表中,实时存储检测到的温湿度.烟雾浓度及煤气浓度信息.为保障系统安全,系统为其设计了用户信息表,该表存储具有访问权限的用户信息及用户级别.当系统出现异常情况需要报警时,相关的信息会存入报警信息表中.它具有处理标识,如果该报警信息已经被用户处理了,则不再重复报警。
为了使系统各层具有高内聚.低耦合特性,同时方便数据库操作,本设计集成Hibernate 框架于系统中进行对象实体关系映射.同时,Hibernate 对JDBC 进行了轻量级对象封闭,使得Java 程序员可以使用面向对象的思维来操作关系数据库.另外,系统还对数据库中每一张数据表建立了一个数据访问对象(Data Access Object,DAO),并由DAO 作为访问数据库的统一接口,因而隐藏了数据库具体实现细节。