[发明专利]一种基于操作分离的网管系统对象管理方法有效
申请号: | 201110338317.2 | 申请日: | 2011-10-31 |
公开(公告)号: | CN102412985A | 公开(公告)日: | 2012-04-11 |
发明(设计)人: | 张勇;张利兵;邹昊;朱春燕;尹永胜 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;G06F9/46 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 魏殿绅;庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 操作 分离 网管 系统 对象 管理 方法 | ||
技术领域
本发明涉及电信领域中的网管系统对象管理技术领域,具体说是一种基于操作分离的网管系统对象管理方法。
背景技术
在电信领域中的网管系统中,为了实现对物理设备(即真实的网络设备)的管理和业务数据的配置,需要在网管系统中创建与物理设备对应的逻辑网管对象(即:物理设备在网管系统中虚拟的逻辑对象,下面简称为“对象”)。通过这些与物理设备对应的对象实现网管系统对物理设备的管理、监控、业务配置等功能。
网管系统中的一个对象对应一个实体的物理设备,对象就是网管系统上对物理设备的抽象,并且每个对象都会用一个全局唯一的ID来进行标识;在网管系统中用对象配置数据来描述物理设备的基本属性信息(比如对象类型、对象地址等),每个物理设备在网管系统中对应的对象配置数据都不一样,并且对象配置数据中的关键数据将决定该对象的功能(比如不同类型的网元具有不同的业务功能)。
对于物理设备来说了除了基本属性信息外,更重要的还有业务配置功能和对应的业务数据的配置(业务配置数据),在网管系统中需要通过对与物理设备对应的对象进行操作来完成对物理设备的业务配置功能和业务预配置功能(所谓业务预配置是将业务配置数据已经在网管上生成好了,还没有真正下发给物理设备,可以在批量完成多个设备的业务预配置数据后,最后批量下发给设备)。所以,在网管系统中,对象以及对象配置数据是其他功能的基础,所有对物理设备的操作或对业务数据的配置都需要建立在这些对象的基础之上。
在实际的工程应用中,对象配置数据的修改操作不会非常频率,大部分时间是对对象配置数据的访问,并且在进行对象访问(读对象配置数据操作)时,为了有较快的响应速度,对并发性有非常高的要求。尤其在管理容量很大、设备上报数据(如告警数据)比较频繁的情况下,对对象的访问需要支持多线程同时并发,并且需要有比较高的对象查找或比较的效率。
在实现物理设备的管理、监控和业务数据的配置时,为了提高对象查找或比较的效率,根据对象的逻辑关系和层次结构,在网管系统中对对象的管理,一般都是采用在内存中作为共享数据以树形结构缓冲对象配置数据,对象的查找或遍历将在内存中完成,从而可以达到比较高的执行效率。然而,内存中共享的对象配置数据在对象配置时需要实时更新,为了保证内存中共享的对象配置数据的线程安全性,需要给内存中共享的对象配置数据的读、写操作进行多线程同步,但进行对象写操作时因为需要将对象配置数据持久化到数据库中(对象配置数据存库),需要消耗比较长的时间,如果对象写操作和对象读操作共享同一份内存中共享的对象配置数据,对象配置数据的修改会大大的降低对象访问的效率。
为了实现内存中共享的对象配置数据的线程安全性,可以采用如下的一些方案:
1.对象写操作与对象读操作共享同一份内存中的对象配置数据,通过全局互斥锁或全局读写锁来保证内存中的对象配置数据的线程安全性。这种方式可以保证内存中共享的对象配置数据的线程安全性,但存在如下的缺点:
1)因为对象的读写操作是互斥的,并发程度不高,执行的效率比较低。因为对象写操作与对象读操作都需要对内存中共享的对象配置数据加锁互斥来保证多线程安全,在操作用户比较多,对象配置修改比较频繁时,尤其是在大数据量或复杂操作中,对象配置数据存库消耗的时间较长,导致锁占用的时间也会比较长,将大大降低了对象访问的效率。
2)需要对外暴露全局锁,在函数重用时容易导致递归加锁,如果是使用读写锁,因读写锁中写锁优先的特性,还容易导致死锁或者读锁“饿死”的问题。
3)如果是使用全局互斥锁,对象读操作都会互斥,效率将会更低。
2.对象写操作与对象读操作共享同一份内存中的对象配置数据,对内存中共享的对象配置数据加细粒度的自定义对象读写锁,即自定义对象操作的锁类型,在对象访问过程中记录操作对象的加锁类型,在对对象进行操作之前先获取到对象操作的权限,这种方式即可以保证内存中共享的对象配置数据的线程安全性,也可以无关对象的对象写操作和对象读操作的高并发性。但也存在如下的问题:
1)因为需要应用使用自定义的对象读写锁,而对象加锁的顺序难达成一致,容易形成死锁,所以必须有比较复杂的算法来检测死锁,并且在检测到死锁发生时,至少需要放弃掉一个操作来解除死锁场景。
2)应用需要对自定义的锁机制有比较深入的理解,否则很容易导致错误的加锁。
3)因为容易构成死锁场景,对对象操作的处理不支持嵌套,也很难重用。
4)对对象进行对象写操作时,也不允许对操作对象相关的对象进行对象访问,对对象访问的效率也会有一定的影响。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110338317.2/2.html,转载请声明来源钻瓜专利网。