一种直放站监控中心和直放站监控方法
技术领域
本发明涉及直放站监控技术,更具体地说,涉及一种直放站监控中心和直放站监控方法。
背景技术
商用移动通信网络使用大量直放站来提高其信号覆盖范围。
直放站属于无人值守设备,由运营商的监控中心进行统一的监控。在具体实现过程中,监控中心或直放站将监控命令或直放站运行参数值封装在监控数据包中在直放站和监控中心之间传送。由于用量较大,所以即使在同一运营商内部,其直放站也往往由多家制造商来提供。由于历史的原因,各制造商的监控协议彼此之间互不兼容,这就给使用同一监控网络监控所有直放站造成了困难。
在移动通信商用初期,每种监控协议都配置有对应的封装工具。然而,受当时开发工具的限制,封装工具的开发难度大、上手速度慢,且得到的封装工具执行速度慢,结构性差,修改更新过程中需对原有开发工具进行多处修改。同时,由于监控协议数量较多,因此修改更新的工作量较大。针对这一缺陷,技术人员开发出了一种模板协议封装方法来对监控数据进行封装。由于监控内容大体相同,因此监控协议彼此之间的区别不会很大。因此,模板协议封装法首先对协议进行分类,从各个协议中提取相同的部分构成封装模板,而使用参数来定义不同的部分。在增加新协议时,首先查找与该协议结构类似的封装模板,然后采用参数来定义协议中不同的部分。然而,这种方法仍然存在开发难度大、结构性较差的缺陷,因此开发周期长、修改更新过程中仍然需对原有封装工具进行多处修改。同时,模板的开发客观上需要对多种协议均具有一定的了解,因此进一步增加了封装工具的开发难度。
因此,需要一种直放站监控数据封装方案,能够解决现有技术存在的上述缺陷。
发明内容
本发明要解决的技术问题在于,针对现有监控数据封装方案开发难度大,结构较差以至修改更新过程需对原有封装工具进行多处修改的缺陷,提供一种直放站监控中心和直放站监控方法。
本发明解决其技术问题所采用的技术方案是:
一种直放站监控中心,用于接收监控命令,向目标直放站发出包含该监控命令的监控数据包;接收源直放站发出的包含直放站运行参数值的监控数据包,提取该直放站运行参数值,包括:
存储模块,用于存储至少一个封装脚本,每一封装脚本与一监控协议相对应;
封装模块,用于:
接收监控命令,确定其目标直放站和该直放站使用的监控协议;
调用并执行该监控协议对应的封装脚本来封装该监控命令,生成并发出监控数据包;
解封装模块,用于:
接收监控数据包,确定其源直放站和该直放站使用的监控协议;
调用并执行该监控协议对应的封装脚本来解封装该监控数据包,得到直放站运行参数值。
在本发明所述的直放站监控中心中,所述监控命令包含目标直放站类型、直放站标识、命令类型和命令参数。
在本发明所述的直放站监控中心中,所述封装模块内存储有监控协议对应表,其中定义有直放站类型、监控协议和封装脚本之间的对应关系。
在本发明所述的直放站监控中心中,所述封装脚本包括参数定义部分,其中定义有该封装脚本适用直放站的类型及其封装值,和该封装脚本可封装命令的类型及其封装值。
在本发明所述的直放站监控中心中,所述封装脚本包括封装逻辑部分,其进一步包括直放站类型赋值操作、直放站标识赋值操作、命令类型判定和赋值操作;封装逻辑部分还定义有命令参数及其封装值,并包括命令参数赋值操作。
本发明还提供了一种直放站监控方法,包括:
接收监控命令,向目标直放站发出包含该监控命令的监控数据包的步骤;
接收源直放站发出的包含直放站运行参数值的监控数据包,提取该直放站运行参数值的步骤;其特征在于,
接收监控命令,向目标直放站发出包含该监控命令的监控数据包的步骤进一步包括:
S1、接收监控命令,确定其目标直放站和该直放站使用的监控协议;
S2、调用并执行该监控协议对应的封装脚本来封装该监控命令,生成并发出监控数据包;
接收源直放站发出的包含直放站运行参数值的监控数据包,提取该直放站运行参数值的步骤进一步包括:
S3、接收监控数据包,确定其源直放站和该直放站使用的监控协议;
S4、调用并执行该监控协议对应的封装脚本来解封装该监控数据包,得到直放站运行参数值。
在本发明所述的直放站监控方法中,所述监控命令包含目标直放站类型、直放站标识、命令类型和命令参数。
在本发明所述的直放站监控方法中,在所述步骤S1中,依据监控命令中的直放站标识来确定该监控命令的目标直放站,并依据监控命令中的直放站类型查找监控协议对应表来确定目标直放站所使用的监控协议;其中,监控协议对应表中定义有直放站类型、监控协议和封装脚本之间的对应关系。
在本发明所述的直放站监控方法中,所述封装脚本包括参数定义部分,其中定义有该封装脚本适用直放站的类型及其封装值,和该封装脚本可封装命令的类型及其封装值。
在本发明所述的直放站监控方法中,所述封装脚本包括封装逻辑部分,其进一步包括直放站类型赋值操作、直放站标识赋值操作、命令类型判定和赋值操作;封装逻辑部分还定义有命令参数及其封装值,并包括命令参数赋值操作。
实施本发明的技术方案,具有以下有益效果:本发明基于类似java语言的开发工具来开发封装脚本,开发难度低,上手速度快,且封装脚本采用模块化结构和件化设计,易于修改更新。同时,由于采用协议描述脚本描述协议的结构和处理逻辑,可快速完成协议的定义。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是依据本发明一较佳实施例的直放站监控中心应用环境的示意图;
图2A是依据本发明一较佳实施例的直放站监控中心的结构示意图;
图2B是依据本发明一较佳实施例的封装脚本的逻辑结构示意图;
图3是依据本发明一较佳实施例的直放站监控命令发送方法的流程图;
图4是依据本发明一较佳实施例的直放站直放站运行参数值接收方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是依据本发明一较佳实施例的直放站监控中心应用环境100的示意图。如图1所示,在直放站监控中心的应用环境100中,包括有直放站监控中心102和多个直放站104~108。直放站监控中心102和多个直放站104~108之间通过例如但不限于短消息的方式彼此通信连接。
多个直放站104~108分别由不同的制造商制造,因此使用不同的监控协议与直放站监控中心102通信。在需要向直放站发送监控命令时,直放站监控中心102需要根据监控命令所指向的直放站(目标直放站)所使用的监控协议来对监控命令进行封装,生成监控数据包,然后发往对应的直放站。在收到来自直放站(源)的监控数据包时,直放站监控中心102需要根据发出该监控数据包的直放站所使用的监控协议来对监控数据包进行解封装,这样才能得到监控数据包中包含的直放站运行参数值。本发明对直放站监控中心102做了改进,使其能够通过执行一种便于执行、易于更新的封装脚本来生成监控数据包和对收到的监控数据包进行解封装。下面就结合图2A对本发明直放站监控中心的结构进行描述。
图2A是依据本发明一较佳实施例的直放站监控中心200的结构示意图。如图2A所示,直放站监控中心200包括封装模块202、存储模块204和解封装模块206。
封装模块202用于接收待发送的监控命令208,随后确定目标直放站。监控命令中一般包含例如但不限于目标直放站类型、直放站标识、命令类型和命令参数等信息。封装模块202可依据监控命令中的直放站标识来确定该监控命令的目标直放站,并依据监控命令中的直放站类型来确定目标直放站所使用的监控协议。如上文所述,由于监控站往往由多家制造商提供,因此各个监控站所使用的监控协议彼此各不相同。因此,在收到待发送监控命令后需要确定目标直放站使用的监控协议。在具体实现过程中,封装模块202内存储有监控协议对应表,该表可采用如下结构:
表1
如表1所示,其中定义有直放站类型、监控协议和封装脚本之间的对应关系。依照监控协议对照表,封装模块202可直接确定目标直放站对应的封装脚本,因此接下来便可从存储模块204中读取并执行该封装脚本210,来对监控命令208进行封装,生成监控数据包212,发往目标直放站。
存储模块204中存储有多个(至少一个)封装脚本210,如封装脚本1~n。每一封装脚本210中定义有该监控协议对应的监控命令的具体封装方法。封装脚本210由协议描述语言编写而成,协议描述语言是一种类Java的领域脚本语言,它支持基本数据类型、循环语句、分支语句等语言元素,同时定义了描述协议用到的特殊语法、关键字及内置函数。具有开发难度低,容易上手的优点。采用这种脚本语言,在10个工作日内就可完成140多种机型的封装脚本的开发。这与采用模板方法时每种机型平均需要2个工作日的工作量相比(140种机型需要140×2=280个工作日),是一种质的飞跃。封装脚本210以脚本的形式存储在存储模块204中,因此可由封装模块202直接执行。有关封装脚本的内容将在下文结合图2B进行详细描述。
解封装模块206用于接收来自直放站的监控数据包212,在存储模块204中查找该直放站对应的监控协议,读取并执行该监控协议对应的封装脚本来对该监控数据包212进行解封装,得到直放站运行参数值214,其中,直放站运行参数值214中记录有该直放站当前的运行状态信息。
图2B是依据本发明一较佳实施例的封装脚本230的逻辑结构示意图。如图2B所示,封装脚本230包括参数定义部分232和封装逻辑部分234。封装脚本230的各部分按照图2B所示的顺序依次执行,完成监控命令的封装过程。
如图2所示,封装逻辑部分234包括包头赋值部分236,用于生成监控数据包的包头。监控数据包包头中可包括例如但不限于开始标志、监控协议版本、分组编号等信息,因此,包头赋值部分236的任务就是将监控数据包头中的各种信息依次写入监控数据包中。在封装监控命令的过程中,首先执行包头赋值操作236。
随后,开始执行封装脚本230的参数定义部分232。参数定义部分232包括顺序执行的直放站类型及封装值定义操作238,和监控命令类型及封装值定义操作240。直放站类型及封装值定义操作238用于定义直放站类型及其对应的封装值,因此,通过执行此操作,可得到直放站类型的封装值。监控命令类型及封装值定义部分240用于定义监控命令类型及其对应的封装值,因此,通过执行此操作,可得到监控命令类型的封装值。
随后,开始执行封装逻辑部分中的包体赋值部分。包体赋值部分包括依次执行的直放站类型赋值操作242、直放站标识赋值操作244、命令类型判定操作246、命令类型赋值操作248、命令参数及封装值定义操作250和命令参数赋值操作252。直放站类型赋值操作242用于将得到的直放站类型的封装值(通过执行直放站类型及封装值定义操作238来得到)按顺序写入封装数据包中。直放站标识赋值操作244用于将得到的直放站类型的封装值(通过执行监控命令类型及封装值定义操作240来得到)按顺序写入监控数据包中。命令类型判定操作246用于判定监控命令的类型。命令类型赋值操作248用于将判定的监控命令类型写入监控数据包中。命令参数及封装值定义操作250用于定义监控命令的参数及其对应的封装值,因此,通过执行此操作,可得到监控命令参数的封装值。命令参数赋值操作252用于将得到的监控命令参数的封装值写入监控数据包中。监控数据包尾包括例如但不限于校验和结束标志等信息。包尾赋值部分254的任务就是将监控数据包尾中的各种信息依次写入监控数据包中。
此外,封装逻辑部分还定义有数据包校验逻辑的描述,确定数据包的校验方式及方法。封装逻辑部分还定义有数据包分包逻辑的描述,即由于某些监控命令的命令参数较多,导致监控命令无法使用一个监控数据包来封装,此时封装脚本可在生成的监控数据包数据量达到预订值时,自动再次从头运行,将未封装数据封装在另一监控数据包内。
在本发明所述的直放站监控中心中,所述封装脚本包括封装逻辑部分还定义有数据包规范化部分,对接收数据包及需要发送数据包进行数据包规范化和反规范化。本发明所述的规范化是指根据协议的数据传送要求把数据包的脚本表达格式(又称内部格式)转化成协议实际传送格式,规范化的内容包括特征值插入、拆分、合并、转化等。本发明所述的反规范化是指对从直放站接收的监控数据包转化成监控中心中内部表示的数据格式,反规范化的内容包括特征值丢弃、反合并、反拆分等。
如图2B所示,由于封装脚本采用模块化设计,因此在修改更新过程中可通过增加对应的操作来增加功能,从而无需对脚本中的其他位置进行修改,更新过程易于实现。
以下是封装脚本230的一个具体实例:
本发明还提供了一种直放站监控命令发送方法和直放站直放站运行参数值接收方法,下面就结合图3图4对其进行详细描述。
图3是依据本发明一较佳实施例的直放站监控命令发送方法300的流程图。如图3所示,方法300开始于步骤302。
随后,在下一步骤304,接收上层发出的监控命令。监控命令通常通过监控应用协议(GMEDP)以数据包的形式发出,其中一般包含例如但不限于目标直放站类型、直放站标识、命令类型和命令参数等信息。
随后,在下一步骤306,依据收到的监控命令确定目标直放站和对应的监控协议。在具体实现过程中,可依据监控命令中的直放站标识来确定该监控命令的目标直放站,并依据监控命令中的直放站类型查找监控协议对应表来确定目标直放站所使用的监控协议。有关监控协议对应表的内容已在前文做了详细描述,此处不再赘述。
随后,在下一步骤308,查找并执行该监控协议对应的封装脚本,对监控命令进行封装。有关封装脚本和封装过程的具体内容已在前文做了描述,本文不再赘述。
随后,在下一步骤310,在封装完成后,得到包含监控命令的监控数据包,发往目标直放站。
最后,方法300结束于步骤312。
图4是依据本发明一较佳实施例的直放站直放站运行参数值接收方法400的流程图。如图4所示,方法400开始于步骤402。
随后,在下一步骤404,接收监控数据包。
随后,在下一步骤406,确定发出该监控数据包的源直放站和对应的监控协议。
随后,在下一步骤408,读取并执行该监控协议对应的封装脚本对监控数据包进行解封装。
随后,在下一步骤410,在解封装完毕后,得到直放站运行参数值,发往上层应用层。
最后,方法400结束于步骤412。