很多程序员可能经常会自嘲自己是每天CRUD的码农,特别是做业务类、管理类系统的程序员,其实CRUD就是web应用的交互方式,当你需要什么数据的时候,你用鼠标点击搜索按钮,然后系统返回和展示数据库里面符合条件的数据,当你想得到数据库中最新的数据,你就刷新一下网页来实现,如果想保存一些数据,就利用表单把数据插入到数据库中去。
但是随着物联网技术的发展,越来越多的物联网应用需求应运而生,这时候大家会发现CRUD的模式已经无法满足物联网应用的需求,主要体现在这么几点:
- 物联网场景中的数据是异构和持续自动产生的,是海量的实时数据、时序数据和时空数据,这种快速增长的数据直接挑战了关系型数据库的性能瓶颈。
- 页面的数据展现方式,你无法一直采用刷新或轮询的方式展示最新的数据,当一个物联网应用有几百上千个设备的时候,你也无法用传统的数据表格等方式展现这么多的数据。
- 物联网场景需要系统有实时响应的能力,当一个故障或者事件发生的时候,需要系统来主动告诉人,而不是由人来查询才能发现故障或者事件。以往的轮询、批处理作业等方式都不再适用物联网场景。
这时候,几种满足物联网需求的技术逐渐发展壮大起来,比如web实时交互技术、三维可视化技术等。
Web实时交互技术:
1. WebSocket : WebSocket 是一种简单的报文协议,着重解决浏览器和服务端不能进行双向通信的问题。本质上有点像是 TCP 协议之上的 UDP 协议。WebSocket 仅仅定义了会话的发起方式和报文格式及类型。如何使用报文通信全由应用程序(各浏览器)控制。
- MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。是一种轻量、简单、开放和易于实现的实时通讯协议
Web三维可视化技术:
web三维可视化技术主要基于WebGL技术实现,WebGL是一套3D绘图标准,该标准将JavaScript 和OpenGL ES结合在一起,通过添加OpenGL ES的JavaScript绑定,这样就能使用原生浏览器语言JavaScript本身实现web-3D交互。同时HTML5中的canvas标签可以作为WebGL的一个特殊上下文实现在现代浏览器中,因此浏览器中的DOM接口也和WebGL整合在一起。基于上述两点,WebGL可以运行在不同硬件之上的浏览器中。在保留web应用的便利性的同时,添加了酷炫的3D功能
基于这些技术,就赋予了web应用的主动数据感知能力,与后端的实时交互能力,以及基于三维场景化的可见即可得的可视化能力。从而实现了不用鼠标和刷新就能实时获取数据,也实现了基于触控或者实时感知的人机交互方式。
智能制造数字化实训平台.mp4(59.8 MB)