物联网的全栈开发之路

人走茶凉 提交于 2020-04-10 10:30:59

       两年前我还一直专注在android系统定制领域的研究,对物联网关注比较少,尽管我个人对智能家居的概念和场景体验也比较熟悉。真正引起我注意的是有一次在车上,听到电视广播说打开蓝牙,用手机摇一摇就可以摇到红包,我就觉得这个场景很棒,然后就知道了ibeacon和微信摇一摇周边,知道了微信硬件平台和物联网的发展已经深入渗透到我们的生活了。尽管我觉得自己进入物联网不算早,但是考虑到传统电子行业都有升级到物联的需求,加上自身在嵌入式和APP、网络通信方面的积累,我果断选择拥抱物联网。

       传统的物联网从组成架构上有硬件云、设备、APP应用三个部分。随着微信、阿里小智等超级APP的出现,因为其内置了浏览器,所以应用从APP转向了WEB H5开发,也相应地降低了开发难度和缩短了开发周期。当然,因为APP能够完成自主定制,并且体验效果要由于H5,所以物联网APP依然在选择之列,但H5是一种趋势。从这个发展来看,物联网涉及到云、设备、APP和H5四个领域的技术。

       一个物联网研发团队,即使不是云提供商,作为一个方案提供商,也一定要能很好地把握这四个领域的技术。当然,还需要有一个架构师或者技术总监能够把握这四种技术,才能高效地统筹整个项目。也就是所谓的全栈工程师,借用一下这个词。

       对于我,是如何去平衡和把握这四种技术呢?我们团队在微信硬件平台耕耘已经有两年,在这方面有深厚的积累。就从这个开始谈谈物联网的全栈开发之路。

       由于我自身的开发研究背景,设备和APP都不是问题,网络通信也是看家本领,对于socket编程很熟悉。但是云和H5是一个新的领域,就是传统PC领域的后端和前端。物联网并不是全新的技术,它仅仅是多种技术的组合而已。就我个人而言,需要负责一个研发团队,理所当然要求全栈的技术。所以要尽可能高效地学习理解后端框架和编程,还好,本人对面向对象编程比较熟,对架构和框架等技术感兴趣,android linux本身也有很多框架技术可以借鉴,然后选择springMVC + Hibernate为基础搭建环境,开始了后端和前端的学习和开发之旅。如果学习能触类旁通,它就能变得高效,我始终认为软件思想才是最重要的,而不管它是什么语言。

       物联网也不仅仅是四种领域技术的堆砌,更重要的四者自己的互联互通。我认为,以场景作为软件需求的角度去理解物联网的组合和互通是最为重要的,也是最有效的。扫一扫设备就能够绑定,我们觉得这个已经非常方便了。但是,物联网还要考虑到量产的需求,因为如果都扫一扫,那么每个二维码都是不同的,需要去平台申请,然后印刷,粘贴也是很麻烦的事情,所以设备提供商又提供了设备发现和绑定的流程场景。说到底,物联网需要关注用户的需求,也要关注物联网背后的不同厂商之间的利益诉求。物联网产品从场景体验的角度有注册APP,绑定设备,设备接入、通信控制等过程,对于云来说,就要求实现用户管理、设备管理和消息推送能力。

       有了以上对场景的理解,接下来就是实现层面。如何实现?协议和安全是物联网平台的基础。而协议又分应用层协议和传输层协议,当然,物联网是基于IP物联的,开发人员不需要关注IP即以下层的技术,就算是设备端,有socket编程足够了,当然airkiss是个例外。另外,手机和BLE蓝牙是通过蓝牙协议通信,然后手机和平台还是基于IP物联的。对于方案开发,就需要对云接入的协议、设备接入的协议非常精通。当然,现在物联架构也有分化,譬如微信物联,有基础架构,由自己的后台服务接管自己的设备,又有硬件直连SDK架构,即由硬件直接连微信硬件云,省掉自己的后台。这些,都需要深入理解和运用到方案开发中去,才能有深厚的积累。

       所以,全栈技术、场景、协议/安全就是我的物联网开发之路。

嵌入式企鹅圈原创团队由阿里、魅族、nvidia、龙芯、炬力、拓尔思等资深工程师组成。百分百原创,每周两篇,分享嵌入式、Linux、物联网、GPU、Android、自动驾驶等技术。欢迎扫码关注微信公众号:嵌入式企鹅圈,实时推送原创文章!



发布了144 篇原创文章 · 获赞 339 · 访问量 78万+
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!