CMIC:物联网操作系统特征及发展问题与建议
【CMIC讯】目前,物联网操作系统产业呈现百花齐放的竞争态势,微软、谷歌等国际巨头以及华为、中兴、庆科等国内企业纷纷推出自己的产品。
形成这一局面的主要原因在于碎片化的设备和业务需求的多样性使得一种物联网操作系统很难满足整个物联网领域的所有需求。
短期内,物联网操作系统很难形成像智能手机领域Android和iOS两家独大的局面。
首先应把握住物联网操作系统的独有特征,解决好硬件适配、软硬分离、协同工作等问题。
在此基础上,通过构建良好的生态环境,开展产业合作,促进物联网操作系统产业的发展。
一、物联网操作系统的主要特征分析
(一)支持不同业务场景下的网络连接
网络连接是开展一切物联网业务的基础。
从通信协议的角度,物联网操作系统要具备支持TCP/IP等互联网协议栈、GSM/GPRS/LTE等无线通信网络制式、Zigbee/Z-wave/Bluetooth 等短距离通信协议、WLAN/Ethernet等桌面网络接口、NFC/RFID等近场通信技术的能力,并且随着技术和业务的发展实现升级。
例如,随着设备种类和数量的快速增加,操作系统需要支持IPv6协议栈;对于不同性能的终端,操作系统要具备灵活的伸缩性,能够通过补充或裁剪,支持更高或更低代码尺寸或更加丰富的IP协议族,如IPSec、FTP;操作系统要能实现不同协议之间数据报文格式的相互转换。
此外,从网络结构的角度,物联网操作系统要能支持中心放射型网络、无中心网络、固定局域网、动态区域网等网络形式,以及由此带来的数据发送策略差异,例如,集中式数据运算中心与终端组成的网络、终端之间的自组织网络、位置固定的市政基础设施组成的无线传感器网络、车辆与信号灯和指示牌动态建立的区域网络等。
(二)关注节能降耗、远程管理等基础功能
很多物联网设备受到使用场景的限制,对设备体积、电池容量、供电方式等往往有特定要求。
因此,物联网操作系统内核应在CPU相对空闲,或者不影响系统响应实时性的条件下适当降低运行频率。
同时,根据对周边设备运行状态的判断,将其适时切换到省电模式,并支持低功耗设备的心跳策略,对低频小数据量设备建立休眠和唤醒机制,尽可能节约电能消耗。
此外,一些行业领域的物联网设备往往是批量使用,且长期无人值守。
因此,远程管理也是物联网操作系统的基本功能之一。
操作系统通过向通信模组发送控制指令,上报设备运行状态和当前配置,实现远程升级、远程自动配置,并且在此过程中保存原有的数据信息。
在升级和配置失败的情况下,操作系统应能恢复设备原有运行状态,或自动进行降级处理。
当设备出现故障时,操作系统能够实时上报故障点、故障描述等信息,对内核状态查看、线程或任务的远程调用等提供支持。
远程升级和管理也是支持物联网操作系统大规模部署、降低使用成本的主要措施之一。
(三)需要构建实时、安全、可靠的运行环境
一些特定领域的物联网设备,例如,智能交通、工业设备、可穿戴设备,要求很多关键的计算和线程调度必须在有限的时间内完成,否则就失去了意义。
当操作系统收到外部中断或线程请求后,必须在很短时间内完成数据运算处理,做出中断响应,或者在线程所需要的资源准备就绪后立即进行调度。
这就要求系统具有较高的时钟频率,因此在选择时钟频率和进行内核调度策略设计时,平衡好系统的实时性和设备功耗是一个关键问题。
同时,物联网设备天然需要具备自动化程度高、人为干预少等特点,操作系统内核的长时间稳定可靠运行非常重要。
此外,安全性是物联网操作系统不可或缺的组成部分,特别是在智能电网、智慧能源、数字家庭等关键领域尤为突出。
由于物联网设备通常是组合使用,当一两台设备出现安全问题后,可能会对一个区域或整个系统造成影响。
因此,操作系统内核需要设置完善的异常处理、错误隔离、自动下线、风险预测、内存保护等机制,必要时可以转人工干预,降低安全事件对整个系统的影响,避免风险扩大。
二、发展物联网操作系统需要解决的主要问题
(一)适配碎片化的硬件设备类型
物联网硬件设备的形态非常多样,与场景需求的结合更加紧密。
例如,可穿戴设备的数据计算一般比较复杂,并且大多支持LTE或WiFi等无线网络连接,硬件资源相对充足;而一些市政基础设施设备由于数据规模相对较小,有的只需要实现基本的数据采集和上报,硬件资源就相对有限。
如果针对不同终端分别开发不同的操作系统,则研发企业很难进行代码和智力资源的共享,以及开发和维护经验的迁移。
随着终端类型的不断变化,所带来的后期版本维护和终端适配工作量也是巨大的。
面对这种碎片化的设备,物联网操作系统必须具有一定的可裁剪性,例如,操作系统的尺寸能够进行从10K级到100M级的伸缩,所需内存配置从几K到数十M的伸缩。
同时,物联网操作系统还应具备动态配置的功能,能够动态加载和卸载驱动程序,相应的API、开发工具也要有所调整,编译工具也需要对不同硬件上的操作系统裁剪版本提供良好的支持。
通过这些方式,来满足在不同场景下不同物联网设备的要求,有效降低碎片化的设备类型带来的企业研发成本和用户使用成本提升。
(二)支持硬件设备和软件功能的分离
实现硬件设备的互连是物联网的基础。
但硬件的功能是有限的,如果软件和硬件紧密捆绑,则整个系统的功能只能局限在硬件已有功能的有限叠加。
通过操作系统把硬件设备分离出来,进行有效的软件设计,才能使整个系统的功能大大扩充。
例如,交通信号灯如果只是能远程控制其红绿变化,其价值提升并不大,但如果基于操作系统上的应用程序,实现对车流量的大小、其它信号灯的状态、是否有紧急救援车辆通过等诸多因素的判断,采用一定的算法,实现自身状态的按需智能切换,则将为用户带来更多价值。
这里面的工作机制需要由平台开发者和应用开发者共同完成,前提是物联网操作系统将硬件设备(交通信号灯)定义为可提供服务的一个个能力单元,并以API的方式开放出来供软件开发者调用。
同时,能够
加载和动态运行包含有特定算法的应用程序,并支持相应的通信协议,接受和发送相应的控制指令。
通过这种软件创新,物联网业务的价值能够得到进一步体现,促进所在行业的信息化发展。
(三)实现多设备间的协同工作
物联网终端不同于智能手机,其单个设备的功能往往比较有限,更多是依靠设备之间的协同工作来满足用户需求。
例如,智能家居业务中,空调和电灯感知到人进入房间,于是自动打开,人坐下打开电视后,机顶盒根据主人的偏好开始推荐电视节目,此后热水器也自动启动,当主人洗完澡后,空调自动切换到睡眠模式。
这个例子体现了事件的发生触发了设备状态的改变,实现多设备协同工作的过程。
目前业界已有协议或标准可以支持协同工作。
例如,AllSeen联盟推出的AllJoyn标准是一个用于协作的开源软件框架,可以帮助开发者发现并联络附近的其它设备,收发或采集数据,调用相应的API能力,触发设备采取预定义动作,实现状态的改变。
其中的设备交互关联规则需要由物联网操作系统来定义,可以集成已有协议标准,也可基于服务场景进行自定义。
不同设备的操作系统需要支持相同的交互规则才能彼此配合,实现用户所需的特定功能。
三、物联网操作系统企业构建良好生态系统的几点建议
(一)加强与硬件企业合作,不断修炼企业内功
操作系统的底层依靠通信模组、传感器、MCU、SoC等硬件提供支撑,因此操作系统企业首先要加强与这些领域企业的合作。
通过合作,定义标准的硬件驱动程序接口,实现操作系统内核与硬件驱动程序的分离。
通过引入Java虚拟机,并定义基于C语言的标准API接口,实现应用程序与硬件的分离。
对于一些垂直行业终端,要不断加强将硬件功能转化为软件服务能力方面的代码积累。
同时,并不是所有的物联网终端都需要安装操作系统,操作系统企业通过这种合作,能够更加了解操作系统的主要需求来源,在硬件驱动、软硬分离、终端适配、协同工作等方面更加有的放矢。
(二)加强与应用开发者合作,扩大系统适用范围
作为整个物联网业务系统的末梢中枢环节,物联网操作系统对于集聚各类第三方应用、丰富物联网业务形态具有重要作用。
操作系统研发企业应不断加强与应用开发者的合作,合作对象可以是本地应用开发者,例如,简单的个人物品管理应用,也可以是平台级应用开发者,例如,石油管道状态监控和预警应用。
由于物联网终端受到体积、功耗、处理能力、传感器驱动程序接口、可靠性、稳定性等多方面限制,不同于智能手机,需要不断将解决方案结合特定场景进行优化。
在此过程中,操作系统和应用开发者是一个不断互动、共同进行各自算法和代码优化的过程,也是一个操作系统自我完善的过程。
(三)加强与平台运营企业合作,提升产品客户价值
终端通信管理通常是物联网平台的基础功能之一。
大量物联网终端长期处于无人值守状态,终端侧操作系统需要配合平台侧实现状态查询、配置管理、告警管理、传感器管理、故障诊断与远程恢复、端到端安全等功能。
因此,通过合作能够有效优化操作系统的网络通信策略,降低海量物联网终端接入造成的信令风暴、网络拥塞的几率,间接减少用户的系统运维成本。
同时,大量的通信管理数据也是平台侧进行系统运行状态大数据分析、预防风险的重要基础,对于提升整个物联网系统的可靠性具有重要意义。
来源:中国市场情报中心(CMIC)。