JPWO2013094003A1 - ソフトウェアのインストール順序を決定する方法、プログラム、及び装置 - Google Patents
ソフトウェアのインストール順序を決定する方法、プログラム、及び装置 Download PDFInfo
- Publication number
- JPWO2013094003A1 JPWO2013094003A1 JP2013549981A JP2013549981A JPWO2013094003A1 JP WO2013094003 A1 JPWO2013094003 A1 JP WO2013094003A1 JP 2013549981 A JP2013549981 A JP 2013549981A JP 2013549981 A JP2013549981 A JP 2013549981A JP WO2013094003 A1 JPWO2013094003 A1 JP WO2013094003A1
- Authority
- JP
- Japan
- Prior art keywords
- software
- index
- version
- subset
- versions
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
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つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する指標の総和に基づいて、所定の条件を満たすようインストール順序を決定する。
あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の指標を算出し、複数のソフトウェアについて、全てが現バージョンである状態から、全てが新バージョンの状態に至るまでの、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する指標の総和に基づいて、所定の条件を満たすようインストール順序を決定する。
Description
本発明は、ソフトウェアのインストール又はその更新の技術に関する。
近年のOA化の進展によって、企業内のコンピュータには、様々なバージョンの複数のプログラムがインストールされている。加えて、クラウドコンピューティングが進展してきている。このため、物理マシン、及び仮想マシンを問わず、複数のマシンにインストールされているソフトウェアを安定的に動作させるための管理を行うことが非常に重要となってきている。
各マシンに存在する多数のソフトウェアは、セキュリティの向上や、機能アップを目的として、不定期に更新することが必要となる。
また、様々なソフトウェアは、相互に共通のプログラムを利用している場合もある。また、複数のソフトウェア間での相性が存在する場合もある。
ソフトウェアのインストールや更新に伴い、相性が合わないソフトウェアの組合せが存在するようになると、ソフトウェアの挙動が不安定となったり、動作しなくなったりする場合がある。また、更新プログラムを含むソフトウェアのインストールの順番に起因して、ソフトウェアの挙動が不安定となったり、動作しなくなったりする場合もある。
例えば、ソフトウェアパッケージのパッケージマネジャには、各ソフトウェア同士やライブラリに対する依存関係が書かれている。このパッケージマネジャによれば、例えば、同時にインストールまたは更新できないソフトウェアパッケージが分かるため、それらのインストールや更新を回避できる。
しかしながら、パッケージマネジャに書かれているソフトウェア間の依存関係は、パッケージの作成者が明示的に記述した依存関係である。したがって、例えば、作成者が意識していない複数のバージョン間での依存関係や相性等は明記されていない。
このため、パッケージマネジャが存在するにもかかわらず、複数のソフトウェアの更新を行った際に、例えば、相性の悪いソフトウェアの組合せになってしまい、システムのパフォーマンスが低下したり、動作不能となってしまったりすることがある。
近年では、1つの物理マシン又は仮想マシンに存在するソフトウェアが膨大な数にのぼるため、更新を行う際にも、複数の更新プログラムを順番にインストールすることが多い。この場合、複数の更新プログラムのインストールの順番によって、マシンは非常に多くの状態を経ることになる。更新プログラムのインストールの順番が異なると、そのマシンが経る状態も異なるものとなる。この場合に、更新プログラムの順番が不適切であると、更新の途中で、マシンが非常に不安定な状態に直面することがあり得る。この場合には、その不安定な状態において、マシンがハングアップしてしまうこともある。そして、一連のソフトウェアの更新が継続できなくなることがある。
このように、一連のソフトウェアの更新の途中で、更新が不成功に終わると、多くの場合は、そのマシンのサービスが停止してしまう。そして、その不具合を解決するために多くの労力を割かなければならなくなることが多い。
従来、工程管理支援システムにおいて、作業間の相性値テーブルにより、作業の実行順序(工程)を計画する方法(例えば特許文献1参照)がある。この方法では、作業を特定する作業データに基づき、複数の作業をグループに分けるグループ化手段と、所定数のグループ間の類似性の高さを数値で示す類似性表示テーブルを格納する類似性表示テーブル格納手段と、上記類似性表示テーブルに基づき、上記複数の作業のそれぞれが属するグループ間の類似性を比較する類似性比較手段と、上記類似性比較手段による比較結果に基づき、先に行われる作業の後には該作業と類似性が最も高い他の作業が続くように上記複数の作業の実行順序を決定する工程計画手段とを有している。
しかしながら、このような工程管理支援システムで対象とする工程は、色塗り工程のような実作業の工程であり、本発明が対象としているソフトウェアのインストールとは、異なるものである。また、このような工程管理支援システムでは、前後に連続する2つの工程間の相性を調べることで前工程から後工程への推移時間を短くすることを目的とし、本発明のようにインストールの途中の状態をもとにして順番を決めるものと比して、過去の順番も考慮に入れている点と場合分けが膨大になることへの計算手段の点で、根本的な差が存在する。
また、従来、部品(ソフトウェアを含む)要素間の接続性の安定度を計算する技術(例えば、特許文献2)が存在する。この技術は、例えば、ストレージシステムにおけるハードウェアとソフトウェアのバージョンの相性を見て、構成の安定度の高い組合せを提示するものである。この技術は、ソフトウェアのインストールの順序を決定する技術ではない。
また、ハードウェアや、ハード部品間の相性情報を踏まえてチェックを行う技術(例えば特許文献3)が存在する。この技術は、コンピュータや携帯情報端末などが接続されるコンピュータネットワークにおいて、利用者のコンピュータのアップグレードや再生等の要望に応じて、機種に適合する部品を検索し、適否を判定し、注文をすることができるコンピュータのアップグレードに関するものである。この技術も、ソフトウェアのインストールの順序を決定する技術ではない。
1つの側面では、複数のソフトウェアを順番にインストールする際のシステムの安定化を図ることを目的とする。
本プログラムは、目的のコンピュータにインストールされている複数のソフトウェアを現バージョンから、新バージョンに更新するために、前記複数のソフトウェアのそれぞれに対応する複数の更新プログラムを順にインストールするためのインストール順序を決定するプログラムであって、あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、前記複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の前記指標を算出し、前記複数のソフトウェアについて、全てが現バージョンである状態から、全てが新バージョンの状態に至るまでの、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する前記指標の総和に基づいて、所定の条件を満たす前記インストール順序を探索する、処理をコンピュータに実行させるプログラムを提供する。
複数のプログラムのインストールの際のシステムの安定性の確保を図ることができる。
図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つの指標に過ぎず、本発明は、これに拘束されるものではない。
以下の実施例では、1つの評価関数として、稀(まれ)度を以下のように定義する。なお、本発明は、この評価関数に限定されるものではない。そして、あるソフトウェアPのバージョンkがコンピュータに存在する度合の指標として、存在が稀である度合すなわち稀(まれ)度Pkを以下の式により定義する。
そして、上記Ikは、選択情報量と呼び、プログラムPのバージョンがkである情報量を表す。(例えば、図4のソフトウェアAのバージョン5であれば、Ik=−log10(x5/n)=−log10(3/10)=0.53である)
また、Hは、平均情報量である。(例えば、図4のソフトエアAであれば、H=−((x5/n)log10(x5/n)+(x6/n)log10(x6/n))=−((3/10)log10(3/10)+(7/10)log10(7/10))=0.265となる。
また、Hは、平均情報量である。(例えば、図4のソフトエアAであれば、H=−((x5/n)log10(x5/n)+(x6/n)log10(x6/n))=−((3/10)log10(3/10)+(7/10)log10(7/10))=0.265となる。
そして、ソフトウェアがバージョンkである選択情報量Ikの重み(重要度)が、ソフトウェア毎に、なるべく変わらないようにするために、そのソフトウェアの平均情報量Hで割ることにより、Pkを定義する。すなわち、選択情報量を平均情報量で割ることにより、稀度Pkを算出している。稀度Pkは、ソフトウェアのバージョンkの存在が、稀であればあるほど、大きな値となる。
なお、選択情報量や、平均情報量にマイナスの符号が付けられているのは、xi/nが、必ず1よりも小さくなるため、logを計算した場合には、その計算結果がマイナスとなるからである。マイナスを付けることにより、選択情報量の値を正の値とすることができる。なお、xi=0がゼロの場合には、稀度Pkの計算等のlogの計算結果が計算できないため、例えばPkとして、予め定められた大きな値を設定してもよい。
なお、上記の例では、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)の場合には、例えば、以下のようにして稀度を計算してもよい。
図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に対する稀度を計算すると以下の通りである。すなわち、
図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
810 構成情報DB
820 稀度算出部
830 稀度DB
840 最適経路探索部
850 バージョンアップ順序
860 バージョンアップ実行部
1110 相関性判定部
1520 組合せ稀度算出部
1530 組合せ稀度DB
Claims (21)
- 目的のコンピュータにインストールされている複数のソフトウェアを現バージョンから、新バージョンに更新するために、前記複数のソフトウェアのそれぞれに対応する複数の更新プログラムを順にインストールするためのインストール順序を決定するプログラムであって、
あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、前記複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の前記指標を算出し、
前記複数のソフトウェアについて、全てが現バージョンである状態から、全てが新バージョンの状態に至るまでの、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する前記指標の総和に基づいて、所定の条件を満たす前記インストール順序を探索する、
処理をコンピュータに実行させるプログラム。 - 前記指標を算出する処理は、前記複数のソフトウェアのバージョンの各々に対して、前記関数を適用して前記指標を求め、前記組合せに含まれる複数のソフトウェアのバージョンの各々に対応する前記指標を統合することにより、前記組合せ毎の前記指標を算出する、請求項1記載のプログラム。
- 前記指標を算出する処理は、前記組合せに前記関数を適用して、前記組合せ毎の前記指標を算出する、請求項1記載のプログラム。
- 前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算し、
前記相関値が、所定の閾値よりも大きい部分集合を抽出し、
前記抽出された部分集合に含まれる各ソフトウェアを、1つのソフトウェアとして扱うためにグループ化する、
処理をコンピュータに実行させる、請求項1記載のプログラム。 - 前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算し、
前記相関値が、所定の閾値よりも大きい部分集合を抽出する、
処理をコンピュータに実行させ、
前記抽出された部分集合に含まれる各ソフトウェアをさらに処理の対象とする、請求項1記載のプログラム。 - 前記所定の条件を満たす前記インストール順序を探索するために、最短経路探索を行うアルゴリズムを用いる、請求項1記載のプログラム。
- 目的のコンピュータにインストールされている複数のソフトウェアを現バージョンから、新バージョンに更新するために、前記複数のソフトウェアのそれぞれに対応する複数の更新プログラムを順にインストールするためのインストール順序を決定する方法であって、
あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、前記複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の前記指標を算出し、
前記複数のソフトウェアについて、全てが現バージョンの状態から、全てが新バージョンの状態に至るまで、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する前記指標の総和が所定の条件を満たす前記インストール順序を探索する、
処理をコンピュータが実行する方法。 - 前記指標を算出する処理は、前記複数のソフトウェアのバージョンの各々に対して、前記関数を適用して前記指標を求め、前記組合せに含まれる複数のソフトウェアのバージョンの各々に対応する前記指標を統合することにより、前記組合せ毎の前記指標を算出する、請求項8記載の方法。
- 前記指標を算出する処理は、前記組合せに前記関数を適用して、前記組合せ毎の前記指標を算出する、請求項8記載の方法。
- 前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算し、
前記相関値が、所定の閾値よりも大きい部分集合を抽出し、
前記抽出された部分集合に含まれる各ソフトウェアを、1つのソフトウェアとして扱うためにグループ化する、
処理をコンピュータが実行する、請求項8記載の方法。 - 前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算し、
前記相関値が、所定の閾値よりも大きい部分集合を抽出する、
処理をコンピュータが実行し、
前記抽出された部分集合に含まれる各ソフトウェアをさらに処理の対象とする請求項8記載の方法。 - 前記所定の条件を満たす前記インストール順序を探索するために、最短経路探索を行うアルゴリズムを用いる、請求項8記載の方法。
- 目的のコンピュータにインストールされている複数のソフトウェアを現バージョンから、新バージョンに更新するために、前記複数のソフトウェアのそれぞれに対応する複数の更新プログラムを順にインストールするためのインストール順序を決定する情報処理装置であって、
あるソフトウェアのバージョンがコンピュータに存在する度合の指標を出力する関数を、複数の既知のコンピュータに存在するソフトウェアに関する情報に適用して、前記複数のソフトウェアの現バージョンと新バージョンとの組合せ毎の前記指標を算出する算出部と、
前記複数のソフトウェアについて、全てが現バージョンである状態から、全てが新バージョンの状態に至るまでの、前記更新プログラムを1つずつインストールする際にとり得る現バージョンと新バージョンとの組合せに対応する前記指標の総和に基づいて、所定の条件を満たす前記インストール順序を探索する探索部と、
を有する情報処理装置。 - 前記算出部は、前記複数のソフトウェアのバージョンの各々に対して、前記関数を適用して前記指標を求めるソフトウェアバージョン指標演算部と、前記組合せに含まれる複数のソフトウェアのバージョンの各々に対応する前記指標を統合することにより、前記組合せ毎の前記指標を算出する指標統合部と、を有する請求項15記載の情報処理装置。
- 前記算出部は、前記組合せに前記関数を適用して、前記組合せ毎の前記指標を算出する組合せ指標算出部、を有する請求項15記載の情報処理装置。
- 前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算する相関計算部と、
前記相関値が、所定の閾値よりも大きい部分集合を抽出する部分集合抽出部と、
を有し、
前記抽出された部分集合に含まれる各ソフトウェアを、1つのソフトウェアとして扱うためにグループ化する、請求項15記載の情報処理装置。 - 前記複数のソフトウェアのうちの2個以上を含む部分集合に対して、現バージョン及び新バージョンに関して、前記部分集合に属する複数のソフトウェアの相関値を計算する相関計算部と、
前記相関値が、所定の閾値よりも大きい部分集合を抽出する部分集合抽出部と、
を有し、
前記抽出された部分集合に含まれる各ソフトウェアをさらに処理の対象とする、請求項15記載の情報処理装置。 - 前記所定の条件を満たす前記インストール順序を探索するために、最短経路探索を行うアルゴリズムを用いる、請求項15記載の情報処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/079410 WO2013094003A1 (ja) | 2011-12-19 | 2011-12-19 | ソフトウェアのインストール順序を決定する方法、プログラム、及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5679074B2 JP5679074B2 (ja) | 2015-03-04 |
JPWO2013094003A1 true JPWO2013094003A1 (ja) | 2015-04-27 |
Family
ID=48667933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013549981A Expired - Fee Related JP5679074B2 (ja) | 2011-12-19 | 2011-12-19 | ソフトウェアのインストール順序を決定する方法、プログラム、及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9367300B2 (ja) |
JP (1) | JP5679074B2 (ja) |
WO (1) | WO2013094003A1 (ja) |
Families Citing this family (12)
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 |
WO2016048326A1 (en) | 2014-09-25 | 2016-03-31 | Hewlett Packard Enterprise Development Lp | Identification of a component for upgrade |
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 |
US10747529B2 (en) | 2016-12-13 | 2020-08-18 | Hitachi, Ltd. | Version management system and version management method |
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)
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)
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 | 株式会社日立ソリューションズ | ファームウェア更新システム、及び情報機器、並びにプログラム |
US8671402B2 (en) * | 2009-11-09 | 2014-03-11 | Bank Of America Corporation | Network-enhanced control of software updates received via removable computer-readable medium |
US8584113B2 (en) * | 2009-11-09 | 2013-11-12 | Bank Of America Corporation | Cross-updating of software between self-service financial transaction machines |
US8707293B2 (en) * | 2010-03-03 | 2014-04-22 | Red Hat, Inc. | Package management system |
CN103930871B (zh) * | 2011-05-09 | 2019-07-09 | 谷歌有限责任公司 | 基于安装历史给移动设备推荐应用 |
-
2011
- 2011-12-19 JP JP2013549981A patent/JP5679074B2/ja not_active Expired - Fee Related
- 2011-12-19 WO PCT/JP2011/079410 patent/WO2013094003A1/ja active Application Filing
-
2014
- 2014-05-06 US US14/270,492 patent/US9367300B2/en not_active Expired - Fee Related
Patent Citations (2)
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 | ファームウェア更新装置およびファームウェア更新システム |
Also Published As
Publication number | Publication date |
---|---|
US9367300B2 (en) | 2016-06-14 |
JP5679074B2 (ja) | 2015-03-04 |
WO2013094003A1 (ja) | 2013-06-27 |
US20140245279A1 (en) | 2014-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5679074B2 (ja) | ソフトウェアのインストール順序を決定する方法、プログラム、及び装置 | |
JP6506929B2 (ja) | 二分木を用いてモデル化される工業製品を設計するためのコンピュータ実装方法 | |
US20140298321A1 (en) | Installation control method and installation control apparatus | |
JP6299759B2 (ja) | 予測関数作成装置、予測関数作成方法、及びプログラム | |
US11204935B2 (en) | Similarity analyses in analytics workflows | |
US10177971B2 (en) | Operation management device and method | |
JP6111543B2 (ja) | 類似サブ時系列の抽出方法及び装置 | |
JP6281491B2 (ja) | テキストマイニング装置、テキストマイニング方法及びプログラム | |
US10346450B2 (en) | Automatic datacenter state summarization | |
JPWO2018021163A1 (ja) | シグネチャ作成装置、シグネチャ作成方法、シグネチャ作成プログラムが記録された記録媒体、及び、ソフトウェア判定システム | |
JP6029119B2 (ja) | 重要業績評価指標のカテゴリ分割の条件を求める方法、並びに、その為のコンピュータ及びコンピュータ・プログラム | |
JP7003574B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2023060106A (ja) | 機械学習モデル運用管理システム、運用管理方法及びコンピュータプログラム | |
JP2006155344A (ja) | データ分析装置、データ分析プログラム及びデータ分析方法 | |
JP5555238B2 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
JP6203313B2 (ja) | 特徴選択装置、特徴選択方法およびプログラム | |
Otto | From sequence mapping to genome assemblies | |
CN112785214B (zh) | 一种优化库存的方法、装置和存储介质 | |
US20170185397A1 (en) | Associated information generation device, associated information generation method, and recording medium storing associated information generation program | |
JP2011258097A (ja) | データ処理装置 | |
US10409931B1 (en) | Automatic combination of sub-process simulation results with dataset selection based on fitness under specific scenarios | |
US11803375B2 (en) | Carbon-aware code optimization | |
JP5718256B2 (ja) | システム性能解析装置、システム性能解析方法、およびシステム性能解析プログラム | |
KR101382078B1 (ko) | 개발자 동작에 기반한 문맥적인 코드 목록 추천 방법 및 이를 이용하는 코드 목록 추천 장치 | |
JP5535270B2 (ja) | 文書成分分析装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141209 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141222 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5679074 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |