组件的调用方法、装置、计算机设备和存储介质与流程

文档序号:30524264发布日期:2022-06-25 06:11阅读:94来源:国知局
组件的调用方法、装置、计算机设备和存储介质与流程

1.本发明涉及数据处理领域,特别是涉及组件的调用方法、装置、计算机设备和存储介质。


背景技术:

2.随着项目不断迭代,功能逐渐增加,单一工程模块方式会带来诸多问题,比如:代码冗余严重、功能复用性差、分支管理混乱、持续性交付等,为了解决这些问题就需要对工程进行组件化,组件间也存在相互通信问题,从而造成组件间的耦合问题。目前在移动端下通常采用两种方案,第一种方案为:基于target-action的方式,通过类扩展(category)生成对应模块入口类的类对象调用对应的action;第二种方案为:基于class-protocol服务注册的方式,在项目启动的时候去静态或动态注册组件到服务中心,构建组件和其对应protocol的map关系,通过该map实现对相关组件的调用。
3.但是上述调用方式仍然存在一些问题,第一种方案中针对每个模块,都需要生成对应的类扩展(category),会增加很多辅助的类;而第二种方案在调用的位置会依赖被调用方的protocol,如果组件间有复杂的调用关系,还是有错综复杂的耦合问题,因此现有的组件调用方式并不能满足用户的实际需求。


技术实现要素:

4.本发明提供一种组件的调用方法、装置、计算机设备和存储介质,其主要目的在于通过调用组件和被调用组件之间的消息分发中心,根据消息队列进行消息的调用,从而解除了组件间的依赖以实现组件的解耦。
5.一种组件的调用方法,方法包括:对各调用组件发送的调用消息进行安全性校验,在校验通过后对所述调用消息进行优先级排序获取消息队列;对所述消息队列进行循环遍历获取目标消息;确定与所述目标消息匹配的被调用组件,并将所述目标消息发送给所述被调用组件。
6.在其中一个实施例中,调用消息包括:消息的唯一标识、消息类型、消息子类型、消息主体和优先等级;所述消息主体包括调用组件的标识和被调用组件的标识。
7.在其中一个实施例中,所述对所述调用消息进行优先级排序获取消息队列,包括:按照所述优先等级对每条所述调用消息进行排序获取初始队列;判断所述初始队列中是否包含优先等级相同的调用消息,若是,则将所述初始队列中优先等级相同的调用消息按照所述消息生成时间的先后顺序进行排序获取所述消息队列,否则,直接将所述初始队列作为所述消息队列。
8.在其中一个实施例中,所述对所述消息队列进行循环遍历获取目标消息,包括:对所述消息队列定时进行循环遍历获取遍历结果,其中,所述遍历结果包括当前消息队列状态和当前遍历到的调用消息,并且所述当前消息队列状态包括空或非空;根据所述遍历结果确定当前消息队列状态为非空时,则将所述当前遍历到的调用消息作为所述目标消息。
9.在其中一个实施例中,所述方法还包括:在确定所述当前消息队列状态为空时,终止对所述消息队列的循环遍历;在所述循环遍历终止后的预设时间端内生成消息遍历结束指示。
10.在其中一个实施例中,所述确定与所述目标消息匹配的被调用组件,并将所述目标消息发送给所述被调用组件,包括:根据所述目标消息中所包含的消息主体获取被调用组件的标识,根据所述被调用组件的标识确定与所述目标消息匹配的被调用组件;根据所述消息类型或所述消息子类型确定所述被调用组件的调用接口,将所述目标消息通过所述调用接口发送给所述被调用组件。
11.在其中一个实施例中,所述确定与所述目标消息匹配的被调用组件,并将所述目标消息发送给所述被调用组件之后,还包括:接收所述被调用组件发送的调用结果,其中,所述调用结果为所述被调用组件根据所述目标消息确定调用任务,并通过执行所述调用任务所生成的调用成功或调用失败;判断所述调用结果是否为调用成功,若是,则将所述调用结果发送给所匹配的调用组件;否则,将所述目标消息重新发送给所述被调组件。
12.在其中一个实施例中,所述对各调用组件发送的调用消息进行安全性校验,包括:接收各调用组件发送的调用消息;判断所述调用消息是否为指定调用组件所发送的,若是,判断所述调用消息中是否包含风险参数,若存在风险参数,对所述调用消息进行拦截,并确定校验不通过,若不存在风险参数,则确定校验通过;否则,对所述调用消息进行拦截,并确定校验不通过;其中,所述风险参数与所述消息分发中心不适配,所述指定调用组件位于所述消息分发中心的管控范围内。
13.一种组件的调用装置,装置包括:消息队列生成模块,用于对各调用组件发送的调用消息进行安全性校验,在校验通过后对所述调用消息进行优先级排序获取消息队列;遍历模块,用于对所述消息队列进行循环遍历获取目标消息;消息分发模块,用于确定与所述目标消息匹配的被调用组件,并将所述目标消息发送给所述被调用组件。
14.一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述组件的调用方法的步骤。
15.一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述组件的调用方法的步骤。
16.上述组件的调用方法、装置、计算机设备和存储介质,通过在调用组件和被调用组件之间增设消息分发中心,消息分发中心对各调用组件发送的调用消息进行安全性校验,并在保证不存在安全风险的情况下引入消息队列,根据消息队列进行消息分发,并将优先级高的调用消息优先进行调用,从而在实现组件解耦的同时不仅能够保证组件调用的安全性,而且能够保证紧急调用任务的优先执行。
附图说明
17.图1为一个实施例中计算机设备的内部结构框图;
18.图2为一个实施例中组件的调用方法的流程图;
19.图3为一个实施例中组件的调用方法的应用场景示意图;
20.图4为一个实施例中组件的调用方法的流程图;
21.图5为一个实施例中组件的调用方法的流程图;
22.图6为一个实施例中组件的调用装置的结构框图。
具体实施方式
23.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
24.图1为一个实施例中计算机设备的内部结构示意图。如图1所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有调用组件的标识和被调用组件的标识,该计算机可读指令被处理器执行时,可使得处理器实现一种组件的调用方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种组件的调用方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图1中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
25.如图2所示,在一个实施例中,提出了一种组件的调用方法,该组件的调用方法可以应用于上述的计算机设备中的消息分发中心,具体可以包括以下步骤:
26.步骤s101,对各调用组件发送的调用消息进行安全性校验,在校验通过后对调用消息进行优先级排序获取消息队列。
27.在本技术实施例中,调用消息包括:消息的唯一标识、消息类型、消息子类型、消息主体和优先等级;消息主体包括调用组件的标识和被调用组件的标识。
28.需要说明的是,调用消息还包括:消息生成时间、消息内容和消息描述等信息,本实施方式中并不对调用消息所包含的具体内容进行限定。并且消息类型具体包括生命周期更新消息、跳转消息和获取数据消息;而生命周期更新消息匹配的消息子类型包括:组件初始化、组件加载、组件展现、组件消失和组件消耗。
29.如图3所示为组件的调用方法的应用场景示意图,其中,组件a、组件b、组件c等作为调用组件,组件1、组件2、组件3等作为被调用组件,在调用组件和被调用组件之间增设消息分发中心,并通过消息分发中心接收各调用组件发送的调用消息,并将所获取的调用消息分发给所匹配的被调用组件,本实施方式中并不限定调用组件和被调用组件的具体数量,只要符合消息分发中心的数据处理能力,则都是在本技术的保护范围内,从上可以得知通过增设消息分发中心可以将调用组件和被调用组件完全隔离解耦。
30.需要说明的是,本实施方式中的消息分发中心在接收到各调用组件所发送的调用消息之后,会对所接收到的调用消息进行校验,具体是对调用消息的安全性进行校验,当通过校验确定调用消息存在安全风险时,会对调用消息进行拦截,不进行后续的排序和分发流程,从而避免非法软件的恶意攻击,以保证组件调用的安全性。当然,本实施方式中仅是举例说明,而并不对消息分发中心对调用消息的具体处理方式进行限定,只要能够保证组件调用的安全性,都是在本技术的保护范围内。
31.在本技术实施例中,对调用消息进行优先级排序获取消息队列,包括:按照优先等级对每条调用消息进行降序排列获取初始队列;判断初始队列中是否包含优先等级相同的调用消息,若是,则将初始队列中优先等级相同的调用消息按照接收时间的先后顺序进行排序获取消息队列,否则,直接将初始队列作为消息队列。
32.在一个实施例中,当消息分发中心接收到个调用组件所发送的调用消息之后,当确定校验通过后则确定所接收到的调用消息为合法消息,此时会按照优先级对所获取的各调用消息进行排序以获取消息队列,并且具体是从各调用消息中提取优先等级,优先等级越高表明调用消息所对应的调用任务越紧急,例如,本技术实施例中的优先等级具体可以包括四个等级,分别为等级一、等级二、等级三和等级四,并且紧急程度是依次递增的,当然,本实施方式中仅是举例说明,而并不对优先等级中所包含的具体等级数量进行限定。当消息分发中心所获取的调用消息的优先等级相同的情况下,由于消息分发中心在同一时刻只能接收到一条调用消息,因此可以按照接收时间的先后顺序进行排序。在实际应用中消息分发中心通常采用两者结合的方式进行排序,即优先级为主,接收时间为辅的方式结合进行排序以获取消息队列。
33.例如,消息分发中心接收到调用组件所发送的6条调用消息分别是:调用消息a、调用消息b、调用消息c、调用消息d、调用消息e、调用消息f,并且调用消息a的优先等级为等级三、调用消息b的优先等级为等级一、调用消息c的优先等级为等级四、调用消息d的优先等级为等级三、调用消息e的优先等级为等级二、调用消息f的优先等级为等级三,在按照优先等级对每条调用消息进行降序排列获取初始队列:[调用消息c调用消息a调用消息d调用消息f调用消息e调用消息b],由于在初始队列中调用消息a、调用消息d和调用消息f的优先等级相同,并且是消息分发中心同一天接收的,则获取上述等级相同的三个调用消息的接收时间,分别为:调用消息a的接收时间为8:10、调用消息d的接收时间为3:30、调用消息f的接收时间为7:45,则按照接收时间的先后顺序对初始队列进行排序,获取消息队列为[调用消息c调用消息d调用消息f调用消息a调用消息e调用消息b]。当然,本实施方式中仅是举例说明,而并不对消息分发中心的具体排序方式以及调用消息的具体数量进行限定,只要能够获取到符合用户需求的消息队列,则都是在本技术的保护范围内,本技术实施方式中并不对其进行赘述。
[0034]
步骤s102,对消息队列进行循环遍历获取目标消息。
[0035]
在本技术实施例中,对消息队列进行循环遍历获取目标消息,包括:对消息队列定时进行循环遍历获取遍历结果,其中,遍历结果包括当前消息队列状态和当前遍历到的调用消息,并且当前消息队列状态包括空或非空;根据遍历结果确定当前消息队列状态为非空时,则将当前遍历到的调用消息作为目标消息。
[0036]
在本技术实施例中,方法还包括:在确定当前消息队列状态为空时,终止对消息队列的循环遍历;在循环遍历终止后的预设时间段内生成消息遍历结束指示。
[0037]
具体的说,本实施方式中的消息分发中心会定时对所获取的消息队列进行循环遍历,具体可以是每间隔2秒进行一次遍历,当然,本实施方式中仅是举例说明,而并不对定时的具体时间间隔进行限定。在遍历的过程中存在消息队列为空和非空的两种状态,当通过遍历确定消息队列为非空时,则将当前所遍历到的调用消息作为后续进行分发的目标消息;而当通过遍历确定消息队列为空时,说明消息队列中的调用消息全部分发完,因此会终
止循环遍历,并且会生成消息遍历结束指示。
[0038]
步骤s103,确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件。
[0039]
在本技术实施例中,确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件,包括:根据目标消息中所包含的消息主体获取被调用组件的标识,根据被调用组件的标识确定与目标消息匹配的被调用组件;根据消息类型或消息子类型确定被调用组件的调用接口,将目标消息通过调用接口发送给被调用组件。
[0040]
在一个实施例中,当确定出目标消息之后由于与消息分发中心所连接的有多个组件,因此需要将目标消息分发到所匹配的被调用组件,具体确定方式是提取目标消息中的消息主体,由于在消息主体中包括调用组件的标识和被调用组件的标识,因此根据消息主体可以准确确定出与目标消息所匹配的被调用组件,即具体是将目标消息分发给哪个组件。
[0041]
由于在每个被调用组件上通常包括多个调用接口,而每个调用接口分别对应不同的消息类型,因此会提取目标消息中的消息类型或消息子类型,并根据消息类型或消息子类型确定调用接口,从而将目标消息通过调用接口发送给所匹配的被调用组件。本技术中的消息子类型是消息类型的具体划分,例如,消息类型包括生命周期更新消息、跳转消息和获取数据消息,所对应的调用接口分别为01接口、02接口和03接口,但由于在生命周期更新消息中包括多个子类型:组件初始化、组件加载、组件展现、组件消失和组件消耗,因此所对应的调用接口分别为01a接口、01b接口、01c接口、01d接口和01e接口。当然,本实施方式中仅是举例说明,而并不对每个消息类型或消息子类型所对应的具体调用接口进行限定。
[0042]
本技术通过在调用组件和被调用组件之间增设消息分发中心,消息分发中心对各调用组件发送的调用消息进行安全性校验,并在保证不存在安全风险的情况下引入消息队列,根据消息队列进行消息分发,并将优先级高的调用消息优先进行调用,从而在实现组件解耦的同时不仅能够保证组件调用的安全性,而且能够保证紧急调用任务的优先执行。
[0043]
图4示出了在一个实施例中,对步骤s101中对各调用组件发送的调用消息进行安全性校验进行具体说明,具体包括以下步骤:
[0044]
步骤s201,接收各调用组件发送的调用消息。
[0045]
本实施方式中的消息分发中心在接收到各调用组件所发送的调用消息之后,会对调用消息的安全性进行校验,确定调用消息是否存在安全风险,并且具体是采用如下步骤s202和步骤s203进行安全性校验。
[0046]
步骤s202,判断调用消息是否为指定调用组件所发送的,若是,执行步骤s203,否则,执行步骤s205。
[0047]
根据调用消息中的消息主体可以提取调用组件的标识和被调用组件的标识。由于消息分发中心仅对管控范围内的调用组件发送的消息进行调用,并且位于管控范围内的调用组件已经提前在消息分发中心完成注册。因此消息分发中心根据所提取的调用组件的标识,确定调用消息为指定调用组件,即位于消息分发中心管控范围内的调用组件所发送的,则进行后续的进一步校验,否则,说明是未注册的非法调用组件所发送的,此时则极大概率存在非法软件进行恶意攻击的情况,为了保证被调用组件的安全性,则会执行步骤s205,对调用消息进行拦截,并确定校验不通过。
[0048]
步骤s203,判断调用消息中是否包含风险参数,若是,则执行步骤s205,否则,执行
步骤s204。
[0049]
其中,在确定调用消息为指定调用组件所发送后,会进一步对调用消息中所包含的参数进行校验,判断是否存在风险参数,其中,风险参数指的是与消息分发中心不适配的参数,例如,消息分发中心仅支持整数型数值,但调用消息中所包含的消息的唯一标识采用的是浮点型数值,由于调用消息与消息分发中心所支持的数值格式是不适配的,因此无法进行有效识别,并且极大概率调用消息无法实现准确调用,此时则确定存在风险参数,并执行步骤s205,对调用消息进行拦截,并确定校验不通过。
[0050]
步骤s204,确定校验通过。
[0051]
步骤s205,对调用消息进行拦截,并确定校验不通过。
[0052]
图5示出了在一个实施例中,在将目标消息发送给被调用组件之后,还包括接收被调用组件发送的调用结果,并根据调用结果的不同,执行不同的操作,具体可以包括以下步骤:
[0053]
步骤s301,对各调用组件发送的调用消息进行安全性校验,在校验通过后对调用消息进行优先级排序获取消息队列。
[0054]
在本技术实施例中,调用消息包括:消息的唯一标识、消息类型、消息子类型、消息主体和优先等级;消息主体包括调用组件的标识和被调用组件的标识。
[0055]
在本技术实施例中,对调用消息进行优先级排序获取消息队列,包括:按照优先等级对每条调用消息进行降序排列获取初始队列;判断初始队列中是否包含优先等级相同的调用消息,若是,则将初始队列中优先等级相同的调用消息按照接收时间的先后顺序进行排序获取消息队列,否则,直接将初始队列作为消息队列。
[0056]
在本技术实施例中,对各调用组件发送的调用消息进行安全性校验,包括:接收各调用组件发送的调用消息;判断调用消息是否为指定调用组件所发送的,若是,判断调用消息中是否包含风险参数,若存在风险参数,对调用消息进行拦截,并确定校验不通过,若不存在风险参数,则确定校验通过;否则,对调用消息进行拦截,并确定校验不通过;其中,风险参数与消息分发中心不适配,指定调用组件位于消息分发中心的管控范围内。
[0057]
步骤s302,对消息队列进行循环遍历获取目标消息。
[0058]
在本技术实施例中,对消息队列进行循环遍历获取目标消息,包括:对消息队列定时进行循环遍历获取遍历结果,其中,遍历结果包括当前消息队列状态和当前遍历到的调用消息,并且当前消息队列状态包括空或非空;根据遍历结果确定当前消息队列状态为非空时,则将当前遍历到的调用消息作为目标消息。
[0059]
步骤s303,确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件。
[0060]
在本技术实施例中,确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件,包括:根据目标消息中所包含的消息主体获取被调用组件的标识,根据被调用组件的标识确定与目标消息匹配的被调用组件;根据消息类型或消息子类型确定被调用组件的调用接口,将目标消息通过调用接口发送给被调用组件。
[0061]
步骤s304,接收被调用组件发送的调用结果。
[0062]
其中,调用结果为被调用组件根据目标消息确定调用任务,并通过执行调用任务所生成的调用成功或调用失败。被调用组件在接收到消息分发中心所发送的调用消息之后,会根据调用消息中所包含的消息内容、消息类型和消息子类型确定出调用任务,并执行
相应的调用任务。
[0063]
例如,在确定消息类型包括生命周期更新消息,消息子类型包括组件初始化,消息内容为将组件进行初始化操作,并且根据消息主体已经确定出具体是将调用消息发送给组件1,因此组件1在接收到调用消息之后,根据消息类型、消息子类型和消息内容等信息确定调用任务为进行组件初始化操作,则组件1执行组件初始化操作并生成调用结果,在组件初始化操作执行成功时生成的调用结果为调用成功,在组件初始化操作执行失败时生成的调用结果为调用失败,并将调用结果发送给消息分发中心,因此消息分发中心会相应的接收组件1所发送的调用结果。当然,本实施方式中仅是以组件1所接收到的消息类型为生命周期更新消息为例进行说明,对于其它被调用组件根据所接收到的调用消息生成调用结果的方式与此大致相同,本实施方式中不再进行赘述。
[0064]
步骤s305,判断调用结果是否为调用成功,若是,则执行步骤s306,否则,执行步骤s307。
[0065]
步骤s306,将调用结果发送给匹配的调用组件。
[0066]
在一个实施例中,当消息分发中心接收到组件1所发送的调用结果,并且确定调用结果为调用成功时,如果确定是组件a通过消息分发中心向组件1发送的调用消息,则消息分发中心直接将调用结果反馈给组件a,以通知组件a调用成功。
[0067]
步骤s307,将目标消息重新发送给被调用组件。
[0068]
在一个实施例中,当消息分发中心接收到组件1所发送的调用结果,并且确定调用结果为调用失败时,如果确定是组件a通过消息分发中心向组件1发送的调用消息,则造成调用失败的原因可能是发生了网络中断,为了避免上述情况的发生,消息分发中心则会将目标消息重新发送给被调用组件,以提高组件调用的成功率。
[0069]
需要说明的是,到哪个重新发送的次数超过预设阈值时,例如为3次,则会停止重新发送,此时可能是硬件设备或软件配置发生了错误,此时会生成报警信息,以提示用户及时进行设备或软件的检修,以提高组件调用的效率。
[0070]
本技术通过在调用组件和被调用组件之间增设消息分发中心,消息分发中心对各调用组件发送的调用消息进行安全性校验,并在保证不存在安全风险的情况下引入消息队列,根据消息队列进行消息分发,并将优先级高的调用消息优先进行调用,从而在实现组件解耦的同时不仅能够保证组件调用的安全性,而且能够保证紧急调用任务的优先执行。并且在将目标消息发送给被调用组件之后,还包括接收被调用组件发送的调用结果,在确定调用结果为调用失败的情况下会将目标消息重新发送给被调用组件,以提高组件调用的成功率。
[0071]
如图6所示,在一个实施例中,提供了一种组件的调用装置,该组件的调用装置可以集成于上述的计算机设备中,具体可以包括:消息队列生成模块410、遍历模块420和消息分发模块430。
[0072]
消息队列生成模块410,用于对各调用组件发送的调用消息进行安全性校验,在校验通过后对调用消息进行优先级排序获取消息队列;
[0073]
遍历模块420,用于对消息队列进行循环遍历获取目标消息;
[0074]
消息分发模块430,用于确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件。
[0075]
在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:对各调用组件发送的调用消息进行安全性校验,在校验通过后对调用消息进行优先级排序获取消息队列;对消息队列进行循环遍历获取目标消息;确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件。
[0076]
在一个实施例中,调用消息包括:消息的唯一标识、消息类型、消息子类型、消息主体和优先等级;
[0077]
消息主体包括调用组件的标识和被调用组件的标识。
[0078]
在一个实施例中,处理器所执行的对调用消息进行优先级排序获取消息队列的步骤包括:按照优先等级对每条调用消息进行降序排列获取初始队列;
[0079]
判断初始队列中是否包含优先等级相同的调用消息,若是,则将初始队列中优先等级相同的调用消息按照接收时间的先后顺序进行排序获取消息队列,
[0080]
否则,直接将初始队列作为消息队列。
[0081]
在一个实施例中,处理器所执行的对消息队列进行循环遍历获取目标消息的步骤包括:对消息队列定时进行循环遍历获取遍历结果,其中,遍历结果包括当前消息队列状态和当前遍历到的调用消息,并且当前消息队列状态包括空或非空;
[0082]
根据遍历结果确定当前消息队列状态为非空时,则将当前遍历到的调用消息作为目标消息。
[0083]
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:在确定当前消息队列状态为空时,终止对消息队列的循环遍历;
[0084]
在循环遍历终止后的预设时间段内生成消息遍历结束指示。
[0085]
在一个实施例中,处理器所执行的确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件的步骤包括,包括:根据目标消息中所包含的消息主体获取被调用组件的标识,根据被调用组件的标识确定与目标消息匹配的被调用组件;
[0086]
根据消息类型或消息子类型确定被调用组件的调用接口,将目标消息通过调用接口发送给被调用组件。
[0087]
在一个实施例中,处理器所执行的确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件的步骤之后,还包括:接收被调用组件发送的调用结果,其中,调用结果为被调用组件根据目标消息确定调用任务,并通过执行调用任务所生成的调用成功或调用失败;
[0088]
判断调用结果是否为调用成功,若是,则将调用结果发送给所匹配的调用组件;
[0089]
否则,将目标消息重新发送给被调组件。
[0090]
在一个实施例中,对各调用组件发送的调用消息进行安全性校验,包括:接收各调用组件发送的调用消息;判断调用消息是否为指定调用组件所发送的,若是,判断调用消息中是否包含风险参数,若存在风险参数,对调用消息进行拦截,并确定校验不通过,若不存在风险参数,则确定校验通过;否则,对调用消息进行拦截,并确定校验不通过;其中,风险参数与消息分发中心不适配,指定调用组件位于消息分发中心的管控范围内。
[0091]
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:对各调用组件发
送的调用消息进行安全性校验,在校验通过后对调用消息进行优先级排序获取消息队列;对消息队列进行循环遍历获取目标消息;确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件。
[0092]
在一个实施例中,调用消息中包括:消息的唯一标识、消息类型、消息子类型、消息主体和优先等级;
[0093]
消息主体包括调用组件的标识和被调用组件的标识。
[0094]
在一个实施例中,处理器所执行的对调用消息进行优先级排序获取消息队列的步骤包括:按照优先等级对每条调用消息进行降序排列获取初始队列;
[0095]
判断初始队列中是否包含优先等级相同的调用消息,若是,则将初始队列中优先等级相同的调用消息按照接收时间的先后顺序进行排序获取消息队列,
[0096]
否则,直接将初始队列作为消息队列。
[0097]
在一个实施例中,处理器所执行的对消息队列进行循环遍历获取目标消息的步骤包括:对消息队列定时进行循环遍历获取遍历结果,其中,遍历结果包括当前消息队列状态和当前遍历到的调用消息,并且当前消息队列状态包括空或非空;
[0098]
根据遍历结果确定当前消息队列状态为非空时,则将当前遍历到的调用消息作为目标消息。
[0099]
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:在确定当前消息队列状态为空时,终止对消息队列的循环遍历;
[0100]
在循环遍历终止后的预设时间段内生成消息遍历结束指示。
[0101]
在一个实施例中,处理器所执行的确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件的步骤包括,包括:根据目标消息中所包含的消息主体获取被调用组件的标识,根据被调用组件的标识确定与目标消息匹配的被调用组件;
[0102]
根据消息类型或消息子类型确定被调用组件的调用接口,将目标消息通过调用接口发送给被调用组件。
[0103]
在一个实施例中,处理器所执行的确定与目标消息匹配的被调用组件,并将目标消息发送给被调用组件的步骤之后,还包括:接收被调用组件发送的调用结果,其中,调用结果为被调用组件根据目标消息确定调用任务,并通过执行调用任务所生成的调用成功或调用失败;
[0104]
判断调用结果是否为调用成功,若是,则将调用结果发送给所匹配的调用组件;
[0105]
否则,将目标消息重新发送给被调组件。
[0106]
在一个实施例中,对各调用组件发送的调用消息进行安全性校验,包括:接收各调用组件发送的调用消息;判断调用消息是否为指定调用组件所发送的,若是,判断调用消息中是否包含风险参数,若存在风险参数,对调用消息进行拦截,并确定校验不通过,若不存在风险参数,则确定校验通过;否则,对调用消息进行拦截,并确定校验不通过;其中,风险参数与消息分发中心不适配,指定调用组件位于消息分发中心的管控范围内。
[0107]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记
忆体(random access memory,ram)等。
[0108]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0109]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1