PS:PPT截图不全,建议大家直接观看视频。
演讲者:Ziran Sun是英国三星研究院的首席开源工程师。
在本次演讲中,即将讨论我们为什么认为JavaScript可以作为开发物联网编程语言的不错选择,它通过一个松散耦合的端到端物联网系统,通过网关登录到新设备进行远程访问。我们已经在使用JavaScript构建物联网系统的技术。在构建的每个阶段,我们都会研究这些技术的GDPR合法性。
GDPR: 《通用数据保护条例》(英语:General Data Protection Regulation,缩写作 GDPR;欧盟法规编号:(EU) 2016/679[2]),是在欧盟法律中对所有欧盟个人关于数据保护和隐私的规范,涉及了欧洲境外的个人资料出口。GDPR 主要目标为取回公民以及住民对于个人资料的控制,以及为了国际商务而简化在欧盟内的统一规范。 摘自维基百科
为了解决嵌入式设备中的资源限制问题,我们将向你介绍三星公司的超轻型JavaScript引擎JerryScript。接下来是对基于JerryScript的平台和其他流行的JavaScript平台进行比较,这些平台为开发者直接提供了JavaScript API。JerryScript是基于NodeJS的开放式网关框架,并重点关注分散“物联网”的隐私和安全性。

正稿

非常感谢你们的光临。我首先做个自我介绍。我是来自英国的Ziran。在今天的演讲中,我想带你了解我们在实践端到端物联网系统时要考虑隐私的做法以及我们如何做技术选型。因此,为了更好的展开讨论,我想向你们先介绍一个现实用例。

今天,我们将在整个演讲中使用这个用例。通过这个用例,我们在技术上遇到了哪些挑战以及我们采用了哪些解决方案。因此,我们先看看如何构建物联网系统,我们的用例基本上是发生在这个度假屋里。
你们大多数人度假的时候,通常租了一个大型的独家房子。我们现在谈论的就是在这种情景下。
首先,从第一步开始,如何为这个度假屋构建一个物联网系统。在案例中,我们基本上全部是使用的物联网技术。我们将使用Mozilla物联网平台和Web来实现。一旦为一个度假屋构建了物联网,我们可以过的更舒适便捷。那我们是如何将所有的这些房屋连接在一起?此外,当我们在度假时,我们将度假屋的一切连接在一起并为整个度假胜地构建一个物联网,是否可以引入一些智能的东西?

接着,在这里,我们最主要考虑的是尊重用户的隐私。因此,我们会将研究整个物联网系统的架构和我们当前的工作状态都与你们分享。在目前的情景中,我认为度假屋有两个重要部分。
一个是度假者。另一个是度假胜地的所有者。所有者可能就像其他公司或代理商一样。

那么,度假者在为度假胜地建立物联网时会想到什么呢?我认为必不可少的是,度假屋要智能。是否能被控制以及如何提供服务呢?当你构建一个物联网系统时,有必要知道它有些什么法律限制, 比如尊重用户的隐私。最后但并非最不重要的一点,在这里构建一个物联网系统的解决方案是什么?能长期有效吗?
从度假者的角度来看,对我们而言,我认为这仅仅是对度假公用事业和设施的便捷访问和轻松控制。我们希望放松身心,但又不能被别人看到自己的隐私。比如我们不希望任何人监视我们在假日期间的用电方式、知道我们每天洗衣服的次数等。
因此,让我们看一下如何为一个度假屋构建物联网。如果需要考虑到隐私,物联网中的隐私现状是怎么样的呢?物联网实际上是如何处理隐私的?人们顾虑的是,物联网对数据保护和个人隐私这一块,很多年来风险一直越来越大。ICO在2016年进行的一项调查表明,十分之六的物联网设备无法正确告知客户如何使用其个人信息。
这非常令人担忧。好消息是政府和整个行业都在积极采取行动。例如,在欧盟的GDPR中,每个人都在这里听说过GDPR吗?GDPR是在去年5月生效。
这项新的欧盟法规主要是为了保护法律上的个人数据。你设计和创建新的物联网解决方案的时候就会知道,我们需要牢记设计中的数据保护。以前称之为设计隐私。
对于物联网开发者而言,这个法规对我们技术如何部署以及正在构建的服务类型具有重大影响。我们实际上认为,与其他技术栈相比,开放的Web平台实际上可以增强隐私性。我们认为GDPR不仅是对Web物联网的挑战,还是一个非常好的机会。
实际上GDPR,只是我们在构建物联网时谈论到,但在构建物联网时(主要基于物联网技术),物联网是个什么东西?它只是我们引用维基百科的概念?它是与现实世界目标一致的软件架构风格和编程模式,可与全球网络进行交流。这是一个很难达到的境界。
当认真看一下这是什么问题时。如果你身处物联网中,那你就知道物联网的主要问题就是互操作性。
因为,你知道的,我们喜欢不同供应商和制造商的硬件和软件。突然,我们想将它们连接在一起。而且他们不太愿意遵循相同的规格,相同的标准,甚至有可能不使用相同的编程语言。
那我们如何将它们连接在一起?物联网基本上都是通过提供应用程序层的解决方案来解决此问题的。因此,除了物理上网络层的差异。
这是一个应用程序层的解决方案。这意味着实际上它必须在物联网上进行对话。考虑到物联网的范围,实际上范围要宽得多。并非物联网中的所有东西都能很好地连接。因此,我们认为,物联网实际上是传统物联网粒子栈的应用程序层解决方案中的一种选择。
物联网基本上是遵循W3C制定的规范,Mozilla和Google进行了一些实现工作。还有一些其他人和组织也积极地参与到了物联网的实施工作中和标准化的工作中。因此,在这里,我们实际上为度假屋提供了一个松散的物联网解决方案。这也是我今天正在谈论的事情。
我基本上可以将所有事物连接在一起,进行管理并连接到云。我们谈论的是通过渐进式应用程序(PWA)从诸如手机之类的智能设备控制你的事物。我们说到通过Web工具连接并实现连接到你的网络的方式接入新设备,新事物。
现在我们将仔细研究每个组件。首先是网关。今天早上有人参加过Mozilla物联网研讨会吗?
是的,那么,这位先生,你对物联网的印象如何。作为一个平台,它相当令人印象深刻,并且是开源的。今天早上的研讨会,我就在那里。我认为这主要是在谈论一种与事物保持联系的方法。
但实际上,不仅如此。这基本上是三个路径。我们这里有云。云是云服务的分区集合,由Mozilla提供,用于跨地理区域连接设备。
然后,我们有了同步框架。这个同步框架基本上是可重用组件的集合,可帮助你构建自己的Web事物。而且我们应该直接公开物联网API。实际上Mozilla也创建了此API。
他们创建了一个文档。找到它,这就是他们关注的点。然后跟着进入物联网。

网关是一个开放的接口,并且该工具已存在,可以访问Web。因此,我们实际上可以看到,这些东西都是针对JS的。这对于JS开发者来说,是个好消息。然后NodeJS后端通过API使用安全的Web套接字与前端通信。
除了支持JS,物联网实际上还产生了另一个称为适配器的概念。该适配器实际上是一种语言适配器。它使用诸如Python之类的另一种语言对事物进行编程。

继续看安全方面。实际上,Mozilla的网络是由他们提供的框架。他们将让你建立Mozilla隧道所在的HTTPS。而且,如果你的请求被认为是这种情况的一种结构才能被通过。
可以告诉你的是,它实际上几乎没加密。你需要建立从网关到云服务器的隧道。让我们考虑一下另一种情况。
如果你实际上不在现场,你实际上在遥远的地方。你想在那里、在家访问你的东西。在这种情况下,Mozilla提供了一条专门的隧道。从你的云服务器到网关的反向隧道。这就是安全方面的。
另一个定位器规范授权是他们实际上是跟随你的。因为你可以选择其他文本令牌,所以他们使用的令牌是JSON,一种Web令牌。是的,显示的是我们其中一个应用程序的快照。因此,这表明该屏幕实际上是在所有者上弹出的。

即将要发生的事情是,当你转到应用程序时,你想训练自己的东西。这里的东西主要类似于你家中的传感器。在主屏幕上,你会弹出这个窗口。你可以定义授予令牌的范围以及它允许你访问某些内容。
或者,我实际上可以进一步允许你授予读取访问权限。你可以授予权限访问权限。所有者不仅可以这样做,还可以删除然后注销这些令牌。
这实际上是一种隐私。我们可以说,如果你不问我,你就不能得到我的内容或可访问范围。整个应用程序进程中,我确定他们都在这里。我们使用P标签来标记手机控制设备。因此,P tableau是一个为用户体验创建本机应用程序的网站。
它们基本上解决了编写本机移动应用程序中的问题以及API中的这一新设计概念。这就是我们在这里看到的方式。基本上,你可以将其添加到屏幕上以进行推广。
这基本上是本机应用程序功能。他们可以执行脱机功能。尽管功能有限,但仍然可以向你显示历史上已经存在的内容。你仍然可以控制这些东西。
对于我们来说,这种离线连接非常有趣。因为它实际上使你能够为我们提供尽可能少和安装并使用更多数据的可能性。此外,你必须知道我的设备中保留了哪些数据,其中有什么数据?
此功能基本上是我部署了一系列技术的芯片、服务人员。因此,我们需要谈论安全性,另一方面,你可以通过HTTPS访问页面。

我们谈论到接入新设备。蓝牙入门。蓝牙基本上是基于低功耗蓝牙。因此,这里的想法是我们使用蓝牙网络API来发现并连接另一个蓝牙设备网络。
之后,身份验证完成后,我们会将WiFi信息传递给新设备。然后,新设备通过WiFi连接到网络。
因此,在网络上,这就是我们选择它的原因,这与服务器有关。我们有HTTPS。另外,如果我们想在发现中启动蓝牙,则必须通过用户手势来完成。这是隐私的另一方面。

因此,我们在一个度假屋里构建了一个物联网。我们正在考虑如何将它们连接在一起。将它们符合标准地连接在一起。因为你可以获得云服务器,并且可以查看该云连接和云服务器(在本例中为Mozilla),所以他们实际上已将标准优先。无论我们是看解决方案,还是关注解决方案的可扩展性。
我们可以扩展这个度假屋用例中的内容吗?我们能否将其扩展到拥有数以百万计设备的智慧城市的案例中?这就是可扩展性。另一件我们认为非常非常有价值的事是数据。那么,我们如何充分利用用户数据呢?
我们应该尊重他们的隐私。考虑到这一点,我们想充分利用数据。我们要进行静态分析,然后再进行预测。考虑到这一点,我们基本上是先选择学习。你是否了解联盟学习(Federated Learning)?
联盟学习(Federated Learning):简称FL,是一种机器学习技术,可在拥有本地数据样本的多个分散边缘设备或服务器之间训练算法,而无需交换它们的数据样本。 摘自维基百科

我们在这个物联网解决方案中使用FL做了很多工作。学习基本上是没有集中训练数据的协作运动学习的情况下发生的。因此,该概念基本上是两年前由Google Paper提出并命名的, 然后去中心化。
我们之所以说去中心化,是因为我们提到没有集中的训练数据。在这种情况下,实际上是我们在谈论客户端和聚合服务器。每个客户都有自己的本地训练模型。
我们将在下一张幻灯片中更多的讨论隐私,以及最后一点是用户尽可能的个性化。你可以拥有本地训练的模型,并且有可能为特定用户提供个性化该模型。

如果是物联网场景,我们谈论隐私时,是指客户端,链接和服务器的数据隐私。我们可以一起讨论它们。用于学习的隐私功能基本上与接下来的三点匹配,可以选择性更新,有选择的根据限制性法律来数据更新。
你不要尝试不通过原始数据获取更新使用。相反,你可以遍历参数。然后,你处理本地数据,使其尽可能接近数据结果。让我们在架构中对此进行更具体的解说。
这就是我们用于为整个度假胜地构建物联网的架构。Mozilla物联网网关之间的事物就足以进行通信。我们说到的网关在每个度假屋中使用云服务器进行收集。正如你所知道,这些都是云服务器。

在这种情况下,我们呼叫客户端。客户端有物联网网关。从FL的角度来看,云服务器就是聚合数据服务器。
这是位于每个客户端中每个网关中的学习模型。一旦有了初始模型。你可以根据历史数据获得它。然后训练初始模型,然后找到它。
你可以将它们定位到每个客户端中。对于云服务器,它们可能是相同的。
一旦进入,本地网关便开始根据从自己房屋收集的数据来训练其模型并更新此模型。他们继续这样做。然后,将在需要更新聚合服务器时随机选择一定数量的客户端。基本上不是这次,就是下次。
我们并不知道这次选择了其中的三个,另外一组中的七个。
实际上是更新了,它们使用参数发送更新的方式。原始数据将保留在室内。然后,云服务器基本上会根据收集的更新,由云服务器,聚合服务器来更新模型本身。一旦更新,它也将同步更新客户端模型。
因此,有了这个,我们实际上可以与其他人见面。首先,数据不会流失。原始数据不会跑到室外。其次,聚合服务器仍可以基于该模型来训练聚合服务器,启动预测,创建统计预测结果。
我们在物联网FL方面的工作一直取得不错的进展。此时,我们实现在客户端和服务器之间同步了框架。然后,我们实际上设法在Raspberry Pi 3中获得了各种流。这只是一个简单的示例,我们在聚合服务上运行,执行这个服务,就像该模型房屋中的实例程序用法一样。目前还没完全开发完。
这实际上还只是一个模型。我们测试框架时,创建的最简单的模型,只是尝试看看物联网是如何工作的。
这个模型主要是识别数字书写方式。因此,我们在这里基本上显示了聚合服务器。随机从三个客户端收集更新。然后随机选择三个客户端更新。

这个为我们提供了实际更新模块的参数。因此,我们在这里创建的实际上是预测准确性的统计数据。
我们的快照大约是九点或十点。你可以在顶部看到的精度是0.98。实际上,这已经很好了。我们在0.97,0.98标记上的运行几乎准确地做到了要求的精度。
这一进展是我们内在看到的最新进步。实际上,我们每天都在更新。如果你对这项工作感兴趣,请继续关注我们的进一步工作。7月我们在伦敦举行了还举行了另外一场座谈会。
我的同事将进一步讨论这一部分。以上是我今天要分享的全部。非常感谢你们。
[掌声]
演讲稿原文地址 https://2019.jsconf.eu/ziran-sun/build-an-end-to-end-iot-system-using-javascript-with-gdpr-awareness.html
翻译&校验:freedom
