第1章 物联网技术概述 1
1.1 物联网产生背景 1
1.2 物联网基本架构 2
1.2.1 物联网的由来 2
1.2.2 物联网的结构 3
1.3 物联网相关技术 5
1.3.1 接入技术 6
1.3.2 基于网络的信息管理技术 9
1.3.3 物联网语义 12
1.3.4 M2M技术 16
1.4 物联网的发展 17
1.4.1 两化融合及互联网十 17
1.4.2 物联网联盟 19
1.4.3 AllJoyn技术 20
第2章 AlIJoyn技术 22
2.1 AllJoyn技术简介 23
2.2 AllJoyn系统与D-Bus总线规范 26
2.3 AllJoyn Core 26
2.3.1 远程方法调用 26
2.3.2 AllJoyn服务 27
2.3.3 AllJoyn Bus 27
2.3.4 后台程序/路由 30
2.3.5 总线附件 33
2.3.6 总线方法、总线属性和总线信号 34
2.3.7 总线接口 35
2.3.8 总线对象和对象路径 35
2.3.9 总线对象代理 36
2.3.10 总线名称 36
2.3.11 广播和发现 37
2.3.12 会话 39
2.3.13 总体描述 41
2.4 高层系统架构 45
2.4.1 从拓扑看网络结构 45
2.4.2 从设备看系统结构 47
2.4.3 从路由/后台程序看系统结构 49
2.4.4 瘦客户端结构 120
2.4.5 用户角度的系统结构 120
2.4.6 AllJoyn的协议栈 123
2.5 总结 123
第3章 AllJoyn基础服务 124
3.1 Onboarding服务框架 124
3.1.1 概况 124
3.1.2 Onboarding调用流程 125
3.1.3 Onboarding接口 125
3.1.4 默认XML 130
3.1.5 错误处理 130
3.1.6 最佳实践 131
3.2 Notification服务框架 133
3.2.1 概况 133
3.2.2 典型的调用流程 134
3.2.3 Notification接口 134
3.2.4 Notification服务框架使用实例 140
3.2.5 UI注意事项 140
3.2.6 Notification最佳实践 142
3.3 Configuration服务框架 143
3.3.1 规范概述 143
3.3.2 典型调用流程 144
3.3.3 Config接口 146
3.3.4 默认XML 148
3.3.5 Configuration最佳实践 149
3.4 Control Panel服务框架 149
3.4.1 规范概述 150
3.4.2 调用流程 150
3.4.3 接口 150
3.4.4 错误处理 167
3.4.5 BusObject Map 167
3.4.6 注意事项 168
3.4.7 Control Panel最佳实践 168
第4章 基于Android的开发方法 171
4.1 AllJoyn的Android开发简介 171
4.1.1 创建新的安卓项目 171
4.1.2 导入样例项目 173
4.1.3 代码开发详解 175
4.1.4 Android开发注意事项 201
4.2 Base Service应用 203
4.2.1 Notification 203
4.2.2 Control Panel 204
4.2.3 Configuration 204
4.2.4 Onboarding 206
第5章 基于Windows的开发方法 212
5.1 配置Windows环境 212
5.1.1 软件工具的安装 212
5.1.2 添加环境变量 213
5.1.3 验证安装 214
5.1.4 Git下载源码 214
5.2 搭建AllJoyn框架 215
5.2.1 Windows平台下AllJoyn基本设置 215
5.2.2 编译variants 216
5.2.3 AllJoyn_java 216
5.2.4 生成API文档 216
5.2.5 确定Microsoft Visual C+++版本 216
5.2.6 使用绑定路由构建 217
5.2.7 构建C+++单元测试 217
5.3 AllJoyn路由 217
5.4 运行单元测试 219
5.4.1 运行C+++单元测试 219
5.4.2 运行Java junit测试 219
5.5 APP实例:Chat 219
5.5.1 执行提前编译好的.exe文件 219
5.5.2 通过Visual Studio运行 221
5.5.3 实例代码 221
第6章 基于Linux的开发方法 231
6.1 AllJoyn的环境配置方法 231
6.1.1 搭建工具和库文件 231
6.1.2 软件工具的安装 231
6.1.3 获取AllJoyn资源 235
6.1.4 搭建AllJoyn框架 235
6.1.5 建立API文档 236
6.1.6 构建C+++单元测试 236
6.1.7 运行AllJoyn应用程序 236
6.1.8 运行单元测试 237
6.2 About特性的开发方法 238
6.2.1 参考代码说明 238
6.2.2 建立发送宣告信号的应用程序 238
6.2.3 建立接收宣告信号的AllJoyn框架 239
6.2.4 发送宣告信号的示例代码 239
6.2.5 接收宣告信号的示例代码 243
6.3 配置服务的开发方法 245
6.3.1 应用类 245
6.3.2 获取服务框架的配置 245
6.3.3 建立使用Config Server的应用程序 245
6.3.4 设置AllJoyn框架和About特性 246
6.3.5 实现应用:Config Server 246
6.3.6 实现应用:Config Client 260
6.4 通知服务的开发方法 262
6.4.1 参考代码说明 263
6.4.2 执行通知发送方:Notification Producer 264
6.4.3 执行通知接收方:Notification Consumer 267
6.5 控制面板服务的开发方法 268
6.5.1 相关代码说明 268
6.5.2 受控端的实现 270
6.5.3 XML UI单元描述 274
第7章 瘦客户端开发方法 284
7.1 瘦客户端概述 284
7.2 瘦客户模型 284
7.2.1 AllJoyn瘦客户端核心库 285
7.2.2 AllJoyn瘦客户端核心库设备 286
7.3 瘦客户端核心库架构 287
7.4 瘦客户端示例 288
7.4.1 最小化的瘦客户端系统 289
7.4.2 基于瘦客户端的无线传感器网络 292
7.5 瘦客户端基础服务 295
7.5.1 AllJoyn通知服务框架 295
7.5.2 AllJoyn Onboarding服务框架 297
7.5.3 AllJoyn控制面板服务框架 299
7.5.4 AllJoyn配置服务框架 313
7.6 构建运行瘦客户端服务器应用程序 320
7.6.1 构建瘦客户端服务器应用程序 320
7.6.2 运行瘦客户端服务器应用程序 321
7.7 在Arduino设备上运行瘦客户端程序 331
7.7.1 硬件环境配置 332
7.7.2 导入AllJoyn库文件 333
7.7.3 运行AllJoyn程序 334
7.8 总结 337
第8章 iOS/OS X的开发方法 338
8.1 AllJoyn的开发环境搭建与设置 338
8.1.1 开发环境搭建 338
8.1.2 开发指导 344
8.1.3 开发实例 349
8.2 About特性的开发方法 353
8.2.1 About介绍 353
8.2.2 About开发简介 354
8.2.3 About实例 360
8.3 iOS系统的基础服务 360
8.3.1 通知开发方法 360
8.3.2 配置服务开发方法 366
8.3.3 Onboarding的开发方法 371
8.3.4 控制面板服务的开发方法 375
参考文献 379