1.系统层次
onos是分层设计的,层次结构如下图。
2.服务或子系统
服务是由多个层次组成的一个垂直片,或称为“软件栈”。我们把组件集合称为子系统或服务。
onos定义了下面几个主要的服务:
(1)设备子系统——管理基层设备库
(2)连接子系统——管理基层连接库
(3)主机子系统——管理终端主机和它们在网络中的位置
(4)拓扑子系统——管理时间排序的网络拓扑图快照
(5)路径子系统——计算或找到两个基层设备和主机间的路径(基于最近的拓扑图快照)
(6)流规则子系统——管理在基层设备上的匹配或动作流规则,提供流控制方法
(7)包管理子系统——允许应用监听来自网络设备的数据并发送数据到网络设备
下面的表说明了几个子系统,有几个是已经存在的,有的是将来会有的。
3.子系统结构
每个子系统的组件处于三个主要层次之一,
3.1提供者
处于onos栈最底层的提供者通过协议库与网络交互,通过提供者服务接口与onos核心交互。
协议提供者负责通过多种控制和配置协议与网络环境交互,传递特定监测数据到onos核心。提供者也从其他子系统采集数据并转换成特定数据。
许多提供者也需要接受来自onos核心的控制指令,然后通过相应的协议传送到网络。这些数据通过提供者接口传递。
3.2提供者ID
每个提供者关联一个提供者ID。用来在全局标识一个提供者,使设备或其他模型条目能与提供者关联起来。
3.3多提供者
一个子系统可能关联多个提供者。提供者被设计成或者主要的,或者辅助的。主要提供者占有与服务相关的条目,辅助的作为重叠提供信息。这种方式在信息冲突的情况下优先考虑主要提供者。
设备子系统就是这样一个支持多提供者的子系统。
3.4管理者
onos核心里边的一个组件,管理者从提供者接收信息,提供服务给应用和其他服务。它暴露了几个接口:
(1)一个北向服务接口,通过同其他核心组件和应用交互能知道特定的网络状态;
(2)一个管理服务接口,下发管理命令并应用它们到网络状态或系统;
(3)一个南向提供者注册接口,提供者能注册到管理者,这样能与它交互;
(4)一个南向提供者服务接口,作为一个注册的提供者,通过他能发送和接受信息从管理者;
管理者服务接口的用户能同步地查询信息,或者异步地监听信息(例如通过监听服务接口注册,然后实现事件监听来接受事件)。
3.5存储组件
管理者里边很重要的组件,存储组件负责索引、存储和同步管理者接收的信息。通过和其他实例onos上存储组件通信,确保国歌onos实例信息的连续性和鲁棒性。
3.6应用
应用通过管理者服务和服务接口使用和控制管理者聚合来的信息。应用可以有很多功能,从显示网络拓扑到安装网络路径。
3.7应用ID
每个应用关联一个唯一的应用ID。这个标识用来追踪与应用相关的内容(例如任务和对象,比如意图和流规则)。为了获得一个有效的ID,应用通过核心服务注册,提供它们的名称(通常启用顺从dns名,例如org.onlab.onos.fwd)
4.事件与描述
下图是事件交互图
参考文献:
(1)https://wiki.onosproject.org/display/ONOS/System+Components