使用代表性对象实例的配置管理系统和方法

文档序号:7628785阅读:321来源:国知局
专利名称:使用代表性对象实例的配置管理系统和方法
技术领域
本发明涉及一种使用代表性对象实例的配置管理系统和方法,更具体地,涉及一种系统和方法,用于通过代表性对象实例调用关于未登记对象实例的信息以便能够进行积极的节点管理(包括产生、删除、改变和检索)。
背景技术
通用对象请求代理体系结构(下文中称为CORBA)是由对象管理组织(OMG)为了实现分布式对象计算而建立的标准规范。使用CORBA有利于分布式计算的应用程序的开发,并且能够在分布式对象中进行通信,而与编程语言无关。因此,客户机能够与服务器进行通信,而与CORBA的编程语言无关。
CORBA的引入使得能够在对象之间进行直接调用以及数据传输。根据CORBA针对对象之间调用的概念,有可能在创建并共享各个计算机可以读取并且交互操作的可互操作的目标参考(IOR)、或者通过例如命名服务的CORBA服务执行登记过程之后,调用相应对象。
根据为了管理网络而定义的管理对象标准,在IOR或命名服务中所有管理对象都没有登记,因此在一些实施例中不直接调用或不能够调用一些管理对象。特别地,配置管理对象也许面临这样的情况,因为他们包含大量的系统节点信息,并且可以实时地添加、删除或改变各个系统的系统节点和较低属性节点(例如配置信息)。此外,如果在对象之间调用中给定范围和过滤条件,将更加难以使用直接调用。
根据当前操作的网络管理系统(NMS),较高级的管理器通过中间代理获取关于管理系统(例如有线或无线的系统)资源的信息,通过代理将命令发送到管理系统(如果需要),或者通过该代理从管理系统接收各种消息。为了执行这种功能,代理通过根据管理对象的概念来形成信息来管理系统的物理/逻辑信息,例如组成、故障、连接和统计。可以在管理器和代理之间使用基于各种协议的通信技术(例如CMIP、CORBA和SNMP)来发送各种数据。在这种情况中,在通过对象之间通信将数据发送到管理器和ORB终端的同时,在CORBA中操作的代理适用于根据CORBA标准使管理所需的一些对象对象化。
为了直接访问不同版本之间的对等方实例,CORBA环境要求在IOR文件或CORBA命名服务中登记关于相应实例的信息(例如,参考和名称)的过程。然而,如果存在多个实例,或者经常添加或删除实例,难以分别登记并调用所有实例信息。
因此,3GPP TS 32.603提出一种方法,其中定义了称为BasicCmIrpOperation的对象来提取所有实例的信息。然而,该过程具有必须通过BasicCmIrpOperation来作出所有调用、以及当同时作出多个调用命令时必须依次处理多个调用命令的缺点。

发明内容
本发明用于解决上述问题,并因此本发明的目的是提供一种使用代表性对象实例的配置管理系统和方法,该系统和方法可以通过代表性对象实例来调用关于未登记对象实例的信息以便积极地管理节点。
根据用于实现上述目的的本发明方案,提供一种在网络中使用代表性对象实例的对象管理系统,包括代理,用于在管理系统的初始化中存储关于系统配置的初始化信息作为对象信息,并且用于产生表示对象信息的代表性对象实例,以及当从网络管理系统(NMS)的管理器接收到对象调用时,用于通过代表性对象实例来针对调用的对象执行命令并且将命令的结果发送到NMS管理器。
优选地,代理包括未登记对象DB,存储没有在命名服务中登记的对象的未登记对象信息,用于对象之间的通信;应用程序,当从NMS管理器接收到对象调用时用于通过代表性对象实例来开始处理未登记对象DB,以便执行针对调用对象的命令;以及系统接口,用于与管理系统进行接口。
优选地,应用程序包括用户程序,用户程序实际实现由接口定义语言(IDL)所定义的对象之间的关系或行为。
优选地,存储在未登记对象DB中的未登记对象信息是结构链表的形式。
优选地,未登记对象信息包含存储在Mo_Node中的配置信息和存储在Mo_Attribute中的关于配置信息的各个属性信息。
初始化信息至少包括系统信息、支架信息、搁架信息、插槽信息和主板信息之一。
根据定义为EquipmentR1类的属性信息,系统信息被存储在未登记对象DB中。
根据定义为EquipmentHolder类的属性信息,支架信息、搁架信息、插槽信息被存储在未登记对象DB中。
根据定义为CircuitPack类的属性信息,主板信息被存储在未登记对象DB中。
当从NMS管理器接收到关于对象信息的GET操作命令时,代理用于通过代表性对象实例来搜索未登记对象DB,并且用于将搜索到的调用对象的结果信息发送到NMS管理器。
代理还用于将从未登记对象DB中搜索到的对象的结果信息登记到散列表中。
当从NMS管理器接收到关于对象信息的SET操作命令时,代理用于通过代表性对象实例来搜索未登记对象DB,并且用于改变关于调用对象的信息,并将结果信息发送到NMS管理器。
代理还用于将从未登记对象DB中搜索到的对象的改变结果信息登记到散列表中。
在散列表中登记的信息是结构列表的形式。
在管理系统的故障或状态改变中,代理用于改变相应对象的信息,并且通过一个事件将改变信息发送到NMS管理器。
在执行操作命令中,代理用于从根据DN信息搜索到的实例中查找满足管理器所要求的过滤条件的实例。
过滤条件至少包括计算条件、比较条件和容器条件之一。
当在执行操作命令中作出命令中,代理用于根据范围信息指定要搜索的范围以及代表性对象实例。
范围信息至少包括类型信息和等级信息之一。
根据用于实现上述目的的本发明方案,提供一种在网络中使用代表性对象实例的对象管理方法,该方法包括步骤存储关于管理系统配置的初始化信息作为对象信息;产生表示对象信息的代表性对象实例;以及,当接收到对象调用时,根据关于通过代表性对象实例调用的对象的命令,传递结果值。
对象管理方法还包括步骤当关于通过代表性对象实例调用的对象的命令是GET命令时,传递GET结果。
GET结果传递步骤包括查询与代表性对象实例相关的对象;存储查询对象的GET结果;以及传递查询对象的GET结果。
对象管理方法还包括步骤在传递查询对象的GET结果之后将查询对象信息添加到散列表中。
对象管理方法还包括步骤当关于通过代表性对象实例调用的对象的命令是SET命令时,传递SET结果。
传递SET结果的步骤包括查询与代表性对象实例相关的对象;改变查询对象的属性值;传递改变的属性值;以及传递查询对象的SET结果。
对象管理方法还包括步骤在传递改变的属性值之后将查询对象信息添加到散列表中。


当结合附图时参考下面的详细说明可以更好地理解本发明,本发明的完整理解及其所附优点将变得显而易见,附图中类似的参考符号表示相同或类似的组件,其中图1示出了在根据网络管理标准(3GPP)的命名服务中登记的实例的GET操作的范例;图2示出了在根据网络管理标准(3GPP)的命名服务中登记的实例的SET操作的范例;
图3示出了没有在根据网络管理标准(3GPP)的命名服务中登记的实例的GET操作的范例;图4示出了没有在根据网络管理标准(3GPP)的命名服务中登记的实例的SET操作的实例;图5是包括通用对象请求代理体系结构(CORBA)代理和实际网元的网络的方框图;图6示出了根据本发明的典型配置初始化文件;图7是根据本发明定义DB表结构的视图;图8是根据本发明定义散列表结构的视图;图9是根据本发明定义形成管理系统的代表性对象实例EquipmentR1类的属性的视图;图10是根据本发明定义形成管理系统的代表性对象实例EquipmentR1类的方法的视图;图11是根据本发明定义形成管理系统的代表性对象实例EquipmentR1类的属性值类型的视图;图12是根据本发明定义形成管理系统的代表性对象实例EquipmentHolder类的属性的视图;图13根据本发明定义形成管理系统的代表性对象实例CircuitPack类的属性的视图;图14是根据本发明的初始化过程的流程图;图15是初始化信息的CM容器树的方框图;图16是用于接收从初始化文件获得的各个节点信息、根据节点类型将接收到的节点信息分类为网元数据、以及以链表形式存储分类数据的过程的流程图;图17是根据本发明的针对实例的GET操作的流程图;图18是根据本发明的针对实例的SET操作的流程图;图19和20是根据本发明的GET操作的流程图;图21和22是根据本发明的SET操作的流程图;图23是根据本发明用于查询散列表的过程的流程图;图24A、24B和25是根据本发明用于产生散列数的过程的流程图;以及图26是根据本发明用于添加散列表的过程的流程图。
具体实施例方式
下面结合附图来详细说明本发明的优选实施例。为了参考,整个附图中相同或类似的参考符号用于表示相应部分。在下面的详细说明中,因为它们会使本发明的概念不清楚,将不详细说明公知的功能或单元。
图1示出了在根据网络管理标准(3GPP)的命名服务中登记的实例的GET操作的范例。
如图1所示,当在CORBA平台中的两个分离的设备中实现管理器1和代理2时,管理器1可以经由ORB来开始处理从实际管理对象中形成的代理2的实例,以便获得希望的信息或执行方法。在这种情况中,必须在产生时将所有对象登记到命名服务3中,并且代理2经由例如可移植对象适配器(POA)或基本对象适配器(BOA)的CORBA对象适配器给对象分配唯一ID,并且管理这些ID。此外,对象实例池表示在实现时刻登记的实例。
即,在S1中代理2产生实例,并且在S2中与命名服务3相连,以便在S3中登记类名。当在S4中管理器1与命名服务3相连并且在S5中请求登记的类名时,在S6中命名服务3将登记的类名传递到管理器1。
然后,当在S7中管理器1从代理2调用实例的引用时,在S8中代理2将调用实例的引用传递到管理器。然后,在S9中,管理器1与代理2相对于实例的属性执行GET操作。
图2示出了在根据网络管理标准(3GPP)的命名服务中登记的实例的SET操作的范例。
如图2所示,在S1中代理2产生实例,并且在S2中与命名服务3相连,以便在S3中登记类名。当在S4中管理器1与命名服务相连并且在S5中请求登记的类名时,在S6中命名服务3将登记的类名传递到管理器1。
然后,当在S7中管理器1从代理2调用实例的引用时,在S8中代理2将调用实例的引用传递到管理器1。当在S9中管理器通过向代理2发送改变实例属性的请求来做出响应时,代理2在S10中改变属性的值并且在S11中将属性的改变值发送到管理器1。
图3示出了没有在根据网络管理标准(3GPP)的命名服务中登记的实例的GET操作的范例。
如图3所示,代理2产生根据3GPP定义的BasicCmIrpOperations实例(例如BasicCmIRPSystem.idl)。管理器1提取对象的引用并随后调用find_managed_objects或modify_managed_objects方法。然后,当代理2产生BasicCmInformationIterator并且存储相应结果时,管理器1再次获得对象的引用。
即,代理2在S1中产生BasicCmIrpOperations对象并且在S2中将BasicCmIrpOperations登记到命名服务中。当在S3中管理器1针对BasicCmIrpOperations对象的引用调用代理2时,在S4中代理2将BasicCmIrpOperations对象的引用传递到管理器1。
在S5中管理器针对BasicCmIrpOperations管理器所定义的find_managed_objects调用代理2,并且代理2在S6中产生BasicCmInformationIterator对象并在S7中将BasicCmInformationIterator对象的引用传递到管理器1。然后,在S8和S9中代理2查找调用的对象并且存储结果。
因此,当在S10中管理器1针对BasicCmInformationIterator对象所定义的next_basicCmInformations()调用代理2时,在S11中代理2将存储的GET结果传递到管理器1。随后,当在S12中管理器1针对BasicCmInformationIterator对象所定义的destroy()调用代理2时,在S13中代理2删除BasicCmInformationIterator对象。
图4示出了没有在根据网络管理标准(3GPP)的命名服务中登记的实例的SET操作的实例。
如图4所示,代理2在S1中产生BasicCmIrpOperations实例并且在S2中将BasicCmIrpOperations实例登记到命名服务中。当在S3中管理器1针对BasicCmIrpOperations对象的引用调用代理2时,在S4中代理2将BasicCmIrpOperations对象的引用传递到管理器1。
在S5中管理器1针对BasicCmIrpOperations管理器所定义的find_managed_objects调用代理2,并且在S6和S7中代理2产生BasicCmInformationIterator对象以及ModifyResultIterator对象,并且在S8和S9中将BasicCmInformationIterator的引用以及ModifyResultIterator对象传递到管理器1。然后,在S10到S12中代理2找到调用的对象、改变调用对象的值并且存储改变的值。此外,在S13中代理2将改变的属性值传递到管理器1。
因此,当在S14中管理器1针对BasicCmInformationIterator所定义的next_basicCmImformations()调用代理2时,在S15中代理2将存储的结果传递到管理器1。
随后,当在S16中管理器1针对ModifyResultIterator所定义的next_modificationErrors()调用代理2时,在S17中代理2将存储的ERROR值传递到管理器1。
然后,当在S18中管理器针对BasicCmInformationIterator所定义的destroy()调用代理2时,在S19中代理2清除BasicCmInformationIterator。
在此之后,当在S20中管理器1针对ModifyResultIterator所定义的destroy()调用代理2时,在S21中代理2清除ModifyResultIterator。
图5是包括CORBA代理和实际网元(例如NMS、EMS、WCDMA系统等)的网络的方框图,其中,在CORBA平台下的数据传输(占位程序(stub)、框架程序(skeleton)、IOR、ORB、调用/回叫、命名服务、通知服务等)实际上与普通CORBA服务器/客户机结构相同。
如图5所示,本发明通常包括网络管理系统(NMS)10、CORBA代理20和管理系统30。
NMS10是由通信服务运营商所管理的综合网络管理系统,并且包括CORBA管理器11、应用程序12和占位程序13。
CORBA管理器11的功能为NMS10和CORBA代理20之间的NMS适配器,用于支持通过CORBA ORB的通信。
CORBA代理20用作NMS10和管理系统30之间的中间物,并且充当CORBA服务器以及网络管理结构中的代理。
即,CORBA代理20与NMS10的CORBA管理器11一起执行与CORBA相关的过程,包括操作、警告/状态事件(或通知)等,并且与管理系统30在较低层交互操作。
具体地,在系统初始化中,CORBA代理20将每一个交换系统的配置和状态形成为实例(实例产生),并且通过命名服务60登记要由CORBA管理器21管理的对象数据。在系统操作期间,CORBA代理20通过调用NMS10将例如GET、SET、CREATE、DELETE等的命令发送到系统。
此外,CORBA代理20将命令的结果从系统返回到内部配置对象、将其返回到NMS10、并且通过事件服务功能向高级NMS报告改变的状态、警告等。
CORBA代理20包括未登记对象DB21、应用程序22、代表性对象实例23、系统接口24和框架程序25。
未登记对象DB21以对象形式(例如未登记对象实例)存储管理信息。即,尽管对于通过CORBA ORB的对象之间的通信需要命名服务60的登记等,而存储了未登记对象。
应用程序22是用户程序,实际上实现了由接口定义语言(IDL)所定义的对象和对象之间的关系。
此外,应用程序22具有代表性对象实例23,用于NMS10的CORBA管理器11和管理对象之间的连接,以便CORBA管理器11能够直接访问该对象。
系统接口24通过基本管理系统(EMS)提供与管理系统30(包括MSC30、SGSN32和GGSN33)的接口,以便在本地网络中监控并操作系统状态。
框架程序25和占位程序13是由IDL接口产生的编码,应用终端继承这两者以便实现对象。
如上所述,本发明的代理20通过系统初始化获取所有系统信息(例如物理结构、本地结构和连接信息)。即,代理20构成并管理从初始化文件作为CORBA实例获得的系统信息。如果管理器11直接调用对象,由命名服务60登记其引用。以结构链表的形式(DB表)管理任意未登记的对象信息,并随后产生未登记对象信息的代表性对象实例。
现在参考图6,图6示出了根据本发明的典型的配置初始化文件。
参考图6,代理从系统初始化中检测到切换的配置信息文件。配置初始化文件包括系统、Rack、Shelf、Slot信息。例如,系统信息是MSCl3110∥elemldreplaceadminoper,支架(rack)信息是Rack018111∥elemldshelfCntreplaceadminoper,搁架(shelf)信息是SHELFO1111∥elemldslotCntreplaceadminoper,插槽信息是SLOT01110SMBA,SBBA∥elemldreplaceadminoperholdStatus,以及主板(board)信息是BOARD00011SMBANULLNULL90NULLNULL∥boardldrackldshelfldslotldreplaceadminopercircuitpackTypeavailStateNULLNULLportCntprotectingserialNumfwVer。
即,根据将系统信息指向EquipmentR1类、将支架、搁架和插槽信息指向EquipmentHolder类、以及将主板信息指向CircuitPack类的属性信息,系统/支架/搁架/插槽信息被存储在DB表的Mo_Attributes中。在下面的表1中示出了根据字段的配置初始化结构的参数。
表1>

如图1所示,“elemId”表示系统、支架、搁架、插槽的ID,并且“rack(/shelf/slot)Cnt”表示rack(/shelf/slot)计数。“Replace”表示可代替的状态,并且“admin”表示管理状态;“oper”表示操作状态;“holdStatus”表示支撑状态;“rack(/shelf/slot)Id”表示主板位置和rack(/shelf/slot)ID;“circuitpackType”表示电路群类型;“availState”表示可用状态;“portCnt”表示主板中的端口计数;“portecting”表示对偶状态;以及“serialNum”表示序列号。此外,“fw Ver”表示固件版本。
同时,在系统初始化和操作期间,代理在DB表中存储与在命名服务中未登记的配置信息相关的实例。以如下所示的结构数据链的形式存储实例。
图7是根据本发明定义DB表结构的视图。在系统初始化期间,代理按照下面的方式将数据存储到DB表中。
例如系统、支架、搁架、插槽和主板信息的配置信息被存储在“Mo_node”中,并且各个属性被以链表的形式(其中分配并设置了数据区域,对其数据进行排队并且以列表形式逐个存储)存储在“Mo_Attributes”中。因为还存在多个系统配置,“Mo_node”还以链表形式存储信息。此外,“rightP”和“leftP”是用于保持点与存储在相应数据右边和左边中的列表的关系的信息。
例如系统名称、支架名称、搁架名称和主板名称的节点名称被存储在“Mo_Node”的“id”中,并且其各个Id被存储在“kind”中,而“lockKey”被用作标记,以避免在校正的时候访问数据,并且“attr_cnt”表示各个属性的总数。
由图9到13所定义的各个配置对象来处理属性,并且逐个存储在“Mo_Attributes”中,而由图9到13中的IDL所定义的属性名称被存储在“Mo_Attributes”中,并且与属性相对应的值(由初始化文件读取的replace、admin、oper等值)被存储在“valueP”中。“CORBAAny”表示由CORBA定义的称为“any”的一种数据类型,并且这种类型可以表示所有数据类型。
在完成初始化之后,代理根据来自管理器的请求和系统状态来如下操作。
代理在针对来自管理器的对象信息的GET操作中通过所谓代表性对象实例来搜索散列表和DB表,并且发送结果。即,如果在散列表中没有找到,代理搜索DB表并且还将其结果登记到散列表中。
此外,代理从管理器接收关于对象信息的SET操作、通过所谓代表性对象实例来搜索散列表和DB表、改变关于相应实例的信息、并且发送其结果和事件。此外,在这种情况中,如果在散列表中没有找到结果,代理搜索DB表并且还将其结果登记到散列表中。
在管理系统中发生故障和状态改变的情况中,代理改变关于相应实例的信息、并且经由事件(或通知)将相应信息发送到管理器。
在GET/SET操作中,代理根据范围信息(类型、等级)来指定要搜索的范围、并且通过指定代表性对象实例来发送命令。
在GET/SET操作中,代理还选择根据满足管理器所请求的过滤条件(计算条件、比较、容器关系等)的DN信息而找到的实例中的任一个。
此外,如下所述,代理利用GET/SET将与具有访问历史的节点信息相关的内容存储在结构数据列表中。根据本发明,数据列表被称为“散列表”。这是通过应用散列算法利用散列表信息映射原始数据而产生的结构,以便提高针对重复访问相应节点的搜索率。
图8是根据本发明定义散列表结构的视图。
如图8所示,参考散列表结构,“int number”表示散列数,并且“DBImplMonode*node;”表示存储了节点信息的DB列表地点。此外,“bool top_flag”表示分配给最近登记的信息的标记。
在本发明中,代表性对象实例(EquipmentR1,EquipmentHolder,CircuitPack)被定义为与在标准ITU-T M.3100(通用网络信息模型)中所定义的类名相同(例如ConfigurationNetworkResourcesNRMDefs.idl),并且除了自定义数据(StateManagementIRPConstDefs.idl)之外的内部定义属性和方法(ConfigurationNetworkResourcesNRMDefs.idl)遵守标准(TS32.623、TS 32.300等)。下面结合图9到13来详细说明。
图9是根据本发明定义形成管理系统的代表性对象实例EquipmentR1类的属性(例如ConfigurationNetworkResourcesNRMDefs.idl)的视图。
如图9所示,EquipmentR1类是代表性对象实例,用于管理关于系统节点的信息、并且通常将定义内容分类为属性名称和属性值类型。
图10是根据本发明定义形成管理系统的代表性对象实例EquipmentR1类的方法(例如ConfigurationNetworkResourcesNRMDefs.idl)的视图。
如图10所示,当管理器将访问调用命令发送到执行GET或SET的对象时,代理将代表性对象实例的引用(例如EquipmentR1,EquipmentHolder和CircuitPack)传递到管理器。然后,管理器可以在对象中再次调用getAttribute和setAttribute方法,以便针对希望的实例节点的信息执行GET或SET操作。
在这种情况中,管理器只需要与代表性对象实例相关的命名信息和引用,而不需要请求与多个实例相关的命名信息或引用,并且代理只针对代表性对象实例执行实施方式和命名服务登记。当调用上述功能时,代理在内部数据库(例如DB表和散列表)中搜索出结果并且将结果传递到管理器。
图11是根据本发明定义形成管理系统的代表性对象实例EquipmentR1类的属性值类型(例如StateManagementIRPConstDefs.idl)的视图。
如图11所示,这定义了由代理自定义的属性的数值类型。
图12是根据本发明定义形成管理系统的代表性对象实例EquipmentHolder类的属性(例如ConfigurationNetworkResourcesNRMDefs.idl)的视图。
如图12所示,EquipmentHolder类继承EquipmentR1类,以便提供getAttribute和setAttribute功能,并且如图12所示,定义了附加的属性。通常将定义内容分类为属性名称和属性值类型。
图13是是根据本发明定义形成管理系统的代表性对象实例CircuitPack类的属性(例如ConfigurationNetworkResourcesNRMDefs.idl)的视图。
如图13所示,CircuitPack类继承EquipmentR1类并且提供getAttribute和setAttribute功能,并且如图13所示,定义了附件的属性。通常将定义内容分类为属性名称和属性值类型。
此外,本发明提供包括范围和过滤条件的GET/SET操作的实现方法。
如果将整个DN赋给实例GET或者范围类型是仅是基本的,在搜索表时确认是否满足过滤条件,并随后返回满足实例。如果给定的DN不是整个DN,即,范围类型不是仅为基本的,在执行搜索到最后节点时返回满足过滤条件的多个实例。
此外,本发明提高了GET/SET执行速率。即,因为主要定义了散列规则并且在散列表之后搜索DB表,可以提高针对管理对象的搜索率。可以在反映例如警告的内部状态的情况下,使其可用并且作为搜索表,并且当GET/SET操作的概率更高时可以获得更好的结果。下面的表2示出了经由本发明的代理应用于实际系统的试验中得到的数据,其中比较了实例GET操作中的执行率(单位tps(事务每秒))。
<表2>

如表2所示,显而易见的是,对于各个组件数据,实例GET执行速率快于单一和不同版本中的普通执行速率。
图14是根据本发明的初始化过程的流程图,以及图15是初始化信息的CM容器树的方框图。
如图14所示,在初始化期间在S10中代理向系统请求初始化文件,并且在S20中从其接收到初始化文件。
在S30中代理逐行读取初始化文件信息以便获得信息,并且在S40中确定该信息是否包含关于系统信息的数据。如果系统信息存在,在S50中代理产生系统DB节点以便将产生的系统DB节点添加到系统DB节点表,并随后在S60中接着读取下一行。
然而,如果系统信息不存在,在S70中代理确定是否存在关于支架的信息。如果支架信息存在,在S80中代理逐个产生支架DB节点以便将产生的支架DB节点添加到支架DB表中,并随后在S90中接着读取下一行。
如果支架信息不存在,在S100中代理确定是否存在关于搁架的信息。如果搁架信息存在,在S110中代理逐个产生搁架DB节点以便将产生的搁架DB节点添加到搁架DB表中,并随后在S120中接着读取下一行。
然而,如果搁架信息不存在,在S130中代理确定是否存在关于插槽的信息。如果插槽信息存在,在S140中代理逐个产生插槽DB节点以便将产生的插槽DB节点添加到插槽DB表中,并随后在S150中接着读取下一行。
如果插槽信息不存在,在S160中代理确定是否存在关于主板的信息。如果主板信息存在,在S170中代理逐个产生主板DB节点以便将产生的主板DB节点添加到主板DB表中,并随后在S180中接着读取下一行。
然而,如果主板信息不存在,在S190中代理确定是否为初始化文件的结尾(EOF)。如果是EOF,终止初始化过程;如果不是,代理读取文件的行并且获得信息以便重复上述过程。
因此,在通过重复上述过程产生关于系统、支架、搁架、插槽和主板的DB节点之后完成了初始化。
按照具有如图15所示的CM容器树的配置管理数据的形式,将上述初始化信息存储在DB表中,图15是初始化信息的CM容器数据的方框图。
具体地,根据图16所示的过程可以获得根据上述节点类型(系统、支架、搁架、插槽和电路群)产生的节点。
图16是根据本发明用于接收从初始化文件获得的各个节点信息、根据节点类型(系统、支架、搁架、插槽和电路群)将接收到的节点信息分类为属性数据、以及以链表形式存储分类数据的过程的流程图。这总计为DB表信息。
如图16所示,在S41到S44中,首先根据行从文件中获得各个配置节点的属性值,根据图9到13中所定义的数据类型进行转换,该数据类型是通过映射根据IDL的标准(M.3100)所定义的属性而获得的,并随后在S41到S44继续按照链表的形式存储在MoAttrNodeP中。
接着,当创建属性信息时,产生所有关于节点的信息(dn、loc_id、id、kind、attr_cnt、attrP、lockKey)。在这种情况中,在S45中,在上述过程中产生的MoAttrNodeP数据作为节点的属性信息被存储在MoNodeP中的attrP项中。(dn区分名称,物理位置的命名规则,id节点标识符,kind节点值,attr_cnt节点属性数,attrP节点属性信息,lockKey锁定节点数据的密钥)因为它们的意思与图7的上述说明中所表示的相同,将不说明DB表的MoNode和MoAttrNode的参数。
图17是根据本发明针对实例的GET操作的流程图,可以针对在根据网络管理标准(3GPP)的命名服务中登记的实例以及针对没有在命名服务中登记的实例实现GET/SET。
如图17所示,在系统初始化时,首先在S10中代理20产生代表性对象实例(EquipmentR1、EquipmentHolder和CircuitPack)并且在S20中将代表性对象实例登记到命名服务中。然后,在S30中将所有配置数据存储在DB表中。
在此之后,在S40中管理器11调用代表性对象实例的引用,并且在S50中代理20将代表性对象实例的引用传递到管理器11。
然后,在S60中,管理器11从代理提取在命名服务中登记了的代表性对象实例的可调用引用,并随后调用在代表性对象实例中所定义的getAttributes()。
因此,在S70中代理20请求用于查询的DB散列表,并因此在S80中查询与代表性对象实例相关的实例。
在S90中,代理20存储查询结果(GET resultSet),并随后在S100中将GET resultSet传递到管理器11。
在S110中,代理20将访问的节点信息添加到散列表中的信息中。
然后,在S120中,管理器11调用在代表性对象实例中所定义的getAttributes(),并且在S130中代理20请求用于查询的散列表,以便在S140中查询与代表性对象实例相关的实例。
在S150中,代理存储查询的结果(GET resultSet),并且在S160中将GET resultSet传递到管理器11。
图18示出了根据本发明针对实例的SET操作的流程图,可以针对在根据网络管理标准(3GPP)的命名服务中登记的实例以及针对没有在命名服务中登记的实例实现GET/SET。
如图18所示,在系统初始化中,在S10中代理20产生代表性对象实例(EquipmentR1,EquipmentHolder和CircuitPack),并且在S20中将代表性对象实例登记到命名服务中。然后,在S30中将所有配置数据存储在DB表中。
在S40中,管理器11调用代表性对象实例的引用,并且在S50中代理20将代表性对象实例的引用传递到管理器11。
在S60中,管理器11提取在初始化中在命名服务中登记了的代表性对象实例的可调用引用,并且调用在代表性对象实例中所定义的setAttributes()。
作为响应,在S70中代理20请求DB表用于查询,并且在S80中查询与代表性对象实例相关的实例。
然后,在S90中,代理20改变DB表中的属性值,在S100中存储改变的结果(SET(,err)resultSet),并且在S110中将改变的属性值发送到管理器11。
在S120中,代理20将访问节点信息添加到散列表中的信息中。
当在S140中管理器再次调用在代表性对象实例中所定义的setAttributes()时,在S150中代理20请求散列表用于查询,并且在S160中查询与代表性对象实例相关的实例。如果因为没有在散列表中登记而没有找到实例时,在S160中代理20再次向DB表发送请求,以便查询与代表性对象实例相关的实例。
然后,在S170中代理20改变DB表中的属性值,在S180中存储改变的结果(SET(,err)resultSet),并且在S190中将改变的属性值发送到管理器11。
在节点没有在散列表中登记并因此向DB表请求的情况中,在S200中,代理20将处理的节点信息添加到散列表中的信息中。
如上所述,如果管理器11所希望的节点信息与没有在散列表中的历史的节点相对应,本发明通过DB表获得该节点,并且通过内部过程GET/SET来发送关于代表性对象实例的结果。
在SET操作的情况中,另外,还将相应通知发送到管理器11,并且针对未登记的实例,代理20还给GET/SET功能提供根据3GPP定义的BasicCmIrpOperations(例如BasicCmIRPSystem.idl)。即,当管理器11命令BasicCmIrpOperations实例执行GET/SET操作时,BasicCmIrpOperations实例直接调用代表性对象实例。当BasicCmIrpOperations实例搜索散列表和DB表,并且将其结果存储在所产生的iterator中时,管理器11访问迭代程序并且依次获取其结果。本实施例还包括按照3GPP所定义的范围和过滤功能(例如BasicCmIRPSystem.idl)。
图19和20是根据本发明的GET操作的流程图。
如图19所示,当在S100中,代理从管理器接收到GET操作时,在S200中代理调用代表性对象实例,并且在S300中请求GET操作。在这种情况中,GET意味着按照CORBA标准(3GPP)定义的GET功能和参量。代表性对象实例表示没有在命名服务中登记的配置对象,并因此不能直接调用。由代理终端在根据CROBA标准(3GPP)的GET/SET操作中通过BasicCmIrpOperations来调用代表性对象实例。对于代表性对象实例,有可能访问DB表,搜索希望的节点信息,并且校正结果。
因此,在S400中代理接收关于GET操作的结果,并且在S500中确定是否正常地获得该结果。如果正常地获得该结果,在S600中代理存储该结果(GET resultSet);如果不是,在S700中代理执行调用错误处理例程。
特别地,如果在上述过程中请求了GET操作,代理执行如图20所示的过程来产生针对GET操作的结果。
首先,当在S401中代理接收到GET操作时,在S402中,代理确定是否存在散列表。如果存在散列表,在S403中代理查询散列表。如果不存在散列表,在S404中代理查询DB表。在这种情况中,DB表是存储在代理初始化中没有由例如命名服务登记并因此不能够被CORBA ORB终端直接调用的对象信息(例如,类、属性和DN)的存储单元。散列表是用于按照散列节点和列表的形式管理搜索到的节点和信息的存储单元,以便提高在操作执行时的搜索速率。
然后,在S405中,代理输入DN信息和过滤信息,并且步骤D-1中,在散列表中搜索具有相应的DN信息和希望的属性的节点。如果在散列表中不存在这种节点,则代理针对这种节点搜索DB表。
然后,在搜索之后,在S406中,代理分析包含在从管理器接收的SearchControl信息的过滤条件,并且确认是否存在相应节点,并且作为搜索结果,实际节点属性是否满足过滤条件。术语“过滤条件”表示在执行按照CORBA标准(3GPP)定义的GET操作中的条件。
如果找到了相应的节点并且实际节点属性满足过滤条件,在步骤D-2中,代理将搜索到的节点添加到散列表中,在S407中存储结果,并且在S408中输入范围类型。在这种情况中,从GET操作中获得结果。
然后,在S409中代理确认范围条件(type(=仅是基本的,基本和子树,基本到第n级,基本到全部),等级)是否是仅是基本的。如果范围条件是其它类型而不是仅是基本的,可以产生多个结果。因此,在这种情况中,在S410中代理继续搜索并且确认节点是否是最后的节点。术语“范围”表示在执行按照CORBA标准(3GPP)所定义的GET操作中的范围条件(type(=仅是基本的,基本和子树,基本到第n级,基本到全部),等级))。
如果该节点不是最后的节点,在S411中代理移到下一个节点(node=node→next)。如果该节点是最后的节点,在S412中代理确认最后的节点是否为散列节点。因为散列节点具有尚未搜索的历史,代理对于DB节点执行查询步骤。
图21和22是根据本发明的Set操作的流程图。
如图21所示,当在S100中从管理器接收到SET操作时,在S200中代理调用代表性对象实例,并且在S300中请求SET操作。在此,“SET”表示按照CORBA标准(3GPP)定义的SET功能和参量。代表性对象实例表示没有在命名服务中登记、并因此不能够直接调用的配置对象。由代理终端在根据CROBA标准(3GPP)的GET/SET操作中通过BasicCmIrpOperations来调用代表性对象实例。对于代表性对象实例,有可能访问DB表,搜索希望的节点信息,并且校正结果。
作为响应,在S400中,代理接收关于SET操作的结果,并且在S500中,确定是否正常地获得该结果。如果正常地获得该结果,在S600中,代理存储该结果(SET resultSet);如果并未正常地获得该结果,在S700中代理执行调用错误处理例程。
特别地,如果在上述过程中请求了SET操作,代理执行如图22所示的过程来关于SET操作的结果。
首先,当在S401中接收到SET操作时,在S402中代理确定是否存在散列表。如果存在散列表,在S404中代理查询DB表。DB表是包含在代理初始化中没有由命名服务登记的对象信息(类,属性和DN)以及不能够被CORBA ORB终端直接调用的相应对象的存储单元。散列表是用于按照散列节点和其列表的形式来管理先前搜索的节点和信息的存储单元,以便提高操作时的搜索速率。
在S405中,代理输入DN信息和过滤信息,并且步骤D-1中,确定在散列表中是否存在具有相应DN信息和希望属性的节点。如果在散列表中不存在这种节点,代理搜索DB表。
然后,在搜索之后,在S406中,代理分析包含在从管理器接收的SearchControl信息的过滤条件,并且确认是否存在相应节点,并且作为搜索结果,实际节点属性是否满足过滤条件。术语“过滤条件”表示在执行按照CORBA标准(3GPP)定义的GET操作中的条件。
如果找到了相应的节点并且实际节点属性满足过滤条件,在步骤D-2中,代理将搜索到的节点添加到散列表中。
然后,在S407中代理改变DB节点的属性,在S408中存储其结果,并且在S409中,将改变通知管理器。术语“结果”表示通过SET操作获得的结果。
在此之后,当在S410中输入范围类型时,在S411中代理确认范围条件(type(=仅是基本的,基本和子树,基本到第n级,基本到全部),等级)是否为仅是基本的。如果范围条件是其它类型而不是仅是基本的,可以产生多个结果。因此,在这种情况中,在S412中代理继续搜索并且确认节点是否是最后的节点。术语“范围”表示在执行按照CORBA标准(3GPP)所定义的GET操作中的范围条件(type(=仅是基本的,基本和子树,基本到第n级,基本到全部),等级)。
如果该节点不是最后的节点,在S413中代理移到下一个节点(node=node→next)。如果该节点是最后的节点,在S414中代理确认最后的节点是否是散列节点。因为散列节点具有尚未搜索的历史,代理对于DB节点执行查询步骤。
图23是根据本发明用于查询散列表的过程的流程图。
如图23所示,在S100中,代理接收DN信息以便获得作为密钥值的散列数,用于在S200中搜索散列表,并且在S300中,根据DN信息中计算散列表索引(index=number%HASH_DENOM)。
然后,在S400中,代理显示一个节点指针并且将散列表信息赋给它(Hashlmpl∷data*tmp,tmp=hash[index])。
在S500中,代理将输入的DN信息与散列表DN信息进行比较(DN==tmp→node→dn?)。如果输入的DN信息与散列表DN信息相同,在S600中代理将散列表信息赋给节点指针(return tmp→node)以便在S700中查找散列表的散列数据(找到)。
然而,如果此DN信息不与彼DN信息相同,在S800中代理移动到下一个节点(tmp=tmp→next),并且在S900中确定相应节点是否是最后的节点。如果节点是最后的节点,在S1000中代理没有找到散列数据。如果节点不是最后的节点,代理进行输入DN信息和散列表DN信息的比较。
现在,结合图24A、24B和25来详细说明获得散列数的过程。
图24A、24B和25是根据本发明用于产生散列数据的流程图。
如图24A所示,在S201中代理接收DN输入,以便在S202中获得DN名称和值对,并且在S203中确认下一个字符串名称是否为“EquipmentR1.equipmentld”(next_string_name=″EquipmentR1.equipmentld″)。
如果作为确认的结果,下一个字符串名称是“EquipmentR1.equipmentld”,在S204中设置系统数为dn_num(rack_num=atoi(next_string_value),dn_num=system_num)。
然后,在S205中确认下一个字符串名称是否为“EquipmentHolder.equipmentld”(next_string_name=“EquipmentHolder.equipmentld”)。如果下一个字符串名称是“EquipmentHolder.equipmentld”,在S206中,将rack_num添加到预先设置的dn_num来获得新的dn_num(rack_num=atoi(next_string_value),dn_num=rack_num+dn_num)。
参考图24B,在S207中,确认下一个字符串名称是否是“EquipmentHolder.equipmentld”(next_string_name=“EquipmentHolder.equipmentld”)。如果下一个字符串名称是“EquipmentHolder.equipmentld”,在S208中将shelf_num添加到上述dn_num中来获得新的dn_num(shelf_num=atoi(next_string_value),dn_num=shelf_num+dn_num)。
然后,在S209中确认下一个字符串名称是否是“EquipmentHolder.equipmentld”(next_string_name=“EquipmentHolder.equipmentld”)。如果下一个字符串名称是“EquipmentHolder.equipmentld”,在S210中将slot_num添加到dn_num中来获得新的dn_num(slot_num=atoi(next_string_value),dn_num=slot_num+dn_num)。
在S211中,确认下一个字符串名称是否为“SKTCircuitPack.equipmentld”(next_string_name=“SKTCircuitPack.equipmentld”)。如果下一个字符串名称是“SKTCircuitPack.equipmentld”,在S212中将board_num添加到上述dn_num中来获得新的dn_num(board_num=atoi(next_string_value),dn_num=board_num+dn_num)。
然后,在S213中通过使用最终获得的dn_num来产生hash[index].number(hash[index].number=dn_num)。
按照这种方式,代理接收DN并且将其转换为要存储在散列表中的散列数。根据转换规则,将已有的根据等级的ID信息转换为整数并且合计根据等级而获得的dn_num。
具体地,添加根据等级而获得的dn_num的过程如图25所示。即,在S214中代理移动到下一个DN单元(goto next DN element),并且在S215中确认是否存在下一个DN单元。如果存在下一个DN单元,在S217中代理进行下一个字符串名称的确认,并且如果不存在下一个DN单元,在S216中代理通过使用dn_num来产生hash[index](hash[index]number=dn_num)。
图26是根据本发明用于添加散列表的过程的流程图。
如图26所示,在S100中代理接收到要添加的节点,并且在S200中通过如图23所示的散列表查询过程来确认该节点在先前的散列表中是否存在其信息。在S300中如果在散列表中已经存在了信息,终止添加散列表的过程。
然而,如果在先前的散列表中不存在要添加的节点的信息,在S400中,将要添加的节点存储在新的散列表中并且设置节点的上标记(index=number%HASH_DENOM,Hashlmpl∷data*tmp,tmp=malloc(sizeof(Hashlmpl∷data)),tmp→number=number,tmp→node=node,tmp→top_flag=true,tmp→next=hash[index])。在此,HASH_DENOM参数表示在产生散列表中指定的表数的最大索引值。
然后,在S500中确认散列表的索引是否为空(hash[index]==NULL?)。如果散列表索引为空,表示新的节点信息,在S600中删除先前的上节点的标记(hash[index]→top_flag=false)。如果散列表不为空,在S700中设置并添加上标记(hash[index]=tmp)。
如上所述,本发明提供一种方法,用于通过代表性对象实例来调用关于未登记对象实例的信息,以便可以积极地管理节点,即使在例如配置管理对象的未登记命名服务的每一个类中存在多个和不同的对象。
尽管已经示出了本发明,并结合优选实施例进行了说明,对于本领域的技术人员显而易见的是,在不脱离权利要求书所定义的本发明精神和范围之下可以作出各种修改和改变。
权利要求
1.一种在网络中使用代表性对象实例的对象管理系统,包括代理,响应管理系统的初始化,用于作为对象信息来存储与系统配置相关的初始化信息,并且用于产生表示所述对象信息的代表性对象实例;所述代理响应从网络管理系统(NMS)管理器接收到对象调用,用于通过代表性对象实例来执行针对调用对象的命令,并且用于将命令的结果传递到NMS管理器。
2.根据权利要求1所述的对象管理系统,其中所述代理包括未登记对象DB,存储没有在用于对象之间的通信的命名服务中登记的对象的未登记对象信息;应用程序,用于响应从NMS管理器接收到对象调用,通过代表性对象实例来开始处理未登记对象DB,以便执行针对调用对象的命令;以及系统接口,用于与管理系统进行接口。
3.根据权利要求2所述的对象管理系统,其中,应用程序包括用户程序,用户程序实现了由接口定义语言(IDL)所定义的对象之间的关系和动作之一。
4.根据权利要求2所述的对象管理系统,其中,存储在未登记对象DB中的未登记对象信息包括结构链表。
5.根据权利要求4所述的对象管理系统,其中,未登记对象信息包含存储在Mo_Node中的配置信息和存储在Mo_Attribute中的关于配置信息的各个属性信息。
6.根据权利要求2所述的对象管理系统,其中,初始化信息包括系统信息、支架信息、搁架信息、插槽信息和主板信息中的至少一个。
7.根据权利要求6所述的对象管理系统,其中,根据定义为EquipmentR1类的属性信息,将系统信息存储在未登记对象DB中。
8.根据权利要求6所述的对象管理系统,其中,根据定义为EquipmentHolder类的属性信息,将支架信息、搁架信息、插槽信息存储在未登记对象DB中。
9.根据权利要求6所述的对象管理系统,其中,根据定义为CircuitPack类的属性信息,将主板信息存储在未登记对象DB中。
10.根据权利要求2所述的对象管理系统,其中,所述代理响应从NMS管理器接收到与对象信息相关的GET操作命令,通过代表性对象实例来搜索未登记对象DB,并且用于将搜索到的调用对象的结果信息发送到NMS管理器。
11.根据权利要求10所述的对象管理系统,其中,代理另外将结果信息登记到散列表中。
12.根据权利要求11所述的对象管理系统,其中,登记到散列表中的信息包括结构链表。
13.根据权利要求10所述的对象管理系统,其中,在执行GET操作命令期间,所述代理从根据DN信息搜索到的实例中查找满足由NMS管理器所请求的过滤条件的实例。
14.根据权利要求13所述的对象管理系统,其中,过滤条件至少包括计算条件、比较条件和容器条件之一。
15.根据权利要求1O所述的对象管理系统,其中,当在执行GET操作命令中做出命令中,所述代理根据范围信息指定要搜索的范围以及代表性对象实例。
16.根据权利要求15所述的对象管理系统,其中,范围信息包括类型信息和等级信息中的至少一个。
17.根据权利要求2所述的对象管理系统,其中,所述代理响应从NMS管理器接收到与对象信息相关的SET操作命令,通过代表性对象实例来搜索未登记对象DB,并且改变与调用对象相关的信息,并将改变的结果信息发送到NMS管理器。
18.根据权利要求17所述的对象管理系统,其中,所述代理另外将改变的结果信息登记到散列表中。
19.根据权利要求17所述的对象管理系统,其中,所述代理响应管理系统的故障和状态改变之一,改变相应对象的信息并将改变的信息通过事件传送到NMS。
20.一种在网络中使用代表性对象实例的对象管理代理系统,包括未登记对象DB,用于存储没有在用于对象之间的通信的命名服务中登记的对象的未登记对象信息;应用程序,响应从网络管理系统(NMS)管理器接收到对象调用,通过代表性对象实例来开始处理未登记对象DB,以便执行针对调用对象的命令;以及系统接口,用于与管理系统进行接口。
21.根据权利要求20所述的对象管理代理系统,其中,应用程序包括用户程序,用户程序实现了由接口定义语言(IDL)所定义的对象之间的关系和动作。
22.根据权利要求20所述的对象管理代理系统,其中,存储在未登记对象DB中的未登记对象信息包括结构链表。
23.根据权利要求22所述的对象管理系统,其中,未登记对象信息包含存储在Mo_Node中的配置信息和存储在Mo_Attribute中的与配置信息有关的各个属性信息。
24.一种在网络中使用代表性对象实例的对象管理方法,所述方法包括步骤存储与管理系统配置相关的初始化信息,作为对象信息;产生表示对象信息的代表性对象实例;以及当接收到对象调用时,根据与通过代表性对象实例调用的对象有关的命令,传递结果值。
25.根据权利要求24所述的对象管理方法,其中,初始化信息至少包括系统信息、支架信息、搁架信息、插槽信息和主板信息之一。
26.根据权利要求25所述的对象管理方法,其中,根据定义为EquipmentR1类的属性信息,来存储系统信息。
27.根据权利要求25所述的对象管理方法,其中,根据定义为EquipmentHolder类的属性信息,存储支架信息、搁架信息和插槽信息。
28.根据权利要求25所述的对象管理方法,其中,根据定义为CircuitPack类的属性信息,存储主板信息。
29.根据权利要求24所述的对象管理方法,其中,按照结构链表的形式存储对象信息。
30.根据权利要求24所述的对象管理方法,其中,未登记对象信息包含存储在Mo_Node中的配置信息和存储在Mo_Attribute中的与配置信息有关的各个属性信息。
31.根据权利要求24所述的对象管理方法,还包括步骤当与通过代表性对象实例调用的对象有关的命令是GET命令时,传递GET结果。
32.根据权利要求31所述的对象管理方法,其中,传递GET结果的步骤包括查询与代表性对象实例相关的对象;存储查询对象的GET结果;以及传递查询对象的GET结果。
33.根据权利要求32所述的对象管理方法,还包括步骤在传递查询对象的GET结果之后,将查询对象信息添加到散列表中。
34.根据权利要求24所述的对象管理方法,还包括步骤当与通过代表性对象实例调用的对象有关的命令是SET命令时,传递SET结果。
35.根据权利要求34所述的对象管理方法,其中,传递SET结果的步骤包括查询与代表性对象实例相关的对象;改变查询对象的属性值;传递改变的属性值;以及传递查询对象的SET结果。
36.根据权利要求35所述的对象管理方法,还包括步骤在传递改变的属性值之后,将查询对象信息添加到散列表中。
全文摘要
一种使用代表性对象实例的配置管理系统和方法,用于通过代表性对象实例调用关于未登记对象实例的信息,以便能够积极地管理节点(包括产生、删除、改变和检索)。在本发明的设备中,在管理系统的初始化期间,代理存储关于系统配置的初始化信息作为对象信息,并且产生表示对象信息的代表性对象实例。当从网络关系系统(NMS)管理器接收到对象调用时,代理通过代表性对象实例执行针对调用对象的命令,并且将命令的结果传递到NMS管理器。
文档编号H04L12/24GK1815978SQ200510129648
公开日2006年8月9日 申请日期2005年12月14日 优先权日2005年2月1日
发明者任庸植 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1