掌桥专利:专业的专利平台
掌桥专利
首页

一种转码实现方法和装置

文献发布时间:2023-06-19 09:26:02


一种转码实现方法和装置

技术领域

本申请涉及计算机技术领域,具体涉及一种转码实现方法和装置。

背景技术

NGAP(NG Application Protocol,NG接口应用协议)提供NG-RAN(NG wirelessaccess network,NG接口无线接入网)节点与AMF(Access and Mobility ManagementFunction,接入和移动性管理功能)节点之间的信令服务,NGAP使用ASN.1(AbstractSyntax Notation one,抽象语法标记)协议作为编解码协议,可以交换小规模的信息,很容易创建占用低内存的编解码器,可以对消息进行高速的编码/解码工作。

第五代移动通信技术(5th generation mobile networks,5G)的目标是更高的数据速率、减少延迟、提高能效、降低成本、增加系统容量和大规模设备连接,因为ASN.1可以满足所有这些要求,3GPP选择5G继续使用ASN.1。

在计算机网络领域,ASN.1是一套标准,是描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以描述独立于特定计算机硬件的对象结构。

ASN.1包括多个标准化编码规则,如基本编码规则(Basic Encoding Rule,BER)、规范编码规则(Canonical Encoding Rules,CER)、识别名编码规则(DistinguishedEncoding Rules,DER)、压缩编码规则(Packet Encoding Rule,PER)和XML编码规则(XMLEncoding Rules,XER)。这些编码规则描述了如何对ASN.1中定义的数值进行编码,以便用于传输,而不管计算机、编程语言或它在应用程序中如何表示等因素。

ASN.1的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息的快速可靠的传输,尤其在无线宽带中,这是一种优势,但同时对编解码也带来了巨大的工作量。

发明内容

本申请提供了一种转码实现方法和装置,以屏蔽NGAP编解码底层的复杂度,降低开发成本、缩短开发周期,提高生产效率。

根据本申请的一个方面,提供了一种转码实现方法,该方法包括:

接收具有ASN.1数据结构的数据;

对所述数据进行转码处理,将所述数据转码成具有通用对象结构的中间数据;

在完成对所述中间数据的操作处理后,将经过操作处理后得到的具有通用对象结构的数据转码成具有ASN.1数据结构的数据。

根据本申请的一个方面,提供了一种转码实现装置,该装置包括:

接收单元,用于接收具有ASN.1数据结构的数据;

第一转码单元,用于对所述数据进行转码处理,将所述数据转码成具有通用对象结构的中间数据;

第二转码单元,用于在完成对所述中间数据的操作处理后,将经过操作处理后得到的具有通用对象结构的数据转码成具有ASN.1数据结构的数据。

根据本申请的一个方面,提供了一种转码实现系统,包括存储器和处理器;存储器,存储计算机可执行指令;处理器,计算机可执行指令在被执行时使处理器执行转码实现方法。

根据本申请的一个方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有一个或多个计算机程序,一个或多个计算机程序被执行时实现转码实现方法。

本申请的有益效果是:将接收到的具有ASN.1数据结构的数据转码成为具有通用对象结构的中间数据,由于具有通用对象结构的中间数据更加易于阅读、编写,使得在开发过程中,可以直接操作中间数据,最后再将数据转码成具有ASN.1数据结构的数据,实现数据的转码,进而屏蔽NGAP编解码底层的复杂度,降低开发成本、缩短开发周期,提高生产效率,促进了5G网络的开发应用。

附图说明

图1是本申请一个实施例的转码实现方法的流程示意图;

图2是本申请一个实施例的转码实现流程示意图;

图3是本申请一个实施例的ASN.1标准编/解码器示意图;

图4是本申请一个实施例的调用解码器对数据进行解码处理的过程示意图;

图5是本申请一个实施例的转码实现系统的硬件结构图;

图6是图5中示出的转码实现装置的功能框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为屏蔽NGAP编解码底层的复杂度,提高系统交互的开发效率,本公开实施例提供了一种转码实现方法,参见图1,该方法包括如下步骤:

步骤S110,接收具有ASN.1数据结构的数据。

本步骤中接收来自ASN.1框架层的具有ASN.1数据结构的数据。

步骤S120,对所述数据进行转码处理,将所述数据转码成具有通用对象结构的中间数据。

本步骤中具体将数据转码成具有例如JSON对象结构,XML对象结构或Java对象结构等通用对象结构的中间数据。

步骤S130,在完成对所述中间数据的操作处理后,将经过操作处理后得到的具有通用对象结构的数据转码成具有ASN.1数据结构的数据。

本步骤中,中间数据经过操作处理后所得到的处理后的数据与中间数据具有相同或不同的通用对象结构。例如,中间数据为具有JSON对象结构的数据,那么操作处理后的数据可能为具有XML对象结构的数据,或者操作处理后的数据可能为具有JSON对象结构的数据。

本步骤中将经过操作处理后得到的具有通用对象结构的数据转码成具有ASN.1数据结构的数据,以基于ASN.1协议对转码后的数据进行传输处理。

由图1所示可知,本实施例将接收到的具有ASN.1数据结构的数据转码成为具有通用对象结构的中间数据,由于具有通用对象结构的中间数据更加易于阅读、编写,使得在开发过程中,可以直接操作中间数据,最后再将数据转码成具有ASN.1数据结构的数据,实现数据的转码,进而屏蔽NGAP编解码底层的复杂度,降低开发成本、缩短开发周期,提高生产效率,促进了5G网络的开发应用。

下面结合图2-图4详细说明本公开的转码实现方法。

结合5G核心网开发的需求,编码架构如图2所示,通过适用于ASN.1规则的编/解码器,可将ASN.1协议下的数据转换为通用开发语言的对象结构,例如转换为JSON,XML或Java对象结构。

其中,ASN.1基本编码规则下的数据值由四个部分组成,分别是标识符、长度、内容和内容结束符。有下表1和表2所示的两种编码结构。

表1

表2

更为具体的,以Boolean(布尔)类型编码,TRUE编码形式如表3所示,以String(字符)类型编码,“Jones”编码形式如表4所示。

表3

表4

将ASN.1数据结构转换为通用对象结构的过程包括:

在接收到具有ASN.1数据结构的数据后,对具有ASN.1数据结构的数据进行解析处理,得到该数据对应的ASN.1结构体;通过该ASN.1结构体获取对应的数据类型和数据内容;根据该数据类型选择该数据类型对应的解码器对数据内容进行解码,得到原始数据内容;将原始数据内容转码为具有通用对象结构的中间数据。

在本公开的一些实施例中,对数据进行转码处理之前,可以初始化加载并解析ASN.1定义的结构体,同时加载适用于ASN.1规则的标准解码器和适用于ASN.1规则的自定义解码器,其中标准解码器是对ASN.1定义的标准类型的解码,自定义解码器是对应扩展类型的解码。

在一些实施例中,可以通过ASN.1编解码接口获取适用于ASN.1规则的标准解码器和适用于ASN.1规则的自定义解码器,每种解码器与ASN.1结构体包括的数据类型具有对应关系。这样,可以根据该对应关系选择数据类型对应的解码器对数据内容进行解码。

在本实施例的一个应用场景中,可以先从具有ASN.1数据结构的数据的字节流中读取一个字节获取数据类型,然后依据数据类型基于上述对应关系,获取相应类型解码器,再从字节数组中读取下一个字节,获取数据内容的长度,从字节数组中,读取该长度的数据,通过获取到的解码器解码出原始数据内容,在通过ASN.1定义的结构体,将解码出的原始数据内容,存储到相应的通用对象结构中,例如直接存储为JSON结构。

而将通用对象结构转换为ASN.1数据结构的过程包括:

在完成对中间数据的操作处理后,通过ASN.1编解码接口获取适用于ASN.1规则的标准编码器和适用于ASN.1规则的自定义编码器,每种编码器与通用对象结构包括的数据类型具有对应关系;根据该对应关系选择经过操作处理后得到的数据对应的编码器进行编码,将经过操作处理后得到的数据转码成为具有ASN.1数据结构的数据。

在本实施例转码过程中,需要利用适用于ASN.1规则的标准编/解码器和适用于ASN.1规则的自定义编/解码器。

参见图3示出的ASN.1规则的标准解码器,一般包括布尔类型解码器(BooleanDecoder),字符串类型解码器(String Decoder),序列类型解码器(Sequence Decoder),集合类型解码器(Set Decoder),表类型解码器(Implement Decoder)。

而ASN.1规则的自定义解码器是基于自定义的数据类型注册解码器,建立自定义数据类型与该自定义解码器之间的对应关系,在转码过程中,需要对具有通用对象结构的数据进行解码时,可以先通过通用对象结构包括的自定义数据类型获取该自定义解码器,然后调用该自定义解码器对数据进行解码处理。

参见图4示出的调用解码器对数据进行解码处理的过程,预先将解码器(包括自定义解码器和标准解码器)注册到注册器(Register)方法中,将解码器的类型作为这个方法的key值,将解码器本身作为value,在需要解码时,通过处理(handle)方法读取相应key值,基于key-value的对应关系,从Register获取相应的value,进而得到相应类型的解码器对数据进行解码。

基于上述转码实现方法对以ASN.1格式展示的数据300D1605536D6974680101FF020108为进行转码为例,该数据解析后如下表5所示:

表5

将该数据转码为JSON格式展示为:{name:"Smith",ok:TRUE,age:8},对应的数据对象格式为:

SEQUENCE{

name IA5String,

ok BOOLEAN,

age Integer}

值为:

{name:"Smith",ok:TRUE,age:8}

对比可知,将具有ASN.1数据结构的数据转码为具有通用对象结构的中间数据至少具有如下优势:

1)方便阅读和编写

具有ASN.1数据结构的优势是占用内存低,并且可以高速传输,格式通用性强。但ASN.1数据结构是TLV(Type-Length-Value,类型-长度-值)格式,以BIT(位)格式存储,不便于阅读和编写。

而JSON等通用对象结构是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。

2)开发难易程度低

ASN.1数据结构包括的标准数据类型有三十多种,每种数据类型都以整数标识,不方便记忆。而JSON等通用对象结构包括的数据类型有String,Number(数值类型),Boolean,Object(对象引用类型),Array(数组引用类型)类型简单、种类少,记忆方便,使用方便。通用对象结构的户数具有简单的数据格式,方便后续开发与使用。

3)屏蔽底层的复杂度,提高内部系统交互的开发效率

ASN.1编码规则包括BER、CER、DER、PER和XER等多种编码规则,单纯使用ASN.1协议,开发难度高,每次操作ASN.1数据都需要指定相应的编解码规则。

而本公开实施例对所有使用ASN.1解码模块先解析成通用对象类型,然后在开发过程中,直接操作对象,最后再使用ASN.1编码器,编译成ASN.1数据格式。可以屏蔽NGAP编解码底层的复杂度、多样性和多变性,大大降低了开发人员的学习成本和开发成本,提高了生产效率、缩短了系统的开发周期,促进了5G网络的开发应用。

与前述方法相对应,本申请还提供了一种转码实现装置,该装置可应用于SAN.1的一个系统服务器上。

本申请提供的转码实现装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。

以软件实现为例,可通过处理器10将非易失性存储器50中与转码实现装置60对应的机器可执行指令读取到易失性存储器40中运行。

从硬件层面而言,如图5所示,为本申请的转码实现系统的一种硬件结构图,除了图5所示的处理器10、内部总线20、网络接口30、易失性存储器40、以及非易失性存储器50之外,根据该系统的实际功能,还可以包括其他硬件,对此不再赘述。

在不同的实施例中,所述非易失性存储器50可以是:存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。所述易失性存储器40可以是:RAM(Radom Access Memory,随机存取存储器)等。

进一步,非易失性存储器50和易失性存储器40作为机器可读存储介质,其上可存储由处理器10执行的转码实现装置60对应的机器可执行指令。

从功能上划分,在转码实现装置60包括:

接收单元610,用于接收具有ASN.1数据结构的数据;

第一转码单元620,用于对所述数据进行转码处理,将所述数据转码成具有通用对象结构的中间数据;

第二转码单元630,用于在完成对所述中间数据的操作处理后,将经过操作处理后得到的具有通用对象结构的数据转码成具有ASN.1数据结构的数据。

一个实施例中,第一转码单元,用于对所述具有ASN.1数据结构的数据进行解析处理,得到所述数据对应的ASN.1结构体;通过所述ASN.1结构体获取对应的数据类型和数据内容;根据所述数据类型选择所述数据类型对应的解码器对所述数据内容进行解码,得到原始数据内容;将所述原始数据内容转码为具有通用对象结构的中间数据。

一个实施例中第一转码单元,具体是用于通过ASN.1编解码接口获取适用于ASN.1规则的标准解码器和适用于ASN.1规则的自定义解码器,每种解码器与ASN.1结构体包括的数据类型具有对应关系;根据所述对应关系选择所述数据类型对应的解码器对所述数据内容进行解码。

一个实施例中,第二转码单元,用于通过ASN.1编解码接口获取适用于ASN.1规则的标准编码器和适用于ASN.1规则的自定义编码器,每种编码器与通用对象结构包括的数据类型具有对应关系;根据所述对应关系选择所述经过操作处理后得到的数据对应的编码器进行编码,将所述经过操作处理后得到的数据转码成为具有ASN.1数据结构的数据。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

相关技术
  • 一种基于局部转码技术实现快速转码方法
  • 一种基于实时转码实现时移的方法及装置
技术分类

06120112161857