一种批量短信预处理方法

文档序号:7762147阅读:539来源:国知局
专利名称:一种批量短信预处理方法
技术领域
本发明涉及移动通信技术领域,具体涉及一种批量短信预处理方法。
背景技术
现有技术短信发送业务多采用短信发送客户端与短信代理商进行直接交互发送, 小批量短信提交到短信代理商服务器速度很快,遇到大批量短信(如广告类短信)提交时, 会出现提交速度慢,等待时间长等问题,短信发送客户端往往会出现短信提交无响应的现 象,用户体验很不友好。大批量短信提交时,短信数据量很大,若出现网络超时,则短信提交 不能正常完成,此时需要用户在短信发送客户端将失败的号码重新提交发送,效率很低。现 有技术的短信提交方式急需改进。WebService服务是建立可互操作的分布式应用程序的新平台。WebService服务 是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言, 在任何你喜欢的平台上写WebService服务,只要我们可以通过WebService标准对这些服 务进行查询和访问,WebService服务可以使用两种消息传递方式=One-Way messaging(单 向消息传递)或者Request/Response messaging (请求/响应消息传递)。SOAP (Simple Object Access Protocol),是一种标准消息传递协议,是WebService服务的事实标准协 议。SOAP是以XML为基础,SOAP消息格式是由XML Schema模式定义,通过XML命名空间 使SOAP具有很强的扩展性。WebService服务放在Web服务器上,客户生成的SOAP请求 会被嵌入在一个HTTP POST请求中,发送到Web服务器。Web服务器再把这些请求转发给 WebService处理器。WebService处理器解析收到的SOAP请求,调用WebService服务应用 程序,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方 式把它送回到客户端。

发明内容
本发明要解决的技术问题是提供一种批量短信预处理方法,克服现有技术短信提 交方式在大批量短信提交时提交速度慢、等待时间长、用户体验差、容易导致提交失败的缺 陷。本发明为解决上述技术问题所采用的技术方案为一种批量短信预处理方法,包括步骤Al、短信发送客户端对短信发送数据进行分组;A2、短信发送客户端将分组后的所述短信发送数据进行压缩;A3、短信发送客户端将压缩后的所述短信发送数据发送到缓存服务器;A4、缓存服务器将所述短信发送数据解压缩;A5、缓存服务器将解压缩后的所述短信发送数据存储到缓存目录中并建立相应的 索引文件;A6、缓存服务器将所述短信发送数据发送到短信代理商服务器。
3
所述的批量短信预处理方法,其中所述步骤Al包括步骤短信发送客户端在对所 述短信发送数据进行分组之前先进行手机号码合法性检查。所述的批量短信预处理方法,其中所述步骤Al包括步骤短信发送客户端对短信 内容中是否包含非法词语进行检查。所述的批量短信预处理方法,其中所述步骤Al包括步骤短信发送客户端进行短 信黑名单检查。所述的批量短信预处理方法,其中所述步骤A2包括步骤短信发送客户端调用 Zlip库中的TCompressionStream类对所述短信发送数据进行压缩。所述的批量短信预处理方法,其中所述步骤A3包括步骤短信发送客户端将所述 短信发送数据通过WebService服务发送到缓存服务器。所述的批量短信预处理方法,其中所述步骤A5包括步骤缓存服务器在数据库中 建立所述索引文件。所述的批量短信预处理方法,其中所述步骤A5包括步骤在缓存服务器上设置缓 存处理程序,所述缓存处理程序用于查找和发送所述短信发送数据,所述缓存处理程序采 用多线程工作方式。所述的批量短信预处理方法,其中所述步骤A5包括步骤在缓存服务器上设置监 控程序来对所述缓存处理程序进行监控。本发明的有益效果本发明批量短信预处理方法使短信发送客户端提交短信时间 大大缩短(如20万条短信提交只需不到2秒),极大的提高了提交效率,即使在网络状态不 好的情况下也能持续地完成短信提交任务,保证了短信提交的实时性和稳定性。


本发明包括如下附图图1为本发明批量短信预处理方法流程示意图;图2为本发明批量短信预处理方法短信发送客户端处理流程示意图;图3为本发明批量短信预处理方法缓存服务器处理流程示意图
具体实施例方式下面根据附图和实施例对本发明作进一步详细说明如图1所示,短信发送客户端对短信发送数据进行分组和压缩;然后分批通过 WebSevice服务将短信发送数据发送到缓存服务器;缓存服务器将短信发送数据解压缩, 存储到缓存目录中并建立相应的索引文件,再启动缓存处理程序将短信发送数据发送到短 信代理商服务器。如图2和图3所示,短信发送客户端首先对短信发送数据进行合法性检查,检查完 毕后,对短信内容进行分页,然后对短信号码进行分组,对不同页的短信内容分别获取短信 分组号码,获取后组成发送的xml格式数据,压缩后发送给缓存服务器。缓存服务器对xml 格式数据进行解压缩处理,启动多个缓存处理程序,获取相关的短信发送数据后,将短信发 送数据发送到短信代理商服务器。对于如下的短信发送数据短信号码200000个,短信内容130字通过具体实施例说明其提交过程。 短信发送客户端 1、短信发送数据合法性检查。a.检测发送的手机号码是否符合标准移动134,135,136,137,138,139,150,151,152,157,158,159,187,188联通:130,131,132,155,156,185,186电信133,153,180,189检测手机号码是否是11位的数字,并且数字的前3位是否在以上的号段中。号码 检测正则表达式如下:\b((% s)\d{8})+\b {11,}。b.短信非法词语检测将短信的内容存入到内存字符串smscon中,然后通过在短信发送客户端本地保 存的非法词语数据库Seriousword. db中的数据表tjmsseriousword中检索,获取当前发 送的短信内容是否有非法词语,具体的查询语句为select distinct word from t_smsseriousword where POSITION (word in' “ +smscon+' “ ) > 0〃返回的数据字段word不为空,表示有非法词语。返回的word字段为空,则表示短信内容正常。c.黑名单检测将短信的号码保存到内存字符串smsno中,然后通过短信发送客户端本地保存的 非法词语库BlackNo. db中的数据表t_BlackPhone中进行检索,获取当前发送的号码中是 否有黑名单号码,具体的查询语句为select distinct Number from t_BIackPhonewhere POSITION(Number in' “ +smsno+' “ ) > 0〃返回的数据字段Number不为空,表示发送号码中含有黑名单号码。返回的Number 字段为空,则表示发送的短信号码正常。2、短信发送数据分组、压缩和发送2-1 获取用户发送的号码个数将用户录入的短信号码读取到内存列表NumberList中。通过访问NumberList. Count的属性来获取当前用户输入的短信号码个数。NumberList. Count = 200000 ;按照分组最大个数10W/组通过TIniFile类来读取本地的配置文件IMConfig. db最大分组=TIinFile.ReadString ( iMaxGrp', ‘Sect,,‘100000,)分组数= Ceil (NumberList. Count/100000)(此处不足一页按照一页进行计算,计算结果分组数= 2组)2-2 获取短信发送内容的页数根据短信代理商提供的每条短信最多可容纳的字数来进行短信内容分页。此处示 例为70字/页(具体数据从供应商处获得),先将短信内容通过Length函数来获取当前短 信字数的个数,如=Length(短信内容)=130,然后用Ceil函数来进行分页数的计算
5
页数=Ceil (Length(短信内容)/70),不足一页按照一页进行计算,将分页后的 短信内容依次存入到内存列表ContentList中2-3 读取短信发送数据内存列表下标从O开始,O表示第一组,循环读取短信分页内容,短信内容此处分 为两页。ContentList中存储的短信内容第一页内容=ContentList
;(对应短信内容的1-70字),第二页内容=ContentList [1](对应短信内容的71-130字),NumberList中存储的号码内容第一组号码=NumberList
(对应号码为1-100000之间的号码),第二组号码=NumberList [1](对应号码为100001-200000之间的号码),2-4 组合短信发送数据循环读取短信内容,并根据每次读取的短信内容,再依次去获取对应的发送号码 后,再组合成需要发送的ml数据串。对于以上的数据,此处组合为第一组ContentList
+NumberList
第二组ContentList
+NumberList [1]第三组ContentList[l]+NumberList
第四组ContentList[l]+NumberList[1]将以上的几组数据依次按照xml格式进行组合,然后将数据读取到内存流中 (TMemoryStream),调用Zlip库中的TCompressionStream类来对数据进行压缩,最后通 过 WebService 月艮务提供的接口 DoAction (constActionCode Jnteger ;const ActionXML WideString) (ActionCode = 100)将短信发送数据发送给缓存服务器。缓存服务器1、数据接收处理接收到短信发送客户端的短信发送数据后,缓存服务器对xml格式数据进行解压 缩处理,通过Zlib库中的TDeCompressionStream类对短信发送数据进行解压缩,解压出的 xml描述文件和目标号码,存储到文件系统中的缓存目录下,同时在数据库中的索引文件中 添加一条此发送包的索引,如MsgID、PID、AccessCode、发送总数、文件路径、提交时间等信 息,索引信息存储到数据库系统中可以方便对数据检索操作,同时避免文件系统检索效率 低的弊病。2、缓存处理程序短信发送数据存储完毕后,缓存服务器启动多个缓存处理程序,缓存处理程序对 数据库中的索引文件进行读取,读取到相关的索引信息后根据索引信息在本地查找号码文 件。获取到相关的短信发送数据后,将短信发送数据发送到短信代理商服务器。另外缓存 处理程序采用多线程处理,避免在数据量过多时造成短信发送延迟。多个缓存处理程序在 不停的运作过程中,可能会出现一些异常,此时若进行人工查看并处理会导致处理不及时。 因此设置监控程序来对缓存处理程序进行监控,当发现某个缓存处理程序工作出现异常时 可以对其进行重启,实时保证缓存处理程序处于正常运作状态。如果监控程序出现异常,会自动通过Email发送日志信息到系统管理员处,系统管理员可马上对其进行处理。
本领域技术人员不脱离本发明的实质和精神,可以有多种变形方案实现本发明, 以上所述仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本 发明说明书及附图内容所作的等效结构变化,均包含于本发明的权利范围之内。
权利要求
一种批量短信预处理方法,其特征在于,包括步骤A1、短信发送客户端对短信发送数据进行分组;A2、短信发送客户端将分组后的所述短信发送数据进行压缩;A3、短信发送客户端将压缩后的所述短信发送数据发送到缓存服务器;A4、缓存服务器将所述短信发送数据解压缩;A5、缓存服务器将解压缩后的所述短信发送数据存储到缓存目录中并建立相应的索引文件;A6、缓存服务器将所述短信发送数据发送到短信代理商服务器。
2.根据权利要求1所述的批量短信预处理方法,其特征在于,所述步骤Al包括步骤 短信发送客户端在对所述短信发送数据进行分组之前先进行手机号码合法性检查。
3.根据权利要求2所述的批量短信预处理方法,其特征在于,所述步骤Al包括步骤 短信发送客户端对短信内容中是否包含非法词语进行检查。
4.根据权利要求3所述的批量短信预处理方法,其特征在于,所述步骤Al包括步骤 短信发送客户端进行短信黑名单检查。
5.根据权利要求1所述的批量短信预处理方法,其特征在于,所述步骤A2包括步骤 短信发送客户端调用Zlip库中的TCompressionStream类对所述短信发送数据进行压缩。
6.根据权利要求1所述的批量短信预处理方法,其特征在于,所述步骤A3包括步骤 短信发送客户端将所述短信发送数据通过WebService服务发送到缓存服务器。
7.根据权利要求1所述的批量短信预处理方法,其特征在于,所述步骤A5包括步骤 缓存服务器在数据库中建立所述索引文件。
8.根据权利要求7所述的批量短信预处理方法,其特征在于,所述步骤A5包括步骤 在缓存服务器上设置缓存处理程序,所述缓存处理程序用于查找和发送所述短信发送数 据,所述缓存处理程序采用多线程工作方式。
9.根据权利要求8所述的批量短信预处理方法,其特征在于,所述步骤A5包括步骤 在缓存服务器上设置监控程序来对所述缓存处理程序进行监控。
全文摘要
本发明公开了一种批量短信预处理方法,包括步骤A1、短信发送客户端对短信发送数据进行分组;A2、短信发送客户端将分组后的所述短信发送数据进行压缩;A3、短信发送客户端将压缩后的所述短信发送数据发送到缓存服务器;A4、缓存服务器将所述短信发送数据解压缩;A5、缓存服务器将解压缩后的所述短信发送数据存储到缓存目录中并建立相应的索引文件;A6、缓存服务器将所述短信发送数据发送到短信代理商服务器。本发明批量短信预处理方法使短信发送客户端提交短信时间大大缩短,极大的提高了提交效率,即使在网络状态不好的情况下也能持续地完成短信提交任务,保证了短信提交的实时性和稳定性。
文档编号H04W88/18GK101977361SQ201010507328
公开日2011年2月16日 申请日期2010年10月13日 优先权日2010年10月13日
发明者张代军, 洪侠 申请人:深圳市多赢软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1