一种信息推送方法、装置及相关设备与流程

文档序号:24499720发布日期:2021-03-30 21:28阅读:104来源:国知局
一种信息推送方法、装置及相关设备与流程

本申请涉及互联网技术领域,特别涉及一种信息推送方法,还涉及一种信息推送装置、设备及计算机可读存储介质。



背景技术:

目前,众多的业务系统都有通知推送的需求,而这些业务系统常常需要兼容不同的推送服务或系统来满足用户不同的通知需求,如邮件、短信、微信、qq、钉钉、webhook(网络钩子)、第三方推送平台等。在相关技术中,通常是以硬编码加联调对接的方式去对接不同的推送服务或系统,但是,这种方式实现后存在复用程度低、通用困难的问题,而且,这种直接对接操作以及对接之后的版本兼容工作重复且繁重,耗时耗力、实现困难且成本消耗巨大。

因此,如何快速高效地实现不同推送服务或系统的信息推送,降低成本消耗是本领域技术人员亟待解决的问题。



技术实现要素:

本申请的目的是提供一种信息推送方法,该信息推送方法可以快速高效地实现不同推送服务或系统的信息推送,通用性高且成本消耗较低;本申请的另一目的是提供一种信息推送装置、设备及计算机可读存储介质,均具有上述有益效果。

第一方面,本申请提供了一种信息推送方法,包括:

根据信息推送指令调用语法解析器;

利用所述语法解析器对预设信息推送脚本进行解析,获得待推送信息;其中,所述预设信息推送脚本利用领域特定语言构建获得;

将所述待推送信息发送至语法执行器;

利用所述语法执行器对所述待推送信息进行推送。

优选的,所述利用所述语法解析器对预设信息推送脚本进行解析,获得待推送信息,包括:

利用antlr对所述预设信息推送脚本进行解析,获得所述待推送信息。

优选的,所述利用所述语法执行器对所述待推送信息进行推送,包括:

利用所述语法执行器将所述待推送信息发送至目标推送对象;其中,所述目标推送对象根据查询指令从预设存储设备中查询获得。

优选的,所述信息推送方法还包括:

通过所述语法执行器获取信息推送结果。

优选的,所述信息推送方法还包括:

当所述信息推送结果为推送失败信息时,根据所述推送失败信息生成日志文件。

第二方面,本申请还公开了一种信息推送装置,包括:

语法解析器调用模块,用于根据信息推送指令调用语法解析器;

脚本解析模块,用于利用所述语法解析器对预设信息推送脚本进行解析,获得待推送信息;其中,所述预设信息推送脚本利用领域特定语言构建获得;

语法执行器调用模块,用于将所述待推送信息发送至语法执行器;

信息推送模块,用于利用所述语法执行器对所述待推送信息进行推送。

优选的,所述脚本解析模块具体用于利用antlr对所述预设信息推送脚本进行解析,获得所述待推送信息。

优选的,所述信息推送模块具体用于利用所述语法执行器将所述待推送信息发送至目标推送对象;其中,所述目标推送对象根据查询指令从预设存储设备中查询获得。

第三方面,本申请还公开了一种信息推送设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的任一种信息推送方法的步骤。

第四方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种信息推送方法的步骤。

本申请所提供的一种信息推送方法,包括根据信息推送指令调用语法解析器;利用所述语法解析器对预设信息推送脚本进行解析,获得待推送信息;其中,所述预设信息推送脚本利用领域特定语言构建获得;将所述待推送信息发送至语法执行器;利用所述语法执行器对所述待推送信息进行推送。

可见,本申请所提供的信息推送方法,利用领域特定语言实现信息推送脚本的构建,进而基于该信息推送脚本实现信息推送,通过领域特定语言统一了不同信息推送方式的定义,从而可以快速高效地实现不同推送服务或系统的信息推送,有效地提高了增加了对接代码的复用程度,简化了使用推送信息的门槛,通用性高且成本消耗低。

本申请所提供的一种信息推送装置、设备及计算机可读存储介质,均具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。

图1为本申请所提供的一种信息推送方法的流程示意图;

图2为本申请所提供的另一种信息推送方法的流程示意图;

图3为本申请所提供的一种信息推送系统的功能模块示意图;

图4为本申请所提供的一种信息推送装置的结构示意图;

图5为本申请所提供的一种信息推送设备的结构示意图。

具体实施方式

本申请的核心是提供一种信息推送方法,该信息推送方法可以快速高效地实现不同推送服务或系统的信息推送,通用性高且成本消耗较低;本申请的另一核心是提供一种信息推送装置、设备及计算机可读存储介质,也具有上述有益效果。

为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

信息推送是指由信源主动将信息推送给用户的一种方式,在计算机系统领域常常用到这种模式,可以达到很好地及时性。特别是在安全领域,及时性是至关重要的,新的威胁、新的漏洞都需要及时通知到用户或安全技术人员,否则关键系统很可能会遭受破坏。目前,众多的业务系统都有信息推送的需求,而这些业务系统常常需要兼容不同的推送服务或系统来满足用户不同的通知需求,如邮件、短信、微信、qq、钉钉、webhook、第三方推送平台等。在相关技术中,通常是以硬编码加联调对接的方式去对接不同的推送服务或系统,但是,这种方式实现后存在复用程度低、通用困难的问题,而且,这种直接对接操作以及对接之后的版本兼容工作重复且繁重,耗时耗力、实现困难且成本消耗巨大。

因此,为解决上述技术问题,本申请提供了一种信息推送方法,该信息推送方法利用领域特定语言实现信息推送脚本的构建,进而基于该信息推送脚本实现信息推送,通过领域特定语言统一了不同信息推送方式的定义,从而可以快速高效地实现不同推送服务或系统的信息推送,有效地提高了增加了对接代码的复用程度,简化了使用推送信息的门槛,通用性高且成本消耗低。

请参考图1,图1为本申请所提供的一种信息推送方法的流程示意图,该信息推送方法可包括:

s101:根据信息推送指令调用语法解析器;

本步骤旨在实现语法解析器的调用,该语法解析器用于实现脚本解析功能,主要用于对预先建立的信息推送脚本(下述预设信息推送脚本)进行解析,进而实现信息推送。具体而言,当接收到信息推送指令时即可对语法解析器进行调用,该语法解析器可预存于相应的存储空间中,以便即时调用。其中,上述信息推送指令的获取方式并不唯一,可以由用户直接从前端界面输入,也可以根据预设响应条件自动触发,如定时条件,本申请对此不做限定。

s102:利用语法解析器对预设信息推送脚本进行解析,获得待推送信息;其中,预设信息推送脚本利用领域特定语言构建获得;

本步骤旨在通过脚本解析获得待推送信息,即需要推送的数据信息。具体的,在调取获得语法解析器后,即可利用该语法解析器对预设信息推送脚本进行解析,获得上述带推送信息。其中,上述预设信息推送脚本利用领域特定语言(domain-specificlanguage,dsl)构建获得,dsl是指专注于某个应用程序领域的计算机语言,不同于普通的跨领域通用计算机语言(generalpurposelanguage,gpl),dsl只用在某些特定的领域,由此,可将dsl作为消息推送领域的专用语言,用以实现推送信息服务,统一度高、识别度高、且易用性高。此外,待推送信息的具体内容并不唯一,由技术人员根据实际需求进行自定义设置即可,例如,可以为网络漏洞信息、网络攻击信息等,本申请对此不做限定。

作为一种优选实施例,上述利用语法解析器对预设信息推送脚本进行解析,获得待推送信息,可以包括:利用antlr(anothertoolforlanguagerecognition,一种跨语言语法解析器)对预设信息推送脚本进行解析,获得待推送信息。

本优选实施例提供了一种具体类型的语法解析器,即antlr。具体的,antlr是一个强大的跨语言语法解析器,可以用来读取、处理、执行或翻译结构化文本或二进制文件,被广泛用来构建语言、工具和框架。可以理解的是,上述antlr仅为本优选实施例所提供的一种优选实现方式,还可以为其他类型的语法解析工具,本申请对此不做限定。在本申请中,具体采集antlr4作为语法解析器实现脚本解析功能。

s103:将待推送信息发送至语法执行器;

s104:利用语法执行器对待推送信息进行推送。

以上步骤旨在利用语法执行器实现信息推送。具体的,当基于预设信息推送脚本解析获得带推送信息时,即可将其发送至语法执行器,进而利用该语法执行器对待推送信息进行推送,至此,完成信息推送功能。其中,语法执行器类似于上述语法解析器,均是预先构建完成并存储于预设存储空间中的,便于直接调用。

作为一种优选实施例,上述利用语法执行器对待推送信息进行推送,可以包括:利用语法执行器将待推送信息发送至目标推送对象;其中,目标推送对象根据查询指令从预设存储设备中查询获得。

在进行信息推送时,具体是将待推送信息推送至目标推送对象,也即待推送信息的接收方。具体而言,可预先创建存储设备用于实现各类推送对象的存储,由此,即可根据查询指令从预设存储设备中查询获得各个推送对象,进而将待推送信息推送给目标推送对象,完成信息推送。其中,目标推送对象的具体类型并不唯一,例如,可以为邮件、短信、钉钉、qq、webhook、第三方推送平台等,本申请对此不做限定;并且,目标推送对象的数量也不唯一,可以为一个,也可以为多个。

作为一种优选实施例,该信息推送方法还可以包括:通过语法执行器获取信息推送结果。

本优选实施例所提供的信息推送方法可实现推送结果反馈功能,在完成信息推送后,即可利用语法执行器获取信息推送结果,具体可包括推送成功信息和推送失败信息,以告知用户当前信息推送结果。

作为一种优选实施例,该信息推送方法还可以包括:当信息推送结果为推送失败信息时,根据推送失败信息生成日志文件。

具体的,当信息推送结果为推送失败信息时,还可进一步生成日志文件,以告知用户异常原因,如参数信息不匹配、网络异常、目标推送对象返回的错误信息等。

可见,本申请所提供的信息推送方法,利用领域特定语言实现信息推送脚本的构建,进而基于该信息推送脚本实现信息推送,通过领域特定语言统一了不同信息推送方式的定义,从而可以快速高效地实现不同推送服务或系统的信息推送,有效地提高了增加了对接代码的复用程度,简化了使用推送信息的门槛,通用性高且成本消耗低。

本申请实施例提供了另一种信息推送方法。

请参考图2和图3,图2为本申请所提供的另一种信息推送方法的流程示意图,图3为本申请所提供的一种信息推送系统的功能模块示意图,该信息推送方法的具体实现流程如下:

1、定义通知推送场景下的领域特定语言(pushdsl):

统一语法的定义可以完整抽象通知推送逻辑,使用者或开发人员无需掌握推送实现的细节、无需对接具体的推送设备,只需掌握该语法即可0门槛使用该推送工具或系统内已实现的各种不同的推送类型(包括但不限于邮件、短信、微信、qq、钉钉、webhook、第三方推送平台等)。核心语法分为两类:查询语法(query)和推送语法(push)。

(1)查询语法(query)是指可表述查询推送相关信息含义的语法,可查询可用的推送类型(querytype),可查询不同推送类型的详细参数列表(query)。其对应的语法示例:

(2)推送语法(push)是指可表述完整的推送过程含义的语法,包含但不限于所需推送的内容、推送的类型、推送的目标对象、推送的类型所必须或选填的参数等。其对应的语法示例:

2、实现通知推送语法解析器(pushdslparser):

可用于解析使用步骤1中定义的pushdsl语句,提取出语句内提供的所有信息,包括语法类型(查询或推送)、所需推送的内容、推送的类型、推送的目标对象、推送的类型所必须或选填的参数等,用于后续执行器的具体处理。此处采用antlr4构建规则来进行语法的解析,具体规则包括:

(1)解析执行动作,一般支持两类:query和push;其中,query代表后续执行的是查询类的动作,push代表后续执行的是实际推送的动作;

(2)解析条件参数,如果是query动作,后接查询参数;如果是push动作,to后接执行参数。两类参数书写方式一致,单个参数为明确的赋值等式(形如:field=value),value数值类型支持字符串、数值、布尔、数组(数组内元素支持字符串、数值、布尔),使用常规逻辑符(and、or)关联单个参数(形如:field1=value1andfield2=value2orfield3=value3);规定type参数为唯一且必填字段。若需要一次采用多种类型推送,可数组类型赋值给type;若需要一次推送给多个对象,可数组类型赋值给dest。以下为相应参数列表示例:

(3)解析待推送信息,具体为push关键字之后、to关键字之前的内容。

3、实现通知推送语法执行器(pushdslexecutor):

同上所述,通知推送语法执行器也支持执行两类的动作:查询(query)和推送(push)。

(1)查询类,执行器中实现的是从相关存储设备或服务里获取匹配到的已有的预先定义好的不同的推送类型(包括但不限于邮件、短信、微信、qq、钉钉、webhook、第三方推送平台等)以及不同推送类型的参数列表信息;

(2)推送类,执行器中实现的是具体的推送类型(包括但不限于邮件、短信、微信、qq、钉钉、webhook、第三方推送平台等)的对接逻辑,具体是将步骤1中解析器解析出来的结果作为参数传入该执行器,执行器根据参数选择不同的类型的实现,执行最终的推送动作。此外,在完成推送后,返回推送的结果(成功或失败),如果失败,则返回失败的原因(包括但不限于不支持的参数、网络原因、推送的目标返回的错误等)。

需要说明的是,以上所述的通知推送领域特定语言(pushdsl)、通知推送语法解析器(pushdslparser)、通知推送语法执行器(pushdslexecutor)三类定义概念和实现逻辑可以包装为包括但不限于工具方法、第三方依赖包、在线系统、shell脚本、可执行程序等可供客户端(一般为程序)或使用者(一般为人)调用执行的任意方式。对于客户端或使用者,则可以采用定义的语法书写pushdsl后,再通过脚本或调用预定义的执行方法最终执行通知推送,达到推送目的。

可见,本申请实施例所提供的信息推送方法,利用领域特定语言实现信息推送脚本的构建,进而基于该信息推送脚本实现信息推送,通过领域特定语言统一了不同信息推送方式的定义,从而可以快速高效地实现不同推送服务或系统的信息推送,有效地提高了增加了对接代码的复用程度,简化了使用推送信息的门槛,通用性高且成本消耗低。

为解决上述技术问题,本申请还提供了一种信息推送装置,请参考图4,图4为本申请所提供的一种信息推送装置的结构示意图,该信息推送装置可包括:

语法解析器调用模块1,用于根据信息推送指令调用语法解析器;

脚本解析模块2,用于利用语法解析器对预设信息推送脚本进行解析,获得待推送信息;其中,预设信息推送脚本利用领域特定语言构建获得;

语法执行器调用模块3,用于将待推送信息发送至语法执行器;

信息推送模块4,用于利用语法执行器对待推送信息进行推送。

可见,本申请实施例所提供的信息推送装置,利用领域特定语言实现信息推送脚本的构建,进而基于该信息推送脚本实现信息推送,通过领域特定语言统一了不同信息推送方式的定义,从而可以快速高效地实现不同推送服务或系统的信息推送,有效地提高了增加了对接代码的复用程度,简化了使用推送信息的门槛,通用性高且成本消耗低。

作为一种优选实施例,上述脚本解析模块2可具体用于利用antlr对预设信息推送脚本进行解析,获得待推送信息。

作为一种优选实施例,上述信息推送模块4可具体用于利用语法执行器将待推送信息发送至目标推送对象;其中,目标推送对象根据查询指令从预设存储设备中查询获得。

作为一种优选实施例,该信息推送装置还可包括推送反馈模块,用于通过语法执行器获取信息推送结果。

作为一种优选实施例,该信息推送装置还可包括日志生成模块,用于当信息推送结果为推送失败信息时,根据推送失败信息生成日志文件。

对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。

为解决上述技术问题,本申请还提供了一种信息推送设备,请参考图5,图5为本申请所提供的一种信息推送设备的结构示意图,该信息推送设备可包括:

存储器10,用于存储计算机程序;

处理器20,用于执行计算机程序时可实现如上述任意一种信息推送方法的步骤。

对于本申请提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。

为解决上述问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种信息推送方法的步骤。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1