WO2019111907A1 - Updating device and updating system - Google Patents

Updating device and updating system Download PDF

Info

Publication number
WO2019111907A1
WO2019111907A1 PCT/JP2018/044604 JP2018044604W WO2019111907A1 WO 2019111907 A1 WO2019111907 A1 WO 2019111907A1 JP 2018044604 W JP2018044604 W JP 2018044604W WO 2019111907 A1 WO2019111907 A1 WO 2019111907A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
update
unit
server
overlay
Prior art date
Application number
PCT/JP2018/044604
Other languages
French (fr)
Japanese (ja)
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 クラリオン株式会社
Publication of WO2019111907A1 publication Critical patent/WO2019111907A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Definitions

  • the present invention relates to an update device and an update system.
  • ECU Electric Control Unit
  • IVI In-Vehicle Infotainment
  • TCU Telematics Communication Unit
  • Patent Document 1 includes an update work terminal for storing the latest version of the boot loader, and an update target device for controlling the control target device without stopping, the first update target device being the execution region of the boot loader.
  • the boot loader management table having a second boot loader area, update information corresponding to the first and second boot loader areas, and the latest version of the boot loader downloaded from the update work terminal, with reference to the boot loader management table
  • a software update system comprising: a boot loader management unit that updates a boot loader area that has not been updated last time based on update information.
  • the update apparatus is a storage unit in which a plurality of data files are stored, a communication unit that receives an update file from a server device, and a file path of the storage unit, the plurality of data files being An overlay management unit for setting a container mount, which is a read-only image layer included, a file path of the storage unit, which is readable and writable, and a file path of the storage unit, the container mount;
  • the lower layer is a file state in which the container layer is superimposed on the upper layer
  • the writing process on the container mount is an overlay execution unit that executes an overlay process of writing on the container layer, and the update file Write to the container mount There, and a update unit for updating at least a portion of said plurality of data files.
  • An update system is an update system including a server apparatus and an update apparatus connected by a network, wherein the update apparatus is a storage unit in which a plurality of data files are stored, and the server apparatus A communication unit that receives an update file from the storage unit, a read-only image layer that is the file path of the storage unit and that includes the plurality of data files, a read / write container layer that is the file path of the storage unit, and the storage unit Overlay management unit for setting a container mount, which is a file path, and the container mount in a file state in which the image layer is a lower layer and the container layer is an upper layer, and the writing process to the container mount is Write to the container layer
  • the server apparatus includes: an overlay execution unit that executes a burley process; and an update unit that writes to the container mount using the update file and updates at least a part of the plurality of data files.
  • Server storage unit in which the data file of the above is stored, an update file storage unit in which the update file to be transmitted to the update device is stored, a server communication unit for transmitting the update file to the update device, the server storage unit
  • a read-only server image layer including the plurality of data files, a file path of the server storage unit, a readable and writable server container layer, and a server container mount that is the file path of the server storage unit;
  • a server overlay management unit to set up, and Tenamount executes server overlay processing in which the server image layer is the lower layer and the server container layer is the upper layer and the file is in the file state, and the writing process to the server container mount is writing to the server container layer A server overlay execution unit; and a server update unit that writes to the server container mount using the update file and updates at least a part of the plurality of data files, the server overlay execution unit
  • the second server overlay process is further executed in a state in which the first server overlay process is effective, and the server image layer in the second server overlay process
  • the file path set in the tena mount is set, the server overlay execution unit executes a plurality of the server overlay processes, and in any of the plurality of server overlay processes, the server overlay immediately before the server overlay on the server image layer
  • the file path set in the server container mount in the process is set, and the server device uses the file path set in the server container mount in the latest server overlay process created by the server overlay execution unit as a copy source.
  • the server communication unit further includes a server layer combining unit that merges a plurality of updates by the server updating unit by copy processing for copying a merge path that is a predetermined file path, and the server communication unit copy
  • the rollup information which is the information of the plurality of files is transmitted to the update device, and when the update device receives the rollup information from the server device, the update process cancels the overlay processing and replaces the plurality of data files. Use the rollup information.
  • data can be updated with a small storage area.
  • FIG. 18A shows a list of data files in each version of the operation example
  • FIG. 18B shows the contents of the update file 307 in the operation example.
  • Diagram showing the file configuration after updating to version 4 in the operation example A diagram showing the configuration of a data file after performing merge processing from the state shown in FIG. Diagram showing transitions of the soft execution path 70, the soft update path 71, and the layer combining path 72 in the operation example Flow chart showing update process of data file 330 Flow chart showing details of overlay mounting process Flowchart showing details of merge processing Flowchart showing details of rollback processing
  • the figure which shows an example of the screen display which inquires the propriety of the update in a modification The figure which shows the constitution of the renewal system in the form of 2nd execution
  • the figure which shows the constitution of the renewal system in the form of 3rd execution Flow chart showing update processing of data file 330 in the third embodiment
  • the figure which shows the constitution of the renewal system in the form of 4th execution Flowchart representing the operation of the difference update unit 36
  • a diagram showing an example of management information 7B in the fifth embodiment Flowchart representing the operation of the rollback unit 47 in
  • FIG. 1 is a diagram showing the configuration of an update system including the update device 10.
  • the update system includes the vehicle 1 and the server device 2.
  • the vehicle 1 and the server device 2 communicate with each other via the communication network 5.
  • the communication network 5 may include the Internet. Since the update device 10 is mounted on the moving vehicle 1, wireless communication is included in the communication network 5 itself or the communication path from the update device 10 to the communication network 5.
  • the server device 2 includes a storage 165 and a server communication unit 20.
  • the update file 307 is stored in the storage 165 of the server device 2.
  • the server communication unit 20 transmits the update file 307 to the update device 10 via the communication network 5.
  • the update apparatus 10 has, as its functions, an update management unit 30, a communication unit 31, an update unit 33, an execution unit 34, an overlay execution unit 35, an execution layer specification unit 37, and an update start determination unit 38.
  • Update layer specification unit 39, layer file synthesis unit 40, synthesis range specification unit 41, update file storage unit 42, backup unit 43, storage remaining amount detection unit 44, unnecessary layer deletion unit 45, management information 7 includes an overlay management unit 46, a rollback unit 47, and an HMI unit 49.
  • the update device 10 includes a storage 48. The information stored in the storage 48 will be described later with reference to FIG.
  • the storage 48 is a non-volatile storage device such as a hard disk drive, a solid state drive (SSD), a flash memory, an optical disk or the like.
  • the update management unit 30 communicates with the server device 2 using the communication unit 31, and inquires whether it is necessary to update a data file 330, which will be described later, stored in the update device 10. When it is determined that the update is necessary, the update management unit 30 downloads the update file 307 using the communication unit 31 and temporarily stores the update file 307 in the storage unit 151 using the update file holding unit 42. Then, the update management unit 30 updates the data file 330 stored in the storage 48 using the update file 307.
  • DM Device Management
  • OMA Open Mobile Alliance
  • the communication unit 31 is an information communication unit that communicates with the server device 2.
  • the communication unit 31 receives the update file 307 from the server device 2.
  • the communication protocol used for this reception is not particularly limited, for example, TCP / IP, UDP / IP, HTTP, HTTPS, FTP, etc. can be used.
  • the update unit 33 updates the data file 330 stored in the storage 48 using the update file 307 stored in the storage unit 151 by the update file storage unit 42 described later.
  • the updating unit 33 uses a directory described in the software update path 71 described later as a root directory, that is, a root directory, and performs update processing of the data file 330 with respect to files and directories arranged thereunder.
  • the execution unit 34 causes the control unit 152 described later to execute the program included in the data file 330.
  • the execution unit 34 executes an execution process on a file or directory located thereunder, with the directory described in the software execution path 70 described later as a base point directory.
  • the update unit 33 and the execution unit 34 can operate at the same time.
  • the overlay execution unit 35 executes an overlay mount instruction in Linux (registered trademark) which is an OS. The specific operation will be described later with reference to FIG.
  • the execution layer designation unit 37 designates a directory in which the data file 330 to be processed by the execution unit 34 is stored.
  • the execution unit 34 causes the control unit 152 to execute a program stored under the directory designated by the execution layer designation unit 37 on the premise that this designation is performed.
  • the update layer designation unit 39 designates a directory in which the data file 330 to be processed by the update unit 33 is stored.
  • the aforementioned update unit 33 updates the data file 330 below the directory designated by the update layer designation unit 39 on the premise that this designation has been made.
  • the update start determination unit 38 determines the timing at which the update unit 33 should start the operation, and outputs an operation command to the update unit 33.
  • the timing at which the updating unit 33 should start operation is, for example, the timing of receiving the data file 330 from the server device 2, the timing designated by the server device 2, the timing of receiving notification from the storage residual amount detecting unit 44, etc. . Further, the timing at which the updating unit 33 should start operation may be timing at which the engine of the vehicle 1 is started.
  • the layer file combining unit 40 combines a plurality of layers specified by the combining range specification unit 41 into one layer. The specific operation will be described later with reference to FIG.
  • the synthesis range designation unit 41 designates a layer to be integrated by the layer file synthesis unit 40.
  • the update file holding unit 42 stores the data file 330 received from the server device 2 in the storage 48.
  • the backup unit 43 stores the integrated layer generated by the layer file synthesis unit 52 in the storage 48.
  • the storage remaining amount detection unit 44 calculates the total capacity and free capacity of the storage 48, and notifies the update start determination unit 38 when the free capacity is smaller than a predetermined threshold.
  • the unnecessary layer deleting unit 45 deletes the unnecessary layer from the storage 48 after being integrated by the layer file synthesizing unit 52 and backed up by the backup unit 43 to a storage or the like.
  • the overlay management unit 46 manages a plurality of overlays described later using management information 7 described later. Hereinafter, multiple overlays are also called multiple mounts. Specific processing of the overlay management unit 46 will be described with reference to FIG.
  • the rollback unit 47 uses the overlay management unit 46 and the unnecessary layer deletion unit 45 to restore the data file 330 of the update device 10 to the initial state. Specifically, the rollback unit 47 deletes from the storage 48 the data file included in the layer recorded in the record other than the record created first among the records described later, and is created in the second or later. Delete all records. Thus, the updating device 10 can be easily returned to the initial state. Therefore, the rollback unit 47 can also be called an initialization unit.
  • the HMI unit 49 provides a display of output information of a program operated by the update device 10 and a user interface function of delivering input received from the user to the program.
  • the HMI unit 49 displays processing results and log information of the updating unit 33 and the executing unit 34 on an HMI described later.
  • FIG. 2 is a diagram showing information stored in the storage 48 of the update device 10.
  • a data file 330 a soft execution path 70, a soft update path 71, and a layer combining path 72 are stored.
  • the soft execution path 70, the soft update path 71, and the layer combining path 72 are storage areas in which information of paths necessary for the operation of the updating apparatus 10 is stored.
  • a value is stored in advance in the software execution path 70 at the time of factory shipment of the update device 10, and the value is rewritten along with the update of the data file 330. Details will be described later.
  • FIG. 3 is a hardware block diagram of the update device 10.
  • the update device 10 includes a storage unit 151, a control unit 152, a storage 48, a network I / F 153, a bus 154, and an HMI 155.
  • the control unit 152 is a central control unit, that is, a CPU.
  • the control unit 152 loads the program included in the data file 330 stored in the storage 48 in the storage unit 151 and executes the program.
  • the storage unit 151 is a main storage device, for example, a RAM.
  • the storage unit 151 temporarily stores information handled by the control unit 152, and exchanges data via the bus 154.
  • the storage 48 is a non-volatile storage device as described above.
  • the update device 10 can change the operation of the update device 10 by updating the data file 330 stored in the storage 48.
  • a network I / F 153 is an interface that wirelessly transmits and receives information via a bus, and supports, for example, communication standards such as LTE, 3G, 4G, WiMax, WiFi, infrared, and CSMA / DA.
  • the network I / F 153 may be a network used inside the vehicle 1, for example, an interface of a CAN (Controller Area Network).
  • the HMI 155 is hardware capable of inputting and outputting information, and is, for example, a touch panel capable of displaying an image and performing a touch operation. However, the HMI 155 may be configured by combining a liquid crystal display that can only output information and a button that can only input information. Note that the update device 10 may not include the HMI 155, and an input / output device connected via the bus 154 or the network I / F 153 may be used as the HMI 155. That is, the HMI 155 may not have a button operated by the user or a display for presenting information to the user.
  • the update device 10 is, for example, an ECU, a TCU, an IVI, an MPU (Map Processing Unit), a gateway, a display, a smartphone, a feature phone, a tablet terminal, a head mounted display, and the like.
  • the IVI is, for example, a car navigation device
  • the gateway is a device that connects a plurality of communication networks mounted on the vehicle 1 and enables mutual data communication.
  • the MPU is a device that creates a map around the traveling route based on the information acquired from the sensor.
  • FIG. 4 is a hardware configuration diagram of the server device 2.
  • the server device 2 includes a storage unit 161, a control unit 162, a storage 165, a network I / F 163, and a bus 164.
  • the control unit 162 is a central control unit, that is, a CPU.
  • the control unit 162 expands a program stored in a ROM (not shown) into a RAM (not shown) and executes the program.
  • the storage unit 161 is a main storage device, for example, a RAM.
  • the storage unit 161 temporarily stores information handled by the control unit 162.
  • the storage 165 is a non-volatile storage device such as a hard disk drive, an SSD, or a flash memory.
  • the network I / F 163 is an interface that transmits and receives information wirelessly via the bus 164, such as LTE, 3G, 4G, WiMax, WiFi, infrared, CSMA / DA, and the like.
  • the server device 2 passes the update file 307 stored in the storage 165 by the server communication unit 20 to the communication unit 31 of the update device 10 via the network I / F 163.
  • FIG. 5 shows the data file 330.
  • the configuration shown in FIG. 5 is an example, and the data file 330 in the present embodiment may include at least one program, that is, an executable file 3101 described later. That is, the data file 330 may include a plurality of programs, or may include binary data other than the programs and the text file 311.
  • the data file 330 may also include a difference file 305, an archive file 308, and a layer image file 309.
  • the data file 330 is a set of files and directories that can be handled by an OS such as Linux or Windows (registered trademark).
  • Data files 330 may include binary file 310, text file 311, difference file 305, archive file 308, and layer image file 309. Although not shown in FIG. 5, a directory structure may be included.
  • the text file 311 is a file that can be read directly by humans, and is a file composed of only character codes.
  • the binary file 310 is all files other than the text file 311, and is an audio file such as MP3 format or WAV format, an image file such as PNG format or GIF format, IMG format, ELF format or a. For example, application files in the out format or COFF format.
  • the configuration of the binary file 310 will be described later with reference to FIG.
  • the difference file 305 is a type of binary file 310, and is a file in which the difference between the two files is digitized and generated by a program such as bspatch, xdelta or zdelta as described above. The configuration of the difference file 305 will be described later with reference to FIG.
  • the archive file 308 is a file in which one or more files and directories are combined into one file, and is a file in a ZIP format, tar format, GZIP format, or the like.
  • the configuration of the archive file 308 will be described later with reference to FIG.
  • the layer image file 309 is a type of archive file that can be used in the overlay mechanism described later, and is assumed to be a file of ISO format or the like. The configuration of the layer image file 309 will be described later with reference to FIG.
  • FIG. 6 shows the structure of the update file 307.
  • the configuration shown in FIG. 6 is an example, and the update file 307 in the present embodiment may be capable of updating at least one execution file 3101. That is, the update file 307 may include the executable file 3101 itself or the difference file 305 for updating the executable file 3101.
  • the update file 307 can include a binary file 310, a text file 311, a difference file 305, an archive file 308, and a layer image file 309.
  • FIG. 7 shows the structure of the binary file 310.
  • the binary file 310 is all files other than the text file 311 as described above.
  • the binary file 310 includes an executable file 3101, an image file 3102, a data file 3103, an invisible file 3104, a map data file 3105 and a system file 3106.
  • the executable file 3101 has an ELF format or a. It is an application file that can be read and executed by the control unit 152 or the control unit 162, that is, a program, such as an out format or a COFF format.
  • the image file 3102 is a still image file such as PNG format, GIF format, or IMG format, or a moving image file such as MP4 format or AVI format.
  • the data file 3103 is data generated when the binary file 310 is executed.
  • the invisible file 3104 is'. It is a file with a file name beginning with '(dot).
  • the map data file 3105 is data obtained by converting map information into binary data in an information terminal such as an IVI or smart phone.
  • a system file 3106 is a file group that configures an OS such as Linux or Windows.
  • FIG. 8 shows the structure of the difference file 305.
  • the difference file 305 is a type of binary file 310, and is a file that is generated by a program such as bspatch, xdelta, zdelta, etc., and the difference between the two files is digitized.
  • the difference file 305 includes a difference header 3051, an original path 3052, and one or more difference data 306.
  • the difference header 3051 is data used by the difference update unit 36, such as information identifying the difference file 305 and the file size.
  • the original path 3052 is the file name of the data file 330 that is the source of the difference update, of the two files used when generating the difference file 305.
  • FIG. 9 is a diagram showing the configuration of the difference data 306.
  • the difference data 306 is composed of an offset 3061, a size 3062 and update data 3063.
  • the offset 3061 is a numerical value indicating which file position of the original data file is to be updated, and is represented by the number of bytes from the beginning.
  • the size 3062 is a numerical value indicating how many bytes from the file position of the offset 3061 are to be rewritten.
  • the update data 3063 is a data string to be written in the range indicated by the offset 3061 and the size 3062.
  • FIG. 10 shows the structure of the archive file 308.
  • the archive file 308 is a file capable of managing a plurality of files in one archive file and is assumed to be an archive file in a ZIP format, tar format, GZIP format or the like. It comprises a header 320 and one or more data 304.
  • the header 320 is a header that stores information indicating where the file managed by the archive file 308 is stored in the archive file 308 and information such as a file name.
  • the data 304 may store and compress the data file 303.
  • FIG. 11 shows the structure of the layer image file 309.
  • the layer image file 309 is a type of archive file that can be used in the overlay mechanism described later, and is assumed to be a file of ISO format or the like.
  • the layer image file 309 is composed of a header 321 and one or more file information 300.
  • the difference from the archive file 308 is that the data 304 of the archive file is the file information 300, and includes not only the binary data of the file but also the path 301 of the file, the type 302 of the file, and the access authority 303. Therefore, even if the layer image file 309 is not actually expanded into individual files, access to the data file 330 is virtually assumed that a directory or file group exists inside the file configuration 6 in one layer image file. It is possible.
  • FIG. 12 shows the structure of file information.
  • the file information 300 is set for each directory and file, and includes a path 301, a type 302, an access authority 303, and data 304. That is, the file information 300 is composed of the information stored in the inode in the format format ext2 and the like, and the data itself. However, in the case of the directory, the data 304 does not exist.
  • the path 301 is a string indicating the absolute path of the file or directory. If “7f209” of FIG. 14 mentioned later is made into an example, since “7f209” exists under the "4d205", the path
  • the type 302 is information indicating which of a file and a directory. For example, in the case of "7f 209" in FIG. 14, the file type is "file” because it is a file. However, a predetermined bit value may be stored, for example, "0" for a file, and "1" for a directory.
  • the access authority 303 is information representing the access permission to the file, and represents the presence of the read authority, the write authority, and the execution authority. For example, according to the traditional notation, the right is expressed by a 3-digit number, "4" indicates that you have read permission, "2" indicates that you have write permission, and "1" indicates that you have execute permission. The first digit indicates the owner of the file or directory, the second digit indicates the person who belongs to the same group as the owner, and the third digit indicates the authority of the other user. However, in the present embodiment, since the user is not distinguished, all three digits have the same value.
  • overlay The function of the overlay will be described with reference to FIGS. 13-16.
  • the overlay mount in Linux is applied to realize a mechanism for updating the data file 330 in the background while executing the data file 330.
  • Overlays can be referred to by overlaying multiple directories as layers, so that writing can be performed on one layer and treated as if writing has been performed without changing files existing in another layer. It is a technology that can Note that this overlay can be realized, for example, by using a function built into the Linux kernel.
  • the overlay mount will be described with reference to FIG.
  • the overlay 51 is composed of a container mount 61, a container layer 62 and an image layer 63.
  • the container mount 61, the container layer 62, and the image layer 63 can each specify an arbitrary directory, and files are disposed in the container layer 62 and the image layer 63, but files are not disposed in the container mount 61.
  • these three directories are associated with each other to form an overlay.
  • file access to the container mount 61 is treated as access to a file group formed by overlapping the image layer 63 as the upper layer and the container layer 62 as the lower layer. The details will be described below.
  • the directory specified in the image layer 63 is "/ local / P", and the file A80 and the file C84 are stored in this directory.
  • the directory specified in the container layer 62 is “/ local / Q”, and the file B 82 and the file C 85 are stored in this directory.
  • the file C 84 and the file C 85 have the same file name but different contents.
  • the directory specified for the container mount 61 is "/ ol / R". When the file list stored in “/ ol / R” is acquired after forming the overlay, as shown in FIG. 13, file A 81, file B 83, and file C 86 are obtained.
  • the substance of the file A81 is the file A80
  • the substance of the file B83 is the file B82
  • the substance of the file C86 is the file C85.
  • the file C84 is not referenced from the container mount 61. In other words, the file C84 is hidden because files of the same name exist in the two layers and the container layer 62 has priority over the image layer 63. is there. Also, when any of the file A81, the file B83, and the file C86 included in the container mount 61 is edited, the edited information is stored in the container layer 62, and the file stored in the image layer 63 is affected by the editing. Absent. The above is the operation of the overlay mounting.
  • FIG. 14 shows a file configuration 6.
  • the name of the directory is attached with "d"
  • the name of the file is attached with "f”.
  • the file configuration 6 has a tree structure starting from the root 201, and five directories 1d 202, 4d 205, 8d 210, 9d 211, and 11d 213 exist in the root directory of the top layer.
  • a plurality of directories existing in the root directory are largely different in position in the horizontal direction in FIG. 14 for the reason for drawing and for the consistency with the drawings to be described later.
  • 2f203 and 3f204 are arranged under 1d202. Under 4d205, 5d206 and 7f209 are arranged. 6f207 is arranged under 5d206. 10f 212 is disposed under 9 d 211. There are no files not shown. For example, there is no file or directory under 8d210. The specific operation of the overlay mount will be described with reference to FIGS. 15 to 16 taking the file configuration 6 as an example.
  • FIG. 15 is a diagram showing a state in which the overlay 251 is formed.
  • 8d 210 is set in the container mount 261
  • 1d 202 is set in the container layer 262
  • 4d 205 is set in the image layer 263.
  • the formation of overlay 251 treats files and folders as if 4d 205 and 1d 202 were combined and stored in 8d 210. That is, the contents of directory 1 d 202 indicated by reference numeral 230 in FIG. 15 and the contents of directory 4 d 205 indicated by reference numeral 231 are treated like the contents of directory 8 d 210 indicated by reference numeral 232. Specifically, it is treated as if 2f203, 3f204, 5d206, 6f207, and 7f209 are placed under 8d210.
  • FIG. 16 is a diagram for explaining multiple mounting of overlay mounting. Multiple mounting is a combination of multiple overlays, one container mounting being the other image layer.
  • an overlay 252 is formed in addition to the overlay 251 described above, 8d 210 is designated in the image layer 266 of the overlay 252, 9d 211 is designated in the container layer 265, and 11d 213 is designated in the container mount 264. It is specified. Therefore, the container mount 264 is treated as if the file group subordinate to 8d 210 and the file group subordinate to 9 d 211 overlap and exist.
  • FIG. 17 is a diagram showing an example of management information 7 of the overlay management unit 46.
  • the management information 7 is composed of 18 records created in advance, and each record has fields of process number, lower path, upper path, and mount path.
  • the serial number field stores the serial number from 1.
  • the lower path field stores the path set in the image layer 63
  • the upper path field stores the path set in the container layer 62
  • the mount path field sets the container mount 61 Is stored.
  • the eighteen records are roughly divided into two groups, ie, 1 to 9 groups and 10 to 18 groups, each corresponding in turn.
  • the lower path of the process number “k” in each group is the same as the mount path of the process number “k ⁇ 1”.
  • “k” is an integer greater than or equal to "2" and less than or equal to the number of records in each group.
  • FIG. 18A is a view showing a list of data files in each version of the operation example
  • FIG. 18B is a view showing contents of the update file 307 in the operation example.
  • Data files of all versions consist of files only, with the first character schematically representing the file name and the next character representing the file version. For example, “A1” indicates version “1” of file “A”, and “A1” and “A2” indicate files having the same file name but different versions. Also, circles in the figure indicate changes from the previous version.
  • the version 1 data file is composed of A1 and B1.
  • the version 2 data file is composed of A1, B1 and C1 with the addition of file C.
  • the version 3 data file is constructed by updating file A and consisting of A2, B1 and C1.
  • the data file of version 4 is composed of A2, B2, C1, and D1 with file B updated and file D added.
  • the contents of the update file 307 that the update device 10 receives first are C1
  • the contents of the second update file 307 are A2
  • the contents of the second update file 307 are B2, and It is D1.
  • FIG. 19 is a diagram showing the file configuration after updating to version 4 in the operation example.
  • the file configuration shown in FIG. 19 includes the respective paths shown in FIG. 17, that is, directories. Furthermore, the file “C1” is placed under the directory "/ s / dif1-2", the file “A2” is placed under the directory “/ s / dif2-3”, and the directory "/ s / dif3-" is placed. Files “B2, D1" are placed under "4.”, and files "A1, B1" are placed under the directory "/ s / ver1". There are no files in other directories.
  • FIG. 19 there are two symmetrical directories “s” and “t” in the root directory. As described later, update is performed using one of the directories, and when a predetermined condition is satisfied, the directory to be used is changed and the update is continued. Therefore, in the following, the directory of "s" or “t” used for updating is referred to as "using side”, and the other is also referred to as “not using side” or “opposite side”. In the following, the update process will be described first, and then the merge process will be described.
  • FIG. 21 is a diagram showing transitions of the soft execution path 70, the soft update path 71, and the layer combining path 72 in the operation example. The description will be continued below with reference to FIG.
  • “/ s / ver1” is set in the software execution path 70, and the management number is set to “1”. Further, the data file of the update device 10 is only the files “A1, B1” placed under “/ s / ver1”, and no files are placed in the other directories shown in FIG. Then, the execution unit 34 of the update device 10 executes the file of “/ s / ver1” or less described in the software execution path 70, that is, the file “A1, B1”.
  • the update device 10 When the update file 307 is received from the server device 2 in this state, the update device 10 performs overlay mounting as follows. That is, based on the description of the record in which the management number of the management information 7 is “1”, the updating apparatus 10 sets “/ s / ver1” described in the field of the lower path as the image layer, and “// described in the field of the upper path Perform overlay mounting with s / dif1-2 "as the container layer and" / s / ver2 "described in the field of mount path as container mount.
  • the update device 10 writes the received first update file 307 in the container mount “/ s / ver2”.
  • the content of the first update file 307 is only the file "C1" as shown in the first line of FIG. 18 (b).
  • the overlay mount function writes the container mount "/ s / dif1-2", so the file "C1” is written to "/ s / dif1-2". Even while this writing is being performed, execution of the file "A1, B1" is continued. In other words, this write is a background update that takes place in the background.
  • the update device 10 rewrites the software execution path 70 to "/ s / ver2" which is the current mount path, and is included in "/ s / ver2".
  • the execution unit 34 is made to execute the file “A1, B1, C1” to be obtained.
  • the first two have an entity in "/ s / ver1”
  • the last one has an entity in "/ s / dif1-2”.
  • the version “2” files “A1, B1, C1” are executed by the execution unit.
  • the update device 10 performs the second overlay mounting as follows. That is, based on the description of the record with the management information 7 number “2”, the update device 10 sets “/ s / ver2” described in the lower path field as an image layer, and “/ s” described in the upper path field Perform overlay mounting with / dif2-3 "as the container layer and" / s / ver3 "described in the field of mount path as the container mount.
  • the update device 10 writes the received second update file 307 in the container mount “/ s / ver3”.
  • the content of the second update file 307 is only the file "A2" as shown in the second line of FIG. 18 (b).
  • the overlay mount function writes the container mount "/ s / dif2-3", so the file "A2” is written to "/ s / dif2-3".
  • the execution of the file "A1, B1, C1" continues even while this writing is being performed. In other words, this write is a background update that takes place in the background.
  • the update device 10 rewrites the software execution path 70 to "/ s / ver3" which is the current mount path, and the file included in "/ s / ver3"
  • the execution unit 34 is made to execute “A2, B1, C1”. Note that these three files exist in order "/ s / dif2-3", “/ s / ver1", and "/ s / dif1-2”.
  • the file "A1” exists in “/ s / ver1”, but the file "A2” having the same file name A exists in the container layer "/ s / dif2-3", so the file "A1" is The presence of is hidden.
  • the version “3” file “A2, B1, C1” is executed by the execution unit.
  • the update device 10 receives the third update file 307 from the server device 2, the update device 10 performs the third overlay mount. The details of the operation will be omitted since they will be repeated. Then, the update device 10 writes the received third update file 307 in the container mount “/ s / ver 4”. Thus, the file "B2, D1" is written to "/ s / dif3-4", and the file configuration shown in FIG. 19 is obtained.
  • the update device 10 rewrites the software execution path 70 to "/ s / ver4" which is the current mount path, and the file included in "/ s / ver4"
  • the execution unit 34 is made to execute “A2, B2, C1, D1”.
  • the three files are, in order, "/ s / dif2-3", “/ s / dif3-4", "/ s / dif1-2", and "/ s / dif3-4".
  • the execution unit 34 executes the version 3 file "A2, B2, C1, D1" as shown in the fourth line of FIG. 18A.
  • merge processing will be described.
  • FIG. 20 is a diagram showing the configuration of a data file after the merge process has been performed from the state shown in FIG.
  • the merge process is a process of integrating a plurality of layers, specifically, a process of collecting files distributed in a plurality of directories into one directory and further deleting an older version file of the same file name. .
  • files updated to version 4 by the above-described update processing and distributed to a plurality of directories are integrated into “/ t / ver1”.
  • the file “A1” and the file “B1” which are old versions of the file A also exist, but they are deleted in FIG.
  • This merge process is divided into a first process of collecting necessary files into one directory and a second process of deleting unnecessary files.
  • the first process is performed by copying the mount path indicated by the process number, that is, the data file of “/ s / ver 4” to “/ t / ver 1” which is the version 1 directory on the reverse side.
  • This first process corresponds to "cp / s / ver4 / t / ver1" when it is expressed by an input to the shell for inputting an operation command to the OS. That is, the process of excluding the file “A1, B1” from the copy target in the merge process is unnecessary.
  • the reason is as follows. That is, access to the container mount is treated as access to a file group formed by overlapping the image layer as the upper layer and the container layer as the lower layer, and files having the same name are only files existing in the image layer Is referred to.
  • the second process is performed by deleting all files existing on the side indicated by the process number.
  • This second process corresponds to “rm ⁇ rf / s” when it is expressed by an input to a shell for inputting an operation command to the OS.
  • the illustrated command also deletes the directory, only the file may be deleted.
  • FIG. 22 is a flowchart showing the process of updating the data file 330 performed by the updating apparatus 10.
  • the execution subject of each step described below is the control unit 152 of the update device 10.
  • the updating unit 33 starts the operation shown in FIG. 22 when the updating device 10 is activated, and starts the operation shown in FIG. 22 again when the operation shown in FIG. 22 is completed.
  • the update device 10 first uses the update start determination unit 38 to determine whether the update should be started (S1001). If it is determined that the update is not started yet, the process remains at S1001. When it is determined that the update should be started, the overlay mounting process (S1200) is performed, and the update process (S1013) is performed. The operation flow of the overlay mounting process (S1200) will be described later with reference to FIG.
  • the update process of S1013 is the writing of the received update file 307 into the software update path 71.
  • the update device 10 determines whether the unused area of the storage 48 is less than or equal to a predetermined ratio (S1014), and executes merge processing (S1100) when determining that the unused area is less than or equal to the predetermined ratio.
  • the operation flow of the merge process (S1100) will be described later with reference to FIG. If it is determined that the unused area is larger than the predetermined ratio (S1014: NO), the update device 10 determines whether the process number has reached a specified number, specifically, whether the process number has reached the end of each group It is determined whether or not it is (S1015). For example, in the example shown in FIG. 17, when the process number is 9 or 18, an affirmative determination is made in S1015. If it is determined that the process number has reached the specified value, merge processing (S1100) is executed, and if it is determined that the process number has not reached the specified value, the process proceeds to S1016.
  • the updating apparatus 10 sets the mount path to the software execution path 70 (S1016), and invalidates the software update path 71 (S1017).
  • the above is the update process of the data file 330.
  • FIG. 23 is a flowchart showing details of the overlay mounting process shown in S1200 of FIG.
  • the update device 10 reads the path described in the field of the lower path of the current processing number in the management information 7, and sets the path as read only (S1203).
  • the path described in the field of the upper path of the current processing number in the management information 7 is read, and the path is set to read / write (S1204).
  • the update device 10 reads the path described in the field of the mount path of the current processing number in the management information 7, and sets the path as readable and writable (S1205).
  • the updating apparatus 10 forms an overlay in which the paths for which the attributes are set in S1203, S1204, and S1205 are an image layer, a container layer, and a container mount (S1206).
  • the update device 10 sets a mount path, that is, a path whose attribute is set in S1205, as the software update path 71 (S1207).
  • the update device 10 increments the process number, that is, increments the process number by "1" (S1208), and ends the overlay mounting process shown in FIG.
  • FIG. 24 is a flowchart showing details of the merge process shown in S1100 of FIG.
  • the update device 10 acquires the mount path of the process number (S1101).
  • the updating apparatus 10 determines whether the processing number is less than 10, and sets the layer combining path to “/ t / ver1” when determining that the processing number is less than 10 (S1102: YES), When it is determined that the process number is 10 or more (S1102: NO), the layer combining path is set to "/ s / ver1".
  • the processing of S1102 to S1104 is to select a version 1 directory on the opposite side to the side currently being used.
  • the updating apparatus 10 copies the data file of the mount path to the layer combining path (S1105). This copy processing corresponds to substantial merge processing.
  • the updating apparatus 10 sets the layer combining path 72 as the software execution path 70 (S1106), and determines whether the processing number is less than 10 as in S1102 (S1107).
  • the update device 10 determines that the process number is less than 10, it deletes the file included in the side currently being used, that is, the file under "/ s" (S1108), and sets the process number to 10 It sets (S1109). When it is determined that the processing number is 10 or more, the update device 10 deletes the file included in the side currently being used, that is, the file under "/ t" (S1110), and sets the processing number to 10 (S1111). After S1109 or S1111, the updating apparatus 10 deletes the character string set in the layer combining path 72 (S1112), and ends the merge processing illustrated in FIG.
  • FIG. 25 is a flowchart showing the details of the rollback process.
  • the rollback unit 47 performs the rollback process according to a command from the server device 2 via the communication unit 31 or a command from the occupant of the vehicle 1 via the HMI unit 49.
  • the rollback processing instruction includes a rollback number indicating to what number of the processing number the rollback is to be performed.
  • the rollback unit 47 first acquires a rollback number (S1401), and then sets the current processing number as a processing target (S1402). Then, with reference to the management information 7, the file included in the upper path in the current process number is deleted (S1403), and the overlay corresponding to the current process number is canceled (S1404). Next, the process number is decremented, that is, the numerical value of the process number is decremented by "1" (S1405), and the magnitude relationship between the rollback number and the process number is evaluated (S1406). If it is determined that the rollback number is larger than the process number, the process returns to S1402, and if it is determined that the rollback number is less than or equal to the process number, the process illustrated in FIG. 25 ends.
  • the update device 10 includes a storage unit 151 storing a plurality of data files, a communication unit 31 receiving the update file 307 from the server device 2, and a plurality of data files as file paths of the storage unit 151. And an overlay management unit 46 configured to set a container mount which is a file path of the storage unit 151 and is a readable and writable container layer and a file path of the storage unit 151.
  • the update device 10 is an overlay execution unit that executes an overlay process in which the container mount is in a file state in which the image layer is a lower layer and the container layer is an upper layer and the writing process to the container mount is writing to the container layer And an update unit 33 that writes data to the container mount using the update file 307 and updates at least a part of the plurality of data files.
  • the update file 307 is written to the container mount, only the information on the data file to be updated is newly written to the storage unit 151, and the data file without change is not replicated. Therefore, data can be updated with a small storage area.
  • writing of the update file 307 is substantially performed to the container layer, the state before the update can be referenced from the image layer and the state after the update can be referenced from the container mount by the overlay mounting mechanism. In other words, the state before and after updating can be obtained without consuming extra storage area.
  • there is no particular limitation on the paths set in the image layer and the container layer and for example, it is not necessary to set each path in different areas divided in advance, and it is not necessary to secure a wide storage area in advance.
  • the plurality of data files include executable files.
  • the update device 10 includes an execution unit 35 that executes an executable file present in the software execution path 70 which is a file path of the storage unit 151.
  • the updating unit 33 rewrites the software execution path 70 from the image layer to the container mount. Therefore, the update device 10 can update in the background without interrupting the execution of the executable file included in the image layer.
  • the overlay execution unit 35 further executes the second overlay processing in a state in which the first overlay processing is valid, and as shown in the management information 7 of FIG. 17 for the image layer in the second overlay processing. , And a file path set for container mounting in the first overlay processing is set. Therefore, the overlay execution unit 35 can configure multiple overlays and can handle multiple updates.
  • the overlay execution unit 35 executes a plurality of overlay processes.
  • the file path set in the container mount in the previous overlay process is set in the image layer.
  • the update device 10 includes the layer combining unit 40 that merges the update performed by the update unit 33 a plurality of times by the copy process in which the file path set in the container mount in the latest overlay process created by the overlay execution unit 35 is a copy source. . Therefore, the update device 10 can extract only necessary data files by the merge process. This extraction can be executed by the copy command of the OS, and the processing is simple.
  • the updating apparatus 10 includes a processing step (S1014 in FIG. 22) of outputting an operation command to the layer combining unit when the free space of the storage unit 161 falls below a predetermined value. Therefore, merge processing is performed when the free space is reduced, and after the necessary files are extracted, the previous file can be deleted (S1107 to S1111 in FIG. 24).
  • the update device 10 includes a rollback unit that restores the state before the update by deleting the container layer. Therefore, unnecessary updates can be deleted and restored to the state before the update.
  • Modification 1 In the processing of S1112 to S1700 of FIG. 24, all the records are deleted. However, the first record may be left undeleted. In this case, a record other than the first one is obtained in S1112, and it is determined in S1700 whether or not all but the first record has been deleted.
  • Modification 2 In S1108 and S1110 of FIG. 24, the program being executed may not be deleted, but may be deleted after the execution of the program is completed. Depending on the configuration of the processing system or the configuration of the program, there is a possibility that a problem may occur by deleting the program being executed, and this modification can cope with such a case.
  • the data file included in the storage 48 and the update file 307 may not include a program that is an executable file.
  • the update device 10 may not include the execution unit 34 and the execution layer designation unit 37.
  • the management information 7 may not be created in advance, and may be generated by the updating device 10 as needed.
  • the update device 10 may set the lower path in the process number to be created next to be the same as the mount path in the previous process number.
  • the names of the directories are not particularly limited as long as the names do not overlap, and in particular, it is not necessary to sequentially number as shown in FIG.
  • the updating device 10 may use the consent of the occupant of the vehicle 1 as a condition for updating. For example, when an update is possible, the update device 10 uses the HMI unit 49 to inquire of the passenger whether the update is possible or not, and executes the update when the update is accepted.
  • FIG. 26 is a diagram showing an example of a screen display inquiring whether the occupant can update or not. This display is displayed on the HMI 155, and when the passenger selects "Yes", the process is continued. When the occupant selects "No", the process is interrupted, and the same screen display is performed when an update is possible again. However, when the occupant selects "No", the processing may be continued without inquiring the occupant when the ignition is turned on or off next time.
  • Modification 6 The process of S1015 of FIG. 22 may be deleted. It is for convenience of explanation that management information 7 has been created in advance in the present embodiment, and there is no particular disadvantage to perform automatic generation. Therefore, if there is no restriction on the storage area, the management information 7 is appropriately rewritten. It is because it is possible.
  • the server apparatus 2 not only sequentially transmits the update file 307 to the update apparatus 10 as in the first embodiment, but also when a predetermined condition is satisfied, a layer image file in which the contents of the update so far are put together, so-called A rollup is created and sent to the update device 10.
  • a rollup is created and sent to the update device 10.
  • the update device 10 deletes the file to be deleted and applies the received layer image file to the container layer. This simplifies the processing of the updating device 10 and reduces the load.
  • FIG. 27 is a diagram showing the configuration of the update system in the second embodiment.
  • the server apparatus 2 includes the update management unit 30, the update unit 33, the overlay execution unit 35, the update layer specification unit 39, the layer combination unit 40, and the combination range specification.
  • a section 41, an unnecessary layer deletion section 45, an overlay management section 46, an update storage 48A, and a flag setting section 51 are provided.
  • the update storage 48A may be realized by the same hardware as the storage 165 or by different hardware.
  • the operations of the update management unit 30, the update unit 33, the overlay execution unit 35, the update layer specification unit 39, the layer combining unit 40, and the overlay management unit 46, which are functions included in the server device 2, are the same as those in the first embodiment. is there.
  • the operation of the synthesis range designation unit 41 is different from the operation in the updating device 10 as described later.
  • the same information as the storage 48 of the update device 10 in the first embodiment is stored in the update storage 48A. That is, in the present embodiment, the update file 307 is used to update data files using multiple overlays not only in the update device 10 but also in the server device 2. Further, in the storage 165 of the server device 2 in the present embodiment, the update file 307 which the server device 2 has transmitted to the update device 10 is stored.
  • the updating apparatus 10 has a configuration in which the layer file combining unit 40 and the combining range designation unit 41 are deleted from the configuration of the first embodiment, and the record updating unit 50 is added.
  • the update device 10 may include at least one of the difference update unit 36, the update file holding unit 42, the layer file combining unit 52, and the combining range specification unit 41.
  • the update device 10 also has management information 7A in place of the management information 7.
  • FIG. 28 is a diagram showing an example of the management information 7A.
  • the management information 7A has a deletion target flag field in addition to all the fields included in the management information 7 in the first embodiment.
  • the initial value of the deletion target flag is “NO”, and is updated to “YES” based on the deletion target information received from the server device 2.
  • the record deletion unit 1400 performs deletion processing based on the value of the record for which the deletion target flag is set to “YES”.
  • the combining range designation unit 41 designates a range of process numbers to be combined by the server device 2.
  • the flag setting unit 51 determines the processing number to which the deletion target flag is to be added based on the specification of the combination range specification unit 41, and transmits it to the update device 10 as deletion target information.
  • the layer file synthesizing unit 40 synthesizes the layer file based on the command of the synthesis range designation unit 41 and uses it as rollup information.
  • the specific combining operation is the same as that of the first embodiment.
  • the flag setting unit 51 outputs information “process numbers 1 to 3” to the update device 10 as deletion target information.
  • the layer file combining unit 52 of the server device 2 performs file copy with “/ s / ver 4” as the copy source and “/ rollup” as the copy destination, for example. Then, the server device 2 transmits the rollup information “/ rollup” or less as the image file 309 to the update device 10.
  • the update device 10 When receiving the deletion target information from the server device 2, the update device 10 reflects the deletion target information on the management information 7A. Specifically, based on the deletion target information, the field of the deletion target flag of the management information 7A is rewritten from the initial value "NO" to "YES", and the deletion target flag is "YES" in the directory of the upper path of the processing number. Delete the stored data file. Further, the update device 10 deletes the contents of the directory of the lower path of the processing number “1”, and writes the roll-up information received from the server device 2 therein.
  • the update device 10 cancels the overlay mounting of the processing number for which the deletion target flag of the management information 7A is "YES", and the lower path for the youngest processing number for which the mount path of the processing number "1" is not targeted for deletion.
  • Rewrite to form an overlay mount For example, in the example shown in FIG. 28, the mount path of process number 1 is rewritten to “/ s / ver 4”.
  • the update device 10 has at least the same configuration as that of the first embodiment.
  • the server device 2 includes an update storage 48A storing a plurality of data files, a storage 3 storing an update file 307 to be transmitted to the update device 10, and a server communication unit 20 to transmit the update file 307 to the update device 10.
  • the overlay management unit 46, the overlay execution unit 35, and the update unit 33 that performs writing to the server container mount using the update file and updates at least a part of the plurality of data files.
  • the overlay execution unit 35 of the server device 2 further executes the second server overlay process in a state in which the first server overlay process is effective, and the image layer in the second server overlay process is subjected to the first overlay process.
  • the file path set in the container mount is set, and the overlay execution unit 35 of the server device 2 executes a plurality of overlay processes, and all of them are files set in the container mount in the previous overlay process in the image layer A path is set.
  • the server apparatus 2 uses the file path set as the container mount in the latest overlay processing created by the overlay execution unit 35 of the server apparatus 2 as a copy source, and the server apparatus 2 as a copy process that copies a merge path that is a predetermined file path.
  • the layer combining unit 40 merges a plurality of updates by the second update unit 33.
  • the server communication unit 20 transmits rollup information, which is information on a plurality of files copied to the merge path by the layer combining unit 40 of the server device 2, to the updating device 10.
  • the update device 10 When the update device 10 receives the rollup information from the server device 2, the update device 10 cancels the overlay processing and uses the rollup information in place of the plurality of data files. Therefore, since the server apparatus 2 performs the layer combining process instead of the updating apparatus 10, the processing load of the updating apparatus 10 can be reduced.
  • the update device 10 may receive only the rollup information without receiving the update file 307 from the server device 2. In this case, the update device 10 discards the information received from the previous server device 2 when receiving the rollup information, and uses the newly received rollup information instead. In this case, the update device 10 may not include the overlay execution unit 35 or the overlay management unit 46. According to this modification, the update device 10 does not perform the update process by itself, so the processing load can be further reduced.
  • FIGS. 29 and 30 A third embodiment of the update device according to the present invention will be described with reference to FIGS. 29 and 30.
  • FIG. In the following description, the same components as in the first embodiment will be assigned the same reference numerals and differences will be mainly described. The points that are not particularly described are the same as in the first embodiment.
  • the present embodiment differs from the first embodiment mainly in that the state of the ignition of the vehicle 1 is included in the update start condition.
  • FIG. 29 is a diagram showing the configuration of the update system in the third embodiment.
  • the update device 10 includes an ignition receiving unit 54 in addition to the configuration according to the first embodiment.
  • the ignition receiving unit 54 receives an operation of an ignition switch by an occupant of the vehicle 1, specifically, a signal obtained by switching on the ignition switch, and a signal obtained by switching off. For the transmission of this signal, a dedicated signal line may be used, or an in-vehicle network such as CAN may be used.
  • the update start determining unit 38 determines the state of the ignition switch received by the ignition receiving unit 54. For example, the update start determination unit 38 sets that the ignition switch is off as an additional condition.
  • FIG. 30 is a flowchart showing an update process of the data file 330 performed by the update device 10 in the third embodiment.
  • the flowchart shown in FIG. 30 is different from FIG. 22 in that S1002 is added.
  • S1002 which is executed when the configuration is determined in S1001
  • the update start determination unit 38 determines whether the ignition switch is off. If the update start determination unit 38 determines that the ignition switch is off, the process proceeds to S1200 and continues the processing as in the first embodiment. If the update start determination unit 38 determines that the ignition switch is on, the process returns to S1001.
  • the updating device 10 outputs an operation command to the updating unit 33 based on the reception result of the ignition receiving unit 54 that acquires the state of the ignition switch of the vehicle on which the updating device is mounted and the ignition receiving unit 54 And a unit 38. Therefore, it is possible to perform updating at the time of starting or stopping of the vehicle 1 with less influence on the operation of the vehicle 1.
  • FIGS. 31 and 32 A fourth embodiment of the update device according to the present invention will be described with reference to FIGS. 31 and 32.
  • FIG. In the following description, the same components as in the first embodiment will be assigned the same reference numerals and differences will be mainly described. The points that are not particularly described are the same as in the first embodiment.
  • the present embodiment differs from the first embodiment mainly in that the difference between the files is received to update the file.
  • FIG. 31 is a diagram showing the configuration of the update system in the fourth embodiment.
  • the update device 10 in the present embodiment further includes a difference update unit 36 in addition to the configuration in the first embodiment.
  • the update file 307 in the present embodiment may include the file itself as in the first embodiment etc., but the file itself is not included but the information indicating the difference with the file of the previous version is included. There is.
  • the update of the data file 330 using the latter information is hereinafter referred to as “differential update”.
  • the update file holding unit 42 since the above-mentioned difference information may be included in the update file 307 temporarily stored in the storage unit 151 by the update file holding unit 42, the update file holding unit 42 also serves as the difference information holding unit. I can call.
  • the difference update unit 36 performs difference update based on the operation command of the update unit 33.
  • the difference update unit 36 is bspatch, xdelta, or zdelta. Note that bspatch, xdelta and zdelta are open source software and are included in various Linux distributions.
  • a file obtained by converting the difference between the data file 330 of the old version and the data file 330 of the new version is a difference file.
  • the above-described bspatch and the like are programs for constructing the new version data file 330 using the old version data file 330 and the difference file. Specifically, with respect to the data file 330 held in the storage 48, using the update file 307 held by the update file holding unit 42, a specific path of the storage 48, in this case, the new data file 330 in the software update path 71. Perform processing to generate.
  • the difference file is smaller than the size of the original data file 330, so the amount of communication between the server device 2 and the update device 10 can be reduced.
  • FIG. 32 is a flowchart showing the operation of the difference update unit 36.
  • the difference update unit 36 first acquires a difference file based on the operation command of the update unit 33 (S1309), and acquires an old file (S1310). Then, the difference update unit 36 performs difference update processing to rewrite the old file to a new file using the difference file (S1311), writes the new file to the software update path (S1312), and ends the difference update processing shown in FIG. .
  • the update file 307 received from the server device 2 is difference data.
  • the update device 10 includes a difference update unit 36 that creates the updated data file 330 using the data file 330 stored in the storage unit 151 and the update file 307. Therefore, the amount of data of the update file 307 can be reduced, and the amount of communication between the server device 2 and the update device 10 can be reduced.
  • FIGS. 33 to 34 A fifth embodiment of the update device according to the present invention will be described with reference to FIGS. 33 to 34.
  • the same components as in the first embodiment will be assigned the same reference numerals and differences will be mainly described.
  • the points that are not particularly described are the same as in the first embodiment.
  • the present embodiment differs from the first embodiment mainly in that a certain restriction is imposed on rollback.
  • the update device 10 in the present embodiment includes management information 7B instead of the management information 7 in the first embodiment.
  • the operation of the rollback unit 47 is partially different as described below.
  • rollback commands there are two types of rollback commands that the updating device 10 receives from the server device 2: normal commands and forced commands.
  • normal commands rollback is possible within the limits described below.
  • forcible command as in the first embodiment, rollback to any version is possible.
  • a deletion prohibition flag described later may be set.
  • the deletion prohibition flag may express the presence or absence of the flag by ON / OFF, and may indicate the presence or absence of the flag according to the presence or absence of the deletion prohibition flag.
  • the creator of the update file 307 or the person who stores the update file 307 in the server apparatus 2 determines whether to add the deletion prohibition flag to the update file 307 or not.
  • There are various criteria for giving the deletion prohibition flag but it is conceivable to give the deletion prohibition flag, for example, when the update of important information, for example, the update of a map used for navigation etc. is included.
  • FIG. 33 is a diagram showing an example of management information 7B in the present embodiment.
  • the management information 7B includes, in addition to the configuration of the first embodiment, a field of a deletion prohibition flag indicating prohibition of deletion.
  • the initial value of the deletion prohibition flag is "NO", and deletion is not prohibited.
  • the deletion prohibition flag of the management information 7 B is rewritten to “YES” at the time of writing to the mount path.
  • deletion prohibition flags for the processing numbers "2" and "4" are given. Is set to "YES”.
  • FIG. 34 is a flowchart showing the operation of the rollback unit 47 in the present embodiment. Since the rollback processing itself is the same operation as that of the first embodiment, the description is omitted here, and the processing for determining to which processing number the rollback is to be performed will be described.
  • the rollback unit 47 receives a rollback instruction from the server device 2, the rollback unit 47 first determines whether the instruction is a forced instruction (S1401). If it is determined that the command is a compulsory command (S1401: YES), the rollback unit 47 performs rollback to the designated number.
  • the management information 7B is referred to and the highest number to which the deletion prohibition flag is attached is specified (S1403). For example, in the example shown in FIG. 33, since the deletion prohibition flag is attached to the process numbers “2” and “4”, “4” is specified as the highest order number.
  • the rollback unit 47 determines whether the number designated by the server device 2 is larger than the number identified in S1403 (S1404). If it is determined that the designated number is larger (S1404: YES), the rollback unit 47 proceeds to S1402 and performs rollback to the designated number. If it is determined that the designated number is equal to or less than the flagged topmost (S1404: NO), the rollback unit 47 performs rollback to the flagged topmost number (S1405). When the execution of S1402 or S1405 is completed, the rollback unit 47 ends the process shown in FIG.
  • the communication unit 31 receives the update prohibition file 307 and the deletion prohibition flag indicating the deletion possibility.
  • the updating unit 33 manages the presence / absence of the deletion prohibition flag for each container layer using the management information 7B.
  • the rollback unit 47 does not delete the container layer with the deletion prohibition flag by limiting the rollback number to the number higher than or equal to the highest number with the deletion prohibition flag, as shown in FIG. Therefore, as long as the compulsory instruction is not received, it is possible to hold the information of the important update with the deletion prohibition flag.

Abstract

This updating device comprises: a memory in which a plurality of data files are stored; a communication unit which receives updating files from a server device; an overlay management unit which sets a read-dedicated image layer containing a plurality of data files which is a file path of the memory, a read/write-enabled container layer which is a file path of the memory, and a container mount which is a file path in the memory; an overlay execution unit which constitutes the container mount as an superimposed file state with the image layer as the lower layer and the container layer as the upper layer, and which executes overlay processing in which the writing to the container mount is writing to the container layer; and an updating unit which writes to the container mount using updating files, updating at least some of a plurality of data files.

Description

更新装置、更新システムUpdate device, update system
 本発明は、更新装置、および更新システムに関する。 The present invention relates to an update device and an update system.
 近年、自動車の技術レベルの向上により、自動車の制御が電子制御装置(ECU:Electric Control Unit)により自動化され、高度化・ソフトウェア化が進んでいる。それに伴ってソフトウェア不具合に起因するリコ-ルも増加している。特に、ECUやIVI(In-Vehicle Infotainment)、TCU(Telematics Communication Unit)などのデバイスが多数車両に搭載されるようになってきており、そのソフト更新が重要である。このような状況のなか、これまで整備士が行っていた自動車のECUやIVIのソフトウェアの更新を、遠隔で更新するサービスへのニーズが高まっている。その中で、無線を用いて車載デバイスのソフトウェアを更新するOTA(Over The Air)への注目が高まっており、デバイスが高性能化に伴い搭載するソフトウェア規模の増大に対応する必要が生じている。少ないストレージを有効に活用するとともに、走行中にバックグラウンド更新を行うという、システムを停止させずにソフト更新を行うニーズも高い。特許文献1には、最新バージョンのブートローダを保存する更新作業用端末と、制御対象機器を無停止で制御する更新対象装置とを備え、前記更新対象装置は、ブートローダの実行領域である第1および第2のブートローダ領域と、前記第1および第2のブートローダ領域に対応した更新情報を持つブートローダ管理テーブルと、前記更新作業用端末からダウンロードした最新バージョンのブートローダを、前記ブートローダ管理テーブルを参照し前記更新情報に基づいて前回更新していないブートローダ領域に更新するブートローダ管理部とを有することを特徴とするソフトウェア更新システムが開示されている。 In recent years, with the improvement of the technical level of vehicles, control of vehicles has been automated by an electronic control unit (ECU: Electric Control Unit), and sophistication and softwareization have progressed. Along with that, the increase in software caused by software problems is also increasing. In particular, devices such as ECUs and IVI (In-Vehicle Infotainment) and TCU (Telematics Communication Unit) have come to be mounted on a large number of vehicles, and software update thereof is important. Under such circumstances, there is a growing need for a service for remotely updating car ECUs and IVI software updates that have been conducted by mechanics. Among them, OTA (Over The Air), which updates software for in-vehicle devices using wireless, is increasing in focus, and it is necessary to cope with the increase in the size of software installed in devices as the performance of devices increases. . There is also a strong need for software updates without stopping the system, such as effectively using less storage and performing background updates while driving. Patent Document 1 includes an update work terminal for storing the latest version of the boot loader, and an update target device for controlling the control target device without stopping, the first update target device being the execution region of the boot loader. The boot loader management table having a second boot loader area, update information corresponding to the first and second boot loader areas, and the latest version of the boot loader downloaded from the update work terminal, with reference to the boot loader management table A software update system is disclosed, comprising: a boot loader management unit that updates a boot loader area that has not been updated last time based on update information.
日本国特開2004-157767号公報Japanese Patent Application Laid-Open No. 2004-157767
 特許文献1に記載されている発明では、データの更新に広い記憶領域が必要となる。 In the invention described in Patent Document 1, a large storage area is required to update data.
 本発明の第1の態様による更新装置は、複数のデータファイルが格納される記憶部と、サーバ装置から更新ファイルを受信する通信部と、前記記憶部のファイルパスであり前記複数のデータファイルが含まれる読み込み専用のイメージレイヤ、前記記憶部のファイルパスであり読み書き可能なコンテナレイヤ、および前記記憶部のファイルパスであるコンテナマウントを設定するオーバーレイ管理部と、前記コンテナマウントを、前記イメージレイヤを下位レイヤとし前記コンテナレイヤを上位レイヤとして重ね合わせたファイル状態とし、前記コンテナマウントへの書き込み処理は前記コンテナレイヤへの書き込みとするオーバーレイ処理を実行するオーバーレイ実行部と、前記更新ファイルを用いて前記コンテナマウントへの書き込みを行い、前記複数のデータファイルの少なくとも一部を更新する更新部とを備える。
 本発明の第2の態様による更新システムは、ネットワークにより接続されるサーバ装置および更新装置を含む更新システムであって、前記更新装置は、複数のデータファイルが格納される記憶部と、前記サーバ装置から更新ファイルを受信する通信部と、前記記憶部のファイルパスであり前記複数のデータファイルが含まれる読み込み専用のイメージレイヤ、前記記憶部のファイルパスであり読み書き可能なコンテナレイヤ、および前記記憶部のファイルパスであるコンテナマウントを設定するオーバーレイ管理部と、前記コンテナマウントを、前記イメージレイヤを下位レイヤとし前記コンテナレイヤを上位レイヤとして重ね合わせたファイル状態とし、前記コンテナマウントへの書き込み処理は前記コンテナレイヤへの書き込みとするオーバーレイ処理を実行するオーバーレイ実行部と、前記更新ファイルを用いて前記コンテナマウントへの書き込みを行い、前記複数のデータファイルの少なくとも一部を更新する更新部とを備え、前記サーバ装置は、前記複数のデータファイルが格納されるサーバ記憶部と、前記更新装置に送信する前記更新ファイルが格納される更新ファイル記憶部と、前記更新装置に前記更新ファイルを送信するサーバ通信部と、前記サーバ記憶部のファイルパスであり前記複数のデータファイルが含まれる読み込み専用のサーバイメージレイヤ、前記サーバ記憶部のファイルパスであり読み書き可能なサーバコンテナレイヤ、および前記サーバ記憶部のファイルパスであるサーバコンテナマウントを設定するサーバオーバーレイ管理部と、前記サーバコンテナマウントが、前記サーバイメージレイヤを下位レイヤとし前記サーバコンテナレイヤを上位レイヤとして重ね合わせたファイル状態とし、前記サーバコンテナマウントへの書き込み処理は前記サーバコンテナレイヤへの書き込みとするサーバオーバーレイ処理を実行するサーバオーバーレイ実行部と、前記更新ファイルを用いて前記サーバコンテナマウントへの書き込みを行い、前記複数のデータファイルの少なくとも一部を更新するサーバ更新部とを備え、前記サーバオーバーレイ実行部は、第1の前記サーバオーバーレイ処理が有効な状態でさらに第2の前記サーバオーバーレイ処理を実行し、前記第2のサーバオーバーレイ処理における前記サーバイメージレイヤには、前記第1のサーバオーバーレイ処理における前記サーバコンテナマウントに設定されたファイルパスが設定され、前記サーバオーバーレイ実行部は、複数の前記サーバオーバーレイ処理を実行し、前記複数のサーバオーバーレイ処理ではいずれも、前記サーバイメージレイヤには直前の前記サーバオーバーレイ処理における前記サーバコンテナマウントに設定されたファイルパスが設定され、前記サーバ装置は、前記サーバオーバーレイ実行部が作成した最新の前記サーバオーバーレイ処理における前記サーバコンテナマウントに設定されたファイルパスをコピー元とし、所定のファイルパスであるマージパスをコピー先するコピー処理により前記サーバ更新部による複数回の更新をマージするサーバレイヤ合成部をさらに備え、前記サーバ通信部は、前記サーバレイヤ合成部が前記マージパスにコピーした複数のファイルの情報であるロールアップ情報を前記更新装置に送信し、前記更新装置は、前記サーバ装置から前記ロールアップ情報を受信すると、前記オーバーレイ処理を解除し前記複数のデータファイルに代えて前記ロールアップ情報を使用する。
The update apparatus according to the first aspect of the present invention is a storage unit in which a plurality of data files are stored, a communication unit that receives an update file from a server device, and a file path of the storage unit, the plurality of data files being An overlay management unit for setting a container mount, which is a read-only image layer included, a file path of the storage unit, which is readable and writable, and a file path of the storage unit, the container mount; The lower layer is a file state in which the container layer is superimposed on the upper layer, and the writing process on the container mount is an overlay execution unit that executes an overlay process of writing on the container layer, and the update file Write to the container mount There, and a update unit for updating at least a portion of said plurality of data files.
An update system according to a second aspect of the present invention is an update system including a server apparatus and an update apparatus connected by a network, wherein the update apparatus is a storage unit in which a plurality of data files are stored, and the server apparatus A communication unit that receives an update file from the storage unit, a read-only image layer that is the file path of the storage unit and that includes the plurality of data files, a read / write container layer that is the file path of the storage unit, and the storage unit Overlay management unit for setting a container mount, which is a file path, and the container mount in a file state in which the image layer is a lower layer and the container layer is an upper layer, and the writing process to the container mount is Write to the container layer The server apparatus includes: an overlay execution unit that executes a burley process; and an update unit that writes to the container mount using the update file and updates at least a part of the plurality of data files. Server storage unit in which the data file of the above is stored, an update file storage unit in which the update file to be transmitted to the update device is stored, a server communication unit for transmitting the update file to the update device, the server storage unit A read-only server image layer including the plurality of data files, a file path of the server storage unit, a readable and writable server container layer, and a server container mount that is the file path of the server storage unit; A server overlay management unit to set up, and Tenamount executes server overlay processing in which the server image layer is the lower layer and the server container layer is the upper layer and the file is in the file state, and the writing process to the server container mount is writing to the server container layer A server overlay execution unit; and a server update unit that writes to the server container mount using the update file and updates at least a part of the plurality of data files, the server overlay execution unit The second server overlay process is further executed in a state in which the first server overlay process is effective, and the server image layer in the second server overlay process is processed by the server controller in the first server overlay process. The file path set in the tena mount is set, the server overlay execution unit executes a plurality of the server overlay processes, and in any of the plurality of server overlay processes, the server overlay immediately before the server overlay on the server image layer The file path set in the server container mount in the process is set, and the server device uses the file path set in the server container mount in the latest server overlay process created by the server overlay execution unit as a copy source. The server communication unit further includes a server layer combining unit that merges a plurality of updates by the server updating unit by copy processing for copying a merge path that is a predetermined file path, and the server communication unit copy The rollup information which is the information of the plurality of files is transmitted to the update device, and when the update device receives the rollup information from the server device, the update process cancels the overlay processing and replaces the plurality of data files. Use the rollup information.
 本発明によれば、少ない記憶領域でデータを更新できる。 According to the present invention, data can be updated with a small storage area.
第1の実施の形態における更新システムの構成を示す図A diagram showing a configuration of an update system in the first embodiment 更新装置10のストレージ48に格納される情報を示す図Diagram showing information stored in the storage 48 of the update device 10 更新装置10のハードウエア構成図Hardware configuration of update device 10 サーバ装置2のハードウエア構成図Hardware configuration of server device 2 データファイル330を示す図Diagram showing data file 330 更新ファイル307の構成を示す図A diagram showing the structure of the update file 307 バイナリファイル310の構成を示す図Diagram showing the configuration of binary file 310 差分ファイル305の構成を示す図A diagram showing the structure of the difference file 305 差分データ306の構成を示す図A diagram showing the configuration of difference data 306 アーカイブファイル308の構成を示す図A diagram showing the structure of the archive file 308 レイヤイメージファイル309の構成を示す図Diagram showing the configuration of layer image file 309 ファイル情報の構成を示す図Diagram showing the configuration of file information オーバーレイマウントを説明する図Diagram explaining the overlay mount ファイル構成6を示す図Diagram showing file configuration 6 オーバーレイ251が形成された状態を示す図The figure which shows the state in which the overlay 251 was formed 多重マウントを説明する図Diagram illustrating multiple mounts 管理情報7の一例を示す図Diagram showing an example of management information 7 図18(a)は動作例の各バージョンにおけるデータファイルの一覧を示す図、図18(b)は動作例における更新ファイル307の内容物を示す図FIG. 18A shows a list of data files in each version of the operation example, and FIG. 18B shows the contents of the update file 307 in the operation example. 動作例におけるバージョン4への更新後のファイル構成を示す図Diagram showing the file configuration after updating to version 4 in the operation example 図19に示す状態からマージ処理を行った後のデータファイルの構成を示す図A diagram showing the configuration of a data file after performing merge processing from the state shown in FIG. 動作例におけるソフト実行パス70、ソフト更新パス71、およびレイヤ合成パス72の遷移を示す図Diagram showing transitions of the soft execution path 70, the soft update path 71, and the layer combining path 72 in the operation example データファイル330の更新処理を示すフローチャートFlow chart showing update process of data file 330 オーバーレイマウント処理の詳細を示すフローチャートFlow chart showing details of overlay mounting process マージ処理の詳細を示すフローチャートFlowchart showing details of merge processing ロールバック処理の詳細を示すフローチャートFlowchart showing details of rollback processing 変形例における更新の可否を問い合わせる画面表示の一例を示す図The figure which shows an example of the screen display which inquires the propriety of the update in a modification 第2の実施の形態における更新システムの構成を示す図The figure which shows the constitution of the renewal system in the form of 2nd execution 管理情報7Aの一例を示す図A diagram showing an example of management information 7A 第3の実施の形態における更新システムの構成を示す図The figure which shows the constitution of the renewal system in the form of 3rd execution 第3の実施の形態におけるデータファイル330の更新処理を示すフローチャートFlow chart showing update processing of data file 330 in the third embodiment 第4の実施の形態における更新システムの構成を示す図The figure which shows the constitution of the renewal system in the form of 4th execution 差分更新部36の動作を表すフローチャートFlowchart representing the operation of the difference update unit 36 第5の実施の形態における管理情報7Bの一例を示す図A diagram showing an example of management information 7B in the fifth embodiment 第5の実施の形態におけるロールバック部47の動作を表すフローチャートFlowchart representing the operation of the rollback unit 47 in the fifth embodiment
―第1の実施の形態―
 以下、図1~図25を参照して、本発明にかかる更新装置の第1の実施の形態を説明する。
-First embodiment-
Hereinafter, a first embodiment of the update device according to the present invention will be described with reference to FIGS. 1 to 25.
(システム構成)
 図1は、更新装置10を含む更新システムの構成を示す図である。更新システムは、車両1とサーバ装置2とから構成される。車両1とサーバ装置2は通信ネットワーク5を介して互いに通信する。通信ネットワーク5はインターネットを含んでもよい。更新装置10は移動する車両1に搭載されるので、通信ネットワーク5そのもの、または更新装置10から通信ネットワーク5に至る通信経路には無線通信が含まれる。
(System configuration)
FIG. 1 is a diagram showing the configuration of an update system including the update device 10. The update system includes the vehicle 1 and the server device 2. The vehicle 1 and the server device 2 communicate with each other via the communication network 5. The communication network 5 may include the Internet. Since the update device 10 is mounted on the moving vehicle 1, wireless communication is included in the communication network 5 itself or the communication path from the update device 10 to the communication network 5.
 サーバ装置2は、ストレージ165とサーバ通信部20とを備える。サーバ装置2のストレージ165には更新ファイル307が格納される。サーバ通信部20は、通信ネットワーク5を介して更新ファイル307を更新装置10に送信する。 The server device 2 includes a storage 165 and a server communication unit 20. The update file 307 is stored in the storage 165 of the server device 2. The server communication unit 20 transmits the update file 307 to the update device 10 via the communication network 5.
 更新装置10は、その機能として、更新管理部30と、通信部31と、更新部33と、実行部34と、オーバーレイ実行部35と、実行レイヤ指定部37と、更新開始判断部38と、更新レイヤ指定部39と、レイヤファイル合成部40と、合成範囲指定部41と、更新ファイル保持部42と、バックアップ部43と、ストレージ残量検出部44と、不要レイヤ削除部45と、管理情報7を有するオーバーレイ管理部46と、ロールバック部47と、HMI部49とを備える。更新装置10はストレージ48を備える。ストレージ48に格納される情報は次の図2を参照して後に説明する。ストレージ48は、不揮発性の記憶装置、たとえばハ-ドディスクドライブ、SSD(Solid State Drive)、フラッシュメモリ、光ディスクなどである。 The update apparatus 10 has, as its functions, an update management unit 30, a communication unit 31, an update unit 33, an execution unit 34, an overlay execution unit 35, an execution layer specification unit 37, and an update start determination unit 38. Update layer specification unit 39, layer file synthesis unit 40, synthesis range specification unit 41, update file storage unit 42, backup unit 43, storage remaining amount detection unit 44, unnecessary layer deletion unit 45, management information 7 includes an overlay management unit 46, a rollback unit 47, and an HMI unit 49. The update device 10 includes a storage 48. The information stored in the storage 48 will be described later with reference to FIG. The storage 48 is a non-volatile storage device such as a hard disk drive, a solid state drive (SSD), a flash memory, an optical disk or the like.
 更新管理部30は、通信部31を用いてサーバ装置2と通信を行い、更新装置10に保存されている後述するデータファイル330を更新する必要があるか否かを問い合わせる。更新管理部30は、更新の必要があると判断する場合は、更新ファイル307を通信部31を用いてダウンロードし、更新ファイル保持部42を用いて記憶部151に一時的に記憶する。そして更新管理部30は、ストレージ48に格納されたデータファイル330を更新ファイル307を用いて更新する。本実施の形態では、OMA(Open Mobile Alliance)において定義されるDM(Device Management)を想定しており、更新管理部30はOMAにおいて定義されるDMクライアントである。なおOMA DMとは、携帯電話のソフト更新で使用される技術の一種であり、ツリ-DBというツリー状のデータベースへのアクセスを介してサーバとクライアント間でソフト更新に必要な情報をやりとりする仕組みである。 The update management unit 30 communicates with the server device 2 using the communication unit 31, and inquires whether it is necessary to update a data file 330, which will be described later, stored in the update device 10. When it is determined that the update is necessary, the update management unit 30 downloads the update file 307 using the communication unit 31 and temporarily stores the update file 307 in the storage unit 151 using the update file holding unit 42. Then, the update management unit 30 updates the data file 330 stored in the storage 48 using the update file 307. In this embodiment, DM (Device Management) defined in OMA (Open Mobile Alliance) is assumed, and the update management unit 30 is a DM client defined in OMA. Note that OMA DM is a type of technology used for software update of mobile phones, and is a mechanism for exchanging information necessary for software update between a server and a client through access to a tree-like database called tree-DB. It is.
 通信部31は、サーバ装置2と通信する情報通信手段である。通信部31は、サーバ装置2から更新ファイル307を受信する。この受信に用いられる通信プロトコルは特に限定されないが、たとえばTCP/IP、UDP/IP、HTTP、HTTPSやFTPなどを用いることができる。更新部33は、後述の更新ファイル保持部42により記憶部151に保持された更新ファイル307を用いて、ストレージ48に格納されるデータファイル330を更新する。更新部33は、後述のソフト更新パス71に記載されたディレクトリを基点ディレクトリ、すなわちルートディレクトリとし、配下に配置するファイルやディレクトリに対してデータファイル330の更新処理を行う。 The communication unit 31 is an information communication unit that communicates with the server device 2. The communication unit 31 receives the update file 307 from the server device 2. Although the communication protocol used for this reception is not particularly limited, for example, TCP / IP, UDP / IP, HTTP, HTTPS, FTP, etc. can be used. The update unit 33 updates the data file 330 stored in the storage 48 using the update file 307 stored in the storage unit 151 by the update file storage unit 42 described later. The updating unit 33 uses a directory described in the software update path 71 described later as a root directory, that is, a root directory, and performs update processing of the data file 330 with respect to files and directories arranged thereunder.
 実行部34は、データファイル330に含まれるプログラムを後述する制御部152に実行させる。実行部34は、後述のソフト実行パス70に記載されたディレクトリを基点ディレクトリとして、配下に配置するファイルまたはディレクトリに対して実行処理を行う。なお更新部33と実行部34は、同時に動作が可能である。オーバーレイ実行部35は、OSであるLinux(登録商標)におけるオーバーレイマウント命令を実行する。具体的な動作は後に図13を参照して説明する。 The execution unit 34 causes the control unit 152 described later to execute the program included in the data file 330. The execution unit 34 executes an execution process on a file or directory located thereunder, with the directory described in the software execution path 70 described later as a base point directory. The update unit 33 and the execution unit 34 can operate at the same time. The overlay execution unit 35 executes an overlay mount instruction in Linux (registered trademark) which is an OS. The specific operation will be described later with reference to FIG.
 実行レイヤ指定部37は、実行部34が処理対象とするデータファイル330が格納されているディレクトリを指定する。前述の実行部34は、この指定が行われていることを前提として、実行レイヤ指定部37が指定するディレクトリ以下に格納されるプログラムを制御部152に実行させる。更新レイヤ指定部39は、更新部33が処理対象とするデータファイル330が格納されているディレクトリを指定する。前述の更新部33は、この指定が行われていることを前提として、更新レイヤ指定部39が指定するディレクトリ以下のデータファイル330を更新する。 The execution layer designation unit 37 designates a directory in which the data file 330 to be processed by the execution unit 34 is stored. The execution unit 34 causes the control unit 152 to execute a program stored under the directory designated by the execution layer designation unit 37 on the premise that this designation is performed. The update layer designation unit 39 designates a directory in which the data file 330 to be processed by the update unit 33 is stored. The aforementioned update unit 33 updates the data file 330 below the directory designated by the update layer designation unit 39 on the premise that this designation has been made.
 更新開始判断部38は、更新部33が動作を開始すべきタイミングを判断し、更新部33に動作指令を出力する。更新部33が動作を開始すべきタイミングとは、たとえばサーバ装置2からデータファイル330を受信するタイミング、サーバ装置2から指定されたタイミング、ストレージ残量検出部44から通知を受けたタイミングなどである。また更新部33が動作を開始すべきタイミングは、車両1のエンジンが始動したタイミングでもよい。 The update start determination unit 38 determines the timing at which the update unit 33 should start the operation, and outputs an operation command to the update unit 33. The timing at which the updating unit 33 should start operation is, for example, the timing of receiving the data file 330 from the server device 2, the timing designated by the server device 2, the timing of receiving notification from the storage residual amount detecting unit 44, etc. . Further, the timing at which the updating unit 33 should start operation may be timing at which the engine of the vehicle 1 is started.
 レイヤファイル合成部40は、合成範囲指定部41が指定する複数のレイヤを1つのレイヤに統合する。具体的な動作は図22を参照して後に説明する。合成範囲指定部41は、レイヤファイル合成部40が統合するレイヤを指定する。更新ファイル保持部42は、サーバ装置2から受信したデータファイル330をストレージ48に保存する。バックアップ部43は、レイヤファイル合成部52が生成した統合済みのレイヤをストレージ48に格納する。 The layer file combining unit 40 combines a plurality of layers specified by the combining range specification unit 41 into one layer. The specific operation will be described later with reference to FIG. The synthesis range designation unit 41 designates a layer to be integrated by the layer file synthesis unit 40. The update file holding unit 42 stores the data file 330 received from the server device 2 in the storage 48. The backup unit 43 stores the integrated layer generated by the layer file synthesis unit 52 in the storage 48.
 ストレージ残量検出部44は、ストレージ48の全容量と空き容量を算出し、空き容量があらかじめ定めた閾値よりも少ない場合に更新開始判断部38に通知を行う。不要レイヤ削除部45は、レイヤファイル合成部52で統合され、バックアップ部43でストレージなどにバックアップされた後、不要になったレイヤをストレージ48から削除する。 The storage remaining amount detection unit 44 calculates the total capacity and free capacity of the storage 48, and notifies the update start determination unit 38 when the free capacity is smaller than a predetermined threshold. The unnecessary layer deleting unit 45 deletes the unnecessary layer from the storage 48 after being integrated by the layer file synthesizing unit 52 and backed up by the backup unit 43 to a storage or the like.
 オーバーレイ管理部46は、後述するオーバーレイを後述する管理情報7を用いて複数管理する。なお以下では、多重オーバーレイを多重マウントとも呼ぶ。オーバーレイ管理部46の具体的な処理は図22を参照して説明する。ロールバック部47は、オーバーレイ管理部46および不要レイヤ削除部45を用いて、更新装置10のデータファイル330を初期状態に戻す。具体的にはロールバック部47は、後述するレコードのうち、一番最初に作成されたレコード以外に記録されたレイヤに含まれるデータファイルをストレージ48から削除し、さらに2番目以降に作成されたレコードを全て削除する。これにより、簡単に更新装置10を初期状態に戻すことができる。そのためロールバック部47は初期化部とも呼ぶことができる。 The overlay management unit 46 manages a plurality of overlays described later using management information 7 described later. Hereinafter, multiple overlays are also called multiple mounts. Specific processing of the overlay management unit 46 will be described with reference to FIG. The rollback unit 47 uses the overlay management unit 46 and the unnecessary layer deletion unit 45 to restore the data file 330 of the update device 10 to the initial state. Specifically, the rollback unit 47 deletes from the storage 48 the data file included in the layer recorded in the record other than the record created first among the records described later, and is created in the second or later. Delete all records. Thus, the updating device 10 can be easily returned to the initial state. Therefore, the rollback unit 47 can also be called an initialization unit.
 HMI部49は、更新装置10で動作するプログラムの出力情報の表示や、ユーザから受け付けた入力をプログラムに受け渡す、ユーザインタフェース機能を提供する。HMI部49は、更新部33や実行部34の処理結果やログ情報を後述するHMIに表示する。 The HMI unit 49 provides a display of output information of a program operated by the update device 10 and a user interface function of delivering input received from the user to the program. The HMI unit 49 displays processing results and log information of the updating unit 33 and the executing unit 34 on an HMI described later.
(ストレージ48の保持データ)
 図2は、更新装置10のストレージ48に格納される情報を示す図である。ストレージ48には、データファイル330、ソフト実行パス70、ソフト更新パス71、およびレイヤ合成パス72が格納される。ソフト実行パス70、ソフト更新パス71、およびレイヤ合成パス72は、更新装置10の動作に必要なパスの情報が格納される記憶領域である。ソフト実行パス70には、更新装置10の工場出荷時にあらかじめ値が格納されており、データファイル330の更新に伴って書き換えられる。詳しくは後述する。
(Held data of storage 48)
FIG. 2 is a diagram showing information stored in the storage 48 of the update device 10. As shown in FIG. In the storage 48, a data file 330, a soft execution path 70, a soft update path 71, and a layer combining path 72 are stored. The soft execution path 70, the soft update path 71, and the layer combining path 72 are storage areas in which information of paths necessary for the operation of the updating apparatus 10 is stored. A value is stored in advance in the software execution path 70 at the time of factory shipment of the update device 10, and the value is rewritten along with the update of the data file 330. Details will be described later.
(更新装置のハードウエア構成)
 図3は、更新装置10のハードウエア構成図である。更新装置10は、記憶部151と、制御部152と、ストレージ48と、ネットワークI/F153とバス154とHMI155とを備える。制御部152は中央制御装置、すなわちCPUである。制御部152は、ストレージ48に格納されたデータファイル330に含まれるプログラムを記憶部151に展開して実行する。記憶部151は、主記憶装置、たとえばRAMである。記憶部151は、制御部152が扱う情報を一時的に保存し、バス154を介してデータをやり取りする。
(Hardware configuration of update device)
FIG. 3 is a hardware block diagram of the update device 10. As shown in FIG. The update device 10 includes a storage unit 151, a control unit 152, a storage 48, a network I / F 153, a bus 154, and an HMI 155. The control unit 152 is a central control unit, that is, a CPU. The control unit 152 loads the program included in the data file 330 stored in the storage 48 in the storage unit 151 and executes the program. The storage unit 151 is a main storage device, for example, a RAM. The storage unit 151 temporarily stores information handled by the control unit 152, and exchanges data via the bus 154.
 ストレージ48は、前述のとおり不揮発性の記憶装置である。更新装置10は、ストレージ48に保存されているデータファイル330を更新することにより更新装置10の動作を変更することが可能である。ネットワークI/F153はバスを介して情報を無線で送受信するインタフェ-スであり、たとえばLTE、3G、4G、WiMax、WiFi、赤外線、CSMA/DAなどの通信規格に対応する。なおネットワークI/F153は、車両1の内部で使用されるネットワーク、たとえばCAN(Controller Area Network)のインタフェースであってもよい。 The storage 48 is a non-volatile storage device as described above. The update device 10 can change the operation of the update device 10 by updating the data file 330 stored in the storage 48. A network I / F 153 is an interface that wirelessly transmits and receives information via a bus, and supports, for example, communication standards such as LTE, 3G, 4G, WiMax, WiFi, infrared, and CSMA / DA. The network I / F 153 may be a network used inside the vehicle 1, for example, an interface of a CAN (Controller Area Network).
 HMI155は、情報の入出力が可能なハードウエアであり、たとえば映像の表示とタッチ操作が可能なタッチパネルである。ただし、情報の出力のみが可能な液晶ディスプレイなどと情報の入力のみが可能なボタンなどを組み合わせてHMI155を構成してもよい。なお更新装置10がHMI155を備えず、バス154やネットワークI/F153を介して接続される入出力装置をHMI155として使用してもよい。すなわちHMI155がユーザにより操作されるボタンやユーザへ情報を提示するディスプレイなどを備えなくてもよい。 The HMI 155 is hardware capable of inputting and outputting information, and is, for example, a touch panel capable of displaying an image and performing a touch operation. However, the HMI 155 may be configured by combining a liquid crystal display that can only output information and a button that can only input information. Note that the update device 10 may not include the HMI 155, and an input / output device connected via the bus 154 or the network I / F 153 may be used as the HMI 155. That is, the HMI 155 may not have a button operated by the user or a display for presenting information to the user.
 更新装置10はたとえば、ECU、TCU、IVI、MPU(Map Processing Unit)、ゲートウェイ、ディスプレイ、スマートフォン、フィーチャーフォン、タブレット端末、ヘッドマウントディスプレイなどである。なおIVIとはたとえばカーナビゲーション装置であり、ゲートウェイとは車両1に搭載される複数の通信ネットワークを接続し、相互のデータ通信を可能とする装置である。MPUとは、センサから取得した情報にもとづき走行路周辺の地図を作成する装置である。 The update device 10 is, for example, an ECU, a TCU, an IVI, an MPU (Map Processing Unit), a gateway, a display, a smartphone, a feature phone, a tablet terminal, a head mounted display, and the like. The IVI is, for example, a car navigation device, and the gateway is a device that connects a plurality of communication networks mounted on the vehicle 1 and enables mutual data communication. The MPU is a device that creates a map around the traveling route based on the information acquired from the sensor.
(サーバ装置のハードウエア構成)
 図4は、サーバ装置2のハードウエア構成図である。サーバ装置2は、記憶部161と、制御部162と、ストレージ165と、ネットワークI/F163とバス164とを備える。
(Hardware configuration of server device)
FIG. 4 is a hardware configuration diagram of the server device 2. The server device 2 includes a storage unit 161, a control unit 162, a storage 165, a network I / F 163, and a bus 164.
 制御部162は、中央制御装置、すなわちCPUである。制御部162は、不図示のROMに格納されたプログラムを不図示のRAMに展開して実行する。記憶部161は、主記憶装置、たとえばRAMである。記憶部161は制御部162が扱う情報を一時的に保存する。ストレージ165は、不揮発性の記憶装置、たとえばハードディスクドライブ、SSD、フラッシュメモリなどである。ネットワークI/F163はバス164を介して情報を無線で送受信するインタフェース、たとえばLTE、3G、4G、WiMax、WiFi、赤外線、CSMA/DAなどである。サーバ装置2は、ストレージ165に保存されている更新ファイル307をサーバ通信部20によりネットワークI/F163を介して更新装置10の通信部31に渡す。 The control unit 162 is a central control unit, that is, a CPU. The control unit 162 expands a program stored in a ROM (not shown) into a RAM (not shown) and executes the program. The storage unit 161 is a main storage device, for example, a RAM. The storage unit 161 temporarily stores information handled by the control unit 162. The storage 165 is a non-volatile storage device such as a hard disk drive, an SSD, or a flash memory. The network I / F 163 is an interface that transmits and receives information wirelessly via the bus 164, such as LTE, 3G, 4G, WiMax, WiFi, infrared, CSMA / DA, and the like. The server device 2 passes the update file 307 stored in the storage 165 by the server communication unit 20 to the communication unit 31 of the update device 10 via the network I / F 163.
(データファイル330)
 図5はデータファイル330を示す図である。ただし図5に示す構成は一例であり、本実施の形態におけるデータファイル330は、少なくとも1つのプログラム、すなわち後述する実行ファイル3101を含めばよい。すなわちデータファイル330には複数のプログラムが含まれてもよいし、プログラム以外のバイナリデータやテキストファイル311が含まれてもよい。またデータファイル330には、差分ファイル305やアーカイブファイル308、およびレイヤイメージファイル309が含まれてもよい。
(Data file 330)
FIG. 5 shows the data file 330. As shown in FIG. However, the configuration shown in FIG. 5 is an example, and the data file 330 in the present embodiment may include at least one program, that is, an executable file 3101 described later. That is, the data file 330 may include a plurality of programs, or may include binary data other than the programs and the text file 311. The data file 330 may also include a difference file 305, an archive file 308, and a layer image file 309.
 データファイル330は、LinuxやWindows(登録商標)などのOSが扱うことができるファイルやディレクトリの集合である。データファイル330には、バイナリファイル310、テキストファイル311、差分ファイル305、アーカイブファイル308、およびレイヤイメージファイル309を含めることができる。なお図5には図示されていないがディレクトリ構造が含まれてもよい。 The data file 330 is a set of files and directories that can be handled by an OS such as Linux or Windows (registered trademark). Data files 330 may include binary file 310, text file 311, difference file 305, archive file 308, and layer image file 309. Although not shown in FIG. 5, a directory structure may be included.
 テキストファイル311は、人間が直接読むことができるファイルであり文字コードのみから構成されるファイルである。バイナリファイル310は、テキストファイル311以外のすべてのファイルであり、MP3形式やWAV形式等の音声ファイル、PNG形式やGIF形式、IMG形式等の画像ファイル、ELF形式やa.out形式、COFF形式のアプリケーションファイルなどである。バイナリファイル310の構成は後に図7を参照して説明する。差分ファイル305はバイナリファイル310の一種であり、先に説明したとおりbspatchやxdeltaやzdeltaなどのプログラムにより生成される、2つのファイルの差をデータ化したファイルである。差分ファイル305の構成は後に図8を参照して説明する。 The text file 311 is a file that can be read directly by humans, and is a file composed of only character codes. The binary file 310 is all files other than the text file 311, and is an audio file such as MP3 format or WAV format, an image file such as PNG format or GIF format, IMG format, ELF format or a. For example, application files in the out format or COFF format. The configuration of the binary file 310 will be described later with reference to FIG. The difference file 305 is a type of binary file 310, and is a file in which the difference between the two files is digitized and generated by a program such as bspatch, xdelta or zdelta as described above. The configuration of the difference file 305 will be described later with reference to FIG.
 アーカイブファイル308は、1つまたは複数のファイルやディレクトリを1つのファイルに纏めたファイルであり、ZIP形式やtar形式、GZIP形式等のファイルである。アーカイブファイル308の構成は後に図10を参照して説明する。レイヤイメージファイル309は、後述のオーバーレイの仕組みにおいて使用可能なアーカイブファイルの一種であり、ISO形式等のファイルを想定している。レイヤイメージファイル309の構成は後に図11を参照して説明する。 The archive file 308 is a file in which one or more files and directories are combined into one file, and is a file in a ZIP format, tar format, GZIP format, or the like. The configuration of the archive file 308 will be described later with reference to FIG. The layer image file 309 is a type of archive file that can be used in the overlay mechanism described later, and is assumed to be a file of ISO format or the like. The configuration of the layer image file 309 will be described later with reference to FIG.
(更新ファイル307)
 図6は更新ファイル307の構成を示す図である。ただし図6に示す構成は一例であり、本実施の形態における更新ファイル307は、少なくとも1つの実行ファイル3101を更新可能であればよい。すなわち更新ファイル307は、実行ファイル3101そのもの、または実行ファイル3101を更新する差分ファイル305が含まれればよい。更新ファイル307には、バイナリファイル310、テキストファイル311、差分ファイル305、アーカイブファイル308、およびレイヤイメージファイル309を含めることができる。
(Update file 307)
FIG. 6 shows the structure of the update file 307. As shown in FIG. However, the configuration shown in FIG. 6 is an example, and the update file 307 in the present embodiment may be capable of updating at least one execution file 3101. That is, the update file 307 may include the executable file 3101 itself or the difference file 305 for updating the executable file 3101. The update file 307 can include a binary file 310, a text file 311, a difference file 305, an archive file 308, and a layer image file 309.
(バイナリファイル310)
 図7はバイナリファイル310の構成を示す図である。バイナリファイル310は前述のとおりテキストファイル311以外の全てのファイルである。バイナリファイル310には、実行ファイル3101や画像ファイル3102、データファイル3103、不可視ファイル3104、地図データファイル3105およびシステムファイル3106が含まれる。
(Binary file 310)
FIG. 7 shows the structure of the binary file 310. As shown in FIG. The binary file 310 is all files other than the text file 311 as described above. The binary file 310 includes an executable file 3101, an image file 3102, a data file 3103, an invisible file 3104, a map data file 3105 and a system file 3106.
 実行ファイル3101は、ELF形式やa.out形式、COFF形式等の、制御部152または制御部162で読み込んで実行可能なアプリケーションファイル、すなわちプログラムである。画像ファイル3102は、PNG形式やGIF形式、IMG形式等の静止画ファイル、またはMP4形式やAVI形式等の動画ファイルである。データファイル3103は、バイナリファイル310が実行されたときに生成されるデータである。不可視ファイル3104は、Linuxにおいて’.’(ドット)で始まるファイル名を持つファイルである。地図データファイル3105は、IVIやスマートフォーンなどの情報端末において、地図情報をバイナリデータ化したデータである。システムファイル3106は、LinuxやWindowsなどのOSを構成するファイル群である。 The executable file 3101 has an ELF format or a. It is an application file that can be read and executed by the control unit 152 or the control unit 162, that is, a program, such as an out format or a COFF format. The image file 3102 is a still image file such as PNG format, GIF format, or IMG format, or a moving image file such as MP4 format or AVI format. The data file 3103 is data generated when the binary file 310 is executed. The invisible file 3104 is'. It is a file with a file name beginning with '(dot). The map data file 3105 is data obtained by converting map information into binary data in an information terminal such as an IVI or smart phone. A system file 3106 is a file group that configures an OS such as Linux or Windows.
(差分ファイル305)
 図8は差分ファイル305の構成を示す図である。差分ファイル305はバイナリファイル310の一種であり、bspatchやxdeltaやzdeltaなどのプログラムにより生成される、2つのファイルの差をデータ化したファイルである。差分ファイル305は差分ヘッダ3051、オリジナルパス3052、および1つ以上の差分データ306から構成される。差分ヘッダ3051は、差分ファイル305を識別する情報やファイルサイズなど、差分更新部36で使用するデータである。オリジナルパス3052は、差分ファイル305を生成するときに使用した2つのファイルのうち、差分更新の元になるデータファイル330のファイル名である。
(Difference file 305)
FIG. 8 shows the structure of the difference file 305. As shown in FIG. The difference file 305 is a type of binary file 310, and is a file that is generated by a program such as bspatch, xdelta, zdelta, etc., and the difference between the two files is digitized. The difference file 305 includes a difference header 3051, an original path 3052, and one or more difference data 306. The difference header 3051 is data used by the difference update unit 36, such as information identifying the difference file 305 and the file size. The original path 3052 is the file name of the data file 330 that is the source of the difference update, of the two files used when generating the difference file 305.
 図9は差分データ306の構成を示す図である。差分データ306はオフセット3061、サイズ3062および更新データ3063から構成される。オフセット3061は、元になるデータファイルのどのファイル位置を更新するかを表す数値であり、先頭からのバイト数で表される。サイズ3062は、オフセット3061のファイル位置から何バイト書き換えるのかを示す数値である。更新データ3063は、オフセット3061とサイズ3062で示される範囲に書き込まれるデータ列である。 FIG. 9 is a diagram showing the configuration of the difference data 306. As shown in FIG. The difference data 306 is composed of an offset 3061, a size 3062 and update data 3063. The offset 3061 is a numerical value indicating which file position of the original data file is to be updated, and is represented by the number of bytes from the beginning. The size 3062 is a numerical value indicating how many bytes from the file position of the offset 3061 are to be rewritten. The update data 3063 is a data string to be written in the range indicated by the offset 3061 and the size 3062.
(アーカイブファイル308)
 図10は、アーカイブファイル308の構成を示す図である。アーカイブファイル308は、複数のファイルを1つのアーカイブファイルにまとめて管理することが可能なファイルであり、ZIP形式やtar形式、GZIP形式等のアーカイブファイルを想定している。ヘッダ320および1つ以上のデータ304から構成される。ヘッダ320は、アーカイブファイル308の管理するファイルがアーカイブファイル308のどこに格納されているかを示す情報やファイル名などの情報が格納されるヘッダである。データ304はデータファイル303が格納され、圧縮されていてもよい。
(Archive file 308)
FIG. 10 shows the structure of the archive file 308. As shown in FIG. The archive file 308 is a file capable of managing a plurality of files in one archive file and is assumed to be an archive file in a ZIP format, tar format, GZIP format or the like. It comprises a header 320 and one or more data 304. The header 320 is a header that stores information indicating where the file managed by the archive file 308 is stored in the archive file 308 and information such as a file name. The data 304 may store and compress the data file 303.
(レイヤイメージファイル309)
 図11は、レイヤイメージファイル309の構成を示す図である。レイヤイメージファイル309は、後述のオーバーレイの仕組みにおいて使用可能なアーカイブファイルの一種であり、ISO形式等のファイルを想定している。レイヤイメージファイル309はヘッダ321および1つ以上のファイル情報300とから構成される。アーカイブファイル308との違いは、アーカイブファイルのデータ304がファイル情報300であることであり、単純にファイルのバイナリデータだけでなく、そのファイルのパス301や種別302、アクセス権限303を含む。そのため、実際にレイヤイメージファイル309を個別のファイルに展開しなくとも、1つのレイヤイメージファイル内部に仮想的にディレクトリやファイル群がファイル構成6の内部に存在するとみなしてデータファイル330へのアクセスが可能である。
(Layer image file 309)
FIG. 11 shows the structure of the layer image file 309. As shown in FIG. The layer image file 309 is a type of archive file that can be used in the overlay mechanism described later, and is assumed to be a file of ISO format or the like. The layer image file 309 is composed of a header 321 and one or more file information 300. The difference from the archive file 308 is that the data 304 of the archive file is the file information 300, and includes not only the binary data of the file but also the path 301 of the file, the type 302 of the file, and the access authority 303. Therefore, even if the layer image file 309 is not actually expanded into individual files, access to the data file 330 is virtually assumed that a directory or file group exists inside the file configuration 6 in one layer image file. It is possible.
(ファイル情報300)
 図12は、ファイル情報の構成を示す図である。ファイル情報300はディレクトリやファイルのそれぞれに設定され、パス301と種別302とアクセス権限303とデータ304とから構成される。すなわちファイル情報300は、フォーマット形式のext2などにおけるiノードに格納される情報と、データそのものとから構成される。ただしディレクトリの場合はデータ304は存在しない。
(File information 300)
FIG. 12 shows the structure of file information. The file information 300 is set for each directory and file, and includes a path 301, a type 302, an access authority 303, and data 304. That is, the file information 300 is composed of the information stored in the inode in the format format ext2 and the like, and the data itself. However, in the case of the directory, the data 304 does not exist.
 パス301は、ファイルまたはディレクトリの絶対パスを示す文字列である。後述する図14の「7f209」を一例とすれば、「4d205」の配下に「7f209」が存在するので、パス301は“/4d/7f”である。種別302は、ファイルおよびディレクトリのいずれであるかを表す情報である。たとえば図14の「7f209」であればファイルなので種別302は’file’である。ただしあらかじめ定めたビット値、たとえばファイルであれば「0」、ディレクトリであれば「1」を格納してもよい。 The path 301 is a string indicating the absolute path of the file or directory. If "7f209" of FIG. 14 mentioned later is made into an example, since "7f209" exists under the "4d205", the path | pass 301 is "/ 4d / 7f." The type 302 is information indicating which of a file and a directory. For example, in the case of "7f 209" in FIG. 14, the file type is "file" because it is a file. However, a predetermined bit value may be stored, for example, "0" for a file, and "1" for a directory.
 アクセス権限303はファイルへのアクセス許可を表す情報であり、読み込み権限、書き込み権限、および実行権限の有無を表現する。たとえば伝統的な表記に従い3桁の数字で権限を表現し、読み込み権限があることを「4」で表し、書き込み権限があることを「2」で表し、実行権限があることを「1」で表し、1桁目はファイルやディレクトリの所有者、2桁目は所有者と同一グループに属する者、3桁目はその他のユーザの権限を表す。ただし本実施の形態ではユーザの区別を行わないので、3桁全てが同一の値をとる。 The access authority 303 is information representing the access permission to the file, and represents the presence of the read authority, the write authority, and the execution authority. For example, according to the traditional notation, the right is expressed by a 3-digit number, "4" indicates that you have read permission, "2" indicates that you have write permission, and "1" indicates that you have execute permission. The first digit indicates the owner of the file or directory, the second digit indicates the person who belongs to the same group as the owner, and the third digit indicates the authority of the other user. However, in the present embodiment, since the user is not distinguished, all three digits have the same value.
(更新装置10の動作)
 以下では更新装置10の動作を説明するが、はじめに前提となるオーバーレイについて説明する。次に多重オーバーレイについて説明し、最後に本実施の形態におけるファイル構成の一例、および更新の動作例を説明する。
(Operation of update device 10)
The operation of the update device 10 will be described below, but first, the overlay that is the premise will be described. Next, multiple overlays will be described, and finally, an example of file configuration in the present embodiment and an operation example of updating will be described.
(オーバーレイ)
 図13~図16を参照して、オーバーレイの機能を説明する。本実施の形態では、Linuxにおけるオーバーレイマウントを応用して、データファイル330を実行しながらそのデータファイル330をバックグラウンドで更新する仕組みを実現する。オーバーレイは、複数のディレクトリをいわばレイヤーとして重ね合わせて参照可能であり、書き込みはあるレイヤーに行うことで他のレイヤーに存在するファイルを変更することなく、あたかも書き込みが行われたかのように扱うことができる技術である。なおこのオーバーレイは、たとえばLinuxのカーネルに組み込まれている機能を利用して実現可能である。
(overlay)
The function of the overlay will be described with reference to FIGS. 13-16. In this embodiment, the overlay mount in Linux is applied to realize a mechanism for updating the data file 330 in the background while executing the data file 330. Overlays can be referred to by overlaying multiple directories as layers, so that writing can be performed on one layer and treated as if writing has been performed without changing files existing in another layer. It is a technology that can Note that this overlay can be realized, for example, by using a function built into the Linux kernel.
 図13を参照して、オーバーレイマウントについて説明する。オーバーレイ51は、コンテナマウント61、コンテナレイヤ62およびイメージレイヤ63から構成される。コンテナマウント61、コンテナレイヤ62およびイメージレイヤ63はそれぞれ任意のディレクトリを指定でき、コンテナレイヤ62およびイメージレイヤ63にはファイルなどが配されるが、コンテナマウント61にはファイルは配されない。Linuxのmountコマンドを用いてオーバーレイマウントを作成すると、これら3つのディレクトリが相互に関連付けされてオーバーレイを形成する。オーバーレイが形成されると、コンテナマウント61へのファイルアクセスが、イメージレイヤ63を上位レイヤ、コンテナレイヤ62を下位レイヤとして重ね合わせて形成されるファイル群へのアクセスとして扱われる。以下、具体的に説明する。 The overlay mount will be described with reference to FIG. The overlay 51 is composed of a container mount 61, a container layer 62 and an image layer 63. The container mount 61, the container layer 62, and the image layer 63 can each specify an arbitrary directory, and files are disposed in the container layer 62 and the image layer 63, but files are not disposed in the container mount 61. When creating an overlay mount using the Linux mount command, these three directories are associated with each other to form an overlay. When the overlay is formed, file access to the container mount 61 is treated as access to a file group formed by overlapping the image layer 63 as the upper layer and the container layer 62 as the lower layer. The details will be described below.
 イメージレイヤ63に指定されたディレクトリが「/local/P」であり、このディレクトリにはファイルA80と、ファイルC84とが格納されている。コンテナレイヤ62に指定されたディレクトリが「/local/Q」であり、このディレクトリにはファイルB82とファイルC85が格納されている。ファイルC84とファイルC85はファイル名が同一であるが内容は異なる。そしてコンテナマウント61に指定されたディレクトリが「/ol/R」である。オーバーレイを形成した後に「/ol/R」に格納されるファイル一覧を取得すると、図13に示すように、ファイルA81、ファイルB83,およびファイルC86が得られる。 The directory specified in the image layer 63 is "/ local / P", and the file A80 and the file C84 are stored in this directory. The directory specified in the container layer 62 is “/ local / Q”, and the file B 82 and the file C 85 are stored in this directory. The file C 84 and the file C 85 have the same file name but different contents. The directory specified for the container mount 61 is "/ ol / R". When the file list stored in “/ ol / R” is acquired after forming the overlay, as shown in FIG. 13, file A 81, file B 83, and file C 86 are obtained.
 ファイルA81の実体はファイルA80であり、ファイルB83の実体はファイルB82であり、ファイルC86の実体はファイルC85である。コンテナマウント61からファイルC84が参照されていない、換言するとファイルC84が隠蔽されているのは、2つのレイヤに同一名称のファイルが存在し、イメージレイヤ63よりもコンテナレイヤ62が優先されるからである。またコンテナマウント61に含まれるファイルA81,ファイルB83、およびファイルC86のいずれを編集した場合も、編集した情報はコンテナレイヤ62に格納され、イメージレイヤ63に格納されたファイルはその編集の影響を受けない。以上が、オーバーレイマウントの動作である。 The substance of the file A81 is the file A80, the substance of the file B83 is the file B82, and the substance of the file C86 is the file C85. The file C84 is not referenced from the container mount 61. In other words, the file C84 is hidden because files of the same name exist in the two layers and the container layer 62 has priority over the image layer 63. is there. Also, when any of the file A81, the file B83, and the file C86 included in the container mount 61 is edited, the edited information is stored in the container layer 62, and the file stored in the image layer 63 is affected by the editing. Absent. The above is the operation of the overlay mounting.
(多重オーバーレイ)
 以下ではファイルツリーであるファイル構成6を例として、前述のオーバーレイを前提とする多重オーバーレイを説明する。
(Multiple overlay)
In the following, multiple overlays on the premise of the above-described overlay will be described by taking file configuration 6, which is a file tree, as an example.
 図14はファイル構成6を示す図である。ファイル構成6では、説明の便宜のために、ディレクトリの名称には「d」を付し、ファイルの名称には「f」を付している。図14に示すように、ファイル構成6はroot201を起点とするツリー構造を有しており、最上層のルートディレクトリには、1d202、4d205、8d210、9d211、および11d213の5つのディレクトリが存在する。図14に示す例ではルートディレクトリにはファイルは存在しない。なおルートディレクトリに存在する複数のディレクトリが図14では図示左右方向の位置が大きく異なるのは作図上の理由、詳述すると後に示す図との整合のためである。 FIG. 14 shows a file configuration 6. In the file configuration 6, for convenience of explanation, the name of the directory is attached with "d", and the name of the file is attached with "f". As shown in FIG. 14, the file configuration 6 has a tree structure starting from the root 201, and five directories 1d 202, 4d 205, 8d 210, 9d 211, and 11d 213 exist in the root directory of the top layer. In the example shown in FIG. 14, no file exists in the root directory. A plurality of directories existing in the root directory are largely different in position in the horizontal direction in FIG. 14 for the reason for drawing and for the consistency with the drawings to be described later.
 1d202の配下には2f203および3f204が配置されている。4d205配下には、5d206および7f209が配置されている。5d206配下には6f207が配置されている。9d211配下には10f212が配置されている。また図示していないファイルは存在しない。たとえば8d210の配下にはファイルもディレクトリも存在しない。このファイル構成6を例としてオーバーレイマウントの具体的な動作を図15~図16を用いて説明する。 2f203 and 3f204 are arranged under 1d202. Under 4d205, 5d206 and 7f209 are arranged. 6f207 is arranged under 5d206. 10f 212 is disposed under 9 d 211. There are no files not shown. For example, there is no file or directory under 8d210. The specific operation of the overlay mount will be described with reference to FIGS. 15 to 16 taking the file configuration 6 as an example.
 図15は、オーバーレイ251が形成された状態を示す図である。オーバーレイ251では、コンテナマウント261に8d210が設定され、コンテナレイヤ262に1d202が設定され、イメージレイヤ263に4d205が設定されている。上述したように8d210には何らファイルが存在しなかったが、オーバーレイ251の形成により4d205および1d202を合わせたようなファイルおよびフォルダが8d210に格納されているように扱われる。すなわち図15において符号230で示すディレクトリ1d202の内容物と、符号231で示すディレクトリ4d205の内容物が、符号232で示すディレクトリ8d210の内容物のように扱われる。具体的には、8d210の配下には2f203、3f204、5d206、6f207、および7f209が配置されているかのように扱われる。 FIG. 15 is a diagram showing a state in which the overlay 251 is formed. In the overlay 251, 8d 210 is set in the container mount 261, 1d 202 is set in the container layer 262, and 4d 205 is set in the image layer 263. As described above, although there is no file in 8d 210, the formation of overlay 251 treats files and folders as if 4d 205 and 1d 202 were combined and stored in 8d 210. That is, the contents of directory 1 d 202 indicated by reference numeral 230 in FIG. 15 and the contents of directory 4 d 205 indicated by reference numeral 231 are treated like the contents of directory 8 d 210 indicated by reference numeral 232. Specifically, it is treated as if 2f203, 3f204, 5d206, 6f207, and 7f209 are placed under 8d210.
 図16は、オーバーレイマウントの多重マウントを説明する図である。多重マウントとは複数のオーバーレイの組み合わせであり、一方のコンテナマウントを他方のイメージレイヤとするものである。図16に示す例では、前述のオーバーレイ251に加えてオーバーレイ252を形成しており、このオーバーレイ252のイメージレイヤ266に8d210を指定し、コンテナレイヤ265に9d211を指定し、コンテナマウント264に11d213を指定している。そのため、コンテナマウント264には、あたかも8d210の配下のファイル群と9d211の配下のファイル群が重ね合わせられて存在しているように扱われる。 FIG. 16 is a diagram for explaining multiple mounting of overlay mounting. Multiple mounting is a combination of multiple overlays, one container mounting being the other image layer. In the example shown in FIG. 16, an overlay 252 is formed in addition to the overlay 251 described above, 8d 210 is designated in the image layer 266 of the overlay 252, 9d 211 is designated in the container layer 265, and 11d 213 is designated in the container mount 264. It is specified. Therefore, the container mount 264 is treated as if the file group subordinate to 8d 210 and the file group subordinate to 9 d 211 overlap and exist.
 具体的には11d213には、10f212、2f203、3f204、5d206、6f207および7f209が存在するように扱われる。ここで、コンテナマウント264に含まれる10f212を編集すると、実際には9d211配下の10f212が編集される。またコンテナマウント264の6f207を編集すると、4d205配下の6f207を編集することになるが、オーバーレイマウントの仕組みから、6f207と5d206が9d211にコピーされた上で、コピー後の9d211配下の6f207が編集される。つまり、コンテナマウント261への操作では、イメージレイヤ263の内容は編集されない。ロールバック部47はこれを利用し、最初の状態を復元することができる。以上が多重マウントの説明である。 Specifically, in 11d 213, 10f 212, 2f 203, 3f 204, 5d 206, 6f 207 and 7f 209 are treated as being present. Here, when the 10 f 212 included in the container mount 264 is edited, the 10 f 212 subordinate to 9 d 211 is actually edited. If 6f207 of container mount 264 is edited, 6f207 under 4d205 will be edited, but 6f207 and 5d206 are copied to 9d211, and 6f207 under 9d211 after copying is edited from the mechanism of overlay mounting Ru. That is, in the operation to the container mount 261, the contents of the image layer 263 are not edited. The rollback unit 47 can use this to restore the initial state. The above is the description of multiple mounting.
(管理情報7)
 図17は、オーバーレイ管理部46の管理情報7の一例を示す図である。管理情報7は、あらかじめ作成された18のレコードから構成され、各レコードは処理番号、下位パス、上位パス、およびマウントパスのフィールドを有する。処理番号のフィールドには、1からの連番が格納される。下位パスのフィールドにはイメージレイヤ63に設定されるパスが格納され、上位パスのフィールドにはコンテナレイヤ62に設定されるパスが格納され、マウントパスのフィールドにはコンテナマウント61に設定されるパスが格納される。この18のレコードは、大きく2つ、すなわち1~9のグループと10~18のグループに分けられ、順番にそれぞれが対応する。
(Management information 7)
FIG. 17 is a diagram showing an example of management information 7 of the overlay management unit 46. As shown in FIG. The management information 7 is composed of 18 records created in advance, and each record has fields of process number, lower path, upper path, and mount path. The serial number field stores the serial number from 1. The lower path field stores the path set in the image layer 63, the upper path field stores the path set in the container layer 62, and the mount path field sets the container mount 61 Is stored. The eighteen records are roughly divided into two groups, ie, 1 to 9 groups and 10 to 18 groups, each corresponding in turn.
 処理番号1~9のグループはディレクトリ名が全て「s」であり、処理番号10~18のグループはディレクトリ名が全て「t」である。すなわち処理番号「1」のレコードにおいてディレクトリ名を「s」から「t」に変更したものが処理番号「10」のレコードである。またそれぞれのグループにおいて、ある処理番号のマウントパスに格納されるパスと、次の処理番号の下位パスに格納されるパスは同一である。上位パスに格納されるパスは全て異なる。なお図17に示す例では各グループには9つの処理番号が含まれるが、各グループに含まれる処理番号の数は2以上であればいくつでもよいし、各グループで異なってもよい。また3以上のグループが存在してもよい。 In the groups of process numbers 1 to 9, all directory names are “s”, and in the groups of process numbers 10 to 18, all directory names are “t”. That is, in the record of the process number "1", the record of the process number "10" is obtained by changing the directory name from "s" to "t". In each group, the path stored in the mount path of a given process number and the path stored in the lower path of the next process number are the same. All paths stored in the upper path are different. Although nine processing numbers are included in each group in the example shown in FIG. 17, the number of processing numbers included in each group may be any number as long as it is two or more, and may be different in each group. There may also be three or more groups.
 図17に示す情報を一般化すると、各グループにおいて処理番号「k」の下位パスは、処理番号「k-1」のマウントパスと同一である。ただし「k」は「2」以上かつ各グループのレコード数以下の整数である。 When the information shown in FIG. 17 is generalized, the lower path of the process number “k” in each group is the same as the mount path of the process number “k−1”. However, "k" is an integer greater than or equal to "2" and less than or equal to the number of records in each group.
(動作例)
 上述した管理情報7を示す図17に加えて、図18~図21を参照して、更新装置10の動作を説明する。本動作例では、更新装置10のデータファイルが、バージョン1からバージョン4まで更新する動作、およびマージする動作を説明する。ただしここでいうバージョンとは便宜的なものであり、リビジョンやビルドなどと呼び変えてもよい。またここで説明する2以上のバージョンの変更をまとめて1つのバージョンの変更としてもよい。また本動作例では簡略化のためにデータファイルにはディレクトリを含めずファイルのみとして説明するが、前述のとおりデータファイルにはディレクトリ構造が含まれてもよい。なおバージョン1は、更新装置10の初期の、換言すると工場出荷時の構成である。
(Operation example)
The operation of the update device 10 will be described with reference to FIGS. 18 to 21 in addition to FIG. 17 showing the management information 7 described above. In this operation example, an operation of updating the data file of the update device 10 from version 1 to version 4 and an operation of merging are described. However, the version mentioned here is for convenience and may be called a revision or a build. Also, the changes of two or more versions described here may be combined into one version of change. Further, in the present operation example, the data file is described as only the file without including the directory for simplification, but as described above, the data file may include the directory structure. Version 1 is the initial configuration of the updating apparatus 10, in other words, the configuration at the time of shipment from the factory.
 図18(a)は、動作例の各バージョンにおけるデータファイルの一覧を示す図であり、図18(b)は、動作例における更新ファイル307の内容物を示す図である。全てのバージョンのデータファイルはファイルのみから構成され、先頭の1文字がファイル名を模式的に表し、次の1文字がファイルのバージョンを表す。たとえば「A1」はファイル「A」のバージョン「1」を示し、「A1」と「A2」はファイル名が同一でバージョンが異なるファイルを示す。また図中の丸は、直前のバージョンからの変更点を示す。 FIG. 18A is a view showing a list of data files in each version of the operation example, and FIG. 18B is a view showing contents of the update file 307 in the operation example. Data files of all versions consist of files only, with the first character schematically representing the file name and the next character representing the file version. For example, “A1” indicates version “1” of file “A”, and “A1” and “A2” indicate files having the same file name but different versions. Also, circles in the figure indicate changes from the previous version.
 図18(a)に示すように、バージョン1のデータファイルはA1とB1から構成される。バージョン2のデータファイルは、ファイルCが追加されて、A1とB1とC1とから構成される。バージョン3のデータファイルは、ファイルAが更新されて、A2とB1とC1とから構成される。バージョン4のデータファイルは、ファイルBが更新されファイルDが追加されて、A2とB2とC1とD1とから構成される。図18(b)に示すように、更新装置10が1番目に受信する更新ファイル307の内容物はC1、2番目の更新ファイル307内容物はA2、3番目の更新ファイル307内容物はB2およびD1である。 As shown in FIG. 18A, the version 1 data file is composed of A1 and B1. The version 2 data file is composed of A1, B1 and C1 with the addition of file C. The version 3 data file is constructed by updating file A and consisting of A2, B1 and C1. The data file of version 4 is composed of A2, B2, C1, and D1 with file B updated and file D added. As shown in FIG. 18B, the contents of the update file 307 that the update device 10 receives first are C1, the contents of the second update file 307 are A2, the contents of the second update file 307 are B2, and It is D1.
 図19は、動作例におけるバージョン4への更新後のファイル構成を示す図である。図19に示すファイル構成には、図17に示すそれぞれのパス、すなわちディレクトリが含まれる。さらにディレクトリ「/s/dif1-2」の配下にはファイル「C1」が配され、ディレクトリ「/s/dif2-3」の配下にはファイル「A2」が配され、ディレクトリ「/s/dif3-4」の配下にはファイル「B2、D1」が配され、ディレクトリ「/s/ver1」の配下にはファイル「A1,B1」が配される。他のディレクトリにはファイルが配されていない。 FIG. 19 is a diagram showing the file configuration after updating to version 4 in the operation example. The file configuration shown in FIG. 19 includes the respective paths shown in FIG. 17, that is, directories. Furthermore, the file "C1" is placed under the directory "/ s / dif1-2", the file "A2" is placed under the directory "/ s / dif2-3", and the directory "/ s / dif3-" is placed. Files "B2, D1" are placed under "4.", and files "A1, B1" are placed under the directory "/ s / ver1". There are no files in other directories.
 図19において、ルートディレクトリには「s」と「t」の2つの対称的なディレクトリが存在する。後述するようにいずれか一方のディレクトを使って更新を行い、所定の条件をみたすと使用するディレクトリを変更して更新を継続する。そのため以下では、更新に使用している「s」または「t」のディレクトリを「使用しているサイド」と呼び、他方を「使用していないサイド」、または「逆側のサイド」とも呼ぶ。以下ではまず更新処理を説明し、次にマージ処理を説明する。 In FIG. 19, there are two symmetrical directories “s” and “t” in the root directory. As described later, update is performed using one of the directories, and when a predetermined condition is satisfied, the directory to be used is changed and the update is continued. Therefore, in the following, the directory of "s" or "t" used for updating is referred to as "using side", and the other is also referred to as "not using side" or "opposite side". In the following, the update process will be described first, and then the merge process will be described.
(動作例|更新処理)
 図21は、動作例におけるソフト実行パス70、ソフト更新パス71、およびレイヤ合成パス72の遷移を示す図である。以下では図19も参照して説明を続ける。更新装置10の工場出荷時には、ソフト実行パス70には「/s/ver1」が設定され、管理番号が「1」に設定される。また更新装置10のデータファイルは、「/s/ver1」の配下にファイル「A1,B1」が配されているのみで、図19に示すほかのディレクトリには何らファイルが配されていない。そして更新装置10の実行部34は、ソフト実行パス70に記載の「/s/ver1」以下のファイル、すなわちファイル「A1,B1」を実行する。
(Operation example | Update process)
FIG. 21 is a diagram showing transitions of the soft execution path 70, the soft update path 71, and the layer combining path 72 in the operation example. The description will be continued below with reference to FIG. When the update device 10 is shipped from the factory, “/ s / ver1” is set in the software execution path 70, and the management number is set to “1”. Further, the data file of the update device 10 is only the files “A1, B1” placed under “/ s / ver1”, and no files are placed in the other directories shown in FIG. Then, the execution unit 34 of the update device 10 executes the file of “/ s / ver1” or less described in the software execution path 70, that is, the file “A1, B1”.
 この状態でサーバ装置2から更新ファイル307を受信すると、更新装置10は次のようにオーバーレイマウントを行う。すなわち更新装置10は、管理情報7の管理番号が「1」のレコードの記載に基づき、下位パスのフィールドに記載の「/s/ver1」をイメージレイヤとし、上位パスのフィールドに記載の「/s/dif1-2」をコンテナレイヤとし、マウントパスのフィールドに記載の「/s/ver2」をコンテナマウントとしてオーバーレイマウントを行う。 When the update file 307 is received from the server device 2 in this state, the update device 10 performs overlay mounting as follows. That is, based on the description of the record in which the management number of the management information 7 is “1”, the updating apparatus 10 sets “/ s / ver1” described in the field of the lower path as the image layer, and “// described in the field of the upper path Perform overlay mounting with s / dif1-2 "as the container layer and" / s / ver2 "described in the field of mount path as container mount.
 そして更新装置10は、受信した1つ目の更新ファイル307をコンテナマウントである「/s/ver2」に書き込む。1つめの更新ファイル307の内容物は図18(b)の1行目に示すようにファイル「C1」のみである。オーバーレイマウントの機能により、コンテナマウントへの書き込みはコンテナレイヤである「/s/dif1-2」への書き込みとなるので、「/s/dif1-2」にファイル「C1」が書き込まれる。この書き込みが行われている最中もファイル「A1,B1」の実行は継続している。換言するとこの書き込みはバックグラウンドで行われるバックグラウンド更新である。 Then, the update device 10 writes the received first update file 307 in the container mount “/ s / ver2”. The content of the first update file 307 is only the file "C1" as shown in the first line of FIG. 18 (b). The overlay mount function writes the container mount "/ s / dif1-2", so the file "C1" is written to "/ s / dif1-2". Even while this writing is being performed, execution of the file "A1, B1" is continued. In other words, this write is a background update that takes place in the background.
 その後、プログラムの実行が終了して更新の反映が可能になると、更新装置10はソフト実行パス70を現在のマウントパスである「/s/ver2」に書き換えて、「/s/ver2」に含まれるファイル「A1,B1,C1」を実行部34に実行させる。なおこの3つのファイルのうち、先の2つは「/s/ver1」に実体が存在し、最後の1つは「/s/dif1-2」に実体が存在する。このようにして、図18(a)の2行目に示すようにバージョン2のファイル「A1,B1,C1」が実行部34によって実行される。 After that, when the program execution is finished and the update can be reflected, the update device 10 rewrites the software execution path 70 to "/ s / ver2" which is the current mount path, and is included in "/ s / ver2". The execution unit 34 is made to execute the file “A1, B1, C1” to be obtained. Among the three files, the first two have an entity in "/ s / ver1", and the last one has an entity in "/ s / dif1-2". Thus, as shown in the second line of FIG. 18A, the version “2” files “A1, B1, C1” are executed by the execution unit.
 その後、更新装置10がサーバ装置2から2つ目の更新ファイル307を受信すると、更新装置10は次のように2つ目のオーバーレイマウントを行う。すなわち更新装置10は、管理情報7の番号が「2」のレコードの記載に基づき、下位パスのフィールドに記載の「/s/ver2」をイメージレイヤとし、上位パスのフィールドに記載の「/s/dif2-3」をコンテナレイヤとし、マウントパスのフィールドに記載の「/s/ver3」をコンテナマウントとしてオーバーレイマウントを行う。 Thereafter, when the update device 10 receives the second update file 307 from the server device 2, the update device 10 performs the second overlay mounting as follows. That is, based on the description of the record with the management information 7 number “2”, the update device 10 sets “/ s / ver2” described in the lower path field as an image layer, and “/ s” described in the upper path field Perform overlay mounting with / dif2-3 "as the container layer and" / s / ver3 "described in the field of mount path as the container mount.
 そして更新装置10は、受信した2つ目の更新ファイル307をコンテナマウントである「/s/ver3」に書き込む。2つめの更新ファイル307の内容物は図18(b)の2行目に示すようにファイル「A2」のみである。オーバーレイマウントの機能により、コンテナマウントへの書き込みはコンテナレイヤである「/s/dif2-3」への書き込みとなるので、「/s/dif2-3」にファイル「A2」が書き込まれる。この書き込みが行われている最中もファイル「A1,B1,C1」の実行は継続している。換言するとこの書き込みはバックグラウンドで行われるバックグラウンド更新である。 Then, the update device 10 writes the received second update file 307 in the container mount “/ s / ver3”. The content of the second update file 307 is only the file "A2" as shown in the second line of FIG. 18 (b). The overlay mount function writes the container mount "/ s / dif2-3", so the file "A2" is written to "/ s / dif2-3". The execution of the file "A1, B1, C1" continues even while this writing is being performed. In other words, this write is a background update that takes place in the background.
 その後、イグニッションのオフなどにより更新の反映が可能になると、更新装置10はソフト実行パス70を現在のマウントパスである「/s/ver3」に書き換えて、「/s/ver3」に含まれるファイル「A2,B1,C1」を実行部34に実行させる。なおこの3つのファイルは順に、「/s/dif2-3」、「/s/ver1」、「/s/dif1-2」に存在する。なお「/s/ver1」にはファイル「A1」が存在するが、同じファイル名Aであるファイル「A2」がコンテナレイヤである「/s/dif2-3」に存在するので、ファイル「A1」の存在は隠蔽される。このようにして、図18(a)の3行目に示すようにバージョン3のファイル「A2,B1,C1」が実行部34によって実行される。 After that, when it becomes possible to reflect the update by turning off the ignition, etc., the update device 10 rewrites the software execution path 70 to "/ s / ver3" which is the current mount path, and the file included in "/ s / ver3" The execution unit 34 is made to execute “A2, B1, C1”. Note that these three files exist in order "/ s / dif2-3", "/ s / ver1", and "/ s / dif1-2". The file "A1" exists in "/ s / ver1", but the file "A2" having the same file name A exists in the container layer "/ s / dif2-3", so the file "A1" is The presence of is hidden. Thus, as shown in the third line of FIG. 18A, the version “3” file “A2, B1, C1” is executed by the execution unit.
 その後、更新装置10がサーバ装置2から3つ目の更新ファイル307を受信すると、更新装置10は3つ目のオーバーレイマウントを行う。動作の詳細は繰り返しになるので省略する。そして更新装置10は、受信した3つ目の更新ファイル307をコンテナマウントである「/s/ver4」に書き込む。これにより、「/s/dif3-4」にファイル「B2,D1」が書き込まれ、図19に示すファイル構成となる。 Thereafter, when the update device 10 receives the third update file 307 from the server device 2, the update device 10 performs the third overlay mount. The details of the operation will be omitted since they will be repeated. Then, the update device 10 writes the received third update file 307 in the container mount “/ s / ver 4”. Thus, the file "B2, D1" is written to "/ s / dif3-4", and the file configuration shown in FIG. 19 is obtained.
 その後、イグニッションのオフなどにより更新の反映が可能になると、更新装置10はソフト実行パス70を現在のマウントパスである「/s/ver4」に書き換えて、「/s/ver4」に含まれるファイル「A2,B2,C1,D1」を実行部34に実行させる。なおこの3つのファイルは順に、「/s/dif2-3」、「/s/dif3-4」、「/s/dif1-2」、「/s/dif3-4」に存在する。このようにして、図18(a)の4行目に示すようにバージョン3のファイル「A2,B2,C1,D1」が実行部34によって実行される。以上が更新処理の説明である。次にマージ処理を説明する。 After that, when it becomes possible to reflect the update by turning off the ignition, etc., the update device 10 rewrites the software execution path 70 to "/ s / ver4" which is the current mount path, and the file included in "/ s / ver4" The execution unit 34 is made to execute “A2, B2, C1, D1”. The three files are, in order, "/ s / dif2-3", "/ s / dif3-4", "/ s / dif1-2", and "/ s / dif3-4". Thus, the execution unit 34 executes the version 3 file "A2, B2, C1, D1" as shown in the fourth line of FIG. 18A. The above is the description of the update process. Next, merge processing will be described.
(動作例|マージ処理)
 図20は、図19に示す状態からマージ処理を行った後のデータファイルの構成を示す図である。マージ処理とは、複数のレイヤを統合する処理であり、具体的には複数のディレクトリに分散していたファイルを1つのディレクトリに集め、さらに同一ファイル名の古い版のファイルを削除する処理である。図20において例示するマージ処理は、上述した更新処理によりバージョン4に更新され複数のディレクトリに分散しているファイルを「/t/ver1」に統合している。図19ではファイルAの旧バージョンであるファイル「A1」およびファイル「B1」も存在していたが、図20ではこれらは削除されている。
(Operation example | Merge process)
FIG. 20 is a diagram showing the configuration of a data file after the merge process has been performed from the state shown in FIG. The merge process is a process of integrating a plurality of layers, specifically, a process of collecting files distributed in a plurality of directories into one directory and further deleting an older version file of the same file name. . In the merge processing illustrated in FIG. 20, files updated to version 4 by the above-described update processing and distributed to a plurality of directories are integrated into “/ t / ver1”. In FIG. 19, the file “A1” and the file “B1” which are old versions of the file A also exist, but they are deleted in FIG.
 このマージ処理は、必要なファイルを1つのディレクトリに集約する第1の処理と、不要なファイルを削除する第2の処理とに分けられる。第1の処理は、処理番号が示すマウントパス、すなわち「/s/ver4」のデータファイルを、逆サイドのバージョン1のディレクトリである「/t/ver1」にコピーすることで行われる。この第1の処理をOSへの動作指令を入力するシェルへの入力で表現すると「cp /s/ver4 /t/ver1」に相当する。すなわちマージ処理においてファイル「A1、B1」をコピー対象から除外する処理は不要である。この理由は以下のとおりである。すなわちコンテナマウントへのアクセスは、イメージレイヤを上位レイヤ、コンテナレイヤを下位レイヤとして重ね合わせて形成されるファイル群へのアクセスとして扱われ、同一の名称を有するファイルは、イメージレイヤに存在するファイルのみが参照されるからである。 This merge process is divided into a first process of collecting necessary files into one directory and a second process of deleting unnecessary files. The first process is performed by copying the mount path indicated by the process number, that is, the data file of “/ s / ver 4” to “/ t / ver 1” which is the version 1 directory on the reverse side. This first process corresponds to "cp / s / ver4 / t / ver1" when it is expressed by an input to the shell for inputting an operation command to the OS. That is, the process of excluding the file “A1, B1” from the copy target in the merge process is unnecessary. The reason is as follows. That is, access to the container mount is treated as access to a file group formed by overlapping the image layer as the upper layer and the container layer as the lower layer, and files having the same name are only files existing in the image layer Is referred to.
 第2の処理は、処理番号が示すサイドに存在するファイルをすべて削除することで行われる。この第2の処理をOSへの動作指令を入力するシェルへの入力で表現すると「rm -rf /s」に相当する。なお例示したコマンドはディレクトリも削除するものであるが、ファイルだけを削除してもよい。 The second process is performed by deleting all files existing on the side indicated by the process number. This second process corresponds to “rm −rf / s” when it is expressed by an input to a shell for inputting an operation command to the OS. Although the illustrated command also deletes the directory, only the file may be deleted.
(フローチャート|メイン処理)
 図22は更新装置10が実行するデータファイル330の更新処理を示すフローチャートである。以下に説明する各ステップの実行主体は、更新装置10の制御部152である。更新部33は、更新装置10が起動すると図22に示す動作を開始し、図22に示す動作が終了すると再び図22に示す動作を開始する。
(Flowchart | Main processing)
FIG. 22 is a flowchart showing the process of updating the data file 330 performed by the updating apparatus 10. The execution subject of each step described below is the control unit 152 of the update device 10. The updating unit 33 starts the operation shown in FIG. 22 when the updating device 10 is activated, and starts the operation shown in FIG. 22 again when the operation shown in FIG. 22 is completed.
 更新装置10は、まず更新開始判断部38を用いて更新を開始すべきか否かを判断する(S1001)。まだ更新を開始しないと判断する場合はS1001に留まる。更新を開始すべきと判断する場合は、オーバーレイマウント処理(S1200)を実行し、更新処理(S1013)を実行する。オーバーレイマウント処理(S1200)の動作フローは後に図23を参照して説明する。S1013の更新処理とは、受信した更新ファイル307のソフト更新パス71への書き込みである。 The update device 10 first uses the update start determination unit 38 to determine whether the update should be started (S1001). If it is determined that the update is not started yet, the process remains at S1001. When it is determined that the update should be started, the overlay mounting process (S1200) is performed, and the update process (S1013) is performed. The operation flow of the overlay mounting process (S1200) will be described later with reference to FIG. The update process of S1013 is the writing of the received update file 307 into the software update path 71.
 次に更新装置10は、ストレージ48の未使用領域が所定の割合以下であるか否かを判断し(S1014)、所定の割合以下であると判断するとマージ処理(S1100)を実行する。マージ処理(S1100)の動作フローは後に図24を参照して説明する。未使用領域が所定の割合より多いと判断する場合は(S1014:NO)、更新装置10は処理番号が規定に達しているか否か、具体的には処理番号が各グループの末尾に達しているか否かを判断する(S1015)。たとえば図17に示す例では、処理番号が9または18の場合にS1015が肯定判断される。処理番号が規定値に達していると判断する場合はマージ処理(S1100)を実行し、処理番号が規定値に達していないと判断する場合はS1016に進む。 Next, the update device 10 determines whether the unused area of the storage 48 is less than or equal to a predetermined ratio (S1014), and executes merge processing (S1100) when determining that the unused area is less than or equal to the predetermined ratio. The operation flow of the merge process (S1100) will be described later with reference to FIG. If it is determined that the unused area is larger than the predetermined ratio (S1014: NO), the update device 10 determines whether the process number has reached a specified number, specifically, whether the process number has reached the end of each group It is determined whether or not it is (S1015). For example, in the example shown in FIG. 17, when the process number is 9 or 18, an affirmative determination is made in S1015. If it is determined that the process number has reached the specified value, merge processing (S1100) is executed, and if it is determined that the process number has not reached the specified value, the process proceeds to S1016.
 S1016では更新装置10は、マウントパスをソフト実行パス70に設定し(S1016)、ソフト更新パス71を無効化する(S1017)。以上がデータファイル330の更新処理である。 In S1016, the updating apparatus 10 sets the mount path to the software execution path 70 (S1016), and invalidates the software update path 71 (S1017). The above is the update process of the data file 330.
(フローチャート|オーバーレイマウント処理)
 図23は、図22のS1200に示すオーバーレイマウント処理の詳細を示すフローチャートである。更新装置10はまず、管理情報7における現在の処理番号の下位パスのフィールドに記載されたパスを読み取り、そのパスを読み取り専用に設定する(S1203)。次に管理情報7における現在の処理番号の上位パスのフィールドに記載されたパスを読み取り、そのパスを読み書き可に設定する(S1204)。次に更新装置10は、管理情報7における現在の処理番号のマウントパスのフィールドに記載されたパスを読み取り、そのパスを読み書き可能に設定する(S1205)。
(Flowchart | overlay mounting process)
FIG. 23 is a flowchart showing details of the overlay mounting process shown in S1200 of FIG. First, the update device 10 reads the path described in the field of the lower path of the current processing number in the management information 7, and sets the path as read only (S1203). Next, the path described in the field of the upper path of the current processing number in the management information 7 is read, and the path is set to read / write (S1204). Next, the update device 10 reads the path described in the field of the mount path of the current processing number in the management information 7, and sets the path as readable and writable (S1205).
 次に更新装置10は、S1203、S1204、およびS1205において属性を設定したそれぞれのパスをイメージレイヤ、コンテナレイヤ、およびコンテナマウントとするオーバーレイを形成する(S1206)。次に更新装置10は、マウントパス、すなわちS1205において属性を設定したパスをソフト更新パス71に設定する(S1207)。最後に更新装置10は、処理番号をインクリメント、すなわち「1」だけ増加させて(S1208)、図23に示すオーバーレイマウント処理を終了する。 Next, the updating apparatus 10 forms an overlay in which the paths for which the attributes are set in S1203, S1204, and S1205 are an image layer, a container layer, and a container mount (S1206). Next, the update device 10 sets a mount path, that is, a path whose attribute is set in S1205, as the software update path 71 (S1207). Finally, the update device 10 increments the process number, that is, increments the process number by "1" (S1208), and ends the overlay mounting process shown in FIG.
(フローチャート|マージ処理)
 図24は、図22のS1100に示すマージ処理の詳細を示すフローチャートである。まず更新装置10は、処理番号のマウントパスを取得する(S1101)。次に更新装置10は、処理番号が10未満であるか否かを判断し、処理番号が10未満と判断する場合(S1102:YES)はレイヤ合成パスを「/t/ver1」に設定し、処理番号が10以上と判断する場合(S1102:NO)はレイヤ合成パスを「/s/ver1」に設定する。S1102~S1104の処理は、現在使用しているサイドとは逆側のバージョン1のディレクトリを選択するものである。
(Flowchart | merge process)
FIG. 24 is a flowchart showing details of the merge process shown in S1100 of FIG. First, the update device 10 acquires the mount path of the process number (S1101). Next, the updating apparatus 10 determines whether the processing number is less than 10, and sets the layer combining path to “/ t / ver1” when determining that the processing number is less than 10 (S1102: YES), When it is determined that the process number is 10 or more (S1102: NO), the layer combining path is set to "/ s / ver1". The processing of S1102 to S1104 is to select a version 1 directory on the opposite side to the side currently being used.
 S1103またはS1104の処理によりレイヤ合成パスを設定すると、更新装置10はマウントパスのデータファイルをレイヤ合成パスにコピーする(S1105)。このコピー処理が、実質的なマージ処理に相当する。次に更新装置10は、レイヤ合成パス72をソフト実行パス70に設定し(S1106)、S1102と同様に処理番号が10未満であるか否かを判断する(S1107)。 When the layer combining path is set by the processing of S1103 or S1104, the updating apparatus 10 copies the data file of the mount path to the layer combining path (S1105). This copy processing corresponds to substantial merge processing. Next, the updating apparatus 10 sets the layer combining path 72 as the software execution path 70 (S1106), and determines whether the processing number is less than 10 as in S1102 (S1107).
 更新装置10は、処理番号が10未満であると判断する場合は、現在使用しているサイドに含まれるファイル、すなわち「/s」の配下のファイルを削除し(S1108)、処理番号を10に設定する(S1109)。更新装置10は処理番号が10以上であると判断する場合は、現在使用しているサイドに含まれるファイル、すなわち「/t」の配下のファイルを削除し(S1110)、処理番号を10に設定する(S1111)。S1109またはS1111の次に更新装置10は、レイヤ合成パス72に設定されていた文字列を削除して(S1112)図24に示すマージ処理を終了する。 If the update device 10 determines that the process number is less than 10, it deletes the file included in the side currently being used, that is, the file under "/ s" (S1108), and sets the process number to 10 It sets (S1109). When it is determined that the processing number is 10 or more, the update device 10 deletes the file included in the side currently being used, that is, the file under "/ t" (S1110), and sets the processing number to 10 (S1111). After S1109 or S1111, the updating apparatus 10 deletes the character string set in the layer combining path 72 (S1112), and ends the merge processing illustrated in FIG.
(フローチャート|ロールバック処理)
 図25はロールバック処理の詳細を示すフローチャートである。ロールバック部47は、サーバ装置2からの通信部31を介する指令、または車両1の乗員によるHMI部49を介する指令によりロールバック処理を行う。ロールバック処理の指令には、処理番号の何番までロールバックを行うかを示すロールバック番号が含まれる。
(Flowchart | Rollback process)
FIG. 25 is a flowchart showing the details of the rollback process. The rollback unit 47 performs the rollback process according to a command from the server device 2 via the communication unit 31 or a command from the occupant of the vehicle 1 via the HMI unit 49. The rollback processing instruction includes a rollback number indicating to what number of the processing number the rollback is to be performed.
 ロールバック部47は、まずロールバック番号を取得し(S1401)、次に現在の処理番号を処理対象に設定する(S1402)。そして管理情報7を参照し、現在の処理番号における上位パスに含まれるファイルを削除し(S1403)、現在の処理番号に対応するオーバーレイを解除する(S1404)。次に処理番号をデクリメント、すなわち処理番号の数値を「1」だけ減少させ(S1405)、ロールバック番号と処理番号の大小関係を評価する(S1406)。ロールバック番号が処理番号よりも大きいと判断する場合はS1402に戻り、ロールバック番号が処理番号以下であると判断する場合は図25に示す処理を終了する。 The rollback unit 47 first acquires a rollback number (S1401), and then sets the current processing number as a processing target (S1402). Then, with reference to the management information 7, the file included in the upper path in the current process number is deleted (S1403), and the overlay corresponding to the current process number is canceled (S1404). Next, the process number is decremented, that is, the numerical value of the process number is decremented by "1" (S1405), and the magnitude relationship between the rollback number and the process number is evaluated (S1406). If it is determined that the rollback number is larger than the process number, the process returns to S1402, and if it is determined that the rollback number is less than or equal to the process number, the process illustrated in FIG. 25 ends.
 上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)更新装置10は、複数のデータファイルが格納される記憶部151と、サーバ装置2から更新ファイル307を受信する通信部31と、記憶部151のファイルパスであり複数のデータファイルが含まれる読み込み専用のイメージレイヤ、記憶部151のファイルパスであり読み書き可能なコンテナレイヤ、および記憶部151のファイルパスであるコンテナマウントを設定するオーバーレイ管理部46とを備える。更新装置10は、コンテナマウントが、イメージレイヤを下位レイヤとしコンテナレイヤを上位レイヤとして重ね合わせたファイル状態とし、コンテナマウントへの書き込み処理はコンテナレイヤへの書き込みとするオーバーレイ処理を実行するオーバーレイ実行部35と、更新ファイル307を用いてコンテナマウントへの書き込みを行い、複数のデータファイルの少なくとも一部を更新する更新部33とを備える。
According to the first embodiment described above, the following effects can be obtained.
(1) The update device 10 includes a storage unit 151 storing a plurality of data files, a communication unit 31 receiving the update file 307 from the server device 2, and a plurality of data files as file paths of the storage unit 151. And an overlay management unit 46 configured to set a container mount which is a file path of the storage unit 151 and is a readable and writable container layer and a file path of the storage unit 151. The update device 10 is an overlay execution unit that executes an overlay process in which the container mount is in a file state in which the image layer is a lower layer and the container layer is an upper layer and the writing process to the container mount is writing to the container layer And an update unit 33 that writes data to the container mount using the update file 307 and updates at least a part of the plurality of data files.
 更新ファイル307の書き込みがコンテナマウントへ行われ、更新対象となるデータファイルの情報のみが新たに記憶部151に書き込まれ、変更がないデータファイルは複製が行われない。そのため少ない記憶領域でデータを更新できる。また更新ファイル307の書き込みは実質的にはコンテナレイヤへ行われるが、オーバーレイマウントの仕組みにより、更新前の状態はイメージレイヤから参照可能であり、更新後の状態はコンテナマウントから参照可能である。換言すると、余分な記憶領域を消費することなく更新前後の状態を取得可能である。さらにイメージレイヤおよびコンテナレイヤに設定するパスに特段の制限はなく、たとえばあらかじめ分割した異なる領域にそれぞれのパスを設定することなどは不要なので、記憶領域をあらかじめ広く確保する必要もない。 The update file 307 is written to the container mount, only the information on the data file to be updated is newly written to the storage unit 151, and the data file without change is not replicated. Therefore, data can be updated with a small storage area. Although writing of the update file 307 is substantially performed to the container layer, the state before the update can be referenced from the image layer and the state after the update can be referenced from the container mount by the overlay mounting mechanism. In other words, the state before and after updating can be obtained without consuming extra storage area. Furthermore, there is no particular limitation on the paths set in the image layer and the container layer, and for example, it is not necessary to set each path in different areas divided in advance, and it is not necessary to secure a wide storage area in advance.
(2)複数のデータファイルには実行可能ファイルが含まれる。更新装置10は、記憶部151のファイルパスであるソフト実行パス70に存在する実行可能ファイルを実行する実行部35を備える。更新部33は、コンテナマウントへの書き込みを行うと、ソフト実行パス70をイメージレイヤからコンテナマウントへ書き換える。そのため更新装置10は、イメージレイヤに含まれる実行可能ファイルの実行を中断させることなく、バックグラウンドで更新ができる。 (2) The plurality of data files include executable files. The update device 10 includes an execution unit 35 that executes an executable file present in the software execution path 70 which is a file path of the storage unit 151. When writing to the container mount, the updating unit 33 rewrites the software execution path 70 from the image layer to the container mount. Therefore, the update device 10 can update in the background without interrupting the execution of the executable file included in the image layer.
(3)オーバーレイ実行部35は、第1のオーバーレイ処理が有効な状態でさらに第2のオーバーレイ処理を実行し、第2のオーバーレイ処理におけるイメージレイヤには、図17の管理情報7に示すように、第1のオーバーレイ処理におけるコンテナマウントに設定されたファイルパスが設定される。そのためオーバーレイ実行部35は、多重オーバーレイを構成し、複数回の更新に対応できる。 (3) The overlay execution unit 35 further executes the second overlay processing in a state in which the first overlay processing is valid, and as shown in the management information 7 of FIG. 17 for the image layer in the second overlay processing. , And a file path set for container mounting in the first overlay processing is set. Therefore, the overlay execution unit 35 can configure multiple overlays and can handle multiple updates.
(4)オーバーレイ実行部35は、複数のオーバーレイ処理を実行し、複数のオーバーレイ処理ではいずれも、イメージレイヤには直前のオーバーレイ処理におけるコンテナマウントに設定されたファイルパスが設定される。更新装置10は、オーバーレイ実行部35が作成した最新のオーバーレイ処理におけるコンテナマウントに設定されたファイルパスをコピー元とするコピー処理により更新部33による複数回の更新をマージするレイヤ合成部40を備える。そのため更新装置10は、マージ処理により必要なデータファイルだけを抽出することができる。この抽出はOSのコピーコマンドにより実行可能であり、処理が簡便である。 (4) The overlay execution unit 35 executes a plurality of overlay processes. In any of the plurality of overlay processes, the file path set in the container mount in the previous overlay process is set in the image layer. The update device 10 includes the layer combining unit 40 that merges the update performed by the update unit 33 a plurality of times by the copy process in which the file path set in the container mount in the latest overlay process created by the overlay execution unit 35 is a copy source. . Therefore, the update device 10 can extract only necessary data files by the merge process. This extraction can be executed by the copy command of the OS, and the processing is simple.
(5)更新装置10は、記憶部161の空き容量が予め定めた値を下回るとレイヤ合成部に動作指令を出力する処理ステップ(図22のS1014)を備える。そのため空き容量が少なくなった際にマージ処理を行い、必要なファイルを抽出した後に、従前のファイルを削除(図24のS1107~S1111)することができる。 (5) The updating apparatus 10 includes a processing step (S1014 in FIG. 22) of outputting an operation command to the layer combining unit when the free space of the storage unit 161 falls below a predetermined value. Therefore, merge processing is performed when the free space is reduced, and after the necessary files are extracted, the previous file can be deleted (S1107 to S1111 in FIG. 24).
(6)更新装置10は、コンテナレイヤを削除することで更新前の状態に戻すロールバック部を備える。そのため不要な更新を削除して、更新前の状態に戻すことができる。 (6) The update device 10 includes a rollback unit that restores the state before the update by deleting the container layer. Therefore, unnecessary updates can be deleted and restored to the state before the update.
(変形例1)
 図24のS1112~S1700の処理において、全てのレコードを削除した。しかし最初のレコードは削除せずに残してもよい。この場合はS1112において最初以外のレコードを取得し、S1700において最初のレコード以外を全て削除したか否かを判断する。
(Modification 1)
In the processing of S1112 to S1700 of FIG. 24, all the records are deleted. However, the first record may be left undeleted. In this case, a record other than the first one is obtained in S1112, and it is determined in S1700 whether or not all but the first record has been deleted.
(変形例2)
 図24のS1108およびS1110において、実行中のプログラムは削除せず、そのプログラムの実行が終了してから削除してもよい。処理系の構成やプログラムの構成によっては、実行中のプログラムを削除することにより不具合が発生する可能性があり、本変形例ではそのようなケースに対応できる。
(Modification 2)
In S1108 and S1110 of FIG. 24, the program being executed may not be deleted, but may be deleted after the execution of the program is completed. Depending on the configuration of the processing system or the configuration of the program, there is a possibility that a problem may occur by deleting the program being executed, and this modification can cope with such a case.
(変形例3)
 ストレージ48に含まれるデータファイル、および更新ファイル307に実行可能ファイルであるプログラムが含まれなくてもよい。この場合は更新装置10は実行部34、および実行レイヤ指定部37を備えなくてもよい。
(Modification 3)
The data file included in the storage 48 and the update file 307 may not include a program that is an executable file. In this case, the update device 10 may not include the execution unit 34 and the execution layer designation unit 37.
(変形例4)
 管理情報7はあらかじめ作成されていなくてもよく、更新装置10が必要に応じて生成してもよい。この場合は更新装置10は、次に作成する処理番号における下位パスは、直前の処理番号におけるマウントパスと同一に設定すればよい。名称が重複しなければディレクトリの名称は特に限定されず、特に図17に示したように連番にすることは必要ではない。
(Modification 4)
The management information 7 may not be created in advance, and may be generated by the updating device 10 as needed. In this case, the update device 10 may set the lower path in the process number to be created next to be the same as the mount path in the previous process number. The names of the directories are not particularly limited as long as the names do not overlap, and in particular, it is not necessary to sequentially number as shown in FIG.
(変形例5)
 更新装置10は、車両1の乗員による承諾を更新の条件としてもよい。たとえば更新装置10は、更新が可能な状況になるとHMI部49を用いて乗員に更新の可否を問い合わせ、更新が承諾された場合に更新を実行する。
(Modification 5)
The updating device 10 may use the consent of the occupant of the vehicle 1 as a condition for updating. For example, when an update is possible, the update device 10 uses the HMI unit 49 to inquire of the passenger whether the update is possible or not, and executes the update when the update is accepted.
 図26は、乗員への更新の可否を問い合わせる画面表示の一例を示す図である。この表示がHMI155に表示され、乗員が「はい」を選択すると処理が続行される。乗員が「いいえ」を選択すると処理が中断され、再び更新が可能な状況になると同一の画面表示が行われる。ただし乗員が「いいえ」を選択した場合には、次回のイグニッションがONまたはOFFにされた際に、乗員の問い合わせを行うことなく処理を続行してもよい。 FIG. 26 is a diagram showing an example of a screen display inquiring whether the occupant can update or not. This display is displayed on the HMI 155, and when the passenger selects "Yes", the process is continued. When the occupant selects "No", the process is interrupted, and the same screen display is performed when an update is possible again. However, when the occupant selects "No", the processing may be continued without inquiring the occupant when the ignition is turned on or off next time.
(変形例6)
 図22のS1015の処理は削除してもよい。本実施の形態において管理情報7をあらかじめ作成していたのは説明の便宜上であり、自動生成を行う特段の不利益はないので、記憶領域の制約がなければ管理情報7を適宜書き換えることで対処可能だからである。
(Modification 6)
The process of S1015 of FIG. 22 may be deleted. It is for convenience of explanation that management information 7 has been created in advance in the present embodiment, and there is no particular disadvantage to perform automatic generation. Therefore, if there is no restriction on the storage area, the management information 7 is appropriately rewritten. It is because it is possible.
(変形例7)
 上述した第1の実施の形態では、マージ処理とロールバック処理は個別に実行された。しかしマージ処理を実行する際にロールバック処理を同時に実行してもよい。
(Modification 7)
In the first embodiment described above, the merge process and the rollback process are performed separately. However, rollback processing may be performed simultaneously when performing merge processing.
―第2の実施の形態―
 図27~図28を参照して、本発明にかかる更新装置の第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、サーバ装置が統合処理を行う点で、第1の実施の形態と異なる。
-Second embodiment-
The second embodiment of the update device according to the present invention will be described with reference to FIGS. In the following description, the same components as in the first embodiment will be assigned the same reference numerals and differences will be mainly described. The points that are not particularly described are the same as in the first embodiment. The present embodiment is different from the first embodiment mainly in that the server apparatus performs integration processing.
(動作の概要)
 サーバ装置2は、第1の実施の形態と同様に更新ファイル307を更新装置10に逐次送信するだけでなく、所定の条件を満たすと、これまでの更新の内容をまとめたレイヤイメージファイル、いわゆるロールアップを作成して更新装置10に送信する。ただし必ずしも全ての更新内容が含まれていなくてもよく、過去のどの更新が含まれているかを示す情報も同時に送信される。更新装置10は、削除すべきファイルを削除するとともに、受信したレイヤイメージファイルをコンテナレイヤに適用する。これにより更新装置10の処理が簡略化され負荷が軽減する。
(Summary of operation)
The server apparatus 2 not only sequentially transmits the update file 307 to the update apparatus 10 as in the first embodiment, but also when a predetermined condition is satisfied, a layer image file in which the contents of the update so far are put together, so-called A rollup is created and sent to the update device 10. However, not all update contents are necessarily included, and information indicating which past updates are included is also transmitted at the same time. The update device 10 deletes the file to be deleted and applies the received layer image file to the container layer. This simplifies the processing of the updating device 10 and reduces the load.
(構成)
 図27は、第2の実施の形態における更新システムの構成を示す図である。本実施の形態におけるサーバ装置2は、第1の実施の形態における構成に加えて、更新管理部30、更新部33、オーバーレイ実行部35、更新レイヤ指定部39、レイヤ合成部40、合成範囲指定部41、不要レイヤ削除部45、オーバーレイ管理部46、更新用ストレージ48A、およびフラグ設定部51を備える。更新用ストレージ48Aは、ストレージ165と同一のハードウエアによって実現されてもよいし、異なるハードウエアによって実現されてもよい。
(Constitution)
FIG. 27 is a diagram showing the configuration of the update system in the second embodiment. In addition to the configuration in the first embodiment, the server apparatus 2 according to the present embodiment includes the update management unit 30, the update unit 33, the overlay execution unit 35, the update layer specification unit 39, the layer combination unit 40, and the combination range specification. A section 41, an unnecessary layer deletion section 45, an overlay management section 46, an update storage 48A, and a flag setting section 51 are provided. The update storage 48A may be realized by the same hardware as the storage 165 or by different hardware.
 サーバ装置2が備える機能である、更新管理部30、更新部33、オーバーレイ実行部35、更新レイヤ指定部39、レイヤ合成部40、オーバーレイ管理部46の動作は第1の実施の形態と同様である。なお合成範囲指定部41の動作は、後述するように更新装置10における動作と異なる。また更新用ストレージ48Aには、第1の実施の形態における更新装置10のストレージ48と同一の情報が保存される。すなわち本実施の形態では、更新ファイル307を用いて更新装置10だけでなくサーバ装置2においても多重オーバーレイを用いたデータファイルの更新が行われる。また本実施の形態におけるサーバ装置2のストレージ165には、これまでにサーバ装置2が更新装置10に送信した更新ファイル307が格納されている。 The operations of the update management unit 30, the update unit 33, the overlay execution unit 35, the update layer specification unit 39, the layer combining unit 40, and the overlay management unit 46, which are functions included in the server device 2, are the same as those in the first embodiment. is there. The operation of the synthesis range designation unit 41 is different from the operation in the updating device 10 as described later. Further, the same information as the storage 48 of the update device 10 in the first embodiment is stored in the update storage 48A. That is, in the present embodiment, the update file 307 is used to update data files using multiple overlays not only in the update device 10 but also in the server device 2. Further, in the storage 165 of the server device 2 in the present embodiment, the update file 307 which the server device 2 has transmitted to the update device 10 is stored.
 更新装置10は、第1の実施の形態の構成からレイヤファイル合成部40および合成範囲指定部41を削除し、レコード更新部50を追加した構成を有する。ただし更新装置10は、差分更新部36、更新ファイル保持部42、レイヤファイル合成部52および合成範囲指定部41のうち少なくとも1つを備えてもよい。また更新装置10は、管理情報7に代えて管理情報7Aを有する。 The updating apparatus 10 has a configuration in which the layer file combining unit 40 and the combining range designation unit 41 are deleted from the configuration of the first embodiment, and the record updating unit 50 is added. However, the update device 10 may include at least one of the difference update unit 36, the update file holding unit 42, the layer file combining unit 52, and the combining range specification unit 41. The update device 10 also has management information 7A in place of the management information 7.
(管理情報7A)
 図28は管理情報7Aの一例を示す図である。管理情報7Aは、第1の実施の形態における管理情報7が備える全てのフィールドに加えて、削除対象フラグのフィールドを有する。削除対象フラグの初期値は「NO」であり、サーバ装置2から受信する削除対象情報に基づき「YES」に更新される。レコード削除部1400は、削除対象フラグが「YES」に設定されているレコードの値に基づき削除処理を行う。
(Management information 7A)
FIG. 28 is a diagram showing an example of the management information 7A. The management information 7A has a deletion target flag field in addition to all the fields included in the management information 7 in the first embodiment. The initial value of the deletion target flag is “NO”, and is updated to “YES” based on the deletion target information received from the server device 2. The record deletion unit 1400 performs deletion processing based on the value of the record for which the deletion target flag is set to “YES”.
(サーバ装置2の機能構成)
 合成範囲指定部41は、サーバ装置2のオペレータの決定、またはサーバ装置2に内蔵される他のプログラムの決定に従い、サーバ装置2が合成する処理番号の範囲を指定する。フラグ設定部51は、合成範囲指定部41の指定に基づき削除対象フラグを付与する対象となる処理番号を決定し、削除対象情報として更新装置10に伝達する。レイヤファイル合成部40は、合成範囲指定部41の指令に基づきレイヤファイルを合成してロールアップ情報とする。具体的な合成の動作は第1の実施の形態と同様である。
(Functional configuration of server device 2)
According to the determination of the operator of the server device 2 or the determination of other programs incorporated in the server device 2, the combining range designation unit 41 designates a range of process numbers to be combined by the server device 2. The flag setting unit 51 determines the processing number to which the deletion target flag is to be added based on the specification of the combination range specification unit 41, and transmits it to the update device 10 as deletion target information. The layer file synthesizing unit 40 synthesizes the layer file based on the command of the synthesis range designation unit 41 and uses it as rollup information. The specific combining operation is the same as that of the first embodiment.
 たとえば合成範囲指定部41が、処理番号1~3を合成範囲に指定すると、フラグ設定部51は削除対象情報として「処理番号1~3」という情報を更新装置10に出力する。また図28の例に従えば、サーバ装置2のレイヤファイル合成部52は、「/s/ver4」をコピー元とし、たとえば「/rollup」をコピー先にしたファイルコピーを行う。そしてサーバ装置2は、ロールアップ情報である「/rollup」以下をイメージファイル309として更新装置10に送信する。 For example, when the synthesis range designation unit 41 designates the process numbers 1 to 3 as the synthesis range, the flag setting unit 51 outputs information “process numbers 1 to 3” to the update device 10 as deletion target information. Further, according to the example of FIG. 28, the layer file combining unit 52 of the server device 2 performs file copy with “/ s / ver 4” as the copy source and “/ rollup” as the copy destination, for example. Then, the server device 2 transmits the rollup information “/ rollup” or less as the image file 309 to the update device 10.
(更新装置10の動作)
 更新装置10は、サーバ装置2から削除対象情報を受信すると管理情報7Aに削除対象情報を反映させる。具体的には、削除対象情報に基づき管理情報7Aの削除対象フラグのフィールドを初期値の「NO」から「YES」に書き換え、削除対象フラグが「YES」である処理番号の上位パスのディレクトリに格納されるデータファイルを削除する。また更新装置10は、処理番号「1」の下位パスのディレクトリの内容物を削除して、そこにサーバ装置2から受信するロールアップ情報を書き込む。さらに更新装置10は、管理情報7Aの削除対象フラグが「YES」である処理番号のオーバーレイマウントを解除し、処理番号「1」のマウントパスを削除対象とならなかった最も若い処理番号の下位パスに書き換えてオーバーレイマウントを形成する。たとえば図28に示す例では処理番号1のマウントパスを「/s/ver4」に書き換える。
(Operation of update device 10)
When receiving the deletion target information from the server device 2, the update device 10 reflects the deletion target information on the management information 7A. Specifically, based on the deletion target information, the field of the deletion target flag of the management information 7A is rewritten from the initial value "NO" to "YES", and the deletion target flag is "YES" in the directory of the upper path of the processing number. Delete the stored data file. Further, the update device 10 deletes the contents of the directory of the lower path of the processing number “1”, and writes the roll-up information received from the server device 2 therein. Furthermore, the update device 10 cancels the overlay mounting of the processing number for which the deletion target flag of the management information 7A is "YES", and the lower path for the youngest processing number for which the mount path of the processing number "1" is not targeted for deletion. Rewrite to form an overlay mount. For example, in the example shown in FIG. 28, the mount path of process number 1 is rewritten to “/ s / ver 4”.
 上述した第2の実施の形態によれば、次の作用効果が得られる。
(7)更新装置10は少なくとも第1の実施の形態と同様の構成を有する。サーバ装置2は、複数のデータファイルが格納される更新用ストレージ48Aと、更新装置10に送信する更新ファイル307が格納されるストレージ3と、更新装置10に更新ファイル307を送信するサーバ通信部20と、オーバーレイ管理部46と、オーバーレイ実行部35と、更新ファイルを用いてサーバコンテナマウントへの書き込みを行い、複数のデータファイルの少なくとも一部を更新する更新部33とを備える。サーバ装置2のオーバーレイ実行部35は、第1のサーバオーバーレイ処理が有効な状態でさらに第2のサーバオーバーレイ処理を実行し、第2のサーバオーバーレイ処理におけるイメージレイヤには、第1のオーバーレイ処理におけるコンテナマウントに設定されたファイルパスが設定され、サーバ装置2のオーバーレイ実行部35は複数のオーバーレイ処理を実行し、これらはいずれも、イメージレイヤには直前のオーバーレイ処理におけるコンテナマウントに設定されたファイルパスが設定される。サーバ装置2は、サーバ装置2のオーバーレイ実行部35が作成した最新のオーバーレイ処理におけるコンテナマウントに設定されたファイルパスをコピー元とし、所定のファイルパスであるマージパスをコピー先するコピー処理によりサーバ装置2の更新部33による複数回の更新をマージするレイヤ合成部40を備える。サーバ通信部20は、サーバ装置2のレイヤ合成部40がマージパスにコピーした複数のファイルの情報であるロールアップ情報を更新装置10に送信する。更新装置10は、サーバ装置2からロールアップ情報を受信すると、オーバーレイ処理を解除し複数のデータファイルに代えてロールアップ情報を使用する。そのためレイヤの合成処理を更新装置10ではなくサーバ装置2が行うため、更新装置10の処理負荷を軽減することができる。
According to the second embodiment described above, the following effects can be obtained.
(7) The update device 10 has at least the same configuration as that of the first embodiment. The server device 2 includes an update storage 48A storing a plurality of data files, a storage 3 storing an update file 307 to be transmitted to the update device 10, and a server communication unit 20 to transmit the update file 307 to the update device 10. , The overlay management unit 46, the overlay execution unit 35, and the update unit 33 that performs writing to the server container mount using the update file and updates at least a part of the plurality of data files. The overlay execution unit 35 of the server device 2 further executes the second server overlay process in a state in which the first server overlay process is effective, and the image layer in the second server overlay process is subjected to the first overlay process. The file path set in the container mount is set, and the overlay execution unit 35 of the server device 2 executes a plurality of overlay processes, and all of them are files set in the container mount in the previous overlay process in the image layer A path is set. The server apparatus 2 uses the file path set as the container mount in the latest overlay processing created by the overlay execution unit 35 of the server apparatus 2 as a copy source, and the server apparatus 2 as a copy process that copies a merge path that is a predetermined file path. The layer combining unit 40 merges a plurality of updates by the second update unit 33. The server communication unit 20 transmits rollup information, which is information on a plurality of files copied to the merge path by the layer combining unit 40 of the server device 2, to the updating device 10. When the update device 10 receives the rollup information from the server device 2, the update device 10 cancels the overlay processing and uses the rollup information in place of the plurality of data files. Therefore, since the server apparatus 2 performs the layer combining process instead of the updating apparatus 10, the processing load of the updating apparatus 10 can be reduced.
(第2の実施の形態の変形例1)
 更新装置10は、サーバ装置2から更新ファイル307を受信せず、ロールアップ情報のみを受信してもよい。この場合は更新装置10は、ロールアップ情報を受信すると従前いサーバ装置2から受信した情報を廃棄し、新たに受信したロールアップ情報を代わりに利用する。この場合は更新装置10は、オーバーレイ実行部35やオーバーレイ管理部46を備えなくてもよい。本変形例によれば、更新装置10は、自ら更新処理を行わないので処理負荷をより軽減することができる。
(Modification 1 of the second embodiment)
The update device 10 may receive only the rollup information without receiving the update file 307 from the server device 2. In this case, the update device 10 discards the information received from the previous server device 2 when receiving the rollup information, and uses the newly received rollup information instead. In this case, the update device 10 may not include the overlay execution unit 35 or the overlay management unit 46. According to this modification, the update device 10 does not perform the update process by itself, so the processing load can be further reduced.
―第3の実施の形態―
 図29、図30を参照して、本発明にかかる更新装置の第3の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、車両1のイグニッションの状態を更新開始の条件に含める点で、第1の実施の形態と異なる。
-Third embodiment-
A third embodiment of the update device according to the present invention will be described with reference to FIGS. 29 and 30. FIG. In the following description, the same components as in the first embodiment will be assigned the same reference numerals and differences will be mainly described. The points that are not particularly described are the same as in the first embodiment. The present embodiment differs from the first embodiment mainly in that the state of the ignition of the vehicle 1 is included in the update start condition.
 図29は、第3の実施の形態における更新システムの構成を示す図である。本実施の形態における更新装置10は、第1の実施の形態における構成に加えて、イグニッション受信部54を備える。イグニッション受信部54は、車両1の乗員によるイグニッションスイッチの操作、具体的にはイグニッションスイッチをオンに切り替えた信号、およびオフに切り替えた信号を受信する。この信号の伝達は、専用の信号線が用いられてもよいし、CANなどの車載ネットワークが利用されてもよい。本実施の形態では更新開始判断部38は、イグニッション受信部54が受信したイグニッションスイッチの状態を判断する。たとえば更新開始判断部38は、イグニッションスイッチがオフであることを追加の条件とする。 FIG. 29 is a diagram showing the configuration of the update system in the third embodiment. The update device 10 according to the present embodiment includes an ignition receiving unit 54 in addition to the configuration according to the first embodiment. The ignition receiving unit 54 receives an operation of an ignition switch by an occupant of the vehicle 1, specifically, a signal obtained by switching on the ignition switch, and a signal obtained by switching off. For the transmission of this signal, a dedicated signal line may be used, or an in-vehicle network such as CAN may be used. In the present embodiment, the update start determining unit 38 determines the state of the ignition switch received by the ignition receiving unit 54. For example, the update start determination unit 38 sets that the ignition switch is off as an additional condition.
 図30は、第3の実施の形態における更新装置10が実行するデータファイル330の更新処理を示すフローチャートである。図30に示すフローチャートは、S1002が追加されている点が図22と異なる。S1001において構成判断されると実行されるS1002では更新開始判断部38は、イグニッションスイッチがオフであるか否かを判断する。更新開始判断部38はイグニッションスイッチがオフであると判断するとS1200に進んで、第1の実施の形態と同様に処理を継続する。更新開始判断部38はイグニッションスイッチがオンであると判断するとS1001に戻る。 FIG. 30 is a flowchart showing an update process of the data file 330 performed by the update device 10 in the third embodiment. The flowchart shown in FIG. 30 is different from FIG. 22 in that S1002 is added. In S1002, which is executed when the configuration is determined in S1001, the update start determination unit 38 determines whether the ignition switch is off. If the update start determination unit 38 determines that the ignition switch is off, the process proceeds to S1200 and continues the processing as in the first embodiment. If the update start determination unit 38 determines that the ignition switch is on, the process returns to S1001.
 上述した第3の実施の形態によれば、次の作用効果が得られる。
(8)更新装置10は、更新装置が搭載される車両のイグニッションスイッチの状態を取得するイグニッション受信部54と、イグニッション受信部54の受信結果に基づき更新部33に動作指令を出力する更新開始判断部38とを備える。そのため、車両1の動作への影響が少ない車両1の始動時や停止時に更新を行うことができる。
According to the third embodiment described above, the following effects can be obtained.
(8) The updating device 10 outputs an operation command to the updating unit 33 based on the reception result of the ignition receiving unit 54 that acquires the state of the ignition switch of the vehicle on which the updating device is mounted and the ignition receiving unit 54 And a unit 38. Therefore, it is possible to perform updating at the time of starting or stopping of the vehicle 1 with less influence on the operation of the vehicle 1.
―第4の実施の形態―
 図31、図32を参照して、本発明にかかる更新装置の第4の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、ファイルの差分を受信してファイルを更新する点で、第1の実施の形態と異なる。
-Fourth Embodiment-
A fourth embodiment of the update device according to the present invention will be described with reference to FIGS. 31 and 32. FIG. In the following description, the same components as in the first embodiment will be assigned the same reference numerals and differences will be mainly described. The points that are not particularly described are the same as in the first embodiment. The present embodiment differs from the first embodiment mainly in that the difference between the files is received to update the file.
 図31は、第4の実施の形態における更新システムの構成を示す図である。本実施の形態における更新装置10は、第1の実施の形態における構成に加えて、差分更新部36をさらに備える。本実施の形態における更新ファイル307は、第1の実施の形態などと同様にファイルそのものが含まれる場合もあるが、ファイルそのものは含まれず従前のバージョンのファイルとの差分を示す情報が含まれる場合がある。後者の情報を使ったデータファイル330の更新を、以下では「差分更新」と呼ぶ。なお本実施の形態では、更新ファイル保持部42が記憶部151に一時的に記憶する更新ファイル307には前述の差分情報が含まれる場合があるので、更新ファイル保持部42は差分情報保持部とも呼べる。 FIG. 31 is a diagram showing the configuration of the update system in the fourth embodiment. The update device 10 in the present embodiment further includes a difference update unit 36 in addition to the configuration in the first embodiment. The update file 307 in the present embodiment may include the file itself as in the first embodiment etc., but the file itself is not included but the information indicating the difference with the file of the previous version is included. There is. The update of the data file 330 using the latter information is hereinafter referred to as “differential update”. In the present embodiment, since the above-mentioned difference information may be included in the update file 307 temporarily stored in the storage unit 151 by the update file holding unit 42, the update file holding unit 42 also serves as the difference information holding unit. I can call.
 差分更新部36は、更新部33の動作指令に基づき差分更新を行う。差分更新部36は具体的には、bspatch、xdelta、またはzdeltaなどである。なおbspatch、xdelta、およびzdeltaは、オープンソースソフトウエアであり、様々なLinuxディストリビューションにも含まれる。 The difference update unit 36 performs difference update based on the operation command of the update unit 33. Specifically, the difference update unit 36 is bspatch, xdelta, or zdelta. Note that bspatch, xdelta and zdelta are open source software and are included in various Linux distributions.
 差分更新の概要を説明する。旧バージョンのデータファイル330と新バージョンのデータファイル330の差をデータ化したファイルが差分ファイルである。上述したbspatchなどは、旧バージョンのデータファイル330および、差分ファイルを用いて新バージョンのデータファイル330を構築するプログラムである。具体的には、ストレージ48に保持するデータファイル330に対して、更新ファイル保持部42が保持する更新ファイル307を用いてストレージ48の特定のパス、ここではソフト更新パス71に新しいデータファイル330を生成する処理を行う。一般に差分ファイルは、オリジナルのデータファイル330のサイズに比べて小さくなるため、サーバ装置2と更新装置10間の通信量を減らすことが可能となる。 An outline of the difference update will be described. A file obtained by converting the difference between the data file 330 of the old version and the data file 330 of the new version is a difference file. The above-described bspatch and the like are programs for constructing the new version data file 330 using the old version data file 330 and the difference file. Specifically, with respect to the data file 330 held in the storage 48, using the update file 307 held by the update file holding unit 42, a specific path of the storage 48, in this case, the new data file 330 in the software update path 71. Perform processing to generate. Generally, the difference file is smaller than the size of the original data file 330, so the amount of communication between the server device 2 and the update device 10 can be reduced.
(フローチャート)
 図32は、差分更新部36の動作を表すフローチャートである。差分更新部36は、更新部33の動作指令に基づき、まず差分ファイルを取得し(S1309)、旧ファイルを取得する(S1310)。そして差分更新部36は、差分ファイルを用いて旧ファイルを新ファイルに書き換える差分更新処理を行い(S1311)、新ファイルをソフト更新パスに書き込んで(S1312)図32に示す差分更新処理を終了する。
(flowchart)
FIG. 32 is a flowchart showing the operation of the difference update unit 36. The difference update unit 36 first acquires a difference file based on the operation command of the update unit 33 (S1309), and acquires an old file (S1310). Then, the difference update unit 36 performs difference update processing to rewrite the old file to a new file using the difference file (S1311), writes the new file to the software update path (S1312), and ends the difference update processing shown in FIG. .
 上述した第4の実施の形態によれば、次の作用効果が得られる。
(9)サーバ装置2から受信する更新ファイル307は差分データである。更新装置10は、記憶部151に格納されているデータファイル330と更新ファイル307とを用いて更新後のデータファイル330を作成する差分更新部36を備える。そのため更新ファイル307のデータ量を削減してサーバ装置2と更新装置10間の通信量を減らすことができる。
According to the above-described fourth embodiment, the following effects can be obtained.
(9) The update file 307 received from the server device 2 is difference data. The update device 10 includes a difference update unit 36 that creates the updated data file 330 using the data file 330 stored in the storage unit 151 and the update file 307. Therefore, the amount of data of the update file 307 can be reduced, and the amount of communication between the server device 2 and the update device 10 can be reduced.
―第5の実施の形態―
 図33~図34を参照して、本発明にかかる更新装置の第5の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、ロールバックに一定の制限が課せられる点で、第1の実施の形態と異なる。
-Fifth embodiment-
A fifth embodiment of the update device according to the present invention will be described with reference to FIGS. 33 to 34. In the following description, the same components as in the first embodiment will be assigned the same reference numerals and differences will be mainly described. The points that are not particularly described are the same as in the first embodiment. The present embodiment differs from the first embodiment mainly in that a certain restriction is imposed on rollback.
(構成)
 本実施の形態における更新装置10は、第1の実施の形態における管理情報7に代えて管理情報7Bを備える。また以下に説明するようにロールバック部47の動作が一部異なる。
(Constitution)
The update device 10 in the present embodiment includes management information 7B instead of the management information 7 in the first embodiment. The operation of the rollback unit 47 is partially different as described below.
 本実施の形態では、更新装置10がサーバ装置2から受信するロールバック指令は、通常指令と強制指令の2種類がある。通常指令の場合は、以下に説明する制限の範囲内でロールバックが可能である。強制指令の場合は、第1の実施の形態と同様に、任意のバージョンまでロールバックが可能である。 In the present embodiment, there are two types of rollback commands that the updating device 10 receives from the server device 2: normal commands and forced commands. In the case of the normal command, rollback is possible within the limits described below. In the case of the forcible command, as in the first embodiment, rollback to any version is possible.
 本実施の形態において更新装置10が更新装置10に送信する更新ファイル307には、後述する削除禁止フラグが設定されている場合がある。ただし削除禁止フラグは、ON/OFFによりフラグの有無を表現してもよいし、削除禁止フラグの付与の有無によりフラグの有無を表現してもよい。更新ファイル307に削除禁止フラグを付与するか否かは、更新ファイル307の作成者、または更新ファイル307をサーバ装置2に格納する者が決定する。削除禁止フラグを付与する基準は様々であるが、たとえば重要な情報の更新、たとえばナビゲーションなどに用いる地図の更新が含まれる場合に削除禁止フラグを付与することが考えられる。 In the update file 307 transmitted by the update device 10 to the update device 10 in the present embodiment, a deletion prohibition flag described later may be set. However, the deletion prohibition flag may express the presence or absence of the flag by ON / OFF, and may indicate the presence or absence of the flag according to the presence or absence of the deletion prohibition flag. The creator of the update file 307 or the person who stores the update file 307 in the server apparatus 2 determines whether to add the deletion prohibition flag to the update file 307 or not. There are various criteria for giving the deletion prohibition flag, but it is conceivable to give the deletion prohibition flag, for example, when the update of important information, for example, the update of a map used for navigation etc. is included.
(管理情報7B)
 図33は、本実施の形態における管理情報7Bの一例を示す図である。管理情報7Bは、第1の実施の形態における構成に加えて、削除の禁止を示す削除禁止フラグのフィールドを備える。削除禁止フラグの初期値は「NO」であり、削除が禁止されない。サーバ装置2から受信する更新ファイル307に削除禁止フラグが付与されていた場合には、マウントパスへの書き込みの際に管理情報7Bの削除禁止フラグを「YES」に書き換える。
(Management information 7B)
FIG. 33 is a diagram showing an example of management information 7B in the present embodiment. The management information 7B includes, in addition to the configuration of the first embodiment, a field of a deletion prohibition flag indicating prohibition of deletion. The initial value of the deletion prohibition flag is "NO", and deletion is not prohibited. When the deletion prohibition flag is added to the update file 307 received from the server device 2, the deletion prohibition flag of the management information 7 B is rewritten to “YES” at the time of writing to the mount path.
 たとえば図33に示す例では、処理番号が「2」および「4」の際に受信した更新ファイル307に削除禁止フラグが付与されていたので、処理番号「2」および「4」の削除禁止フラグが「YES」に設定されている。 For example, in the example shown in FIG. 33, since the deletion prohibition flag is added to the update file 307 received when the processing numbers are "2" and "4", deletion prohibition flags for the processing numbers "2" and "4" are given. Is set to "YES".
(ロールバック部47のフローチャート)
 図34は、本実施の形態におけるロールバック部47の動作を表すフローチャートである。なおロールバック処理そのものは第1の実施の形態と同様の動作なのでここでは説明を省略し、どの処理番号までロールバックを行うかを決定する処理を説明する。ロールバック部47は、サーバ装置2からロールバックの指令を受けると、まずその指令が強制指令であるか否かを判断する(S1401)。強制指令であると判断する場合は(S1401:YES)、ロールバック部47は指定された番号までロールバックを行う。ロールバックの指令が強制指令でないと判断する場合は、管理情報7Bを参照して削除禁止フラグが付されている最上位の番号を特定する(S1403)。たとえば図33に示す例では、処理番号「2」と「4」に削除禁止フラグが付されているので、最上位の番号として「4」を特定する。
(Flowchart of rollback unit 47)
FIG. 34 is a flowchart showing the operation of the rollback unit 47 in the present embodiment. Since the rollback processing itself is the same operation as that of the first embodiment, the description is omitted here, and the processing for determining to which processing number the rollback is to be performed will be described. When the rollback unit 47 receives a rollback instruction from the server device 2, the rollback unit 47 first determines whether the instruction is a forced instruction (S1401). If it is determined that the command is a compulsory command (S1401: YES), the rollback unit 47 performs rollback to the designated number. If it is determined that the rollback command is not a forcible command, the management information 7B is referred to and the highest number to which the deletion prohibition flag is attached is specified (S1403). For example, in the example shown in FIG. 33, since the deletion prohibition flag is attached to the process numbers “2” and “4”, “4” is specified as the highest order number.
 次にロールバック部47は、サーバ装置2から指定された番号がS1403において特定した番号よりも大きいか否かを判断する(S1404)。ロールバック部47は、指定された番号の方が大きいと判断する場合は(S1404:YES)、S1402に進んで指定された番号までロールバックを行う。ロールバック部47は、指定された番号がフラグ付きの最上位以下であると判断する場合は(S1404:NO)、フラグ付きの最上位の番号までロールバックを行う(S1405)。S1402またはS1405の実行が完了するとロールバック部47は図34に示す処理を終了する。 Next, the rollback unit 47 determines whether the number designated by the server device 2 is larger than the number identified in S1403 (S1404). If it is determined that the designated number is larger (S1404: YES), the rollback unit 47 proceeds to S1402 and performs rollback to the designated number. If it is determined that the designated number is equal to or less than the flagged topmost (S1404: NO), the rollback unit 47 performs rollback to the flagged topmost number (S1405). When the execution of S1402 or S1405 is completed, the rollback unit 47 ends the process shown in FIG.
 上述した第5の実施の形態によれば、次の作用効果が得られる。
(10)通信部31は更新ファイル307とともに削除の可否を示す削除禁止フラグを受信する。更新部33は、管理情報7Bを用いてコンテナレイヤごとに削除禁止フラグの有無を管理する。ロールバック部47は、図34に示すようにロールバック番号を削除禁止フラグが付された最上位以上の数に制限することで削除禁止フラグが付されたコンテナレイヤを削除しない。そのため強制指令を受けない限りは、削除禁止フラグが付された重要な更新の情報を保持することができる。
According to the fifth embodiment described above, the following effects can be obtained.
(10) The communication unit 31 receives the update prohibition file 307 and the deletion prohibition flag indicating the deletion possibility. The updating unit 33 manages the presence / absence of the deletion prohibition flag for each container layer using the management information 7B. The rollback unit 47 does not delete the container layer with the deletion prohibition flag by limiting the rollback number to the number higher than or equal to the highest number with the deletion prohibition flag, as shown in FIG. Therefore, as long as the compulsory instruction is not received, it is possible to hold the information of the important update with the deletion prohibition flag.
 上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。 Each embodiment and modification mentioned above may be combined respectively. Although various embodiments and modifications have been described above, the present invention is not limited to these contents. Other embodiments considered within the scope of the technical idea of the present invention are also included within the scope of the present invention.
 次の優先権基礎出願の開示内容は引用文としてここに組み込まれる。
 日本国特許出願2017-234383(2017年12月6日出願)
The disclosure content of the following priority basic application is incorporated herein by reference.
Japanese patent application 2017-234383 (filed on December 6, 2017)
1…車両
2…サーバ装置
7、7A、7B…管理情報
10…更新装置
30…更新管理部
31…通信部
33…更新部
34…実行部
35…オーバーレイ実行部
36…差分更新部
37…実行レイヤ指定部
38…更新開始判断部
39…更新レイヤ指定部
40…レイヤファイル合成部
41…合成範囲指定部
44…ストレージ残量検出部
46…オーバーレイ管理部
47…ロールバック部
50…レコード更新部
51…フラグ設定部
52…レイヤファイル合成部
54…イグニッション受信部
70…ソフト実行パス
71…ソフト更新パス
72…レイヤ合成パス
DESCRIPTION OF SYMBOLS 1 ... Vehicle 2 ... Server apparatus 7, 7A, 7B ... Management information 10 ... Update apparatus 30 ... Update management part 31 ... Communication part 33 ... Update part 34 ... Execution part 35 ... Overlay execution part 36 ... Difference update part 37 ... Execution layer Designation section 38 Update start judgment section 39 Update layer specification section 40 Layer file synthesis section 41 Combination range specification section 44 Storage remaining amount detection section 46 Overlay management section 47 Rollback section 50 Record update section 51 Flag setting unit 52 ... layer file combining unit 54 ... ignition receiving unit 70 ... software execution path 71 ... software update path 72 ... layer combining path

Claims (10)

  1.  複数のデータファイルが格納される記憶部と、
     サーバ装置から更新ファイルを受信する通信部と、
     前記記憶部のファイルパスであり前記複数のデータファイルが含まれる読み込み専用のイメージレイヤ、前記記憶部のファイルパスであり読み書き可能なコンテナレイヤ、および前記記憶部のファイルパスであるコンテナマウントを設定するオーバーレイ管理部と、
     前記コンテナマウントを、前記イメージレイヤを下位レイヤとし前記コンテナレイヤを上位レイヤとして重ね合わせたファイル状態とし、前記コンテナマウントへの書き込み処理は前記コンテナレイヤへの書き込みとするオーバーレイ処理を実行するオーバーレイ実行部と、
     前記更新ファイルを用いて前記コンテナマウントへの書き込み処理を実行し、前記複数のデータファイルの少なくとも一部を更新する更新部とを備える更新装置。
    A storage unit in which a plurality of data files are stored;
    A communication unit that receives an update file from the server device;
    The file path of the storage unit, the read-only image layer including the plurality of data files, the file path of the storage unit, the readable and writable container layer, and the container mount which is the file path of the storage unit are set. Overlay management department,
    An overlay execution unit that executes an overlay process in which the container mount is in a file state in which the image layer is a lower layer and the container layer is an upper layer and the writing to the container mount is writing to the container layer When,
    An update device comprising: an update unit that executes a write process to the container mount using the update file and updates at least a part of the plurality of data files.
  2.  請求項1に記載の更新装置において、
     前記複数のデータファイルには実行可能ファイルが含まれ、
     前記記憶部のファイルパスである実行パスに存在する実行可能ファイルを実行する実行部をさらに備え、
     前記更新部は、前記コンテナマウントへの書き込みを行うと、前記実行パスを前記イメージレイヤから前記コンテナマウントへ書き換える更新装置。
    In the updating device according to claim 1,
    The plurality of data files include executable files,
    It further comprises an execution unit for executing an executable file present in an execution path which is a file path of the storage unit,
    The update device rewrites the execution path from the image layer to the container mount when the update unit performs writing to the container mount.
  3.  請求項1または請求項2に記載の更新装置において、
     前記オーバーレイ実行部は、第1の前記オーバーレイ処理が有効な状態でさらに第2の前記オーバーレイ処理を実行し、
     前記第2のオーバーレイ処理における前記イメージレイヤには、前記第1のオーバーレイ処理における前記コンテナマウントに設定されたファイルパスが設定される更新装置。
    In the updating device according to claim 1 or 2,
    The overlay execution unit further executes the second overlay processing while the first overlay processing is in effect.
    The update device in which a file path set in the container mount in the first overlay process is set in the image layer in the second overlay process.
  4.  請求項3に記載の更新装置において、
     前記オーバーレイ実行部は、複数の前記オーバーレイ処理を実行し、
     前記複数のオーバーレイ処理ではいずれも、前記イメージレイヤには直前の前記オーバーレイ処理における前記コンテナマウントに設定されたファイルパスが設定され、
     前記オーバーレイ実行部が作成した最新の前記オーバーレイ処理における前記コンテナマウントに設定されたファイルパスをコピー元とするコピー処理により前記更新部による複数回の更新をマージするレイヤ合成部をさらに備える更新装置。
    In the updating device according to claim 3,
    The overlay execution unit executes a plurality of overlay processes.
    In any of the plurality of overlay processes, a file path set in the container mount in the immediately preceding overlay process is set in the image layer,
    The updating apparatus further includes a layer combining unit that merges a plurality of updates by the updating unit by copy processing in which the file path set in the container mount in the latest overlay processing created by the overlay execution unit is a copy source.
  5.  請求項4に記載の更新装置において、
     前記記憶部の空き容量が予め定めた値を下回ると前記レイヤ合成部に動作指令を出力するレイヤ合成指令部をさらに備える更新装置。
    In the updating device according to claim 4,
    The updating apparatus further comprises a layer combining command unit that outputs an operation command to the layer combining unit when the free space of the storage unit falls below a predetermined value.
  6.  請求項1から請求項5までのいずれか一項に記載の更新装置において、
     前記更新装置が搭載される車両のイグニッションスイッチの状態を取得するイグニッション受信部と、
     前記イグニッション受信部の受信結果に基づき前記更新部に動作指令を出力する更新開始判断部とをさらに備える更新装置。
    The update device according to any one of claims 1 to 5.
    An ignition receiving unit for acquiring a state of an ignition switch of a vehicle on which the updating device is mounted;
    The update device further comprising: an update start determination unit that outputs an operation command to the update unit based on the reception result of the ignition reception unit.
  7.  請求項1から請求項6までのいずれか一項に記載の更新装置において、
     前記サーバ装置から受信する前記更新ファイルは差分データであり、
     前記記憶部に格納されている前記データファイルと前記更新ファイルとを用いて更新後のデータファイルを作成する差分更新部をさらに備える更新装置。
    The update device according to any one of claims 1 to 6.
    The update file received from the server device is differential data,
    An update device further comprising: a differential update unit that creates an updated data file using the data file stored in the storage unit and the update file.
  8.  請求項3に記載の更新装置において、
     前記コンテナレイヤを削除することで更新前の状態に戻すロールバック部をさらに備える更新装置。
    In the updating device according to claim 3,
    The update device further comprising: a rollback unit that restores the state before the update by deleting the container layer.
  9.  請求項8に記載の更新装置において、
     前記通信部は前記更新ファイルとともに削除の可否を示す削除禁止フラグを受信し、
     前記更新部は、前記コンテナレイヤごとに前記削除禁止フラグの有無を管理し、
     前記ロールバック部は、前記削除禁止フラグが付された前記コンテナレイヤを削除しない更新装置。
    In the updating device according to claim 8,
    The communication unit receives, together with the update file, a deletion prohibition flag indicating whether or not deletion is possible,
    The update unit manages the presence or absence of the deletion prohibition flag for each container layer,
    The update unit does not delete the container layer to which the deletion prohibition flag is attached.
  10.  ネットワークにより接続されるサーバ装置および更新装置を含む更新システムであって、
     前記更新装置は、
     複数のデータファイルが格納される記憶部と、
     前記サーバ装置から更新ファイルを受信する通信部と、
     前記記憶部のファイルパスであり前記複数のデータファイルが含まれる読み込み専用のイメージレイヤ、前記記憶部のファイルパスであり読み書き可能なコンテナレイヤ、および前記記憶部のファイルパスであるコンテナマウントを設定するオーバーレイ管理部と、
     前記コンテナマウントを、前記イメージレイヤを下位レイヤとし前記コンテナレイヤを上位レイヤとして重ね合わせたファイル状態とし、前記コンテナマウントへの書き込み処理は前記コンテナレイヤへの書き込みとするオーバーレイ処理を実行するオーバーレイ実行部と、
     前記更新ファイルを用いて前記コンテナマウントへの書き込みを行い、前記複数のデータファイルの少なくとも一部を更新する更新部とを備え、
     前記サーバ装置は、
     前記複数のデータファイルが格納されるサーバ記憶部と、
     前記更新装置に送信する前記更新ファイルが格納される更新ファイル記憶部と、
     前記更新装置に前記更新ファイルを送信するサーバ通信部と、
     前記サーバ記憶部のファイルパスであり前記複数のデータファイルが含まれる読み込み専用のサーバイメージレイヤ、前記サーバ記憶部のファイルパスであり読み書き可能なサーバコンテナレイヤ、および前記サーバ記憶部のファイルパスであるサーバコンテナマウントを設定するサーバオーバーレイ管理部と、
     前記サーバコンテナマウントが、前記サーバイメージレイヤを下位レイヤとし前記サーバコンテナレイヤを上位レイヤとして重ね合わせたファイル状態とし、前記サーバコンテナマウントへの書き込み処理は前記サーバコンテナレイヤへの書き込みとするサーバオーバーレイ処理を実行するサーバオーバーレイ実行部と、
     前記更新ファイルを用いて前記サーバコンテナマウントへの書き込みを行い、前記複数のデータファイルの少なくとも一部を更新するサーバ更新部とを備え、
     前記サーバオーバーレイ実行部は、第1の前記サーバオーバーレイ処理が有効な状態でさらに第2の前記サーバオーバーレイ処理を実行し、
     前記第2のサーバオーバーレイ処理における前記サーバイメージレイヤには、前記第1のサーバオーバーレイ処理における前記サーバコンテナマウントに設定されたファイルパスが設定され、
     前記サーバオーバーレイ実行部は、複数の前記サーバオーバーレイ処理を実行し、
     前記複数のサーバオーバーレイ処理ではいずれも、前記サーバイメージレイヤには直前の前記サーバオーバーレイ処理における前記サーバコンテナマウントに設定されたファイルパスが設定され、
     前記サーバ装置は、前記サーバオーバーレイ実行部が作成した最新の前記サーバオーバーレイ処理における前記サーバコンテナマウントに設定されたファイルパスをコピー元とし、所定のファイルパスであるマージパスをコピー先するコピー処理により前記サーバ更新部による複数回の更新をマージするサーバレイヤ合成部をさらに備え、
     前記サーバ通信部は、前記サーバレイヤ合成部が前記マージパスにコピーした複数のファイルの情報であるロールアップ情報を前記更新装置に送信し、
     前記更新装置は、前記サーバ装置から前記ロールアップ情報を受信すると、前記オーバーレイ処理を解除し前記複数のデータファイルに代えて前記ロールアップ情報を使用する更新システム。
     
    An update system including a server device and an update device connected by a network, the update system comprising:
    The updating device is
    A storage unit in which a plurality of data files are stored;
    A communication unit that receives an update file from the server device;
    The file path of the storage unit, the read-only image layer including the plurality of data files, the file path of the storage unit, the readable and writable container layer, and the container mount which is the file path of the storage unit are set. Overlay management department,
    An overlay execution unit that executes an overlay process in which the container mount is in a file state in which the image layer is a lower layer and the container layer is an upper layer and the writing to the container mount is writing to the container layer When,
    And an update unit that performs writing to the container mount using the update file and updates at least a part of the plurality of data files,
    The server device is
    A server storage unit in which the plurality of data files are stored;
    An update file storage unit storing the update file to be transmitted to the update device;
    A server communication unit that transmits the update file to the update device;
    A file path of the server storage unit, a read-only server image layer including the plurality of data files, a file path of the server storage unit, a readable / writable server container layer, and a file path of the server storage unit A server overlay management unit that sets a server container mount;
    A server overlay process in which the server container mount is in a file state in which the server image layer is a lower layer and the server container layer is an upper layer and the writing process to the server container mount is a writing to the server container layer A server overlay execution unit that executes
    A server update unit that writes to the server container mount using the update file and updates at least a part of the plurality of data files;
    The server overlay execution unit further executes the second server overlay process while the first server overlay process is in effect.
    In the server image layer in the second server overlay process, a file path set in the server container mount in the first server overlay process is set.
    The server overlay execution unit executes a plurality of server overlay processes.
    In any of the plurality of server overlay processes, a file path set in the server container mount in the server overlay process immediately before is set in the server image layer,
    The server device uses the file path set as the server container mount in the latest server overlay processing created by the server overlay execution unit as a copy source, and performs the copy processing to copy a merge path that is a predetermined file path. And a server layer composition unit that merges multiple updates by the server update unit,
    The server communication unit transmits rollup information, which is information on a plurality of files copied by the server layer synthesis unit to the merge path, to the update device.
    The update system, when receiving the rollup information from the server device, cancels the overlay processing and uses the rollup information in place of the plurality of data files.
PCT/JP2018/044604 2017-12-06 2018-12-04 Updating device and updating system WO2019111907A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017234383A JP2019101917A (en) 2017-12-06 2017-12-06 Updating apparatus, and updating system
JP2017-234383 2017-12-06

Publications (1)

Publication Number Publication Date
WO2019111907A1 true WO2019111907A1 (en) 2019-06-13

Family

ID=66751048

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/044604 WO2019111907A1 (en) 2017-12-06 2018-12-04 Updating device and updating system

Country Status (2)

Country Link
JP (1) JP2019101917A (en)
WO (1) WO2019111907A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220363A (en) * 2021-05-06 2021-08-06 技德技术研究所(武汉)有限公司 File opening method and device compatible with Android system running on Linux
JP2021197079A (en) * 2020-06-18 2021-12-27 トヨタ自動車株式会社 Software update apparatus, master, ota master, network system, method, program, center, and vehicle

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220253300A1 (en) * 2019-09-30 2022-08-11 Mitsubishi Electric Corporation Software update device, server, software update system, and software update method
KR102449979B1 (en) * 2020-11-26 2022-10-05 주식회사 드림에이스 Method and device for controlling system based on vehicle virtual structure

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197516B1 (en) * 2002-07-22 2007-03-27 Veritas Operating Corporation Method and system for an overlay filesystem
JP2008165377A (en) * 2006-12-27 2008-07-17 Nec Corp Terminal management system, method and program
JP2009199497A (en) * 2008-02-25 2009-09-03 Panasonic Corp Program management device, program management method and program management program
JP2011113123A (en) * 2009-11-24 2011-06-09 Mitsubishi Electric Corp Difference management device and computer program and difference management method
JP2016170740A (en) * 2015-03-16 2016-09-23 日立オートモティブシステムズ株式会社 Software updating device and software updating method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109618A (en) * 1999-10-13 2001-04-20 Nec Eng Ltd History managing file system
JP2006260212A (en) * 2005-03-17 2006-09-28 Nec Corp File edition management system, file registration server, file edition management method, and program
WO2009154272A1 (en) * 2008-06-20 2009-12-23 日本電気株式会社 Version control system, method, and program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197516B1 (en) * 2002-07-22 2007-03-27 Veritas Operating Corporation Method and system for an overlay filesystem
JP2008165377A (en) * 2006-12-27 2008-07-17 Nec Corp Terminal management system, method and program
JP2009199497A (en) * 2008-02-25 2009-09-03 Panasonic Corp Program management device, program management method and program management program
JP2011113123A (en) * 2009-11-24 2011-06-09 Mitsubishi Electric Corp Difference management device and computer program and difference management method
JP2016170740A (en) * 2015-03-16 2016-09-23 日立オートモティブシステムズ株式会社 Software updating device and software updating method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021197079A (en) * 2020-06-18 2021-12-27 トヨタ自動車株式会社 Software update apparatus, master, ota master, network system, method, program, center, and vehicle
JP7314867B2 (en) 2020-06-18 2023-07-26 トヨタ自動車株式会社 masters, network systems, methods, programs, centers and vehicles
CN113220363A (en) * 2021-05-06 2021-08-06 技德技术研究所(武汉)有限公司 File opening method and device compatible with Android system running on Linux
CN113220363B (en) * 2021-05-06 2022-04-19 技德技术研究所(武汉)有限公司 File opening method and device compatible with Android system running on Linux

Also Published As

Publication number Publication date
JP2019101917A (en) 2019-06-24

Similar Documents

Publication Publication Date Title
WO2019111907A1 (en) Updating device and updating system
US20220083177A1 (en) Meta-configuration of profiles
JP4841242B2 (en) Map data updating method and map data updating apparatus
CN101739278B (en) Enterprise-level application software updating method and system
CN108717360A (en) A kind of software version updating method and device
US8276078B2 (en) Image display apparatus and image display method
JP2005309995A (en) Device and method for managing information, and program
CN103229144A (en) Pre-heated software installation
JP6024279B2 (en) Device control program, information processing apparatus, and information processing system
CN107016280A (en) The upgrade method and system of a kind of client application
JPWO2007086096A1 (en) Information processing program and information processing apparatus
JP2014056319A (en) Information processor, program, and control method
JP6527401B2 (en) INFORMATION PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND PROGRAM
JP2016062319A (en) Data reading device, program and data reading method
WO2010053221A1 (en) Method and system for facilities management
US11269739B2 (en) Method and system for managing backup data
JP5471547B2 (en) Information recording apparatus, imaging apparatus, information updating method, and program
CN113687783A (en) Object aggregation method, system, device and computer storage medium
JP2007066200A (en) System, server, method and program for document management
US20100094804A1 (en) Method and Device for Updating a Database, and Computer Program Product
JP5151244B2 (en) Document management system, document management method, and computer program
CN103238148A (en) Data conversion device, data conversion method, and program for data conversion
CN104580286A (en) Implementing method for merging and storing multiple files under BS (browser/server) frame system
KR100927137B1 (en) Data update device, update method and recording medium thereof
JP3458421B2 (en) Document processing system

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: 18886675

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: 18886675

Country of ref document: EP

Kind code of ref document: A1