通信系统中基于对象的配置管理系统的构建实现方法

文档序号:6597628阅读:249来源:国知局
专利名称:通信系统中基于对象的配置管理系统的构建实现方法
技术领域
本发明涉及通信系统领域,特别涉及通信系统中的嵌入式软件技术领域,具体是
指一种通信系统中基于对象的配置管理系统的构建实现方法。
背景技术
随着通信业和信息技术的发展,计算机网络的规模越来越大,网络结构也越来越复杂。在这种情况下,网络管理是计算机网络能够可靠而稳定运行的保证,如果没有一个高效的管理系统对网络进行管理,就很难保证向用户提供令人满意的服务,所以网络管理越来越体现出它的重要性,并成为计算机网络发展中的关键技术。组成计算机网络的基本要素是通信设备,因此,设备管理是网络管理的基础。通常,通信设备都会提供三种管理软件命令行接口 (Command Line Interface)管理、WEB管理和基于SNMP协议的管理。根据设备在网络中的位置,还有其他专有管理软件,比如ADSL终端设备上使用的TR069管理,EPON终端设备上使用的OAM管理等。这些网管软件各有侧重,往往在设备上并存同时运行,以提供多样化的管理手段。 多种管理软件并存增加了设备软件系统构建的复杂性。在软件架构设计上,有必要引入配置管理系统。如图l所示,配置管理系统处在高层管理软件和底层功能模块的中间,高层管理软件通过配置管理系统管理系统资源和业务功能。底层的各功能模块往往具有自己的配置文件和管理方法,这样整个系统各模块管理具有分散性,每个配置文件都是孤立的,当整个系统庞大的时候,过多的配置文件会给系统的管理带来很大的不便,因此需要设计一层配置管理系统软件,使得管理软件的开发无需关注各自的配置方法细节。配置管理系统为高层的各种管理软件提供统一的应用程序接口 (API),使得后者的开发建立在一致的基础上。当管理软件基于统一的配置管理系统来开发,由于管理接口 API具有一致性,开发和维护多个管理软件也将变得容易实现,并且当底层软件模块实现发生变化时,管理软件则无需做变化。 尽管现在的通信设备大多支持多种管理软件,但管理软件开发多是基于各功能模块自身导出的API接口,这些接口互不统一,与各自功能模块内部实现方法密切相关。分散的API接口也导致编译出来的管理软件规模变大,占用较多嵌入设备中宝贵的存储空间。也有部分设备软件架构中具有配置管理层,但构建上采用纯C的API接口 ,没有使用数据结构描述管理对象,从而缺少抽象性,也没有对管理对象进行组织。

发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够将通信系统中的各种资源进行有效组织、大幅减少管理软件的开发难度和周期、有效屏蔽实现各种管理功能的细节、通用性和可重用性较强、工作性能稳定可靠、适用范围较为广泛的通信系统中基于对象的配置管理系统的构建实现方法。 为了实现上述的目的,本发明的通信系统中基于对象的配置管理系统的构建实现方法如下 该通信系统中基于对象的配置管理系统的构建实现方法,其主要特点是,所述的方法包括以下步骤 (1)通信系统将被管理的通信设备上的系统资源抽象成为管理对象; (2)通信系统根据管理对象的特点,对所述的管理对象构建相应的接口类信息,所
述的接口类为抽象类,是对该管理对象进行访问的接口 ; (3)通信系统根据管理对象的特点,对所述的管理对象构建相应的实现类信息,所述的实现类与相应的管理对象的接口类信息相对应; (4)根据所述的管理对象的接口类和实现类构建相应的组类信息,所述的组类为该管理对象的接口类和实现类的基类; (5)构建通信系统的功能模块的根类信息,所述的根类具有该功能模块的全局属性和操作; (6)构建功能模块中所属各个类之间的关联关系; (7)构建所述的配置管理系统的公共支持类信息,所述的公共支持类具有所述的配置管理系统自身管理相关的全局接口 。 该通信系统中基于对象的配置管理系统的构建实现方法中的接口类中包括与属性关联的读取/设置方法的公有虚函数对。 该通信系统中基于对象的配置管理系统的构建实现方法中的接口类名称以"Im"为前缀。 该通信系统中基于对象的配置管理系统的构建实现方法中的实现类中包括与相应的管理对象的属性值相对应的私有变量、该私有变量的读取/设置方法的公有实函数对。 该通信系统中基于对象的配置管理系统的构建实现方法中的组类为在有多个对象实例的对象类基础上定义,组类只有一个对象实例,并且该组类的对象实例由一组子类的对象实例所组成。 该通信系统中基于对象的配置管理系统的构建实现方法中的组类中包括以下三个方法函数 (l)add()方法函数,用于添加一个对象实例;
(2)remove()方法函数,用于删除指定的对象实例;
(3)find()方法函数,用于查找指定的对象。 该通信系统中基于对象的配置管理系统的构建实现方法中的根类只有一个对象实例,且该根类的对象实例在启动时自动创建,并一直存在于所述的配置管理系统中不可删除。 该通信系统中基于对象的配置管理系统的构建实现方法中的各个类之间的关联关系为各个类之间的继承关系。 该通信系统中基于对象的配置管理系统的构建实现方法中的构建所述的配置管理系统的公共支持类信息,包括以下步骤 (11)构建对通信系统的信息模型进行维护管理的信息模型管理接口类和信息模型管理实现类;
6
(12)构建对管理对象的属性进行通用访问的存取器类; (13)构建对配置文件进行管理的配置文件类; (14)构建用于事件管理的事件监听类; (15)构建用于提供上下文环境的环境类。 该通信系统中基于对象的配置管理系统的构建实现方法中的信息模型管理接口类和信息模型管理实现类中包括以下方法函数 (l)setName()方法函数,用于修改信息模型中对象节点名字; (2)getName()方法函数,用于获取信息模型中指定对象节点名字; (3)parent()方法函数,用于获取指定对象节点的父节点; (4) setParent ()方法函数,用于设置对象节点的父节点; (5)add()方法函数,用于给指定对象节点添加子节点; (6)remove()方法函数,用于删除指定对象节点的子节点; (7) destroy ()方法函数,用于删除指定对象节点; (8) children ()方法函数,用于以链表形式获取指定对象节点的全部子节点; (9)accessors()方法函数,用于以链表形式获取指定对象节点的全部属性; (10)next()方法函数,用于获取指定对象节点的兄弟节点; (ll)find()方法函数,用于获取用特定标识方法标识的对象节点; (12)root()方法函数,用于获取信息模型的根节点; (13)即plyChanges方法函数,用于强制将属性的变化值应用到功能模块中。 该通信系统中基于对象的配置管理系统的构建实现方法中的存取器类中包括以下方法函数 (l)isAttributeConfigured()方法函数,用于获取属性是否可保存到配置文件中; (2) isRead0nly ()方法函数,用于获取属性是否为只读属性; (3)next()方法函数,用于获取下一个属性; (4)get()方法函数,用于获取指定属性当前值; (5)set()方法函数,用于设置指定属性当前值。 该通信系统中基于对象的配置管理系统的构建实现方法中的配置文件类中包括以下方法函数 (l)save()方法函数,用于将信息模型保存到指定配置文件中; (2)restore()方法函数,用于将指定配置文件中配置数据载入并构建信息模型; (3) commitToFlash ()方法函数,用于将配置文件提交给文件系统保存入FLASH芯片中; (4)restoreFromFactory()方法函数,用于从出厂配置中载入配置数据并构建信息模型。 该通信系统中基于对象的配置管理系统的构建实现方法中的事件至少包括对象删除事件和对象修改事件。 该通信系统中基于对象的配置管理系统的构建实现方法中的事件监听类包括以下方法函数
(l)listen()方法函数,用于设置在指定对象节点上监听事件以及事件处理函数; (2)皿listen()方法函数,用于设置在指定对象节点上停止监听事件。 该通信系统中基于对象的配置管理系统的构建实现方法中的环境类包括以下方
法函数 (l)getReadLock()方法函数,用于获取对信息模型读操作的锁;
(2)getWriteLock()方法函数,用于获取对信息模型写操作的锁;
(3)releaseLock()方法函数,用于释放读锁或写锁;
(4) isWriteLocked()方法函数,用于获取写锁状态;
(5) isReadLocked()方法函数,用于获取读锁状态; (6)status()方法函数,用于检查最近一次配置管理系统接口调用返回状态;
(7)fail()方法函数,用于以字符串形式返回最近一次配置管理系统接口调用失败的原因。 采用了该发明的通信系统中基于对象的配置管理系统的构建实现方法,由于其中基于对象的构建思想,对系统资源进行了抽象,并构建了信息模型和管理对象,将设备中的各种资源有效的组织起来,为管理功能提供了一个设备资源的逻辑视图,而且在当前高层管理软件的开发普遍采用面向对象技术情况下,基于本发明提供的基于对象的配置管理系统开发高层管理软件,可以实现对象的直接映射,从而显著减少了高层管理软件开发的难度和工作量;对象类的继承性便于扩充和增加管理对象类,而且面对的是较高层次上进行抽象的管理对象,屏蔽了实现各种管理功能的细节,使得相应的配置管理系统具有广泛的可重用性,可以将该配置管理系统软件应用到不同的通信设备上,仅仅需要扩充对象类即可满足管理要求,设备厂商将可以在不同的设备上只需开发并维护一套管理层软件,有利于降低研发成本和产品开发周期,提高企业的效益,不仅工作性能稳定可靠,而且适用范围较为广泛。


图1为本发明的具有配置管理系统的通信系统软件架构示意图。
图2为本发明的通信系统中基于对象的配置管理系统的构建实现方法中的接口
类UML示意图。 图3为本发明的通信系统中基于对象的配置管理系统的构建实现方法的整体流程示意图。 图4为本发明的通信系统中基于对象的配置管理系统的构建实现方法的管理URL过滤功能的接口类之间的关联示意图。
具体实施例方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。 请参阅图3所示,该通信系统中基于对象的配置管理系统的构建实现方法,包括
以下步骤 (1)通信系统将被管理的通信设备上的系统资源抽象成为管理对象;
8
(2)通信系统根据管理对象的特点,对所述的管理对象构建相应的接口类信息,所述的接口类为抽象类,是对该管理对象进行访问的接口 ;该接口类中包括与属性关联的读取/设置方法的公有虚函数对;该接口类名称以"Im"为前缀; (3)通信系统根据管理对象的特点,对所述的管理对象构建相应的实现类信息,所
述的实现类与相应的管理对象的接口类信息相对应;该实现类中包括与相应的管理对象的
属性值相对应的私有变量、该私有变量的读取/设置方法的公有实函数对; (4)如有必要,根据所述的管理对象的接口类和实现类构建相应的组类信息,所述
的组类为该管理对象的接口类和实现类的基类;该组类只有一个对象实例,并且该组类的
对象实例由一组子类的对象实例所组成;该组类中包括以下三个方法函数 (a)add()方法函数,用于添加一个对象实例; (b)remove()方法函数,用于删除指定的对象实例; (c)find()方法函数,用于查找指定的对象; (5)构建通信系统的功能模块的根类信息,所述的根类具有该功能模块的全局属性和操作;该根类只有一个对象实例,且该根类的对象实例在启动时自动创建,并一直存在于所述的配置管理系统中不可删除; (6)构建功能模块中所属各个类之间的关联关系;该各个类之间的关联关系为各个类之间的继承关系; (7)通信系统根据用户操作,构建所述的配置管理系统的公共支持类信息,所述的公共支持类具有所述的配置管理系统自身管理相关的全局接口 ;所述的配置管理系统的公共支持类信息,包括以下步骤 (a)构建对通信系统的信息模型进行维护管理的信息模型管理接口类和信息模型
管理实现类;该管理接口类和管理节点实现类中包括以下方法函数 (i)setName()方法函数,用于修改信息模型中对象节点名字; (ii)getName()方法函数,用于获取信息模型中指定对象节点名字; (iii)parent()方法函数,用于获取指定对象节点的父节点; (iv)setParent()方法函数,用于设置对象节点的父节点; (v)add()方法函数,用于给指定对象节点添加子节点; (vi)remove()方法函数,用于删除指定对象节点的子节点; (vii) destroy ()方法函数,用于删除指定对象节点; (viii) children ()方法函数,用于以链表形式获取指定对象节点的全部子节点; (ix)accessors()方法函数,用于以链表形式获取指定对象节点的全部属性; (x)next()方法函数,用于获取指定对象节点的兄弟节点; (xi)find()方法函数,用于获取用特定标识方法标识的对象节点; (xii)root()方法函数,用于获取信息模型的根节点; (xiii)即plyChanges方法函数,用于强制将属性的变化值应用到功能模块中;
(b)构建对管理对象的属性进行通用访问的存取器类;该通信系统中基于对象的配置管理系统的构建实现方法中的存取器类中包括以下方法函数 (i)isAttributeConfigured()方法函数,用于获取属性是否可保存到配置文件中;
(ii)isReadOnly()方法函数,用于获取属性是否为只读属性;
(iii)next()方法函数,用于获取下一个属性;
(iv)get()方法函数,用于获取指定属性当前值;
(v)set()方法函数,用于设置指定属性当前值; (c)构建对配置文件进行管理的配置文件类,该配置文件类中包括以下方法函 数 (i)save()方法函数,用于将信息模型保存到指定配置文件中; (ii)restore()方法函数,用于将指定配置文件中配置数据载入并构建信息模
型; (iii)commitToFlash()方法函数,用于将配置文件提交给文件系统保存入FLASH 芯片中; (iv)restoreFromFactory()方法函数,用于从出厂配置中载入配置数据并构建信 息模型; (d)构建用于事件管理的事件监听类;所述的事件包括对象删除事件和对象修改 事件,该事件监听类包括以下方法函数 (i)listen()方法函数,用于设置在指定对象节点上监听事件以及事件处理函 数; (ii)皿listen()方法函数,用于设置在指定对象节点上停止监听事件;
(e)构建用于提供上下文环境的环境类,该环境类包括以下方法函数
(i)getReadLock()方法函数,用于获取对信息模型读操作的锁;
(ii)getWriteLock()方法函数,用于获取对信息模型写操作的锁;
(iii)releaseLock()方法函数,用于释放读锁或写锁;
(iv)isWriteLocked()方法函数,用于获取写锁状态;
(v)isReadLocked()方法函数,用于获取读锁状态; (vi)status()方法函数,用于检查最近一次配置管理系统接口调用返回状态;
(vii)fail()方法函数,用于以字符串形式返回最近一次配置管理系统接口调用 失败的原因。 在实际使用当中,本发明的实质是一种在通信设备上构建基于对象的配置管理系
统软件的方法,其实现了高层管理软件的开发基于统一的接口 ,通过构建信息模型,将设备
中的各种资源有效的组织起来,为管理功能提供了一个设备资源的逻辑视图。 在本发明的技术方案中,采用了面向对象程序设计中的"类"结构对管理对象进行
具体的描述,构建出一种以类的形式提供API接口的配置管理系统。类指明用什么信息描
述对象以及可以对对象执行的动作。对象是类的一个实例,类说明对象的类型。对于一个
功能模块,定义管理对象类、组类和根类,并通过类之间的继承关系将该模块中抽象出来的
这些类建立关联。构建的配置管理系统将系统中所有对象组织成树状信息模型。 本发明中的管理对象是被管理的通信设备上系统资源的抽象,比如路由接口、桥
接接口、传输子通道等。本发明采用面向对象程序设计中的"类"结构对管理对象进行具体
的描述,并将管理对象组织成信息模型(Information Model, IM),构建出一种以类的形式
提供API接口的配置管理系统。所谓类是指具有相同属性(attributes)和操作(actions)
10的管理对象的集合,它指明用什么信息描述对象以及可以对对象执行的动作。属性是指管 理对象的特征,比如网络接口具有IP地址和子网掩码属性。属性值可以读取或者设置,也 就是属性可读或可写,所以,每个属性都必须有相应的获取(get)/设置(set)对操作(只 读属性只有get操作)。操作是指对对象执行的动作,定义为类的方法函数。类都具有自身 特定属性和可执行操作,这是类互相区别的标志。对象是类的一个实例(instance),类说明 对象的类型。利用面向对象的继承性,对象类可以有若干派生类,派生类扩展了基类的属性 和操作,便于扩充和增加对象类。本发明构建的配置管理系统将系统中所有对象组织成树 状数据结构,称为信息模型,在信息模型中对象又称为节点(Node)。
如图3所示,本发明的方法包括如下步骤 步骤一 对于管理对象定义接口类(Interface class),根据管理对象的特点定 义类中的属性和操作,对于每个属性都必须具有一对get/set方法函数(只读属性可以只 有get函数)。接口类是一个抽象类,是对该对象进行访问的接口。接口类中基本没有程 序实现代码,主要是定义与属性关联的get/set对和其他操作方法函数,这些函数都声明 为公有的虚函数。每个接口类都对应一个实现类,实现类按照步骤二方法定义并实现。接 口类定义可以使用标准的〔++语言类定义。在类命名上,接口类名字一般在实现类名字前 力口上"Im,,头("Im"标识InformationModel类),比如Iplnterface类的接口类命名为 Imlplnterface。属性在接口类中以get/set对函数出现,因为外部程序不允许直接访问属 性变量,所以在接口类中没有属性变量定义。接口类可以使用UML图形象表示(在UML图 例中,不显示"Im"前缀),如图2, Imlplnterface类代表TCP/IP协议栈中的一个接口 。
步骤二 定义并实现管理对象的实现类(Implementation class)。实现类是接口 类的真正实现代码,它调用底层功能模块的API接口实现操作函数,实现类的实现事实上 是对功能模块的抽象工作。实现类定义也可以使用标准的0++语言类定义。利用面向对象 的继承性,实现类定义为接口类的派生类。除继承接口类外,实现类也定义ManagedNode类 为基类,ManagedNode类是一种公共支持类,参考步骤六。属性在实现类中定义除了相应的 get/set对方法函数外,还必须在该类中定义相应的变量,用于保存对属性的设置值,这个 变量须定义为私有,对它的访问都是通过get/set对函数,以屏蔽直接访问所带来的不安 全性。 步骤三定义并实现组类(Collection class)。某些对象类系统中存在多个对象 实例,为方便统一管理,在该对象类基础上再定义一个组类。组类一般只有一个对象实例, 并且该对象实例由一组子类的对象实例组成。组类定义为该对象类的基类,也就是这个对 象类继承自组类。组类也需定义接口类和实现类,在命名上组类总是以复数形式命名并且 包含三个方法函数 參add()方法函数添加一个对象实例;
參remove ()方法函数删除指定的对象实例;
參find()方法函数查找指定的对象。 步骤四定义并实现根类(Root class)。对于一个功能模块,可以定义一个根类, 含有整个模块的全局属性和操作,定义根类的目的是提供对该功能模块进行配置的基本入 口。根类同样也需定义接口类和实现类。根类必须只有一个对象实例,且根类对象在启动 时由配置管理系统自动创建,将一直存在于系统中不可删除。
步骤五定义类之间的联系。对于一个功能模块,在步骤一和二定义了管理对象 的接口类和实现类,步骤三定义了组类,步骤四定义了根类,在此基础上,利用面向对象程 序设计中类的继承性,可以将该模块中抽象出来的这些类建立关联,从而构建出信息模型 中的一个子树。由于类之间继承关系,配置管理系统中的许多对象具有多个类类型,每个类 可以配置对象的特定方面信息。先获取指向该对象的指针,然后使用C++的动态类型转换 dynamic—cast运算符可以"浏览"对象所具有的所有类型类。 步骤六定义并实现公共支持类。公共支持类用于提供配置管理系统自身管理相 关的全局接口,至少包括 (1)对信息模型维护管理的信息模型管理接口类(ImManaged)和信息模型管理实 现类(ManagedNode),用于对信息模型中对象进行遍历、查找、添加、删除等操作,主要定义 并实现 參setName ()方法函数修改信息模型中对象节点名字;
參getName()方法函数返回信息模型中指定对象节点名字;
參parent ()方法函数返回指定对象节点的父节点;
參setParent()方法函数设置对象节点的父节点;
參add()方法函数给指定对象节点添加子节点;
參remove ()方法函数删除指定对象节点的子节点;
參destroy()方法函数删除指定对象节点; 參children ()方法函数以链表形式返回指定对象节点的全部子节点;
參accessors()方法函数以链表形式返回指定对象节点的全部属性;
參next()方法函数返回指定对象节点的兄弟节点;
參find()方法函数返回用特定标识方法标识的对象节点;
參root()方法函数返回信息模型的根节点; 參即plyChanges方法函数调用该方法函数强制将属性的变化值应用到功能模 块中,默认情况下属性的set操作函数只修改实现类中的私有属性变量,也就是使属性修 改生效。 (2)对属性进行通用访问的存取器(Accessor)类,用于实现对所有属性皆有效的 操作,主要定义并实现 參isAttributeConfigured()方法函数返回属性是否可保存到配置文件中;
參isReadOnly()方法函数返回属性是否为只读属性;
參next()方法函数返回下一个属性;
參get()方法函数返回指定属性当前值;
參set()方法函数设置指定属性当前值。 (3)对配置文件进行管理的配置文件(ConfigFile)类。配置管理系统需要提供信 息模型的保存机制,这样设备重启之后配置仍然生效。ConfigFile类主要定义并实现
參save()方法函数将信息模型保存到指定配置文件中,此时创建的配置文件位 于内存中; 參restore ()方法函数将指定配置文件中配置数据载入并构建信息模型;
參commitToFlash()方法函数将配置文件提交给文件系统保存入FLASH芯片
12中; 參restoreFromFactory()方法函数从出厂配置中载入配置数据并构建信息模 型。 (4)用于事件管理的事件监听(EventLi stener)类,事件至少包括对象删除 (ObjectDeleted)和对象修改(Ob jectChanged)两个事件,前者指对象被删除,后者指对象 属性被修改,主要定义并实现 參listen ()方法函数设置在指定对象节点上监听事件以及事件处理函数;
參皿listen()方法函数设置在指定对象节点上停止监听事件。
(5)用于提供上下文环境的Environment类,这个类中至少需提供对信息模型访 问的同步/互斥机制,主要定义并实现 參getReadLock()方法函数获取对信息模型读操作的锁,读锁可以被多个进程 同时获取; 參getWriteLock()方法函数获取对信息模型写操作的锁,写锁在被释放前只能 被一个进程获取; 參releaseLock()方法函数释放读锁或写锁;
參isWriteLocked()方法函数获取写锁状态;
參isReadLocked()方法函数获取读锁状态; 參status ()方法函数检查最近一次配置管理系统接口调用返回状态; 參fail()方法函数以字符串形式返回最近一次配置管理系统接口调用失败的原因。 通过上述步骤,配置管理系统在对各个功能模块进行抽象的基础上,提供了广泛 的接口类供高层管理软件调用。配置管理系统通过维护一个树结构的信息模型,管理着设 备的所有资源。用户使用配置管理系统,可以简单的描述为创建一个对象,为对象的属性赋 值,然后执行一些操作。 下面将结合本发明的技术方案,具体描述构建一种配置管理系统管理URL过滤功 能的实例过程。 URL过滤是路由设备上提供的常用功能,用于控制对指定URL地址的访问,实现对
特定网站的屏蔽。用户可以添加、删除URL地址,并启动或关闭URL过滤功能。 (1)首先定义管理对象的接口类和实现类。涉及URL过滤功能的管理对象是URL
地址,为此定义一个ImURLItem接口类和URLItem实现类,该接口类只有一个属性url,对应
有get—url()/set—ur1()对函数,无其他操作函数。定义代码参考如下 class ImURLItem { protected: ImURLItem() {} virtual ImURLItem(); public: static const chai^getClassName (); //Attributes
13:0182] virtual const char氺get—url(Environment*)const = 0 ;
:0183] virtual void set—url (Environment*, const char氺)=0;
:0184] private:
:0185] Im亂Item: :Im亂Item(const Im亂Item&;i ;
:0186] ImURLItem& operator = (const Im亂Item&);
:0187] };
:0188] class URLItem:public ImURLItem,public ManagedNode
:0189] {
:0190] public:
:0191] const char氺get—url(Environment氺e)const ;
:0192] void set—url(Environment氺e,const char氺newurl);
:0193] void destroy (Environment氺e);
:0194] virtual 亂Item();
:0195] URLItem();
:0196] protected:
:0197] char url [200];
:0198] }; (2)定义组类。URL过滤功能控制的URL地址是个列表,也就是ImURLItem类有多 个实例,并且对于URL地址需要有添加和删除操作。所以,定义一个组类ImURLItems和它 的实现类URLItems,包含三个操作函数add() 、remove ()禾Pfind()。 ImURLItems类定义代 码参考如下 class ImURLItems { protected: ImURLItems () {} virtual ImURLItems (); public: static const chai^getClassName (); //iterate over the contained items of an instance of this class //using one of the following iterator types typedef ConstIterator〈ImURLItem>const_iterator ; typedef Iterator〈ImURLItem>iterator ; //add, remove and find items to this collection virtual void add(Environment*, ImURLItem*) = 0 ; virtual void remove (Environment*, ImURLItem*) = 0; virtual ImURLItem氺find(const char氺ident) = 0 ; //return the one and only instance of this class static ImURLItems*instance(); private:0218] Im亂Items (const Im亂Items&); ImURLItems& operator = (const Im亂Items&); }; (3)定义根类。URL过滤功能一般有两个全局参数enabled和mode, enabled参数控制URL过滤功能的开启或关闭,mode参数控制URL地址列表是白名单还是黑名单。经过抽象,构建一个ImURLFilter接口类和URLFilter实现类,包含两个属性enabled和mode。ImURLFilter接口类定义代码参考如下 class ImURLItem ; class ImUR Litems ; class ImURLFilter { protected: ImURLFilter () {} virtual ImURLFilter (); public: e誦亂FilterModeE誦( BlackList, WhiteList }; static const chai^getClassName (); //Attributes virtual bool get—enabled(Environment*)const = 0 ; virtual void set—enabled (Environment*, bool) = 0; virtual URLFilterModeE皿m get—mode (Environment*) const = 0 ; virtual void set—mode (Environment*, URLFilterModeE皿m) = 0; //Traverse to contained classes virtualImURLItems*urlItems () = 0; const ImURLItems*u:rlItems () const { ImURLFilter*nc_this = const_cast〈ImURLFilter*>(this); return nc_this_>urlltems(); } //return the one and only instance of this class static Im亂Filtei^instance (); private: Im亂FiIter (const Im亂Filter&); ImURLFilter& operator = (const Im亂Filter&); }; (4)定义类之间的关联。对于URL过滤功能,定义了 URL地址对象类ImURLItem、组类ImURLItems和根类ImURLFilter。由于ImURLItems/ImURLItem类是整个URL过滤功能配置不可分隔的一部分,可以定义ImURLItems类为ImURLFilter类的子类。通过类之间的继承关系,确定ImURLItems/ImURLItem类从属于ImURLFilter类,也就是从属于整个URL过滤功能的配置。于是,本发明构建出如图4所示的一组类实现对URL过滤功能的配置。
上述定义的一组类连同前述本发明详细方法步骤六中定义的公共支持类一起构成了一个配置管理系统的实例。 采用了上述的通信系统中基于对象的配置管理系统的构建实现方法,由于其中基于对象的构建思想,对系统资源进行了抽象,并构建了信息模型和管理对象,将设备中的各种资源有效的组织起来,为管理功能提供了一个设备资源的逻辑视图,而且在当前高层管理软件的开发普遍采用面向对象技术情况下,基于本发明提供的基于对象的配置管理系统开发高层管理软件,可以实现对象的直接映射,从而显著减少了高层管理软件开发的难度和工作量;对象类的继承性便于扩充和增加管理对象类,而且面对的是较高层次上进行抽象的管理对象,屏蔽了实现各种管理功能的细节,使得相应的配置管理系统具有广泛的可重用性,可以将该配置管理系统软件应用到不同的通信设备上,仅仅需要扩充对象类即可满足管理要求,设备厂商将可以在不同的设备上只需开发并维护一套管理层软件,有利于降低研发成本和产品开发周期,提高企业的效益,不仅工作性能稳定可靠,而且适用范围较为广泛。 在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
权利要求
一种通信系统中基于对象的配置管理系统的构建实现方法,其特征在于,所述的方法包括以下步骤(1)通信系统将被管理的通信设备上的系统资源抽象成为管理对象;(2)通信系统根据管理对象的特点,对所述的管理对象构建相应的接口类信息,所述的接口类为抽象类,是对该管理对象进行访问的接口;(3)通信系统根据管理对象的特点,对所述的管理对象构建相应的实现类信息,所述的实现类与相应的管理对象的接口类信息相对应;(4)根据所述的管理对象的接口类和实现类构建相应的组类信息,所述的组类为该管理对象的接口类和实现类的基类;(5)构建通信系统的功能模块的根类信息,所述的根类具有该功能模块的全局属性和操作;(6)构建功能模块中所属各个类之间的关联关系;(7)构建所述的配置管理系统的公共支持类信息,所述的公共支持类具有所述的配置管理系统自身管理相关的全局接口。
2. 根据权利要求1所述的通信系统中基于对象的配置管理系统的构建实现方法,其特 征在于,所述的接口类中包括与属性关联的读取/设置方法的公有虚函数对。
3. 根据权利要求2所述的通信系统中基于对象的配置管理系统的构建实现方法,其特 征在于,所述的接口类名称以"Im"为前缀。
4. 根据权利要求1所述的通信系统中基于对象的配置管理系统的构建实现方法,其特 征在于,所述的实现类中包括与相应的管理对象的属性值相对应的私有变量、该私有变量 的读取/设置方法的公有实函数对。
5. 根据权利要求1所述的通信系统中基于对象的配置管理系统的构建实现方法,其特 征在于,所述的组类为在有多个对象实例的对象类基础上定义,组类只有一个对象实例,并 且该组类的对象实例由一组子类的对象实例所组成。
6. 根据权利要求5所述的通信系统中基于对象的配置管理系统的构建实现方法,其特 征在于,所述的组类中包括以下三个方法函数(1) add()方法函数,用于添加一个对象实例;(2) remove()方法函数,用于删除指定的对象实例;(3) find()方法函数,用于查找指定的对象。
7. 根据权利要求1所述的通信系统中基于对象的配置管理系统的构建实现方法,其特 征在于,所述的根类只有一个对象实例,且该根类的对象实例在启动时自动创建,并一直存 在于所述的配置管理系统中不可删除。
8. 根据权利要求1所述的通信系统中基于对象的配置管理系统的构建实现方法,其特 征在于,所述的各个类之间的关联关系为各个类之间的继承关系。
9. 根据权利要求1所述的通信系统中基于对象的配置管理系统的构建实现方法,其特 征在于,所述的构建所述的配置管理系统的公共支持类信息,包括以下步骤(11) 构建对通信系统的信息模型进行维护管理的信息模型管理接口类和信息模型管 理实现类;(12) 构建对管理对象的属性进行通用访问的存取器类;(13) 构建对配置文件进行管理的配置文件类;(14) 构建用于事件管理的事件监听类;(15) 构建用于提供上下文环境的环境类。
10. 根据权利要求9所述的通信系统中基于对象的配置管理系统的构建实现方法,其特征在于,所述的信息模型管理接口类和信息模型管理实现类中包括以下方法函数(1) setName()方法函数,用于修改信息模型中对象节点名字;(2) getName()方法函数,用于获取信息模型中指定对象节点名字;(3) parent()方法函数,用于获取指定对象节点的父节点;(4) setParent ()方法函数,用于设置对象节点的父节点;(5) add()方法函数,用于给指定对象节点添加子节点;(6) remove()方法函数,用于删除指定对象节点的子节点;(7) destroy ()方法函数,用于删除指定对象节点;(8) children()方法函数,用于以链表形式获取指定对象节点的全部子节点;(9) accessors()方法函数,用于以链表形式获取指定对象节点的全部属性;(10) next()方法函数,用于获取指定对象节点的兄弟节点;(11) find()方法函数,用于获取用特定标识方法标识的对象节点;(12) root()方法函数,用于获取信息模型的根节点;(13) 即plyChanges方法函数,用于强制将属性的变化值应用到功能模块中。
11. 根据权利要求9所述的通信系统中基于对象的配置管理系统的构建实现方法,其特征在于,所述的存取器类中包括以下方法函数(1) isAttributeConfigured()方法函数,用于获取属性是否可保存到配置文件中;(2) isRead0nly()方法函数,用于获取属性是否为只读属性;(3) next()方法函数,用于获取下一个属性;(4) get()方法函数,用于获取指定属性当前值;(5) set()方法函数,用于设置指定属性当前值。
12. 根据权利要求9所述的通信系统中基于对象的配置管理系统的构建实现方法,其特征在于,所述的配置文件类中包括以下方法函数(1) save()方法函数,用于将信息模型保存到指定配置文件中;(2) restore()方法函数,用于将指定配置文件中配置数据载入并构建信息模型;(3) commitToFlash()方法函数,用于将配置文件提交给文件系统保存入FLASH芯片中;(4) restoreFromFactory()方法函数,用于从出厂配置中载入配置数据并构建信息模型。
13. 根据权利要求9所述的通信系统中基于对象的配置管理系统的构建实现方法,其特征在于,所述的事件至少包括对象删除事件和对象修改事件。
14. 根据权利要求13所述的通信系统中基于对象的配置管理系统的构建实现方法,其特征在于,所述的事件监听类包括以下方法函数(1) listen ()方法函数,用于设置在指定对象节点上监听事件以及事件处理函数;(2) 皿listen()方法函数,用于设置在指定对象节点上停止监听事件。
15.根据权利要求9所述的通信系统中基于对象的配置管理系统的构建实现方法,其特征在于,所述的环境类包括以下方法函数(1) getReadLock()方法函数,用于获取对信息模型读操作的锁;(2) getWriteLock()方法函数,用于获取对信息模型写操作的锁;(3) releaseLock()方法函数,用于释放读锁或写锁;(4) isWriteLocked()方法函数,用于获取写锁状态;(5) isReadLocked()方法函数,用于获取读锁状态;(6) status ()方法函数,用于检查最近一次配置管理系统接口调用返回状态;(7) fail()方法函数,用于以字符串形式返回最近一次配置管理系统接口调用失败的原因。
全文摘要
本发明涉及一种通信系统中基于对象的配置管理系统的构建实现方法,包括将被管理的通信设备上的系统资源抽象成为管理对象、对管理对象构建接口类信息、对管理对象构建实现类信息、构建相应的组类信息、构建功能模块的根类信息、构建功能模块中各个类间的关联关系、构建配置管理系统的公共支持类信息。采用该种通信系统中基于对象的配置管理系统的构建实现方法,提供的是一种以类的形式的API接口,同时对系统资源进行了抽象并构建了信息模型,基于该种配置管理系统进行高层管理软件开发,显著减少了开发的难度和工作量,屏蔽了实现各种管理功能的细节,降低了研发成本,缩短了产品开发周期,提高了企业的效益,不仅工作性能稳定可靠,而且适用范围较为广泛。
文档编号G06F9/44GK101776996SQ201010100798
公开日2010年7月14日 申请日期2010年1月26日 优先权日2010年1月26日
发明者严向阳 申请人:上海市共进通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1