CN103559032A - 嵌入式系统对象管理的装置及方法 - Google Patents
嵌入式系统对象管理的装置及方法 Download PDFInfo
- Publication number
- CN103559032A CN103559032A CN201310528410.9A CN201310528410A CN103559032A CN 103559032 A CN103559032 A CN 103559032A CN 201310528410 A CN201310528410 A CN 201310528410A CN 103559032 A CN103559032 A CN 103559032A
- Authority
- CN
- China
- Prior art keywords
- attribute
- subobject
- management group
- processing unit
- forward step
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种嵌入式系统对象管理的装置及方法,涉及对象管理领域,该装置包括业务处理单元、对象管理单元和系统上下文处理单元,业务处理单元用于:调用对象管理单元的接口完成相应的功能:动态的创建和删除对象以维护对象树;获取需要的对象的索引,根据对象索引调用相应的对象操作模块来设置/获取对象的属性值;对象管理单元包括对象管理初始化模块、对象属性注册模块、对象创建/删除模块、对象查找模块、对象属性值存取模块。本发明能提高不同系统之间的可复用性和可扩展性,保证对象的扩展与对象功能的实现互不影响,节省硬件存储资源,提高软件的开发效率。
Description
技术领域
本发明涉及对象管理领域,特别是涉及一种嵌入式系统对象管理的装置及方法。
背景技术
在嵌入式系统中,为了实现对物理实体和逻辑实体的管理和业务数据的配置,需要在嵌入式系统中创建与物理实体和逻辑实体对应的逻辑对象。通过这些逻辑对象实现网元管理系统对物理设备的管理、监控、业务配置等功能。嵌入式系统中的一个对象对应一个物理实体或者逻辑实体,每个对象都用一个全局唯一的标识符来标识,用对象的配置数据来描述对象的属性信息,其中关键的属性信息决定了对象的功能,对物理实体和逻辑实体的操作都建立在这些对象的基础之上。现有的绝大多数嵌入式设备,其设备的形态结构是不同的,对应的对象类型、对象层次以及对象数目也不相同,同时设备支持的功能也是不同的,由此对象的属性信息以及对属性信息的操作也不相同。如何对这些不同的对象进行统一并且高效的管理则显得尤为必要。
假定对应某种对象类型T,系统包含N个对象,分别表示为O1,O2,…,ON,记作<O1,O2,…,ON>,而类型为T的对象具有M项属性信息,分别表示为D1,D2,…,DM,由于对象的功能体现在对象的属性信息上,因此假定系统具有M项功能,M、N均为大于2的正整数。目前的实现方法一般是按照功能来划分对象的存储和操作,例如:一个功能模块将对象<O1,O2,…,ON>与某一项属性信息D1绑定在一起,另一个功能模块将对象<O1,O2,…,ON>与其另外两项属性信息D2和D3绑定在一起。这样对于每项属性信息,其对象的存储,属性信息的存储以及属性信息的操作也不相同,从而造成对象的管理不统一。假定用Si(i=1,2,…,M)表示对象与属性信息的存储,则对于属性信息Di,其所有对象存储的数据可以记作Si(Di,<O1,O2,…,ON>),这种方式与网元管理系统是对应的,因为网元管理系统都是以功能项来划分的。
由于属性信息是分散存储的,不同的属性信息中会包含着相同的对象信息,例如存储属性信息Di和Dj都包含了对象数据<O1,O2,…,ON>,因此对象信息存在着重复存储。从软件开发的角度来说,如果不同的属性信息划分到不同的软件开发人员来实现,软件开发人员除了关注对象功能的逻辑实现外,还需要关注对象的存储、读取等操作细节。如果预先没有规定对象的存储方式,则还可能造成对象的存储是不一致的。
另一方面,当对象<O1,O2,…,ON>发生变化后,例如:对象类型、对象层次、对象在每个层次中的编号或者对象数目发生变化,则涉及到该类型对象本身的操作以及该对象的所有属性信息的存储Si都可能发生变化。例如:对象创建、删除、校验、读取、拷贝、迁移等操作,从而造成系统的通用性和扩展性不高,软件的可复用性低。
在实际应用中,对于同一系列的设备,具有相同类型的对象其功能通常是相同的,即属性信息是相同的,而对象信息会发生变化,例如:对象层次、对象数目发生变化。设计软件架构时,希望相同的功能模块能够直接复用,对象本身的变化与对象属性信息的变化可以分离开来。
以PON(Passive Optical Network,无源光网络)系统的设备为例,存在着多种形态结构的设备,包括盒式设备、插卡式设备、多个分布式设备级联后的设备等等,同时设备内部也存在着不同的对象,例如在EPON(Ethernet Passive Optical Network,以太网无源光网络)/GPON(Gigabit-Capable Passive Optical Network,吉比特无源光网络)系统下,管理的对象为:子框、OLT(Optical Line Terminal,光线路终端)板卡、OLT PON端口、ONU(Optical Network Unit,光网络单元)、ONU端口等等,不同形态的设备板卡数目不同。而在WDM(Wavelength Division Multiplexing,波分复用)-TDM(Time DivisionMultiplexing,时分多路复用)PON系统中,用户可以通过分路器共享一对波长,由具有多波长光源的OLT进行资源调度。因此管理的对象还需要增加以波长划分的逻辑通道对象。当采用现有EPON/GPON系统中的对象管理方法移植到WDM-TDM PON系统中时,相应的对象需要增加一个层次,造成修改的工作量巨大,非常繁复,并且修改后会对以前的对象安全性有很大影响。
从另一个角度来说,OLT、ONU的形态非常多,而按照相应的技术要求,它们所要求提供的外部接口和功能都是相同的,因此不同形态的OLT、ONU需要最大化的共享相同的功能模块。
综上所述,现有的对象管理方法存在对象信息不易扩展、对象信息冗余存储、对象属性信息访问接口不一致、可能造成数据不一致的缺陷。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种嵌入式系统对象管理的装置及方法,能提高不同系统之间的可复用性和可扩展性,保证对象的扩展与对象功能的实现互不影响,同时节省硬件存储资源,提高软件的开发效率。
本发明提供一种嵌入式系统对象管理的装置,包括业务处理单元、对象管理单元和系统上下文处理单元,其中:
所述业务处理单元,用于:调用对象管理单元的接口完成相应的功能:动态的创建和删除对象以维护对象树;获取需要的对象的索引,根据对象索引调用相应的对象操作模块来设置/获取对象的属性值;
所述对象管理单元包括对象管理初始化模块、对象属性注册模块、对象创建/删除模块、对象查找模块、对象属性值存取模块;
所述对象管理初始化模块,用于:完成对象管理信息的初始化,包括对象属性注册表的空间分配、对象Hash查找表的建立、属性Hash查找表的建立;
所述对象属性注册模块,用于:提供统一的注册接口,以便对象管理单元之外的其它单元完成向对象管理单元的注册,即业务处理单元将系统内的属性信息加入到相应的对象树节点上,注册的内容参考属性注册表,对象属性通过相应的接口注销;
所述对象创建/删除模块,用于:根据输入的对象索引创建对象、删除对象,创建对象时,根据属性注册表中的内容分配对象空间,建立父对象与子对象之间的关系,并且初始化对象属性信息为默认值;删除对象时,释放对象的属性信息,拆除父对象与子对象之间的关系并且释放对象;
所述对象查找模块,用于:将对象的统一标识转换为字符串形式,以字符串作为关键值进行Hash查找;
所述对象属性值存取模块,用于:提供统一的接口,对对象的属性值进行存取、设置;
所述系统上下文处理单元,用于:将设备配置参数进行模板化处理,负责系统设备规格和参数导入,提供基础数据模板和状态给对象管理单元使用。
在上述技术方案的基础上,所述对象创建/删除模块,还用于:当子对象与其父对象之间具有固定的从属关系时,创建父对象的同时需要创建子对象,并建立它们之间的连接关系。
在上述技术方案的基础上,所述对象创建/删除模块,还用于:当子对象与其父对象之间没有固定的从属关系时,通过特定的事件触发它们之间建立和解除从属关系。
在上述技术方案的基础上,所述对象查找模块按照系统支持的对象层次数目,对象类型以及每个对象层次用一定的字节来编码,将这些编码后的字节形成字符串作为Hash表的索引。
本发明还提供一种基于上述装置的嵌入式系统对象管理的方法,包括以下步骤:
S1、对象管理单元初始化,完成对象管理信息的初始化,包括对象属性注册表的空间分配、对象Hash查找表的建立、属性Hash查找表的建立;
S2、对象属性注册模块提供统一的注册接口,注册的信息包括属性、属性类型、属性所支持的对象类型、属性值所需要分配的空间大小、属性缺省值获取接口、属性配置保存接口;
S3、业务处理单元调用对象属性注册模块提供的统一的注册接口,完成向对象管理单元的注册;
S4、业务处理单元根据功能要求,按照其业务处理逻辑,确定对应的操作,直至业务处理单元的功能完成;
S5、业务处理单元判断是否存在对对象的操作,如果是,则转到步骤S6;如果否,则转到步骤S8;
S6、业务处理单元判断对对象的操作是否满足下面四种情形之一:(a)对象创建;(b)对象删除;(c)对象存取;(d)对象查找;如果满足四种情形之一,则转到步骤S7;否则转到步骤S8;
S7、依据四种情形,分别执行对象的相关操作:
(a)对象创建:当业务处理单元完成板卡授权、ONU授权等功能时,其对对象的操作为对象创建,对象创建/删除模块采取递归的方式创建对象以及具有固定从属关系的所有子对象,步骤如下:
步骤101、申请相应的对象锁;
步骤102、通过对象Hash表查找对象是否存在,如果存在,则转到步骤111;如果不存在,则转到步骤103;
步骤103、分配对象节点,转到步骤104;
步骤104、分配对象的Hash表节点并插入到Hash表,转到步骤105;
步骤105、设置对象的固定属性和固定属性的属性值,固定属性和固定属性的属性值从系统上下文处理单元中获取,转到步骤106;
步骤106、根据属性注册表初始化对象的属性值,转到步骤107;
步骤107、判断该对象是否是根节点对象,如果是,则转到步骤109,否则转到步骤108;
步骤108、设置其父对象的子对象列表等数据,转到步骤109;
步骤109、判断是否有子对象,如果有子对象,则转到步骤110;如果没有子对象,则转到步骤111;
步骤110、根据子对象信息再次调用本创建对象处理流程,返回步骤101;
步骤111:释放相应的对象锁;
(b)对象删除:当业务处理单元要完成板卡去授权、ONU去授权等功能时,其对对象的操作为对象删除,对象创建/删除模块采取递归的方式删除对象以及该对象具有固定从属关系的所有子对象,步骤如下:
步骤201、申请相应的对象锁;
步骤202、通过对象Hash表查找对象是否存在,如果存在,则转到步骤203;如果不存在,转到步骤208;
步骤203、判断该对象是否有子对象,如果有子对象,则转到步骤204;如果没有子对象,则转到步骤205;
步骤204、将子对象作为索引递归调用本删除对象处理流程,转到步骤205;
步骤205、删除对象下的各个属性,转到步骤206;
步骤206、设置其父对象的子对象列表信息,转到步骤207;
步骤207、删除该对象在Hash表中的节点,转到步骤208;
步骤208、释放相应的对象锁;
(c)对象存取的流程如下:
步骤301、申请相应的对象锁;
步骤302、通过对象Hash表查找对象是否存在,如果存在,则转到步骤303;如果不存在,则转到步骤305;
步骤303、判断属性是否存在,如果存在,则转到步骤304;如果不存在,则转到步骤305;
步骤304、获取/设置对象对应的属性值缓冲区中的内容,转到步骤305;
步骤305、释放相应的对象锁;
(d)对象查找的流程如下:
步骤401、申请相应的对象锁;
步骤402、通过对象Hash表查找该对象是否存在,如果存在,则转到步骤403;如果不存在,则转到步骤407;
步骤403、判断该对象是否满足查找条件,如果满足,则转到步骤404;如果不满足,则转到步骤407;
步骤404、将满足查找条件的对象放入返回的对象列表中,转到步骤405;
步骤405、判断该对象是否存在子对象,如果存在,则转到步骤406;如果不存在,则转到步骤407;
步骤406、遍历递归该对象下的所有子对象,返回步骤402;
步骤407、释放相应的对象锁;
S8、判断业务处理单元的所有功能是否完成,如果全部完成,则循环结束;如果没有完成,则返回步骤S4,处理业务处理单元的下一次操作。
在上述技术方案的基础上,所述对象采用统一的可扩展标识,该标识涵盖了对象类型、对象所具有的层次数目以及对象在每个层次中的编号,对象的标识也表示对象的索引,对象的各类操作均使用该对象标识,即对象索引。
在上述技术方案的基础上,所述对象的标识中的每一条记录项标识了一个对象信息,具体包括下面三个参数:
(1)Type,对象类型;
(2)Level,对象层次;
(3)Addr,指向每层对象编号的指针,具体的层数由参数level对象层次来确定。
在上述技术方案的基础上,所述对象按照层次关系组织成树形结构,树中的每个节点表示一个对象,所述节点包括下面五个参数:
(1)ObjId,指向对象的指针,其类型为对象统一标识;
(2)Father,指向父对象的指针;
(3)Number,子对象的数目;
(4)SonList,指向子对象链表,链表的数目即为子对象的数目Number;
(5)AttrList,指向对象属性信息的链表。
在上述技术方案的基础上,所述对象属性信息包括属性和属性值,所述属性用来指明对象的特性,属性值指明属性的存储数据,所述链表中的每个属性通过属性注册表来定义,每个属性均有相应的信息指向属性值的存储区域。
在上述技术方案的基础上,所述属性注册表中的每一条记录项标识了一条属性的注册信息,至少包括下面六个参数:
(1)attr,属性;
(2)attrType,属性类型,标识该属性是固有属性还是可变属性,可变属性包括配置属性和状态属性;
(3)objType,该属性所支持的对象类型列表;
(4)size,单个对象使用该属性时所需要分配的空间大小;
(5)getDefaultValueFunc,获取属性缺省值的接口;
(6)saveFunc,保存属性值的接口,当设备的配置需要存储到非易失的随机访问存储器NVRAM时,如果需要按照对象来存储或者仅存储部分对象的属性信息时,使用该接口。
与现有技术相比,本发明的优点如下:
本发明将对象信息与对象属性信息从逻辑上分离开来,将对象信息以树形结构组织并进行集中管理,并提供对象操作的统一接口,同时对象属性信息通过注册的方式挂接到对象管理系统中,对象管理系统提供属性信息操作的统一接口,而不必关注具体的属性信息,具有很强的通用性,因此对象信息与对象属性信息可以支持任意方式的扩展,能够提高不同系统之间的可复用性和可扩展性,保证对象的扩展与对象功能的实现互不影响,解决现有方法中存在的对象信息不易扩展、对象信息冗余存储、对象属性信息访问接口不一致并且可能造成数据不一致的缺陷,软件开发人员可以更好的专注业务逻辑的实现而不必关注对对象本身的各类操作,同时还能节省硬件存储资源,提高软件的开发效率。此外,本发明还具有很好的并发性,能够提高数据的安全性,满足嵌入式设备大批量、并行、可靠安全的配置管理。
附图说明
图1是本发明实施例中嵌入式系统对象管理的装置的结构框图。
图2是本发明实施例中嵌入式系统对象管理的方法的流程图。
图3是插卡式OLT系统的对象树的结构框图。
图4是对象统一标识定义的结构示意图。
图5是对象树的节点定义的结构示意图。
图6是对象创建的流程图。
图7是对象删除的流程图。
图8是对象属性值获取/设置的流程图。
图9是对象查找的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种嵌入式系统对象管理的装置,包括业务处理单元、对象管理单元和系统上下文处理单元,其中:
业务处理单元,用于:调用对象管理单元的接口完成相应的功能:动态的创建和删除对象以维护对象树;获取需要的对象的索引,根据对象索引调用相应的对象操作模块来设置/获取对象的属性值;
对象管理单元包括对象管理初始化模块、对象属性注册模块、对象创建/删除模块、对象查找模块、对象属性值存取模块,其中:
对象管理初始化模块,用于:完成对象管理信息的初始化,包括对象属性注册表的空间分配、对象Hash查找表的建立、属性Hash查找表的建立等;
对象属性注册模块,用于:提供统一的注册接口,以便对象管理单元之外的其它单元完成向对象管理单元的注册,即业务处理单元将系统内的属性信息加入到相应的对象树节点上,注册的内容参考属性注册表,对象属性也可以通过相应的接口注销;
对象创建/删除模块,用于:根据输入的对象索引创建对象、删除对象,创建对象时,根据属性注册表中的内容分配对象空间,建立父对象与子对象之间的关系,并且初始化对象属性信息为默认值;删除对象时,释放对象的属性信息,拆除父对象与子对象之间的关系并且释放对象;当子对象与其父对象之间具有固定的从属关系时,如业务板卡与其对应的端口,这种情况下,创建父对象的同时需要创建子对象,并建立它们之间的连接关系;当子对象与其父对象之间没有固定的从属关系时,通过特定的事件触发它们之间建立和解除从属关系,例如:PON系统的ONU授权配置,在创建了ONU对象的同时,ONU对象和OLT系统的某个板卡的PON端口对象之间就建立了从属关系,ONU去授权操作则解除了上述从属关系;
对象查找模块,用于:将对象的统一标识转换为字符串形式,以字符串作为关键值进行Hash查找。采用Hash查找的目的是为了提高查找对象以及每个对象属性列表的效率,Hash查找的算法可以针对不同的系统采用不同的算法。在本发明实施例中,可以按照系统支持的对象层次数目,对象类型以及每个对象层次用一定的字节来编码,将这些编码后的字节形成字符串作为Hash表的索引。尽管对象存储是树形结构的,但是本发明没有考虑按照树形结构来查找,主要原因是考虑到树的查找需要从根开始,然后逐级的进行子树查找,当设备的层次较多时,查找的效率较低,为此本发明考虑使用Hash查找的方法,Hash查找是扁平化的,可以按照实际的对象数目动态占用Hash表,同时对系统空间资源的要求较小。
对象属性值存取模块,用于:提供统一的接口,对对象的属性值进行存取、设置,由于对象采用了统一的集中管理方式,其它单元访问对象的操作接口也可以统一。
系统上下文处理单元,用于:将设备配置参数进行模板化处理,负责系统设备规格和参数导入,提供基础数据模板和状态给对象管理单元使用。
参见图2所示,本发明实施例提供一种嵌入式系统对象管理的方法,包括以下步骤:
S1、对象管理单元初始化,完成对象管理信息的初始化,包括对象属性注册表的空间分配、对象Hash查找表的建立、属性Hash查找表的建立等;
S2、对象属性注册模块提供统一的注册接口,注册的信息包括属性、属性类型、属性所支持的对象类型、属性值所需要分配的空间大小、属性缺省值获取接口、属性配置保存接口等;
S3、业务处理单元调用对象属性注册模块提供的统一的注册接口,完成向对象管理单元的注册;
S4、业务处理单元根据功能要求,按照其业务处理逻辑,确定对应的操作,直至业务处理单元的功能完成;
S5、业务处理单元判断是否存在对对象的操作,如果是,则转到步骤S6;如果否,则转到步骤S8;
S6、业务处理单元判断对对象的操作是否满足下面四种情形之一:(a)对象创建;(b)对象删除;(c)对象存取;(d)对象查找;如果满足四种情形之一,则转到步骤S7;否则转到步骤S8;
S7、依据四种情形,分别执行对象的相关操作;
S8、判断业务处理单元的所有功能是否完成,如果全部完成,则循环结束;如果没有完成,则返回步骤S4,处理业务处理单元的下一次操作。
图3示出了一种插卡式OLT系统的典型管理对象的结构,OLT系统的管理对象可以组织成一棵对象树,树的每个节点都表示一个对象,树中的每个结点都有编号,从根到每个叶子结点都有唯一的路径,其根节点为OLT系统这个对象,根节点下的子对象为板卡对象,板卡对象的子对象则为PON端口对象,以此类推等。图3所示的OLT系统仅为一种示例,本领域技术人员完全可以对对象的层次以及每个层次的数量及布局采用其他合理的设置形式,本发明的目的是对于树形的对象实现统一的对象管理,而不在于对象的具体结构。
本发明实施例中的对象采用统一的可扩展标识,该标识涵盖了对象类型、对象所具有的层次数目以及对象在每个层次中的编号,该标识是可以任意扩展的。对象的标识也表示了对象的索引,对象的各类操作均使用该对象标识,即对象索引。
图4示出了对象统一标识的定义,标识中的每一条记录项标识了一个对象信息,具体包括下面三个参数:
(1)Type,对象类型;
(2)Level,对象层次;
(3)Addr,指向每层对象编号的指针,具体的层数由参数level对象层次来确定。
对象按照层次关系组织成树形结构,树中的每个节点表示一个对象,图5示出了对象树的节点定义,具体包括下面五个参数:
(1)ObjId,指向对象的指针,其类型为图4所示的对象统一标识;
(2)Father,指向父对象的指针,图5示出了子对象1的父对象;
(3)Number,子对象的数目;
(4)SonList,指向子对象链表,链表的数目即为子对象的数目Number;
(5)AttrList,指向对象属性信息的链表,对象属性信息包括属性和属性值,其中属性用来指明对象的特性,属性值指明属性的存储数据等。参见图5所示,链表中的每个属性通过表1所示的属性注册表来定义,每个属性均有相应的信息指向属性值的存储区域。
表1示出了属性注册表的定义,图中的每一条记录项标识了一条属性的注册信息,至少包括下面六个参数:
(1)attr,属性;
(2)attrType,属性类型,标识该属性是固有属性还是可变属性,其中可变属性又包括配置属性,状态属性等;
(3)objType,该属性所支持的对象类型列表;
(4)size,单个对象使用该属性时所需要分配的空间大小;
(5)getDefaultValueFunc,获取属性缺省值的接口;
(6)saveFunc,保存属性值的接口,当设备的配置需要存储到NVRAM(Non-Volatile Random Access Memory,非易失的随机访问存储器)时,如果需要按照对象来存储或者仅存储部分对象的属性信息时可以使用该接口。
表1、对象属性注册信息的定义表
序号 | 参数名称 | 说明 |
1. | attr | 属性 |
2. | attrType | 属性类型 |
3. | objType | 属性支持的对象类型列表 |
4. | size | 单个对象注册的属性表空间大小 |
5. | getDefaultValueFunc | 获取属性缺省值的接口 |
6. | saveFunc | 保存配置的接口 |
… | … |
上述的属性信息由业务处理单元调用对象属性注册模块提供的属性注册接口来填写,也可以调用相应的接口注销。由于同一类型的对象属性信息是相同的,因此一般按照对象类型来注册和注销其属性信息。
由于本发明实施例中除了对对象的读写操作外,对象也存在着创建和删除操作,因此必须对对象的读操作和写操作进行互斥处理。通常情况下每个对象都需要一个互斥锁,当系统的对象越来越多时,互斥锁的数目也越来越多,因此需要考虑减少互斥锁资源的消耗。
以图3所示的实际情况为例,由于顶层对象即OLT系统对象仅仅在初始化时创建,中间过程中不存在删除,因此为了保证系统最大的并发性,可以对OLT系统对象单独使用一个互斥锁。而对于第二级对象,由于板卡对象和PON端口对象存在着从属关系,因此可以为每个板卡对象定义一个互斥锁,板卡下面的PON端口对象和板卡对象共用该互斥锁。
步骤S7的具体包括以下步骤:
(a)对象创建:
以图3为例进行说明,当业务处理单元需要完成板卡授权、ONU授权等功能时,其对对象的操作为对象创建。
参见图6所示,对象创建/删除模块采取递归的方式创建对象以及具有固定从属关系的所有子对象,具体步骤如下:
步骤101、申请相应的对象锁;
步骤102、通过对象Hash表查找对象是否存在,如果存在,则转到步骤111;如果不存在,则转到步骤103;
步骤103、分配对象节点,转到步骤104;
步骤104、分配对象的Hash表节点并插入到Hash表,转到步骤105;
步骤105、设置对象的固定属性和固定属性的属性值,固定属性是指在对象创建时就完全确定的,后续其属性值不会修改的属性,而可变属性则是在系统运行期间可以修改属性值的属性。固定属性和固定属性的属性值从系统上下文处理单元中获取,转到步骤106;
步骤106、根据属性注册表初始化对象的属性值,转到步骤107;
步骤107、判断该对象是否是根节点对象,如果是,则转到步骤109,否则转到步骤108;
步骤108、设置其父对象的子对象列表等数据,转到步骤109;
步骤109、判断是否有子对象,如果有子对象,则转到步骤110;如果没有子对象,则转到步骤111;
步骤110、根据子对象信息再次调用本创建对象处理流程,返回步骤101;
步骤111:释放相应的对象锁。
(b)对象删除:
以图3为例进行说明,当业务处理单元需要完成板卡去授权、ONU去授权等功能时,其对对象的操作为对象删除。
参见图7所示,对象创建/删除模块采取递归的方式删除对象以及该对象具有固定从属关系的所有子对象,具体步骤如下:
步骤201、申请相应的对象锁;
步骤202、通过对象Hash表查找对象是否存在,如果存在,则转到步骤203;如果不存在,转到步骤208;
步骤203、判断该对象是否有子对象,如果有子对象,则转到步骤204;如果没有子对象,则转到步骤205;
步骤204、将子对象作为索引递归调用本删除对象处理流程,转到步骤205;
步骤205、删除对象下的各个属性,转到步骤206;
步骤206、设置其父对象的子对象列表等信息,转到步骤207;
步骤207、删除该对象在Hash表中的节点,转到步骤208;
步骤208、释放相应的对象锁。
(c)对象存取:
业务处理单元处理某个功能项时,需要将对象与对象的属性值关联在一起,从而涉及到对象属性值的获取和设置,即对象存取。
参见图8所示,对象存取的流程如下:
步骤301、申请相应的对象锁;
步骤302、通过对象Hash表查找对象是否存在,如果存在,则转到步骤303;如果不存在,则转到步骤305;
步骤303、判断属性是否存在,如果存在,则转到步骤304;如果不存在,则转到步骤305;
步骤304、获取/设置对象对应的属性值缓冲区中的内容,转到步骤305;
步骤305、释放相应的对象锁。
(d)对象查找;
业务处理单元根据自身的功能要求,按照某些条件(例如板卡硬件在位,板卡软件在位等)来查找对象时,涉及到对象查找。
参见图9所示,对象查找的流程如下:
步骤401、申请相应的对象锁;
步骤402、通过对象Hash表查找该对象是否存在,如果存在,则转到步骤403;如果不存在,则转到步骤407;
步骤403、判断该对象是否满足查找条件,如果满足,则转到步骤404;如果不满足,则转到步骤407;
步骤404、将满足查找条件的对象放入返回的对象列表中,转到步骤405;
步骤405、判断该对象是否存在子对象,如果存在,则转到步骤406;如果不存在,则转到步骤407;
步骤406、遍历递归该对象下的所有子对象,返回步骤402;
步骤407、释放相应的对象锁。
采用本发明实施例中的对象管理方法后,业务处理单元访问对象不再需要关注对象本身的各类操作,仅需要关注对象的属性以及具体的属性值内容,从而使对象信息与对象属性信息从逻辑上分离开来,因此,当业务处理单元即属性信息需要扩展时,对象管理单元无需任何的改动,而当对象管理单元需要扩展时,业务处理单元也不必改动,从而提高不同系统之间软件的可复用性和可扩展性,同时,本发明实施例具有很好的并发性,能够有效提高数据的安全性,满足嵌入式设备大批量、并行、可靠安全的配置管理。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。
Claims (10)
1.一种嵌入式系统对象管理的装置,其特征在于:包括业务处理单元、对象管理单元和系统上下文处理单元,其中:
所述业务处理单元,用于:调用对象管理单元的接口完成相应的功能:动态的创建和删除对象以维护对象树;获取需要的对象的索引,根据对象索引调用相应的对象操作模块来设置/获取对象的属性值;
所述对象管理单元包括对象管理初始化模块、对象属性注册模块、对象创建/删除模块、对象查找模块、对象属性值存取模块;
所述对象管理初始化模块,用于:完成对象管理信息的初始化,包括对象属性注册表的空间分配、对象Hash查找表的建立、属性Hash查找表的建立;
所述对象属性注册模块,用于:提供统一的注册接口,以便对象管理单元之外的其它单元完成向对象管理单元的注册,即业务处理单元将系统内的属性信息加入到相应的对象树节点上,注册的内容参考属性注册表,对象属性通过相应的接口注销;
所述对象创建/删除模块,用于:根据输入的对象索引创建对象、删除对象,创建对象时,根据属性注册表中的内容分配对象空间,建立父对象与子对象之间的关系,并且初始化对象属性信息为默认值;删除对象时,释放对象的属性信息,拆除父对象与子对象之间的关系并且释放对象;
所述对象查找模块,用于:将对象的统一标识转换为字符串形式,以字符串作为关键值进行Hash查找;
所述对象属性值存取模块,用于:提供统一的接口,对对象的属性值进行存取、设置;
所述系统上下文处理单元,用于:将设备配置参数进行模板化处理,负责系统设备规格和参数导入,提供基础数据模板和状态给对象管理单元使用。
2.如权利要求1所述的嵌入式系统对象管理的装置,其特征在于:所述对象创建/删除模块,还用于:当子对象与其父对象之间具有固定的从属关系时,创建父对象的同时需要创建子对象,并建立它们之间的连接关系。
3.如权利要求1所述的嵌入式系统对象管理的装置,其特征在于:所述对象创建/删除模块,还用于:当子对象与其父对象之间没有固定的从属关系时,通过特定的事件触发它们之间建立和解除从属关系。
4.如权利要求1至3中任一项所述的嵌入式系统对象管理的装置,其特征在于:所述对象查找模块按照系统支持的对象层次数目,对象类型以及每个对象层次用一定的字节来编码,将这些编码后的字节形成字符串作为Hash表的索引。
5.基于权利要求1至4中任一项所述装置的嵌入式系统对象管理的方法,其特征在于,包括以下步骤:
S1、对象管理单元初始化,完成对象管理信息的初始化,包括对象属性注册表的空间分配、对象Hash查找表的建立、属性Hash查找表的建立;
S2、对象属性注册模块提供统一的注册接口,注册的信息包括属性、属性类型、属性所支持的对象类型、属性值所需要分配的空间大小、属性缺省值获取接口、属性配置保存接口;
S3、业务处理单元调用对象属性注册模块提供的统一的注册接口,完成向对象管理单元的注册;
S4、业务处理单元根据功能要求,按照其业务处理逻辑,确定对应的操作,直至业务处理单元的功能完成;
S5、业务处理单元判断是否存在对对象的操作,如果是,则转到步骤S6;如果否,则转到步骤S8;
S6、业务处理单元判断对对象的操作是否满足下面四种情形之一:(a)对象创建;(b)对象删除;(c)对象存取;(d)对象查找;如果满足四种情形之一,则转到步骤S7;否则转到步骤S8;
S7、依据四种情形,分别执行对象的相关操作:
(a)对象创建:当业务处理单元完成板卡授权、ONU授权等功能时,其对对象的操作为对象创建,对象创建/删除模块采取递归的方式创建对象以及具有固定从属关系的所有子对象,步骤如下:
步骤101、申请相应的对象锁;
步骤102、通过对象Hash表查找对象是否存在,如果存在,则转到步骤111;如果不存在,则转到步骤103;
步骤103、分配对象节点,转到步骤104;
步骤104、分配对象的Hash表节点并插入到Hash表,转到步骤105;
步骤105、设置对象的固定属性和固定属性的属性值,固定属性和固定属性的属性值从系统上下文处理单元中获取,转到步骤106;
步骤106、根据属性注册表初始化对象的属性值,转到步骤107;
步骤107、判断该对象是否是根节点对象,如果是,则转到步骤109,否则转到步骤108;
步骤108、设置其父对象的子对象列表等数据,转到步骤109;
步骤109、判断是否有子对象,如果有子对象,则转到步骤110;如果没有子对象,则转到步骤111;
步骤110、根据子对象信息再次调用本创建对象处理流程,返回步骤101;
步骤111:释放相应的对象锁;
(b)对象删除:当业务处理单元要完成板卡去授权、ONU去授权等功能时,其对对象的操作为对象删除,对象创建/删除模块采取递归的方式删除对象以及该对象具有固定从属关系的所有子对象,步骤如下:
步骤201、申请相应的对象锁;
步骤202、通过对象Hash表查找对象是否存在,如果存在,则转到步骤203;如果不存在,转到步骤208;
步骤203、判断该对象是否有子对象,如果有子对象,则转到步骤204;如果没有子对象,则转到步骤205;
步骤204、将子对象作为索引递归调用本删除对象处理流程,转到步骤205;
步骤205、删除对象下的各个属性,转到步骤206;
步骤206、设置其父对象的子对象列表信息,转到步骤207;
步骤207、删除该对象在Hash表中的节点,转到步骤208;
步骤208、释放相应的对象锁;
(c)对象存取的流程如下:
步骤301、申请相应的对象锁;
步骤302、通过对象Hash表查找对象是否存在,如果存在,则转到步骤303;如果不存在,则转到步骤305;
步骤303、判断属性是否存在,如果存在,则转到步骤304;如果不存在,则转到步骤305;
步骤304、获取/设置对象对应的属性值缓冲区中的内容,转到步骤305;
步骤305、释放相应的对象锁;
(d)对象查找的流程如下:
步骤401、申请相应的对象锁;
步骤402、通过对象Hash表查找该对象是否存在,如果存在,则转到步骤403;如果不存在,则转到步骤407;
步骤403、判断该对象是否满足查找条件,如果满足,则转到步骤404;如果不满足,则转到步骤407;
步骤404、将满足查找条件的对象放入返回的对象列表中,转到步骤405;
步骤405、判断该对象是否存在子对象,如果存在,则转到步骤406;如果不存在,则转到步骤407;
步骤406、遍历递归该对象下的所有子对象,返回步骤402;
步骤407、释放相应的对象锁;
S8、判断业务处理单元的所有功能是否完成,如果全部完成,则循环结束;如果没有完成,则返回步骤S4,处理业务处理单元的下一次操作。
6.如权利要求5所述的嵌入式系统对象管理的方法,其特征在于:所述对象采用统一的可扩展标识,该标识涵盖了对象类型、对象所具有的层次数目以及对象在每个层次中的编号,对象的标识也表示对象的索引,对象的各类操作均使用该对象标识,即对象索引。
7.如权利要求6所述的嵌入式系统对象管理的方法,其特征在于:所述对象的标识中的每一条记录项标识了一个对象信息,具体包括下面三个参数:
(1)Type,对象类型;
(2)Level,对象层次;
(3)Addr,指向每层对象编号的指针,具体的层数由参数level对象层次来确定。
8.如权利要求5所述的嵌入式系统对象管理的方法,其特征在于:所述对象按照层次关系组织成树形结构,树中的每个节点表示一个对象,所述节点包括下面五个参数:
(1)ObjId,指向对象的指针,其类型为对象统一标识;
(2)Father,指向父对象的指针;
(3)Number,子对象的数目;
(4)SonList,指向子对象链表,链表的数目即为子对象的数目Number;
(5)AttrList,指向对象属性信息的链表。
9.如权利要求8所述的嵌入式系统对象管理的方法,其特征在于:所述对象属性信息包括属性和属性值,所述属性用来指明对象的特性,属性值指明属性的存储数据,所述链表中的每个属性通过属性注册表来定义,每个属性均有相应的信息指向属性值的存储区域。
10.如权利要求9所述的嵌入式系统对象管理的方法,其特征在于:所述属性注册表中的每一条记录项标识了一条属性的注册信息,至少包括下面六个参数:
(1)attr,属性;
(2)attrType,属性类型,标识该属性是固有属性还是可变属性,可变属性包括配置属性和状态属性;
(3)objType,该属性所支持的对象类型列表;
(4)size,单个对象使用该属性时所需要分配的空间大小;
(5)getDefaultValueFunc,获取属性缺省值的接口;
(6)saveFunc,保存属性值的接口,当设备的配置需要存储到非易失的随机访问存储器NVRAM时,如果需要按照对象来存储或者仅存储部分对象的属性信息时,使用该接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310528410.9A CN103559032B (zh) | 2013-10-31 | 2013-10-31 | 嵌入式系统对象管理的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310528410.9A CN103559032B (zh) | 2013-10-31 | 2013-10-31 | 嵌入式系统对象管理的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103559032A true CN103559032A (zh) | 2014-02-05 |
CN103559032B CN103559032B (zh) | 2016-08-17 |
Family
ID=50013288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310528410.9A Active CN103559032B (zh) | 2013-10-31 | 2013-10-31 | 嵌入式系统对象管理的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103559032B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117410A (zh) * | 2015-07-28 | 2015-12-02 | 阿里巴巴集团控股有限公司 | 一种应用对象的创建方法及装置 |
CN105373439A (zh) * | 2015-12-15 | 2016-03-02 | 福建升腾资讯有限公司 | 基于Windows显示体系下与显卡端口驱动通信方法 |
CN105677419A (zh) * | 2016-01-08 | 2016-06-15 | 烽火通信科技股份有限公司 | 基于pon系统的对象管理装置及方法 |
CN105761007A (zh) * | 2016-02-23 | 2016-07-13 | 湖南新邦软件开发有限责任公司 | 信息管理软件设计的辅助方法及系统 |
CN107018077A (zh) * | 2017-04-28 | 2017-08-04 | 烽火通信科技股份有限公司 | 用于路由器的数据传输方法及系统 |
CN109189485A (zh) * | 2018-08-08 | 2019-01-11 | 烽火通信科技股份有限公司 | 一种嵌入式设备的系统启动管理、操作系统配置方法 |
CN109814842A (zh) * | 2018-12-26 | 2019-05-28 | 施耐德万高(天津)电气设备有限公司 | 一种双电源自动转换开关的树型逻辑软件设计方法 |
CN111240739A (zh) * | 2020-01-21 | 2020-06-05 | 烽火通信科技股份有限公司 | 一种对象的关联属性动态并发分配方法及系统 |
CN115794213A (zh) * | 2023-02-07 | 2023-03-14 | 湖南高至科技有限公司 | 基于嵌入式系统的可配置对象管理方法、装置和设备 |
CN116737670A (zh) * | 2023-08-11 | 2023-09-12 | 英诺达(成都)电子科技有限公司 | Upf文件的删除方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205713A1 (en) * | 2003-04-08 | 2004-10-14 | Keim Dale O. | Apparatus and method for producing display application software for embedded systems |
CN1570910A (zh) * | 2003-07-11 | 2005-01-26 | 北京直真节点技术开发有限公司 | 一种通用对象建模方法及通用对象管理系统 |
CN1652112A (zh) * | 2005-03-02 | 2005-08-10 | 北京北方烽火科技有限公司 | 一种嵌入式环境下数据字典的实现方法 |
CN101840440A (zh) * | 2010-06-01 | 2010-09-22 | 四川长虹电器股份有限公司 | 一种用于数字媒体多平台的对象属性动态配置方法 |
-
2013
- 2013-10-31 CN CN201310528410.9A patent/CN103559032B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205713A1 (en) * | 2003-04-08 | 2004-10-14 | Keim Dale O. | Apparatus and method for producing display application software for embedded systems |
CN1570910A (zh) * | 2003-07-11 | 2005-01-26 | 北京直真节点技术开发有限公司 | 一种通用对象建模方法及通用对象管理系统 |
CN1652112A (zh) * | 2005-03-02 | 2005-08-10 | 北京北方烽火科技有限公司 | 一种嵌入式环境下数据字典的实现方法 |
CN101840440A (zh) * | 2010-06-01 | 2010-09-22 | 四川长虹电器股份有限公司 | 一种用于数字媒体多平台的对象属性动态配置方法 |
Non-Patent Citations (1)
Title |
---|
王慧丽 等: "基于对象存储系统中属性管理的研究与实现", 《计算机应用研究》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117410A (zh) * | 2015-07-28 | 2015-12-02 | 阿里巴巴集团控股有限公司 | 一种应用对象的创建方法及装置 |
CN105117410B (zh) * | 2015-07-28 | 2020-03-27 | 阿里巴巴集团控股有限公司 | 一种应用对象的创建方法及装置 |
CN105373439A (zh) * | 2015-12-15 | 2016-03-02 | 福建升腾资讯有限公司 | 基于Windows显示体系下与显卡端口驱动通信方法 |
CN105677419A (zh) * | 2016-01-08 | 2016-06-15 | 烽火通信科技股份有限公司 | 基于pon系统的对象管理装置及方法 |
CN105677419B (zh) * | 2016-01-08 | 2018-10-19 | 烽火通信科技股份有限公司 | 基于pon系统的对象管理装置及方法 |
CN105761007A (zh) * | 2016-02-23 | 2016-07-13 | 湖南新邦软件开发有限责任公司 | 信息管理软件设计的辅助方法及系统 |
CN105761007B (zh) * | 2016-02-23 | 2020-04-03 | 湖南新邦软件股份有限公司 | 信息管理软件设计的辅助方法及系统 |
CN107018077B (zh) * | 2017-04-28 | 2019-08-20 | 烽火通信科技股份有限公司 | 用于路由器的数据传输方法及系统 |
CN107018077A (zh) * | 2017-04-28 | 2017-08-04 | 烽火通信科技股份有限公司 | 用于路由器的数据传输方法及系统 |
CN109189485A (zh) * | 2018-08-08 | 2019-01-11 | 烽火通信科技股份有限公司 | 一种嵌入式设备的系统启动管理、操作系统配置方法 |
CN109814842A (zh) * | 2018-12-26 | 2019-05-28 | 施耐德万高(天津)电气设备有限公司 | 一种双电源自动转换开关的树型逻辑软件设计方法 |
CN109814842B (zh) * | 2018-12-26 | 2021-12-17 | 施耐德万高(天津)电气设备有限公司 | 一种双电源自动转换开关的树型逻辑软件设计方法 |
CN111240739A (zh) * | 2020-01-21 | 2020-06-05 | 烽火通信科技股份有限公司 | 一种对象的关联属性动态并发分配方法及系统 |
CN111240739B (zh) * | 2020-01-21 | 2022-04-15 | 烽火通信科技股份有限公司 | 一种对象的关联属性动态并发分配方法及系统 |
CN115794213A (zh) * | 2023-02-07 | 2023-03-14 | 湖南高至科技有限公司 | 基于嵌入式系统的可配置对象管理方法、装置和设备 |
CN116737670A (zh) * | 2023-08-11 | 2023-09-12 | 英诺达(成都)电子科技有限公司 | Upf文件的删除方法、装置、设备及存储介质 |
CN116737670B (zh) * | 2023-08-11 | 2023-11-17 | 英诺达(成都)电子科技有限公司 | Upf文件的删除方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103559032B (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559032A (zh) | 嵌入式系统对象管理的装置及方法 | |
US11316742B2 (en) | Stateless resource management | |
CN105488431A (zh) | 区块链系统权限管理方法和装置 | |
CN100407200C (zh) | 一种关联查询的系统及其方法 | |
WO2016095365A1 (zh) | 授权处理方法及装置 | |
KR20220097956A (ko) | Iot 디바이스를 관리하기 위한 방법과 장치, 및 서버와 이의 저장 매체 | |
CN100383788C (zh) | 一种对系统资源进行管理的实现方法 | |
CN107783988A (zh) | 一种目录树的加锁方法及设备 | |
CN113326264A (zh) | 数据处理方法、服务器及存储介质 | |
CN105959419A (zh) | 基于一致性树的分布式存储结构的构建方法及系统 | |
CN113407626B (zh) | 一种基于区块链的规划管控方法、存储介质及终端设备 | |
CN113805816B (zh) | 一种磁盘空间管理方法、装置、设备及存储介质 | |
CN104391935A (zh) | 一种范围锁的实现方法及装置 | |
CN101350010B (zh) | 一种哈希表的操作方法 | |
CN107239568A (zh) | 分布式索引实现方法及装置 | |
CN111046115A (zh) | 基于知识图谱的异构数据库互联管理方法 | |
CN110019229B (zh) | 数据库配置系统 | |
CN114968095B (zh) | 分布式硬盘管理方法、系统、电子设备及可读存储介质 | |
CN110300158A (zh) | 基于ad域映射访问nas的方法和系统 | |
CN103281175B (zh) | 一种lkh密钥管理树动态平衡方法 | |
CN113986545A (zh) | 用户与角色关联方法及装置 | |
CN108268509B (zh) | 配置数据管理方法和装置 | |
CN114710350A (zh) | 一种可调用资源的分配方法和装置 | |
CN109739484B (zh) | 一种资产关系模型构建系统、方法及存储介质 | |
CN114090969A (zh) | 多级多租户交叉授权管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |