| 作 者: | 耿兴元 |
| 出版社: | 机械工业出版社 |
| 丛编项: | |
| 版权说明: | 本书为公共版权或经版权方授权,请支持正版图书 |
| 标 签: | 暂缺 |
| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
前言 \n
第一部分 基础环境篇 \n
第1章 阅读源代码前的准备 2 \n
1.1 ODL项目介绍 2 \n
1.1.1 ODL框架之争 3 \n
1.1.2 SAL的演进 3 \n
1.1.3 ODL的子项目及分类 4 \n
1.1.4 ODL项目的管理 6 \n
1.2 搭建ODL编译构建环境 6 \n
1.2.1 安装JDK 6 \n
1.2.2 安装及配置Maven 8 \n
1.3 阅读和调试ODL源代码 9 \n
1.3.1 ODL项目源码下载 9 \n
1.3.2 IntelliJ IDEA安装 10 \n
1.3.3 IntelliJ IDEA调试ODL的项目源码 11 \n
1.4 ODL设计目标 12 \n
1.5 ODL总体架构 13 \n
1.6 本章小结 15 \n
第2章 ODL项目管理设计详解 16 \n
2.1 问题的提出 16 \n
2.2 解决思路 17 \n
2.3 实现详解 20 \n
2.3.1 基础parent设计 20 \n
2.3.2 模块构建 23 \n
2.3.3 feature组织 24 \n
2.3.4 版本打包 25 \n
2.4 项目模板 26 \n
2.4.1 项目目录布局设计 26 \n
2.4.2 ODL模板项目 27 \n
2.5 本章小结 28 \n
第二部分 核心原理篇 \n
第3章 ODL基本对象的设计与实现 30 \n
3.1 QName 30 \n
3.1.1 QName定义 30 \n
3.1.2 QName对象比较 36 \n
3.1.3 QName对象创建 37 \n
3.2 YangInstanceIdentifier 38 \n
3.2.1 Path接口定义 38 \n
3.2.2 YangInstanceIdentifier的类定义 39 \n
3.2.3 YangInstanceIdentifier的比较42 \n
3.2.4 InstanceIdentifier类 44 \n
3.3 NomalizedNode 44 \n
3.3.1 NormalizedNode类的定义 45 \n
3.3.2 NormalizedNode实例的创建48 \n
3.4 本章小结 49 \n
第4章 数据树的设计与实现 50 \n
4.1 基本概念 50 \n
4.1.1 配置树与状态树 51 \n
4.1.2 标识与定位 51 \n
4.1.3 快照与MVCC 52 \n
4.2 数据树的设计与实现 52 \n
4.2.1 Tree结构的设计 52 \n
4.2.2 DataTree相关接口定义 55 \n
4.2.3 DataTree的创建 57 \n
4.3 数据树的读写过程 59 \n
4.3.1 快照实现原理 61 \n
4.3.2 数据校验的实现 61 \n
4.4 MVCC机制与实现 63 \n
4.4.1 版本号变更规则 63 \n
4.4.2 并发控制 65 \n
4.5 本章小结 67 \n
第5章 MD-SAL DataStore接口设计 68 \n
5.1 基本概念 69 \n
5.1.1 事务和事务链 70 \n
5.1.2 数据分片 70 \n
5.1.3 三阶段提交 71 \n
5.2 DataStore SPI设计 72 \n
5.2.1 DOMStore 73 \n
5.2.2 DOMStoreThreePhase-CommitCohort 75 \n
5.2.3 DOMStoreTreePublisher 76 \n
5.3 DataStore DOM API设计 77 \n
5.3.1 DOMDataBroker 77 \n
5.3.2 DOMDataTreeSharding-Service 78 \n
5.3.3 DOMDataTreeChange-Service 80 \n
5.4 DataStore Binding API设计 82 \n
5.4.1 Binding基本对象接口 82 \n
5.4.2 DataBroker 84 \n
5.4.3 DataTreeChangeService 87 \n
5.5 本章小结 87 \n
第6章 MD-SAL DataStore的实现原理 88 \n
6.1 概述 89 \n
6.1.1 背景知识 89 \n
6.1.2 实现原理 91 \n
6.2 Raft算法及其实现 92 \n
6.2.1 Raft算法介绍 93 \n
6.2.2 RaftActor设计与实现 98 \n
6.3 DataStore后端实现详解 106 \n
6.3.1 Shard的实现 106 \n
6.3.2 ShardManager 110 \n
6.3.3 ShardStrategy及实现 112 \n
6.4 DataStore前端实现详解 113 \n
6.4.1 DOMStore的实现 113 \n
6.4.2 DOMDataBroker的实现 121 \n
6.4.3 事务链实现 124 \n
6.5 Binding DataBroker的实现 125 \n
6.5.1 Adapter设计 125 \n
6.5.2 BindingDOMDataBroker-Adapter的初始化 126 \n
6.6 本章小结 130 \n
第7章 MD-SAL RPC的设计与实现 131 \n
7.1 一个实例 131 \n
7.1.1 RPC的YANG模型定义 131 \n
7.1.2 RPC的生成接口 133 \n
7.1.3 RPC的实现与调用 135 \n
7.2 RPC机制的总体设计 136 \n
7.2.1 Binding接口设计 136 \n
7.2.2 DOM接口设计 137 \n
7.2.3 总体实现流程 139 \n
7.3 RPC机制实现详解 141 \n
7.3.1 DOMBroker实现详解 141 \n
7.3.2 BindingBroker实现详解 144 \n
7.4 Remote RPC实现详解 149 \n
7.4.1 Gossip协议的实现 150 \n
7.4.2 远程RPC注册及调用 152 \n
7.4.3 Actor设计实现总结 154 \n
7.5 本章小结 155 \n
第8章 MD-SAL Notification的设计与实现 156 \n
8.1 一个实例 156 \n
8.1.1 YANG模型定义 156 \n
8.1.2 生成的接口 157 \n
8.1.3 消息发布 157 \n
8.1.4 消息订阅 158 \n
8.2 MD-SAL Notification接口设计 158 \n
8.2.1 DOM接口 159 \n
8.2.2 Binding接口 160 \n
8.3 MD-SAL Notification实现剖析 161 \n
8.3.1 DOM层实现详解 161 \n
8.3.2 Binding适配实现 169 \n
8.4 本章小结 171 \n
第9章 MD-SAL Mount机制与NETCONF 172 \n
9.1 Mount服务接口设计 172 \n
9.1.1 DOM接口 173 \n
9.1.2 Binding接口 174 \n
9.2 Mount机制的实现 175 \n
9.2.1 DOM接口实现 176 \n
9.2.2 NETCONF南向插件的实现 178 \n
9.3 本章小结 186 \n
第10章 MD-SAL Cluster Service 187 \n
10.1 EntityOwnershipService 187 \n
10.1.1 基本概念 187 \n
10.1.2 接口设计 188 \n
10.1.3 实现说明 192 \n
10.2 ClusterSingletonService 195 \n
10.2.1 接口设计 195 \n
10.2.2 实现说明 196 \n
10.3 本章小结 198 \n
第三部分 公共组件篇 \n
第11章 AAA 200 \n
11.1 Shiro框架介绍 201 \n
11.1.1 Shiro是什么 201 \n
11.1.2 Shiro的架构 202 \n
11.1.3 Shiro核心处理流程