【译】OpenDaylight控制器:SAL架构概述

1. SAL架构

系统的体系结构如下图所示:

上图中的子系统如下:

  • 生产者(Provider)--通过其北向API向应用程序和其他提供程序(插件)提供公开功能的组件。生产者可以是其他生产者的消费者。生产者有两种类型:

绑定无关生产者:它们的功能以绑定无关的数据DOM格式公开;
          绑定感知生产者:它们的功能以针对一个或多个生成的绑定接口编译的形式显示;

  • 消费者(Consumer) - -使用由一个或多个provider提供的功能的组件。消费者有两种类型:

绑定无关消费者 - 以DOM的形式调用
          绑定感知消费者 - 以一个或多个接口的形式调用

  • 绑定无关代理(Binding-Independent Broker ) - MD-SAL的核心组件。它在不同的provider和消费者之间路由RPC、通知和数据更改;
  • 绑定感知代理(Binding-Aware Broker) - 为消费者(如控制器应用程序或插件)和生产者提供可编程API和Java语言支持。它是建立在绑定无关代理之上的外观/代理(设计模式),可简化对绑定无关生产者和绑定感知生产者提供的数据和服务的访问。
  • BI数据存储库(BI Data Repository) - MD-SAL 绑定无关的基础架构组件,负责存储配置和临时transient )数据
  • 绑定模式存储库(Binding Schema Repository ) - 基础架构组件,负责存储YANG-Java关系的规范以及语言绑定API与绑定无关的API调用之间的映射。
  • 绑定生成器(Binding Generator ) - 基础架构组件,它将生成接口和数据Mapper的实现( to the binding-independent format)。

2.子系统类型

在Controller架构的上下文中,定义了两个子系统类别:

  • 顶级子系统(Top-Level Subsystems) - 数据存储或验证器,每个API修订版通常只有一个顶级子系统的单个实例;
  • 嵌套子系统(Nested Subsystems ) -   该子系统可以是本地或远程。它可以在多个地方或多个实例中公开一组功能。网元是嵌套子系统的示例,例如路由器或交换机。

YANG支持通过YANG Schema和模块对顶级子系统进行建模,但不允许将现有模型重用于嵌套在顶级子系统上下文中的子系统。为了支持嵌套,引入了YANG扩展,这将扩展模式以允许子系统在单个数据树中进行模型嵌套。

3.顶级子系统

顶级子系统可以是部署在Controller中的控制器组件或应用程序(provider或消费者),它们使用Controller SAL与其他控制器组件、应用程序和插件进行通信。

顶级子系统子系统通常:每个系统/ AP或者具有单个实例I,或者具有多个版本实例,每个实例对于由YANG模型定义的修订是唯一的; 对于多个版本实例,每个实例表示单个封闭系统。

顶级子系统的主要例子是代理(Broker)和数据仓库(Data Repositories)。

4. 嵌套子系统

嵌套子系统表示不是顶级的实体(例如组件、虚拟系统和网元),并且可以将多个实例挂载到树的不同级别和不同分支。

嵌套子系统的实例不直接映射到生产者实例:单个生产者(provider)可以导出(export)嵌套子系统的多个实例。

嵌套子系统可以使用与顶级子系统不同的模型和模式。

5.嵌套数据存储(DataStore)

 嵌套子系统的数据在控制器的数据存储区中的节点(附件点)下“附加”(或“挂载”)。

嵌套子系统中的数据可以表示存在于另一(远程)系统中的数据或本地控制器组件(例如插件)中的数据。它也可以由Controller组件动态生成,或者从其他协议转换。

附加(安装)数据及其结构具有以下属性:

  • 可以被任何YANG Schema引用,该Schema理解嵌套子系统
  • 可能使用与其容器不同的YANG模式
  • 这些模式使用附加点作为数据根节点。
  • 附加点用作嵌套子系统的标识符。

提供嵌套子系统服务的组件负责:

  • 向状态数据存储库提供嵌套数据
  • Voting on configuration changes to nested data
  • Voting on configuration commits that change nested data

6.RPC

消费者可能需要调用嵌套子系统提供的功能。 RPC代理必须提供能够在生产者中启用嵌套RPC功能。此外,代理必须能够将RPC路由到嵌套子系统的生产者。

原文链接:https://wiki.opendaylight.org/view/OpenDaylight_Controller:_SAL_Architecture_Overview

时间: 2024-10-23 20:21:51

【译】OpenDaylight控制器:SAL架构概述的相关文章

基于ONOS的SDN-IP架构概述篇

编者按:SDN-IP是ONOS上的一个应用程序,允许软件定义网络使用标准的边界网关协议(BGP)连接到外部网络.从BGP角度看,SDN网络表现为单一的自治系统(AS),其行为与任何传统的AS一样.基于AS的SDN-IP应用提供BGP和ONOS之间的集成整合机制,在协议层SDN-IP的行为作为一个有规则的BGP发言人.从ONOS的角度来看,它只是使用其服务,在SDN数据平面安装和更新相应的转发状态的应用程序. 1 架构目标  1.1 SDN-IP设计目标 (1)兼容性Compatibility:S

Scrapy架构概述

Scrapy架构概述 1, 从最初自己编写的spiders,获取到start_url,并且封装成Request对象. 2,通过engine(引擎)调度给SCHEDULER(Requests管理调度器). 3,SCHEDULER管理ENGINE传递过来的所有Requests,通过优先级,传递给ENGINE. 4,ENGINE 将传递过来的Request对象传递给Downloader(下载器),但是在传递之间会通过MiddleWare(中间件)对Requests进行包装,添加头部,代理IP之类的.

JavaEE体系架构概述、MyBatis总结

JavaEE体系架构概述 java EE是sum公司发布的标准企业级应用规范集合,它提供了一个多层结构的分布式应程序模型,是开发基于网络的企业级应用首选平台.Java EE技术平台的核心思想是“容器”加组件 事务:有明确边界的一组序列,在应用程序中一个请求对应一个事务,当请求发送时,事务开始,当请求结束,事务也就结束.总的来说,事务有四个特性:1.原子性,一个请求要么成功,要么失败,不会再有其他情况:2.一致性,事务处理需要的和得到的时相同的:3.持久性,事务处理的结果时确认的.持久的,如果需要

大型互联网架构概述

本文旨在简单介绍大型互联网的架构和核心组件实现原理. 理论上讲,从安装配置,最佳实践以及源码来剖析各个组件,这个自然是极好的.由于笔者时间以及知识有限,有很多知识没有在工作中亲自实践的机会.所以有些地方语焉不详,还请大家多多指教. 大型互联网架构 解决问题的通用思路是将分而治之(divide-and-conquer),将大问题分为若干个小问题,各个击破.在大型互联网的架构实践中,无一不体现这种思想. 架构目标 低成本:任何公司存在的价值都是为了获取商业利益.在可能的情况下,希望一切都是低成本的.

微信牛牛平台制作服务器端架构概述

微信牛牛平台制作服务器端架构概述,平台制作教程联系QQ:212303635,官方网站(aqiulian.com) 架构的分析模型 一. 讨论的背景 现代电子游戏,基本上都会使用一定的网络功能.从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序.因此,游戏服务器端软件的架构,本质上也是游戏服务器这个特定领域的软件架构. 软件架构的分析,可以通过不同的层面入手.比较经典的软件架构描述,包含了以下几种架构: 运行时架构--这种架构关心如何解决运行效率问题,通常以程序进程图

LAMP+LNMP(一) LAMP架构概述

一.LAMP架构概述 LAMP就是 Linux.Apache(httpd).MySQL.PHP四个东东的统称,我们常见的大部分网站都是由这个体系提供的,比如google.Taobao.51CTO等等.其中 Linux是操作系统,是其他三个东东的宿主,企业中一般使用CentOS7.CentOS6等等. Apache是直接面对用户的,用户发送http请求后由他决定提供哪些相应的内容. MyAQL是一种关系型数据库管理系统,你可以把他简单理解为多个大型的Excel表,他记录了网站中文字的东西,比如用户

Linux集群架构概述

Linux集群架构概述 根据功能划分:两大类:高可用和负载均衡高可用集群通常为两台服务器,一条工作,另外一台作为冗余,当提供服务的机器宕机,(rongyu)冗余将接替继续提供服务(适合不能出现宕机的服务器)实现高可用的开源软件有:heartbeat.keeplived负载均衡集群,需要有一台服务器作为分发器,他负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2实现负载均衡的开源软件有 LVS.keepalivd.haproxy

1.微服务架构概述

                                          微服务架构概述 1.0单体架构是什么?         一个归档包包含了应用所有功能的应用程序, 我们通常称之为单体应用. 架构单体应用的架构风格, 我们称之为单体架构, 这是一种比较传统的架构风格. 1.1. 单体应用架构存在的问题 复杂性逐渐变高 技术债务逐渐上升 部署速度逐渐变慢 阻碍技术创新 无法按需伸缩 1.2. 如何解决单体应用架构存在的问题 1.3. 什么是微服务 Martin Fowler:简而言

MySQL逻辑架构概述

1.MySQL逻辑架构 MySQL逻辑架构图 MySQL逻辑架构分四层 1.连接层:主要完成一些类似连接处理,授权认证及相关的安全方案. 2.服务层:在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,SQL接口,SQL解析,SQL分析优化, 缓存查询的处理以及部分内置函数执行(如日期,时间,数学运算,加密)等等.各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等. 3.引擎层:是底层数据存取操作实现部分,由多种存储引擎共同组成.真正负责MySQL中数