Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. ·...

26
物联网开发技术——Android Things 第七章 Weave IOT 应用

Transcript of Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. ·...

Page 1: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

第七章

Weave 的 IOT 应用

Page 2: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

在 Google IO 2015中宣布的 Android for IoT – Brillo和配套的协议 Weave 面世!

什么是google weave?

Google把Weave定位为物联网的一个通信层,但本质上,Weave应该属于物

联网系统框架的范畴。因为它不依赖于任何底层的通信协议,它可以运行在任何常

见的物联网通信协议之上,包括WiFi,BLE,Zigbee等等。

Weave 是一个开放的通信协议,是专门设计用于物联网设备进行通讯的跨平台通用语言。

7.1 Weave 协议简介

Page 3: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

1. Weave的整体架构:

Weave是一个完整的物联网协同框架,它包含了一系列的组件,分别应用于

不同的目标对象。

大致来说,Weave包含三个大的功能组件:支撑Weave运行的云端组件

WeaveCloud,运行在智能手机(或Pad等其它智能终端)上的智能手机客户端,

以及运行在物联网设备上的设备端组件LibWeave和uWeave。

Page 4: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

它是与操作系统无关的一个物联网系统框架,

可以移植到任意操作系统上。

针对不同的目标设备,比如资源受限的嵌入

式硬件设备,资源充足的硬件设备,智能手

机客户端(Android或iOS),云平台等,分

别有不同的代码与之对应。

这些不同的代码或组件,Weave提供了一套

标准的设备操作命令(叫做Schema),以及

对应的认证机制。

Weave的大部分代码都是开放的,而且采用

了相对宽松的BSD协议。

2. Weave的特点:

Page 5: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

有了 Weave ,你可以直接在你的设备中构建可交互的通信。Weave 提供了

一种消息服务,它能够使手机和设备进行本地通信,也可以通过云进行远程通信。

Weave 的云服务可以安全、可伸缩地处理远程通信,并访问你的具有 web 连接能

力的设备。

Weave 还提供一组服务,让你可以安全地建立设备并提供访问控制。

另外,Weave 直接内建于 Brillo 中,但也可以在你现存的基于 Linux 的系统上使用

Weave 库。

Page 6: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

1. LibWeave&uWeave

一个叫做LibWeave,适应于具备复杂计算能力的设备,这类设备支持Linux或者其它功能丰富的操作系统内核,具有数十M以上的内存空间。

另外一个叫做uWeave,指的是微小(Micro)的意思。顾名思义,uWeave则是运行在资源受限的嵌入式设备上。

7.2 Weave组件介绍

Page 7: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

2. 智能手机客户端

Weave开发了针对Android和Apple ios 两种智能手机操作系统的客户端程序

库和对应的API,智能手机程序员可以直接调用Weave Client的API,来开发客户

体验良好的Weave应用程序,来操控基于Weave的物联网设备。

Page 8: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

3. Weave cloud

Weave开发了针对Android和Apple ios 两种智能手机操作系统的客户端程序

库和对应的API,智能手机程序员可以直接调用Weave Client的API,来开发客户

体验良好的Weave应用程序,来操控基于Weave的物联网设备。

Page 9: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

Weave组件之间是通过WeaveAPI进行通信和交互的,Weave定义了两类API:Weave Cloud API和Weave Local API。智能手机客户端和LibWeave与Weave Cloud通信,必须使用Weave Cloud API。而智能手机客户端与LibWeave之间的通

信,则基于Weave Local API。这两类API分别基于不同的传输层协议,完成通信

功能。下图示意了整个协议栈:

7.3 Weave API

Page 10: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

一般情况下,智能手机客户端通过局域网(WiFi,Ethernet等)与Weave设备通信,大部分的家庭局域网上,终端设备的IP地址是不固定的,通过DHCP动态

分配。

家庭网关前后两次分配给终端的IP地址,一般是不同的,因此智能手机客户

端无法通过固定的IP地址,直接与Weave设备进行通信。

1. 智能手机客户端如何定位到Weave设备

在定位到Weave设备,并建立通信连接之后,智能手机客户端与Weave设备

之间的通信,必须是安全的。即使通信报文被截获,攻击者也无法查看具体内容。

2. Weave设备必须是安全的

Page 11: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

7.4 Weave device SDK

Page 12: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

Weave 为 iOS 和 Android 提供了移动设备 SDK,这样你可以为移动用户构

建应用来控制和增强连接设备的使用体验。如果你是一个应用开发者,想让你的应

用延伸到物理世界的设备上,你可以使用 Weave mobile 和 web API 在单一的应

用中控制多个跨品牌的 Weave 设备。

Page 13: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

Device SDK设备开发包

Cloud Service云服务

Developer Tools开发者工具

1. Google weave应用构建

Page 14: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

Page 15: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

Page 16: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

2. Weave –设备初始化(device initliazation)

Page 17: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

3. Weave trait 初始化

Page 18: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

4. Weave Server

Page 19: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

5. Weave –设备注册

Page 20: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

Weave –设备注册代码:

Page 21: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

7.5 Weave 开发工具(Development tools)

Page 22: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

1. IoT Developer Console

Page 23: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

2. Metrics and Reports

Page 24: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

Page 25: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave

物联网开发技术——Android Things

Page 26: Weave 的IOT 应用gur.zucc.edu.cn/files/c136762b7db55d2e7a5c4a46c4d8c548.pdf · 2019. 11. 9. · ——Android Things. 在. Google IO 2015中宣布的Android for IoT – Brillo和配套的协议Weave