怎样在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 ...
随机推荐
- CentOS 7.7版本中NAT上网问题
一.NAT(地址转换模式)概念 如果你的网络ip资源紧缺,但是你又希望你的虚拟机能够联网,这时候NAT模式是最好的选择.NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网. 二.具体 ...
- C++ set 用法略解
先看一段代码. #include<iostream> #include<set> #include<cstdio> #include<cstdlib> ...
- UVA10228 A Star not a Tree?
[返回模拟退火略解] 题目描述 一平面上有 nnn 个点 {Ai}\{A_i\}{Ai},求一个点 XXX 使得σ=∑i=1ndis(Ai,X)\sigma=\sum_{i=1}^{n}{dis(A ...
- 单调队列与DP
算是一个总结吧! 先来一个模板: TYVJ 1305 最大子序和 题目描述 输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个序列的和最大. 例如 1,-3,5,1,-2,3 当m ...
- Bzoj 4806 炮 (dp)
题目描述 众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技.炮吃子时必须隔一个棋子跳吃,即俗称"炮打隔子". 炮跟炮显然不能在一起打起来,于是rly一天借来了许多许多的炮在棋盘 ...
- linux下python相关命令
若本机已安装python2,尽量不要动现有的python2,额外安装python3即可. 1.安装python3.6(centos下安装python3自带pip和setuptools) python3 ...
- 图论-最短路径<Dijkstra,Floyd>
昨天: 图论-概念与记录图的方法 以上是昨天的Blog,有需要者请先阅读完以上再阅读今天的Blog. 可能今天的有点乱,好好理理,认真看完相信你会懂得 分割线 第二天 引子:昨天我们简单讲了讲图的概念 ...
- Spring Cloud Feign初接触
最近想使用下Feign,然后简单了解了一下,简单的搭了个demo. 首先简单介绍一下Feign,它是一个Http请求客户端,类似HttpClient,具体里面实现还没去看,知道它是一个请求客户端就行, ...
- Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)
上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...
- 很详细很详细的gitLab使用具体流程
gitLab详细流程 先说一下整个流程,就是先建立一个项目-----拆分里程碑-----拆分issue----项目开发-----项目总结---关闭里程碑 下面是每个步骤具体的步骤,这个比较适合那种纯新 ...