再有,大部分硬件因为受到成本和体积等因素的影响,在计算、存储等方面的能力是有限的,把硬件接入云端后,无形中扩展了硬件的能力。同时可以将硬件变得更加智能。原来一些设备的业务逻辑需要写在硬件里面,现在可以把这部分和智能决策的逻辑放到云端。但是对于一个硬件工程师来说完成这些开发会非常难。 那机智云给他们带来哪些变化?我们可以先看看目前智能硬件的基本架构,也就是我们常说的黄金三角形,即云端、智能硬件、智能手机应用。云端的技术大多是互联网的 技术,与硬件工程师所熟悉的领域不太一样,我们需要有工具帮助开发者更好、更快地接入。出于这个考虑,机智云提供了一个叫 GAgent 的小固件程序,它运行在硬件平台里面,通常在 Wi-Fi 模块里,也可以在硬件的主控芯片里。GAgent 起到了一个承上启下的作用,对云端,它实现了所有的机智云接口,让硬件具有与云端连接的能力;对主控芯片,它又提供了一套对嵌入式开发很友好的封装,让硬件工程师可以面向业务编程,而不用去考虑云端通信的细节。
智能硬件“黄金三角形” GAgent 在云端所提供的各类型接口能够让整个连接过程变得更加简易,这些接口在传输层面支持多种协议,包括 MQTT,HTTP/S,还有 WebSocket等。MQTT 是由 IBM 最先倡导的一套专门用于物联网的协议,适用于互联网这样网络环境不可靠的场景;同时它又是基于二进制的数据格 式,特别适用于硬件上的嵌入式开发。而 HTTP/S 和 WebSocket 则用于一些应用的开发,如微信的应用或者是基于HTML5的应用。多样化的接口能 让开发者根据不同的应用场景选择不同的方式。 此外,机智云还在云端提供了一个开发者的自助服务界面,使得我们可以通过一些简单的表单操作就可以完成对一款新的智能硬件的功能定义。我们会帮开发者生成一系列包括嵌入式开发的协议文档、智能手机应用的 SDK、云端的相关接口、 还有一个用于演示产品功能的智能手机应用。另外,我们还提供了一个运行在云端的虚拟设备,帮助开发者能够在一行代码都不用编写的情况下,测试自己产品的各项功能。 CSDN:能否介绍您在打造物联网和智能硬件平台过程中,主要运用的技术?在平台开发过程中,面临哪些技术难点? 刘琰:机智云在云服务方面主要用 Python、Ruby 等语言来开发。数据层是机智云核心,用到 MongoDB、MySQL、Redis 技术;大数据领域,用到流式大数据处理框架 Spark。在 IaaS 层面,尽量做到服务供应商的中立型,也就是说机智云的整套架构部署可以无缝部署在阿里、腾讯、亚马逊、微软等 IaaS 平台。 对于平台打造过程中的通用技术难点,主要就是如何从一个大的服务到微服务转化,这个过程花费了团队很大的精力,包括现在还在不断的去做。这个很好理解,刚开始的时候,一个平台刚刚起步,一般是一体化的服务,业务比较简单,但是随着后期的访问量的增加,业务越来越复杂,各种各样的需求会不断的叠加进来,所以有段时间,机智云平台自身增加新的业务非常困难。因为你要考虑的东西特别多,例如增加新的功能会不会影响旧功能的使用等等。 另外,公司人员的增加,如何让员工快速进入开发节奏,目前机智云参考 Facebook 的做法,就是将服务尽量的切小,每一个服务负责一个非常单一的功能目的,让新员工可以在一天之内为服务贡献代码。除此之外,机智云的 SDK、GAgent(WiFi 模块中的固件程序)或者 GPS、蓝牙通讯模块里面的代码程序,需要有一个合理的发布节奏。目前机智云的云端服务现在基本上每天可以发布多次,而客户端的 SDK/GAgent 等产品则是每月发布一次,这样就平衡了功能的演进、缺陷的修复、质量的稳定等几个方面的关系。 CSDN:您认为目前物联网主要面临哪些安全性问题?从您的个人角度来看,有什么较好的解决方案? 刘琰:物联网安全是个重要话题。物联网产品跟手机/电脑不一样,没有用户持续的去管理它的操作系统,一方面不太容易发现被随随便便安装的病毒软件,同时也正因为没有用户每天照看,如果设备的安全防线被成功击破,也很不容易被发现。受制于大部分企业没有完整的技术开发人员和完善的专业运维和安全团队,现在企业依托现有工程师自主研发的产品或多或少都存在一些安全隐患,攻击者利用这些产品因各种因素制约没有考虑到的安全漏洞,可以监控或接管这类设备的运作,甚至令其感染恶意程序等,为消费者和厂家带来不同程度的困扰和损失。 对于物联网安全,个人认为有六大物联网安全的考虑点: 网络安全。本地网络和数据上云管道的安全,思科、华为这些硬件厂家比较擅长这个。 安全认证。用户和设备的身份和权限管理,我们这样的互联网公司比较擅长。 数据加密算法。需要在端部和云端同时做,需要机智云这样的端到端技术平台支持。 PKI。公钥基础设施,这个在互联网阶段就比较成熟,但是应用到智能硬件上,很多硬件还没用起来。 (责任编辑:本港台直播) |