本发明涉及终端应用的应用消息管理领域,尤其涉及一种应用消息管理平台及方法。
背景技术:
::随着终端互联网业务的快速发展,同一家公司往往会为用户提供多种应用,如属于同一公司提供的微信、qq等应用,为更好的服务用户,公司通过短信等消息为用户服务已经在大部分应用中使用。针对消息服务,在现有技术中,一个公司会在短信服务商等应用消息处理平台注册短信等账号后分发给其提供的各个应用,并配置应用消息管理平台,通过该平台将来自用户终端内终端应用的应用消息发送至对应的应用消息处理平台进行处理,该方法存在这样的问题:如果有价格更加低廉的服务商与公司合作或者其他原因,导致短信等账号发生变化时,整个应用消息管理平台的对接流程需要重新开发。技术实现要素:本发明的主要目的在于提出一种应用消息管理平台及方法,旨在解决现有应用消息管理平台在账号发生变化时需要重新开发的问题。为实现上述目的,本发明提出一种应用消息管理平台,包括:至少一个应用消息接口、至少两个消息消费通道、接收模块、控制模块及发送模块,其中,应用消息接口用于为用户终端内终端应用提供应用消息发送通道;消息消费通道用于将应用消息传输至对应的应用消息处理平台;控制模块用于监控各消息消费通道的工作状态,并根据工作状态及预设规则,从至少两个消息消费通道中选择一个消息消费通道作为目标通道;接收模块用于通过至少一个应用消息接口,接收来自终端应用的应用消息;发送模块用于通过目标通道,发送应用消息。在一些实施例中,还包括缓存模块,发送模块包括多个相互独立的发送子模块;缓存模块分别连接发送子模块,用于根据应用标识及应用校验参数,对接收模块接收到的应用消息进行参数校验,在校验通过后进行协议封装处理,并缓存至消息队列;多个相互独立的发送子模块用于采用多线程工作方式,在空闲时监控消息队列中是否缓存有应用消息,若是,则调取消息队列中的应用消息。在一些实施例中,还包括记录模块,记录模块用于监控发送模块所发送的各应用消息的发送状态,记录并存储各应用消息的发送状态,发送状态包括发送成功、发送失败及失败原因。在一些实施例中,还包括计数模块,控制模块还用于配置待限制应用、计数周期及限制阈值;计数模块用于分别统计在计数周期内,同一用户终端中各待限制应用的应用消息发送次数,在待限制应用的应用消息发送次数高于限制阈值时,拒绝再次发送对应待限制应用的应用消息。在一些实施例中,控制模块还用于在检测到目标通道的工作状态异常时,重新选择工作状态正常的消息消费通道作为新的目标通道,或者,还用于在接收到消息消费通道的配置参数时,配置新消息消费通道,将新消息消费通道作为新的目标通道。同时,本发明提供了一种应用消息管理方法,包括:监控各消息消费通道的工作状态,并根据工作状态及预设规则,从至少两个消息消费通道中选择一个消息消费通道作为目标通道;消息消费通道用于将应用消息传输至对应的应用消息处理平台;通过至少一个应用消息接口,接收来自终端应用的应用消息;应用消息接口用于为用户终端内终端应用提供应用消息发送通道;通过目标通道,发送应用消息。在一些实施例中,在接收应用消息之后,还包括:根据应用消息对应的应用标识及应用校验参数,对应用消息进行参数校验;在校验通过后进行协议封装处理,并缓存至消息队列;此时,通过目标通道,发送应用消息包括:采用多线程工作方式,在空闲时监控消息队列中是否缓存有应用消息,若是,则调取消息队列中的应用消息,并通过目标通道,发送应用消息。在一些实施例中,在发送应用消息之后,还包括:监控各应用消息的发送状态,发送状态包括发送成功、发送失败及失败原因;记录并存储各应用消息的发送状态。在一些实施例中,在发送应用消息之前,还包括:配置待限制应用、计数周期及限制阈值;分别统计在计数周期内,同一用户终端中各待限制应用的应用消息发送次数;在待限制应用的应用消息发送次数高于限制阈值时,拒绝再次发送对应待限制应用的应用消息。在一些实施例中,在从至少两个消息消费通道中选择一个消息消费通道作为目标通道之后,还包括:在检测到目标通道的工作状态异常时,重新选择工作状态正常的消息消费通道作为新的目标通道;或者,在接收到消息消费通道的配置参数时,配置新消息消费通道,将新消息消费通道作为新的目标通道。本发明实施例所提出的一种应用消息管理平台及方法,该应用消息管理平台预先设置至少两个消息消费通道,在工作时,可以根据各通道的工作状态以及一些预设规则选择目标通道,将来自用户终端的应用消息通过目标通道发送至对应的应用消息处理平台;这样,在账号发生变化时,应用消息处理平台仅需将变化后账号对应的消息消费通道作为目标通道,即可进行后续应用消息的管理,而不需要对整个应用消息管理平台的对接流程重新开发,解决了现有应用消息管理平台在账号发生变化时需要重新开发的问题,降低了维护成本。附图说明图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图;图2为如图1所示的移动终端的无线通信系统示意图;图3为本发明应用消息管理平台第一实施例的结构示意图;图4为本发明应用消息管理平台第二实施例的结构示意图;图5为本发明应用消息管理方法第一实施例的流程图;图6为本发明应用消息管理方法第二实施例的流程图;图7为本发明实施例涉及的应用消息处理流程图;图8为本发明实施例涉及的应用消息处理框图;图9为本发明实施例涉及的消息发送频率限制方法的示意图;图10为本发明实施例涉及的通道切换流程的示意图;图11为本发明实施例涉及的通道示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。本发明涉及的用户终端可以是所有设置有终端应用(如微信、支付宝等)的终端设备,可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(personaldigitalassistant,pda)、便捷式媒体播放器(portablemediaplayer,pmp)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字tv、台式计算机等固定终端。后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。请参阅图1,其为实现本发明各个实施例的一种移动终端的硬件结构示意图,该移动终端100可以包括:rf(radiofrequency,射频)单元110、用户输入单元120、显示单元130、存储器140、处理器150、以及电源160等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。下面结合图1对移动终端的各个部件进行具体的介绍:射频单元110可用于收发信息或通话过程中,信号的接收和发送,具体的,将基站的下行信息接收后,给处理器150处理;另外,将上行的数据发送给基站。通常,射频单元110包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于gsm(globalsystemofmobilecommunication,全球移动通讯系统)、gprs(generalpacketradioservice,通用分组无线服务)、cdma2000(codedivisionmultipleaccess2000,码分多址2000)、wcdma(widebandcodedivisionmultipleaccess,宽带码分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,时分同步码分多址)、fdd-lte(frequencydivisionduplexing-longtermevolution,频分双工长期演进)和tdd-lte(timedivisionduplexing-longtermevolution,分时双工长期演进)等。用户输入单元120可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元120可包括触控面板1201以及其他输入设备1202。触控面板1201,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1201上或在触控面板1201附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1201可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器150,并能接收处理器150发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1201。除了触控面板1201,用户输入单元120还可以包括其他输入设备1202。具体地,其他输入设备1202可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。显示单元130用于显示由用户输入的信息或提供给用户的信息。显示单元130可包括显示面板1301,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板1301。存储器140可用于存储软件程序以及各种数据。存储器140可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器140可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。处理器150是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器140内的软件程序和/或模块,以及调用存储在存储器140内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器150可包括一个或多个处理单元;优选的,处理器150可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成在处理器150中。移动终端100还可以包括给各个部件供电的电源160(比如电池),优选的,电源160可以通过电源管理系统与处理器150逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。尽管图1未示出,移动终端100还可以包括蓝牙模块等,在此不再赘述。为了便于理解本发明实施例,下面对本发明的移动终端所基于的通信网络系统进行描述。为了便于理解本发明实施例,下面对本发明的移动终端所基于的通信网络系统进行描述。请参阅图2,图2为本发明实施例提供的一种通信网络系统架构图,该通信网络系统为通用移动通信技术的lte系统,该lte系统包括依次通讯连接的ue(userequipment,用户设备)201,e-utran(evolvedumtsterrestrialradioaccessnetwork,演进式umts陆地无线接入网)202,epc(evolvedpacketcore,演进式分组核心网)203、运营商的ip业务204、应用消息管理平台205和应用消息处理平台206。具体地,ue201可以是上述终端100,此处不再赘述。服务器server应用消息管理平台205可以由应用供应商提供的实体/虚拟服务器来实现,其通过基站/互联网等方式接收来自ue201中终端应用触发的应用消息,并确定对应的应用消息处理平台206,如为微信提供红包支付服务的服务器、为微信提供注册服务的服务器、为qq(一种即时聊天软件)提供红包支付服务的服务器等,通过对应的消息消费通道发送出去。服务器server应用消息处理平台206,可以由服务供应商提供的实体/虚拟服务器来实现,其通过基站/互联网等方式接收来自应用消息管理平台205转发的终端应用触发的应用消息,并进行处理,如提供红包服务、微信注册服务等。e-utran202包括enodeb2021和其它enodeb2022等。其中,enodeb2021可以通过回程(backhaul)(例如x2接口)与其它enodeb2022连接,enodeb2021连接到epc203,enodeb2021可以提供ue201到epc203的接入。epc203可以包括mme(mobilitymanagemententity,移动性管理实体)2031,hss(homesubscriberserver,归属用户服务器)2032,其它mme2033,sgw(servinggateway,服务网关)2034,pgw(pdngateway,分组数据网络网关)2035和pcrf(policyandchargingrulesfunction,政策和资费功能实体)2036等。其中,mme2031是处理ue201和epc203之间信令的控制节点,提供承载和连接管理。hss2032用于提供一些寄存器来管理诸如归属位置寄存器(图中未示)之类的功能,并且保存有一些有关服务特征、数据速率等用户专用的信息。所有用户数据都可以通过sgw2034进行发送,pgw2035可以提供ue201的ip地址分配以及其它功能,pcrf2036是业务数据流和ip承载资源的策略与计费控制策略决策点,它为策略与计费执行功能单元(图中未示)选择及提供可用的策略和计费控制决策。ip业务204可以包括因特网、内联网、ims(ipmultimediasubsystem,ip多媒体子系统)或其它ip业务等。虽然上述以lte系统为例进行了介绍,但本领域技术人员应当知晓,本发明不仅仅适用于lte系统,也可以适用于其他无线通信系统,例如gsm、cdma2000、wcdma、td-scdma以及未来新的网络系统等,此处不做限定。基于上述移动终端硬件结构以及通信系统,提出本发明方法各个实施例。如图3所示,基于上述移动终端硬件结构以及通信系统,提出本发明的应用消息管理平台的实施例,具体的,本发明提供的应用消息管理平台包括:至少一个应用消息接口31(图3中的31-1……31-n)、至少两个消息消费通道32(图3中的32-1……32-n)、接收模块33、控制模块34及发送模块35,其中,应用消息接口31用于为用户终端内终端应用提供应用消息发送通道;在实际应用中,应用消息接口31可以是一些门户网站等网页,也可以是短信/邮件等通信方式的通信目标地址等;消息消费通道32用于将应用消息传输至对应的应用消息处理平台;在实际应用中,消息消费通道32可以是一些门户网站等网页,也可以是短信/邮件等通信方式的通信目标地址等;控制模块34用于监控各消息消费通道的工作状态,并根据工作状态及预设规则,从至少两个消息消费通道中选择一个消息消费通道作为目标通道;接收模块33用于通过至少一个应用消息接口,接收来自终端应用的应用消息;在实际应用中,应用消息携带产生应用消息的应用标识及应用校验参数、用户终端的设备唯一标识或者用户标识等,其中,应用标识(如appid)及应用校验参数(如appkey),所有用户终端上的相同的、合法的终端应用具有相同的appid和appkey,不同的终端应用使用不同的appid和appkey,这些参数可以由平台同一分配,应用标识及应用校验参数用于应用消息管理平台终端应用的合法性进行校验;而用户终端的设备唯一标识(如mac地址)或者用户标识(用户注册的手机号码、用户名等),则是用来确定服务对象;发送模块35用于通过目标通道,发送应用消息。在实际应用中,应用消息管理平台还包括缓存模块,发送模块包括多个相互独立的发送子模块;缓存模块分别连接发送子模块,用于根据应用标识及应用校验参数,对接收模块接收到的应用消息进行参数校验,在校验通过后进行协议封装处理,并缓存至消息队列;多个相互独立的发送子模块用于采用多线程工作方式,在空闲时监控消息队列中是否缓存有应用消息,若是,则调取消息队列中的应用消息。进一步的,在实际应用中,应用消息管理平台还包括记录模块,记录模块用于监控发送模块所发送的各应用消息的发送状态,记录并存储各应用消息的发送状态,发送状态包括已接收未发送、发送成功、发送失败及失败原因。现结合图7及图8进行详细说明:如图7所示,应用消息处理流程包括:s701:终端应用调用终端的smsapi(短信接口),产生应用消息,通过应用消息管理平台的应用消息接口,将应用消息发送至应用消息管理平台;s702:应用消息管理平台根据应用标识及应用校验参数对应用消息进行参数校验;若校验通过,则进行后续封装等处理,执行步骤s704,若校验未通过,则向用户终端反馈参数异常消息,执行步骤s703;s703:向用户终端反馈参数异常消息,提醒用户应用消息发送错误;s704:对应用消息进行封装;在实际应用中,可以使用bean(一种描述java的软件组件类型)封装数据。s705:数据缓存到消息队列;在实际应用中,将bean数据发送至rabbitmq(一种使用通用的并行程序设计语言,如erlang编写的一个开源的消息队列);并初始化rabbitmq。s706:读取消息队列内的应用消息,作为待发送的应用消息;采用多线程工作方式,读取rabbitmq中的应用消息。s707:校验消息类型是否合法;在实际应用中,不同目的的应用消息对应不同的消息类型,在进行bean封装时,若封装错误,将会导致后续应用消息的发送失败;因此,本步骤对应用消息的消息类型进行校验,若校验通过,则进行后续发送处理,执行步骤s709,若校验未通过,则反馈消息类型异常消息,执行步骤s708;s708:向用户终端反馈消息类型异常消息,提醒用户应用消息发送错误;s709:调用消息消费通道,发送应用消息;在实际应用中,本步骤通过调用短信发送通道,尝试向目标应用消息消费平台发送应用消息;s710:判断发送是否成功;在尝试发送之后,需要判断发送是否成功,例如根据是否接收到响应消息来判断,若接收到响应消息,则认为发送成功,执行步骤s711,若未接收到响应消息,则认为发送失败,执行步骤s712;s711:保存已发送短信;s712:向用户终端反馈发送失败消息,提醒用户应用消息发送失败。在图7中,应用消息管理平台的短信发送接口的设计简单,满足了短信发送对时效性的较高要求,如要求在60s内收到短信,没有影响短信发送的时效性,同时,遵循先到先发送的原则,采用消息队列机制实现。同时,短信接口只做参数校验,校验完成将消息发送至消息队列,确保多线程并发进来时按照先进先出的原则,防止因为线程处理的无序性造成消息发送不一致,并且还可以对进入消息队列前后都有消息状态保存机制,便于出现异常时分析问题,发送完成后持久化保存数据,便于后期查询统计,针对失败的消息同时保存失败原因。如图8所示,为防止消息队列堵塞,耗费太多时间,可以在消息队列消费端(发送子模块)采用多线程处理机制,快速消费消息,确保消息通道畅通,在实际应用中,多个发送子模块一直保持监听阻塞状态,一旦有消息过来会快速进行消费,防止出现访问量增大时出现消息堵塞而影响整个公司所提供的终端应用的消息发送效率。在实际应用中,应用消息管理平台还包括计数模块,控制模块还用于配置待限制应用、计数周期及限制阈值;计数模块用于分别统计在计数周期内,同一用户终端中各待限制应用的应用消息发送次数,在待限制应用的应用消息发送次数高于限制阈值时,拒绝再次发送对应待限制应用的应用消息。针对一些应用,如微信注册消息,用户一般情况下不会多次发送,那么,针对这些应用消息,可以限制发送频率,具体的如图9所示,消息发送频率限制方法包括:s901:设置待限制应用、计数周期及限制阈值;例如,将微信注册应用作为待限制应用,计数周期为24小时、限制阈值为3次。s902:在消息队列中读取到待限制应用的应用消息,判断是否超过发送频率;例如在rabbitmq中的读取到微信注册应用的应用消息,判断是否大于24小时3次的发送频率,若是,则执行s903,若否,则执行s904;s903:拒绝发送应用消息;s904:发送应用消息,更新发送频率并存储;在发送应用消息之后,将该应用(微信注册应用)的应用消息发送次数增加一次后,保存到系统缓存,系统缓存的有效期为24小时。如图9所示,应用消息管理平台实现了对所有终端应用的短信发送频率的统一控制,也可以实现对某个终端应用的发送频率进行控制,防止因为误操作导致多次重复发送的问题,进而降低短信发送的成本。例如,为终端应用添加默认发送频率,如某个应用对同一个号码一天发送的次数不超过3次,该应用该号码的频率数据临时存储在缓存,有效期设置为24h,24h后自动删除,确保24h该号码能正常发送,该号码每次发送时,缓存数据会同步+1,直到达到频率设置次数后拒绝再次发送。在实际应用中,控制模块还用于在检测到目标通道的工作状态异常时,重新选择工作状态正常的消息消费通道作为新的目标通道,或者,还用于在接收到消息消费通道的配置参数时,配置新消息消费通道,将新消息消费通道作为新的目标通道。具体的,如图10所示,如果对应用消息消费通道进行统一切换,首先需要删除缓存中内容,然后更新数据库,最后将更新后的应用统一再次加载到缓存中,应用调用时才会用到最新的通道类型,这样首先应用会保存到缓存中确保应用的校验能快速完成,通过满足通道的切换,如某一通道不可用或因为价格太贵需要切换,那后台能将所有应用的通道马上切换,并能保证即时生效,不影响其他应用的正常业务,同时,也可以对单个应用进行切换,与此类似,不再赘述。综上所述,本发明实施例所提出的一种应用消息管理平台,该应用消息管理平台预先设置至少两个消息消费通道,在工作时,可以根据各通道的工作状态以及一些预设规则选择目标通道,将来自用户终端的应用消息通过目标通道发送至对应的应用消息处理平台;这样,在账号发生变化时,应用消息处理平台仅需将变化后账号对应的消息消费通道作为目标通道,即可进行后续应用消息的管理,而不需要对整个应用消息管理平台的对接流程重新开发,解决了现有应用消息管理平台在账号发生变化时需要重新开发的问题,降低了维护成本。图4为本发明应用消息管理平台的一种结构示意图,如图4所示,本实施例提供的应用消息管理平台至少包括:输入输出(io)总线41、处理器42、ram43、内存44、通信模块45(在本发明中,通信模块45包括接收模块及发送模块等)。其中,输入输出(io)总线41分别与自身所属的终端的其它部件(处理器42、存储器43、内存44和通信模块45)连接,并且为其它部件提供传送线路。处理器42通常控制自身所属的服务器的总体操作。例如,处理器42执行计算和确认等操作。其中,处理器42可以是中央处理器(cpu)。在本实施例中,处理器42至少需要具备这样的功能:监控各消息消费通道的工作状态,并根据工作状态及预设规则,从至少两个消息消费通道中选择一个消息消费通道作为目标通道;通过至少一个应用消息接口,接收来自终端应用的应用消息;通过目标通道,发送应用消息。ram43存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器42执行本文描述的功能的指令(即软件执行功能)。在本实施例中,ram43至少需要存储有实现处理器42执行上述功能需要的程序,还需要存储终端状态与响应灵敏度的对应关系。其中,本发明提供的终端中,实现所有模块功能的软件代码可存储在存储器43中,并由处理器42执行或编译后执行。内存44,一般采用半导体存储单元,包括随机存储器(ram),只读存储器(rom),以及高速缓存(cache),ram是其中最重要的存储器。内存44是计算机中重要的部件之一,它是与cpu进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,其作用是用于暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据,只要计算机在运行中,cpu就会把需要运算的数据调到内存中进行运算,当运算完成后cpu再将结果传送出来,内存的运行也决定了计算机的稳定运行。通信模块45,包括射频天线及射频收发器,用于完成数据收发;在图4所示的应用消息管理平台构件基础上,本实施例提供的应用消息管理平台可以这样工作:处理器监控各消息消费通道的工作状态,并根据工作状态及预设规则,从至少两个消息消费通道中选择一个消息消费通道作为目标通道;通过至少一个应用消息接口,接收来自终端应用的应用消息;通过目标通道,发送应用消息。本实施例提供的应用消息管理平台,该应用消息管理平台预先设置至少两个消息消费通道,在工作时,可以根据各通道的工作状态以及一些预设规则选择目标通道,将来自用户终端的应用消息通过目标通道发送至对应的应用消息处理平台;这样,在账号发生变化时,应用消息处理平台仅需将变化后账号对应的消息消费通道作为目标通道,即可进行后续应用消息的管理,而不需要对整个应用消息管理平台的对接流程重新开发,解决了现有应用消息管理平台在账号发生变化时需要重新开发的问题,降低了维护成本。如图5所示,提出本发明应用消息管理方法第一实施例,在本实施例中,应用消息管理方法包括以下步骤:s501:监控各消息消费通道的工作状态,并根据工作状态及预设规则,从至少两个消息消费通道中选择一个消息消费通道作为目标通道;消息消费通道用于将应用消息传输至对应的应用消息处理平台;s502:通过至少一个应用消息接口,接收来自终端应用的应用消息;应用消息接口用于为用户终端内终端应用提供应用消息发送通道;s503:通过目标通道,发送应用消息。在实际应用中,图5所示方法在接收应用消息之后,还包括:根据应用消息对应的应用标识及应用校验参数,对应用消息进行参数校验;在校验通过后进行协议封装处理,并缓存至消息队列;此时,通过目标通道,发送应用消息包括:采用多线程工作方式,在空闲时监控消息队列中是否缓存有应用消息,若是,则调取消息队列中的应用消息,并通过目标通道,发送应用消息。在实际应用中,图5所示方法在发送应用消息之后,还包括:监控各应用消息的发送状态,发送状态包括发送成功、发送失败及失败原因;记录并存储各应用消息的发送状态。现结合图7及图8进行详细说明:如图7所示,应用消息处理流程包括:s701:终端应用调用终端的smsapi(短信接口),产生应用消息,通过应用消息管理平台的应用消息接口,将应用消息发送至应用消息管理平台;s702:应用消息管理平台根据应用标识及应用校验参数对应用消息进行参数校验;若校验通过,则进行后续封装等处理,执行步骤s704,若校验未通过,则向用户终端反馈参数异常消息,执行步骤s703;s703:向用户终端反馈参数异常消息,提醒用户应用消息发送错误;s704:对应用消息进行封装;在实际应用中,可以使用bean(一种描述java的软件组件类型)封装数据。s705:数据缓存到消息队列;在实际应用中,将bean数据发送至rabbitmq(一种使用通用的并行程序设计语言,如erlang编写的一个开源的消息队列);并初始化rabbitmq。s706:读取消息队列内的应用消息,作为待发送的应用消息;采用多线程工作方式,读取rabbitmq中的应用消息。s707:校验消息类型是否合法;在实际应用中,不同目的的应用消息对应不同的消息类型,在进行bean封装时,若封装错误,将会导致后续应用消息的发送失败;因此,本步骤对应用消息的消息类型进行校验,若校验通过,则进行后续发送处理,执行步骤s709,若校验未通过,则反馈消息类型异常消息,执行步骤s708;s708:向用户终端反馈消息类型异常消息,提醒用户应用消息发送错误;s709:调用消息消费通道,发送应用消息;在实际应用中,本步骤通过调用短信发送通道,尝试向目标应用消息消费平台发送应用消息;s710:判断发送是否成功;在尝试发送之后,需要判断发送是否成功,例如根据是否接收到响应消息来判断,若接收到响应消息,则认为发送成功,执行步骤s711,若未接收到响应消息,则认为发送失败,执行步骤s712;s711:保存已发送短信;s712:向用户终端反馈发送失败消息,提醒用户应用消息发送失败。在图7中,应用消息管理平台的短信发送接口的设计简单,满足了短信发送对时效性的较高要求,如要求在60s内收到短信,没有影响短信发送的时效性,同时,遵循先到先发送的原则,采用消息队列机制实现。同时,短信接口只做参数校验,校验完成将消息发送至消息队列,确保多线程并发进来时按照先进先出的原则,防止因为线程处理的无序性造成消息发送不一致,并且还可以对进入消息队列前后都有消息状态保存机制,便于出现异常时分析问题,发送完成后持久化保存数据,便于后期查询统计,针对失败的消息同时保存失败原因。如图8所示,为防止消息队列堵塞,耗费太多时间,可以在消息队列消费端(发送子模块)采用多线程处理机制,快速消费消息,确保消息通道畅通,在实际应用中,多个发送子模块一直保持监听阻塞状态,一旦有消息过来会快速进行消费,防止出现访问量增大时出现消息堵塞而影响整个公司所提供的终端应用的消息发送效率。在实际应用中,图5所示方法在发送应用消息之前,还包括:配置待限制应用、计数周期及限制阈值;分别统计在计数周期内,同一用户终端中各待限制应用的应用消息发送次数;在待限制应用的应用消息发送次数高于限制阈值时,拒绝再次发送对应待限制应用的应用消息。针对一些应用,如微信注册消息,用户一般情况下不会多次发送,那么,针对这些应用消息,可以限制发送频率,具体的如图9所示,消息发送频率限制方法包括:s901:设置待限制应用、计数周期及限制阈值;例如,将微信注册应用作为待限制应用,计数周期为24小时、限制阈值为3次。s902:在消息队列中读取到待限制应用的应用消息,判断是否超过发送频率;例如在rabbitmq中的读取到微信注册应用的应用消息,判断是否大于24小时3次的发送频率,若是,则执行s903,若否,则执行s904;s903:拒绝发送应用消息;s904:发送应用消息,更新发送频率并存储;在发送应用消息之后,将该应用(微信注册应用)的应用消息发送次数增加一次后,保存到系统缓存,系统缓存的有效期为24小时。如图9所示,应用消息管理平台实现了对所有终端应用的短信发送频率的统一控制,也可以实现对某个终端应用的发送频率进行控制,防止因为误操作导致多次重复发送的问题,进而降低短信发送的成本。例如,为终端应用添加默认发送频率,如某个应用对同一个号码一天发送的次数不超过3次,该应用该号码的频率数据临时存储在缓存,有效期设置为24h,24h后自动删除,确保24h该号码能正常发送,该号码每次发送时,缓存数据会同步+1,直到达到频率设置次数后拒绝再次发送。在实际应用中,图5所示方法在从至少两个消息消费通道中选择一个消息消费通道作为目标通道之后,还包括:在检测到目标通道的工作状态异常时,重新选择工作状态正常的消息消费通道作为新的目标通道;或者,在接收到消息消费通道的配置参数时,配置新消息消费通道,将新消息消费通道作为新的目标通道。具体的,如图10所示,如果对应用消息消费通道进行统一切换,首先需要删除缓存中内容,然后更新数据库,最后将更新后的应用统一再次加载到缓存中,应用调用时才会用到最新的通道类型,这样首先应用会保存到缓存中确保应用的校验能快速完成,通过满足通道的切换,如某一通道不可用或因为价格太贵需要切换,那后台能将所有应用的通道马上切换,并能保证即时生效,不影响其他应用的正常业务,同时,也可以对单个应用进行切换,与此类似,不再赘述。综上所述,本实施例所提出了一种应用消息管理方法,该方法预先设置至少两个消息消费通道,在工作时,可以根据各通道的工作状态以及一些预设规则选择目标通道,将来自用户终端的应用消息通过目标通道发送至对应的应用消息处理平台;这样,在账号发生变化时,应用消息处理平台仅需将变化后账号对应的消息消费通道作为目标通道,即可进行后续应用消息的管理,而不需要对整个应用消息管理平台的对接流程重新开发,解决了现有应用消息管理平台在账号发生变化时需要重新开发的问题,降低了维护成本。如图6所示,提出本发明应用消息管理方法第二实施例,在本实施例中,应用消息管理方法包括以下步骤:s601:配置至少两个消息消费通道;在实际应用中,如图11所示,配置至少两个消息消费通道,应用消息管理平台400通过通道1(短信号码*******1)及通道2(短信号码*******2)连接应用消息处理平台500-1、通道3(短信号码*******3)连接应用消息处理平台500-2,应用消息处理平台500-1及应用消息处理平台500-2提供相同的业务,如注册服务等。s602:从至少两个消息消费通道中选择一个消息消费通道作为目标通道;在t1时刻,选择通道1作为目标通道。s603:通过目标通道发送应用消息;在t1时刻-t2时刻内,通过通道1发送应用消息。s604:目标通道堵塞,切换目标通道;在t2时刻,通道1堵塞,选择通道2作为新的目标通道,采用图10所示的切换机制。s605:配置新通道,切换目标通道;在t3时刻,应用消息处理平台500-2的服务价格实惠,服务质量好,选择通道3作为新的目标通道,采用图10所示的切换机制。本实施例提出了一种应用消息管理方法,预先设置至少两个消息消费通道,在工作时,可以根据各通道的工作状态以及一些预设规则选择目标通道,将来自用户终端的应用消息通过目标通道发送至对应的应用消息处理平台;这样,在账号发生变化时,应用消息处理平台仅需将变化后账号对应的消息消费通道作为目标通道,即可进行后续应用消息的管理,而不需要对整个应用消息管理平台的对接流程重新开发,解决了现有应用消息管理平台在账号发生变化时需要重新开发的问题,降低了维护成本。本发明实施例所提出的一种应用消息管理平台及方法,该应用消息管理平台预先设置至少两个消息消费通道,在工作时,可以根据各通道的工作状态以及一些预设规则选择目标通道,将来自用户终端的应用消息通过目标通道发送至对应的应用消息处理平台;这样,在账号发生变化时,应用消息处理平台仅需将变化后账号对应的消息消费通道作为目标通道,即可进行后续应用消息的管理,而不需要对整个应用消息管理平台的对接流程重新开发,解决了现有应用消息管理平台在账号发生变化时需要重新开发的问题,降低了维护成本。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域:
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12