CN103761136A - 一种基于插件的数据模型动态加载的方法 - Google Patents

一种基于插件的数据模型动态加载的方法 Download PDF

Info

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
function
node
call
data
plug
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
Application number
CN201410063854.4A
Other languages
English (en)
Inventor
匡昌胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201410063854.4A priority Critical patent/CN103761136A/zh
Publication of CN103761136A publication Critical patent/CN103761136A/zh
Pending legal-status Critical Current

Links

Abstract

一种基于插件的数据模型动态加载的方法,首先定义数据模型节点的描述结构,然后将数据模型节点编译成动态库,当TR098服务进程检测到新插件时,加载新插件,外部进程对步骤S3中加载的数据节点进行添加,修改,删除,读取操作时,由TR069服务进程负责执行添加,修改,删除,读取节点实例,并调用对应的回调函数执行具体的功能。本发明将数据模型的描述和TR098服务进程分离,将数据模型的描述编译成动态库,以插件的形式存在,在TR098服务进程中动态加载插件,从而实现系统的高度可扩展性和维护性。

Description

一种基于插件的数据模型动态加载的方法
技术领域
[0001] 本发明涉及一种基于插件的数据模型动态加载的方法,尤其涉及一种基于插件的TR098协议中数据模型动态加载的方法。
背景技术
[0002] CWMP (CPE WAN Management Protocol,CPE 广域网管理协议)是由 DSL (DigitalSubscriber's Line,数字用户线路)论坛发起开发的技术规范之一,编号为TR-069,所以又被称为TR-069协议。它提供了对下一代网络中家庭网络设备进行管理配置的通用框架、消息规范、管理方法和数据模型。
[0003]目前市场上对于TR069数据模型的管理方式大部分都是预先定义数据模型节点的描述文件,然后将数据模型节点描述文件编译进TR069服务进程。这种方式的实现比较简单,但如果以后需要增加新的数据模型节点,则必须重新编译整个TR098服务进程,对于网络设备来说,就可能需要升级设备的软件,这就增加了维护成本,不容易扩展。
发明内容
[0004] 本发明提供一种基于插件的数据模型动态加载的方法,将数据模型的描述编译成动态库,在TR098服务进程中动态加载插件,实现了系统的高度可扩展性和维护性。
[0005] 为了达到上述目的,本发明提供一种基于插件的数据模型动态加载的方法,该方法包含以下步骤:
步骤S1、定义数据模型节点的描述结构;
所述的数据模型节点的描述结构包含节点路径,节点名称,节点属性,节点参数,节点的回调函数;
步骤S2、将步骤SI中的数据模型节点编译成动态库,等待加载;
步骤S3、TR098服务进程检测新插件,加载新插件;
步骤S4、外部进程对步骤S3中加载的数据节点进行添加,修改,删除,读取操作时,由TR069服务进程负责执行添加,修改,删除,读取节点实例,并调用对应的回调函数执行具体的功能。
[0006] 所述的步骤SI中,所述的回调函数包含:
load Handle:当该节点插件被加载时,执行的回调函数; unload Handle:当该节点插件卸载时候,执行的回调函数; add Handle:添加该节点实例时,执行的回调函数; edit Handle:编辑该节点实例时,执行的回调函数; read Handle:读取该节点实例时,执行的回调函数; delete Handle:删除该节点实例时,执行的回调函数。
[0007] 所述的数据模型节点的参数描述数组param List包含如下参数:
参数名称; 参数属性标志;
参数类型;
参数的默认值,如果参数没有显示设置,那么参数的值为默认值。
[0008] 只有数据模型被实例化时才会调用的回调函数包含以下函数: add Handle:当节点被创建时,调用该函数,在该函数中执行初始化;
edit Handle:当节点被编辑时,调用该函数,该函数是节点功能生效的主要函数,当节点的参数值改变后会调用该函数,在该函数中根据参数值执行具体的功能;
read Handle:当节点被读取时,调用该函数来更新参数值,对于一些状态相关的节点尤其需要;
delete Handle:当一个节点被删除时,调用该函数。
[0009] 本发明将数据模型的描述和TR098服务进程分离,将数据模型的描述编译成动态库,以插件的形式存在,在TR098服务进程中动态加载插件,从而实现系统的高度可扩展性和维护性。
附图说明
[0010] 图1是本发明的流程图。
具体实施方式
[0011] 以下根据图1具体说明本发明的较佳实施例。
[0012] 如图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:即为步骤I中定义的节点参数描述数组; param Num:是步骤I中节点参数的个数; 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服务进程检测新插件,加载新插件;
由于插件以动态库形式存在,可以调用相应的接口函数加载插件;
例如Iinux中调用dlopen函数(Linux的库函数,打开一个动态库)加载插件,然后根据返回的句柄调用dlsym函数(Linux的库函数,获取动态库中某个符号的地址)获取名称为Object Notes Desc的节点描述数组,获取该数组中描述的节点和参数信息后,便可以加载这些信息;
步骤6、外部进程对步骤5中加载的数据节点进行添加,修改,删除,读取等操作时,由TR069服务进程负责执行添加,修改,删除,读取节点等实例,并调用对应的回调函数执行具体的功能。
[0013] 本发明将数据模型的描述和TR098服务进程分离,将数据模型的描述编译成动态库,以插件的形式存在,在TR098服务进程中动态加载插件,从而实现系统的高度可扩展性和维护性。
[0014] 尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

Claims (4)

1.一种基于插件的数据模型动态加载的方法,其特征在于,该方法包含以下步骤: 步骤S1、定义数据模型节点的描述结构; 所述的数据模型节点的描述结构包含节点路径、节点名称、节点属性、节点参数和节点的回调函数; 步骤S2、将步骤SI中的数据模型节点编译成动态库,等待加载; 步骤S3、TR098服务进程检测新插件,加载新插件; 步骤S4、外部进程对步骤S3中加载的数据节点进行添加,修改,删除,读取操作时,由TR069服务进程负责执行添加,修改,删除,读取节点实例,并调用对应的回调函数执行具体的功能。
2.如权利要求1所述的基于插件的数据模型动态加载的方法,其特征在于,所述的步骤SI中,所述的回调函数包含: 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:当一个节点被删除时,调用该函数。
CN201410063854.4A 2014-02-25 2014-02-25 一种基于插件的数据模型动态加载的方法 Pending CN103761136A (zh)

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 (7)

* Cited by examiner, † Cited by third party
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测试方法、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
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 上海斐讯数据通信技术有限公司 一种嵌入式数据库系统管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
庹新娟: "基于CWMP协议的设备网管系统的研究与设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107250981A (zh) * 2014-10-06 2017-10-13 邻客音公司 单页应用中的路由动态加载
CN105069164A (zh) * 2015-08-27 2015-11-18 上海斐讯数据通信技术有限公司 数据加载的优化方法、系统及数据库和页面数据加载系统
CN106873952A (zh) * 2015-12-14 2017-06-20 航天信息股份有限公司 移动端网页开发的数据处理系统和方法、及应用装置
CN106873952B (zh) * 2015-12-14 2021-07-20 航天信息股份有限公司 移动端网页开发的数据处理系统和方法、及应用装置
CN107066295B (zh) * 2017-03-30 2021-06-04 海信视像科技股份有限公司 一种基于浏览器加载终端网络应用的插件的方法及设备
CN107066295A (zh) * 2017-03-30 2017-08-18 青岛海信电器股份有限公司 一种基于浏览器加载终端网络应用的插件的方法及设备
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测试方法、系统及存储介质

Similar Documents

Publication Publication Date Title
CN103761136A (zh) 一种基于插件的数据模型动态加载的方法
ES2638873T3 (es) Consultas dirigidas usando un protocolo OMA DM
CN103051652B (zh) 一种移动终端云计算发布平台
CN104182252A (zh) 一种app版本增量更新方法
WO2015035816A1 (zh) 一种nginx服务器配置维护方法及系统
CN106302632A (zh) 一种基础镜像的下载方法以及管理节点
CN105426244A (zh) 应用进程管理方法及应用进程管理装置
CN104361098A (zh) 一种云海系统中拓扑图节点自定义的方法
CN103577522A (zh) 用于管理数据的方法及其电子装置
CN101135966A (zh) 一种基于命令行的图形界面开发方法及系统
CN105187562A (zh) 操作远程文件的系统及方法
CN101136780A (zh) 获取用户命令信息的方法、系统及用户命令注册的装置
CN106302103A (zh) 一种信息处理方法及其系统、应用服务器
CN101540996A (zh) 设备管理的终端及其发起管理会话的方法
CN104199741A (zh) 一种用于云计算环境的虚拟数据管理方法
CN105740009B (zh) 版本升级方法及终端设备
CN102184105A (zh) 基于组件方式的数据处理方法及数据中心系统
CN105760431A (zh) 一种文件块的迁移方法和装置
CN101159963A (zh) 擦除终端数据的方法及终端设备
CN101771557A (zh) 管理对象实例别名的方法和设备
CN108388622B (zh) Api接口动态生成方法、装置、计算机设备及存储介质
CN107357808B (zh) 数据管理方法、装置及设备
CN104331309A (zh) 一种配置实现数据加载项shell的管理方法及系统
CN109508100A (zh) 基于扩展剪贴板信息输入系统及方法、信息数据处理终端
CN103870477A (zh) 聚合式文件管理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20200407

AD01 Patent right deemed abandoned