APP下载

基于HTML5与物联网技术的大数据中心机房智能管理系统

2018-05-21彭灿华杨呈永张玉斌

实验室研究与探索 2018年4期
关键词:机房数据中心预警

彭灿华, 杨呈永, 张玉斌

(1. 桂林理工大学 现代教育技术中心, 广西 桂林 541004; 2. 渤海大学 基础教研部, 辽宁 锦州 121000)

0 引 言

近年来,随着高校校园信息化发展,网络信息已经覆盖了整个校园,学生一卡通消费、学籍、选课、成绩、借书、考勤、在线考试、论坛、上网日志等;教师的人事基本信息、办公信息、邮件、教学资源、科研、资产、财务、上网日志等都会产生大量数据信息。这些数据信息与学校教学管理及校园生活息息相关,信息量巨大,覆盖面广,数据存储结构已经具备了大数据特征,为高校信息化建设从数字化校园向智慧校园推进提供数据基础。如何保障校园庞大数据信息的安全、可靠,必须要有一个现代化的大数据中心机房来支撑。大数据中心机房管理必须是无人值守自动化和智能化管理,这就需要从下面3点进行突破:

(1) 机房出现故障需要在环境变化、硬件状态等方面设置预警参数,并多渠道第一时间发出预警信息,方便管理员及时处理。

(2) 除了对环境、硬件进行预警外,服务器云操作系统也是数据中心机房的核心,服务器云操作系统出现时,有优先第一时间预警功能。

(3) 由于机房处于无人值守状态,要求可以使用任意智能移动终端。接收预警信息,并进行有效处理。

以物联网技术为基础结合HTML5技术对大数据机房的软、硬件环境提供安全可靠的保障。

1 大数据中心智能管理系统技术框架

自2005年国际电信联盟(International Telecommunication Union, ITU) 正式提出了物联网(Internet of Things,IoT)[1-2]一词以来,物联网经历数十年的发展,从功能角度来看,物联网集成了多种具有感知、通信、计算和控制能力的网络化智能计算机系统。按其功能分为感知层、传输层、应用层,结构如图1所示。

图1 物联网架构图

1.1 感知层

感知层是物联网的最前端层,由各种传感器采集原始数据,同时结合ZigBee组成无线传感器。

1.2 网络传输层

网络传输层通过ZigBee无线发送上来的原始数据再通过路由器等网络设备与互联网连接起来,并将数据实时传送到后台服务器,实现数据与互联网的相互传输。

1.3 应用层

该层首先通过服务器接收网络传输层、感知层各网关节点信息,进行信息处理后保存在服务器上。实时通过手机短信和微信公众号推送接收各种预警的信息。客户端通过手机、电脑、笔记本、ipad等智能终端在享有权限范围内对使用HTML5设计的Web页面进行请求查询、统计、控制管理等操作。

2 物联网硬件实现

图1所示在最底层由前端感知节点采集数据通过ZigBee无线网关节GPRS模块将数据发送到Web服务器实现Inernet的传输[3-5]。

2.1 物联网前端传感器

物联网前端主要功能是采集数据,需要将系统中的物联网硬件传感器安装到机房合适的监测位置,保证采集到数据的准确,具体用到传感器明细如表1所示。

表1 感知层传感器明细

(1)温湿度传感器。温湿度传感器负责采集机房环境的温湿度、烟雾等数据发送到服务器。

(2) 红外线防盗。在非工作安全时间段启用红外防盗技术,当外来人员进入时可以及时报警。

(3) 空调传感器。把空调各种运行状态如当前温度、压缩机是否运行,风机是否运行等发送到服务器。

(4) 电源配电柜传感器。把机房供电情况如电流、电压等参数值发送到服务器。

(5) 配电开关状态传感器。把配电各路开关状态发送到服务器。

(6) UPS电源传感器。 把UPS输入电压、输出电压、输入频率、内部温度、UPS事故障、UPS连接状态、开关状态、使用状态、电量等发送到服务器。

(7) 抽风机传感器。把抽风机运行状态发送到服务器。

(8) 指纹门禁传感器。实时把出入门禁指纹记录、门区开关传输到服务器。

(9) 摄像头视频监控传感器。通过高清摄像头对机房内360°无死角进行视频监控,机房管理人员可以一目了然看到机房内的任何角落真实场景情况。

3.2 ZigBee传输节点设计

ZigBee[6-8]是一种由控制芯片及射频收发单元和GPRS模块等组成,一种短距离、低功耗、高可靠的无线通信技,适合用于自动控制和远程控制领域。各个终端传感器节点采集到数据后,通过ZigBee无线网络发送给数据采集协调器,然后把GPRS模块与移动互联网连接,并通过有线传输将信号送往Web服务器,最终可利用Internet、GPRS等网络实现双向通信进行智能管理。

3 基于HTML5智能应用系统实现

3.1 系统框架及技术介绍

智能应用系统的技术上框架采用ASP.NET MVC5[9]+JOSN[10]+HTML5[11]。包括基于HTML5终端层、JOSN格式传输层、基于ASP.NET MVC5服务处理层、数据库,框架如图2所示。

图2 应用系统架构图

(1) ASP.NET MVC5是相比之前的版本做了改写,整合了MVC、Web API、Web Pages功能,所有的功能和模块都进行了独立拆分,做到了彻底解耦。功能强大的 Web API,可以从任何移动/客户端请求访问获取数据。

ASP.NET Web API 是一个框架(framework),能让你在 .NET Framwork 之上架设 HTTP 服务 (HTTP Services)。ASP.NET Web API 是 .NET Framework 上构建 RESTful 应用程序的理想平台。

(2) JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。具有占带宽小(格式是压缩的)传输速度快,支持目前主流语言(C、C#、Java、JavaScript 、PHP等),便于服务端和客户端的解析和生成。

(3) 基于HTML5开发的网页解决传统的跨平台问题,可以在不同环境中一次性开发Web应用和网站,提高开发工作效率,开发的Web应用程序具有跨平台特性。HTML5 APP Cache开发APP拥有更快的启动速度和联网速度,提高可用性并且改进用户的友好体验。

同时在HTML5里结合WebGL可以快速打造出无插件纯Web HTML5 3D机房监控系统,WebGL是OpenGL的浏览器一个子集,支持大部分主要3D功能接口。

3.2 服务端功能设计实现

服务器端开发工具采用VS2015开发,数据库采用Sqlserver2012[12],开发框架用ASP. NET MVC5,用ASP. NET MVC框架能够快速而方便地创建Web服务,以便为HTTP客户端提供Web API接口。通过API对接收的数据与返回数据进行统一的封装整理生成JSON字符串,方便处理接收与返回数据,并对数据进行验证,通过C#的特性对token进行验证,并通过时间戳的方式统一处理接收与返回的时间格式。

部分核心代码如下:

(1) token进行验证,设置验证每个请求的权限:

……

// 如果需要验证

if (nt == null || (!nt.NotNeedToken))

{

// 根据token获取用户信息

var user = GetUser(req.token) ;

if (user == null)

{

// 判断Token是否失效

throw new APIException(200, "Token失效。");

} req.APIWorkContext = new APIWorkContext(); req.APIWorkContext.UserId = Convert.ToInt32(user.user_id); req.APIWorkContext.UserEmail = user.email;

……

(2) 处理Josn数据

……

// 反射创建对象

object APIservices = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(fullName, true, System.Reflection.BindingFlags.CreateInstance, null, null, null, null);

// 转化成类对象 BaseAPIService baseService = APIservices as BaseAPIService;

try

{

// 执行函数

baseService.Reqeust = req;

res = baseService.Process();

}

catch (APIException ex)

{

throw ex;

}

// 判断是否是直接返回String

if (res is APIContext)

{

return (res as APIContext).Context;

}

// 设置时间格式

var jsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };

// 设置过滤null值为不显示 jsonSettings.Converters.Add(new UnixDateTimeConverter());

//返回Josn格式

return JsonConvert.SerializeObject(res, jsonSettings);

……

3.3 客户端功能设计实现

在客户端中,页面显示所需的数据通过请求服务器端获取JSON格式数据,并将JSON格式数据解析处理成HTML5页面显示。解析JSON对象直接使用JQuery操作的格式,jQuery是一个快速、简洁的JavaScript框架,可以非常方便的操作操作的是JSON对象,

部分代码如下:

$