- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用二叉树对嵌入式系统的配置进行数据库管理的方法
唐强
E-mail:
【摘要】 嵌入式系统的配置管理就是一个微型的数据库系统,对设备的各种操作,通过嵌入式系统的API转换,就映射成对数据库的操作了。最基本的操作就是添加,删除,修改,查询。嵌入式系统的数据库存储方式大同小异,而数据库管理技术就因系统平台的不同而相差甚大。本文主要探讨通过使用二叉树来对嵌入式系统的配置进行数据库管理的方法,重点是如何使用二叉树来组织配置的结构。
关键词:嵌入式 二叉树 TR069
嵌入式系统配置的数据库组织形式多种多样,经常会为了满足一些功能特性或者缩小其它功能的开发时间,而引入新的数据库组织形式。TR069是近年来家庭网关中引入的一项新的管理平台和技术,通过节点路径的管理方式,使用的数据采用XML标准格式。转换成树形结构显示如下:
RootNode
|--FUNCTION1
| |--PARAM1-1
| |--PARAM1-2
|--FUNCTION2
|--PARAM2-1
|--PARAM2-2
|--PARAM2-3
由于软件开发的特性要向下兼容,所以大多数平台都是采取把TR069作为一个新增的独立功能来开发,TR069分成两大模块,一个是TR069的消息管理模块,另一个是系统配置与TR069数据之间的转换模块。早期家庭网关设备功能单一,所以配置转换模块的开发工作量不是很大,但随着互联网的发展和各种多媒体业务的扩展,家庭网关设备越来越复杂,每种功能特性都有对应的配置信息,而配置转换模块要针对每一种功能特性来做相应的开发,维护的成本很高,模块也越来越庞大。不仅如此,TR069是个很开放的功能,除了TR98标准等规定的节点外,很多网络运营商还要求支持私有的节点。这种情况下,配置转换模块的维护开发就越来越混乱,很多代码不具有可移植性。越到后期,就越是一个客户一套代码,代码维护的工作量相当大。
基于上述原因,很多新的平台开始考虑使用新的配置组织架构,以让各种配置信息可以简单映射到各种管理平台所需的数据结构。对用户来说,就是前面说到的树形结构,而对于设备内部和开发人员,就是以某一种数据结构来组织数据了。以下将分别说明如何使用二叉树来组织嵌入式系统的配置数据,包括描述配置数据的二叉树抽象结构、说明二叉树数据结构及操作、以范例描述管理操作到配置数据库的映射过程。
1 二叉树抽象结构
二叉树的典型结构是一个父节点,有两个子节点,一个是左子节点,一个是右子节点。基础结构如下:
图一
每一个节点有几个基础属性,最重要的是指向左子节点的指针和指向右子节点的指针,由这两个指针构成一个二叉树节点,多个相关联的二叉树节点通过左右子节点指针又组成了完整的二叉树。通常为了访问方便,每个二叉树节点还包含一个父节点指针,这样就行成了双向链表。这样的二叉树有如下特点:1、除了最上面的节点,所有的节点都有父节点,这个节点我们通常叫做根节点,它的父节点指针为空,通过以它为起点,可以查找到任意节点;2、标准的二叉树,只有子节点指针为空的节点才叫做叶子节点,叶子节点可以存放数据。具体使用的时候,并不完全按照这样的特性来做,需要根据实际情况做一些变通。多个二叉树节点组合到一起,就形成二叉树,如下图:
图二
如上的二叉树并不直接适用于嵌入式系统的配置管理,首先需要了解嵌入式系统配置方面的特点,才能讨论如何用二叉树的结构来管理。由于嵌入式设备的特性,本身拥有的物理内存和存储器的大小很有限,大多只有几MB,甚至几百KB,这就要求设计数据模型要充分利用有限的内存空间。所以如果要使用二叉树来设计配置的数据结构,就必须利用上所有的节点来存储数据。在性能方面的要求不是很高,但要比较迅速的找到所需要的节点上的信息,在用户对设备进行操作的情况下,往往要在很短的时间内对几十个,甚至几百个节点的信息进行访问,并用读取出的数据进行功能性上的各种操作,否则会影响到用户的体验。还有就是配置信息的特点,对于每一个功能特性,它有这个功能的一些公共的,或者说是全局的参数,如防火墙功能,它会有一个全局的总开关,即是启用还是禁用防火墙功能,我们把这个叫静态属性;另外大部分功能它还会有一些让功能具体生效的规则,如防火墙规则,它有如下信息:规则应用于的源IP地址及端口,规则是要允许通过还是拒绝访问,规则生效的时间访问等。可动态添加规则的属性,我们叫做动态属性。这种配置的特点概述起来,就是有一部分配置信息是全局只有一份的;另一部分配置信息是具有相同的数据结构,但所保存的值有差别,一般有一个从1开始的索引号,在TR069的管理上,这种叫做实例。功能图表的结构大致如下:
图三
剩下是如何用抽象的方法把配置数据用二叉树的结构来表示出来。我做了如下定义:
文档评论(0)