一种短信发送方法和一种信息资源站实体的制作方法

文档序号:7917846阅读:171来源:国知局
专利名称:一种短信发送方法和一种信息资源站实体的制作方法
技术领域
本发明涉及移动通信技术领域,特别是涉及一种短信发送方法和一种信息资源站实体。
背景技术
中国移动点对点协议(CMPP,China Mobile Peer to Peer)中描述了中国移动短信业务中各网元之间的相关消息的类型和定义。这些网元包括互联网短信网关(ISMG)和信息资源站实体(SP)
信息资源站实体SP通过CMPP协议向互联网短信网关ISMG发送短信。SP中的适配器接收各个终端的短信下发请求。在适配器中,大量短信等待发送。根据CMPP协议,在适配器的端口中有一滑块,用于缓存正在发送的短信,短信向ISMG·下发,当该短信被成功发送后,滑块中清除该短信,此时滑块中有空位,会再从等待发送的大量短信中取出一短信放入滑块中向ISMG发送。在现有方案中,当有空位时,是按照均衡的原则取出短信向网关发送的,也就是说按照短信进入适配器的先后顺序,逐个向网关提交。
这种方案的缺陷是,当SP在短时间内向ISMG发送大量短信时,会给短信网关造成巨大的压力,使网关响应速度变慢,SP的发送速度也会变得及慢,短信会积压在SP端;或者是从各应用程序发送到适配器的速度大于适配器发送到ISMG的速度时,短信也会积压在 SP端。这种情况下用户就不能及时收到短信,尤其对于及时性要求较高的应用,如短信验证码等应用来说,是不能容忍的。发明内容
本发明提供了一种短信发送方法,该方法在SP端有大量的短信业务时,能保证及时性要求较高的应用程序的短信发送。
本发明还提供了一种信息资源站实体,该信息资源站实体在有大量的短信业务时,能保证及时性要求较高的应用程序的短信发送。
为达到上述目的,本发明的技术方案是这样实现的
本发明公开了一种短信发送方法,在信息资源站实体SP的适配器中,按应用分别设置多个队列,用于缓存待发送的短信;为各队列分别配置一个优先级和一个积压值;该方法包括
信息资源站实体SP的适配器将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中;
对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信。
所述方法还包括
为每个队列创建一个线程,用于从队列中取出短信进行发送;
所述暂停发送优先级比该队列低的队列中缓存的短信包括;将优先级比该队列低的队列的线程的状态信息设置为暂停,并设置相应的暂停时间;
所述优先级比该队列低的队列的线程读取自身的状态信息,根据状态信息暂停发送对应队列的短信,并在暂停时间过后恢复对对应队列的短信发送。
所述在信息资源站实体SP的适配器中,按应用分别设置多个队列包括
在SP的适配器中,按每个应用对应一个队列的原则分别设置多个队列;
或者,在SP的适配器中,按具体相同业务优先级的业务对应一个队列的原则分别为不同业务优先级的应用设置不同的队列。
所述方法还包括在各应用端,为需要发送短信的每个应用配置一个应用标识 Appid ;
所述在信息资源站实体SP中,按应用分别设置多个队列,具体根据各应用的 Appid分别设置多个队列。
该方法进一步包括
获取ISMG处理短信发送的平均时间长度;
根据ISMG处理短信发送的平均时间长度,确定一个门限等级,发送优先级高于或等于该门限等级的队列中的短信到ISMG,而暂停低于该门限等级的队列中的短信的发送。
对于高于或等于所述门限等级的队列,所述方法还包括
对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发 送优先级比所述队列低的队列中缓存的短信。
所述获取ISMG处理短信发送的平均时间长度包括
获取当前时间前预设周期内向ISMG发送成功的各条短信的发送时间长度T,及发送成功的短信数量;
所述成功发送的各条短信的发送时间长度之和,除以发送成功的短信数量,得到当前时间前预设周期内ISMG平均处理一条短信发送所用的时间TavOT。
所述获取当前时间前预设周期内向ISMG发送成功的各条短信的发送时间长度T, 及发送成功的短信数量还包括利用数组以单位时间对所述时间长度T和短信数量进行记录,具体包括
以单位时间作为标识,在数组I的不同位置处记录不同时刻获取的时间长度T,并在数组2对应位置处存储对应的短信数量;
所述成功发送的各条短信的发送时间长度之和,除以发送成功的短信数量包括
用数组I中的全部数值的和除以数组2中的全部数值的和,得到ISMG平均处理一条短信发送所用的时间Tavw。
本发明还公开了一种信息资源站实体,该信息资源站实体包括适配器和监控单元;所述适配器中,按应用分别设置有多个队列,用于缓存待发送的短信;
适配器,用于将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中;
监控单元,用于对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信。
所述监控单元,还用于获取ISMG处理短信发送的平均时间长度;根据ISMG处理短信发送的平均时间长度,确定一个门限等级,发送优先级高于或等于该门限等级的队列中的短信到ISMG,而暂停低于该门限等级的队列中的短信的发送;
所述监控单元,还用于对优先级高于或等于所述门限等级的队列,执行所述的如下过程对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信。
由上述可见,本发明这种在信息资源站实体SP的适配器中,按应用分别设置多个队列,用于缓存待发送的短信;为各队列分别配置一个优先级和一个积压值;SP的适配器将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中;对各队列进行监控, 当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信的技术方案,在SP端有大量的短信业务时,能保证及时性要求较高的应用程序的短信发送。


图1是本发明中SP中的适配器向ISMG发送短信的示意图2是本发明实施例中的一种短信发送方法的流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1是本发明中SP中的适配器向ISMG发送短信的示意图。如图1所示,SP中的适配器接收各个终端的短信下发请求。在适配器中,大量短信会按照规则分别进入各个队列等待发送。端口中的滑块用于缓存正在发送的短信,短信向ISMG下发,当该短信被成功发送后,清除缓存的该短信滑块中清除该短信,此时滑块中有空位,会再从队列中取出一短信放入滑块中向ISMG发送。
图2是本发明实施例中的一种短信发送方法的流程图。在信息资源站实体SP的适配器中,按应用分别设置多个队列,用于缓存待发送的短信,为各队列分别配置一个优先级和一个积压值,则如图2所示,该方法包括
201,信息资源站实体SP的适配器将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中。
在本发明的实施例中在SP的适配器中,按每个应用对应一个队列的原则分别设置多个队列,即为每一个应用分别设置一个队列;或者,在SP的适配器中,按具体相同业务优先级的业务对应一个队列的原则分别为不同业务优先级的应用设置不同的队列,即为不同业务优先级的应用设置不同的队列,而对相同业务优先级的应用设置同一个队列。
在各应用端,可以为需要发送短信的每个应用配置一个应用标识Appid;则所述在信息资源站实体SP中,按应用分别设置多个队列,具体是根据各应用的Appid分别设置多个队列。
本步骤中,SP的适配器将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中包括将接收到的待发送短信缓存到该短信的来源应用所对应的队列中。
当在SP的适配器中,为每一个应用分别设置一个队列时,所述为各队列分别配置一个优先级和一个积压值包括为相同优先级的队列配置相同的积压值。积压值是一个大于O的整数。在本发明的一个实施例中,可以先为需要发送短信的每个应用(或称为应用程序配)置一个应用标识,用于唯一标识该应用,并为配置的每个应用标识设定一个优先级和一个积压值。
202,对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信。
具体来说,本步骤中为每个队列创建一个线程,用于从队列中取出短信进行发送;当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,将优先级比该队列低的队列的线程的状态信息设置为暂停,并设置相应的暂停时间;优先级比该队列低的队列的线程读取自身的状态信息,根据状态信息暂停发送对应队列的短信,并在暂停时间过后恢复对对应队列的短信发送。
在图2所述的方法中,还可以进一步获取ISMG处理短信发送的时间长度,根据 ISMG处理短信发送的时间长度,确定一个门限等级,发送优先级高于或等于该门限等级的队列的短信到ISMG,而暂停低于该门限等级的队列的短信的发送。对于高于或等于所述门限等级的队列,执行所述的如下过程对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短 目。
所述获取ISMG处理短信发送的平均时间长度包括获取当前时间前预设周期内向ISMG发送成功的各条短信的发送时间长度Τ,及发送成功的短信数量;所述成功发送的各条短信的发送时间长度之和,除以发送成功的短信数量,得到当前时间前预设周期内 ISMG平均处理一条短信发送所用的时间Tav 。
其中,当短信向ISMG发送成功后,会接收到ISMG返回的确认消息,因此具体可以根据向ISMG发送短信的时间以及ISMG返回确认消息的时间之间的差值计算出ISMG处理一条短信发送所用的时间T ;对ISMG发送多条短信的时间进行求平均处理,得到ISMG平均处理一条短信发送所用的时间Taver。
所述获取当前时间前预设周期内向ISMG发送成功的各条短信的发送时间长度T, 及发送成功的 短信数量还包括利用数组以单位时间对所述时间长度T和短信数量进行记录,具体包括
以单位时间作为标识,在数组I的不同位置处记录不同时刻获取的时间长度T,并在数组2对应位置处存储对应的短信数量;
所述成功发送的各条短信的发送时间长度之和,除以发送成功的短信数量包括
用数组I中的全部数值的和除以数组2中的全部数值的和,得到ISMG平均处理一条短信发送所用的时间Tavw。
所述以单位时间作为标识,在数组I的不同位置处记录不同时刻获取的时间长度 T,并在数组2对应位置处记录对应的短信数量包括
设置长度均为N的数组I和数组2,N为自然数,根据所述预设周期计算得到,其中,所述预置周期为N或为N的整数倍;
每获取一个T值,将当前时间t的分钟数乘以60再加上当前时间t的秒数,然后再模N,得到一个O N-1之间的数值;
将上述计算得到的数值作为位置标识,将T值放入数组I中对应的位置,其中,如果对应位置有多个T,则在对应位置中记录多个T的和;在数组2的对应位置中记录已在数组I的对应位置中录入的T的数量;
若距离上次记录时间超出门限时间,向数组I和数组2中执行添O的操作,其中, 所述门限时间值为小于所述预设周期;
分别为数组I和数组2设置指针参数,分别用于记录数组I和数组2上一次操作的位置,如果当前计算出的位置与指针参数记录的上一次操作位置不同时,判断是否已超出一个所述预设周期,是则清空数组I和数组2当前位置处中的值,重新进行记录当前获取的时间长度和短信数量;否则继续累积记录。
在本发明的一个实施例中,所述根据ISMG处理短信发送的时间长度,确定一个门限等级具体如假设有1、2、3、4、5个优先级等级的队列,其中等级I的优先级最高,其他等级的优先级按序递减。如果ISMG处理短信发送的时间长度小于1000ms,则发送所有优先级等级的队列的短信,即无门限等级发送所有5个队列的短信,在此基础处上,监控该5个列队,当监控到等级为3的队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送等级为4和等级为5的两个队列中缓存的短信。如果ISMG处理短信发送的时间长度在IOOOms到2000ms时,确定门限等级为3,则等级为1、2和3的队列的短信可以继续发送,而等级为4和5的队列的短信暂停发送,并对等级为1、2和3的队列进行监控,以此类推。这里暂停的时间长度可以根据实际情况而定。
本发明中的一种信息资源站实体,包括适配器和监控单元;所述适配器中,按应用分别设置有多个队列,用于缓存待发送的短信;
适配器,用于将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中 ;
监控单元,用于对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信。
在适配器中,为每个队列创建一个线程,用于从队列中取出短信进行发送;
所述监控单在当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,将优先级比该队列低的队列的线程的状态信息设置为暂停,并设置相应的暂停时间;优先级比该队列低的队列的线程读取自身的状态信息,根据状态信息暂停发送对应队列的短信,并在暂停时间过后恢复对对应队列的短信发送。
在所述适配器中,按每个应用对应一个队列的原则分别设置有多个队列;或者,在 SP的适配器中,按具体相同业务优先级的业务对应一个队列的原则分别为不同业务优先级的应用设置有不同的队列。
当在各应用端,为需要发送短信的每个应用配置一个应用标识Appid时,在SP中, 根据各应用的Appid分别设置有多个队列。
所述监控单元,还用于获取ISMG处理短信发送的平均时间长度;根据ISMG处理短信发送的平均时间长度,确定一个优先级等级,发送高于或等于该优先级等级的队列中的短信到ISMG,而暂停低于该优先级等级的队列中的短信的发送;
所述监控单元,还用于对高于或等于所述确定的优先级等级的队列,执行所述的如下过程对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比所述队列低的队列中缓存的短信。
所述监控单元,用于获取当前时间前预设周期内向ISMG发送成功的各条短信的发送时间长度T,及发送成功的短信数量;将所述成功发送的各条短信的发送时间长度之和,除以发送成功的短信数量,得到当前时间前预设周期内ISMG平均处理一条短信发送所用的时间TavOT。
所述监控单元具体地,以单位时间作为标识,在数组I的不同位置处记录不同时刻获取的时间长度T,并在数组2对应位置处存储对应的短信数量;用数组I中的全部数值的和除以数组2中的全部数值的和,得到ISMG平均处理一条短信发送所用的时间TavOT。
更具体来说,所述监控单元设置长度均为N的数组I和数组2,N为自然数,根据所述预设周期计算得到,其中,所述预置周期为N或为N的整数倍;每获取一个T值,将当前时间t的分钟数乘以60再加上当前时间t的秒数,然后再模N,得到一个O N-1之间的数值;将上述计算得到的数值作为位置标识,将T值放入数组I中对应的位置,其中,如果对应位置有多个T,则在对应位置中记录多个T的和;在数组2的对应位置中记录已在数组I的对应位置中录入的T的数量;
所述监控单元,进一步地,在距离上次记录时间超出门限时间时,向数组I和数组 2中执行添O的操作,其中,所述门限时间值为小于所述预设周期;分别为数组I和数组2设置指针参数,分别用于记录数组I和数组2上一次操作的位置,如果当前计算出的位置与指针参数记录的上一次操作位置不同时,判断是否已超出一个所述预设周期,是则清空数组I 和数组2当前位置处中的值,重新进行记录当前获取的时间长度和短信数量;否则继续累积记录。
本发明实施例提供的信息资源站实体中各功能模块的技术特征请参见上述方法实施例中相关描述,此处不再赘述。
综上所述,本发明这种在信息资源站实体SP的适配器中,按应用分别设置多个队列,用于缓存待发送的短信;为各队列分别配置一个优先级和一个积压值;SP的适配器将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中;对各队列进行监控 ,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信的技术方案,在SP端有大量的短信业务时,能保证及时性要求较高的应用程序的短信发送。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种短信发送方法,其特征在于,在信息资源站实体SP的适配器中,按应用分别设置多个队列,用于缓存待发送的短信;为各队列分别配置一个优先级和一个积压值;该方法包括信息资源站实体SP的适配器将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中;对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括为每个队列创建一个线程,用于从队列中取出短信进行发送;所述暂停发送优先级比该队列低的队列中缓存的短信包括;将优先级比该队列低的队列的线程的状态信息设置为暂停,并设置相应的暂停时间;所述优先级比该队列低的队列的线程读取自身的状态信息,根据状态信息暂停发送对应队列的短信,并在暂停时间过后恢复对对应队列的短信发送。
3.根据权利要求1所述的方法,其特征在于,所述在信息资源站实体SP的适配器中,按应用分别设置多个队列包括在SP的适配器中,按每个应用对应一个队列的原则分别设置多个队列;或者,在SP的适配器中,按具体相同业务优先级的业务对应一个队列的原则分别为不同业务优先级的应用设置不同的队列。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括在各应用端,为需要发送短信的每个应用配置一个应用标识Appid ;所述在信息资源站实体SP中,按应用分别设置多个队列,具体根据各应用的Appid分别设置多个队列。
5.根据权利要求1至4中任一项所述的方法,其特征在于,该方法进一步包括获取ISMG处理短信发送的平均时间长度;根据ISMG处理短信发送的平均时间长度,确定一个门限等级,发送优先级高于或等于该门限等级的队列中的短信到ISMG,而暂停低于该门限等级的队列中的短信的发送。
6.根据权利要求5所述的方法,其特征在于,对于高于或等于所述门限等级的队列,所述方法还包括对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信。
7.根据权利要求6所述的方法,其特征在于,所述获取ISMG处理短信发送的平均时间长度包括获取当前时间前预设周期内向ISMG发送成功的各条短信的发送时间长度T,及发送成功的短信数量;所述成功发送的各条短信的发送时间长度之和,除以发送成功的短信数量,得到当前时间前预设周期内ISMG平均处理一条短信发送所用的时间TavOT。
8.根据权利要求7所述的方法,其特征在于,所述获取当前时间前预设周期内向ISMG 发送成功的各条短信的发送时间长度T,及发送成功的短信数量还包括利用数组以单位时间对所述时间长度T和短信数量进行记录,具体包括以单位时间作为标识,在数组I的不同位置处记录不同时刻获取的时间长度T,并在数组2对应位置处存储对应的短信数量;所述成功发送的各条短信的发送时间长度之和,除以发送成功的短信数量包括 用数组I中的全部数值的和除以数组2中的全部数值的和,得到ISMG平均处理一条短信发送所用的时间Tavw。
9.一种信息资源站实体,其特征在于,该信息资源站实体包括适配器和监控单元;所述适配器中,按应用分别设置有多个队列,用于缓存待发送的短信;适配器,用于将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中;监控单元,用于对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信。
10.根据权利要求9所述的信息资源站实体,其特征在于,所述监控单元,还用于获取ISMG处理短信发送的平均时间长度;根据ISMG处理短信发送的平均时间长度,确定一个门限等级,发送优先级高于或等于该门限等级的队列中的短信到ISMG,而暂停低于该门限等级的队列中的短信的发送;所述监控单元,还用于对优先级高于或等于所述门限等级的队列,执行所述的如下过程对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信。
全文摘要
本发明公开了一种短信发送方法和一种信息资源站实体。所述方法包括在信息资源站实体SP的适配器中,按应用分别设置多个队列,用于缓存待发送的短信;为各队列分别配置一个优先级和一个积压值;SP的适配器将接收到的待发送短信按其对应的业务优先级缓存到对应的队列中;对各队列进行监控,当监控到一个队列中缓存的待发送短信数量超过该队列对应的积压值时,暂停发送优先级比该队列低的队列中缓存的短信的技术方案,在SP端有大量的短信业务时,能保证及时性要求较高的应用程序的短信发送。本发明的技术方案在SP端有大量的短信业务时,能保证及时性要求较高的应用程序的短信发送。
文档编号H04W4/14GK103024699SQ20111028397
公开日2013年4月3日 申请日期2011年9月22日 优先权日2011年9月22日
发明者徐延 申请人:北京神州泰岳软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1