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 有两个主要目标:
- 提出一个构建模块和设计模式的概念和数据模型的通用层,为构建应用提供基础服务(Provide a common-layer, concepts, data model building blocks and patterns which serves as building blocks applications)
- 支持多种传输和负载格式,对其进行序列化/适配(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语言
- YANG 是随着 NETCONF 协议而产生的数据建模语言,由RFC 6020定义,YANG可读性好、简单、直接、可扩

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

被折叠的 条评论
为什么被折叠?



