WO2017145357A1 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
WO2017145357A1
WO2017145357A1 PCT/JP2016/055815 JP2016055815W WO2017145357A1 WO 2017145357 A1 WO2017145357 A1 WO 2017145357A1 JP 2016055815 W JP2016055815 W JP 2016055815W WO 2017145357 A1 WO2017145357 A1 WO 2017145357A1
Authority
WO
WIPO (PCT)
Prior art keywords
update
software
difference
file
version
Prior art date
Application number
PCT/JP2016/055815
Other languages
English (en)
French (fr)
Inventor
直樹 菅原
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2018501526A priority Critical patent/JPWO2017145357A1/ja
Priority to CN201680082350.4A priority patent/CN108701063A/zh
Priority to PCT/JP2016/055815 priority patent/WO2017145357A1/ja
Priority to TW105114838A priority patent/TWI612471B/zh
Publication of WO2017145357A1 publication Critical patent/WO2017145357A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Definitions

  • the present invention relates to a method for updating software.
  • differential update As a method of updating the software.
  • the differential update first, the old version software and the new version software are compared, and the content of the change when the old version software is updated to the new version software is extracted as a difference. Thereafter, a difference installer that applies the extracted difference to the old version of the software is generated. Then, the differential installer is executed on the computer on which the old version of software is installed, and the old version of software is updated to the new version of software.
  • the old version software used for difference extraction and the old version software to which the difference is applied need to have the same file structure and the contents of each file.
  • the difference installer generally has a function to check whether the version of the software installed on the computer matches the version of the old version of the software used for the difference extraction. . This is based on the premise that the file structure and the contents of each file are the same if the software versions match.
  • the difference installer checks the version of software installed on the computer. Furthermore, in the conventional update method, the difference installer selects the difference required to update the old version of software installed on the computer from the prepared differences, and installs the selected difference on the computer. Applies to older versions of software. With the above procedure, the differential installer according to the conventional update method updates a plurality of old versions to new versions (for example, Patent Document 1).
  • the present invention is mainly intended to solve the above-described problems, and an object of the present invention is to efficiently update a file shared by a plurality of software.
  • An information processing apparatus includes: An extractor for extracting a difference from the shared file before the file update, which is generated by the file update, for each file update of the shared file performed in association with the software update of the plurality of software sharing the shared file; Analyzing the relationship between the software update of the plurality of software and the file update of the shared file, and obtaining the difference obtained by the file update performed in association with the software update performed in the user environment of the software installed in the user environment An information generation unit that generates differential selection information that can be selected by matching with a version; A differential installer including a selection program for selecting a difference acquired by a file update performed in association with a software update performed in the user environment by comparing the version of software installed in the user environment with the difference selection information A differential installer generating unit.
  • the difference installer selects the difference acquired by the file update performed along with the software update according to the software already installed in the user environment. And since the difference installer performs the file update of the shared file to which the selected difference is applied, the file update of the shared file can be performed efficiently.
  • FIG. 3 is a diagram illustrating a functional configuration example of a differential installer generation system according to the first embodiment.
  • FIG. 4 is a flowchart showing an operation in a difference extraction unit according to the first embodiment. The figure which shows the relationship between the software group which concerns on Embodiment 1, and a file.
  • FIG. 6 is a diagram showing an example of a version transition list according to the first embodiment. The figure which shows the structural example of the difference database which concerns on Embodiment 1.
  • FIG. FIG. 6 is a diagram showing an example of an application difference selection list according to the first embodiment.
  • FIG. 4 is a flowchart showing an operation for generating an applied difference selection list according to the first embodiment.
  • FIG. 4 is a flowchart showing an operation for generating an applied difference selection list according to the first embodiment.
  • FIG. 5 is a flowchart showing an operation in a difference installer generation unit according to the first embodiment.
  • FIG. 3 is a diagram illustrating a hardware configuration example of a differential installer generation system according to the first embodiment.
  • FIG. *** Explanation of configuration *** FIG. 1 shows a functional configuration example of a differential installer generation system 1000 according to the present embodiment.
  • the solid line arrow of FIG. 1 represents a calling relationship
  • the broken line arrow represents a data operation.
  • the difference installer generation system 1000 is an example of an information processing apparatus.
  • the operations performed in the differential installer generation system 1000 are examples of an information processing method and an information processing program.
  • the differential installer generation system 1000 is a computer provided with the hardware shown in FIG. The hardware configuration shown in FIG. 18 will be described later.
  • the difference installer generation system 1000 includes a difference extraction unit 1100, a difference installer generation unit 1200, an applied difference selection list storage unit 1300, and a difference database 1400.
  • the difference extraction unit 1100 includes a software installer reception unit 1101, a software group backup generation unit 1102, a software update execution unit 1103, a list generation unit 1104, a software group storage unit 1105, and a backup storage unit 1106.
  • the list generation unit 1104 is an example of an extraction unit and an information generation unit. The operations performed by the list generation unit 1104 are examples of extraction processing and information generation processing.
  • the differential installer generation unit 1200 includes an installer generation content reception unit 1201 and a differential installer generation execution unit 1202. The operation performed by the differential installer generation unit 1200 is an example of differential installer generation processing.
  • the differential installer generation system 1000 processing for extracting a difference between software and a difference between shared files and processing for generating a difference installer are performed.
  • the process of extracting the software difference and the shared file difference is performed by the difference extraction unit 1100.
  • the difference installer generation unit 1200 performs the process of generating the difference installer.
  • each processing will be described with reference to flowcharts.
  • FIG. 2 is a flowchart showing an operation example in the difference extraction unit 110.
  • step S ⁇ b> 101 the user designates a full installer of software including the shared file in the software installer reception unit 1101.
  • the user designates a full installer in the software installer reception unit 1101 every time software included in the software group is updated.
  • a plurality of software sharing a shared file is referred to as a software group.
  • software 1, software 2 and software 3 share shared file A and shared file B.
  • the software 1, software 2 and software 3 are software groups.
  • file 1 and file 2 in FIG. 3 are files unique to software 1.
  • File 3 is a file unique to software 2.
  • the file 4 is a file unique to the software 3.
  • Files unique to software that are not shared by these software groups are referred to as specific files.
  • step S102 the software group backup generation unit 1102 generates a backup of the files included in the software group.
  • the software group storage unit 1105 stores software groups. Each time a process for extracting a difference, which will be described later, is performed, the software group in the software group storage unit 1105 is updated by the software update execution unit 1103. For this reason, the software group storage unit 1105 stores the software group (updated software group) when the previous difference extraction process is performed as it is. In a later procedure, in order to extract a difference before and after an update for a file included in the software group, a file included in the software group before the update is required. Therefore, in step S102, the software group backup generation unit 1102 generates a backup of the software group and the files included in the software group.
  • the software group backup generation unit 1102 stores the generated software group and file backup in the backup storage unit 1106.
  • Software group updates are also referred to as software updates.
  • file update is also referred to as file update.
  • Software updates include both software version upgrades and new software installations.
  • File updates include both file upgrades and new file installations.
  • the software update execution unit 1103 updates the software group using the full installer.
  • the software update execution unit 1103 executes software update of each software according to the software update order assumed in the user environment.
  • the user environment is a computer on which software groups are installed.
  • the user environment is a computer different from the differential installer generation system 1000.
  • the software update execution unit 1103 updates the unique file of each software accompanying the update of each software.
  • the software update execution unit 1103 also updates the shared file accompanying the update of any software in the software group.
  • the difference extraction unit 1100 manages the update of each software, the update of the specific file, and the update of the shared file. In the present embodiment, the update of the shared file will be mainly described.
  • step S ⁇ b> 104 the list generation unit 1104 extracts a difference between the backup of the software group in the backup storage unit 1106 and the updated software group in the software group storage unit 1105.
  • the list generation unit 1104 performs difference extraction for each software, unique file difference extraction, and shared file difference extraction.
  • the list generation unit 1104 may determine whether or not there is a change in file units, and further performs a binary comparison of the files to extract the differences in binary units. May be.
  • FIG. 4 shows an example of the version transition list generated by the list generation unit 1104. In the version transition list, software version transition and shared file version transition are described.
  • FIG. 4 shows an example of the version transition list generated by the list generation unit 1104. In the version transition list, software version transition and shared file version transition are described. FIG.
  • FIG. 4 shows a version transition list for software 1 to 3 (hereinafter also referred to as SW1 to 3) that share shared file A and shared file B.
  • SW1 to 3 software 1 to 3
  • the “software version” column shows the version of the software after the update.
  • the history of the software update is shown by a combination of the value shown in the “installed software” column and the value shown in the “software version” column.
  • the order of software updates is described in order from the left. Specifically, in the example of FIG. 4, first, version 1.0 of software 1 is newly installed, then version 1.0 of software 2 is newly installed, and then version of software 3 is installed. 1.0 is newly installed.
  • software 1 is updated to version 2.0
  • software 2 is updated to version 2.0
  • a combination of a value indicated in the “installed software” column and a value indicated in the “software version” column (for example, a combination of “SW1” and “1.0”) is referred to as an update identifier.
  • the column “shared file version” the version of the shared file updated in the difference extraction unit 1100 by the software update execution unit 1103 is shown.
  • the “shared file version” column shows the process of updating the shared file in stages.
  • the order of file update is described in order from the left. Specifically, in the example of FIG. 4, version 1.0 of shared file A is installed when version 1.0 of software 1 is installed, and version 1.0 of shared file B is installed.
  • the shared file A is updated to version 1.1 when the version 2 of the software 2 is installed, and the shared file B is updated to version 1.1. Also, only the shared file A is updated to version 1.2 when software 3 version 1.0 is installed. In addition, only the shared file B is updated to version 1.2 when the software 1 is updated to version 2.0. In addition, when the software 2 is updated to version 2.0, only the shared file A is updated to version 1.3. If shared file differences are applied in the order shown in the “Shared File Version” column, all versions of the shared file can be reproduced in the user environment.
  • step S ⁇ b> 105 the list generation unit 1104 stores the difference extracted in step S ⁇ b> 104 in the difference database 1400.
  • a configuration example of the difference database 1400 is shown in FIG.
  • the difference database 1400 manages version information of unique files, version information of shared files, and difference information for each update identifier.
  • the version information of the specific file indicates a combination of the version name of the old version and the new version of the specific file.
  • the version information of the shared file indicates a combination of the version name of the old version and the new version of the shared file.
  • the difference information indicates a difference generated by software update, a difference generated by update of the unique file, and a difference generated by update of the shared file.
  • the list generation unit 1104 generates an update identifier for each software update, extracts a difference from the shared file before the file update for each file update of the shared file, and performs the file update. Is associated with the extracted difference.
  • the version information of the unique file indicates one version name of the unique file.
  • the difference information does not include the difference between the specific files.
  • the version information of the shared file indicates one version name of the shared file. Further, the difference information does not include the difference between the shared files.
  • step S106 the list generation unit 1104 generates an application difference selection list.
  • the application difference selection list is a list used for efficiently selecting a difference to be applied by the application difference selection program in the difference installer in the user environment.
  • the file update of the shared file is performed accompanying the software update.
  • the applied difference selection list allows you to select the applied difference selection program in the difference installer by comparing the difference acquired by the file update performed along with the software update performed in the user environment with the version of the software already installed in the user environment. It is a great list.
  • the list generation unit 1104 analyzes the relationship between the software update of the software group and the file update of the shared file, and identifies the version of the shared file used in the updated version of the software updated by the software update for each software update. Then, an application difference selection list is generated.
  • the applied difference selection list is an example of difference selection information. Details of the difference installer and the application difference selection program will be described later.
  • the applied difference selection list is shown in FIG.
  • the columns of “installed software” and “software version” are the same as those shown in FIG. That is, in the application difference selection list, the update identifiers of the software updates are indicated in the order of the software updates executed by the software update execution unit 1103.
  • the pointer information is information indicating an update identifier associated with the difference between the version of the shared file used in the updated version of the software indicated by the corresponding update identifier and the next version.
  • the applied difference selection program in the difference installer was extracted when version 1.0 of software 2 was installed by the software update execution unit 1103 when version 1.0 of software 1 was installed in the user environment. It is determined that the version 1.1 of the shared file A can be acquired by applying the difference of the shared file A to the version 1.0 of the shared file A. When the pointer information is 0, there is no difference for updating the shared file.
  • the application difference selection list is generated in step S106 according to the flowcharts shown in FIGS. Details of FIGS. 7 and 8 will be described later.
  • step S107 the list generation unit 1104 displays the application difference selection list on the display device, and the user confirms that the difference is correctly output.
  • step S301 the list generation unit 1104 adds a column to the right end of the application difference selection list, and writes the software and version in the added column.
  • step S302 the list generation unit 1104 selects one shared file from the application difference selection list.
  • step S309 the list generation unit 1104 determines whether the version of the software targeted in step S301 (hereinafter referred to as determination target software) includes the shared file selected in step S302 (whether the shared file is used). Is determined with reference to the version transition list. If the determination target software does not include a shared file in step S309, in step S303, the list generation unit 1104 designates “ ⁇ ” in the pointer information of the shared file selected in step S302 in the column added in step S301. To do. In step S310, the list generation unit 1104 determines whether all shared files have been selected. If there is a shared file that has not been selected, the list generating unit 1104 selects the next shared file in step S308.
  • the list generation unit 1104 determines whether or not the shared file has been updated in the determination target software update in step S311. Judge by referring to the version transition list. If the shared file has been updated in step S311, the list generation unit 1104 designates “0” in the pointer information of the shared file selected in step S302 in the column added in step S301 in step S304.
  • step S305 if there is another column whose pointer information of the shared file is “0”, the list generation unit 1104 sets the pointer information of the other column to indicate the column added in step S301. Update.
  • the list generation unit 1104 refers to the version transition list in step S306 and confirms the version of the shared file in the determination target software.
  • the list generation unit 1104 designates the movement amount to the software column from which the difference to be applied next is extracted, in the shared file pointer information of the column added in step S301.
  • step S ⁇ b> 201 the user designates information on a differential installer to be generated in the installer generation content reception unit 1201.
  • the version before update is the oldest version that can be updated by the generated differential installer.
  • the version before the update Is 1.0
  • the updated version is version 3.0. At this time, it is possible to update from version 2.0 to version 3.0 using the generated difference installer.
  • step S202 the difference installer generation execution unit 1202 acquires an application difference selection list.
  • the application difference selection list is stored in the application difference selection list storage unit 1300.
  • the applied difference selection list acquired by the difference installer generation execution unit 1202 needs to have a column corresponding to the updated version of the software. For example, in the applied difference selection list of FIG. 6, since the last added column is a column corresponding to the rightmost software 2, version 2.0, in this applied difference selection list, from software 2, version 2.0 However, it is not possible to generate a differential installer for later-developed software.
  • step S203 the difference installer generation executing unit 1202 selects a difference necessary for generating the difference installer based on the information of the applied difference selection list acquired in step S202. Details of the operation in step S203 will be described later with reference to FIG.
  • step S ⁇ b> 204 the difference installer generation execution unit 1202 acquires the difference necessary for generating the difference installer from the difference database 1400. That is, the difference installer generation execution unit 1202 acquires the difference information illustrated in FIG. 5 from the difference database 1400.
  • the difference installer generation execution unit 1202 generates a difference installer.
  • the difference installer includes the application difference selection list acquired in step S202, the difference acquired in step S204, and the application difference selection program.
  • the application difference selection program is a program that applies necessary differences in an appropriate order using information on the version of software already installed in the user environment and an application difference selection list. More specifically, the application difference selection program extracts an update identifier that matches a pair of software installed in the user environment and its version from a plurality of update identifiers shown in the application difference selection list. Then, the applied difference selection program obtains the difference associated with the update identifier indicated by the pointer information associated with the extracted update identifier by the file update performed in association with the software update performed in the user environment. Select as the difference.
  • the applied difference selection program is an example of a selection program. An operation example of the application difference selection program will be described later with reference to the flowcharts of FIGS.
  • the differential installer generation execution unit 1202 displays a message notifying that the generation of the differential installer has been completed, and in step 206, the user confirms that the differential installer has been generated.
  • step S203 of FIG. 9 the details of the operation of step S203 of FIG. 9, that is, the operation of selecting a difference necessary for software update will be described.
  • step S401 the differential installer generation execution unit 1202 designates a column of the version before update of the software for generating the differential installer from the applied difference selection list.
  • This column is hereinafter referred to as column A.
  • step S402 the difference installer generation execution unit 1202 designates the updated version column of the software for generating the difference installer from the application difference selection list.
  • This column is hereinafter referred to as column B.
  • step S403 the differential installer generation execution unit 1202 installs software corresponding to a column (also referred to as an intermediate column) between column A and column B, updates to the corresponding software, and supports column B.
  • the difference of all the shared files extracted when the software to be installed or the update to the corresponding software is performed is selected as a necessary difference.
  • step S404 the differential installer generation execution unit 1202 installs or updates the software corresponding to the column between columns A and B, and installs or supports the software corresponding to column B.
  • the difference between the unique files of the software that generates the difference installer is selected as the necessary difference.
  • FIG. 11 shows an example of selecting a difference necessary for generating a difference installer for updating version 1.0 of software 1 to version 2.0 when the applied difference selection list of FIG. 6 is used.
  • the difference between the shared files when installing version 2 of software 2 the difference between the shared files when installing version 1.0 of software 3, and the update to version 2.0 of software 1
  • the difference of the shared file at the time is selected.
  • the difference between the unique files when the software 1 is updated to version 2.0 is selected.
  • the application difference selection program first confirms all of the difference candidates to be applied first, and then applies to the shared file in order from the oldest difference.
  • the application difference selection program confirms candidates for differences to be applied for each line corresponding to each shared file in the application difference selection list. More specifically, the application difference selection program determines the start point and the end point for each row of the application difference selection list, checks the column indicated by the pointer information from the start point to the end point, and newly sets the column indicated by the pointer information. Repeat as the starting point. At this time, the difference corresponding to the passed column is a candidate for the difference to be applied. More specifically, the application difference selection program operates according to the flow shown in FIGS. The operation of the application difference selection program will be described below with reference to FIGS.
  • step S500 the application difference selection program determines whether or not the difference installer is applied to the user environment for the first time.
  • the application difference selection program acquires information of differences applied in the past in step S501.
  • step S502 the application difference selection program acquires the software installed in the user environment and its version from the user environment.
  • step S514 the application difference selection program determines whether or not a version-updateable software is installed in the user environment. If a version of software that can be differentially updated is not installed in the user environment, in step S513, the application difference selection program notifies the user of the user environment that the differential update has failed.
  • step S503 the application difference selection program checks the column of the version already installed in the user environment and the column of the updated version in the application difference selection list, and the middle column and the column of the version after the update. If there is a column including the difference of the unique file of the software to be differentially installed, the difference of the corresponding column is added to the difference candidate.
  • step S504 the application difference selection program selects one line of the shared file from the application difference selection list.
  • step S505 the application difference selection program specifies the start point column and the end point column from the row selected in step S504.
  • step S515 the application difference selection program determines whether or not the start point column is to the left of all the end point columns.
  • step 515 if the start point column is not to the left of all the end point columns, the application difference selection program makes a determination in step S517.
  • step S506 the application difference selection program indicates the column pointed to by the pointer information of the start point column in the row selected in step S504. Confirm.
  • the application difference selection program includes the difference of the shared file extracted when the software corresponding to the column indicated by the pointer information is updated by the software update execution unit 1103 as the difference candidate to be applied. If not, the difference is added as a candidate difference to be applied.
  • step S516 the application difference selection program determines whether the column pointed to by the pointer information is an end point column.
  • step S516 if the column pointed to by the pointer information is not the end point column, the application difference selection program designates the column pointed to by the pointer information as the next start point column. Thereafter, the application difference selection program repeats the operations after step S515.
  • step S516 if the column pointed to by the pointer information is the end point column, the application difference selection program has checked in step S517 about all shared file rows included in the application difference selection list. Determine.
  • step S517 If there is a line that has not been confirmed in step S517, the application difference selection program selects an unconfirmed shared file line from the application difference selection list in step S509.
  • the application difference selection program determines the difference candidates to be applied in order from the left side of the application difference selection list in step S510. Applies to specific files.
  • step S511 the applied difference selection program records the applied difference information in a storage area in the user environment.
  • step S512 the application difference selection program notifies the user in the user environment that the difference update has been completed.
  • FIG. 14 shows an operation example of the application difference selection program. 14, in the user environment in which version 1 of software 1 and version 1.0 of software 2 are already installed, an operation example of the application difference selection program of the difference installer of software 1 having the application difference selection list of FIG. Show.
  • the application difference selection program extracts software 1.0 version 1.0 and software 2 version 1.0, which are software installed in the user environment.
  • the application difference selection program designates a column corresponding to version 1.0 of software 2 as a starting point column (step S505).
  • the application difference selection program designates the column corresponding to version 2.0 of software 1 that is the target of the software update and the column of version 1.0 of software 3 as the end point column (step S505).
  • the application difference selection program confirms the row indicated by the pointer information of the starting row.
  • the pointer information is “1”
  • the difference included in the difference installer corresponding to the version 1.0 column of the software 3 is added to the difference candidate to be applied (step S507).
  • the application difference selection program designates the column indicated by the pointer information of the starting point column as the next starting point column (step S508). That is, the application difference selection program designates the version 1.0 column of software 3 as the next starting point column.
  • the applied difference selection program finishes selecting the difference for the shared file A. .
  • the difference of the shared file A extracted when the version 1.0 of the software 3 is installed by the software update execution unit 1103 is accompanied with the update to the version 2.0 of the software 1 in the user environment. Used to update the shared file A. That is, the difference installer applies the difference to the shared file A existing in the user environment in parallel with the update of the software 1 to version 2.0, and updates the shared file A.
  • step S601 the application difference selection program extracts columns corresponding to software installed in the user environment and columns corresponding to differences applied in the past from the application difference selection list as start point candidates.
  • step S602 the application difference selection program confirms the column indicated by the pointer information for each starting point candidate, and designates the column indicating the rightmost column as the starting point column.
  • the application difference selection program designates the rightmost column in the application difference selection list as the starting column.
  • step S603 the application difference selection program checks the pointer information of the updated software column.
  • step S607 the application difference selection program determines whether or not the value of the pointer information is “ ⁇ ”.
  • the applied difference selection program designates all columns in which the pointer information points to the left of the updated software column as end points in step S604. .
  • step S607 the application difference selection program determines whether the pointer information is “0” in step S608.
  • step S608 the application difference selection program designates all the columns having the pointer information “0” as end points in step S605.
  • step S608 the application difference selection program designates the updated software column as the end point in step S606. Also, the application difference selection program designates the column indicated by the pointer information of the updated software column and all other columns indicated by the pointer information as end points.
  • FIGS. 16 and 17 show operations for obtaining the start point and the end point when updating software 1 to version 2.0 in a user environment in which version 1.0 of software 1 and version 1.0 of software 2 are installed.
  • the application difference selection program extracts the version 1.0 column of software 1 and the version 1.0 column of software 2 as the starting point candidate columns (step S601). In addition, the application difference selection program confirms the column pointed to by the pointer information of each starting point candidate column (step S602). Since the column pointed to by the pointer information of the software 2 version 1.0 is on the right side of the column pointed to by the pointer information of the version 1.0 of the software 1, the application difference selection program performs the following operations on the shared file A and the shared file B. A column of version 1.0 of software 2 is designated as a starting point column (step S602).
  • the application difference selection program checks the pointer information in the column of version 2.0 of software 1 that is the updated software column (step S603).
  • the pointer information in the column of software 1 version 2.0 is neither “ ⁇ ” nor “0”.
  • the applied difference selection program is the version 2 of software 2 that is the column indicated by the pointer information of the column of software 1 version 2.0 and the column of software 1 version 2.0.
  • the column of version 3 of software 3 in which the pointer information points to .0 is designated as the end point column (step S606).
  • the application difference selection program designates the version 2.0 column of software 1 and the column of version 2.0 of software 2 whose pointer information is “0” as end point columns (step S605).
  • the application difference selection program uses an update identifier (first update identifier) that matches a pair of software and its version installed in the user environment from a plurality of update identifiers shown in the application difference selection list. Extract a column as the starting column. Also, the application difference selection program extracts a column of update identifiers (second update identifiers) that match a pair of software updated by a software update performed in the user environment and the version after update as a column of end points. Then, the application difference selection program executes the intermediate between the difference associated with the update identifier indicated by the pointer information associated with the start point column and the start point column and the end point column in the application difference selection list.
  • first update identifier that matches a pair of software and its version installed in the user environment from a plurality of update identifiers shown in the application difference selection list. Extract a column as the starting column. Also, the application difference selection program extracts a column of update identifiers (second update identifiers) that match a pair of software updated by
  • the difference acquired by the file update performed in association with the software update performed in the user environment, with the difference associated with the update identifier indicated by the pointer information associated with the update identifier (intermediate update identifier) of the column choose as.
  • the application difference selection program is configured such that the update identifier indicated by the pointer information associated with the update identifier (intermediate update identifier) of the intermediate column in the application difference selection list is the update identifier (intermediate update identifier) of the other intermediate column or the end point Difference associated with the update identifier (second update identifier) of another intermediate column or the update identifier (second update identifier) of the end column. Is selected as a difference acquired by a file update performed in association with a software update performed in the user environment.
  • a difference extraction machine H100 is a computer that performs the processing of the difference extraction unit 1100 in FIG.
  • the differential installer generation machine H200 is a computer that performs the processing of the differential installer generation unit 1200 of FIG.
  • the installation medium H300 is a medium for inputting an installer to the difference extraction machine H100 when the difference extraction unit 1100 performs difference extraction.
  • the differential installation medium H400 is a medium on which the differential installer generated by the differential installer generation machine H200 is output.
  • the storage H500 is a storage device that implements the applied difference selection list storage unit 1300 and the difference database 1400 of FIG. In FIG.
  • the difference extraction machine H100 and the difference installer generation machine H200 are separate computers, but one computer may have the roles of the difference extraction machine H100 and the difference installer generation machine H200.
  • the storage H500 may be realized by a hard disk of a computer. Further, when the installer is distributed as electronic data instead of media, the disk drive H103 and the disk drive H203 are not required.
  • the operation of the difference extraction unit 1100 in FIG. 1 is realized by the processor H101 executing the program expanded in the memory H102 in FIG. That is, the difference extraction unit 1100 is configured by a program.
  • This program is stored in the hard disk H104, loaded into the memory H102, and executed by the processor H101.
  • the processor H101 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or the like.
  • the memory H102 is a RAM (Random Access Memory).
  • the hard disk H104 is a non-volatile storage device, and implements the software group storage unit 1105 and the backup storage unit 1106 in FIG.
  • the installer included in the installation medium H300 is acquired by the disk drive H103.
  • the hard disk H 104 is operated.
  • the execution program of the installer is expanded in the memory H102 and executed by the processor H101, whereby the contents of the hard disk H104 are updated.
  • the processor H101 extracts the difference between the two software groups recorded on the hard disk H104, and then updates the applied difference selection list and the difference database 1400 via the LAN adapter H105.
  • the storage H500 is accessed.
  • the hard disk H104 also stores an OS (Operating System). Then, at least a part of the OS is executed by the processor H101.
  • OS Operating System
  • the operation of the differential installer generation unit 1200 is realized by the processor H201 executing the program expanded in the memory H202. That is, the difference installer generation unit 1200 is configured by a program. This program is stored in the hard disk H204, loaded into the memory H202, and executed by the processor H201.
  • the processor H201 is a CPU, a DSP, or the like.
  • the memory H202 is a RAM.
  • the processor H201 acquires the application difference selection list and necessary differences from the storage H500 via the LAN adapter H205. Then, the processor H201 generates a difference installer by combining the application difference selection list, the difference, and the application difference selection program recorded in the hard disk H204.
  • the processor H201 records the generated differential installer on the hard disk H204. Further, the processor H201 uses the disk drive H203 to generate a differential installation medium H400.
  • the hard disk H204 also stores an OS. At least a part of the OS is executed by the processor H201. When the processor H201 executes the OS, task management, memory management, file management, communication control, and the like are performed.
  • a software installer reception unit 1101, a software group backup generation unit 1102, a software update execution unit 1103, a list generation unit 1104, an installer generation content reception unit 1201, and a differential installer generation execution unit 1202 (hereinafter collectively referred to as “unit”) ) May be stored in a portable storage medium such as a hard disk, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, or DVD.
  • a portable storage medium such as a hard disk, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, or DVD.
  • the differential installer generation system 1000 may be realized by an electronic circuit such as a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array). In this case, each “unit” is realized as part of an electronic circuit.
  • the processors H101 and H201 and the above electronic circuits are collectively referred to as a processing circuit.
  • the difference extraction unit 1100 has a software group that is a plurality of software sharing a shared file, and the difference extraction is performed while the software group is updated by the installer. For this reason, a difference for updating the version in one step can be obtained for all versions of the shared file. Then, using the application difference selection list and the application difference selection program, the difference is sequentially applied to the shared file in the user environment, so that the shared file can be updated together with the software update.
  • the unit for performing difference extraction is the entire software group, even if there are many shared files, the difference extraction can be performed only once with one update, and there is no need to perform difference extraction for each shared file.
  • the version of the shared file corresponds to the update contents by the entered installer. Moreover, since the difference is extracted separately for the software specific file and the shared file, the management of the difference is easy.
  • the application difference selection program can select a difference to update the shared file if it knows which software has been updated or which difference has been applied to update the shared file. Therefore, it is not necessary to specify the version of the shared file to be updated in the difference installer.
  • the application difference selection program determines the difference to be applied based on the information in the application difference selection list. For this reason, if the application difference selection list is updated, the application difference selection program can be diverted to any version of any software update. Therefore, it becomes easy to generate a difference installer.
  • the difference installer having a plurality of differences attempts to apply each difference and checks the version of each file at the application destination.
  • the conventional differential installer performs a process of updating if the version can be updated and performing nothing if the version cannot be updated. In such a differential installer, even if the update is not performed, the version check is performed on each file, so the installation time may be long.
  • the version of the shared file included in the software developed later is older than the version of the shared file included in the software developed earlier.
  • the difference can be applied without problems.
  • differential installer generation system 1000 differential installer generation system, 1100 differential extraction unit, 1101 software installer reception unit, 1102 software group backup generation unit, 1103 software update execution unit, 1104 list generation unit, 1105 software group storage unit, 1106 backup storage unit, 1200 differential installer generation , 1201 Installer generation content reception unit, 1202 Difference installer generation execution unit, 1300 Applied difference selection list storage unit, 1400 Difference database.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

リスト生成部(1104)は、共有ファイルを共有するソフトウェア群のソフトウェアアップデートに付随して行われる共有ファイルのファイルアップデートにより発生した共有ファイルの差分を抽出し、ソフトウェアアップデートとファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分をユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な適用差分選択リストを生成する。差分インストーラ生成部(1200)は、ユーザ環境にインストール済みのソフトウェアのバージョンと適用差分選択リストとを照合してユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する適用差分選択プログラムが含まれる差分インストーラを生成する。

Description

情報処理装置、情報処理方法及び情報処理プログラム
 本発明は、ソフトウェアをアップデートする方法に関する。
 ソフトウェアをアップデートする方法として差分アップデートがある。差分アップデートでは、まず、旧バージョンのソフトウェアと新バージョンのソフトウェアが比較され、旧バージョンのソフトウェアから新バージョンのソフトウェアへアップデートする際の変更内容が差分として抽出される。その後、抽出された差分を旧バージョンのソフトウェアに適用する差分インストーラが生成される。そして、旧バージョンのソフトウェアがインストールされたコンピュータ上で差分インストーラが実行されて、旧バージョンのソフトウェアが新バージョンのソフトウェアにアップデートされる。
 差分アップデートにおいて、差分抽出に用いられる旧バージョンのソフトウェアと、差分が適用される旧バージョンのソフトウェアは、ファイル構成、および各ファイルの内容が同一である必要がある。これら2つの旧バージョンのソフトウェアの間で、ファイル構成または各ファイルの内容が異なる場合は、新バージョンへのアップデートがうまくいかず、場合によってはソフトウェアが実行不能となる。
 このような事態を避けるため、差分インストーラはコンピュータにインストールされたソフトウェアのバージョンが、差分抽出に用いられた旧バージョンのソフトウェアのバージョンと一致しているかを確認する機能を持つのが一般的である。これは、ソフトウェアのバージョンが一致していれば、ファイル構成、および各ファイルの内容は同一であることを前提としている。
 従来のアップデート手法では、差分インストーラが、コンピュータにインストールされたソフトウェアのバージョンを確認する。更に、従来のアップデート手法では、差分インストーラが、用意された複数の差分の中からコンピュータにインストールされている旧バージョンのソフトウェアをアップデートするために必要な差分を選択し、選択した差分をコンピュータにインストールされている旧バージョンのソフトウェアに適用する。以上の手順にて、従来のアップデート手法に係る差分インストーラが、複数の旧バージョンを新バージョンにアップデートする(例えば、特許文献1)。
特開平10-260820号公報
 大規模なソフトウェア群では、複数のソフトウェアから参照され、共通で使用されるファイル(以下、共有ファイル)が存在する。このような共有ファイルの多くは、アップデートされた場合にも下位互換性を持つ。本明細書では、共有ファイルが下位互換性を持つことを前提とする。
 共有ファイルを共有しているソフトウェアをアップデートするとき、アップデート後のソフトウェアが、共有ファイルの新しい機能を使用している場合には、共有ファイルも同時にアップデートする必要がある。
 従来の差分アップデート手法を用いて共有ファイルを差分アップデートする場合、共有ファイルにバージョン情報を付与し、共有ファイルがバージョンアップする度に差分抽出を行うことになる。そして、差分インストーラを生成する際には、その共有ファイルを差分アップデートするために、どの差分を共有ファイルに適用するかを指定する必要がある。この一連の作業は共有ファイルそれぞれについて行う必要があるため、共有ファイルの数が増えるに従って作業量は線形的に増加する。そのため、従来手法では多くの共有ファイルが存在するソフトウェアを差分アップデートすることが困難であるという課題があった。
 この発明は上記のような課題を解決することを主な目的とし、複数のソフトウェアで共有される共有ファイルのファイルアップデートを効率的に行うことを目的とする。
 本発明に係る情報処理装置は、
 共有ファイルを共有する複数のソフトウェアのソフトウェアアップデートに付随して行われる前記共有ファイルのファイルアップデートごとに、ファイルアップデートにより発生した、ファイルアップデート前の前記共有ファイルとの差分を抽出する抽出部と、
 前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成する情報生成部と、
 前記ユーザ環境にインストール済みのソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する差分インストーラ生成部とを有する。
 本発明によれば、ユーザ環境にインストール済みのソフトウェアに応じて、ソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を差分インストーラが選択する。そして、差分インストーラが、選択した差分を適用した共有ファイルのファイルアップデートを行うため、共有ファイルのファイルアップデートを効率的に行うことができる。
実施の形態1に係る差分インストーラ生成システムの機能構成例を示す図。 実施の形態1に係る差分抽出部における動作を示すフローチャート図。 実施の形態1に係るソフトウェア群とファイルの関係を示す図。 実施の形態1に係るバージョン遷移リストの例を示す図。 実施の形態1に係る差分データベースの構成例を示す図。 実施の形態1に係る適用差分選択リストの例を示す図。 実施の形態1に係る適用差分選択リストの生成動作を示すフローチャート図。 実施の形態1に係る適用差分選択リストの生成動作を示すフローチャート図。 実施の形態1に係る差分インストーラ生成部における動作を示すフローチャート図。 実施の形態1に係る差分インストーラ生成のための差分の選択動作を示すフローチャート図。 実施の形態1に係る差分インストーラ生成のための差分の選択動作を示す図。 実施の形態1に係る適用差分選択プログラムの動作例を示す図。 実施の形態1に係る適用差分選択プログラムの動作例を示す図。 実施の形態1に係る適用差分選択プログラムの差分の選択動作を示す図。 実施の形態1に係る適用差分選択プログラムの始点と終点の列を指定する動作を示すフローチャート図。 実施の形態1に係る適用差分選択プログラムの始点の列を指定する動作を示す図。 実施の形態1に係る適用差分選択プログラムの終点の列を指定する動作を示す図。 実施の形態1に係る差分インストーラ生成システムのハードウェア構成例を示す図。
 実施の形態1.
***構成の説明***
 図1は、本実施の形態に係る差分インストーラ生成システム1000の機能構成例を示す。なお、図1の実線の矢印は呼び出し関係を表し、破線の矢印はデータ操作を表している。
 差分インストーラ生成システム1000は、情報処理装置の例である。また、差分インストーラ生成システム1000で行われる動作は、情報処理方法及び情報処理プログラムの例である。
 差分インストーラ生成システム1000は、図18に示すハードウェアを備えるコンピュータである。なお、図18に示すハードウェア構成については後述する。
 差分インストーラ生成システム1000は、差分抽出部1100、差分インストーラ生成部1200、適用差分選択リスト記憶部1300、差分データベース1400で構成される。
 また、差分抽出部1100は、ソフトウェアインストーラ受付部1101、ソフトウェア群バックアップ生成部1102、ソフトウェアアップデート実行部1103、リスト生成部1104、ソフトウェア群記憶部1105、バックアップ記憶部1106から構成される。リスト生成部1104は、抽出部及び情報生成部の例である。また、リスト生成部1104で行われる動作は、抽出処理及び情報生成処理の例である。
 また、差分インストーラ生成部1200は、インストーラ生成内容受付部1201、差分インストーラ生成実行部1202から構成される。差分インストーラ生成部1200で行われる動作は、差分インストーラ生成処理の例である。
***動作の説明***
 次に、本実施の形態に係る差分インストーラ生成システム1000の動作例を説明する。
 差分インストーラ生成システム1000では、ソフトウェアの差分と共有ファイルの差分を抽出する処理と、差分インストーラを生成する処理が行われる。ソフトウェアの差分と共有ファイルの差分を抽出する処理は差分抽出部1100により行われる。また、差分インストーラを生成する処理は、差分インストーラ生成部1200により行われる。
 以下、フローチャートを参照して、それぞれの処理を説明する。
 図2は、差分抽出部110における動作例を示すフローチャートである。
 ステップS101において、ユーザが、ソフトウェアインストーラ受付部1101に、共有ファイルを含むソフトウェアのフルインストーラを指定する。
 ユーザは、ソフトウェア群に含まれるソフトウェアが更新される度に、ソフトウェアインストーラ受付部1101にフルインストーラを指定する。
 本明細書では、共有ファイルを共有する複数のソフトウェアをソフトウェア群という。例えば、図3では、ソフトウェア1、ソフトウェア2及びソフトウェア3が共有ファイルA及び共有ファイルBを共有している。これらソフトウェア1、ソフトウェア2及びソフトウェア3は、ソフトウェア群である。なお、図3のファイル1、ファイル2はソフトウェア1に固有のファイルである。ファイル3はソフトウェア2に固有のファイルである。ファイル4はソフトウェア3に固有のファイルである。これらソフトウェア群に共有されていない、ソフトウェアに固有のファイルを固有ファイルという。
 次に、ステップS102において、ソフトウェア群バックアップ生成部1102が、ソフトウェア群に含まれるファイルのバックアップを生成する。
 ソフトウェア群記憶部1105にはソフトウェア群が記憶されている。後述する差分を抽出する処理を行うたびに、ソフトウェア群記憶部1105のソフトウェア群はソフトウェアアップデート実行部1103によりアップデートされる。そのため、ソフトウェア群記憶部1105には、前回差分を抽出する処理を行った際のソフトウェア群(アップデート後のソフトウェア群)がそのまま格納される。
 後の手順で、ソフトウェア群に含まれるファイルについて、アップデート前後の差分抽出を行うためには、アップデート前のソフトウェア群に含まれるファイルが必要となる。そのため、ステップS102において、ソフトウェア群バックアップ生成部1102が、ソフトウェア群と、ソフトウェア群に含まれるファイルのバックアップを生成する。ソフトウェア群バックアップ生成部1102は、生成したソフトウェア群とファイルのバックアップをバックアップ記憶部1106に格納する。
 なお、ソフトウェア群のアップデートをソフトウェアアップデートともいう。更に、ファイルのアップデートをファイルアップデートともいう。ソフトウェアアップデートには、ソフトウェアのバージョンアップと、ソフトウェアの新規インストールの両方が含まれる。ファイルアップデートにも、ファイルのバージョンアップと、ファイルの新規インストールの両方が含まれる。
 次に、ステップS103において、ソフトウェアアップデート実行部1103が、フルインストーラを用いてソフトウェア群をアップデートする。
 ソフトウェアアップデート実行部1103は、ユーザ環境で想定されるソフトウェアアップデートの順序に従って各ソフトウェアのソフトウェアアップデートを実行する。ユーザ環境とは、ソフトウェア群がインストールされるコンピュータである。ユーザ環境は、差分インストーラ生成システム1000とは異なるコンピュータである。
 また、ソフトウェアアップデート実行部1103は、各ソフトウェアのアップデートに付随して、各ソフトウェアの固有ファイルのアップデートを行う。更に、ソフトウェアアップデート実行部1103は、ソフトウェア群のうちのいずれかのソフトウェアのアップデートに付随して、共有ファイルのアップデートも行う。
 このように、差分抽出部1100では、各ソフトウェアのアップデート、固有ファイルのアップデート、共有ファイルのアップデートを管理するが、本実施の形態では、主に共有ファイルのアップデートについて説明を行う。
 次に、ステップS104において、リスト生成部1104が、バックアップ記憶部1106のソフトウェア群のバックアップと、ソフトウェア群記憶部1105のアップデート後のソフトウェア群との間の差分抽出を行う。
 リスト生成部1104は、ソフトウェアごとの差分抽出、固有ファイルの差分抽出、共有ファイルの差分抽出を行う。
 固有ファイルの差分抽出と共有ファイルの差分抽出では、リスト生成部1104は、ファイル単位で変更の有無を判断してもよいし、さらにファイルのバイナリの比較まで行い、バイナリ単位での差分を抽出してもよい。
 図4は、リスト生成部1104により生成されたバージョン遷移リストの例を示す。バージョン遷移リストでは、ソフトウェアのバージョンの遷移と共有ファイルのバージョンの遷移とが記述される。図4では、共有ファイルA及び共有ファイルBを共有するソフトウェア1~3(以下、SW1~3ともいう)についてのバージョン遷移リストを示す。
 「インストールしたソフトウェア」の欄には、ソフトウェアアップデート実行部1103により差分抽出部1100内でアップデートされたソフトウェアの識別子が示される。
 「ソフトウェアのバージョン」の欄には、アップデート後のソフトウェアのバージョンが示されれる。
 「インストールしたソフトウェア」の欄に示される値及び「ソフトウェアのバージョン」の欄に示される値の組み合わせにより、ソフトウェアアップデートの経緯が示される。図4の例では、左から順にソフトウェアアップデートの順序が記述されている。具体的には、図4の例では、最初に、ソフトウェア1のバージョン1.0が新規にインストールされ、次に、ソフトウェア2のバージョン1.0が新規にインストールされ、次に、ソフトウェア3のバージョン1.0が新規にインストールされている。更に、ソフトウェア1がバージョン2.0にアップデートされ、次に、ソフトウェア2がバージョン2.0にアップデートされている。なお、「インストールしたソフトウェア」の欄に示される値及び「ソフトウェアのバージョン」の欄に示される値の組み合わせ(例えば、「SW1」と「1.0」の組み合わせ)を、アップデート識別子という。
 「共有ファイルのバージョン」の欄には、ソフトウェアアップデート実行部1103により差分抽出部1100内でアップデートされた共有ファイルのバージョンが示される。つまり、「共有ファイルのバージョン」の欄には、共有ファイルの段階的なアップデートの経緯が示される。図4の例では、左から順にファイルアップデートの順序が記述されている。具体的には、図4の例では、ソフトウェア1のバージョン1.0のインストール時に共有ファイルAのバージョン1.0がインストールされ、共有ファイルBのバージョン1.0がインストールされている。次に、ソフトウェア2のバージョン1.0のインストール時に共有ファイルAがバージョン1.1にアップデートされ、共有ファイルBがバージョン1.1にアップデートされている。また、ソフトウェア3のバージョン1.0のインストール時に共有ファイルAのみがバージョン1.2にアップデートされている。また、ソフトウェア1のバージョン2.0へのアップデート時に共有ファイルBのみがバージョン1.2にアップデートされている。また、ソフトウェア2のバージョン2.0へのアップデート時に共有ファイルAのみがバージョン1.3にアップデートされている.
 「共有ファイルのバージョン」の欄に示される順序に従って共有ファイルの差分を適用すれば、全てのバージョンの共有ファイルをユーザ環境で再現できる。
 次に、ステップS105において、リスト生成部1104が、ステップS104で抽出した差分を差分データベース1400に格納する。
 差分データベース1400の構成例を図5に示す。図5に示すように、差分データベース1400では、アップデート識別子ごとに、固有ファイルのバージョン情報と共有ファイルのバージョン情報と差分情報が管理されている。固有ファイルのバージョン情報には、固有ファイルの旧バージョンのバージョン名と新バージョンのバージョン名との組合せが示される。共有ファイルのバージョン情報には、共有ファイルの旧バージョンのバージョン名と新バージョンのバージョン名との組合せが示される。また、差分情報には、ソフトウェアのアップデートで発生した差分、固有ファイルのアップデートで発生した差分、共有ファイルのアップデートで発生した差分が示される。
 このように、リスト生成部1104は、ステップS104とS105において、ソフトウェアアップデートごとにアップデート識別子を生成し、共有ファイルのファイルアップデートごとに、ファイルアップデート前の共有ファイルとの差分を抽出し、当該ファイルアップデートが付随するソフトウェアアップデートのアップデート識別子を、抽出した差分に対応付ける。
 なお、ソフトウェアアップデートにおいて固有ファイルのファイルアップデートが行われていない場合は、固有ファイルのバージョン情報には、固有ファイルの1つのバージョン名が示される。また、差分情報には、固有ファイルの差分は含まれない。同様に、ソフトウェアアップデートにおいて共有ファイルのファイルアップデートが行われていない場合は、共有ファイルのバージョン情報には、共有ファイルの1つのバージョン名が示される。また、差分情報には、共有ファイルの差分は含まれない。
 次に、ステップS106において、リスト生成部1104が、適用差分選択リストを生成する。
 適用差分選択リストとは、ユーザ環境で差分インストーラ内の適用差分選択プログラムが適用する差分を効率的に選択するために用いるリストである。後述するように、ユーザ環境では、ソフトウェアアップデートに付随して共有ファイルのファイルアップデートが行われる。適用差分選択リストは、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分をユーザ環境にインストール済みのソフトウェアのバージョンとの照合により差分インストーラ内の適用差分選択プログラムが選択可能なリストである。リスト生成部1104は、ソフトウェア群のソフトウェアアップデートと共有ファイルのファイルアップデートとの関係を解析し、ソフトウェアアップデートごとに、ソフトウェアアップデートでアップデートされたソフトウェアのアップデート後のバージョンで用いられる共有ファイルのバージョンを特定し、適用差分選択リストを生成する。
 適用差分選択リストは、差分選択情報の例である。
 差分インストーラ及び適用差分選択プログラムの詳細は後述する。
 適用差分選択リストの例を図6に示す。
 図6において、「インストールしたソフトウェア」及び「ソフトウェアのバージョン」の欄は、図4に示したものと同じである。つまり、適用差分選択リストでは、ソフトウェアアップデート実行部1103で実行されたソフトウェアアップデートの順に各ソフトウェアアップデートのアップデート識別子が示される。
 また、ポインタ情報は、対応するアップデート識別子で示されるソフトウェアのアップデート後のバージョンで用いられる共有ファイルのバージョンとその次のバージョンとの差分に対応付けられたアップデート識別子を指し示す情報である。つまり、ポインタ情報の値が示されている列に対応したソフトウェアがユーザ環境にインストールされているとき、ポインタ情報の値が示されている行の共有ファイルを1段階アップデートするためには、どの列のソフトウェアをインストール、またはアップデートしたときの差分を適用すればよいのかが、右方向への移動量で示されている。
 例えば、ソフトウェア1のバージョン1.0がユーザ環境にインストールされており、このソフトウェア1のバージョン1.0に用いられる共有ファイルAがバージョン1.0であると想定する。ソフトウェア1のバージョン1.0の列の共有ファイルAのポインタ情報は「1」である。このため、共有ファイルAのバージョン1.0と次のバージョンであるバージョン1.1との差分は、1つ右の列のソフトウェア2のバージョン1.0に対応付けられている。差分インストーラ内の適用差分選択プログラムは、ユーザ環境にソフトウェア1のバージョン1.0がインストールされている場合に、ソフトウェア2のバージョン1.0がソフトウェアアップデート実行部1103でインストールされた際に抽出された共有ファイルAの差分を共有ファイルAのバージョン1.0に適用することで、共有ファイルAのバージョン1.1を取得することができると判定する。
 なお、ポインタ情報が0の場合は、その共有ファイルをアップデートする差分は存在しない。
 ステップS106の適用差分選択リストの生成は、図7及び図8に示すフローチャートに従って行われる。図7及び図8の詳細は、後述する。
 最後に、ステップS107において、リスト生成部1104が適用差分選択リストを表示装置に表示し、ユーザが、差分が正しく出力されたことを確認する。
 次に、図7及び図8を参照して、適用差分選択リストの生成手順を説明する。
 先ず、ステップS301において、リスト生成部1104が、適用差分選択リストの右端に列を追加し、追加した列にソフトウェア及びバージョンを記入する。
 次に、ステップS302において、リスト生成部1104が、適用差分選択リストから、共有ファイルを1つ選択する。
 次に、リスト生成部1104が、ステップS309において、ステップS301で対象にしたバージョンのソフトウェア(以下、判定対象ソフトウェアという)が、ステップS302で選択した共有ファイルを含むか否か(共有ファイルを用いるか否か)をバージョン遷移リストを参照して判定する。
 ステップS309において、判定対象ソフトウェアが共有ファイルを含まない場合は、ステップS303において、リスト生成部1104は、ステップS301で追加した列の、ステップS302で選択した共有ファイルのポインタ情報に「-」を指定する。
 そして、リスト生成部1104は、ステップS310において、全ての共有ファイルを選択したか否かを判定し、まだ選択していない共有ファイルがあれば、ステップS308で、次の共有ファイルを選択する。
 一方、ステップS309において、判定対象ソフトウェアが、ステップS302で選択した共有ファイルを含む場合は、リスト生成部1104は、ステップS311において、判定対象ソフトウェアのアップデートにおいて、共有ファイルがアップデートされているか否かをバージョン遷移リストを参照して判定する。
 ステップS311において、共有ファイルがアップデートされている場合は、リスト生成部1104は、ステップS304において、ステップS301で追加した列の、ステップS302で選択した共有ファイルのポインタ情報に「0」を指定する。
 次に、ステップS305において、リスト生成部1104は、その共有ファイルのポインタ情報が「0」である他の列があれば、ステップS301で追加した列を指すように、他の列のポインタ情報を更新する。
 一方、ステップS311において、共有ファイルがアップデートされていない場合は、リスト生成部1104は、ステップS306において、バージョン遷移リストを参照して、判定対象ソフトウェアにおける、その共有ファイルのバージョンを確認する。
 次に、リスト生成部1104は、ステップS307において、ステップS301で追加した列の、その共有ファイルのポインタ情報に、次に適用する差分を抽出したソフトウェアの列までの移動量を指定する。
 次に、差分インストーラ生成部1200が差分インストーラを生成する動作を図9のフローチャートを用いて説明する。
 先ず、ステップS201において、ユーザが、インストーラ生成内容受付部1201に、生成する差分インストーラの情報を指定する。
 ここでユーザが指定する情報は、差分インストーラを生成するソフトウェアの種類、アップデート前のバージョン、アップデート後のバージョンの3つである。
 アップデート前のバージョンとは、生成する差分インストーラによるアップデートが可能なバージョンのうち、最も古いバージョンである。例えば、ソフトウェア1のバージョンが、1.0、2.0、3.0の3種類存在するとき、バージョン1.0をバージョン3.0へアップデートする差分インストーラを生成する場合は、アップデート前のバージョンは1.0、アップデート後のバージョンはバージョン3.0である。このとき、生成された差分インストーラによりバージョン2.0からバージョン3.0へのアップデートも可能である。
 次に、ステップS202において、差分インストーラ生成実行部1202が適用差分選択リストを取得する。適用差分選択リストは、適用差分選択リスト記憶部1300で記憶されている。
 ここで差分インストーラ生成実行部1202が取得する適用差分選択リストは、アップデート後のバージョンのソフトウェアに対応した列を持つ必要がある。例えば、図6の適用差分選択リストでは、最後に追加された列が右端のソフトウェア2、バージョン2.0に対応する列であるので、この適用差分選択リストでは、ソフトウェア2、バージョン2.0よりも後に開発されたソフトウェアの差分インストーラの生成を行うことはできない。
 次に、ステップS203において、差分インストーラ生成実行部1202は、ステップS202で取得した適用差分選択リストの情報に基づき、差分インストーラの生成に必要な差分を選択する。
 このステップS203の動作の詳細は、図10を参照して後述する。
 次に、ステップS204において、差分インストーラ生成実行部1202が、差分インストーラの生成に必要な差分を差分データベース1400から取得する。
 つまり、差分インストーラ生成実行部1202は、差分データベース1400から、図5に示す差分情報を取得する。
 次に、ステップS205において、差分インストーラ生成実行部1202は、差分インストーラを生成する。
 差分インストーラは、ステップS202で取得した適用差分選択リスト、ステップS204で取得した差分、および適用差分選択プログラムで構成される。
 適用差分選択プログラムは、ユーザ環境にインストール済みのソフトウェアのバージョンの情報と、適用差分選択リストを用いて、適切な順序で必要な差分を適用するプログラムである。
 より具体的には、適用差分選択プログラムは、適用差分選択リストに示される複数のアップデート識別子から、ユーザ環境にインストール済みのソフトウェアとそのバージョンとの対に一致するアップデート識別子を抽出する。そして、適用差分選択プログラムは、抽出したアップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分を、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する。
 適用差分選択プログラムは、選択プログラムの例である。
 なお、適用差分選択プログラムの動作例は、図12及び図13のフローチャートを参照して後述する。
 最後に、差分インストーラ生成実行部1202は、差分インストーラの生成が完了したことを通知するメッセージを表示し、ステップ206において、ユーザが差分インストーラが生成されたことを確認する。
 次に、図10を参照して、図9のステップS203の動作、すなわち、ソフトウェアのアップデートに必要な差分の選択動作の詳細を説明する。
 先ず、ステップS401において、差分インストーラ生成実行部1202は、適用差分選択リストから、差分インストーラを生成するソフトウェアの、アップデート前のバージョンの列を指定する。この列を、以下、列Aという。
 ステップS402において、差分インストーラ生成実行部1202は、適用差分選択リストから、差分インストーラを生成するソフトウェアの、アップデート後のバージョンの列を指定する。この列を、以下、列Bという。
 次に、ステップS403において、差分インストーラ生成実行部1202は、列Aと列Bの間にある列(中間列ともいう)に対応するソフトウェアのインストール又対応するソフトウェアへのアップデート、及び列Bに対応するソフトウェアのインストール又は対応するソフトウェアへのアップデートを行った際に抽出された全ての共有ファイルの差分を、必要な差分として選択する。
 最後に、ステップS404において、差分インストーラ生成実行部1202は、列Aと列Bの間にある列に対応するソフトウェアのインストール又は対応するソフトウェアへのアップデート、及び列Bに対応するソフトウェアのインストール又は対応するソフトウェアへのアップデートを行った際に抽出された差分のうち、差分インストーラを生成するソフトウェアの固有ファイルの差分を、必要な差分として選択する。
 図11は、図6の適用差分選択リストが用いられるとき、ソフトウェア1のバージョン1.0をバージョン2.0にアップデートする差分インストーラを生成するために必要な差分の選択を行う例を示す。
 図11の例では、ソフトウェア2のバージョン1.0のインストール時の共有ファイルの差分と、ソフトウェア3のバージョン1.0のインストール時の共有ファイルの差分と、ソフトウェア1のバージョン2.0へのアップデート時の共有ファイルの差分とが選択される。また、ソフトウェア1のバージョン2.0へのアップデート時の固有ファイルの差分が選択される。
 次に、適用差分選択プログラムの動作例を説明する。
 適用差分選択プログラムは、最初に適用する差分の候補を全て確認し、その後古い差分から順に共有ファイルへの適用を行う。適用差分選択プログラムは、適用差分選択リストのそれぞれの共有ファイルに対応した行ごとに、適用する差分の候補の確認を行う。より具体的には、適用差分選択プログラムは、適用差分選択リストの各行について、始点と終点を定め、始点から終点に至るまで、ポインタ情報の指す列を確認し、ポインタ情報の指す列を新たな始点とするということを繰り返す。この時、経由した列に対応した差分が、適用する差分の候補となる。
 より具体的には、適用差分選択プログラムは、図12及び図13に示すフローに従って動作する。
 以下、図12及び図13を参照して、適用差分選択プログラムの動作を説明する。
 先ず、ステップS500において、適用差分選択プログラムは、差分インストーラがユーザ環境に初めて適用されるか否かを判定する。
 ユーザ環境への差分インストーラの適用が初めてでない場合は、適用差分選択プログラムは、ステップS501において、過去に適用した差分の情報を取得する。
 次に、ステップS502において、適用差分選択プログラムは、ユーザ環境にインストールされているソフトウェアとそのバージョンをユーザ環境から取得する。
 次に、ステップS514において、適用差分選択プログラムは、差分アップデート可能なバージョンのソフトウェアがユーザ環境にインストールされているか否かを判定する。
 差分アップデート可能なバージョンのソフトウェアがユーザ環境にインストールされていない場合は、ステップS513において、適用差分選択プログラムは、差分アップデートが失敗したことを、ユーザ環境のユーザに通知する。
 次に、ステップS503において、適用差分選択プログラムは、適用差分選択リストにおいて、ユーザ環境にインストール済みのバージョンの列と、アップデート後のバージョンの列を確認し、中間の列およびアップデート後のバージョンの列に、差分インストールを行うソフトウェアの固有ファイルの差分を含む列があれば、該当する列の差分を差分の候補に追加する。
 次に、ステップS504において、適用差分選択プログラムは、適用差分選択リストから共有ファイルの行を1行選択する。
 次に、ステップS505において、適用差分選択プログラムは、ステップS504で選択した行の中から始点の列、終点の列を指定する。
 次に、ステップS515において、適用差分選択プログラムは、始点の列が全ての終点の列よりも左にあるか否かを判定する。
 ステップ515において、始点の列が全ての終点の列よりも左にない場合は、適用差分選択プログラムは、ステップS517の判定を行う。
 一方、ステップS515において、始点の列が全ての終点の列よりも左にある場合は、ステップS506において、適用差分選択プログラムは、ステップS504で選択した行において、始点の列のポインタ情報が指す列を確認する。
 次に、ステップS507において、適用差分選択プログラムは、ポインタ情報が指す列に対応したソフトウェアがソフトウェアアップデート実行部1103でアップデートされたときに抽出された共有ファイルの差分が、適用する差分の候補に含まれていなければ、この差分を、適用する差分の候補に追加する。
 次に、ステップS516において、適用差分選択プログラムは、ポインタ情報が指す列が終点の列であるかどうかを判定する。
 ステップS516において、ポインタ情報が指す列が終点の列でなければ、適用差分選択プログラムは、ポインタ情報が指す列を次の始点の列に指定する。その後、適用差分選択プログラムは、ステップS515以降の動作を繰り返す。
 一方、ステップS516において、ポインタ情報が指す列が終点の列である場合は、適用差分選択プログラムは、ステップS517において、適用差分選択リストに含まれる全ての共有ファイルの行について確認を行ったか否かを判定する。
 ステップS517において、確認を行っていない行が存在する場合は、適用差分選択プログラムは、ステップS509において、適用差分選択リストから未確認の共有ファイルの行を選択する。
 一方、ステップS517において、全ての共有ファイルの行について確認を終えている場合は、適用差分選択プログラムは、ステップS510において、適用する差分の候補を、適用差分選択リストの左側から順に、共有ファイル及び固有ファイルに適用する。
 次に、ステップS511において、適用差分選択プログラムは、適用した差分の情報をユーザ環境内の記憶領域に記録する。
 最後に、ステップS512において、適用差分選択プログラムは、ユーザ環境のユーザに、差分アップデートが完了したことを通知する。
 図14は、適用差分選択プログラムの動作例を示す。
 図14では、ソフトウェア1のバージョン1.0、ソフトウェア2のバージョン1.0がインストール済みのユーザ環境において、図6の適用差分選択リストを持つソフトウェア1の差分インストーラの適用差分選択プログラムの動作例を示す。以下では、適用差分選択プログラムが共有ファイルAのアップデートを行う例を説明する。
 適用差分選択プログラムは、ユーザ環境にインストール済みのソフトウェアである、ソフトウェア1のバージョン1.0とソフトウェア2のバージョン1.0を抽出する。図14の例では、適用差分選択プログラムは、ソフトウェア2のバージョン1.0に対応する列を始点の列として指定する(ステップS505)。また、適用差分選択プログラムは、ソフトウェアアップデートの対象であるソフトウェア1のバージョン2.0に対応する列と、ソフトウェア3のバージョン1.0の列を終点の列として指定する(ステップS505)。
 適用差分選択プログラムは、始点の列のポインタ情報が指す列を確認する。図14では、ポインタ情報は「1」であるため、ソフトウェア3のバージョン1.0の列に対応する、差分インストーラに含まれる差分を、適用する差分の候補に追加する(ステップS507)。
 次に、適用差分選択プログラムは、始点の列のポインタ情報が指す列を次の始点の列に指定する(ステップS508)。つまり、適用差分選択プログラムは、ソフトウェア3のバージョン1.0の列を次の始点の列に指定する。
 この始点の列は、終点の列の1つであるソフトウェア3のバージョン1.0の列に対応する列よりも左にないので、適用差分選択プログラムは、共有ファイルAについての差分の選択を終える。
 この結果、ソフトウェアアップデート実行部1103でソフトウェア3のバージョン1.0がインストールされた際に抽出された共有ファイルAの差分がユーザ環境でのソフトウェア1のバージョン2.0へのアップデートに付随して行われる共有ファイルAのアップデートに用いられる。
 つまり、差分インストーラは、ソフトウェア1のバージョン2.0へのアップデートと並行して、ユーザ環境に存在する共有ファイルAに、この差分を適用して共有ファイルAのアップデートを行う。
 次に、図12のステップS505の始点の列、終点の列を指定する動作の詳細を図15のフローチャートを参照して説明する。
 先ず、ステップS601において、適用差分選択プログラムは、適用差分選択リストのうち、ユーザ環境にインストール済みのソフトウェアに対応する列、過去に適用した差分に対応する列を始点の候補として抽出する。
 次に、ステップS602において、適用差分選択プログラムは、各始点の候補について、ポインタ情報が指す列を確認し、最も右の列を指す列を始点の列に指定する。該当する列が複数ある場合は、適用差分選択プログラムは、適用差分選択リストにおいて最も右にある列を始点の列に指定する。
 次に、ステップS603において、適用差分選択プログラムは、アップデート後のソフトウェアの列のポインタ情報を確認する。
 次に、ステップS607において、適用差分選択プログラムは、ポインタ情報の値が「-」であるかどうかを判定する。
 ステップS607において、ポインタ情報の値が「-」である場合は、適用差分選択プログラムは、ステップS604において、ポインタ情報がアップデート後のソフトウェアの列より左を指しているすべての列を終点に指定する。
 一方、ステップS607において、ポインタ情報の値が「-」でない場合は、適用差分選択プログラムは、ステップS608において、ポインタ情報が「0」であるかどうかを判定する。
 ステップS608において、ポインタ情報の値が「0」である場合は、適用差分選択プログラムは、ステップS605において、ポインタ情報が「0」の全ての列を終点に指定する。
 ステップS608において、ポインタ情報の値が「0」でない場合は、適用差分選択プログラムは、ステップS606において、アップデート後のソフトウェアの列を終点に指定する。
 また、適用差分選択プログラムは、アップデート後のソフトウェアの列のポインタ情報が指す列を、ポインタ情報が指している他の列も全て終点に指定する。
 図16及び図17は、ソフトウェア1のバージョン1.0、ソフトウェア2のバージョン1.0がインストールされているユーザ環境において、ソフトウェア1をバージョン2.0にアップデートする場合の、始点と終点を求める動作の例を示す。
 適用差分選択プログラムは、ソフトウェア1のバージョン1.0の列と、ソフトウェア2のバージョン1.0の列を始点の候補列として抽出する(ステップS601)。
 また、適用差分選択プログラムは、各始点の候補列のポインタ情報が指す列を確認する(ステップS602)。ソフトウェア2のバージョン1.0のポインタ情報が指す列は、ソフトウェア1のバージョン1.0のポインタ情報が指す列よりも右にあるので、適用差分選択プログラムは、共有ファイルA及び共有ファイルBについて、ソフトウェア2のバージョン1.0の列を始点の列として指定する(ステップS602)。
 また、適用差分選択プログラムは、アップデート後のソフトウェアの列であるソフトウェア1のバージョン2.0の列のポインタ情報を確認する(ステップS603)。
 共有ファイルAの場合は、ソフトウェア1のバージョン2.0の列のポインタ情報は「-」でも「0」でもない。このため、適用差分選択プログラムは、アップデート後のソフトウェアの列であるソフトウェア1のバージョン2.0の列、およびソフトウェア1のバージョン2.0の列のポインタ情報が指す列であるソフトウェア2のバージョン2.0をポインタ情報が指しているソフトウェア3のバージョン1.0の列を終点の列として指定する(ステップS606)。
 共有ファイルBの場合は、ソフトウェア1のバージョン2.0の列のポインタ情報は「0」である。このため、適用差分選択プログラムは、ポインタ情報が「0」である、ソフトウェア1のバージョン2.0の列と、ソフトウェア2のバージョン2.0の列を、終点の列に指定する(ステップS605)。
 以上のように、適用差分選択プログラムは、適用差分選択リストに示される複数のアップデート識別子から、ユーザ環境にインストール済みのソフトウェアとそのバージョンとの対に一致するアップデート識別子(第1のアップデート識別子)の列を始点の列として抽出する。また、適用差分選択プログラムは、ユーザ環境で行われるソフトウェアアップデートでアップデートされるソフトウェアとアップデート後のバージョンとの対に一致するアップデート識別子(第2のアップデート識別子)の列を終点の列として抽出する。そして、適用差分選択プログラムは、始点の列に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分と、適用差分選択リストにおいて始点の列と終点の列との間にある中間列のアップデート識別子(中間アップデート識別子)に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分とを、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する。
 また、適用差分選択プログラムは、適用差分選択リストにおいて中間列のアップデート識別子(中間アップデート識別子)に対応付けられているポインタ情報が指し示すアップデート識別子が他の中間列のアップデート識別子(中間アップデート識別子)又は終点の列のアップデート識別子(第2のアップデート識別子)である場合に、他の中間列のアップデート識別子(中間アップデート識別子)又は終点の列のアップデート識別子(第2のアップデート識別子)に対応付けられている差分を、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する。
***ハードウェア構成の説明***
 次に、差分インストーラ生成システム1000のハードウェア構成例を図18に示す。
 図18において、差分抽出マシンH100は図1の差分抽出部1100の処理を行うコンピュータである。また、差分インストーラ生成マシンH200は図1の差分インストーラ生成部1200の処理を行うコンピュータである。そして、インストールメディアH300は、差分抽出部1100で差分抽出を行う際に差分抽出マシンH100にインストーラを入力するためのメディアである。差分インストールメディアH400は、差分インストーラ生成マシンH200で生成された差分インストーラが出力されるメディアである。ストレージH500は、図1の適用差分選択リスト記憶部1300及び差分データベース1400を実現する記憶装置である。
 図18では、差分抽出マシンH100と差分インストーラ生成マシンH200はそれぞれ別のコンピュータとなっているが、1つのコンピュータに差分抽出マシンH100と差分インストーラ生成マシンH200の役割を持たてもよい。その場合、ストレージH500は、コンピュータのハードディスクで実現してもよい。また、インストーラがメディアではなく電子データで配布される場合は、ディスクドライブH103、ディスクドライブH203は不要となる。
 動作とハードウェアの関係について説明する。
 図1の差分抽出部1100の動作は、図18において、メモリH102に展開されたプログラムをプロセッサH101が実行することで実現される。
 つまり、差分抽出部1100は、プログラムで構成される。
 このプログラムは、ハードディスクH104に格納されており、メモリH102にロードされて、プロセッサH101により実行される。
 プロセッサH101は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
 メモリH102は、RAM(Random Access Memory)である。
 ハードディスクH104は、不揮発性の記憶装置であり、図1のソフトウェア群記憶部1105及びバックアップ記憶部1106を実現する。
 ソフトウェアインストーラ受付部1101の動作では、インストールメディアH300に含まれるインストーラが、ディスクドライブH103によって取得される。ソフトウェア群バックアップ生成部1102の動作では、ハードディスクH104の操作が行われる。ソフトウェアアップデート実行部1103の動作では、インストーラの実行プログラムが、メモリH102に展開され、プロセッサH101で実行されることにより、ハードディスクH104の内容が更新される。リスト生成部1104の動作では、プロセッサH101が、ハードディスクH104に記録された2つのソフトウェア群の差分抽出を行い、その後、適用差分選択リスト、差分データベース1400の更新を行うためにLANアダプタH105を介して、ストレージH500にアクセスする。
 また、ハードディスクH104には、OS(Operating System)も記憶されている。そして、OSの少なくとも一部がプロセッサH101により実行される。
 プロセッサH101がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
 差分インストーラ生成部1200の動作も同様に、メモリH202に展開されたプログラムをプロセッサH201が実行することで実現される。
 つまり、差分インストーラ生成部1200は、プログラムで構成される。
 このプログラムは、ハードディスクH204に格納されており、メモリH202にロードされて、プロセッサH201により実行される。
 プロセッサH201は、CPU、DSP等である。
 メモリH202は、RAMである。
 差分インストーラ生成実行部1202の動作では、プロセッサH201が、適用差分選択リストと必要な差分をLANアダプタH205を介してストレージH500から取得する。そして、プロセッサH201が、適用差分選択リストと差分とハードディスクH204に記録された適用差分選択プログラムを組み合わせて差分インストーラを生成する。更に、プロセッサH201は、生成した差分インストーラを、ハードディスクH204に記録する。また、プロセッサH201は、ディスクドライブH203を用いて、差分インストールメディアH400を生成する。
 また、ハードディスクH204には、OSも記憶されている。そして、OSの少なくとも一部がプロセッサH201により実行される。
 プロセッサH201がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
 また、ソフトウェアインストーラ受付部1101、ソフトウェア群バックアップ生成部1102、ソフトウェアアップデート実行部1103、リスト生成部1104、インストーラ生成内容受付部1201、差分インストーラ生成実行部1202(以下、これらをまとめて「部」という)の機能を実現するプログラムは、ハードディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
 また、「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
 また、差分インストーラ生成システム1000は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)といった電子回路により実現されてもよい。
 この場合は、「部」は、それぞれ電子回路の一部として実現される。
 なお、プロセッサH101、H201及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
***実施の形態の効果の説明***
 以上のように、本実施の形態では、共有ファイルを共有する複数のソフトウェアであるソフトウェア群を差分抽出部1100に持ち、それをインストーラによりアップデートしながら差分抽出を行う。このため、共有ファイルの全てのバージョンに対して、バージョンを1段階アップデートするための差分を得ることができる。
 そして、適用差分選択リスト、および適用差分選択プログラムを用いて、ユーザ環境で共有ファイルに差分を順に適用することで、ソフトウェアのアップデートとともに共有ファイルのアップデートが可能となる。
 また、本実施の形態では、他に、以下のような効果を得ることができる。
 差分抽出部に対して入力するのがインストーラであるため、共有ファイルが多い場合でも、差分抽出のために複数のバージョンが異なる共有ファイルを用意する必要がない。
 差分抽出を行う単位が、ソフトウェア群全体であるので、共有ファイルが多い場合でも、1回のアップデートで差分抽出は2回で済み、共有ファイルごとに差分抽出を行う必要がない。
 共有ファイルのバージョンが、入力したインストーラによるアップデート内容に対応している。また、ソフトウェアの固有ファイルと共有ファイルに分けて差分を抽出するため、差分の管理が容易である。
 適用差分選択プログラムは、どのソフトウェアをアップデートしたとき、あるいはどの差分を適用したときに共有ファイルが更新されたかが分かれば、その共有ファイルをアップデートする差分を選択することができる。従って、差分インストーラ内でアップデートする共有ファイルのバージョンを指定する必要がない。
 適用差分選択プログラムは、適用差分選択リストの情報をもとに適用する差分を判定する。このため、適用差分選択リストが更新されていれば、どのソフトウェアのどのバージョンのアップデートに対しても適用差分選択プログラムを転用することが可能である。従って、差分インストーラの生成が容易になる。
 適用差分選択リストを用いることで、次に適用する差分を確認できるため、差分適用可否の判定を差分ごとに行う必要がない。
 この点、従来方式の複数の差分を持つ差分インストーラは、各差分の適用を試みて、適用先の各ファイルのバージョンをチェックする。そして、従来方式の差分インストーラは、アップデート可能なバージョンであればアップデートし、アップデートできないバージョンであれば、何も行わないという処理を行う。このような差分インストーラでは、アップデートを行わない場合でも各ファイルに対してバージョンチェックを行うため、インストール時間が長くなることがある。
 適用差分選択リストでは、ポインタ情報に負の値を指定することで、後に開発されたソフトウェアに含まれる共有ファイルのバージョンが、以前に開発されたソフトウェアに含まれる共有ファイルのバージョンよりも古い場合にも、問題なく差分を適用することができる。
 また、複数の旧バージョンをアップデートする差分インストーラも生成することが可能である。
 1000 差分インストーラ生成システム、1100 差分抽出部、1101 ソフトウェアインストーラ受付部、1102 ソフトウェア群バックアップ生成部、1103 ソフトウェアアップデート実行部、1104 リスト生成部、1105 ソフトウェア群記憶部、1106 バックアップ記憶部、1200 差分インストーラ生成部、1201 インストーラ生成内容受付部、1202 差分インストーラ生成実行部、1300 適用差分選択リスト記憶部、1400 差分データベース。

Claims (9)

  1.  共有ファイルを共有する複数のソフトウェアのソフトウェアアップデートに付随して行われる前記共有ファイルのファイルアップデートごとに、ファイルアップデートにより発生した、ファイルアップデート前の前記共有ファイルとの差分を抽出する抽出部と、
     前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成する情報生成部と、
     前記ユーザ環境にインストール済みのソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する差分インストーラ生成部とを有する情報処理装置。
  2.  前記情報生成部は、
     前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョン及び前記ユーザ環境で行われるソフトウェアアップデートで取得するソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成し、
     前記差分インストーラ生成部は、
     前記ユーザ環境にインストール済みのソフトウェアのバージョン及び前記ユーザ環境で行われるソフトウェアアップデートで取得するソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する請求項1に記載の情報処理装置。
  3.  前記情報処理装置は、更に、
     前記ユーザ環境で想定されるソフトウェアアップデートの順序に従って前記複数のソフトウェアのソフトウェアアップデートを実行し、前記複数のソフトウェアのうちのいずれかのソフトウェアのソフトウェアアップデートに付随して前記共有ファイルのファイルアップデートを実行するソフトウェアアップデート実行部を有し、
     前記抽出部は、
     前記ソフトウェアアップデート実行部によるソフトウェアアップデートごとに、アップデートされたソフトウェアとアップデート後のバージョンとの対が示されるアップデート識別子を生成し、
     前記ソフトウェアアップデート実行部による前記共有ファイルのファイルアップデートごとに、ファイルアップデート前の前記共有ファイルとの差分を抽出し、当該ファイルアップデートが付随するソフトウェアアップデートのアップデート識別子を、抽出した差分に対応付け、
     前記情報生成部は、
     前記ソフトウェアアップデート実行部で実行された前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ソフトウェアアップデートごとに、ソフトウェアアップデートでアップデートされたソフトウェアのアップデート後のバージョンで用いられる前記共有ファイルのバージョンを特定し、
     前記ソフトウェアアップデート実行部で実行されたソフトウェアアップデートの順に各ソフトウェアアップデートのアップデート識別子が示され、アップデート識別子ごとに、当該アップデート識別子で示されるソフトウェアのアップデート後のバージョンで用いられる前記共有ファイルのバージョンとその次のバージョンとの差分に対応付けられたアップデート識別子を指し示すポインタ情報が対応付けられている差分選択情報を生成し、
     前記差分インストーラ生成部は、
     前記差分選択情報に示される複数のアップデート識別子から、前記ユーザ環境にインストール済みのソフトウェアとそのバージョンとの対に一致するアップデート識別子を抽出し、抽出したアップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分を、前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する選択プログラムが含まれる差分インストーラを生成する請求項1に記載の情報処理装置。
  4.  前記差分インストーラ生成部は、
     前記差分選択情報に示される複数のアップデート識別子から、前記ユーザ環境にインストール済みのソフトウェアとそのバージョンとの対に一致するアップデート識別子を第1のアップデート識別子として抽出し、前記ユーザ環境で行われるソフトウェアアップデートでアップデートされるソフトウェアとアップデート後のバージョンとの対に一致するアップデート識別子を第2のアップデート識別子として抽出し、前記第1のアップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分と、前記差分選択情報において前記第1のアップデート識別子と前記第2のアップデート識別子との間にある中間アップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分とを、前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する選択プログラムが含まれる差分インストーラを生成する請求項3に記載の情報処理装置。
  5.  前記差分インストーラ生成部は、
     前記差分選択情報において前記第1のアップデート識別子と前記第2のアップデート識別子との間にある中間アップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子が他の中間アップデート識別子又は前記第2のアップデート識別子である場合に、前記他の中間アップデート識別子又は前記第2のアップデート識別子に対応付けられている差分を、前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する選択プログラムが含まれる差分インストーラを生成する請求項4に記載の情報処理装置。
  6.  前記差分インストーラ生成部は、
     前記選択プログラムと、前記抽出部により抽出された複数の差分と、前記差分選択情報とが含まれる差分インストーラを生成する請求項1に記載の情報処理装置。
  7.  前記差分インストーラ生成部は、
     各ソフトウェアに固有の固有ファイルのファイルアップデートにより発生した、ファイルアップデート前の前記固有ファイルとの差分が含まれる差分インストーラを生成する請求項1に記載の情報処理装置。
  8.  コンピュータが、共有ファイルを共有する複数のソフトウェアのソフトウェアアップデートに付随して行われる前記共有ファイルのファイルアップデートごとに、ファイルアップデートにより発生した、ファイルアップデート前の前記共有ファイルとの差分を抽出し、
     前記コンピュータが、前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成し、
     前記コンピュータが、前記ユーザ環境にインストール済みのソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する情報処理方法。
  9.  共有ファイルを共有する複数のソフトウェアのソフトウェアアップデートに付随して行われる前記共有ファイルのファイルアップデートごとに、ファイルアップデートにより発生した、ファイルアップデート前の前記共有ファイルとの差分を抽出する抽出処理と、
     前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成する情報生成処理と、
     前記ユーザ環境にインストール済みのソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する差分インストーラ生成処理とをコンピュータに実行させる情報処理プログラム。
PCT/JP2016/055815 2016-02-26 2016-02-26 情報処理装置、情報処理方法及び情報処理プログラム WO2017145357A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018501526A JPWO2017145357A1 (ja) 2016-02-26 2016-02-26 情報処理装置、情報処理方法及び情報処理プログラム
CN201680082350.4A CN108701063A (zh) 2016-02-26 2016-02-26 信息处理装置、信息处理方法及信息处理程序
PCT/JP2016/055815 WO2017145357A1 (ja) 2016-02-26 2016-02-26 情報処理装置、情報処理方法及び情報処理プログラム
TW105114838A TWI612471B (zh) 2016-02-26 2016-05-13 資訊處理裝置、資訊處理方法以及資訊處理程式產品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/055815 WO2017145357A1 (ja) 2016-02-26 2016-02-26 情報処理装置、情報処理方法及び情報処理プログラム

Publications (1)

Publication Number Publication Date
WO2017145357A1 true WO2017145357A1 (ja) 2017-08-31

Family

ID=59684895

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/055815 WO2017145357A1 (ja) 2016-02-26 2016-02-26 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (4)

Country Link
JP (1) JPWO2017145357A1 (ja)
CN (1) CN108701063A (ja)
TW (1) TWI612471B (ja)
WO (1) WO2017145357A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6930949B2 (ja) * 2018-08-02 2021-09-01 株式会社日立製作所 ソフトウェア配信システム、ソフトウェア配信サーバ、及びソフトウェア配信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293512A (ja) * 2005-04-07 2006-10-26 Mitsubishi Electric Corp ソフトウェア更新情報配布システム及びソフトウェア更新情報配布方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255361B2 (en) * 2003-01-31 2012-08-28 Oracle America, Inc. Method and system for validating differential computer system update
US7509636B2 (en) * 2003-12-15 2009-03-24 Microsoft Corporation System and method for updating files utilizing delta compression patching
CN101102577B (zh) * 2006-07-07 2010-12-08 中兴通讯股份有限公司 无线通信基站系统前后台数据库表数据增量同步方法
CN101699399B (zh) * 2009-11-03 2014-04-30 中兴通讯股份有限公司 一种软件更新的系统和方法
CN101937348A (zh) * 2010-08-20 2011-01-05 四川长虹电器股份有限公司 电视软件在线增量升级方法
CN102841897B (zh) * 2011-06-23 2016-03-02 阿里巴巴集团控股有限公司 一种实现增量数据抽取的方法、装置及系统
US9038053B2 (en) * 2012-08-27 2015-05-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Non-disruptive software updates for servers processing network traffic
CN104516744A (zh) * 2013-09-27 2015-04-15 无锡华润微电子有限公司 软件更新方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293512A (ja) * 2005-04-07 2006-10-26 Mitsubishi Electric Corp ソフトウェア更新情報配布システム及びソフトウェア更新情報配布方法

Also Published As

Publication number Publication date
TW201730744A (zh) 2017-09-01
CN108701063A (zh) 2018-10-23
JPWO2017145357A1 (ja) 2018-06-07
TWI612471B (zh) 2018-01-21

Similar Documents

Publication Publication Date Title
Campbell et al. Genome annotation and curation using MAKER and MAKER‐P
Dobin et al. Mapping RNA‐seq reads with STAR
Zou et al. Survey of MapReduce frame operation in bioinformatics
US10268568B2 (en) System and method for data element tracing
CN106991100B (zh) 数据导入方法及装置
US20160098390A1 (en) Command history analysis apparatus and command history analysis method
US11409631B2 (en) Verification automation apparatus, verification automation method, and computer-readable recording medium
CN104765621A (zh) 一种在集群节点中部署程序的方法和系统
CN104765603A (zh) 应用程序构建方法及装置
WO2009116288A1 (ja) データベースシステム移行方法
JP2015162067A (ja) アプリケーション開発支援プログラム及びアプリケーション開発支援システム
JP2023553220A (ja) マルチインスタンスプロセスのためのプロセスマイニング
WO2017145357A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US10055330B2 (en) Feature file validation tool
JP2006268661A (ja) データインポート方法およびデータインポート装置
CN110941658A (zh) 一种数据导出方法、装置、服务器及存储介质
US9588998B2 (en) Protecting storage data during system migration
US20190327302A1 (en) Method, device and computer program product for migrating data
US20160259716A1 (en) Rebuilding an execution flow from an execution grid
CN107168822B (zh) Oracle streams的异常修复系统及方法
US11556542B2 (en) Optionally compressed output from command-line interface
JP2015122018A (ja) アプリケーション開発支援プログラム及びアプリケーション開発支援システム
JP2007086951A (ja) ファイル分割処理方法及びファイル分割プログラム
JP2016062311A (ja) 更新装置及び情報処理方法
KR102406242B1 (ko) 특허 중개 과정에서의 특허 명세서 관리용 블록체인 기반 패치 관리 장치

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018501526

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 16891514

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16891514

Country of ref document: EP

Kind code of ref document: A1