(57)【要約】【課題】管理装置が、端末装置にインストールされたソフトウェアをソフトウェア辞書によらずに管理する。【解決手段】複数の端末装置３０は、各々、ソフトウェアが起動された履歴を管理装置１０に送信する。管理装置１０は端末装置３０にインストールされたソフトウェアに関するソフトウェア情報を有している。管理装置１０は、定期的に、サーバ２０に対しソフトウェア情報の問い合わせを行う。サーバ２０はソフトウェア情報を収集しており、最新のソフトウェア情報が記録されたデータベース２１１を有している。サーバ２０は、データベース２１１を参照して、問い合わせに対する回答を管理装置１０に送信する。管理装置１０は、この回答に応じて端末装置３０におけるソフトウェアの使用を管理する。【選択図】図６
2018036997.tif 000002
【特許請求の範囲】
【請求項１】
サーバと、
端末装置に接続され、当該端末装置にインストールされたソフトウェアを管理する管理装置と
を有し、
前記管理装置は、
前記端末装置から前記ソフトウェアに関連する関連情報を収集する収集手段と、
前記関連情報を用いて問い合わせ用のキーを生成する生成手段と、
前記生成手段により生成されたキーを含む問い合わせを前記サーバに送信する問い合わせ手段
を有し、
前記サーバは、
ソフトウェア情報のデータベースを記憶する記憶手段と、
前記管理装置から前記問い合わせを受信する問い合わせ受信手段と、
前記管理装置から受信した前記問い合わせに含まれる前記キーに対応するソフトウェア情報が前記データベースに記録されているか判断する判断手段と、
前記キーに対応するソフトウェア情報が前記データベースに記録されていると前記判断手段により判断された場合、当該ソフトウェア情報を前記管理装置に送信する送信手段と、
前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、当該ソフトウェア情報を収集する情報収集手段と、
前記情報収集手段により収集された情報を前記データベースに追加する追加手段と
を有し、
前記管理装置は、さらに、
前記サーバから前記ソフトウェア情報を受信する情報受信手段と、
前記情報受信手段により受信されたソフトウェア情報を用いて前記端末装置における前記ソフトウェアの使用権限を管理する管理手段と
を有するソフトウェア管理システム。
【請求項２】
前記収集手段は、前記端末装置において前記ソフトウェアが起動された履歴を前記関連情報として収集し、
前記問い合わせ手段は、前記履歴から抽出された情報を前記キーとして含む問い合わせを送信する
ことを特徴とする請求項１に記載のソフトウェア管理システム。
【請求項３】
前記収集手段は、前記ソフトウェアのインベントリ情報を前記関連情報として収集し、
前記問い合わせ手段は、前記インベントリ情報から抽出された情報を前記キーとして含む問い合わせを送信する
ことを特徴とする請求項１または２に記載のソフトウェア管理システム。
【請求項４】
前記管理手段は、前記使用権限に応じて前記ソフトウェアの使用を制限する
ことを特徴とする請求項１ないし３のいずれか一項に記載のソフトウェア管理システム。
【請求項５】
前記サーバは、ソフトウェアの安全性に関するレポートを前記管理装置に送信する
ことを特徴とする請求項１ないし４のいずれか一項に記載のソフトウェア管理システム。
【請求項６】
前記情報収集手段は、前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、当該ソフトウェア情報をロボット検索により収集し、
前記サーバは、前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、前記送信手段は、前記情報収集手段により収集された前記ソフトウェア情報を前記管理装置に送信する
ことを特徴とする請求項１ないし５のいずれか一項に記載のソフトウェア管理システム。
【請求項７】
端末装置に接続され、当該端末装置にインストールされたソフトウェアを管理する管理装置が、当該端末装置から前記ソフトウェアに関連する関連情報を収集するステップと、
前記管理装置が、前記関連情報を用いて問い合わせ用のキーを生成するステップと、
前記管理装置が、前記キーを含む問い合わせを、ソフトウェア情報のデータベースを記憶する記憶手段を有するサーバに送信するステップと、
前記サーバが、前記管理装置から前記問い合わせを受信するステップと、
前記サーバが、前記管理装置から受信した前記問い合わせに含まれる前記キーに対応するソフトウェア情報が前記データベースに記録されているか判断するステップと、
前記キーに対応するソフトウェア情報が前記データベースに記録されていると判断された場合、前記サーバが、当該ソフトウェア情報を前記管理装置に送信するステップと、
前記キーに対応するソフトウェア情報が前記データベースに記録されていないと判断された場合、前記サーバが、当該ソフトウェア情報を収集するステップと、
前記収集された情報を前記データベースに追加するステップと、
前記管理装置が、前記サーバから前記ソフトウェア情報を受信するステップと、
前記管理装置が、前記受信されたソフトウェア情報を用いて前記端末装置における前記ソフトウェアの使用権限を管理するステップと
を有するソフトウェア管理方法。
【請求項８】
ソフトウェアがインストールされた端末装置から当該ソフトウェアに関連する関連情報を収集する収集手段と、
前記関連情報を用いて問い合わせ用のキーを生成する生成手段と、
前記生成手段により生成されたキーを含む問い合わせをサーバに送信する問い合わせ手段と、
前記サーバから前記問い合わせに対応するソフトウェア情報を受信する情報受信手段と、
前記情報受信手段により受信されたソフトウェア情報を用いて前記端末装置における前記ソフトウェアの使用権限を管理する管理手段と
を有する管理装置。
【請求項９】
ソフトウェア情報のデータベースを記憶する記憶手段と、
管理装置からキーを含む問い合わせを受信する問い合わせ受信手段と、
前記管理装置から受信した前記問い合わせに含まれる前記キーに対応するソフトウェア情報が前記データベースに記録されているか判断する判断手段と、
前記キーに対応するソフトウェア情報が前記データベースに記録されていると前記判断手段により判断された場合、当該ソフトウェア情報を前記管理装置に送信する送信手段と、
前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、当該ソフトウェア情報を収集する情報収集手段と、
前記情報収集手段により収集された情報を前記データベースに追加する追加手段と
を有するサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末にインストールされたソフトウェアを管理する技術に関する。
【背景技術】
【０００２】
ソフトウェアのライセンス（使用権限）等の管理をする技術が知られている。例えば、特許文献１には、ソフトウェア辞書を用いてライセンス管理を行うシステムにおいて、端末装置から収集したインベントリ情報を名寄せすることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−４５６２７
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術においては、管理装置にソフトウェア辞書が記憶されている。しかし、特許文献１に記載のソフトウェア辞書は、管理装置が管理する端末装置にインストールされているソフトウェアの数と比して膨大な数のソフトウェアの情報を含んでいるという問題があった。
【０００５】
これに対し本発明は、管理装置が、端末装置にインストールされたソフトウェアをソフトウェア辞書によらずに管理する技術に関する。
【課題を解決するための手段】
【０００６】
本発明は、サーバと、端末装置に接続され、当該端末装置にインストールされたソフトウェアを管理する管理装置とを有し、前記管理装置は、前記端末装置から前記ソフトウェアに関連する関連情報を収集する収集手段と、前記関連情報を用いて問い合わせ用のキーを生成する生成手段と、前記生成手段により生成されたキーを含む問い合わせを前記サーバに送信する問い合わせ手段を有し、前記サーバは、ソフトウェア情報のデータベースを記憶する記憶手段と、前記管理装置から前記問い合わせを受信する問い合わせ受信手段と、前記管理装置から受信した前記問い合わせに含まれる前記キーに対応するソフトウェア情報が前記データベースに記録されているか判断する判断手段と、前記キーに対応するソフトウェア情報が前記データベースに記録されていると前記判断手段により判断された場合、当該ソフトウェア情報を前記管理装置に送信する送信手段と、前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、当該ソフトウェア情報を収集する情報収集手段と、前記情報収集手段により収集された情報を前記データベースに追加する追加手段とを有し、前記管理装置は、さらに、前記サーバから前記ソフトウェア情報を受信する情報受信手段と、前記情報受信手段により受信されたソフトウェア情報を用いて前記端末装置における前記ソフトウェアの使用権限を管理する管理手段とを有するソフトウェア管理システムを提供する。
【０００７】
前記収集手段は、前記端末装置において前記ソフトウェアが起動された履歴を前記関連情報として収集し、前記問い合わせ手段は、前記履歴から抽出された情報を前記キーとして含む問い合わせを送信してもよい。
【０００８】
前記収集手段は、前記ソフトウェアのインベントリ情報を前記関連情報として収集し、前記問い合わせ手段は、前記インベントリ情報から抽出された情報を前記キーとして含む問い合わせを送信してもよい。
【０００９】
前記管理手段は、前記使用権限に応じて前記ソフトウェアの使用を制限してもよい。
【００１０】
前記サーバは、ソフトウェアの安全性に関するレポートを前記管理装置に送信してもよい。
【００１１】
前記サーバは、前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、当該ソフトウェア情報をロボット検索により収集する情報収集手段を有し、前記サーバは、前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、前記送信手段は、前記情報収集手段により収集された前記ソフトウェア情報を前記管理装置に送信してもよい。
【００１２】
また、本発明は、端末装置に接続され、当該端末装置にインストールされたソフトウェアを管理する管理装置が、当該端末装置から前記ソフトウェアに関連する関連情報を収集するステップと、前記管理装置が、前記関連情報を用いて問い合わせ用のキーを生成するステップと、前記管理装置が、前記キーを含む問い合わせを、ソフトウェア情報のデータベースを記憶する記憶手段を有するサーバに送信するステップと、前記サーバが、前記管理装置から前記問い合わせを受信するステップと、前記サーバが、前記管理装置から受信した前記問い合わせに含まれる前記キーに対応するソフトウェア情報が前記データベースに記録されているか判断するステップと、前記キーに対応するソフトウェア情報が前記データベースに記録されていると判断された場合、前記サーバが、当該ソフトウェア情報を前記管理装置に送信するステップと、前記キーに対応するソフトウェア情報が前記データベースに記録されていないと判断された場合、前記サーバが、当該ソフトウェア情報を収集するステップと、前記収集された情報を前記データベースに追加するステップと、前記管理装置が、前記サーバから前記ソフトウェア情報を受信するステップと、前記管理装置が、前記受信されたソフトウェア情報を用いて前記端末装置における前記ソフトウェアの使用権限を管理するステップとを有するソフトウェア管理方法。
【００１３】
さらに、本発明は、ソフトウェアがインストールされた端末装置から当該ソフトウェアに関連する関連情報を収集する収集手段と、前記関連情報を用いて問い合わせ用のキーを生成する生成手段と、前記生成手段により生成されたキーを含む問い合わせをサーバに送信する問い合わせ手段と、前記サーバから前記問い合わせに対応するソフトウェア情報を受信する情報受信手段と、前記情報受信手段により受信されたソフトウェア情報を用いて前記端末装置における前記ソフトウェアの使用権限を管理する管理手段とを有する管理装置を提供する。
【００１４】
さらに、本発明は、ソフトウェア情報のデータベースを記憶する記憶手段と、管理装置からキーを含む問い合わせを受信する問い合わせ受信手段と、前記管理装置から受信した前記問い合わせに含まれる前記キーに対応するソフトウェア情報が前記データベースに記録されているか判断する判断手段と、前記キーに対応するソフトウェア情報が前記データベースに記録されていると前記判断手段により判断された場合、当該ソフトウェア情報を前記管理装置に送信する送信手段と、前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、当該ソフトウェア情報を収集する情報収集手段と、前記情報収集手段により収集された情報を前記データベースに追加する追加手段とを有するサーバを提供する。
【発明の効果】
【００１５】
本発明によれば、管理装置が、端末装置にインストールされたソフトウェアをソフトウェア辞書によらずに管理することができる。
【図面の簡単な説明】
【００１６】
【図１】一実施形態に係るソフトウェア管理システム１の構成を例示する図。
【図２】ソフトウェア管理システム１の機能構成を例示する図。
【図３】管理装置１０のハードウェア構成を例示する図。
【図４】サーバ２０のハードウェア構成を例示する図。
【図５】端末装置３０のハードウェア構成を例示する図。
【図６】端末装置３０の動作の概要を例示する図。
【図７】起動履歴の収集に係る動作を例示するシーケンスチャート。
【図８】起動履歴を例示する図。
【図９】関連情報を例示する図。
【図１０】ソフトウェア情報の問い合わせに係る動作を例示するシーケンスチャート。
【図１１】データベース２１１を例示する図。
【図１２】ソフトウェア情報の補完に係る動作を例示するシーケンスチャート。
【図１３】ソフトウェア管理情報を例示する図。
【図１４】データベースの更新に係る動作を例示するシーケンスチャート。
【発明を実施するための形態】
【００１７】
１．構成
図１は、一実施形態に係るソフトウェア管理システム１の構成を例示する図である。ソフトウェア管理システム１は、複数の端末装置３０に対するソフトウェア管理サービスを提供するためのシステムであり、管理装置１０およびサーバ２０を有する。ソフトウェア管理サービスとは、複数の端末装置３０にインストールされたソフトウェア資産を管理するサービスである。管理装置１０および複数の端末装置３０は、例えば、企業の事業所、学校、または役所等、限られた領域に閉じられたイントラネット等のネットワーク２に含まれる。端末装置３０には、アプリケーションプログラム等のソフトウェアがインストールされており、ユーザにより使用される。管理装置１０は、インターネット３を介してサーバ２０にアクセスする。管理装置１０は、複数の端末装置３０にインストールされるソフトウェアに関するソフトウェア情報を有するが、不足する情報はサーバ２０に問い合わせを行い、これを自動的に補完する。サーバ２０はいわゆるクラウド上に設けられたサーバであり、管理装置１０に対しソフトウェア情報を提供する。
【００１８】
なお、図１では図面を簡単にするために単一の管理装置１０のみを図示しているが、サーバ２０にアクセス可能な管理装置は複数存在してもよい。例えば、Ａ社のソフトウェア資産を管理するため管理装置とＢ社のソフトウェア資産を管理するための管理装置とが、それぞれ個別に設けられ、これら複数の管理装置が共通のサーバ２０にアクセスしてもよい。
【００１９】
図２は、ソフトウェア管理システム１の機能構成を例示する図である。ソフトウェア管理システム１は、記憶手段１１、関連情報収集手段１２、キー生成手段１４、問い合わせ手段１５、記憶手段２１、問い合わせ受信手段２２、判断手段２３、送信手段２４、情報収集手段２５、追加手段２６、情報受信手段１６、および管理手段１７を有する。このうち、記憶手段１１、関連情報収集手段１２、キー生成手段１４、問い合わせ手段１５、情報受信手段１６、および管理手段１７は管理装置１０に、他はサーバ２０に実装される。
【００２０】
記憶手段１１は、各種のデータ、この例では特に、ソフトウェア管理情報を記憶する。ソフトウェア管理情報は、複数の端末装置３０に現にインストールされているソフトウェアに関する情報であり、ソフトウェア資産管理に用いられる。関連情報収集手段１２は、端末装置３０にインストールされたソフトウェアに関連する情報（以下「関連情報」という）を収集する。関連情報は、端末装置３０において収集された情報であり、少なくともその一部が後述のソフトウェア情報を構成する。この例で、関連情報には、起動履歴およびインベントリ情報が含まれる。起動履歴とは、端末装置３０においてソフトウェアが起動された履歴を示す情報をいう。インベントリ情報とは、端末装置３０においてインストールされているソフトウェアに関する情報のうちソフトウェア資産管理に用いられる情報をいい、例えば、ソフトウェア名およびベンダー名等の複数項目の情報からなる、ソフトウェアを特定する情報を含む。インベントリ情報は、少なくともソフトウェア名およびソフトウェア種別を含むことが好ましい。キー生成手段１４は、関連情報収集手段１２により収集された関連情報を用いて、サーバ２０に問い合わせる際に用いられる問い合わせキーを生成する。問い合わせ手段１５は、キー生成手段１４により生成された問い合わせキーを含む問い合わせをサーバ２０に送信する。
【００２１】
記憶手段２１は、ソフトウェア情報のデータベース２１１を記憶する。ソフトウェア情報とは、ソフトウェアに関する情報をいい、例えば、ソフトウェア名、ベンダー名、バージョン情報、ソフトウェアの種別（フリーウェア、有償ソフトウェア、ドライバ、ユーティリティ等の区別）の別等の情報のうち少なくとも１つを含む。なお、ソフトウェア情報とは、ソフトウェアに関するあらゆる情報を包含する概念であり、関連情報とは、ソフトウェア情報のうち端末装置３０において収集される情報をいう。問い合わせ受信手段２２は、管理装置１０から問い合わせを受信する。判断手段２３は、管理装置１０から受信した問い合わせに含まれる問い合わせキーに対応するソフトウェア情報がデータベース２１１に記録されているか判断する。問い合わせキーに対応するソフトウェア情報がデータベース２１１に記録されていると判断手段２３により判断された場合、送信手段２４は、そのソフトウェア情報を管理装置１０に送信する。また、問い合わせキーに対応するソフトウェア情報がデータベース２１１に記録されていないと判断手段２３により判断された場合、送信手段２４は、その旨を管理装置１０に送信する。問い合わせキーに対応するソフトウェア情報がデータベース２１１に記録されていないと判断手段２３により判断された場合、情報収集手段２５は、そのソフトウェア情報を収集する。追加手段２６は、情報収集手段２５により収集された情報をデータベース２１１に追加する。
【００２２】
情報受信手段１６は、サーバ２０からソフトウェア情報を受信する。管理手段１７は、情報受信手段１６により受信されたソフトウェア情報を用いて端末装置３０におけるソフトウェアの使用権限を管理する。
【００２３】
この例ではさらに、複数の端末装置３０の各々が、記憶手段３１、監視手段３２、送信手段３３、使用制限手段３４、およびインベントリ情報収集手段３５を有する。記憶手段３１は、各種のデータを記憶する。監視手段３２は、端末装置３０におけるソフトウェアの起動を監視する。監視手段３２は、端末装置３０において起動されたソフトウェアを特定する情報を記憶手段３１に記憶させる。こうして記憶手段３１は、端末装置３０におけるソフトウェアの起動履歴を記憶する。送信手段３３は、記憶手段３１に記憶されている起動履歴を管理装置１０に送信する。インベントリ情報収集手段３５は、端末装置３０にインストールされているソフトウェアのインベントリ情報を収集する。送信手段３３は、インベントリ情報収集手段３５により収集されたインベントリ情報を管理装置１０に送信する。
【００２４】
サーバ２０の管理手段１７は、使用を制限するソフトウェアを特定する情報を端末装置３０に送信する。端末装置３０の使用制限手段３４は、この情報により特定されるソフトウェアの使用を制限する。
【００２５】
図３は、管理装置１０のハードウェア構成を例示する図である。管理装置１０は、ＣＰＵ（Central Processing Unit）１０１、メモリ１０２、ストレージ１０３、ネットワークＩＦ１０４、表示装置１０５、および入力装置１０６を有するコンピュータ装置である。ＣＰＵ１０１は、管理装置１０の他のハードウェア要素を制御するための演算を行うプロセッサ（制御装置）である。メモリ１０２は、ＣＰＵ１０１がプログラムを実行する際のワークエリアとして機能する記憶装置であり、例えばＲＡＭ（Random Access Memory）を含む。ストレージ１０３は、各種のデータおよびプログラムを記憶する不揮発性の記憶装置であり、例えばＨＤＤ（Hard Disk Drive）またはＳＳＤ（Solid State Drive）を含む。ネットワークＩＦ１０４は、所定の通信規格に従って他の装置と通信するためのインターフェースである。表示装置１０５は、情報を表示する装置であり、例えばＬＣＤ（Liquid Crystal Display）を含む。入力装置１０６は、ＣＰＵ１０１に情報を入力する装置であり、例えばキーボードまたはタッチスクリーンを含む。この例で、ストレージ１０３はコンピュータ装置をソフトウェア管理システム１における管理装置１０として機能させるためのプログラム（以下「管理プログラム」という）を記憶している。ＣＰＵ１０１が管理プログラムを実行することにより、コンピュータ装置に管理装置１０としての機能が実装される。管理プログラムを実行しているＣＰＵ１０１は、関連情報収集手段１２、キー生成手段１４、問い合わせ手段１５、情報受信手段１６、および管理手段１７の一例である。メモリ１０２およびストレージ１０３の少なくとも一方は、記憶手段１１の一例である。
【００２６】
図４は、サーバ２０のハードウェア構成を例示する図である。サーバ２０は、ＣＰＵ２０１、メモリ２０２、ストレージ２０３、およびネットワークＩＦ２０４を有するコンピュータ装置である。各ハードウェア要素の詳細は管理装置１０と同様である。この例で、ストレージ２０３はコンピュータ装置をソフトウェア管理システム１におけるサーバ２０として機能させるためのプログラム（以下「サーバプログラム」という）を記憶している。ＣＰＵ２０１がサーバプログラムを実行することにより、コンピュータ装置にサーバ２０としての機能が実装される。サーバプログラムを実行しているＣＰＵ２０１は、問い合わせ受信手段２２、判断手段２３、送信手段２４、情報収集手段２５、および追加手段２６の一例である。メモリ２０２およびストレージ２０３の少なくとも一方は、記憶手段２１の一例である。
【００２７】
図５は、端末装置３０のハードウェア構成を例示する図である。端末装置３０は、ＣＰＵ３０１、メモリ３０２、ストレージ３０３、ネットワークＩＦ３０４、表示装置３０５、および入力装置３０６を有するコンピュータ装置である。各ハードウェア要素の詳細は管理装置１０と同様である。端末装置３０はユーザにより使用されるコンピュータ装置で、アプリケーションプログラムおよびドライバ等、各種のソフトウェアがインストールされる。ユーザはこれらのソフトウェアを使用する。
【００２８】
この例で、ストレージ３０３はコンピュータ装置をソフトウェア管理システム１における端末装置３０として機能させるためのプログラムを記憶している。以下このプログラムを「監視エージェントプログラム」といい、このプログラムにより実装されるアプリケーションを「監視エージェント」という。ＣＰＵ３０１が監視エージェントプログラムを実行することにより、コンピュータ装置に端末装置３０としての機能が実装される。監視エージェントプログラムを実行しているＣＰＵ３０１は、監視手段３２、送信手段３３、使用制限手段３４、およびインベントリ情報収集手段３５の一例である。メモリ３０２およびストレージ３０３の少なくとも一方は、記憶手段３１の一例である。
【００２９】
２．動作
図６は、ソフトウェア管理システム１の動作の概要を例示する図である。複数の端末装置３０は、各々、ソフトウェアの関連情報を管理装置１０に送信する。管理装置１０は端末装置３０にインストールされたソフトウェアに関するソフトウェア情報を有している。管理装置１０は、定期的に、サーバ２０に対しソフトウェア情報の問い合わせを行う。サーバ２０はソフトウェア情報を収集しており、最新のソフトウェア情報が記録されたデータベース２１１を有している。サーバ２０は、データベース２１１を参照して、問い合わせに対する回答を管理装置１０に送信する。管理装置１０は、この回答に応じて端末装置３０におけるソフトウェアの使用を管理する。
【００３０】
２−１．関連情報の収集
図７は、ソフトウェア管理システム１における関連情報の収集に係る動作を例示するシーケンスチャートである。図７のシーケンスは、例えば、監視エージェントプログラムが起動されたことを契機として開始される。なお以下においては、監視手段３２等の機能要素が処理の主体として記載されるが、これは、監視エージェントプログラム等のソフトウェアを実行するＣＰＵ３０１等のハードウェア資源が他のハードウェア資源と協働して処理を実行することを意味する。端末装置３０以外の他の装置についても同様である。関連情報の収集には、起動履歴の収集およびインベントリ情報の収集が含まれる。この例では、これら２つの処理はそれぞれ独立して行われる。
【００３１】
端末装置３０において監視エージェントはバックグラウンドで実行され、システムに常駐する。ステップＳ１１において、監視手段３２は、ソフトウェアが起動されたか判断する。監視手段３２がソフトウェアの起動を判断する方法は例えば以下のとおりである。ＯＳに実装された機能またはＡＰＩ（Application Programming Interface）には、実行中のプログラム一覧を出力するものがある。監視手段３２は、この機能またはＡＰＩを呼び出し、実行中のプログラム一覧を定期的に取得する。監視手段３２は、あるタイミングで取得されたプログラム一覧を、その前に取得されたプログラム一覧と比較することにより、両者の差分から、プログラムの起動または終了を検知する。あるいは、監視手段３２は、新たなプログラムが起動されたときに通知を出力するＡＰＩを利用し、この通知に基づいてソフトウェアの起動を検知する。ソフトウェアが起動されたと判断された場合、監視手段３２は、起動されたソフトウェアを特定する情報を取得する（ステップＳ１２）。起動されたソフトウェアを特定する情報としては、例えば、そのソフトウェアの実行ファイル名が用いられる。監視手段３２は、起動されたソフトウェアの実行ファイル名を、起動された時刻（タイムスタンプ）と共に記憶手段３１に書き込む（ステップＳ１３）。監視エージェントが常駐しているので、監視手段３２は、何らかのソフトウェアが起動される度に、そのソフトウェアの実行フィル名およびタイムスタンプを記憶手段３１に記憶させる。こうして、記憶手段３１に起動履歴が記憶される。
【００３２】
図８は、記憶手段３１に記憶される起動履歴を例示する図である。起動履歴は、タイムスタンプおよび実行ファイル名を含む。例えば、第１行の情報は、「abc-xyz.exe」という実行ファイルが２０１６年８月１５日９時５分に起動されたことを示す。また、起動履歴はさらに、管理装置１０に送信済であるか未送信であるかを示すフラグ（以下「送信済フラグ」という）を含んでいる。記憶手段３１に新たに書き込まれた起動履歴に対する送信済フラグの初期値は「未送信」である。この例の送信済フラグによると、例えば、２０１６年８月１５日９時５分に「abc-xyz.exe」が起動されたことはまだ管理装置１０に送信されていない。
【００３３】
再び図７を参照する。ステップＳ１４において、送信手段３３は、起動履歴の送信条件が満たされたか判断する。起動履歴の送信条件は、例えば、前回の起動履歴の送信から所定の時間が経過したという条件、または、新たに取得された起動履歴に不明な実行ファイルの情報が含まれていたという条件である。送信条件が満たされたと判断された場合、送信手段３３は、記憶手段３１に記憶されている起動履歴のうち、未送信の履歴に端末装置３０の識別情報を付加して管理装置１０に送信する（ステップＳ１５）。履歴を送信すると、送信手段３３は、送信した履歴の送信済フラグの値を「送信済」に書き替える。
【００３４】
ステップＳ１６において、インベントリ情報収集手段３５は、インベントリ情報収集の開始条件が満たされたか判断する。インベントリ情報収集の開始条件は、例えば、前回のインベントリ情報の収集から所定の時間（この「所定の時間」は起動履歴の送信条件の「所定の時間」とは独立に定められる）が経過したという条件である。あるいは、インベントリ情報収集の開始条件は、起動履歴の送信条件と同じであってもよい。開始条件が満たされたと判断された場合、インベントリ情報収集手段３５は、インベントリ情報を収集する（ステップＳ１７）。インベントリ情報の収集は、例えば、レジストリの検索、ＯＳのインベントリ情報収集機能、インベントリ情報を収集するＡＰＩ、およびファイル検索機能のうち少なくとも１つを用いて行われる。インベントリ情報収集手段３５は、収集したインベントリ情報を送信手段３３に出力する。なお、インベントリ情報収集手段３５は、インベントリ情報の過去の履歴を保持し、新たに収集したインベントリ情報のうち過去のインベントリ情報の差分だけを送信手段３３に出力してもよい。送信手段３３は、インベントリ情報を管理装置１０に送信する（ステップＳ１８）。
【００３５】
管理装置１０の関連情報収集手段１２は、端末装置３０から受信した関連情報を記憶手段１１に書き込む（ステップＳ１９）。こうして関連情報収集手段１２は、複数の端末装置３０から関連情報を収集する。なお、この時点において、起動履歴とインベントリ情報とは関連付けられておらず、互いに独立した情報として記憶手段１１に記憶される。
【００３６】
図９は、記憶手段１１に記憶される関連情報を例示する図である。関連情報は大きく起動履歴とインベントリ情報とに区分されており、この両者は互いに独立している。また、関連情報の各々には、その関連情報が収集された端末装置３０の識別子、および後述する問い合わせが完了しているか否かを示すフラグ（以下「問い合わせ済フラグ」という）が対応付けられる。問い合わせ済フラグ初期値は「未済」である。の図９の例では、実行ファイル名「abc-xyz.exe」の起動履歴についてはまだ問い合わせが完了しておらず、ソフトウェア名「ＡｃａｈＬ」のインベントリ情報については問い合わせが完了している。
【００３７】
２−２．ソフトウェア情報の問い合わせ
図１０は、ソフトウェア管理システム１におけるソフトウェア情報の問い合わせに係る動作を例示するシーケンスチャートである。ステップＳ２２において、問い合わせ手段１５は、問い合わせ条件が満たされたか判断する。問い合わせ条件は、例えば、前回、問い合わせを行ってから所定の時間が経過したという条件である。問い合わせ条件が満たされたと判断された場合、問い合わせ手段は、問い合わせキーの生成をキー生成手段１４に依頼する（ステップＳ２３）。この依頼を受けると、キー生成手段１４は、問い合わせキーを生成する（ステップＳ２４）。具体的には、キー生成手段１４は、関連情報収集手段１２により収集された関連情報のうち、対象となる関連情報を用いて問い合わせキーを生成する。対象となる関連情報とは、例えば、記憶手段１１に記憶されている関連情報のうち問い合わせ済フラグの値が「未済」である関連情報である。別の例で、対象となる関連情報は、問い合わせ済フラグの値が「未済」である関連情報のうち、記憶手段１１に記憶されているソフトウェア管理情報との関係が不明な情報（すなわちソフトウェア管理情報に含まれていない新しい情報）であってもよい。関連情報収集手段１２は、例えば、関連情報から一部の情報を抽出し、抽出した情報を含む問い合わせキーを生成する。関連情報から抽出される一部の情報とは、対象となる関連情報が起動履歴である場合には実行ファイル名であり、対象となる関連情報がインベントリ情報である場合には複数の項目のうち所定の項目（例えば、ソフトウェア名およびバージョン情報）である。問い合わせ手段１５は、キー生成手段１４により生成された問い合わせキーを含む問い合わせをサーバ２０に送信する（ステップＳ２５）。サーバ２０に送信される問い合わせは、問い合わせキーの生成元となった項目（例えば、実行ファイル名、ソフトウェア名、またはバージョン情報）を特定する情報を含む。
【００３８】
サーバ２０の問い合わせ受信手段２２は、管理装置１０から問い合わせを受信する（ステップＳ２６）。判断手段２３は、問い合わせ受信手段２２により受信された問い合わせキーに対応するソフトウェア情報がデータベース２１１に記憶されているか判断する（ステップＳ２７）。
【００３９】
図１１は、データベース２１１を例示する図である。データベース２１１は、ソフトウェア管理サービスの提供者によって管理される。データベース２１１は、ソフトウェア毎に、実行ファイル名、ソフトウェア名、ベンダー名、エイリアス、バージョン情報、エディション情報、ソフトウェア種別、および注意情報を含む。ソフトウェア名は、そのソフトウェアの名称を示す。ソフトウェア名はベンダーにより付与されるものであるので、あるベンダーはソフトウェア名にバージョン情報も含めて命名し、別のベンダーはバージョン情報を含まない純粋な名称をソフトウェア名として命名するというように、命名方法に厳格な規則は無い。ベンダー名は、そのソフトウェアを提供するベンダーの名称を示す。エイリアスは、システム上で表記されるそのソフトウェアの名称を示す。バージョン情報は、そのソフトウェアのバージョンを示す。エディション情報は、そのソフトウェアのエディションを示す。なお、ソフトウェアのバージョンまたはエディションが定義されていない場合、またはバージョンまたはエディションがソフトウェア名に含まれている場合、バージョン情報およびエディション情報は空の値（図の例では「−」）を有する場合がある。ソフトウェア種別は、ソフトウェアの種別を示す。
【００４０】
再び図１０を参照する。問い合わせキーに対応するソフトウェア情報がデータベース２１１に記憶されていると判断された場合、送信手段２４は、データベース２１１から問い合わせキーに対応するソフトウェア情報を読み出し、読み出したソフトウェア情報を管理装置１０に送信する（ステップＳ２８）。例えば、関連情報として実行ファイル名「abc-xyz.exe」という情報を含む問い合わせキーが受信された場合、送信手段２４は、データベース２１１において実行ファイル名が「abc-xyz.exe」であるレコードを検索する。図１１の例ではこのレコードが存在するので、送信手段２４は、データベース２１１からこのレコードを読み出し、管理装置１０に送信する。なお、問い合わせキーを含むレコードが複数存在する場合、送信手段２４は、問い合わせキーを含む全てのレコードを管理装置１０に送信する。
【００４１】
問い合わせキーに対応するソフトウェア情報がデータベース２１１に記憶されていないと判断された場合、送信手段２４は、ソフトウェア情報が不明である旨の通知を管理装置１０に送信する（ステップＳ２９）。例えば、関連情報として実行ファイル名「hogehogesoft.exe」という情報を含む問い合わせキーが受信された場合、送信手段２４は、データベース２１１において実行ファイル名が「hogehogesoft.exe」であるレコードを検索する。図１１の例ではこのレコードが存在しないので、送信手段２４は、ソフトウェア情報が不明である旨の通知を管理装置１０に送信する。問い合わせキーに対応するソフトウェア情報がデータベース２１１に記憶されていないと判断された場合、さらに、情報収集手段２５がソフトウェア情報を収集するが、この処理については後述する。
【００４２】
なおこの例では、問い合わせキーは、ある管理装置１０が管理している端末装置３０にインストールされている全てのソフトウェアに関するインベントリ情報を含む。例えば、複数の端末装置３０に合計で１００種類のソフトウェアがインストールされている場合、問い合わせキーは、１００種類のインベントリ情報を含む。問い合わせキーは、新規にインストールされたソフトウェアだけでなく、従来から継続してインストールされているソフトウェアのインベントリ情報も含む。
【００４３】
この例では、端末装置３０において監視エージェントを常駐させておき、監視エージェントが管理装置１０に対し起動履歴を送信する。複数の端末装置３０に異なる種類のＯＳ（Operating System）が搭載されている場合であっても、その端末のＯＳで動作する監視エージェントをインストールしておけば、管理装置１０においてソフトウェア資産を一元管理することができる。
【００４４】
２−３．ソフトウェア情報の補完
図１２は、ソフトウェア管理システム１におけるソフトウェア情報の補完に係る動作を例示するシーケンスチャートである。ステップＳ３１において、情報受信手段１６は、サーバ２０からソフトウェア情報を受信する。情報受信手段１６は、サーバ２０から受信したソフトウェア情報を用いて、記憶手段１１に記憶されているソフトウェア管理情報を更新する（ステップＳ３２）。具体的には、前回の問い合わせ時には無かったソフトウェアが新たにインストールされた場合、そのソフトウェアのソフトウェア情報がソフトウェア管理情報に追加される。前回の問い合わせ時から存在していたソフトウェアについては、情報受信手段１６は、ステップＳ３１で受信したソフトウェア情報と、記憶手段１１に記憶されているソフトウェア管理情報に含まれるソフトウェア情報とを比較し、両者が異なっている場合は記憶手段１１に記憶されているソフトウェア情報を、受信したソフトウェア情報で上書きする。
【００４５】
なおこの段階で、起動履歴とインベントリ情報とが結果的に統合される。例えば端末装置３０に、実行ファイル名「abc-xyz.exe」およびソフトウェア名「ABC player 10」という関連情報を有するソフトウェアが新たにインストールされた場合、このソフトウェアに関連して、実行ファイル名「abc-xyz.exe」を含む問い合わせキーと、ソフトウェア名「ABC player 10」を含む問い合わせキーとが独立して生成および送信される（すなわち２つの問い合わせキーが送信される）。これら２つの問い合わせキーに対して得られるソフトウェア情報はまったく同一である。情報受信手段１６は、単一の端末装置３０からの複数の問い合わせキーに対して同一のソフトウェア情報が得られた場合には、これら複数の問い合わせキーは同一のソフトウェアに関連するものであるとして処理する。
【００４６】
ある種のソフトウェアにおいては、バージョンが更新されても実行ファイル名が不変のものがある。図１１の例では、「ABC player」というソフトウェアは、バージョン９もバージョン１０も実行ファイル名は「abc-xyz.exe」で共通である。実行ファイル名「abc-xyz.exe」を問い合わせキーとして含む問い合わせに対しては、バージョン９のソフトウェア情報およびバージョン１０のソフトウェア情報が送信され、これだけではどちらのバージョンがインストールされているのか不明である。しかし、ソフトウェア名およびバージョン情報を問い合わせキーとして含む問い合わせに対しては、正しいバージョンのソフトウェア情報のみが送信される。情報受信手段１６は、これら２つの情報を照合することによって実行ファイル名「abc-xyz.exe」のソフトウェアがどのバージョンのものか特定することができる。
【００４７】
図１３は、記憶手段１１に記憶されるソフトウェア管理情報を例示する図である。この例で、ソフトウェア管理情報は、端末装置３０の識別情報、ソフトウェア情報、およびライセンス管理情報を含む。ライセンス管理情報は、使用権限を示す。使用権限は、例えば有償ソフトウェアにおいて、ベンダーから受けた使用許諾の有無に関する情報を含む。この例では、ライセンス管理情報は、ユーザとベンダーとの間の使用許諾契約を特定するライセンス番号を含む。ライセンス管理情報は、例えば、複数の端末装置３０の各々から取得される。例えば、ライセンス番号がレジストリに登録されているアプリケーションについては、監視エージェントプログラムがレジストリを検索し、そのアプリケーションのライセンス番号を抽出する。監視エージェントプログラムは、抽出されたライセンス番号を管理装置１０に送信する。あるいは、ネットワーク２の管理者が何らかの方法で各アプリケーションのライセンス番号を取得し、管理装置１０においてライセンス番号等のライセンス管理情報を入力してもよい。
【００４８】
再び図１２を参照する。管理手段１７は、情報受信手段１６により受信されたソフトウェア情報を用いて端末装置３０におけるソフトウェアの使用権限を管理する（ステップＳ３３）。具体的には、管理手段１７は、ネットワーク２の管理者の要求に応じてソフトウェア管理情報を表示する。ソフトウェア管理情報によれば、ネットワーク２の管理者は、ネットワーク２において、どの端末装置３０にどのソフトウェアがインストールされ、さらにそのソフトウェアが適正に使用許諾されたものであるかどうか、容易に確認することができる。また、従来知られている、ソフトウェア辞書を用いたソフトウェア資産管理においては、ソフトウェア辞書は、端末装置３０に現にインストールされているか否かにかかわらず多くのソフトウェアのソフトウェア情報を広く収録したものであり、例えば数十万件のソフトウェア情報を含んでいた。例えばソフトウェア辞書が３０万件のソフトウェア情報を含んでいたとして、ネットワーク２の端末装置３０にインストールされているソフトウェアが合計で１０００種類であるとすると、２９万９千件のソフトウェア情報は使用されないままである。このような膨大なソフトウェア情報が記録されたソフトウェア辞書を用いるとコンピュータ資源を大きく消費する。しかし、本実施形態において記憶手段１１に記憶されるソフトウェア管理情報は、複数の端末装置３０において現にインストールされているソフトウェアのソフトウェア情報だけであるのでコンピュータ資源の消費を低減することができる。
【００４９】
例えば、ライセンス管理情報が不明なソフトウェアが検知された場合、管理手段１７は、そのソフトウェアおよびそのソフトウェアがインストールされている端末装置３０を特定する情報をネットワーク２の管理者に通知する。別の例で、管理手段１７は、ライセンス管理情報が不明なソフトウェアがインストールされている端末装置３０に対して、そのソフトウェアの使用を制限する指示を送信する。この指示を受信すると、端末装置３０の使用制限手段３４は、指示されたソフトウェアの起動を制限する。使用制限手段３４は、ＯＳまたはＡＰＩの、プログラムの起動を禁止する機能または実行中のプログラムを強制終了する機能を呼び出すことによって、指示されたソフトウェアの起動を制限する。この例によれば、ソフトウェアの不正な使用を抑制することができる。
【００５０】
２−４．データベースの更新
図１４は、ソフトウェア管理システム１におけるデータベースの更新に係る動作を例示するシーケンスチャートである。図１４のシーケンスは、例えば、ステップＳ２７において問い合わせキーに対応するソフトウェア情報がデータベース２１１に記憶されていないと判断されたことを契機として開始される。あるいは、図１４のシーケンスは、所定のタイミングで定期的に（例えば１日１回）、自動的に開始されてもよい。
【００５１】
ステップＳ４１において、情報収集手段２５は、対応するソフトウェア情報が不明な問い合わせキーについて、ソフトウェア情報を収集する。ソフトウェア情報を収集する手法の具体例としては、例えばロボット検索がある。すなわち、情報収集手段２５は、インターネット上の検索エンジン（図示略）に対し、対応するソフトウェア情報が不明な問い合わせキー（関連情報）を検索キーとして検索クエリを送信する。情報収集手段２５は、検索エンジンから、この検索クエリに対する応答を受信する。情報収集手段２５は、所定のアルゴリズムにより、受信した応答の中からソフトウェア情報を抽出する。別の例で、情報収集手段２５は、オペレーターにソフトウェア情報の入力を促すための画面を表示する。ソフトウェア管理サービスの提供事業者のオペレーターは、この画面を介してソフトウェア情報を入力する。情報収集手段２５は、ユーザの入力を受け付け、ソフトウェア情報を収集する。
【００５２】
ステップＳ４２において、追加手段２６は、情報収集手段２５により収集されたソフトウェア情報を、問題の問い合わせキーに対応するソフトウェア情報としてデータベース２１１に追加する。この例によれば、端末装置３０にインストールされているソフトウェアのソフトウェア情報が不明である場合には、サーバ２０においてソフトウェア情報が収集され、データベース２１１が更新される。管理装置１０はサーバ２０に対する問い合わせを定期的に送信するので、問題の問い合わせキーを最初に送信したときには対応するソフトウェア情報がデータベース２１１に記録されていなくても、次回以降に問い合わせをしたときには、データベース２１１が更新され、対応するソフトウェア情報がデータベース２１１に記録されていることが期待される。
【００５３】
また、既に説明したように、本実施形態のサーバ２０は、複数の管理装置（例えばＡ社の管理装置およびＢ社の管理装置）からアクセスが可能である。すなわち、ある管理装置からの問い合わせに応じて収集されたソフトウェア情報を、別の管理装置からの問い合わせに対して流用することができる。例えば、新規に販売されたソフトウェアについて、最初にＡ社の管理装置から問い合わせがあったとき、データベース２１１にはまだこのソフトウェアのソフトウェア情報が無いのでＡ社の管理装置に対してはその旨が通知される。この問い合わせを契機として、サーバ２０はこの新規なソフトウェアのソフトウェア情報を収集し、データベース２１１に追加する。その後、Ｂ社の管理装置からこのソフトウェアについて問い合わせがあると、データベース２１１にはＡ社の管理装置からの問い合わせに応じて既にこのソフトウェアのソフトウェア情報が記録されている。したがって、Ｂ社の問い合わせに対してサーバ２０はこのソフトウェアのソフトウェア情報を送信することができる。
【００５４】
さらに、従来知られている、ローカル環境にソフトウェア辞書を保持するソフトウェア資産管理においては、ソフトウェア辞書を最新の状態に保つには、ソフトウェア辞書の更新を定期的にチェックし、更新があった場合にはソフトウェア辞書をインポートし直すなどのメンテナンスが必要であった。これに対し本実施形態に係るソフトウェア管理システム１においては、データベース２１１がオンライン上にあり、管理装置１０はデータベース２１１から必要なソフトウェア情報だけを受信するので、このようなメンテナンスは不要である。また、既に説明したように、従来のソフトウェア辞書は例えば数十万件のソフトウェア情報を含んでおり、これを更新するにはコンピュータ資源を多く消費し、時間もかかる。これに対し、管理装置１０はデータベース２１１から現にインストールされているソフトウェア情報だけを受信するので、使用するコンピュータ資源および時間を低減することができる。
【００５５】
３．変形例
本発明は上述の実施形態に限定されるものではなく、種々の変型実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【００５６】
３−１．変形例１
管理装置１０の関連情報収集手段１２がインベントリ情報を収集する方法は実施形態で例示したものに限定されない。関連情報収集手段１２を介してインベントリ情報を取得する方法に加えて、または代えて他の方法が用いられてもよい。例えば、端末装置３０からインベントリ情報を管理装置１０に送信する場合において、監視エージェントを端末装置３０に常駐させるのではなく、管理装置１０からリモートでインベントリ情報を収集してもよいし、端末装置３０において一時的にプログラムを動かし、インベントリ情報を収集してもよい。
【００５７】
３−２．変形例２
管理装置１０は、特定のソフトウェアについてはサーバ２０への問い合わせを行わなくてもよい。例えば、自社で独自開発した未公開のソフトウェア等、その存在を他社に知られたくないソフトウェアが端末装置３０にインストールされていることがある。このような場合、管理装置１０は、問い合わせから除外するソフトウェアの一覧を有し、その一覧に含まれるソフトウェアに関しては問い合わせを行わなくてもよい。
【００５８】
３−３．変形例３
データベース２１１に記録される情報は実施形態で例示したものに限定されない。データベース２１１は、実施形態で例示した情報に加えて、またはその一部に代えて、ソフトウェアの安全性に関する情報（レポート）を含んでいてもよい。ソフトウェアの安全性に関する情報とは、例えば、セキュリティ上の脆弱性の有無を示す情報、またはそのソフトウェアが悪意ある者によって作成されたものであることを示す情報である。サーバ２０からこのようなソフトウェア情報を受信した場合、管理装置１０の管理手段１７は、安全性に問題のあるソフトウェアが端末装置３０にインストールされていることをネットワーク２の管理者に通知する。あるいは、管理手段１７は、端末装置３０のそのソフトウェアの使用を禁止するよう、使用制限手段３４に指示をする。
【００５９】
なお、データベース２１１はクラウド上のサーバ２０に設けられているので、データベースに記録される項目はソフトウェア管理サービスの管理者が任意に追加または削除することができる。サーバ２０は、データベース２１１に種々のソフトウェア情報を記録しておき、問い合わせに応じてそれを管理装置１０に送信する。管理装置１０は、受信したソフトウェア情報から必要な情報を取捨選択することができる。例えば、従来知られているソフトウェア辞書においては、記録される項目（フィールド）はあらかじめ決められているのが常識である。これに対し本実施形態においては、ソフトウェア管理サービスの管理者は、データベース２１１に記録する項目をいつでも自由に追加することができる。
【００６０】
また、データベース２１１において管理されるソフトウェアは、プログラムに限定されない。例えば、データベース２１１は、フォントの定義ファイル、プラグイン、画像ファイル、ＯＳなど、プログラム以外のソフトウェアのソフトウェア情報を有してもよい。プログラム以外のソフトウェアに関しては起動履歴を取得できない場合があるが、インベントリ情報が収集される。インベントリ情報の収集は、例えば、レジストリの検索、ＯＳのインベントリ情報収集機能、インベントリ情報を収集するＡＰＩ、およびファイル検索機能のうち少なくとも１つを用いて行われる。この例によれば、多様なソフトウェア情報に対応することにより、顧客満足度を向上させることができる。
【００６１】
３−４．他の変形例
管理装置１０、サーバ２０、および端末装置３０の機能構成は図２で例示したものに限定されない。図２に示した機能の一部が省略されてもよいし、図示されていない機能が追加されてもよい。また、管理装置１０は、管理対象の端末装置３０が含まれるローカルネットワークに設けられるものに限定されない。管理装置１０は、サーバ２０と同様にクラウド上に設けられてもよい。また、端末装置３０における記憶手段３１、監視手段３２、送信手段３３、使用制限手段３４、およびインベントリ情報収集手段３５は省略されてもよい。
【００６２】
管理装置１０、サーバ２０、および端末装置３０のハードウェア構成は、図３〜５において例示されたものに限定されない。要求される機能を実現できるものであれば、管理装置１０、サーバ２０、および端末装置３０は、それぞれ、どのようなハードウェア構成を有していてもよい。例えば、物理的に複数の装置の集合が管理装置１０またはサーバ２０としての機能を有してもよい。あるいは物理的に１台の装置が論理的に複数の管理装置１０としての機能を有してもよい。
【００６３】
実施形態で説明したソフトウェア管理システム１の動作はあくまで例である。実施形態で説明した処理ステップの一部は省略されてもよいし、他の処理と順番が入れ替えられてもよい。また、実施形態における起動履歴の送信条件およびインベントリ情報収集の開始条件はあくまで例示でありこれに限定されるものではない。
【００６４】
管理装置１０、サーバ２０、および端末装置３０において実行されるプログラムは、光ディスク、磁気ディスク、半導体メモリなどの記憶媒体により提供されてもよいし、インターネット等の通信回線を介してダウンロードされてもよい。
【符号の説明】
【００６５】
１…ソフトウェア管理システム、２…ネットワーク、３…インターネット、１０…管理装置、１１…記憶手段、１２…関連情報収集手段、１４…キー生成手段、１５…問い合わせ手段、１６…情報受信手段、１７…管理手段、２０…サーバ、２１…記憶手段、２２…問い合わせ受信手段、２３…判断手段、２４…送信手段、２５…情報収集手段、２６…追加手段、３０…端末装置、３１…記憶手段、３２…監視手段、３３…送信手段、３４…使用制限手段、３５…インベントリ情報収集手段、１０１…ＣＰＵ、１０２…メモリ、１０３…ストレージ、１０４…ネットワークＩＦ、１０５…表示装置、１０６…入力装置、２０１…ＣＰＵ、２０２…メモリ、２０３…ストレージ、２０４…ネットワークＩＦ、２１１…データベース、３０１…ＣＰＵ、３０２…メモリ、３０３…ストレージ、３０４…ネットワークＩＦ、３０５…表示装置、３０６…入力装置
【図１】
2018036997.tif 000003
【図２】
2018036997.tif 000004
【図３】
2018036997.tif 000005
【図４】
2018036997.tif 000006
【図５】
2018036997.tif 000007
【図６】
2018036997.tif 000008
【図７】
2018036997.tif 000009
【図８】
2018036997.tif 000010
【図９】
2018036997.tif 000011
【図１０】
2018036997.tif 000012
【図１１】
2018036997.tif 000013
【図１２】
2018036997.tif 000014
【図１３】
2018036997.tif 000015
【図１４】
2018036997.tif 000016
【手続補正書】
【提出日】平成29年11月14日(2017.11.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバと、
ネットワークを介して前記サーバに接続された複数の管理装置であって、各々が異なるイントラネットに設置され、当該イントラネットにおいて端末装置に接続され、当該端末装置にインストールされたソフトウェアを管理する複数の管理装置と
を有し、
前記複数の管理装置の各々は、
前記端末装置から前記ソフトウェアに関連する関連情報であって、当該ソフトウェアの使用権限を示すライセンス管理情報を含む関連情報を収集する収集手段と、
前記関連情報を用いて問い合わせ用のキーを生成する生成手段と、
前記生成手段により生成されたキーを含む問い合わせを前記サーバに送信する問い合わせ手段と
を有し、
前記サーバは、
ソフトウェア情報のデータベースを記憶する記憶手段と、
前記管理装置から前記問い合わせを受信する問い合わせ受信手段と、
前記管理装置から受信した前記問い合わせに含まれる前記キーに対応するソフトウェア情報が前記データベースに記録されているか判断する判断手段と、
前記キーに対応するソフトウェア情報が前記データベースに記録されていると前記判断手段により判断された場合、当該ソフトウェア情報を前記管理装置に送信する送信手段と、
前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、当該ソフトウェア情報を収集する情報収集手段と、
前記情報収集手段により収集された情報を前記データベースに追加する追加手段と
を有し、
前記管理装置は、さらに、
前記サーバから前記ソフトウェア情報を受信する情報受信手段と、
前記情報受信手段により受信されたソフトウェア情報及び前記端末装置において取得された前記ライセンス管理情報を用いて、当該端末装置における前記ソフトウェアの使用権限を管理する管理手段と
を有するソフトウェア管理システム。
【請求項２】
前記収集手段は、前記端末装置において前記ソフトウェアが起動された履歴を前記関連情報として収集し、
前記問い合わせ手段は、前記履歴から抽出された情報を前記キーとして含む問い合わせを送信する
ことを特徴とする請求項１に記載のソフトウェア管理システム。
【請求項３】
前記収集手段は、前記ソフトウェアのインベントリ情報を前記関連情報として収集し、
前記問い合わせ手段は、前記インベントリ情報から抽出された情報を前記キーとして含む問い合わせを送信する
ことを特徴とする請求項１または２に記載のソフトウェア管理システム。
【請求項４】
前記管理手段は、前記ライセンス管理情報に応じて前記ソフトウェアの使用を制限する
ことを特徴とする請求項１ないし３のいずれか一項に記載のソフトウェア管理システム。
【請求項５】
前記サーバは、ソフトウェアの安全性に関するレポートを前記管理装置に送信する
ことを特徴とする請求項１ないし４のいずれか一項に記載のソフトウェア管理システム。
【請求項６】
前記情報収集手段は、前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、当該ソフトウェア情報をロボット検索により収集し、
前記サーバは、前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、前記送信手段は、前記情報収集手段により収集された前記ソフトウェア情報を前記管理装置に送信する
ことを特徴とする請求項１ないし５のいずれか一項に記載のソフトウェア管理システム。
【請求項７】
サーバ、及びネットワークを介して前記サーバに接続された複数の管理装置であって、各々が異なるイントラネットに設置され、当該イントラネットにおいて端末装置に接続され、当該端末装置にインストールされたソフトウェアを管理する複数の管理装置を有するソフトウェア管理システムにおけるソフトウェア管理方法であって、
前記複数の管理装置のうち一の管理装置が、当該端末装置から前記ソフトウェアに関連する関連情報であって、当該ソフトウェアの使用権限を示すライセンス管理情報を含む関連情報を収集するステップと、
前記一の管理装置が、前記関連情報を用いて問い合わせ用のキーを生成するステップと、
前記一の管理装置が、前記キーを含む問い合わせを、ソフトウェア情報のデータベースを記憶する記憶手段を有するサーバに送信するステップと、
前記サーバが、前記一の管理装置から前記問い合わせを受信するステップと、
前記サーバが、前記一の管理装置から受信した前記問い合わせに含まれる前記キーに対応するソフトウェア情報が前記データベースに記録されているか判断するステップと、
前記キーに対応するソフトウェア情報が前記データベースに記録されていると判断された場合、前記サーバが、当該ソフトウェア情報を前記一の管理装置に送信するステップと、
前記キーに対応するソフトウェア情報が前記データベースに記録されていないと判断された場合、前記サーバが、当該ソフトウェア情報を収集するステップと、
前記収集された情報を前記データベースに追加するステップと、
前記一の管理装置が、前記サーバから前記ソフトウェア情報を受信するステップと、
前記一の管理装置が、前記受信されたソフトウェア情報及び前記端末装置において取得された前記ライセンス管理情報を用いて、当該端末装置における前記ソフトウェアの使用権限を管理するステップと
を有するソフトウェア管理方法。
【請求項８】
ソフトウェアがインストールされた端末装置から当該ソフトウェアに関連する関連情報であって、当該ソフトウェアの使用権限を示すライセンス管理情報を含む関連情報を収集する収集手段と、
前記関連情報を用いて問い合わせ用のキーを生成する生成手段と、
前記生成手段により生成されたキーを含む問い合わせをサーバに送信する問い合わせ手段と、
前記サーバから前記問い合わせに対応するソフトウェア情報を受信する情報受信手段と、
前記情報受信手段により受信されたソフトウェア情報及び前記収集手段により収集された前記ライセンス管理情報を用いて前記端末装置における前記ソフトウェアの使用権限を管理する管理手段と
を有する管理装置。
【請求項９】
ソフトウェア情報のデータベースを記憶する記憶手段と、
複数の管理装置のうち一の管理装置からキーを含む問い合わせを受信する問い合わせ受信手段と、
前記一の管理装置から受信した前記問い合わせに含まれる前記キーに対応するソフトウェア情報が前記データベースに記録されているか判断する判断手段と、
前記キーに対応するソフトウェア情報が前記データベースに記録されていると前記判断手段により判断された場合、当該ソフトウェア情報を前記一の管理装置に送信する送信手段と、
前記キーに対応するソフトウェア情報が前記データベースに記録されていないと前記判断手段により判断された場合、当該ソフトウェア情報を収集する情報収集手段と、
前記情報収集手段により収集された情報を前記データベースに追加する追加手段と
を有するサーバ。