EV-DO网络ISAG网关ParlayX解码模块的设计与研究

2014-03-14 04:23陈遵义曹龙汉张治中
电视技术 2014年9期
关键词:调用解码消息

陈遵义,曹龙汉,张治中,罗 鹏

(1.重庆邮电大学通信网与测试技术重点实验室,重庆400065;2.重庆通信学院控制工程重点实验室,重庆400035)

EV-DO(Evolution-Data Only/Optimization)是CDMA2000 1x网络面向数据业务的演进技术[1-6]。综合业务接入网关(Integrated Service Access Gateway,ISAG)是移动业务网络中实现业务统一接入和服务质量监控的功能实体,它为内容提供商(Content Provider,CP)和服务提供商(Service Provider,SP)提供以ParlayX2.0为基础的开放接口,采用Web Service技术进行封装。Web Service是基于可扩展标记语言(Extensible Markup Language,XML)和安全超文本传输协议(Hypertext Transfer Protocol over Secure Socket Layer,HTTPS)的一种服务,其通信协议主要为简单对象访问协议(Simple Object Access Protocol,SOAP)。SOAP协议是基于XML的开发协议,它由HTTP、远程过程调用协议(Remote Procedure Call Protocol,RPC)和XML三部分组成,使用SOAP协议可以在不同的平台和应用程序间很方便地交互数据[2]。HTTP作为底层通信协议为上层提供必要的信息,RPC远程过程调用协议维护调用途径的一致性,XML作为数据传送的格式允许服务提供者和客户端在互联网进行通信交互。EV-DO网络中,ISAG网关以ParlayX为基础规范定义了一些业务能力,如SMS(短消息)、MMS(彩信)、WAP Push(推入信息)、LCS(用户位置)、ECC(增强呼叫控制)等。由于ParlayX规范定义的一系列业务能力都是基于SOAP协议以及XML作为数据传送格式,本文以Short Messaging(SMS)[3]为例,介绍解码模块的设计与实现过程。

1 ParlayX解码模块设计与实现

ISAG网关为SP/CP的SMS业务提供了3个接口,分别为 SendSmsService,SMSNotificationService和 ReceiveSmsService,每一个接口提供不同的操作。SendSmsService接口提供了SendSMS和GetSmsDeliveryS-tatus两个操作,SendSMS是SP下发短信给终端用户,方向为SP到ISAG,GetSmsDeliveryStatus功能为在产品对于SMS的状态报告签约方式是GET方式时,SP通过此方法得到SMS的发送状态,方向为SP到ISAG。SMSNotificationService接口提供了NotifySmsReception和NotifySms-DeliveryReceipt两个操作,NotifySmsReception 操作的功能是ISAG上报短消息给SP,NotifySmsDeliveryReceipt提供ISAG上报短消息状态给SP功能操作。ReceiveSmsService接口只提供了一个操作GetReceivedSms,功能为SP在SMS消息通知的类型为Get方式时通过此方法获取SMS,方向为SP到ISAG。

1.1 ParlayX消息格式

ParlayX消息是基于SOAP协议,其消息格式如图1所示。

图1 ParlayX消息格式

ParlayX消息格式包括HTTP协议头和SOAP信封。HTTP协议头主要包括请求方法、请求URI、内容类型、用户代理、主机等重要字段信息。基于HTTP丰富的特征库优势以及SOAP样式的灵活性等特征,SOAP使用HTTP作为底层通信协议可以灵活地把RPC请求和应答映射到HTTP的请求和应答,从而可以使用request/response机制来传送信息。XML版本信息主要携带XML版本号和XML编码方式信息。SOAP的消息主体部分是“text/xml”形式,包含了一个XML文档形式的SOAP封套。SOAP封套包含了消息头(Header)、消息体(Body)和出错消息(Fault)。消息头通常携带与消息体相关的可选元素信息,比如消息路径、数字签名、认证信息、消息关联性信息、消息体的加密公匙等。消息体包含SOAP消息的实际负载,可以为任意内容,但是ParlayX中只提供RPC风格供发送者和接收者使用。出错消息是SOAP结构的可选元素,携带出错信息。

1.2 PalaryX解码模块功能分析

解码的作用是把信令比特流中的数据翻译为有逻辑意义的信息,以供后期分析模块调用。因此,解码模块在EV-DO网络测试仪中占有举足轻重的地位。

在CDMA-EVDO监测系统中,呼叫详细记录合成、消息过滤、统计分析等功能模块实现的前提条件是对线网采集的数据能够准确无误地解析。PalaryX解码模块由基础解码和详细解码两个部分组成,而基础解码中又分为简单解码和合成解码。

由于ISAG和SP/CP之间PalaryX接口采集的原始数据对应PalaryX接口协议栈,在PalaryX接口解码中,由PalaryX协议栈解码器负责总体的调度。PalaryX协议栈先把消息缓冲区中的原始数据交给最底层进行EthernetII的协议解码,再取出EthernetII的净荷,调用IP解码逐层取出上层,然后再取出IP数据包的净荷,调用TCP解码器,最后取出TCP的净荷交给PalaryX解码。

1.3 PalaryX详细解码模块设计与实现

详细解码是对现网采集的数据按照消息格式逐字节、逐比特进行解析,在界面上采用树形结构对用户进行直观的显示。PalaryX接口协议相对于传统的一些接口协议来说有两大不同点。首先,PalaryX中HTTP协议头和SOAP信封是两种不同的信息承载方式,HTTP协议头在比特流数据上承载的信息是具有连续性的,而SOAP信封基于XML格式确保了信息传递的灵活性,却破坏了比特流数据承载信息的连续性;其次,PalaryX中SOAP信封的Header是可选元素而Body中内容具有不确定性。基于上述原因,传统接口协议详细解码模块设计方案[4-6]在PalaryX协议中并不适用,因此,在PalaryX详细解码模块中采用了一种全新的解码思路,把PalaryX解码器拆分为HTTP解码器和SOAP信封解码器两部分,此时完整的PalaryX接口数据被看成是由HTTP和SOAP两个不同协议层传递的数据。PalaryX协议栈先把TCP层传递来的PalaryX PDU交给HTTP解码器进行HTTP的协议解码,取出HTTP的净荷即SOAP信封PDU传递给上层SOAP解码器进行解码。这种解码思路优点是模块简单化、代码冗余度小、维护性强。ParlayX详细解码流程如图2所示。

图2 ParlayX详细解码流程图

提取SOAP信封中所携带的信息,就是对XML格式进行解析。XML是使用一组标记来描绘数据元素,XML标记用于定义数据本身的结构和数据类型。和一般性数据格式比较,不同点在于每一个元素都必须有封装的起始标记符和结束标记符。正是因为XML数据采用标记的方式去描述数据元素,所以它们需要占用更多的网络带宽和存储空间,或着需要更多的处理器时间进行压缩。XML格式的数据解析速度通常要比分析高度优化的二进制格式的数据慢,解码难度也要比二进制格式大,并且可能需要更多内存。但使用XML语言格式定义的数据,有很好的可读性和扩展性。

由于XML的标记一定要拥有结尾标记,例如:〈name〉CHENZY〈/name〉,由此看出 XML 标记是成双成对的。如果没有结尾标记,那么在结束的“〉”前,需要有“/”,表示开头和结尾是在同一标记内,例如:〈name=”CHENZY”/〉。经过大量方案的研究,总结出递归方式能够快速、准确地解析XML格式数据。

在RecursionXML解析函数中,SkipBracket函数的作用是解析数据中没有结尾标记,而是在结束的“〉”前,有“/”的这种元素标记的值。在完整解析一条被封装的元素标记之后,此时调用递归函数RecursionXML,重新开始下一条元素标记的解析,该递归函数的递归结束条件是解析的数据长度等于原始数据的长度。

1.4 ParlayX简单解码和合成解码模块的设计与实现

简单解码是对原始数据有目的地、非连续地提取某些关键信息,简单解码结果用于列表显示和消息过滤。合成解码也是对原始数据有目的地非连续提取某些关键信息,不同于简单解码的是合成解码所提取的某些关键信息是用于消息的呼叫详细记录合成。

简单解码与合成解码的实现都需要调用静态链接库中基础解码的接口函数,简单解码和合成解码首先调用Sdecode函数获取待解码消息的PDU长度和头指针,然后判断消息是否有效,若有效,简单解码需要设置协议层次为PalaryX,并获取适当的内存池,调用PalaryX_sdecode函数提取关键字段填写至解码结果表直到简单解码结束,后期用于消息显示、消息过滤等;而合成解码则需要获取适当的内存池,调用PalaryX_sdecode函数提取用于后期合成模块所需的关键参数。

2 测试结果与分析

经过CDMA-EVDO信令监测系统实时采集并测试数据,图3和图4是对采集的大量数据中某一条消息的解码结果。图3中ParlayX消息详细解码结果表明一条ParlayX消息的正确解析,从中显示出这条消息所处的协议栈结构为Ethernet,IP,TCP,ParlayX。在 ParlayX 这一层协议解析中,能够清楚地看到ParlayX的数据格式是HTTP+XML版本信息+SOAP信封结合组成,这与本文上述的ParlayX的数据格式是一致的。HTTP协议头中,请求URI的字段值为/isag/North/SMS/SendSms,表明该消息是通过ISAG网关的北向接口传递的,绑定的是SMS接口的SendSms业务请求。内容类型中显示为text/xml,表明该ParlayX消息中SOAP消息主体部分是“text/xml”形式。

图3 ParlayX消息详细解码结果(截图)

图4 SOAP信封各字段解析结果(截图)

图5为ParlayX消息简单解码结果。从图中可以清楚地看到Ns1_SPID=02100000,Ns1_timeStamp=0601180402,Ns1_spPassword=92C5183F98F810,……,这与图4中显示解析出的服务提供商、时间戳、服务提供商密码是一致的,表明本文设计的详细解码模块和简单解码模块对原始数据解析的结果保持了一致性。准确有效的简单解码结果为快速过滤有效消息提供了最直接、最便捷的方法。

图5 ParlayX消息简单解码结果(截图)

3 结论

论文深入分析EV-DO网络ISAG网关ParlayX协议的数据格式,提出了基于XML格式ParlayX协议解码模块的全新设计方案,有效解决了同一协议中采用不同承载方式数据格式的解码难题。通过专门测试系统对该解码方案进行了验证,成功实现HTTP解码模块和SOAP解码模块耦合。这对于进一步实现EV-DO网络增值业务质量监测和优化具有非常重要的意义。

[1]管文明.CDMA20001XEV-DO网络优化思路[J].电信工程技术与标准化,2009(12):26-30.

[2]张仙伟,张璟.Web服务的核心技术之一——SOAP协议[J].电子科技,2010,23(3):93-96.

[3]3GPP TS 29.199-4 V6.8.0,Technical specification group core network and terminals;open service access(OSA);parlay x web services;part 4:short messaging(release 6)[S].2007.

[4]李丹风,张治中.LTE网络监测系统中DHCP协议的解码方案研究[J].电视技术,2012,36(9):69-73.

[5]范广,张治中,杨蕴宇,NGN集中监测系统SIP解码模块的设计与实现[J].集成电路设计与开发,2009(9):899-902.

[6]龚珏,雒江涛.TD-SCDMA测试仪中Iub接口实现RLC层信令解码[J].重庆邮电大学学报:自然科学版,2007(2):28-34.

猜你喜欢
调用解码消息
《解码万吨站》
一张图看5G消息
核电项目物项调用管理的应用研究
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
LabWindows/CVI下基于ActiveX技术的Excel调用
基于系统调用的恶意软件检测技术研究
消息
消息