CN118400426A - 模型转换方法、装置和存储介质 - Google Patents
模型转换方法、装置和存储介质 Download PDFInfo
- Publication number
- CN118400426A CN118400426A CN202410475950.3A CN202410475950A CN118400426A CN 118400426 A CN118400426 A CN 118400426A CN 202410475950 A CN202410475950 A CN 202410475950A CN 118400426 A CN118400426 A CN 118400426A
- Authority
- CN
- China
- Prior art keywords
- file
- files
- type
- xsd
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 166
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013499 data model Methods 0.000 claims abstract description 67
- 238000012795 verification Methods 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000011426 transformation method Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 description 32
- 238000007726 management method Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 16
- 238000013459 approach Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 12
- 230000008676 import Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 239000002131 composite material Substances 0.000 description 8
- 239000000306 component Substances 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 239000000344 soap Substances 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种模型转换方法、装置和存储介质,涉及计算机技术领域,用于改善通过MTOSI接口模型对网络设备进行配置和管理时的灵活性和效率较低的问题。该方法包括:获取第一数据模型中的多个原始文件;多个原始文件包括XSD文件、WSDL文件;分别对多个原始文件进行语法校验,确定多个原始文件各自的类型信息;XSD文件的类型信息用于指示XSD文件所包括数据的数据类型;WSDL文件的类型信息用于指示WSDL文件所对应功能的功能类型;基于转换规则集合中与每个原始文件的类型信息对应的转换规则,对每个原始文件进行转换,得到多个YIN文件;构建多个YIN文件各自对应的YANG文件,得到第二数据模型。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种模型转换方法、装置和存储介质。
背景技术
随着计算机技术的发展,多技术操作系统接口(multi-technology operationssystems interface,MTOSI)模型凭借对网络数据的层次定义较为全面的优点,被广泛应用于网络设备的配置和管理中。
目前,相关技术一般通过MTOSI接口模型实现网络设备的配置和管理。但是,由于MTOSI接口模型的复杂度较高,导致在通过MTOSI接口模型对网络设备进行配置和管理时的灵活性和效率较低。
发明内容
本申请提供一种模型转换方法、装置和存储介质,用于改善通过MTOSI接口模型对网络设备进行配置和管理时的灵活性和效率较低的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种模型转换方法,包括:获取第一数据模型中的多个原始文件;多个原始文件包括可扩展标示语言模式定义(XML schema definition,XSD)文件、网络服务描述语言(web services description language,WSDL)文件;分别对多个原始文件进行语法校验,确定多个原始文件各自的类型信息;XSD文件的类型信息用于指示XSD文件所包括数据的数据类型;WSDL文件的类型信息用于指示WSDL文件所对应功能的功能类型;基于转换规则集合中与每个原始文件的类型信息对应的转换规则,对每个原始文件进行转换,得到多个另一个下一代独立记法(yet another next generation independentnotation,YIN)文件;构建多个YIN文件各自对应的另一个下一代(yet another nextgeneration,YANG)文件,得到第二数据模型。
可选地,数据类型包括根元素、或基本数据类型、或简单元素类型、或复杂元素类型、或复合场景类型;功能类型包括用于定义接口操作的类型、或用于指示接口参数的类型、或用于描述请求消息结构和响应消息结构的类型、或用于描述Java消息服务协议所对应接口的类型。
可选地,获取第一数据模型中的多个原始文件的方法,包括:将第一数据模型中存在预设后缀的文件,确定为多个原始文件;预设后缀包括XSD和WSDL。
可选地,构建多个YIN文件各自对应的另一个下一代YANG文件,得到第二数据模型的方法,包括:对每个YIN文件进行解析,得到每个YIN文件的文件内容;文件内容包括以下至少一项:文件名称、命名空间、前缀;根据每个YIN文件的文件内容,构建每个YIN文件对应的YANG文件,得到第二数据模型。
第二方面,提供一种模型转换装置,包括:
获取单元,用于获取第一数据模型中的多个原始文件;多个原始文件包括XSD文件、WSDL文件;
处理单元,用于分别对多个原始文件进行语法校验,确定多个原始文件各自所包括数据的数据类型;
处理单元,还用于基于转换规则集合中与每个原始文件所包括数据的数据类型对应的转换规则,对每个原始文件进行转换,得到多个YIN文件;
处理单元,还用于构建多个YIN文件各自对应的YANG文件,得到第二数据模型。
可选地,数据类型包括根元素、或基本数据类型、或简单元素类型、或复杂元素类型、或复合场景类型;功能类型包括用于定义接口操作的类型、或用于指示接口参数的类型、或用于描述请求消息结构和响应消息结构的类型、或用于描述Java消息服务协议所对应接口的类型。
可选地,获取单元,具体用于:将第一数据模型中存在预设后缀的文件,确定为多个原始文件;预设后缀包括XSD和WSDL。
可选地,处理单元,具体用于:对每个YIN文件进行解析,得到每个YIN文件的文件内容;文件内容包括以下至少一项:文件名称、命名空间、前缀;根据每个YIN文件的文件内容,构建每个YIN文件对应的YANG文件,得到第二数据模型。
第三方面,提供一种模型转换装置,包括存储器和处理器;存储器用于存储计算机执行指令,处理器与存储器通过总线连接;当模型转换装置运行时,处理器执行存储器存储的计算机执行指令,以使模型转换装置执行如第一方面中的任一种模型转换方法。
该模型转换装置可以是网络设备,也可以是网络设备中的一部分装置,例如网络设备中的芯片系统。该芯片系统用于支持网络设备实现第一方面及其任意一种可能的实现方式中所涉及的功能,例如,接收、确定、分流上述模型转换方法中所涉及的数据和/或信息。该芯片系统包括芯片,也可以包括其他分立器件或电路结构。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行如第一方面中的任一种模型转换方法。
需要说明的是,上述计算机指令可以全部或者部分存储在计算机可读存储介质上。其中,计算机可读存储介质可以与模型转换装置的处理器封装在一起,也可以与模型转换装置的处理器相互独立封装,本申请对此不作限定。
第五方面,提供一种计算机程序产品,计算机程序产品包括计算机程序指令,计算机程序指令被计算机执行时实现如第一方面中的任一种模型转换方法。
在本申请中,上述模型转换装置的名称对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
本申请提供的技术方案至少带来以下有益效果:
基于上述任一方面,本申请中,可以获取第一数据模型中的XSD文件和WSDL文件,并分别对多个原始文件进行语法校验,确定多个原始文件各自的类型信息。其中,XSD文件的类型信息用于指示XSD文件所包括数据的数据类型。WSDL文件的类型信息用于指示WSDL文件所对应功能的功能类型。进而,可以基于转换规则集合中与每个原始文件的类型信息对应的转换规则,准确地对每个原始文件进行转换,得到多个YIN文件,以进一步构建多个YIN文件各自对应的YANG文件,得到第二数据模型。基于此,本申请可以支持将结构较为复杂的第一数据模型(如MTOSI接口模型),转换为由多个YANG文件组成的第二数据模型,以简化数据模型的结构,提高网络管理的灵活性和效率。因此,本申请可以用于改善通过MTOSI接口模型对网络设备进行配置和管理时的灵活性和效率较低的问题。
附图说明
图1为本申请实施例提供的一种依赖关系的示意图;
图2为本申请实施例提供的一种模型转换流程的示意图;
图3为本申请实施例提供的一种模型转换系统的结构示意图;
图4为本申请实施例提供的一种模型转换装置的结构示意图;
图5为本申请实施例提供的一种功能模块的结构示意图;
图6为本申请实施例提供的一种电子设备的硬件结构示意图;
图7为本申请实施例提供的一种模型转换方法的流程示意图;
图8为本申请实施例提供的又一种依赖关系的示意图;
图9为本申请实施例提供的又一种模型转换流程的示意图;
图10为本申请实施例提供的又一种模型转换装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了便于清楚描述本申请实施例的技术方案,在本申请实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
此外,本申请实施例和权利要求书及附图中的术语“包括”和“具有”不是排他的。例如,包括了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,还可以包括没有列出的步骤或模块。
为了便于理解本申请,现对本申请涉及到的相关要素进行描述。
电信管理论坛(telecommunications management forum,TMF)作为开放性的国际标准组织,主要关注网络运营、维护、管理方面的内容,致力于优化网络运营和管理效率。TMF的多技术网络管理(multi-technology network management,MTNM)工作研究组定义的网络管理层(network management layer,NML)和网元管理层(element managementlayer,EML)统一标准接口中的模型(例如建模对象等)被广泛用于电信运营商的网络管理系统的北向接口。
MTNM工作研究组提出了采用网络服务(Web Service)技术实现的接口模式。WebService接口模式包含可扩展标记语言(extensible markup language,XML)、简单对象访问协议(simple object access protocol,SOAP)消息包和WSDL等技术,也即多技术操作系统接口(multi-technology operations systems interface,MTOSI)。
MTOSI规范文件解压后会在指定目录下形成数据定义包(data definitionpackage,DDP)文件夹。该文件夹下包括框架(framework,FMW)、网络资源基础(networkresource basic,NRB)、网络资源实现(network resource fulfillment,NRF)、网络资源保障(network resource assurance,NRA)、管理资源库存(manage、resource inventory,MRI)、资源调配(resource provisioning,RP)、性能管理(resource performancemanagement,RPM)、故障管理(resource trouble management,RTM)、服务总线(servicebus,SB)、管理服务接口(management service interface,MSI)、系统架构(systemarchitecture,SA)等多个子文件夹。如图1所示,为该多个子文件夹之间依赖关系的示意图。
其中,框架子文件夹包括其他DDP文件中的通用结构和通知类内容等信息。NRB、NRF和NRA包括数据结构定义的相关文件。MRI包括交叉查询、存量设备查询、以太业务查询、网元查询、多层子网查询、端口查询和拓扑查询等相关文件。RP包括交叉创建或修改、以太业务创建或修改、拓扑创建等资源配置功能的相关文件。RPM包括性能控制和性能查询等相关文件。RTM包括告警查询、告警设置、维护操作、保护相关操作等相关文件。
MTOSI用于定义统一化接口。接口模型的核心组成部分包括XSD、WSDL和SOAP。
XSD是MTOSI的基础,用于为MTOSI定义的数据模型提供一种结构化的格式。XSD使用XML来描述数据的结构和类型,是实现数据模型标准化的重要工具。
WSDL定义了服务的绑定(binding)、端点(endpoint)、操作(operation)和消息格式(message),使得服务的消费者能够了解如何与服务提供者交互。在MTOSI标准中,WSDL用于实现服务提供者和服务消费者之间的沟通,确保服务的正确性和有效性。
SOAP是MTOSI中用于消息传递的主要通信协议,可以支持不同网络管理系统通过可靠的方式进行数据交换,包括请求和响应消息,从而提高了MTOSI的可扩展性和灵活性。
互联网工程任务组(internet engineering task force,IETF)的RFC7950规定了YANG数据建模语言。YANG可以用于描述网络的配置和状态数据。与MTOSI相比,YANG的核心在于其能够使用一种形式化的语法详细定义网络数据的层次结构,既对人类友好,也容易被机器解析。YANG针对模块化的数据进行了访问上的约束,可以被网络配置协议(networkconfiguration protocol,NETCONF)和RESTCONF(Restful configuration)等网络协议用于配置和管理网络,使得网络配置和管理变得更加简单和直观。
RESTCONF是一种基于表现层状态转换(representational state transfer,REST)的协议,使用YANG定义的接口模型来提供对网络配置的访问。RESTCONF允许客户端使用获取(get)、提交(post)、更新(put)、删除(delete)和部分更新(patch)等超文本传输协议(hypertext transfer protocol,HTTP)方法来访问和修改网络设备的配置。RESTCONF提供了一种轻量级的机制,通过简化的接口使得网络配置和管理变得更加高效。YANG提供了关于使用RESTCONF的清晰指导,确保了数据的一致性和正确性。
MTOSI接口具备的标准成熟、功能完整等特点,容易导致接口模型复杂和对象关系混乱等,使得网络编排器等上层应用系统通过MTOSI接口进行业务发放的难度较大,难以满足业务灵活创建和自动发放等要求。并且,MTOSI接口上携带了大量的实体数据,往往需要兼容多种物理设备及业务组织形态,难以满足业务灵活多样化扩展的需求。因此,当前运营商较多使用基于YANG描述的REST模型的软件定义网络(software defined network,SDN)接口进行业务逻辑创建。例如,在软件定义光传送网(software defined opticaltransport network,SDOTN)、网际互连协议(internet protocol,IP)承载网上均是采用基于YANG描述的REST模型的接口。
并且,设计基于YANG描述的REST模型的接口时,可以充分使用YANG语法建模的优点,且可以充分借鉴MTOSI接口中已有的逻辑关系,实现快速构建接口的原始模型。
光传送网(optical transport network,OTN)网络和IP承载网络等电信运营商的基础网络均比较复杂,通常不会直接编制一套新的接口逻辑,而是将目前已有的MTOSI接口模型(即数据模型)映射为基于YANG描述的REST模型,形成基础版本后再加上业务专家和基础YANG语法的调整,即能满足管理网络管理的北向接口模型。
如图2所示,为本申请实施例提供的一种模型转换流程的示意图。基于网络管控接口需求,可以确定需要进行转换的MTOSI接口模型,且可以结合IETF YANG公共数据类型和IETF YANG设计规范,以进一步对当前的MTOSI接口模型中已有的逻辑关系进行转换,得到基于YANG语言描述的REST基础模型。进而,可以依据专业网络模型专家经验,对转换得到的REST基础模型进行优化调整,得到所需要的REST接口模型。其中,专家经验包括一些后补操作。例如,优化YANG文件的名称、整合相关的YANG文件等。
即构建过程中,可以对当前已有的MTOSI接口中已有的逻辑关系进行转换,实现快速构建。并且,在转换过程中需要保证MTOSI接口模型已有的对象逻辑关系的完整准确转换,同时不引入额外的附加对象、结构等信息。因此,如何将当前已有的MTOSI接口转换成基于YANG描述的REST模型的接口成为了新的研究方向,其对于实现传统网络和SDN环境之间的接口互操作性、提高网络管理的灵活性和效率、以及推动网络技术创新等具有重要意义。
针对上述问题,本申请实施例提供了一种模型转换方法,该模型转换方法适用于模型转换系统。图3示出了该模型转换系统100的一种结构。如图3所示,该模型转换系统100可以包括:信息配置装置101和模型转换装置102。信息配置装置101和模型转换装置102之间可以通信连接。
在实际应用中,信息配置装置101也可以同时和多个信息配置装置101之间通信连接。为了便于理解,本申请以信息配置装置101和一个信息配置装置101之间通信连接为例进行说明。
可选的,图3中的模型转换装置102可以是集成于信息配置装置101内部的功能模块,也可以是与信息配置装置101相互独立设置的设备。本公开实施例对此不作限制。
容易理解的是,当模型转换装置102是集成于信息配置装置101内部的功能模块时,信息配置装置101和模型转换装置102之间的通信方式为设备内部模块之间的通信。这种情况下,二者之间的通信流程与“信息配置装置101和模型转换装置102相互独立设置的情况下,二者之间的通信流程”相同。
为了便于理解,本申请主要以信息配置装置101和模型转换装置102相互独立设置为例进行说明。
一种可能的方式中,图3中的信息配置装置101可以是终端。图3中所示为信息配置装置101的一种设备形态示例,不用于限制信息配置装置101的具体形态。
一种可能的方式中,模型转换装置102可以配置有程序执行功能和监测功能等。程序执行功能可以用于支持运行应用程序。监测功能可以用于支持对运行中的应用程序进行监测,得到应用程序的执行状态。应用程序可以用于将组成MTOSI数据模型(即第一数据模型)的XSD文件和WSDL文件转换为基于YANG语言描述的文件,得到基于YANG语言的数据模型(即第二数据模型),用于实现模型转换功能。
一种可能的方式中,程序执行功能可以是通过Java虚拟机(Java virtualmachine,JVM)实现的。监测功能可以是通过针对JVM的动态监测工具实现的。例如,动态监测工具可以是JVM沙箱等。本申请实施例对此不作任何限制。
可选地,图3中的模型转换装置102可以是终端,也可以是服务器,还可以是其他具备模型转换功能的电子设备。图3中所示为模型转换装置102的一种设备形态示例,不用于限制模型转换装置102的具体形态。
可选地,信息配置装置101和模型转换装置102是终端时,该终端可以是为指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(radio access network,RAN)与一个或多个核心网进行通信。无线终端可以是移动终端,如具有移动终端的计算机,也可以是便携式、袖珍式、手持式、计算机内置的移动装置,它们与无线接入网交换语言和/或数据,例如,手机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)。本申请实施例对此不作任何限制。
模型转换装置102是服务器时,该服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本申请实施例对此不作任何限制。
一种实施例中,结合图3,如图4所示,为本申请实施例提供的一种模型转换装置的结构示意图。模型转换装置102可以配置有转换工具。转换工具可以用于将基于XSD文件和WSDL文件构成的MTOSI接口模型(即第一数据模型),转化为基于YANG文件的REST模型(即第二数据模型)。
转换工具可以内嵌有MTOSI2YANG和pyang两个功能模块。pyang是基于Python构建的支持YANG语言的工具。
MTOSI2YANG模块可以通过如下代码实现:
1.mtosi2yang/
2.│
3.│wsdl_converter.py//WSDL转换逻辑
4.│xsd_converter.py//XSD转换逻辑
5.│__init__.py
6.│
7.├─scripts
8.│convert_xsd_type.py//XSD类型提取和转换
9.│find_all_simple_type.py//XSD简单类型提取
10.│__init__.py
11.│
12.└─util
13.regex_util.py//名称匹配和转换逻辑
14.__init__.py。
一种实施例中,如图5所示,为本申请实施例提供的一种功能模块的结构示意图。图5示出了MTOSI2YANG模块中的内部结构和依赖关系。MTOSI2YANG模块中核心的转换逻辑是XSD转换逻辑(或称为xsd_converter.py)和WSDL转换逻辑(或称为wsdl_converter.py)。其中,XSD转换逻辑负责将XSD的XML模型转换为YIN模型。WSDL转换逻辑负责将WSDL的XML模型转换为YIN模型。二者均依赖于XSD类型转换(或称为convert_xsd_type.py)、文件名称处理(或称为regex_util.py)、简单类型查找(或称为find_all_simple_type.py)三个功能组件。convert_xsd_type.py用于提供XSD的类型转换规则。regex_util.py用于解析匹配XSD、WSDL、YIN的特殊文本。具体地,regex_util.py可以用于对XSD文件或WSDL文件的名称进行处理,以将XSD文件和WSDL文件中的名称转换为YANG文件中的名称。例如,一个WSDL文件的名称可以为“ConnectionControl”,regex_util.py可以对其进行拆分和大小写转换等处理,以得到对应YANG文件的名称为“connection-control”。find_all_simple_type.py用于识别XSD文件或WSDL文件中无需进行转换的简单类型的数据。
MTOSI2YANG模块的依赖库可以包括pyang、lxml和XML Schema。在从XSD的XML表示转换为YIN的XML表示过程中,依赖lxml和XML Schema进行XML的结构的构造。在将YIN转换为YANG的过程中,依赖pyang库进行YIN结构的解析和YANG结构的构造。lxml是一种以Python语言编写的库,用于解析和访问XML文档、属性和文本内容。XML Schema可以支持在Python环境中对XML的语法(即XSD)进行校验,以及处理复杂的XSD数据。pyang用于处理从YIN到YANG的转换操作。YANG和YIN包含使用不同符号的等效信息,二者之间的映射不会修改模型的信息内容。
pyang模块可以对YANG模型的语法进行校验,且可以提示错误和后续处理等。
MTOSI接口的数据模型全部整合在DDP文件夹里,以XSD和WSDL两类文件的形式体现。该转换工具可以支持打开本地浏览器输入特定端口号指代的转换工具应用,且界面操作友好,能够根据转换器将给定MTOSI数据模型的DDP文件夹中的XSD和WSDL文件自动转换为YANG文件并通过校验,实现一键式对XSD和WSDL文件的自动转换。并且,该转换工具可以在1分钟以内完成160个XSD文件和近50个WSDL文件到YANG文件的转换,效率较高。该转换工具可以通过一致流程在不同系统上快速部署,无需繁琐的安装过程,可移植性较高。同时,该转换工具支持在已有规则的基础上,对代码进行简单修改即可完成转换规则的增补,整体流程自主可控,可扩展性较高。
如图6所示,为本申请实施例提供的电子设备的一种硬件结构示意图。该电子设备可以是信息配置装置101,也可以是模型转换装置102。该电子设备包括处理器21,存储器22、通信接口23、总线24。处理器21,存储器22以及通信接口23之间可以通过总线24连接。
处理器21是电子设备的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器21可以是一个CPU,也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
作为一种实施例,处理器21可以包括一个或多个CPU,例如图6中所示的CPU0和CPU1。
存储器22可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
一种可能的实现方式中,存储器22可以独立于处理器21存在,存储器22可以通过总线24与处理器21相连接,用于存储指令或者程序代码。处理器21调用并执行存储器22中存储的指令或程序代码时,能够实现本申请下述实施例提供的模型转换方法。
另一种可能的实现方式中,存储器22也可以和处理器21集成在一起。
通信接口23,用于电子设备与其他设备通过通信网络连接,所述通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,WLAN)等。通信接口23可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
总线24,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图6中示出的结构并不构成对电子设备的限定,除图6所示部件之外,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图7所示,为本申请实施例提供的一种模型转换方法的流程示意图。该模型转换方法可以应用于图3所示的模型转换系统100中的模型转换装置102。该模型转换方法包括:S701-S704。
S701、模型转换装置获取第一数据模型中的多个原始文件。
其中,第一数据模型可以是MTOSI接口模型。多个原始文件包括XSD文件和WSDL文件。
XSD文件和WSDL文件是XML格式的文件。WSDL文件用于描述网络服务的接口,可以通过格式化的方式将系统之间的沟通和定位进行标准定义。
一种可以实现的方式中,组成MTOSI接口模型的多个原始文件整合在DDP文件夹内。模型转换装置可以通过识别文件后缀的方式,确定组成MTOSI接口模型的多个XSD文件和多个WSDL文件。例如,模型转换装置可以将第一数据模型中存在预设后缀的文件,确定为多个原始文件。预设后缀可以包括XSD和WSDL。即模型转换装置可以将预设后缀为XSD的文件,确定为XSD文件。模型转换装置可以将预设后缀为WSDL的文件,确定为WSDL文件。
S702、模型转换装置分别对多个原始文件进行语法校验,确定多个原始文件各自的类型信息。
其中,XSD文件的类型信息用于指示XSD文件所包括数据的数据类型。WSDL文件的类型信息用于指示WSDL文件所对应功能的功能类型。
一种可以实现的方式中,模型转换装置可以通过XML Schema库,分别对多个原始文件进行语法校验,确定多个原始文件各自的文件类型。
例如,模型转换装置可以通过XML Schema库对XSD文件进行语法校验,确定XSD文件的文件类型。XSD文件的文件类型可以是根元素、或基本数据类型、或简单元素类型、或复杂元素类型、或复合场景类型。
又如,模型转换装置可以通过XML Schema库对WSDL文件进行语法校验,确定WSDL文件的文件类型。WSDL文件的文件类型可以是超文本传输协议(hypertext transferprotocol,HTTP)类型、或端口类型(portType)类型、或消息(message)类型、或Java消息服务(Java message service,JMS)类型。
HTTP类型的文件可以用于定义接口操作,即可以用于定义接口操作的主体(body)内容(即数据部分)。例如,输入、输出内部结构中所使用到的消息名称。HTTP类型的文件中可以包括绑定和服务(service)元素。绑定元素用于指定如何以具体的协议和数据格式实现端口类型定义的接口,通过操作(operation)记录接口的描述信息。服务元素用于定义网络服务的具体SOAP地址和相关的绑定元素,同时用于指定可用于访问服务的网络链接端点(endpoint)的声明,可以是域名或者IP+端口号的形式。
portType类型的文件可以用于指示接口参数,即可以用于描述功能实体中具备哪些接口(例如创建、删除和修改等),以及这些接口的输入、输出,以及出错后处理的文件名称。
Message类型的文件可以用于描述请求消息结构和响应消息结构,包括多个Message元素,这些元素被HTTP类型的文件进行关联,定义的内容可以关联到XSD:type引用。XSD:type是用于指定XML元素的数据类型的属性。
JMS类型的文件可以用于描述Java消息服务协议所对应接口,用于表达通知消息的传送协议。消息通知和具体业务应用相关。例如,类型(type)对象的不同消息载体在模型表达上不一致。在消息体较为简洁的情况下,模型转换装置可以依赖于转换工具高效且准确地实现该类型文件的转换处理。在消息体复杂、多样的情况下,为了便于通知消息被正确处理,可以考虑依赖于人工确认和定义消息体。
S703、模型转换装置基于转换规则集合中与每个原始文件的文件类型对应的转换规则,对每个原始文件进行转换,得到多个YIN文件。
其中,转换规则集合可以包括多个转换规则。
一种可能的方式中,YIN文件为XML表达方式的YANG文件。YIN文件与YANG文件之间表达方法不同,但表示的信息相同。
一种可能的方式中,为根元素的XSD文件可以与转换规则集合中的第一转换规则对应。模型转换装置可以根据第一转换规则,将根元素的XSD文件转换为XML表达方式的YANG文件,以便于进一步转换得到第二数据模型中的元素。第一转换规则可以如下表1所示。
表1
XSD描述 | YANG描述 |
XSD文件名称 | module |
import | import |
xsd documentation | description |
xsd prefix | prefix |
其中,XSD语言描述的XSD文件名称可以转换为YANG语言描述的模块(module)。XSD文件中的导入(import)语句可以转换为YANG语言描述的import。import可以用于引入其他模块或命名空间的内容,以便在当前模块中进行复用或扩展。XSD文件中的XSD文档说明(或称为xsd documentation)可以用于为XSD中的元素提供描述性信息,其可以转换为YANG文件中的描述(description)。XSD文件的前缀(或称为xsd prefix)可以转换为YANG文件的前缀。
例如,一个MTOSI数据模型中的根元素xsd:schema,可以如下所示:
<xsd:schema
xmlns:xsd=“http://www.w3.org/2001/XMLSchema”xmlns:nam=“http://www.tmforum.org/mtop/fmw/xsd/nam/v1”targetNamespace=“http://www.tmforum.org/mtop/fmw/xsd/coi/v1”xmlns:tns=“http://www.tmforum.org/mtop/fmw/xsd/coi/v1”
attributeFormDefault=“unqualified”elementFormDefault=“qualified”version=1.0”>“
<xsd:import namespace=“http://www.tmforum.org/mtop/fmw/xsd/nam/v1”schemaLocation=“NamingDefinitions.xsd”/>
....
</xsd:schema>。
其中,<schema>元素是每一个XML Schema的根元素。xmlns:xsd=“http://www.w3.org/2001/XML Schema”,用于指示schema中用到的元素和数据类型来自命名空间“http://www.w3.org/2001/XML Schema”,以及来自命名空间“http://www.w3.org/2001/XML Schema”的元素和数据类型应该使用前缀xsd。targetNamespace用于指示被此schema定义的元素所属的命名空间。导入(import)元素用于引入其他schema中定义的元素和数据类型。例如,上述NamingDefinitions.xsd中定义的元素和数据类型。
模型转换装置基于第一转换规则对上述根元素xsd:schema进行转换后,得到的YANG描述如下所示:
其中,xsd prefix可以通过解析targetNamespace获取。即对“targetNamespace=http://www.tmforum.org/mtop/fmw/xsd/coi/v1”解析后得到“prefix”为“coi”。
一种可能的方式中,XSD和YANG分别配置有不同的基本数据类型。RFC7950中定义了YANG内置的基本数据类型包括二进制(binary)、布尔型(boolean)、8位有符号整数(int8)等。MTOSI定义的XSD的基本数据类型中,与YANG内置的基本数据类型相同的部分,可以直接映射。XSD的基本数据类型中与YANG内置的基本数据类型不同的部分,可以先利用YANG的派生类型定义新类型,再进行映射。YANG中的基本数据类型可以是内置类型或派生类型,允许派生类型的层次结构,支持使用类型定义(typedef)语句从基本类型定义派生类型。
基于此,基本数据类型的XSD文件可以与转换规则集合中的第二转换规则对应。第二转换规则用于完成到YANG文件内置的基本数据类型的映射。即模型转换装置可以根据第二转换规则,将基本数据类型的XSD文件转换为XML表达方式的YANG文件,以便于进一步转换得到第二数据模型中的元素。第二转换规则可以如下表2所示。
表2
例如,MTOSI数据模型中存在浮点数(float)和持续时间(duration)两个类型。而YANG语言中并不具备相同的基本数据类型。因此,可以预先按照IETF YANG规则,在ietf-yang-types.yang文件中定义该两个类型,具体如下所示:
一种可能的方式中,简单元素类型的XSD为仅包含XSD中基本数据类型的元素,其不包含其他任何的元素和属性。例如,仅包含XSD中基本数据类型的元素(或称为xsd:element)和属性(或称为xsd:attribute)等。xsd:element用于定义XML文件中可以出现的元素。xsd:attribute用于定义XML元素中可以出现的属性。若某个元素拥有了属性,也就不属于简单元素类型。一个简易元素的定义可以如下所示:
<xsd:element name=“xxx”type=“yyy”/>。
<xsd:attribute name=“xxx”type=“yyy”/>。
简单元素类型的XSD文件可以与转换规则集合中的第三转换规则对应。第三转换规则如下表3所示。即对于属于简单元素类型的元素和属性而言,可以通过第三转换规则直接映射为YANG文件,即第二数据模型中的叶子(leaf)元素。
表3
XSD描述 | YANG描述 |
简单元素类型元素 | leaf |
简单元素类型属性 | leaf |
例如,简单元素类型的元素的XSD描述可以如下所示:
<xsd:element name=“age”type=“xsd:integer”/>。
其转换后的YANG描述可以为:
例如,简单元素类型的属性的XSD描述可以如下所示:
<xsd:attribute name=“id”type=“xsd:integer”/>
其转换后的YANG描述可以为:
一种可能的方式中,复杂元素类型可以是包含XSD中基本数据类型、且包含其他元素和/或属性的元素。复杂元素类型的XSD文件可以与转换规则集合中的第四转换规则对应。即模型转换装置可以根据第四转换规则,将复杂元素类型的XSD文件转换为XML表达方式的YANG文件,以便于进一步转换得到第二数据模型中的元素。第四转换规则如下表4所示。
表4
XSD描述 | YANG描述 |
xsd:complexType | container和grouping |
xsd:simpleContent+xsd:extension | container和leaf |
xsd:complexContent+xsd:extension | container,grouping以及扩展的grouping |
xsd:choice | choice |
minOccurs/maxOccurs | leaf-list中的min-elements/max-elements |
xsd:any | anydata |
一种可能的方式中,简单类型(或称为xsd:simpleType)可以用于定义一个自定义的简单类型。其所定义的简单类型可以基于XSD内置的基本数据类型。例如,字符串类型(string)和整数类型(int)等。并且,xsd:simpleType可以对所基于的基本数据类型给出额外的限制约束。这些约束定义的实现是通过xsd:simpleType与限制(或称为xsd:restriction)、联合(或称为xsd:union)、枚举(或称为xsd:enumaration)等一起使用完成的,因此不单独对xsd:simpleType进行转换。
复杂类型(或称为xsd:complexType)是一种可以包括其他元素或属性的XML元素。xsd:complexType主要有“内涵”型和“分离”型两种使用形式。
“内涵”型使用形式即直接在元素里面使用复杂类型。示例如下:
序列(sequence)是对指定元素的组合,规定子元素按照特定的顺序出现,其在MTOSI数据模型中仅表达元素组合的语义,可以不用特定的YANG语法进行表达。
“分离”型使用形式即将元素所指的复合类型的定义放在外面进行说明,以实现复杂类型数据的复用。示例如下:
模型转换装置根据第四转换规则对XSD描述的complexType进行转换时,可以采用YANG中容器(container)和分组(grouping)的组合方式进行转换。结合对简单元素类型对应的第三转换规则,可以对上述两种使用形式的YANG进行转换。
对于“内涵”型使用形式,可以直接用一个YANG的容器进行表示,示例如下:
对于“分离”型使用形式,可以采用一个容器结合一个分组的方式进行表示,示例如下:
扩展(或称为xsd:extension)、简单内容(或称为xsd:simpleContent)、复杂内容(或称为xsd:complexContent)。xsd:extension用于扩展已有的复杂类型,可以基于一个已有的复杂类型(以下简称为基类型)创建一个新的复杂类型,同时添加额外的属性或元素。也可以表示为xsd:extension(base)。“base”为基类型。xsd:extension(base)需要和simpleContent或complexContent结合使用。
若xsd:extension(base)和simpleContent配合使用,则表示对简单内容上的扩展。例如,以“分离”型complexType为例,示例如下:
一种可能的方式中,XSD描述的指示器(或称为xsd:indicators)可以用于控制使用元素的方式。例如,选择(choice)指示器、序列(sequence)指示器、最大出现次数(maxOccurs)指示器、最小出现次数(minOccurs)指示器。模型转换装置可以将choice指示器,直接映射到YANG的choice。
例如,一种XSD描述的choice指示器示例如下:
其转换后的YANG描述为:
其中,YANG描述的“case”在转换过程中和leaf名称保持一致。“case”没有实际语义,可以依据专家经验定义。
maxOccurs指示器用于指示某个元素可以出现的最大次数。minOccurs指示器用于指示某个元素可以出现的最小次数。若一个元素中没有指定这两个值,则表示二者默认都是1,也就是出现且只出现一次。示例如下:
其转换后的YANG描述为:
其中,第四转换规则可以使用YANG的叶子列表(leaf-list)来表示,具体数值表达可以使用leaf-list中的最大元素数(max-elements)和最小元素数(min-elements)。在YANG的leaf-list中,min-elements或max-elements语句是可选的,其规定了leaf的最多和最少出现的数量。如果不存在min-elements语句,则默认为零。如果不存在max-elements语句,则默认为无限大(unbounded)。
模型转换装置可以根据如下表5所示的映射关系,将minOccurs指示器和maxOccurs指示器的XSD表示转换为YANG表示。
表5
一种可能的方式中,XSD中的任意元素(或称为xsd:any)可以用于拓展未被schema规定的元素。示例如下:
模型转换装置可以根据第四转换规则,将该xsd:any直接映射为YANG描述的任意数据(anydata)。转换后的anydata示例如下:
一种可能的方式中,模型转换装置可以基于转换规则集合中的第五转换规则,对复合场景类型的XSD文件进行转换。即模型转换装置可以根据第五转换规则,将复合场景类型的XSD文件转换为XML表达方式的YANG文件,以便于进一步转换得到第二数据模型中的元素。第五转换规则如下表6所示。
表6
一种可能的方式中,若需要在已有数据类型的基础上约束额外的限制,则可以将xsd:restrition语句和xsd:simpleType语句复合使用。例如,字符串的长度限制、整数的范围限制、枚举值的集合等。
YANG中配置有对于内置基本数据类型的限制。不同的内置基本数据类型及其派生类型允许不同类型的子类型。例如,字符串的长度和正则表达式限制和数字类型的范围限制。如下表7所示,对于带有restriction的元素而言,可以利用YANG对内置基本数据类型的限定来表达相同的含义。
表7
其中,XSD中的小数位数(fractionDigits),与YANG中的64位十进制浮点数的小数位数(decimal64:fraction-digits),均可以用于限定允许的最大的小数位数。
XSD中的长度(length)、最大长度(maxLength)、最小长度(minLength),与YANG中的字符串长度(string:length),均可以用于限定允许的字符的数目。
XSD中的最小排除(minExclusive)、最大排除(maxExclusive)、最小包含(minInclusive)、最大包含(maxInclusive),与YANG中的整数范围(intx:range),均可以用于限定数值的下限和上限。其中,intx可以是int8、或int16、或int32、或int64等。
XSD中的pattern(模式)与YANG中的字符串模式(string:pattern),均可以用于限定可接受的字符的精确序列。
示例如下:
其转换后的YANG描述为:
一种可能的方式中,xsd:union是XSD中的一种数据类型,用于表示一个元素可以包含多种不同数据类型的值,通常用于定义一个元素的内容模型,使该元素可以包含多种不同类型的数据。对于xsd:simpleType和xsd:union复合定义的union类型,YANG语法中存在相应的union类型的定义。xsd:simpleType和xsd:union复合定义的union类型示例如下:
其转换后的YANG描述为:
一种可能的方式中,xsd:simpleType和xsd:enumeration可以复合使用,以定义字符串的枚举类型。示例如下:
其转换后的YANG描述为:
一种可能的方式中,MTOSI数据模型中可以在一个XSD文件中定义一个元素,并在另一个XSD文件中使用<xsd:element ref=“”>对其进行引用。
在上述转换规则中,XSD文件中的元素被转换为一个YANG文件中的容器,而在一个YANG文件中的容器并不支持在另一个YANG文件中被引用。因此,为了适配XSD中的引用(ref)规则,模型转换装置可以根据第五转换规则对XSD文件中引用的其他文件的元素进行处理。具体的,模型转换装置将xsd:element转换为YANG中的容器后,可以将该容器引用一个分组,并在该被引用的分组中定义xsd:element的结构,以实现在另一个YANG文件引用该结构的效果。
示例如下:
其转换后的YANG描述为:
其中,前者表示message所在的YANG文件中的定义,且message引用了cei:common-event-iformation。在另一个YANG文件中,可以定义一个同名的grouping,以便于message引用。即uses cei:common-event-information。
一种可能的方式中,MTOSI数据模型中功能实体的WSDL文件可以包括HTTP、JMS、message或portType文件。模型转换装置对构成一个功能实体的多个WSDL文件进行转换后,可以将该多个WSDL文件的逻辑转换为基于YANG语言描述的逻辑,并将转换后的基于YANG语言描述的逻辑统一定义在一个YANG文件内。例如,功能实体连接控制(ConnectionControl)可以由多个WSDL文件构成。该多个WSDL文件可以包括HTTP类文件、和/或portType类文件、和/或JMS类文件、和/或message类文件。模型转换装置将该多个WSDL文件的逻辑转换为基于YANG语言描述的逻辑后,可以将转换后的基于YANG语言描述的逻辑定义在一个YANG文件内。并且,该一个YANG文件的名称可以采用功能实体优化的名称。例如,功能实体和“-rpc”的组合。模型转换装置可以基于转换规则集合中的第六转换规则,将WSDL文件转换为XML表达方式的YANG文件,以便于进一步转换得到第二数据模型中的元素。第六转换规则如下表8所示。
表8
模型转换装置可以基于第六转换规则,将WSDL的输入(input)和输出(output)映射到YANG中的RPC接口的input和output。由于具体的请求(request)和响应(response)已经被转换成了分组,因此,input和output只需要导入对应的模块并且使用uses进行分组的引用即可。
示例性地,如图8所示,为本申请实施例提供的一种依赖关系的示意图。图8示出了构成功能实体ConnectionControl的多个WSDL文件间的依赖关系,以及绑定、服务、消息格式、端口类型和类型等元素。其中,HTTP连接控制服务描述(ConnectionControlHttp.wsdl)提供接口的定义。连接控制消息服务描述(ConnectionControlMessages.wsdl)指示需要导入的消息体所在的XSD位置和引用的命名空间。连接控制消息数据模式定义(ConnectionControlMessages.xsd)提供实际的消息体的定义。连接控制端口类型描述(或称为ConnectionControlportType.wsdl)用于描述与连接控制相关的网络服务接口或类型。
如图8所示,模型转换装置可以基于第六转换规则,将构成ConnectionControl的多个WSDL文件的逻辑转换为基于YANG语言描述的逻辑,并将该多个WSDL文件转换后的基于YANG语言描述的逻辑统一定义在一个YANG文件内,转换后得到的YANG文件的文件名称可以为原WSDL文件名称和“rpc.yang”组合的形式。例如,结合图5,具体的对应关系为:ConnectionControl作为YANG rpc的模块名称,并经文件名称处理组件处理后加上“-rpc”后缀,即转换后文件名可以为connection-control-rpc.yang。ConnectionControlHttp.wsdl中的operation,即<wsdl:operation name=“createAndActivateSubnetworkConnection”>被转换为YANG文件中的rpc create-and-activate-cross-connection。ConnectionControlMessages.wsdl中的input和output引用的XSD消息被转换为YANG文件中的uses。
S704、模型转换装置构建多个YIN文件各自对应的YANG文件,得到第二数据模型。
一种可以实现的方式中,模型转换装置可以根据pyang库对每个YIN文件进行解析,得到每个YIN文件的文件内容。YIN文件的文件内容可以包括以下至少一项:文件名称、命名空间、前缀、数据类型(如string等)、容器、叶子元素和其他元数据等。
进而,模型转换装置可以根据解析到的每个YIN文件的文件内容,构建每个YIN文件对应的YANG文件,得到第二数据模型(即YANG数据模型)。并且,模型转换装置可以通过转换工具中的pyang模块对YANG数据模型进行统一的校验,以检测YANG数据模型中的语法错误等。
一种可能的实现方式中,如图9所示,为本申请实施例提供的一种模型转换流程的示意图。图9示出的模型转换流程,可以用于设计模型转换装置中的转换工具。具体地,输入MTOSI数据模型的文件(即DDP文件)后,可以分别对XSD文件和WSDL文件进行语法校验,确定各文件的类型信息。例如,可以使用XML Schema库进行语法校验。
接着,可以将XSD文件转换为YIN文件。例如,结合图5,模型转换装置可以基于xsd_converter.py的转换逻辑,依赖于lxml和XML Schema库,由convert_xsd_type.py、regex_util.py和find_all_simple_type.py共同编译,实现将XSD描述的信息转换为YANG描述的信息,生成对应的YIN文件。接着,可以对XSD文件转换得到的YIN文件进行转换,得到YANG文件。例如,可以利用pyang依赖库将YANG描述的信息的XML表达(即YIN文件)转换为YANG文件。
并且,也可以将WSDL文件转换为YIN文件,以及对WSDL文件转换得到的YIN文件进行转换,得到YANG文件。例如,结合图5,模型转换装置可以基于wsdl_converter.py的转换逻辑,依赖于lxml和XML Schema库,由convert_xsd_type.py、regex_util.py和find_all_simple_type.py共同编译,实现将WSDL文件对应的功能转换为YANG描述的信息,生成对应的YIN文件,并进一步利用pyang依赖库将该YIN文件转换为YANG文件。例如,可以利用pyang依赖库将YANG描述的信息的XML表达(即YIN文件)转换为YANG文件。进而,可以输出YANG文件,并利用pyang模块对XSD文件和WSDL文件转换得到的全部YANG文件进行统一校验。
基于此,模型转换装置可以获取第一数据模型中的XSD文件和WSDL文件,并分别对多个原始文件进行语法校验,确定多个原始文件各自的类型信息。其中,XSD文件的类型信息用于指示XSD文件所包括数据的数据类型。WSDL文件的类型信息用于指示WSDL文件所对应功能的功能类型。进而,可以基于转换规则集合中与每个原始文件的类型信息对应的转换规则,准确地对每个原始文件进行转换,得到多个YIN文件,以进一步构建多个YIN文件各自对应的YANG文件,得到第二数据模型。基于此,本申请可以支持将结构较为复杂的第一数据模型(如MTOSI接口模型),转换为由多个YANG文件组成的第二数据模型,以简化数据模型的结构,提高网络管理的灵活性和效率。因此,本申请可以用于改善通过MTOSI接口模型对网络设备进行配置和管理时的灵活性和效率较低的问题,实现传统网络和SDN环境之间的接口互操作性,有助于推动网络技术创新。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对模型转换装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选地,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图10所示,为本申请实施例提供的一种模型转换装置的结构示意图。该模型转换装置可以用于执行如图7所示的模型转换方法。该模型转换装置包括:获取单元801和处理单元802;
获取单元801,用于获取第一数据模型中的多个原始文件;多个原始文件包括XSD文件、WSDL文件。例如,结合图7,获取单元801可以用于执行S701。
处理单元802,用于分别对多个原始文件进行语法校验,确定多个原始文件各自所包括数据的数据类型。例如,结合图7,处理单元802可以用于执行S702。
处理单元802,还用于基于转换规则集合中与每个原始文件所包括数据的数据类型对应的转换规则,对每个原始文件进行转换,得到多个YIN文件。例如,结合图7,处理单元802可以用于执行S703。
处理单元802,还用于构建多个YIN文件各自对应的YANG文件,得到第二数据模型。例如,结合图7,处理单元802可以用于执行S704。
可选地,数据类型包括根元素、或基本数据类型、或简单元素类型、或复杂元素类型、或复合场景类型;功能类型包括用于定义接口操作的类型、或用于指示接口参数的类型、或用于描述请求消息结构和响应消息结构的类型、或用于描述Java消息服务协议所对应接口的类型。
可选地,获取单元801,具体用于:将第一数据模型中存在预设后缀的文件,确定为多个原始文件;预设后缀包括XSD和WSDL。
可选地,处理单元802,具体用于:对每个YIN文件进行解析,得到每个YIN文件的文件内容;文件内容包括以下至少一项:文件名称、命名空间、前缀;根据每个YIN文件的文件内容,构建每个YIN文件对应的YANG文件,得到第二数据模型。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种模型转换方法,其特征在于,包括:
获取第一数据模型中的多个原始文件;所述多个原始文件包括可扩展标示语言模式定义XSD文件、网络服务描述语言WSDL文件;
分别对所述多个原始文件进行语法校验,确定所述多个原始文件各自的类型信息;所述XSD文件的类型信息用于指示所述XSD文件所包括数据的数据类型;所述WSDL文件的类型信息用于指示所述WSDL文件所对应功能的功能类型;
基于转换规则集合中与每个原始文件的类型信息对应的转换规则,对所述每个原始文件进行转换,得到多个另一个下一代独立记法YIN文件;
构建所述多个YIN文件各自对应的另一个下一代YANG文件,得到第二数据模型。
2.根据权利要求1所述的模型转换方法,其特征在于,所述数据类型包括根元素、或基本数据类型、或简单元素类型、或复杂元素类型、或复合场景类型;所述功能类型包括用于定义接口操作的类型、或用于指示接口参数的类型、或用于描述请求消息结构和响应消息结构的类型、或用于描述Java消息服务协议所对应接口的类型。
3.根据权利要求1或2所述的模型转换方法,其特征在于,所述获取第一数据模型中的多个原始文件,包括:
将所述第一数据模型中存在预设后缀的文件,确定为所述多个原始文件;所述预设后缀包括XSD和WSDL。
4.根据权利要求1或2所述的模型转换方法,其特征在于,所述构建所述多个YIN文件各自对应的另一个下一代YANG文件,得到第二数据模型,包括:
对每个YIN文件进行解析,得到所述每个YIN文件的文件内容;所述文件内容包括以下至少一项:文件名称、命名空间、前缀;
根据所述每个YIN文件的文件内容,构建所述每个YIN文件对应的YANG文件,得到所述第二数据模型。
5.一种模型转换装置,其特征在于,包括:
获取单元,用于获取第一数据模型中的多个原始文件;所述多个原始文件包括可扩展标示语言模式定义XSD文件、网络服务描述语言WSDL文件;
处理单元,用于分别对所述多个原始文件进行语法校验,确定所述多个原始文件各自所包括数据的数据类型;
所述处理单元,还用于基于转换规则集合中与每个原始文件所包括数据的数据类型对应的转换规则,对所述每个原始文件进行转换,得到多个另一个下一代独立记法YIN文件;
所述处理单元,还用于构建所述多个YIN文件各自对应的另一个下一代YANG文件,得到第二数据模型。
6.根据权利要求5所述的模型转换装置,其特征在于,所述数据类型包括根元素、或基本数据类型、或简单元素类型、或复杂元素类型、或复合场景类型;所述功能类型包括用于定义接口操作的类型、或用于指示接口参数的类型、或用于描述请求消息结构和响应消息结构的类型、或用于描述Java消息服务协议所对应接口的类型。
7.根据权利要求5或6所述的模型转换装置,其特征在于,所述获取单元,具体用于:
将所述第一数据模型中存在预设后缀的文件,确定为所述多个原始文件;所述预设后缀包括XSD和WSDL。
8.根据权利要求5或6所述的模型转换装置,其特征在于,所述处理单元,具体用于:
对每个YIN文件进行解析,得到所述每个YIN文件的文件内容;所述文件内容包括以下至少一项:文件名称、命名空间、前缀;
根据所述每个YIN文件的文件内容,构建所述每个YIN文件对应的YANG文件,得到所述第二数据模型。
9.一种模型转换装置,其特征在于,包括存储器和处理器;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过总线连接;当所述模型转换装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述模型转换装置执行如权利要求1-4任一项所述的模型转换方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机执行指令,当所述计算机执行指令在计算机上运行时,使得所述计算机执行如权利要求1-4任一项所述的模型转换方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序指令,所述计算机程序指令被计算机执行时实现如权利要求1-4任一项所述的模型转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410475950.3A CN118400426A (zh) | 2024-04-19 | 2024-04-19 | 模型转换方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410475950.3A CN118400426A (zh) | 2024-04-19 | 2024-04-19 | 模型转换方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118400426A true CN118400426A (zh) | 2024-07-26 |
Family
ID=92004739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410475950.3A Pending CN118400426A (zh) | 2024-04-19 | 2024-04-19 | 模型转换方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118400426A (zh) |
-
2024
- 2024-04-19 CN CN202410475950.3A patent/CN118400426A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7269602B2 (en) | Method and device for defining objects allowing establishment of a device management tree for mobile communication devices | |
US7269821B2 (en) | Method and device for management of tree data exchange | |
CN107211232B (zh) | 轻量级机器对机器协议与装置管理协议的互工作 | |
US8069451B2 (en) | System and method of compact messaging in network communications by removing tags and utilizing predefined message definitions | |
US9124466B2 (en) | System and method for exposing distributed transaction services as web services | |
DK2914022T3 (en) | Device management method, middleware and machine-to-machine communication platform, device and system | |
CN102447585B (zh) | 将网络配置协议响应报文转换为命令行的方法及装置 | |
JP2008269631A (ja) | 拡張可能マークアップ言語(xml)ドキュメントを処理するシステムおよび方法 | |
US20050204022A1 (en) | System and method for network management XML architectural abstraction | |
CN101609415A (zh) | 基于中间件的通用服务调用系统及方法 | |
CN105049256A (zh) | 一种通用自定义接口报文实现方法及系统 | |
CN109150583A (zh) | 一种北向接口的管理方法及装置 | |
US20110282889A1 (en) | Method and Device for Distributed Configuration of Telematics Services in Motor Vehicle Systems | |
Chellouche et al. | Flexible user profile management for context-aware ubiquitous environments | |
CN118400426A (zh) | 模型转换方法、装置和存储介质 | |
Alliance | User agent profile | |
Chu et al. | OMA DM v1. x compliant Lightweight Device Management for Constrained M2M devices | |
Tapang | Web Services Description Language (WSDL) Explained | |
CN100363925C (zh) | 兼容移动访问的多媒体网页快速适配技术 | |
KR101324393B1 (ko) | Rest 기반 웹 서비스 조합 시스템 및 방법 | |
CN111723036B (zh) | 数据处理方法、相关设备及计算机存储介质 | |
CN108737525A (zh) | 一种基于REST架构的Web服务系统 | |
EP3928468A1 (en) | Methods and devices for service capability discovery provided by management function providers | |
Fowler et al. | An Empirical Evaluation of Web System Access for Smartphone Clients | |
JPWO2006040991A1 (ja) | 端末装置、サーバ装置、及びWebサービス提供システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |