CN103761136A - 一种基于插件的数据模型动态加载的方法 - Google Patents
一种基于插件的数据模型动态加载的方法 Download PDFInfo
- Publication number
- CN103761136A CN103761136A CN201410063854.4A CN201410063854A CN103761136A CN 103761136 A CN103761136 A CN 103761136A CN 201410063854 A CN201410063854 A CN 201410063854A CN 103761136 A CN103761136 A CN 103761136A
- Authority
- CN
- China
- Prior art keywords
- node
- function
- data model
- plug
- parameter
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种基于插件的数据模型动态加载的方法,首先定义数据模型节点的描述结构,然后将数据模型节点编译成动态库,当TR098服务进程检测到新插件时,加载新插件,外部进程对步骤S3中加载的数据节点进行添加,修改,删除,读取操作时,由TR069服务进程负责执行添加,修改,删除,读取节点实例,并调用对应的回调函数执行具体的功能。本发明将数据模型的描述和TR098服务进程分离,将数据模型的描述编译成动态库,以插件的形式存在,在TR098服务进程中动态加载插件,从而实现***的高度可扩展性和维护性。
Description
技术领域
本发明涉及一种基于插件的数据模型动态加载的方法,尤其涉及一种基于插件的TR098协议中数据模型动态加载的方法。
背景技术
CWMP(CPE WAN Management Protocol,CPE 广域网管理协议)是由DSL(Digital Subscriber's Line,数字用户线路)论坛发起开发的技术规范之一,编号为TR-069,所以又被称为TR-069 协议。它提供了对下一代网络中家庭网络设备进行管理配置的通用框架、消息规范、管理方法和数据模型。
目前市场上对于TR069数据模型的管理方式大部分都是预先定义数据模型节点的描述文件,然后将数据模型节点描述文件编译进TR069服务进程。这种方式的实现比较简单,但如果以后需要增加新的数据模型节点,则必须重新编译整个TR098服务进程,对于网络设备来说,就可能需要升级设备的软件,这就增加了维护成本,不容易扩展。
发明内容
本发明提供一种基于插件的数据模型动态加载的方法,将数据模型的描述编译成动态库,在TR098服务进程中动态加载插件,实现了***的高度可扩展性和维护性。
为了达到上述目的,本发明提供一种基于插件的数据模型动态加载的方法,该方法包含以下步骤:
步骤S1、定义数据模型节点的描述结构;
所述的数据模型节点的描述结构包含节点路径,节点名称,节点属性,节点参数,节点的回调函数;
步骤S2、将步骤S1中的数据模型节点编译成动态库,等待加载;
步骤S3、TR098服务进程检测新插件,加载新插件;
步骤S4、外部进程对步骤S3中加载的数据节点进行添加,修改,删除,读取操作时,由TR069服务进程负责执行添加,修改,删除,读取节点实例,并调用对应的回调函数执行具体的功能。
所述的步骤S1中,所述的回调函数包含:
load Handle:当该节点插件被加载时,执行的回调函数;
unload Handle:当该节点插件卸载时候,执行的回调函数;
add Handle:添加该节点实例时,执行的回调函数;
edit Handle:编辑该节点实例时,执行的回调函数;
read Handle:读取该节点实例时,执行的回调函数;
delete Handle:删除该节点实例时,执行的回调函数。
所述的数据模型节点的参数描述数组param List包含如下参数:
参数名称;
参数属性标志;
参数类型;
参数的默认值,如果参数没有显示设置,那么参数的值为默认值。
只有数据模型被实例化时才会调用的回调函数包含以下函数:
add Handle:当节点被创建时,调用该函数,在该函数中执行初始化;
edit Handle:当节点被编辑时,调用该函数,该函数是节点功能生效的主要函数,当节点的参数值改变后会调用该函数,在该函数中根据参数值执行具体的功能;
read Handle:当节点被读取时,调用该函数来更新参数值,对于一些状态相关的节点尤其需要;
delete Handle:当一个节点被删除时,调用该函数。
本发明将数据模型的描述和TR098服务进程分离,将数据模型的描述编译成动态库,以插件的形式存在,在TR098服务进程中动态加载插件,从而实现***的高度可扩展性和维护性。
附图说明
图1是本发明的流程图。
具体实施方式
以下根据图1具体说明本发明的较佳实施例。
如图1所示,本发明提供一种基于插件的数据模型动态加载的方法,该方法包含以下步骤:
步骤1、定义数据模型节点的参数描述数组;
所述的节点参数描述数组为param List,该数组中参数的个数为param Num;
所述的数据模型节点的参数描述数组包含如下参数:
name:参数名称;
flag:参数属性标志;
type:参数类型;
default Vaule:参数的默认值,如果参数没有显示设置,那么参数的值为默认值;
步骤2、编写节点的回调函数;
插件被加载后,并不会调用步骤2中编写的回调函数,只有数据模型被实例化时才会调用步骤2中的回调函数;
所述的回调函数包含以下函数:
add Handle:当节点被创建时,调用该函数,在该函数中执行初始化;
edit Handle:当节点被编辑时,调用该函数,该函数是节点功能生效的主要函数,当节点的参数值改变后会调用该函数,在该函数中根据参数值执行具体的功能;
read Handle:当节点被读取时,调用该函数来更新参数值,对于一些状态相关的节点尤其需要;
delete Handle:当一个节点被删除时,调用该函数;
步骤3、定义数据模型节点的描述结构;
所述的数据模型节点的描述结构包含节点路径,节点名称,节点属性,节点参数,节点的回调函数,具体如下:
path:描述了节点的路径;
name:描述了节点的名称;
flag:描述了节点的属性,例如读写属性等;
param List:即为步骤1中定义的节点参数描述数组;
param Num:是步骤1中节点参数的个数;
load Handle:当该节点插件被加载时,执行的回调函数;
unload Handle:当该节点插件卸载时候,执行的回调函数;
add Handle:添加该节点实例时,执行的回调函数,即步骤2中对应的回调函数;
edit Handle:编辑该节点实例时,执行的回调函数,即步骤2中对应的回调函数;
read Handle:读取该节点实例时,执行的回调函数,即步骤2中对应的回调函数;
delete Handle:删除该节点实例时,执行的回调函数,即步骤2中对应的回调函数;
一个文件中可以定义多个节点的描述信息,将步骤3中定义的所有节点的节点描述结构信息存放到一个数组中,名称为Object Notes Desc,该数组中的节点个数为Object Notes Num;
步骤4、将步骤3中的数据模型节点编译成动态库,等待加载;
步骤5、TR098服务进程检测新插件,加载新插件;
由于插件以动态库形式存在,可以调用相应的接口函数加载插件;
例如linux中调用dlopen函数(Linux的库函数,打开一个动态库)加载插件,然后根据返回的句柄调用dlsym函数(Linux的库函数,获取动态库中某个符号的地址)获取名称为Object Notes Desc的节点描述数组,获取该数组中描述的节点和参数信息后,便可以加载这些信息;
步骤6、外部进程对步骤5中加载的数据节点进行添加,修改,删除,读取等操作时,由TR069服务进程负责执行添加,修改,删除,读取节点等实例,并调用对应的回调函数执行具体的功能。
本发明将数据模型的描述和TR098服务进程分离,将数据模型的描述编译成动态库,以插件的形式存在,在TR098服务进程中动态加载插件,从而实现***的高度可扩展性和维护性。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (4)
1.一种基于插件的数据模型动态加载的方法,其特征在于,该方法包含以下步骤:
步骤S1、定义数据模型节点的描述结构;
所述的数据模型节点的描述结构包含节点路径、节点名称、节点属性、节点参数和节点的回调函数;
步骤S2、将步骤S1中的数据模型节点编译成动态库,等待加载;
步骤S3、TR098服务进程检测新插件,加载新插件;
步骤S4、外部进程对步骤S3中加载的数据节点进行添加,修改,删除,读取操作时,由TR069服务进程负责执行添加,修改,删除,读取节点实例,并调用对应的回调函数执行具体的功能。
2.如权利要求1所述的基于插件的数据模型动态加载的方法,其特征在于,所述的步骤S1中,所述的回调函数包含:
load Handle:当该节点插件被加载时,执行的回调函数;
unload Handle:当该节点插件卸载时候,执行的回调函数;
add Handle:添加该节点实例时,执行的回调函数;
edit Handle:编辑该节点实例时,执行的回调函数;
read Handle:读取该节点实例时,执行的回调函数;
delete Handle:删除该节点实例时,执行的回调函数。
3.如权利要求2所述的基于插件的数据模型动态加载的方法,其特征在于, 所述的数据模型节点的参数描述数组param List包含如下参数:
参数名称;
参数属性标志;
参数类型;
参数的默认值,如果参数没有显示设置,那么参数的值为默认值。
4.如权利要求2所述的基于插件的数据模型动态加载的方法,其特征在于,只有数据模型被实例化时才会调用的回调函数包含以下函数:
add Handle:当节点被创建时,调用该函数,在该函数中执行初始化;
edit Handle:当节点被编辑时,调用该函数,该函数是节点功能生效的主要函数,当节点的参数值改变后会调用该函数,在该函数中根据参数值执行具体的功能;
read Handle:当节点被读取时,调用该函数来更新参数值,对于一些状态相关的节点尤其需要;
delete Handle:当一个节点被删除时,调用该函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410063854.4A CN103761136A (zh) | 2014-02-25 | 2014-02-25 | 一种基于插件的数据模型动态加载的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410063854.4A CN103761136A (zh) | 2014-02-25 | 2014-02-25 | 一种基于插件的数据模型动态加载的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103761136A true CN103761136A (zh) | 2014-04-30 |
Family
ID=50528380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410063854.4A Pending CN103761136A (zh) | 2014-02-25 | 2014-02-25 | 一种基于插件的数据模型动态加载的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103761136A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069164A (zh) * | 2015-08-27 | 2015-11-18 | 上海斐讯数据通信技术有限公司 | 数据加载的优化方法、***及数据库和页面数据加载*** |
CN106873952A (zh) * | 2015-12-14 | 2017-06-20 | 航天信息股份有限公司 | 移动端网页开发的数据处理***和方法、及应用装置 |
CN107066295A (zh) * | 2017-03-30 | 2017-08-18 | 青岛海信电器股份有限公司 | 一种基于浏览器加载终端网络应用的插件的方法及设备 |
CN107250981A (zh) * | 2014-10-06 | 2017-10-13 | 邻客音公司 | 单页应用中的路由动态加载 |
CN107357553A (zh) * | 2017-07-11 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种数据采集管理方法及装置 |
CN109325343A (zh) * | 2018-09-17 | 2019-02-12 | 北京深思数盾科技股份有限公司 | Java程序执行方法及装置 |
CN110505117A (zh) * | 2019-08-07 | 2019-11-26 | 深圳市吉祥腾达科技有限公司 | Tr069测试方法、***及存储介质 |
CN111459489A (zh) * | 2020-02-27 | 2020-07-28 | 湖南大学 | 一种动态库自动服务化封装方法、***及应用 |
CN111552524A (zh) * | 2020-05-06 | 2020-08-18 | Oppo(重庆)智能科技有限公司 | 一种插件加载方法、装置及计算机可读存储介质 |
CN112114778A (zh) * | 2020-07-03 | 2020-12-22 | 上海金融期货信息技术有限公司 | 一种支持水平扩展的跨平台动态库算法管理*** |
CN114706918A (zh) * | 2022-06-01 | 2022-07-05 | 杭州安恒信息技术股份有限公司 | 一种多类型数据库兼容方法、装置、设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771557A (zh) * | 2008-12-15 | 2010-07-07 | 华为终端有限公司 | 管理对象实例别名的方法和设备 |
CN101800917A (zh) * | 2009-02-09 | 2010-08-11 | 华为终端有限公司 | 一种被代理设备的信息管理方法及管理装置 |
CN102201925A (zh) * | 2010-03-23 | 2011-09-28 | 华为终端有限公司 | 终端设备的管理方法和代理设备 |
US8396057B2 (en) * | 2010-12-20 | 2013-03-12 | Alcatel Lucent | Method and apparatus for traffic regulation in a communication network |
CN103136347A (zh) * | 2013-02-16 | 2013-06-05 | 上海斐讯数据通信技术有限公司 | 一种嵌入式数据库***管理方法 |
-
2014
- 2014-02-25 CN CN201410063854.4A patent/CN103761136A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771557A (zh) * | 2008-12-15 | 2010-07-07 | 华为终端有限公司 | 管理对象实例别名的方法和设备 |
CN101800917A (zh) * | 2009-02-09 | 2010-08-11 | 华为终端有限公司 | 一种被代理设备的信息管理方法及管理装置 |
CN102201925A (zh) * | 2010-03-23 | 2011-09-28 | 华为终端有限公司 | 终端设备的管理方法和代理设备 |
US8396057B2 (en) * | 2010-12-20 | 2013-03-12 | Alcatel Lucent | Method and apparatus for traffic regulation in a communication network |
CN103136347A (zh) * | 2013-02-16 | 2013-06-05 | 上海斐讯数据通信技术有限公司 | 一种嵌入式数据库***管理方法 |
Non-Patent Citations (1)
Title |
---|
庹新娟: "基于CWMP协议的设备网管***的研究与设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107250981A (zh) * | 2014-10-06 | 2017-10-13 | 邻客音公司 | 单页应用中的路由动态加载 |
CN105069164A (zh) * | 2015-08-27 | 2015-11-18 | 上海斐讯数据通信技术有限公司 | 数据加载的优化方法、***及数据库和页面数据加载*** |
CN106873952B (zh) * | 2015-12-14 | 2021-07-20 | 航天信息股份有限公司 | 移动端网页开发的数据处理***和方法、及应用装置 |
CN106873952A (zh) * | 2015-12-14 | 2017-06-20 | 航天信息股份有限公司 | 移动端网页开发的数据处理***和方法、及应用装置 |
CN107066295A (zh) * | 2017-03-30 | 2017-08-18 | 青岛海信电器股份有限公司 | 一种基于浏览器加载终端网络应用的插件的方法及设备 |
CN107066295B (zh) * | 2017-03-30 | 2021-06-04 | 海信视像科技股份有限公司 | 一种基于浏览器加载终端网络应用的插件的方法及设备 |
CN107357553A (zh) * | 2017-07-11 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种数据采集管理方法及装置 |
CN109325343A (zh) * | 2018-09-17 | 2019-02-12 | 北京深思数盾科技股份有限公司 | Java程序执行方法及装置 |
CN110505117A (zh) * | 2019-08-07 | 2019-11-26 | 深圳市吉祥腾达科技有限公司 | Tr069测试方法、***及存储介质 |
CN111459489A (zh) * | 2020-02-27 | 2020-07-28 | 湖南大学 | 一种动态库自动服务化封装方法、***及应用 |
CN111459489B (zh) * | 2020-02-27 | 2023-09-26 | 湖南大学 | 一种动态库自动服务化封装方法、***及应用 |
CN111552524A (zh) * | 2020-05-06 | 2020-08-18 | Oppo(重庆)智能科技有限公司 | 一种插件加载方法、装置及计算机可读存储介质 |
CN111552524B (zh) * | 2020-05-06 | 2023-10-13 | Oppo(重庆)智能科技有限公司 | 一种插件加载方法、装置及计算机可读存储介质 |
CN112114778A (zh) * | 2020-07-03 | 2020-12-22 | 上海金融期货信息技术有限公司 | 一种支持水平扩展的跨平台动态库算法管理*** |
CN112114778B (zh) * | 2020-07-03 | 2024-04-02 | 上海金融期货信息技术有限公司 | 一种支持水平扩展的跨平台动态库算法管理*** |
CN114706918A (zh) * | 2022-06-01 | 2022-07-05 | 杭州安恒信息技术股份有限公司 | 一种多类型数据库兼容方法、装置、设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103761136A (zh) | 一种基于插件的数据模型动态加载的方法 | |
CN104573093B (zh) | 一种管理文件目录的方法和装置 | |
JP5496113B2 (ja) | Omadmプロトコルを用いて目標を絞り込むクエリー | |
CN103051652B (zh) | 一种移动终端云计算发布平台 | |
CN109660372B (zh) | 一种sdn的业务配置的方法及装置 | |
WO2019153549A1 (zh) | Api接口动态生成方法、装置、计算机设备及存储介质 | |
WO2015035816A1 (zh) | 一种nginx服务器配置维护方法及*** | |
CN106302632A (zh) | 一种基础镜像的下载方法以及管理节点 | |
CN1980144A (zh) | 一种大数据量网管数据快速配置的方法 | |
CN110333876A (zh) | 一种数据清除方法及控制设备 | |
CN103716346A (zh) | 一种安卓手机客户端上应用的管理方法和装置 | |
CN106302103A (zh) | 一种信息处理方法及其***、应用服务器 | |
CN105426244A (zh) | 应用进程管理方法及应用进程管理装置 | |
CN110400067A (zh) | 一种通用资产管理的方法及*** | |
CN110532058B (zh) | 容器集群服务的管理方法、装置、设备及可读存储介质 | |
CN101136780A (zh) | 获取用户命令信息的方法、***及用户命令注册的装置 | |
CN102375668B (zh) | 一种移动终端的窗口管理方法和装置 | |
CN101771557A (zh) | 管理对象实例别名的方法和设备 | |
US20190332484A1 (en) | Method, device and program product for reducing data recovery time of storage system | |
CN101540996A (zh) | 设备管理的终端及其发起管理会话的方法 | |
CN102567935A (zh) | 一种实现特效版本兼容的方法和*** | |
CN102184105A (zh) | 基于组件方式的数据处理方法及数据中心*** | |
CN101159963A (zh) | 擦除终端数据的方法及终端设备 | |
CN104199741A (zh) | 一种用于云计算环境的虚拟数据管理方法 | |
CN105740009B (zh) | 版本升级方法及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20200407 |
|
AD01 | Patent right deemed abandoned |