构筑基于物联网操作系统的物联网生态环境

构筑基于物联网操作系统的物联网生态环境

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

 

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

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

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

 

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

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

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

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

4、 物联网终端跟“终端管理后台”建立持久的通信连接,用于实时更新物联网操作系统内核版本、实时更新物联网终端的硬件驱动程序等。还是上面讲的例子,一台冰箱更换了内置摄像头,这时候物联网终端需要连接到终端管理后台,去下载对应的驱动程序。一般情况下,终端管理后台由物联网终端制造厂商建立并维护,比如针对家电领域,是由家电厂商建设的,针对汽车领域,则是由车厂建设;

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

6、 物联网终端之间能够通过本地通信通道(蓝牙、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的实现思路有雷同的地方,但是也有不同的地方:

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

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

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

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

除此之外,物联网操作系统还有很多其它不同于一般智能操作系统的不同之处,在此不做详细描述。

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

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

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

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

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

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

5、 操作系统内核优化和开发。

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

同时,物联网是被广泛看好的未来IT发展方向,蕴藏着无数的机会。同时物联网也一定是以软件为主导的行业,这与移动互联网一样,硬件和网络从来都是配角。因此,通过参与物联网操作系统的开发,对准物联网生态环境,直接切入物联网领域的核心,对个人来说,也是非常难得的发展机会。

因此,物联网操作系统,或者说物联网软件平台生态圈的开发,期待您的参与。

【编辑推荐】

最轻量级的开源物联网操作系统震撼面世

物联网操作系统的架构和基本功能

对物联网操作系统特征和定位的思考

 

第二篇:杜圣东:基于Android的物联网智能终端操作系统核心技术研究

基于Android的物联网智能终端操作系统核心技术研究

杜圣东

20xx年12月

一、引言

Windows操作系统统领PC时代近30年,Linux操作系统更是支撑起了高速稳定的互联网时代。从现在已经是步入发展快车道的移动互联网走到即将到来的全面物联网(Internet of Things)时代,是否拥有自主知识产权的智能终端操作系统,对我国物联网战略及信息安全来讲,十分关键。

如果用人体来比做物联网,那我们的眼睛、鼻子、耳朵、皮肤就是信息传感设备;触觉神经元链接系统就是高速网络;大脑自然就是后端海量数据中心里负责做任务处理、分析、反馈的服务器集群。下面的物联网定义是当前大部分学者普遍认同的观点:通过射频识别(RFID)、红外感应器、全球定位系统(GPS)、激光扫描器等信息传感和采集设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。

自从20xx年初谷歌对Android这款轻量级的移动操作系统进行开源以来,吸引了摩托罗拉、高通、LG、三星、华为、HTC、思科、

中国移动等制造商和运营商加盟研发和推广。谷歌把移动智能手机终端作为切入点,来引领其整合全球信息的战略,也是基于对下一代信息技术革命大趋势的把握。至今,搭载android系统的终端每天出货量超80万部。从20xx年一款实现了可测量血压并实时传输个人记录到医院中心系统的Android终端面世开始,接下来还出现了可以作为车载导航的Android终端,可以扫描二维码、控制微波炉冰箱、可以控制机顶盒的Android终端。从中可以看出,Android不只是款手机操作系统,谷歌大力推广Android系统也不只是收广告费那么简单,而是其一直在引领和推动物联网的实实在在的应用和发展。如果说我们还在为物联网是什么、该怎么制定标准而争吵。那很可能在下一个信息10年,我国的信息战略要经受的不只是被微软追讨版权这么简单。因为物联网时代不仅仅是信息技术的革命:PC和互联网时代,机器是机器,人是人,通过灾备、防病毒等,对我们的影响谈不上深远;而在人和生产环境、生活环境、甚至是军事设施等物理环境进行大融合或局部融合(类似于公有云、私有云概念)的物联网时代,终端操作系统受制于人,是难以想象的

这也是为什么要开展物联网终端操作系统研究,而且具有必要性和紧迫性。以物联网最早的应用领域物流工程为例。嵌入标签的货物从识别、装箱、发货、运输到签收等每一个环节都可以在互联网上和物流中心系统进行查询和监控。但物流行业应用现状是,RFID扫读器、中心系统设备、GPS定位系统、GIS导航系统、仓储管理系统等

这一系列的设备和软件并没有完成真正意义上的物连和互通,各环节之间或孤立或联系不紧密。后端物流行业大数据中心建立起来并不难,难点在于还没有很好的办法对前端各类设备和应用软件进行整合,过于分散的模式使得资源冗余浪费、成本太高且物流过程难以一体化管控。这也是本文提出基于Android的工业级物联网智能终端操作系统,来作为物联网前端中继节点这种设计思路的目的所在。

二、针对问题提出初步研究框架及思路

现有物联网定义中“按约定的协议,把任何物品与互联网连接起来”这种说法很宽泛,没有阐明一种具体可行的应用模式和解决方案。本文提出一种更深入的广义物联网概念,那就是代表我们眼睛、鼻子耳朵的信息传感设备把采集到的信息直接推送到高速网络之前,需要经过一定的集中过滤处理或轻量级的实时数据分析和反馈处理。这个环节是通过一个智能终端操作系统(好比物联网小脑)来完成的。本文中的物联网终端不是传统物联网范畴中定义的各类分散的、自成一体的终端设备(比如红外感应终端、RFID扫读器终端等),而是对各类好比神经末梢的终端感应采集点进行整合,集中互联、管控的具有操作系统特性的一体化终端系统,主要具有如下核心功能:

(1)根据标准协议与周围感应设备和采集点进行集中的指令和数据交互

(2)根据标准接口和协议通过互联网或移动通信网与后端数据中心互联互通,来完成任务提交、分发、调度和物体识别、管控等功

能,同时满足部分轻量级任务现场实时处理的功能需求。

通过这种物联网后端和终端设计架构,能有效利用带宽,提高响应效率,优化物联网整体规划、设计和组织管理。当然这个物联网终端操作系统相对于进行海量数据处理和应用服务分析的后端系统来讲,应该是轻量级的,并具有移动便携性(比如物流过程中的随车终端,集GPS定位、GIS导航、装卸货品扫描、与物流中心主系统对接进行任务提交、数据共享、移动办公等功能的一体化物流物联网终端设备)和快速定制性(比如在家庭应用中,集实时病人血压检测,人工心脏监控,医院主系统对接进行病情记录等功能的一体化远程医疗物联网终端设备,可通过硬件和软件模块化定制装卸的方式,快速转变为能够进行物品扫描和GPS定位的物流物联网终端设备)特点。

要支持上述多个典型物联网行业应用的终端操作系统,其架构应该是高度抽象化和通用的。区别于传统的PC操作系统和专业性很强的嵌入式系统,本文提出的物联网智能终端操作系统具有如下特点:

(1)轻量级特点:

传统PC操作系统架构复杂,需要较高性能的硬件配置和系统内核处理能力。

传统嵌入式系统专业应用领域过于细分,硬件和软件具有行业定制高度相关等特点,其扩展性、通用性有限。

物联网智能终端操作系统只是起到一个中继节点的功能,复杂的

数据处理和分析在物联网后端进行,相比传统的PC系统更轻量级;但这个物联网中继节点的功能相比传统嵌入式系统更强大、更通用,行业相关性程度小以便于扩展。

(2)移动便携性特点:

传统PC操作系统一般作为家用或服务器配置,通过有线或局域无线上网。

传统嵌入式系统一般也是内嵌或固定放置,对某一细分的专业领域提供支持

物联网智能终端操作系统应该是随处可配置的,家居、车载、交通运输工具等随处可挂载,这个中继点对局部范围“物”的扫描、识别、采集和数据初步处理之后,再通过移动通信网(或传统互联网、VPN)与物联网后端大数据中心进行交互。

(3)通用性特点:

传统PC应用范围有限,或只限于通常的家用和办公功能;嵌入式系统或只限于灯光控制、导弹控制等精细专业的应用领域。

而物联网智能终端操作系统架构需进行高度抽象化;通过定义好的标准协议与传感信息设备进行数据和指令互通,并作为物联网中继节点与后端数据中心交互,通过这种标准化方式可扩展到任何行业进行应用;

(4)快速定制性特点:

通过内置硬件模块化可插拔,软件模块化可装卸的方式,可以让一款医疗物联终端设备很快变成一款能扫描货品的物流物联终端设

备,而做到这一切就像在windows系统上安装网卡设备、驱动和拨号软件后立刻上网这样便捷。

通过上述的分析,工业级物联网智能终端操作系统在整个物联网规划、设计、布局和组织管理中的地位十分关键。谷歌的策略更是在加速这个行业的发展,可喜的是国内如华为、联想、中兴这些大厂都已经着手对谷歌Android操作系统进行深入的研究,而将来这个移动操作系统会不断地演化和扩展,引领真正的物联网时代。

三、核心研究内容

要开展基于Android的工业级物联网智能终端操作系统研究,需要对如下关键问题进行分析和提出解决方案:

(1)物联网智能中间件研究:针对上文中的通用性和轻量级特性要求,智能终端操作系统可以理解为整个物联网架构前端中的轻量级中间件。在不同的空间和应用环境,集中联系和管控无所不在的信息传感、采集设备,结合可识别的"物"的特点,对各种感知和采集到的数据进行现场实时轻量级的分析,或通过互联网、移动通信网提交到物联网后端数据中心进行处理。如何让Android操作系统具有上述特性,拥有与物联网传感设备进行标准化的数据和指令交互功能、与后端数据中心进行互联互通的功能,需要对Android的系统结构和协议栈进行深入研究和改进。

(2)DavikVM虚拟机研究和优化:Davik Virtual Machine虚拟机是整个Android操作系统的核心,也是性能优化的关键。系统核心函数库中的组件,大部分已经是业界标准(如SSL)或约定成俗的标准(如WebKit、SQLite);软件应用层则由广大软件商进行扩展,应用层框架及核心组件库会持续通过新开发应用的加入而增长、强化,这些都不是研究的重点。而DalvikVM虚拟机则是一个专为嵌入式设备打造的JAVA虚拟机,它不同于传统的JAVA虚拟机(JVM),DalvikVM拥有自己的高度优化的code-byte格式,可以初步保证在嵌入式设备上高效运行。但要达到类似物联网应用的工业标准,如何进一步提高其性能和稳定性,是需要深入研究的课题。

(3)软硬件整合研究:Android的底层驱动在传统的诸多 Linux嵌入式应用上早有实现。但要满足本文所阐述的物联网终端系统便携性和通用性特点,需要对硬件层、驱动层、操作系统内核层进行进一步的抽象和提炼,并对现有的软硬件整合流程进行改造(应用层不能直接访问硬件、通过JNI与底层C/C++库交互、多硬件厂商驱动程序非开源情况下怎么维护驱动库,类似这些问题可能需要改进),使其系统结构达到满足硬件及软件模块化、构件化、可插拔的使用要求。

(4)行业应用示范及推广:

物联网作为继PC、互联网之后的世界信息产业第三次浪潮,关

注和炒作不可谓不火爆。但涉及到某个具体的应用领域,具体应用的物连网前后端设计,具体应用的原型系统实现等等方面,业界却鲜有实用的提法和方案。

没有切实可行的行业解决方案,和迟迟提不出来的物联网技术标准是推进物联网战略的最大障碍。这个障碍只有靠在某个需求最大最贴近物联网原始概念的行业进行规模试验和推广,而物流工程领域是示范应用的首选。

四、结语

任何高科技如果只给大家勾勒出一个美丽的童话而迟迟不能变成现实的话,那么多先进的技术都失去了意义。物联网目前只是一些小范围的试验,而且多半是没有创新地对已有RFID扫描、传感等设备的堆砌和原有技术的应用,远未达到真正意义上的物连网高度和大规模应用的程度。国外3000元左右Android手机,华为能用900元人民币做出来,性能虽然有一定损失,但可见其耗能和成本不是根本原因。没有切实可行的行业解决方案,和迟迟提不出来的物联网技术及协议标准才是最大的障碍。这个障碍只有靠在类似物流工程这样最贴近物联网原始概念的领域进行行业推广和大规模试验,在对物流工程领域进行行业资源整合及物联网应用部署,并切实解决问题的过程中,才能提炼出最有效的物联网标准,和最具实用意义和价值行业扩展性物联网解决方案。

【备注】

(1)物联网后端:不管是公有云、私有云还是SAAS、ASP模式,作为物联网或云的后端处理中心,其组织形式和功能相似---提供海量数据处理、海量应用服务的服务器网格或集群(类似于提供公共云服务的谷歌机器农场;提供私有云服务的电信、银行等关键行业后端服务器集群环境)。

(2)物联网前端中继节点:物联网前端感应、数据采集点数量庞大,但好比人体神经末梢的每个采集点信息量很小,如何把局部范围内的一系列感应采集设备集中联系并管理起来是迫切需要解决的问题。物联前端中继节点将是物联网系统架构中必不可少的关键环节,它具有如下功能:a.根据标准协议与周围感应设备和采集点进行集中的指令和数据交互b.根据标准接口和协议通过互联网或移动通信网与后端数据中心互联互通,来完成任务提交、分发、调度和物体识别、管控等功能,同时满足部分轻量级任务现场实时处理的功能需求。

(3)物联网终端:本文提出的区别于传统分散型各类已有终端设备,而是对其进行整合的具有物联网前端中继节点功能的、具有操作系统特性的物联网一体化终端管理设备集成系统。

相关推荐