In-vehicle information processing device, information processing method, and server program
The on-vehicle information processing device addresses version mismatch issues in SOME/IP architecture by verifying and accommodating version differences, ensuring clients can receive services seamlessly.
Patent Information
- Application Number
- JP2023219357
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-12-26
- Publication Date
- 2025-03-18
- Estimated Expiration
- 2040-03-26
AI Technical Summary
In the context of SOME/IP architecture for autonomous driving, clients may fail to receive services due to version mismatches between the server and client software versions.
An on-vehicle information processing device with a server processing unit that verifies the version information of search messages from clients and provides services if the versions match or if the client can handle different versions, ensuring seamless service provision.
This solution effectively prevents clients from being unable to receive services due to version inconsistencies, ensuring smooth operation of on-vehicle systems by allowing service provision even with different versions.
Smart Images

Figure 0007647861000001 
Figure 0007647861000002 
Figure 0007647861000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to an in-vehicle information processing device, an information processing method, and a server program that perform processing for providing a service to a client. [Background technology]
[0002] In recent years, the development of autonomous driving functions for vehicles has led to a demand for more sophisticated control of in-vehicle systems. SOME / IP (Scalable service-Oriented Middleware over IP) is attracting attention as a service-oriented middleware architecture that can achieve this.
[0003] Patent Document 1 proposes an ECU (Electronic Control Unit) that transmits identification information of a new service to an external device before the provision of the new service is started, tests the new service in response to a test instruction from the external device, transmits the test result to the external device, and starts providing the new service when it receives determination information from the external device indicating that the provision of the new service is permitted. After receiving the identification information from the ECU, the external device transmits a test instruction in the ECU and receives the result, determines whether or not to permit the provision of the new service based on the received result, and transmits the determination information to the ECU. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2016-163244 A Summary of the Invention [Problem to be solved by the invention]
[0005] In SOME / IP, information such as the service ID and version is set for the services provided by the server. A client wishing to receive a service searches to see if the service is provided by specifying the service ID and version. For example, if the server program providing the service is upgraded but the client program is not upgraded, the version of the service provided by the server may not match the version of the service desired by the client, and the client may not be able to receive the desired service.
[0006] The present disclosure has been made in consideration of such circumstances, and its purpose is to provide an in-vehicle information processing device, an information processing method, and a server program that can be expected to prevent, as much as possible, a client from being unable to receive services due to a version mismatch. [Means for solving the problem]
[0007] The vehicle-mounted information processing device of this embodiment is an in-vehicle information processing device that has a server processing unit that performs processing to provide a service in response to a request, wherein the server processing unit receives a search message for searching for the requested service from a client processing unit that requests the provision of the service, wherein the search message includes identification information and version information of the requested service, and the server processing unit determines whether the version information included in the received search message matches the version information of the service that it provides, and if it determines that the two version information do not match, verifies whether it is possible to provide a service with different version information to the client processing unit, and if it is possible to provide a service with different version information, provides the service to the client processing unit and repeatedly transmits a provision message including the identification information and version information of the service that it provides at a predetermined period.
[0008] The present application can be realized not only as an apparatus having such characteristic processing units, but also as a method having such characteristic processing steps, or as a computer program for causing a computer to execute such steps, as a semiconductor integrated circuit that realizes part or all of these devices, or as other devices or systems that include these devices. Effect of the Invention
[0009] According to the above, it is expected that a situation in which a client cannot receive a service due to a version mismatch can be avoided as much as possible. [Brief description of the drawings]
[0010] [Figure 1] 1 is a schematic diagram for explaining a configuration of an in-vehicle information processing system according to an embodiment of the present invention; [Diagram 2] FIG. 2 is a schematic diagram for explaining communication in the in-vehicle information processing system according to the present embodiment. [Diagram 3] FIG. 2 is a schematic diagram for explaining communication in the in-vehicle information processing system according to the present embodiment. [Figure 4] FIG. 2 is a block diagram showing a configuration of an ECU on a client side according to the present embodiment. [Diagram 5] 2 is a block diagram showing a configuration of an ECU on a server side according to the present embodiment; FIG. [Figure 6] 2 is a schematic diagram showing an example of a configuration of a search message and a provision message transmitted and received by the in-vehicle information processing system according to the present embodiment; FIG. [Figure 7] 2 is a schematic diagram showing an example of a configuration of a request message and a response message transmitted and received in the in-vehicle information processing system according to the present embodiment; FIG. [Figure 8] 2 is a schematic diagram for explaining an example of processing performed in the in-vehicle information processing system according to the present embodiment; FIG. [Figure 9]2 is a schematic diagram for explaining an example of processing performed in the in-vehicle information processing system according to the present embodiment; FIG. [Figure 10] 5 is a flowchart showing a procedure of a process performed by an ECU of a client according to the present embodiment. [Figure 11] 5 is a flowchart showing a procedure of a process performed by an ECU of a server according to the present embodiment. [Figure 12] 5 is a flowchart showing a procedure of a verification process performed by an ECU of the server according to the present embodiment. [Figure 13] 10 is a flowchart showing a procedure of other processes performed by the ECU of the server according to the embodiment. [Figure 14] 10 is a schematic diagram for explaining an example of processing performed in an in-vehicle information processing system according to Modification 1. FIG. [Figure 15] FIG. 11 is a schematic diagram for explaining the configuration of an in-vehicle information processing system according to Modification 2. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] [Description of the embodiment of the present disclosure] First, embodiments of the present disclosure will be described. At least a part of the embodiments described below may be arbitrarily combined.
[0012] (1) The vehicle-mounted information processing device of this embodiment is an in-vehicle information processing device equipped with a server processing unit that performs processing to provide a service in response to a request, wherein the server processing unit receives a search message for searching for the requested service from a client processing unit that requests the provision of the service, the search message including identification information and version information of the requested service, and the server processing unit determines whether the version information included in the received search message matches the version information of the service it provides. If it is determined that the two pieces of version information do not match, the server processing unit verifies whether it is possible to provide a service with different version information to the client processing unit, and if it is possible to provide the service with different version information, provides the service to the client processing unit.
[0013] In this aspect, the server processing unit of the in-vehicle information processing device receives a search message for searching for a service from a client processing unit that requests the provision of a service. This search message includes identification information and version information of a service required by the client processing unit, and the server processing unit judges whether or not the version information included in the received search message matches the version information of the service that it provides. If the two pieces of version information match, the server processing unit performs processing to provide this service to the client processing unit. If the two pieces of version information do not match, the server processing unit verifies whether or not the client processing unit can receive the provision of a service with different version information. If the result of the verification shows that the client processing unit can receive the provision of a service with different version information, the server processing unit performs information processing to provide the service requested by the client processing unit. This is expected to prevent the server processing unit of the vehicle information processing device as much as possible from being unable to receive a service due to a mismatch in the version information of the service.
[0014] (2) If the server processing unit is capable of providing a service with different version information, it is preferable that the server processing unit changes the version information of the service to be provided to the client processing unit thereafter to the version information included in the search message.
[0015] In this embodiment, if the verification result indicates that the client processing unit can receive a service with different version information, the server processing unit changes the version information of the service that it will provide to the client processing unit thereafter to the version information included in the search message received from the client processing unit. This prevents version information mismatches from occurring thereafter, and is expected to allow the client processing unit to perform processing smoothly.
[0016] (3) It is preferable that the server processing unit temporarily changes version information of the service it provides to the version information included in the search message, transmits and receives messages with the client processing unit based on the temporarily changed version information, and verifies whether or not a service with different version information can be provided based on the results of the message transmission and reception.
[0017] In this aspect, when verifying whether the client processing unit can receive the provision of a service with different version information, the server processing unit first temporarily changes the version information of the service it provides to the version information included in the search message received from the client processing unit.Then, the server processing unit transmits and receives messages regarding the provision of the service to and from the client processing unit based on the changed version information.The server processing unit verifies whether the client processing unit can receive the provision of a service with different version information based on the result of this message transmission and reception.This allows the in-vehicle information processing device to verify whether a malfunction will occur when the version information of the service it provides is changed to the version information of the service requested by the client processing unit.
[0018] (4) It is preferable that the server processing unit issues an instruction to the client processing unit to send a predetermined message, receives the message sent by the client processing unit in response to the instruction, and performs verification based on the received message.
[0019] In this aspect, the server processing unit issues an instruction to the client processing unit to send a predetermined message, and performs verification based on the message sent by the client processing unit in response to this instruction, thereby enabling the server processing unit to more accurately verify whether the client processing unit can receive a service with different version information.
[0020] (5) It is preferable that the server processing unit receives a search message sent by the client processing unit to search for the availability of a desired service, and sends a provision message including identification information and version information of the service it provides in response to the search message.
[0021] In this aspect, the server processing unit of the in-vehicle information processing device receives a search message from the client processing unit to search for the presence or absence of a desired service, and transmits a provision message including identification information and version information of the service that the server processing unit provides in response to the search message. This allows the client processing unit to transmit the search message and receive the provision message when it needs the provision message from the server processing unit.
[0022] (6) It is preferable that the server processing unit repeatedly transmits a provision message including identification information and version information of the service it provides at a predetermined interval.
[0023] In this aspect, the server processing unit of the in-vehicle information processing device repeatedly transmits a provision message including identification information and version information of the service it provides at a predetermined interval, whereby the client processing unit receives the periodically transmitted provision message and can determine whether a service required by the client processing unit is provided, and can determine which server processing unit provides the service.
[0024] (7) It is preferable that the server processing unit transmits and receives messages to and from another device that is also equipped with the client processing unit.
[0025] In this aspect, the server processing unit of the in-vehicle information processing device transmits and receives messages to and from other devices that have a client processing unit, thereby enabling the in-vehicle information processing device to perform processing for providing services required by the other devices.
[0026] (8) It is preferable that the client processing unit is provided.
[0027] In this aspect, the in-vehicle information processing device including the server processing unit includes a client processing unit, so that the in-vehicle information processing device can perform processing to provide a service to the client processing unit within the device in the same manner as when providing a service to an external device.
[0028] (9) The information processing method of this aspect is an information processing method in which a server processing unit of an in-vehicle information processing device performs processing to provide a service in response to a request from a client processing unit, in which the server processing unit receives a search message from a client processing unit requesting the provision of a service to search for the requested service, the search message includes identification information and version information of the requested service, the server processing unit determines whether the version information included in the received search message matches the version information of the service it provides, and if the server processing unit determines that the two version information do not match, it verifies whether it is possible to provide a service with different version information to the client processing unit, and if the server processing unit is able to provide the service with different version information, it provides the service to the client processing unit.
[0029] In this embodiment, as in embodiment (1), it is expected that it will be possible to prevent, as much as possible, a situation in which a service cannot be received due to a mismatch in the version information of the service.
[0030] (10) The server program in this embodiment receives a search message from a client program requesting the provision of a service to a computer installed in a vehicle, the search message including identification information and version information of the requested service, and determines whether the version information included in the received search message matches the version information of the service it provides. If it is determined that the two pieces of version information do not match, the server program verifies whether a service with different version information can be provided to the client program, and if it is possible to provide the service with different version information, executes a process to provide the service to the client program.
[0031] In this embodiment, as in embodiment (1), it is expected that it will be possible to prevent, as much as possible, a situation in which a service cannot be received due to a mismatch in the version information of the service.
[0032] [Details of the embodiment of the present disclosure] Specific examples of the in-vehicle information processing system according to the embodiment of the present disclosure will be described below with reference to the drawings. The present disclosure is not limited to these examples, but is defined by the claims, and is intended to include all modifications within the meaning and scope of the claims.
[0033] <System configuration> FIG. 1 is a schematic diagram for explaining the configuration of an in-vehicle information processing system according to the present embodiment. The in-vehicle information processing system according to the present embodiment is a system in which a plurality of ECUs 2, 3 mounted on a vehicle 1 communicate with each other via a repeater 4, and these ECUs 2, 3 cooperate to perform various information processing related to the driving control of the vehicle 1. The illustrated in-vehicle information processing system has a star-shaped network configuration in which one ECU 2 and three ECUs 3 are connected to one repeater 4 via individual communication lines. However, the number of devices included in the in-vehicle information processing system and the network configuration are merely examples, and are not limited thereto. The number of ECUs 2, 3 included in the in-vehicle information processing system may be three or less in total, or may be five or more. The plurality of ECUs 2, 3 may be connected in a bus-type or ring-type network configuration or the like.
[0034] The ECUs 2 and 3 are information processing devices mounted on the vehicle 1. For example, the ECUs 2 and 3 may include various ECUs such as an ECU that controls automatic driving of the vehicle 1, an ECU that controls the operation of the engine, an ECU that controls door locking / unlocking, an ECU that controls the on / off of lights, an ECU that controls the operation of an airbag, and an ECU that controls the operation of an ABS (Antilock Brake System). Note that, in this embodiment, the in-vehicle information processing devices are the ECUs 2 and 3, but the present invention is not limited to this, and the in-vehicle information processing devices may be various devices other than the ECUs 2 and 3.
[0035] The repeater 4 is a device that has a plurality of ports for connecting communication lines and relays the transmission and reception of messages between the communication lines connected to these ports. For example, the repeater 4 is a device such as a switching hub or a gateway. The repeater 4 relays the transmission and reception of messages by transmitting a message received on one communication line from another communication line. Note that the in-vehicle information processing system does not need to include the repeater 4, for example, in a case where a bus-type network configuration in which a plurality of ECUs 2, 3 are connected to a common communication line is adopted.
[0036] In the in-vehicle information processing system according to the present embodiment, messages are transmitted and received between the ECUs 2 and 3 according to the SOME / IP communication standard. SOME / IP is a standard classified as layer 5 or higher of the OSI reference model, and communication is performed between application programs in the form of a service request and a response thereto. In the present embodiment, the ECU 2 is a server-side device that provides a service, and the ECU 3 is a client-side device that receives the service. However, this client-server relationship is merely an example, and each of the ECUs 2 and 3 can be either a client or a server. Any standard may be adopted for communication below layer 4 of the OSI reference model, and standards such as Ethernet (registered trademark), TCP (Transmission Control Protocol), or UDP (User Datagram Protocol) may be adopted.
[0037] 2 and 3 are schematic diagrams for explaining communication in the in-vehicle information processing system according to this embodiment. In this diagram, three ECUs 3 are distinguished by assigning different reference characters, ECUs 3a, 3b, and 3c, respectively. For example, as shown in FIG. 2, the ECU 3a transmits a search message (search frame) for searching for a service required by itself at a predetermined timing, such as after starting or restarting. In this embodiment, the ECU 3a transmits the search message by a transmission method for simultaneously transmitting one message to multiple devices, that is, by a so-called multicast. As a result, the search message transmitted by the ECU 3a is received by the ECUs 2, 3b, and 3c (the transmission and reception of the search message are indicated by dashed arrows in FIG. 2).
[0038] The search message transmitted by the ECU 3a includes a service ID for identifying a service required by the ECU 3a, and a service version for identifying the version of the software (server program) that provides this service. The ECUs 2, 3b, and 3c that receive the search message determine whether or not they can provide a service that matches the service ID and service version included in the received search message. In this example, the ECU 2 can provide this service, and the ECU 2 transmits a provision message (provision frame) to the ECU 3a that transmitted the search message, notifying the ECU 3a that the service can be provided. At this time, the ECU 2 transmits the provision message by a transmission method that sets one of the destinations of the provision message to the ECU 3a, that is, by so-called unicast (the transmission and reception of the provision message is indicated by the dashed arrow in FIG. 2).
[0039] The ECU3a, which has received the provision message sent from the ECU2, can determine, based on the provision message, that there is a device capable of providing the service, and that this device is the ECU2. The provision message includes information such as the service ID and service version, and the IP address and port number of the server (ECU2) providing the service. Thereafter, the ECU3a transmits a request for information about this service to the ECU2, and in response to this request, the ECU2 transmits a response including information about the service to the ECU3a. As a result, the service is provided from the ECU2, which is the server, to the ECU3a, which is the client, and the ECU3a can perform various information processing using the service provided by the ECU2.
[0040] In this embodiment, the provision message is not only transmitted in response to a search message, but also transmitted spontaneously by the ECU2 providing the service at a predetermined cycle. The ECU2 capable of providing a service repeatedly transmits a provision message including information about the service it provides at a predetermined cycle of, for example, several milliseconds to several seconds. As shown in FIG. 3, when transmitting a periodic provision message, the ECU2 transmits the message by a transmission method in which one provision message is simultaneously transmitted to a plurality of devices, that is, by multicast. As a result, the provision message transmitted by the ECU2 is received by the ECUs 3a, 3b, and 3c (transmission and reception of the provision message are indicated by dashed arrows in FIG. 3).
[0041] The provision message transmitted in response to the search message and the provision message transmitted periodically may be the same, and ECU 3a receiving the provision message can know that ECU 2 is providing the service it requires, as described above, and can thereafter transmit a request for the service to ECU 2. When ECUs 3b and 3c that do not require the service receive the provision message transmitted periodically, they can simply discard (ignore) it.
[0042] As described above, in the in-vehicle information processing system according to the present embodiment, the ECU3a on the client side that requires a service needs to know in advance which ECU2 is providing the service based on a provision message. After it is determined that the ECU2 is providing the service, the ECU3a can transmit and receive messages to and from the ECU2, receive the service from the ECU2, and perform information processing. The ECU3a transmits a request message to the ECU2 requesting the provision of the service, and the ECU2 transmits a response message to the ECU3a in response to the request message.
[0043] In this embodiment, the service provided by the ECU2 serving as a server may be the provision of information held by the ECU2, for example, a process of transmitting a message including various information such as the speed of the vehicle 1 or the result of object detection around the vehicle 1 to the requesting ECU3a. In addition, for example, if the ECU2 is a device that controls in-vehicle devices such as the lights or door locks of the vehicle 1, the ECU2 may provide a service to control these in-vehicle devices in response to a request from the ECU3a. The services provided by the ECU2 serving as a server are not limited to those described above, and may be various processes.
[0044] Here, the ECUs 2, 3a to 3c included in the in-vehicle information processing system may be upgraded by updating the software. The upgrade may be performed simultaneously in all devices of the in-vehicle information processing system, or may be performed individually in each device. For this reason, for example, a situation may occur in which the software of the ECU 3a that receives the service is upgraded, and the software of the ECU 2 that provides the service is not upgraded. In such a situation, even if the ECU 3a transmits a search message specifying a service in a new version, the ECU 2 that receives the message does not transmit a provision message to the ECU 3a because the version is different from the service that the ECU 3a provides, and the ECU 3a cannot receive the service. Also, the ECU 2 periodically transmits a provision message specifying a service in an old version, but the ECU 3a that receives the message does not transmit a message requesting the service to the ECU 2 because the version is different from the service that the ECU 3a desires. In other words, the service cannot be provided from the ECU 2 to the ECU 3a.
[0045] In the in-vehicle information processing system according to the present embodiment, when there is a client ECU 3a that desires a service with the same service ID as the service provided by the server ECU 2 but a different service version, the server ECU 2 verifies whether the client ECU 3a can receive the service. If the verification result indicates that the client ECU 3a can receive the service with the different service version, the server ECU 2 can perform processing to provide the service to the client ECU 3a.
[0046] <Device configuration> 4 is a block diagram showing the configuration of the client-side ECU 3 according to this embodiment. The ECU 3 according to this embodiment is configured to include a processing unit (processor) 31, a memory unit (storage) 32, and a communication unit (transceiver) 33. The processing unit 31 is configured using an arithmetic processing device such as a CPU (Central Processing Unit) or an MPU (Micro-Processing Unit). The processing unit 31 reads out and executes a client program 32a stored in the memory unit 32, thereby performing various processes such as a process of searching for a server that provides a required service and information processing according to the service provided by the server.
[0047] The storage unit 32 is configured using a non-volatile memory element such as a flash memory or an EEPROM (Electrically Erasable Programmable Read Only Memory). The storage unit 32 stores various programs executed by the processing unit 31 and various data required for the processing of the processing unit 31. In this embodiment, the storage unit 32 stores a client program 32a executed by the processing unit 31.
[0048] The client program 32a may be written in the storage unit 32, for example, during the manufacturing stage of the ECU 3. Alternatively, the client program 32a may be distributed by a remote server device or the like, and the ECU 3 may acquire the client program 32a through communication with the server device and write it in the storage unit 32. Alternatively, the ECU 3 may read the client program 32a recorded in a recording medium 99, such as a memory card or an optical disk, and store it in the storage unit 32. Alternatively, a writing device may read the client program 32a recorded in the recording medium 99 and write it in the storage unit 32 of the ECU 3. The client program 32a may be provided in a form of distribution via a network, or in a form of being recorded in the recording medium 99.
[0049] The communication unit 33 is connected to a communication line provided in the vehicle 1, and transmits and receives messages to and from the other ECUs 2 and 3 via the communication line. In this embodiment, the communication unit 33 transmits and receives messages according to a communication standard, for example, Ethernet. The communication unit 33 may be configured using, for example, an integrated circuit (IC) of an Ethernet physical layer (PHY). However, the communication standard used by the communication unit 33 is not limited to Ethernet, and various communication standards, such as a controller area network (CAN) or FlexRay, may be adopted. The communication unit 33 transmits a message by outputting data provided by the processing unit 31 to the communication line as an electric signal. The communication unit 33 also samples and acquires the electric potential of the communication line, converts the electric signal on the communication line into digital data, and provides the converted data to the processing unit 31 as a received message.
[0050] In the present embodiment, the ECU 3 has a client processing unit 310 implemented as a software functional unit in the processing unit 31 by the processing unit 31 reading and executing the client program 32a stored in the storage unit 32. The client processing unit 310 performs various processes as a client receiving the provision of a service in accordance with the SOME / IP standard. In the present embodiment, the client processing unit 310 includes a service search unit 310a, an application processing unit 310b, and the like.
[0051] The service search unit 310a performs a process of searching for a server that provides a service required for its own processing. The service search unit 310a transmits a search message specifying the service ID and service version of the service required for its own processing from the communication unit 33 by multicast. The service search unit 310a receives a provision message transmitted from the server in response to the transmitted search message, and obtains information such as an IP address and a port number contained in the received provision message, thereby determining whether or not a server that provides the service is present and obtaining information required for communication with the server. The service search unit 310a also receives a provision message periodically transmitted by the server, and obtains information such as an IP address and a port number contained in the received provision message, thereby determining whether or not a server that provides the service is present and obtaining information required for communication with the server.
[0052] The application processing unit 310b uses the provided service to perform information processing on an application specific to each ECU 3. The application processing unit 310b transmits a request message specifying a service ID and a service version to the server searched by the service search unit 310a, and receives a response message transmitted in response to the request. The application processing unit 310b acquires information contained in the received response message, and performs various information processing based on the acquired information. For example, the application processing unit 310b transmits a request message requesting the server to transmit information on the speed of the vehicle 1, acquires the information on the speed of the vehicle 1 contained in the response message received from the server in response to the request, and can perform various information processing using the vehicle speed. The information processing performed by the application processing unit 310b using the service provided by the server may be any processing.
[0053] 5 is a block diagram showing the configuration of the server-side ECU 2 according to this embodiment. The ECU 2 according to this embodiment is configured to include a processing unit (processor) 21, a memory unit (storage) 22, and a communication unit (transceiver) 23. The processing unit 21 is configured using an arithmetic processing device such as a CPU or an MPU. The processing unit 21 can perform various processes such as a process of notifying a service to be provided in response to a service search and a process of providing a service to a client by reading and executing a server program 22a stored in the memory unit 22.
[0054] The storage unit 22 is configured using a non-volatile memory element such as a flash memory or an EEPROM. The storage unit 22 stores various programs executed by the processing unit 21 and various data required for the processing of the processing unit 21. In this embodiment, the storage unit 22 stores a server program 22a executed by the processing unit 21.
[0055] The server program 22a may be written in the storage unit 22, for example, during the manufacturing stage of the ECU 2. Alternatively, the server program 22a may be distributed by a remote server device, for example, and the ECU 2 may acquire the server program 22a through communication with the server device and write it in the storage unit 22. Alternatively, the ECU 2 may read the server program 22a recorded in a recording medium 98, such as a memory card or an optical disk, and store it in the storage unit 22. Alternatively, a writing device may read the server program 22a recorded in the recording medium 98 and write it in the storage unit 22 of the ECU 2. The server program 22a may be provided in a form of distribution via a network, or in a form of being recorded in the recording medium 98.
[0056] The communication unit 23 is connected to a communication line provided in the vehicle 1, and transmits and receives messages to and from other ECUs 3 via this communication line. In this embodiment, the communication unit 23 transmits and receives messages according to a communication standard, for example, Ethernet. The communication unit 23 may be configured using, for example, an Ethernet PHY IC. However, the communication standard used by the communication unit 23 is not limited to Ethernet, and various communication standards, for example, CAN or FlexRay, may be adopted. The communication unit 23 transmits messages by outputting data provided by the processing unit 21 to the communication line as an electric signal. The communication unit 23 also samples and acquires the electric potential of the communication line, converts the electric signal on the communication line into digital data, and provides the converted data to the processing unit 21 as a received message.
[0057] In the present embodiment, the ECU 2 realizes a server processing unit 210 as a software functional unit in the processing unit 21 by having the processing unit 21 read and execute the server program 22a stored in the storage unit 22. The server processing unit 210 performs various processes as a server that provides services in accordance with the SOME / IP standard. In the present embodiment, the server processing unit 210 includes a service information providing unit 210a, a service verification unit 210b, and an application processing unit 210c.
[0058] The service information providing unit 210a performs a process of transmitting a provision message including information about the service that it provides. When the service information providing unit 210a receives a search message from a client, it determines whether or not the service ID and service version included in the search message match the service ID and service version of the service that it provides. If the service ID and service version match, the service information providing unit 210a transmits the provision message by unicast to the client that sent the search message. The service information providing unit 210a also transmits the provision message by multicast at a predetermined cycle including information about the service that it provides.
[0059] When a service having a service ID matching that of a service provided by the service verification unit 210b but a different service version is requested by the client ECU 3, the service verification unit 210b performs a process of verifying whether the ECU 3 can receive the service having the different service version. The service verification unit 210b acquires the service ID and service version included in the search message received from the client ECU 3, and starts the verification process when the service ID of the search message matches the service ID of the service provided by the service verification unit 210b and the service version of the search message does not match the service version of the service provided by the service verification unit 210b. The service verification unit 210b temporarily changes the service version of the service provided by the service verification unit 210b to the client ECU 3 to be verified to the service version of the search message. The service verification unit 210b transmits a provision message in which the changed service version is set to the ECU 3 to be verified.
[0060] The ECU3 that has received this provision message determines that the ECU2 is providing the service that the ECU3 desires to provide, and transmits a request message to the ECU2 to use this service. The request message includes information on the service ID and the service version of the service that the ECU3 requests. The service verification unit 210b of the ECU2 receives the request message from the ECU3 and determines whether the received request message is correct or not. The service verification unit 210b receives a predetermined number (e.g., 10) of request messages from the ECU3, and when the number of request messages determined to be correct among the predetermined number of request messages exceeds a threshold value (e.g., 5), the service verification unit 210b determines that the ECU3 can be provided with a service with a different service version. When the number of request messages determined to be correct does not exceed the threshold value, the service verification unit 210b determines that the ECU3 cannot be provided with a service with a different service version.
[0061] Furthermore, the service verification unit 210b can determine whether each request message received from the ECU 3 is valid or not, for example, by the following method. · Whether or not the various ID information etc. included in the request message are valid values. Regarding values such as session IDs that are incremented or decremented each time a request message is sent, whether the change in value is valid or not. Whether the values of arguments or return values related to a request to a service are within the valid range.
[0062] However, the method of determining whether the request message is correct is not limited to the above. For example, when the message transmission and reception of the ECUs 2 and 3 complies with the SOME / IP standard, the service verification unit 210b may determine whether the message is determined to be an error according to the SOME / IP standard as the above-mentioned correctness determination.
[0063] If the service verification unit 210b determines that the ECU 3 cannot receive a service with a different service version, it restores the temporarily changed service version to its original version, and does not respond to search messages and request messages (limited to messages containing the same service ID as the verified service ID) received from this ECU 3 thereafter. As a result, the client ECU 3 will no longer be able to receive services from this ECU 2.
[0064] When the service verification unit 210b determines that the ECU 3 can receive a service with a different service version, it maintains the temporarily changed service version of the service without restoring it to the original version, i.e., it permanently changes the service version. The service verification unit 210b responds with the changed service version to search messages and request messages received from the ECU 3 thereafter. That is, the ECU 2 sets the changed service version as the service version to be included in the provision messages and response messages to be sent to the ECU 3.
[0065] The application processing unit 210c performs information processing for providing a service specific to the ECU 2. The application processing unit 210c receives a request message from the client ECU 3, and acquires a service ID and a service version included in the received request message. The application processing unit 210c performs information processing for providing a service corresponding to the acquired service ID and service version. The application processing unit 210c generates a response message including information obtained as a result of the information processing, and transmits the response message to the client that sent the request message.
[0066] <Client and server processing> 6 is a schematic diagram showing an example of the configuration of a search message and a provision message transmitted and received by the in-vehicle information processing system according to this embodiment. The search message transmitted by the client ECU3 and the provision message transmitted by the server ECU2 according to this embodiment are configured to include information such as header information, a message type, a service ID, a service version, and option information.
[0067] The header information of a message is, for example, an Ethernet header, an IP header, a TCP / UDP header, a SONET / IP header, etc., and is intended to store information defined by a communication standard. The header information may store information such as a MAC address, an Ethernet type, an IP address, or a port number. The format of the header information may be any type, and the information stored in the header information may be any type.
[0068] The message type stores information indicating whether the message is a search message or a provision message. For example, if the message type is set to "0", the message is a search message, and if the message type is set to "1", the message is a provision message.
[0069] The service ID is identification information uniquely assigned to a service provided by a server. The service version is information that identifies the version of the service provided, for example, the version of the software operated by the server to provide the service identified by the service ID. In this embodiment, the larger the service version number, the newer the version. The service ID and service version included in the search message are the service ID and service version of the service that the client wants the server to provide. The service ID and service version included in the provision message are the service ID and service version of the service that the server can provide.
[0070] In this embodiment, the option information is information added to the provision message, and includes information such as the IP address and port number of the server providing the service. However, for the search message, information such as the IP address and port number of the client may be added to the message as option information.
[0071] FIG. 7 is a schematic diagram showing an example of a configuration of a request message and a response message transmitted and received by the in-vehicle information processing system according to this embodiment. The request message is a message for a client to request the server to provide a service. The response message is a message transmitted by the server as a response to the request message from the client. The request message transmitted by the client ECU3 and the response message transmitted by the server ECU2 according to this embodiment include header information including header information for the SOME / IP standard and header information for other standards, and a SOME / IP payload. The SOME / IP header information may include information such as a service ID, a method ID, a service version, a session ID, and a message type. The SOME / IP payload may include information such as an argument related to the service request or a return value related to the service request.
[0072] The service ID and service version included in the header information of SOME / IP are as described above. The method ID is an ID that specifies which of a plurality of methods provided for the service specified by the service ID is to be used. For example, when a value specifying a vehicle information providing service is set as the service ID, a value specifying a method for providing vehicle speed, a method for providing acceleration, a method for providing steering angle, or the like may be set as the method ID.
[0073] A session ID is, for example, numerical information that is incremented (its value is increased by 1) each time a service is requested and provided. For example, if a client sends a service request with session ID=1 and receives a service response with session ID=1 in response, the client sends the next service request with session ID=2. If the client does not receive the desired service response, it can set the same session ID and resend the service request.
[0074] The message type is set to a numerical value indicating whether the message is a request message from a client to a server or a response message from a server to a client.
[0075] The service request arguments contained in the SOME / IP payload are information contained in the request message from the client to the server. The service request arguments are information such as numerical values used in the processing related to the service implemented by the client, and are used by the client to set conditions for the processing of the service. For services that do not require arguments, the request message does not need to include argument information.
[0076] The return value of a service request is information included in a response message from the server to the client. For example, if the request message requests the transmission of vehicle speed information, the vehicle speed information is set as the return value in the response message. For example, if the request message requests a service such as control of an in-vehicle device, rather than information transmission, the response message sets as the return value a value indicating whether the requested control, etc., was performed normally.
[0077] 8 and 9 are schematic diagrams for explaining an example of processing performed in the in-vehicle information processing system according to this embodiment. In this diagram, the service version of the service provided by the server ECU2 is "1.1", and the service version of the service requested by the client ECU3 is upgraded from "1.1" to "1.2". Before the upgrade, the client ECU3 transmits a request message in which the service version is set to "1.1" to the server ECU2. In response to receiving this request message, the server ECU2 performs information processing for providing a service with a service version of "1.1", and transmits a response message including the result of the information processing to the requesting ECU3. The service version of the response message transmitted by the ECU2 at this time is "1.1".
[0078] After that, the software (client program 32a) for processing information using the service is upgraded in the client ECU3, and the service version is updated from "1.1" to "1.2." In contrast, the software (server program 22a) of the server ECU2 providing the service is not upgraded, and the ECU2 provides a service with a service version of "1.1." In this situation, even if the ECU3 transmits a search message and a request message with the service version set to "1.2" to the ECU2, there is a risk that the ECU2 will not be able to transmit a provision message and a response message to the ECU3 because the service versions are different.
[0079] After the version upgrade is completed, the client ECU 3 transmits a search message in which the service version is set to "1.2." The server ECU 2 according to this embodiment receives this search message and recognizes that the service ID of the service it provides matches the service ID, but that a service with a different service version has been requested by the ECU 3.
[0080] Therefore, ECU2 temporarily changes the version of the service it provides to ECU3 from "1.1" to "1.2". ECU2 sends a search message to ECU3, in which the service version is set to "1.2". After that, ECU2 starts a verification process to verify whether the service with service version "1.1" that it provides can be used for information processing of ECU3 that requests a service with service version "1.2".
[0081] The ECU2 subsequently receives a request message with a service version of "1.2" transmitted from the ECU3, determines whether the received request message is valid, and transmits a response message to the requesting ECU3. The service version of the response message transmitted by the ECU2 at this time is set to "1.2". The ECU2 determines whether the request message received from the ECU3 is valid based on, for example, whether various ID information and the like contained in the request message are valid values, whether a change in the session ID of the request message is valid, and whether the value of the payload of the request message is within a valid range.
[0082] The ECU2 continues the verification process until it receives a predetermined number of request messages from the ECU3, and when it receives the predetermined number of request messages, it makes a final decision as to whether or not the ECU3 can receive a service with a different service version based on the result of determining whether each request message is valid. For example, when the number of messages determined to be valid among the predetermined number of received request messages exceeds a threshold, the ECU2 determines that the ECU3 can receive a service with a different service version. When the number of messages determined to be valid does not exceed the threshold, the ECU2 determines that the ECU3 cannot receive a service with a different service version.
[0083] If the verification process determines that the ECU3 can use a service with a service version of "1.1" (see FIG. 8), the ECU2 permanently changes the version of the service to be provided to the ECU3 to "1.2". After that, the ECU2 receives a request message sent from the ECU3 in which the service version is set to "1.2", performs information processing to provide a service with a service version of "1.1", sets the service version of a response message including the result of this processing to "1.2" and sends the response message to the ECU3.
[0084] If the ECU2 determines in the verification process that the ECU3 cannot use a service with a service version of "1.1" (see FIG. 9), the ECU2 returns the service version that was temporarily changed for the verification process from "1.2" to "1.1". After that, when the ECU2 receives a request message and a search message with the service version set to "1.2" from the ECU3, the ECU2 does not transmit a response message and a provision message in response to the request message and the search message. In other words, for an ECU3 that the ECU2 determines in the verification process cannot provide a service, the ECU2 does not respond to request messages and search messages with different service versions that are subsequently received, and does not repeat the verification process.
[0085] 10 is a flowchart showing the procedure of the process performed by the ECU 3 of the client according to this embodiment. The ECU 3 according to this embodiment is started up, for example, when the ignition switch of the vehicle 1 is switched from the off state to the on state to the off state (step S1). After the start-up, the service search unit 310a of the processing unit 31 of the ECU 3 transmits a search message by multicast to search for a server that provides a service required by the ECU 3 (step S2). Thereafter, the service search unit 310a determines whether or not it has received a provision message transmitted by the server as a response to the transmitted search message, or a provision message transmitted periodically by the server (step S3). If it has not received a provision message (S3: NO), the service search unit 310a waits until it receives a provision message.
[0086] When a provision message is received (S3: YES), the application processing unit 310b starts information processing using the service provided by the ECU2 that is the sender of the provision message, and transmits a request message to the ECU2 of the server (step S4). The application processing unit 310b determines whether or not a response message to the request message transmitted in step S4 has been received from the ECU2 of the server (step S5). When a response message has not been received (S5: NO), the application processing unit 310b waits until a response message is received. When a response message is received (S5: YES), the application processing unit 310b performs information processing according to the information included in the received response message (step S6), and returns the process to step S4.
[0087] 11 is a flowchart showing the procedure of the process performed by the ECU 2 of the server according to this embodiment. The service information providing unit 210a of the processing unit 21 of the ECU 2 of the server according to this embodiment judges whether or not a search message transmitted by the ECU 3 of the client is received (step S11). If the search message is received (S11: YES), the service information providing unit 210a judges whether or not a service ID included in the search message matches a service ID of a service provided by the service information providing unit 210a (step S12). If the service IDs do not match (S12: NO), the service information providing unit 210a does not transmit a provision message and ends the process.
[0088] If the service IDs match (S12: YES), the service information providing unit 210a determines whether the service version included in the received search message matches the service version of the service it provides (step S13). If the service versions match (S13: YES), the service information providing unit 210a transmits a provision message to the ECU 3 that sent the search message (step S14), and ends the process.
[0089] If the service versions do not match (S13: NO), the service information providing unit 210a temporarily changes the service version of the service it provides to the service version included in the received search message (step S15).Then, the service information providing unit 210a transmits a provision message in which the temporarily changed service version is set to the ECU 3 that sent the search message (step S16).
[0090] Thereafter, the service verification unit 210b of the processing unit 21 performs a verification process based on the request message and the response message transmitted and received between the ECU 3 (step S17). Based on the result of the verification process in step S17, the service verification unit 210b determines whether or not it is possible to provide to the ECU 3 a service of a service version different from the service version included in the search message, i.e., a service of a service version that can be provided by the ECU 2 (step S18). If it is determined that the service can be provided (S8: YES), the service verification unit 210b permanently changes the service version of the service to be provided to the client ECU 3 (step S19), and ends the process.
[0091] If it is determined that the service cannot be provided (S18: NO), the service verification unit 210b returns the service version temporarily changed in step S15 to the original service version (step S20). The service verification unit 210b prohibits the acceptance of search messages and request messages having different service versions that are subsequently received from the client ECU 3 as the subject of the verification process (step S21), and ends the process.
[0092] The ECU 2 may store in the storage unit 22 a table or the like that associates the identification information of the ECU 3 of the client that performed the verification process, information such as the service ID and service version of the service requested by this ECU 3, and the result of the verification process, and when the ECU 2 receives a similar search message or request message from a verified ECU 3, the ECU 2 may refer to this table to determine whether or not to respond to the received message. In the above flowchart, the process of permanently changing the service version in step S19 and the process of prohibiting the acceptance of subsequent messages in step S21 can be performed by the ECU 2 setting appropriate information in this table.
[0093] Fig. 12 is a flowchart showing the procedure of the verification process performed by the ECU 2 of the server according to this embodiment, and shows details of the process performed in step S17 of the flowchart shown in Fig. 11. The service verification unit 210b of the processing unit 21 of the ECU 2 according to this embodiment determines whether or not a request message has been received from the ECU 3 to be verified (step S31). If the request message has not been received (S31: NO), the service verification unit 210b waits until the request message is received.
[0094] When a request message is received (S31: YES), the service verification unit 210b judges whether the received request message is valid (step S32). At this time, the service verification unit 210b can judge whether the received request message is valid based on, for example, whether various ID information and the like included in the request message are valid values, whether a change in the session ID of the request message is valid, and whether a value of the payload of the request message is within a valid range. The service verification unit 210b transmits a response message to the received request message to the ECU 3 that is the sender of the request message (step S33). The response message transmitted by the ECU 2 at this time may be a response message in which regular information is stored, or may be a response message in which a predetermined value for verification is stored. The service verification unit 210b judges whether a predetermined number of request messages have been received from the ECU 3 to be verified (step S34). When the predetermined number of request messages have not been received (S34: NO), the service verification unit 210b returns the process to step S31.
[0095] When the service verification unit 210b has finished receiving the predetermined number of request messages (S34: YES), the service verification unit 210b determines whether or not the number of request messages determined to be valid among the predetermined number of received request messages exceeds a threshold value (step S35). When the number of valid request messages exceeds the threshold value (S35: YES), the service verification unit 210b determines that this service can be provided to the ECU 3 to be verified (step S36), ends the verification process, and returns to the flowchart of Fig. 11. When the number of valid request messages does not exceed the threshold value (S35: NO), the service verification unit 210b determines that this service cannot be provided to the ECU 3 to be verified (step S37), ends the verification process, and returns to the flowchart of Fig. 11.
[0096] 13 is a flowchart showing the procedure of other processes performed by the server ECU 2 according to this embodiment. The application processing unit 210c of the processing unit 21 of the server ECU 2 according to this embodiment judges whether or not a request message transmitted by the client ECU 3 is received (step S51). If a request message is received (S51: YES), the application processing unit 210c judges whether or not the service ID and service version included in the received request message match the service ID and service version of the service that the application processing unit 210c provides (step S52). If the service ID and service version do not match (S52: NO), the application processing unit 210c returns the process to step S51.
[0097] If the service ID and the service version match (S52: YES), the application processing unit 210c performs information processing to provide the requested service based on the information included in the received request message (step S53). The application processing unit 210c transmits a response message including information obtained as a result of the information processing to the ECU 3 that sent the request message (step S54), and returns the process to step S51.
[0098] If a request message has not been received (S51: NO), the service information providing unit 210a of the processing unit 21 determines whether a predetermined period has elapsed since the previous transmission of the periodic provision message (step S55). If the predetermined period has elapsed (S55: YES), the service information providing unit 210a transmits the periodic provision message (step S56) and returns the process to step S51. If the predetermined period has not elapsed (S55: NO), the service information providing unit 210a returns the process to step S51.
[0099] <Summary> The server processing unit 210 of the ECU2 of the server according to the present embodiment having the above configuration receives a search message for searching for a service from the client processing unit 310 of the ECU3 of the client requesting the provision of a service. This search message includes a service ID and a service version of a service required by the client processing unit 310, and the server processing unit 210 judges whether or not the service version included in the received search message matches the service version of the service it provides. If the two service versions match, the server processing unit 210 performs information processing for providing this service to the client processing unit 310. If the two service versions do not match, the server processing unit 210 performs verification processing for determining whether or not the client processing unit 310 can receive a service with a different service version. If the verification processing result shows that the client processing unit 310 can receive a service with a different service version, the server processing unit 210 performs information processing for providing the service requested by the client processing unit 310. This allows the server processing unit 210 of the ECU2 of the server to avoid, as much as possible, the client processing unit 310 being unable to receive a service due to a mismatch in the service version of the service.
[0100] Furthermore, in this embodiment, if the verification process results in the client processing unit 310 being able to receive a service with a different service version, the server processing unit 210 first changes the service version of the service it provides to the service version included in the search message received from the client processing unit 310. This prevents future mismatches in service versions, allowing the client processing unit 310 to perform smooth processing.
[0101] In this embodiment, when verifying whether or not the client processing unit 310 can receive a service with a different service version, the server processing unit 210 first temporarily changes the service version of the service it provides to the service version included in the search message received from the client processing unit 310. The server processing unit 210 then transmits and receives messages regarding the provision of the service to and from the client processing unit 310 based on the changed service version. The server processing unit 210 verifies whether or not the client processing unit 310 can receive a service with a different service version based on the results of the message transmission and reception. This allows the ECU 2 to verify whether or not a problem will occur when the service version of the service it provides is changed to the service version of the service requested by the client processing unit 310 of the ECU 3.
[0102] In this embodiment, the server processing unit 210 of the ECU 2 receives a search message from the client processing unit 310 of the ECU 3 to search for the presence or absence of a service desired to be provided, and transmits a provision message including information such as the service ID and service version of the service that the client processing unit 310 provides as a response to the search message. This allows the client processing unit 310 to transmit a search message and receive a provision message when it needs a provision message from the server processing unit 210.
[0103] In this embodiment, the server processing unit 210 of the ECU 2 repeatedly transmits a provision message including information such as the service ID and the service version of the service it provides at a predetermined period. This allows the client processing unit 310 to receive the periodically transmitted provision message and determine whether a service required by the client processing unit 310 is being provided, and to determine which server processing unit 210 is providing the service.
[0104] In the in-vehicle information processing system according to this embodiment, the server processing unit 210 is provided in the ECU 2, and the client processing unit 310 is provided in the ECU 3. The server processing unit 210 of the ECU 2 transmits and receives messages to and from the ECU 3 that is provided with the client processing unit 310. This enables the ECU 2 to perform information processing for providing services required by other devices.
[0105] In this embodiment, the ECUs 2 and 3 of the in-vehicle information processing system are configured to transmit and receive messages related to services according to the SOME / IP standard, but the present invention is not limited to this and may be configured to transmit and receive messages according to a standard other than SOME / IP. The technology described in this embodiment is a technology that can be used in any system as long as the system is one in which a server and a client transmit and receive messages.
[0106] (Variation 1) 14 is a schematic diagram for explaining an example of processing performed in an in-vehicle information processing system according to the first modification. In the in-vehicle information processing system according to the first modification, when verifying whether a service with a different service version can be provided to an ECU3, an ECU2 of a server first transmits a verification command message to the ECU3 to be verified. The verification command message is a message for causing the ECU3 to temporarily stop normal information processing and for the ECU2 to cause the ECU3 to transmit a request message required for the verification processing. The verification command message may include information such as the type of message to be transmitted by the ECU3 and the order of transmission.
[0107] The client ECU3 that receives the verification command message temporarily stops its own information processing, and repeatedly transmits request messages and receives response messages based on the information included in the verification command message. The server ECU2 receives the request message transmitted by the ECU3, judges whether it is correct, and transmits a response message to the request message to the ECU3. The service version of the request message and response message transmitted and received at this time is set to "1.2".
[0108] The ECU3 transmits a predetermined number of request messages according to the verification command message. After transmitting the predetermined number of request messages, the ECU3 may resume its own information processing that was temporarily stopped. The ECU2 continues the verification process until it receives a predetermined number of request messages from the ECU3. When the ECU2 receives the predetermined number of request messages, it makes a final decision as to whether the ECU3 can receive a service with a different service version based on the result of the correct / incorrect decision of each request message. If the ECU2 determines in the verification process that the ECU3 can use a service with a service version of "1.1", it permanently changes the version of the service to be provided to the ECU3 to "1.2". After that, the ECU2 receives a request message transmitted from the ECU3 with the service version set to "1.2", performs information processing for providing a service with the service version of "1.1", sets the service version of a response message including the result of this processing to "1.2" and transmits the response message to the ECU3.
[0109] In the in-vehicle information processing system according to the first modification having the above configuration, the server processing unit 210 of the server ECU 2 transmits a verification command message to the client processing unit 310 of the client ECU 3 to cause the client processing unit 310 to transmit a predetermined request message. The client processing unit 310 transmits the request message in response to the verification command message. The server processing unit 210 performs verification based on the request message transmitted by the client processing unit 310 in response to the verification command message. This enables the server processing unit 210 to more accurately verify whether the client processing unit 310 can receive a service with a different service version.
[0110] (Variation 2) FIG. 15 is a schematic diagram for explaining the configuration of an in-vehicle information processing system according to the second modification. In the in-vehicle information processing system according to the second modification, one ECU 5 includes both a client processing unit 310 and a server processing unit 210. The ECU 5 according to the second modification is configured to include a processing unit 51, a storage unit 52, a communication unit 53, and the like. The storage unit 52 stores a client program 32a and a server program 22a. In the ECU 5, the processing unit 51 reads and executes the client program 32a stored in the storage unit 52, thereby realizing the client processing unit 310 in the processing unit 51 as a software-like functional unit. Similarly, in the ECU 5, the processing unit 51 reads and executes the server program 22a, thereby realizing the server processing unit 210 in the processing unit 51 as a software-like functional unit. The processing unit 51 can operate a plurality of programs in parallel, for example, by time sharing, and the client processing unit 310 and the server processing unit 210 operate in parallel.
[0111] In the ECU 5 according to the second modification, the client processing unit 310 and the server processing unit 210 can exchange request messages and response messages, and can exchange search messages and provision messages, without communicating with an external device through the communication unit 53. The client processing unit 310 can perform processing such as searching for the server processing unit 210 that provides a service required for its own processing, verifying whether a service with a different service version can be provided, and requesting the server processing unit 210 to provide a service, regardless of whether the server processing unit 210 is located inside or outside the device.
[0112] In the in-vehicle information processing system according to the second modified example having the above configuration, the ECU 5 including the server processing unit 210 has a client processing unit 310. This allows the server processing unit 210 of the ECU 5 to provide a service to the client processing unit 310 in the device in the same manner as when providing a service to an external device.
[0113] Each device in the in-vehicle system is equipped with a computer including a microprocessor, a ROM, a RAM, etc. An arithmetic processing unit such as a microprocessor may read out and execute a computer program including some or all of the steps of the sequence diagrams or flowcharts as shown in Figs. 10 to 13 from a storage unit such as a ROM or RAM. The computer programs of these multiple devices can be installed from an external server device, etc. Furthermore, the computer programs of these multiple devices are distributed in a state in which they are stored on recording media such as CD-ROMs, DVD-ROMs, and semiconductor memories.
[0114] The embodiments disclosed herein are illustrative in all respects and should not be considered as limiting. The scope of the present disclosure is defined by the claims, not by the above meaning, and is intended to include all modifications within the scope and meaning equivalent to the claims. [Explanation of symbols]
[0115] 1 vehicle 2 ECU (In-vehicle information processing unit) 3,3a~3c ECU 4 Repeater 5 ECU 21 Processing section 22 Memory section 22a Server program 23 Communications Department 31 Processing section 32 Storage section 32a Client program 33 Communications Department 51 Processing section 52 Storage section 53 Communications Department 98,99 Recording media 210 Server processing unit 210a Service Information Department 210b Service Verification Department 210c Application Processing Unit 310 Client Processing Unit 310a Service Search Department 310b Application processing unit
Claims
1. An in-vehicle information processing device including a server processing unit that performs processing for providing a service in response to a request, The server processing unit receives a search message for searching for a requested service from a client processing unit that requests the provision of a service; The search message includes identification information and version information of a requested service; The server processing unit: determining whether or not version information included in the received search message matches version information of the service provided by the service providing device; If it is determined that the two version information do not match, the version information of the service provided by the service providing device is temporarily changed to the version information included in the search message; transmitting and receiving messages to and from the client processing unit based on the temporarily changed version information; Verifying whether a service having different version information can be provided to the client processing unit based on a result of the message transmission and reception; If it is possible to provide a service with different version information, the service is provided to the client processing unit; repeatedly transmitting a provision message including identification information and version information of the service provided by the service providing device at a predetermined interval; In-vehicle information processing device.
2. When the server processing unit is capable of providing a service with different version information, the server processing unit changes the version information of the service to be provided to the client processing unit thereafter to the version information included in the search message. The in-vehicle information processing device according to claim 1 .
3. The server processing unit: Providing an instruction to the client processing unit to transmit a predetermined message; receiving a message sent by the client processing unit in response to the command; Perform validation based on received messages, The in-vehicle information processing device according to claim 1 or 2.
4. The server processing unit: receiving a search message transmitted by the client processing unit to search for the presence or absence of a desired service; In response to the search message, the service providing device transmits a provision message including identification information and version information of the service provided by the service providing device. The vehicle-mounted information processing device according to any one of claims 1 to 3.
5. The server processing unit transmits and receives messages to and from other devices that include the client processing unit.
5. The vehicle-mounted information processing device according to claim 1.
6. The client processing unit is provided.
5. The vehicle-mounted information processing device according to claim 1.
7. An information processing method in which a server processing unit of an in-vehicle information processing device performs processing to provide a service in response to a request from a client processing unit, the server processing unit receives a search message for searching for a requested service from a client processing unit requesting the provision of a service; The search message includes identification information and version information of a requested service; the server processing unit determines whether or not version information included in the received search message matches version information of the service that the server processing unit provides; When the server processing unit determines that the two pieces of version information do not match, the server processing unit temporarily changes the version information of the service it provides to the version information included in the search message; the server processing unit transmits and receives messages to and from the client processing unit based on the temporarily changed version information; the server processing unit verifies whether or not a service having different version information can be provided to the client processing unit based on a result of the message transmission and reception; When the server processing unit is capable of providing a service with different version information, the server processing unit provides the service to the client processing unit; repeatedly transmitting a provision message including identification information and version information of the service provided by the service providing device at a predetermined interval; Information processing methods.
8. The vehicle's on-board computer receiving a search message from a client program requesting the provision of a service to search for the requested service; The search message includes identification information and version information of a requested service; determining whether or not version information included in the received search message matches version information of the service provided by the service providing device; If it is determined that the two version information do not match, the version information of the service provided by the service providing device is temporarily changed to the version information included in the search message; Transmitting and receiving messages to and from the client program based on the temporarily changed version information; Verifying whether a service having different version information can be provided to the client program based on a result of the message transmission and reception; If it is possible to provide a service with different version information, provide the service to the client program; The service providing message including the identification information and version information of the service provided by the service providing device is repeatedly transmitted at a predetermined interval. A server program that executes processing.
Citation Information
Patent Citations
Service provision system, ECU, and external device
JP2016163244A
Electronic control units and service management system for vehicles
JP2017220220A
Vehicular communication system
JP2019139315A