ODL:OpenDayLight子项目之MD-SAL
一、MD-SAL简介
MD-SAL(模块驱动项目)的全称为Model-Driven Service Adaptation Layer,即模型驱动服务适配层。 MD-SAL是一个消息总线驱动的可扩展的中间件组件,它提供基于应用开发者定义的数据和接口模型(如用户定义的模型)的消息服务和数据存储功能。
MD-SAL在南向提供服务以支持多种南向协议,并在北向提供服务以支持其他模块和应用的功能。MD-SAL在控制器的架构占据非常重要的作用, MD-SAL能复用控制器内的模块,并且以灵活的方式将模块分为providers和 consumers,解决了AD-SAL中南北插件耦合度过高的情况,并且引入 DataStore提升控制器的性能,自锂版本开始就成为SAL层的主要组成部分,并且在此之后的版本SAL层完全由 MD-SAL组成,不再包含 AD-SAL模块。
MD-SAL定义了一个通用层,概念数据模型以构建块和消息模式,并且为应用和应该间的交互通信提供一个架构/框架。 MD-SAL为用户提供通用支持,它定义传输和负载格式,包括负载序列化和同化(如二进制、XML或JSON)。
MD-SAL使用YANG语言作为定义接口和数据的建模语言,并且为通过YANG建模的数据服务提供一个运行时消息和数据集中的服务。
二、MD-SAL开发
Open Daylight是一个庞大的项目,而基于 MD-SAL开发也涉及多方面的知识,接下来主要介绍 MD-SAL开发中一些必须具备的知识。
1.OSGI技术
首先介绍Open Daylight后端使用框架OSGI技术。在 Open Daylight中,OSGi架构为运行在与 Open Daylight控制器相同的地址空间的应用提供支撑,使得 Open Daylight能动态地加载Bundles和数据包JAR文件。
2.Karaf技术
在介绍完OSGi之后,接下来介绍一个基于实时运行的轻量级的基于OSGI的容器-Karaf。Open Daylight从氦(He)版开始使用这一技术,以方便部署各种选定的组件,简化打包和安装应用的操作难度
3.Maven技术
Apache Maven是一个软件项目管理和理解工具,OpenDaylight项目使用它进行管理。
Maven能帮助开发人员管理项目的构建builds,文档、报告、依赖、SCMs、发布、分发。
4.Yang语言
YANG语言是整个Open DayLight基础架构的基石,是数据模型驱动开发的基础。掌握YANG语言后能更好地理解和调试Open DayLight相关的项目。YANG话言不仅在Open Daylight项目 MD-SAL开发中占有十分重要的地位,同时也是 Open Daylight项目北向开发的关键。