不懂这些 你不算了解OpenDaylight项目

简介:

深入探索OpenDaylight(ODL)项目可帮助网络工程师更好地了解OpenDaylight项目控制器的工作原理以及其各组件如何配合工作,但为了学习开发人员如何与ODL交互,工程师首先需要了解一些新工具。

Maven archetypes

首先,OpenDaylight项目广泛使用Maven archetypes以确保工程师在该平台中构建的任何新项目或应用的一致性。Maven archetypes允许用户为新项目构建基本框架,包括一些默认的构建文件、目录结构和一些基本Java类。如果用户想要构建应用,则应该从该项目提供 的Maven archetypes开始。另外,开发者指南中介绍了利用Maven archetypes(使用mvn CLI工具)的工作流示例。

YANG

接下来,让我们列举YANG的一些例子来说明如何让简单的应用开始启动和运行。YANG是一种数据建模语言,工程师可以用它在平台或网络设备构建配置、运 行状态、远程过程调用(RPC)或通知。我们使用YANG有多种原因,其中一个例子是,通过构建YANG模块(我们可能会想到是单个YANG文件),工程 师可利用内置YANG工具来自动化为符合该项目标准和最佳做法的API绑定或Java类生成代码。另外,开发者指南中介绍了工程师可能生成的YANG模块 示例,其中使用IDE来定义Hello World RPC(这可能是针对该控制器发出)。

123

图1:hello.yang YANG模块示例

对于不熟悉YANG的用户,下面是帮助你了解上面YANG模块的相关细节:

• 上图所示的Hello.yang模块定义了RPC语句指示的RPC操作,由YANG RFC保留。
• 输入子语句也通过YANG规格而保留,并且,在这个示例中,为hello-world RPC操作定义了输入参数。
• 输入树的枝叶(作为名称)要求字符串数据类型。
• 输出子语句也通过YANG规格保留,并从hello-world RPC操作定义输出。
• 输出树的枝叶(作为问候语)会返回字符串数据类型。

在创建上述YANG模块后,用户可使用Maven来构建Hello World示例。在此过程中,工程师可能会提供RESTCONF接口,允许用户使用我们的示例应用发出RPC。

RESTCONF

通过使用YANG构建Hello World RPC模块,YANG工具然后可用于自动提供各种API。RESTCONF是以这种方式产生的API绑定的例子。为了让大家了解为什么RESTCONF存 在,让我们回想一下,YANG最初被创建作为NETCONF协议的数据建模语言,该协议主要使用Secure Shell进行传输以及使用XML来编码。而为确保正确映射YANG建模的应用到REST式的接口,RESTCONF随之出现。

现在我们应该说明如何为我们的Hello World RPC使用RESTCONF API。下图展示了使用谷歌Chrome的Postman生成RESTCONF API调用的例子。请注意,开发者指南详细介绍了为获得如下所示结果,不同Java类需要做出的额外改变。下图的主要目的是看看YANG模型如何影响暴露 的RESTCON API。

321

图2:POSTMAN输出YANG和RESTCONF映射示例

对于不熟悉RESTCONF的用户,下面是帮助你了解上面RESTCONF API调用的相关细节:

• 由于在hello.yang模块中我们使用了RPC语句,所产生的API使用POST操作连接到/RESTCONF/操作资源。RESTCONF RFC提供了RPC YANG语句到RESTCONF映射的更多细节。
• URI字符串的剩余部分源自YANG模块名称,hello,以及RPC标识符,hello-world。
• RESTCONF API调用中输入和输出JSON格式也是在hello.yang模块中执行建模的直接结果。

综上所述,了解OpenDaylight项目需要学习一些新的工具。通过一些努力,网络工程师可以开始了解该控制器的基本内部工作原理以及开发人员如何与OpenDaylight项目交互。


原文发布时间为: 2015年12月18日

本文作者:张程程翻译

本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

相关文章
|
5月前
|
监控 项目管理
项目如期完成是有多难?
【4月更文挑战第5天】项目如期完成是有多难?
54 6
项目如期完成是有多难?
|
前端开发 JavaScript 小程序
新来个技术总监,给公司项目引入了全新的业务架构,堪称最佳实践!
新来个技术总监,给公司项目引入了全新的业务架构,堪称最佳实践!
|
JSON 小程序 数据可视化
开发中难以解决的问题,你是如何另辟蹊径的
在以往的开发中,你遇到过难以解决的问题吗?或者咱们换个角度,面对产品经理提过来的,很难实现的需求,你是怎么处理的?又或者自己在研发某个功能时,遇到障碍,又是如何解决的?
|
监控 前端开发 jenkins
新来个技术总监,给团队引入了这款开发神器,同事直呼哇塞
带团队时间久了,就能发现整个 Team 都渐渐疲了。前两年老板还专门买了个系统搞 OKR,现在也不大提了;Scrum 我们也搞了,用起来也就那样;项目管理工具试了好几个,禅道、Worktile、现在用 Coding,反正有一个能用的就行;微服务化改造从去年开始在吭哧吭哧搞,我们自己搞得觉得很厉害,但业务部门那边就觉得没啥差别,搞不懂你们研发部门每天在弄些什么,赶紧做我们提的需求要紧。
新来个技术总监,给团队引入了这款开发神器,同事直呼哇塞
|
区块链
阐述佛萨奇开发源码 佛萨奇系统开发原力方案 佛萨奇2.0版本源码部署技术解决逻辑
阐述佛萨奇开发源码 佛萨奇系统开发原力方案 佛萨奇2.0版本源码部署技术解决逻辑
106 0
|
前端开发 网络协议 网络安全
3.15都没法打假的一个DoS开源学习项目
不知道大家还记不记得强哥之前发的一篇文章:DDoS攻击让乌克兰断网,我也用DoS攻击把自己网站搞挂了,里面Diss了一个DoS的开源项目凭借花里胡哨的界面骗人。这个在3.15这个日子再拿出来鞭尸一下。
3.15都没法打假的一个DoS开源学习项目
|
运维 程序员 Android开发
程序人生 - 30多岁程序员选什么样的公司可以稳妥地把技术路线走下去?
程序人生 - 30多岁程序员选什么样的公司可以稳妥地把技术路线走下去?
159 0
程序人生 - 30多岁程序员选什么样的公司可以稳妥地把技术路线走下去?
|
存储 Unix 程序员
程序员的自白:我如何让失败项目起死回生,变成价值 270 亿美元的应用程序?
Slack 是颇受欢迎的企业沟通和协作工具,目前有 63 万企业在使用。2014 年初拿到了 4000 多万美元融资之后又完成 1.2 亿美元的融资,其估值达到了 11.2 亿美元。2015 年 2 月,slack 成立一周年日活跃用户就达到 50 万人。2019 年 6 月 20 日,创业公司 Slack 正式登陆纽交所。 这个应用起源于一个几乎已经宣告失败的游戏项目,发展成今天一家价值 270 亿美元的公司实属不易。今天,我们来听听 Flicr 与 Slack 的联合创始人 Stewart Butterfield 的轶闻趣事。
134 0
程序员的自白:我如何让失败项目起死回生,变成价值 270 亿美元的应用程序?
|
Unix 程序员 Apache
当开源遇见 KPI,全球化 VS 本土化,开源的理想与现实该如何和解?
最近几年,开源在全球蓬勃发展:一方面,越来越多人投身于开源生态中,除了开发者,不懂代码的人也能为开源社区做贡献;另一方面,开源贡献的形式更多元,不再拘泥于写代码,文档贡献、开源布道也是建设开源生态的重要动作。
247 0
|
开发者 iOS开发
【独立开发】从点子到创收
上一篇文章讲了,想做独立开发,从一开始,我们怎样才能有一个所谓的“好点子”。首先,你要拓宽思路、发散思维地去想;然后,要把这些想法真正地和日常生活中的实际需求结合起来,真正有一个可以解决问题的 idea,这样就有了一切的开始。
1417 0