WO2013094003A1 - ソフトウェアのインストール順序を決定する方法、プログラム、及び装置 - Google Patents

ソフトウェアのインストール順序を決定する方法、プログラム、及び装置 Download PDF

Info

Publication number
WO2013094003A1
WO2013094003A1 PCT/JP2011/079410 JP2011079410W WO2013094003A1 WO 2013094003 A1 WO2013094003 A1 WO 2013094003A1 JP 2011079410 W JP2011079410 W JP 2011079410W WO 2013094003 A1 WO2013094003 A1 WO 2013094003A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
index
subset
version
versions
Prior art date
Application number
PCT/JP2011/079410
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 PCT/JP2011/079410 priority Critical patent/WO2013094003A1/ja
Priority to JP2013549981A priority patent/JP5679074B2/ja
Publication of WO2013094003A1 publication Critical patent/WO2013094003A1/ja
Priority to US14/270,492 priority patent/US9367300B2/en

Links

Images

Classifications

    • 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/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Definitions

  • the present invention relates to software installation or update technology.
  • the behavior of the software may become unstable or may not work.
  • the behavior of the software may become unstable or may not operate.
  • the package manager of a software package describes dependencies between software and libraries.
  • this package manager for example, software packages that cannot be installed or updated at the same time are known, so that installation or update of those software packages can be avoided.
  • the dependency between software written in the package manager is a dependency explicitly described by the creator of the package. Therefore, for example, the dependency relationship or compatibility between a plurality of versions that the creator is not aware of is not specified.
  • the process targeted by such a process management support system is an actual work process such as a color painting process, and is different from the software installation targeted by the present invention.
  • such a process management support system aims at shortening the transition time from the previous process to the subsequent process by examining the compatibility between two processes that are consecutive in the front and back, and in the middle of installation as in the present invention. Compared with the case where the order is determined based on the state of the above, there is a fundamental difference in that the past order is also taken into consideration and the calculation means that the case classification is enormous.
  • Patent Document 2 there is a technique (for example, Patent Document 2) that calculates the stability of connectivity between components (including software) elements.
  • This technique presents a combination with a high degree of structural stability by looking at the compatibility of hardware and software versions in a storage system.
  • This technique is not a technique for determining the order of software installation.
  • Patent Document 3 there is a technology (for example, Patent Document 3) that performs a check based on compatibility information between hardware and hardware components. This technology searches for parts that match the model, determines suitability, and places an order in response to a user's computer upgrade or playback request in a computer network to which a computer or a personal digital assistant is connected. It can be related to computer upgrades. This technique is also not a technique for determining the order of software installation.
  • the purpose is to stabilize the system when multiple software is installed in sequence.
  • this program sets an installation order for sequentially installing a plurality of update programs corresponding to each of the plurality of software.
  • a program for determining, and applying a function that outputs an index of the degree to which a certain software version exists on a computer to information related to software existing on a plurality of known computers, the current version of the plurality of software and a new one It is possible to calculate the index for each combination with the version, and to install the update programs one by one from the state where all of the plurality of softwares are in the current version to the state of all the new versions.
  • Current version And based on the sum of the index corresponding to the combination of the new version, to search for the predetermined condition is satisfied the installation order to provide a program for executing the processing to the computer.
  • FIG. 6 is a flowchart of a method according to an embodiment. It is a figure which shows the number of software and the rareness which exist in a machine. It is the figure which showed the sum total of the rareness which a state can take for every installation order. It is a figure which shows the example of the search of the optimal path
  • FIG. 1 is a diagram showing versions of software A, B, and C that exist (installed) in a plurality of machines (physical machines or virtual machines). Version 5 or 6 is installed for software A, version 5.5 or 6.0 is installed for software B, and version 4.1 or 5.1 is installed for software C. ing.
  • FIG. 2B illustrates the installation state using a hypercube.
  • FIG. 2A shows an operation of installing three software update programs as a vector direction. For example, when moving from the state M1 to the state M2, the software A is updated. That is, there are six paths from the initial state M1 to the goal M7.
  • FIG. 3A shows a state transition diagram in which update software related to software A, B, and C is installed in the order of ABC.
  • the number of existing machines (1, 2, 2, 3) in FIG. 3A indicates the number of existing machines in FIG. 1 corresponding to the respective states (M1, M2, M3, M4). Yes.
  • this update order it can be seen that in any state, a combination of software and version exists in an existing machine.
  • FIG. 3B shows an example in which three pieces of software are updated in a different order.
  • This case corresponds to the case where the software update order is CBA.
  • the number of existing machines corresponding to the installation state (M1, M5, M8, M7) is (1, 0, 0, 3).
  • the state M5, that is, (software A version 5, software B version 5.5, software C version 5.1) does not exist in the existing machine of FIG. Therefore, it is expected that the state M5 is very unlikely to be a stable state.
  • the state M8 there is no combination of software and version in the existing machine of FIG.
  • the order of FIG. 3A that is, the update programs executed in the order of software ABC can perform more stable update than the execution of the order of CBA. It can be predicted well.
  • the rare degree is defined as one evaluation function as follows. Note that the present invention is not limited to this evaluation function. Then, as an index of the degree to which a version k of a certain software P exists in the computer, the degree of rare existence, that is, the rare (rare) degree P k is defined by the following expression.
  • n is the number of samples of the software P version
  • I k is called a selected information amount, and represents an information amount whose program P version is k.
  • H is the average amount of information.
  • P k is defined by dividing the weight (importance) of the selected information amount I k whose software is version k by the average information amount H of the software so as not to change for each software as much as possible. That is, the rareness P k is calculated by dividing the selected information amount by the average information amount. The rareness P k becomes larger as the existence of the software version k is rare.
  • a negative sign is added to the selected information amount or the average information amount because x i / n is always smaller than 1, so that when log is calculated, the calculation result is negative. Because it becomes.
  • the value of the selected information amount can be set to a positive value.
  • a predetermined large value may be set as P k .
  • 10 is used as the bottom of the log, but other bottoms may be used.
  • a function other than log may be used.
  • the rare degree in which the software version exists is defined as the rare degree, but this rare degree is only an example.
  • Other indicators for the presence of software versions may be used. For example, it is possible to define and use an index that has a larger value as the software version is more likely to exist. When such an index is used, an installation order that maximizes the sum of the indices may be employed.
  • FIG. 5 shows the result of calculating the rarity corresponding to each software version shown in FIG. 4 as described above.
  • FIG. 6 shows a table in which the rareness corresponding to each state (M1 to M8) in FIG. 2B is obtained by summing the rareness of each software version.
  • the rareness of each state (combination of a plurality of software versions) can be calculated approximately.
  • approximate rareness of each state can be calculated by this method.
  • the rarity for a combination of a plurality of software and versions may be directly obtained (this example will be described in detail in an example described later).
  • FIG. 7 shows a table that comprehensively calculates the sum of the rareness that can be taken for each installation order in each installation order shown in the hypercube of FIG. 2 (B).
  • the installation order with the smallest sum of the rarities is the installation order 2 (A, B, C).
  • the sum of the rareness at that time is 11.6.
  • the state transition is (M1, M2, M3, M7), and the update software installation order is A, B, C. In other words, going through this installation order means going through the least common state, including during installation.
  • the sum of the rarities is calculated for all the installation orders, and the minimum installation order is determined.
  • a search algorithm such as the Dijkstra method known to those skilled in the art is used to search the hypercube in FIG. You may ask for it.
  • a description of a search algorithm such as a known Dijkstra method will be omitted.
  • FIG. 8 shows a functional block diagram of the present embodiment.
  • the upgrade execution unit 860 is added to the machine 1 (801) of the system group 800 to be operated including the machine 1 (801), the machine 2 (802), and the machine n (809) as the operation target.
  • the series of version upgrades described above is executed.
  • Information about each machine of the operation target system 800 may be stored in the configuration information DB 810 in advance.
  • the rareness calculation unit 820 refers to the configuration information DB 810 to obtain information on software existing in each machine and its version. Then, the rareness calculation unit 822 may calculate the rareness using the above-described calculation formula. The calculated rareness may be temporarily stored in the rareness DB 830.
  • the rareness calculation unit 822 corresponds to an index calculation unit.
  • the rareness DB 830 may accumulate information for determining the order of update programs and may be used later.
  • the individual rarity integrating unit 824 may calculate the rarity of a combination of a plurality of software and versions by summing the individual rarities of the software and its version. In this calculation, other calculations may be used instead of the total.
  • the individual rareness integration unit 824 corresponds to an index integration unit.
  • the integrated result may be stored again in the rarity DB 830 or may be sent directly to the optimum route search unit 840.
  • the optimum route search unit 840 reads the rareness stored in the rareness DB 830, creates the hypercube shown in FIG. 2B, and the total value of the rareness becomes the smallest in the upgrade order.
  • the optimal route search unit 840 outputs the upgrade order 850 that is optimal (that is, stable operation can be expected).
  • the version upgrade execution unit 860 executes a series of software updates for the machine 1, which is the target machine.
  • FIG. 9 shows a flow of storing rareness for each software version of a plurality of software (for example, N pieces) in the individual rareness DB.
  • step 910 the state of all machines is acquired from the configuration information DB 810. Then, the process proceeds to step 912.
  • step 912 it is determined whether there is software for which the individual rarity has not yet been calculated. If the individual rarities of all software have already been calculated, the process ends. If there is software for which the individual rarity has not yet been calculated, the process moves to step 914.
  • step 914 an individual rarity is calculated for each software version. Then, the process proceeds to step 916.
  • step 916 the individual rarity is stored in the individual rarity DB. Then, the process returns to step 912.
  • step 912 if the individual rarities of all software have already been calculated, the process ends.
  • FIG. 10 shows a flow for outputting an optimal installation order from the calculated rarity.
  • step 1010 the hypercube shown in FIG. 2B is created (the number of variations of the path from the initial state to the goal in the hypercube is N factorial). Then, the process proceeds to step 1012.
  • a rareness is assigned to each vertex of the hypercube using an individual rareness DB.
  • the method described with reference to FIG. 6 is used.
  • the sum of the rareness of each software version may be used. Alternatively, other calculation methods may be used. Then, the process proceeds to step 1014.
  • step 1014 the optimum route is obtained from the hypercube.
  • a route that minimizes the sum of the rarity at each vertex is obtained.
  • the comprehensive method shown in FIG. 7 may be used.
  • a search algorithm such as Dijkstra method may be used. Then, the process proceeds to step 1016.
  • step 1016 based on the obtained optimum route, the optimum installation order of the update program is output.
  • FIG. 11 shows a functional block diagram for extracting software having a correlation with the version.
  • the correlation determination unit 1110 has a function of extracting a plurality of pieces of software having a high correlation with respect to the version from the information on the version of each software stored in the configuration information DB 810.
  • the correlation determination unit 1110 is provided with a correlation calculation unit 1112 to calculate correlation values of a plurality of software.
  • a plurality of pieces of software having high correlation form a subset of software by the subset extraction unit 1114.
  • the subset may be handled as one piece of software by the rareness calculation unit 820 and / or the optimum route search unit.
  • the order of installation of the update software corresponding to the software included in the software grouped as a subset may be continuous.
  • the order of installation may be executed in a predetermined order.
  • the installation order may be determined by recursively applying the installation order determination method of this embodiment to the software included in the subset.
  • a plurality of predetermined software may be specified to be collected as a subset.
  • FIG. 12A to 12C show a subset of software having a high correlation with respect to the version.
  • FIG. 12A shows versions of software D, E, and F existing in the machines 1 to 10.
  • FIG. 12 (B) shows the numbers of software D and E and their versions.
  • the old version (5) of the software D and the old version (5.5) of the software E there are many combinations of old versions (6.0).
  • the correlation coefficient is positive with respect to the old and new versions and the correlation coefficient is higher than a predetermined threshold value, a plurality of pieces of software may be collected as shown in FIG. By collecting in this way, it may be handled as one piece of software.
  • the rarity may be calculated as follows.
  • I (D5, E5.5) means the amount of selection information for a set of version 5 of software D and version 5.5 of software E.
  • FIG. 13 shows a flow for extracting a subset of software having a high correlation with respect to the version.
  • step 1310 it is determined whether all of the plurality of software subsets are covered. If not all, go to step 1312.
  • step 1312 one new subset of a plurality of software is extracted. Then, the process proceeds to next Step 1314.
  • step 1314 correlation values of a plurality of software belonging to the subset are calculated for the current and new versions. Then, the process proceeds to Step 1316.
  • step 1316 it is determined whether or not the correlation value is greater than or equal to a predetermined threshold value. If the correlation value is greater than or equal to a predetermined threshold, the process proceeds to step 1318. If the correlation value is less than the predetermined threshold, the process returns to step 1310.
  • step 1318 the input software subsets are grouped together. Then, the process returns to step 1310.
  • step 1310 when all the subsets of the plurality of software are covered, the process ends.
  • FIG. 14 shows the hardware configuration of each machine 800 and a management server (not shown).
  • Each machine 800 and management server includes a CPU 1410, a memory 1415, an input device 1420, an output device 1425, an external storage device 1430, a portable storage medium drive device 1435, and a network connection device 1445.
  • Each device is connected by a bus 1450.
  • the portable recording medium driving device 1435 can read and write the portable recording medium 1440.
  • a network 1460 is connected to the network connection device 1445. It may be connected to other machines via the network 1460.
  • the network may be connected to an external network such as the Internet.
  • the portable recording medium 1440 refers to one or more non-transitory, tangible storage media having a structure.
  • Illustrative examples of the portable recording medium 1440 include a magnetic recording medium, an optical disk, a magneto-optical recording medium, and a nonvolatile memory.
  • Magnetic recording media include HDDs, flexible disks (FD), magnetic tapes (MT) and the like.
  • Optical discs include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc-Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like.
  • Magneto-optical recording media include MO (Magneto-Optical disk).
  • the rarity of individual software and its version is calculated.
  • the above-described embodiment is an effective method when the number of samples is small.
  • the following embodiments may be used. That is, an embodiment in which a rareness is directly calculated for a combination of a plurality of software and versions in each state and the processing is advanced will be described below.
  • FIG. 15 is a functional block diagram for calculating the rarity for a combination of a plurality of software and versions. The configuration is similar to that shown in FIG. 8, and the systems shown in FIGS. 8 and 15 may be integrated into a single system. The parts different from FIG. 8 will be described below.
  • the combination rarity calculation unit 1520 calculates the rarity related to a combination of a plurality of software and their versions from the configuration information DB 810.
  • the combination rareness calculation unit 1520 corresponds to a combination index calculation unit. Details of the calculation will be described later. Then, the calculated combination rareness is stored in the combination rareness DB 1530.
  • FIG. 16 shows a flowchart of the method of this embodiment.
  • the rarity is calculated for the combination of the current and new versions of a plurality of (for example, N) software (the number of combinations is the factorial of N).
  • the calculated rarity may be accumulated in the combination rarity DB 1630.
  • step 1612 it is determined whether there is a combination of versions for which the rarity is not calculated. If the determination result is “Yes”, the process returns to Step 1610. If the determination result is “No”, the process moves to step 1614.
  • step 1614 the search is made for an installation order that minimizes the sum of the rareness of the combinations of versions that can be taken when installing the updated software one by one from the state of all current versions to the state of all new versions. .
  • step 1616 the searched installation order is output.
  • FIG. 17 shows the number and rareness of combinations of the corresponding air P, Q, R existing in a plurality of existing machines and the respective versions stored in the configuration information DB 810.
  • the state M12 will be described below.
  • the versions of the software P, Q, and R are 6, 5.5, and 4.1, respectively, and it can be seen that there are three machines having the configuration in the configuration information DB 810.
  • the rareness for the state M12 is calculated as follows. That is,
  • k of I k , x k , and P k can be expressed in a vector format (for example, (P6, Q5.5, R4.1) as described above).
  • FIG. 18 shows values obtained by exhaustively calculating the state transition and the sum of the rarities in each installation order.
  • the value of 4.8 in the installation order 3 (R, P, Q) has the smallest rare sum. Therefore, it can be seen that the installation order of the software update program is optimal for R, P, and Q.
  • FIG. 19B shows each state as a hypercube, and the route along the arrow is the optimum route, and the installation order is the order of R, P, and Q as described above. .
  • the minimum value is obtained by exhaustive calculation.
  • a route search algorithm such as the Dijkstra method, the optimum route can be found quickly. It is.
  • a three-dimensional hypercube is illustrated.
  • a route search may be performed in a hypercube exceeding three dimensions.
  • examples exceeding three dimensions are not illustrated because they cannot be illustrated.
  • a person skilled in the art can understand the process even when exceeding three dimensions. Obviously, the larger the dimension, the greater the merit of using a search algorithm such as Dijkstra's method.
  • Updates and update programs used herein should be understood as having a broad concept. Needless to say, installation of software to be newly installed can also be included in the update program of the present invention. Then, using the method for determining the order of installation disclosed in the present embodiment, the order of installing a plurality of software including newly installed software may be determined.
  • the method and the program in the present embodiment can be implemented by changing the order of the components as long as there is no contradiction. Needless to say, the method described in the attached claims and the program in which the order of the components of the program is changed belong to the technical scope of the claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

 複数のソフトウェアを順番に更新する途中で障害が発生するのを極力回避するよう、ソフトウェアの更新順序を決定する。 あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の指標を算出し、複数のソフトウェアについて、全てが現バージョンである状態から、全てが新バージョンの状態に至るまでの、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する指標の総和に基づいて、所定の条件を満たすようインストール順序を決定する。

Description

ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
 本発明は、ソフトウェアのインストール又はその更新の技術に関する。
 近年のOA化の進展によって、企業内のコンピュータには、様々なバージョンの複数のプログラムがインストールされている。加えて、クラウドコンピューティングが進展してきている。このため、物理マシン、及び仮想マシンを問わず、複数のマシンにインストールされているソフトウェアを安定的に動作させるための管理を行うことが非常に重要となってきている。
 各マシンに存在する多数のソフトウェアは、セキュリティの向上や、機能アップを目的として、不定期に更新することが必要となる。
 また、様々なソフトウェアは、相互に共通のプログラムを利用している場合もある。また、複数のソフトウェア間での相性が存在する場合もある。
 ソフトウェアのインストールや更新に伴い、相性が合わないソフトウェアの組合せが存在するようになると、ソフトウェアの挙動が不安定となったり、動作しなくなったりする場合がある。また、更新プログラムを含むソフトウェアのインストールの順番に起因して、ソフトウェアの挙動が不安定となったり、動作しなくなったりする場合もある。
 例えば、ソフトウェアパッケージのパッケージマネジャには、各ソフトウェア同士やライブラリに対する依存関係が書かれている。このパッケージマネジャによれば、例えば、同時にインストールまたは更新できないソフトウェアパッケージが分かるため、それらのインストールや更新を回避できる。
 しかしながら、パッケージマネジャに書かれているソフトウェア間の依存関係は、パッケージの作成者が明示的に記述した依存関係である。したがって、例えば、作成者が意識していない複数のバージョン間での依存関係や相性等は明記されていない。
 このため、パッケージマネジャが存在するにもかかわらず、複数のソフトウェアの更新を行った際に、例えば、相性の悪いソフトウェアの組合せになってしまい、システムのパフォーマンスが低下したり、動作不能となってしまったりすることがある。
 近年では、1つの物理マシン又は仮想マシンに存在するソフトウェアが膨大な数にのぼるため、更新を行う際にも、複数の更新プログラムを順番にインストールすることが多い。この場合、複数の更新プログラムのインストールの順番によって、マシンは非常に多くの状態を経ることになる。更新プログラムのインストールの順番が異なると、そのマシンが経る状態も異なるものとなる。この場合に、更新プログラムの順番が不適切であると、更新の途中で、マシンが非常に不安定な状態に直面することがあり得る。この場合には、その不安定な状態において、マシンがハングアップしてしまうこともある。そして、一連のソフトウェアの更新が継続できなくなることがある。
 このように、一連のソフトウェアの更新の途中で、更新が不成功に終わると、多くの場合は、そのマシンのサービスが停止してしまう。そして、その不具合を解決するために多くの労力を割かなければならなくなることが多い。
 従来、工程管理支援システムにおいて、作業間の相性値テーブルにより、作業の実行順序(工程)を計画する方法(例えば特許文献1参照)がある。この方法では、作業を特定する作業データに基づき、複数の作業をグループに分けるグループ化手段と、所定数のグループ間の類似性の高さを数値で示す類似性表示テーブルを格納する類似性表示テーブル格納手段と、上記類似性表示テーブルに基づき、上記複数の作業のそれぞれが属するグループ間の類似性を比較する類似性比較手段と、上記類似性比較手段による比較結果に基づき、先に行われる作業の後には該作業と類似性が最も高い他の作業が続くように上記複数の作業の実行順序を決定する工程計画手段とを有している。
 しかしながら、このような工程管理支援システムで対象とする工程は、色塗り工程のような実作業の工程であり、本発明が対象としているソフトウェアのインストールとは、異なるものである。また、このような工程管理支援システムでは、前後に連続する2つの工程間の相性を調べることで前工程から後工程への推移時間を短くすることを目的とし、本発明のようにインストールの途中の状態をもとにして順番を決めるものと比して、過去の順番も考慮に入れている点と場合分けが膨大になることへの計算手段の点で、根本的な差が存在する。
 また、従来、部品(ソフトウェアを含む)要素間の接続性の安定度を計算する技術(例えば、特許文献2)が存在する。この技術は、例えば、ストレージシステムにおけるハードウェアとソフトウェアのバージョンの相性を見て、構成の安定度の高い組合せを提示するものである。この技術は、ソフトウェアのインストールの順序を決定する技術ではない。
 また、ハードウェアや、ハード部品間の相性情報を踏まえてチェックを行う技術(例えば特許文献3)が存在する。この技術は、コンピュータや携帯情報端末などが接続されるコンピュータネットワークにおいて、利用者のコンピュータのアップグレードや再生等の要望に応じて、機種に適合する部品を検索し、適否を判定し、注文をすることができるコンピュータのアップグレードに関するものである。この技術も、ソフトウェアのインストールの順序を決定する技術ではない。
特開2000-089809号公報 特開2008-233973号公報 特開2001-350988号公報
 1つの側面では、複数のソフトウェアを順番にインストールする際のシステムの安定化を図ることを目的とする。
 本プログラムは、目的のコンピュータにインストールされている複数のソフトウェアを現バージョンから、新バージョンに更新するために、前記複数のソフトウェアのそれぞれに対応する複数の更新プログラムを順にインストールするためのインストール順序を決定するプログラムであって、あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、前記複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の前記指標を算出し、前記複数のソフトウェアについて、全てが現バージョンである状態から、全てが新バージョンの状態に至るまでの、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する前記指標の総和に基づいて、所定の条件を満たす前記インストール順序を探索する、処理をコンピュータに実行させるプログラムを提供する。
 複数のプログラムのインストールの際のシステムの安定性の確保を図ることができる。
複数のマシンに存在するソフトウェアのバージョンを示す図である。 ハイパーキューブを用いてソフトウェアのインストール順序を示した図である。 更新プログラムを順にインストールしたときの状態遷移を示す図である。 複数のマシンに、存在するソフトウェアのバージョンを示す図である。 複数のソフトウェアのバージョンに対応する稀(まれ)度を示した図である。 各ソフトウェアのバージョンの稀度を合計した稀度を示す図である。 インストール順序毎に状態がとり得る稀度の総和を示した図である。 一実施例のブロック図である。 DBにソフトウェアのバージョン毎の稀度を格納するフローを示す図である。 稀度から最適なインストール順序を出力するフローを示す図である。 相関性のあるソフトウェアを抽出する一実施例のブロック図である。 相関の高いソフトウェアの部分集合を示す図である。 相関の高いソフトウェアの部分集合を抽出するフローを示す図である。 一実施例のハードウェア構成を示す図である。 複数のソフトウェアの組合せの稀度を取り扱う一実施例を示す図である。 一実施例の方法のフローチャートを示す図である。 マシンに存在するソフトウェアの個数及び稀度を示す図である。 インストール順序毎に状態がとり得る稀度の総和を示した図である。 ハイパーキューブによる最適経路の探索の例を示す図である。
 図1は、複数のマシン(物理マシン又は仮想マシン)に、存在する(インストールされている)ソフトウェアA、B、及びCのバージョンを示す図である。ソフトウェアAについては、バージョン5または6がインストールされており、ソフトウェアBについては、バージョン5.5または6.0がインストールされており、ソフトウェアCについては、バージョン4.1または5.1がインストールされている。
 この状況において、マシン1に対して、ソフトウェアAについてバージョン5から6に、ソフトウェアBについてバージョン5.5から6.0に、ソフトウェアCについてバージョン4.1から5.1に、更新する場合を想定する。更新用のソフトウェアは、ソフトウェアA、B、及びCに対応して、1つずつ存在する。このため、この3個の更新ソフトウェアをインストールする順番は、複数通り(この場合には、6通り)存在する。
 図2(B)は、インストールする状態を、ハイパーキューブを用いて図示したものである。図2(A)は、3つのソフトウェアの更新プログラムをインストールする操作をベクトルの方向として表したものである。たとえば、状態M1から状態M2に移動した場合には、ソフトウェアAが更新されることを表している。すなわち、初期状態M1から、出発して、ゴールM7に至る経路は、6通り存在する。
 そして、順番にインストールする際に、安定である可能性が高い経路を経由して、ゴールに至れば、インストールが成功する確率が高くなるであろう。これに対して、インストールの途中で、非常に不安定な状態を経由することとなれば、インストールが途中で止まってしまう可能性が高くなる。あるいは、インストールが完了しても、不安定なマシンの状態となる可能性が高くなるであろう。
 既存の多くのマシンに既に存在する複数のソフトウェアのバージョンの組合せであれば、システムが安定的な動作となることが十分予測される。なぜなら、多くのマシンにおいて、その組合せの動作が実証されているからである。これに対して、既存のマシンにおいて稀にしか存在しないか、全く存在しない複数のソフトウェアのバージョンの組合せは、不安定な動作を起こす可能性が高いと言える。なぜなら、このような組合せは、不安定であるか、動作不能であるかの理由で、既存のマシンにおいて、その組合せの存在が稀となってしまっていることが経験上からも予想されるからである。
 一般に、複数のソフトウェアを順番にインストールする前に、インストール後のマシンの状態が安定するか否かを予測することは難しい。しかしながら、上記の考察を考慮して、より安定した動作が期待できるインストールの順番を決定することは可能である。
 以下、図1の情報を前提として、一例を挙げる。図3(A)は、ソフトウェアA、B、及びCに係る更新ソフトウェアをABCの順でインストールした状態遷移図を示している。図3(A)のマシン存在数(1,2,2,3)は、状態(M1,M2,M3,M4)のそれぞれの状態に対応する、図1の既存のマシンの存在数を示している。この更新の順序においては、いずれの状態においても、ソフトウェアとバージョンの組合せが既存のマシンに存在していることが分かる。
 図3(B)は、別の順序で3つのソフトウェアを更新した例を示している。この場合には、ソフトウェアの更新の順番をCBAとした場合に相当する。この場合、インストールの際の状態(M1,M5,M8,M7)に対応する、既存のマシンの存在数は、(1,0,0,3)となっている。この場合、状態M5すなわち、(ソフトウェアAバージョン5、ソフトウェアBバージョン5.5、ソフトウェアCバージョン5.1)は、図1の既存のマシンに存在しない。したがって、状態M5は、安定的な状態でない可能性が非常に高いと予想される。同様に、状態M8についても、図1の既存のマシンに、ソフトウェアとバージョンの組合せが存在しない。
 上述の2つのインストール順序の例を比較すると、図3(A)の順序すなわち、更新プログラムをソフトウェアABCの順に実行する方が、CBAの順に実行するよりも、より安定的な更新が行えることが十分予測できる。
 上記の例の場合には、合計6通りのインストール順序が存在するため、これらを比較検討することにより、最も安定的なインストール順序が特定され得る。
 [個別のソフトウェアの稀度を用いる実施例]
 上述の例では、特定のソフトウェアの組合せを有する既存のマシンの存在数を採り上げて比較を行った。なお、上述の存在数は、1つの指標に過ぎず、本発明は、これに拘束されるものではない。
 以下の実施例では、1つの評価関数として、稀(まれ)度を以下のように定義する。なお、本発明は、この評価関数に限定されるものではない。そして、あるソフトウェアPのバージョンkがコンピュータに存在する度合の指標として、存在が稀である度合すなわち稀(まれ)度Pを以下の式により定義する。
Figure JPOXMLDOC01-appb-M000004
ここで、xは、ソフトウェアPのバージョンがiである個数(例えば図4のソフトウェアAであれば、x=3、x=7)、nはソフトウェアPのバージョンの標本数であり、バージョンiのソフトウェアSの個数をiのとり得る値の全てについて総和をとった値(例えば図4のソフトウェアAであれば、n=3+7=10)、である。
 そして、上記Iは、選択情報量と呼び、プログラムPのバージョンがkである情報量を表す。(例えば、図4のソフトウェアAのバージョン5であれば、I=-log10(x/n)=-log10(3/10)=0.53である)
 また、Hは、平均情報量である。(例えば、図4のソフトエアAであれば、H=-((x/n)log10(x/n)+(x/n)log10(x/n))=-((3/10)log10(3/10)+(7/10)log10(7/10))=0.265となる。
 そして、ソフトウェアがバージョンkである選択情報量Iの重み(重要度)が、ソフトウェア毎に、なるべく変わらないようにするために、そのソフトウェアの平均情報量Hで割ることにより、Pを定義する。すなわち、選択情報量を平均情報量で割ることにより、稀度Pを算出している。稀度Pは、ソフトウェアのバージョンkの存在が、稀であればあるほど、大きな値となる。
 なお、選択情報量や、平均情報量にマイナスの符号が付けられているのは、x/nが、必ず1よりも小さくなるため、logを計算した場合には、その計算結果がマイナスとなるからである。マイナスを付けることにより、選択情報量の値を正の値とすることができる。なお、x=0がゼロの場合には、稀度Pの計算等のlogの計算結果が計算できないため、例えばPとして、予め定められた大きな値を設定してもよい。
 なお、上記の例では、logの底として10を採用したが、その他の底を採用してもよい。また、log以外の関数を用いてもよい。
 また、上記の実施例では、ソフトウェアのバージョンが存在する稀な度合を稀度と定義して用いたが、この稀度は一例に過ぎない。ソフトウェアのバージョンの存在に関する他の指標を用いてもよい。例えば、ソフトウェアのバージョンが存在する可能性が高いほど、大きな値となる指標を定義して用いてもよい。このような指標を用いた場合には、指標の総和が最大となるインストール順序を採用すればよい。
 図5は、以上のようにして、図4に示された各ソフトウェアのバージョンに対応する稀度を計算した結果を示している。
 図6は、図2(B)の各々の状態(M1~M8)に対応する稀度を、各ソフトウェアのバージョンの稀度を合計することによって求めた表を表している。このように、各ソフトウェアのバージョンの稀度を合計することによって、近似的に各状態(複数のソフトウエアのバージョンの組合せ)の稀度を計算することができる。特に標本数が少ない場合には、この方式によって、各状態の近似的な稀度が計算できる。なお、標本数が多い場合には、複数のソフトウェアとバージョンの組合せに対する稀度を直接求めてもよい(この例については、後述の実施例で詳細に示す)。
 図7は、図2(B)のハイパーキューブに示された各インストール順序において、インストール順序毎に状態がとり得る稀度の総和を網羅的に計算した表を示している。この中で、稀度の総和が一番小さいインストール順序は、インストール順序2(A,B,C)である。そのときの稀度の総和は、11.6である。そして、状態の遷移は、(M1,M2,M3,M7)であり、更新ソフトウェアのインストール順序は、A,B,Cの順であることが分かる。すなわち、このインストール順序を経ることが、インストール途中も含めて、一番稀でない状態を経由するということになる。
 なお、図7では、全てのインストール順序に関して稀度の総和を計算し、最小値のインストール順序を決定した。しかしながら、最小値を決定する方法としては、当業者に知られているダイクストラ法などの、探索アルゴリズムを用いることにより、図3(B)のハイパーキューブ上で探索して、最小値を取る経路を求めてもよい。なお、既知のダイクストラ法などの探索アルゴリズムについては、説明を省略する。
 図8は、本実施例の機能ブロック図を示している。本実施例においては、運用対象としてのマシン1(801)、マシン2(802)ないしマシンn(809)を含む運用対象のシステム群800のマシン1(801)に、バージョンアップ実行部860が、上述した一連のバージョンアップを実行する。運用対象のシステム800の各マシンの情報は、構成情報DB810に予め格納されてもよい。稀度算出部820は、構成情報DB810を参照することにより、各マシンに存在するソフトウェアとそのバージョンの情報を取得する。そして、稀度演算部822は、上述の計算式を用いて稀度を算出してもよい。算出された稀度は、一旦稀度DB830に格納されてもよい。稀度演算部822は、指標演算部に相当する。稀度DB830は、更新プログラムの順序を決定するための情報を蓄積し、後の利用に供してもよい。個別稀度統合部824は、ソフトウェアとそのバージョンの個別の稀度を合計して複数のソフトウェアとバージョンの組合せの稀度を計算してもよい。なお、この計算において、合計ではなく他の演算を用いてもよい。個別稀度統合部824は、指標統合部に相当する。この統合された結果は、稀度DBに830に再び格納されてもよく、あるいは、最適経路探索部840に直接送られてもよい。最適経路探索部840は、稀度DB830に格納された稀度を読み出し、図2(B)に示したハイパーキューブを作成し、バージョンアップ順序のうちで、稀度の合計値が一番小さくなるバージョンアップ順序を決定するよう、ハイパーキューブの経路探索手法を用いて探索する。そして、最適経路探索部840は、最適な(すなわち、安定した動作が期待できる)バージョンアップ順序850を出力する。この出力されたバージョンアップ順序850を用いて、バージョンアップ実行部860が、目的のマシンであるマシン1に対して、一連のソフトウェアの更新を実行する。
 図9は、個別稀度DBに複数のソフトウエア(例えばN個)のソフトウェアのバージョン毎に稀度を格納するフローを示している。
 ステップ910において、全マシンの状態を構成情報DB810から取得する。そしてステップ912に移る。
 ステップ912において、まだ個別稀度を算出していないソフトウェアがあるか否かが判断される。既に、全てのソフトウェアの個別稀度が算出されている場合には、終了する。まだ個別稀度を算出していないソフトウェアがある場合には、ステップ914に移る。
 ステップ914において、ソフトウェアのバージョンごとに、個別稀度を算出する。そして、ステップ916に移る。
 ステップ916において、個別稀度DBに個別稀度を格納する。そして、ステップ912に戻る。
 ステップ912において、既に、全てのソフトウェアの個別稀度が算出されている場合には、終了する。
 図10は、算出された稀度から最適なインストール順序を出力するフローを示している。
 ステップ1010において、図2(B)に示したハイパーキューブを作る(ハイパーキューブにおける、初期状態からゴールに至る経路のバリエーションの数は、Nの階乗個となる)。そしてステップ1012に移る。
 ステップ1012において、ハイパーキューブの各頂点に個別稀度DBを用いて稀度を付ける。この稀度の算出については、図6を用いて説明した手法を用いる。算出方法としては、各ソフトウェアのバージョンの稀度の合計を用いてもよい。あるいは、その他の演算手法を用いてもよい。そして、ステップ1014に移る。
 ステップ1014において、ハイパーキューブから最適経路を求める。最適経路は、各頂点にある稀度の総和が最小となる経路を求める。この最適経路の求め方としては、図7に示した網羅的な手法を用いてもよい。あるいは、ダイクストラ法などの探索アルゴリズムを用いてもよい。そして、ステップ1016に移る。
 ステップ1016において、求めた最適経路に基づいて、更新プログラムの最適なインストール順序を出力する。
 図11は、バージョンに関して相関性のあるソフトウェアを抽出する機能ブロック図を示している。相関性判定部1110は、構成情報DB810に格納された各ソフトウェアのバージョンの情報から、バージョンに関する相関性の高い複数のソフトウェアを抽出する機能を有する。相関性判定部1110には、相関計算部1112が設けられており、複数のソフトウェアの相関値が計算される。相関性の高い複数のソフトウェアは、部分集合抽出部1114によって、ソフトウェアの部分集合を構成する。そして、その部分集合は、1つのソフトウェアとして、稀度算出部820及び/又は最適経路探索部において取り扱われてもよい。複数のソフトウェアを部分集合にまとめて、1つのソフトウェアとして扱うことにより、稀度の計算や経路探索の計算が簡略化される。なお、部分集合としてまとめられたソフトウェアに含まれるソフトウェアに対応する更新ソフトウェアのインストールの順番は、連続にしてもよい。また、インストールの順番は、予め指定された順序で実行してもよい。あるいは、部分集合に含まれるソフトウェアに対して、本実施例のインストール順序決定の手法を再帰的に適用して、インストールの順番を決定してもよい。また、予め定められた複数のソフトウェアを、部分集合としてまとめるよう、指定してもよい。
 図12(A)ないし(C)は、バージョンに関して相関の高いソフトウェアの部分集合を示している。図12(A)は、マシン1ないし10に存在するソフトウェアD,E,Fのバージョンを示している。
 図12(B)は、ソフトウェアD及びEと、それらのバージョン間の個数を示している。図12(B)から分かるように、ソフトウェアDの古いバージョン(5)と、ソフトウェアEの古いバージョン(5.5)の組合せが多く、かつ、ソフトウェアDの新しいバージョン(6)と、ソフトウェアEの古いバージョン(6.0)の組合せが多い。これは、ソフトウェアDとEとの間で、バージョンに関して相関が高いことを示している。新旧バージョンに関して相関係数が正であり、かつ予め定められた閾値よりも相関係数が高い場合、複数のソフトウェアを、例えば図12(C)のようにまとめてもよい。このようにまとめることによって、1つのソフトウェアとして取り扱ってもよい。
 図12(C)の場合には、例えば、以下のようにして稀度を計算してもよい。
Figure JPOXMLDOC01-appb-M000005
ここで、I(D5,E5.5)とは、ソフトウェアDのバージョン5とソフトウェアEのバージョン5.5の組に対する選択情報量を意味する。このような標記については、以下の数式についても同様である。
 図13は、バージョンに関して相関の高いソフトウェアの部分集合を抽出するフローを示している。
 ステップ1310において、複数のソフトウェアの部分集合を全て網羅したかが、判断される。全てを網羅していない場合には、ステップ1312に進む。
 ステップ1312において、新たな複数のソフトウェアの部分集合を1つ抽出する。そして、次のステップ1314に進む。
 ステップ1314において、現・新バージョンに関して、部分集合に属する複数のソフトウェアの相関値を計算する。そして、ステップ1316に進む。
 ステップ1316において、相関値が、所定の閾値以上であるか否かを判断する。相関値が所定の閾値以上である場合には、ステップ1318に進む。相関値が所定の閾値未満であれば、ステップ1310に戻る。
 ステップ1318において、入力されたソフトウェアの部分集合をグループ化し、一つにまとめる。そしてステップ1310に戻る。
 ステップ1310において、複数のソフトウェアの部分集合を全て網羅した場合には、処理は終了する。
 図14は、各マシン800及び管理用サーバ(不図示)のハードウェア構成を示している。各マシン800及び管理用サーバは、CPU1410、メモリ1415、入力装置1420、出力装置1425、外部記憶装置1430、可搬記憶媒体駆動装置1435、ネットワーク接続装置1445が含まれる。そして、それぞれの機器は、バス1450によって接続されている。また、可搬記録媒体駆動装置1435は、可搬記録媒体1440を読み書きすることができる。そして、ネットワーク接続装置1445には、ネットワーク1460が接続されている。ネットワーク1460を介して他のマシンに接続されてもよい。また、ネットワークは、インターネット等の外部ネットワークに接続されてもよい。
 なお、本実施形態のプログラムは、可搬記録媒体1440に格納することができる。可搬記録媒体1440とは、構造(structure)を有する1つ以上の非一時的(non-transitory)な、有形(tangible)な、記憶媒体を言う。例示として、可搬記録媒体1440としては、磁気記録媒体、光ディスク、光磁気記録媒体、不揮発性メモリなどがある。磁気記録媒体には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc-Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。また、光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
 [複数のソフトウェアの組合せの稀度を用いる実施例]
 上述の実施例では、個別のソフトウェアとそのバージョンの稀度を算出した。上述の実施例は、標本数が少ない場合には有効な手法である。なお、標本数が十分にある場合には、下記に示す実施例を利用してもよい。すなわち、各状態における複数のソフトウェアとバージョンとの組合せに関して直接稀度を算出して、処理を進める実施例について、以下に説明する。
 図15は、複数のソフトウェアとそのバージョンとの組合せに対して稀度を計算する機能ブロック図である。構成は、図8と類似しており、図8と図15のシステムは、統合されて1つのシステムとして構成されてもよい。図8と相違する部分について、以下説明する。
 組合せ稀度算出部1520は、構成情報DB810から複数のソフトウェアとそのバージョンの組合せに係る稀度を算出する。組合せ稀度算出部1520は、組合せ指標算出部に相当する。算出の詳細は、後述する。そして、組合せ稀度DB1530に、算出された組合せ稀度を格納する。
 その他の処理については、図8の処理と同様であるので説明を省略する。
 図16は、本実施例の方法のフローチャートを示している。まず、ステップ1610において、複数(例えばN個)のソフトウェアの現・新バージョンの組合せについて稀度を算出する(組合せの個数は、Nの階乗個となる)。なお、ステップ1610において、計算された稀度は、組合せ稀度DB1630に蓄積してもよい。
 そして、ステップ1612において、稀度を算出していないバージョンの組合せがあるかを判断する。判断結果が「はい」であれば、ステップ1610に戻る。判断結果が「いいえ」であれば、ステップ1614に移動する。
 ステップ1614において、全てが現バージョンの状態から、全てが新バージョンの状態に至るまで、更新ソフトウェアを1つずつインストールする際にとり得るバージョンの組合せの稀度の総和が最小となるインストール順序を探索する。
 ステップ1616において、探索されたインストール順序が出力される。
 図17は、構成情報DB810に蓄積されている、既存の複数のマシンに存在する相当エアP,Q,Rとそれぞれのバージョンとの組合せの個数及び稀度を示している。図17において、例えば状態M12に関して以下説明する。状態M12においては、ソフトウェアP,Q,Rのバージョンがそれぞれ、6,5.5,4.1であり、構成情報DB810には、その構成を持つマシンが3つ存在していることが分かる。状態M12に対する稀度を計算すると以下の通りである。すなわち、
Figure JPOXMLDOC01-appb-M000006
となる。その他の状態についても同様に計算できる。なお、I、x、Pのkは、ベクトル形式(例えば上述のように、(P6,Q5.5,R4.1)のように、ベクトル形式で標記できる。
 図18は、各インストール順序における状態遷移、稀度の総和を網羅的に計算した値を示している。稀度の総和が最も小さいのは、インストール順序3(R,P,Q)の値4.8である。従って、ソフトウェア更新プログラムのインストール順序は、R,P,Qが最適となることが分かる。
 図19(B)は、それぞれの状態をハイパーキューブで表したものであり、その矢印に沿った経路が最適な経路であり、そのインストール順序は、上述の通りR,P,Qの順である。なお、図18では、網羅的に計算して、最小値を求めたが、図19のハイパーキューブ上を、ダイクストラ法などの、経路探索アルゴリズムで探索することにより、速く最適経路を見つけ出すことが可能である。
 なお、以上の実施例では、ハイパーキューブとして三次元のものを例示したが、ソフトウェアの更新プログラムの数が3を超える場合には、三次元を超えるハイパーキューブにおいて、経路探索を行えばよい。本実施例では、三次元を超える例については、図示ができないために例示していない。しかしながら、三次元を超える場合についても、当業者であれば、そのプロセスを理解できることは明らかである。次元が大きくなれば、ダイクストラ法等の探索アルゴリズムを利用するメリットが増大することも理解できることは明らかである。
 なお、本明細書においては、ソフトウェアを更新する実施例を中心に説明した。本明細書において使用する更新、及び更新プログラムは、広い概念を持つものとして理解すべきである。例えば新規にインストールするソフトウェアのインストールも、本発明における更新プログラムに含み得ることは言うまでもない。そして、本実施例に開示されたインストールの順番を決定する手法を用いて、新規にインストールするソフトウェアも含めた、複数のソフトウェアのインストールの順番を決定してもよい。
 また、それぞれの実施例に開示された構成は、排他的なものではない。したがって、矛盾のない限り、複数の実施例の構成要素を任意に組み合わせることができる。
 加えて、本実施例における方法、及びプログラムは、矛盾のない限り、その構成要素の順番を入れ替えて実施できる。添付の請求項に記載された方法、及びプログラムの構成要素の順番を入れ替えたものについても、その請求項の技術的範囲に属することは言うまでもない。
 以上、実施例について説明したが、それぞれの実施例は、本発明を例示的に説明するためのものである。したがって、開示された実施例は、本発明を限定的に解釈するためのものでないことは言うまでもない。
800   運用対象のマシン
810   構成情報DB
820   稀度算出部
830   稀度DB
840   最適経路探索部
850   バージョンアップ順序
860   バージョンアップ実行部
1110  相関性判定部
1520  組合せ稀度算出部
1530  組合せ稀度DB

Claims (21)

  1.  目的のコンピュータにインストールされている複数のソフトウェアを現バージョンから、新バージョンに更新するために、前記複数のソフトウェアのそれぞれに対応する複数の更新プログラムを順にインストールするためのインストール順序を決定するプログラムであって、
     あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、前記複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の前記指標を算出し、
     前記複数のソフトウェアについて、全てが現バージョンである状態から、全てが新バージョンの状態に至るまでの、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する前記指標の総和に基づいて、所定の条件を満たす前記インストール順序を探索する、
     処理をコンピュータに実行させるプログラム。
  2.  前記指標を算出する処理は、前記複数のソフトウェアのバージョンの各々に対して、前記関数を適用して前記指標を求め、前記組合せに含まれる複数のソフトウェアのバージョンの各々に対応する前記指標を統合することにより、前記組合せ毎の前記指標を算出する、請求項1記載のプログラム。
  3.  前記指標を算出する処理は、前記組合せに前記関数を適用して、前記組合せ毎の前記指標を算出する、請求項1記載のプログラム。
  4.  前記関数は、
     N(N≧1)個のソフトウェアのバージョンk(kはN次元ベクトル)に対して、前記指標P(Pはスカラー値)を、kのとり得る値について網羅的に出力するものであり、前記指標Pは、
    Figure JPOXMLDOC01-appb-M000001
    によって与えられ、
    ここで、xは、前記N個のソフトウェアのバージョンがi(iはN次元ベクトル)である個数であり、
     前記所定の条件は、前記総和が最小値となることである、
     請求項1記載のプログラム。
  5.  前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算し、
     前記相関値が、所定の閾値よりも大きい部分集合を抽出し、
     前記抽出された部分集合に含まれる各ソフトウェアを、1つのソフトウェアとして扱うためにグループ化する、
     処理をコンピュータに実行させる、請求項1記載のプログラム。
  6.  前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算し、
     前記相関値が、所定の閾値よりも大きい部分集合を抽出する、
     処理をコンピュータに実行させ、
     前記抽出された部分集合に含まれる各ソフトウェアをさらに処理の対象とする、請求項1記載のプログラム。
  7.  前記所定の条件を満たす前記インストール順序を探索するために、最短経路探索を行うアルゴリズムを用いる、請求項1記載のプログラム。
  8.  目的のコンピュータにインストールされている複数のソフトウェアを現バージョンから、新バージョンに更新するために、前記複数のソフトウェアのそれぞれに対応する複数の更新プログラムを順にインストールするためのインストール順序を決定する方法であって、
     あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、前記複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の前記指標を算出し、
     前記複数のソフトウェアについて、全てが現バージョンの状態から、全てが新バージョンの状態に至るまで、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する前記指標の総和が所定の条件を満たす前記インストール順序を探索する、
     処理をコンピュータが実行する方法。
  9.  前記指標を算出する処理は、前記複数のソフトウェアのバージョンの各々に対して、前記関数を適用して前記指標を求め、前記組合せに含まれる複数のソフトウェアのバージョンの各々に対応する前記指標を統合することにより、前記組合せ毎の前記指標を算出する、請求項8記載の方法。
  10.  前記指標を算出する処理は、前記組合せに前記関数を適用して、前記組合せ毎の前記指標を算出する、請求項8記載の方法。
  11.  前記関数は、
     N(N≧1)個のソフトウェアのバージョンk(kはN次元ベクトル)に対して、前記指標P(Pはスカラー値)を、kのとり得る値について網羅的に出力するものであり、前記指標Pは、
    Figure JPOXMLDOC01-appb-M000002
    によって与えられ、
    ここで、xは、前記N個のソフトウェアのバージョンがi(iはN次元ベクトル)である個数であり、
     前記所定の条件は、前記総和が最小値となることである、
     請求項8記載の方法。
  12.  前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算し、
     前記相関値が、所定の閾値よりも大きい部分集合を抽出し、
     前記抽出された部分集合に含まれる各ソフトウェアを、1つのソフトウェアとして扱うためにグループ化する、 
     処理をコンピュータが実行する、請求項8記載の方法。
  13.  前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算し、
     前記相関値が、所定の閾値よりも大きい部分集合を抽出する、
     処理をコンピュータが実行し、
     前記抽出された部分集合に含まれる各ソフトウェアをさらに処理の対象とする請求項8記載の方法。
  14.  前記所定の条件を満たす前記インストール順序を探索するために、最短経路探索を行うアルゴリズムを用いる、請求項8記載の方法。
  15.  目的のコンピュータにインストールされている複数のソフトウェアを現バージョンから、新バージョンに更新するために、前記複数のソフトウェアのそれぞれに対応する複数の更新プログラムを順にインストールするためのインストール順序を決定する情報処理装置であって、
     あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、前記複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の前記指標を算出する算出部と、
     前記複数のソフトウェアについて、全てが現バージョンである状態から、全てが新バージョンの状態に至るまでの、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する前記指標の総和に基づいて、所定の条件を満たす前記インストール順序を探索する探索部と、
     を有する情報処理装置。
  16.  前記算出部は、前記複数のソフトウェアのバージョンの各々に対して、前記関数を適用して前記指標を求めるソフトウェアバージョン指標演算部と、前記組合せに含まれる複数のソフトウェアのバージョンの各々に対応する前記指標を統合することにより、前記組合せ毎の前記指標を算出する指標統合部と、を有する請求項15記載の情報処理装置。
  17.  前記算出部は、前記組合せに前記関数を適用して、前記組合せ毎の前記指標を算出する組合せ指標算出部、を有する請求項15記載の情報処理装置。
  18.  前記関数は、
     N(N≧1)個のソフトウェアのバージョンk(kはN次元ベクトル)に対して、前記指標P(Pはスカラー値)を、kのとり得る値について網羅的に出力するものであり、前記指標Pは、
    Figure JPOXMLDOC01-appb-M000003
    によって与えられ、
    ここで、xは、前記N個のソフトウェアのバージョンがi(iはN次元ベクトル)である個数であり、
     前記所定の条件は、前記総和が最小値となることである、
     請求項15記載の情報処理装置。
  19.  前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算する相関計算部と、
     前記相関値が、所定の閾値よりも大きい部分集合を抽出する部分集合抽出部と、
     を有し、
     前記抽出された部分集合に含まれる各ソフトウェアを、1つのソフトウェアとして扱うためにグループ化する、請求項15記載の情報処理装置。
  20.  前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算する相関計算部と、
     前記相関値が、所定の閾値よりも大きい部分集合を抽出する部分集合抽出部と、
     を有し、
     前記抽出された部分集合に含まれる各ソフトウェアをさらに処理の対象とする、請求項15記載の情報処理装置。
  21.  前記所定の条件を満たす前記インストール順序を探索するために、最短経路探索を行うアルゴリズムを用いる、請求項15記載の情報処理装置。
PCT/JP2011/079410 2011-12-19 2011-12-19 ソフトウェアのインストール順序を決定する方法、プログラム、及び装置 WO2013094003A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2011/079410 WO2013094003A1 (ja) 2011-12-19 2011-12-19 ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
JP2013549981A JP5679074B2 (ja) 2011-12-19 2011-12-19 ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
US14/270,492 US9367300B2 (en) 2011-12-19 2014-05-06 Method and apparatus for determining installation order of software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/079410 WO2013094003A1 (ja) 2011-12-19 2011-12-19 ソフトウェアのインストール順序を決定する方法、プログラム、及び装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/270,492 Continuation US9367300B2 (en) 2011-12-19 2014-05-06 Method and apparatus for determining installation order of software

Publications (1)

Publication Number Publication Date
WO2013094003A1 true WO2013094003A1 (ja) 2013-06-27

Family

ID=48667933

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/079410 WO2013094003A1 (ja) 2011-12-19 2011-12-19 ソフトウェアのインストール順序を決定する方法、プログラム、及び装置

Country Status (3)

Country Link
US (1) US9367300B2 (ja)
JP (1) JP5679074B2 (ja)
WO (1) WO2013094003A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018109825A1 (ja) * 2016-12-13 2018-06-21 株式会社日立製作所 バージョン管理システムおよびバージョン管理方法
US10216514B2 (en) 2014-09-25 2019-02-26 Hewlett Packard Enterprise Development Lp Identification of a component for upgrade

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5569424B2 (ja) * 2011-02-14 2014-08-13 富士通株式会社 更新装置、更新方法、および更新プログラム
US9575738B1 (en) * 2013-03-11 2017-02-21 EMC IP Holding Company LLC Method and system for deploying software to a cluster
US10740309B2 (en) * 2015-12-18 2020-08-11 Cisco Technology, Inc. Fast circular database
JP2017151523A (ja) * 2016-02-22 2017-08-31 富士通株式会社 ソフトウェア自動収集プログラム、装置、及び方法
JP6668840B2 (ja) * 2016-03-11 2020-03-18 富士通株式会社 ソフトウェア導入支援プログラム、ソフトウェア導入支援装置、及びソフトウェア導入支援方法
CN105912347B (zh) * 2016-05-11 2019-06-04 Tcl移动通信科技(宁波)有限公司 一种基于移动终端的应用软件包版本更新处理方法及系统
US9886303B2 (en) 2016-06-15 2018-02-06 International Business Machines Corporation Specialized micro-hypervisors for unikernels
US11210108B2 (en) 2020-02-10 2021-12-28 International Business Machines Corporation Guiding the installation process of sensor-based devices
US11442717B2 (en) * 2020-03-31 2022-09-13 Arista Networks, Inc. System and method for updating state information
CN114461614B (zh) * 2022-04-12 2022-06-28 北京安华金和科技有限公司 一种敏感数据标识处理方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334471A (ja) * 2006-06-13 2007-12-27 Konica Minolta Business Technologies Inc プログラム更新管理装置
JP2009193218A (ja) * 2008-02-13 2009-08-27 Fuji Xerox Co Ltd ファームウェア更新装置およびファームウェア更新システム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805898A (en) * 1995-02-24 1998-09-08 International Business Machines Corporation Method and apparatus for estimating installation time in a data processing system
US6360363B1 (en) * 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
US6327706B1 (en) * 1998-04-08 2001-12-04 Dell Usa, L.P. Method of installing software on and/or testing a computer system
US6202121B1 (en) * 1998-04-15 2001-03-13 Microsoft Corporation System and method for improved program launch time
US6216175B1 (en) * 1998-06-08 2001-04-10 Microsoft Corporation Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
FR2781582B1 (fr) * 1998-07-21 2001-01-12 Technical Maintenance Corp Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels
JP2000089809A (ja) 1998-09-10 2000-03-31 Fujitsu Ltd 工程計画支援システム及びそのシステムでの処理をコンピュータに行わせるためのプログラムを格納した記録媒体及びそのシステムによる工程計画方法
US6237144B1 (en) * 1998-09-21 2001-05-22 Microsoft Corporation Use of relational databases for software installation
US7140013B2 (en) * 2000-06-01 2006-11-21 Aduva, Inc. Component upgrading with dependency conflict resolution, knowledge based and rules
JP2001350988A (ja) 2000-06-05 2001-12-21 Pro Saido Kk コンピュータのアップグレード・再生システム
US6681391B1 (en) * 2000-06-21 2004-01-20 Microsoft Corporation Method and system for installing software on a computer system
US9009694B2 (en) * 2002-05-22 2015-04-14 Oracle America, Inc. Pre-verification and sequencing of patches
US7434216B1 (en) * 2002-11-25 2008-10-07 Hewlett-Packard Development Company, L.P. Update package generator that employs genetic evolution to determine bank order
US20040181790A1 (en) * 2003-03-12 2004-09-16 Herrick Joseph W. System and method for maintaining installed software compliance with build standards
US7174540B2 (en) * 2003-06-16 2007-02-06 Microsoft Corporation Component dependency matrices
US7343443B1 (en) * 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
US7496912B2 (en) * 2004-02-27 2009-02-24 International Business Machines Corporation Methods and arrangements for ordering changes in computing systems
US7739679B2 (en) * 2004-04-06 2010-06-15 Hewlett-Packard Development Company, L.P. Object ordering tool for facilitating generation of firmware update friendly binary image
US7861241B2 (en) * 2006-02-09 2010-12-28 Canon Kabushiki Kaisha Install apparatus, install method, program, and storage medium
US7665081B1 (en) * 2006-05-06 2010-02-16 Kaspersky Lab, Zao System and method for difference-based software updating
JP2008233973A (ja) 2007-03-16 2008-10-02 Hitachi Ltd ストレージ管理システム
US8291402B2 (en) * 2007-11-29 2012-10-16 Red Hat, Inc. Using system fingerprints to accelerate package dependency resolution
US9372784B2 (en) * 2009-02-20 2016-06-21 International Business Machines Corporation Test system configuration method and system
US8438558B1 (en) * 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
JP5346253B2 (ja) * 2009-08-24 2013-11-20 株式会社日立ソリューションズ ファームウェア更新システム、及び情報機器、並びにプログラム
US8584113B2 (en) * 2009-11-09 2013-11-12 Bank Of America Corporation Cross-updating of software between self-service financial transaction machines
US20110113416A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Network-Enhanced Control Of Software Updates Received Via Removable Computer-Readable Medium
US8707293B2 (en) * 2010-03-03 2014-04-22 Red Hat, Inc. Package management system
CN103930871B (zh) * 2011-05-09 2019-07-09 谷歌有限责任公司 基于安装历史给移动设备推荐应用

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334471A (ja) * 2006-06-13 2007-12-27 Konica Minolta Business Technologies Inc プログラム更新管理装置
JP2009193218A (ja) * 2008-02-13 2009-08-27 Fuji Xerox Co Ltd ファームウェア更新装置およびファームウェア更新システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216514B2 (en) 2014-09-25 2019-02-26 Hewlett Packard Enterprise Development Lp Identification of a component for upgrade
WO2018109825A1 (ja) * 2016-12-13 2018-06-21 株式会社日立製作所 バージョン管理システムおよびバージョン管理方法
JP6411696B1 (ja) * 2016-12-13 2018-10-24 株式会社日立製作所 バージョン管理システムおよびバージョン管理方法
US10747529B2 (en) 2016-12-13 2020-08-18 Hitachi, Ltd. Version management system and version management method

Also Published As

Publication number Publication date
JPWO2013094003A1 (ja) 2015-04-27
US20140245279A1 (en) 2014-08-28
JP5679074B2 (ja) 2015-03-04
US9367300B2 (en) 2016-06-14

Similar Documents

Publication Publication Date Title
JP5679074B2 (ja) ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
Wang et al. Performance prediction for apache spark platform
US9524102B2 (en) Optimizing migration/copy of de-duplicated data
JP5946423B2 (ja) システム・ログの分類方法、プログラム及びシステム
US20140298321A1 (en) Installation control method and installation control apparatus
JP4736713B2 (ja) プロジェクトメンバーの選定を支援するシステムと方法
JP6111543B2 (ja) 類似サブ時系列の抽出方法及び装置
US10177971B2 (en) Operation management device and method
US20150220315A1 (en) Method and apparatus for compiling
WO2017204819A1 (en) Similarity analyses in analytics workflows
JP6281491B2 (ja) テキストマイニング装置、テキストマイニング方法及びプログラム
RU2716553C1 (ru) Устройство создания сигнатуры, способ создания сигнатуры, носитель записи, в котором записана программа создания сигнатуры, и система определения программного обеспечения
JPWO2015145979A1 (ja) 価格推定装置、価格推定方法、及び、価格推定プログラム
US8954468B2 (en) Extracting a meaningful frequent itemset
CN106599122B (zh) 一种基于垂直分解的并行频繁闭序列挖掘方法
CN107579944B (zh) 基于人工智能和MapReduce安全攻击预测方法
JP7003574B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2006155344A (ja) データ分析装置、データ分析プログラム及びデータ分析方法
Chang et al. De novo assembly of high-throughput sequencing data with cloud computing and new operations on string graphs
WO2011016281A2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
JP2017167980A (ja) 特徴選択装置、特徴選択方法およびプログラム
US20170185397A1 (en) Associated information generation device, associated information generation method, and recording medium storing associated information generation program
US10409931B1 (en) Automatic combination of sub-process simulation results with dataset selection based on fitness under specific scenarios
JP5145275B2 (ja) 業務モデル間のデータマッチング方法及びコンピュータプログラム
JPWO2009011058A1 (ja) システム監視プログラム、システム監視方法およびシステム監視装置

Legal Events

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

Ref document number: 11877908

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013549981

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11877908

Country of ref document: EP

Kind code of ref document: A1