CN104579743B - 一种电信设备远端维护的方法和系统 - Google Patents
一种电信设备远端维护的方法和系统 Download PDFInfo
- Publication number
- CN104579743B CN104579743B CN201410723032.4A CN201410723032A CN104579743B CN 104579743 B CN104579743 B CN 104579743B CN 201410723032 A CN201410723032 A CN 201410723032A CN 104579743 B CN104579743 B CN 104579743B
- Authority
- CN
- China
- Prior art keywords
- global variable
- request
- remote maintenance
- parameter
- response
- 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.)
- Active
Links
Abstract
本发明实施例提供了一种电信设备远端维护的方法和系统,所述方法包括:接收远端维护请求;依据所述远端维护请求在所述映射关系中查找对应的全局变量;当所述远端维护请求包括全局变量的查看请求时,获取所述全局变量的参数值;返回针对所述查看请求的查看响应,所述查看响应包括所述全局变量的参数值;当所述远端维护请求包括全局变量的设置请求及特征值时,将所述特征值设置在全局变量中;返回针对所述设置请求的设置响应,所述设置响应包括表征所述特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数。本发明可以查看没有注册的全局变量,减少代码量,降低命令安全级别的控制难度,以及统一输出格式。
Description
技术领域
本发明涉及电信技术领域,特别是涉及一种电信设备远端维护的方法和一种电信设备远端维护的系统。
背景技术
随着科学技术的进步,电信设备集成化、模块化程度越来越高,功能越来越丰富,单台电信设备的容量也越来越大,电信设备的维护对提高电信网络运行效益起到了至关重要的作用。
对于电信设备的维护通常包括近端和远端之分,近端可以指维护人员能够直接操作电信设备,例如,需要复位电信设备时,维护人员可以直接在该电信设备上操控复位开关来进行维护;远端可以指维护人员不能够直接操作电信设备,只能依靠维护软件来操作电信设备。
一般情况下,近端维护需要运营商严格审查,因为近端维护的风险太大,而且设备机房中一般都会有大量的电信设备,需要比较高的安保措施。因此,对于电信设备的维护主要以远端维护为主。
目前,远端维护技术一般是在每一个单板上提供一个SHELL命令模块,该SHELL命令模块维护一张登记表,并提供一个注册接口。其它模块新增全局变量时,封装一个显示和设置的函数(这两个函数也可以合一,通过参数来区分)。显示函数功能可以是按照一定的格式将全局变量的取值打印成明文字符串,输出给远端维护程序,远端维护程序将明文字符串直接展示给维护人员;设置函数功能可以是将给定的值赋给该全局变量。模块初始化时,将函数名称进行注册登记。远端维护程序下发查看或者设置某个命令后,SHELL命令模块根据登记表找到所注册命令对应的函数入口进行调用,如果是需要显示,则将调用函数中输出的文本字符串返回给远端维护程序,如果是需要设置,则设置该全局变量后,将设置结果(成功或失败)返回给远端维护程序。
然而,目前的远端维护技术存在以下问题:
1)当需要在远端终端查看某个全局变量时,并且,该全局变量并没有注册SHELL命令的处理函数,此时,该全局变量将无法在远端终端查看,只能在近端采取一些特殊手段,一旦近端不允许操作,则也无法在近端查看。
2)当某个模块增加全局变量,并且,需要在远端终端查看时,必须增加相应注册SHELL命令的处理函数,然而,增加处理函数意味着代码量增加,代码量增加将带来一些其他的问题,比如可能会增加程序的BUG(漏洞),可能会导致编译生成的可执行文件增大等。
3)命令安全级别比较难以控制。维护人员可能共享一台对电信设备进行维护的远端终端,SHELL命令除非采取特殊手段,一般都直接暴露给所有维护人员。但是,有些SHELL命令的初衷仅仅只是研发人员或者紧急时刻使用,如果这些SHELL命令被维护人员错误使用,有可能会带来灾难性后果。
4)命令的输出格式不统一。由于每个模块的SHELL命令输出都是由负责该模块的程序员编写,每个程序员的风格都有所不同,因此输出的格式可能都不相同。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提供一种电信设备远端维护的方法和系统,用以在远端终端中查看没有注册SHELL命令的处理函数的全局变量,增加全局变量时减少代码量,降低命令安全级别的控制难度,以及统一命令的输出格式。
发明内容
本发明实施例所要解决的技术问题是提供一种电信设备远端维护的方法,用以在远端终端中查看没有注册SHELL命令的处理函数的全局变量,增加全局变量时减少代码量,降低命令安全级别的控制难度,以及统一命令的输出格式。
相应的,本发明实施例还提供了一种电信设备远端维护的系统,用以保证上述方法的实现及应用。
为了解决上述问题,本发明公开了一种电信设备远端维护的方法,所述电信设备包括主设备,所述主设备包括一个或多个SHELL命令控制模块和一个或多个业务模块,其中,所述一个或多个SHELL命令控制模块和一个或多个业务模块包括对应的一个或多个结构体,所述一个或多个结构体包括一个或多个全局变量,所述一个或多个SHELL命令控制模块包括所述结构体与所述一个或多个业务模块的映射关系,所述方法包括:
接收远端维护请求;
依据所述远端维护请求在所述映射关系中查找对应的全局变量;
当所述远端维护请求包括全局变量的查看请求时,获取所述全局变量的参数值;
返回针对所述查看请求的查看响应,所述查看响应包括所述全局变量的参数值;
当所述远端维护请求包括全局变量的设置请求及特征值时,将所述特征值设置在全局变量中;
返回针对所述设置请求的设置响应,所述设置响应包括表征所述特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数。
优选地,所述远端维护请求还包括业务模块信息、偏移信息和长度信息,所述依据所述远端维护请求在所述映射关系中查找对应的全局变量的步骤包括:
依据所述业务模块信息在所述映射关系中查找对应的结构体的起始地址;
依据所述偏移信息查找所述一个或多个全局变量在所述结构体中的起始地址;
依据所述长度信息在所述结构体中确定所述一个或多个全局变量的内存空间。
优选地,当所述远端维护请求包括全局变量的查看请求时,获取所述全局变量的参数值的步骤包括:
当所述远端维护请求包括全局变量的查看请求时,分配内存,所述内存用于返回针对所述查看请求的查看响应;
拷贝全局变量的参数值至缓冲区。
根据本发明的实施例,还公开了一种电信设备远端维护的方法,所述电信设备包括网管站,所述网管站包括描述文件,所述描述文件用于描述SHELL命令和全局变量、安全级别、特征参数的对应关系,所述方法包括:
获取输入的SHELL命令;
检验所述SHELL命令在描述文件中对应的安全级别;
当所述安全级别检验通过时,依据所述SHELL命令在所述描述文件中查找特征参数;
采用所述特征参数以及所述SHELL命令生成远端维护请求;
发送所述远端维护请求;
当所述远端维护请求包括全局变量的查看请求时,接收针对所述查看请求返回的查看响应,所述查看响应包括所述全局变量的参数值;
展示所述全局变量的参数值;
当所述远端维护请求包括全局变量的设置请求及特征值时,接收针对所述设置请求返回的设置响应,所述设置响应包括表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数;
展示所述表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数。
优选地,所述特征参数包括业务模块信息、偏移信息和长度信息。
根据本发明的实施例,还公开了一种电信设备远端维护的系统,所述电信设备包括主设备,所述主设备包括一个或多个SHELL命令控制模块和一个或多个业务模块,其中,所述一个或多个SHELL命令控制模块和一个或多个业务模块包括对应的一个或多个结构体,所述一个或多个结构体包括一个或多个全局变量,所述一个或多个SHELL命令控制模块包括所述结构体与所述一个或多个业务模块的映射关系,所述系统位于主设备侧,包括:
请求接收单元,用于接收远端维护请求;
全局变量查找单元,用于依据所述远端维护请求在所述映射关系中查找对应的全局变量;
参数值获取单元,用于在所述远端维护请求包括全局变量的查看请求时,获取所述全局变量的参数值;
查看响应返回单元,用于返回针对所述查看请求的查看响应,所述查看响应包括所述全局变量的参数值;
全局变量设置单元,用于在所述远端维护请求包括全局变量的设置请求及特征值时,将所述特征值设置在全局变量中;
设置响应返回单元,用于针对所述设置请求的设置响应,所述设置响应包括表征所述特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数。
优选地,所述远端维护请求还包括业务模块信息、偏移信息和长度信息,所述全局变量查找单元包括:
结构体查找子单元,用于依据所述业务模块信息在所述映射关系中查找对应的结构体;
起始位置查找子单元,用于依据所述偏移信息查找所述结构体的起始位置;
全局变量确定子单元,用于依据所述长度信息在所述结构体中确定全局变量。
优选地,所述参数值获取单元包括:
内存分配子单元,用于在所述远端维护请求包括全局变量的查看请求时,分配内存,所述内存用于返回针对所述查看请求的查看响应;
参数值拷贝子单元,用于拷贝全局变量的参数值至缓冲区。
根据本发明的实施例,还公开了一种电信设备远端维护的系统,所述电信设备包括网管站,所述网管站包括描述文件,所述描述文件用于描述SHELL命令和全局变量、安全级别、特征参数的对应关系,所述系统位于网管站侧,包括:
命令获取单元,用于获取输入的SHELL命令;
安全级别检验单元,用于检验所述SHELL命令在描述文件中对应的安全级别;
特征参数查找单元,用于在所述安全级别检验通过时,依据所述SHELL命令在所述描述文件中查找特征参数;
请求生成单元,用于采用所述特征参数以及所述SHELL命令生成远端维护请求;
请求发送单元,用于发送所述远端维护请求;
查看响应接收单元,用于在所述远端维护请求包括全局变量的查看请求时,接收针对所述查看请求返回的查看响应,所述查看响应包括所述全局变量的参数值;
参数值展示单元,用于展示所述全局变量的参数值;
设置响应接收单元,用于在所述远端维护请求包括全局变量的设置请求及特征值时,接收针对所述设置请求返回的设置响应,所述设置响应包括表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数;
展示单元,用于展示所述表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数。
优选地,所述特征参数包括业务模块信息、偏移信息和长度信息。
与现有技术相比,本发明实施例包括以下优点:
本发明通过将一个或多个全局变量封装在结构体中,并且,将结构体与一个或多个业务模块的映射关系写入SHELL命令控制模块中,可以在SHELL命令模块初始化时生成映射表,从而可以在接收到远端维护请求时查找对应的全局变量,由于结构体是唯一的,可以采用通用处理函数查看或设置结构体中的一个或多个全局变量,从而可以减少相应注册SHELL命令的处理函数,增加全局变量时减少代码量,映射表包括业务模块的全部全局变量而无需业务模块注册,因此,可以在远端终端中查看没有注册SHELL命令的处理函数的全局变量。
本发明通过在描述文件中设置安全级别,可以进行更为简单方便的安全级别控制,不但可以通过用户级别控制,而且可以将一些风险较高的SHELL命令隐藏起来,从而可以降低命令安全级别的控制难度,通过在描述文件中设置展示查看响应和/或设置响应的输出格式,可以统一命令的输出格式。
本发明通过在远端维护请求中包括业务模块信息、偏移信息和长度信息,可以查找出每个模块全局变量的结构体的起始地址,因此,可以采用通用处理函数查看或设置结构体中的一个或多个全局变量,从而可以进一步减少相应注册SHELL命令的处理函数,增加全局变量时减少代码量。
附图说明
图1示出了目前一种电信设备远端维护的实现方案示意图;
图2示出了本发明的一种电信设备远端维护的方法实施例1的步骤流程图;
图3示出了本发明的一种电信设备远端维护的实现方案示意图;
图4示出了本发明的一种电信设备远端维护的方法实施例2的步骤流程图;
图5示出了本发明的一种电信设备远端维护的系统实施例1的结构框图;
图6示出了本发明的一种电信设备远端维护的系统实施例2的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
大型电信设备通常都可以是由多块单板组成分布式系统,每一块单板都可以理解为一台没有显示设备的计算机,这些单板上运行功能相同或者不同的应用程序,相互协作完成整个电信设备的功能。
由于单板都没有显示设备,因此,查看单板的输出时,一般需要使用一台带有显示设备的电脑,通过telnet(远程终端协议)、ssh(Secure Shell,安全外壳协议)或者串口终端连接到单板查看输出。但是,如果使用串口连接单板,则必须用一根串口线连接单板的串口和电脑的串口,因此,必须在电信设备的跟前操作电脑,也即近端维护;如果使用telnet或者ssh等网络连接方式的话,理论上可以不在电信设备的跟前操作电脑,但是,考虑到安全等其他因素,电信设备内部的所有单板组成的是一个私有网络,而这个私有网络从外部没有办法直接访问,因此,只有通过连接设备自身私有的交换机才能连通网络,所以也必须在电信设备跟前操作电脑。
相比于近端维护,远端维护是不直接访问电信设备中除了核心控制板以外的其它单板。整个电信设备的主设备对外体现只有一个网络地址,主设备的核心控制板将外部网络和私有网络隔开,所有对于除核心控制板以外的访问都需要经过核心控制板的转发或再加工。远端维护设备的维护程序通过标准的SNMP(Simple Network Management Protocol,简单网络管理协议)或者其它自定义的协议和核心控制板进行通信,从而完成对电信设备的维护,通常这种终端称之为网管站,在其上运行的程序称之为网管软件,总称为网管系统。
参照图1,示出了目前一种电信设备远端维护的实现方案示意图。
如图1所示,目前一种电信设备远端维护的实现方案中可以包括网管站、传输网和主设备,主设备中可以包括核心控制板和多个单板,核心控制板中可以包括控制模块和SHELL命令模块,每个单板中也可以包括SHELL命令模块,SHELL命令模块可以包括一个或多个命令处理函数,SHELL命令模块初始化时,将命令处理函数的函数名称注册登记到SHELL命令模块的登记表中。远端维护程序下发查看或者设置某个命令后,SHELL命令模块根据登记表找到该命令对应的函数入口进行调用,如果是需要显示,则将调用函数中输出的文本字符串返回给网管站,如果是需要设置,则设置该全局变量后,将设置结果(成功或失败)返回给网管站。
表1给出了登记表的一种示例,为了简单起见,只列出了显示功能,并未列出使用参数进行设置的设置功能。“命令名称”该列显示给远端的维护人员,“处理函数名称”该列是程序内部实际处理的函数。
命令名称 | 处理函数名称 |
hss_online_user_count_show | hss_shellcmd_online_user_count |
hss_online_station_info_show | hss_shellcmd_online_station_info |
vlr_register_user_count_show | vlr_shellcmd_register_user_count |
vlr_signal_board_state_show | vlr_shellcmd_signal_board_state |
表1
例如,维护人员在网管软件上,选定电信设备中的一个单板,并输入“hss_online_user_count_show”这个命令,则网管软件上的网管程序将该字符串通过预先定义的协议发送到主设备的核心控制板,核心控制板转发到维护人员选定的单板上,该单板上的SHELL命令模块收到指令后,查找登记表,找到对应的处理函数“hss_shellcmd_online_user_count”,并进行调用,然后将处理函数“hss_shellcmd_online_user_count”输出的文本字符返回给远端的维护程序。
在网管站上执行SHELL命令“hss_online_user_count_show”的一种运行结果示例可以如下所示:
→hss_online_user_count_show
--------hss_online_user_count_show---------
HssOnlineUserCount=56
--------hss_online_user_count_show---------
本发明实施例的核心构思之一在于,通过网管站的描述文件构建描述SHELL命令和全局变量之间关系的关系模型,以及,在主设备中为每一个模块指定唯一一个全局变量的结构体,SHELL命令模块中维护结构体与模块映射关系的映射表,并且,SHELL命令模块采用通用处理函数处理远端维护请求。
参照图2,示出了本发明的一种电信设备远端维护的方法实施例1的步骤流程图,所述电信设备包括主设备,所述主设备包括一个或多个SHELL命令控制模块和一个或多个业务模块,其中,所述一个或多个SHELL命令控制模块和一个或多个业务模块包括对应的一个或多个结构体,所述一个或多个结构体包括一个或多个全局变量,所述一个或多个SHELL命令控制模块包括所述结构体与所述一个或多个业务模块的映射关系,具体可以包括如下步骤:
步骤201,接收远端维护请求;
在具体实现中,主设备可以接收远端维护请求。
参照图3,示出了本发明的一种电信设备远端维护的实现方案示意图。
如图3所示,本发明的一种电信设备远端维护的实现方案中可以包括网管站、传输网和主设备,主设备中可以包括核心控制板和多个单板,核心控制板中可以包括控制模块和SHELL命令模块,每个单板中也可以包括SHELL命令模块。
需要说明的是,主设备程序可以首先为每一个模块指定唯一一个全局变量,尽管每一个模块需要全局变量的个数是无法提前确定的,但是维护程序中模块的个数在设计阶段早早就确定了。具体地,每一个模块可以预先定义一个全局变量的结构体,将本模块所有零散的全局变量都封装在结构体中,结构体可以作为每一个模块指定的唯一一个全局变量。其次,SHELL命令模块维护一张映射表,该映射表可以映射每一模块和该模块上唯一全局变量的结构体,并且,SHELL命令模块可以实现一个通用处理函数,可以用于对接收的远端维护请求进行处理。
具体地,全局变量的一种封装示例可以如下所示:
假设某个单板上有两个业务模块,分别是hss模块和vlr模块。hss模块可以有两个全局变量,可以分别是:
unsigned int HssOnlineUserCount;
HSS_ONLINE_STATION_INFO_T HssOnlineStationInfo[2];
其中,HSS_ONLINE_STATION_INFO_T可以是一个结构体,结构体HSS_ONLINE_STATION_INFO_T的一种定义可以如下:
vlr模块也可以有两个全局变量,分别可以是:
unsigned int VlrRegisterUserCount;
unsigned int VlrSignalBoardState;
针对hss模块和vlr模块,可以分别将模块的全局变量封装到该模块的结构体中,每个模块定义全局变量的结构体即可,因此,每个模块就指定了唯一一个全局变量,定义全局变量的结构体可以分别如下:
hss模块的全局变量封装和定义:
typedef struct
{
unsigned int HssOnlineUserCount;
HSS_ONLINE_STATION_INFO_T HssOnlineStationInfo[2];
}HSS_GLOBAL_VAR_T;
HSS_GLOBAL_VAR_T HssGlobalVar;
其中,HSS_GLOBAL_VAR_T可以定义为hss模块的全局变量的结构体。
vlr模块的全局变量封装和定义
typedef struct
{
unsigned int VlrRegisterUserCount;
unsigned int VlrSignalBoardState;
}VLR_GLOBAL_VAR_T;
VLR_GLOBAL_VAR_T VlrGlobalVar;
其中,VLR_GLOBAL_VAR_T可以定义为vlr模块的全局变量结构体。
SHELL命令模块的功能可以包括两部分,一部分是初始化,即在SHELL命令模块中生成模块和模块唯一全局变量的结构体的映射表;一部分是命令通用处理,即对接收的远端维护请求进行处理。
SHELL命令模块初始化的一种示例可以如下:
SHELL命令模块维护一张映射表,这张映射表维护模块和该模块上唯一全局变量的结构体的映射关系。由于模块的名称和个数在维护程序设计时已经确定,并且,规定每个模块全局变量的结构体的名称定义格式都是固定的。一种全局变量的结构体的名称定义格式可以是模块的名称加固定字符串,例如:ModuleNameGlobalVar。因此,这个映射表可以直接在SHELL命令模块中生成,并不需要业务模块进行注册。一种映射表的表格可以如表2所示:
模块名称 | 全局变量地址 |
shell | &ShellGlobalVal |
hss | &HssGlobalVar |
vlr | &VlrGlobalVar |
表2
其中,表2中的“模块名称”可以是用枚举来标识一个模块,“全局变量地址”则可以对应每个模块中全局变量的结构体的起始地址。
该表格的一种C语言表示格式可以如下:
SHELL命令模块的初始化就是将所有模块全局变量的结构体进行登记,从而与模块的名称形成映射关系。一种函数实现方式可以如下:
void shell_cmd_tbl_init()
{
/*hss模块全局变量登记*/
ShellCmdTbl[0].ModuleName=hss;
ShellCmdTbl[0].GlobalVarAddr=(char*)&HssGlobalVar;
/*vlr模块全局变量登记*/
ShellCmdTbl[1].ModuleName=vlr;
ShellCmdTbl[1].GlobalVarAddr=(char*)&VlrGlobalVar;
return;
}
步骤202,依据所述远端维护请求在所述映射关系中查找对应的全局变量;当所述远端维护请求包括全局变量的查看请求时,则执行步骤203~步骤204,当所述远端维护请求包括全局变量的设置请求及特征值时,则执行步骤205~步骤206;
在实际应用中,SHELL命令模块中的通用处理函数首先可以根据远端维护请求查找对应模块全局变量的结构体的起始地址,再加上远端维护请求的消息中携带的偏移信息和长度信息就可以查找出该全局变量的结构体中对应的成员变量。
当所述远端维护请求包括全局变量的查看请求时,则执行查看全局变量的步骤,当所述远端维护请求包括全局变量的设置请求及特征值时,则执行设置全局变量的步骤。
在本发明实施例的一种优选示例中,所述远端维护请求还包括业务模块信息、偏移信息和长度信息,所述步骤202具体可以包括以下子步骤:
子步骤S11,依据所述业务模块信息在所述映射关系中查找对应的结构体的起始地址;
子步骤S12,依据所述偏移信息查找所述一个或多个全局变量在所述结构体中的起始地址;
子步骤S13,依据所述长度信息在所述结构体中确定所述一个或多个全局变量的内存空间。
作为本发明具体应用的一种示例,当所述远端维护请求包括全局变量的查看请求时,通用处理函数至少可以有四个参数,可以分别是业务模块信息(模块号)、模式信息(查看请求)、偏移信息和长度信息。
当所述远端维护请求包括全局变量的设置请求及特征值时,通用处理函数至少可以有五个参数,可以分别是业务模块信息(模块号)、模式信息(设置请求)、偏移信息、长度信息和特征值(全局变量需要设置的值)。
通用处理函数可以由SHELL命令模块实现,也就是说,每个单板上可以提供一个通用处理函数,而可以不需要每个模块都提供命令处理函数。
通用处理函数首先可以依据业务模块信息在映射表中查找对应的业务模块全局变量的结构体的起始地址,然后可以依据偏移信息查找该结构体中一个或多个全局变量的起始位置,最后可以依据长度信息在结构体中确定该一个或多个全局变量。
本发明通过在远端维护请求中包括业务模块信息、偏移信息和长度信息,可以查找出每个模块全局变量的结构体的起始地址,因此,可以采用通用处理函数查看或设置结构体中的一个或多个全局变量,从而可以进一步减少相应注册SHELL命令的处理函数,增加全局变量时减少代码量。
步骤203,获取所述全局变量的参数值;
应用于本发明实施例中,可以获取偏移信息及长度信息所指示的数据作为全局变量的参数值。
在本发明实施例的一种优选示例中,所述步骤103具体可以包括以下子步骤:
子步骤S21,当所述远端维护请求包括全局变量的查看请求时,分配内存,所述内存用于返回针对所述查看请求的查看响应;
子步骤S22,拷贝全局变量的参数值至缓冲区。
作为本发明具体应用的一种示例,当所述远端维护请求包括全局变量的查看请求时,查找到结构体的起始位置后,可以分配一块内存,用于存放发送给网管程序的字节流,可以将偏移信息及长度信息所指示的数据拷贝至缓冲区。
步骤204,返回针对所述查看请求的查看响应,所述查看响应包括所述全局变量的参数值;
在具体实现中,可以针对查看请求返回查看响应,查看响应中可以包括全局变量的参数值。
更具体地,可以调用网络传送函数,将缓冲区的内容发送给网管程序。
步骤205,将所述特征值设置在全局变量中;
在具体应用中,当所述远端维护请求包括全局变量的设置请求及特征值时,可以在偏移信息及长度信息所指示的位置中写入特征值,即可将特征值设置于全局变量中。
步骤206,返回针对所述设置请求的设置响应,所述设置响应包括表征所述特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数。
应用于本发明实施例中,可以调用网络传送函数,给网管程序返回针对设置请求的设置响应,设置响应包括表征特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数。
SHELL命令模块的一种通用处理函数的示例可以如下:
本发明可以在远端可以随时查看任一模块的全局变量取值。因为,电信设备都是常年全天候运行,不得中断或者重新启动,重新启动或者中断就意味着通信事故。主设备除非进行版本升级外(版本升级需要和运营商沟通,需提前安排在尽可能不影响业务的时间段,比如凌晨等。),基本是没有办法更改设备的运行程序。而网管程序和通信的具体业务是没有关系的,这些程序都运行的PC机上,可以随时升级、更换版本,也可以随时退出重新加载。相对于现在技术,当只能在远端进行程序分析调试时,如果某个全局变量并没有注册SHELL命令时,就没有任何办法查看,但是,采用本发明之后,即便在描述文件中没有针对某个全局变量的SHELL命令,也可以简单在描述文件中增加,然后重新加载描述文件即可。
此外,本发明还减少了主设备上的重复冗余代码。相对于现在技术,针对每一个全局变量,如果需要在远端查看的话,每一个全局变量都需要编写函数来实现。采用本发明之后,就可以无需编写这些函数,从而减少了电信设备上因为代码量增加而导致缺陷增加的风险。
本发明通过将一个或多个全局变量封装在结构体中,并且,将结构体与一个或多个业务模块的映射关系写入SHELL命令控制模块中,可以在SHELL命令模块初始化时生成映射表,从而可以在接收到远端维护请求时查找对应的全局变量,由于结构体是唯一的,可以采用通用处理函数查看或设置结构体中的一个或多个全局变量,从而可以减少相应注册SHELL命令的处理函数,增加全局变量时减少代码量,映射表包括业务模块的全部全局变量而无需业务模块注册,因此,可以在远端终端中查看没有注册SHELL命令的处理函数的全局变量。
参照图4,示出了本发明的一种电信设备远端维护的方法实施例2的步骤流程图,所述电信设备包括网管站,所述网管站包括描述文件,所述描述文件用于描述SHELL命令和全局变量、安全级别、特征参数的对应关系,具体可以包括如下步骤:
步骤401,获取输入的SHELL命令;
在具体实现中,网管站可以获取输入的SHELL命令,将描述文件加载到内存中。
需要说明的是,所述网管站可以包括描述文件,描述文件用于描述SHELL命令和全局变量、安全级别、特征参数的对应关系。
为了明晰起见,在本发明实施例中可以采用EXCEL格式对描述文件进行描述,采用EXCEL格式描述描述文件的一种示例可以如下表3所示:
表3
如表3所示,描述文件可以使用层级关系来描述结构体的嵌套关系,将结构中的简单成员变量称为叶子节点,这样就很容易的使用“树”的数据结构来对结构体进行遍历。简单成员变量的意思是该变量不再是结构体或者联合体。
该描述文件描述了一个数据结构,各列的含义可以如下:
模块名称:可以是主设备中各模块的名称(实际的维护程序中会用枚举值来表示),模块名称需要维护程序采用模块号的方式发送给主设备的SHELL命令模块,主设备的SHELL命令模块可以根据该模块号唯一的找到该模块所对应的全局变量。
结构体成员描述:该列可以描述每个模块的全局变量的结构体成员,使用层级结构来表示结构体。需要注意的是,在该列中,对数组的描述,维护程序加载描述文件时应该进行特殊标记。
数据类型描述:可以用于维护人员使用,得到数据类型,就可以知道该数据类型的字节长度等,维护程序可以不需要使用该列。
所占内存大小:该列可以表示结构体成员的所占用的内存长度,内存的长度信息需要维护程序发送给主设备的SHELL命令模块,SHELL命令模块根据这个长度信息来确定需要给维护程序返回的字节数。
偏移:该列表示结构体成员相对结构体起始位置的偏移信息,偏移信息需要维护程序发送给主设备的SHELL命令模块,SHELL命令模块根据偏移位置来确定从某个模块的全局变量结构体的那个位置开始获取需要返回给维护程序的内容。
显示方式:可以是维护程序用于显示输出使用,可以有两种显示方式,一种是ASCII字符方式,一种是码流显示。例如,对于名称一类的字段,就需要显示其对应的ASCII字符。
SHELL命令:该列可以是需要显示给维护人员的SHELL命令,当维护人员在维护终端上输入该SHELL命令时,主设备将返回对应的全局变量的值。
支持操作:该列可以表示该SHELL命令是否支持设置操作。符号“√”可以表示支持,符号“×”可以表示不支持。
安全级别:该列可以表示执行该命令需要对应的安全级别,如果该命令还可以支持设置操作,可以使用符号“|”分别表示两种操作所需要的安全级别。在本发明实施例中,示出了“超级(super)”和“普通(general)”两种级别。
存在单板:该列可以表示该SHELL命令所存在的单板,因为不同的单板上运行的程序可能不同。在本发明实施例中,all可以表示存在于所有单板,如果存在于可数的多个单板时,使用符号“|”将所有单板类型分隔开。
需要说明的是,在所有列中,符号“/”可以表示不适用。
本发明通过将部分需要在主设备上的实现的工作通过一种抽象的描述文件转移到远端的维护程序上来实现,从而使得程序分析人员在远端可以看到或者设置所有的全局变量的取值,并且使得主设备上的编程人员无需再为设备运行中查看或者修改全局变量的需要而反复编写结构类似的代码。本发明还可以用于电信网络设备中的接入网、核心网等的程序调试和维护。
步骤402,检验所述SHELL命令在描述文件中对应的安全级别;当所述安全级别检验通过时,执行步骤403;
在实际应用中,安全校验可以是判断当前维护人员是否有权限执行该条SHELL命令,可以根据描述文件中的SHELL命令的关键字和其对应的安全级别来校验。
步骤403,依据所述SHELL命令在所述描述文件中查找特征参数;
在具体实现中,可以根据输入的SHELL命令,在描述文件中查找对应的特征参数。
在本发明实施例的一种优选示例中,所述特征参数包括业务模块信息、偏移信息和长度信息。
特征参数可以包括模式信息(查看请求或者设置请求)、业务模块信息、长度信息及偏移信息,如果是设置请求,还需要特征值(全局变量需要设置的值),特征值可以由维护人员输入。
步骤404,采用所述特征参数以及所述SHELL命令生成远端维护请求;
应用于本发明实施例中,将特征参数以及SHELL命令组织成预定格式,生成远端维护请求。
步骤405,发送所述远端维护请求;当所述远端维护请求包括全局变量的查看请求时,执行步骤406~步骤407;当所述远端维护请求包括全局变量的设置请求及特征值时,执行步骤408~步骤409;
在具体应用中,生成的远端维护请求可以发送给主设备的SHELL命令模块。
当所述远端维护请求包括全局变量的查看请求时,执行步骤406~步骤407;当所述远端维护请求包括全局变量的设置请求及特征值时,执行步骤408~步骤409。
需要说明的是,发送远端维护请求需要区分是查看请求还是设置请求,另外可能还需要给维护人员显示本板的所有SHELL命令。因为查看操作一般没有风险,因此,可以默认的操作都是查看操作,维护人员在维护程序界面上输入SHEL命令即可。但是,设置操作属于高危操作,修改运行程序中的全局变量是一种迫不得已的手段,因此,设置操作并不对外暴露。在本发明实施例中,可以定义维护人员如果以符号“@@”开始输入SHELL命令,即可以判定为进行设置操作。另外,维护程序可以提供一个“list”操作,当维护人员在维护程序给定单板界面上输入“list”后,维护程序可以从描述文件中查找出该单板上所有的SHELL命令,并且,显示出来。
步骤406,接收针对所述查看请求返回的查看响应,所述查看响应包括所述全局变量的参数值;
在实际应用中,当所述远端维护请求包括全局变量的查看请求时,网管站可以接收针对查看请求返回的查看响应,查看响应可以包括全局变量的参数值;
步骤407,展示所述全局变量的参数值;
作为本发明实施例具体应用的一种示例,可以根据描述文件中数据结构的描述格式以及显示方式,以一种预先设定的方式展示全局变量的参数值给维护人员。
具体地,网管站接收到主设备返回查看响应的字节码流后,在描述文件中找到该条SHELL命令对应的成员,如果成员已经是叶子节点,则直接取成员名称,并且根据该成员的长度,在返回字节码流中截取对应的值,显示成诸如“成员名称=value”。如果该成员是结构体,则需要进行类似递归的遍历,将所有的叶子节点搜索并显示出来。如果某个成员是数组形式,则需要进行特殊处理,需要标记,方便循环处理。
步骤408,接收针对所述设置请求返回的设置响应,所述设置响应包括表征所述特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数;
当所述远端维护请求包括全局变量的设置请求及特征值时,网管站可以接收针对设置请求返回的设置响应,设置响应可以包括表征特征值在全局变量中设置成功的第一参数,或者,表征特征值在全局变量中设置失败的第二参数。
步骤409,展示所述表征所述特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数。
作为本发明实施例具体应用的一种示例,对于展示设置响应中第一参数,或者,第二参数,可以根据主设备返回的公共代码或者失败代码,简单显示为“ok或者error”。
本发明可以明确控制安全级别。通过描述文件的设置,可以进行更为简单方便的安全级别控制,不但可以通过用户级别控制,而且可以将一些风险较高的SHELL命令隐藏起来(不填写对应的SHELL命令,需要使用的时候再临时填写)。
此外,本发明可以统一输出格式。尽管SHELL命令的输出大多只是给研发等专业维护人员查看,输出格式并不是特别重要,但是由于每个模块的编写人员可能都不同,因此输出格式可能各式各样,很不美观。更为重要的是,SHELL命令的输出,在某种场景下,可以通过一些自动文本工具进行分析,从而分析出设备可能潜在的问题。因此,如果有统一的输出格式,那么进行文本分析的编码将会简单很多。
本发明通过在描述文件中设置安全级别,可以进行更为简单方便的安全级别控制,不但可以通过用户级别控制,而且可以将一些风险较高的SHELL命令隐藏起来,从而可以降低命令安全级别的控制难度,通过在描述文件中设置展示查看响应和/或设置响应的输出格式,可以统一命令的输出格式。
为使本领域技术人员更好的理解本发明,以下通过查看请求、设置请求的具体应用示例,进一步说明本发明实施例。
示例一:查看请求具体应用示例
假设维护人员在网管程序的人机界面上选定了hss单板,并且输入了如下SHELL命令:
hss_online_station_info_show
于是,具体处理步骤可以如下:
第一步:网管程序根据SHELL命令关键字在描述文件中查找获取该条命令的相关属性。
第二步:进行安全级别校验,发现该条SHELL命令对应的安全级别是普通,则继续执行。
第三步:取出该条SHELL命令所在的模块名称,和命令一块组成类似如下消息格式的查看请求发送给主设备。
请求序号+模式信息(get(查看)/set(设置),get、set分别对应了主设备处理程序中的模式1和模式2)+业务模块信息+命令字符串+偏移信息+长度信息;
请求序号可以用于防止通信中收到重复应答。针对上述SHELL命令“hss_online_station_info_show”,参照表3,可以组成如下一种格式一串消息:
请求序号+get+hss+hss_online_station_info_show+4+152
第四步:主设备的hss单板的SHELL命令模块收到该条请求消息后,进入shell_cmd_proc函数处理。具体处理过程参见方法实施例1。返回查看响应的一种格式码流可以如下:
响应序号+操作模式(get)+模块名称+码流长度+码流内容
针对上述SHELL命令“hss_online_station_info_show”,可以返回如下一种格式一串消息:
响应序号+get+hss+hss_online_station_info_show+152+码流内容;
第五步:网管程序收到主设备返回的响应消息后,找到该条命令对应的成员HssOnlineStationInfo[2],发现该成员不但是个数组,而且还是结构体,则首先进行一个两次的循环,循环里边再遍历结构体的成员。当遍历到第一个成员StationName[64]时发现该成员是个数组,但该成员已经是叶子结点,则从码流内容中取出64个字节的内容以ASCII形式显示(显示方式确定),依次类推将所有的两个结构体的所有成员全部显示完成。
最终在维护程序的人机界面上呈现给维护人员的一种格式可以如下:
hss_online_station_info_show
--------hss_online_station_info_show---------
HssOnlineStationInfo[0].StationName[64]=DtStation1
HssOnlineStationInfo[0].StationId=1
HssOnlineStationInfo[0].StationBand=200
HssOnlineStationInfo[0].StationServiceState=1
-------------------------------------------------------
HssOnlineStationInfo[1].StationName[64]=DtStation2
HssOnlineStationInfo[1].StationId=2
HssOnlineStationInfo[1].StationBand=200
HssOnlineStationInfo[1].StationServiceState=2
--------hss_online_station_info_show---------
示例二:设置请求具体应用示例
假设维护人员需要手动设置vlr单板状态为“15”,在网管程序的人机界面上选定了vlr单板,并且,输入了如下命令:
@@vlr_signal_board_state_show 00 00 00 0F
根据表3可知,vlr_signal_board_state_show命令对应的一个4个字节的变量VlrSignalBoardState,为了处理简单起见,约定输入的时候,必须以字节为单位,并且是16进制(当然也可以做其他约定,那么,维护程序就要做一些预处理)。
于是具体处理步骤如下:
第1步:网管程序根据命令关键字在描述文件中查找获取该条命令的相关属性。
第2步:由于该条SHELL命令是以“@@”特殊字符开始,则需要校验该条命令是否支持set操作。如果支持,则进行安全级别校验。由于该条命令对应的安全级别需要“super”执行,如果当前维护人员使用的不是“super”安全级别,则返回错误。否则继续执行。
第3步:取出该条SHELL命令所在的模块名称,可以和SHELL命令一起组成如下一种消息格式的设置请求发送给主设备。
请求序号+模式信息(set)+业务模块信息+命令字符串+偏移信息+长度信息+特征值内容
针对上述SHELL命令“@@vlr_signal_board_state_show 0000000F”,可以组成如下一种格式一串消息:
请求序号+set+vlr+vlr_signal_board_state_show+4+4+0000000F;
第4步:主设备的hss单板的SHELL命令模块收到该条设置请求的消息后,进入shell_cmd_proc函数处理。具体处理过程参见方法实施例1。返回的一种格式码流可以如下:
响应序号+操作模式(set)+模块名称+返回码
针对上述SHELL命令“@@vlr_signal_board_state_show 00 00 00 0F”,可以返回如下一种格式的一串消息:
响应序号+set+vlr+vlr_signal_board_state_show+返回码
第5步:网管程序收到主设备返回设置响应的消息后,根据返回码的定义直接显示,例如,返回码“0”可以代表成功,其他返回码可以代表失败。
最终在维护程序的人机界面上呈现给维护人员的一种格式可心如下:
需要注意的是,在整个方案实施的过程中,为了描述简单起见,没有进行字节序的处理,在实际的应用中,还需要考虑字节序的处理,因为往往网管程序是部署的IntelX86架构的PC机上,而主设备可能会使用多种处理器,字节序不一定会一致,因此需要进行统一处理。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明的一种电信设备远端维护的系统实施例1的结构框图,所述电信设备包括主设备,所述主设备包括一个或多个SHELL命令控制模块和一个或多个业务模块,其中,所述一个或多个SHELL命令控制模块和一个或多个业务模块包括对应的一个或多个结构体,所述一个或多个结构体包括一个或多个全局变量,所述一个或多个SHELL命令控制模块包括所述结构体与所述一个或多个业务模块的映射关系,所述系统位于主设备侧,具体可以包括如下单元:
请求接收单元501,用于接收远端维护请求;
全局变量查找单元502,用于依据所述远端维护请求在所述映射关系中查找对应的全局变量;
参数值获取单元503,用于在所述远端维护请求包括全局变量的查看请求时,获取所述全局变量的参数值;
查看响应返回单元504,用于返回针对所述查看请求的查看响应,所述查看响应包括所述全局变量的参数值;
全局变量设置单元505,用于在所述远端维护请求包括全局变量的设置请求及特征值时,将所述特征值设置在全局变量中;
设置响应返回单元506,用于针对所述设置请求的设置响应,所述设置响应包括表征所述特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数。
在本发明实施例的一种优选示例中,所述远端维护请求还包括业务模块信息、偏移信息和长度信息,所述全局变量查找单元502具体可以包括以下子单元:
结构体查找子单元,用于依据所述业务模块信息在所述映射关系中查找对应的结构体;
起始位置查找子单元,用于依据所述偏移信息查找所述结构体的起始位置;
全局变量确定子单元,用于依据所述长度信息在所述结构体中确定全局变量。
在本发明实施例的一种优选示例中,所述参数值获取单元503具体可以包括以下子单元:
内存分配子单元,用于在所述远端维护请求包括全局变量的查看请求时,分配内存,所述内存用于返回针对所述查看请求的查看响应;
参数值拷贝子单元,用于拷贝全局变量的参数值至缓冲区。
对于图5所示的系统实施例1而言,由于其与方法实施例1基本相似,所以描述的比较简单,相关之处参见方法实施例1的部分说明即可。
参照图6,示出了本发明的一种电信设备远端维护的系统实施例2的结构框图,所述电信设备包括网管站,所述网管站包括描述文件,所述描述文件用于描述SHELL命令和全局变量、安全级别、特征参数的对应关系,所述系统位于网管站侧,具体可以包括如下单元:
命令获取单元601,用于获取输入的SHELL命令;
安全级别检验单元602,用于检验所述SHELL命令在描述文件中对应的安全级别;
特征参数查找单元603,用于在所述安全级别检验通过时,依据所述SHELL命令在所述描述文件中查找特征参数;
请求生成单元604,用于采用所述特征参数以及所述SHELL命令生成远端维护请求;
请求发送单元605,用于发送所述远端维护请求;
查看响应接收单元606,用于在所述远端维护请求包括全局变量的查看请求时,接收针对所述查看请求返回的查看响应,所述查看响应包括所述全局变量的参数值;
参数值展示单元607,用于展示所述全局变量的参数值;
设置响应接收单元608,用于在所述远端维护请求包括全局变量的设置请求及特征值时,接收针对所述设置请求返回的设置响应,所述设置响应包括表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数;
展示单元609,用于展示所述表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数。
在本发明实施例的一种优选示例中,所述特征参数可以包括业务模块信息、偏移信息和长度信息。
对于图6所示的装置实施例2而言,由于其与方法实施例2基本相似,所以描述的比较简单,相关之处参见方法实施例2的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种电信设备远端维护的方法和一种电信设备远端维护的系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种电信设备远端维护的方法,其特征在于,所述电信设备包括主设备,所述主设备包括至少一个SHELL命令控制模块和至少一个业务模块,其中,所述至少一个SHELL命令控制模块和至少一个业务模块包括对应的至少一个结构体,所述至少一个结构体包括至少一个全局变量,所述至少一个SHELL命令控制模块包括所述结构体与所述至少一个业务模块的映射关系,所述方法包括:
接收远端维护请求;
依据所述远端维护请求在所述映射关系中查找对应的全局变量;
当所述远端维护请求包括全局变量的查看请求时,获取所述全局变量的参数值;
返回针对所述查看请求的查看响应,所述查看响应包括所述全局变量的参数值;
当所述远端维护请求包括全局变量的设置请求及特征值时,将所述特征值设置在全局变量中;
返回针对所述设置请求的设置响应,所述设置响应包括表征所述特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数。
2.根据权利要求1所述的方法,其特征在于,所述远端维护请求还包括业务模块信息、偏移信息和长度信息,所述依据所述远端维护请求在所述映射关系中查找对应的全局变量的步骤包括:
依据所述业务模块信息在所述映射关系中查找对应的结构体的起始地址;
依据所述偏移信息查找所述一个或多个全局变量在所述结构体中的起始地址;
依据所述长度信息在所述结构体中确定所述一个或多个全局变量的内存空间。
3.根据权利要求1或2所述的方法,其特征在于,当所述远端维护请求包括全局变量的查看请求时,获取所述全局变量的参数值的步骤包括:
当所述远端维护请求包括全局变量的查看请求时,分配内存,所述内存用于返回针对所述查看请求的查看响应;
拷贝全局变量的参数值至缓冲区。
4.一种电信设备远端维护的方法,其特征在于,所述电信设备包括网管站,所述网管站包括描述文件,所述描述文件用于描述SHELL命令和全局变量、安全级别、特征参数的对应关系,所述方法包括:
获取输入的SHELL命令;
检验所述SHELL命令在描述文件中对应的安全级别;
当所述安全级别检验通过时,依据所述SHELL命令在所述描述文件中查找特征参数;
采用所述特征参数以及所述SHELL命令生成远端维护请求;
发送所述远端维护请求;
当所述远端维护请求包括全局变量的查看请求时,接收针对所述查看请求返回的查看响应,所述查看响应包括所述全局变量的参数值;
展示所述全局变量的参数值;
当所述远端维护请求包括全局变量的设置请求及特征值时,接收针对所述设置请求返回的设置响应,所述设置响应包括表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数;
展示所述表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数。
5.根据权利要求4所述的方法,其特征在于,所述特征参数包括业务模块信息、偏移信息和长度信息。
6.一种电信设备远端维护的系统,其特征在于,所述电信设备包括主设备,所述主设备包括至少一个SHELL命令控制模块和至少一个个业务模块,其中,所述至少一个SHELL命令控制模块和至少一个业务模块包括对应的至少一个结构体,所述至少一个结构体包括至少一个全局变量,所述至少一个SHELL命令控制模块包括所述结构体与所述至少一个业务模块的映射关系,所述系统位于主设备侧,包括:
请求接收单元,用于接收远端维护请求;
全局变量查找单元,用于依据所述远端维护请求在所述映射关系中查找对应的全局变量;
参数值获取单元,用于在所述远端维护请求包括全局变量的查看请求时,获取所述全局变量的参数值;
查看响应返回单元,用于返回针对所述查看请求的查看响应,所述查看响应包括所述全局变量的参数值;
全局变量设置单元,用于在所述远端维护请求包括全局变量的设置请求及特征值时,将所述特征值设置在全局变量中;
设置响应返回单元,用于针对所述设置请求的设置响应,所述设置响应包括表征所述特征值在全局变量中设置成功的第一参数,或者,表征所述特征值在全局变量中设置失败的第二参数。
7.根据权利要求6所述的系统,其特征在于,所述远端维护请求还包括业务模块信息、偏移信息和长度信息,所述全局变量查找单元包括:
结构体查找子单元,用于依据所述业务模块信息在所述映射关系中查找对应的结构体;
起始位置查找子单元,用于依据所述偏移信息查找全局变量在结构体中的起始位置;
全局变量确定子单元,用于依据所述长度信息在所述结构体中确定全局变量。
8.根据权利要求6或7所述的系统,其特征在于,所述参数值获取单元包括:
内存分配子单元,用于在所述远端维护请求包括全局变量的查看请求时,分配内存,所述内存用于返回针对所述查看请求的查看响应;
参数值拷贝子单元,用于拷贝全局变量的参数值至缓冲区。
9.一种电信设备远端维护的系统,其特征在于,所述电信设备包括网管站,所述网管站包括描述文件,所述描述文件用于描述SHELL命令和全局变量、安全级别、特征参数的对应关系,所述系统位于网管站侧,包括:
命令获取单元,用于获取输入的SHELL命令;
安全级别检验单元,用于检验所述SHELL命令在描述文件中对应的安全级别;
特征参数查找单元,用于在所述安全级别检验通过时,依据所述SHELL命令在所述描述文件中查找特征参数;
请求生成单元,用于采用所述特征参数以及所述SHELL命令生成远端维护请求;
请求发送单元,用于发送所述远端维护请求;
查看响应接收单元,用于在所述远端维护请求包括全局变量的查看请求时,接收针对所述查看请求返回的查看响应,所述查看响应包括所述全局变量的参数值;
参数值展示单元,用于展示所述全局变量的参数值;
设置响应接收单元,用于在所述远端维护请求包括全局变量的设置请求及特征值时,接收针对所述设置请求返回的设置响应,所述设置响应包括表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数;
展示单元,用于展示所述表征所述特征值设置在全局变量中设置成功的第一参数,或者,表征所述特征值设置在全局变量中设置失败的第二参数。
10.根据权利要求9所述的系统,其特征在于,所述特征参数包括业务模块信息、偏移信息和长度信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410723032.4A CN104579743B (zh) | 2014-12-02 | 2014-12-02 | 一种电信设备远端维护的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410723032.4A CN104579743B (zh) | 2014-12-02 | 2014-12-02 | 一种电信设备远端维护的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579743A CN104579743A (zh) | 2015-04-29 |
CN104579743B true CN104579743B (zh) | 2017-12-05 |
Family
ID=53095008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410723032.4A Active CN104579743B (zh) | 2014-12-02 | 2014-12-02 | 一种电信设备远端维护的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104579743B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099746A (zh) * | 2014-05-21 | 2015-11-25 | 中兴通讯股份有限公司 | Shell执行方法及装置 |
CN112822047A (zh) * | 2021-01-04 | 2021-05-18 | 北京同有飞骥科技股份有限公司 | 一种提高snmp数据获取效率的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6243862B1 (en) * | 1998-01-23 | 2001-06-05 | Unisys Corporation | Methods and apparatus for testing components of a distributed transaction processing system |
CN101110702A (zh) * | 2007-08-14 | 2008-01-23 | 中兴通讯股份有限公司 | 一种命令行接口权限分级的方法及其系统 |
CN101136780A (zh) * | 2007-09-12 | 2008-03-05 | 华为技术有限公司 | 获取用户命令信息的方法、系统及用户命令注册的装置 |
CN101217757A (zh) * | 2007-12-26 | 2008-07-09 | 中国移动通信集团湖北有限公司 | 一种设备维护作业方法 |
-
2014
- 2014-12-02 CN CN201410723032.4A patent/CN104579743B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6243862B1 (en) * | 1998-01-23 | 2001-06-05 | Unisys Corporation | Methods and apparatus for testing components of a distributed transaction processing system |
CN101110702A (zh) * | 2007-08-14 | 2008-01-23 | 中兴通讯股份有限公司 | 一种命令行接口权限分级的方法及其系统 |
CN101136780A (zh) * | 2007-09-12 | 2008-03-05 | 华为技术有限公司 | 获取用户命令信息的方法、系统及用户命令注册的装置 |
CN101217757A (zh) * | 2007-12-26 | 2008-07-09 | 中国移动通信集团湖北有限公司 | 一种设备维护作业方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104579743A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7908594B2 (en) | External programmatic interface for IOS CLI compliant routers | |
ES2702611T3 (es) | Crear datos en un almacenamiento de datos usando una ontología dinámica | |
US10866828B2 (en) | Extending object-schema-based application programming interfaces (APIs) | |
CN107122365A (zh) | 异构数据库的访问方法及装置 | |
CN108133007A (zh) | 一种数据同步方法和系统 | |
CN107644286A (zh) | 工作流处理方法及装置 | |
CN103559189B (zh) | 基于元数据集成模型的电力仿真培训资源管理系统及方法 | |
CN109800258A (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN106484739A (zh) | 数据库的结构比较方法和装置 | |
US7953886B2 (en) | Method and system of receiving and translating CLI command data within a routing system | |
CN104579743B (zh) | 一种电信设备远端维护的方法和系统 | |
Barros et al. | Model-checking distributed components: The vercors platform | |
CN109617746B (zh) | 一种基于spcd文件的scd网络配置校验方法 | |
US8478580B1 (en) | Model driven command language translator | |
CN104391845A (zh) | 一种生成数据库脚本的方法及装置 | |
CN110266554A (zh) | 一种私有通信协议的测试方法 | |
CN111159203B (zh) | 一种数据关联分析的方法、平台、电子设备及存储介质 | |
Li et al. | Automated creation of navigable REST services based on REST chart | |
CN110019177A (zh) | 规则存储的方法和装置 | |
US20160246783A1 (en) | Systems and methods for managing data related to network elements from multiple sources | |
CN104166737B (zh) | 用于数据库名称的修改方法和装置 | |
CN113553250A (zh) | 一种代码的测试方法和装置 | |
Singal et al. | Test case selection for regression testing of applications using web services based on wsdl specification changes | |
CN110134704A (zh) | 一种基于分布式缓存的大数据集群事务实现方法 | |
US11855851B2 (en) | Lazy graph construction with compression and a hybrid graph-relational model for representing a network topology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |