基于Python和Django框架物联网智能设备管理系统设计与实现
基于Python和Django框架物联网智能设备管理系统设计与实现
摘 要:针对目前日益增多的智能设备提出了兼容性好,稳定性高,易于管理的管理系统的设计方法。在服务器端使用Python和Django框架进行与设备的数据交互及设备管理网站的构架,以手表为例说明整个管理系统的设计。
关键词:Python;物联网;Django;智能设备
中图分类号:TP311 文献标志码:A
Abstract: In view of the increasing number of intelligent equipment, the design method of the management system with good compatibility, high stability and easy management is put forward. At the server side, we use Python and Django framework to interact with device and manage the website of device management. We take watch as an example to illustrate the design of the whole management system.
Keywords:Python;Internet of things;Django;intelligent equipment
1 编程语言与开发框架
1.1 Python介绍
Python是一种广泛使用的高级编程语言,其拥有可读性强、语法简洁和跨平台等特点。支持包括面向对象、命令式、函数式和过程式编程等编程范式。同时Python是社区驱动的开源编程语言。Python程序可读性高,开发周期短,可靠性强,适于网络通信需要。同时Python开发的程序具有很强的可移植性,可以在很多不同发行版本的Linux、Windows、Mac OS X等操作系?y间完美移植,使用Python可以很大幅度地增强服务器程序的适应性,使服务器程序能最大限度地在现有的服务器上运行而不需要更换服务器操作系统。
1.2 Django介绍
Django是一个由Python编写的开源Web应用框架,它采用模型(Model),视图(View)和模板(Template)即MVT开发模式,支持众多中间件并有丰富的内建应用。Django使原本复杂的网站后台开发和维护变得更简单,并在执行效率、安全性等方面有很大提升。
1.3 版本选择
基于以上,管理系统使用Python语言和Django框架开发。经过版本比较,最终使用了目前发行的最新稳定版本,即Python3.6.4与Django2.0.1。为了使最终的设备管理终端可以适用于各种平台并便于维护(如:Android、MAC OS X等移动平台或PC平台)管理系统采用B/S模式,即客户使用浏览器通过网页管理智能设备。
在开发时整个系统被划分为设备接口部分、数据库部分,数据处理与加密算法部分、管理网页部分。每个部分分别开发。
2 设备接口部分
2.1 设备接口部分简介
设备接口部分主要提供服务器与智能设备间的数据交互接口。智能设备通过网络访问服务器的设备接口来进行。在手表端手表需要实时上传使用者的运动及健康数据,并且服务器可能会不定时地向手表发送信息,通知手表使用者一些消息,手表管理者也会通过服务器向手表发送命令或者消息。
2.2 实施方案
基于以上所述数据交互模式,只能选用便于随时互相发送可靠数据的TCP长连接。TCP长连接占用服务器资源较大,但是数据发送灵活,可靠性高。在手表的应用中手表的管理者可以随时向手表发送身体状态查询的命令和通知信息,并且当手表使用者身体有恙时手表可以迅速地将身体状况信息发送到服务器,通知手表管理者,快速响应手表使用者的身体状况以便采取相应措施。
2.3 设备接口的安全性
对于设备接口可能遭受的TCP长连接洪水攻击,设备接口的TCP连接有相应的鉴权掉线机制。在每次商定密钥后手表与服务器之间会相互鉴权,手表中的客户与服务器鉴权密码是根据手表的序列号和当前固件自带的健全密钥算法得出。在服务器对手表鉴权前,服务器会发送针对该手表的服务器鉴权密码让手表对服务器鉴权,防止攻击者伪造服务器骗取手表鉴权密码。手表与服务器的鉴权通信是协商密钥并加密后进行的,所以通信中的密钥不会受到中间人攻击。在固件升级时服务器鉴权密码与手表鉴权密码算法均改变,既防止了由于手表固件太过陈旧导致的功能问题,又防止使用同一鉴权密码时间太长导致的安全隐患。
3 数据处