发明内容
本发明所要解决的技术问题是提供一种基于服务信息进行处理的系统,以解决现有的网络服务信息下发消息的结果分析上仍需服务提供商自行完成问题。
为解决上述技术问题,本发明提供了一种基于服务信息进行处理的系统,应用于push日志存放空间和服务提供商之间,其特征在于,该系统包括:日志合并模块、下行消息日志分析提取模块、状态报告消息日志分析提取模块、下行消息日志分类提取分析模块、状态报告消息分类提取分析模块以及长消息按组分析模块;其中,
所述日志合并模块,与所述push日志存放空间和下行消息日志分析提取模块相耦接,用于将所述push日志存放空间的日志内容进行合并,将合并后的原始数据发送至所述下行消息日志分析提取模块;
所述下行消息日志分析提取模块,与所述日志合并模块和状态报告消息日志分析提取模块相耦接,用于接收所述日志合并模块发送的合并后的所述原始数据,并进行分析处理,得到相应的下行结果信息发送至所述状态报告消息日志分析提取模块;
所述状态报告消息日志分析提取模块,与所述下行消息日志分析提取模块和下行消息日志分类提取分析模块相耦接,用于接收所述下行消息日志分析提取模块发出的所述下行结果信息,并完成状态报告与下行消息的匹配以及统计状态值的分布情况,之后将结果信息输出至所述下行消息日志分类提取分析模块;
所述下行消息日志分类提取分析模块,与所述状态报告消息日志分析提取模块和状态报告消息分类提取分析模块相耦接,用于接收所述状态报告消息日志分析提取模块发送的所述结果信息,并进一步对所述结果信息中的数据分类提取,进行分析操作,同时分别统计各消息的反馈信息,之后将分析数据和统计信息发送至所述状态报告消息分类提取分析模块;
所述状态报告消息分类提取分析模块,与所述下行消息日志分类提取分析模块和长消息按组分析模块相耦接,用于接收所述下行消息日志分类提取分析模块发送的所述分析数据和统计信息并进行提取分析,分别统计不同类消息的发送状态报告信息,将得到状态报告消息发送至所述长消息按组分析模块;
所述长消息按组分析模块,与所述状态报告消息分类提取分析模块和服务提供商相耦接,用于接收所述状态报告消息分类提取分析模块发送的状态报告消息,并根据该状态报告消息计算其中各个任务子消息的个数,再按照子消息的个数对所述反馈信息和状态报告消息进行分组统计,发送至所述服务提供商。
进一步地,所述日志合并模块按照指定的起止时间点将所述push日志存放空间中的日志内容进行合并。
进一步地,所述日志合并模块进一步还用于生成分析任务。
进一步地,所述下行日志分析提取模块中分析处理后的数据包括:任务编号、下行链路、下行序列号、目标用户手机号、消息标识以及状态码。
进一步地,所述服务信息为shell脚本的服务信息。
与现有技术相比,本发明所述基于服务信息进行处理的系统,达到了如下效果:
1、本发明所述系统实现了周期调用执行,可以根据执行时刻的服务器时间选择日志(前题是PUSH接口的各类日志按天回滚)进行合并以及后续分析工作。能够保证PUSH日志分析的时间上的延续性;
2、本发明所述系统无需其他应用程序和数据库,只需要运行在linux操作系统上(系统有一定的计算能力),并且有一定的磁盘空间(用于保存中间结果和最终结果文件),操作简单,就算效率高;
3、本发明所述系统对于多个PUSH任务并发的情况,可以完成按任务的日志分离和按任务分析工作;
4、本发明所述系统能够提供详尽的分析结果:CMPP_RESP消息的整体统计和分任务统计,CMPP_DELIVER状态报告的整体统计和分任务统计;
5、本发明所述系统对于相同格式的短信群发日志,本shell脚本仍然适用;
6、本发明所述系统实现了push下发消息高速有效的分析,可获得千万级明确结果,多数基本的数据库操作完全可以使用SHELL脚本快速完成,同时使用SEHLL脚本进行数据分析的最突出的优点是无需专门安装一个数据库或单独开发相关的应用程序,大大减少了分析成本。
具体实施方式
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接受的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
以下结合附图对本发明作进一步详细说明,但不作为对本发明的限定。
如图1所示,为本发明实施例所述的一种基于服务信息进行处理的系统,该系统应用于push日志存放空间和服务提供商之间,所述push日志存放空间中包含4类日志(日志包括每一条push信息的发送时间、任务编号、传输通道类型、消息具体字段表等详细信息):submit日志(记录服务提供商下行消息的相关信息)、result日志(记录消息返回的状态以及生成消息标识)、report日志(记录状态报告消息的详情)及discard日志(记录发送多次后,仍未获得反馈的下行消息);
所述基于服务信息进行处理的系统包括:日志合并模块101、下行消息日志分析提取模块102、状态报告消息日志分析提取模块103、下行消息日志分类提取分析模块104、状态报告消息分类提取分析模块105以及长消息按组分析模块106;其中,
所述日志合并模块101,与所述push日志存放空间和下行消息日志分析提取模块102相耦接,用于按照指定的起止时间点将所述push日志存放空间的四类日志内容进行合并,生成分析任务,将合并后的原始数据发送至所述下行消息日志分析提取模块102。
所述下行消息日志分析提取模块102,与所述日志合并模块101和状态报告消息日志分析提取模块103相耦接,用于接收所述日志合并模块101发送的合并后的原始数据,并分析所述原始数据中result及discard日志中的内容,得到相应的下行结果信息发送至所述状态报告消息日志分析提取模块103。
所述状态报告消息日志分析提取模块103,与所述下行消息日志分析提取模块102和下行消息日志分类提取分析模块104相耦接,用于接收所述下行消息日志分析提取模块102发出的所述下行结果信息,并完成状态报告与下行消息的匹配以及统计状态值的分布情况,之后将结果信息输出至所述下行消息日志分类提取分析模块104。
所述下行消息日志分类提取分析模块104,与所述状态报告消息日志分析提取模块103和状态报告消息分类提取分析模块105相耦接,用于接收所述状态报告消息日志分析提取模块103发送的所述结果信息,并进一步对所述结果信息中的数据分类提取,进行分析操作,同时分别统计各消息的反馈信息,之后将分析数据和统计信息发送至所述状态报告消息分类提取分析模块105。
所述状态报告消息分类提取分析模块105,与所述下行消息日志分类提取分析模块104和长消息按组分析模块106相耦接,用于接收所述下行消息日志分类提取分析模块104发送的所述分析数据和统计信息,进一步对所述分析数据和统计信息进行提取分析,并分别统计不同类消息的发送状态报告信息,之后将状态报告消息发送至所述长消息按组分析模块106。
所述长消息按组分析模块106,与所述状态报告消息分类提取分析模块105和服务提供商相耦接,用于接收所述状态报告消息分类提取分析模块105发送的所述状态报告消息,并根据该状态报告消息计算其中各个任务子消息的个数,再按照子消息的个数对所述反馈信息和状态报告消息进行分组统计,发送至所述服务提供商。
本发明上述实施例是基于shell脚本(利用高级功能语言编写的程序)运行实现的,本领域技术人员可以理解,任何具有基本处理功能的命令行解释器都适用于本发明所述系统,在此不做出限定。
下面为一具体实施例(该实施例也是基于shell脚本运行实现的)
所述push日志存放空间包含submit日志、result日志、report日志以及discard日志,其中
submit日志记录服务提供商下行消息的相关信息,具体可以是SUBMIT消息(服务提供商向短信网关提交的消息)、时间信息以及任务信息。所述时间信息记录了当前SUBMIT消息的具体时间;所述任务信息的格式可以是:任务编号|下行通道|通道序列号,分别记录了当前SUBMIT消息对应的任务编号,该SUBMIT消息所在的下行链路通道,该SUBMIT消息在其发送的下行链路通道中的编号(序列号)。
result日志记录消息返回的状态以及生成消息标识,具体可以是SUBMIT_RESP消息(SUBMIT消息的应答消息)和MSGID(消息标识,是由短信中心生成的消息ID,是下行消息与状态报告消息进行匹配的标识)。
report日志记录状态报告消息的详情,具体可以是DELIVER消息(由短信网关发送至服务提供商的消息)。
discard日志记录发送多次后,仍未获得反馈的下行消息,具体可以是SUBMIT消息重发了指定的(由PUSH接口配置决定)次数后仍然未获得对应的SUBMIT_RESP消息的SUBMIT消息本身,该日志对消息补发至关重要。
所述日志合并模块101按照指定的起止时间点(单位为天)将submit日志,result日志,report日志,discard日志进行合并,用以生成单次执行的分析任务进行原始数据的合并归档。
由于所述DELIVER消息在SUBMIT消息出后最迟72小时内返回,为保证report的完备性,在当日进行的分析,应该是分析三天前的那一天的SUBMIT消息,SUBMIT_RESP消息,DELIVER消息,并且使用的DELIVER消息应该是三天前那一天开始到当前为止的所有DELIVER消息,同时需要考虑该模块应该有能力重新处理历史上的任何一天的数据,所以该模块能够一个时间参数,并以该参数为基准时间进行日志合并。
所述下行日志分析提取模块102接收所述日志合并模块101合并后的数据,并截取所述submit及discard日志文件中包含的手机号,排序后保存于一个文件,并且对手机号进行计数保存到统计输出文件当中,再对所述result日志进行进一步处理,排序并进行一定格式变换,最后每个result条目整理出如下信息:任务编号、下行链路、下行序列号、destTerminalId(目标用户手机号)、msgId以及result状态码,并根据result状态码,统计出各种result状态码的统计信息;
所述状态报告消息日志分析提取模块103完成状态报告与下行消息的匹配并统计状态值的分布情况,该模块接收所述日志合并模块101合并后的report日志,并截取report日志中的数据,并将所截取的数据重排序,同时进行部分格式变换,进行下行和状态报告的匹配工作,并对上述结果进行状态值分布信息统计。同时,所述状态报告消息日志分析提取模块103提取当次所有的PUSH下发任务编号的列表,并保存到一个PUSH任务列表文件当中,用于所述状态报告消息分类提取分析模块105进行PUSH任务编号分离分析时使用。
所述下行消息分类提取分析模块104从所述下行日志分析模块102的结果文件中分别提取出含有各个PUSH任务编号的信息行,计算每个PUSH下发任务的result消息总数,并且输出到以该任务编号命名的结果文件当中,计算每个PUSH任务的SUBMIT消息总量及不同SUBMIT_RESP状态值消息量的统计量。
所述状态报告消息分类提取分析模块105,从所述状态报告日志分析提取匹配模块103的结果数据中分别提取出含有各个PUSH任务编号的信息行,计算每个PUSH任务收到的状态报告的总数,对每个PUSH任务进行DELIVER消息总量及不同DELIVER状态值消息量的统计计算。
所述长消息按组分析模块106首先截取submit日志前一段内容,分析该任务每个长消息在实际下发过程中被分割成了多少条子消息进行发送,对SUBMIT_RESP消息和DELIVER消息进行按手机号和状态值进行分组统计。当同一个长消息的状态为0的子消息的数目与发送的同一个长消息的子消息数目相同时,才符合SUBMIT分组成功的选出条件,即符合条件的是同一个长消息的子消息都发送成功的长消息的个数,我们认为是真正SUBMIT成功的长消息的个数;同样,对于同一条长消息对应的多条子消息的DELIVER消息的状态报告信息,只有状态值都为DELIVRD时,才认为该条长消息为最终发送成功(状态报告值为成功)。
与现有技术相比,本发明所述基于服务信息进行处理的系统,达到了如下效果:
1、本发明所述系统实现了周期调用执行,可以根据执行时刻的服务器时间选择日志(前题是PUSH接口的各类日志按天回滚)进行合并以及后续分析工作。能够保证PUSH日志分析的时间上的延续性;
2、本发明所述系统无需其他应用程序和数据库,只需要运行在linux操作系统上(系统有一定的计算能力),并且有一定的磁盘空间(用于保存中间结果和最终结果文件),操作简单,就算效率高;
3、本发明所述系统对于多个PUSH任务并发的情况,可以完成按任务的日志分离和按任务分析工作;
4、本发明所述系统能够提供详尽的分析结果:CMPP_RESP消息的整体统计和分任务统计,CMPP_DELIVER状态报告的整体统计和分任务统计;
5、本发明所述系统对于相同格式的短信群发日志,本shell脚本仍然适用;
6、本发明所述系统实现了push下发消息高速有效的分析,可获得千万级明确结果,多数基本的数据库操作完全可以使用SHELL脚本快速完成,同时使用SEHLL脚本进行数据分析的最突出的优点是无需专门安装一个数据库或单独开发相关的应用程序,大大减少了分析成本。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。