CN117093520A - 基于面向服务架构的服务仲裁装置、方法、车辆 - Google Patents
基于面向服务架构的服务仲裁装置、方法、车辆 Download PDFInfo
- Publication number
- CN117093520A CN117093520A CN202311323265.0A CN202311323265A CN117093520A CN 117093520 A CN117093520 A CN 117093520A CN 202311323265 A CN202311323265 A CN 202311323265A CN 117093520 A CN117093520 A CN 117093520A
- Authority
- CN
- China
- Prior art keywords
- arbitration
- service module
- service
- call request
- library
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012545 processing Methods 0.000 claims description 59
- 230000008569 process Effects 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于面向服务架构的服务仲裁装置、方法、车辆,属于软件技术领域。所述装置包括多个服务模块和仲裁库;服务模块用于接收业务模块发起的调用请求,调用请求至少包括服务接口信息和请求源信息,服务接口信息用于确定是否需要对调用请求进行仲裁;服务模块用于在根据服务接口信息确定需要对调用请求进行仲裁的情况下,将请求源信息和服务模块的标识发送至所述仲裁库;仲裁库用于根据服务模块的标识确定服务模块对应的仲裁策略,根据服务模块的仲裁策略和请求源信息对调用请求进行仲裁。本发明用于解决现有技术中在各服务模块内部实现各自的仲裁策略,导致增加代码复杂度的问题。本发明主要用于车辆中的服务仲裁。
Description
技术领域
本发明涉及软件技术领域,更具体地,涉及一种基于面向服务架构的服务仲裁装置、方法、车辆。
背景技术
在面向服务架构(Service Oriented Architecture,SOA)的系统中,由于一个服务模块可能会被多个业务模块调用。而由于服务模块在同一时间内只能处理一个调用请求,因此需要对业务模块发起的调用请求进行仲裁。由于不同服务模块所采用的仲裁策略也各不相同,因此现有技术中通常都是在各个服务模块内部实现其各自的仲裁策略,增大了代码的复杂度。
发明内容
本发明的一个目的是提供一种用于面向服务架构下的服务仲裁的新技术方案。
根据本发明的第一方面,提供了一种基于面向服务架构的服务仲裁装置,包括多个服务模块和仲裁库,所述仲裁库中存储每个所述服务模块对应的仲裁策略;
所述服务模块用于接收业务模块发起的调用请求,所述调用请求至少包括服务接口信息和请求源信息,所述服务接口信息用于确定是否需要对所述调用请求进行仲裁;
所述服务模块用于在根据所述服务接口信息确定需要对所述调用请求进行仲裁的情况下,将所述请求源信息和所述服务模块的标识发送至所述仲裁库;
所述仲裁库用于根据所述服务模块的标识确定所述服务模块对应的仲裁策略,根据所述服务模块的仲裁策略和所述请求源信息对所述调用请求进行仲裁。
可选地,所述服务模块包括客户端和服务端;
所述客户端用于向所述业务模块提供服务接口,接收所述业务模块通过调用所述服务接口发起的调用请求,根据所述调用请求中的接口信息确定是否需要对所述调用请求进行仲裁;
所述客户端用于在确定需要对所述调用请求进行仲裁的情况下,生成仲裁标识,将所述仲裁标识和所述请求源信息发送至所述服务端,所述仲裁标识用于指示所述服务端调用所述仲裁库根据所述请求源信息对所述调用请求进行仲裁。
可选地,所述服务端用于在所述调用请求的仲裁结果为不执行的情况下,丢弃所述调用请求;
所述服务端用于在所述调用请求的仲裁结果为执行的情况下,处理所述调用请求,将所述调用请求的处理结果发送至所述业务模块。
可选地,所述客户端用于在确定不需要对所述调用请求进行仲裁的情况下,向所述服务端发送处理消息,所述处理消息用于指示所述服务端处理所述调用请求。
可选地,所述仲裁库用于在所述服务模块对应的仲裁策略为第一策略的情况下,将所述调用请求添加至请求队列;
所述仲裁库用于将所述请求队列中的第一时间内的所有调用请求进行比较,根据预设比较规则确定出待处理请求,在所述第一时间结束后向所述服务模块发送处理消息,所述处理消息用于指示所述服务模块处理所述待处理请求。
可选地,所述仲裁库用于在所述服务模块对应的仲裁策略为第二策略的情况下,获取所述服务模块上一次接收相同类型的其它调用请求的目标时间,判断所述目标时间与当前时间之间的时间差是否超过预设时间阈值;
所述仲裁库用于在判断出所述目标时间与当前时间之间的时间差不超过所述预设时间阈值的情况下,丢弃本次调用请求。
可选地,所述仲裁库用于在所述服务模块对应的仲裁策略为第三策略的情况下,判断所述服务模块是否正在处理其它业务模块的调用请求;
所述仲裁库用于在判断出所述服务模块正在处理其它业务模块的调用请求的情况下,丢弃本次调用请求;
所述仲裁库用于在判断出所述服务模块未处理其它业务模块的调用请求的情况下,向所述服务模块发送处理消息,所述处理消息用于指示所述服务模块处理所述调用请求。
根据本发明的第二方面,提供了一种基于面向服务架构的服务仲裁方法,包括:
服务模块接收业务模块发起的调用请求,所述调用请求至少包括服务接口信息和请求源信息;
所述服务模块在根据所述服务接口信息确定需要对所述调用请求进行仲裁的情况下,将所述请求源信息和所述服务模块的标识发送至仲裁库;
所述仲裁库根据所述服务模块的标识确定所述服务模块对应的仲裁策略,根据所述服务模块的仲裁策略和所述请求源信息对所述调用请求进行仲裁。
根据本发明的第三方面,提供了一种车辆,包括本发明第一方面所述的基于面向服务架构的服务仲裁装置。
根据本发明的第四方面,提供了一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令处理器被执行时实现如本发明第二方面所述的方法。
根据本发明的一个实施例,本发明通过在仲裁库中集成多个服务模块的仲裁策略,对于每个需要仲裁的服务模块,都可以通过调用同一仲裁库进行仲裁,让仲裁策略不同的服务模块可以复用同一仲裁库,不需要在每个服务模块中分别实现具体的仲裁策略,简化软件代码,提高软件的扩展性和可移植性。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是本发明实施例中基于面向服务架构的服务仲裁装置的示意图。
图2是本发明另一实施例中基于面向服务架构的服务仲裁装置的示意图。
图3是本发明实施例中基于面向服务架构的服务仲裁方法的示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
在面向服务架构(Service Oriented Architecture,SOA)的系统中,包括多个服务模块。比如对于车载SOA系统,包括车门服务模块、车窗服务模块、车灯服务模块等多个服务模块。并且随着SOA系统功能的增加,在SOA系统中包含的服务模块的数量也越来越多。
一个服务模块可能会被多个业务模块调用。而服务模块在同一时间内只能处理一个调用请求,因此需要对业务模块发起的调用请求进行仲裁。由于不同服务模块所采用的仲裁策略也各不相同,因此现有技术中通常都是在各个服务模块内部实现其各自的仲裁策略,增大了代码的复杂度。
如图1所示,本实施例介绍了一种基于面向服务架构的服务仲裁装置,包括多个服务模块和仲裁库,所述仲裁库中存储每个所述服务模块对应的仲裁策略。
所述服务模块用于接收业务模块发起的调用请求,所述调用请求至少包括服务接口信息和请求源信息,所述服务接口信息用于确定是否需要对所述调用请求进行仲裁。
所述服务模块用于在根据所述服务接口信息确定需要对所述调用请求进行仲裁的情况下,将所述请求源信息和所述服务模块的标识发送至所述仲裁库。
所述仲裁库用于根据所述服务模块的标识确定所述服务模块对应的仲裁策略,根据所述服务模块的仲裁策略和所述请求源信息对所述调用请求进行仲裁。
在面向服务架构的系统中,包括多个服务模块。每个服务模块用于提供特定的功能,服务模块向外提供服务接口。当业务模块需要使用某个功能时,通过调用对应服务模块的服务接口来使用该功能。每个服务模块可以提供一个或者多个接口,每个接口对应不同的功能。比如对于车载SOA系统,包括门服务,门服务可以提供控制车门开启或者关闭的功能。门服务向外提供两个服务接口,其中一个服务接口对应车门开启功能,另一服务接口对应车门关闭功能。当用户需要开启车门时,用户按下车钥匙的按钮,车钥匙作为业务模块来调用门服务提供的对应车门开启功能的服务接口,让车门开启。
业务模块通过调用服务模块提供的服务接口向服务模块发起调用请求。调用请求中包括服务接口信息和请求源信息。
服务接口信息表示业务模块发起调用请求时调用的是服务模块的哪个接口。比如汽车的门服务向外提供两个服务接口,业务模块可以调用其中任意一个服务接口。
请求源信息是业务模块发起调用请求时传入的信息。请求源信息可以包括业务模块传入的服务参数,比如对于汽车的门服务,在需要开启车门时,业务模块可以向调用请求中传入车门开启角度。请求源信息也可以包括业务模块的标识,用于向服务模块告知本次调用请求是由哪个业务模块发起的。
对于业务模块发起的调用请求,可能需要进行仲裁,也可能不需要进行仲裁。服务模块接收到业务模块发起的调用请求后,服务模块判断是否需要对该调用请求进行仲裁。可以在服务开发阶段对每个服务接口是否需要仲裁进行定义,比如定义服务接口1是需要仲裁的服务接口,服务接口2是不需要仲裁的服务接口。如果业务模块通过调用服务接口1发起调用请求,那么说明需要对该调用请求进行仲裁。如果业务模块通过调用服务接口2发起调用请求,那么说明不需要对该调用请求进行仲裁。
对于不需要进行仲裁的调用请求,服务模块直接处理该调用请求。比如对于汽车的音频播放服务,接收到调用请求后直接播放相应的音频,不需要进行仲裁。如果服务模块接收到的不需要进行仲裁的调用请求较多,那么服务模块以先进先出的方式进行处理。具体地,服务模块优先处理先接收到的调用请求。
对于需要进行仲裁的调用请求,服务模块将请求源信息以及自身的标识发送至仲裁库。在仲裁库中预先存储了每个服务模块对应的仲裁策略,仲裁库接收到服务模块的标识后确定出该服务模块的仲裁策略,并根据该服务模块的仲裁策略和请求源信息对调用请求进行仲裁。对于不同的服务模块,可以通过调用同一仲裁库进行仲裁。比如服务模块A接收到业务模块的调用请求后,服务模块A通过调用仲裁库进行仲裁。同样的,服务模块B接收到业务模块的调用请求后,服务模块B也调用同一仲裁库进行仲裁。
本实施例通过在仲裁库中集成多个服务模块的仲裁策略,对于每个需要仲裁的服务模块,都可以通过调用同一仲裁库进行仲裁,让仲裁策略不同的服务模块可以复用同一仲裁库,不需要在每个服务模块中分别实现具体的仲裁策略,简化软件代码,提高软件的扩展性和可移植性。
在一种实施方式中,所述仲裁库用于在所述服务模块对应的仲裁策略为第一策略的情况下,将所述调用请求添加至请求队列。所述仲裁库用于将所述请求队列中的第一时间内的所有调用请求进行比较,根据预设比较规则确定出待处理请求,在所述第一时间结束后向所述服务模块发送处理消息,所述处理消息用于指示所述服务模块处理所述待处理请求。
在仲裁库接收到服务模块的标识后,如果判断出服务模块对应的仲裁策略为第一策略,那么仲裁库中将该调用请求添加至请求队列。在该请求队列中存储所有仲裁策略为第一策略的服务模块对应的调用请求。比如服务模块A和服务模块B的仲裁策略都为第一策略,而服务模块C的仲裁策略不为第一策略,那么在服务模块A、服务模块B和服务模块C都接收到调用请求时,在该请求队列中存储服务模块A接收的调用请求以及服务模块B接收的调用请求,该请求队列中不会存储服务模块C接收的调用请求。
仲裁库会将第一时间内的所有调用请求进行比较。比如第一时间为1s,服务模块在0-1s内接收到三个调用请求,在1-2s内接收到四个调用请求,那么仲裁库会将0-1s内的三个调用请求进行比较,确定出一个待处理请求,在1s时间点将该待处理请求下发处理。仲裁库还会将1-2s内的四个调用请求进行比较,确定出一个待处理请求,在2s时间点将该待处理请求下发处理。
仲裁库根据预设比较规则确定出需要待处理请求。预设比较规则可以根据具体的实际业务来确定。比如服务模块是空调服务模块,服务模块接收到三个调整空调温度的调用请求,在三个调用请求中分别设置了温度值为15℃、20℃以及25℃,仲裁库通过比较三个调用请求中设置的温度值,将温度值最高的调用请求确定为待处理请求,也就是将温度值为25℃的调用请求确定为待处理请求,在服务模块处理该待处理请求后空调的温度值为25℃。
在一种实施方式中,所述仲裁库用于在所述服务模块对应的仲裁策略为第二策略的情况下,获取所述服务模块上一次接收相同类型的其它调用请求的目标时间,判断所述目标时间与当前时间之间的时间差是否超过预设时间阈值。所述仲裁库用于在判断出所述目标时间与当前时间之间的时间差不超过所述预设时间阈值的情况下,丢弃本次调用请求。
如果某个服务模块正在处理一个调用请求,在处理过程中该服务模块又接到了新的同类型调用请求,那么该服务模块会继续处理前一个调用请求。对于新接收到的调用请求,服务模块不会处理。
可以通过根据两次相同类型的调用请求之间的时间差来判断服务模块是否正在处理上一次的调用请求。如果时间差小于预设时间阈值,那么说明服务模块还在处理上一次的调用请求,对于本次调用请求该服务模块不会响应,本次调用请求会被丢弃。如果时间差大于或者等于预设时间阈值,那么说明服务模块已经将上一次的调用请求处理完毕,可以让服务模块来处理本次调用请求。预设时间阈值可以通过预先测试得到,比如预设时间阈值可以为1秒。
比如服务模块为车门服务模块,车门服务模块先接收到开门的调用请求。在车门开启过程中车门服务模块又接收到关门的调用请求,此时车门还未开启完毕,由于开门的调用请求和关门的调用请求是同类型的调用请求,那么车门服务模块不会响应关门的调用请求。
在一种实施方式中,所述仲裁库用于在所述服务模块对应的仲裁策略为第三策略的情况下,判断所述服务模块是否正在处理其它业务模块的调用请求。
所述仲裁库用于在判断出所述服务模块正在处理其它业务模块的调用请求的情况下,对比所述业务模块和所述其它业务模块的优先级。
所述仲裁库用于在所述其它业务模块的优先级高于所述业务模块的优先级的情况下,丢弃所述业务模块的调用请求。
所述仲裁库用于在所述其它业务模块的优先级低于所述业务模块的优先级的情况下,向所述服务模块发送中断消息,所述终端消息用于指示所述服务模块停止处理所述其它业务模块的调用请求以及指示所述服务模块开始处理所述业务模块的调用请求。
所述仲裁库用于在判断出所述服务模块未处理其它业务模块的调用请求的情况下,向所述服务模块发送处理消息,所述处理消息用于指示所述服务模块处理所述调用请求。
一个服务模块可以被多个业务模块调用。当服务模块接收到第一业务模块发起的调用请求时,如果该服务模块已经被第二业务模块占用,即该服务模块正在处理第二业务模块的调用请求,此时需要对两个业务模块的优先级进行判断。如果第二业务模块的优先级更高,那么服务模块继续执行第二业务模块的调用请求。如果第二业务模块的优先级低,那么服务模块停止执行第二业务模块的调用请求,服务模块开始执行第一业务模块的调用请求。如果服务模块接收到业务模块的调用请求时没有被其它业务模块占用,那么服务模块直接处理该调用请求即可。
比如当汽车处于自动驾驶状态时,汽车的转向灯服务模块被自动驾驶模块占用。在此情况下如果其它业务模块调用该转向灯服务模块,由于自动驾驶模块的优先级更高,那么转向灯服务模块不会响应其它业务模块的调用请求。
在一种实施方式中,所述调用请求还包括优先级。所述仲裁库用于在所述服务模块对应的仲裁策略为第四策略的情况下,将所述调用请求添加至请求队列。其中,所述服务模块优先处理所述请求队列中优先级高的调用请求。
业务模块在发起调用请求时可以在调用请求中传入优先级。该优先级可以表示本次调用请求的优先级,该优先级也可以表示业务模块的优先级。服务模块在接收到多个调用请求的情况下,优先处理优先级高的调用请求。
在一种实施方式中,所述仲裁库用于在所述服务模块对应的仲裁策略为第五策略的情况下,将所述调用请求添加至请求队列。其中,所述服务模块优先处理后加入所述请求队列中的调用请求。
在仲裁策略为第五策略时,服务模块按照先入后出的方式进行处理。具体地,对于服务模块先接收到的调用请求,服务模块后处理。也就是让服务模块优先处理最近接收到的调用请求。还可以设置一个处理周期,让服务模块对一个周期内的多个调用请求按照先入后出的方式进行处理。
本实施例通过在仲裁库中配置多种不同的仲裁策略,满足SOA架构下多样的服务仲裁需求。
本实施例中,如图2所示,所述服务模块包括客户端和服务端。所述客户端用于向所述业务模块提供服务接口,接收所述业务模块通过调用所述服务接口发起的调用请求,根据所述调用请求中的接口信息确定是否需要对所述调用请求进行仲裁。
所述客户端用于在确定需要对所述调用请求进行仲裁的情况下,生成仲裁标识,将所述仲裁标识和所述请求源信息发送至所述服务端,所述仲裁标识用于指示所述服务端调用所述仲裁库根据所述请求源信息对所述调用请求进行仲裁。
服务模块采用C/S(Client/Service,客户端/服务端)架构。其中客户端用于向业务模块提供服务接口,不同的服务接口对应不同的功能。一个客户端可以只提供一个接口,一个客户端也可以提供多个接口。服务端用于实现具体的业务逻辑。比如对于车门服务模块,在车门服务模块的客户端中提供车门开启接口以及车门关闭接口,在车门服务模块的服务端中实现具体的车门开启及关闭的代码。
业务模块通过调用客户端提供的服务接口发起调用请求,客户端接收到该调用请求。在设计服务接口时,可以定义哪些接口是需要仲裁的接口,以及定义哪些接口是不需要仲裁的接口。客户端根据业务模块调用的哪个接口来判断是否需要对调用请求进行仲裁。如果业务模块调用的是需要仲裁的接口,那么说明需要对调用请求进行仲裁,此时客户端生成仲裁标识。客户端将生成的仲裁标识以及请求源信息发送给服务端,客户端和服务端之间可以通过IPC(Inter Process Communication,进程间通信)、RPC(Remote ProcedureCall,远程过程调用)等方式进行通信。服务端在接收到客户端发送的仲裁标识后,直接调用仲裁库进行仲裁。
在一种实施方式中,所述客户端用于在确定不需要对所述调用请求进行仲裁的情况下,向所述服务端发送处理消息,所述处理消息用于指示所述服务端处理所述调用请求。
如果业务模块调用的是不需要仲裁的服务接口,那么客户端判断不需要对调用请求进行仲裁。在此情况下客户端直接向服务端发送处理消息,服务端接收到处理消息后对调用请求进行处理。
本实施例中,所述服务端用于在所述调用请求的仲裁结果为不执行的情况下,丢弃所述调用请求。所述服务端用于在所述调用请求的仲裁结果为执行的情况下,处理所述调用请求,将所述调用请求的处理结果发送至所述业务模块。
如果仲裁结果是不执行,那么说明不需要对该调用请求进行处理。比如业务模块发起调用请求时,服务模块已经被其它业务模块占用,而该业务模块的优先级相对较低,此时仲裁结果即为不执行。
如果仲裁结果是执行,那么由服务端直接对该调用请求进行处理,并将处理结果返回业务模块。比如车门服务模块接收到开启车门的调用请求,在执行完毕后,车门服务模块将车门的开启结果返回业务模块。如果车门开启失败,那么车门服务模块向业务模块发送车门开启失败的消息。如果车门开启成功,那么车门服务模块向业务模块发送车门开启成功的消息,同时告知业务模块车门的开启角度。
在一种实施方式中,所述仲裁库用于接收第一更新指令,所述第一更新指令中包括新增的仲裁策略以及所述新增的仲裁策略与服务模块的对应关系,在所述仲裁库中配置所述新增的仲裁策略以及所述新增的仲裁策略与服务模块的对应关系。
仲裁库可以接收第一更新指令。比如在整车系统升级时,对仲裁库下发第一更新指令。仲裁库接收到第一更新指令后,对第一更新指令中进行解析,得到新增的仲裁策略以及新增的仲裁策略与服务模块的对应关系。
第一更新指令中新增的仲裁策略与服务模块之间的对应关系,可以是新增的仲裁策略与车辆已有的服务模块之间的对应关系。比如对于车辆的某个服务模块,在以往的仲裁策略中,对于向该服务模块发起的调用请求不需要进行仲裁。业务端向该服务模块发起调用请求后,该服务模块可以直接执行。仲裁库接收到第一更新指令后,配置该服务模块与新增的仲裁策略之间的对应关系。在配置完毕后,对于业务端再次向该服务模块发起的调用请求,则需要根据新增的仲裁策略进行仲裁。
比如,当车辆厂家新增了车辆的功能后,需要对整车系统进行更新。更新后的整车系统中包含新增的服务模块。仲裁库接收到的第一更新指令中的仲裁策略也可以是该新增的服务模块对应的仲裁策略。
在一种实施方式中,所述仲裁库用于接收第二更新指令,所述第二更新指令中包括目标仲裁策略的标识以及所述目标仲裁策略的修改内容,所述目标仲裁策略是已经配置在所述仲裁库中的仲裁策略,根据所述目标仲裁策略的标识以及所述目标仲裁策略的修改内容对所述目标仲裁策略进行更新。
还可以对已有的仲裁策略进行更新。比如在车辆的实际使用过程中,车辆厂家发现已有的某种仲裁策略存在不合理之处,需要对其进行修改。那么在此情况下向仲裁库发送第二更新指令。
第二更新指令中包含目标仲裁策略的标识。目标仲裁策略是在已经配置在仲裁库中的仲裁策略,也就是需要修改的仲裁策略。同时第二更新指令中还包括目标仲裁策略的修改内容。仲裁库接收到第二更新指令后,对第二更新指令进行解析,获取到目标仲裁策略的标识以及目标仲裁策略的修改内容。仲裁库根据目标仲裁策略的标识找到目标仲裁策略,然后根据目标仲裁了的修改内容对目标仲裁策略进行更新。
本实施例通过让仲裁库接收更新指令,对仲裁策略进行更新,仲裁策略的更新过程不需要业务端参与,进一步实现业务端与仲裁库之间的解耦,提高仲裁库的可扩展性。
如图3所示,本实施例介绍了一种基于面向服务架构的服务仲裁方法,包括步骤3100-3300。
步骤3100:服务模块接收业务模块发起的调用请求,所述调用请求至少包括服务接口信息和请求源信息。
步骤3200:所述服务模块在根据所述服务接口信息确定需要对所述调用请求进行仲裁的情况下,将所述请求源信息和所述服务模块的标识发送至仲裁库。
步骤3300:所述仲裁库根据所述服务模块的标识确定所述服务模块对应的仲裁策略,根据所述服务模块的仲裁策略和所述请求源信息对所述调用请求进行仲裁。
本实施例通过在仲裁库中集成多个服务模块的仲裁策略,对于每个需要仲裁的服务模块,都可以通过调用同一仲裁库进行仲裁,让仲裁策略不同的服务模块可以复用同一仲裁库,不需要在每个服务模块中分别实现具体的仲裁策略,简化软件代码,提高软件的扩展性和可移植性。
可选地,所述服务模块包括客户端和服务端;
所述客户端向所述业务模块提供服务接口,接收所述业务模块通过调用所述服务接口发起的调用请求,根据所述调用请求中的接口信息确定是否需要对所述调用请求进行仲裁;
所述客户端在确定需要对所述调用请求进行仲裁的情况下,生成仲裁标识,将所述仲裁标识和所述请求源信息发送至所述服务端,所述仲裁标识用于指示所述服务端调用所述仲裁库根据所述请求源信息对所述调用请求进行仲裁。
可选地,所述方法还包括:
所述服务端在所述调用请求的仲裁结果为不执行的情况下,丢弃所述调用请求;
所述服务端在所述调用请求的仲裁结果为执行的情况下,处理所述调用请求,将所述调用请求的处理结果发送至所述业务模块。
可选地,所述方法还包括:
所述客户端在确定不需要对所述调用请求进行仲裁的情况下,向所述服务端发送处理消息,所述处理消息用于指示所述服务端处理所述调用请求。
可选地,所述方法还包括:
所述仲裁库在所述服务模块对应的仲裁策略为第一策略的情况下,将所述调用请求添加至请求队列;
所述仲裁库将所述请求队列中的第一时间内的所有调用请求进行比较,根据预设比较规则确定出待处理请求,在所述第一时间结束后向所述服务模块发送处理消息,所述处理消息用于指示所述服务模块处理所述待处理请求。
可选地,所述方法还包括:
所述仲裁库在所述服务模块对应的仲裁策略为第二策略的情况下,判断所述服务模块是否正在处理相同类型的其它调用请求;
所述仲裁库在判断出所述服务模块正在处理相同类型的其它调用请求的情况下,丢弃本次调用请求。
可选地,所述方法还包括:
所述仲裁库在所述服务模块对应的仲裁策略为第三策略的情况下,判断所述服务模块是否正在处理其它业务模块的调用请求;
所述仲裁库在判断出所述服务模块正在处理其它业务模块的调用请求的情况下,对比所述业务模块和所述其它业务模块的优先级;
所述仲裁库在所述其它业务模块的优先级高于所述业务模块的优先级的情况下,丢弃所述业务模块的调用请求;
所述仲裁库在所述其它业务模块的优先级低于所述业务模块的优先级的情况下,向所述服务模块发送中断消息,所述终端消息用于指示所述服务模块停止处理所述其它业务模块的调用请求以及指示所述服务模块开始处理所述业务模块的调用请求;
所述仲裁库在判断出所述服务模块未处理其它业务模块的调用请求的情况下,向所述服务模块发送处理消息,所述处理消息用于指示所述服务模块处理所述调用请求。
本实施例介绍了一种车辆,包括本发明任一实施例所述的基于面向服务架构的服务仲裁装置。
本实施例介绍了一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令处理器被执行时实现如本发明任一实施例所述的基于面向服务架构的服务仲裁方法。
本实施例介绍了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如本发明任一实施例所述的基于面向服务架构的服务仲裁方法的步骤。
本申请中的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备、核心网设备、OAM或者其它可编程装置。
所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘;还可以是半导体介质,例如,固态硬盘。该计算机可读存储介质可以是易失性或非易失性存储介质,或可包括易失性和非易失性两种类型的存储介质。
这里所描述的计算机程序/指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (11)
1.一种基于面向服务架构的服务仲裁装置,其特征在于,包括多个服务模块和仲裁库,所述仲裁库中存储每个所述服务模块对应的仲裁策略;
所述服务模块用于接收业务模块发起的调用请求,所述调用请求至少包括服务接口信息和请求源信息,所述服务接口信息用于确定是否需要对所述调用请求进行仲裁;
所述服务模块用于在根据所述服务接口信息确定需要对所述调用请求进行仲裁的情况下,将所述请求源信息和所述服务模块的标识发送至所述仲裁库;
所述仲裁库用于根据所述服务模块的标识确定所述服务模块对应的仲裁策略,根据所述服务模块的仲裁策略和所述请求源信息对所述调用请求进行仲裁。
2.根据权利要求1所述的装置,其特征在于,所述服务模块包括客户端和服务端;
所述客户端用于向所述业务模块提供服务接口,接收所述业务模块通过调用所述服务接口发起的调用请求,根据所述调用请求中的接口信息确定是否需要对所述调用请求进行仲裁;
所述客户端用于在确定需要对所述调用请求进行仲裁的情况下,生成仲裁标识,将所述仲裁标识和所述请求源信息发送至所述服务端,所述仲裁标识用于指示所述服务端调用所述仲裁库根据所述请求源信息对所述调用请求进行仲裁。
3.根据权利要求2所述的装置,其特征在于,
所述服务端用于在所述调用请求的仲裁结果为不执行的情况下,丢弃所述调用请求;
所述服务端用于在所述调用请求的仲裁结果为执行的情况下,处理所述调用请求,将所述调用请求的处理结果发送至所述业务模块。
4.根据权利要求2所述的装置,其特征在于,
所述客户端用于在确定不需要对所述调用请求进行仲裁的情况下,向所述服务端发送处理消息,所述处理消息用于指示所述服务端处理所述调用请求。
5.根据权利要求1所述的装置,其特征在于,
所述仲裁库用于在所述服务模块对应的仲裁策略为第一策略的情况下,将所述调用请求添加至请求队列;
所述仲裁库用于将所述请求队列中的第一时间内的所有调用请求进行比较,根据预设比较规则确定出待处理请求,在所述第一时间结束后向所述服务模块发送处理消息,所述处理消息用于指示所述服务模块处理所述待处理请求。
6.根据权利要求1所述的装置,其特征在于,
所述仲裁库用于在所述服务模块对应的仲裁策略为第二策略的情况下,获取所述服务模块上一次接收相同类型的其它调用请求的目标时间,判断所述目标时间与当前时间之间的时间差是否超过预设时间阈值;
所述仲裁库用于在判断出所述目标时间与当前时间之间的时间差小于所述预设时间阈值的情况下,丢弃本次调用请求。
7.根据权利要求1所述的装置,其特征在于,
所述仲裁库用于接收第一更新指令,所述第一更新指令中包括新增的仲裁策略以及所述新增的仲裁策略与服务模块的对应关系,在所述仲裁库中配置所述新增的仲裁策略以及所述新增的仲裁策略与服务模块的对应关系。
8.根据权利要求1所述的装置,其特征在于,
所述仲裁库用于接收第二更新指令,所述第二更新指令中包括目标仲裁策略的标识以及所述目标仲裁策略的修改内容,所述目标仲裁策略是已经配置在所述仲裁库中的仲裁策略,根据所述目标仲裁策略的标识以及所述目标仲裁策略的修改内容对所述目标仲裁策略进行更新。
9.一种基于面向服务架构的服务仲裁方法,其特征在于,包括:
服务模块接收业务模块发起的调用请求,所述调用请求至少包括服务接口信息和请求源信息,所述请求源信息至少包括服务参数,所述服务参数为所述服务模块处理所述调用请求时需要使用的参数;
所述服务模块在根据所述服务接口信息确定需要对所述调用请求进行仲裁的情况下,将所述请求源信息和所述服务模块的标识发送至仲裁库;
所述仲裁库根据所述服务模块的标识确定所述服务模块对应的仲裁策略,根据所述服务模块的仲裁策略和所述请求源信息对所述调用请求进行仲裁。
10.一种车辆,其特征在于,包括权利要求1-8任一项所述的基于面向服务架构的服务仲裁装置。
11.一种计算机程序产品,包括计算机程序/指令,其特征在于,当所述计算机程序/指令处理器被执行时实现如权利要求9所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311323265.0A CN117093520A (zh) | 2023-10-12 | 2023-10-12 | 基于面向服务架构的服务仲裁装置、方法、车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311323265.0A CN117093520A (zh) | 2023-10-12 | 2023-10-12 | 基于面向服务架构的服务仲裁装置、方法、车辆 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117093520A true CN117093520A (zh) | 2023-11-21 |
Family
ID=88773730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311323265.0A Pending CN117093520A (zh) | 2023-10-12 | 2023-10-12 | 基于面向服务架构的服务仲裁装置、方法、车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093520A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050268302A1 (en) * | 2004-05-26 | 2005-12-01 | Geib Kenneth M | System for dynamic arbitration of a shared resource on a device |
CN101166153A (zh) * | 2006-10-18 | 2008-04-23 | 华为技术有限公司 | 一种控制网络业务的方法及系统 |
CN106294227A (zh) * | 2016-08-02 | 2017-01-04 | 芯启源(上海)半导体科技有限公司 | 仲裁设备、动态自适应仲裁方法及系统 |
CN110166272A (zh) * | 2018-02-14 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 提供终端设备指标仲裁服务的方法、装置及系统 |
CN110865848A (zh) * | 2018-08-21 | 2020-03-06 | 深圳市优必选科技有限公司 | 组件拦截方法及终端设备 |
CN115586935A (zh) * | 2022-10-21 | 2023-01-10 | 深圳市晨北科技有限公司 | 一种数据处理方法、装置、电子设备及介质 |
CN116600449A (zh) * | 2023-05-10 | 2023-08-15 | 零束科技有限公司 | 一种汽车氛围灯的控制方法、装置及车辆 |
CN116668545A (zh) * | 2023-05-11 | 2023-08-29 | 零束科技有限公司 | 基于soa架构的服务优先级仲裁方法 |
-
2023
- 2023-10-12 CN CN202311323265.0A patent/CN117093520A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050268302A1 (en) * | 2004-05-26 | 2005-12-01 | Geib Kenneth M | System for dynamic arbitration of a shared resource on a device |
CN101166153A (zh) * | 2006-10-18 | 2008-04-23 | 华为技术有限公司 | 一种控制网络业务的方法及系统 |
CN106294227A (zh) * | 2016-08-02 | 2017-01-04 | 芯启源(上海)半导体科技有限公司 | 仲裁设备、动态自适应仲裁方法及系统 |
CN110166272A (zh) * | 2018-02-14 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 提供终端设备指标仲裁服务的方法、装置及系统 |
CN110865848A (zh) * | 2018-08-21 | 2020-03-06 | 深圳市优必选科技有限公司 | 组件拦截方法及终端设备 |
CN115586935A (zh) * | 2022-10-21 | 2023-01-10 | 深圳市晨北科技有限公司 | 一种数据处理方法、装置、电子设备及介质 |
CN116600449A (zh) * | 2023-05-10 | 2023-08-15 | 零束科技有限公司 | 一种汽车氛围灯的控制方法、装置及车辆 |
CN116668545A (zh) * | 2023-05-11 | 2023-08-29 | 零束科技有限公司 | 基于soa架构的服务优先级仲裁方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271265B (zh) | 基于消息队列的请求处理方法、装置、设备及存储介质 | |
US8910138B2 (en) | Hot pluggable extensions for access management system | |
CN110311983B (zh) | 服务请求的处理方法、装置、系统、电子设备及存储介质 | |
EP3627321A1 (en) | Mobile terminal with middleware security access manager | |
EP1958064B1 (en) | Resource control | |
CN110289965B (zh) | 一种应用程序服务的管理方法及装置 | |
US20140137091A1 (en) | Automobile open system architecture(autosar)-based electronic control unit (ecu) and method for updating ecu | |
US10447924B2 (en) | Camera usage notification | |
CN114531467B (zh) | 一种信息处理方法、设备和系统 | |
EP3247080B1 (en) | Certificate management method, device and system | |
CN111258723B (zh) | 分布式系统的事务处理方法、装置、系统、介质及设备 | |
CN111858007A (zh) | 一种基于消息中间件的任务调度方法方法和装置 | |
WO2022061710A1 (zh) | 一种车辆服务控制方法、装置、车辆、设备及存储介质 | |
CN109683992B (zh) | 用于管理对象的方法和装置 | |
CN117093520A (zh) | 基于面向服务架构的服务仲裁装置、方法、车辆 | |
CN112667270A (zh) | 语音处理资源的更新方法、计算机设备及存储装置 | |
US7565420B2 (en) | Method for initializing a distributed software architecture and an electronic system | |
CN114363373B (zh) | 应用通信管理系统、方法、装置、电子设备以及存储介质 | |
US7328291B2 (en) | System and method for controlling the service engagement in a data bus system | |
JP2004046420A (ja) | 最新リソースの整合方法及びその方式 | |
CN114116042B (zh) | 一种面向Linux服务系统的命令处理方法及系统 | |
US20220138742A1 (en) | Blockchain-Powered Device Instruction | |
WO2023173796A1 (zh) | 通信管理方法、装置和系统 | |
EP4301017A1 (en) | Information transmission method and apparatus, device, and storage medium | |
CN114237836A (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 |