四、OpenDaylight应用基础开发(MD-SAL、yang语言、RPC)

本文探讨了MD-SAL(Model-Driven SAL),一种基于消息驱动的状态机,用于简化API开发和数据存储。重点讲解了YANG语言在接口建模中的应用,介绍了RPC的分类和MD-SAL在其中的实现原理,以及如何通过RPC在OpenDaylight中操作流表和执行任务。

1 MD-SAL

1.1 为何采用MD-SAL

我们曾尝试过对可编程系统整个系统进行抽象(AD-SAL),然而,对于事先已知的系统,这样做未尝不可, 对于API需要频繁改动以适应各种场景,这种抽象最终会成为系统演进的一个主要的障碍,或者会导致需要不断整合这些API的分支. 无论上述哪种情况,维护抽象API的团队都会成为一个生产能力上的限制,因为这个团队需要具有技术领域专家, 确保我们的抽象和交互是紧密结合的,需要在技术和API风格的前瞻性上都不能有差错.
MD-SAL 源于我们认为可扩展性不应该成为一个问题,任何人都应该能定义他们的API原型,SAL层对于任何人定义的API都是可以工作的,即便这些原型API是整个大的系统的一个一个的孤岛.
详见https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Explained

1.2 MD-SAL介绍(消息驱动的状态机【消息驱动、状态存储】)

MD-SAL基于用户定义的数据和接口模型,提供消息和存储服务的基础设施组件(The Model-Driven SAL (MD-SAL) is an infrastructure component that provides messaging and data storage functionality based on user-defined data and interface models.)
MD-SAL 当前提供的基础服务:
Data Store(状态存储)
RPC / Service routing(消息驱动)
Notification subscription and publish services(消息驱动)

1.3 MD-SAL目标

MD-SAL 有两个主要目标:

  1. 提出一个构建模块和设计模式的概念和数据模型的通用层,为构建应用提供基础服务(Provide a common-layer, concepts, data model building blocks and patterns which serves as building blocks applications)
  2. 支持多种传输和负载格式,对其进行序列化/适配(Support of multiple transport and payload formats, serialization/adaptation them.)

通过使用YANG语言对接口和数据建模,并提供一个YANG模型的运行时支持的一系列服务,我们就能达成这两个目标(This objectives are achieved by using YANG as modeling language for interface and data definition and providing runtime for services using YANG modeling.)

1.4 MD-SAL示意图

在这里插入图片描述

2 Yang语言

  1. YANG 是随着 NETCONF 协议而产生的数据建模语言,由RFC 6020定义,YANG可读性好、简单、直接、可扩
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值