本发明涉及车辆通信,具体涉及一种车载soa服务调用链监控方法与系统、存储介质。
背景技术:
1、当前,汽车的电子电器架构正从基于信号的电子电器架构转向基于服务的电子电器架构,基于服务的架构即soa(service-oriented architecture)。在基于服务的电子电器架构下,车载功能开发将依赖于各种各样的soa服务,并且各个soa服务可能部署在不同的硬件设备或虚拟机上,这也就意味着一个应用功能的实现有可能需要跨域远程调用多个soa服务,这几个soa服务的调用组成了一个调用链。由于是跨域调用,因此对soa服务的调用追踪造成了一定的困难,从而不利于整车功能服务的监控。
2、在实现本发明的过程中,发明人发现现有技术存在以下问题:
3、目前对soa服务的调用追踪普遍采用通过日志记录方式来实现,在跨域的电子电器架构中,日志记录过于分散不易管理,日志存储会占用大量的存储资源,日志所记录的内容信息杂乱,不利于查阅。
技术实现思路
1、本发明的目的在于提出一种车载soa服务调用链监控方法与系统、存储介质,以解决通过日志记录方式对soa服务的调用追踪存在的上述技术问题。
2、为实现上述目的,本发明的实施例提出一种车载soa服务调用链监控方法,所述soa服务调用链包括依次调用的至少两个soa服务;
3、当接收车载功能应用对所述soa服务调用链的调用请求时,依次执行所述至少两个soa服务的业务逻辑;并且,每当任一个soa服务的业务逻辑执行完毕时,将该任一个soa服务的服务调用信息压入服务调用数据结构;
4、在所述soa服务调用链的最后一个soa服务的服务调用信息压入所述服务调用数据结构之后,所述soa服务调用链执行完毕。
5、其中,所述方法还包括:
6、当需要查看所述soa服务调用链时,依次对所述服务调用数据结构中的至少两个服务调用信息执行压出操作得到所述soa服务调用链的所有服务调用信息。
7、其中,所述方法还包括:
8、创建一个服务调用数据结构,并为该服务调用数据结构分配一个唯一的数据结构编号;
9、其中,所述将该任一个soa服务的服务调用信息压入所述服务调用数据结构,包括:
10、根据所述数据结构编号将该任一个soa服务的服务调用信息压入与所述数据结构编号匹配的服务调用数据结构。
11、其中,所述方法还包括:
12、创建一个与所述服务调用数据结构对应的数据库;其中,所述数据库用于存储和管理该服务调用数据结构。
13、本发明的实施例还提出一种车载soa服务调用链监控系统,所述soa服务调用链包括依次调用的至少两个soa服务;所述系统包括soa服务模块;
14、所述soa服务模块,用于当其接收车载功能应用对所述soa服务调用链的调用请求时,依次执行所述至少两个soa服务的业务逻辑;并且,每当任一个soa服务的业务逻辑执行完毕时,将该任一个soa服务的服务调用信息压入服务调用数据结构;其中,在所述soa服务调用链的最后一个soa服务的服务调用信息压入所述服务调用数据结构之后,所述soa服务调用链执行完毕。
15、其中,所述系统包括soa服务管理模块;
16、所述soa服务管理模块,用于当需要查看所述soa服务调用链时,依次对所述服务调用数据结构中的至少两个服务调用信息执行压出操作得到所述soa服务调用链的所有服务调用信息。
17、其中,所述系统包括soa服务管理模块;
18、所述soa服务模块,还用于向所述soa服务管理模块发送创建数据结构请求;
19、所述soa服务管理模块,用于接收所述创建数据结构请求,根据所述创建数据结构请求创建一个服务调用数据结构,并为该服务调用数据结构分配一个唯一的数据结构编号,将所述数据结构编号发送给所述soa服务模块;
20、所述soa服务模块,还用于接收所述soa服务管理模块返回的数据结构编号;当任一个soa服务的业务逻辑执行完毕时,根据所述数据结构编号将该任一个soa服务的服务调用信息压入与所述数据结构编号匹配的服务调用数据结构。
21、其中,所述soa服务模块包括n个soa服务单元,所述n个soa服务单元分别用于提供soa服务调用链的n个soa服务,n≥2;
22、当i=1时,第i个soa服务单元,用于当其接收到车载功能应用调用第i个soa服务的调用请求时,执行该第i个soa服务的业务逻辑;还用于向所述soa服务管理模块发送创建数据结构请求,并接收所述soa服务管理模块返回的所述数据结构编号;还用于根据所述数据结构编号将该第i个soa服务的服务调用信息压入与所述数据结构编号匹配的服务调用数据结构,调用第i+1个soa服务单元的第i+1个soa服务,并将所述数据结构编号发送给第i+1个soa服务单元;
23、当n>i>1时,第i个soa服务单元,用于接收第i-1个soa服务单元发送的所述数据结构编号,执行第i个soa服务的业务逻辑,根据所述数据结构编号将该第i个soa服务的服务调用信息压入与所述数据结构编号匹配的服务调用数据结构,调用第i+1个soa服务单元的第i+1个soa服务,并将所述数据结构编号发送给第i+1个soa服务单元;
24、当i=n时,第i个soa服务单元,用于接收第i-1个soa服务单元发送的所述数据结构编号,执行第i个soa服务的业务逻辑,并根据所述数据结构编号将该第i个soa服务的服务调用信息压入与所述数据结构编号匹配的服务调用数据结构。
25、其中,当n≥i≥1时,第i个soa服务单元,具体用于将所述数据结构编号和第i个soa服务的服务调用信息发送给所述soa服务管理模块;
26、所述soa服务管理模块,具体用于接收soa服务单元发送的所述数据结构编号和第i个soa服务的服务调用信息,根据所述数据结构编号和第i个soa服务的服务调用信息将该第i个soa服务的服务调用信息压入与所述数据结构编号匹配的服务调用数据结构。
27、本发明的实施例还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时完成如上述的实施例所述的车载soa服务调用链监控方法。
28、本发明的实施例具有以下有益效果:
29、在本发明的实施例中,当接收车载功能应用对某一个soa服务调用链的调用请求时,依次执行该一个soa服务调用链的至少两个soa服务的业务逻辑,每当任一个soa服务的业务逻辑执行完毕时,将该任一个soa服务的服务调用信息压入服务调用数据结构(例如是堆栈、队列),在所述soa服务调用链的最后一个soa服务的服务调用信息压入所述服务调用数据结构之后,所述soa服务调用链执行完毕,通过以上方式,可以将该一个soa服务调用链的至少两个soa服务的调用信息通过一个服务调用数据结构来保存,相对于通过日志记录的方式而言,通过服务调用数据结构可以完整地保存一个soa服务调用链的调用信息,适用于跨域的电子电器架构,容易管理,减少占用存储资源,记录的内容信息清晰简洁,有利于查阅。
30、本发明的其它特征和优点将在随后的具体实施方式中阐述。