搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
OCF技术原理及物联网程序开发指南(清华开发者书库)
0.00     定价 ¥ 99.00
威海市图书馆
此书还可采购4本,持证读者免费借回家
  • ISBN:
    9787302511168
  • 作      者:
    李永华
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2018-12-01
收藏
作者简介
李永华  现执教于北京邮电大学,拥有超过10年的嵌入式开发经验,致力于物联网和智能硬件的研究开发工作。在教学中以兴趣为导向,激发学生的创造性;以素质为基础,提高自身教学水平;以科研为手段,促进教学理念转变。通过信息工程专业综合改革,探索了以“学生学为中心”的教学模式,营造生动活泼的学习方法,提高学生独立思考问题、发现问题、解决问题的能力,激发学生的创造激情。在研发及教学实践中指导学生实现200余个创新案例,并指导着一支物联网开发团队,曾在物联网、开源硬件等技术领域进行了多场学术报告,并且出版了《AllJoyn技术原理及物联网程序开发指南》《Arduino实战指南——游戏开发、智能硬件、人机交互、智能家居与物联网设计30例》《Arduino软硬件协同设计实战指南》等多部物联网技术方面的著作。
展开
内容介绍
本书主要内容包括以下几个方面: 物联网的发展概述,主要介绍物联网的产生、架构、技术及发展情况; OCF技术的基本原理,阐述OCF技术框架及核心功能; OCF资源模型,主要描述OCF的资源定义以及资源的操作、功能交互、消息传递方法; OCF的具体开发方法,包括基于Mac、Windows、Linux、Android和Arduino开发的方法,主要描述软件工具、编译方法、实例代码和综合实例。本书内容由浅入深,先系统后实践,技术讲解与实践案例相结合,以满足不同层次人员的需求; 同时,本书附有实际开发的软件实现代码,供读者自我学习和自我提高使用。
本书可以作为大学信息与通信工程及相关领域的高年级本科生及研究生的教材,也可以作为物联网、OCF技术开发人员的技术参考书,还可以为物联网方向的创客提供帮助。
展开
精彩书摘
3.1基本概念
资源模型定义了一些概念和机制,这些概念和机制提供了OCF生态系统中设备之间的一致性和核心互操作性。在此基础上,资源模型的概念和机制被映射到传输协议上,使得两个设备之间可以进行通信,即每次传输都提供了通信协议的互操作性。因此,资源模型允许独立于传输来定义互操作性。
此外,资源模型中的概念支持基本设备及彼此之间关系的建模,并在一个环境中捕获互操作性所需的语义信息。通过这种方式,OCF超越了简单的协议互操作性,在可穿戴设备和物联网生态系统中,可以获取真正互操作性所需的丰富语义。
在OCF资源模型中,基本概念有实体、资源、统一资源标识符、资源类型、属性、表示、接口、集合和链接。此外,通用的操作有创建、检索、更新、删除和通知,也就是CRUDN。这些概念和操作以各种各样的方式组合,可以为OCF框架的各种应用场景定义所需的语义和互操作。
OCF资源模型框架中,在一个给定应用中的软硬件人工产品、值、用例和上下文被称为一个实体。当一个实体需要可视化、交互或者被操作时,它就会由一个抽象概念表示,这个抽象概念称为资源。一个资源的压缩和表示是一个实体的最重要部分,通过使用URI可以被标识、寻址和命名。
“属性”就是“键值对”,表示资源的主要部分。这些属性的一个“快照”就是资源的“表示”。“表示”是一个特定的视图,且可应用于该视图中的机制就是“接口”。与一个资源进行交互是由“请求”和“响应”完成的,其中就包含“表示”。
一个资源实例源于一个资源类型。一个资源和另一个资源之间的单向关系被定义为一个“链”。一个有“属性”和“链路”的资源就是一个“集合”。
一组“属性”可以用来定义一个资源的一个状态。通过使用合适的“表示”,使用该资源的响应或到该资源的请求,该资源的状态可以被检索或更新。
一个资源(和资源类型)可以表示,并用于暴露一种能力。通过与该资源的交互可以训练或使用这种能力。这样的能力可以用于定义类似发现、管理和广播这样的过程。例如,“在一个设备上发现资源”可以定义为一个特定资源表示的检索、该资源的属性值描述或者引用设备上的资源。
具有请求或响应的表示信息可以“在线”传输,这可以通过使用传输协议序列化或者封装到传输协议负载上的方式,具体的方法由请求或响应到传输协议的映射规范来决定。
在本书中,以RAML定义标准规范。同时,也可以使用JSON模式。有关OCF规范中定义的资源类型,将在第9和10章中介绍。
3.2OCF资源
一个资源可能会被定义为一种或多种资源类型,请求实例化/创建一个资源应该指明定义该资源的一个或多个资源类型。一个资源将被托管在一个设备中,如上所述,一个资源应该有一个URI,该URI可以在创建或实例化资源时由管理机构分配,也可以通过资源类型的规范预定义,如图31所示。


图31一个资源例子


核心资源是OCF规范中定义的、用于实现功能交互(如发现、设备管理等)的资源。其中,功能交互在第6章中定义。在核心资源中,“/oic/res”“/oic/p”和“oic/d”是所有的设备上都应该支持的; 同时,设备可能根据支持的交互功能,支持其他的核心功能。
3.3资源属性
一个属性描述了资源所暴露的一个方面或概念,包括与该资源相关的元信息。一个属性应该有一个名称(即属性名)和一个值(即属性值)。属性是以键值对的形式存在,“键”就是属性名,“值”就是属性值,键值对就类似于<属性名>=<属性值>。例如,如果“温度”属性有一个属性名“temp”和一个属性值“30F”,则该属性就表达为“temp=30F”。属性的特定形式是由编码模式决定的。例如,在JSON中,属性表示为“键”: 值(如“temp”: 30)。除此之外,属性的定义包括以下内容。
(1) 值类型: 定义了属性值可能采用的值。值类型可以是一个简单数据类型(如string、boolean等),如上文所定义,也可以是一个用特定模式定义的复杂数据类型。值类型可以定义值规则,即定义一些规则,属性值会采用这些规则,并将其用于属性值中。这些规则可以定义值的范围、最大、最小值、公式、枚举值集合、阵列、条件值,甚至是对其他属性值的依赖关系。这些规则可以用于验证属性值中的特定值,并且标记错误。
(2) 强制性: 指明对于一个给定的资源类型,该属性是否是强制的。
(3) 访问模式: 指明该属性是否可以被读写。更新等同于写入。“r”表示读,“w”表示写,二者都是可以被指定的; 同时,写操作并不会意味着就会自动进行读操作。
一个属性的定义可能包括下列附加信息,这些项可以提供有用的信息。
(1) 属性名: 指明一个属性人性化的名称,通常不会在线发送。
(2) 描述: 一个描述性的文本,定义该属性的目的和预期的使用。
一个属性可能被用在一个URI的查询部分,作为选择一个特定资源的标准。该过程可以通过将属性声明为查询的一个字段来完成(即<属性名>=<想要的属性值>)。在OIC 1.1版本的规范中,查询过滤器中只允许ASCII字符串,不允许NUL字符串。这意味着,只有使用ASCII字符的属性值,才可以在查询过滤器中被匹配。当查询中声明的属性与目标资源的完整表示中对应的属性相匹配时,该资源就被选择。完整表示目标所有资源类型的属性集合,是这个集合的快照。如果在查询的“过滤”字段声明了一个属性,那么,声明的属性就会与接口定义表示相匹配,以隔离表示的特定部分。
通常来说,一个属性只有在与其相关的资源内才是有意义的。然而,有一些属性可能被所有的资源支持,称为公共属性,这些属性在资源之间保持资源完整性,即它们的“键=值”对在所有的资源中的含义都相同。下面介绍公共属性的字段。
公共属性可以在所有资源中定义。以下几种属性被定义为公共属性: 资源类型、资源接口、名称和资源标识。
一个公共属性的名称应该是唯一的,不应该被其他属性使用。当定义一个新的资源类型时,如果是非公共属性,则不应该使用已经存在的公共属性名称(如“rt”“if”“p”和“id”)。如果定义一个新的公共属性,应该确定其名称不应该被其他属性所使用。一个新公共属性名称的唯一性,可以通过检查所有已存在、OCF所定义的资源类型属性来核实。然而,随着资源类型的增长,这可能越来越难以处理。为了阻止未来出现这样的名称冲突,OCF为公共属性保留了一个特定的名称空间。
展开
目录

目录

第1章物联网技术概述

1.1物联网基本架构

1.1.1物联网的由来

1.1.2物联网的结构

1.2物联网相关技术

1.2.1接入技术

1.2.2基于网络的信息管理技术

1.2.3物联网语义

1.2.4M2M技术

1.3物联网的发展

1.3.1两化融合及互联网+

1.3.2物联网联盟

1.3.3OCF技术

1.4RESTful

1.4.1概述

1.4.2实现

1.5Swagger

第2章OCF技术基础

2.1OCF术语和定义

2.2OCF技术简介

2.3OCF标识与寻址

2.4OCF数据类型

第3章OCF的资源模型

3.1基本概念

3.2OCF资源

3.3资源属性

3.4资源类型

3.4.1资源类型属性

3.4.2资源类型定义

3.4.3多“rt”值资源

3.5设备类型及资源接口

3.5.1接口属性

3.5.2接口方法

3.6资源结构

3.6.1资源关系

3.6.2集合

3.7第三方指定扩展

第4章OCF资源的操作

4.1概述

4.2创建

4.3检索

4.4更新

4.5删除

4.6通知

第5章网络连接及终端发现

5.1网络连接架构

5.2IPv6网络层需求

5.3终端定义

5.4终端发现

5.5基于CoAP的终端发现

第6章OCF的功能交互

6.1服务开通

6.2资源发现

6.2.1直接发现

6.2.2间接发现/基于资源目录

6.2.3广播发现

6.2.4资源信息发布过程

6.2.5资源发现信息

6.2.6使用“/oic/res”的资源发现

6.2.7基于资源目录的发现

6.3通知

6.4设备管理

6.5场景

6.6图标

6.7内省

第7章OCF中的消息传递

7.1CRUDN到CoAP的映射

7.1.1具有请求和响应的CoAP方法

7.1.2内容类型

7.1.3CoAP响应代码及块传输

7.2CoAP序列通过TCP

7.3CBOR中的负载编码

第8章OCF的应用实例

8.1OCF操作例程

8.2OCF交互场景与部署模型

8.3其他资源模型与OCF映射

8.3.1多资源模型

8.3.2支持多资源模型的OCF方法

8.3.3资源模型指示

8.3.4配置文件示例

第9章RAML定义核心资源类型

9.1OCF集合

9.2设备配置

9.3平台配置

9.4设备

9.5维护

9.6平台

9.7ping

9.8可发现资源基准接口

9.9可发现资源的链接表接口

9.10场景(顶层)

9.11场景集合

9.12场景成员

9.13资源目录资源

9.14图标

9.15内省资源

第10章Swagger定义核心资源类型

10.1图标

10.2内省资源

10.3OCF集合

10.4平台配置

10.5设备配置

10.6设备

10.7维护

10.8平台

10.9ping

10.10资源目录资源

10.11可发现资源

10.12场景

第11章应用资源类型规范

11.1基准模型构造

11.1.1概述

11.1.2属性定义

11.1.3示例资源定义

11.1.4可观察的资源类型

11.1.5复合资源类型

11.1.6基础资源

11.2资源类型定义概述

11.3应用资源类型举例

第12章OCF开发方法及案例

12.1基于Mac的开发方法

12.1.1Mac OSX环境下的编译方法

12.1.2APP实例

12.1.3实例代码

12.2基于Windows的开发方法

12.2.1软件工具的安装

12.2.2Windows环境下的编译方法

12.2.3APP实例

12.3基于Linux的开发方法

12.3.1软件工具的安装

12.3.2Linux环境下的编译方法

12.3.3APP实例

12.3.4实例代码

12.4基于Android的开发方法

12.4.1软件工具的安装

12.4.2Android环境下的编译方法

12.4.3APP实例

12.4.4实例代码

12.5基于Arduino的开发方法

12.5.1配置Arduino环境

12.5.2软件工具的安装

12.5.3程序编译

12.5.4实例代码

12.6综合实例

12.6.1Arduino实例

12.6.2Android实例



展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用威海市图书馆的读者帐号和密码进行登录

点击获取验证码
登录