基于cmpp协议的短消息平台客户端的设计与实现-消息接收模块的设计内容摘要:

区各自独立。 把所有短信业务全部由存储过程实现,开发简单,对开发人员要求不高且容易上手。 开发周期短,方便系统不断增加新的业务。 业务维护全部通过 WEB 浏览器实现,可以方便业务数据的维护,报表的实现等。 可提供按业务统一分类的报表,使 SP 能及时把握市场动态 对于 SP 企业来说,一个稳定的平台是实现赢利的基本保证。 稳定的高效率的平台不仅可以是 SP企业获得更多的利润,而且 能获得最大的用户满意度。 典型短信业务流程分析 本次试验主要完成 网关模拟器向 SP端下发短信, SP 端成功接收来自模拟器的消息并成功的反应在屏幕上。 具体流程为: ① SP 端按照 协议的具体类进行配置 ② 运行 SP 端使他的 01850 端口启动 ③ 模拟器向 01850 端口发送建立连接请求 ④ SP 端接到请求并响应两端建立连接 ⑤ 模拟器向 SP 发出发 送短信的请求 ⑥ SP 同意开始传送信息 ⑦ 传输完成终止 CMPP 协议 由上面的过程可以看出 SP与 ISMG 之间的交互过程中采用异步方式,即任一方在收到请求消息后应立即回送响应消息。 短消息业务的种类 下面以 “ 移动梦网 ” 为例介绍一下与各 SP 合作向用户提供的短信信息服务的种类。 “ 移动梦网 ” 提供的短信信息服务种类行信息服务、娱乐服务、位置服务、通信服务、商务服务等 信息服务包括:股市信息、新闻定制、彩票信息、外汇行情、天气预报、在线翻译等。 6 娱乐服务 包括:手机铃声和图片下载、每日幽默、每日星运、电子宠物、互动游戏等。 位置服务包括:城市信息查询、商业广播、周边环境、公交线路等。 通信服务包括:移动 EMail、 日常用语、在线聊天等。 商务服务包括:票务服务、短信投票业务、商务支付业务等。 短信信息服务的使用方法 手机用户可以通过短信采用手机点播或网站定制的方式享受以上服务。 手机点播的方式:用户在手机的编辑短消息的消息体中,输入需要点播的业务代码,然后在 “ 发送 ” 号码中输入 SP 的服务代码,发送短信;如果发送成功,稍后即可收到点播的信息。 网站定制的 方式:用户登录提供短信信息服务的 SP 网站,按照页面的提示,注册成为 SP的用户,并登记用户的手机号码; SP会将确认密码以短信方式发送给用户,用户以此密码在 SP 进行确认,确认成功就可以定制SP提供的服务了;用户在 SP 的页面上定制需要的服务, SP会根据用户的定制信息发送信息到用户手机。 系统功能模块的实现 短信网关部分: (1)处理 CMPPCONNECT 消息 (SP→ ISMG ) CMPP CONNECT 操作的目的是 SP 向 ISMG 注册作为一个合法 SP 身份,若注册成功后即建立了应用层的连接 ,此后 SP 可以通过此 ISMG 接收和发送短 信。 ISMG 以 CMPPCONNECT RESP 消息响应 SP 的请求。 (2)处理 CMPPCONNECT RESP 消息定义( ISMG→ SP) (3)处理 CMPP SUBMIT 消息定义 (SP → ISMG ) CMPSUBMIT 操作的目的是 SP 在与工 SMG 建立应用层连接后向 ISMG 提交 短信。 ISMG 以 CMPP_ SUBMIT_ RESP 消息响应。 (4) CMPPSUBMIT_RESP 消息定义 (ISMG → SP) (5) CMPP_DELIVER 消息定义 (ISMG→ SP ) CMPP_ DELIVER 操作的目的是 ISMG 把从短信中心或其它 ISMG 转发来的短信送交 SP, SP 以 CMPP_ DELIVER_ RESP 消息回应。 (6) CMPPDELIVER_RESP 消息定义 (SP → ISMG) 7 (7)CMPP – ACTIVE TEST 定义 (SP→ ISMG 或 I SMG→ SP) 本操作仅适用于通信双方采用长连接通信方式时用于保持连接。 (8) CMPP ACTIVE – TEST RESP 定义 (SP→ ISMG 或 ISMG→ SP ) 基于 CMPP 协议的个模块,做消息的具体实现。 由于我主要是实现接收端的设计与实现。 第三章 CMPP 协议介绍与接收短信模块的设计 协议介绍 概述 CMPP 是中国移动点对点通信协议,是在 SMPP 基础上根据中国移动 GSM 网络特点制定的。 CMPP 协议主要提供以下两类业务操作: ( 1)短信发送( Short Message Mobile Originate, SMMO) ( 2)短信接收( Short Message Mobile Terminated, SMMT) CMPP 协议栈 CMPP 协议以 TCP/IP 作为底层通信承载,具体结构由图 31所示: 图 3- 1 CMPP协议栈 CMPP Stack agreement 通信方式 各网元之间共有两种连接方式:长连接和短连接。 所谓长连接,指在一个TCP 连接上可以连续发送多个数据包,在 TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。 短连接是指通信双方有数据交互时,就建立一个 TCP 连接,数据发送完成后,则断开此 TCP连 接,即每次 TCP 连接只 8 完成一对 CMPP 消息的发送。 现阶段,要求 ISMG 之间必须采用长连接的通信方式,建议 SP 与 ISMG 之间采用长连接的通信方式。 消息定义 基本数据类型: Unsigned Integer 无符号整数 Integer 整数,可为正整数、负整数或零 Octet String 定长字符串,位数不足时,如果左补 0则补 ASCII表示的零以填充,如果右补 0则补二进制的零以表示字符串的结束符 消息结构: 项目 说明 Message Header 消息头 (所有消息公共包头 ) Message Body 消息体 概要设计 在进行基于 协议 SP 侧短信发送端的设计与实现时,考虑到所使用语言和平台的问题,应该充分利用面向对象的设计思想,提高代码的重用性。 为了实现业务对网关的无关性,需要定义系统内部通用的数据结构,各个网关的收发消息都作相应的转换,消息向业务系统的收发完全是标准的格式。 对不同的网关及应用都分别提供发送操作。 系统设计与实现 使用 JAVA 语言的考虑 Java 作为一种编程语言, Java 提供了一种最简 单同时也是人们最熟悉的可移植性 —— 源代码移植。 这意味着任意一个 Java 程序, 不论它运行在何种 CPU、操作系统或 Java 编译器上,都将产生同样的结果。 它定义了严密的语意结构,而使编译器不承担标准化的工作。 另外, Java 对程序行为的定义严格:它提供了内存自动回收功能 (Garbage Collection),使程序不能访问越界内存。 它对未初始化的变量提供确定值等等。 它的这些特性能够减小在不同平台上运行的Java 程序之间的差异。 Java 编译器产生的目标代码 (JCode)是针对一种并不存 9 在的 PU—— Java 虚拟机 (Java Virtual Machine),而不是某一实际的 CPU。 Java虚拟机能掩盖不同 CPU 之间的差别,使 JCode 能运行于任何具有 Java 虚拟机的机器上。 Java 最出色的另一个地方就是它的 无痛苦连网 概念。 有关连网的基层细节已被尽可能地提取出去,并隐藏在 JVM以及 Java 的本机安装系统里进行控制。 我们使用的编程模型是一个文件的模型;事实上,网络连接已被封装到系统对象里,所以可象对其他数据流那样采用同样的方法调用。 除此以外,在我们处理另一个连网问题 同时控制多个网络连接 的时候, Java 内 建的多线程机制也是十分方便的。 系统框架设计 当服务器有短信向客服端传送时,由服务器首先通过 CONNECT 命令 连接 SP客服端,由于 SP 没启动或相应的端口不怎正确则服务器端收到连接超时自动断开; SP 收到 ISMG 的消息时则返回 CONNECTRESP 应答服务器。 由于 ISMG 与 SP之间建立了 TCP 连接,则服务器就可以向客户端发送需要发的短信息了。 服务器向客户端发送 DELIVER 消息, SP 则以 DELIVERRESP 消息进行回复。 当他们完成短信的传送操作后。 ISMG 向 SP 发送 TERMINATE 消息要求断开连接, SPZ 则以TERMINATETESP 回复 ISMG,而后断开 TCP 连接。 最终完成一次消息传送。 这次的流程图如图 32 所示。 图 32 流程图 Flow chart 10 系统设计与实现 要做的模块包括 : CMPP Message send 向 ISMG 发送 CMPP 消息,阻塞直到收到响应或超时。 Void close() 向 ISMG 发送终止连接 CMPP 消息,调用之后连接将永久不可用。 String getConnState()调用这个接口方法,获取 TCP 连接状态的描述。 Deliver Message ISMG 以 Deliver 封装消息并下发。 CONNECT 类的设计 CMPP_CONNECT 操作的目的是 SP 向 ISMG 注册作为一个合法 SP 身份,若注册成功后即建立了应用层的连接,此后 SP可以通过此 ISMG 接收和发送短信。 ISMG 以 CMPP_CONNECT_RESP 消息响应 SP 的请求。 CONNECT 的消息定义如下: 字段名 字节数 属性 描述 Source_Addr 6 Oct。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。