一种电信话单数据编解码方法技术

技术编号:8682487 阅读:224 留言:0更新日期:2013-05-09 02:32
本发明专利技术涉及一种电信话单数据编解码方法,其中一种电信话单数据编码方法,具体包括以下步骤:步骤1:安装软件开发包;步骤2:配置软件开发包中的相关变量生成配置文件;步骤3:按照所述配置文件中保存的不同的电信话单数据的类型,调用内存中预先保存的树型话单结构模型;步骤4:接收定长型的电信话单数据,生成二维的树型话单结构数据;步骤5:将生成的树型话单结构数据编码转换成一维的码流数据;步骤6:完成编码,清理并释放内存。本发明专利技术所描述的数据编码方法,可有效降低目前计费数据的冗余度,提高数据存储资源的使用率;本编码方法可以规划话单数据不同字段之间从属关系,使话单具备更好的扩展能力;本编码方法编解码效率很高。

【技术实现步骤摘要】

本专利技术涉及一种数据编解码方法,尤其涉及。
技术介绍
目前电信业务系统中详单存储格式都是定长定格式,即记录分条存放到文件,字段按照固有长度按顺序存放,如图1所示。这样存放,系统处理相对简单,效率因转换步骤少而相对较高。同时对系统维护人员和客户而言,这种话单也比较容易直接读取。但这种格式话单冗余度很高:为了保证存放足够的数据,每个字段长度以可能出现的字符的最大值设定,不够最大值长度的用空白填充。过大的数据冗余(并不代表相当的信息量)对存储、备份、管理、容灾都造成很大困难。另外,由于冗余数据也需要磁盘进行传输,造成系统IO浪费。定长话单格式的存储还造成复合话单存储困难。定长话单格式是一种“流”,话单字段顺序存储,字段和字段间只有先后关系而没有归属关系。但随着电信业务的快速发展,字段间关系逐渐有包含和从属关系产生,目前处理方式是将一对多的从属或包含关系,拆分成一对一的无从属关系后,再采用定长方式进行存储。这样存储造成了更多的数据冗余。如图1所示,电信话单记录目前都以定长方式存储,字段与字段间存在固定顺序,每个字段长度均固定,并且以此字段中数据的最大长度做为字段的默认长度。其中所有字段均为可见字符,日期型、整型或浮点型字段也都转换为可见字符进行展现。如此编码显然每条记录的长度均相同,每个字段起始位置也相同,方便直接对文件记录进行操作,比如计算记录数或截取某个字段等等。但因为字段长度采用的是字段内数据的最大长度,因此记录中存储的并非全部为有效数据,浪费字节数较多;另外,因为字段与字段间的顺序是固定的,调整某个字段的位置或变更长度将是一件十分困难的事情,这需要改动读取数据的相关程序以及对历史数据进行区别访问或全量格式转换。
技术实现思路
本专利技术所要解决的技术问题是,针对现有技术的不足,提供一种可有效降低目前计费数据的冗余度,提高数据存储资源的使用率的电信话单数据编码方法。本专利技术解决上述技术问题的技术方案如下:一种电信话单数据编码方法,具体包括以下步骤:步骤1:安装软件开发包;步骤2:配置软件开发包中的相关变量生成配置文件,并将配置文件保存入内存,配置文件中包括至少三种电信话单数据的类型;步骤3:按照所述配置文件中保存的不同的电信话单数据的类型,调用内存中预先保存的树型话单结构模型,所述树型话单结构模型与所述电信话单数据的各类型一一对应;步骤4:接收定长型的电信话单数据,判断其所属电信话单数据的类型,并存入与所述电信话单数据的类型相应的树形话单结构模型,生成二维的树型话单结构数据;步骤5:将生成的树型话单结构数据进行序列化操作,编码转换成一维的码流数据;步骤6:完成编码,清理并释放内存。本专利技术的有益效果是:本专利技术所描述的数据编码方法,可有效降低目前计费数据的冗余度,提高数据存储资源的使用率;本编码方法可以规划话单数据不同字段之间从属关系,使话单具备更好的扩展能力;本编码方法编解码效率很高,可替代已有的数据存储方法。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述步骤2具体包括以下步骤:步骤2.1:配置软件开发包中的相关环境变量;步骤2.2:调用开发包环境变量进行编码,初始化相关变量和数据,生成配置文件,并将配置文件保存入内存,配置文件中包括至少三种电信话单数据的类型。进一步,所述步骤2.1配置的环境变量包括可扩展标记语言的文件名称、可扩展标记语言的文件路径、软件开发包的安装目录和软件开发包的当前版本。进一步,所述配置文件中保存的电信话单类型包括语音话单类型、短信话单类型和视频话单类型,不同类型的电信话单按名称对应不同的树型话单结构模型,所述树型话单结构模型保存在内存中。进一步,所述步骤2.2中的编码采用直接编码方案,所述编码中标签为8位无符号整型;所述编码中对数值长度的编码为变长无符号整形数;所述编码中数值内容为变长的二进制流。本专利技术所要解决的技术问题是,针对现有技术的不足,提供一种可有效降低目前计费数据的冗余度,提高数据存储资源的使用率的电信话单数据解码方法。本专利技术解决上述技术问题的技术方案如下:一种电信话单数据解码方法,具体包括以下步骤:步骤1:安装软件开发包;步骤2:配置软件开发包中的相关变量生成配置文件,并将配置文件保存入内存,所述配置文件中包括至少三种电信话单数据的类型;步骤3:读取一条一维的码流数据;步骤4:将一维的码流数据存入内存中,并将码流数据解码转换为二维的树型话单结构数据,并将所述二维的树型话单结构数据的电信话单数据的类型与内存中预先保存的树型话单结构模型类比,匹配出对应的树型话单结构模型;步骤5:识别所述二维的树型话单结构数据对应的电信话单数据的类型,并按照所述电信话单数据的类型和与其相对应的树型话单结构模型将所述树型话单数据处理为定长型的电信话单数据;步骤6:读取所述定长型的电信话单数据;步骤7:完成解码,清理并释放内存。本专利技术的有益效果是:本专利技术所述的解码方法解码效率高,由于简化了数据嵌套关系以及直白的二进制数据存取,在基于新变长话单结构定义的编码/解码API执行效率,在CPU主频1.65GHz的主机上单线程处理效率>10000条/秒,满足电信话单数据处理的要求。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述步骤2具体包括以下步骤:步骤2.1:配置软件开发包中的相关环境变量;步骤2.2:调用开发包环境变量进行编码,初始化相关变量和数据,生成配置文件,并将配置文件保存入内存,配置文件中包括至少三种电信话单数据的类型。进一步,所述步骤2.1配置的环境变量包括可扩展标记语言的文件名称、可扩展标记语言的文件路径、软件开发包的安装目录和软件开发包的当前版本。进一步,所述配置文件中保存的电信话单类型包括语音话单类型、短信话单类型和视频话单类型,不同类型的电信话单对应不同的树型话单结构模型,所述树型话单结构模型保存在内存中。如图2所示,为树型话单格式示意图,话单数据存储结构的改造,主要将这种定长定格式的数据,改造成树型话单数据,树型存储的数据中的数值字段均为树的叶子,树的非叶子结点则用于字段的分组和管理。树型结构的字段多少和顺序没有强制要求,并且因为树型话单可以递归定义,所以能够更方便存放话单数据。如图3所示,为本专利技术采用的数据编码方法示意图,数据编码采用直白编码方案,只进行网络字节序转换而不进行任何数据类型变换,以降低在数据在读取和处理过程中的额外开销。编码中标签为8位无符号整型,可以有256种不同编码方式。由于标签在新编码规则的配置文档中定义成上下文相关,当话单结构分为η层时,理论可用标签个数将有256的η次方个。针对电信话单,每个话单子层区分256个不同标签已能满足要求。编码中对数值长度的编码为变长无符号整型数。如果长度第一个bit位是0,则表示长度占用15bit,如果第一个bit位是I,则表示长度占用31bit。普通电信话单,15bit的长度(32K)已经满足要求,对特殊应用场景下的复合话单,31bit (2G)的长度也可满足要求。编码中数值内容为变长的二进制流。二进制流对应的数据类型,由配置文档中定义的数据类型进行转换。通过使用新的编码方式,使话单具备更灵活的扩展能力,并且在话单格式升级后,自然兼容原话单格式,避免对大量数据的转换工作。对整型或字节流类本文档来自技高网
...

【技术保护点】
一种电信话单数据编码方法,其特征在于,具体包括以下步骤:步骤1:安装软件开发包;步骤2:配置软件开发包中的相关变量生成配置文件,并将配置文件保存入内存,配置文件中包括至少三种电信话单数据的类型;步骤3:按照所述配置文件中保存的不同的电信话单数据的类型,调用内存中预先保存的树型话单结构模型,所述树型话单结构模型与所述电信话单数据的各类型一一对应;步骤4:接收定长型的电信话单数据,判断其所属电信话单数据的类型,并存入与所述电信话单数据的类型相应的树形话单结构模型,生成二维的树型话单结构数据;步骤5:将生成的树型话单结构数据进行序列化操作,编码转换成一维的码流数据;步骤6:完成编码,清理并释放内存。

【技术特征摘要】
1.一种电信话单数据编码方法,其特征在于,具体包括以下步骤: 步骤1:安装软件开发包; 步骤2:配置软件开发包中的相关变量生成配置文件,并将配置文件保存入内存,配置文件中包括至少三种电信话单数据的类型; 步骤3:按照所述配置文件中保存的不同的电信话单数据的类型,调用内存中预先保存的树型话单结构模型,所述树型话单结构模型与所述电信话单数据的各类型一一对应;步骤4:接收定长型的电信话单数据,判断其所属电信话单数据的类型,并存入与所述电信话单数据的类型相应的树形话单结构模型,生成二维的树型话单结构数据; 步骤5:将生成的树型话单结构数据进行序列化操作,编码转换成一维的码流数据; 步骤6:完成编码,清理并释放内存。2.根据权利要求1所述一种电信话单数据编码方法,其特征在于,所述步骤2具体包括以下步骤: 步骤2.1:配置软件开发包中的相关环境变量; 步骤2.2:调用开发包环境变量进行编码,初始化相关变量和数据,生成配置文件,并将配置文件保存入内存,配置文件中包括至少三种电信话单数据的类型。3.根据权利要求2所述一种电信话单数据编码方法,其特征在于,所述步骤2.1配置的环境变量包括可扩展标记语言的文件名称、可扩展标记语言的文件路径、软件开发包的安装目录和软件开发包的当前版本 。4.根据权利要求3所述一种电信话单数据编码方法,其特征在于,所述配置文件中保存的电信话单类型包括语音话单类型、短信话单类型和视频话单类型,不同类型的电信话单按名称对应不同的树型话单结构模型,所述树型话单结构模型保存在内存中。5.根据权利要求1-4任一项所述一种电信话单数据编码方法,其特征在于,所述步骤2.2中的编码采用直接编码方案,所述编码中标签为8位无符号整型,可以有256种不同编码方式,由于标签在新编码规则的配置文档中定义成上下文相关,...

【专利技术属性】
技术研发人员:张奇伟
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1