WO2021193252A1 - 車載情報処理装置、情報処理方法及びクライアントプログラム - Google Patents

車載情報処理装置、情報処理方法及びクライアントプログラム Download PDF

Info

Publication number
WO2021193252A1
WO2021193252A1 PCT/JP2021/010670 JP2021010670W WO2021193252A1 WO 2021193252 A1 WO2021193252 A1 WO 2021193252A1 JP 2021010670 W JP2021010670 W JP 2021010670W WO 2021193252 A1 WO2021193252 A1 WO 2021193252A1
Authority
WO
WIPO (PCT)
Prior art keywords
service
processing unit
message
information
client
Prior art date
Application number
PCT/JP2021/010670
Other languages
English (en)
French (fr)
Inventor
哲矢 野田
Original Assignee
株式会社オートネットワーク技術研究所
住友電装株式会社
住友電気工業株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 株式会社オートネットワーク技術研究所, 住友電装株式会社, 住友電気工業株式会社 filed Critical 株式会社オートネットワーク技術研究所
Priority to CN202180019282.8A priority Critical patent/CN115315927B/zh
Priority to US17/907,227 priority patent/US20230105426A1/en
Publication of WO2021193252A1 publication Critical patent/WO2021193252A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • This disclosure relates to an in-vehicle information processing device, an information processing method, and a client program that perform processing based on a service provided by a server.
  • SOME / IP Scalable service-Oriented MiddlewarE over IP
  • the identification information is transmitted to an external device before the start of provision of the new service, the new service is tested according to the test instruction from the external device, and the test result is transmitted to the external device.
  • An ECU Electronic Control Unit
  • the external device After receiving the identification information from the ECU, the external device transmits a test instruction by the ECU, receives the result, determines whether or not to permit the provision of a new service based on the received result, and determines the determination information. To the ECU.
  • Information such as service ID and version is set for the service provided by the server in SOME / IP.
  • a client who wants to provide a service searches for whether or not the service is provided by specifying a service ID and a version. For example, if the server program that provides the service has been upgraded and the version of the client program has not been upgraded, the version of the service provided by the server and the version of the service desired by the client do not match, and the service desired by the client does not match. It is possible that you will not be able to receive it.
  • the present disclosure has been made in view of such circumstances, and the purpose of the present disclosure is to prevent the client from being unable to receive the service due to the version mismatch as much as possible. , To provide information processing methods and client programs.
  • the in-vehicle information processing device is an in-vehicle information processing device including a client processing unit that receives a service and performs processing, and the client processing unit is a service provided by a server processing unit that provides the service.
  • the provided message including the identification information and the version information of the information processing is received, and it is determined whether or not the version information included in the received provided message matches the version information of the service that the user wants to provide. If it is determined that there is a discrepancy, it is verified whether or not the service with different version information can be provided, and if it is possible to receive the service with different version information based on the verification result, the service is provided. Receive and process.
  • the present application can be realized not only as an apparatus provided with such a characteristic processing unit, but also as a method of performing such a characteristic processing as a step, or as a computer program for causing a computer to execute such a step. It can be realized. It can be realized as a semiconductor integrated circuit that realizes a part or all of these devices, or can be realized as another device or system including these devices.
  • the in-vehicle information processing device is an in-vehicle information processing device including a client processing unit that receives a service and performs processing, and the client processing unit is a server processing unit that provides the service. It receives a provided message containing the identification information and version information of the service to be provided, determines whether or not the version information contained in the received provided message matches the version information of the service that it desires to provide, and both. When it is determined that the version information does not match, it is verified whether or not the service with different version information can be provided, and when it is possible to receive the service with different version information based on the verification result, the service is concerned. Will be provided and processed.
  • the client processing unit of the in-vehicle information processing device receives the provided message including the identification information and the version information of the service provided from the server processing unit, and the version information included in the received provided message and itself Determine if the version information of the service you want to provide matches.
  • the client processing unit receives the service provided by the server processing unit and performs processing. If both version information does not match, the client processing unit verifies whether or not it is possible to receive services with different version information. As a result of the verification, when it is possible to receive the service provided with different version information, the client processing unit can receive the service provided by the server processing unit and perform processing. As a result, it can be expected that the client processing unit of the in-vehicle information processing device can avoid being unable to receive the service due to the version mismatch as much as possible.
  • the provision message includes the version information of the service that the client processing unit wants to provide thereafter. It is preferable to change to version information.
  • the client processing unit receives the version information of the service that it desires to provide from the server processing unit thereafter. Change to the version information included in the provided message. As a result, it is expected that the version information will not be inconsistent after that and the processing of the client processing unit will be performed smoothly.
  • the client processing unit temporarily changes the version information of the service that it wants to provide to the version information included in the provided message, and based on the temporarily changed version information, the client processing unit and the server processing unit It is preferable to send and receive a message between the two, and to verify whether or not a service with different version information can be provided based on the result of sending and receiving the message.
  • the client processing unit when verifying whether or not it is possible to receive services with different version information, the client processing unit first processes the version information of the service that it wants to provide on the server. Temporarily change to the version information included in the provided message received from the department. After that, the client processing unit sends and receives a message regarding the provision of the service to and from the server processing unit based on the changed version information. Based on the result of sending and receiving this message, the client processing unit verifies whether or not it is possible to receive services with different version information. As a result, the in-vehicle information processing apparatus can verify whether or not a problem occurs when the version information of the service requested by the in-vehicle information processing unit is changed to the version information of the service that can be provided by the server processing unit.
  • a storage unit that stores verification information in which the content of a message transmitted by the client processing unit at the time of verification and the content of a message received from the server processing unit are associated with the message is provided. Is preferable.
  • the vehicle-mounted information provides verification information in which the content of the message sent by the client processing unit to the server processing unit at the time of verification is associated with the content of the message received from the server processing unit for this message.
  • the processing device stores it in the storage unit.
  • the client processing unit can perform verification by transmitting the message and determining the correctness of the received message according to the stored verification information.
  • the client processing unit sends a search message for searching for the presence or absence of a service that it wants to provide to the server processing unit, and receives the provided message transmitted by the server processing unit as a response to the search message. Is preferable.
  • the client processing unit of the in-vehicle information processing device sends a search message for searching for the presence or absence of a service that it wants to provide, and receives the provided message sent by the server processing unit as a response to the search message. do.
  • the client processing unit can send a search message and receive the provided message when the server processing unit needs the provided message.
  • the client processing unit searches for another server processing unit that can provide the service that it desires to provide when it is impossible to receive the provision of services having different version information based on the verification result. Is preferable.
  • the client processing unit searches for another server processing unit that can provide the desired service. As a result, the client processing unit may be able to receive the necessary services in another server processing unit.
  • the client processing unit transmits the search message after its own activation.
  • the client processing unit sends a search message after its own startup or restart.
  • the client processing unit of the in-vehicle information processing device can quickly search for a server processing unit that can receive necessary services after starting or restarting.
  • the client processing unit sends and receives a message to and from another device including the server processing unit.
  • the client processing unit of the in-vehicle information processing device sends and receives a message to and from another device including the server processing unit.
  • the in-vehicle information processing device can perform processing using services provided by other devices.
  • the in-vehicle information processing device provided with the client processing unit includes the server processing unit.
  • the in-vehicle information processing device can perform the processing performed internally in the same manner as when the service is provided from the external device.
  • the information processing method is an information processing method in which a client processing unit of an in-vehicle information processing device performs processing by receiving a service provided from a server processing unit, and the client processing unit performs processing.
  • a provided message including identification information and version information of the service to be provided is received from the server processing unit, and the client processing unit receives the version information included in the provided message and the version information of the service that the client processing unit desires to provide. If the client processing unit determines that the two version information does not match, the client processing unit verifies whether or not the services with different version information can be provided, and the client processing unit verifies. When it is possible to receive a service with different version information based on the result, the service is provided and processing is performed.
  • the client program receives a provision message including identification information and version information of the service to be provided from the server program that provides the service to the information processing device mounted on the vehicle, and receives the provision. It is determined whether or not the version information included in the message matches the version information of the service that it wants to provide, and if it is determined that the version information does not match, the service with different version information is provided. It verifies whether or not it is possible, and when it is possible to receive the provision of services with different version information based on the verification result, execute the process of receiving the provision of the service.
  • FIG. 1 is a schematic diagram for explaining a configuration of an in-vehicle information processing system according to the present embodiment.
  • a plurality of ECUs 2 and 3 mounted on the vehicle 1 communicate with each other via a repeater 4, and the plurality of ECUs 2 and 3 cooperate with each other to drive the vehicle 1.
  • It is a system that performs various information processing related to control and the like.
  • 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, the network configuration, etc.
  • the total number of ECUs 2 and 3 included in the in-vehicle information processing system may be 3 or less, or 5 or more. Further, the plurality of ECUs 2 and 3 may be connected in a network configuration such as a bus type or a ring type.
  • ECUs 2 and 3 are information processing devices mounted on the vehicle 1.
  • the ECUs 2 and 3 include an ECU that controls the automatic operation of the vehicle 1, an ECU that controls the operation of the engine, an ECU that controls the lock / unlock of the door, an ECU that controls the on / off of the light, and the operation of the airbag.
  • Various ECUs such as an ECU that controls the operation of the ABS (Antilock Brake System) and an ECU that controls the operation of the ABS (Antilock Brake System) may be included.
  • the in-vehicle information processing device is the ECUs 2 and 3, but the present invention is not limited to this, and the in-vehicle information processing device may be various devices other than the ECUs 2 and 3.
  • the repeater 4 is a device that includes a plurality of ports for connecting communication lines and relays transmission / reception of messages between the communication lines connected to these ports.
  • the repeater 4 is a device such as a switching hub or a gateway.
  • the repeater 4 relays the transmission and reception of a message by transmitting the message received on one communication line from another communication line.
  • the in-vehicle information processing system may not include the repeater 4, for example, when a bus-type network configuration in which a plurality of ECUs 2 and 3 are connected to a common communication line is adopted.
  • SOME / IP is a standard classified into the fifth layer or higher of the OSI reference model, and communication is performed between application programs in the form of a service request and its response.
  • the ECU 2 is a server-side device that provides a service
  • the ECU 3 is a client-side device that receives the service.
  • this relationship between the client and the server is an example, and each ECU 2 and 3 can be either a client or a server.
  • Any standard may be adopted for communication of the fourth layer or lower of the OSI reference model, but for example, standards such as Ethernet (registered trademark), TCP (Transmission Control Protocol), and UDP (User Datagram Protocol) are used. Can be adopted.
  • the three ECUs 3 are distinguished by assigning different reference numerals to the ECUs 3a, 3b, and 3c, respectively.
  • the ECU 3a transmits a search message (search frame) for searching for a service required by the ECU 3a at a predetermined timing such as after the startup or restart is performed.
  • the ECU 3a transmits a search message by a transmission method of simultaneously transmitting one message to a plurality of devices, so-called multicast.
  • 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 is indicated by the broken line arrow in FIG. 2).
  • the search message transmitted by the ECU 3a includes a service ID for identifying the 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 determine whether or not it is possible to provide a service that matches the service ID and service version included in the received search message.
  • the ECU 2 can provide this service, and the ECU 2 transmits a provision message (providing frame) notifying the ECU 3a that has transmitted the search message that the service can be provided.
  • the ECU 2 transmits the provided message by a transmission method in which the destination of the provided message is one of the ECU 3a, so-called unicast (the transmission / reception of the provided message is indicated by the arrow of the alternate long and short dash line in FIG. 2).
  • the ECU 3a Upon receiving the provided message transmitted from the ECU 2, the ECU 3a can determine that there is a device capable of providing the service and that this device is the ECU 2 based on the provided message.
  • the provided message includes information on the service ID and service version, and information such as the IP address and port number of the server (ECU 2) that provides the service.
  • the ECU 3a transmits a request for providing information regarding this service to the ECU 2, and in response to this request, the ECU 2 transmits a response including information regarding the service to the ECU 3a.
  • the service is provided from the server ECU 2 to the client ECU 3a, and the ECU 3a can perform various information processing using the service provided by the ECU 2.
  • the transmission of the provided message is not only performed as a response to the search message, but the ECU 2 that provides the service voluntarily transmits the provided message at a predetermined cycle.
  • the ECU 2 capable of providing the service repeatedly transmits a provided message including information about the service provided by itself at a predetermined cycle of, for example, several milliseconds to several seconds.
  • the ECU 2 transmits one provision message to a plurality of devices at the same time by a transmission method, so-called multicast.
  • the provided message transmitted by the ECU 2 is received by the ECUs 3a, 3b, and 3c (the transmission and reception of the provided message is indicated by the arrow of the alternate long and short dash line in FIG. 3).
  • the provided message transmitted in response to the search message and the provided message transmitted periodically may be the same, and the ECU 3a that receives the provided message provides the service that the ECU 2 needs as described above. It is possible to know that the service is being provided, and thereafter, it is possible to send a request regarding the service to the ECU 2. When the ECUs 3b and 3c that do not require the service receive the provision message transmitted periodically, they may discard (ignore) the provided message.
  • the client-side ECU 3a that requires the service to know in advance the ECU 2 that provides this service based on the provided message.
  • the ECU 3a can send and receive a message to and from the ECU 2, receive the service from the ECU 2, and perform information processing.
  • the ECU 3a transmits a request message requesting the provision of the service to the ECU 2, and the ECU 2 transmits a response message to the ECU 3a as a response to the request message.
  • the service provided by the ECU 2 serving as a server in the present embodiment provides information contained in the ECU 2, and requests a message including various information such as the vehicle speed of the vehicle 1 or the object detection result around the vehicle 1. It can be a process of transmitting to the ECU 3a. Further, for example, when the ECU 2 is a device for controlling in-vehicle devices such as a light or a door lock of the vehicle 1, the ECU 2 can provide a service for controlling these in-vehicle devices in response to a request from the ECU 3a. ..
  • the service provided by the ECU 2 serving as a server is not limited to the above, and may be various processes.
  • the ECUs 2, 3a to 3c included in the in-vehicle information processing system may be upgraded by updating the software.
  • the version upgrade may be performed simultaneously for all the devices of the in-vehicle information processing system, or may be performed individually for each device. Therefore, for example, a situation may occur in which the software for which the service is provided by the ECU 2 is upgraded, and the software for the ECU 3a for which the service is provided is not upgraded. In such a situation, even if the ECU 3a sends a search message specifying a service in the old version, the ECU 2 that receives the search message does not send the provided message to the ECU 3a because the version is different from the service provided by itself, and the ECU 3a Will not be able to receive the service.
  • the ECU 2 periodically transmits a service-designated provision message in the new version, but the ECU 3a that receives this periodically does not transmit a message requesting the service to the ECU 2 because the version of the service is different from the one desired by the ECU 2. That is, it becomes impossible to provide the service from the ECU 2 to the ECU 3a.
  • the client-side ECU 3a uses this service. Verify whether it is possible to receive the provision of. As a result of the verification, when it is determined that it is possible to receive services having different service versions, the ECU 3a can perform processing by using the services provided by the ECU 2.
  • FIG. 4 is a block diagram showing a configuration of the client-side ECU 3 according to the present embodiment.
  • the ECU 3 according to the present embodiment includes a processing unit (processor) 31, a storage unit (storage) 32, a communication unit (transceiver) 33, and the like.
  • the processing unit 31 is configured by using an arithmetic processing unit such as a CPU (Central Processing Unit) or an MPU (Micro-Processing Unit).
  • the processing unit 31 reads and executes the client program 32a stored in the storage unit 32 to search for a server that provides a necessary service, and various processes such as information processing according to the service provided by the server. It can be performed.
  • the storage unit 32 is configured by 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 processing by the processing unit 31.
  • the storage unit 32 stores the client program 32a executed by the processing unit 31 and the verification scenario 32b for verifying the service provided by the server.
  • the client program 32a may be written in the storage unit 32, for example, at the manufacturing stage of the ECU 3. Further, for example, 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 by communication with the server device and write it to the storage unit 32. Further, the ECU 3 may read the client program 32a recorded on the recording medium 99 such as a memory card or an optical disk and store it in the storage unit 32. Further, for example, the writing device may read the client program 32a recorded on the recording medium 99 and write it in the storage unit 32 of the ECU 3. The client program 32a may be provided in the form of distribution via the network, or may be provided in the form recorded on the recording medium 99.
  • the verification scenario 32b is for verifying whether or not it is possible to use the service provided by this server when there is a server that provides a service whose service version is different from the service required by the ECU 3. It is a collection of test patterns.
  • a plurality of combinations of a service request message to be transmitted to the server and a condition for determining the correctness of the information included in the response message from the server to the request message are stored.
  • a condition for example, a predetermined value for obtaining a match with a value included in the response message, a range for determining that the value is normal, and the like can be stored.
  • the verification scenario 32b is information created in advance by a designer or the like at the design stage of the in-vehicle information processing system or the ECU 3 according to the present embodiment.
  • the verification scenario 32b is provided together with, for example, the client program 32a via a recording medium 99, a network, or the like, and the ECU 3 acquires the verification scenario 32b and stores it in the storage unit 32.
  • the verification scenario 32b may be provided separately from the client program 32a.
  • the communication unit 33 is connected to a communication line arranged in the vehicle 1 and transmits / receives a message to / from other ECUs 2 and 3 via this communication line.
  • the communication unit 33 transmits / receives a message according to, for example, an Ethernet communication standard.
  • the communication unit 33 may be configured by using, for example, an Ethernet PHY (physical layer) IC (Integrated Circuit) or the like.
  • the communication standard used by the communication unit 33 is not limited to Ethernet, and various communication standards such as CAN (Controller Area Network) or FlexRay can be adopted.
  • the communication unit 33 transmits a message by outputting the data given by the processing unit 31 as an electric signal to the communication line. Further, the communication unit 33 converts the electric signal on the communication line into digital data by sampling and acquiring the potential of the communication line, and gives the converted data to the processing unit 31 as a received message.
  • the client processing unit 310 is realized as a software-like 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 to receive the service according to the SOME / IP standard.
  • the client processing unit 310 includes a service search unit 310a, a service verification unit 310b, an application processing unit 310c, and the like.
  • the service search unit 310a performs a process of searching for a server that provides a service necessary for its own process.
  • the service search unit 310a transmits a search message specifying the service ID and the service version of the service required for its own processing from the communication unit 33 by multicast.
  • the service search unit 310a receives the provided message transmitted from the server in response to the transmitted search message, and acquires information such as the IP address and port number included in the received provided message, thereby providing the service. It determines the presence or absence of the server and acquires the information necessary for communication with the server. Further, the service search unit 310a receives the provided message transmitted by the server periodically and acquires information such as the IP address and the port number included in the received provided message to determine whether or not there is a server that provides the service. At the same time, acquire the information necessary for communication with the server.
  • the service verification unit 310b performs a process of verifying whether or not a service with a different service version can be provided when a service with the same service ID and a different service version is provided.
  • the service verification unit 310b transmits a predetermined request message to a server that provides services having different service versions according to the verification scenario 32b of the storage unit 32.
  • the request message contains information on the service ID and service version of the service requested by itself.
  • the service verification unit 310b temporarily changes the service version of the service requested by itself to the service version provided by the verification target, and sends a request message.
  • the server that receives the request message performs a process for providing the service of the service ID and the service version included in the request message, and sends a response message including the process result to the request source of the service.
  • the service verification unit 310b receives the response message to the request message, and determines whether or not the information contained in the received response message is expected or normal, and so on. Verify whether or not you can receive the offer.
  • the service verification unit 310b determines that it is possible to receive the service when the value included in the information included in the response message matches a predetermined value or when the value is within the normal range.
  • the service verification unit 310b assumes that the value of the information contained in the response message does not match the predetermined value, the value is out of the normal range, the response message cannot be received, or the format of the response message is assumed. It is judged that it is impossible to receive the service if it is not in the format to be provided.
  • the service verification unit 310b transmits the request message and receives the response message a plurality of times according to the verification scenario 32b, and determines whether or not the final service can be provided based on the results of the plurality of times. For example, the service verification unit 310b finally states that it is possible to receive the service when the information contained in the received response message is expected for the transmission of all the request messages and the reception of the response message. You can make a judgment. Further, the service verification unit 310b finally determines that it is impossible to receive the service when the information contained in the received response message regarding the transmission of at least one request message and the reception of the response message is not expected. Can make a good judgment.
  • the application processing unit 310c uses the provided service to process information processing related to the application specific to each ECU 3.
  • the application processing unit 310c transmits a request message specifying the service ID and the service version to the server searched by the service search unit 310a, and receives a response message transmitted in response to the request message.
  • the application processing unit 310c acquires information included in the received response message, and performs various information processing based on the acquired information. For example, the application processing unit 310c transmits a request message requesting the server to transmit information on the vehicle speed of the vehicle 1, and in response to this, acquires the vehicle speed information included in the response message received from the server to determine the vehicle speed.
  • Various information processing used can be performed.
  • the information processing performed by the application processing unit 310c using the service provided by the server may be any processing.
  • the application processing unit 310c sends a request message by designating a predetermined service version, but when it is determined that it is possible to receive a service having a different service version as described above, the requested service version is used. To the service version of the service provided by the server. After that, the application processing unit 310c transmits a request message to the server using the changed service version.
  • FIG. 5 is a block diagram showing a configuration of the ECU 2 on the server side according to the present embodiment.
  • the ECU 2 includes a processing unit (processor) 21, a storage unit (storage) 22, a communication unit (transceiver) 23, and the like.
  • the processing unit 21 is configured by using an arithmetic processing unit such as a CPU or an MPU.
  • the processing unit 21 reads and executes the server program 22a stored in the storage unit 22 to notify the service to be provided for the search for the service, and to provide the service to the client. Processing can be performed.
  • the storage unit 22 is configured by using a non-volatile memory element such as a flash memory or EEPROM.
  • the storage unit 22 stores various programs executed by the processing unit 21 and various data required for processing by the processing unit 21.
  • the storage unit 22 stores the server program 22a executed by the processing unit 21.
  • the server program 22a may be written in the storage unit 22 at the manufacturing stage of the ECU 2, for example. Further, for example, the server program 22a may be distributed by a remote server device or the like, and the ECU 2 may acquire the server program 22a by communicating with the server device and write it in the storage unit 22. Further, the ECU 2 may read the server program 22a recorded on the recording medium 98 such as a memory card or an optical disk and store it in the storage unit 22. Further, for example, the server program 22a recorded on the recording medium 98 may be read by the writing device and written to the storage unit 22 of the ECU 2. The server program 22a may be provided in a mode of distribution via a network, or may be provided in a mode recorded on a recording medium 98.
  • the communication unit 23 is connected to a communication line arranged in the vehicle 1 and transmits / receives a message to / from another ECU 3 via this communication line.
  • the communication unit 23 transmits / receives a message according to, for example, an Ethernet communication standard.
  • the communication unit 23 may be configured by using, for example, an Ethernet PHY IC or the like.
  • the communication standard used by the communication unit 23 is not limited to Ethernet, and various communication standards such as CAN or FlexRay can be adopted.
  • the communication unit 23 transmits a message by outputting the data given by the processing unit 21 as an electric signal to the communication line. Further, the communication unit 23 converts the electric signal on the communication line into digital data by sampling and acquiring the potential of the communication line, and gives the converted data to the processing unit 21 as a received message.
  • the server processing unit 210 is realized as a software-like functional unit in the processing unit 21 by the processing unit 21 reading and executing 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.
  • the server processing unit 210 includes a service information providing unit 210a, an application processing unit 210b, and the like.
  • the service information providing unit 210a performs a process of transmitting a provided message including information on the service provided by itself.
  • the service information providing unit 210a determines whether or not the service ID and the service version included in the search message match the service ID and the service version of the service provided by itself. ..
  • the service information providing unit 210a transmits the provided message by unicast to the client that is the source of the search message. Further, the service information providing unit 210a transmits a provision message including information about the service provided by itself by multicast at a predetermined cycle.
  • the application processing unit 210b performs information processing for providing a service peculiar to the ECU 2.
  • the application processing unit 210b receives the request message from the client and acquires the service ID and the service version included in the received request message.
  • the application processing unit 210b performs information processing for providing a service corresponding to the acquired service ID and service version.
  • the application processing unit 210b generates a response message including information obtained as a result of information processing, and transmits the response message to the client that is the source of the request message.
  • FIG. 6 is a schematic diagram showing a configuration example of a search message and a provided message transmitted / received by the in-vehicle information processing system according to the present embodiment.
  • the search message transmitted by the client ECU 3 and the provided message transmitted by the server ECU 2 according to the present embodiment are configured to include information such as header information, message type, service ID, service version, and option information. There is.
  • the message header information is, for example, an Ethernet header, an IP header, a TCP / UDP header, a SOME / IP header, etc., and is for storing information defined by a communication standard. Information such as a MAC address, Ethernet type, IP address or port number may be stored in the header information.
  • the format of the header information may be any, and the information stored in the header information may be any.
  • the message type stores information indicating whether this message is a search message or a provided message. For example, this message becomes a search message when the message type is set to "0", and becomes a provided message when "1" is set.
  • the service ID is identification information uniquely assigned to the service provided by the server.
  • the service version is information that identifies the version of the service to be provided, for example, the version of software that the server operates to provide the service identified by the service ID. In the present embodiment, the service version indicates a newer version as the numerical value increases.
  • 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 to provide to the server.
  • the service ID and service version included in the provided message are the service ID and service version of the service that can be provided by the server.
  • the option information is the information attached to the provided message in the present embodiment, and includes information such as the IP address and port number of the server that provides the service. However, similarly, for the search message, information such as the IP address and port number of the client may be attached to the message as optional information.
  • the messages sent and received between the client and the server include, for example, a request message and a response message.
  • the request message is a message for the client to request the server to provide the service.
  • the request message includes, for example, a vehicle speed information transmission request, an in-vehicle device control request and a control value, and the like. It may contain information indicating the content of the request regarding the service.
  • the response message is a message sent by the server as a response to the request message from the client.
  • the response message includes, for example, information such as the vehicle speed requested to be transmitted by the client, or the in-vehicle device that has been controlled.
  • Information about services provided by the server, such as control results, may be included.
  • FIG. 7 is a schematic diagram for explaining an example of processing performed by the in-vehicle information processing system according to the present embodiment.
  • the service version of the service requested by the client ECU 3 is "1.1"
  • the service version of the service provided by the server ECU 2 is upgraded from “1.1” to "1.2”.
  • An example is shown.
  • the client ECU 3 transmits a request message with the service version set to "1.1” to the server ECU 2.
  • the ECU 2 of the server performs information processing for providing the service whose service version is "1.1" in response to the reception of this request message, and requests a response message including the result of the information processing. It is transmitted to the ECU 3.
  • the service version of the response message transmitted by the ECU 2 at this time is "1.1".
  • the version of the software (server program 22a) for providing the service in the ECU 2 of the server is upgraded, and the service version is updated from "1.1” to "1.2".
  • the software (client program 32a) of the client ECU 3 that uses the service has not been upgraded, and the ECU 3 wants to provide the service whose service version is "1.1".
  • the ECU 3 transmits a request message with the service version set to "1.1" to the ECU 2, the ECU 2 does not transmit the response message to the ECU 3 because the service version is different.
  • the ECU 2 of the server periodically transmits the provided message. "1.2" is set as the service version in the provided message periodically transmitted by the ECU 2 after the version upgrade.
  • the client ECU 3 can recognize that the service IDs of the services it needs match and the services with different service versions are provided by the ECU 2.
  • the ECU 3 interrupts the information processing using the service whose service version is "1.1”, and temporarily changes the version of the service requested from the ECU 2 from “1.1” to "1.2". .. After that, the ECU 3 starts a verification process for verifying whether or not the service of the service version "1.2" provided by the ECU 2 can be used for its own information processing.
  • the ECU 3 repeatedly transmits a request message and receives a response message in accordance with the verification scenario 32b of the storage unit 32.
  • the ECU 3 transmits a request message including the request content defined in the verification scenario 32b to the ECU 2.
  • "1.2" is set as the service version of the requested service.
  • the ECU 2 processes the requested service and transmits the response message to the ECU 3.
  • the ECU 3 determines whether the information contained in the response message is correct or not, for example, whether the value contained in the information matches a predetermined value or whether the value contained in the information is included in the expected range. Judgment is made based on the above.
  • the ECU 3 When the ECU 3 repeatedly transmits a request message, receives a response message, and determines information contained in the response message, and determines that the information contained in all the response messages is legitimate information, the service version is "1". It is judged that the service of ".2.” Is available.
  • the ECU 3 When it is determined in the verification process that a service with a service version of "1.2" can be used, the ECU 3 permanently changes the version of the service requested to the ECU 2 to "1.2” and suspends the service. Resume the information processing that was being done. After that, the service version is set to "1.2" in the request message transmitted by the ECU 3. The ECU 2 receives the request message whose service version is set to "1.2”, performs information processing for providing the service whose service version is "1.2", and has the service version "1.2". The response message set to is transmitted to the ECU 3.
  • FIG. 8 is a schematic diagram for explaining an example of processing performed by the in-vehicle information processing system according to the present embodiment.
  • the service version of the service requested by the client ECU 3 is "1.1”
  • the service version of the service provided by the server ECU 2 is "1.2”
  • the client ECU 3 or the client program 32a An example is shown immediately after being started (or restarted).
  • the ECU 3 After the client ECU 3 is started, or after the client program 32a is started in the ECU 3, the ECU 3 sets the service version to "1.1" in order to search for a server that provides the service it needs. Send the search message set in to by multicast. However, since the version of the service provided by the service ECU 2 is "1.2", the ECU 2 that has received this search message does not transmit the provided message in response to the search message. The ECU 3 cannot find a server that provides a service whose service version is "1.1” that it needs, and cannot perform information processing using this service.
  • the ECU 2 of the server periodically transmits the provided message whose service version is set to "1.2".
  • the client ECU 3 can recognize that the service IDs of the services it needs match and the services with different service versions are provided by the ECU 2. Therefore, the ECU 3 interrupts the information processing using the service whose service version is "1.1”, and temporarily changes the version of the service requested from the ECU 2 from "1.1” to "1.2".
  • the verification process for verifying whether or not the service whose service version is "1.2" can be used for its own information processing is started. Since the following processing is the same as the processing described with reference to FIG. 7, the description thereof will be omitted.
  • the client ECU 3 does not have a server that provides the service of the service version that it needs, and the ECU 2 of the server that provides the service that matches the service ID but does not match the service version. If exists, verify whether it is possible to receive this service. As a result of the verification, when it is determined that it is possible to receive the service provided in which the service versions do not match, the ECU 3 changes the service version of the service requested by itself to the service version of the service provided by the ECU 2, and thereafter. Information processing. If, as a result of the verification, it is determined that it is impossible to receive the service whose service versions do not match, the ECU 3 may search for another server, and the server that provides the service that it needs may search for another server. If it does not exist, the information processing that uses this service may be stopped.
  • FIG. 9 is a flowchart showing a processing procedure performed by the client ECU 3 according to the present embodiment.
  • the ECU 3 according to the present embodiment is activated, for example, at the timing when the ignition switch of the vehicle 1 is switched from the off state to the on state to the off state (step S1).
  • the service search unit 310a of the processing unit 31 of the ECU 3 transmits a search message for searching for a server that provides the service required by itself by multicast (step S2).
  • the service search unit 310a determines whether or not the provided message transmitted by the server or the provided message transmitted periodically by the server has been received as a response to the transmitted search message (step S3). If the provided message has not been received (S3: NO), the service search unit 310a waits until the provided message is received.
  • the service search unit 310a When the provided message is received (S3: YES), the service search unit 310a requires the service version of the received provided message for the provided message whose service ID matches the service ID of the service required by itself. It is determined whether or not the service version of the service is matched (step S4). When both service versions match (S4: YES), the application processing unit 310c of the processing unit 31 starts information processing using this service (step S9) and ends the processing.
  • the service verification unit 310b of the processing unit 31 temporarily changes the service version of the service requested by itself to the service version included in the received provided message (step). S5). After that, the service verification unit 310b performs the verification process according to the verification scenario 32b of the storage unit 32 (step S6). Based on the result of the verification process in step S6, the service verification unit 310b determines whether or not the service of the service version included in the received provided message is available (step S7).
  • the service verification unit 310b When it is determined that the service can be used (S7: YES), the service verification unit 310b permanently changes the service version of the service requested from the server (step S8). After that, the application processing unit 310c starts information processing using this service (step S9), and ends the processing. If it is determined that the service cannot be used (S7: NO), the service verification unit 310b returns the service version changed in step S5 to the original service version (step S10). After that, the service search unit 310a searches for another server that provides the required service (step S11), and ends the process.
  • FIG. 10 is a flowchart showing the procedure of the verification process performed by the client ECU 3 according to the present embodiment, and is the details of the process performed in step S6 of the flowchart shown in FIG.
  • the service verification unit 310b of the processing unit 31 of the ECU 3 according to the present embodiment reads out the verification scenario 32b stored in the storage unit 32 (step S21).
  • the service verification unit 310b acquires one of the request messages included as a test pattern in the verification scenario 32b, and transmits this request message to the ECU 2 of the server (step S22).
  • the service verification unit 310b receives the response message transmitted by the server in response to the request message (step S23).
  • the service verification unit 310b acquires the information included in the received response message (step S24).
  • the service verification unit 310b determines whether or not the information acquired in step S24 is correct, for example, whether or not the value of the information matches a predetermined value, or whether or not the value is within a predetermined range, and the like. To determine (step S25). If the information in the response message is not correct (S25: NO), the service verification unit 310b determines that it is impossible to use this service (step S28), ends the verification process, and the flowchart of FIG. Return the process to.
  • the service verification unit 310b determines whether or not the verification has been completed for all the patterns set in the verification scenario 32b (step S26). If the verification of all patterns has not been completed (S26: NO), the service verification unit 310b returns the process to step S22 and performs verification in the next pattern. When the verification of all patterns is completed (S26: YES), the service verification unit 310b determines that this service can be used (step S27), ends the verification process, and proceeds to the flowchart of FIG. Return.
  • FIG. 11 is a flowchart showing a procedure of processing performed by the ECU 2 of the server according to the present embodiment.
  • the service information providing unit 210a of the processing unit 21 of the server ECU 2 according to the present embodiment determines whether or not the search message transmitted by the client ECU 3 has been received (step S41).
  • the service information providing unit 210a determines whether or not the service ID and the service version included in the search message match the service ID and the service version of the service provided by itself. (Step S42).
  • the service information providing unit 210a transmits the provided message to the ECU 3 from which the search message is transmitted (step S43), and returns the process to step S41. If the service ID and the service version do not match (S42: NO), the service information providing unit 210a returns the process to step S41 without transmitting the providing message.
  • the service information providing unit 210a determines whether or not a predetermined period has elapsed from the previous transmission for the periodic transmission of the provided message (step S44). When the predetermined period has elapsed (S44: YES), the service information providing unit 210a transmits a periodic providing message (step S43), and returns the process to step S41.
  • the application processing unit 210b of the processing unit 21 determines whether or not a request message has been received from the client ECU 3 (step S45). If the request message has not been received (S45: NO), the application processing unit 210b returns the processing to step S41.
  • the application processing unit 210b determines 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 provided by itself. Determine (step S46). If the service ID and the service version do not match (S46: NO), the application processing unit 210b returns the processing to step S41.
  • the application processing unit 210b When the service ID and the service version match (S46: YES), the application processing unit 210b performs information processing for providing the requested service based on the information included in the received request message (step S47). .. The application processing unit 210b transmits a response message including information obtained as a result of information processing to the ECU 3 from which the request message is transmitted (step S48), and returns the processing to step S41.
  • the client processing unit 310 of the ECU 3 receives a service ID including a service ID and a service version of the service provided by the server processing unit 210 of the ECU 2, and the service included in the received request message. Determine if the version matches the service version of the service you want to provide. When both service versions match, the client processing unit 310 receives the service provided by the ECU 2 and performs information processing. If the two version information does not match, the client processing unit 310 verifies whether or not it is possible to receive services with different service versions. As a result of the verification, when it is possible to receive services having different service versions, the client processing unit 310 can receive the services provided by the ECU 2 and perform information processing. As a result, the client ECU 3 can avoid being unable to receive the service due to the mismatch of service versions as much as possible.
  • the client processing unit 310 of the ECU 3 can receive the provision of services having different service versions as a result of verification, the service version of the service that it desires to provide thereafter is transmitted from the ECU 2 by the ECU 2. Permanently change to the service version included in the provided message received. As a result, the service version mismatch does not occur thereafter, and the client processing unit 310 can smoothly perform information processing.
  • the client processing unit 310 of the ECU 3 verifies whether or not it is possible to receive services having different service versions
  • the client processing unit 310 first determines the service version of the service that it desires to provide. , Temporarily change to the service version included in the provided message received from the ECU 2. After that, the client processing unit 310 sends and receives a request message and a response message related to the provision of the service with the ECU 2 based on the changed service version. Based on the result of this message transmission / reception, the client processing unit 310 verifies whether or not it is possible to receive services having different service versions. As a result, the client ECU 3 can verify whether or not a problem occurs when the service version requested by the client is changed to the service version of the service that the server ECU 2 can provide.
  • the ECU 3 stores a verification scenario 32b in which the content of the request message transmitted to the ECU 2 of the server at the time of verification and the content of the response message received from the ECU 2 in response to the request message are associated with each other. It is stored in the part 32.
  • the client processing unit 310 can transmit the request message and determine the correctness of the received response message according to the verification scenario 32b stored in the storage unit 32, and perform verification.
  • the client processing unit 310 of the ECU 3 transmits a search message for searching for the presence or absence of a service that it wants to provide, and receives the provided message transmitted by the ECU 2 of the server as a response to the search message.
  • the client processing unit 310 can transmit the search message and receive the provided message when the provided message from the ECU 2 of the server is required.
  • the client processing unit 310 of the ECU 3 searches for another server that can provide a desired service when it is impossible to receive a service having a different service version as a result of verification. As a result, the client processing unit 310 may be able to receive the necessary services on another server.
  • the client processing unit 310 of the ECU 3 transmits a search message after starting or restarting the ECU 3 or the client processing unit 310.
  • the client processing unit 310 can quickly search for a server that can receive the required service after starting or restarting.
  • the client processing unit 310 is provided in the ECU 3 and the server processing unit 210 is provided in the ECU 2.
  • the client processing unit 310 of the ECU 3 transmits and receives a request message and a response message to and from the ECU 2 including the server processing unit 210.
  • the client processing unit 310 of the ECU 3 can perform information processing using the services provided by the other ECU 2.
  • the ECUs 2 and 3 of the in-vehicle information processing system are configured to send and receive messages related to the service according to the SOME / IP standard, but the present invention is not limited to this, and the message is not limited to this. It may be configured to send and receive.
  • the technique described in this embodiment is a technique that can be used in any system as long as the server and the client send and receive messages.
  • FIG. 12 is a schematic diagram for explaining the configuration of the in-vehicle information processing system according to the modified example.
  • one ECU 5 includes both a client processing unit 310 and a server processing unit 210.
  • the ECU 5 according to the modified example includes a processing unit 51, a storage unit 52, a communication unit 53, and the like.
  • the client program 32a and the server program 22a are stored in the storage unit 52.
  • the processing unit 51 reads and executes the client program 32a stored in the storage unit 52, so that the processing unit 51 realizes the client processing unit 310 as a software-like functional unit.
  • the processing unit 51 reads out and executes the server program 22a, so that the server processing unit 210 is realized as a software-like functional unit in the processing unit 51.
  • the processing unit 51 can operate a plurality of programs in parallel by, for example, time sharing, and the client processing unit 310 and the server processing unit 210 are operating in parallel.
  • the client processing unit 310 and the server processing unit 210 can send and receive request messages and response messages without communicating with an external device by the communication unit 53, and search messages and provision messages can be sent and received. Can be exchanged.
  • the client processing unit 310 searches for a server processing unit 210 that provides services necessary for its own processing regardless of whether the server processing unit 210 exists inside or outside the device, and a service having a different service version. It is possible to perform a process of verifying whether or not the service can be provided, a process of requesting the server processing unit 210 to provide the service, and the like.
  • Each device in the in-vehicle system includes a computer including a microprocessor, ROM, RAM, and the like.
  • An arithmetic processing unit such as a microprocessor reads a computer program including a part or all of each step of a sequence diagram or a flowchart as shown in FIGS. 7 to 11 from a storage unit such as a ROM or a RAM and executes the program. You can.
  • the computer programs of these plurality of devices can be installed from an external server device or the like. Further, the computer programs of these plurality of devices are distributed in a state of being stored in a recording medium such as a CD-ROM, a DVD-ROM, or a semiconductor memory, respectively.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Small-Scale Networks (AREA)
  • Stored Programmes (AREA)

Abstract

バージョンの不一致によりクライアントがサービスを受けることができなくなることをできるだけ回避できる車載情報処理装置、情報処理方法及びクライアントプログラムを提供する。 本実施の形態に係る車載情報処理装置は、サービスの提供を受けて処理を行うクライアント処理部を備える車載情報処理装置であって、前記クライアント処理部は、サービスを提供するサーバ処理部から、提供するサービスの識別情報及びバージョン情報を含む提供メッセージを受信し、受信した前記提供メッセージに含まれるバージョン情報と、自身が提供を望むサービスのバージョン情報とが一致するか否かを判定し、両バージョン情報が不一致であると判定した場合に、バージョン情報が異なるサービスの提供を受ける可否を検証し、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、当該サービスの提供を受けて処理を行う。

Description

車載情報処理装置、情報処理方法及びクライアントプログラム
 本開示は、サーバが提供するサービスに基づく処理を行う車載情報処理装置、情報処理方法及びクライアントプログラムに関する。
 近年、車両の自動運転機能の開発などが進められ、より高機能な車載システムの制御が求められている。これを実現するサービス指向ミドルウェアのアーキテクチャとして、SOME/IP(Scalable service-Oriented MiddlewarE over IP)が注目されている。
 特許文献1においては、新規サービスの提供開始前にその識別情報を外部装置へ送信し、外部装置からのテスト指示に応じて新規サービスのテストを行ってテスト結果を外部装置へ送信し、外部装置から新規サービスの提供を許可する旨を示す判定情報を受信した場合に、新規サービスの提供を開始するECU(Electronic Control Unit)が提案されている。外部装置は、ECUから識別情報を受信した後、ECUにてテスト指示を送信してその結果を受信し、受信した結果に基づいて新規サービスの提供を許可するか否かを判定し、判定情報をECUへ送信する。
特開2016-163244号公報
 SOME/IPにおいてサーバが提供するサービスには、サービスID及びバージョン等の情報が設定される。サービスの提供を望むクライアントは、サービスID及びバージョンを指定してサービスが提供されているか否かを検索する。例えばサービスを提供するサーバプログラムがバージョンアップされ、クライアントプログラムのバージョンアップが未実施である場合、サーバが提供するサービスのバージョンと、クライアントが望むサービスのバージョンとが一致せず、クライアントが所望のサービスを受けることができなくなる事態が発生し得る。
 本開示は、斯かる事情に鑑みてなされたものであって、その目的とするところは、バージョンの不一致によりクライアントがサービスを受けることができなくなることをできるだけ回避することが期待できる車載情報処理装置、情報処理方法及びクライアントプログラムを提供することにある。
 本態様に係る車載情報処理装置は、サービスの提供を受けて処理を行うクライアント処理部を備える車載情報処理装置であって、前記クライアント処理部は、サービスを提供するサーバ処理部から、提供するサービスの識別情報及びバージョン情報を含む提供メッセージを受信し、受信した前記提供メッセージに含まれるバージョン情報と、自身が提供を望むサービスのバージョン情報とが一致するか否かを判定し、両バージョン情報が不一致であると判定した場合に、バージョン情報が異なるサービスの提供を受ける可否を検証し、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、当該サービスの提供を受けて処理を行う。
 本願は、このような特徴的な処理部を備える装置として実現することができるだけでなく、かかる特徴的な処理をステップとする方法として実現したり、かかるステップをコンピュータに実行させるためのコンピュータプログラムとして実現したりすることができる。これらの装置の一部又は全部を実現する半導体集積回路として実現したり、これらの装置を含むその他の装置又はシステムとして実現したりすることができる。
 上記によれば、バージョンの不一致によりクライアントがサービスを受けることができなくなることをできるだけ回避することが期待できる。
本実施の形態に係る車載情報処理システムの構成を説明するための模式図である。 本実施の形態に係る車載情報処理システムの通信を説明するための模式図である。 本実施の形態に係る車載情報処理システムの通信を説明するための模式図である。 本実施の形態に係るクライアント側のECUの構成を示すブロック図である。 本実施の形態に係るサーバ側のECUの構成を示すブロック図である。 本実施の形態に係る車載情報処理システムにて送受信される検索メッセージ及び提供メッセージの一構成例を示す模式図である。 本実施の形態に係る車載情報処理システムで行われる処理の一例を説明するための模式図である。 本実施の形態に係る車載情報処理システムで行われる処理の一例を説明するための模式図である。 本実施の形態に係るクライアントのECUが行う処理の手順を示すフローチャートである。 本実施の形態に係るクライアントのECUが行う検証処理の手順を示すフローチャートである。 本実施の形態に係るサーバのECUが行う処理の手順を示すフローチャートである。 変形例に係る車載情報処理システムの構成を説明するための模式図である。
[本開示の実施の形態の説明]
 最初に本開示の実施態様を列記して説明する。以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
(1)本態様に係る車載情報処理装置は、サービスの提供を受けて処理を行うクライアント処理部を備える車載情報処理装置であって、前記クライアント処理部は、サービスを提供するサーバ処理部から、提供するサービスの識別情報及びバージョン情報を含む提供メッセージを受信し、受信した前記提供メッセージに含まれるバージョン情報と、自身が提供を望むサービスのバージョン情報とが一致するか否かを判定し、両バージョン情報が不一致であると判定した場合に、バージョン情報が異なるサービスの提供を受ける可否を検証し、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、当該サービスの提供を受けて処理を行う。
 本態様にあっては、車載情報処理装置のクライアント処理部が、サーバ処理部から提供するサービスの識別情報及びバージョン情報を含む提供メッセージを受信し、受信した提供メッセージに含まれるバージョン情報と自身が提供を望むサービスのバージョン情報とが一致するか否かを判定する。両バージョン情報が一致する場合、クライアント処理部はサーバ処理部が提供するサービスを受けて処理を行う。両バージョン情報が一致しない場合、クライアント処理部は、バージョン情報が異なるサービスの提供を受けることが可能であるか否かの検証を行う。検証の結果、バージョン情報が異なるサービスの提供を受けることが可能である場合、クライアント処理部は、サーバ処理部が提供するサービスを受けて処理を行うことができる。これにより車載情報処理装置のクライアント処理部は、バージョンの不一致によりサービスを受けることができなくなることをできるだけ回避することが期待できる。
(2)前記クライアント処理部は、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、以後に自身が提供を望むサービスのバージョン情報を、前記提供メッセージに含まれるバージョン情報に変更することが好ましい。
 本態様にあっては、検証の結果、バージョン情報が異なるサービスの提供を受けることが可能である場合、クライアント処理部は、以後に自身が提供を望むサービスのバージョン情報を、サーバ処理部から受信した提供メッセージに含まれるバージョン情報に変更する。これにより、以後はバージョン情報の不一致が発生することがなくなり、クライアント処理部の処理を円滑に行うことが期待できる。
(3)前記クライアント処理部は、自身が提供を望むサービスのバージョン情報を、前記提供メッセージに含まれるバージョン情報に一時的に変更し、一時的に変更したバージョン情報に基づいて前記サーバ処理部との間でメッセージの送受信を行い、前記メッセージの送受信の結果に基づいて、バージョン情報が異なるサービスの提供を受ける可否を検証することが好ましい。
 本態様にあっては、バージョン情報が異なるサービスの提供を受けることが可能であるか否かの検証を行う際に、クライアント処理部は、まず自身が提供を望むサービスのバージョン情報を、サーバ処理部から受信した提供メッセージに含まれるバージョン情報に一時的に変更する。その後、クライアント処理部は、変更したバージョン情報に基づいてサーバ処理部との間でサービスの提供に関するメッセージの送受信を行う。クライアント処理部は、このメッセージ送受信の結果に基づいて、バージョン情報が異なるサービスの提供を受けることが可能であるか否かを検証する。これにより車載情報処理装置は、サーバ処理部が提供し得るサービスのバージョン情報に自身の要求するサービスのバージョン情報を変更した場合に、不具合が生じるか否か等を検証することができる。
(4)前記クライアント処理部が検証の際に送信するメッセージの内容と、該メッセージに対して前記サーバ処理部から受信するメッセージの内容とが対応付けられた検証情報を記憶する記憶部を備えることが好ましい。
 本態様にあっては、検証の際にクライアント処理部がサーバ処理部へ送信するメッセージの内容と、このメッセージに対してサーバ処理部から受信するメッセージの内容とを対応付けた検証情報を車載情報処理装置が記憶部に記憶している。これによりクライアント処理部は、記憶された検証情報に従ってメッセージの送信と受信したメッセージの正否判定とを行い、検証を行うことができる。
(5)前記クライアント処理部は、自身が提供を望むサービスの有無を検索する検索メッセージを前記サーバ処理部へ送信し、前記検索メッセージに対する応答として前記サーバ処理部が送信する前記提供メッセージを受信することが好ましい。
 本態様にあっては、車載情報処理装置のクライアント処理部が、自身が提供を望むサービスの有無を検索する検索メッセージを送信し、この検索メッセージに対する応答としてサーバ処理部が送信する提供メッセージを受信する。これによりクライアント処理部は、サーバ処理部の提供メッセージを必要とする際に、検索メッセージを送信して提供メッセージを受信することができる。
(6)前記クライアント処理部は、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが不可能である場合に、自身が提供を望むサービスを提供し得る別のサーバ処理部を検索することが好ましい。
 本態様にあっては、検証の結果、バージョン情報が異なるサービスの提供を受けることが不可能である場合、クライアント処理部は、所望のサービスを提供し得る別のサーバ処理部を検索する。これによりクライアント処理部は、必要なサービスを別のサーバ処理部にて受けることができる可能性がある。
(7)前記クライアント処理部は、自身の起動の後に、前記検索メッセージを送信することが好ましい。
 本態様にあっては、自身の起動又は再起動の後に、クライアント処理部が検索メッセージを送信する。これにより車載情報処理装置のクライアント処理部は、起動又は再起動の後、必要なサービスを受けることができるサーバ処理部を早期に検索することができる。
(8)前記クライアント処理部は、前記サーバ処理部を備える他の装置との間でメッセージの送受信を行うことが好ましい。
 本態様にあっては、サーバ処理部を備える他の装置との間で車載情報処理装置のクライアント処理部がメッセージの送受信を行う。これにより車載情報処理装置は、他の装置が提供するサービスを利用した処理を行うことができる。
(9)前記サーバ処理部を備えることが好ましい。
 本態様にあっては、クライアント処理部を備える車載情報処理装置が、サーバ処理部を備える。これにより車載情報処理装置は、外部の装置からサービスの提供を受ける場合と同様の方法で、内部で行われる処理を実施することができる。
(10)本態様に係る情報処理方法は、車載情報処理装置のクライアント処理部が、サーバ処理部からのサービスの提供を受けて処理を行う情報処理方法であって、前記クライアント処理部が、前記サーバ処理部から、提供するサービスの識別情報及びバージョン情報を含む提供メッセージを受信し、前記クライアント処理部が、受信した前記提供メッセージに含まれるバージョン情報と、自身が提供を望むサービスのバージョン情報とが一致するか否かを判定し、前記クライアント処理部が、両バージョン情報が不一致であると判定した場合に、バージョン情報が異なるサービスの提供を受ける可否を検証し、前記クライアント処理部が、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、当該サービスの提供を受けて処理を行う。
 本態様にあっては、態様(1)と同様に、バージョンの不一致によりサービスを受けることができなくなることをできるだけ回避することが期待できる。
(11)本態様に係るクライアントプログラムは、車両に搭載された情報処理装置に、サービスを提供するサーバプログラムから、提供するサービスの識別情報及びバージョン情報を含む提供メッセージを受信し、受信した前記提供メッセージに含まれるバージョン情報と、自身が提供を望むサービスのバージョン情報とが一致するか否かを判定し、両バージョン情報が不一致であると判定した場合に、バージョン情報が異なるサービスの提供を受ける可否を検証し、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、当該サービスの提供を受ける処理を実行させる。
 本態様にあっては、態様(1)と同様に、バージョンの不一致によりサービスを受けることができなくなることをできるだけ回避することが期待できる。
[本開示の実施形態の詳細]
 本開示の実施形態に係る車載情報処理システムの具体例を、以下に図面を参照しつつ説明する。本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
<システム構成>
 図1は、本実施の形態に係る車載情報処理システムの構成を説明するための模式図である。本実施の形態に係る車載情報処理システムは、車両1に搭載された複数のECU2,3が中継器4を介して通信を行い、これら複数のECU2,3が協働することで車両1の走行制御等に係る種々の情報処理を行うシステムである。図示の車載情報処理システムは、1つのECU2と、3つのECU3とが1つの中継器4にそれぞれ個別の通信線を介して接続されたスター型のネットワーク構成をなしている。ただし車載情報処理システムに含まれる装置の数及びネットワーク構成等は一例であって、これに限るものではない。車載情報処理システムに含まれるECU2,3の数は合計3つ以下であってもよく、5つ以上であってもよい。また複数のECU2,3は、バス型又はリング型等のネットワーク構成で接続されていてもよい。
 ECU2,3は、車両1に搭載された情報処理装置である。例えばECU2,3には、車両1の自動運転を制御するECU、エンジンの動作を制御するECU、ドアのロック/アンロックを制御するECU、ライトの点灯/消灯を制御するECU、エアバッグの動作を制御するECU、及び、ABS(Antilock Brake System)の動作を制御するECU等の種々のECUが含まれ得る。なお本実施の形態においては車載情報処理装置をECU2,3とするが、これに限るものではなく、車載情報処理装置はECU2,3以外の種々の装置であってよい。
 中継器4は、通信線を接続するためのポートを複数備え、これらのポートに接続された通信線間のメッセージの送受信を中継する装置である。例えば中継器4は、スイッチングハブ又はゲートウェイ等の装置である。中継器4は、一の通信線にて受信したメッセージを他の通信線から送信することによって、メッセージの送受信を中継する。なお車載情報処理システムは、例えば複数のECU2,3が共通の通信線に接続されるバス型のネットワーク構成が採用される場合等には、中継器4を備えていなくてよい。
 本実施の形態に係る車載情報処理システムでは、ECU2,3の間のメッセージ送受信を、SOME/IPの通信規格に従って行う。SOME/IPは、OSI参照モデルの第5層以上に分類される規格であり、アプリケーションプログラムの間でサービスの要求及びその応答の態様で通信が行われる。本実施の形態においては、ECU2がサービスを提供するサーバ側の装置であり、ECU3がサービスの提供を受けるクライアント側の装置であるものとする。ただしこのクライアント及びサーバの関係は一例であり、各ECU2,3はクライアント及びサーバのいずれにもなり得る。なおOSI参照モデルの第4層以下の通信については、どのような規格が採用されてもよいが、例えばイーサネット(登録商標)、TCP(Transmission Control Protocol)又はUDP(User Datagram Protocol)等の規格が採用され得る。
 図2及び図3は、本実施の形態に係る車載情報処理システムの通信を説明するための模式図である。本図においては、3つのECU3に対してそれぞれECU3a,3b,3cの異なる符号を付して区別している。例えば図2に示すようにECU3aは、起動又は再起動が行われた後等の所定のタイミングで、自身が必要とするサービスを検索する検索メッセージ(検索フレーム)を送信する。本実施の形態においてECU3aは、1つのメッセージを複数の装置に対して同時的に送信する送信方法、いわゆるマルチキャストで検索メッセージを送信する。これによりECU3aが送信した検索メッセージは、ECU2,3b,3cにて受信される(図2において検索メッセージの送受信を破線の矢印で示す)。
 ECU3aが送信する検索メッセージには、ECU3aが必要とするサービスを識別するためのサービスIDと、このサービスを提供するソフトウェア(サーバプログラム)のバージョンを識別するサービスバージョンとが含まれている。検索メッセージを受信したECU2,3b,3cは、受信した検索メッセージに含まれるサービスID及びサービスバージョンに合致するサービスを提供可能であるか否かを判定する。本例ではECU2がこのサービスを提供可能であり、ECU2は検索メッセージを送信したECU3aに対して、サービス提供が可能である旨を通知する提供メッセージ(提供フレーム)を送信する。このときにECU2は、提供メッセージの送信先をECU3aの1つとする送信方法、いわゆるユニキャストで提供メッセージを送信する(図2において提供メッセージの送受信を一点鎖線の矢印で示す)。
 ECU2から送信された提供メッセージを受信したECU3aは、サービスを提供可能な装置が存在し、且つ、この装置がECU2であることを提供メッセージに基づいて判断することができる。提供メッセージには、サービスID及びサービスバージョンの情報と、サービスを提供するサーバ(ECU2)のIPアドレス及びポート番号等の情報とが含まれている。以後、ECU3aはこのサービスに関する情報提供の要求等をECU2へ送信し、この要求に応じてECU2がサービスに関する情報を含む応答をECU3aへ送信する。これによりサーバであるECU2からクライアントであるECU3aへサービスが提供され、ECU3aはECU2から提供されるサービスを利用した種々の情報処理を行うことができる。
 また本実施の形態において、提供メッセージの送信は検索メッセージに対する応答として行われるもののみではなく、サービスを提供するECU2が自発的に所定周期で提供メッセージの送信を行っている。サービスを提供することができるECU2は、自身が提供するサービスに関する情報を含む提供メッセージを、例えば数ミリ秒~数秒程度の所定周期で繰り返し送信する。図3に示すようにECU2は、周期的な提供メッセージの送信を行う場合、1つの提供メッセージを複数の装置に対して同時的に送信する送信方法、いわゆるマルチキャストで送信する。これによりECU2が送信した提供メッセージは、ECU3a,3b,3cにて受信される(図3において提供メッセージの送受信を一点鎖線の矢印で示す)。
 検索メッセージに対して送信される提供メッセージと、周期的に送信される提供メッセージとは同じものであってよく、これを受信したECU3aは、上述のように、自身が必要とするサービスをECU2が提供していることを知ることができ、以後はECU2に対してサービスに関する要求を送信することができる。サービスを必要としないECU3b,3cは、周期的に送信される提供メッセージを受信した場合に、これを破棄(無視)すればよい。
 このように本実施の形態に係る車載情報処理システムでは、サービスを必要とするクライアント側のECU3aが、提供メッセージに基づいてこのサービスを提供しているECU2を予め知る必要がある。ECU2がサービスを提供していることが判明した後、ECU3aは、ECU2との間でメッセージの送受信を行い、ECU2からサービスの提供を受けて情報処理を行うことができる。ECU3aはサービスの提供を要求する要求メッセージをECU2へ送信し、この要求メッセージに対する応答としてECU2は応答メッセージをECU3aへ送信する。
 なお本実施の形態においてサーバとなるECU2が提供するサービスは、ECU2が有する情報の提供、例えば車両1の車速又は車両1の周辺の物体検知結果等の種々の情報を含むメッセージを、要求元のECU3aへ送信する処理とすることができる。また例えば、ECU2が例えば車両1のライト又はドアのロック等の車載機器を制御する装置である場合に、ECU3aからの要求に応じてこれらの車載機器を制御するサービスをECU2が提供することができる。サーバとなるECU2が提供するサービスは、上記のものに限らず、種々の処理であってよい。
 ここで、車載情報処理システムに含まれるECU2,3a~3cでは、ソフトウェアの更新によりバージョンアップが行われることがあり得る。バージョンアップは車載情報処理システムの全装置で一斉に行われる場合もあるが、個々の装置で個別に行われる場合もある。このため、例えばECU2でサービスを提供するソフトウェアのバージョンアップがなされ、且つ、このサービスの提供を受けるECU3aのソフトウェアのバージョンアップが行われないという状況が発生し得る。このような状況において、ECU3aが旧バージョンでサービスを指定した検索メッセージを送信しても、これを受信したECU2は自身が提供するサービスとはバージョンが異なるため提供メッセージをECU3aに送信せず、ECU3aがサービスを受けることができなくなる。またECU2は周期的に新バージョンでサービスを指定した提供メッセージを送信するが、これを受信したECU3aは自身が望むサービスのバージョンとは異なるためECU2へサービスを要求するメッセージの送信を行わない。即ち、ECU2からECU3aへのサービスの提供を行うことができなくなる。
 そこで本実施の形態に係る車載情報処理システムでは、自身が提供を望むサービスとサービスIDが同じでサービスバージョンが異なるサービスを提供するサーバ側のECU2が存在する場合に、クライアント側のECU3aがこのサービスの提供を受けることが可能であるか否かの検証を行う。検証の結果、サービスバージョンが異なるサービスの提供を受けることが可能であると判断した場合、ECU3aは、ECU2が提供するサービスを利用して処理を行うことができる。
<装置構成>
 図4は、本実施の形態に係るクライアント側のECU3の構成を示すブロック図である。本実施の形態に係るECU3は、処理部(プロセッサ)31、記憶部(ストレージ)32及び通信部(トランシーバ)33等を備えて構成されている。処理部31は、例えばCPU(Central Processing Unit)又はMPU(Micro-Processing Unit)等の演算処理装置を用いて構成されている。処理部31は、記憶部32に記憶されたクライアントプログラム32aを読み出して実行することにより、必要なサービスを提供するサーバを検索する処理及びサーバが提供するサービスに応じた情報処理等の種々の処理を行うことができる。
 記憶部32は、例えばフラッシュメモリ又はEEPROM(Electrically Erasable Programmable Read Only Memory)等の不揮発のメモリ素子を用いて構成されている。記憶部32は、処理部31が実行する各種のプログラム、及び、処理部31の処理に必要な各種のデータを記憶する。本実施の形態において記憶部32は、処理部31が実行するクライアントプログラム32aと、サーバが提供するサービスを検証するための検証シナリオ32bとを記憶している。
 クライアントプログラム32aは、例えばECU3の製造段階において記憶部32に書き込まれてよい。また例えばクライアントプログラム32aは遠隔のサーバ装置などにより配信されてもよく、ECU3はサーバ装置との通信にてクライアントプログラム32aを取得して記憶部32に書き込んでもよい。また例えばメモリカード又は光ディスク等の記録媒体99に記録されたクライアントプログラム32aをECU3が読み出して記憶部32に記憶してもよい。また例えば記録媒体99に記録されたクライアントプログラム32aを書込装置が読み出してECU3の記憶部32に書き込んでもよい。クライアントプログラム32aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体99に記録された態様で提供されてもよい。
 検証シナリオ32bは、ECU3が必要とするサービスとはサービスバージョンが異なるサービスを提供するサーバが存在する場合に、このサーバが提供するサービスを利用することが可能であるか否かを検証するためのテストパターンを集めたものである。検証シナリオ32bには、サーバに対して送信するサービス要求のメッセージと、この要求メッセージに対するサーバからの応答メッセージに含まれる情報の正否を判定するための条件との組み合わせが複数記憶されている。条件として、例えば応答メッセージに含まれる値との一致を求める所定値、この値に対して正常と判定する範囲等の設定が記憶され得る。検証シナリオ32bは、本実施の形態に係る車載情報処理システム又はECU3の設計段階等において予め設計者等により作成される情報である。検証シナリオ32bは、例えばクライアントプログラム32aと共に記録媒体99又はネットワーク等を介して提供され、これをECU3が取得して記憶部32に記憶する。ただし検証シナリオ32bは、クライアントプログラム32aとは別に提供されてもよい。
 通信部33は、車両1に配設された通信線が接続され、この通信線を介して他のECU2,3との間でメッセージの送受信を行う。本実施の形態において通信部33は、例えばイーサネットの通信規格に従ってメッセージの送受信を行う。通信部33は、例えばイーサネットPHY(physical layer)のIC(Integrated Circuit)等を用いて構成され得る。ただし通信部33が用いる通信規格はイーサネットに限らず、例えばCAN(Controller Area Network)又はFlexRay等の種々の通信規格が採用され得る。通信部33は、処理部31から与えられたデータを電気信号として通信線へ出力することによりメッセージ送信を行う。また通信部33は、通信線の電位をサンプリングして取得することにより、通信線上の電気信号をデジタルデータに変換し、変換したデータを受信メッセージとして処理部31へ与える。
 また本実施の形態にECU3は、記憶部32に記憶されたクライアントプログラム32aを処理部31が読み出して実行することにより、クライアント処理部310が処理部31にソフトウェア的な機能部として実現される。クライアント処理部310は、SOME/IPの規格に従って、サービスの提供を受けるクライアントとしての種々の処理を行う。本実施の形態においてクライアント処理部310は、サービス検索部310a、サービス検証部310b及びアプリケーション処理部310c等を備えている。
 サービス検索部310aは、自身の処理に必要なサービスを提供するサーバを検索する処理を行う。サービス検索部310aは、自身の処理に必要なサービスのサービスID及びサービスバージョンを指定した検索メッセージを通信部33からマルチキャストで送信する。サービス検索部310aは、送信した検索メッセージに対してサーバから送信される提供メッセージを受信し、受信した提供メッセージに含まれるIPアドレス及びポート番号等の情報を取得することによって、サービスを提供するサーバの有無を判断すると共に、サーバとの通信に必要な情報を取得する。またサービス検索部310aは、サーバが周期的に送信する提供メッセージを受信し、受信した提供メッセージに含まれるIPアドレス及びポート番号等の情報を取得することによって、サービスを提供するサーバの有無を判断すると共に、サーバとの通信に必要な情報を取得する。
 サービス検証部310bは、自身が必要とするサービスとサービスIDが一致し且つサービスバージョンが異なるサービスが提供されている場合に、このサービスバージョンが異なるサービスの提供を受ける可否を検証する処理を行う。サービス検証部310bは、サービスバージョンが異なるサービスを提供するサーバに対して、記憶部32の検証シナリオ32bに従って所定の要求メッセージを送信する。要求メッセージには、自身が要求するサービスのサービスID及びサービスバージョンの情報が含まれる。このときにサービス検証部310bは、自身が要求するサービスのサービスバージョンを、検証対象が提供するサービスバージョンへ一時的に変更して要求メッセージを送信する。これにより要求メッセージを受信したサーバは、要求メッセージに含まれるサービスID及びサービスバージョンのサービスを提供するための処理を行い、処理結果を含む応答メッセージをサービスの要求元へ送信する。
 サービス検証部310bは、要求メッセージに対する応答メッセージを受信し、受信した応答メッセージに含まれる情報が期待するものであるか否か又は正常なものであるか否か等を判定することにより、サービスの提供を受けることの可否を検証する。サービス検証部310bは、応答メッセージに含まれる情報に含まれる値が所定の値と一致する場合又は値が正常範囲内である場合等に、サービスの提供を受けることが可能であると判断する。これに対してサービス検証部310bは、応答メッセージに含まれる情報の値が所定値と一致しない場合、値が正常範囲外である場合、応答メッセージを受信できない場合、又は、応答メッセージの形式が想定される形式のものでない場合等に、サービスの提供を受けることが不可能であると判断する。
 サービス検証部310bは、検証シナリオ32bに従って要求メッセージの送信及び応答メッセージの受信を複数回に亘って行い、複数回の結果に基づいて最終的なサービスの提供を受けることの可否を判断する。例えばサービス検証部310bは、全ての要求メッセージの送信及び応答メッセージの受信について受信した応答メッセージに含まれる情報が期待するものである場合に、サービスの提供を受けることが可能であると最終的な判断を行うことができる。またサービス検証部310bは、少なくとも1つの要求メッセージの送信及び応答メッセージの受信について受信した応答メッセージに含まれる情報が期待するものでない場合に、サービスの提供を受けることが不可能であると最終的な判断を行うことができる。
 アプリケーション処理部310cは、提供されるサービスを利用して、各ECU3に特有のアプリケーションに関する情報処理を行う。アプリケーション処理部310cは、サービス検索部310aが検索したサーバに対して、サービスID及びサービスバージョンを指定した要求メッセージを送信し、これに応じて送信される応答メッセージを受信する。アプリケーション処理部310cは、受信した応答メッセージに含まれる情報を取得し、取得した情報に基づいて種々の情報処理を行う。例えばアプリケーション処理部310cは、車両1の車速の情報送信をサーバに対して要求する要求メッセージを送信し、これに応じてサーバから受信した応答メッセージに含まれる車速の情報を取得して、車速を用いた種々の情報処理を行うことができる。サーバから提供されるサービスを利用してアプリケーション処理部310cが行う情報処理は、どのような処理であってもよい。
 なおアプリケーション処理部310cは、予め定められたサービスバージョンを指定して要求メッセージを送信するが、上述のようにサービスバージョンが異なるサービスを受けることが可能であると判断された場合、要求するサービスバージョンをサーバが提供するサービスのサービスバージョンに変更する。以後、アプリケーション処理部310cは、変更したサービスバージョンを用いてサーバに対する要求メッセージを送信する。
 図5は、本実施の形態に係るサーバ側のECU2の構成を示すブロック図である。本実施の形態に係るECU2は、処理部(プロセッサ)21、記憶部(ストレージ)22及び通信部(トランシーバ)23等を備えて構成されている。処理部21は、例えばCPU又はMPU等の演算処理装置を用いて構成されている。処理部21は、記憶部22に記憶されたサーバプログラム22aを読み出して実行することにより、サービスの検索に対して提供するサービスを通知する処理及びクライアントに対してサービスを提供する処理等の種々の処理を行うことができる。
 記憶部22は、例えばフラッシュメモリ又はEEPROM等の不揮発のメモリ素子を用いて構成されている。記憶部22は、処理部21が実行する各種のプログラム、及び、処理部21の処理に必要な各種のデータを記憶する。本実施の形態において記憶部22は、処理部21が実行するサーバプログラム22aを記憶している。
 サーバプログラム22aは、例えばECU2の製造段階において記憶部22に書き込まれてよい。また例えばサーバプログラム22aは遠隔のサーバ装置などにより配信されてもよく、ECU2はサーバ装置との通信にてサーバプログラム22aを取得して記憶部22に書き込んでもよい。また例えばメモリカード又は光ディスク等の記録媒体98に記録されたサーバプログラム22aをECU2が読み出して記憶部22に記憶してもよい。また例えば記録媒体98に記録されたサーバプログラム22aを書込装置が読み出してECU2の記憶部22に書き込んでもよい。サーバプログラム22aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体98に記録された態様で提供されてもよい。
 通信部23は、車両1に配設された通信線が接続され、この通信線を介して他のECU3との間でメッセージの送受信を行う。本実施の形態において通信部23は、例えばイーサネットの通信規格に従ってメッセージの送受信を行う。通信部23は、例えばイーサネットPHYのIC等を用いて構成され得る。ただし通信部23が用いる通信規格はイーサネットに限らず、例えばCAN又はFlexRay等の種々の通信規格が採用され得る。通信部23は、処理部21から与えられたデータを電気信号として通信線へ出力することによりメッセージ送信を行う。また通信部23は、通信線の電位をサンプリングして取得することにより、通信線上の電気信号をデジタルデータに変換し、変換したデータを受信メッセージとして処理部21へ与える。
 また本実施の形態にECU2は、記憶部22に記憶されたサーバプログラム22aを処理部21が読み出して実行することにより、サーバ処理部210が処理部21にソフトウェア的な機能部として実現される。サーバ処理部210は、SOME/IPの規格に従って、サービスを提供するサーバとしての種々の処理を行う。本実施の形態においてサーバ処理部210は、サービス情報提供部210a及びアプリケーション処理部210b等を備えている。
 サービス情報提供部210aは、自身が提供するサービスに関する情報を含む提供メッセージを送信する処理を行う。サービス情報提供部210aは、クライアントからの検索メッセージを受信した場合に、この検索メッセージに含まれるサービスID及びサービスバージョンが自身の提供するサービスのサービスID及びサービスバージョンと一致するか否かを判定する。サービスID及びサービスバージョンが一致する場合、サービス情報提供部210aは、検索メッセージの送信元のクライアントに対して、ユニキャストで提供メッセージを送信する。またサービス情報提供部210aは、所定の周期で、自身が提供するサービスに関する情報を含む提供メッセージをマルチキャストで送信する。
 アプリケーション処理部210bは、ECU2に特有のサービスを提供するための情報処理を行う。アプリケーション処理部210bは、クライアントからの要求メッセージを受信し、受信した要求メッセージに含まれるサービスID及びサービスバージョンを取得する。アプリケーション処理部210bは、取得したサービスID及びサービスバージョンに対応するサービスを提供するための情報処理を行う。アプリケーション処理部210bは、情報処理の結果として得られる情報を含む応答メッセージを生成し、要求メッセージの送信元のクライアントに対して応答メッセージを送信する。
<クライアント及びサーバの処理>
 図6は、本実施の形態に係る車載情報処理システムにて送受信される検索メッセージ及び提供メッセージの一構成例を示す模式図である。本実施の形態に係るクライアントのECU3が送信する検索メッセージ、及び、サーバのECU2が送信する提供メッセージは、ヘッダ情報、メッセージタイプ、サービスID、サービスバージョン及びオプション情報等の情報を含んで構成されている。
 メッセージのヘッダ情報は、例えばイーサネットヘッダ、IPヘッダ、TCP/UDPヘッダ及びSOME/IPヘッダ等であり、通信規格で定められる情報を格納するためのものである。ヘッダ情報には、例えばMACアドレス、イーサネットタイプ、IPアドレス又はポート番号等の情報が格納され得る。ヘッダ情報の形式はどのようなものであってもよく、ヘッダ情報に格納される情報はどのようなものであってもよい。
 メッセージタイプは、このメッセージが検索メッセージ又は提供メッセージのいずれであるかを示す情報が格納される。例えばこのメッセージは、メッセージタイプに「0」が設定された場合に検索メッセージとなり、「1」が設定された場合に提供メッセージとなる。
 サービスIDは、サーバが提供するサービスに対して一意に付される識別情報である。サービスバージョンは、提供するサービスのバージョンを識別する情報であり、例えばサービスIDで識別されるサービスを提供するためにサーバが動作させるソフトウェアのバージョンである。本実施の形態においてサービスバージョンは、その数値が大きいほど新しいバージョンを示すものとする。検索メッセージに含まれるサービスID及びサービスバージョンは、クライアントがサーバに提供を望むサービスのサービスID及びサービスバージョンである。提供メッセージに含まれるサービスID及びサービスバージョンは、サーバが提供することができるサービスのサービスID及びサービスバージョンである。
 オプション情報は、本実施の形態においては提供メッセージに付される情報であり、サービスを提供するサーバのIPアドレス及びポート番号等の情報が含まれる。ただし、検索メッセージについても同様に、クライアントのIPアドレス及びポート番号等の情報をオプション情報としてメッセージに付してもよい。
 また本実施の形態においては、クライアント及びサーバの間で送受信されるメッセージには、例えば要求メッセージ及び応答メッセージが含まれる。要求メッセージは、クライアントがサーバに対してサービスの提供を要求するためのメッセージである。要求メッセージには、図6に示したヘッダ情報、メッセージタイプ、サービスID、サービスバージョン及びオプション情報に加えて、例えば車速情報の送信要求、又は、車載機器の制御要求及び制御値等のように、サービスに関する要求内容を示す情報が含まれ得る。
 また応答メッセージは、サーバがクライアントからの要求メッセージに対する応答として送信するメッセージである。応答メッセージには、図6に示したヘッダ情報、メッセージタイプ、サービスID、サービスバージョン及びオプション情報に加えて、例えばクライアントから送信を要求された車速等の情報、又は、制御を行った車載機器に関する制御結果等のように、サーバが提供するサービスに関する情報が含まれ得る。
 図7は、本実施の形態に係る車載情報処理システムで行われる処理の一例を説明するための模式図である。本図では、クライアントのECU3が要求するサービスのサービスバージョンが「1.1」であり、サーバのECU2が提供するサービスのサービスバージョンが「1.1」から「1.2」へバージョンアップされる例を示している。クライアントのECU3は、サービスバージョンを「1.1」に設定した要求メッセージをサーバのECU2へ送信する。バージョンアップ前においてサーバのECU2は、この要求メッセージの受信に対してサービスバージョンが「1.1」のサービスを提供するための情報処理を実施し、情報処理の結果を含む応答メッセージを要求元のECU3へ送信する。このときにECU2が送信する応答メッセージのサービスバージョンは「1.1」である。
 その後、サーバのECU2おいてサービスを提供するためのソフトウェア(サーバプログラム22a)のバージョンアップが実施され、サービスバージョンが「1.1」から「1.2」へ更新される。サービスを利用するクライアントのECU3のソフトウェア(クライアントプログラム32a)はバージョンアップが行われておらず、ECU3はサービスバージョンが「1.1」のサービスの提供を望んでいる。この状況において、ECU3がサービスバージョンを「1.1」に設定した要求メッセージをECU2へ送信した場合、ECU2はサービスバージョンが異なるため応答メッセージをECU3へ送信しない。
 サーバのECU2は、周期的に提供メッセージの送信を行っている。バージョンアップ後にECU2が周期的に送信する提供メッセージにはサービスバージョンとして「1.2」が設定されている。この提供メッセージを受信したクライアントのECU3は、自身が必要とするサービスのサービスIDが一致し、且つ、サービスバージョンが異なるサービスがECU2によって提供されていることを認識できる。
 そこでECU3は、サービスバージョンが「1.1」のサービスを利用する情報処理を中断し、ECU2に対して要求するサービスのバージョンを一時的に「1.1」から「1.2」へ変更する。その後、ECU3は、ECU2が提供するサービスバージョンが「1.2」のサービスを自身の情報処理に利用することが可能であるか否かを検証する検証処理を開始する。
 ECU3は、記憶部32の検証シナリオ32bに従って、要求メッセージの送信及びこれに対する応答メッセージの受信を繰り返し行う。ECU3は、検証シナリオ32bに定められた要求内容を含む要求メッセージをECU2へ送信する。このときにECU3が送信する要求メッセージには、要求するサービスのサービスバージョンとして「1.2」が設定される。サービスバージョンが「1.2」の要求メッセージを受信したECU2は、要求されたサービスに関する情報処理を行って、応答メッセージをECU3へ送信する。応答メッセージを受信したECU3は、応答メッセージに含まれる情報の正否を、例えば情報に含まれる値が所定値と一致するか否か又は情報に含まれる値が期待する範囲内に含まれるか否か等に基づいて、判定する。ECU3は、要求メッセージの送信、応答メッセージの受信及び応答メッセージに含まれる情報の判定を繰り返し行い、全ての応答メッセージに含まれる情報について正当な情報であると判定した場合に、サービスバージョンが「1.2」のサービスを利用可能であると判断する。
 検証処理において、サービスバージョンが「1.2」のサービスを利用可能であると判断した場合、ECU3は、ECU2に対して要求するサービスのバージョンを永続的に「1.2」へ変更し、中断していた情報処理を再開する。その後、ECU3が送信する要求メッセージにはサービスバージョンが「1.2」と設定される。ECU2は、サービスバージョンが「1.2」に設定された要求メッセージを受信し、サービスバージョンが「1.2」のサービスを提供するための情報処理を行って、サービスバージョンが「1.2」に設定された応答メッセージをECU3へ送信する。
 図8は、本実施の形態に係る車載情報処理システムで行われる処理の一例を説明するための模式図である。本図では、クライアントのECU3が要求するサービスのサービスバージョンが「1.1」であり、サーバのECU2が提供するサービスのサービスバージョンが「1.2」であり、クライアントのECU3又はクライアントプログラム32aが起動(又は再起動)された直後の例を示している。
 クライアントのECU3が起動された後、又は、ECU3にてクライアントプログラム32aが起動された後、ECU3は、自身が必要とするサービスを提供するサーバを検索するために、サービスバージョンを「1.1」に設定した検索メッセージをマルチキャストで送信する。しかし、サービスのECU2が提供するサービスのバージョンは「1.2」であるため、この検索メッセージを受信したECU2は、検索メッセージに応答する提供メッセージの送信を行わない。ECU3は、自身が必要とするサービスバージョンが「1.1」のサービスを提供するサーバを見出すことができず、このサービスを利用する情報処理を行うことができない。
 サーバのECU2は、サービスバージョンが「1.2」に設定された提供メッセージの送信を周期的に行っている。この周期的な提供メッセージを受信したクライアントのECU3は、自身が必要とするサービスのサービスIDが一致し、且つ、サービスバージョンが異なるサービスがECU2によって提供されていることを認識できる。そこでECU3は、サービスバージョンが「1.1」のサービスを利用する情報処理を中断し、ECU2に対して要求するサービスのバージョンを一時的に「1.1」から「1.2」へ変更した後、サービスバージョンが「1.2」のサービスを自身の情報処理に利用することが可能であるか否かを検証する検証処理を開始する。以下の処理は、図7にて説明した処理と同じであるため、説明を省略する。
 このように本実施の形態に係るクライアントのECU3は、自身が必要とするサービスバージョンのサービスを提供するサーバが存在せず、サービスIDが一致するがサービスバージョンが一致しないサービスを提供するサーバのECU2が存在する場合、このサービスの提供を受けることが可能であるか否かを検証する。検証の結果、サービスバージョンが一致しないサービスの提供を受けることが可能であると判断した場合、ECU3は、自身が要求するサービスのサービスバージョンを、ECU2が提供するサービスのサービスバージョンへ変更し、以後の情報処理を行う。なお、検証の結果、サービスバージョンが一致しないサービスの提供を受けることが不可能であると判断した場合、ECU3は、別のサーバを検索してよく、自身が必要とするサービスを提供するサーバが存在しなければ、このサービスを利用する情報処理を停止してよい。
 図9は、本実施の形態に係るクライアントのECU3が行う処理の手順を示すフローチャートである。本実施の形態に係るECU3は、例えば車両1のイグニッションスイッチがオフ状態からオン状態からオフ状態へ切り替えられたタイミングで起動される(ステップS1)。起動後にECU3の処理部31のサービス検索部310aは、自身が必要とするサービスを提供するサーバを検索するための検索メッセージをマルチキャストで送信する(ステップS2)。その後、サービス検索部310aは、送信した検索メッセージに対する応答としてサーバが送信する提供メッセージ、又は、サーバが周期的に送信する提供メッセージを受信したか否かを判定する(ステップS3)。提供メッセージを受信していない場合(S3:NO)、サービス検索部310aは、提供メッセージを受信するまで待機する。
 提供メッセージを受信した場合(S3:YES)、サービス検索部310aは、受信した提供メッセージのうち、サービスIDが自身の必要とするサービスのサービスIDと一致する提供メッセージについて、サービスバージョンが自身の必要とするサービスのサービスバージョンと一致するか否かを判定する(ステップS4)。両サービスバージョンが一致する場合(S4:YES)、処理部31のアプリケーション処理部310cは、このサービスを利用した情報処理を開始し(ステップS9)、処理を終了する。
 両サービスバージョンが一致しない場合(S4:NO)、処理部31のサービス検証部310bは、自身が要求するサービスのサービスバージョンを、受信した提供メッセージに含まれるサービスバージョンへ一時的に変更する(ステップS5)。その後、サービス検証部310bは、記憶部32の検証シナリオ32bに従って検証処理を行う(ステップS6)。サービス検証部310bは、ステップS6の検証処理の結果に基づいて、受信した提供メッセージに含まれるサービスバージョンのサービスを利用可能であるか否かを判定する(ステップS7)。
 サービスを利用可能と判定した場合(S7:YES)、サービス検証部310bは、サーバに対して要求するサービスのサービスバージョンを永続的に変更する(ステップS8)。その後、アプリケーション処理部310cは、このサービスを利用した情報処理を開始し(ステップS9)、処理を終了する。また、サービスを利用不可能と判定した場合(S7:NO)、サービス検証部310bは、ステップS5にて変更したサービスバージョンを元のサービスバージョンへ戻す(ステップS10)。その後、サービス検索部310aは、必要とするサービスを提供する他のサーバを検索し(ステップS11)、処理を終了する。
 図10は、本実施の形態に係るクライアントのECU3が行う検証処理の手順を示すフローチャートであり、図9に示したフローチャートのステップS6において行う処理の詳細である。本実施の形態に係るECU3の処理部31のサービス検証部310bは、記憶部32に記憶された検証シナリオ32bを読み出す(ステップS21)。サービス検証部310bは、検証シナリオ32bにテストパターンとして含まれる要求メッセージの1つを取得し、この要求メッセージをサーバのECU2へ送信する(ステップS22)。サービス検証部310bは、要求メッセージに対してサーバが送信する応答メッセージを受信する(ステップS23)。サービス検証部310bは、受信した応答メッセージに含まれる情報を取得する(ステップS24)。
 サービス検証部310bは、ステップS24にて取得した情報が正しいものであるか否かを、例えば情報の値が所定値と一致するか否か又は値が所定範囲内であるか否か等に基づいて、判定する(ステップS25)。応答メッセージの情報が正しいものでない場合(S25:NO)、サービス検証部310bは、このサービスを利用することが不可能であると判定し(ステップS28)、検証処理を終了して図9のフローチャートへ処理を戻す。
 応答メッセージの情報が正しいものである場合(S25:YES)、サービス検証部310bは、検証シナリオ32bに設定された全パターンについて検証を終えたか否かを判定する(ステップS26)。全パターンについて検証を終えていない場合(S26:NO)、サービス検証部310bは、ステップS22へ処理を戻し、次のパターンでの検証を行う。全パターンについて検証を終えた場合(S26:YES)、サービス検証部310bは、このサービスを利用することが可能であると判定し(ステップS27)、検証処理を終了して図9のフローチャートへ処理を戻す。
 図11は、本実施の形態に係るサーバのECU2が行う処理の手順を示すフローチャートである。本実施の形態に係るサーバのECU2の処理部21のサービス情報提供部210aは、クライアントのECU3が送信する検索メッセージを受信したか否かを判定する(ステップS41)。検索メッセージを受信した場合(S41:YES)、サービス情報提供部210aは、検索メッセージに含まれるサービスID及びサービスバージョンが、自身の提供するサービスのサービスID及びサービスバージョンと一致するか否かを判定する(ステップS42)。サービスID及びサービスバージョンが一致する場合(S42:YES)、サービス情報提供部210aは、検索メッセージの送信元のECU3へ、提供メッセージを送信し(ステップS43)、ステップS41へ処理を戻す。サービスID及びサービスバージョンが一致しない場合(S42:NO)、サービス情報提供部210aは、提供メッセージを送信せずに、ステップS41へ処理を戻す。
 検索メッセージを受信していない場合(S41:NO)、サービス情報提供部210aは、周期的な提供メッセージの送信について、前回の送信から所定期間が経過したか否かを判定する(ステップS44)。所定期間が経過した場合(S44:YES)、サービス情報提供部210aは、周期的な提供メッセージの送信を行い(ステップS43)、ステップS41へ処理を戻す。
 所定期間が経過していない場合(S44:NO)、処理部21のアプリケーション処理部210bは、クライアントのECU3から要求メッセージを受信したか否かを判定する(ステップS45)。要求メッセージを受信していない場合(S45:NO)、アプリケーション処理部210bは、ステップS41へ処理を戻す。要求メッセージを受信した場合(S45:YES)、アプリケーション処理部210bは、受信した要求メッセージに含まれるサービスID及びサービスバージョンが、自身の提供するサービスのサービスID及びサービスバージョンと一致するか否かを判定する(ステップS46)。サービスID及びサービスバージョンが一致しない場合(S46:NO)、アプリケーション処理部210bは、ステップS41へ処理を戻す。
 サービスID及びサービスバージョンが一致する場合(S46:YES)、アプリケーション処理部210bは、受信した要求メッセージに含まれる情報に基づいて、要求されたサービスを提供するための情報処理を行う(ステップS47)。アプリケーション処理部210bは、情報処理の結果として得られる情報を含む応答メッセージを、要求メッセージの送信元のECU3へ送信し(ステップS48)、ステップS41へ処理を戻す。
<まとめ>
 以上の構成の本実施の形態に係るECU3のクライアント処理部310は、ECU2のサーバ処理部210が提供するサービスのサービスID及びサービスバージョンを含む提供メッセージを受信し、受信した要求メッセージに含まれるサービスバージョンと自身が提供を望むサービスのサービスバージョンとが一致するか否かを判定する。両サービスバージョンが一致する場合、クライアント処理部310は、ECU2が提供するサービスを受けて情報処理を行う。両バージョン情報が一致しない場合、クライアント処理部310は、サービスバージョンが異なるサービスの提供を受けることが可能であるか否かの検証を行う。検証の結果、サービスバージョンが異なるサービスの提供を受けることが可能である場合、クライアント処理部310は、ECU2が提供するサービスを受けて情報処理を行うことができる。これによりクライアントのECU3は、サービスバージョンの不一致によりサービスを受けることができなくなることを、できるだけ回避することができる。
 また本実施の形態に係るECU3のクライアント処理部310は、検証の結果、サービスバージョンが異なるサービスの提供を受けることが可能である場合、以後に自身が提供を望むサービスのサービスバージョンを、ECU2から受信した提供メッセージに含まれるサービスバージョンに永続的に変更する。これにより、以後はサービスバージョンの不一致が発生することがなくなり、クライアント処理部310は情報処理を円滑に行うことができる。
 また本実施の形態に係るECU3のクライアント処理部310は、サービスバージョンが異なるサービスの提供を受けることが可能であるか否かの検証を行う際に、まず自身が提供を望むサービスのサービスバージョンを、ECU2から受信した提供メッセージに含まれるサービスバージョンに一時的に変更する。その後、クライアント処理部310は、変更したサービスバージョンに基づいてECU2との間でサービスの提供に係る要求メッセージ及び応答メッセージの送受信を行う。クライアント処理部310は、このメッセージ送受信の結果に基づいて、サービスバージョンが異なるサービスの提供を受けることが可能であるか否かを検証する。これによりクライアントのECU3は、自身が要求するサービスバージョンをサーバのECU2が提供し得るサービスのサービスバージョンに変更した場合に、不具合が生じるか否か等を検証することができる。
 また本実施の形態に係るECU3は、検証の際にサーバのECU2へ送信する要求メッセージの内容と、この要求メッセージに対してECU2から受信する応答メッセージの内容とを対応付けた検証シナリオ32bを記憶部32に記憶している。これによりクライアント処理部310は、記憶部32に記憶された検証シナリオ32bに従って要求メッセージの送信と受信した応答メッセージの正否判定とを行い、検証を行うことができる。
 また本実施の形態に係るECU3のクライアント処理部310は、自身が提供を望むサービスの有無を検索する検索メッセージを送信し、この検索メッセージに対する応答としてサーバのECU2が送信する提供メッセージを受信する。これによりクライアント処理部310は、サーバのECU2からの提供メッセージを必要とする際に、検索メッセージを送信して提供メッセージを受信することができる。
 また本実施の形態に係るECU3のクライアント処理部310は、検証の結果、サービスバージョンが異なるサービスの提供を受けることが不可能である場合、所望のサービスを提供し得る別のサーバを検索する。これによりクライアント処理部310は、必要なサービスを別のサーバにて受けることができる可能性がある。
 また本実施の形態に係るECU3のクライアント処理部310は、ECU3又はクライアント処理部310の起動又は再起動の後に、検索メッセージの送信を行う。これによりクライアント処理部310は、起動又は再起動の後、必要なサービスを受けることができるサーバを早期に検索することができる。
 また本実施の形態に係る車載情報処理システムでは、クライアント処理部310がECU3に備えられ、サーバ処理部210がECU2に備えられる。ECU3のクライアント処理部310は、サーバ処理部210を備えるECU2との間で要求メッセージ及び応答メッセージの送受信を行う。これによりECU3のクライアント処理部310は、他のECU2が提供するサービスを利用した情報処理を行うことができる。
 なお本実施の形態においては、車載情報処理システムのECU2,3がSOME/IPの規格に従ってサービスに関するメッセージの送受信を行う構成としたが、これに限るものではなく、SOME/IP以外の規格に従ってメッセージの送受信を行う構成であってよい。本実施の形態において説明した技術は、サーバ及びクライアントがメッセージの送受信を行うシステムであれば、どのようなシステムであっても利用することが可能な技術である。
 (変形例)
 図12は、変形例に係る車載情報処理システムの構成を説明するための模式図である。変形例に係る車載情報処理システムでは、1つのECU5がクライアント処理部310及びサーバ処理部210の両方を備える。変形例に係るECU5は、処理部51、記憶部52及び通信部53等を備えて構成されている。記憶部52には、クライアントプログラム32a及びサーバプログラム22aが記憶されている。ECU5では、処理部51が記憶部52に記憶されたクライアントプログラム32aを読み出して実行することにより、処理部51にクライアント処理部310がソフトウェア的な機能部として実現される。同様にECU5では、処理部51がサーバプログラム22aを読み出して実行することにより、処理部51にサーバ処理部210がソフトウェア的な機能部として実現される。処理部51は、例えばタイムシェアリング等により複数のプログラムを並列的に動作させることができ、クライアント処理部310及びサーバ処理部210は並列的に動作している。
 変形例に係るECU5では、通信部53による外部の装置との通信を行うことなく、クライアント処理部310及びサーバ処理部210が要求メッセージ及び応答メッセージの授受を行うことができ、検索メッセージ及び提供メッセージの授受を行うことができる。クライアント処理部310は、サーバ処理部210が装置の内部又は外部のいずれに存在するかに関係なく、自身の処理に必要なサービスを提供するサーバ処理部210を検索する処理、サービスバージョンが異なるサービスの提供を受けることができるか否かを検証する処理、及び、サーバ処理部210に対してサービスの提供を要求する処理等を行うことができる。
 車載システムにおける各装置は、マイクロプロセッサ、ROM及びRAM等を含んで構成されるコンピュータを備える。マイクロプロセッサ等の演算処理部は、図7~図11に示すような、シーケンス図又はフローチャートの各ステップの一部又は全部を含むコンピュータプログラムを、ROM、RAM等の記憶部からそれぞれ読み出して実行してよい。これら複数の装置のコンピュータプログラムは、それぞれ、外部のサーバ装置等からインストールすることができる。また、これら複数の装置のコンピュータプログラムは、それぞれ、CD-ROM、DVD-ROM、半導体メモリ等の記録媒体に格納された状態で流通する。
 今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本開示の範囲は、上記した意味ではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
 1 車両
 2 ECU
 3,3a~3c ECU(車載情報処理装置)
 4 中継器
 5 ECU
 21 処理部
 22 記憶部
 22a サーバプログラム
 23 通信部
 31 処理部
 32 記憶部
 32a クライアントプログラム
 32b 検証シナリオ
 33 通信部
 51 処理部
 52 記憶部
 53 通信部
 98,99 記録媒体
 210 サーバ処理部
 210a サービス情報提供部
 210b アプリケーション処理部
 310 クライアント処理部
 310a サービス検索部
 310b サービス検証部
 310c アプリケーション処理部
 

Claims (11)

  1.  サービスの提供を受けて処理を行うクライアント処理部を備える車載情報処理装置であって、
     前記クライアント処理部は、
     サービスを提供するサーバ処理部から、提供するサービスの識別情報及びバージョン情報を含む提供メッセージを受信し、
     受信した前記提供メッセージに含まれるバージョン情報と、自身が提供を望むサービスのバージョン情報とが一致するか否かを判定し、
     両バージョン情報が不一致であると判定した場合に、バージョン情報が異なるサービスの提供を受ける可否を検証し、
     検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、当該サービスの提供を受けて処理を行う、
     車載情報処理装置。
  2.  前記クライアント処理部は、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、以後に自身が提供を望むサービスのバージョン情報を、前記提供メッセージに含まれるバージョン情報に変更する、
     請求項1に記載の車載情報処理装置。
  3.  前記クライアント処理部は、
     自身が提供を望むサービスのバージョン情報を、前記提供メッセージに含まれるバージョン情報に一時的に変更し、
     一時的に変更したバージョン情報に基づいて前記サーバ処理部との間でメッセージの送受信を行い、
     前記メッセージの送受信の結果に基づいて、バージョン情報が異なるサービスの提供を受ける可否を検証する、
     請求項1又は請求項2に記載の車載情報処理装置。
  4.  前記クライアント処理部が検証の際に送信するメッセージの内容と、該メッセージに対して前記サーバ処理部から受信するメッセージの内容とが対応付けられた検証情報を記憶する記憶部を備える、
     請求項3に記載の車載情報処理装置。
  5.  前記クライアント処理部は、
     自身が提供を望むサービスの有無を検索する検索メッセージを前記サーバ処理部へ送信し、
     前記検索メッセージに対する応答として前記サーバ処理部が送信する前記提供メッセージを受信する、
     請求項1から請求項4までのいずれか1つに記載の車載情報処理装置。
  6.  前記クライアント処理部は、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが不可能である場合に、自身が提供を望むサービスを提供し得る別のサーバ処理部を検索する、
     請求項5に記載の車載情報処理装置。
  7.  前記クライアント処理部は、自身の起動の後に、前記検索メッセージを送信する、
     請求項5又は請求項6に記載の車載情報処理装置。
  8.  前記クライアント処理部は、前記サーバ処理部を備える他の装置との間でメッセージの送受信を行う、
     請求項1から請求項7までのいずれか1つに記載の車載情報処理装置。
  9.  前記サーバ処理部を備える、
     請求項1から請求項7までのいずれか1つに記載の車載情報処理装置。
  10.  車載情報処理装置のクライアント処理部が、サーバ処理部からのサービスの提供を受けて処理を行う情報処理方法であって、
     前記クライアント処理部が、前記サーバ処理部から、提供するサービスの識別情報及びバージョン情報を含む提供メッセージを受信し、
     前記クライアント処理部が、受信した前記提供メッセージに含まれるバージョン情報と、自身が提供を望むサービスのバージョン情報とが一致するか否かを判定し、
     前記クライアント処理部が、両バージョン情報が不一致であると判定した場合に、バージョン情報が異なるサービスの提供を受ける可否を検証し、
     前記クライアント処理部が、検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、当該サービスの提供を受けて処理を行う、
     情報処理方法。
  11.  車両に搭載された情報処理装置に、
     サービスを提供するサーバプログラムから、提供するサービスの識別情報及びバージョン情報を含む提供メッセージを受信し、
     受信した前記提供メッセージに含まれるバージョン情報と、自身が提供を望むサービスのバージョン情報とが一致するか否かを判定し、
     両バージョン情報が不一致であると判定した場合に、バージョン情報が異なるサービスの提供を受ける可否を検証し、
     検証結果に基づいてバージョン情報が異なるサービスの提供を受けることが可能である場合に、当該サービスの提供を受ける
     処理を実行させる、クライアントプログラム。
     
PCT/JP2021/010670 2020-03-26 2021-03-16 車載情報処理装置、情報処理方法及びクライアントプログラム WO2021193252A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180019282.8A CN115315927B (zh) 2020-03-26 2021-03-16 车载信息处理装置、信息处理方法及客户端程序
US17/907,227 US20230105426A1 (en) 2020-03-26 2021-03-16 In-vehicle information processing apparatus, information processing method, and client program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020056689A JP7359055B2 (ja) 2020-03-26 2020-03-26 車載情報処理装置、情報処理方法及びクライアントプログラム
JP2020-056689 2020-03-26

Publications (1)

Publication Number Publication Date
WO2021193252A1 true WO2021193252A1 (ja) 2021-09-30

Family

ID=77891823

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/010670 WO2021193252A1 (ja) 2020-03-26 2021-03-16 車載情報処理装置、情報処理方法及びクライアントプログラム

Country Status (4)

Country Link
US (1) US20230105426A1 (ja)
JP (1) JP7359055B2 (ja)
CN (1) CN115315927B (ja)
WO (1) WO2021193252A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023057798A (ja) * 2021-10-12 2023-04-24 株式会社オートネットワーク技術研究所 車載装置、プログラム及び、プログラムの更新方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003025698A (ja) * 2001-07-13 2003-01-29 Fujitsu Ltd 電子装置、その電子ユニット及びユニット間の版数互換性判別処理方法
JP2016502781A (ja) * 2012-10-26 2016-01-28 マイクロソフト テクノロジー ライセンシング,エルエルシー リアル・タイム通信および体験共有セッション中におけるサービスの更新
JP2016163244A (ja) * 2015-03-04 2016-09-05 株式会社デンソー サービス提供システム、ecu、及び、外部装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3895615B2 (ja) * 2002-03-01 2007-03-22 あいおい損害保険株式会社 交通安全支援装置、交通安全支援システム及び交通安全支援プログラム
US7685291B2 (en) * 2005-11-08 2010-03-23 Mediatek Inc. Messaging service interoperability methods and related devices
JP4661569B2 (ja) * 2005-12-07 2011-03-30 村田機械株式会社 サーバ装置、情報管理システム、及び、画像形成装置
JP2010128573A (ja) 2008-11-25 2010-06-10 Sumitomo Electric Ind Ltd エージェントコンピュータプログラム、端末コンピュータ、アプリケーションプログラム取得方法、アプリケーションプログラム配信方法、アプリケーション取得要求データ構造
JP5465099B2 (ja) * 2010-06-14 2014-04-09 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
EP2595399A1 (en) * 2011-11-16 2013-05-22 Thomson Licensing Method of digital content version switching and corresponding device
US9632770B2 (en) * 2015-04-28 2017-04-25 Google Inc. Infrastructure for hosting and publishing software packages
JP7043736B2 (ja) 2016-06-02 2022-03-30 株式会社デンソー 車両用電子制御装置及び車両用サービス管理システム
JP6639363B2 (ja) * 2016-09-12 2020-02-05 キヤノン株式会社 サーバ装置、情報処理方法及びプログラム
US10539966B2 (en) 2016-09-28 2020-01-21 Denso Corporation Service cooperation system for vehicle
JP7006335B2 (ja) * 2018-02-06 2022-01-24 トヨタ自動車株式会社 車載通信システム、車載通信方法、およびプログラム
CN109491886A (zh) * 2018-09-26 2019-03-19 深圳壹账通智能科技有限公司 兼容性测试方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003025698A (ja) * 2001-07-13 2003-01-29 Fujitsu Ltd 電子装置、その電子ユニット及びユニット間の版数互換性判別処理方法
JP2016502781A (ja) * 2012-10-26 2016-01-28 マイクロソフト テクノロジー ライセンシング,エルエルシー リアル・タイム通信および体験共有セッション中におけるサービスの更新
JP2016163244A (ja) * 2015-03-04 2016-09-05 株式会社デンソー サービス提供システム、ecu、及び、外部装置

Also Published As

Publication number Publication date
JP2021158517A (ja) 2021-10-07
CN115315927A (zh) 2022-11-08
JP7359055B2 (ja) 2023-10-11
US20230105426A1 (en) 2023-04-06
CN115315927B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
US6694235B2 (en) Vehicular relay device, in-vehicle communication system, failure diagnostic system, vehicle management device, server device and detection and diagnostic program
JP6782446B2 (ja) 監視装置、通信システム、車両、監視方法、およびコンピュータプログラム
JP4942261B2 (ja) 車両用中継装置、及び、車内通信システム
US8095301B2 (en) On-vehicle system
CN112770940A (zh) 车载更新装置、更新处理程序、程序的更新方法及车载更新系统
US11914987B2 (en) Master update agent and distributed update agent architecture for vehicles
WO2019202965A1 (ja) 車載更新装置、車載更新システム、更新処理方法及び更新処理プログラム
JP2017215890A (ja) 中継装置、プログラム更新システム、およびプログラム更新方法
JP7035635B2 (ja) 車両制御システム及び車両制御システムにおけるソフトウェアの整合性確認方法
WO2020183897A1 (ja) 代替装置、代替制御プログラム及び代替方法
JPWO2019030984A1 (ja) 制御装置、制御方法、およびコンピュータプログラム
WO2021193252A1 (ja) 車載情報処理装置、情報処理方法及びクライアントプログラム
US11853742B2 (en) Server, software update system, distribution method, and non-transitory storage medium
WO2018142749A1 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
JP2021166335A (ja) 車載中継装置、情報処理方法及びプログラム
WO2021193253A1 (ja) 車載情報処理装置、情報処理方法及びサーバプログラム
JP7415756B2 (ja) 車載装置、情報処理方法及びコンピュータプログラム
CN115514742A (zh) Ota管理器、中心、系统、方法、非暂时性存储介质
WO2020195034A1 (ja) 車載更新装置、更新処理システム、更新処理方法及び処理プログラム
JP7157214B1 (ja) 車載制御装置、車載システム、情報処理方法、及びプログラム
JP2019165444A (ja) ゲートウェイ装置及び通信方法
WO2023189469A1 (ja) 情報処理方法、通信システムおよび情報処理プログラム
US8995254B2 (en) Method of operating a mobile router
WO2022255069A1 (ja) 車載通信装置、車載中継装置、車載通信システム及び通信方法
WO2024029196A1 (ja) 管理装置、機能部、車載通信システムおよび車両通信管理プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21775016

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21775016

Country of ref document: EP

Kind code of ref document: A1