探索智能一站式硬件开发详解程序员

在创新驱动之下,数字时代的技术成功实施并落地,因此不难想象,“万物互联”会成为这个时代最显著的特征。然而面对庞大的物联网体系,企业该如何降低开发成本与难度,开发者应作何改变适应大环境下的生态系统,真正开启智能化之路?由此,我们采访了庆科信息 CEO 王永虹,请他从操作系统、芯片、一站式硬件开发的角度来分享智能硬件最佳解决方案,希望帮助开发者及企业更加高效的开发。


探索智能一站式硬件开发详解程序员

上海庆科信息技术有限公司 CEO 王永虹

王永虹,上海庆科信息技术有限公司 CEO,庆科信息创始人之一。2004 年开始创业,具有超过十年的嵌入式系统行业应用及管理经验,2011 年获得“中国嵌入式系统十大杰出青年”称号。2014 年带领庆科信息研发推出了物联网操作系统 MiCO 和 FogCloud 云平台,一直专注于为设备厂商提供端到云的物联网解决方案。同年发起成立了 MiCO 联盟,与联盟伙伴打造完整的物联网生态体系。2016 年被评为上海市普陀区创新创业杰出人才。

个人和团队背景

CSDN:请介绍一下您个人所关注的技术方向以及目前庆科信息所专注的事情?

王永虹:从 2012 年开始至今,5 年时间里,庆科信息一直专注于 To B 的技术服务,对此,庆科信息一直有个清楚的定位,那就是向开发者及厂商提供无线模块、MiCO 物联网操作系统以及 FogCloud Saas.w8tu.cn云服务。而我们也一直关注整个物联网的连接和语音交互技术,并向广大工程师、开发者及设备制造商提供完整的物联网解决方案。

CSDN: 可否分享一下庆科信息的团队布局,规模与分工?

王永虹:庆科信息经过最近多年的稳步发展,公司目前规模已达到了 150 多人,由于一家技术主导型的创业团队,所以公司整个团队是以研发为核心,有接近 70% 左右的员工属于研发人员。但物联网技术的分散性,应用的碎片化,我期待更多在市场营销、渠道推广等方面的合作伙伴一起联合起来共同做好这个领域。同时,我们也全球拓展我们的业务,目前美国、德国是我们重点要突破的区域。

CSDN:两年多之前,《近匠》曾采访过您,经过近几年的发展,您认为如今的庆科信息与曾经的不同之处是哪里?

王永虹:在这两三年里,庆科信息与过去相比,不止是人员规模的增长,在服务能力方面也有了很大提升。

首先,服务能力的提升。比如过去我们帮助客户开发一款物联网产品,从需求对接到样品落地,需要 8 周时间,而现在这一过程根据不同产品形态已经缩短到了 4—6 周。

其次,服务团队的扩充。目前公司在深圳、顺德、青岛、杭州、北京各地都组建了我们的技术服务团队,以满足消费类物联网领域客户不断增长的业务需求。

此外,业务范围不断扩大。我们在工业物联网领域也做了一些突破,推出了一系列工业物联网的解决方案,包括人员管理、自动控制、数据采集、信息安全等方面,同时我们在智慧城市解决方案上也有了新进展,比如近期和江西鹰潭市政府合作,在共同推进当地 NB-IoT 广域物联网应用方面进行了深入探索。

智能硬件解决方案

CSDN:从技术角度来看,庆科信息的一站式解决方案是基于什么样的痛点而来,能够帮助开发者及企业解决什么样的问题?

王永虹:庆科信息之所以推出物联网解决方案,可以说是基于看到了很多传统制造企业在物联网转型过程中所存在的问题,比如物联网技术的积累、智能产品的设计定义等。为此,我们从硬件、软件及可运营三方面推出了完整的物联网解决方案,帮助企业和开发者能够快速便捷地实现产品的智能化升级。

CSDN:相对其他物联网操作系统,庆科信息的 MiCO 物联网操作系统有什么样的特点,优势是什么?

王永虹:庆科信息的物联网解决方案所提供服务的一个核心点,是结合我们自主研发的 MiCO 操作系统以及 FogCloud.dz9L.cn 云服务。其中,MiCO 作为庆科信息自主研发的物联网操作系统,是一个运行在各种微控制器上,面向物联网应用的全栈操作系统。它包含了安全的互联网接入、云服务接入协议、各种高度可重用的软件组件包、高度可移植的硬件抽象层,特别适合在能量受限的微控制器上运行。从 2014 年发布至今,已经做到了 3.3 版本。MiCO 的安全性、稳定性、可靠性及易用性这些特点也得到了广大使用 MiCO 的开发者的认可,并且这是目前全世界唯一一个在多种不同硬件平台上装机量超过 1000 万的物联网操作系统,可以说我们在 MiCO 的商用方面迈出了坚实的一步。

CSDN:在物联网操作系统研发过程中遇到过哪些坎,难点有哪些?你们是如何解决的?

王永虹:当然在 MiCO 的研发过程中也遇到了很多问题,毕竟物联网操作系统目前仍处于起步阶段,我们还需要跟更多的合作伙伴一起推进。因为 MiCO 操作系统的完善,也是基于在芯片公司、云计算公司、设备厂商及开发者所提出的问题上进行不断优化,而庆科信息也在这个过程中不断投入研发精力,进行产品的迭代更新。OS 最大的难点是研发与实际应用的结合,每一个成功的 OS 都是通过各种实际应用“磨”出来的,而不是研发好后一举推出的。MiCO 也是通过 10 多年研发结合应用的磨练才达到今天的程度。从产品的角度来说,我们同时推出了自己的开发工具、编译器和开发环境,这些将为开发者提供更加系统、稳定、简便的物联网开发体验。

CSDN:请介绍一下庆科信息物联网系统芯片 MOC100,它具体是如何帮助开发者简化开发流程?

王永虹: MOC100 是一款高集成度的模组,采用 SIP 封装,面积仅有 1 平方厘米,是单 Wi-Fi 芯片,具备强大的运算速度、丰富的 memory.g5nv5.cn资源和控制器接口,适用于 IoT 透传、二次开发、语音识别等功能。它把射频相关电路,外部器件,存储等集成于片内,外部则只需加 3—5 颗电容,配上一颗天线,即可完成一个 Wi-Fi 模块硬件的开发。对于想要自定义模组的设备厂商来说,MOC 系列芯片是一个极好的选择,它可以帮助厂商简化开发流程,实现自定义模组开发,帮助产品迅速落地。未来我们还会陆续推出多种 MOC 芯片,相信 MOC 物联网系统芯片会受到越来越多设备厂商的欢迎。

CSDN:物联网热潮之下,连接芯片主要面临哪些挑战?

王永虹:物联网的连接技术发展很快,过去庆科信息主攻局域网蓝牙和 Wi-Fi 的连接,而现在随着物联网的发展,室外连接应用发展迅猛,为了应对这一挑战,我们从去年开始研究 LoRa 和 NB-IoT,希望推出广域物联网的解决方案,以此来服务外部大量的设备接入。连接芯片结合 OS,如何根据场景和应用,在低功耗、成本、安全、稳定性方面做出平衡。

CSDN:在物联网通信模块方面,庆科信息选择 Wi-Fi 模块而非 Zigbee 等其他模块的主要原因是什么?

王永虹:至于庆科信息为什么选择 Wi-Fi 而非 Zigbee,这是因为从我们过去几年的积累来看,Wi-Fi 的覆盖、通用性及基础设施都非常完善,此外,考虑到基础架构、人机交互以及具体设备的使用情况,我们认为 Wi-Fi 和蓝牙更适合用来进行局部范围的设备接入。而 Zigbee 技术则在工业、照明等领域也有很好的应用和发展前景。

CSDN:您认为智能家居目前的现状如何?还面临哪些困境?

王永虹:近几年,庆科信息也在不断推出在智能家居、智能家电领域的智能解决方案,但是由于目前物联网行业的现状,导致设备厂商和开发者在这一行业里还来不及做更深地学习和积淀,就被整个市场的智能化趋势推向了前沿,可以说到目前为止,市面上还没有一款真正能解决用户痛点的智能家居产品,而这正是我所认为的智能家居行业发展变慢的原因。

现在绝大多数智能产品不过是在产品内添加一个 Wi-Fi 模块使其具有联网功能,再辅之以手机 App 改变控制方式,这一仅仅解决了连接问题的设备并不能算是真正意义上的智能设备,为此,庆科信息在智能设备与人的交互方面做了更多的努力。5月4日,我们在深圳举办了“万物有声”智能语音解决方案发布会,正式推出了智能语音解决方案,这一方案将助力设备厂商进行产品的智能语音升级,实现智能设备更加人性化的交互方式。语音作为目前乃至未来最为便捷的人机交互方式之一,将为设备的智能升级带来新体验,庆科信息也将在此做更多的投入。

CSDN:庆科信息在硬件和软件方面,是否有开源的计划?

王永虹:在硬件和软件方面,我们确实有一套完整的开源计划。特别是硬件,解决方案中大部分的硬件我们都进行了开源,而核心操作系统 MiCO 有 80% 左右也是开源的,只有涉及安全和第三方知识产权的部分我们没有开源,后续我们依旧还会逐渐采用开源的方式来服务更多开发者。

CSDN:您个人认为在硬件及 IoT OS 研发的人才招聘方面,目前比较缺少哪些技术人才?在庞大的物联网体系下,技术比较零散,包括开发者自己也是,当碎片化严重,如何去系统进阶?

王永虹:智能硬件开发可以说是一个复杂的系统工程,需要硬件工程师、嵌入式 C 语言工程师,还涉及云端、系统架构各各方面,目前只能进行单品开发的工程师已经不能满足 IoT 开发体系的需求了,因此软硬兼备的人才是目前物联网前进的一大障碍。

而我们所推出的一整套物联网解决方案,不论是从硬件还是软件层面,都是为了简化开发,降低开发门槛。同时,再联合芯片公司、云计算公司等共同帮助开发者迅速实现产品的快速智能化。为此我们也推出了关于 MiCO 的培训、资料、手册、教材等,未来我们还会在这些方面不断推进。作为开发者,找到具有系统性、稳定可靠、可以快速实施的工具和平台,在具体应用开发过程中去系统进阶。

六度分离的前世今生

1929 年匈牙利作家考林西(Frigyes Karinthy)[1]在他的短篇作品《枷锁(Chains)》里面,猜想随着交通和信息传播技术的进步,社会结构会逐渐“缩小”,使得人与人的联系会更加紧密。在故事中他提出了一个假设:两个完全陌生的人可以通过不超过五个人产生联系。他认为世界虽大,但人们建立联系的代价可能比预想的要小。

为了验证这个猜想,1967年哈佛大学的一位社会科学家斯坦利•米拉尔格姆(Stanley Milgram.4sqm.cn)做了一个实验[2],他随机选 296 个志愿者[3],要求他们转发一个信件给一位他们不认识的住在波士顿的经纪人。为了能够让信件送到,斯坦利让他们把信件转给最有可能认识这位经纪人的人,然后希望能够通过不断转递的形式让信件出现在这位经纪人的手上。在事后的统计中,斯坦利发现平均只需要5.7个中间人就能够让信件到达。根据这一结论,斯坦利提出了著名的“六度分离”假说。

随着科技的进步,研究者们发现在更大规模的社交网络上验证这一猜想变为可能。2006年微软的研究者[4]用了当年6月份的 MSN 消息,在1.8亿的用户中随机选了1000个用户,计算他们通过MSN的消息链条能够到达的每一个角落,发现平均来说任意两个人之间的距离只有6.6。也就是说中间只需要5.6个中间人介绍就能够让两个陌生人认识。这是首次在星球级别的网络上验证“六度分离理论”。

到了2011年,Facebook联合米兰大学研究了7.21亿活跃用户构建的好友网络,估计出了任意两个用户之间的距离分布,发现 Facebook 网络的平均距离只有4.74,代表只需要3.74个中间人就能够让人们相互认识,据此他们写出了名为“四度分离”的论文[5]。

QQ 社交网络的小世界

作为中国最大的即时通讯服务提供商,QQ 社交网络覆盖了中国大部分上网人口,而 QQ 的社交网络数据对外界却显得非常神秘。作为一个关系型社会,中国网民之间的关系是否比海外网民的关系更加紧密?这里,我们基于海量的 QQ 关系链数据,通过一定的算法(文章第二部分会详细介绍),计算出来任意两个 QQ 用户的平均距离。

网络 用户数 网络密度[6] 平均距离
QQ [7] 8.21亿 8.4E-08 5.20
Facebook [8] 7.21亿 26.4E-08 4.74
MSN [9] 1.80亿 8.3E-08 6.6

平均距离为5.20,意味着平均来说任意两个QQ用户只需要4.20个中间人的介绍,就能够找到对方,我们称为“腾讯QQ社交网络的四度分离”。用 2011 年的Facebook 社交网络以及当年的 MSN 数据作对比,我们发现如今的 QQ 活跃用户更多,但 Facebook 的网络密度更大(网络密度 = 关系链数 / (用户数*(用户数-1),越大说明网络越稠密)。或许这跟 Facebook 的开放性有关,在 Facebook 用户能够看到对方以及对方的好友列表,这样更容易通过好友形成关系链。这里可以看到的是,QQ 社交网络的网络密度只有Facebook 的 30%,但计算得到的平均距离只比Facebook 多0.46,也就是说,网络更加稠密,但是网络中人与人的平均距离并没有非常明显地下降。这反映了两个社交网络结构的不同之处,QQ社交网络能够用更低的关系链稠密度,保持社会信息同样高效的传播。

另外,这里的距离是平均的概念,也就是说并不是任意两个用户之间的距离都是5.20。具体的分布如下图1。


图片描述

图1 任意两个用户的社交距离分布

图中横坐标是两个用户之间的距离,纵坐标是该距离的用户对占所有可达用户对[10]的比例。这里为了方便我们只画出了距离从 0 到 10 的部分。我们观察任意两个用户之间距离的分布,可以看出有接近60%用户对的最短距离都是5,实际上有 97% 的用户对距离都不超过6,所以严格意义上讲,平均来说一个用户通过不超过5次介绍就能够认识到 97% 的QQ用户。而这个分布的最大值其实是远大于5的。在我们的计算中距离最大的两个用户[11],他们的距离有401,则对于这两个人来说,需要400个中间人介绍才能够互相认识。而 Facebook 的网络只有 58。

海量关系链计算背后的技术

HyperANF 算法

而为了计算出QQ关系链的距离分布,我们采用了米兰大学 Web 实验室提出的的 HyperANF算法[12]。这个算法采用图计算经典的标签传播架构,其计算步骤如下:

  • 初始化:每个节点存储一个“通讯录”,开始时只记录自己
  • 迭代:当前次数 t 
    • 扩散:每个节点给邻居发送“通讯录”
    • 聚合:每个节点把收到的“通讯录”,加上自己已有的做合并
    • 统计:计算每个“通讯录”的大小,记为 B(t)
  • 判断停止:如果 B(t) 相较上一轮计算出的 B(t-1)有增长,则继续迭代
  • 结束:最后根据得到的序列 B(t),t=0,1,2……计算出平均距离

算法在第 t 轮迭代中,用户 x 的通讯录 B(x, t) 实际上记录的是自己所有距离不超过 t 的用户集合,因为有以下公式:


图片描述

其中 N(x) 代表用户 x 的好友列表。距离用户 x 不超过 t 的用户集合等于自己所有好友的 “距离不超过 t-1 集合”的并集。

而如果我们把用户 x 在两次迭代的通讯录做差集,那我们就能够得到用户 x 距离恰好为 t 的用户列表。从而我们可以在算法的最后,得到任意距离为 t 的用户对数量。


图片描述

其中 D(t) 是网络中距离刚好为 t 的用户对数量,而


图片描述

HyperLogLog 计数器

对于每个用户都存储“通讯录”是不现实的,因为到最后,每个用户的通讯录都会增长到十亿级别,导致需要存储“十亿乘以十亿”的数据。为了解决这个问题 HyperANF 使用了 HyperLogLog 计数器来表示这个集合。这个计数器能够看做是一个表示集合的数据结构。我们可以简单认为它是一个有三个方法的类:

class HyperLogLog{ 
  // 加入新元素到集合 
  def add(String element.jiangsushengnjb5.cn/) 
 
  // 近似估计集合中去重元素数目 
  def count() 
 
  // 返回两个集合的并集 
  def merge(HyperLogLogPlus other.guangzhoushidz9L.cn/)  
}

HyperLogLog 计数器得到的只是近似值,但好处在于只需要定长存储,不会随着加入元素的增多而耗费更多的存储。算法只需给每个用户初始化一个定长的 HyperLogLog 计数器,然后进行传播就能够统计到 B(t)。使得能够在有限存储的情况下计算 QQ 千亿关系链的平均距离。

而为了求一个准确的社交平均距离,我们采取的方法是运行算法多次,以均值作为算法的最终结果。

Spark 图计算

除了存储,另一个需要解决的瓶颈在于迭代次数。HyperANF 算法一般需要数百甚至上千次迭代才能停止。每一次迭代都需要遍历整个网络,如果都需要从磁盘中载入千亿 QQ 关系链会十分耗时。

为此我们引入 Spark 图计算框架,把网络结构缓存到内存中,从而节省重复磁盘 I/O 时间。

在实践中,我们还做了更细致的优化,在算法迭代的时候我们只更新有变化的节点。因此统计发现网络的大部分用户在迭代十轮以后“通讯录”已经不再变化。理论推导表明此时也不会影响好友的“通讯录”更新。因此可以不必再给自己的好友发送数据。如此优化能够有效减少网络通信负载,实际数据表明,在千亿关系链的情况下,优化后的算法在十轮以后的单次迭代耗时能够压缩到 1 分钟。

另一个在图计算中需要考虑的优化点是定期缓存中间结果到硬盘中。过长的迭代次数会增加计算失败的风险,而在 Spark 上,当出现节点故障导致当前计算的数据丢失时,系统会自动根据数据的依赖关系重算。但在图计算场景下,每次重算可能需要重做历史数百轮的迭代,同时也可能在追根溯源之后发现需要重新加载所有原始数据才能恢复当前丢失的少量数据。因此有必要在迭代一定次数之后,把中间结果缓存到一个硬盘中,斩断对更早迭代数据的依赖。

尾记

社交平均距离的计算,让我们明白社交网络的“小世界现象”:我们的网络很大,有 10 亿+ 用户。我们的网络也很稀疏,平均每个用户只有不到 150 个好友,但平均只需要 4 个中间人,我们就能够让任意两个用户互相认识。这个数字相比起 50 年前那位美国社会学家得到的结论,还少了 2 个中间人,我们可以猜测是互联网让社会变得更紧密了,也让这个世界更小了。而相比起外国的社交网络,中国的社交网络虽然稀疏,但仍依旧紧密,我们认为这是中国社交网络的结构特殊之处,能够以更少的人均好友,获得同样高的信息传播效率。

参考说明:

[1]Milgram S. The small world.guizhoushengn1r9.cn problem.nghaisheng8oqe.cn[J].Psychology.angshanshi9p7n.cn today, 1967, 2(1): 60-67. 
[2]实际上 Milgram 挑选的志愿者并不完全随机, 而是分成三组: 100个同城组(住在波士顿), 100个同职业组(同是股票经纪人)和96个随机志愿者. 而实验的结果显示同城组平均只需要4.4个中间人就能够联系上目标. 
[3]Leskovec J, Horvitz E. Planetary-scale views on a large instant-messaging network[C]//Proceedings of the 17th international conference on World Wide Web. ACM, 2008: 915-924. 
[4]Backstrom L, Boldi P, Rosa M, et al.ujianshengtn5j.cn Four degrees of separation.inansheng3j77.cn[C]//Proceedings.gzhoushirlp3.cn of the 4th Annual ACM Web Science Conference.hainansheng3j77.cn ACM, 2012: 33-42. 
[5]因为这里选取的网络都是双向关系, 因此一对用户有两条单向关系链. 
[6]一个网络最多拥有的边的数目为”用户数*(用户数-1)”, 用它去除真实的关系链数, 越大意味着越接近关系链的上限, 也即是越稠密. 
[7]QQ 社交网络来源于腾讯即时通讯工具 QQ 在2014年11月的用户关系链. 为了去掉网络中已经不再使用的账号, 我们限制参与计算的用户必须在当月有登录. 同时, 为了获得真正的相互间的QQ好友关系, 我们去掉了关系链中的单向关系. 
[8]Facebook的网络来源于Facebook的好友关系链. 其选取了2011年5月份有登录行为的7.21亿用户, 然后提取用户之间的好友关系作为用户关系. 
[9]MSN 的网络来源于微软 MSN 2006年6月的用户发消息数据. 他们共有2.42亿的用户有登录, 但只有1.8亿的用户有消息行为. 
[10]如果一个用户没有加好友, 那么自然没有人能够通过中间人联系上他. 因此我们这里统计的前提是所有能够通过中间人介绍的人. 实际上根据我们的统计, 如果一个用户有至少一个好友, 那么有99%的可能性是能够联系上网络中的大部分人. 
[11]因为我们使用的 HyperANF 算法得到的只是距离分布的估计值, 根据算法逻辑 401 只是整个网络直径的下确界, 即是说有可能有两个用户的距离大于401, 不过这里我们使用它作为估计的直径. 
[12]Boldi P, Rosa M, Vigna S. HyperANF: Approximating.hanshi9p7n.cn the neighbourhood.henanshenggyq6.cn function.zhoushidz9L.cn of very large graphs on a budget[C]//Proceedings of the 20th international conference on World wide web. ACM, 2011: 625-634.

探索智能一站式硬件开发详解程序员

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7409.html

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论