全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 程序与语言

ODL技术内幕(架构设计与实现原理)/中兴通讯技术丛书

  • 定价: ¥79
  • ISBN:9787111635093
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:机械工业
  • 页数:247页
  • 作者:耿兴元
  • 立即节省:
  • 2019-09-01 第1版
  • 2019-09-01 第1次印刷
我要买:
点击放图片

导语

  

内容提要

  

    这是一本从源代码层面深入剖析ODL的著作,旨在帮助读者在透彻理解ODL的先进架构、设计思想和实现原理后,能更有高效地进行SDN开发。
    作者是的ODL专家,是SDN领域的布道者,有在通讯类软件研发和系统设计领域有超过15年的经验对ODL及其源码有深入的研究和理解。ODL架构演进极快,核心模块和接口变动频繁,ODL子项目众多,功能和接口碎片化严重,学习门槛很高,面对数百万行的源代码更是无从下手。
    作者根据自己的经验,对ODL的核心功能及其源代码(氟版本和氖版本)进行反复提炼、抽丝剥茧,不仅让读者理解ODL的系统架构、设计思想、实现原理,而其能让读者领略ODL实现源码中的代码和设计模式,最终实现让读者更高效地使用SDN的目的,掌握SDL的精髓。
    全书13章,分为三个部分:第一部分,基础环境篇(第1-2章)主要介绍了ODL的核心概念、架构、设计目标、编译构建环境的搭建、源码阅读的方法,以及ODL社区对众多子项目的管理实践。第二部分,核心架构篇(第3-10章)从源代码的角度详细分析了ODL的基本对象、数据树、MD-SAL DataStore、MD-SAL RPC、MD-SAL Notification、MD-SAL Mount、MD-SAL Cluster Service的工作机制与实现原理;第三部分,公共组件篇(第11-13章)从源代码角度详细分析了ODL的AAA、RESTCONF、Blueprint等公共组件的设计、实现与扩展。

作者简介

    耿兴元,资深ODL技术专家,目前就职于中兴通讯,是操作系统及支撑平台的软件专家级工程师,在通讯类软件研发及系统设计领域已有超过15年的工作经验。2015~2017年期间,负责基于ODL的商用SDN控制器平台的设计和研发管理工作。
    在ODL领域有多年的研究和实践经验,曾与SDNLAB一起创建了开源项目Jaguar(基于ODL的Kubernetes网络解决方案),是该开源项目的主要管理者与贡献者。在SDNLAB上录制了ODL的系列课程,深受读者欢迎。

目录

前言
第一部分  基础环境篇
  第1章  阅读源代码前的准备
    1.1  ODL项目介绍
      1.1.1  ODL框架之争
      1.1.2  SAL的演进
      1.1.3  ODL的子项目及分类
      1.1.4  ODL项目的管理
    1.2  搭建ODL编译构建环境
      1.2.1  安装JDK
      1.2.2  安装及配置Maven
    1.3  阅读和调试ODL源代码
      1.3.1  ODL项目源码下载
      1.3.2  IntelliJ IDEA安装
      1.3.3  IntelliJ IDEA调试ODL的项目源码
    1.4  ODL设计目标
    1.5  ODL总体架构
    1.6  本章小结
  第2章  ODL项目管理设计详解
    2.1  问题的提出
    2.2  解决思路
    2.3  实现详解
      2.3.1  基础parent设计
      2.3.2  模块构建
      2.3.3  feature组织
      2.3.4  版本打包
    2.4  项目模板
      2.4.1  项目目录布局设计
      2.4.2  ODL模板项目
    2.5  本章小结
第二部分  核心原理篇
  第3章  ODL基本对象的设计与实现
    3.1  QName
      3.1.1  QName定义
      3.1.2  QName对象比较
      3.1.3  QName对象创建
    3.2  YangInstanceIdentifier
      3.2.1  Path接口定义
      3.2.2  YangInstanceIdentifier的类定义
      3.2.3  YangInstanceIdentifier的比较
      3.2.4  InstanceIdentifier类
    3.3  NomalizedNode
      3.3.1  NormalizedNode类的定义
      3.3.2  NormalizedNode实例的创建
    3.4  本章小结
  第4章  数据树的设计与实现
    4.1  基本概念
      4.1.1  配置树与状态树
      4.1.2  标识与定位
      4.1.3  快照与MVCC
    4.2  数据树的设计与实现
      4.2.1  Tree结构的设计
      4.2.2  DataTree相关接口定义
      4.2.3  DataTree的创建
    4.3  数据树的读写过程
      4.3.1  快照实现原理
      4.3.2  数据校验的实现
    4.4  MVCC机制与实现
      4.4.1  版本号变更规则
      4.4.2  并发控制
    4.5  本章小结
  第5章  MD-SAL DataStore接口设计
    5.1  基本概念
      5.1.1  事务和事务链
      5.1.2  数据分片
      5.1.3  三阶段提交
    5.2  DataStore SPI设计
      5.2.1  DOMStore
      5.2.2  DOMStoreThreePhase-CommitCohort
      5.2.3  DOMStoreTreePublisher
    5.3  DataStore DOM API设计
      5.3.1  DOMDataBroker
      5.3.2  DOMDataTreeSharding-Service
      5.3.3  DOMDataTreeChange-Service
    5.4  DataStore Binding API设计
      5.4.1  Binding基本对象接口
      5.4.2  DataBroker
      5.4.3  DataTreeChangeService
    5.5  本章小结
  第6章  MD-SAL DataStore的实现原理
    6.1  概述
      6.1.1  背景知识
      6.1.2  实现原理
    6.2  Raft算法及其实现
      6.2.1  Raft算法介绍
      6.2.2  RaftActor设计与实现
    6.3  DataStore后端实现详解
      6.3.1  Shard的实现
      6.3.2  ShardManager
      6.3.3  ShardStrategy及实现
    6.4  DataStore前端实现详解
      6.4.1  DOMStore的实现
      6.4.2  DOMDataBroker的实现
      6.4.3  事务链实现
    6.5  Binding DataBroker的实现
      6.5.1  Adapter设计
      6.5.2  BindingDOMDataBroker-Adapter的初始化
    6.6  本章小结
  第7章  MD-SAL RPC的设计与实现
    7.1  一个实例
      7.1.1  RPC的YANG模型定义
      7.1.2  RPC的生成接口
      7.1.3  RPC的实现与调用
    7.2  RPC机制的总体设计
      7.2.1  Binding接口设计
      7.2.2  DOM接口设计
      7.2.3  总体实现流程
    7.3  RPC机制实现详解
      7.3.1  DOMBroker实现详解
      7.3.2  BindingBroker实现详解
    7.4  Remote RPC实现详解
      7.4.1  Gossip协议的实现
      7.4.2  远程RPC注册及调用
      7.4.3  Actor设计实现总结
    7.5  本章小结
  第8章  MD-SAL Notification的设计与实现
    8.1  一个实例
      8.1.1  YANG模型定义
      8.1.2  生成的接口
      8.1.3  消息发布
      8.1.4  消息订阅
    8.2  MD-SAL Notification接口设计
      8.2.1  DOM接口
      8.2.2  Binding接口
    8.3  MD-SAL Notification实现剖析
      8.3.1  DOM层实现详解
      8.3.2  Binding适配实现
    8.4  本章小结
  第9章  MD-SAL Mount机制与NETCONF
    9.1  Mount服务接口设计
      9.1.1  DOM接口
      9.1.2  Binding接口
    9.2  Mount机制的实现
      9.2.1  DOM接口实现
      9.2.2  NETCONF南向插件的实现
    9.3  本章小结
  第10章  MD-SAL Cluster Service
    10.1  EntityOwnershipService
      10.1.1  基本概念
      10.1.2  接口设计
      10.1.3  实现说明
    10.2  ClusterSingletonService
      10.2.1  接口设计
      10.2.2  实现说明
    10.3  本章小结
第三部分  公共组件篇
  第11章  AAA
    11.1  Shiro框架介绍
      11.1.1  Shiro是什么
      11.1.2  Shiro的架构
      11.1.3  Shiro核心处理流程
    11.2  AAA实现原理
      11.2.1  Shiro配置优化
      11.2.2  Realm的8个实现
      11.2.3  Filter的实现
      11.2.4  加解密服务
      11.2.5  数字证书管理
    11.3  本章小结
  第12章  RESTCONF
    12.1  RFC 8040解读
      12.1.1  操作
      12.1.2  消息
      12.1.3  资源
    12.2  RESTCONF的实现
      12.2.1  Jersey框架简介
      12.2.2  RESTCONF资源接口定义
      12.2.3  Wrapper设计模式
      12.2.4  初始化过程
      12.2.5  客户端访问
    12.3  本章小结
  第13章  Blueprint及其扩展
    13.1  Blueprint
      13.1.1  基础知识
      13.1.2  运行原理
      13.1.3  命名空间扩展
    13.2  Blueprint的使用
    13.3  本章小结