JP6369333B2 - ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置 - Google Patents

ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置 Download PDF

Info

Publication number
JP6369333B2
JP6369333B2 JP2015000772A JP2015000772A JP6369333B2 JP 6369333 B2 JP6369333 B2 JP 6369333B2 JP 2015000772 A JP2015000772 A JP 2015000772A JP 2015000772 A JP2015000772 A JP 2015000772A JP 6369333 B2 JP6369333 B2 JP 6369333B2
Authority
JP
Japan
Prior art keywords
software
detection
detection condition
condition
information
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.)
Active
Application number
JP2015000772A
Other languages
English (en)
Other versions
JP2016126591A (ja
Inventor
多津茂 稲葉
多津茂 稲葉
潤 杉井
潤 杉井
秀雄 西
秀雄 西
岩本 清孝
清孝 岩本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015000772A priority Critical patent/JP6369333B2/ja
Priority to US14/977,727 priority patent/US9985833B2/en
Publication of JP2016126591A publication Critical patent/JP2016126591A/ja
Application granted granted Critical
Publication of JP6369333B2 publication Critical patent/JP6369333B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Computer Security & Cryptography (AREA)

Description

本発明は、ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置に関する。
多数の機器が接続されたコンピュータネットワークでは、管理サーバによりインベントリが収集される。インベントリとは、ネットワーク上の端末装置などの機器に実装されたソフトウェアなどの資源を一覧にしたものである。端末装置からインベントリを収集する場合、例えば管理サーバから端末装置に、インベントリ収集要求が出される。すると端末装置は、例えば、自装置内にどのようなソフトウェアが導入されているのかを調査し、調査結果を、インベントリ情報として管理サーバに送信する。このように収集したインベントリ情報は、ライセンス管理やセキュリティ維持のための現状把握に利用される。
ネットワークを介した機器の管理技術としては、例えば、コンピュータの障害やセットアップ、アプリケーションのインストールなどの際に適切な処置やサポートを的確且つ迅速に行うユーザサポートサーバが考えられている。このユーザサポートサーバは、ユーザ側のコンピュータごとのソフトウェアなどの構成情報、及びユーザ側からの問合せ情報に基づいて、ユーザ側のコンピュータに関するサポート情報を作成する。
なお管理対象の機器が仮想マシンの場合もある。仮想マシンの管理技術としては、例えば、仮想マシンの動作に使用されている1またはそれ以上のファイルと、1またはそれ以上のテンプレートファイルとを比較し、比較結果に基づいて、仮想マシンの設定状況を示す構成情報を生成する技術がある。
特開2004−005413号公報 特開2012−203640号公報
ソフトウェアの検出は、予め用意されたソフトウェア検出条件を用いて行われる。例えばソフトウェア検出条件を充足するソフトウェアがあれば、そのソフトウェアが導入されていると判定される。ソフトウェア検出条件は、資産管理ベンダまたはユーザシステムの管理者により、例えば手作業で作成される。ソフトウェア検出条件には、特定のファイルの存否や所定の環境設定の値などによる、ソフトウェアの有無の判定基準が示されている。
ソフトウェア検出条件を用いれば、ソフトウェア検出条件が充足するかどうかを判定すればよいため、高速かつ低負荷で、ソフトウェアの導入の有無の判定が可能である。その一方、ソフトウェア検出条件は固定的であるため、ソフトウェアのバージョンアップや、ソフトウェアの動作環境の変化があると、以前と同じソフトウェア検出条件ではソフトウェアを検出することができない場合がある。その結果、ソフトウェアの導入状況を正しく把握するのが困難となっている。
1つの側面では、本件は、ソフトウェアの導入の有無の判定精度を向上させることを目的とする。
1つの案では、コンピュータに、以下の処理を実行させるソフトウェア導入判定プログラムが提供される。コンピュータは、ソフトウェア導入判定プログラムに基づいて、ソフトウェアの検出条件の複数の生成規則のいずれかに従って生成された第1の検出条件による過去の判定で、コンピュータに導入されていると判定された特定のソフトウェアについて、コンピュータへの導入の有無を、第1の検出条件によって判定する。そして、コンピュータは、特定のソフトウェアの導入の有無が第1の検出条件で判定できない場合、複数の生成規則それぞれに従って生成できる複数の検出条件のうちの、第1の検出条件とは別の第2の検出条件により、特定のソフトウェアの導入の有無を判定する。
1態様によれば、ソフトウェアの導入の有無の判定精度が向上する。
第1の実施の形態に係る情報処理装置の一例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 端末装置のハードウェアの一構成例を示す図である。 各装置の機能の一例を示すブロック図である。 ソフトウェア検出条件生成情報の一例を示す図である。 条件定義管理テーブルの一例を示す図である。 設定値候補管理テーブルの一例を示す図である。 構成管理テーブルの一例を示す図である。 ソフトウェア辞書の一例を示す図である。 検出ソフトウェア管理テーブルの一例を示す図である。 検出条件管理テーブルの一例を示す図である。 新たに導入されたソフトウェアを検出するソフトウェア検出条件の生成例を示す図である。 環境の変化に応じてソフトウェア検出条件を変更する例を示す図である。 環境に合わせたソフトウェア検出条件の生成例を示す図である。 ソフトウェア検出処理の手順の一例を示す図である。 ソフトウェア検出条件生成・適用処理の手順を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の一例を示す図である。情報処理装置(コンピュータ)10は、記憶部11と演算部12とを有している。情報処理装置10にはソフトウェア13を導入(インストール)することができる。導入されたソフトウェア13は、例えば実行形式のファイルや、そのファイルに記述されたプログラムの実行に使用するデータを含む。またソフトウェア13の導入時には、そのソフトウェア13を実行するための環境設定が、情報処理装置10で行われる。例えば情報処理装置10のレジストリ14に、ソフトウェア13用の設定値が格納される。レジストリ14とは、ソフトウェアの設定値の記録に用いられるデータベースである。
情報処理装置10は、ソフトウェア13の導入の有無を判定する機能を有する。このような機能を有する情報処理装置10は、ソフトウェア導入判定装置と呼ぶこともできる。例えば情報処理装置10は、外部のサーバからインベントリ収集の要求を受信した際に、ソフトウェア13の導入の有無を判定する。その場合、情報処理装置10は、ソフトウェア13の導入の有無の判定結果を、サーバに送信する。
ソフトウェア13の導入の有無を判定するために、記憶部11には、ソフトウェアの検出条件についての複数の生成規則11a,11bが格納されている。複数の生成規則11a,11bに従って、複数の検出条件12a,12bが生成できる。ここで、ソフトウェア13は、生成規則11aに従って生成された検出条件12aによる過去の判定で、情報処理装置10に導入されていると判定されているものとする。
そして、ソフトウェアの導入の有無を判定するとき、情報処理装置10の演算部12は、ソフトウェア13について、情報処理装置10への導入の有無を、以前の判定で用いた検出条件12aによって判定する。検出条件12aが充足されていれば、ソフトウェア13が導入されていると判定できる。検出条件12aが充足されていない場合、ソフトウェア13の導入の有無が判定できない。
導入の有無が検出条件12aで判定できない場合、演算部12は、複数の生成規則11a,11bそれぞれに従って生成できる複数の検出条件12a,12bのうちの、検出条件12aとは別の検出条件12bにより、ソフトウェア13の導入の有無を判定する。例えば、生成規則11bに従って生成された検出条件12bにより判定される。また演算部12は、検出条件12aに含まれる値を、検出条件12aの生成元の生成規則11aにおいて許容される他の値に変更した検出条件により、ソフトウェア13の導入の有無を判定することもできる。いずれかの検出条件が充足されていれば、ソフトウェア13が導入されていると判定できる。
演算部12は、複数の生成規則11a,11bに従って生成できる検出条件のいずれにおいてもソフトウェア13の導入の有無を判定できない場合、ソフトウェア13が情報処理装置10から削除(アンインストール)されたと判定する。
なお、記憶部11に格納されている複数の生成規則11a,11bそれぞれは、ソフトウェアの動作環境に対応付けられていてもよい。この場合、演算部12は、ソフトウェア13の導入の有無が検出条件12aで判定できない場合、判定時における動作環境に対応する生成規則に従って生成された検出条件12bにより判定する。図1の例では、生成規則11aはバージョン7のOS(Operating System)に適用でき、生成規則11bはバージョン8のOSに適用できる。
このような情報処理装置10において、OSのバージョン7のときにソフトウェア13が導入されると、レジストリ14の設定項目「X」に値「a」が設定されるものとする。バージョン7のOSに適用できる生成規則11aから、レジストリ14の設定項目「X」に値「a」が設定されていることを、ソフトウェア13が導入されていると判定する検出条件12aを生成することができる。そこで、検出条件12aを用いてソフトウェア13の導入の有無を判定すると、レジストリ14から条件を満たす値を取得することができ、ソフトウェア13が導入されていると判定される。
その後、OSがバージョンアップされたものとする。このOSのバージョンアップでは、ソフトウェア13の設定値が、レジストリ14から削除され、API(Application Programming Interface)15の引数として読み出されるように、設定値の取得方法が変更されている。
OSのバージョンアップ後に、ソフトウェア13の導入の有無の判定を行うとき、最初に、以前と同じ検出条件12aが充足されるかどうかが判断される。図1の例では、レジストリ14内の値が削除されているため、検出条件12aは充足されない。そこで、バージョンアップ後のOSに適用できる生成規則11bに従って、検出条件12bが生成される。検出条件12bは、API(n)の復帰値が「a」であることを、ソフトウェア13が導入されていると判定する条件としている。この検出条件12bによりソフトウェア13の導入の有無を判定すると、API(n)の復帰値として値「a」を取得することができる。その結果、ソフトウェア13が導入されていることを正しく判定することができる。
このように、第1の実施の形態によれば、ソフトウェア13を実行する環境が変化しても、ソフトウェア13の導入の有無を、継続して正しく判定することができる。その結果、ソフトウェア13の導入有無の判定精度が向上する。
また複数の生成規則11a,11bに従って生成できる検出条件のいずれにおいてもソフトウェア13の導入の有無を判定できない場合、ソフトウェア13が削除されたと判定することで、ソフトウェア13が削除されたことを正しく判断できる。
なお、演算部12は、例えば情報処理装置10が有するプロセッサにより実現することができる。また、記憶部11は、例えば情報処理装置10が有するメモリにより実現することができる。
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、管理サーバから複数の端末装置に、ソフトウェア検出条件の複数の生成規則を示すソフトウェア検出条件生成情報を送信し、各端末装置がそのソフトウェア検出条件生成情報を用いて、ソフトウェア検出条件を自動生成するものである。各端末装置で生成したソフトウェア検出条件のうち、ソフトウェアを検出できたものについては、管理サーバに送信され、管理サーバで管理される。
図2は、第2の実施の形態のシステム構成例を示す図である。管理サーバ200は、ネットワーク20を介して複数の端末装置100,100−1,100−2,・・・に接続されている。管理サーバ200は、複数の端末装置100,100−1,100−2,・・・からのインベントリ収集を行い、ソフトウェアの導入状況を管理する。複数の端末装置100,100−1,100−2,・・・は、ソフトウェア検出条件を用いて、自己に導入されているソフトウェアを検出する。また複数の端末装置100,100−1,100−2,・・・は、過去に検出したソフトウェアが現在のソフトウェア検出条件で検出できない場合、ソフトウェア検出条件生成情報を用いて新たなソフトウェア検出条件を生成する。そして複数の端末装置100,100−1,100−2,・・・は、生成したソフトウェア検出条件を用いて、ソフトウェアの検出を試みる。このように、ソフトウェア検出条件を自動生成すれば、ソフトウェアのバージョンアップや、ソフトウェアの実行基盤の変更があっても、ソフトウェアを検出できるようになる。
図3は、端末装置のハードウェアの一構成例を示す図である。端末装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、端末装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、端末装置100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置(SSD:Solid State Drive)を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、端末装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、他の端末装置100−1,100−2,・・・や管理サーバ200も、図3に示した端末装置100と同様のハードウェアにより実現することができる。さらに、第1の実施の形態に示した情報処理装置10も、図3に示した端末装置100と同様のハードウェアにより実現することができる。
端末装置100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。端末装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、端末装置100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また端末装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図4は、各装置の機能の一例を示すブロック図である。管理サーバ200は、ソフトウェア検出情報記憶部210、検出用情報管理部220、インベントリデータベース230、およびインベントリ管理部240を有する。
ソフトウェア検出情報記憶部210は、ソフトウェアの検出に用いる情報を記憶する。例えばソフトウェア検出情報記憶部210には、ソフトウェア検出条件生成情報211とソフトウェア辞書212とが記憶される。ソフトウェア検出条件生成情報211は、ソフトウェア検出条件の生成規則に関する情報である。ソフトウェア辞書212は、ソフトウェアの有無の判定に使用するソフトウェア検出条件の集合である。ソフトウェア検出条件は、ソフトウェア検出に使用する情報の組み合わせである。ソフトウェア検出条件によって特定される各情報が、そのソフトウェア検出条件で示される条件を満たしていれば、ソフトウェアを検出したと判断できる。ソフトウェア検出情報記憶部210としては、例えば管理サーバ200内のメモリまたはHDDの記憶領域の一部が使用される。
検出用情報管理部220は、ソフトウェア検出条件生成情報211とソフトウェア辞書212を管理する。例えば検出用情報管理部220は、ソフトウェア検出条件生成情報211とソフトウェア辞書212を端末装置100へ送信する。また検出用情報管理部220は、複数の端末装置100,100−1,100−2,・・・から、更新されたソフトウェア検出条件を取得し、ソフトウェア検出情報記憶部210に格納する。
インベントリデータベース230は、複数の端末装置100,100−1,100−2,・・・それぞれに導入されたソフトウェア資源に関するインベントリ情報を記憶する。
インベントリ管理部240は、複数の端末装置100,100−1,100−2,・・・から、その端末装置に導入されているソフトウェアの情報を取得し、インベントリデータベース230に格納する。
端末装置100は、検出用情報送受信部110、ソフトウェア検出情報記憶部120、ソフトウェア検出条件生成部130、およびソフトウェア検出部140を有する。
検出用情報送受信部110は、管理サーバ200から、ソフトウェア検出条件生成情報211やソフトウェア辞書212を受信し、ソフトウェア検出情報記憶部120に格納する。また検出用情報送受信部110は、ソフトウェア検出条件生成部130によって作成されたソフトウェア検出条件をソフトウェア検出情報記憶部120から読み出し、そのソフトウェア検出条件を管理サーバ200に送信する。
ソフトウェア検出情報記憶部120は、ソフトウェア検出条件生成情報121とソフトウェア辞書122とを記憶する。
ソフトウェア検出条件生成部130は、ソフトウェア検出条件生成情報121に基づいて、ソフトウェア検出条件を生成する。ソフトウェア検出条件生成部130は、生成したソフトウェア検出条件を、ソフトウェア検出情報記憶部120に格納する。
ソフトウェア検出部140は、ソフトウェア検出情報記憶部120に格納されたソフトウェア検出条件を用いて、端末装置100に導入されているソフトウェアを検出する。ソフトウェア検出部140は、ソフトウェアの検出結果を、管理サーバ200に送信する。
このような構成により、端末装置100によるソフトウェアの検出と、管理サーバ200によるインベントリ収集とが行われる。なお、図4には、端末装置100の機能を示しているが、他の端末装置100−1,100−2,・・・も、端末装置100と同様の機能を有している。また図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。さらに、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、ソフトウェア検出情報記憶部120,210に格納されている情報について詳細に説明する。
図5は、ソフトウェア検出条件生成情報の一例を示す図である。ソフトウェア検出条件生成情報121には、条件定義管理テーブル121a、設定値候補管理テーブル121b、および構成管理テーブル121cが含まれる。
条件定義管理テーブル121aは、ソフトウェア検出条件に利用可能な条件を構成する要素と、その要素に設定する値の種別が登録されたデータテーブルである。設定値候補管理テーブル121bは、条件定義に示されている要素に対する設定値の候補を管理するデータテーブルである。構成管理テーブル121cは、個々のソフトウェア検出条件を構成する条件定義を管理するデータテーブルである。
図6は、条件定義管理テーブルの一例を示す図である。条件定義管理テーブル121aには、複数の条件定義が設定されている。条件定義管理テーブル121aには、「定義ID」、「検出の要件」、「環境」、「いつ」、「どこから」、「どのように」、「解析方法」、「利用情報」、および「利用情報の取得方法」の欄が設けられている。これらの欄のうち、「検出の要件」、「環境」、「いつ」、「どこから」、「どのように」、「解析方法」、「利用情報」、および「利用情報の取得方法」の欄の値は可変要素であり、ソフトウェア検出条件を生成する際に値が設定される。また、「いつ」、「どこから」、「どのように」、「解析方法」、「利用情報」、および「利用情報の取得方法」は、検出の要件となる情報の取得に用いる要素(情報取得用要素)である。
「定義ID」の欄には、条件定義の識別子(定義ID)が設定される。
「検出の要件」の欄には、ソフトウェアを検出するための要件が設定される。例えば検出の要件が「名称」であれば、情報取得用要素の設定値に基づいて、ソフトウェアの名称が取得できた場合、その条件定義に従って生成した条件が充足することとなる。検出の要件には、検出対象ソフトウェアの名称、検出対象ソフトウェアの表示バージョン、検出対象ソフトウェアの内部バージョン、検出対象ソフトウェアのベンダ名、検出対象ソフトウェアのプロダクトIDなどのライセンス識別情報などがある。
「環境」の欄には、どのようなシステム環境下で適用できる条件定義なのかが設定される。適用できる環境としては、例えばOS種別、デバイス構成、インストール先、環境変数、CPUアーキテクチャなどが示される。
「いつ」の欄には、検出の要件となる情報をいつ(どのようなタイミングで)取得するのかが設定される。例えばインベントリ収集時に検出の要件となる情報を取得することが示される。
「どこから」の欄には、検出の要件となる情報をどこから取得するのかが設定される。検出の要件となる情報の取得元は、ファイル、レジストリ、プロセス、ネットワーク、サービス、イベント、メッセージなどである。例えば「どこから」の欄に「レジストリ」と設定されていれば、該当する条件定義に基づいて生成する条件における情報の取得元は、レジストリ内の位置が指定される。
「どのように」の欄には、検出の要件となる情報を、どのようにして取得するのか(取得手段)が設定される。取得手段は、ファイルアクセス、レジストリアクセス、API呼び出し、コマンド実行、通信などである。例えば「どのように」の欄に「API」と設定されていれば、該当する条件定義に基づいて生成する条件では、情報の取得方法として、APIを用いた取得方法が指定される。
「解析方法」の欄には、検出の要件として取得した情報のどの部分を、どのように解析するのか(解析方法)が設定される。解析方法は、アクセス位置、復帰値判定・解析などである。例えば「解析方法」の欄に「API復帰値(文字列)」と記載されていれば、該当する条件定義に基づいて生成する条件では、解析方法として、API復帰値として得られる文字列についての解析方法が指定される。
「利用情報」の欄には、検出の要件となる情報の取得に利用する情報が設定される。利用情報は、例えばパス、プロセス名、コマンド引数、ユーザID、パッケージ名などである。
「利用情報の取得方法」の欄には、利用情報の取得方法が設定される。例えばユーザIDを使用する場合、そのユーザIDを、ログオンユーザ名から取得することが示される。「利用情報の取得方法」についても、取得する環境や、いつ・どこで・どこから・どのように取得するのかが設定できる。
図7は、設定値候補管理テーブルの一例を示す図である。設定値候補管理テーブル121bには、図6に示した条件定義の、「どこから」、「どのように」、「解析方法」、「利用情報」、および「利用情報の取得方法」の要素に設定可能な値の候補が列挙されている。設定値候補管理テーブル121bには、「値ID」、「定義ID」、「種別」、および「値」の欄が設定されている。
「値ID」の欄は、値の識別番号(値ID)が設定される。「定義ID」の欄には、値を適用する条件定義の定義IDが設定される。「種別」の欄には、値を設定する項目の種別(「どこから」、「どのように」、「解析方法」、「利用情報」、および「利用情報の取得方法」のうちのどれなのか)が設定される。「値」の欄には、種別の欄に示される項目に設定可能な、具体的な値が設定される。
図8は、構成管理テーブルの一例を示す図である。構成管理テーブル121cには、ソフトウェア検出条件の生成情報を構成する条件定義の組み合わせが示されている。構成管理テーブル121cには、例えば構成IDと定義IDとの欄が設けられている。構成IDの欄には、条件定義の組からなる生成情報の識別情報(構成ID)が設定される。定義IDの欄には、生成情報を構成する条件定義の定義IDが設定される。同じ構成IDに対応する定義IDの集合が、ソフトウェア検出条件の生成情報を構成する条件定義の組み合わせを示している。この条件定義の組み合わせが、ソフトウェア検出条件の生成規則である。
図8の例では、構成ID「C0001」に対応付けて、複数の定義IDが設定されている。この場合、構成ID「C0001」に対応付けられた定義IDそれぞれに応じた条件定義に応じて生成したすべての検出条件が満たされたときに、該当するソフトウェアを検出したと判断される。なお構成ID「C0001」に属する定義情報の組は、OS名が「OS_A」のデスクトップアプリケーション検出用のソフトウェア検出条件の生成に使用される。
図5〜図8に、端末装置100側のソフトウェア検出条件生成情報121の例を示したが、管理サーバ200に格納されたソフトウェア検出条件生成情報211の内容も、ソフトウェア検出条件生成情報121と同様である。
次に、ソフトウェア辞書122について説明する。
図9は、ソフトウェア辞書の一例を示す図である。ソフトウェア辞書122には、例えば検出ソフトウェア管理テーブル122aと検出条件管理テーブル122bとが含まれる。検出ソフトウェア管理テーブル122aには、ソフトウェア検出条件を適用して検出するソフトウェアが登録されている。検出条件管理テーブル122bには、ソフトウェア検出条件が登録されている。
図10は、検出ソフトウェア管理テーブルの一例を示す図である。検出ソフトウェア管理テーブル122aには、「条件ID」、「名称」、および「バージョン」の欄が設けられている。「条件ID」の欄には、ソフトウェア検出条件の識別子(条件ID)が設定される。「名称」の欄には、対応する条件IDで示されるソフトウェア検出条件により検出するソフトウェアの名称が設定される。「バージョン」の欄には、検出するソフトウェアの版数が設定される。
図11は、検出条件管理テーブルの一例を示す図である。検出条件管理テーブル122bに登録されている各エントリが、ソフトウェア検出条件で使用される情報取得条件である。検出条件管理テーブル122bには、「条件ID」、「構成ID」、「定義ID」、「どこから」、「どのように」、「解析方法」、「利用情報」、「利用情報の取得方法」の欄が設けられている。
「条件ID」の欄には、ソフトウェア検出条件の条件IDが設定される。同じ条件IDが設定された情報取得条件の組が、1つのソフトウェア検出条件となる。「構成ID」の欄には、そのソフトウェア検出条件を構成する条件定義の組み合わせを示す構成IDが設定される。「定義ID」の欄には、そのソフトウェア検出条件を構成する情報取得条件の生成元となった条件定義の、定義IDが設定される。「どこから」の欄には、検出の要件となる情報をどこから取得するのかを示す具体的な値が設定される。「どのように」の欄には、検出の要件となる情報をどのように取得するのかを示す具体的な値が設定される。「解析方法」の欄には、検出の要件となる情報をどのように解析するのかを示す具体的な値が設定される。「利用情報」の欄には、検出の要件となる情報の取得に利用する情報を示す具体的な値が設定される。「利用情報の取得方法」の欄には、利用情報の取得方法を示す具体的な値が設定される。
図9〜図11に、端末装置100側のソフトウェア辞書122の例を示したが、管理サーバ200に格納されたソフトウェア辞書212の内容も、ソフトウェア辞書122と同様である。
以上のような構成のシステムにおいて、管理サーバ200は、ソフトウェア検出条件生成情報211とソフトウェア辞書212とを、端末装置100に配付する。端末装置100は、配布されたソフトウェア検出条件生成情報211、ソフトウェア辞書212それぞれと同じ内容の、ソフトウェア検出条件生成情報121とソフトウェア辞書122とを記憶する。
端末装置100のソフトウェア検出条件生成部130は、管理サーバ200から受信したソフトウェア検出条件生成情報121からソフトウェア検出条件を生成する。例えば端末装置100では、ソフトウェア検出条件生成情報121の構成管理テーブル121cに示されている定義IDの組み合わせのうち、端末装置100の環境に合致する組み合わせを抽出する。次に端末装置100は、抽出した組み合わせに含まれる各条件定義の情報取得用要素に適合する値の候補を、設定値候補管理テーブル121bから抽出する。そして端末装置100は、条件定義の情報取得用要素に、設定値候補管理テーブル121bから抽出した値を当てはめた組み合わせをソフトウェア検出条件の候補とする。端末装置100は、これらの各候補について、その端末装置100上でソフトウェア検出を試行し、ソフトウェアが検出できた候補を、そのソフトウェアを検出するためのソフトウェア検出条件とする。
端末装置100は、ソフトウェア検出条件生成情報121から生成された複数のソフトウェア検出条件を用いて、ソフトウェアの導入有無を判定する。ソフトウェアの導入有無判定とは、端末装置100上でソフトウェア検出条件が満たされた場合は、当該ソフトウェアが導入されていると判断し、ソフトウェア検出条件がみなされていない場合は当該ソフトウェアが導入されていないと判断する処理である。端末装置100は、定期的(例えば1日1回)にソフトウェア検出を実施する。
複数の検出条件に含まれる第1の検出条件により、特定のソフトウェアが導入(インストール)されていると判定されていた端末装置100において、第1の検出条件で特定のソフトウェアの導入有無が判定できない場合がある。この場合、端末装置100は、複数のソフトウェア検出条件に含まれる他のソフトウェア検出条件を用いて特定のソフトウェアの導入有無判定を行う。
生成したソフトウェア検出条件を用いて前回検出したソフトウェアについて、今回の検出処理において、ソフトウェア検出条件で検出できなかった場合、端末装置100は、以下の順に処理を行って環境の変化もしくはアンインストールを検出する。なお、環境の変化には、ソフトウェア自身のアップデートによる環境の変化や、ソフトウェアを実行させるための動作基盤(OSなど)のアップデートによる環境の変化がある。
a)端末装置100は、ソフトウェア検出条件で確定した値のうち、対応する条件定義において情報取得用要素となっている値に適用可能な別の値を、設定値候補管理テーブル121bから抽出し、抽出した値を用いて、ソフトウェアの検出を行う。
b)端末装置100は、処理a)でソフトウェアを検出できなかった場合は、ソフトウェア検出条件生成部130により、ソフトウェア検出条件の生成を再度実施し(検出手段の変更)、再生成した検出条件を用いて検出する。
処理a)または処理b)のいずれにおいても検出できた場合は、端末装置100は、環境の変化と判断し、当該ソフトウェアがアンインストールされたと判断する。
他のソフトウェア検出条件で特定のソフトウェアの導入有無が判定された場合、端末装置100は、他のソフトウェア検出条件を管理対象クライアントで使用する。端末装置100は、ソフトウェアまたは管理対象クライアントの環境変化などがない場合、生成したソフトウェア検出条件を、次回のソフトウェア検出時に再利用する。これによって、生成にかかるコスト(速度、負荷)が削減され、高い処理性能が維持される。また端末装置100は、複数のソフトウェア検出条件のいずれを用いても特定のソフトウェアの導入有無が判定できなかった場合に、特定のソフトウェアがアンインストールされたと判定する。
一方、管理サーバ200は、端末装置100が動的に生成したソフトウェア検出条件を検出用情報管理部220により取得し、管理サーバ200が保持するソフトウェア辞書212に自動的に追加する。なお端末装置100で生成されたソフトウェア検出条件が、以前から存在するソフトウェア検出条件の情報取得用要素の値を変更したものであれば、管理サーバ200は、該当するソフトウェア検出条件を更新する。
以上のような構成のシステムにより、例えば、端末装置100に新たに導入されたソフトウェアを検出するソフトウェア検出条件を生成することができる。また端末装置100の環境が変化した際には、環境の変化に応じてソフトウェア検出条件を変更することができる。ソフトウェア検出条件の変更では対応できないような環境の変化があった場合、新たな環境に合わせたソフトウェア検出条件を生成することもできる。
図12は、新たに導入されたソフトウェアを検出するソフトウェア検出条件の生成例を示す図である。管理サーバ200から端末装置100へは、ソフトウェア検出条件生成情報211とソフトウェア辞書212とが配布される。端末装置100は、配布されたものと同じ内容のソフトウェア検出条件生成情報121とソフトウェア辞書122とを保持する。そして端末装置100は、定期的に、ソフトウェア辞書122に含まれるソフトウェア検出条件31,32を用いて、ソフトウェアを検出する。図12の例では、「ソフトウェア検出条件31を用いて名称「ソフトウェアA」のソフトウェア41が検出され、ソフトウェア検出条件32を用いて名称「ソフトウェアB」のソフトウェア42が検出されている。
その後、端末装置100に名称「ソフトウェアC」のソフトウェア43が導入されたものとする。この場合、端末装置100は、既存のソフトウェア検出条件31,32を用いてもソフトウェア43を検出できない。そこで端末装置100は、ソフトウェア検出条件生成情報121に従って、端末装置100の環境に適用可能なソフトウェア検出条件の候補を作成し、ソフトウェア43の検出を試みる。図12の例では、ソフトウェア検出条件33により、ソフトウェア43が検出されている。
ソフトウェア43の検出に使用したソフトウェア検出条件33は、管理サーバ200に送信され、管理サーバ200のソフトウェア辞書212に格納される。これにより、端末装置100におけるソフトウェア検出条件の生成結果が、管理サーバ200にフィードバックされる。
このように、管理サーバ200のソフトウェア辞書212に、対応するソフトウェア検出条件が含まれていないソフトウェア43に関し、そのソフトウェア43を検出可能なソフトウェア検出条件を自動生成できる。そのため、ユーザまたは資産管理ベンダによるソフトウェア検出条件の作成・更新から適用までの時間とコストを削減することができる。
すなわち、従来であれば、管理サーバ200から提供されたソフトウェア検出条件で検出できないソフトウェアを検出しようとする場合、管理者などが新たなソフトウェア検出条件を手作業で定義することとなり、ソフトウェア数分の作業が発生する。そして、管理者などにより新たに作成されたソフトウェア検出条件が追加されるまで、当該ソフトウェアを検出することができない。それに対し、第2の実施の形態では、既存のソフトウェア検出条件によって検出できないソフトウェアであっても、自動生成したソフトウェア検出条件によって検出できる。ソフトウェア検出条件が自動生成されることから、管理者などの作業負担が軽減される。しかもソフトウェア検出条件の自動生成は、インベントリ収集時に行われるため、新たなソフトウェア43が追加されると、迅速に対応するソフトウェア検出条件33が生成される。
図13は、環境の変化に応じてソフトウェア検出条件を変更する例を示す図である。図13の例では、ソフトウェア41のソフトウェア検出条件31には、レジストリ150内の設定値を用いた複数の条件が含まれている。1つ目の条件は、レジストリ150内の項目名「X」の設定値が「a」であることである。2つ目の条件は、レジストリ150内の項目名「Y」の設定値が「b」であることである。これらの条件が共に満たされた場合、ソフトウェア41が導入されていると判定される。
ここで、ソフトウェア検出条件31を用いてソフトウェア41を検出した後、次回のソフトウェア検出タイミングの前に、ソフトウェア41がバージョンアップされ、レジストリ150内の設定値が変更されたものとする。図13の例では、項目名「Y」の設定値が「b」から「c」に変更されている。この場合、ソフトウェア検出条件31によってソフトウェア41を検出しようとしても、2つ目の条件が満たされず検出できない。
端末装置100は、過去に検出できていたソフトウェア41が検出できない場合、検出に用いたソフトウェア検出条件31内の情報取得用要素の値を変更して、再度、検出を試みる。すると、レジストリ150内の項目名「Y」の設定値が「c」であるという条件にしたときに、2つ目の条件が満たされ、ソフトウェア41が導入されていると正しく判定される。
ソフトウェア41の検出に使用したソフトウェア検出条件31aは、管理サーバ200に送信され、管理サーバ200のソフトウェア辞書212に格納される。これにより、端末装置100におけるソフトウェア検出条件の生成結果が、管理サーバ200にフィードバックされる。
このように、端末装置100の環境が変化したことにより、ソフトウェア辞書122に定義されたソフトウェア検出条件31の値が異なるためにソフトウェア41が検出できなくなった場合、情報取得用要素を変更してソフトウェア41が検出される。その結果、ソフトウェアのバージョンアップなどの環境の変化とアンインストールとを区別し、ソフトウェア41の有無の判断の正確性を向上させることが可能となる。
図14は、環境に合わせたソフトウェア検出条件の生成例を示す図である。図14の例では、プラットフォームの異なる複数の端末装置100,100−1が示されている。これらの端末装置100,100−1は、OSの種別は同じであるが、バージョンが異なる。端末装置100に実装されているバージョンのOSでは、名称「ソフトウェアA」のソフトウェア41の環境設定における設定値が、レジストリ150に保持される。他方、端末装置100−1に実装されているバージョンのOSでは、ソフトウェア41と同種のソフトウェア44の環境設定における設定値は、レジストリ150−1以外に保持され、API160を用いて読み出すことができる。
このような場合において、管理サーバ200から各端末装置100,100−1にソフトウェア検出条件生成情報211が配布される。ソフトウェア検出条件生成情報211には、ソフトウェアの検出条件の複数の生成規則が含まれる。例えば構成ID「C0001」に対応する生成規則51と、構成ID「C0002」に対応する生成規則52とが、ソフトウェア検出条件生成情報211に含まれる。構成ID「C0001」に対応する生成規則51はOS_Aのバージョン7のシステムに適用でき、構成ID「C0002」に対応する生成規則52はOS_Aのバージョン8のシステムに適用できる(図8参照)。
端末装置100は、OS_Aのバージョン7のシステムである。そのため保持するソフトウェア検出条件生成情報121内の生成規則51,52のうち、構成ID「C0001」に対応する生成規則51を用いてソフトウェア検出条件31が生成される。生成されたソフトウェア検出条件31は、ソフトウェア辞書122に含められる。ソフトウェア検出条件31には、例えばレジストリ150内の設定値を検証することが示されている。図14の例では、レジストリ150内に正しい設定値が設定されているため、ソフトウェア41が導入されていることが正しく判断される。
端末装置100−1は、OS_Aのバージョン8のシステムである。そのため保持するソフトウェア検出条件生成情報121内の生成規則51,52のうち、構成ID「C0002」に対応する生成規則52を用いてソフトウェア検出条件34が生成される。生成されたソフトウェア検出条件34は、ソフトウェア辞書122に含められる。ソフトウェア検出条件34には、API160の復帰値を検証することが示されている。図14の例では、API160から正しい復帰値が得られるため、ソフトウェア44が導入されていることが正しく判断される。
このように、新プラットフォームの登場(新たなOS、またはアプリケーションの実行環境の追加)や、OSまたはソフトウェアの仕様変更などによりソフトウェア辞書122,122−1に新たなソフトウェア検出条件を追加しなければならない場合がある。このような場合、従来であれば、ソフトウェア検出条件と検出処理の双方を変更しなければならないが、第2の実施の形態では、ソフトウェア検出条件生成情報を用いてソフトウェア検出条件を自動生成できる。その結果、ソフトウェアの動作環境が大きく変更されても、正しくソフトウェアを検出することができる。
次に、ソフトウェア検出処理の手順について詳細に説明する。
図15は、ソフトウェア検出処理の手順の一例を示す図である。
[ステップS101]検出用情報送受信部110は、ソフトウェア辞書とソフトウェア検出条件生成情報とを、管理サーバ200から取得する。検出用情報送受信部110は、取得したソフトウェア辞書とソフトウェア検出条件生成情報とを、ソフトウェア検出情報記憶部120に格納する。
[ステップS102]ソフトウェア検出部140は、ソフトウェア辞書122内に、過去に生成したソフトウェア検出条件があるか否かを判断する。例えばソフトウェア検出条件生成部130は、検出ソフトウェア管理テーブル122aに、条件IDに対応付けられたソフトウェアが少なくとも1つ登録されていれば、過去に生成したソフトウェア検出条件があると判断する。過去に生成したソフトウェア検出条件がある場合、処理がステップS103に進められる。過去に生成したソフトウェア検出条件がなければ、処理がステップS113に進められる。
[ステップS103]ソフトウェア検出部140は、検出ソフトウェア管理テーブル122aに登録されている条件IDに対応するソフトウェア検出条件それぞれを処理対象として、ステップS104〜ステップS111の処理を行う。
[ステップS104]ソフトウェア検出部140は、処理対象のソフトウェア検出条件が満たされるか否かを判断する。例えばソフトウェア検出部140は、処理対象のソフトウェア検出条件の条件IDに対応する情報取得条件を、検出条件管理テーブル122bから抽出する。そしてソフトウェア検出部140は、抽出した情報取得条件それぞれに基づいて、情報の取得を試みる。ソフトウェア検出部140は、抽出した情報取得条件すべてについて、該当する情報を取得できた場合、処理対象のソフトウェア検出条件が満たされると判断する。ソフトウェア検出条件が満たされた場合、処理がステップS110に進められる。ソフトウェア検出条件が満たされない場合、処理がステップS105に進められる。
[ステップS105]ソフトウェア検出部140は、ステップS104で情報を取得できなかった情報取得条件の定義IDを特定し、その定義IDに対応する値を、設定値候補管理テーブル121bから抽出する。
[ステップS106]ソフトウェア検出部140は、抽出した値ごとに、ステップS107の処理を繰り返し実行する。
[ステップS107]ソフトウェア検出部140は、情報取得条件における、抽出した値の種別に対応する値を、抽出した値に変更して、その情報取得条件に応じた情報の検出処理を行う。
[ステップS108]ソフトウェア検出部140は、抽出したすべての値についてステップS107の処理が完了すると、処理をステップS109に進める。
[ステップS109]ソフトウェア検出部140は、処理対象のソフトウェア検出条件によりソフトウェアが検出できたか否かを判断する。ソフトウェアが検出できた場合、処理がステップS110に進められる。ソフトウェアが検出できなかった場合、処理がステップS111に進められる。なおソフトウェアの検出に成功した場合、ソフトウェア検出部140は、検出条件管理テーブル122b内の情報取得条件の値を、ソフトウェア検出成功時の値に更新する。
[ステップS110]ソフトウェア検出部140は、処理対象のソフトウェア検出条件によって検出したソフトウェアを、検出済みソフトウェアとして検出結果に追加する。例えばソフトウェア検出部140は、処理対象のソフトウェア検出条件の条件IDに対応付けて検出ソフトウェア管理テーブル122aに登録されている、ソフトウェアの名称とバージョンとに検出済みのフラグを付けて、検出結果に記録する。その後、処理がステップS112に進められる。
[ステップS111]ソフトウェア検出部140は、処理対象のソフトウェア検出条件で以前検出できていたソフトウェアを、未検出のソフトウェアとして検出結果に追加する。例えばソフトウェア検出部140は、処理対象のソフトウェア検出条件の条件IDに対応付けて検出ソフトウェア管理テーブル122aに登録されている、ソフトウェアの名称とバージョンとに未検出のフラグを付けて、検出結果に記録する。
[ステップS112]ソフトウェア検出部140は、ソフトウェア検出条件それぞれについての処理が終了すると、処理をステップS113に進める。
[ステップS113]ソフトウェア検出条件生成部130は、ソフトウェア検出条件の生成・適用処理を行う。この処理の詳細は後述する(図16参照)。
[ステップS114]検出用情報送受信部110は、生成した検出条件を管理サーバ200に通知する。例えば検出用情報送受信部110は、ソフトウェア検出条件生成部130により生成されたソフトウェア検出条件をソフトウェア辞書122から抽出し、管理サーバ200に送信する。また検出用情報送受信部110は、ステップS109において、情報取得条件の値を変更したソフトウェア検出条件がある場合、そのソフトウェア検出条件を、管理サーバ200に送信する。管理サーバ200では検出用情報管理部220がソフトウェア検出条件を受信し、ソフトウェア辞書212に格納する。
[ステップS115]ソフトウェア検出部140は、検出結果を、管理サーバ200に通知する。例えばソフトウェア検出部140は、検出ソフトウェアのリストと、未検出ソフトウェアのリストとを、管理サーバ200に送信する。
次に、ソフトウェア検出条件生成・適用処理について詳細に説明する。
図16は、ソフトウェア検出条件生成・適用処理の手順を示すフローチャートである。
[ステップS201]ソフトウェア検出条件生成部130は、ソフトウェア検出条件生成情報121から、端末装置100の環境に適合する条件定義の組み合わせ(生成規則)を抽出する。例えばソフトウェア検出条件生成部130は、構成管理テーブル121cから、端末装置100の環境に合致する構成IDに対応する定義IDを特定する。そしてソフトウェア検出条件生成部130は、条件定義管理テーブル121aから、特定した定義IDに対応する条件定義を抽出する。
[ステップS202]ソフトウェア検出条件生成部130は、ステップS201で抽出した組み合わせごとに、ステップS203からステップS205の処理を繰り返す。このように、環境に適合する条件定義の組み合わせに対してのみ処理を行うことで、端末装置100に適用できないソフトウェア検出条件の生成せずに済み、処理が効率化される。
[ステップS203]ソフトウェア検出条件生成部130は、組み合わせに含まれる条件定義それぞれについて、情報取得用要素に設定値の候補を設定し、情報の取得を試みる。設定値の候補は、設定値候補管理テーブル121bから取得できる。ソフトウェア検出条件生成部130は、1つの情報取得用要素について設定値の候補が複数ある場合、それぞれの候補を用いて、情報の取得を試みる。そしてソフトウェア検出条件生成部130は、各条件定義に関して、条件を充足する値を特定する。抽出した組み合わせのすべての条件定義に関し、条件を充足する値を特定できた場合、ソフトウェアが検出できたこととなる。
[ステップS204]ソフトウェア検出条件生成部130は、ソフトウェアが検出できたか否かを判断する。ソフトウェアが検出できた場合、処理がステップS205に進められる。ソフトウェアが検出できなければ、処理がステップS207に進められる。
[ステップS205]ソフトウェア検出条件生成部130は、ソフトウェアを検出したときの条件定義の設定値に基づくソフトウェア検出条件を、ソフトウェア辞書122に登録する。例えばソフトウェア検出条件生成部130は、新たな条件IDを生成し、検出ソフトウェア管理テーブル122aに登録する。そしてソフトウェア検出条件生成部130は、登録した条件IDに対応付けて、ステップS203の処理で取得したソフトウェアの名称とバージョンとを、検出ソフトウェア管理テーブル122aに登録する。さらにソフトウェア検出条件生成部130は、生成した条件IDに対応付けて、ソフトウェアを検出したときの条件定義の組み合わせの構成IDと、条件定義それぞれの定義IDとを、検出条件管理テーブル122bに設定する。そしてソフトウェア検出条件生成部130は、設定した定義IDに対応付けて、ソフトウェアの検出時に、その定義IDに対応する条件定義に設定した情報取得用要素の設定値を、検出条件管理テーブル122bに設定する。
[ステップS206]ソフトウェア検出部140は、ソフトウェア検出条件生成部130から、新たなソフトウェア検出条件によりソフトウェアが検出されたことの通知を受け、そのソフトウェアを検出済みソフトウェアとして、検出結果に追加する。なお検出されたソフトウェアが未検出ソフトウェアのリストに含まれていた場合、ソフトウェア検出部140は、該当リストから検出されたソフトウェアを削除する。
[ステップS207]ソフトウェア検出条件生成部130は、ステップS201で抽出した組み合わせすべてについて処理が完了すると、ソフトウェア検出条件生成・適用処理を終了する。
以上のようにして、環境の変化により、以前と同じソフトウェア検出条件では検出できなくなったソフトウェアであっても、別のソフトウェア検出条件を用いて検出することができる。その結果、ソフトウェアの検出精度が向上し、正しい検出結果を管理サーバ200に送信することができる。
また資産管理製品ベンダやユーザシステムの管理者が、個々のソフトウェアに対してソフトウェア検出条件を作成することなく、ソフトウェアを検出することが可能となる。これにより、管理者の作業負担が軽減される。
さらに管理サーバ200におけるソフトウェア辞書212を自動的に最新化することができる。その結果、管理サーバ200から、各端末装置100,100−1,100−2,・・・へ、最新のソフトウェア辞書を配信し、ソフトウェアの検出精度を高めることができる。
なお、端末装置100,100−1,100−2,・・・で生成したソフトウェア検出条件は、端末装置100,100−1,100−2,・・・内に保持され、繰り返し利用される。これにより、初回および環境変化があった場合を除き、端末装置100,100−1,100−2,・・・の性能を劣化させることなく、ソフトウェアを検出することが可能となる。
なお第2の実施の形態では、インベントリの収集対象を端末装置100,100−1,100−2,・・・としているが、サーバなどの他のコンピュータをインベントリの収集対象とすることもできる。その場合、インベントリの収集対象となるコンピュータに、図4に示した端末装置100と同様の機能が設けられる。また端末装置100,100−1,100−2,・・・には、携帯情報端末やタブレット端末も含まれる。さらに端末装置100,100−1,100−2,・・・は、仮想マシンであってもよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
10 情報処理装置
11 記憶部
11a,11b 生成規則
12 演算部
12a,12b 検出条件
13 ソフトウェア
14 レジストリ
15 API

Claims (6)

  1. コンピュータに、
    ソフトウェアの検出条件の複数の生成規則のいずれかに従って生成された第1の検出条件による過去の判定で、前記コンピュータに導入されていると判定された特定のソフトウェアについて、前記コンピュータへの導入の有無を、前記第1の検出条件によって判定し、
    前記特定のソフトウェアの導入の有無が前記第1の検出条件で判定できない場合、前記複数の生成規則それぞれに従って生成できる複数の検出条件のうちの、前記第1の検出条件とは別の第2の検出条件により、前記特定のソフトウェアの導入の有無を判定する、
    処理を実行させるソフトウェア導入判定プログラム。
  2. 前記コンピュータに、さらに、
    前記複数の生成規則に従って生成できる前記第2の検出条件のいずれにおいても前記特定のソフトウェアの導入の有無を判定できない場合、前記特定のソフトウェアが前記コンピュータから削除されたと判定する、
    処理を実行させる請求項1記載のソフトウェア導入判定プログラム。
  3. 前記第2の検出条件による判定では、前記第1の検出条件に含まれる値を、予め設定値候補として用意された他の値に変更した、前記第2の検出条件を生成する、
    請求項1または2記載のソフトウェア導入判定プログラム。
  4. 前記複数の生成規則それぞれは、ソフトウェアの動作環境に対応付けられており、
    前記第2の検出条件による判定では、前記コンピュータの判定時における動作環境に対応する生成規則に従って生成された前記第2の検出条件により判定する、
    請求項1乃至3のいずれかに記載のソフトウェア導入判定プログラム。
  5. コンピュータが、
    ソフトウェアの検出条件の複数の生成規則のいずれかに従って生成された第1の検出条件による過去の判定で、前記コンピュータに導入されていると判定された特定のソフトウェアについて、前記コンピュータへの導入の有無を、前記第1の検出条件によって判定し、
    前記特定のソフトウェアの導入の有無が前記第1の検出条件で判定できない場合、前記複数の生成規則それぞれに従って生成できる複数の検出条件のうちの、前記第1の検出条件とは別の第2の検出条件により、前記特定のソフトウェアの導入の有無を判定する、
    ソフトウェア導入判定方法。
  6. ソフトウェアの導入の有無を判定するソフトウェア導入判定装置であって、
    ソフトウェアの検出条件の複数の生成規則を記憶する記憶部と、
    前記複数の生成規則のいずれかに従って生成された第1の検出条件による過去の判定で、前記ソフトウェア導入判定装置に導入されていると判定された特定のソフトウェアについて、前記ソフトウェア導入判定装置への導入の有無を、前記第1の検出条件によって判定し、前記特定のソフトウェアの導入の有無が前記第1の検出条件で判定できない場合、前記複数の生成規則それぞれに従って生成できる複数の検出条件のうちの、前記第1の検出条件とは別の第2の検出条件により、前記特定のソフトウェアの導入の有無を判定する演算部と、
    を有するソフトウェア導入判定装置。
JP2015000772A 2015-01-06 2015-01-06 ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置 Active JP6369333B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015000772A JP6369333B2 (ja) 2015-01-06 2015-01-06 ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置
US14/977,727 US9985833B2 (en) 2015-01-06 2015-12-22 Method and apparatus for software detection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015000772A JP6369333B2 (ja) 2015-01-06 2015-01-06 ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置

Publications (2)

Publication Number Publication Date
JP2016126591A JP2016126591A (ja) 2016-07-11
JP6369333B2 true JP6369333B2 (ja) 2018-08-08

Family

ID=56287099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015000772A Active JP6369333B2 (ja) 2015-01-06 2015-01-06 ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置

Country Status (2)

Country Link
US (1) US9985833B2 (ja)
JP (1) JP6369333B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212770A (ja) * 1998-01-22 1999-08-06 Hitachi Ltd ソフトウェア情報収集方式
JP2004005413A (ja) 2002-03-25 2004-01-08 Sourcenext Corp ユーザサポートサーバ、構成認識システム、ユーザサポートシステム、構成認識方法及びユーザサポート方法
JP2005301465A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd ソフトウェア資産管理方法およびシステム
US8713157B2 (en) * 2008-11-14 2014-04-29 Interpret, Llc System for collecting computer application usage data of targeted application programs executed on a plurality of client devices
JP5772127B2 (ja) 2011-03-25 2015-09-02 富士通株式会社 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム
JP2013238938A (ja) * 2012-05-11 2013-11-28 Dainippon Printing Co Ltd ソフトウェア管理装置
US9766873B2 (en) * 2012-08-17 2017-09-19 Tripwire, Inc. Operating system patching and software update reconciliation
US20140379981A1 (en) * 2013-06-21 2014-12-25 International Business Machines Corporation Application discovery using storage system signatures

Also Published As

Publication number Publication date
US20160197814A1 (en) 2016-07-07
US9985833B2 (en) 2018-05-29
JP2016126591A (ja) 2016-07-11

Similar Documents

Publication Publication Date Title
US11093377B2 (en) Systems and methods for testing source code
US10310969B2 (en) Systems and methods for test prediction in continuous integration environments
US10503493B2 (en) Distributed versioning of applications using cloud-based systems
RU2419854C2 (ru) Основанное на шаблоне управление службами
US20180101371A1 (en) Deployment manager
US10732964B2 (en) Systems and methods for updating multi-tier cloud-based application stacks
US9170806B2 (en) Software discovery by an installer controller
US11055180B2 (en) Backup management of software environments in a distributed network environment
US11669599B2 (en) Systems and methods for software license management
US20130212574A1 (en) Sub-Device Discovery and Management
US20160335079A1 (en) Zero down-time deployment of new application versions
US9354862B2 (en) Apparatus and method for software information management
US20160124795A1 (en) Evaluation method and apparatus
US9851944B2 (en) Operation search method and operation search apparatus
KR20100002259A (ko) 관련된 제품 정보를 갖는 소프트웨어 카탈로그를 파퓰레이트하기 위한 방법 및 시스템
US8640209B2 (en) Authentication information change facility
US7860919B1 (en) Methods and apparatus assigning operations to agents based on versions
JP6642024B2 (ja) 管理装置,管理方法および管理プログラム
JP6075013B2 (ja) ログ取得プログラム、ログ取得装置及びログ取得方法
JP2017033079A (ja) ソフトウェア導入支援プログラム、ソフトウェア導入支援装置およびソフトウェア導入支援方法
JP6369333B2 (ja) ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置
US20170308686A1 (en) Authentication method and authentication device
US11157583B2 (en) Software detection based on user accounts
JP2015049743A (ja) 情報処理装置、情報処理方法、及びプログラム
JP7501782B2 (ja) 活動痕跡抽出装置、活動痕跡抽出方法および活動痕跡抽出プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180531

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180625

R150 Certificate of patent or registration of utility model

Ref document number: 6369333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150