




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于CMPP协议的短消息平台的设计与实现 姓名: 专业: 电子信息技术指导老师: 摘要 当前,全国各地的手机用户(中国移动用户、联通用户)可以通过手机短消息服务中心(SMC)非常自由地发送和接收短消息。SMC较好地解决了移动网络内部的信息交换,但其本身不能很好的解决Internet与移动网络的信息交换,同时从安全性角度也不宜将SMC直接接入Internet。所以本论文讲的是:(1)论文首先阐述了短消息系统的体系结构、原理,增值业务的应用,并深入分析了短消息网关的工作原理,流程,CMP协议;(2)针对当前每个中国移动为减轻短消息、网关负荷,对SP短消息应用提供有限的连接数量,提出对接入服务较多的SP搭建一个统一短消息、接入平台(短消息服务器),在短消息平台网关通讯模块设计中,采用连接池技术,多个短消息应用动态复用一个网关连接。 关键词:CMPP; 短消息; 增值业务; 消息队列; 回调机制 目录1 绪论.11.1短消息增值业务发展背景.11.2短消息网络概述.11.3短消息中心.22 短消息网关接口协议.42.1短消息网关接口协议概述.42.2 CMPPC协议体系结构.42.3 CMPP协议交互过程中的应答方式.73 短消息平台接口的设计与实现.123.1短消息接口程序结构.123.2短消息平台接口类的实现.14结束语.16致谢.17参考文献.18绪论1.1短消息增值业务发展背景 随着信息技术和通信技术的日益发展、通信工具的不断普及,各种通信工具日益增多,人们为了相互保持联系,每天都不得不面对手机、BP机、电话机、传真机等多种通信设备,还要定时检查电子邮件和语音信息以及传真信箱等,通信方式越来越多样化,带来各种便利的同时,由于它们彼此是独立的,需要不同的网络支持、多个终端以及多个号码,在发送和获取不同类型的消息时不方便,也带来了昂贵的费用。 短消息业务包括基本业务和增值业务。基本业务也就是一些传统的短消息业务,比如移动台发起移动台终止的短消息、业务;与语音信箱配合完成语音信箱通知业务:可支持汉字的短消息、业务,人工接续和自动接续的短消息业务。所谓短消息增值业务,是指基于移动增值业务平台,通过网络向用户提供信息类,娱乐类,交易类等业务。包括:话费查询、话费通知、股票行情查询、股票实时涨跌告警、超级寻呼、公共信息、电子邮件、铃声下载、图像下载、以及利用到短消息网络的即时通讯工具(如腾讯QQ、网易泡泡、搜Q等),联合SP(Server Povider服务提供商)提供的业务等。随着短消息业务的发展,增值业务的种类范围将会根据需要不断扩充。 1.2短消息网络概述 短消息是通过移动网络传输的有限长度的文本信息。短消息的根本用途是实现移动用户之间的信息传递,也可以通过短消息、中心查询或预定信息。短消息业务占用GSM控制信道,而不是业务信道,因此与话音业务、数据业务互不干扰。GSM短消息业务分为两种:点对点短消息业务和短消息小区广播业务。点对点短消息业务能够使GSM字移动通信网的用户可以发出或接收长度有限(不超过140个字节)的数字或文字消息.并且短消息的收发不影响通话;短消息业务可以使网络端知道被叫方是否已经收到短消息,如果传送失败,被叫方没有回答确切消息,网络一侧会保留所传的消息、,一旦网络发现被叫方能被叫通时,消息能被重发以确保被叫方能收到。通过短消息、中心及其相关增值业务系统还可以实现诸如股票交易、银行业务、信息点播、GPS监控、Email通知等信息服务,及日程安排、预约留言、电话号码薄等移动秘书服务 图11 短消息网络结构SME: Short Messaging Entity,短消息实体。它可以接收或改善短消息,位于固话系统、移动基站或其他服务中心内: SMSC: Short Message Service Center,短消息服务中心,负责在基站和SME间中继、储存或转发短消息;移动台(ME)到SMSC的协议能传输来自移动台或朝向移动台的短消息,协议名为SMTP (Short Message Transmission Protocol);SMCGWMS或SMCGMSC: SMS-Gateway MSC, SMS网关。接收由SMSC发送的短消息,向HLR查询路由信息,并将短消息传送给接收者所在基站的交换中心;HLR: Home Location Register,归属位置寄存器。用于久储存管理用户和服务记录的数据库,由SNSC产生。SMC网关与H LR之间的协议使前者可以要求HLR搜索可找到的用户地址。它与MSC与HLR之间的协议一起,能在移动台因为超出覆盖区而丢失报文、随后又可找到时加以提示。BSS: Base Station System,移动基站系统。负责与手机进行无线通讯。短消息是GSM中唯一不要求建立端到端业务路径的业务,即使移动台己处于完全电路通信情况下仍可进行短消息传输。 短消息通信仅限于一个消息,换言之,一个消息的传输就构成了一次通信。因此,业务是非对称的,一般认为移动起始短消息(MO)传输与移动终接短报文(M T)传输是两回事。这并不阻碍实时对话,但系统认为不同的消息彼此独立,消息的传输总是由处于GSM外部的短消息服务中心(SMSC)进行中继,消息有目的地或起源地,但只与用户和S MSC有关,而与其他GSM基础设施无关。移动起始短消息(MO):一个GSM用户发送短消息时,他必须在其内容中包含最终地址的识别符,和处理这消息的服务中心号码,然后请求传递。短消息的传输要求在移动台和MSC之间建立信令连接。消息、本身的传递要求在无线路径上建立专用的链路层链接,并要求采用专用的消息传递协议。在规定的协议栈的顶部是所谓的传输层协议,在移动起始短消息情形下,它是一条单独的报文,即S MTP(不是TCP/IP的S1TP)短消息传送报文,低处理应答的传送,它只指出SMSC己收到报文。短消息业务的功能是向移动用户提供短消息发送/接收业务。短消息业务作为GSM第一阶段标准被创建。短消息由字符和数字组成,每个短消息长度最多为160个拉丁字符,如果是中文或其他非拉丁字符则长度最多为70个。短消息业务中心(SMSC)实现短消息业务,它需要直接与移动业务交换中心(MSC)相连,因此短消息业务中心必须实现No.7信令的消息传递部分,才能同MSC通信。同时,短消息业务中心还要实现信令连接控制部分、事务处理能力部分,以及移动应用部分中的短消息、业务管理业务,这样才能实现高层的短消息发送/接受功能。1.3短消息中心短消息中心本身是运行在服务器上的一个应用程序,其实质是一个数据库应用程序。短消息中心核心进程担负着通过7号信令与移动交换机连接并且改善接收短消息底层编码的任务。它收到一条短消息后将其放入数据库中,同时另一个进程试图将这条短消息放入发送队列将其发送出去。如果成功,这条短消息将被删除以释放数据库空间,但统计信息将保存如果不成功,则根据设置的时间间隔重发,一直到发送成功或有效期过为止;如果发现手机关机则等待其开机时发送。接口层使得ESME可以通过一定的方式使用SMSC,通常的做法是建立一个多连接Socket服务端,在某一个端口上守候,通过一定的协议和客户端进行交互,实现功能。接口层协议的事实标准是短消息点对点协议(SMPP),多数厂商(包括中兴、华为、WINS .Ferma Intech等)均支持该协议。 图12短消息服务中心2 短消息网关接口协议2.1短消息网关接口协议概述短消息服务中心为了提供短消息接入服务,在国内需要具备中国移动短消息点对点协议(CMPP)接口仁以及中国联通短消息网关系统接口协议(SGIP)接口,实现网关功能,其(移动网关)主要功能完成了将SMPP协议到CMPP协议的转换,能够将从外部短消息实体(ESME)或服务提供商(SP)接收到MT (MobileTerminate)消息根据其内容,选择相关路由发送到正确的短消息、网关,最后到短消息服务中心发至移动基站,并且能将收到的M0 (Mobile Originate)消息路由到正确网关后最终发到服务提供商(SP)。可以看出短消息网关(互联网短消息网关)是移动短消息业务接入因特网的入口点。如果提供国际短消息接入服务,则必须同时实现短消息、点对点协议(SMPP)接口。术语解释SMPP Short Message Peer to Peer短消息点对点协议CMPP China Mobile Peer to Peer中国移动点对点协议SGIP Short Message Gateway Interface Protocol短消息、网关接口协议 (用于中国联通)SMSC Short Message Service Center短消息服务中心GNS Gateway Name Server负责系统路由的管理和同步 (又称汇接网关)M0 由手机用户提交的短消息(Mohile Originate)MT 由手机用户接收的短消息(Mohile Terminate)SMG Short Message Gatewas联通公司的短消息网关 SMG之间的通讯协议采用SGIPISMG Internet Short Message Gateway互连网短消息网关(移动)Data Service Manage Platform数据业务管理平台SP Service Provider服务提供商2.2 CMPP协议体系结构为防止一些个人或企业进行短消息的恶意传输,在国内现在外部应用实体不能直接与短消息中心互联,而必须通过中国移动或中国联通的短消息网关来发送或接收短消息,由后者将短消息、发送至短消息中心。外部应用实体与中国移动短消息网关之间通过CMPP接口,而同样联通也有其网关和协议接口SGIP,CMPP和SGIP分别是移动和联通在 S MPP协议上改进的针对自己网关的接口协议。如图2-1所示,中国移动互联网短信网关(ISMG)是业务提供商(SP)与移动网内短信中之间的中介实体,互联网短信网关一方面负责接收SP发送给移动用户的信息和提交给短信中心。另一方面,移动用户点播SP业务的信息将由短信中心通过互联网短信网关发给SP。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将SP提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。 图21互联网短消息网关组网结构另外,ISMG还必须与数据业务管理平台DSMP进行连接,在业务流程中对用户、业务以及定购关系等进行鉴权并对业务进行批价。2. 2. 1几种通信路由和本地短消息网关(ISMG)之间相连的SMSC称作本地SMSC,和异地ISMG相连的SMSC称作异地SMSC。和ISMG之I司相连的SP称作本地SP,和异地ISMG相连的SP称作异地SP。从本地SMSC向本地SP以及从本地SP向本地SMSC发送的消息直接由IS M G转发;从本地SMSC向异地SP以及从本地SP向异地S MSC发送的消息由本地IS MG路由到异地IS MG后,再由异地IS MG转发。消息从本地SMSC到本地SPISHG从SMSC接收到短消息,直接发给SP。例如:SMSCIA-ISMGI一SPIYShSCIB-ISMGI一SPIX消息从本地SMSC到异地SPISMG从本地SMSC接收短消息、,再路由到异地ISMG,由异地的ISMG发送到目的SP,例如:SMSCIA-ISMGI一GNS- ISMG2-SP2YSMSCIB-ISMG1一GNS- ISMG3- SP3X上面两种主要是手机端发起短消息的过程,其示意图如下: 图 2-2 发起短消息1)手机发出数据请求(可能是订阅信息或图片点播等)到SMSC,被源工SMG接收;2)源工ISMG对接收到的信息返回响应;3)源工ISMG在本地查询不到要连接的SP,向GNS(汇接网关)发路由请求信息:4) GNS将路由信息返回;5)源工ISNG根据路由信息将请求前转给目的工ISMG;6)目的工ISMG对接收到的信息返回响应:7)目的ISMG将请求信息送SP;8) SP返回响应;对于消息从本地SMSC到本地SP的情况没有步骤3, 4, 5, 6。在以上操作中,步骤3到步骤8均使用CMPP协议;在随后的操作中,目的ISMG在接收到SP的响应后将产生MO状态报告发给源工ISMG.消息从本地SP到本地SMSCISMG从SP接收短消息,直接发给SMSC。例如:SPIX-ISMGI一SMSCIASPIY-ISMG1一SMSCIB.消息从本地SP到异地SMSCISMG从本地SP接收短消息,再路由到异地的ISMG发送到目的SMSC,例如:SPIX-ISMGI一GNS- ISMG2-SMSC2ASPIY-ISMGI一GNS- ISMG3-SMSC3B以上两种主要是手机端接收短消息的过程,其示意图如下: 图2-3 接收短消息1) SP发出数据请求(可能是短信通知或手机铃声等)到源ISMG;2)源ISMG对接收到的信息返回响应;3)源ISMG在本地数据库中找不到要目的手机号段所对应网关代码,向GNS(汇接网关)发路由请求信息;4)汇接网关将路由信息返回;5)源ISMG根据路由信息将请求前转给目的ISMG;6)日的ISAG对按收到的信息返回响应;7)目的ISMG将请求信息发送至SMC;8) SMC向目的ISMG返回响应:在上述操作中,步骤1到步骤6均使用CMPP协议;对于消息从本地SP到本地SMSC的情况没有步骤3, 4, 5, 6。在随后的操作中,SMC将通过N0. 7信令网向移动用户发送信息,移动用户收到后将返回状态报告(Delivery-Receipt)给短信中心,短信中心将按照M0操作的流程将状态报告返回给SP(如果SP要求返回状态报告)。2.3 CMPP协议交互过程中的应答方式 在SP与ISMG之间、SMSC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个CMPP协议中的网元在收到请求消息、后应立即回送响应消息。如图2-4所示: 图2-4 CMPP交互过程中的应答方式24 CMPP协议通信消息的定义 CMPP对外提供长连接端口号为7890,短连接端口号定义为7900。字节采用在网络中通用的网络字节序。基于CMPP协议的消息类型主要有3类: 1.SP与短消息网关(ISMG)通信的消息; 2.短消息网关(ISMG)之间的消息; 3.短消息网关(ISMG)与汇接网关(GNS)之间的消息。 其中本论文中的短消息平台是SP短消息应用系统接入短消息网关的统一平台把涉及到的,主要是第1种,在下面对这些消息做一些介绍。与SMPP协议一样,CMPP也是一个应用层协议,基于TCP/IP和X.25网络连接,由下层的网络层负责管理CMPP消息的传输和接收,网络层的发送实体为了处理CMPP消息的分段并组成数据包,网络层上的接收实体重组CMPP消息。因此,CMPP协议也是通过其下层的网络层组织、发送、接收、重组一系列CMPP消息组成的数据包来实现的。每个CMPP消息包括消息头MessageHeader与消息体Message Body两部分。所有消息都包含MessageHeader,它包括Total_Length(消息总长度)、Command_ Id(表明命令类型的命令编码)、Sequence_Id(消息序列号)四个参数,不同消息的lessageBody包含的参数各不相同。CMPP消息的一般格式见下表2-5: 图 2-5 CMPP消息的一般格式 MessageHeaderMessageBody 4字节 4字节4字节 不定长 Total_LenghtCommand_ID Sequence_IDParameter(optional)Unsigned longUnsigned longUnsigned long已定义的CMPP消息类型共有30个,除上面己给出的ISMG与SP以及ISMG之间传送的消息类型外,还包括其他工SAG与网关汇接点之间有关路由信息请求的消息类型。后面章节将给出一些消,、的格式,以及其具体实现。 具体到一个短消息网关中,由短消息、网关CMPP代理系统与SP建立了网络连接基础上,组织、发送、接收、重组由一系列CMPP消息组成的数据包,从而实现与SP之间的短信息交换。短消息接入平台与移动短消息、网关(ISMG)之间互为客户/服务器关系,但要求短消息、接入平台首先以客户的身份请求连接到移动网关,并且以IP进行验证,若验证成功,之后短消息平台与移动网关之间方可进行数据传输。短消息接入平台连接到短消息网关后应保持连接(长连接)。短消息接入平台发送CMPP_ CONNECT消息,向移动短消息网关请求连接,短消息网关以CMPP_ CONNECT_ RESP消息响应请求。消息体部分根据命令的不同而不同,下面讨论几个主要命令的消息体格式:.SP请求连接到ISMG (CMPP_ COVNECT)操作:传输CMPP_ CONNECT操作的目的是SP向ISMG注册作为一个合法SP身份,并以MD5算法加密鉴权号码,若注册成功后即建立了应用层的连接,此后SP可以通过此工SMG接收和发送短信。 表2-6 CMPP_CONNECT消息格式字段名字节数属性描述Souree_Addr6Octet String源地址,此处为SP_ID,即SP的企业代码AuthenticatorSource16Octet String用于鉴别源地址,其值通过单向MD5hash计算得出Version1Unsigned Integer双方协商的版本号,对于3.0的版本,高4bit3,低4位为0Timestamp4Octet String时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月时分秒。.ISMG返回给SP的应答(CMPP_ CONNECT_ RESP)操作 该操作是在ISMG收到SP的连接请求后返回的应答消息, ISMG以CMPP_CONNECT_ESP消息响应SP的请求,消息体格式如下: 表2-7 CMPP_CONNECT_RESP消息格式字段名 字节数 属性 描述Status4Unsigned Integer状态0:正确 其他错误AuthenticatorISMG16Octet StringISMG认证码,用于鉴别ISMG。其值通过单项MD5hash计算出Version1Unsigned Inetger服务器支持的最高版本号,对于3.0的版本,高4bit为3,低4位为0.SP向ISMG提交短信(CMPP_ SUBMIT)操作:CMPP SUBMIT操作的目的是SP在与ISMG建立应用层连接后向ISMG提交短信,ISMG以CMPP_ SUBMIT_ RESP消息响应。 CMPP_ SUBMIT操作的消息体格式:其主要字段有:信息标识、消息格式、发送时间、源号码、目的号码、消息长度、消息内容等。ISUG对SP发出的提交短消息请求返回的应答的操作: 表2-8 CMPP_SUBMIT消息格式字段名字节数属性描述Msg_Id8Unsigned Integer信息标识Pk_total1Unsigned Integer相同Msg_Id的信息总条数,从1开始Pk_number1Unsigned Integer相同Msg_Id的信息序号,从1开始Rwgistered_Delivery1Unsigned Integer是否要求返回状态确认报告:0:不需要1:需要2:产生SMC话单提交请求返回的应答CMPP_ SUBMI _ RESP消息体格式如下:其主要字段有:信息标识、结果(result ).ISMG向SP送交短信(CMPP_ DELIVER)操作CMPP_DELIVER操作的目的是工SMG把从短信中心或其它工SMG转发来的短信送交SP,该操作的消息体格式如表3-3. 当工SMG向SP送交状态报告时,信息内容字段(Msg_Content)字段的内容 分别表示信息标识(Msg_Id)、短信状态结果(Stat )、发送时间(Submit_ time), Done_ time, Dest_ terminal_ Id(目的终端MSISDN号码)、 SMSC_sequence(取自SMSC发送状态报告的消息体中的消息标识)。SP向ISMG查询发送短信状态(CMPP_QUERY)操作:CMPP_QUERY操作的目的是SP向ISMG查询某时间的业务统计情况,可以按总数或按业务代码查询。CMPP_ QUERY操作的消息体格式如下: 表2-9 CMPP_QUERY消息格式字段名字节数属性描述Time8Octet String时间YYYYMMDD(精确至日)Query_Cde10Octer String查询码。当Query_Type为0时此项无效当Query_Type为1时,此项填写业务类型Service_IDQery_Code1Unsigned_Interger查询类别:0:总数查询:1:按业务类型查询Reserve8Octer String保留对于CMPP_ QUERY应答包CHPP_ QUERY_ RESP返回从SP接收信息总数、从SP接收用户总数、成功转发数量、待转发数量、向SP成功送达数量等字段。.SP或ISNG请求拆除连接(CMPP_ TERIIVATE)操作与应答操作CMPP_TERMINATE操作的目的是SP或ISMG基于某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后SP与ISMG之间的应用层连接被释放, 此后SP若再要与ISMG通信时应发起CMPP_ C0NNECT操作。ISMG或SP以CMPP_TERMIHATE _RESP消息响应请求,这两个消息都没有消息体.SP向ISMG发起删除短信(CMPP_CANCEL)操作CMPP_ CANCEL操作的目的是SP通过此操作可以将已经提交给ISMG的短信删除,ISMG将以CMPP_ CANCEL_ RESP回应删除操作的结果。CMPP_ CANCEL操作的消息体包含一个消息标识号字段,用来指定要删除的消息;CMPP_CANCEL_ RESP操作的消息体包含无符号整型的表明删除是否成功的标识号,0表示成功,1表示操作失败。链路检测(CMPP_ ACTIVE_ TEST)操作本操作仅适用于通信双方采用长连接通信方式时用于保持连接,没有消息体部分,其应答CMPP_ACTIVE_TEST_RESP仅包含一个字节的保留字段。3 短消息平台接口的设计与实现短消息、统一平台是不同短消息、应用系统接入中心,负责对短消息应用系统的接入的配置、管理、计费、转发短消息,而短消息平台接口部分主要负责与短消息平台服务器的通信,是提供给短消息应用系统的二次开发接口。当我们升级短消息平台时应该保持接口的不变性,这样应用系统就可以不需要修改。 短消息、应用系统接入方式主要基于短消息、平台提供给业务开发程序动态连接库(API),或COM, java Bean (Java服务器)。 WEB服务器接入方式主要是基于组件的方式(COM,java Bean)。面阐述以DLL方式提供API接口的实现。3. 1短消息平台接口程序结构 接口程序的实现主要也涉及到socket编程、CMPP中所规定的数据包(PDU的生成和解析以及请求/应答机制的实现等。接口程序主要由一个CMPP类构成,在该类中实现同短消息服务器的通信细节,封装成DLL形式提供给短消息应用系统。在短消息平台接口程序按功能可分为三层:Socket_ API层、CMPPPDU层和API层。接口程序的结构如图3-1所示: 图3-1 接口程序结构311 Socket API层最底层是Socket_ API层,主要功能是建立TCP连接、完成数据包的发送和接收。Socket_ API层与上层协议无关,只是完成具体的网络通信。 短消息应用系统通常是通过专线或者Internet接入SMSC和ISMG的,而在这应用系统接入短消息平台是通过局域网(SP或企业自己的短消息业务)或者以宽带Internet接入(主要是二级SP),一般情况下是可靠的,但不能排除故障的可能性。为了减少故障带来的影响,要求接口程序能够及时发现故障并具有较完善的错误处理机制。为此,接口程序同短消息服务器之间的通信需要附加。为了附加TIMEOUT并具有较好的可移植性,Socket层中对于数据的发送和接收采用了Nonblocking的I/0方式,调用send和recv前通过调用select函数判断操作是否能在指定的时间内完成,防止send和recv进入长时间的等待。Socket层中为每个socket分配有发送缓冲区和接收缓冲区。上一层将要发送的数据包写入发送缓冲区中的空闲区域,每一次调用send时都试图将发送缓冲区中所有未发送的数据发送出去。对于数据的接收,调用recv时将接收到的数据写入接收缓冲区,由上一层从接收缓冲区中取出已经接收到的完整的数据包。 通过构造CMPP类我们封装了Socket的数据发送和接收操作,在3.1. 2节具体的实现。3. 1 .2 CMPP PDU层接口程序中间层是CMPP_PDU层,一方面负责完成CMPP协议中的数据包(PDU )的生成和解析。另一方面负责完成CMPP的请求/应答机制。 每一种需要发送的CMPP数据包都对应一个打包函数,接收线程接收数据时首先判断包格式是否正确,正确再调用接收回调函数从接收缓冲区中取出数据包。生成函数按照CMPP协议中规定的格式填写各种参数,在发送缓冲区中直接生成数据包。 与其他一些常见的请求/应答式协议不同,CMPP中通信的双方互为客户端和服务器端,都可以发送请求数据包,另一方应答请求。此外,请求和应答可以是异步的:发送方在接收到下一次请求的应答之前可以连续发送多个请求,接收方依次处理后返回应答。为了使一对请求和应答相对应,数据包的包头中有序列号字段,一对请求和应答的序列号是相同的,对于网关的Deliver包,接口程序内部自动回复相应RESP类型包。 请求和应答通过数据包的发送和接收两部分来实现的。为了防止进入死等待,我们采用发送、接收分两个线程,同时与短消息服务器一样,采用滑动窗口,发送窗口,同时在接收到消J息应答前,最多只能发送16条数据对于每一个需要执行的CMPP操作,都有一个相应的操作函数。该函数首先生成并发送请求数据包,之后调用接收函数接收应答数据包。接收函数在接收到正确的应答数据包之前有可能会接收到其它数据包:ISMG向应用系统发出的请求数据包、前一次请求的应答数据包等。因此,接收线程还包含了对ISMG发出的请求数据包的处理等其它操作,直到收到已发送请求对应的应答数据包后,才将对应的数据包从滑动窗口数组中删除。3. 2短消息平台接口类的实现对于服务器端就是连接短消息网关后,等待短消息网关的数据包,同时在给定端口监听,等待各个业务应用实体的接入(通过接口程序),服务器负责对数据按CMPP协议转发到短消息网关。同时管理配置模块负责对整个平台监控、管理、计费、查询。短消息平台接口是各种短消息应用系统接入短消息网关的通信桥梁。3.2.1接口类的成员函数CMPP:Start函数用来启动与短消息平台连接,并初始化网络连接,填写基本参数信息、包括短消息服务器IP地址、端口,以及服务接入号、密码。另外我们定义一个函数指针:typedef void (*PFOnMsg) (CMPP_PACKAGE *M_Packet);在Start函数中有一个此类型函数指针参数,这是提供给应用系统的回调函数,此函数由应用实体定义,当应用实体收到数据即自动调用此函数。CMPP: :Start函数实现如下: 下图3-2给出接口程序启动过程的流程: 图3-2接口程序启动过程的流程为了控制各个短消息应用系统到短消息平台的流量,防止意外(网关或短消息服务器回送应答消息延迟等)时,各短消息应用无限制的发送消息到短消息平台,采用类似控制短消息平台发往网关的流量方法(网关通信代理模块中),控制每一条短消息应用同短消息、平台的连接上在收到应答消息前也最多发送16条消息。 在CMPP类中我们定义一个滑动窗口数组:CMPP_ PACKAGE Data Window NCMPP_ WINDOW_ SIZE;其中NCMPP_ WINDOW_SIZE即为窗口大小:它是一个全局变量临界资源需在多线程中访问需同步,在初始化函数Start中将所有窗口数据清0,表示未使用窗口;从前面我们可以看出CMPP_ PACKAGE是一个包含消息头,消息体以及重发次数的结构,以及发送时间.3.2.3回调函数机制我们知道在面向对象的软件设计过程中,对象是数据和方法的封装体。在C+中,它们分别表现为数据成员和成员函数。程序设计者通过执行对象的各种方法,来改变对象的状态(即改变对象的属性数据)。从而使该对象发生某些“事件”。当一对象发生某事件时,它通常需向其它相关对象发送“消息”,请求它们作出一些处理。这时,发生事件并向其它对象请求处理的对象被称为“事件对象”,而处理事件的对象被称为“回调对象”。回调对象对事件的处理称为“回调函数。在C+中,这一过程相当于:当事件对象发生事件时,调用回调对象的某些成员函数。在这里我们对于应用实体调用接口程序最重要的“事件”就是数据到达的事件了,而“事件对象”和“回调对象”则是CMPP类的实例了,回调函数是一个应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《幼儿教师招聘》测试卷及参考答案详解(培优)
- 人口老龄化与慢性病健康问题研究-洞察及研究
- 2025年甘油(丙三醇)合作协议书
- 2025年教师招聘之《小学教师招聘》题库综合试卷完整答案详解
- VR交通态势感知-洞察及研究
- 教师招聘之《幼儿教师招聘》考试押题卷附参考答案详解(综合题)
- 汽车智能仓储大数据分析平台创新创业项目商业计划书
- 2025年陶瓷制零件相关陶瓷制品项目合作计划书
- 2025内蒙古呼伦贝尔农垦谢尔塔拉农牧场有限公司招聘45人笔试模拟及答案详解(各地真题)
- 农产品乡村驿站创新创业项目商业计划书
- 癫痫性精神障碍及护理
- 冀教版8年级上英语各单元语法课件
- 《大学生当铺策划书》课件
- 环境学概论课课件
- 药包材生产质量管理手册
- IInterlib区域图书馆集群管理系统-用户手册
- EnglishDrama英语戏剧写作及表演技巧课件
- 社会组织管理概论全套ppt课件(完整版)
- 轧机设备安装施工方案
- (完整版)IATF16949新版过程乌龟图的编制与详解课件
- 制药企业仓库温湿度分布的验证
评论
0/150
提交评论