本发明涉及软件,更具体地,涉及一种基于面向服务架构的服务仲裁装置、方法、车辆。
背景技术:
1、在面向服务架构(service oriented architecture,soa)的系统中,由于一个服务模块可能会被多个业务模块调用。而由于服务模块在同一时间内只能处理一个调用请求,因此需要对业务模块发起的调用请求进行仲裁。由于不同服务模块所采用的仲裁策略也各不相同,因此现有技术中通常都是在各个服务模块内部实现其各自的仲裁策略,增大了代码的复杂度。
技术实现思路
1、本发明的一个目的是提供一种用于面向服务架构下的服务仲裁的新技术方案。
2、根据本发明的第一方面,提供了一种基于面向服务架构的服务仲裁装置,包括多个服务模块和仲裁库,所述仲裁库中存储每个所述服务模块对应的仲裁策略;
3、所述服务模块用于接收业务模块发起的调用请求,所述调用请求至少包括服务接口信息和请求源信息,所述服务接口信息用于确定是否需要对所述调用请求进行仲裁;
4、所述服务模块用于在根据所述服务接口信息确定需要对所述调用请求进行仲裁的情况下,将所述请求源信息和所述服务模块的标识发送至所述仲裁库;
5、所述仲裁库用于根据所述服务模块的标识确定所述服务模块对应的仲裁策略,根据所述服务模块的仲裁策略和所述请求源信息对所述调用请求进行仲裁。
6、可选地,所述服务模块包括客户端和服务端;
7、所述客户端用于向所述业务模块提供服务接口,接收所述业务模块通过调用所述服务接口发起的调用请求,根据所述调用请求中的接口信息确定是否需要对所述调用请求进行仲裁;
8、所述客户端用于在确定需要对所述调用请求进行仲裁的情况下,生成仲裁标识,将所述仲裁标识和所述请求源信息发送至所述服务端,所述仲裁标识用于指示所述服务端调用所述仲裁库根据所述请求源信息对所述调用请求进行仲裁。
9、可选地,所述服务端用于在所述调用请求的仲裁结果为不执行的情况下,丢弃所述调用请求;
10、所述服务端用于在所述调用请求的仲裁结果为执行的情况下,处理所述调用请求,将所述调用请求的处理结果发送至所述业务模块。
11、可选地,所述客户端用于在确定不需要对所述调用请求进行仲裁的情况下,向所述服务端发送处理消息,所述处理消息用于指示所述服务端处理所述调用请求。
12、可选地,所述仲裁库用于在所述服务模块对应的仲裁策略为第一策略的情况下,将所述调用请求添加至请求队列;
13、所述仲裁库用于将所述请求队列中的第一时间内的所有调用请求进行比较,根据预设比较规则确定出待处理请求,在所述第一时间结束后向所述服务模块发送处理消息,所述处理消息用于指示所述服务模块处理所述待处理请求。
14、可选地,所述仲裁库用于在所述服务模块对应的仲裁策略为第二策略的情况下,获取所述服务模块上一次接收相同类型的其它调用请求的目标时间,判断所述目标时间与当前时间之间的时间差是否超过预设时间阈值;
15、所述仲裁库用于在判断出所述目标时间与当前时间之间的时间差不超过所述预设时间阈值的情况下,丢弃本次调用请求。
16、可选地,所述仲裁库用于在所述服务模块对应的仲裁策略为第三策略的情况下,判断所述服务模块是否正在处理其它业务模块的调用请求;
17、所述仲裁库用于在判断出所述服务模块正在处理其它业务模块的调用请求的情况下,丢弃本次调用请求;
18、所述仲裁库用于在判断出所述服务模块未处理其它业务模块的调用请求的情况下,向所述服务模块发送处理消息,所述处理消息用于指示所述服务模块处理所述调用请求。
19、根据本发明的第二方面,提供了一种基于面向服务架构的服务仲裁方法,包括:
20、服务模块接收业务模块发起的调用请求,所述调用请求至少包括服务接口信息和请求源信息;
21、所述服务模块在根据所述服务接口信息确定需要对所述调用请求进行仲裁的情况下,将所述请求源信息和所述服务模块的标识发送至仲裁库;
22、所述仲裁库根据所述服务模块的标识确定所述服务模块对应的仲裁策略,根据所述服务模块的仲裁策略和所述请求源信息对所述调用请求进行仲裁。
23、根据本发明的第三方面,提供了一种车辆,包括本发明第一方面所述的基于面向服务架构的服务仲裁装置。
24、根据本发明的第四方面,提供了一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令处理器被执行时实现如本发明第二方面所述的方法。
25、根据本发明的一个实施例,本发明通过在仲裁库中集成多个服务模块的仲裁策略,对于每个需要仲裁的服务模块,都可以通过调用同一仲裁库进行仲裁,让仲裁策略不同的服务模块可以复用同一仲裁库,不需要在每个服务模块中分别实现具体的仲裁策略,简化软件代码,提高软件的扩展性和可移植性。
26、通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
1.一种基于面向服务架构的服务仲裁装置,其特征在于,包括多个服务模块和仲裁库,所述仲裁库中存储每个所述服务模块对应的仲裁策略;
2.根据权利要求1所述的装置,其特征在于,所述服务模块包括客户端和服务端;
3.根据权利要求2所述的装置,其特征在于,
4.根据权利要求2所述的装置,其特征在于,
5.根据权利要求1所述的装置,其特征在于,
6.根据权利要求1所述的装置,其特征在于,
7.根据权利要求1所述的装置,其特征在于,
8.根据权利要求1所述的装置,其特征在于,
9.一种基于面向服务架构的服务仲裁方法,其特征在于,包括:
10.一种车辆,其特征在于,包括权利要求1-8任一项所述的基于面向服务架构的服务仲裁装置。
11.一种计算机程序产品,包括计算机程序/指令,其特征在于,当所述计算机程序/指令处理器被执行时实现如权利要求9所述的方法。