[发明专利]根据ASN.1信息动态创建数据模型的方法有效
| 申请号: | 200810123563.4 | 申请日: | 2008-07-08 |
| 公开(公告)号: | CN101324846A | 公开(公告)日: | 2008-12-17 |
| 发明(设计)人: | 窦仁晖;徐石明;张海滨;倪益民;夏士兵;张春晓 | 申请(专利权)人: | 国电南瑞科技股份有限公司 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/30 |
| 代理公司: | 南京纵横知识产权代理有限公司 | 代理人: | 董建林;孙永生 |
| 地址: | 210061江苏省南*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 根据 asn 信息 动态 创建 数据模型 方法 | ||
技术领域
本发明属计算机软件开发,更准确地说本发明涉及一种根据ASN.1信息动态建立数据模型的方法。
背景技术
抽象语法标记(Abstract Syntax Notation One)是描述抽象类型和值的标记,缩写为ASN.1,是描述在网络上传输信息格式的标准方法。它有两部分:一部分是数据类型及序列格式;另一部分描述如何将各部分组成消息。在应用时,通常使用ASN.1编译器将ASN.1规范翻译成C、C++或Java的源代码,开发人员使用此代码将结构或对象编译成ASN.1信息或将ASN.1信息翻译成结构或对象。
文献一《将抽象句法表示法1数据模型化成对象模型的方法及系统》(中国发明专利ZL01143625.5,公开日2002年7月17日)披露了一种将ASN.1数据映射到对象模型的方法、程序和系统。该方法识别数据流的开始,并接着产生该数据的新对象名;然后分析数据以获得识别符和数据长度;接着分析数据的标签类型,如果标签类型是简单型,则为该数据产生一类图,并产生该数据的源代码,如果标签类型不是简单型,则在产生类图和源代码之前,调用子例程进一步分析该数据。图1是现有技术中处理ASN.1信息的流程框图。该方法存在的问题是使用时需要先将模型转化为程序代码,每一次修改模型后,都必须重新生成源代码,无法做到动态创建模型。
发明内容
为解决现有技术的不足,本发明的目的在于提供一种能够不通过编译,直接将数据模型转化为ASN.1信息或将ASN.1信息转化为数据模型的根据ASN.1信息动态创建数据模型的方法。
本发明的又一目的在于提供一种减少模型占用的内存,使之能够应用于嵌入式系统,并提供方便、高效的检索方法的根据ASN.1信息动态创建数据模型的方法。
本发明的动态创建方法包括:
(1)直接读取ASN.1数据流,将ASN.1信息转换为数据模型,或将数据模型转换为ASN.1信息;
(2)采用多叉树表示数据模型,包括数据的名称、类型和数值,保持数据的层次关系和先后次序,提供目录检索和数据属性检索两种检索方法;
(3)数据采用池式存储方法,保存在一块线性内存区域中,根据数据的实际长度动态分配空间。
为了实现上述目的,本发明是采取以下的技术方案来实现的:
一种根据ASN.1信息动态创建数据模型的方法,包括:
(1)、建立内存池,在内存池的头部放置模型树,并初始化模型树;
(2)、读取ASN.1信息流,获得标签类型和数据长度;
(3)、根据标签类型调用不同的处理函数:
a)如果是SEQUENCE或ARRAY类型,表示后续的数据是一个序列或一个数组,跳过去继续分析后面的信息;
b)如果是STRUCT类型,表示紧接着的数据是一个结构体,每一个元素是结构体的一个成员,此时就在模型树中插入一个子节点,表示它是一个数据结构的根;
c)如果是简单类型,包括BOOL、INT、UINT、BITSTRING、FLOAT、VSTR、OCTSTR、BTIME、UTF8STR或UTCTIME,就在模型树中创建一个叶节点,所述的叶节点包括数据属性的名称、类型、长度和值;
(4)、继续读取、处理后面的ASN.1信息,直至信息流结束,得到一个完整的多叉树数据模型。
前述的根据ASN.1信息动态创建数据模型的方法,其特征在于还包括步骤(5):按顺序连接所有的叶节点,生成单向链表。
前述的根据ASN.1信息动态创建数据模型的方法,其特征在于所述的多叉树,其根表示主结构,每一个子节点表示一个子结构,叶节点表示数据属性;每一个子节点包括4个内容,分别是节点名称、父节点指针、兄弟节点指针和
子节点指针;从根结点开始,采用先根遍历的方式检索得到的数据是整个数据模型的目录,同时,所有数据属性之间以链表相连,采用遍历叶节点链表的方式检索得到的数据是所有的数据属性。
前述的根据ASN.1信息动态创建数据模型的方法,其特征在于所有节点都保存在事先分配好的一块线性内存中,每一个节点都是在使用时才根据实际需要的内存大小动态在线性内存中分配。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国电南瑞科技股份有限公司,未经国电南瑞科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810123563.4/2.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置





