冯霄霞
在物联网时代,大家都在谈论物联网操作系统,我们要分析物联网的核心问题是什么,操作系统对于物联网,能做什么,不能做什么,它如何影响操作系统设计。物联网的核心问题中,大多数问题,操作系统会表示很无奈,它能做的事情很少,只能解决非常有限的问题。操作系统要服务于物联网应用的话,就要分析清楚物联网面临的问题,要集中精力解决核心问题,有的放矢,不要人云亦云地跟着感觉走。
物联网,首先要解决的是“连接、区别、识别、沟通、操作”这五大问题,只有这些问题解决了,才有机会谈论安全性、易用性、低成本等问题。
发挥物体网络的智慧
物联网是物体的社会,就是人类企图组建一个智慧的物体网络,来替人类服务,要发挥物体网络的智慧,其实物联网跟人类社会网络有很多共同点。人与人之间,也存在连接、区别、识别、沟通、互动(也就是物联网说的互操作)这些问题。人和人之间,首先要通过见面、电话、信函等方式建立连接,才有机会交流吧。不同的人,必须能够区别开来,世界上没有完全一样的两张脸,就提供了区别的基础;有了区别后,必须能沟通,得有相同的语言,配翻译也行。以上条件都具备了,才有互动(物联网中的互操作)的可能。以上过程,由于人具有高级智慧而变得简单,例如语言不通的人之间,还可以通过场景、手势、画画、眼神等来交流;对于只有非常有限的智慧的电子产品来说,会变得复杂和困难。
物联网的连接问题
物联网中,连接问题是最简单最基本的问题,也是当今操作系统支持最为充分的,业内很多人都在谈论的所谓协议,多数指的是通信协议。能用技术解决的问题,都不是问题。连接就是一个能用技术解决的问题,物联网面临的问题,大多数都不是技术能解决的问题,设计操作系统,要充分认识物联网面临的问题的基础上,把现阶段能解决的问题做到极致,尚不具备条件的,逐步地提出解决方案,或者为解决这些问题提供一些必要的支持。而对于物联网的接入协议来说,接入公网的技术已经成型,就是TCPIP,它是个公共协议,大家都能用;而局域无线网络,分两大类,一类是像智能家居一样,需要接入不同厂家的设备的,这种网络,必须使用统一的网络协议,一致性高的网络协议;另一类是不需要接入不同厂家设备的无线局域网。
连接也包含组网、维持网络连接、设备发现的问题,维持连接在物联网中是一个很重要的问题,为什么呢?因为物联网中有许多低功耗设备,这些设备绝大部分时间是休眠的,又要省电,又要不丢失连接,需要有点智慧。维持连接一般是用心跳的方式,对低功耗设备,合理的心跳间隔、快速唤醒、快速连接,连接完后快速返回休眠状态,就非常重要。
最基本的识别问题
谈到设备区别,就开始出现问题了,网络中的两个设备,你必须能够区别出他们是不同的个体,就像人的身份证号一样,每个设备也必须有一个身份证号,或者在你所在的区域网中有一个唯一的号码也行。
说到设备识别,就目前而言,并没有任何一个物联网方案能完美解决设备识别的问题。一个最简单的智能交通系统,要实现这样的功能,哪个方向有车来,就开哪个方向的绿灯,都有车来,就根据流量智能调整红绿灯周期。问题就来了,你如何判断路上过来的是一辆车,还是一条狗!东西向有车来,南北向跑来一只狗,绿灯给谁放行?
识别车和狗,还是最基本的识别问题,只是识别物种,再进一步就是识别个体。识别有两个层次,一是人和物之间的互相识别,当然主要是人识别物,另一个是物和物之间的识别。由于人的智慧,人会根据许多的参考条件来进行模糊识别,人工智能也可以这样做,但人工智能毕竟无法跟人比,只能在有限条件下,做简单的辅助识别。当然,对于具体应用而言,它不需要识别全地球的智能设备,能够识别跟具体应用相关的设备就行了,可以自己定义识别规则,这纯粹是应用自己的事,操作系统只能做些辅助线的工作,例如把物体的身份证号和自描述语句传递给应用程序,仅此而已。
解决设备识别和设备间“沟通”问题
最大的问题是沟通,沟通也分为人和物沟通与物和物之间沟通,就是互相明白对方在说什么。让“物体”说同样的话,互相听懂,这是最困难也最缺乏标准,同时也是不可能有标准的。如果是物与人之间沟通,就好办多了。
如果能解决设备识别和设备间“沟通”问题,那么智能设备间的互操作就水到渠成了,由于在“识别”和“沟通”方面,无法形成一个开放的、广泛适用的标准,许多物联网系统就另辟蹊径,尽可能绕过标准问题。同时提供智能硬件开发平台以及通用操作系统的中间件,或者开发一个跨界系统,使物联网中不同设备上使用相同的开发工具。人与物之间的操作问题,可以通过远程终端的方案,完美地解决。传统的非智能设备,人和物直接的操作,是通过文字、图形、按键、触屏这些介质来完成的,在物联网世界里,无非是操作介质和执行操作的智能硬件之间,隔了个空间距离而已。手持的操作界面,就是一个显示和操作终端而已,所有操作,对于设备来说,就像在设备上直接操作一样,这样才能规避没有标准的事实。
先谈谈不靠谱的方案,现在有些智能硬件厂家,开发专门的APP让用户操作智能硬件,这是不合适的。两种靠谱的方案,是HTML和远程桌面。使用远程桌面后,你的手机只需要安装一个智能设备APP,点开该APP后,你家里的所有智能设备都会被罗列在里面。远程桌面的缺点是,动画显示很困难,尤其是大面积的动画,有些消费品是有这个需求的,这种时候,就要使用HTML了。除了动画外,远程界面的优势还是很明显的。首先是兼容性问题,浏览器的标准化程度其实不高。其次是一致性问题,有许多智能硬件,本机是有显示界面的,比如冰箱,在家里,你可能习惯于直接在冰箱上操作,用冰箱本身的界面操控设备,在外面,你就用手机操作,界面跟冰箱上的界面完全一样,就像站在冰箱前操作一样,无须学习两套界面。如果冰箱上和手机上的界面不一样的话,你会抓狂的,远程桌面天生就是完全一样的。而使用HTML的话,则要自己维护两份界面的一致性,不要小看维护这个一致性问题,搞过硬件的人就知道,维护原理图和bom表的一致性,是一个致命的工作;维护过两个以上并行软件版本的人也应该清楚,确保两个版本应该相同的部分是一致的,是非常困难的。
操作系统为物联网解决了什么问题
连接:操作系统通过集成常见的网络协议栈,例如TCP/IP、ZigBee、蓝牙、WiFi驱动等,算是为解决连接问题作出了贡献。
智能硬件间的区别和识别:这两个问题,似乎真的跟操作系统没啥关系,基本上只能为同一厂家产品之间的“区别和识别”提供部分帮助。
沟通和互操作:物和物之间的沟通和互操作,操作系统基本上看热闹而已,同样只能对使用同一个厂商提供的开发工具开发的特定应用提供一些帮助,其互操作,基本仅限于使用它们的开发工具开发的智能硬件,且主要是物和人之间;人和物之间的互操作,支持远程桌面和webserver的操作系统能提供比较完善的帮助。