物联网的全栈开发之路

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

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

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

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

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

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

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

       因此,全栈技术、场景、协议/安全就是个人物联网开发之路。安全

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