CN101272376A - 一种消息解析方法 - Google Patents
一种消息解析方法 Download PDFInfo
- Publication number
- CN101272376A CN101272376A CNA2008100961338A CN200810096133A CN101272376A CN 101272376 A CN101272376 A CN 101272376A CN A2008100961338 A CNA2008100961338 A CN A2008100961338A CN 200810096133 A CN200810096133 A CN 200810096133A CN 101272376 A CN101272376 A CN 101272376A
- Authority
- CN
- China
- Prior art keywords
- message
- field
- descriptor
- type
- model file
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种消息解析方法,该方法设置消息模型文件,包括:获取消息模型文件中所有消息的描述信息;接收到消息后,查找所接收消息的描述信息,并根据所述描述信息解析所述消息。采用本发明提出的消息解析方法,由于所有消息的描述信息均以固定的数据结构进行描述,所以,编程人员不用针对每种消息结构编写消息解析代码,并且,增加或改变消息时,编程人员只需要对消息模型文件进行相应修改,所以,提高了消息代码和接口的可扩展性,并减小了编程人员的工作量,节约了系统资源。
Description
技术领域
本发明涉及电信网络消息交互技术,具体涉及一种消息解析方法。
背景技术
电信网络是由各种电信设备即网元组成的典型异质网络,为了保证电信网络的正常运行,组成电信网络的网元之间、电信网络管理系统与网元之间、以及本地维护终端和网元之间都需要通过消息交互来获取足够的信息资源。目前,为了实现网元之间、电信网络管理系统与网元之间、以及本地维护终端和网元之间的消息交互,在电信网络管理系统程序中针对不同的消息定义不同的数据结构,例如,可以定义一条消息的数据结构为:
struct tagMessage1
{
WORD wField1;
DOWORD dwField2;
BYTE byField3;
}
也可以定义另外一条消息的数据结构为:
struct tagMessage2
{
WORD wField4;
BYTE byField5;
}
其中,wField1、dwField2、byField3、wField4及byField5为消息中的字段。
网元/电信网络管理系统/本地维护终端收到消息后,首先把消息的具体内容拷贝到对应的数据结构中,然后通过处理包含消息具体内容的数据结构来逐个解析消息中的字段。
随着电信事业的飞速发展,网络规模不断扩大,网络功能不断增多,网元之间、电信网络管理系统与网元之间、以及本地维护终端和网元之间交互所需的消息也不断增多,而现有的消息解析方法中,由于消息的格式多种多样,且对应着不同的接口和数据结构,因此,消息代码和接口的扩展性较差,每次修改消息接口,都需要大规模地重新编写或者修改电信网络管理系统的程序代码,极大地增大了编程人员的工作量。
发明内容
有鉴于此,本发明的主要目的在于提供一种消息解析方法,能够提高消息代码和接口的可扩展性,并且在增加消息时,减小编程人员的工作量,节约系统资源。
为达到上述目的,本发明的技术方案是这样实现的:
一种消息解析方法,设置消息模型文件,该方法包括:
a、获取消息模型文件中所有消息的描述信息;
b、接收到消息后,在步骤a所述所有消息的描述信息中查找所接收消息的描述信息,根据所述描述信息解析所述消息。
所述消息模型文件包括:网元测量数据节点、消息节点和字段节点,其中,网元测量数据节点表示测量任务类型;消息节点进一步包括消息ID和消息类型;字段节点进一步包括:字段类型、字段在消息中的具体位置、字段的数据类型、字段的最大值和最小值。
步骤a所获取的描述信息按照固定的数据结构进行描述,并以消息ID为索引,所述数据结构包括:字段索引、字段类型、数据类型、字段最小值、字段最大值和字段子节点的个数。
步骤b所述接收到的消息至少携带有消息ID。
步骤b所述查找所接收消息的描述信息,具体为:根据所述消息携带的消息ID确定所述消息的描述信息。
步骤c所述解析消息为:
c1、判断字段索引中的第一个字段是否需要解析,若需要,根据步骤b获取的描述信息,解析所述字段后执行步骤c2;否则,执行步骤c3;
c2、判断是否遍历字段索引中的所有字段,如果是,结束当前处理;否则,执行步骤c3;
c3、判断下一个字段是否需要解析,如果是,根据步骤b获取的描述信息,解析所述字段后,返回步骤c2;否则,直接返回步骤c2。
步骤b接收到消息后,进一步包括:判断所述收到的消息是否合法,不合法时结束当前处理。
本发明提出的消息解析方法,设置消息模型文件,电信网络管理系统程序启动后,通过加载消息模型文件获取所有消息的描述信息,消息接收端收到消息后,通过查询所述消息对应的描述信息,对消息进行解析。由于所有消息的描述信息均以固定的数据结构进行描述,所以,编程人员不用针对每种数据结构编写消息解析代码,并且,电信网络管理系统程序每次启动后,都会重新加载消息模型文件,所以,增加消息时,编程人员只需要对消息模型文件进行相应修改。本发明提出的消息解析方法提高了消息代码和接口的可扩展性,并减小了编程人员的工作量,节约了系统资源。
附图说明
图1为本发明消息解析方法流程图。
具体实施方式
本发明的基本思想是:设置消息模型文件,电信网络管理系统程序启动后,通过加载消息模型文件获取所有消息的描述信息,消息接收端收到消息后,通过查询所述消息对应的描述信息,对消息进行解析。下面结合具体实施例及附图对本发明作进一步详细说明。
性能测量是电信网络管理系统的主要组成部分之一,其主要用于根据网元对象支持的测量类型提供能反映网元性能指标的实时监控和性能数据报表,使维护人员能够及时掌控系统运行情况,以便及时分析并排除网元故障,从而为无线网络的运行及维护提供支持。
为了实现本发明的消息解析方法,首先需要将所有消息按照一定格式描述在一个文件中,即根据每条消息包含的具体信息,如消息ID、消息号、消息类型、消息中包括的字段信息等,来定义消息模型并记录在消息模型文件中,其中,消息中包括的字段信息进一步包括字段类型、字段索引、字段值大小范围等。
在消息模型文件中,性能测量任务的消息模型可以定义如下:
<MetaData>
<msg msgid=″″type=″″>
<field type=″″msgbodyidx=″″datatype=″″min=″″max=″″>
</field>
... ...
</msg>
... ...
</MetaData>
其中,网元测量数据节点MetaData用于区分具体的测量任务类型,如基站测量、小区测量等;msgid和type属于消息节点,msgid表示消息ID,type表示消息类型,如启动请求消息、停止请求消息、请求回应消息、停止请求回应消息和上报消息等;消息的具体内容是一个个的字段,所以,在字段节点field中,field type表示字段类型,msgbodyidx表示字段在消息中的具体位置,datatype表示字段的数据类型,min和max分别表示字段的最大值和最小值。定义消息模型时,还可以根据实际需要增加字段的附加信息,例如,增加相应的计算公式及显示格式等属性,以便对字段进行相应的后处理和显示。
图1为本发明消息解析方法流程图,如图1所示,本发明消息解析方法主要包括以下步骤:
步骤11:电信网络管理系统程序启动后,加载消息模型文件,以获取所有消息的描述信息。
针对定义的消息模型文件,系统程序加载消息模型文件时,需要按照固定的数据结构对消息模型文件携带的所有消息的描述信息进行描述,并且以消息ID为索引,例如,可以定义固定的数据结构为:
struct tagFieldInfo
{
WORD wMsgIndex;
WORD wFieldType;
char chDataType;
int iMinValue;
int iMaxValue;
WORD wChildNum;
};
其中,wMsgIndex为字段索引,即表示字段在消息中的顺序;wFieldType表示字段类型;chDataType表示数据类型;iMinValue和iMaxValue分别表示字段最小值和最大值;wChildNum表示字段子节点的个数。
这里,电信网络管理系统程序加载消息模型文件后,还可以进一步根据具体的消息解析要求对消息的描述信息进行预处理,例如,计算消息的数据长度以便用于长度判断、获取某些字段的默认值以便用于界面显示等。
步骤12:消息接收端收到消息A。
这里,消息A至少需要携带消息ID。对于多个任务同时运行的情况,消息ID用于区分不同任务的不同消息。
消息类型、字段类型、字段索引、字段值最小值和字段最大值可以根据实际情况有选择性地携带。本实施例中,消息A携带消息类型、字段类型、字段索引、字段值最小值和字段最大值。
步骤13:消息接收端判断消息A是否合法,如果是,执行步骤14;否则,执行步骤19。
这里,可以通过消息号或消息类型等判断消息A是否合法。例如,利用消息号进行判断,消息接收端发送消息号为1的消息后,期望收到消息号为2的消息时,如果收到消息号为3的消息,那么,判定收到的消息不合法。利用消息类型进行判断时,如果消息类型对应的消息长度不符合消息接收端要求的消息长度,那么,判定收到的消息不合法。
步骤14:消息接收端根据消息A的消息ID,获取消息A对应的描述信息。
这里,消息接收端根据消息A携带的消息ID,查找步骤11所述所有消息的描述信息,从而获取消息A对应的描述信息。
步骤15:消息接收端判断字段索引中的第一个字段是否需要解析,如果是,执行步骤16;否则,执行步骤17。
这里,工作人员可以根据实际需要预先设置消息中需要解析的字段,以节约系统资源。
步骤16:根据步骤14获取的描述信息,解析所述字段。
这里,如果消息A的描述信息中,指示字段索引中的第一个字段长度为一个字,则系统程序按从前至后的顺序获取消息A所携带二进制码流中长度为一个字的二进制码,并放入新的缓冲区,该字段解析完成。
步骤17:判断是否遍历字段索引中的所有字段,如果是,执行步骤19,流程结束;否则,执行步骤18。
步骤18:继续判断字段索引中的下一个字段是否需要解析,如果是,返回步骤16;否则,返回步骤17。
这里,对下一个字段进行判断是通过偏移缓冲区指针及字段索引实现的。
步骤19:结束当前流程。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (7)
1、一种消息解析方法,其特征在于,设置消息模型文件,该方法包括:
a、获取消息模型文件中所有消息的描述信息;
b、接收到消息后,在步骤a所述所有消息的描述信息中查找所接收消息的描述信息,根据所述描述信息解析所述消息。
2、根据权利要求1所述的方法,其特征在于,所述消息模型文件包括:网元测量数据节点、消息节点和字段节点,其中,网元测量数据节点表示测量任务类型;消息节点进一步包括消息ID和消息类型;字段节点进一步包括:字段类型、字段在消息中的具体位置、字段的数据类型、字段的最大值和最小值。
3、根据权利要求1所述的方法,其特征在于,步骤a所获取的描述信息按照固定的数据结构进行描述,并以消息ID为索引,所述数据结构包括:字段索引、字段类型、数据类型、字段最小值、字段最大值和字段子节点的个数。
4、根据权利要求1所述的方法,其特征在于,步骤b所述接收到的消息至少携带有消息ID。
5、根据权利要求4所述的方法,其特征在于,步骤b所述查找所接收消息的描述信息,具体为:根据所述消息携带的消息ID确定所述消息的描述信息。
6、根据权利要求3所述的方法,其特征在于,步骤c所述解析消息为:
c1、判断字段索引中的第一个字段是否需要解析,若需要,根据步骤b获取的描述信息,解析所述字段后执行步骤c2;否则,执行步骤c3;
c2、判断是否遍历字段索引中的所有字段,如果是,结束当前处理;否则,执行步骤c3;
c3、判断下一个字段是否需要解析,如果是,根据步骤b获取的描述信息,解析所述字段后,返回步骤c2;否则,直接返回步骤c2。
7、根据权利要求1所述的方法,其特征在于,步骤b接收到消息后,进一步包括:判断所述收到的消息是否合法,不合法时结束当前处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100961338A CN101272376A (zh) | 2008-05-06 | 2008-05-06 | 一种消息解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100961338A CN101272376A (zh) | 2008-05-06 | 2008-05-06 | 一种消息解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101272376A true CN101272376A (zh) | 2008-09-24 |
Family
ID=40006066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100961338A Pending CN101272376A (zh) | 2008-05-06 | 2008-05-06 | 一种消息解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101272376A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049281A (zh) * | 2015-06-25 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种报文解析方法和设备 |
WO2016197924A1 (zh) * | 2015-12-29 | 2016-12-15 | 中兴通讯股份有限公司 | 数据预处理方法及装置 |
-
2008
- 2008-05-06 CN CNA2008100961338A patent/CN101272376A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049281A (zh) * | 2015-06-25 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种报文解析方法和设备 |
WO2016197924A1 (zh) * | 2015-12-29 | 2016-12-15 | 中兴通讯股份有限公司 | 数据预处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN108280022B (zh) | 性能监测方法及装置 | |
US9720687B2 (en) | Validating and maintaining respective validation status of software applications and manufacturing systems and processes | |
CN102711139B (zh) | 一种数据流量统计方法及终端 | |
CN104219316A (zh) | 一种分布式系统中的调用请求处理方法及装置 | |
CN110831038B (zh) | 网络切片资源调度方法及装置 | |
JP2008140162A (ja) | デバッグ情報収集方法 | |
CN104536819A (zh) | 基于web服务的任务调度方法 | |
CN103077059A (zh) | 判断应用程序是否匹配的方法 | |
CN101246444B (zh) | 一种模块测试方法及系统 | |
CN104462943A (zh) | 业务系统中非侵入式性能监控装置和方法 | |
CN104731062A (zh) | 一种用于仪表状态监控及调度的智能网络管理系统及方法 | |
CN112269746A (zh) | 自动化测试方法及相关设备 | |
CN109634569B (zh) | 基于注解的流程实现方法、装置、设备及可读存储介质 | |
CN101272376A (zh) | 一种消息解析方法 | |
CN103279816A (zh) | 基于活动窗口统计终端工作效率的方法和系统 | |
CN114980064B (zh) | 信息关联方法、装置、电子设备及存储介质 | |
CN100403724C (zh) | 一种后台进行正反向解析报文的方法和系统 | |
CN106817383B (zh) | 一种基于数据统计上报的访问周期管理方法及装置 | |
CN110297639B (zh) | 用于检测代码的方法和装置 | |
CN103678072A (zh) | 一种系统测试的方法和装置 | |
CN110908763A (zh) | 一种验收方法、装置、设备和存储介质 | |
CN101964922B (zh) | 异常情况捕捉方法及装置 | |
CN111488625A (zh) | 数据处理的方法及装置 | |
CN111026466A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20080924 |