梁丽丽,甄占坡
【摘 要】目前拥有手机的人数越来越多,与手机相关的业务随之产生,如定制天气预报、手机终端发送精彩短信等,这些业务给人们的生活带来了便利。本文从CMPP3.0网关的性能需求、软件硬件环境、程序实现等方面介绍了基于C#的CMPP3.0协议的实现与开发。
【关键词】CMPP3.0;手机短信;SP
自3G网络在中国使用以来,截至2013年3月底,中国大陆手机用户总数达到113204.3万,1-2月全国移动短信业务量1576.1亿条,其中点对点短信量878.1亿条,移动互联网服务提供商向用户提供了在INTERNTE上注册个人信息,并定制新闻、财经、购物、天气预报等相关服务。移动的短信增值接口协议cmpp3.0协议是针对手机用户提供精彩短信内容的一个SP(短信增值业务)的接口协议,用来实现手机终端发送精彩短信的通道。
1.Cmpp3.0网关的性能需求
通过对手机短信增值业务的研究,结合SP运营商的一些再即时处理方面的要求,勾画出本系统的业务模型和功能模块的划分。本系统采用B/S架构,模块主要包括号码发送管理、系统参数管理网关下发流量管理、操作日志查询四个部分,其中部分内容如下:(1)下发流量管理:利用C#多线程创建两条链路进行下发,提高单位时间内下发的速度。(2)日志状态报告的管理:利用数据库的存储进行写入操作,把下发给用户的短信状态报告写入数据库中,提供给管理平台进行查询操作。(3)系统参数管理:利用windowsAPI函数去读ini文件的配置,来灵活连接,应对移动CMPP服务端更改服务端地址后,CMPP客户端方便及时调整。
2.软硬件环境要求
2.1 软件要求
主要包括操作系统、Internet信息服务器和.NET Framework等。
2.2 硬件配置
(1)CPU处理器:建议使用志强E5级处理器。(2)内存:针对操作系统NET Framework 3.5应用程序的有不同的内存要求,如Windows Server 2003:2G内存。(3)硬盘:系统驱动器上要求900MB的可用空间,安装驱动器上要求3.3GB的可用空间,可选的MSDN库文档,另外需要1.9GB的可用空间。
3.程序设计
主界面利用多线程来控制显示信息,如图1所示。
图1 主界面
3.1 cmpp3.0网关参数的初始化
程序在启动阶段加载硬盘上的gwcfg.ini配置文件,调用windows的API方法,主要有WritePrivateProfileString和GetPrivateProfileString两个方法。
3.2 实现发送过程中对发送流量的控制
利用socket网络字节流发送的时间和本地把要下发的消息组织成CMPP网络包体的时间和需要暂停的时间差计算出来,来控制精确的数据发送流量。主要代码如下:
DateTime d1=System.DateTime.Now;
SendMsg(src_num,mobile_num,ServiceType,content,linkid);
DateTime d2=System.DateTime.Now;
float dhm=(float)(d2-d1).TotalMilliseconds;
float smsproc=((float)1000/int.Parse(smssendproc))-dhm;
int sp=(int)Math.Round(smsproc,0);
if(sp>0){Thread.Sleep(sp);}
3.3 日志处理模块
创建一个日志类class Writelog和日志消息类class showmessage,其中为了控制日志文件的大小限定了2个条件,当文件记录时长为120秒时进行数据的保存。主要代码为:
logn++;
if(logn==1){
rq=System.DateTime.Now.ToString("yyyyMMddhhmmss");
ss=savepathstr+"smsgw"+rq+".log.tmp";
ssnew=ss.Replace(".tmp","");
sr=new StreamWriter(@ss,true);
content="";
}lock(writemsg){
if(writemsg.reportInfo!=""){
content=writemsg.reportInfo;
writemsg.reportInfo="";
sr.Write(content);
sr.Flush();}}
if(logn==120){
sr.close();
FileInfo filn=new FileInfo(ss);
if(filn.Length!=0){System.IO.File.Move(ss,ssnew);}
delewav(ss);
logn=0;}
sleep(1000);
4.结束语
通过系统和全面的分析,本文设计开发了基于.NET的SP的cmpp3.0业务网关客户端系统,设计的软件系统在功能上达到了SP对业务的设计要求,基本满足了中小型SP提供商的软件产品需要。
参考文献:
[1]Simon Robinson,K.Scott Allen等.C#高级编程[M].清华大学出版社,2002.
[2]Tom Archer.C#技术内幕[M].清华大学出版社,2002.
[3]沉舟.Microsoft.NET编程语言C#[M].希望电子出版社,2001.
[4]电脑编程技巧与维护杂志社.C#编程技巧典型案例解析[M].中国电力出版社,2005.