构筑基于物联网操做系统的物联网生态环境 (转)

最近跟物联网行业和移动互联网行业的一些资深从业人员作了深刻交流,就物联网操做系统的概念和必要性、定位等进行了充分深刻的沟通。首先说明的是,物联网操做系统的概念被普遍认同。同时,对物联网操做系统在整个物联网领域的功能和地位,又有了更进一步的认识。下面简单总结,供业界的朋友们参考评论。编程

物联网操做系统的最基本功能,与Android操做系统在移动互联网领域的地位和做用相似。先看一下Android,其最大的贡献在于,实现了智能终端硬件和软件的分离。任何应用程序开发者,基本不用考虑智能终端的物理硬件配置(CPU型号、内存、各类外设等),只需根据Android提供的编程接口编写应用程序,就能够运行在全部基于Android的智能终端上。硬件的功能是有限的,若是软件和硬件紧密捆绑不分离,则整个系统的功能也是有限的。可是一旦把硬件功能剥离出来,则经过软件的变更,可使得整个系统的功能大大扩充。举例来讲,带闪光灯的拍照手机,若是硬件和软件捆绑,则其功能就仅仅局限于一台照相机和一部手机。可是软硬件分离后,就能够变成手电筒、信号灯等原来没法实现的功能。对于物联网来讲,要实现相似移动互联网同样的良性发展,也须要达到软硬件分离的效果。物联网终端的硬件功能颇有限,好比一个传统的车载OBD模块,仅仅提供定位、GPRS、车辆信息读取等功能。可是经过额外的应用软件,则能够把OBD模块变成一个防盗器(事先划定位置范围,超出后报警),甚至其它功能设备。保险公司也能够定制开发本身的程序,安装到OBD上,获取必要的数据。这种经过软件创新,把已知(硬件功能)变成未知(软件功能)的能力,才是激发人类兴趣的源泉,也是为行业带来活力的关键。后端

除此以外,物联网还须要达到另一种分离:硬件驱动程序与操做系统内核的分离。考虑这样一种场景:电冰箱的内置摄像头坏了,从新更换了一个新型号、功能更强大的摄像头。这时候运行在冰箱内的操做系统,必须可以根据新摄像头的硬件特征(好比设备ID等),自动从网上下载对应的驱动程序,而后安装。这个过程对运行在操做系统上的应用程序来讲是透明的。Android貌似是没法作到硬件驱动程序与操做系统内核分离的,一旦增长一个新的硬件,必须编写对应的驱动程序,而后从新编译Android内核。安全

下图示意了基于这两种分离思想(应用软件与硬件分离、设备驱动与操做系统内核分离),构筑的一个物联网生态体系:服务器

 

图中的实线表示永久逻辑链接,虚线表示临时的逻辑交互。大概过程是这样的:微信

一、              物联网终端(大到汽车、冰箱,小到门锁、追踪卡、手环等)上运行物联网操做系统,以及基于物联网操做系统的应用(APP)。APP从“M2M APP Store”上下载;网络

二、              物联网终端上运行的应用程序,由用户经过智能手机进行控制。智能手机经过本地通道(好比蓝牙、WiFi、Zigbee等)链接到物联网终端,控制终端上的APP的安装和卸载,以及M2M终端的相关配置(安全信息等);架构

三、              一旦物联网终端上运行了一个APP,若是该APP是基于client-server模式(好比智能手机上的微信),则物联网终端须要跟APP的“应用程序后台”进行交互,实现业务逻辑;框架

四、              物联网终端跟“终端管理后台”创建持久的通讯链接,用于实时更新物联网操做系统内核版本、实时更新物联网终端的硬件驱动程序等。仍是上面讲的例子,一台冰箱更换了内置摄像头,这时候物联网终端须要链接到终端管理后台,去下载对应的驱动程序。通常状况下,终端管理后台由物联网终端制造厂商创建并维护,好比针对家电领域,是由家电厂商建设的,针对汽车领域,则是由车厂建设;分布式

五、              物联网终端上运行的APP,由第三方开发者或者ICP/ISP开发,并上载到M2M APP Store,供用户按照需求下载;工具

六、              物联网终端之间可以经过本地通讯通道(蓝牙、WiFi、Zigbee等)进行通讯,这种通讯无需借助后台。好比,汽车到达路口后,能够跟信号灯通讯,向信号灯注册。这样信号灯就可以掌握各个方向的排队汽车数量,而后根据数量来决定信号的变换,达到优化交通的目的。物联网终端之间的直接通讯(端端通讯)是物联网关键能力之一,也是物联网区别于移动互联网的关键地方之一。

   

为加深对这个生态模型的理解,举一个餐饮行业的例子。先说一下需求吧,我常常去家门口的一家餐馆吃饭,并且每次去,点的餐食基本都同样。但如今的问题是,每次去都要排队,点餐,交钱,而后拿餐牌,找座位,等待。显然这是一个重复乏味的过程,若是可以经过自动化的物联网应用,使得这个过程简化或者自动化,那就很理想了。

咱们开发一种通用的智能手环,智能手环上运行物联网操做系统。手环除了具有通用的闹钟提醒、身体生物指标测量和报告等功能外,还具有RFID功能,该功能的打开与否,由用户控制,好比甩一下手环、按一个按钮等。在餐馆门口,安装一套ID识别设备,一旦一个带手环的人进入餐馆,并打开了RFID功能,就当即被检测到。检测设备把进入者的ID上报给后端服务器,后端服务器进一步判断这我的是否已经有消费记录。若是没有,OK,遵循一般的点餐、交钱、等待等流程,可是这个过程当中,后台系统会创建针对这我的的档案,并记录其点餐列表、等待时间、座位号等信息。

若是这我的第二次来就餐,那好了,运行在手环上的APP(由餐馆开发并上载到M2M APP Store,由用户安装到手环上)会当即震动提醒消费者,并经过自带的小屏幕,自动把上一次点的餐食列表等信息呈现给消费者,让消费者确认是否点一样的餐食。若是确认点一样的餐食,则消费者只须要找个空闲的位置坐下,而后等待便可,手环上的APP会自动检测出座位号,并联系餐馆的后台服务器下订单。吃完后,经过手环确认一下,可自动完成支付,甚至能够对本次消费满意度点评。显然,排队、点餐、交钱等过程彻底省略了,大大提高了就餐方便程度。

    要实现这个过程,最关键的一点就是,手环上须要运行一个餐馆特定的APP,这个APP可以跟RFID联动,并跟餐馆后台交互,完成就餐过程的自动化。这样的APP可能有多个,由于你可能要去不少餐馆就餐。若是没有物联网操做系统的支持,这是没法作到的。或者说也能够作到,可是你的手腕上需佩戴不少手环,一个餐馆一个。这样的话,你的职业也变了,变成餐馆的活体广告牌了。

这个餐饮行业的应用,几乎把上面生态模型中的每一个模块都涉及到了:手环与餐馆检测系统的交互,属于端端通讯,手环上运行的APP,须要从M2M APP Store下载。具体下载哪些餐馆的APP,由消费者经过智能手机控制。手环上的任何一个APP,都须要跟本身的后台进行通讯。假设手环上的某个配件(好比某个按钮、甚至RFID等)坏了,须要更换一个新的,这时候手环须要跟终端管理后台进行通讯,下载新配件的驱动程序。

上述过程的最核心需求,就是物联网操做系统支持的两大分离特性:应用软件和硬件分离,操做系统内核和硬件设备驱动程序的分离。

在物联网领域,不少状况下,硬件终端的功能比手环简单得多,无需或者没法运行第三方开发的APP。这种场景下,上述架构也能够很好的实现人与物的交互。举例来讲,为了实现对环境的实时检测,将来可能会开发不少依靠太阳能供电、无显示屏等外设的“环境监测器”,以公共服务的形式,安装到任何能够安装的地方。用户经过智能手机,能够随时读取这些小玩意儿上的检测数据。这时候,若是是第一次读取某种型号监测器上的数据,则首先用手机上的M2M APP Store客户端软件,扫一下监测器上的二维码,客户端会自动根据二维码中记录的信息,到M2M APP Store上下载一个应用程序。这个应用程序调用蓝牙、Zigbee等无线服务,从监测器上获取数据,而后显示出来。

基于这样的一个物联网生态环境,能够改变不少既有的商业模式,达到更高效率的总体效果。好比下面这张图,说明了这个效果:

若是没有物联网操做系统,那么应用程序提供商(腾讯/阿里等)就须要跟硬件设备提供商进行紧密捆绑,造成联盟。这一个一个的联盟,有点“龙虎结姻”的感受,强强联合,但又不是一类生物。对消费者来讲,也很是麻烦。好比你买了跟阿里结成联盟的家电,那么就必须购买阿里的智能家居服务,即便腾讯作得更好,你也没法更换。可是若是有了物联网操做系统,那么就会打破这种紧密耦合的关系。硬件厂商只须要经过物联网操做系统,把硬件的能力暴露出来便可。互联网厂商只须要开发对应的应用程序,放到M2M APP Store便可。具体怎么组合,由最终用户决定。可能的一种场景是,阿里的家电控制、节能等功能作得很好,而腾讯的用户感知、大数据分析作得更好,用户会在家电上同时安装两个APP,分别获取最好的体验。显然,这在没有物联网操做系统的时候是没法作到的。

还有一个好处,就是让更专业的人,去作更专业的事。互联网公司聚焦作用户体验,硬件厂商聚焦作硬件,God god and Satan unto Satan。

基于这样一个生态环境架构,物联网操做系统的架构大体以下:

经过定义标准的硬件驱动程序接口,实现操做系统内核与硬件驱动程序的分离。经过引入Java虚拟机,并定义基于C语言的标准API接口,实现应用程序与硬件的分离。这与Android的实现思路有雷同的地方,可是也有不一样的地方:

一、               物联网操做系统的总体映像尺寸,必须是可以高度伸缩的,以适应硬件资源受限的应用场景。好比既可以适应手环等硬件资源相对丰富的应用场景,也可以适应环境监测器等不是很是智能的应用。具体来讲,操做系统的尺寸,应该可以从10几K甚至更小,到数十M的伸缩量级;

二、               除提供Java接口外,物联网操做系统还应该提供标准的C语言接口,以应对高效率、高实时性的应用。好比,物联网终端的生产厂商可使用C接口,开发针对该硬件的高效应用,第三方企业则可使用Java接口,开发可普遍移植到同类设备上的应用;

三、               物联网操做系统的驱动程序框架,应该设计的足够灵活和足够兼容性,并可以动态加载和卸载设备驱动程序;

四、               物联网操做系统的版本分支或者变种数量,会很是大。针对每隔行业,甚至每种硬件(好比汽车、冰箱等),都会有一个对应的版本,这须要编译开发工具进行良好的支持。

除此以外,物联网操做系统还有不少其它不一样于通常智能操做系统的不一样之处,在此不作详细描述。

最后,仍是为做者正在主导开发的物联网操做系统Hello China作一番招聘广告。首先说明的是,为了适应不一样的文化背景和国际化需求,Hello China这个名字后续要修改成HelloX,其中的X能够表明任何东西。这样就貌似有点打招呼的意思,好比“Hello,car”,“Hello,ring”…,经过这个操做系统,你可以跟任何东西对话,符合物联网的含义。英文的口号是“HelloX,through which you can talk to everything.”。

Hello China操做系统的大部分功能都已实现,后续将向本文描述的物联网生态环境方向作进一步开发。这须要大量的相关人才的参与,不只仅是操做系统内核的开发人员,更多的是生态环境相关模块的开发人员:

一、               Java开发人员,聚焦Java虚拟机的移植和定制、优化,以及相关Java类库和程序的开发;

二、               M2M APP Store开发人员,基于流行的分布式、大数据等架构,这部分也是整个物联网生态环境的核心;

三、               编译环境的开发和定制,当前基于Eclipse开放环境进行定制;

四、               硬件驱动程序开发人员,基于HelloX操做系统的驱动程序框架,开发各种底层硬件的驱动程序;

五、               操做系统内核优化和开发。

咱们已经设计了合理的利益分配制度,相信任何参与的人,只要有实实在在的付出,总会获得意料以外的回报。并且您的有效付出,会当即获得反馈和确认。

同时,物联网是被普遍看好的将来IT发展方向,蕴藏着无数的机会。同时物联网也必定是以软件为主导的行业,这与移动互联网同样,硬件和网络历来都是配角。所以,经过参与物联网操做系统的开发,对准物联网生态环境,直接切入物联网领域的核心,对我的来讲,也是很是可贵的发展机会。

所以,物联网操做系统,或者说物联网软件平台生态圈的开发,期待您的参与。欢迎联系:

QQ/微信:89007638

Email:garryxin@gmail.com

QQ群:38467832

转载请注明做者和出处。

相关文章
相关标签/搜索