封面
《增值短消息服务平台的设计与实现》Word格式可编辑可修改
精心整理放心阅读欢迎下载
文档信息
增值短消息服务平台的设计与实现
摘要本文首先介绍了短消息业务和平台的概念参考中国移动的C MP P协议和有关规范 给出了一个短消息增值服务平台的设计实现方案和实现方法。对整个平台的通信机制业务处理后台管理数据库设计等关键问题进行了重点论述。 关键词CMPP协议短消息短消息网关 SP 0引言 随着中国一跃成为世界上最大的移动通信市场手机短信以它通信费用低廉双向传输通信质量可靠速度快等显著优点受到了越来越多人的青睐手机短信已被称为“第四媒体” 。除了大量使用的手机用户之间的点对点短信业务之外从信息平台到手机用户的短信信息服务业务也在快速发展该业务已经成为广大用户及时方便地获取信息的一种手段。 1有关短消息短消息业务及短消息服务平台 SMS(Short MessagingService) 是最早的但仍是现在火爆全球的文本短消息服务 EMS
Enhanced Message Service增强信息服务是(SMS)的新版本支持发送简单的图像、声音和动画等信息 MMS Multimedia MessagingService多媒体短信服务是目前短信技术开发最高标准的一种支持多媒体功能需要2. 5G或3G的网络来支持它的运转。 本增值短消息服务平台的软件设计使用Visual C++作为前台开发工具 SQLServer 2000作为后台数据库是一个是以手机为应用基础、以前台页面为操作界面具有丰富增值服务内容的完整的、大规模短信息处理的系统。通过这个平台可以向中国移动、 中国联通和小灵通等用户提供发送短信息、定制、点播/订阅、答题积分福彩投票/竞猜等
短信服务具体应用如电视、电台媒体开展互动业务报纸、杂志媒体提供新闻服务气象台、彩票中心、交警提供资讯、商场开展客户调查及促销活动服务等。为简单起见本文只讨论其中基于中国移动短信网关移动手机用户的系统开发与实现。 2 CMPP协议的介绍CMPP China Mobile Peer to Peer协议全称是中国移动通信互联网短信接口协议其规定了以下三个方面的内容 1业务提供者
SP与互联网短信网关(ISMG)之间的接口协议 2互联网短信网关之间的接口协议 3互联网短信网关和汇接网关(G)之间的接口协议。图1互联网短信网关组网结构C MP P协议主要提供以下两类业务操作 1短信发送Short Message Mobile Originate MO操作手机用户为起始端 2短信接收Short Message MobileT erm i nat ed MT操作手机用户终止端 CMPP协议和HTTP FTPSMTP等协议一样处于TCP/IP网络模型的应用层它以TCP/IP协议作为底层通信承载。 SP与ISMG之间进行信息交互式可以采用长连接或短连接两种方式。本短消息服务平台所采用的连接方式为长连接即 SP与ISMG以C方式建立连接时在一个TCP连接上可以连续发送多个数据包在TCP连接保持期间如果没有数据包发送需要双方发送链路检测包以维持连接。 3系统的结构和功能模块图3. 1系统的层次结构 本短消息服务平台在典型的网络条件下具有稳定可靠、处理能力高、组网能力强、系统管理方便、使用灵活等特点能够满足功能性、稳定性、效率性的要求 同时该系统拥有强大的后台管理功能和业务处理能力从而为业务的可持续发展以及用户快速准确获取信息创造了条件
整个平台的组成分为四个层次硬件、 网络、通信层包括支持系统运行的所有服务器、客户机及网络设备、通信链路以及存储设备、输入输出设备等硬件操作系统层系统软件层 基于硬件平台之上提供基本的系统调用及网络通信功能如Windows2000等 应用开发层在操作系统之上的应用开发环境包括软件开发工具数据库等如Visual C++、 SQL server 2000等 应用软件层最外层 面向业务应用使业务信息化和自动化用户通过它进行业务上需要的信息处理、信息存储和信息传送等工作是与操作人员直接相连的部分。 3.2系统结构示意图介绍 系统主要由通信模块业务处理模块后台管理模块和数据库部分组成其软件结构示意图如图2所示 图2系统软件结构示意图系统支持CMPP 3.0 中国移动协议、 SGIP 中国联通 、 SMGP 中国电信、中国网通 、 SMPP协议
国际标准 。包括MO 包括用户上行消息和状态报告接收及MT下行的处理通信程序的编写完全按照协议进行开发。 4短消息服务平台通信模块的设计 通信模块是短消息服务平台的主要模块它是SP 业务提供者和各基础网络运营商网关之间的一条高质量的传输通道负责接收和响应用户请求。该模块主要是通过多线程机制来处理由SP发送到短消息网关的消息和接收由短消息网关发送的消息。通信模块涉及到以下几个重要线程消息发送线程消息接收线程业务处理线程包括MO业务处理线程和MT业务处理线程 链路维持线程以及监控线程其中监控线程作为主线程是由MFC程序自动创建的主线程用于创建和监控上述几个辅助线程。通信双方以C方式(SP作为客户端 ISMG作为服务器端)建立TCP连接 由函数
SP_Connect_ISMG (char IsmgIp [16] uigned short IsmgPort)实
现该函数封装了TCP/IP的Socket连接建立的过程其中参数I smgIp和工IsmgPort分别为短消息网关的IP地址和端口号CMPP3.0协议规定SP和网关之间的建立长连接时所用的端口号为7890 然后需要建立CMPP连接以实现SP和I SMG之间的短消息通信该操作的目的是SP向ISMG注册成为一个合法SP的身份 由函数CMPP_Connect()来实现。至此双方建立了基于T CP/I P的CMPP应用层连接。 该模块用两个缓冲队列来放置消息它们分别是用来存放由网关发送的消息接收队列存放SP发送到网关的消息发送队列。为了让多个线程可以互斥地从收发缓冲队列中存取数据包必须遵循 当缓冲队列已满时不能继续接收短信所有消息接收线程针对接收缓冲队列或者MT业务处理线程针对发送缓冲队列必须等待当缓冲队列为空时不能继续取出短信所有MO业务处理线程针对接受缓冲ISMGReceive threadSend threadBuffer queue queuequeueBuffer queue queue queueProcess thread TTqueue queueProcess thread queue queueDatabase队列或者消息发送线程针对发送缓冲队列必须等待。本通信模块通过使用临界区和信号量技术处理了多线程之间的同步问题。
图3 通信模块工作流程图短消息队列及其指针定义如下typedef struct cmpp_head { uigned long
TotalLength; /*消息总长度含消息头和消息体 */uigned long CommandId; /*命令或响应类型*/uigned long SequenceId; /*消息流水号顺序累加步长为1*/} CMPP_HEAD; /*CMPP消息头*/typedef struct
cmpp_packet { CMPP_HEAD Pk_head;
Char Data[CMPP_PKG_SIZE] ; /*消息体*/ uigned longSeqid; /*统一消息流水号*/ CTime Time; /*写入消息队列时间*/ BOOL Soue; /*消息类型判断即为MO还是MT消息*/} CMPP_PA CKAGE; /*消息的结构*/CMP P_PACKAGEm_SmSen d[MAX_SM_SEND]发送短消息队列CMPP_PACKAGEm_SmRecv[MAX_SM_RECV] 接收短消息队列转贴于intm_endIn 发送队列的输入指针int m_endOut 发送队列的输出指针int m_nRecvIn 接收队列的输入指针intm_nRecvOut 接收队列的输出指针其中将短消息存入短消息队列由函数PutRecvMessage 实现 void
PutRecvMes sage(CMPP_PACKAGE * pparam intnCount) {„„„„„„„„„„. .for (int i = 0; i =
MAX_SM_RECV) m_nRecvIn =
0;pparam++;„„„„„„„„„„. . }„„„„„„„„„„. . }从接
收短消息队列中取出一条短信由函数GetRecvMessage 实现 BOOLGetRecvMes sage(CMPP_PACKAGE *pparam) {„„„„„„„„„„. .EnterCriticalSection(&m_csRecv) ; if (m_nRecvOut != m_nRecvIn)
{„„„„„„„„„„. .memcpy(pparam
&m_SmRecv[m_nRecvOut] s izeof(CMPP_PACKAGE)) ;m_nRecvOut++; i f(m_nRecvOut >= MAX_SM_RECV) m_nRecvOut =
0;„„„„„„„„„„. . }LeaveCriticalSection(&m_csRecv) ;„„„„„„„„„„. . }5系统业务处理模块的设计 该
模块主要实现各种具体的短信业务通过对MO消息进行业务分类解析、业务规则处理直至生成下行MT等结果。 系统将根据用户编辑的短信判断MO 用户上行短信类型如果是用户点播类服务根据点播命令和点播内容对数据库中关系记录进行查询将查询结果生成一条短信排入到输出队列。其他类型服务以次类推。例如用户若定制股票信息编辑短信息→定制代码50→代码→发送→短信平台特服号→回馈信息至用户手机。 举例用户定制600001的股票信息在编辑短信息时输入50600001按发送键输入9688将短信息发送系统判断为定制类服务进行定制类服务处理完成定制类业务的关系记录并将信息发送给用户。用户将在每交易日的9
40、 11 35、 15 10收到600001的行情报价和动态股评 18 40收到该股的盘后评述。 6后台管理模块的设计 后台管理系统对合作企业和所有开展的业务进行管理并提供各种必须的功能。其结构示意图如图5所示 6. 1系统管理提供与系统管理相关的所有管理功能包括公有信息的维护等通过系统管理功能管理员可以对整个平台实现相应的设置、定义数据、处理系统信息。具体的说可以实现机构的管理、权限的管理、业务的管理、 以及公共信息管理等功能。 6.2业务管理 业务的基本信息、命令、计费的管理是业务的管理中心包括业务配置、业务审核和业务生效等功能 以流程化的形式实现业务全过程的管理。本短消息服务平台典型的业务管理包括通用定制管理和点播/订阅管理。 6.3用户管理模块 是对手机用户的个人信息进行管理的模块主要包括用户个人信息如姓名、手机号、个人爱好等。用户定制信息如定制内容、发送时间、发送方式用户信息的分析。 6.4记费管理 计费方式分为两种
包月制、计次制。包月、计次的费用根据不同的栏目可以人工调整。每发送一条信息都要把相关记录写入日志数据库用来计费以及将来查询使用。 日志中应包含用户的手机号码、信息的计费类别、信息发送时间等。根据日志统计用户的费用 同时要把数据上传到移动、联通或电信计费中心进行对帐。 6.5积分管理 主要包括积分福彩管理和答题积分管理。用户参加该平台开展的互动节目时可以获得积分 当积分达到指定的标准时可参加抽奖活动。 6.6 日志管理模块 日志管理模块主要提供详细的系统日志管理功能如已成功发送到中国移动、中国联通等短信网关的日志通过中国移动、 中国联通短信网关已成功发送到SP的日志等。具体包括信息及节目变更日志短信收发日志系统运行日志系统维护日志。 6. 7客服管理提供客服人员方便地进行终端用户的信息查询协助及时处理投诉和咨询。 6.8群发管理 支持群发组的号段生成文件导入定时群发等多样化的群发。 7 数据库模块的设计 本短消息服务平台采用SQL Server 2000作为后台数据库。 SQL Server 2000是一个功能完备的正规数据库管理系统支持开发的引擎、标准的SQL语言、扩展的特性(如复制、 O LAP、分析)等功能 安全性高、稳定性好 能支持大量数据的存储。前台使用基于OLE DB的ADO接口访问数据库能统一访问多种关系和非关系数据库 并有多种编程接口 访问速度快、可扩展性好、运行性能高、容易使用。数据库系统是实现系统运行数据的存取、应用用户数据的存取及日志对帐数据的数据服务。主要包括 1系统运行中数据的存取这是对应于具体应用的运行中数据这部分数据通过数据库的库交换数据方式保存系统运行中的中间数据并实现向具体的服务进程提供数据服务 2应用用户数
据的存取这是对应于具体应用的应用数据。例如信息定制的手机用户的信息、具体应用的费用信息用户的信息统一保存在内容数据库中后台管理人员可以通过管理界面完成信息栏目的添加、删除、修改等操作每日更新的信息由后台管理人员在内容编辑器中录入。
3 日志对帐数据的存储这是系统运行的日志信息及用于与移动网络运营商计费系统对帐的系统运行的费用数据的存储并向应用端提供数据服务。部分数据库表如下 (1)短消息接收表 用于存储从短消息网关接收的短信记录 (2)定时短消息发送表用于存储短消息平台定时发送的短信 3短消息发送表 用于存储即时发送短信以及定时到点可立即发送的短信 4用户基本信息表 记录用户的手机号码姓名兴趣爱好等 5系统管理员表记录管理员的认证信息用来验证系统管理员的身份 6定制表 记录手机用户定制的各种服务信息 7点播表记录手机用户点播的各种服务信息
8 日志表记录系统发送和接收短信的历史纪录 9含敏感内容消息表记录用户和系统管理员提交的含有敏感字段的短信日志
10费率表 记录不同的业务对应的具体资费每种业务分为按条和包月两种费率 11 日志与网关对应表存储日志类型和不同运营商网关协议中的SMS资费对应关系 12系统信息表 存储固定的系统信息如口令提示和使用帮助等 8结论 本短消息服务平台系统支持多运营商可以同时接入多家移动、联通或电信只需添加配置即可无须做系统结构、代码改动支持多业务服务系统实行模块化的设计方便新业务的开发。该平台目前已经成功应用于实际的短消息增值业务与中国移动联通等网关的连接均具有较好的稳定性能够满足系统通信应用的要求使用效果良好。参考文献1
感恩一年有你!免费领取2核4G套餐!2核4G轻量应用服务器2核 CPU 4GB内存 60G SSD云硬盘 6Mbps带宽领取地址:https://cloud.tencent.com/act/pro/lighthousethankyou活动规则活动时间2021年9月23日 ~ 2021年10月23日活动对象腾讯云官网已注册且完成实名认证的国内站用户(协作者与子用户账号除外),且符合以下活动条件:账号...
我们在选择虚拟主机和云服务器的时候,是不是经常有看到有的线路是BGP线路,比如前几天有看到服务商有国际BGP线路和国内BGP线路。这个BGP线路和其他服务线路有什么不同呢?所谓的BGP线路机房,就是在不同的运营商之间通过技术手段时间各个网络的兼容速度最佳,但是IP地址还是一个。正常情况下,我们看到的某个服务商提供的IP地址,在电信和联通移动速度是不同的,有的电信速度不错,有的是移动速度好。但是如果...
易探云产品限时秒杀&QQ音乐典藏活动正在进行中!购买易探云香港/美国云服务器送QQ音乐绿钻豪华版1年,价值180元,性价比超级高。目前,有四大核心福利产品推荐:福利一、香港云服务器1核1G2M,仅218元/年起(香港CN2线路,全球50ms以内);福利二、美国20G高防云服务器1核1G5M,仅336元/年起(美国BGP线路,自带20G防御);福利三、2G虚拟主机低至58.8元/年(更有免费...