(57)【要約】【課題】装置にインストールされているソフトウェアの情報を複数のプログラムによって収集する場合に、ソフトウェアごとに情報を収集するプログラムを決定する情報処理装置を提供する。【解決手段】装置にインストールされている複数のソフトウェアのモジュールの格納先および複数のソフトウェアの属性項目に対する属性値を含む情報を収集する複数のプログラムから、収集された情報を取得する取得部と、取得された情報が示すソフトウェアのモジュールの格納先に基づいて、取得された情報が示す複数のソフトウェアを一意に識別する識別部と、複数のプログラムと属性値との組合せについて、取得された情報における複数のソフトウェアの出現頻度を算出する算出部と、算出された出現頻度に基づいて、一意に識別されたソフトウェアとソフトウェアの情報の取得元となる複数のプログラムのいずれかのプログラムとの対応関係を決定する決定部とを有する。【選択図】図１
2019082816.tif 000002
【特許請求の範囲】
【請求項１】
装置にインストールされている複数のソフトウェアのモジュールの格納先および前記複数のソフトウェアの属性項目に対する属性値を含む情報を収集する複数のプログラムそれぞれから、前記収集された情報を取得する取得部と、
前記取得された情報それぞれが示すソフトウェアのモジュールの格納先に基づいて、前記取得された情報が示す前記複数のソフトウェアを一意に識別する識別部と、
前記複数のプログラムそれぞれと前記属性値との組合せについて、前記取得された情報における前記複数のソフトウェアの出現頻度を算出する算出部と、
前記算出された出現頻度に基づいて、前記一意に識別されたソフトウェアそれぞれと前記ソフトウェアの情報の取得元となる前記複数のプログラムのいずれかのプログラムとの対応関係を決定する決定部と
を有することを特徴とする情報処理装置。
【請求項２】
前記決定部は、前記属性項目の違いによらないで、前記算出された出現頻度が高い順に前記プログラムと前記属性値との組合せを特定し、前記取得された情報のうち前記特定された組合せを有する情報に含まれる前記ソフトウェアと前記特定された組合せに含まれる前記プログラムとの関係を前記対応関係として決定する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記算出部は、前記複数のプログラムごとに前記出現頻度を算出する、ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
情報処理装置の取得部によって、装置にインストールされている複数のソフトウェアのモジュールの格納先および前記複数のソフトウェアの属性項目に対する属性値を含む情報を収集する複数のプログラムそれぞれから、前記収集された情報を取得し、
前記情報処理装置の識別部によって、前記取得された情報それぞれが示すソフトウェアのモジュールの格納先に基づいて、前記取得された情報が示す前記複数のソフトウェアを一意に識別し、
前記情報処理装置の算出部によって、前記複数のプログラムそれぞれと前記属性値との組合せについて、前記取得された情報における前記複数のソフトウェアの出現頻度を算出し、
前記情報処理装置の決定部によって、前記算出された出現頻度に基づいて、前記一意に識別されたソフトウェアそれぞれと前記ソフトウェアの情報の取得元となる前記複数のプログラムのいずれかのプログラムとの対応関係を決定する
ことを特徴とする情報処理方法。
【請求項５】
コンピュータに、
装置にインストールされている複数のソフトウェアのモジュールの格納先および前記複数のソフトウェアの属性項目に対する属性値を含む情報を収集する複数のプログラムそれぞれから、前記収集された情報を取得する処理と、
前記取得された情報それぞれが示すソフトウェアのモジュールの格納先に基づいて、前記取得された情報が示す前記複数のソフトウェアを一意に識別する処理と、
前記複数のプログラムそれぞれと前記属性値との組合せについて、前記取得された情報における前記複数のソフトウェアの出現頻度を算出する処理と、
前記算出された出現頻度に基づいて、前記一意に識別されたソフトウェアそれぞれと前記ソフトウェアの情報の取得元となる前記複数のプログラムのいずれかのプログラムとの対応関係を決定する処理と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
サーバにインストールされているソフトウェアの情報は、いわゆる管理プログラム（管理ツールとも称する）によって収集することができる。管理プログラムには、例えばＯＳ（Operating System）用の管理プログラム、ソフトウェアベンダが提供する管理プログラム（UpdateAdvisorなど）、ユーザが導入した管理プログラム（ソフトウェア管理製品）
がある。管理プログラムごとに情報の収集対象となるソフトウェアが異なる場合がある。このため、サーバにインストールされている各ソフトウェアの情報を収集するために、複数の管理プログラムから情報を収集する場合が想定される。そこで、複数の管理プログラムから収集された情報を一元的に管理する技術が提案されている（特許文献１〜３を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−５６３４０号公報
【特許文献２】特開２０１６−４５６２７号公報
【特許文献３】特開２０１０−２２４７７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の技術において、同じソフトウェアの情報が複数の管理プログラムによって収集される場合もある。しかし、同じソフトウェアの情報でも、管理プログラムによってソフトウェア名やバージョンなどが異なる形式で収集される場合がある。このため、各管理プログラムが収集した情報が同じソフトウェアの情報であるとみなされず、複数の管理プログラムから収集された情報を一元的に管理できない可能性がある。
【０００５】
本件開示の技術は、上記の事情に鑑み、装置にインストールされているソフトウェアの情報を複数のプログラムによって収集する場合に、ソフトウェアごとに情報を収集するプログラムを決定する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本件開示の情報処理装置は、１つの側面では、装置にインストールされている複数のソフトウェアのモジュールの格納先および複数のソフトウェアの属性項目に対する属性値を含む情報を収集する複数のプログラムそれぞれから、収集された情報を取得する取得部と、取得された情報それぞれが示すソフトウェアのモジュールの格納先に基づいて、取得された情報が示す複数のソフトウェアを一意に識別する識別部と、複数のプログラムそれぞれと属性値との組合せについて、取得された情報における複数のソフトウェアの出現頻度を算出する算出部と、算出された出現頻度に基づいて、一意に識別されたソフトウェアそれぞれとソフトウェアの情報の取得元となる複数のプログラムのいずれかのプログラムとの対応関係を決定する決定部とを有する。
【発明の効果】
【０００７】
本件開示の技術によれば、装置にインストールされているソフトウェアの情報を複数のプログラムによって収集する場合に、ソフトウェアごとに情報を収集するプログラムを決定する情報処理装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、一実施形態における情報処理装置の構成の一例を示す図である。
【図２】図２は、一実施形態における情報処理装置が実行する処理の一例を示すフローチャートである。
【図３】図３は、一実施形態において情報処理装置が図２に示す処理に続いて実行する処理の一例を示すフローチャートである。
【図４】図４は、一実施形態において管理プログラムによって収集される情報を格納するテーブルの一例を示す図である。
【図５】図５は、一実施形態においてソフトウェアのモジュール情報が格納されるテーブルの一例を示す図である。
【図６】図６は、一実施形態における管理プログラムとある属性値との組合せにおけるソフトウェアの出現頻度の算出結果の一例を示す図である。
【図７】図７は、一実施形態における管理プログラムと別の属性値との組合せにおけるソフトウェアの出現頻度の算出結果の一例を示す図である。
【図８】図８は、一実施形態における管理プログラムとさらに別の属性値との組合せにおけるソフトウェアの出現頻度の算出結果の一例を示す図である。
【図９】図９は、一実施形態において情報処理装置が実行するサブルーチンの処理の一例を示す図である。
【図１０】図１０は、一実施形態において算出されるソフトウェアの出現数の割合の一例を示す図である。
【図１１】図１１は、一実施形態におけるソフトウェアの情報を示すテーブルの一例を示す図である。
【図１２】図１２は、一実施形態におけるサーバにインストール済みのソフトウェアの情報を示すテーブルの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本件開示の技術に係る実施形態について図面を参照しながら説明する。なお、以下の詳細な説明は例示的なものであり、実施形態の構成を限定するものではない。
【００１０】
一実施形態における情報処理装置１０について説明する。情報処理装置１０は、Central Processing Unit（ＣＰＵ）１０１、Random Access Memory（ＲＡＭ）１０２、Hard Disk Drive（ＨＤＤ）１０３、Graphics Processing Unit（ＧＰＵ）１０４、入力インタフェース１０５、通信インタフェース１０６を有する。また、ＧＰＵ１０４、入力インタフェース１０５、通信インタフェース１０６は、モニタ２０、入力装置３０、ネットワーク１５にそれぞれ接続されている。ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、ＧＰＵ１０４、入力インタフェース１０５、通信インタフェース１０６は、バス１０７を介して互いに接続されている。
【００１１】
情報処理装置１０は、ネットワーク１５を介してサーバ４０、５０に接続されている。本実施形態では、サーバ４０では、サーバ４０にインストールされているソフトウェアの情報を収集する１以上の管理プログラムが実行される。管理プログラムによって収集された情報は、以下に説明する処理によって情報処理装置１０に送信される。なお、サーバ５０でも同様に管理プログラムが実行され、サーバ５０にインストールされているソフトウェアの情報が収集される。なお、情報処理装置１０に接続されるサーバはサーバ４０、５０に限られない。また、情報処理装置１０は、Configuration Management Database（Ｃ
ＭＤＢ）を使用して、サーバ４０、５０を含む情報処理システム内のコンポーネントに関する情報を統合的に管理する。例えば、ＣＭＤＢはＨＤＤ１０３に記憶されている。本実施形態では、情報処理装置１０はＣＭＤＢを使用してサーバ４０、５０にインストールされているソフトウェアを把握する。
【００１２】
本実施形態において、ＣＰＵ１０１は、ＨＤＤ１０３に記憶されている下記の管理プログラムを含む各種プログラムをＲＡＭ１０２に展開して実行することで、以下に説明する種々の処理を実行する。図２、３に、本実施形態における情報処理装置１０においてＣＰＵ１０１の制御により実行される処理のフローチャートの一例を示す。ＣＰＵ１０１は、情報処理装置１０の電源が投入されると、図２に示すフローチャートの処理を開始する。
【００１３】
ＯＰ１０１において、ＣＰＵ１０１は、取得部として機能し、サーバ４０、５０から管理プログラムが収集したソフトウェアの情報を取得する。ＣＰＵ１０１は、ＯＰ１０１によって、装置にインストールされている複数のソフトウェアのモジュールの格納先および複数のソフトウェアの属性項目に対する属性値を含む情報を収集する複数のプログラムそれぞれから、収集された情報を取得する。ＣＰＵ１０１は、サーバ４０、５０から管理プログラムが収集したソフトウェアの情報を取得すると、処理をＯＰ１０２に進める。本実施形態では、ＣＰＵ１０１は、ＯＰ１０１において取得したソフトウェアの情報ごとにＯＰ１０２〜ＯＰ１１３の処理を繰り返し実行する。
【００１４】
ＯＰ１０２において、ＣＰＵ１０１は、取得したソフトウェアの情報について、当該情報を収集した管理プログラムとソフトウェアとの組み合わせと同じ組み合わせを示す情報が既に取得済みであるか否かを判定する。具体的には、ＣＰＵ１０１は、ＯＰ１０１において取得した情報を格納するテーブルを参照し、取得した情報とテーブルに格納された情報との間で、管理プログラムとソフトウェア名とバージョンの組み合わせが同じか否かを判定する。
【００１５】
取得した情報とテーブルに格納された情報との間で管理プログラムとソフトウェアとの組み合わせが同じである情報が重複してテーブルに格納されると、以下に説明する各ソフトウェアの出現頻度の算出の際に、出現頻度が正しく算出されない可能性がある。そこで、ＯＰ１０２の処理によって、ソフトウェアの出現頻度の算出の対象となる情報が重複してテーブルに格納されることを回避できる。
【００１６】
管理プログラムとソフトウェアとの組み合わせと同じ組み合わせを示す情報が既に取得済みである場合は（ＯＰ１０２：ＹＥＳ）、ＣＰＵ１０１は、処理をＯＰ１１２に進める。一方、管理プログラムとソフトウェアとの組み合わせと同じ組み合わせを示す情報が取得済みでない場合は（ＯＰ１０２：ＮＯ）、ＣＰＵ１０１は、処理をＯＰ１０３に進める。
【００１７】
図４に、本実施形態において、ＯＰ１０１において取得されたソフトウェアの情報が格納されるテーブルの一例を示す。なお、当該テーブルは、ＨＤＤ１０３以外の記憶部に記憶されてもよい。管理プログラムが収集する情報には、各ソフトウェアのソフトウェア名、バージョン、ソフトウェアのモジュールのインストール先、ファイルパス、ソフトウェアのベンダー、ソフトウェアのライセンス、ソフトウェアが実行されるＯＳが含まれる。なお、管理プログラムが収集する情報に含まれる各ソフトウェアのソフトウェア名、バージョン、ソフトウェアのモジュールのインストール先、ファイルパス、ソフトウェアのベンダー、ソフトウェアのライセンス、ソフトウェアが実行されるＯＳが、ソフトウェアの属性項目の属性値の一例である。また、図４に示すテーブルには、以下に説明する処理によって決定される各ソフトウェアを一意に識別する識別子であるソフトウェアＩＤも格納される。
【００１８】
ＯＰ１０３において、ＣＰＵ１０１は、ソフトウェアの情報からモジュールのインストール先またはファイルパスの情報を取得する。図４に示すソフトウェアの情報の場合、ＣＰＵ１０１は、テーブルの「インストール先」欄または「ファイルパス」欄の情報を取得
する。次いで、ＣＰＵ１０１は処理をＯＰ１０４に進める。
【００１９】
ＯＰ１０４において、ＣＰＵ１０１は、ソフトウェアの情報を取得した管理プログラムを実行するサーバ（サーバ４０またはサーバ５０）から、ＯＰ１０３で取得したインストール先またはファイルパスが示す場所にあるモジュールの情報を取得する。具体的な例として、ＣＰＵ１０１は、インストール先またはファイルパスが示す場所にあるモジュールのファイル名およびハッシュ値を取得する。なお、モジュールが複数存在する場合は、ＣＰＵ１０１は、各モジュールのファイル名およびハッシュ値（以下「モジュール情報」と称する場合がある）を取得する。次いで、ＣＰＵ１０１は、処理をＯＰ１０５に進める。
【００２０】
ＯＰ１０５において、ＣＰＵ１０１は、ＯＰ１０４において取得したモジュール情報に基づいて、同じモジュール情報を有するソフトウェアの情報が取得済みであるか否かを判定する。図５に、情報処理装置１０においてソフトウェアのモジュール情報が格納されるテーブルの一例を示す。図５に示すテーブルには、以下の処理によって生成されるソフトウェアＩＤとソフトウェアを構成する各モジュールのファイル名およびハッシュ値の組み合わせとが対応付けられて格納される。ソフトウェアは複数のモジュールを有する場合がある。このため、１つのソフトウェアＩＤに対してファイル名およびハッシュ値の組み合わせが複数組対応付けられている場合もある。
【００２１】
ＯＰ１０５では、ＣＰＵ１０１は、識別部として機能し、図５に示すテーブルに格納されているソフトウェアＩＤごとに、ＯＰ１０４において取得したモジュールのファイル名およびハッシュ値の組み合わせが、ファイル名およびハッシュ値の組み合わせと一致するか否かを判定する。ＣＰＵ１０１は、ＯＰ１０５によって、取得された情報それぞれが示すソフトウェアのモジュールの格納先に基づいて、取得された情報が示す複数のソフトウェアを一意に識別する。
【００２２】
なお、ＯＰ１０４においてモジュールのファイル名およびハッシュ値の組み合わせが複数組取得された場合は、ＣＰＵ１０１は、すべての組み合わせがソフトウェアＩＤに対応付けられている組み合わせと一致するか否かを判定する。これによって、ＯＰ１０４において取得したファイル名およびハッシュ値の組み合わせが、ソフトウェアＩＤに対応付けられているファイル名およびハッシュ値のすべての組み合わせに一致する場合に、同じソフトウェアであると判定される。
【００２３】
図５に示すテーブル内に、取得したモジュールのモジュール情報が一致するソフトウェアが存在する場合は（ＯＰ１０５：ＹＥＳ）、ＣＰＵ１０１は、処理をＯＰ１０８に進める。一方、取得したモジュールのモジュール情報が一致するソフトウェアが存在しない場合は（ＯＰ１０５：ＮＯ）、ＣＰＵ１０１は、処理をＯＰ１０６に進める。
【００２４】
ＯＰ１０６において、ＣＰＵ１０１は、図５に示すテーブルに格納されているソフトウェアＩＤと重複しない新規のソフトウェアＩＤを生成する。次いで、ＣＰＵ１０１は、処理をＯＰ１０７に進める。ＯＰ１０７において、ＣＰＵ１０１は、ＯＰ１０６において生成されたソフトウェアＩＤとＯＰ１０４において取得したモジュールのファイル名およびハッシュ値の組み合わせとを対応付けて、図５に示すテーブルに追加する。次いで、ＣＰＵ１０１は、処理をＯＰ１０８に進める。
【００２５】
ＯＰ１０８において、ＣＰＵ１０１は、現在ＯＰ１０２〜ＯＰ１１３の処理の対象となっているソフトウェアの情報とソフトウェアＩＤとを対応付けて図４に示すテーブルの各欄に格納する。なお、ＯＰ１０５において一致するソフトウェアが存在すると判定された場合は、当該一致するソフトウェアのソフトウェアＩＤが採用される。また、ＯＰ１０５において一致するソフトウェアが存在しないと判定された場合は、ＯＰ１０６において生
成されたソフトウェアＩＤが採用される。次いで、ＣＰＵ１０１は、処理をＯＰ１０９に進める。
【００２６】
本実施形態では、図４に示すテーブルの各欄が、管理プログラムによって収集されたソフトウェアの情報の各属性項目に対応するものとする。そこで、ＯＰ１０９において、ＣＰＵ１０１は、図４に示すテーブルの各欄に対応する属性項目のいずれかの属性項目について、各管理プログラムによって取得されたソフトウェアの情報における各ソフトウェアの出現頻度を管理プログラムごとに算出する。
【００２７】
図６〜８に、本実施形態において、ＣＰＵ１０１による属性項目ごとのソフトウェアの出現頻度の算出結果の一例を示す。ＣＰＵ１０１は、ＯＰ１０９において算出したソフトウェアの出現頻度の結果をＨＤＤ１０３に格納する。図６は、属性項目が「ベンダー」である場合の、管理プログラムと属性値との組み合わせにおけるソフトウェアの出現頻度の算出結果の一例を示す。ここで、出現頻度は、例えば管理プログラムごとに算出される。
【００２８】
図６に示す例の場合、ＣＰＵ１０１は、図４に示すテーブルにおいて、「管理プログラム」欄と「ベンダー」欄とに格納されている情報を元に、管理プログラムとベンダーとの各組合せについてソフトウェアの出現数を算出する。例えば、ＣＰＵ１０１は、図４に示すテーブルを参照し、管理プログラム「Program A」と属性項目ベンダーの属性値「Vendor A」の組合せを有するソフトウェアの出現数を算出する。図４に示す例の場合、テーブ
ルの各行が１つのソフトウェアに対応している。したがって、ＣＰＵ１０１は、管理プログラム「Program A」とベンダー「Vendor A」の組合せを有する行の数をソフトウェアの
出現数とみなしてソフトウェアの出現数を算出する。
【００２９】
図６に示す例では、管理プログラム「Program A」と属性項目ベンダーの属性値「Vendor A」の組合せについてソフトウェアの出現数「ソフトウェア数」は「３９」である。す
なわち、図４に示すテーブルにおいて管理プログラム「Program A」とベンダー「Vendor A」の組合せを有する行が３９行存在することを意味する。このようにＣＰＵ１０１は、
管理プログラムによって収集された情報を元に、管理プログラムと属性値の組合せを含むソフトウェアの出現数を算出する。なお、図６に示す例では、管理プログラムは「Program A」と「Program B」、ベンダーの属性値は「Vendor A」、「Vendor B」、「Vendor C」を示すが、管理プログラムおよびベンダーの種類はこれに限られない。
【００３０】
また、図７には、管理プログラムと属性項目「ライセンス」の属性値との組合せについて算出されるソフトウェアの出現数の一例を示す。図６の場合と同様、図７の例では、ＣＰＵ１０１は、図４に示すテーブルを参照し、管理プログラムと属性項目「ライセンス」の属性値との各組合せについてのソフトウェアの出現数を算出する。さらに、図８には、管理プログラムと属性項目「ＯＳ種別」の属性値との組合せについて算出されるソフトウェアの出現数の一例を示す。図６、７の場合と同様、図８の例では、ＣＰＵ１０１は、図４に示すテーブルを参照し、管理プログラムと属性項目「ＯＳ種別」の属性値との各組合せについてのソフトウェアの出現数を算出する。ＣＰＵ１０１が、管理プログラムと各属性値の組合せにおけるソフトウェアの出現数の算出を完了すると、処理をＯＰ１１０に進める。
【００３１】
ＯＰ１１０において、ＣＰＵ１０１は、算出部として機能し、ＯＰ１０９において算出したソフトウェアの出現数に基づいて、管理プログラムごとのソフトウェアの出現数の割合を属性項目ごとの属性値別に算出する。なお、管理プログラムごとのソフトウェアの出現数の割合がソフトウェアの出現頻度の一例である。ＣＰＵ１０１は、ＯＰ１１０によって、複数のプログラムそれぞれと属性値との組合せについて、取得された情報における複数のソフトウェアの出現頻度を算出する。
【００３２】
また、ＣＰＵ１０１は、算出した割合を図６〜８に示すテーブルの「割合」欄に格納する。例えば、図６に示す例の場合、「管理プログラム」欄が「Program A」であるソフト
ウェアの出現数を母集団として、各出現数の全体に占める割合が算出される。したがって、管理プログラムProgram Aと属性項目ベンダーの属性値であるVendor A、B、Cとの各組
合せについてＯＰ１１０でＣＰＵ１０１により算出される割合は、図６の「割合」欄に示すようにそれぞれ「39/41」、「1/41」、「1/41」となる。図６に示す例の場合は、ＣＰ
Ｕ１０１は、管理プログラムProgram Bと属性項目ベンダーの属性値であるVendor A、B、Cとの各組合せについても同様に割合を算出する（それぞれ「5/17」、「6/17」、「6/17
」）。さらに、ＣＰＵ１０１は、図７、８に示すように、他の属性値についても上記の割合を算出する。ＣＰＵ１０１は、各管理プログラムと属性項目ごとの各属性値との組合せに対するソフトウェアの出現数の割合を算出すると、処理をＯＰ１１１に進める。
【００３３】
ＯＰ１１１において、ＣＰＵ１０１は、決定部として機能し、ＯＰ１１０において算出した割合に基づいて、ソフトウェアごとにいずれの管理プログラムによって収集された情報を採用するかを示す管理プログラムとソフトウェアとの対応関係を決定する。図９に、ＯＰ１１１においてＣＰＵ１０１が実行するサブルーチンの処理の一例を示す。
【００３４】
ＯＰ１１１１において、ＣＰＵ１０１は、ＯＰ１１０で算出した割合をすべての属性項目の属性値にわたってマージする。次いで、ＣＰＵ１０１は、処理をＯＰ１１１２に進める。ＯＰ１１１２において、ＣＰＵ１０１は、ＯＰ１１１１でマージした管理プログラムと属性値とソフトウェアの出現数と割合との各組合せを、割合でソートする。具体的には、ＣＰＵ１０１は、属性項目の違いによらないで、属性値全体にわたって当該組合せについてのソフトウェアの出現数の割合を降順に並べる。図１０に、図６〜８に示す結果の例に対して、ＣＰＵ１０１がＯＰ１１１１においてソフトウェアの出現数の各割合を降順に並べた結果の一例を示す。次いで、ＣＰＵ１０１は、処理をＯＰ１１１３に進める。
【００３５】
ＯＰ１１１３において、ＣＰＵ１０１は、属性項目の違いによらないで、算出された出現頻度に基づいて、一意に識別されたソフトウェアそれぞれとソフトウェアの情報の取得元となる複数のプログラムのいずれかのプログラムとの対応関係を決定する。
【００３６】
具体的には、ＣＰＵ１０１は、出現数の割合の高い順に管理プログラムと属性値との組合せ１つずつ特定する。さらに、ＣＰＵ１０１は、図４に示す管理プログラムの収集したソフトウェアの情報の中で、特定した組合せを有するソフトウェアの情報を特定する。そして、ＣＰＵ１０１は、特定したソフトウェアの情報に基づいて、管理プログラムとソフトウェアとの対応関係を決定する。
【００３７】
図１０に示す例の場合、ＯＰ１１０において算出された割合のうち最も高い割合は、管理プログラムProgram Aと属性項目ベンダーの属性値Vendor Aとの組合せに対して算出さ
れた割合「39/41」である。そこで、ＣＰＵ１０１は、図４に示すテーブルにおいて、管
理プログラムProgram Aと属性項目ベンダーの属性値Vendor Aとの組合せを含むソフトウ
ェアの情報（図中「ソフトウェア名」欄が「Software A」であり、かつ「バージョン」欄が「V1.0」である行の情報）を特定する。そして、ＣＰＵ１０１は、特定したソフトウェアの情報に基づいて、管理プログラムとソフトウェアの対応関係（管理プログラムProgram AとバージョンV1.0のソフトウェアSoftware A）を決定する。
【００３８】
さらに、ＣＰＵ１０１は、図１０に示す結果において、上記の割合「39/41」の次に高
い割合「3/5」である組合せ（管理プログラムProgram Aと属性項目ＯＳ種別の属性値OS Cとの組合せ）を特定する。次いで、ＣＰＵ１０１は、図４に示すテーブルにおいて、管理プログラムProgram Aと属性項目ＯＳ種別の属性値OS Cとの組合せを含むソフトウェアの
情報（図中「ソフトウェア名」欄が「Software D」であり、かつ「バージョン」欄が「V3.0」である行の情報）を特定する。そして、ＣＰＵ１０１は、特定したソフトウェアの情報に基づいて、管理プログラムとソフトウェアの対応関係（管理プログラムProgram Aと
バージョンV3.0のソフトウェアSoftware D）を決定する。
【００３９】
上記の通り、ＣＰＵ１０１は、図１０に示す結果を参照して、算出された割合の高い順に上記の処理を繰り返して管理プログラムとソフトウェアの対応関係を決定する。なお、ＣＰＵ１０１は、ソフトウェアに対して既に管理プログラムとの対応関係が決定されている場合は、同じソフトウェアと別の管理プログラムの対応関係が新たに決定されても、新たに決定された対応関係を採用せずに処理を続行する。このように、管理プログラムとソフトウェアの対応関係が決定されることで、ＣＰＵ１０１は、対応関係を用いてソフトウェアごとにいずれの管理プログラムが収集した情報をより正確な情報として採用するかを決定することができる。
【００４０】
また、ＯＰ１１１３において、ＣＰＵ１０１は、対応関係を決定したソフトウェアの情報、すなわちソフトウェア名、バージョン、ソフトウェアＩＤを含む情報をＨＤＤ１０３に記憶されているテーブルに格納する。図１１に、ＨＤＤ１０３に格納されるソフトウェアの情報を示すテーブルの一例を示す。当該テーブルによって、いずれの管理プログラムによって情報を収集するかが決定されたソフトウェアがわかる。ＣＰＵ１０１は、算出された各割合に基づいてソフトウェアと管理プログラムの対応関係を決定し、対応関係を決定したソフトウェアの情報を上記のテーブルに格納すると、処理をＯＰ１１２に進める。
【００４１】
ＯＰ１１２において、ＣＰＵ１０１は、上記の処理によって管理プログラムとの対応関係が決定されたソフトウェアがいずれのサーバにインストールされているかを示す情報がＣＭＤＢに登録済みであるか否かを判定する。当該ソフトウェアの情報がＣＭＤＢに登録済みである場合は（ＯＰ１１２：Ｙｅｓ）、ＣＰＵ１０１は、ＯＰ１０１において取得した情報のうちＯＰ１０２〜ＯＰ１１３の処理を実行していない情報に対して処理を実行する。一方、当該ソフトウェアの情報がＣＭＤＢに登録済みでない場合は（ＯＰ１１２：Ｙｅｓ）、ＣＰＵ１０１は、処理をＯＰ１１３に進める。
【００４２】
ＯＰ１１３において、ＣＰＵ１０１は、ＯＰ１０１において取得したソフトウェアの情報を用いて、ＯＰ１１２でＣＭＤＢに登録済みでないと判定されたソフトウェアがいずれのサーバにインストールされているかを示す情報をＣＭＤＢに登録する。図１２にＣＭＤＢに登録されるサーバとインストール済みのソフトウェアとの関係を示すテーブルの一例を示す。本実施形態では、情報処理装置１０は、当該テーブルによって、各サーバにインストールされているソフトウェアを把握することができる。さらに、情報処理装置は、各ソフトウェアの情報をいずれの管理プログラムから取得すべきかについても把握することができる。これにより、情報処理装置１０は、複数の管理プログラムから同じソフトウェアの情報を取得した場合であっても、より正確な情報を特定することができる。
【００４３】
以上のように、本実施形態によれば、各管理プログラムが収集した情報におけるソフトウェアの出現頻度が属性値ごとに算出される。これにより、ソフトウェアごとにどの管理プログラムが収集した情報がより正確な情報であるかを決定できる。そして、複数の管理プログラムが同じソフトウェアの情報を取得する場合に、いずれの管理プログラムが収集した情報が当該ソフトウェアの情報をより正確に示すかを決定できる。したがって、情報処理装置１０は、各サーバにインストールされている各ソフトウェアのより正確な情報を重複することなく特定することができる。
【００４４】
以上が本実施形態に関する説明であるが、上記の情報処理装置１０などの構成や処理は、上記の実施形態に限定されるものではなく、本発明の技術的思想と同一性を失わない範
囲内において種々の変更が可能である。例えば、上記の実施形態において、サーバ４０、５０は物理サーバでも仮想サーバでもよい。また、上記の説明では、ＣＰＵ１０１は、ＯＰ１１１１において、ＯＰ１１０で算出した割合をすべての属性項目の属性値にわたってマージする。ただし、ＣＰＵ１０１は、このようにＯＰ１１０で算出した割合をマージせず、各属性項目の属性値ごとに算出された割合を横並びにして比較することで、割合の高いものを特定してもよい。
【００４５】
＜コンピュータが読み取り可能な記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記データ送受信装置の設定を行うための管理ツール、ＯＳその他を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータは、例えば、情報処理装置、サーバなどである。
【００４６】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリ等のメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ等がある。
【００４７】
以上の実施形態に関し、さらに以下の付記を開示する。
【００４８】
（付記１）
装置にインストールされている複数のソフトウェアのモジュールの格納先および前記複数のソフトウェアの属性項目に対する属性値を含む情報を収集する複数のプログラムそれぞれから、前記収集された情報を取得する取得部と、
前記取得された情報それぞれが示すソフトウェアのモジュールの格納先に基づいて、前記取得された情報が示す前記複数のソフトウェアを一意に識別する識別部と、
前記複数のプログラムそれぞれと前記属性値との組合せについて、前記取得された情報における前記複数のソフトウェアの出現頻度を算出する算出部と、
前記算出された出現頻度に基づいて、前記一意に識別されたソフトウェアそれぞれと前記ソフトウェアの情報の取得元となる前記複数のプログラムのいずれかのプログラムとの対応関係を決定する決定部と
を有することを特徴とする情報処理装置。
（付記２）
前記決定部は、前記属性項目の違いによらないで、前記算出された出現頻度が高い順に前記プログラムと前記属性値との組合せを特定し、前記取得された情報のうち前記特定された組合せを有する情報に含まれる前記ソフトウェアと前記特定された組合せに含まれる前記プログラムとの関係を前記対応関係として決定する、ことを特徴とする付記１に記載の情報処理装置。
（付記３）
前記算出部は、前記複数のプログラムごとに前記出現頻度を算出する、ことを特徴とする付記１または２に記載の情報処理装置。
（付記４）
情報処理装置の取得部によって、装置にインストールされている複数のソフトウェアのモジュールの格納先および前記複数のソフトウェアの属性項目に対する属性値を含む情報を収集する複数のプログラムそれぞれから、前記収集された情報を取得し、
前記情報処理装置の識別部によって、前記取得された情報それぞれが示すソフトウェア
のモジュールの格納先に基づいて、前記取得された情報が示す前記複数のソフトウェアを一意に識別し、
前記情報処理装置の算出部によって、前記複数のプログラムそれぞれと前記属性値との組合せについて、前記取得された情報における前記複数のソフトウェアの出現頻度を算出し、
前記情報処理装置の決定部によって、前記算出された出現頻度に基づいて、前記一意に識別されたソフトウェアそれぞれと前記ソフトウェアの情報の取得元となる前記複数のプログラムのいずれかのプログラムとの対応関係を決定する
ことを特徴とする情報処理方法。
（付記５）
前記情報処理装置の決定部は、前記属性項目の違いによらないで、前記算出された出現頻度が高い順に前記プログラムと前記属性値との組合せを特定し、前記取得された情報のうち前記特定された組合せを有する情報に含まれる前記ソフトウェアと前記特定された組合せに含まれる前記プログラムとの関係を前記対応関係として決定する、ことを特徴とする付記３に記載の情報処理方法。
（付記６）
前記情報処理装置の算出部は、前記複数のプログラムごとに前記出現頻度を算出する、ことを特徴とする付記４または５に記載の情報処理方法。
（付記７）
コンピュータに、
装置にインストールされている複数のソフトウェアのモジュールの格納先および前記複数のソフトウェアの属性項目に対する属性値を含む情報を収集する複数のプログラムそれぞれから、前記収集された情報を取得する処理と、
前記取得された情報それぞれが示すソフトウェアのモジュールの格納先に基づいて、前記取得された情報が示す前記複数のソフトウェアを一意に識別する処理と、
前記複数のプログラムそれぞれと前記属性値との組合せについて、前記取得された情報における前記複数のソフトウェアの出現頻度を算出する処理と、
前記算出された出現頻度に基づいて、前記一意に識別されたソフトウェアそれぞれと前記ソフトウェアの情報の取得元となる前記複数のプログラムのいずれかのプログラムとの対応関係を決定する処理と
を実行させるためのプログラム。
（付記８）
前記コンピュータにさらに、前記属性項目の違いによらないで、前記算出された出現頻度が高い順に前記プログラムと前記属性値との組合せを特定し、前記取得された情報のうち前記特定された組合せを有する情報に含まれる前記ソフトウェアと前記特定された組合せに含まれる前記プログラムとの関係を前記対応関係として決定する処理を実行させるための付記５に記載のプログラム。
（付記９）
前記コンピュータに、前記出現頻度を算出する処理において、前記複数のプログラムごとに前記出現頻度を算出させる、ことを特徴とする付記７または８に記載のプログラム。
【符号の説明】
【００４９】
１０    情報処理装置
１５    ネットワーク
１０１    ＣＰＵ
１０２    ＲＡＭ
１０３    ＨＤＤ
４０、５０    サーバ
【図１】
2019082816.tif 000003
【図２】
2019082816.tif 000004
【図３】
2019082816.tif 000005
【図４】
2019082816.tif 000006
【図５】
2019082816.tif 000007
【図６】
2019082816.tif 000008
【図７】
2019082816.tif 000009
【図８】
2019082816.tif 000010
【図９】
2019082816.tif 000011
【図１０】
2019082816.tif 000012
【図１１】
2019082816.tif 000013
【図１２】
2019082816.tif 000014