在各种IoT平台你争我夺的“大战”中,平台型企业或者初创物联网公司纷纷都在打磨着自己的IoT编程工具,前沿的一些已经初具雏形,尤其值得关注:
- 本周,阿里云IoT更新了IoT Studio,这是一套针对物联网应用的开发工具。IoT Studio可以提供可视化的应用开发和服务开发能力,帮助用户改善在实际项目交付中,经常面临的应用开发成本高、需求定制化程度高、投入产出比低等问题。
- 西门子收购的低代码平台Mendix在去年实现了150%的高增长。今年4月,西门子将Mendix与工业互联网平台MindSphere进行了集成,这意味着没有很强IT编程经验的OT工程师们,也可以利用Mendix快速构建物联网服务。Mendix已经培育的60,000名开发者,也将为MindSphere快速构建应用程序。
这些举措对于物联网来说具有深远影响,他们都指向同一个方向:改进编程工具、简化编程环节、降低开发成本,是加速物联网项目落地的一条捷径。
由于在物联网时代,工具的选择尤为重要。当大部分人还拿着大刀长矛以原始姿势赤身肉搏时,率先发明火炮步枪,并掌握狙击方法的人想输都难。
既然IoT低代码编程工具已经出现,我们有必要将它仔细审视一番,掂量一下是否趁手。
因此在本文中你将看到:
- 什么是IoT编程工具?
- 为什么需要低代码?
- IoT低代码编程工具之间有什么差异?
1. 什么是IoT编程工具?
在互联网时代的IT软件世界中,有4个最核心的成员:
- 操作系统
- 编程语言
- 编译器
- 数据库
1970年,贝尔实验室的肯·汤普逊和丹尼斯·利奇开发出了世界第一个通用型计算机操作系统:Unix。
1985年,微软推出了第一版Windows操作系统。
Linux是一类Unix计算机操作系统的统称,公认在1991 年诞生。
目前在移动设备上广泛使用的Android操作系统,也是创建在Linux内核之上。
而编程语言的出现,在操作系统之前。
1952年,汇编语言Flow-Matic出现。汇编语言本质上是使用助记符来代替机器语言01010101,但这种语言对计算机硬件依赖很大。不同的计算机,汇编语言不相通。
1957年,世界上第一个高级编程语言FORTRAN问世,它使计算机语言从原始的低级汇编语言走到人人易懂的境界。
从此,计算机不再是科学家的专利。可以说FORTRAN的诞生,孕育了软件产业。此后,计算机高级编程语言进入蓬勃发展的时代。
由此,可以看出操作系统和编程语言的重要性不相伯仲。
到了物联网时代,操作系统发生了变化。
互联网时代,操作系统调度的是PC或者手机中的计算和存储资源。
物联网时代,操作系统进化为物联网平台,它对“物体”的调度过程,由调度“云、管、边、端”不同层级中不同设备的计算资源而实现。
比如RT-thread、Mindsphere、WISE-PaaS…都是物联网时代的操作系统。
下图是在微软眼中,物联网时代操作系统应当具备的能力:
相比于PC操作系统,物联网操作系统或者平台具有以下几个明显特性:
- 无缝更新:系统更新通过后台完成,无需中断
- 更加安全:具备防止恶意攻击能力
- 长期连接:保持 5G、WiFi等连接能力,保证设备间能一直相互连接
- 可持续的性能
- 云端接入能力:支持设备与设备间进行无缝访问数据
- 具备AI能力
- 支持各种交互:兼顾触控、手写、语音、键鼠等方式,以及能够通过传感器和姿势感知
- 多样产品形态:支持云、边、端的应用
最近一系列基于微内核的IoT OS推出,比如阿里AliOS Things、华为鸿蒙OS、GoogleFuchisa,进一步诠释了物联网操作系统的特征。
微内核并非新鲜事物,最早可以追溯到卡内基梅隆大学在1985年推出的微内核操作系统 MACH。新一代的微内核IoT OS可以支持从小到大的各种智能设备,包括从烟感传感器、到摄像头、再到计算网关等;提供各种本地插件、轻量级GUI、以及丰富的链接协议,满足碎片化的设备开发的需求;还有丰富的云端一体化的插件,包括连云套件、OTA、视频语音连云套件,确保设备和云端的设备影子实时同步。
总而言之,基于微内核的物联网操作系统,有能力适配高度碎片化的硬件与芯片生态,有丰富的本地组件来支持不同的设备,又能够充分和云端的大数据计算能力形成协同,奠定了数字化物理世界的基础。
在互联网时代,操作系统几乎只需要支持PC和手机就可以完成任务。但是到了物联网时代,IoT操作系统或者IoT平台的复杂性急剧上升,为了令其更加易用,编程语言也需随之进化,IoT编程工具由此产生。
从操作系统到物联网平台,从编程语言到IoT编程工具,这是一个自然而然的推进过程。
可以预见,编译器和数据库在物联网时代也将产生更新或者变异。比如华为在8月31日刚刚开源的方舟编译器,以及涛思数据推出的时序数据库,都更加适合物联网时代的应用。
在物联网时代,上述这些工具都会进化,有些可能会彻底变成新的物种。IoT平台与PC操作系统有本质不同,IoT编程工具也与编程语言有着天壤之别。
因此,在物联网时代我们需要一个更加立体、分层和全局的视角,来看待关键领域。不管是操作系统,还是编程语言,都应建立一个全新的理解,从而发现新的机会,更好的利用工具,实现物联网业务的拓展。
2. 什么是低代码?
既然与PC操作系统相比,IoT平台的复杂性急剧上升,需要调度“云、管、边、端”各方资源、兼顾传感、姿势、语音等各种交互方式,又要保持5G、WiFi、BLE等连接随时在线…
那么,IoT编程工具的重要使命就是降低这种复杂度,让开发者可以轻松上手。因此“低代码”是大势所趋。
简单来说,“低代码开发”被用来描述一种快速设计和开发的软件系统,无需编码或通过少量代码,就可以快速生成应用程序。它是研究机构Forrester Research在2014年最先使用的一个术语。
其实低代码并不是最近才出现的新事物,它可以追溯到上个世纪90年代。
在1991年诞生的快速应用程序开发(Rapid Application Development,缩写:RAD),目标是在60到90天的短时间内,建立符合用户要求的业务软件。RAD的出现掀起了一场编程方式的革命,它带来了可视化编程,使得编程的门槛变低了。
根据Forrester的分析预测,低代码平台有可能使软件开发速度比传统方法快上10倍。到2022年,低代码平台市场将从现有的40亿美元,增长到220亿美元。
下面两幅图是使用低代码编程工具之前和之后的对比:
之前
之后
如果将“低代码开发”和汽车制造做类比,“低代码”之于IoT开发者就像自动化生产线对于汽车行业的作用。
过去汽车的装配需要手工完成,现在都是通过自动化生产线实现。虽然早期自动化进程中使用的生产线,对汽车复杂多变的配置无能为力,但它们确实加快了装配和交付的进程。
作为对比,现在的编程工作大部分还处于手工作业阶段,生产效率在很大程度上取决于编码者个人的专业技术水准,“低代码”尽量用少量的代码开发出企业级的应用,最大限度的提高应用开发的效率。
众所周知的低代码实例是WordPress,它是一款开源CMS(Content Management System,内容管理系统),特性是易上手,开发速度尤其快,甚至无需代码,直接安装模板和插件就可以达到要求。
使用WordPress,中小型企业只需雇佣一名不懂编程的员工,便可以借助网上发布的各种主题和插件,在完全不需要编程代码的情况下进行基本网站编辑。目前WordPress已经支持了世界上超过70%的网站。
至此,可以看到低代码具有如下优势:
- 降低编程门槛,不需要大量的编程知识
- 大大加快应用程序的开发和部署时间
- 节省成本,节省项目规划或员工培训的时间
- 用户可自定义模块,应用程序可以灵活调整
- 开发者可以将精力更好的分配于核心任务
任何事物都有两面,必须说明,低代码也存在使用风险:
- 供应商被锁定:目前低代码编程工具并不通用,选择其中一种便意味着锁定了供应商。
- 维护成本较高:由于低代码及其供应商存在较强的耦合性,也就意味着供应商拥有较强的议价能力。
- 存在监管隐患:因为减少了代码编写的工作量,开发者很难知道API调用的背后隐藏着什么秘密。
- 功能可能有限:任何低代码的供应商都不可能预测到所有的应用细节,如果开发者希望更加灵活地适应企业的需求,就需要使用自己编写的代码来满足。
- 应用千篇一律:低代码编程项目可能最终看起来彼此都非常相似,因为开发者使用的是相同的模块。
任何技术都有利弊,越容易被创建,往往也意味着,越容易被复制。
而我们需要做的,就是权衡利弊,想好自己是否要用这个工具。
3. IoT低代码编程工具之间有什么差异?
总体而言,有两类公司在提供IoT低代码编程工具,分别是物联网平台型企业和应用服务初创型公司。
除了文初提到的阿里和微软,AWS、Google、Salesforce等巨头都有提供IoT低代码编程工具。
典型的低代码平台初创公司,除了被西门子收购的Mendix,比较知名的还有OutSystems、ServiceNow、Kony等。
市场研究机构Gartner和Forrester分别绘制了低代码平台的格局版图。
这两类公司由于各自目标不同,所提供的IoT低代码编程工具其侧重点也有所区别。
物联网平台型企业:这类企业的目标是降低物联网平台的应用门槛,汇聚开发者生态,因此往往提供的是端到端的IoT低代码编程工具或者开发环境。
以阿里云最近更新的IoT Studio为例,它是一套专为物联网应用所设计的集成开发环境IDE,功能包括:
- 设备数据无缝集成:设备相关的属性、服务、事件等数据均可从阿里云物联网平台设备接入和管理模块中直接获取,大大降低物联网开发工作量。
- 面向各个行业提供场景化模板:开发者可以直接利用现有的(包含设备,应用和服务的)解决方案模版来开发自己的业务,将原有需要几周的开发过程缩短到几天。
- 可视化应用开发:用户通过简单的可视化拖拽的方式,即可将各种组件、图表与设备相关的数据源进行关联,几乎无需任何编程经验,整个过程就像使用PPT一样简单。
- 提供服务开发的功能:用户可以很方便的实现设备之间的联动、设备与服务之间的数据流转。IoT Studio打通了阿里云API市场,用户还可利用各种人工智能及数据分析的API。
- 应用服务初创型公司:这类企业将低代码平台本身作为核心产品,探索与之相应的新型行业模式,因此他们的编程工具一般并非针对物联网应用所创建,或者并不具备对于物联网异构设备的支持能力。
以被西门子并购的Mendix为例,它本身是一个加速企业敏捷开发流程的PaaS平台,并自称是全球唯一一个真正的云原生低代码平台。
它由3个无缝集成的产品组成:Sprintr,AppFactory和Mendix Platform-as-a-Service,分别实现的功能如下:
- Sprintr:采用轻量级的社交方法进行企业项目协作。通过在整个企业中提供协作平台,Sprintr打破了不同部门和专业之间的隔阂,所有员工都是同一个私有社交网络的一部分。
- AppFactory:让用户能够使用高级可视化的模型开发应用程序。这可以实现业务和IT之间的协作,还可缩短反馈周期。AppFactory又由3个元素组成:
- -Mendix Business Modeler:使用可视化模型设计和开发应用程序的建模环境。
- -Mendix Team Server:基于云的模型存储库,用于团队成员协作并进行版本控制。
- -Mendix AppStore:应用市场,用于共享和下载业务模板、主题和技术组件。
- MendixPlatform-as-a-Service:用户只需单击一下,即可从Mendix Business Modeler中将应用程序模型上传到Mendix PaaS,从而轻松部署应用程序。
被西门子收购之后,Mendix在最新的19版中增加了对于物联网设备的支持,并升级了AI引擎,提供对于物联网数据的分析服务。
----写在最后----
借助IoT低代码编程工具,让企业有机会尝试用更少的资源更快更好的实现应用。如果将其承载在工业大脑或者智慧城市的管理平台之上,势必将会激发各类应用开发者的创意和想法,让各类应用快速集成落地。
对于开发者数量有限的传统行业,IoT低代码编程工具还有可能加速IT和OT的融合。
当然,各种IoT低代码编程工具是否被宣传得恰如其分,是否在实践中方便使用,还需要经过验证。
本文小结:
- 在物联网时代我们需要一个更加立体、分层和全局的视角,来看待关键领域。不管是操作系统,还是编程语言,都应建立一个全新的理解,从而发现新的机会,更好的利用工具,实现物联网业务的拓展。
- 与PC操作系统相比,IoT平台的复杂性急剧上升,IoT编程工具的重要使命就是降低这种复杂度,让开发者可以轻松上手,因此“低代码”是大势所趋。
- 现阶段有两类公司在提供IoT低代码编程工具,分别是物联网平台型企业和应用服务初创型公司。