CN116431365A - 基于车载服务导向架构的监控***、方法、车辆 - Google Patents
基于车载服务导向架构的监控***、方法、车辆 Download PDFInfo
- Publication number
- CN116431365A CN116431365A CN202310665552.3A CN202310665552A CN116431365A CN 116431365 A CN116431365 A CN 116431365A CN 202310665552 A CN202310665552 A CN 202310665552A CN 116431365 A CN116431365 A CN 116431365A
- Authority
- CN
- China
- Prior art keywords
- daemon thread
- terminal node
- state data
- monitoring process
- client
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 159
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012806 monitoring device Methods 0.000 claims description 13
- 230000006854 communication Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 230000000630 rising effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 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
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/008—Registering or indicating the working of vehicles communicating information to a remotely located station
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0841—Registering performance data
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y20/00—Information sensed or collected by the things
- G16Y20/20—Information sensed or collected by the things relating to the thing itself
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/10—Detection; Monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/17—Embedded application
- G06F2212/173—Vehicle or other transportation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种基于车载服务导向架构的监控***、方法、车辆,属于车辆技术领域。车辆的每个域中包括监控进程、守护线程客户端、守护线程、终端节点,终端节点为车载服务的客户端或服务端;终端节点用于在状态发生变更后,将终端节点的状态数据写入守护线程客户端的本地缓存;守护线程用于每经过第一时间从守护线程客户端的本地缓存中获取终端节点的状态数据,将获取到的状态数据发送至监控进程;监控进程用于将终端节点的状态数据发送至远端监控设备。本发明用于解决在车辆零部件的上云能力没有开发完成时无法对零部件进行监控的技术问题。本发明用于在车辆开发初期零部件上云能力没有开发完成时对车辆的零部件进行监控。
Description
技术领域
本发明涉及车辆技术领域,更具体地,涉及一种基于车载服务导向架构的监控***、方法、车辆。
背景技术
在车辆开发过程中,整车开发是同时进行,包括车辆的各个零部件的开发以及零部件之间通信的开发。在开发初期,零部件的上云能力没有完成,无法满足对零部件的监控需求。
发明内容
本发明的一个目的是提供一种用于车辆监控的新技术方案。
根据本发明的第一方面,提供了一种基于车载服务导向架构的监控***,所述车辆的每个域中包括监控进程、与所述监控进程对应的多个守护线程客户端、与每个所述守护线程客户端对应的守护线程、与每个所述守护线程客户端对应的多个终端节点,所述终端节点为车辆的各个域中的车载服务的客户端或服务端;
所述终端节点用于在所述终端节点的状态发生变更后,调用所述终端节点对应的守护线程客户端的实例获取接口来获取所述守护线程客户端的实例,通过所述守护线程客户端的实例调用所述守护线程客户端的同步状态接口将所述终端节点的状态数据写入所述守护线程客户端的本地缓存;
所述守护线程用于每经过预设的第一时间间隔调用所述守护线程客户端的数据消费接口,从所述守护线程客户端的本地缓存中获取所述守护线程客户端对应的终端节点的状态数据,调用所述监控进程的数据同步接口将获取到的所述终端节点的状态数据发送至所述监控进程;
所述监控进程用于将所述终端节点的状态数据发送至远端监控设备。
可选地,所述本地缓存采用无锁队列作为数据存储结构,所述守护线程客户端在接收到所述守护线程客户端对应的多个终端节点的状态数据后,将所述多个终端节点的状态数据以无锁队列的形式存储在所述本地缓存。
可选地,在所述本地缓存中存储目标终端节点的多个状态数据的情况下,所述守护线程客户端用于根据所述目标终端节点的多个状态数据的生成时间,将最新一次生成的所述目标终端节点的状态数据保留,删除所述目标终端节点的其它状态数据。
可选地,所述守护线程客户端用于将所述守护线程客户端对应的每个终端节点的多个状态数据以无序映射的方式存储。
可选地,所述守护线程客户端还用于创建套接字ZMQ_DEALER;
所述监控进程还用于创建套接字ZMQ_ROUTER,将所述套接字ZMQ_ROUTER与所述监控进程的通信地址绑定,所述守护线程客户端的套接字ZMQ_DEALER与所述监控进程的套接字ZMQ_ROUTER形成数据通道;
所述守护线程用于通过所述守护线程客户端的套接字ZMQ_DEALER和所述监控进程的套接字ZMQ_ROUTER将所述本地缓存中的状态数据发送至所述监控进程。
可选地,在所述监控进程接收到所述终端节点的状态数据后,所述监控进程用于将所述终端节点的状态数据存储在所述监控进程的内存空间;
所述监控进程用于每经过预设的第二时间间隔将所述监控进程的内存空间中的状态数据发送至所述远端监控设备,并将所述内存空间清空,向所述守护线程客户端返回状态码,所述状态码用于说明所述监控进程已经将所述终端节点的状态数据发送至所述远端监控设备。
可选地,在一个所述第二时间间隔内所述监控进程接收到的状态数据的大小超过所述内存空间的上限的情况下,所述监控进程用于创建新的内存空间来存储所述状态数据,并释放原有的内存空间。
根据本发明的第二方面,提供了一种基于车载服务导向架构的监控方法,所述车辆的每个域中包括一个监控进程、与所述监控进程对应的多个守护线程客户端和守护线程、与每个所述守护线程客户端对应的多个终端节点,所述终端节点为所述终端节点所在域中的车载服务的客户端或服务端,所述方法包括:
所述终端节点在所述终端节点的状态发生变更后,调用所述终端节点对应的守护线程客户端的实例获取接口来获取所述守护线程客户端的实例,通过所述守护线程客户端的实例调用所述守护线程客户端的同步状态接口将所述终端节点的状态数据写入所述守护线程客户端的本地缓存;
所述守护线程每经过预设的第一时间间隔调用所述守护线程客户端的数据消费接口,从所述守护线程客户端的本地缓存中获取所述守护线程客户端对应的终端节点的状态数据,调用所述监控进程的数据同步接口将获取到的所述终端节点的状态数据发送至所述监控进程;
所述监控进程将所述终端节点的状态数据发送至远端监控设备。
根据本发明的第三方面,提供了一种车辆,具有本发明一方面所述的一种基于车载服务导向架构的监控***。
根据本发明的第四方面,提供了一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令处理器被执行时实现如本发明第二方面所述的方法。
根据本发明的一个实施例,本实施例通过在车辆的每个域中设置监控进程,在终端节点的状态发生变更后将终端节点的状态数据发送至守护线程客户端的本地缓存,通过守护线程将终端节点的状态数据发送至监控进程,监控进程再将终端节点的状态数据发送至远端监控设备,能够在车辆开发初期在终端节点不具备上云能力的情况下完成对终端节点状态的监控。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是本申请实施例中基于车载服务导向架构的监控***的示意图。
图2是本申请实施例中守护线程与终端节点和监控进程之间通信过程的示意图。
图3是本申请实施例中监控进程与远端监控设备传输数据的示意图。
图4是本申请实施例中基于车载服务导向架构的监控方法的流程图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
在车辆开发过程中,整车开发是同时进行,包括车辆的各个零部件的开发以及零部件之间通信的开发。在开发初期,零部件的上云能力没有完成,无法满足对零部件的监控需求。为解决上述技术问题,实现在车辆开发的初期过程中对车辆零部件的监控需求,特提出本申请的技术方案。
如图1所示,本实施例介绍了一种基于车载服务导向架构的监控***。所述车辆的每个域中包括监控进程、与所述监控进程对应的多个守护线程客户端、与每个所述守护线程客户端对应的守护线程、与每个所述守护线程客户端对应的多个终端节点,所述终端节点为车辆的各个域中的车载服务的客户端或服务端。
所述终端节点用于在所述终端节点的状态发生变更后,调用所述终端节点对应的守护线程客户端的实例获取接口来获取所述守护线程客户端的实例,通过所述守护线程客户端的实例调用所述守护线程客户端的同步状态接口,将所述终端节点的状态数据写入所述守护线程客户端的本地缓存。
所述守护线程用于每经过预设的第一时间间隔调用所述守护线程客户端的数据消费接口,从所述守护线程客户端的本地缓存中获取所述守护线程客户端对应的终端节点的状态数据,调用所述监控进程的数据同步接口将获取到的所述终端节点的状态数据发送至所述监控进程。
所述监控进程用于将所述终端节点的状态数据发送至远端监控设备。
在车辆中包括多个域控制器,比如动力域控制器、底盘域控制器、座舱域控制器、自动驾驶域控制器以及车身域控制器。动力域控制器是车辆的动力总成管理单元,可以用于车辆的变速器管理、引擎管理、发电机调节等。底盘域控制器与车辆的行驶相关,可以用于车辆的驱动控制、转向控制、制动控制等。座舱域控制器可以支持座舱域的应用,比如语音识别、手势识别、屏幕显示等。自动驾驶域控制器与车辆的自动驾驶功能相关,具有路径规划、决策控制等功能。
在车辆上部署车载服务导向架构(SOA)***,车载服务导向架构***中包括客户端和服务端,其中服务端用于提供服务,客户端用户使用服务。服务是指一个具体的功能单元,可以实现特定的功能。当其它模块需要使用该服务的功能时,可以通过调用该服务的接口来实现。服务具有上线和下线两种状态。只有当服务处于上线状态时,其它模块才能够调用该服务的接口来使用该服务的功能。
车辆的每个域中包括一个监控进程,该监控进程对应多个守护线程客户端。在每个守护线程客户端内具有一个守护线程。一个守护线程客户端对应多个终端节点。终端节点可以是车载服务导向架构***中的服务端,终端节点也可以是车载服务导向架构***中的客户端。
状态数据可以是终端节点的连接状态,也可以是终端节点的具体业务状态。比如终端节点为客户端,状态数据为该终端节点与对应的服务端之间的连接状态。又比如终端节点为车门客户端,状态数据为车门的开关状态。
在终端节点的状态发生变更后,终端节点调用该终端节点对应的守护线程客户端的实例获取接口来获取该守护线程客户端的实例。如图2所示,守护线程客户端向其对应的终端节点提供实例获取接口。在该守护线程客户端的实例获取接口第一次被调用时,会创建一个守护线程客户端的实例。如果该守护线程客户端的实例获取接口不是第一次被调用,那么直接将之前创建的守护线程客户端的实例返回给终端节点,不需要重复创建。
在终端节点获取到守护线程客户端的实例后,通过该守护线程客户端的实例调用守护线程客户端的同步状态接口,将终端节点的状态数据写入守护线程客户端的本地缓存。如图2所示,在守护线程客户端的本地缓存中存储该守护线程客户端对应的所有终端节点的状态数据。
守护线程可以每经过第一时间间隔调用该守护线程对应的守护线程客户端的数据消费接口。比如第一时间间隔可以为500ms。守护线程每次调用守护线程客户端的数据消费接口后,从守护线程客户端的本地缓存中读取到所有终端节点的状态数据。监控进程提供数据同步接口,守护线程可以通过调用监控进程的数据同步接口,将终端节点的状态数据发送至监控进程。
如果守护线程客户端的本地缓存中没有终端节点的状态数据,守护线程同样会每经过第一时间间隔调用一次守护线程客户端的数据消费接口,在此情况下守护线程没有获取到终端节点的状态数据,那么守护线程将一个空数据包发送至监控进程。
监控进程在接收到终端节点的状态数据后,将终端节点的状态数据发送至远端监控设备。远端监控设备可以为开发人员的工作电脑。如图3所示,监控进程将终端节点的状态数据发送至远端监控设备。
本实施例通过在车辆的每个域中设置监控进程,在终端节点的状态发生变更后将终端节点的状态数据发送至守护线程客户端的本地缓存,通过守护线程将终端节点的状态数据发送至监控进程,监控进程再将终端节点的状态数据发送至远端监控设备,能够在车辆开发初期在终端节点不具备上云能力的情况下完成对终端节点状态的监控。
本实施例中,所述本地缓存采用无锁队列作为数据存储结构,所述守护线程客户端在接收到所述守护线程客户端对应的多个终端节点的状态数据后,将所述多个终端节点的状态数据以无锁队列的形式存储在所述本地缓存。
本发明中一个守护线程客户端对应多个终端节点。终端节点作为生产者提供数据,守护线程客户端作为消费者消费终端节点产生的数据。
为了适应多生产者单消费者的环境,本实施例中采用无锁队列作为数据存储结构。无锁队列是一种基于原子操作实现的高性能数据结构,能够在多线程环境下有效减小线程之间的竞争,从而提高***的并发性能。采用无锁队列来存储终端节点的状态数据,使得在多个终端节点不断向本地缓存中添加状态数据的同时,单个守护线程可以高效地从本地缓存中读取终端节点的状态数据,进一步优化数据传输过程,保证了在监控状态下整个车载SOA***的运行效率。
本实施例中,在所述本地缓存中存储目标终端节点的多个状态数据的情况下,所述守护线程客户端用于根据所述目标终端节点的多个状态数据的生成时间,将最新一次生成的所述目标终端节点的状态数据保留,删除所述目标终端节点的其它状态数据。
终端节点的状态每次发生变更后都会将终端节点的状态存储到本地缓存中。如果某一终端节点的状态发生多次变更,那么会在本地缓存中保存该终端节点的多个状态数据。通过终端节点的状态数据的生成时间可以反映该状态数据的有效性,生成时间越晚,有效性越高。对于远端监控设备,可能只需要终端节点最新的状态数据。因此在本地缓存中存储一个终端节点的多个状态数据时,守护线程客户端可以只将最新一次生成的状态数据保留,将之前的状态数据删除。对于本地缓存中的每个终端节点的状态数据,守护线程客户端都可以只保留最新的状态数据。
守护线程通过调用守护线程客户端的数据消费接口就只获取到每个终端节点的最新的状态数据,将每个终端节点最新的状态数据发送至监控进程。
本实施例通过对终端节点的状态数据的有效性进行判断,将生成时间较早的状态数据删除,只保留最新一次的状态数据,降低终端节点的状态数据占用的存储空间。并且守护线程只需要将最新一次生成的状态数据发送至监控进程,由于数据大小的减少,传输过程中的时延也相应地得到了降低,有助于提高车载SOA***在数据同步过程中的实时性和响应速度,为车载***的稳定运行提供支持。
本实施例中,所述守护线程客户端用于将所述守护线程客户端对应的每个终端节点的多个状态数据以无序映射的方式存储。
比如可以采用unordered_map作为数据存储结构。unordered_map是一种基于散列表实现的关联容器,能够实现O(1)时间复杂度的数据***、删除和查询操作。每个终端节点的状态数据存储在一个unordered_map中,所有终端节点对应的unordered_map以无锁队列的形式存储。
在unordered_map中,数据以键值对的形式存储。在连续两次向监控进程发送数据的区间内,每次向守护线程客户端的本地缓存中存储终端节点的状态数据时,用生成时间戳较晚的键值对替换生成时间戳较早的键值对,从而实现在守护线程客户端的本地缓存中只保留终端节点最新一次的状态数据。这种数据结构适用于在大量数据中进行快速查找和更新操作,从而提高了数据整合的效率。
本实施例中,所述守护线程客户端还用于创建套接字ZMQ_DEALER。所述监控进程还用于创建套接字ZMQ_ROUTER,将所述套接字ZMQ_ROUTER与所述监控进程的通信地址绑定,所述守护线程客户端的套接字ZMQ_DEALER与所述监控进程的套接字ZMQ_ROUTER形成数据通道。所述守护线程用于通过所述守护线程客户端的套接字ZMQ_DEALER和所述监控进程的套接字ZMQ_ROUTER将所述本地缓存中的状态数据发送至所述监控进程。
如图3所示,守护线程客户端在初始化时会创建套接字ZMQ_DEALER,监控进程创建套接字ZMQ_ROUTER。监控进程在创建套接字ZMQ_ROUTER后,会将该套接字ZMQ_ROUTER与监控进程的地址绑定,守护线程客户端的套接字ZMQ_DEALER与监控进程的套接字ZMQ_ROUTER连接后即可传输数据。ZMQ是一种消息中间件,可以支持一对多、多对一或者多对多的数据传输。守护线程客户端的套接字ZMQ_DEALER可以与监控进程的套接字ZMQ_ROUTER连接。在每个域中只有一个监控进程,即每个域中只有一个套接字ZMQ_ROUTER。每个域中有与监控进程对应的多个守护线程客户端,即每个域中有多个ZMQ_DELAER。守护线程客户端的套接字ZMQ_DEALER连接到监控进程的套接字ZMQ_ROUTER后,可以将守护线程客户端的本地缓存中的状态数据传输至监控进程。
本实施例中,在所述监控进程接收到所述终端节点的状态数据后,所述监控进程用于将所述终端节点的状态数据存储在所述监控进程的内存空间。
所述监控进程用于每经过预设的第二时间间隔将所述监控进程的内存空间中的状态数据发送至所述远端监控设备,并将所述内存空间清空,向所述守护线程客户端返回状态码,所述状态码用于说明所述监控进程已经将所述终端节点的状态数据发送至所述远端监控设备。
在监控进程内预先分配一片内存空间。在监控进程接收到终端节点的状态数据后,监控进程将状态数据存储在该内存空间中。当监控进程需要向远端监控设备发送终端节点的状态数据时,监控进程直接将该内存空间中的所有终端节点的状态数据发送至远端监控设备。
在发送完毕以后,监控进程将该内存空间清空,删除该内存空间中保存的所有终端节点的状态数据。监控进程每隔第二时间间隔向远端监控设备发送一次数据。如图3所示,第二时间间隔为500ms,监控进程每隔500ms向远端监控设备发送一次数据。在监控进程向远端监控设备发送完毕后,监控进程向守护线程客户端返回状态码。该状态码用于向守护线程告知监控进程已经将数据发出。
监控进程可以通过UDP(User Datagram Protocol,用户数据报协议)通信将该内存空间中存储的所有终端节点的状态数据发送至远端监控设备。UDP通信具有高效快速延迟小等特点,远端监控设备能够快速获得通信内容,从而实现及时监控。
本实施例中监控进程每隔一定时间将向远端监控设备发送一次数据,不需要对内存空间中的数据进行二次处理,提高数据流转效率,有效降低数据的传输频次。在发送完毕后将内存空间清空,避免在内存空间中存储重复数据。
本实施例中,在一个所述第二时间间隔内所述监控进程接收到的状态数据的大小超过所述内存空间的上限的情况下,所述监控进程用于创建新的内存空间来存储所述状态数据,并释放原有的内存空间。
如果终端节点的状态频繁变更,那么会导致监控进程接收到的终端节点的状态数据量增大,可能会超过在监控进程中分配的内存空间的上限。比如预先分配的内存空间大小为10M,而在一个第二时间间隔内监控进程接收到的终端节点的状态数据总大小为13M,超出了内存空间的大小。此时无法将所有的终端节点的状态数据都存储在该内存空间中。在此情况下,监控进程重新创建一片内存空间,使用新的内存空间来存储接收到的终端节点的状态数据,并将原有内存空间释放。
监控进程也可以在内存空间的可用区域的大小小于某一阈值时重新分配内存空间。如图3所示,当该内存空间的可用区域的大小小于该内存空间总大小的30%时,监控进程重新创建内存空间。比如监控进程创建的内存空间的大小为10M,那么当该内存空间的可用区域的大小小于3M时,监控进程重新创建内存空间。
本实施例通过在监控进程的内存空间不够时,向监控进程重新分配内存空间,保证能够将监控进程接收到的终端节点的状态数据存储在监控进程的内存空间内,避免数据丢失,保证数据的完整性。
如图4所示,本实施例介绍了一种基于车载服务导向架构的监控方法,所述车辆的每个域中包括一个监控进程、与所述监控进程对应的多个守护线程客户端和守护线程、与每个所述守护线程客户端对应的多个终端节点,所述终端节点为所述终端节点所在域中的车载服务的客户端或服务端,所述方法包括步骤4100-4300。
步骤4100:所述终端节点在所述终端节点的状态发生变更后,调用所述终端节点对应的守护线程客户端的实例获取接口来获取所述守护线程客户端的实例,通过所述守护线程客户端的实例调用所述守护线程客户端的同步状态接口将所述终端节点的状态数据写入所述守护线程客户端的本地缓存。
步骤4200:所述守护线程每经过预设的第一时间间隔调用所述守护线程客户端的数据消费接口,从所述守护线程客户端的本地缓存中获取所述守护线程客户端对应的终端节点的状态数据,调用所述监控进程的数据同步接口将获取到的所述终端节点的状态数据发送至所述监控进程。
步骤4300:所述监控进程将所述终端节点的状态数据发送至远端监控设备。
本实施例通过在车辆的每个域中设置监控进程,在终端节点的状态发生变更后将终端节点的状态数据发送至守护线程客户端的本地缓存,通过守护线程将终端节点的状态数据发送至监控进程,监控进程再将终端节点的状态数据发送至远端监控设备,能够在车辆开发初期在终端节点不具备上云能力的情况下完成对终端节点状态的监控。
可选地,所述本地缓存采用无锁队列作为数据存储结构,所述守护线程客户端在接收到所述守护线程客户端对应的多个终端节点的状态数据后,将所述多个终端节点的状态数据以无锁队列的形式存储在所述本地缓存。
可选地,在所述本地缓存中存储目标终端节点的多个状态数据的情况下,所述守护线程客户端根据所述目标终端节点的多个状态数据的生成时间,将最新一次生成的所述目标终端节点的状态数据保留,删除所述目标终端节点的其它状态数据。
可选地,所述守护线程客户端将所述守护线程客户端对应的每个终端节点的多个状态数据以无序映射的方式存储。
可选地,所述守护线程客户端还用于创建套接字ZMQ_DEALER;
所述监控进程创建套接字ZMQ_ROUTER,将所述套接字ZMQ_ROUTER与所述监控进程的通信地址绑定,所述守护线程客户端的套接字ZMQ_DEALER与所述监控进程的套接字ZMQ_ROUTER形成数据通道;
所述守护线程通过所述守护线程客户端的套接字ZMQ_DEALER和所述监控进程的套接字ZMQ_ROUTER将所述本地缓存中的状态数据发送至所述监控进程。
可选地,在所述监控进程接收到所述终端节点的状态数据后,所述监控进程用于将所述终端节点的状态数据存储在所述监控进程的内存空间;
所述监控进程用于每经过预设的第二时间间隔将所述监控进程的内存空间中的状态数据发送至所述远端监控设备,并将所述内存空间清空,向所述守护线程客户端返回状态码,所述状态码用于说明所述监控进程已经将所述终端节点的状态数据发送至所述远端监控设备。
可选地,在一个所述第二时间间隔内所述监控进程接收到的状态数据的大小超过所述内存空间的上限的情况下,所述监控进程用于创建新的内存空间来存储所述状态数据,并释放原有的内存空间。
本实施例介绍了一种车辆,具有本发明任一实施例所述的一种基于车载服务导向架构的监控***。
本实施例介绍了一种计算机程序产品,包括计算机程序/指令,当该计算机程序/指令被处理器执行时实现如本发明任一实施例所述的基于车载服务导向架构的监控方法。
本申请中的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备、核心网设备、OAM或者其它可编程装置。
这里所描述的计算机程序/指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (10)
1.一种基于车载服务导向架构的监控***,其特征在于,车辆的每个域中包括监控进程、与所述监控进程对应的多个守护线程客户端、与每个所述守护线程客户端对应的守护线程、与每个所述守护线程客户端对应的多个终端节点,所述终端节点为车辆的各个域中的车载服务的客户端或服务端;
所述终端节点用于在所述终端节点的状态发生变更后,调用所述终端节点对应的守护线程客户端的实例获取接口来获取所述守护线程客户端的实例,通过所述守护线程客户端的实例调用所述守护线程客户端的同步状态接口,将所述终端节点的状态数据写入所述守护线程客户端的本地缓存;
所述守护线程用于每经过预设的第一时间间隔调用所述守护线程客户端的数据消费接口,从所述守护线程客户端的本地缓存中获取所述守护线程客户端对应的终端节点的状态数据,调用所述监控进程的数据同步接口将获取到的所述终端节点的状态数据发送至所述监控进程;
所述监控进程用于将所述终端节点的状态数据发送至远端监控设备。
2.根据权利要求1所述的***,其特征在于,所述本地缓存采用无锁队列作为数据存储结构,所述守护线程客户端在接收到所述守护线程客户端对应的多个终端节点的状态数据后,将所述多个终端节点的状态数据以无锁队列的形式存储在所述本地缓存。
3.根据权利要求1所述的***,其特征在于,在所述本地缓存中存储目标终端节点的多个状态数据的情况下,所述守护线程客户端用于根据所述目标终端节点的多个状态数据的生成时间,将最新一次生成的所述目标终端节点的状态数据保留,删除所述目标终端节点的其它状态数据。
4.根据权利要求3所述的***,其特征在于,所述守护线程客户端用于将所述守护线程客户端对应的每个终端节点的多个状态数据以无序映射的方式存储。
5.根据权利要求1所述的***,其特征在于,所述守护线程客户端还用于创建套接字ZMQ_DEALER;
所述监控进程还用于创建套接字ZMQ_ROUTER,将所述套接字ZMQ_ROUTER与所述监控进程的通信地址绑定,所述守护线程客户端的套接字ZMQ_DEALER与所述监控进程的套接字ZMQ_ROUTER形成数据通道;
所述守护线程用于通过所述守护线程客户端的套接字ZMQ_DEALER和所述监控进程的套接字ZMQ_ROUTER将所述本地缓存中的状态数据发送至所述监控进程。
6.根据权利要求1所述的***,其特征在于,在所述监控进程接收到所述终端节点的状态数据后,所述监控进程用于将所述终端节点的状态数据存储在所述监控进程的内存空间;
所述监控进程用于每经过预设的第二时间间隔将所述监控进程的内存空间中的状态数据发送至所述远端监控设备,并将所述内存空间清空,向所述守护线程客户端返回状态码,所述状态码用于说明所述监控进程已经将所述终端节点的状态数据发送至所述远端监控设备。
7.根据权利要求6所述的***,其特征在于,在一个所述第二时间间隔内所述监控进程接收到的状态数据的大小超过所述内存空间的上限的情况下,所述监控进程用于创建新的内存空间来存储所述状态数据,并释放原有的内存空间。
8.一种基于车载服务导向架构的监控方法,其特征在于,车辆的每个域中包括一个监控进程、与所述监控进程对应的多个守护线程客户端和守护线程、与每个所述守护线程客户端对应的多个终端节点,所述终端节点为所述终端节点所在域中的车载服务的客户端或服务端,所述方法包括:
所述终端节点在所述终端节点的状态发生变更后,调用所述终端节点对应的守护线程客户端的实例获取接口来获取所述守护线程客户端的实例,通过所述守护线程客户端的实例调用所述守护线程客户端的同步状态接口将所述终端节点的状态数据写入所述守护线程客户端的本地缓存;
所述守护线程每经过预设的第一时间间隔调用所述守护线程客户端的数据消费接口,从所述守护线程客户端的本地缓存中获取所述守护线程客户端对应的终端节点的状态数据,调用所述监控进程的数据同步接口将获取到的所述终端节点的状态数据发送至所述监控进程;
所述监控进程将所述终端节点的状态数据发送至远端监控设备。
9.一种车辆,其特征在于,具有权利要求1-7任一项所述的一种基于车载服务导向架构的监控***。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,当所述计算机程序/指令处理器被执行时实现如权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310665552.3A CN116431365A (zh) | 2023-06-07 | 2023-06-07 | 基于车载服务导向架构的监控***、方法、车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310665552.3A CN116431365A (zh) | 2023-06-07 | 2023-06-07 | 基于车载服务导向架构的监控***、方法、车辆 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116431365A true CN116431365A (zh) | 2023-07-14 |
Family
ID=87087534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310665552.3A Pending CN116431365A (zh) | 2023-06-07 | 2023-06-07 | 基于车载服务导向架构的监控***、方法、车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431365A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371894A (zh) * | 2016-08-31 | 2017-02-01 | 华为技术有限公司 | 一种配置方法、装置和数据处理服务器 |
US20200014741A1 (en) * | 2018-07-05 | 2020-01-09 | Samsung Electronics Co., Ltd. | System and method for device audio |
CN114546420A (zh) * | 2021-12-31 | 2022-05-27 | 中电科技(北京)股份有限公司 | 一种软件远程安装保护卸载方法 |
CN115037652A (zh) * | 2022-05-17 | 2022-09-09 | 上海金仕达软件科技有限公司 | 一种套保***后台模块运行监控*** |
CN116055285A (zh) * | 2023-03-27 | 2023-05-02 | 西安热工研究院有限公司 | 一种工控***的进程管理方法及*** |
-
2023
- 2023-06-07 CN CN202310665552.3A patent/CN116431365A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371894A (zh) * | 2016-08-31 | 2017-02-01 | 华为技术有限公司 | 一种配置方法、装置和数据处理服务器 |
US20200014741A1 (en) * | 2018-07-05 | 2020-01-09 | Samsung Electronics Co., Ltd. | System and method for device audio |
CN114546420A (zh) * | 2021-12-31 | 2022-05-27 | 中电科技(北京)股份有限公司 | 一种软件远程安装保护卸载方法 |
CN115037652A (zh) * | 2022-05-17 | 2022-09-09 | 上海金仕达软件科技有限公司 | 一种套保***后台模块运行监控*** |
CN116055285A (zh) * | 2023-03-27 | 2023-05-02 | 西安热工研究院有限公司 | 一种工控***的进程管理方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170272516A1 (en) | Providing queueing in a log streaming messaging system | |
CN107493191B (zh) | 一种集群节点及自调度容器集群*** | |
US11831562B2 (en) | Distributed database-driven resource management and locking in a cloud native mobile core network node architecture | |
WO2009043033A4 (en) | Network operating system | |
GB2520514A (en) | Message delivery in a messaging system | |
CN109889455A (zh) | 一种实时消息处理装置 | |
CN112948050A (zh) | 一种部署pod的方法及装置 | |
CN111126604B (zh) | 模型训练方法、装置、服务器及存储介质 | |
CN114301980A (zh) | 容器集群的调度方法、装置、***及计算机可读介质 | |
DE112019002392T5 (de) | Fahrzeugsteuergerät, verfahren zur verwaltung von interruptinformationen und programm zur verwaltung von interruptinformationen | |
CN106502842B (zh) | 数据恢复方法及*** | |
CN116431365A (zh) | 基于车载服务导向架构的监控***、方法、车辆 | |
CN108111513B (zh) | 应用于前置装置的数据管理方法、装置、介质及电子设备 | |
CN116032614A (zh) | 容器网络微隔离方法、装置、设备和介质 | |
CN116827854A (zh) | 一种基于冗余信息反馈的车载通信***及方法 | |
CN115344644A (zh) | 数据同步方法、装置、电子设备和计算机可读存储介质 | |
CN115225482A (zh) | 一种基于Kubernetes进行Pod容器网络配置的方法及装置 | |
CN105718291B (zh) | 一种混合桌面应用的多级缓存加速方法 | |
CN114020464A (zh) | 一种动态处理虚拟化资源的方法、装置及存储介质 | |
CN111400060A (zh) | 设备联动方法、装置、服务器和介质 | |
CN116662037B (zh) | 一种共享内存的处理方法、装置、电子设备及存储介质 | |
CN116527730B (zh) | 面向服务的通信装置、方法、电子设备及计算机程序产品 | |
Mihajlović et al. | Challenges of Integrating Machine Vision Algorithms Based on Franca IDL into Adaptive AUTOSAR Environment | |
CN114945023B (zh) | 一种网络连接复用方法、装置、设备及介质 | |
CN112671547B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230714 |
|
RJ01 | Rejection of invention patent application after publication |