怎样在PaaS平台上搭建一个会自动关闭的会议室
首相得解释一下,什么叫做会自动关闭的会议室。我们的会议室是存在一个会议预定系统的,一般情况下,我们需要开会的时候,需要先抢占会议室。等待要开会的时候,去会议室里边开会,如果里边有别人,我们可以告诉他们,这个会议室被我们占下了,请你们去别的地方。其实就是验证一个会议室在某一个具体时间的归属问题。理想很美好,现实很骨感,这个时候很多人就会没有限制的预定会议室,比如说,一定定一天,到时候开不开会再说。不开会就在那放着,反正对我来说也没有什么后果。所以,我们需要一种手段来制约这种情况的发生。如果,有人定了会议室,但是会议室里边没有人的话就自动关闭这个会议,并且惩罚他就好了。
那么我们需要哪些东西?首先得知道会议室究竟有没有人。其实解决这个问题,有好几种方案,其中最简单的,可能要数人体探测设备了,其实就是一个红外设备,比如说,楼道里有些就是红外感应的(当然大部分还是声控的)开关,人一经过,自动亮灯,人走了就关上灯。其实我们就可以把这个设备的开关信息采集上来,就可以知道到底有没有人了。这个时候就需要一个开关量采集设备(https://detail.tmall.com/item.htm?spm=a230r.1.14.55.1a044e52R6v7eo&id=602866393680&ns=1&abbucket=4 对他们的客服陈工提安心,他会对你很热情的)把红外设备的线连接到这个设备上,然后把这个设备指向某一个某一个地址,这个设备就会跟对应的IP地址下的端口建立连接。然后获取这个设备的信息就可以了(当然说是这么说。具体的协议可能稍微有点麻烦)。
我们这边其实已经有一个会议室的应用了,我要做的是让这个会议室,能够做到没有人的时候(需要持续没有人15分钟)自动关闭会议室,并且惩罚相应的人。我搭建了一个会议智能设备的接入平台,设备链接到对应的接入平台之后,接入平台就会获得这个设备的信息,并且提供接口给PaaS的会议室,会议室在需要的时候,会调用设备接入信息的接口获得有没有上线、有没有人以及没人多久了的相关信息。然后判断要不要关掉这个会议室,并且惩罚这个人。
其实最核心的设计就这么简单,不过可能会面临几个问题。
1、 会不会误判?
我们在关闭会议室并且惩罚人的时候,只会有一种情况,那就是开关量采集设备在线,并且没有人超过15分钟的情况才会关闭会议室。那么究竟什么时候可能会出现,有人但是显示没有人呢?一、红外设备跟智能设备之间断线了。二、人数非常少,并且长时间不动(这个是红外设备的特性,当然可以换雷达设备,不过制约更大,还不如红外设备)。网络情况肯定不会误判,因为会存在心跳的时间,心跳如果长时间没有响应就认为失效了,也会认为数据无效而不会关闭。
2、什么时候是 会议关闭的合适的时机?
其实,我们这边设置的最短是15分钟。也就是说,会议开始的15分钟内完全没有必要关闭。如果你尝试关闭的时候,发现现在没有人,但是上次有人的时间是5分钟以前,那么10分钟之后就是一个合适的时机。这个计算公式其实有点乱,但是并不复杂,自己理一下就可以理出来一个合适的时机。
3、设备与服务之间使用的是什么协议?
其实这个跟设备是有关系的,我用的这个设备有三种好像。串口、UDP、TCP,不过我们用的是TCP毕竟我们的服务器是只有一个的,所以还是TCP相对靠谱一点。
4、数据安全嘛?
设备上现在不支持加密校验,最多加一个CRC的循环冗余校验,主要是防止数据篡改的,不过,安全性是相当的低,我们现在用的是白名单的方式,就是只给IP开放端口,让你链接不上来。
5、怎么提高安全性?
其实设备里边是一个小型的Linux,如果想自己做嵌入式的程序进去,自己联通自己的服务,想怎么搞就怎么搞了。
怎样在PaaS平台上搭建一个会自动关闭的会议室的更多相关文章
- 如何在以太坊上搭建一个Dapp?
原创: 前哨小兵甲 区块链前哨 昨天 策划|Tina作者|Mahesh Murthy俗话说,实践出真知!对于开发人员来说,最好的学习办法就是亲自动手做一个小项目.所以,接下来我们将会以一个投票程序为例 ...
- [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySql+PHP) Part II
接着上一节继续搭建我们的LNMP平台,接下来我们安装PHP相关的服务 sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5- ...
- [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySQL+PHP) Part IV
接下来我们去下载 WorePress 用最新的 3.7.1 下载地址是:http://cn.wordpress.org/wordpress-3.7.1-zh_CN.zip 我们先建立一个文件夹 /va ...
- 【网站开发】在新浪SAE上搭建一个博客
概述 在新浪SAE上搭建一个博客 1.访问新浪SAE站点 http://sae.sina.com.cn/ 2.注册新浪SAE 3.选择应用仓库 4.选择WordPress 5.安装WordPress ...
- 用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker
如果想在一台电脑上搭建一个多节点的Hadoop集群,传统的方式是使用多个虚拟机.但这种方式占用的资源比较多,一台笔记本能同时运行的虚拟机的数量是很有限的.这个时候我们可以使用Docker.Docker ...
- 利用socket编程在ESP32上搭建一个TCP客户端
通过之前http://www.cnblogs.com/noticeable/p/7636582.html中对socket的编程,已经可以知道如何通过socket编程搭建服务器和客户端了,现在,就在ES ...
- 使用python在SAE上搭建一个微信应用,使用有道翻译的api进行在线翻译
1. 准备,先在使用python一步一步搭建微信公众平台(一)中基本实现自动回复的功能后,接着在有道词典上申请一个key,http://fanyi.youdao.com/openapi?path=da ...
- 基于eclipse-java的平台上搭建安卓开发环境
首先感谢好人的分享!http://www.mamicode.com/info-detail-516839.html 系统:windows 7 若想直接安装eclipse—android的,请启动如下传 ...
- 如何在腾讯云上搭建一个人力资源Saas
版权声明:本文由ihr原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/180 来源:腾云阁 https://www.qclo ...
随机推荐
- Web前端助手-功能丰富的Chrome插件
整合优秀的前端实用工具.免费,可配置的强大工具集 示例 安装 github仓库: https://github.com/zxlie/FeHelper 官网地址:https://www.baidufe. ...
- 渗透测试-基于白名单执行payload--Odbcconf
复现亮神课程 基于白名单执行payload--Odbcconf 0x01 Odbcconf简介: ODBCCONF.exe是一个命令行工具,允许配置ODBC驱动程序和数据源. 微软官方文档:https ...
- snkrs web端分析,canvas中的fingerpint
snkrs web端分析,canvas中的fingerpint 代码如下 (()=>{ const canvas = document.createElement("canvas&qu ...
- HDU 6112 今夕何夕 (预处理 枚举)
中文题意都看的懂啦~ 思路很简单,就是通过前一天推出当天是星期几,直接枚举所有2017-9999年的每一天就好了.ㄟ( ▔, ▔ )ㄏ 代码: #include <cstdio> #def ...
- linux使用jq工具解析json
jq类似一个awk或grep一样的神器,可以方便地在命令行操作json 这里我使用海南万宁的天气接口做演示,地址:http://t.weather.sojson.com/api/weather/cit ...
- MS09-020 iis6.0提权
漏洞编号:MS09-020 披露日期: 2009/6/9 受影响的操作系统:Windows 2003 x64 sp1 sp2;XP; 测试系统:windows 2003 x64 上传 执行 iis ...
- maven 打包 spring boot 生成docker 镜像
1.所使用材料 ,spring boot 项目 基于maven ,maven 工具, docker工具 ps:为啥使用 docker 公司微服务需要启动太多,有两个优点吧! 1.方便管理,2.减少服务 ...
- 百万年薪python之路 -- 面试之葵花宝典
关于for面试题: for i in "alex": pass print(i) 结果: x 关于字符串的面试题: s = "给章超印倒一杯卡布奇洛" s[:: ...
- Spring框架 --- 深入
1.Spring IOC IOC技术: 控制反转,也叫(依赖注入) 控制反转:Bean的生命周期不受你控制,而是交给Spring容器管理. Spring框架如何利用IOC ?: 实现了控 ...
- calendar类-时间处理类
calendar类 calendar类是时间处理类 比如在scala中 //字符串转化日期格式 val df = new SimpleDateFormat("yyyy-MM-dd hh:mm ...