我只想知道yang建模语言是否具体,只能与NetConf协议一起使用,还是可以用来模拟Xml和Json等数据?
谢谢
答案 0 :(得分:1)
YANG最初的目的是模拟NETCONF会话中对等体之间交换的数据,但这不再是唯一的情况。现在有其他协议(将)使用它,例如RESTCONF和CoMI。
YANG是一种最初设计用于建模的数据建模语言 由网络配置操纵的配置和状态数据 协议(NETCONF),NETCONF远程过程调用和NETCONF 通知[RFC6241]。自杨版1出版以来 [RFC6020],YANG已被使用或建议用于其他 协议(例如,RESTCONF [RESTCONF]和约束应用程序) 协议(CoAP)管理接口(CoMI)[CoMI])。进一步, 已经提出了除XML之外的编码(例如,JSON [RFC7951])。
事实上,最近的新的YANG规范版本(1.1)已经朝着将模型与其编码分离的方向发展。将来,我们可能会看到单独的XML和JSON编码文档(可能还有其他文档)以及仅处理语言细节的单个文档。
如果忽略rpc
,action
,notification
,config
等语句,您可以使用YANG为其他更常见的用途建模数据。仅限于在具体情况下有关。当然,您必须定义您希望使用模型的上下文以及它对您的意义。一些建模者使用extension
语句来定义这些需求,然后实现一个专门的YANG编译器来识别扩展并相应地执行 - 这允许您将语言用于作者最初不打算使用的内容。
规范中有一些定义可能会使YANG更难成为通用建模语言(就像XML Schema用于XML)。 configuration datastore
,configuration data
,state data
,client
,server
等概念非常具体。但是,您总是可以对这些视而不见,只是让它适合您。我相信它已经在OpenDaylight项目中完成了。