一种基于分布式存储的短信管理系统及方法
技术领域
本发明涉及分布式存储领域,尤其涉及一种基于分布式存储的短信管理系统及方法。
背景技术
目前,客户发送短信的过程中,短信是先发送至第三方代理商的短信业务平台,也称为短信平台,短信平台将用户提交过来的短信转发至运营商处理,运营商接收短信后会返给短信平台响应信息,响应信息为运营商返回给短信平台的短信提交状态。目前,短信管理的平台存在如下问题:
(1)可靠性差,任意网络设备、任意主机、或线缆出现故障均导致服务不可用
(2)不具备可伸缩性,当业务出现增长时不支持扩展
(3)承载能力差,并发能力差,再业务高峰期时因为并发问题容易引起卡顿甚至宕机
发明内容
为解决上述技术问题,本发明提出了一种基于分布式存储的短信管理系统及管理方法,通过加入的数据库中间件,将一组组数据串联成分布式数据库,有效解决容量、并发、以及水平扩展问题,并且极大提升了系统的性能和稳定性。
根据本发明的实施例,本发明提出了一种基于分布式存储的短信管理系统,该系统包括应用服务层、数据缓存层、持久层以及展示层,其中,
所述应用服务层,用于基于不同运营商类别的短信接口模块接收第一短信数据,对所述第一短信数据基于预设的策略管理模型进行安全性验证,将验证后的第一短信数据经预处理后形成第二短信数据及对应的通道数据,将所述第二短信数据及所述通道数据发送至数据缓存层;
所述数据缓存层,用于缓存第二短信数据及通道数据,基于调度策略将第二短信数据形调度至其对应的通道中;
所述持久层采用主从同步的方式,对调度到分布式数据库中的短信进行对应存储;
所述展示层,用于基于用户的查询请求向用户展示短信数据。
进一步的,所述应用服务层包括,
第一数据初始化模块,用于设置策略管理模型,并对所述模型中的各参数进行初始化,其中,所述策略管理模型包括敏感内容匹配、黑白名单匹配以及合法内容预设匹配,所述参数包括黑名单、白名单、用户的短信模块、关键词、号段;
接口程序模块,用于提供不同运营商类别的标准短信接口模块及http短信发送模块,从而为不同用户提供其对应的通信接口;
预处理模块,用于调用预设的策略管理模型验证短信的安全性,将验证后的第一短信数据经预处理后形成第二短信数据及对应的通道数据,并将第二短信数据及其对应的通道数据发送至数据缓存层,其中,所述第二短信数据包括入库待审核短信数据、出库待发送短信数据。
进一步的,所述调用预设的策略管理模型验证短信的安全性,具体包括,
敏感内容匹配验证模型,通过多种维度的敏感类别、包括危险级别、屏蔽级别、九不准级别、违法级别的分类展示及查询匹配方式对短信进行安全验证;
和/或,
黑白名单匹配验证模型,通过预设的入库钓鱼黑名单、投诉黑名单、用户黑名单、全局白名单、用户级白名单对短信进行安全验证;
和/或,
合法内容预设匹配验证模型,通过提供多种维度的合法类别、完美级别、绿名单级别、审核级别的分类展示及查询预设方式对短信进行安全验证。
进一步的,所述应用服务层还包括短信通讯模块,用于基于CMPP或者HTTP接口接收用户的短信,以及接收来自数据缓存层返回的CMPP回执数据或HTTP回执数据。
进一步的,应用服务层包括一匹配更新模块,用于基于所述CMPP回执数据或HTTP回执数据判断是否需要更新短信发送或接收队列,若需要,则进行相应更新。
进一步的,所述数据缓存层包括,
第二数据初始化模块,用于将基础数据初始化到相关服务的内容中,并提供相关接口,其中,所述基础数据包括黑名单、白名单、关键词以及模块数据;所述相关接口包括新增、修改、删除、重载接口。
一组或多组redis模块,用于缓存第二短信数据及通道数据;包括所述第二短信数据中待发送短信数据的下方状态、回执状态,待审核短息数据的审核状态数据。
调度模块,用于将待发送短信调度至短信网关,执行发送程序并接收来自短信网关的回执数据;以及,用于将待审核短信调度至审核平台进行审核,并接收审核完成的短信数据;还用于将短信发送完毕的回执通过所述数据库中间件写入水平库以及形成回执报告返回给用户。
进一步的,所述持久层包括一个或多个主数据库、至少一种或多种日志文件库以及数据库中间件,其中,所述主数据库的每一个节点采用OracleDG作为节点,通过分析出第二短信数据所对应存储的数据库,以将所述第二短信数据存入至相关联的水平库中;所述日志文件用于将系统与用户交互的各类数据以文本的形式分类别存储;所述数据库中间件包括一组或多组主备互用且水平扩展的oracle数据库。
进一步的,所述展示层包括,
Web页面,用于向用户展示企业信息,包括企业产品信息、产品详细信息;
后台管理模块,用于对用户与系统交互的短信数据以及账单数据分析与统计,还包括企业经营状况的数据分析;
短信管理模块,用于对用户与系统交互的短信数据的统计分析,包括短信发送状态、策略管理模型中的各参数数据查询;
运维监控模块,用于对系统服务器的网络、磁盘、CPU、内存、负载以及程序进程的监控与告警。
进一步的,所述展示层还包括人机交互界面,用于用户通过该界面通过预设的权限登录系统,并基于用户需要向用户展示其对应的各类数据查询页面。
根据本发明的实施例,本发明还提出了基于短信管理系统的短信管理方法,包括:
步骤S1.用户通过http接口或者CMPP接口向系统发送各运营商的第一短信数据;
步骤S2.所述系统调用预设策略管理模型验证所述第一短信数据的安全性,将验证完成后的第一短信数据经预处理后形成第二短信数据及对应的通道数据,并将第二短信数据及其对应的通道数据存储至分布式缓存中,其中,所述策略管理模型包括敏感内容匹配、黑白名单匹配以及合法内容预设匹配;所述第二短信数据包括入库待审核短信数据、出库待发送短信数据;
步骤S3.扫描所述分布式缓存中的第二短信数据以及其对应的通道数据,提取出所述第二短信数据的数据类型,若为待审核短信数据,进入步骤S4;若为出库待发送短信数据,进入步骤S5;
步骤S4.提取出待审核数据,审核的信息加入到审核表中,对所述待审核短信进行审核,审核通过的短信进入分布式缓存中,并进入待发送短信队列,审核失败的短信形成第一回执数据,并进入步骤S6;
步骤S5.提取出出库待发送短信数据,并形成待发送短信队列,将所述待发送短信队列提交至短信网关,在预设时间内接收到基于短信提交状态的第二回执数据,将所述第二回执数据存入分布式缓存中,并与原始短信信息进行匹配组合,形成待更新队列;若在预设时间内未接收到回执,则将该短信入到短信提交状态表中;
步骤S6.取出分布式缓存中的所述第二回执数据以及所述第一回执数据,形成短信回执数据,通过CMPP回执或HTTP回执返回给用户;采用多线程处理方式将匹配成功的第二回执数据通过数据库中间件存入到相应的水平库中。
本发明的有益效果:
(1)通过设置的数据库中间件,把一组组数据库串联成分布式数据库,有效解决容量、并发、以及水平扩展问题;
(2)通过一致性hash算法对短信的包头信息做hash,把多组redis单点串联成分布式内存数据库,极大提升了系统的性能和稳定性;
(3)解放了数据库的压力,通过分库分表的模式,使得数据库可以动态伸缩,可根据业务的需要调整数据库的实例;
(4)采用大数据的方式统计分析短信相关发送数据,可做到任意一条短信的发送时间。并可做到多维度的经营分析以及多维度的数据统计报表,统计上采用了等待合并的统计方式,降低数据的量级,无需统计原始亿级的表,更加快速准确。
附图说明
图1为本发明提出的基于分布式存储的短信管理系统框架图;
图2为本发明提出的基于分布式存储的短信管理系统模块交互图;
图3为本发明提出的基于分布式存储的短信管理系统核心架构图;
图4为本发明提出的基于分布式存储的短信管理方法流程图;
图5为本发明提出的基于分布式存储的短信管理系统业务流程图。
具体实施方式
为便于理解,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出了一种基于分布式存储的短信管理系统及管理方法,从而为现有的短信管理提供一种新的方案,并在各个方面体现出本发明的优势,具体来说,包括如下内容:
(1)扩展性
采取模块化设计的可扩展性,减少修改和再开发的成本。当用户数量增加时,系统可以随时在线增加硬件设备的数量。可根据系统的实际情况,针对不同的服务器分别进行升级,降低系统额外负载。扩容过程不影响用户正在使用的业务。
(2)可伸缩性
系统架构能适应今后可能出现的较大任务负载。硬件平台具有可升级性,支持新增设备与原有设备共同工作,在提高系统的处理能力的同时,充分利用原有设备。应用软件的设计要符合今后系统扩充的要求,并且提供用于扩展的开发接口。
(3)可靠性
业务系统无单点故障,任意主机、网络设备或线缆出现故障时均不会导致系统宕机。
(4)稳定性
系统无单点故障,系统采用模块化和层次化的构件方式,有效实现故障屏蔽。在硬件和软件系统上都采用并行运行机制,每台服务器都可以拥有完整的运行系统,由前端的负载平衡设备有效完成服务均担,且单台系统发生故障时,可以自动检测到,将任务请求分配到其它正常的服务器上。
(5)安全性
系统设计有完整的安全接入措施和用户认证手段,具有严格的分级分层次用户权限管理,以及访问控制、安全日志和操作记录的管理,做到安全、可控、可查,支持事件的统计和分析,作为提升安全措施和安全策略的参考依据。
(6)开放性
平台具备良好的开放性,实现模块间的标准接口,支持第三方平台和业务的接入,支持通用的X86服务器设备。在进行扩容时,平台的稳定性和安全性等性不会因设备的改变而下降。
(7)可维护性
平台与各个模块(包括内部和外部)的日志,均能够详细记录,在处理相关问题时,能够进行溯源。
(8)统一性
用统一的视觉规范,继承现有系统风格。
结合上述具体内容以及本发明实施例的具体实施方式,以下详细阐述本发明的技术方案。
如图1-3所示,给出了基于分布式存储的短信管理系统框架图,本发明的短信管理系统具体包括:应用服务层、数据缓存层、持久层以及展示层,其中,所述应用服务层,用于基于不同运营商类别的短信接口模块接收第一短信数据,对所述第一短信数据基于预设的策略管理模型进行安全性验证,将验证后的第一短信数据经预处理后形成第二短信数据及对应的通道数据,将所述第二短信数据及所述通道数据发送至数据缓存层。
在本发明中,应用服务层具体包括第一数据初始化模块、接口程序模块、预处理模块以及相应的短信通讯模块。
第一数据初始化模块,用于设置策略管理模型,并对所述模型中的各参数进行初始化,其中,所述策略管理模型包括敏感内容匹配、黑白名单匹配以及合法内容预设匹配,所述参数包括黑名单、白名单、用户的短信模块、关键词、号段。
接口程序模块,用于提供不同运营商类别的标准短信接口模块及http短信发送模块,从而为不同用户提供其对应的通信接口。在本发明的实施例中,接口包括了电信、移动以及联通的短信接口,CMPP接口,http接口,还设置有包括第三方接口的接口模块,以应对不同用户的接口需要。
在本发明中,CMPP接口包括:
(1)短信提交:提供标准的CMPP短信接口,验证原地址的ip、子码的安全性,确保短信正确有效的提交。;
(2)状态接收:提供实时推送短信的回执报告和上行回复内容的功能。
HTTP接口:提供http短信提交接口,针对于提交账户安全性校验、ip校验。
第三方接口:针对腾讯相关协议接口做短信的适配,确保短信可以发送。
预处理模块,用于调用预设的策略管理模型验证短信的安全性,将验证后的第一短信数据经预处理后形成第二短信数据及对应的通道数据,并将第二短信数据及其对应的通道数据发送至数据缓存层,其中,所述第二短信数据包括入库待审核短信数据、出库待发送短信数据。
在本发明的实施例中,调用预设的策略管理模型验证短信的安全性,具体包括:
敏感内容匹配验证模型,通过多种维度的敏感类别、包括危险级别、屏蔽级别、九不准级别、违法级别的分类展示及查询匹配方式对短信进行安全验证;
和/或,
黑白名单匹配验证模型,通过预设的入库钓鱼黑名单、投诉黑名单、用户黑名单、全局白名单、用户级白名单对短信进行安全验证;
和/或,
合法内容预设匹配验证模型,通过提供多种维度的合法类别、完美级别、绿名单级别、审核级别的分类展示及查询预设方式对短信进行安全验证。
在本发明的策略管理设置中,除了上述三种模型外,也可以根据实际需要设置其他策略管理模型,比如号段数据、危险等级设置、通用模板模型、策略调度模型等,其主要目的在于对接收到的短信进行安全验证管理,这些方式都属于本发明的保护范围内。
短信通讯模块,用于基于CMPP或者HTTP接口接收用户的短信,以及接收来自数据缓存层返回的CMPP回执数据或HTTP回执数据。
匹配更新模块,用于基于所述CMPP回执数据或HTTP回执数据判断是否需要更新短信发送或接收队列,若需要,则进行相应更新。
在本发明的实施例中,如图4所示,本发明的数据缓存层的目的在于两个方面,一方面进行基础数据的初始化,另外一方面在于短信的待审核、已发、待下发、以及提交状态回执报告等短信业务相关数据的存储,同时,本发明的数据缓存层还兼顾短信的调度。具体来说,数据缓存层包括第二数据初始化模块、一组或多组redis模块、调度模块。
其中,第二数据初始化模块,用于将基础数据初始化到相关服务的内容中,并提供相关接口,其中,所述基础数据包括黑名单、白名单、关键词以及模块数据;所述相关接口包括新增、修改、删除、重载接口。
一组或多组redis模块,用于缓存第二短信数据及通道数据;包括所述第二短信数据中待发送短信数据的下方状态、回执状态,待审核短息数据的审核状态数据。
调度模块,用于将待发送短信调度至短信网关,执行发送程序并接收来自短信网关的回执数据;以及,用于将待审核短信调度至审核平台进行审核,并接收审核完成的短信数据;还用于将短信发送完毕的回执通过所述数据库中间件写入水平库以及形成回执报告返回给用户。
本发明的将待发送短信调度至短信网关,具体设置为网关调度方案,包括网关对接、通道信息配置以及回执的推送三部分。
(1)网关对接:可视化对接移动、电信、联通网关;
(2)通道信息配置:根据通道的属性,配置保存通道相关属性信息;
(3)回执推送:CMPP用户短信回执推送及http用户短信回执推送。
对于短信本身也设置相应的短信审核、短信发送状态配置的管理,具体来说,短信审核包括对短信的单挑和批量的审核,审核方式包括关键词审核以及智能审核,本发明在审核过程中也可以基于策略管理模型进行审核,具体审核标准不做具体限制;此外,短信状态包括短信的待发、已发以及拦截等功能。在本发明中,待审核短信、待发送短信以及相应的回执数据都需要基于短信状态来进行处理。
本发明的持久层主要包括三个方面,基于数据库中间件的数据存储、数据库节点的主从同步工作模块确保数据的正常运行以及相应的日志文件进行数据的文件存储模式,本发明的短信管理系统的持久层采用主从同步的方式,对调度到分布式数据库中的短信进行对应存储,具体来说,如下内容:
持久层包括一个或多个主数据库、至少一种或多种日志文件库以及数据库中间件,其中,所述主数据库的每一个节点采用OracleDG作为节点,通过分析出第二短信数据所对应存储的数据库,以将所述第二短信数据存入至相关联的水平库中;所述日志文件用于将系统与用户交互的各类数据以文本的形式分类别存储;所述数据库中间件包括一组或多组主备互用且水平扩展的oracle数据库。
在本发明的短信管理系统中,设置展示层,以向用户提供数据查询、展示服务。其包括:
Web页面,用于向用户展示企业信息,包括企业产品信息、产品详细信息;
后台管理模块,用于对用户与系统交互的短信数据以及账单数据分析与统计,还包括企业经营状况的数据分析;
短信管理模块,用于对用户与系统交互的短信数据的统计分析,包括短信发送状态、策略管理模型中的各参数数据查询;
运维监控模块,用于对系统服务器的网络、磁盘、CPU、内存、负载以及程序进程的监控与告警。
在本发明中,设置的展示层可以作为一种辅助系统,以用来对短信管理系统的辅助,包括了各种功能管理的配置、人机交互、权限管理、接口设置等内容。如配置管理包括工具配置功能,提供应用管理、业务管理、工具类管理、公共管理、数据查询等功能;人机界面:提供业务和应用的查询、个人中心-提供已发送短信的查询;核心逻辑:账号统一鉴权中心,安全性校验;数据同步:数据同步,实现同步短信提交相关数据和网关发送话单数据到hadoop数据统计平台,提供数据统计功能;外部接口:实现与外部客户、渠道客户的的外部接口;数据统计:提供短信相关记录的查询。
展示层中的后台管理模块包括了一体化短信流程、数据统计、日志管理以及系统管理。
一体化短信流程报表查询功能,提供短信提交、审核、发送、状态接收等功能,支持短信发送、状态接收等分类统计查询。
数据统计包括:
(1)用户行为统计功能:对开发的活动页面进行用户行为统计,并提供查询数据页面;
(2)月报表:实现按月级别的数据统计,并提供查询页面;
(3)天报表:实现天级别的数据统计,并提供查询页面;
(4)小时报表:实现小时级别的数据统计,并提供查询页面。
日志管理包括:
(1)操作查询:对平台内所有的操作进行统计,并可查询;
(2)菜单统计:可统计平台内所有菜单的点击量并提供查询页面
系统管理包括用户的账号、权限、角色以及密码等相关参数的管理。
用户在系统提交短信数据后,可以基于本系统通过查询的方式获取相应的短信状态数据以及回执数据,具体的查询方式包括通过手机号、用户、日期、批次号、签名等等维度,查询相关短信发送数据。用户还可以基于该系统的统计数据模型,向用户展示多维度数据,从而基于本系统实现短信的有效管理。
根据本发明的实施例,如图4所示,本发明还提出了一种基于短信管理系统的短信管理方法,包括:
步骤S1.用户通过http接口或者CMPP接口向系统发送各运营商的第一短信数据;
步骤S2.所述系统调用预设策略管理模型验证所述第一短信数据的安全性,将验证完成后的第一短信数据经预处理后形成第二短信数据及对应的通道数据,并将第二短信数据及其对应的通道数据存储至分布式缓存中,其中,所述策略管理模型包括敏感内容匹配、黑白名单匹配以及合法内容预设匹配;所述第二短信数据包括入库待审核短信数据、出库待发送短信数据;
步骤S3.扫描所述分布式缓存中的第二短信数据以及其对应的通道数据,提取出所述第二短信数据的数据类型,若为待审核短信数据,进入步骤S4;若为出库待发送短信数据,进入步骤S5;
步骤S4.提取出待审核数据,审核的信息加入到审核表中,对所述待审核短信进行审核,审核通过的短信进入分布式缓存中,并进入待发送短信队列,审核失败的短信形成第一回执数据,并进入步骤S6;
步骤S5.提取出出库待发送短信数据,并形成待发送短信队列,将所述待发送短信队列提交至短信网关,在预设时间内接收到基于短信提交状态的第二回执数据,将所述第二回执数据存入分布式缓存中,并与原始短信信息进行匹配组合,形成待更新队列;若在预设时间内未接收到回执,则将该短信入到短信提交状态表中;
步骤S6.取出分布式缓存中的所述第二回执数据以及所述第一回执数据,形成短信回执数据,通过CMPP回执或HTTP回执返回给用户;采用多线程处理方式将匹配成功的第二回执数据通过数据库中间件存入到相应的水平库中。
在本发明的实施例中,如图5所示,客户通过http接口或者标准CMPP接口提交移动、电信、联通的短信信息;http服务接收到客户相关数据后,调用黑名单服务、关键词服务、号段服务、短信模板等服务,验证相关短信的安全性,验证完成后调用短信相关智能调度策略,获取相关策略的短信通道,最终存入到redis分布式缓存中;预处理模块通过短信相关策略,多线程处理短信相关内容,给执行短信相关策略,判断短信相关状态,并存入到分布式缓存中;入库模块从redis中取出相关的短信信息入库,审核的信息入审核表,拦截敏感词的信息失败,并存入到回执推送队列,待发送数据直接存储到相关的待发队列中,进行发送;讯模块通过扫描内存中待发的短信,提交相关短信到网关,提交状态存入到分布式缓存中,当网关回执回来后,通过内存中匹配到原始相关的短信信息,组合更新后入带更新队列;匹配更新程序处理60秒内回执没回来的短信入到短信提交状态表中;并多线程处理回执匹配成功队列。取出回执异步入库和异步推送短信的回执报告给客户,并生成统计数据;客服在web短信平台审核短信,审核成功的短信进入到待发队列,准备发送,走短信发送相关流程,审核失败的短信直接推送短信回执并入库。
在本发明中提供了定时服务,以用于对短信的归档、短信的告警等设置。
通过上述方案实现了短信管理系统对短信数据的有效管理,通过短信业务内容全内存的方式处理短信,把短信和数据库的8次交互重构到5次和内存的交互,性能提升了成百倍上千倍。可以把短信的整个业务缩短到0.6秒以内,极大提升了客户的体验感知;
对于本领域技术人员而言,显然本发明实施例不限于上述示范性实施例的细节,而且在不背离本发明实施例的精神或基本特征的情况下,能够以其他的具体形式实现本发明实施例。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明实施例的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明实施例内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统、装置或终端权利要求中陈述的多个单元、模块或装置也可以由同一个单元、模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施方式仅用以说明本发明实施例的技术方案而非限制,尽管参照以上较佳实施方式对本发明实施例进行了详细说明,本领域的普通技术人员应当理解,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。