CN116467092A - 一种业务逻辑处理方法、装置、电子设备及存储介质 - Google Patents
一种业务逻辑处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116467092A CN116467092A CN202310273428.2A CN202310273428A CN116467092A CN 116467092 A CN116467092 A CN 116467092A CN 202310273428 A CN202310273428 A CN 202310273428A CN 116467092 A CN116467092 A CN 116467092A
- Authority
- CN
- China
- Prior art keywords
- component
- stack
- subscriber
- service logic
- publisher
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000005516 engineering process Methods 0.000 claims abstract description 259
- 238000004891 communication Methods 0.000 claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000003993 interaction Effects 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000013461 design Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Abstract
本申请实施例提供一种业务逻辑处理方法、装置、电子设备及存储介质,该方法应用于客户端,客户端至少包括第一技术栈和第二技术栈,每一个技术栈包括发布者组件和至少一个订阅者组件,该方法包括:第一技术栈的订阅者组件向第一技术栈的发布者组件发送第一消息;在第一技术栈内不存在具有待调用业务逻辑的订阅者组件,且第二技术栈内存在具有待调用业务逻辑的订阅者组件的情况下,第一技术栈的发布者组件通过通信桥能力与第二技术栈的发布者组件之间进行交互,以调用第二技术栈的订阅者组件的待调用业务逻辑。因此,本申请的实施例,可以解决现有技术中多技术栈之间交互需要依靠大量的桥通信能力,从而增大了程序维护复杂度和难度的问题。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种业务逻辑处理方法、装置、电子设备及存储介质。
背景技术
技术栈一般来说是指将多种技术互相组合在一起,作为一个有机的整体来实现某种目的或功能。其中,在应用程序的开发中,通常会使用多技术栈进行开发。例如安卓(Android)应用程序包括原生代码,H5页面等。
因此,对于采用多技术栈的应用程序,经常会碰到多技术栈之间的数据交互。通常来说,跨技术栈之间的不同交互功能需要约定不同而具体的协议(称作通信桥能力),这样,每次新增一个交互功能则需要新增桥的能力。但是,应用程序内如果使用大量的桥能力进行通信,会增加程序维护的复杂度与难度。
由此可知,在现有技术中,多技术栈之间交互需要依靠大量的桥通信能力,从而增大了程序维护复杂度和难度。
发明内容
本申请实施例提供一种业务逻辑处理方法、装置、电子设备及存储介质,以解决现有技术中多技术栈之间交互需要依靠大量的桥通信能力,从而增大了程序维护复杂度和难度的问题。
第一方面,本申请实施例提供一种业务逻辑处理方法,应用于客户端,所述客户端至少包括第一技术栈和第二技术栈,每一个技术栈包括发布者组件和至少一个订阅者组件,所述方法包括:
所述第一技术栈的订阅者组件向所述第一技术栈的发布者组件发送第一消息,其中,所述第一消息包括待调用业务逻辑的参数信息;
所述第一技术栈的发布者组件响应于所述第一消息,在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件,且所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,通过通信桥能力与所述第二技术栈的发布者组件之间进行交互,以调用所述第二技术栈的订阅者组件的所述待调用业务逻辑。
第二方面,本申请实施例提供一种业务逻辑处理装置,应用于客户端,所述客户端至少包括第一技术栈和第二技术栈,每一个技术栈包括发布者组件和至少一个订阅者组件,所述装置包括:
第一发送模块,用于控制所述第一技术栈的订阅者组件向所述第一技术栈的发布者组件发送第一消息,其中,所述第一消息包括待调用业务逻辑的参数信息;
交互模块,用于控制所述第一技术栈的发布者组件响应于所述第一消息,在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件,且所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,通过通信桥能力与所述第二技术栈的发布者组件之间进行交互,以调用所述第二技术栈的订阅者组件的所述待调用业务逻辑。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述所述的业务逻辑处理方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述所述的业务逻辑处理方法的步骤。
在本申请实施例的技术方案中,客户端至少包括第一技术栈和第二技术栈,每个技术栈包括发布者组件和至少一个订阅者组件,并且,第一技术栈的订阅者组件可以向第一技术栈的发布者组件发送第一消息,其中,所述第一消息包括待调用业务逻辑的参数信息,以在第一技术栈内不存在具有待调用业务逻辑的订阅者组件,且第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,第一技术栈的发布者组件可以通过通信桥能力与第二技术栈的发布者组件进行交互,以调用第二技术栈的订阅者组件的所述待调用业务逻辑。
可见,在本申请实施例中,在技术栈内部采用基于发布者-订阅者的设计模式,且不同技术栈之间的发布者组件通过通信桥能力进行通信,这样,在跨技术栈调用业务逻辑时,第一技术栈中需要调用业务逻辑的订阅者组件可以向第一技术栈中的发布者组件发布第一消息,从而通过通信桥能力将第一消息传递至第二技术栈的发布者组件,进而由第二技术栈的发布者组件可以通知到第二技术栈内的相应订阅者组件执行所需调用的业务逻辑。因此,在本申请实施例中,多技术栈之间的交互基于技术栈内部的发布者-订阅者设计模式,并采用发布者组件之间的通信桥能力即可,而不需要订阅者组件之间大量的桥通信能力,从而降低了程序维护复杂度和难度。
附图说明
图1是本申请实施例提供的一种业务逻辑处理方法的流程图;
图2是本申请实施例中的应用程序的框架示意图;
图3是本申请实施例提供的一种业务逻辑处理装置的结构框图;
图4是本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
第一方面,本申请实施例中一种业务逻辑处理方法的步骤流程图,该方法可以应用于客户端,所述客户端至少包括第一技术栈和第二技术栈,每一个技术栈包括发布者组件和至少一个订阅者组件。
这里,客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。而一个程序内可能使用多种技术,其中每种技术的使用通常被称为一个技术栈。其中,一个技术栈的代码可以按照其可以实现的功能,被划分为多个组件。
在本申请实施例中,每一个技术栈中可以包括一个发布者组件和至少一个订阅者组件。即,在本申请实施例中,在每个技术栈内部采用基于发布者-订阅者的设计模式。
另外,上述客户端还包括通信桥能力。其中,通信桥能力是指不同系统、程序中实现通信的组件。而在本申请实施例中,该通信桥能力用于实现不同技术栈的发布者组件之间的通信。
如图1所示,本申请实施例的业务逻辑处理方法可以包括以下步骤101至102:
步骤101:所述第一技术栈的订阅者组件向所述第一技术栈的发布者组件发送第一消息。其中,每一个订阅者组件可以实现至少一项业务逻辑,在客户端运行过程中,可能存在某个订阅者组件需要调用其他订阅者组件的业务逻辑的情况。而本申请实施例中,技术栈内部采用基于发布者-订阅者的设计模式,因此,当一个技术栈内部的某个订阅者组件需要调用其他订阅者组件的业务逻辑时,该订阅者组件可以向与其处于同一技术栈的发布者组件发送上述第一消息。
另外,第一消息用于指示待调用的业务逻辑。可选的,第一消息中可以包括待调用的业务逻辑的参数信息,这样,接收第一消息的发布者组件则可以确定需要调用哪个或哪些业务逻辑。
步骤102:所述第一技术栈的发布者组件响应于所述第一消息,在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件,且所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,通过通信桥能力与所述第二技术栈的发布者组件之间进行交互,以调用所述第二技术栈的订阅者组件的所述待调用业务逻辑。
在本申请实施例中,不同技术栈的发布者组件之间通过通信桥能力进行交互,因此,第一技术栈的发布者组件接收到上述第一消息之后,可以通过通信桥能力与第二技术栈的发布者组件进行交互,以调用第二技术栈中的某个或者某些订阅者组件的业务逻辑。
这里需要说明的是,第一技术栈可以为和第二技术栈为客户端包括的多个技术栈中的其中两个,即客户端包括的多个技术栈中,任意一个技术栈可以调用除该技术栈之外的其他技术栈的业务逻辑。例如上述第一技术栈可以为计算机编程语言(Java),第二技术栈可以为即时编译型的编程语言(Javascript),则Java中的订阅者组件可以采用上述步骤101至102所述的流程,调用Javascript中的订阅者组件的业务逻辑。
由上述步骤101至102可知,在本申请实施例中,客户端至少包括第一技术栈和第二技术栈,每个技术栈包括发布者组件和至少一个订阅者组件,并且,第一技术栈的订阅者组件可以向第一技术栈的发布者组件发送第一消息,其中,所述第一消息包括待调用业务逻辑的参数信息,以在第一技术栈内不存在具有待调用业务逻辑的订阅者组件,且第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,第一技术栈的发布者组件可以通过通信桥能力与第二技术栈的发布者组件进行交互,以调用第二技术栈的订阅者组件的所述待调用业务逻辑。。
可见,在本申请实施例中,在技术栈内部采用基于发布者-订阅者的设计模式,且不同技术栈之间的发布者组件通过通信桥能力进行通信,这样,在跨技术栈调用业务逻辑时,第一技术栈中需要调用业务逻辑的订阅者组件可以向第一技术栈中的发布者组件发布第一消息,从而通过通信桥能力将第一消息传递至第二技术栈的发布者组件,进而由第二技术栈的发布者组件可以通知到第二技术栈内的相应订阅者组件执行所需调用的业务逻辑。因此,在本申请实施例中,多技术栈之间的交互基于技术栈内部的发布者-订阅者设计模式,并采用发布者组件之间的通信桥能力即可,而不需要订阅者组件之间大量的桥通信能力,从而降低了程序维护复杂度和难度。
可选的,上述步骤102“所述第一技术栈的发布者组件响应于所述第一消息,在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件,且所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,通过通信桥能力与所述第二技术栈的发布者组件之间进行交互,以调用所述第二技术栈的订阅者组件的所述待调用业务逻辑”,包括如下步骤A-1至A-5:
步骤A-1:所述第一技术栈的发布者组件响应于所述第一消息,判断所述第一技术栈内是否存在具有所述待调用业务逻辑的订阅者组件;
步骤A-2:在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件的情况下,所述第一技术栈的发布者组件通过通信桥能力,将所述第一消息发送给所述第二技术栈的发布者组件;
步骤A-3:所述第二技术栈的发布者组件响应于所述第一消息,判断所述第二技术栈内是否存在具有所述待调用业务逻辑的订阅者组件;
步骤A-4:在所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,所述第二技术栈的发布者组件,向所述第二技术栈内具有所述待调用业务逻辑的订阅者组件发送第二消息,其中,所述第二消息用于指示执行所述待调用业务逻辑;
步骤A-5:所述第二技术栈内具有所述待调用业务逻辑的订阅者组件响应于所述第二消息,执行所述待调用业务逻辑。
这里,需要说明的是,在步骤A-3至A-5中,具有待调用业务逻辑的订阅者组件可以包括一个或者多个订阅者组件。例如待调用业务逻辑包括业务逻辑A、B,其中,第四订阅者组件具有业务逻辑A,第五订阅者组件具有业务逻辑B,则在步骤A-4中,第二技术栈的发布者组件向第四订阅者组件发送第二消息,以指示第四订阅者组件执行业务逻辑A,并向第五订阅者组件发送第二消息,以指示第五订阅者组件执行业务逻辑B。
由上述步骤A-1至A-5可知,第一技术栈的发布者组件接收到上述第一消息之后,可以根据第一消息中携带的待调用业务逻辑的参数信息,判断第一技术栈内的各个订阅者组件是否具有(即是否可以实现)该待调用业务逻辑,从而在第一技术栈内不存在具有待调用业务逻辑的订阅者组件的情况下,通过通信桥能力将该第一消息传递给第二技术栈的发布者组件,进而由第二技术栈的发布者组件判断第二技术栈内的各个订阅者组件是否具有该待调用业务逻辑,从而在第二技术栈内存在具有待调用业务逻辑的订阅者组件的情况下,由第二技术栈的发布者组件通知该订阅者组件执行待调用业务逻辑。
可以理解的是,当客户端还包括除第一技术栈和第二技术栈之外的其他技术栈时,在第一技术栈内不存在具有待调用业务逻辑的订阅者组件的情况下,第一技术栈的发布者组件除了向上述第二技术栈的发布者组件发送上述第一消息之外,还可以通过第一技术栈与所述其他技术栈之间的通信桥能力,向所述其他技术栈的发布者组件发送上述第一消息,这样,所述其他技术栈也可以判断自身内部的订阅者组件是否具有待调用业务逻辑,从而在第二技术栈和所述其他技术栈中的其中某个或某些技术栈中存在具有待调用业务逻辑的订阅者组件的情况下,可以由该技术栈的发布者组件通知该订阅者组件执行待调用业务逻辑。
例如客户端包括第一技术栈、第二技术栈和第三技术栈,其中,待调用业务逻辑包括业务逻辑A、B,第一技术栈内不存在具有业务逻辑A和B的订阅者组件,第二技术栈内存在具有业务逻辑A的订阅者组件,第三技术栈内存在具有业务逻辑B的订阅者组件,则第一技术栈的发布者组件可以向第二技术栈和第三技术栈的发布者组件均发送上述第一消息,这样,第二技术栈的发布者组件则可以指示第二技术栈内具有业务逻辑A的订阅者组件执行业务逻辑A,第三技术栈的发布者组件则可以指示第二技术栈内具有业务逻辑B的订阅者组件执行业务逻辑B。
或者,客户端中还可以包括一个判断组件,其中,该判断组件预先注册了与各个发布者组件对应的通信桥能力,并且该判断组件记录有各个技术栈内的订阅者组件具有的业务逻辑,这样,当客户端还包括除第一技术栈和第二技术栈之外的其他技术栈时,在第一技术栈内不存在具有待调用业务逻辑的订阅者组件的情况下,第一技术栈的发布者组件还可以向该判断组件发送上述第一消息,以使得该判断组件可以确定哪个技术栈内的哪个订阅者组件具有待调用的业务逻辑,从而由该判断组件通过通信桥能力通知相应的技术栈内的发布者组件调用哪个订阅者组件的哪个业务逻辑。
或者,不同技术栈内的发布者组件可以通过通信桥能力交互各自所处技术栈内的各个订阅者组件具有的业务逻辑,这样,每一个发布者组件则存储有客户端内包括的各个技术栈内的各个订阅者组件具有的业务逻辑,从而在第一技术栈内不存在具有待调用业务逻辑的订阅者组件的情况下,也可以确定出其他技术栈中哪个技术栈内具有待调用业务逻辑的订阅者组件,从而可以通过通信桥能力通知这个技术栈的发布者组件调用哪个业务逻辑。
另外,需要说明的是,在本申请实施例中,发布者组件之间进行通信需要注册通信桥能力(即任意两个发布者组件之间注册有一通信桥能力),而订阅者组件之间通过发布者组件进行通信,因此,订阅者组件之间不需要注册通信桥能力。
由此可见,在本申请实施例中,多技术栈的发布者组件之间通过桥能力进行通信,这个通信桥能力只是为了实现多技术栈之间发布者组件的通信,不涉及具体某个业务逻辑的调用,即具体某个业务逻辑的调用由订阅者组件实现。
此外,还需要说明的是,如果不同订阅者组件具有相同的业务逻辑,则该相同的业务逻辑在不同订阅者组件注册的参数可以不同,这样,其他订阅者组件若需要调用该业务逻辑,则可以通过在上述第一消息中携带相应的参数信息,来指示具体调用哪个订阅者组件中的该业务逻辑。例如订阅者组件1具有业务逻辑A和业务逻辑B,订阅者组件2具有业务逻辑A和业务逻辑C,其中,业务逻辑A在订阅者组件1和2中注册的参数分别为a1和a2,则如果订阅者组件3需要调用订阅者组件1中的业务逻辑A,则订阅者组件3发送的第一消息中可以携带“a1”。
可选的,所述方法还包括如下步骤A-6至A-7:
步骤A-6:在所述第一技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,所述第一技术栈的发布者组件向所述第一技术栈内具有所述待调用业务逻辑的订阅者组件发送第二消息,其中,所述第二消息用于指示执行所述待调用业务逻辑;
步骤A-7:所述第一技术栈内具有所述待调用业务逻辑的订阅者组件响应于所述第二消息,执行所述待调用业务逻辑。
同理,在步骤A-6至A-7中,具有待调用业务逻辑的订阅者组件可以包括一个或者多个订阅者组件。例如待调用业务逻辑包括业务逻辑A、B,其中,第一订阅者组件具有业务逻辑A,第二订阅者组件具有业务逻辑B,则在步骤A-5中,第一技术栈的发布者组件向第一订阅者组件发送第二消息,以指示第一订阅者组件执行业务逻辑A,并向第二订阅者组件发送第二消息,以指示第二订阅者组件执行业务逻辑B。
由此可知,如果第一技术栈内的某个订阅者具有(或者可以实现)待调用业务逻辑,则第一技术栈的发布者组件可以通知第一技术栈内的该订阅者组件执行待调用业务逻辑。可见,在本申请实施例中,技术栈内部的订阅者组件之间的调用,也可以基于发布者-订阅者的设计模式实现。
可选的,所述方法还包括如下步骤B-1至B-2:
步骤B-1:所述第一技术栈的各个订阅者组件分别向所述第一技术栈的发布者组件发送订阅消息,其中,所述订阅消息用于指示订阅者组件具有的业务逻辑;
步骤B-2:所述第一技术栈的发布者组件存储第一订阅结果,其中,所述第一订阅结果包括所述第一技术栈的各个订阅者组件具有的业务逻辑;
上述步骤A-1“所述第一技术栈的发布者组件判断所述第一技术栈内是否存在具有所述待调用业务逻辑的订阅者组件”,包括:
所述第一技术栈的发布者组件根据所述第一订阅结果,判断所述第一技术栈内是否存在具有所述待调用业务逻辑的订阅者组件。
这里,需要说明的是,第一技术栈内的订阅者组件向第一技术栈的发布者组件发送上述订阅消息,则实现了对该订阅者组件具有的业务逻辑的订阅。其中,每个订阅者组件可以具有一个或多个业务逻辑。
由此可知,在本申请实施例中,基于发布者-订阅者的设计模式中,第一技术栈内的各个订阅者组件可以分别向第一技术栈的发布者组件发送订阅消息,以告知该发布者组件其具有的业务逻辑(即可以实现的业务逻辑),这样,该发布者组件则可以获知第一技术栈的各个订阅者分别具有或者实现哪些业务逻辑,从而在其接收到某个订阅者组件发送的第一消息之后,可以确定其所处的技术栈内是否存在具有待调用业务逻辑的订阅者组件。
可选的,所述方法还包括如下步骤C-1至C-2:
步骤C-1:所述第二技术栈的各个订阅者组件分别向所述第二技术栈的发布者组件发送订阅消息,其中,所述订阅消息用于指示订阅者组件具有的业务逻辑;
步骤C-2:所述第二技术栈的发布者组件存储第二订阅结果,其中,所述第二订阅结果包括所述第二技术栈的各个订阅者组件具有的业务逻辑;
上述步骤A-3“第二技术栈的发布者组件判断所述第二技术栈内是否存在具有所述待调用业务逻辑的订阅者组件”,包括:
所述第二技术栈的发布者组件根据所述第二订阅结果,判断所述第二技术栈内是否存在具有所述待调用业务逻辑的订阅者组件。
这里,需要说明的是,第二技术栈内的订阅者组件向第二技术栈的发布者组件发送上述订阅消息,则实现了对该订阅者组件具有的业务逻辑的订阅。
由此可知,在本申请实施例中,基于发布者-订阅者的设计模式中,第二技术栈内的各个订阅者组件可以分别向第二技术栈的发布者组件发送订阅消息,以告知该发布者组件其具有的业务逻辑(即可以实现的业务逻辑),这样,该发布者组件则可以获知第二技术栈的各个订阅者分别具有或者实现哪些业务逻辑,从而在其接收到第一技术栈的发布者组件通过通信桥能力发送的第一消息之后,可以确定其所处的技术栈内是否存在具有待调用业务逻辑的订阅者组件。
可选的,所述方法还包括:
所述第一技术栈的发布者组件和所述第二技术栈的发布者组件,分别注册所述通信桥能力。
即对于上述第一技术栈和第二技术栈而言,第一技术栈的发布者组件和第二技术栈的发布者组件均需要注册该通信桥能力,这样,第一技术栈的发布者组件和第二技术栈的发布者组件之间则可以通过该通信桥能力进行通信。
可以理解的是,任何一个技术栈的发布者组件注册通信桥能力的方法,均可以采用现有技术中的任何一种方法,本申请实施例中不作具体限定。
综上所述,本申请实施例的业务逻辑处理方法的具体实施方式可如下所述:
如图2所示,一个应用程序(即客户端)包括第一技术栈(例如Java)和第二技术栈(例如Javascript),第一技术栈包括第一订阅者组件、第二订阅者组件、第三订阅者组件和第一发布者组件,第二技术栈包括第四订阅者组件、第五订阅者组件、第六订阅者组件和第二发布者组件。
其中,第一发布者组件和第二发布者组件分别注册通信桥能力;并且,第一至第三订阅者组件分别向第一发布者组件发送订阅消息,以使得第一发布者组件记录第一至第三订阅者组件可以实现的业务逻辑,实现对第一至第三订阅者组件可以实现的业务逻辑的订阅;第四至第六订阅者组件分别向第二订阅者组件发送订阅消息,第二发布者组件记录第四至第六订阅者组件可以实现的业务逻辑,实现对第四至第六订阅者组件可以实现的业务逻辑的订阅。
另外,当第一订阅者组件需要调用第二技术栈的某个业务逻辑时,第一订阅者组件向第一发布者组件发布第一消息,该第一消息携带有待调用业务逻辑的参数信息;第一发布者组件根据待调用业务逻辑的参数信息,确定第一技术栈内是否存在具有待调用业务逻辑的订阅者组件,若不存在,则第一发布者组件通过通信桥能力,将该第一消息传递给第二发布者组件,从而使得第二发布者组件根据待调用业务逻辑的参数信息,确定第二技术栈内是否存在具有待调用业务逻辑的订阅者组件,例如第四订阅者组件具有待调用业务逻辑,则第二发布者组件通知第四订阅者组件执行待调用业务逻辑。
由上述可知,在本申请实施例中,多技术栈各自预先实现好基础的基于发布者-订阅者设计模式,且多技术栈的发布者组件之间通过桥能力进行通信,这个桥能力只是为了实现多技术栈之间发布者组件的通信,不涉及具体某个业务的调用。其中,每个订阅者组件都可以是应用程序中的一个模块,同时具备订阅某类主题执行一段业务逻辑(即完成一次被调用),或者是发送某个调用某个业务逻辑的通知。
因此,本申请实施例的业务逻辑处理方法具有如下效果:
1.减少常规的多技术栈通信时,桥能力频繁需要扩展开发的成本;
2.某一技术栈想完成一次跨技术栈调用,使用对应技术栈提供统一标准的API即可完成一次通信,无需关注常规开发一次跨技术栈调用的详细而具体的协议;
3.应用程序内各模块的功能职责更加明确清晰,降低了程序维护的复杂度和难度。
第二方面,本申请实施例还提供一种业务逻辑处理装置,应用于客户端,所述客户端至少包括第一技术栈和第二技术栈,每一个技术栈包括发布者组件和至少一个订阅者组件;如图3所示,所述装置包括:
第一发送模块301,用于控制所述第一技术栈的订阅者组件向所述第一技术栈的发布者组件发送第一消息,其中,所述第一消息包括待调用业务逻辑的参数信息;
交互模块302,用于控制所述第一技术栈的发布者组件响应于所述第一消息,在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件,且所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,通过通信桥能力与所述第二技术栈的发布者组件之间进行交互,以调用所述第二技术栈的订阅者组件的所述待调用业务逻辑。
可选的,所述交互模块包括:
第一判断子模块,用于控制所述第一技术栈的发布者组件响应于所述第一消息,判断所述第一技术栈内是否存在具有所述待调用业务逻辑的订阅者组件;
第一发送子模块,用于在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件的情况下,控制所述第一技术栈的发布者组件通过通信桥能力,将所述第一消息发送给所述第二技术栈的发布者组件;
第二判断子模块,用于控制所述第二技术栈的发布者组件响应于所述第一消息,判断所述第二技术栈内是否存在具有所述待调用业务逻辑的订阅者组件;
第二发送子模块,用于在所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,控制所述第二技术栈的发布者组件,向所述第二技术栈内具有所述待调用业务逻辑的订阅者组件发送第二消息,其中,所述第二消息用于指示执行所述待调用业务逻辑;
执行子模块,用于控制所述第二技术栈内具有所述待调用业务逻辑的订阅者组件响应于所述第二消息,执行所述待调用业务逻辑。
可选的,所述装置还包括:
第二发送模块,用于在所述第一技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,控制所述第一技术栈的发布者组件向所述第一技术栈内具有所述待调用业务逻辑的订阅者组件发送第二消息,其中,所述第二消息用于指示执行所述待调用业务逻辑;
执行模块,用于控制所述第一技术栈内具有所述待调用业务逻辑的订阅者组件响应于所述第二消息,执行所述待调用业务逻辑。
可选的,所述装置还包括:
第一订阅模块,用于控制所述第一技术栈的各个订阅者组件分别向所述第一技术栈的发布者组件发送订阅消息,其中,所述订阅消息用于指示订阅者组件具有的业务逻辑;
第一存储模块,用于控制所述第一技术栈的发布者组件存储第一订阅结果,其中,所述第一订阅结果包括所述第一技术栈的各个订阅者组件具有的业务逻辑;
所述第一判断子模块具体用于:
控制所述第一技术栈的发布者组件根据所述第一订阅结果,判断所述第一技术栈内是否存在具有所述待调用业务逻辑的订阅者组件。
可选的,所述装置还包括:
第二订阅模块,用于控制所述第二技术栈的各个订阅者组件分别向所述第二技术栈的发布者组件发送订阅消息,其中,所述订阅消息用于指示订阅者组件具有的业务逻辑;
第二存储模块,用于控制所述第二技术栈的发布者组件存储第二订阅结果,其中,所述第二订阅结果包括所述第二技术栈的各个订阅者组件具有的业务逻辑;
所述第二判断子模块具体用于:
控制所述第二技术栈的发布者组件根据所述第二订阅结果,判断所述第二技术栈内是否存在具有所述待调用业务逻辑的订阅者组件。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
另一方面,本申请实施例还提供了一种电子设备,包括存储器、处理器、总线以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述业务逻辑处理方法中的步骤。
举例如下,图4示出了一种电子设备的实体结构示意图。
如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,处理器410用于执行上述业务逻辑处理方法中的步骤。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再一方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例提供的业务逻辑处理方法中的步骤。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种业务逻辑处理方法,其特征在于,应用于客户端,所述客户端至少包括第一技术栈和第二技术栈,每一个技术栈包括发布者组件和至少一个订阅者组件,所述方法包括:
所述第一技术栈的订阅者组件向所述第一技术栈的发布者组件发送第一消息,其中,所述第一消息包括待调用业务逻辑的参数信息;
所述第一技术栈的发布者组件响应于所述第一消息,在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件,且所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,通过通信桥能力与所述第二技术栈的发布者组件之间进行交互,以调用所述第二技术栈的订阅者组件的所述待调用业务逻辑。
2.根据权利要求1所述的方法,其特征在于,所述第一技术栈的发布者组件响应于所述第一消息,在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件,且所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,通过通信桥能力与所述第二技术栈的发布者组件之间进行交互,以调用所述第二技术栈的订阅者组件的所述待调用业务逻辑,包括:
所述第一技术栈的发布者组件响应于所述第一消息,判断所述第一技术栈内是否存在具有所述待调用业务逻辑的订阅者组件;
在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件的情况下,所述第一技术栈的发布者组件通过通信桥能力,将所述第一消息发送给所述第二技术栈的发布者组件;
所述第二技术栈的发布者组件响应于所述第一消息,判断所述第二技术栈内是否存在具有所述待调用业务逻辑的订阅者组件;
在所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,所述第二技术栈的发布者组件,向所述第二技术栈内具有所述待调用业务逻辑的订阅者组件发送第二消息,其中,所述第二消息用于指示执行所述待调用业务逻辑;
所述第二技术栈内具有所述待调用业务逻辑的订阅者组件响应于所述第二消息,执行所述待调用业务逻辑。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,所述第一技术栈的发布者组件向所述第一技术栈内具有所述待调用业务逻辑的订阅者组件发送第二消息,其中,所述第二消息用于指示执行所述待调用业务逻辑;
所述第一技术栈内具有所述待调用业务逻辑的订阅者组件响应于所述第二消息,执行所述待调用业务逻辑。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一技术栈的各个订阅者组件分别向所述第一技术栈的发布者组件发送订阅消息,其中,所述订阅消息用于指示订阅者组件具有的业务逻辑;
所述第一技术栈的发布者组件存储第一订阅结果,其中,所述第一订阅结果包括所述第一技术栈的各个订阅者组件具有的业务逻辑;
所述第一技术栈的发布者组件判断所述第一技术栈内是否存在具有所述待调用业务逻辑的订阅者组件,包括:
所述第一技术栈的发布者组件根据所述第一订阅结果,判断所述第一技术栈内是否存在具有所述待调用业务逻辑的订阅者组件。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第二技术栈的各个订阅者组件分别向所述第二技术栈的发布者组件发送订阅消息,其中,所述订阅消息用于指示订阅者组件具有的业务逻辑;
所述第二技术栈的发布者组件存储第二订阅结果,其中,所述第二订阅结果包括所述第二技术栈的各个订阅者组件具有的业务逻辑;
所述第二技术栈的发布者组件判断所述第二技术栈内是否存在具有所述待调用业务逻辑的订阅者组件,包括:
所述第二技术栈的发布者组件根据所述第二订阅结果,判断所述第二技术栈内是否存在具有所述待调用业务逻辑的订阅者组件。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一技术栈的发布者组件和所述第二技术栈的发布者组件,分别注册所述通信桥能力。
7.一种业务逻辑处理装置,其特征在于,应用于客户端,所述客户端至少包括第一技术栈和第二技术栈,每一个技术栈包括发布者组件和至少一个订阅者组件,所述装置包括:
第一发送模块,用于控制所述第一技术栈的订阅者组件向所述第一技术栈的发布者组件发送第一消息,其中,所述第一消息包括待调用业务逻辑的参数信息;
交互模块,用于控制所述第一技术栈的发布者组件响应于所述第一消息,在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件,且所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,通过通信桥能力与所述第二技术栈的发布者组件之间进行交互,以调用所述第二技术栈的订阅者组件的所述待调用业务逻辑。
8.根据权利要求7所述的装置,其特征在于,所述交互模块包括:
第一判断子模块,用于控制所述第一技术栈的发布者组件响应于所述第一消息,判断所述第一技术栈内是否存在具有所述待调用业务逻辑的订阅者组件;
第一发送子模块,用于在所述第一技术栈内不存在具有所述待调用业务逻辑的订阅者组件的情况下,控制所述第一技术栈的发布者组件通过通信桥能力,将所述第一消息发送给所述第二技术栈的发布者组件;
第二判断子模块,用于控制所述第二技术栈的发布者组件响应于所述第一消息,判断所述第二技术栈内是否存在具有所述待调用业务逻辑的订阅者组件;
第二发送子模块,用于在所述第二技术栈内存在具有所述待调用业务逻辑的订阅者组件的情况下,控制所述第二技术栈的发布者组件,向所述第二技术栈内具有所述待调用业务逻辑的订阅者组件发送第二消息,其中,所述第二消息用于指示执行所述待调用业务逻辑;
执行子模块,用于控制所述第二技术栈内具有所述待调用业务逻辑的订阅者组件响应于所述第二消息,执行所述待调用业务逻辑。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6任一项所述业务逻辑处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述业务逻辑处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310273428.2A CN116467092A (zh) | 2023-03-20 | 2023-03-20 | 一种业务逻辑处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310273428.2A CN116467092A (zh) | 2023-03-20 | 2023-03-20 | 一种业务逻辑处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116467092A true CN116467092A (zh) | 2023-07-21 |
Family
ID=87172594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310273428.2A Pending CN116467092A (zh) | 2023-03-20 | 2023-03-20 | 一种业务逻辑处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116467092A (zh) |
-
2023
- 2023-03-20 CN CN202310273428.2A patent/CN116467092A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111163129B (zh) | 一种基于跨链网络的资源处理方法及装置 | |
US8209213B2 (en) | Method for the construction and execution of a distributed workflow in a communication system | |
CN107203419A (zh) | 应用程序中的模块间调用方法、装置及系统 | |
US20060010234A1 (en) | Dynamic provisioning of service components in a distributed system | |
JPH06195290A (ja) | 遠隔ノードからの処理手順呼出し方法及びシステム | |
CN111770122B (zh) | 服务通信代理scp注册方法、服务调用方法及网络设备 | |
CN114189525B (zh) | 服务请求方法、装置和电子设备 | |
CN111163130A (zh) | 一种网络服务系统及其数据传输方法 | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN111858007A (zh) | 一种基于消息中间件的任务调度方法方法和装置 | |
US20230046979A1 (en) | Microservice call method and apparatus, device, and medium | |
CN113746928A (zh) | 跨云服务调用方法、装置和系统 | |
CN108664343B (zh) | 一种微服务的有状态调用方法及装置 | |
US7289989B2 (en) | Pattern based web services | |
CN107438097B (zh) | 网络请求处理方法及装置 | |
CN111756844A (zh) | 一种多语言消息代理方法及装置 | |
CN116467092A (zh) | 一种业务逻辑处理方法、装置、电子设备及存储介质 | |
CN112579212A (zh) | 跨语言调用的方法、调用方装置及被调用方装置 | |
CN114640610B (zh) | 基于云原生的服务治理方法、装置及存储介质 | |
CN110989985B (zh) | 基于Maven的依赖包的管理方法、装置、计算机设备及存储介质 | |
CN114327466B (zh) | 一种车载app模块间消息解耦的实现方法及系统 | |
US20090183172A1 (en) | Middleware Bridge System And Method | |
CN115102854B (zh) | 微服务的远程过程调用路由管理控制方法、系统及设备 | |
WO2022022446A1 (zh) | 一种打印日志的方法、装置及系统 | |
CN110659033B (zh) | 协议注册分发方法、存储介质、电子设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |