(57)【要約】【課題】情報処理装置にインストールされたソフトウェアのうち、関連性の高いソフトウェアを発見し、かかるソフトウェアの使用に関する利便性を向上させる。【解決手段】ソフトウェアの使用に関する情報を取得し、関連性判定部が、取得された情報に基づき、第１のソフトウェアと関連する第２のソフトウェアを特定する。ソフトウェア実行部２１および支援実行部２４は、第１のソフトウェアに関して特定の操作が行われたことを条件として、第２のソフトウェアを起動する。【選択図】図５
2019074901.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの使用に関する情報を取得する使用情報取得手段と、
前記使用情報取得手段により取得された情報に基づき、第１のソフトウェアと関連する第２のソフトウェアを特定する関連ソフトウェア特定手段と、
前記第１のソフトウェアに関して特定の操作が行われたことを条件として、前記第２のソフトウェアを起動する関連ソフトウェア起動手段と、
を備えることを特徴とする、情報処理装置。
【請求項２】
前記関連ソフトウェア起動手段は、前記第１のソフトウェアが起動されたことを条件として前記第２のソフトウェアを起動することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記関連ソフトウェア起動手段は、前記第２のソフトウェアを起動するか否かをユーザに確認するメッセージを出力し、ユーザによる指示を受け付けて当該第２のソフトウェアを起動することを特徴とする、請求項１に記載の情報処理装置。
【請求項４】
前記関連ソフトウェア特定手段は、前記第１のソフトウェアと他のソフトウェアとが重複して実行される時間が予め定められた条件を満足する場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項１に記載の情報処理装置。
【請求項５】
前記関連ソフトウェア特定手段は、前記第１のソフトウェアと他のソフトウェアとが重複して実行される頻度が予め定められた条件を満足する場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項１に記載の情報処理装置。
【請求項６】
複数のソフトウェアを使用可能な第１の情報処理装置と、
前記複数のソフトウェアの少なくとも一部を使用可能であり、ネットワークを介して前記第１の情報処理装置と接続された第２の情報処理装置と、を備え、
前記第１の情報処理装置は、
自装置におけるソフトウェアの使用に関する情報に基づいて前記複数のソフトウェアの関連性を特定し、
前記第２の情報処理装置は、
前記第１の情報処理装置において特定された関連性の情報に基づき、自装置が使用可能な第１のソフトウェアに関して特定の操作が行われたことを条件として、当該第１のソフトウェアに関連する第２のソフトウェアに関する制御を行うことを特徴とする、情報処理システム。
【請求項７】
前記第２の情報処理装置は、前記第１のソフトウェアが起動されたことを条件として前記第２のソフトウェアに関する制御を行うことを特徴とする、請求項６に記載の情報処理システム。
【請求項８】
前記第２の情報処理装置は、前記第２のソフトウェアに関する制御として、当該第２のソフトウェアを起動することを特徴とする、請求項６に記載の情報処理システム。
【請求項９】
前記第２の情報処理装置は、前記第２のソフトウェアに関する制御として、当該第２のソフトウェアを起動するか否かをユーザに確認するメッセージを出力し、ユーザによる指示を受け付けて当該第２のソフトウェアを起動することを特徴とする、請求項６に記載の情報処理システム。
【請求項１０】
前記第２の情報処理装置は、前記第２のソフトウェアに関する制御として、当該第２の情報処理装置に当該第２のソフトウェアがインストールされていない場合に、当該第２のソフトウェアをインストールするか否かをユーザに確認するメッセージを出力することを特徴とする、請求項６に記載の情報処理システム。
【請求項１１】
前記第１の情報処理装置は、前記第１のソフトウェアと他のソフトウェアとが特定の態様で重複して実行される場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項６に記載の情報処理システム。
【請求項１２】
前記第１の情報処理装置は、前記第１のソフトウェアと他のソフトウェアとが重複して実行される時間が予め定められた条件を満足する場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項６に記載の情報処理システム。
【請求項１３】
前記第１の情報処理装置は、前記第１のソフトウェアと他のソフトウェアとが重複して実行される頻度が予め定められた条件を満足する場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項６に記載の情報処理システム。
【請求項１４】
特定のネットワークを介して自装置と接続された他の情報処理装置におけるソフトウェアの使用に基づく一のソフトウェアと他のソフトウェアとの関連性の情報を取得する情報取得手段と、
自装置において前記一のソフトウェアに関して特定の操作が行われたことを条件として、前記関連性の情報に基づき、当該一のソフトウェアに関連する前記他のソフトウェアに関する制御を行う制御手段と、
を備えることを特徴とする、情報処理装置。
【請求項１５】
前記制御手段は、前記一のソフトウェアが起動されたことを条件として前記他のソフトウェアに関する制御を行うことを特徴とする、請求項１４に記載の情報処理装置。
【請求項１６】
自装置におけるソフトウェアの使用に関する情報を取得する使用情報取得手段と、
前記使用情報取得手段により取得された情報に基づき、第１のソフトウェアと関連する第２のソフトウェアを特定する関連ソフトウェア特定手段と、
特定のネットワークを介して接続された前記第１のソフトウェアを使用可能な他の情報処理装置に対して前記第２のソフトウェアに関する情報を通知する通知手段と、
を備えることを特徴とする、情報処理装置。
【請求項１７】
前記関連ソフトウェア特定手段は、前記第１のソフトウェアと他のソフトウェアとが特定の態様で重複して実行される場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項１６に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理システムに関する。
【背景技術】
【０００２】
パーソナル・コンピュータ等の情報処理装置では、通常、複数のソフトウェアがインストールされ使用される。インストールされている複数のソフトウェアのうち、関連性の高いソフトウェアに関しては、使用する際の利便性を高めることが求められることがある。
【０００３】
特許文献１には、ソフトウェア２ａ、２ｂを含む複数のソフトウェアの利用される順序を示す順序情報を記憶する記憶部と、情報処理装置２におけるソフトウェア２ａの実行状況と、記憶部に記憶された順序情報とに基づいて、情報処理装置３から次に要求されるソフトウェア２ｂを予測する予測手段と、情報処理装置２に、予測手段が予測したソフトウェア２ｂをインストールするインストール手段とを備え、複数のソフトウェアの中から要求に応じたソフトウェアを実行する情報処理システムを効率的に運用できるようにする装置が開示されている。また、特許文献２には、各コンピュータ７がコンピュータシステム管理装置１に備えられた不適合アプリＤＢ２３から不適合アプリケーションの情報を取得して自コンピュータ７の不適合アプリＤＢ７３に格納する手段、自コンピュータ７にインストールされたアプリケーションの情報を格納したインストール済みアプリＤＢ７４と不適合アプリＤＢとを起動時または周期的に照合して、インストールされた不適合アプリケーションを検出する手段、不適合アプリケーションがインストールされていることが検出されると、その情報を入出力部の画面に表示する手段、としてコンピュータを機能させ、複数のコンピュータと該複数のコンピュータと通信手段を介して接続可能なコンピュータシステム管理装置とで構成されるコンピュータシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−８８９０１号公報
【特許文献２】特開２０１５−７２７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報処理装置にインストールされている複数のソフトウェアのうち関連性の高いソフトウェアを特定することは、予めソフトウェア間に関連付けの設定が行われている場合を除き、容易ではなかった。
【０００６】
本発明は、情報処理装置にインストールされたソフトウェアのうち、関連性の高いソフトウェアを発見し、かかるソフトウェアの使用に関する利便性を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に係る本発明は、
ソフトウェアの使用に関する情報を取得する使用情報取得手段と、
前記使用情報取得手段により取得された情報に基づき、第１のソフトウェアと関連する第２のソフトウェアを特定する関連ソフトウェア特定手段と、
前記第１のソフトウェアに関して特定の操作が行われたことを条件として、前記第２のソフトウェアを起動する関連ソフトウェア起動手段と、
を備えることを特徴とする、情報処理装置である。
請求項２に係る本発明は、
前記関連ソフトウェア起動手段は、前記第１のソフトウェアが起動されたことを条件として前記第２のソフトウェアを起動することを特徴とする、請求項１に記載の情報処理装置である。
請求項３に係る本発明は、
前記関連ソフトウェア起動手段は、前記第２のソフトウェアを起動するか否かをユーザに確認するメッセージを出力し、ユーザによる指示を受け付けて当該第２のソフトウェアを起動することを特徴とする、請求項１に記載の情報処理装置である。
請求項４に係る本発明は、
前記関連ソフトウェア特定手段は、前記第１のソフトウェアと他のソフトウェアとが重複して実行される時間が予め定められた条件を満足する場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項１に記載の情報処理装置である。
請求項５に係る本発明は、
前記関連ソフトウェア特定手段は、前記第１のソフトウェアと他のソフトウェアとが重複して実行される頻度が予め定められた条件を満足する場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項１に記載の情報処理装置である。
請求項６に係る本発明は、
複数のソフトウェアを使用可能な第１の情報処理装置と、
前記複数のソフトウェアの少なくとも一部を使用可能であり、ネットワークを介して前記第１の情報処理装置と接続された第２の情報処理装置と、を備え、
前記第１の情報処理装置は、
自装置におけるソフトウェアの使用に関する情報に基づいて前記複数のソフトウェアの関連性を特定し、
前記第２の情報処理装置は、
前記第１の情報処理装置において特定された関連性の情報に基づき、自装置が使用可能な第１のソフトウェアに関して特定の操作が行われたことを条件として、当該第１のソフトウェアに関連する第２のソフトウェアに関する制御を行うことを特徴とする、情報処理システムである。
請求項７に係る本発明は、
前記第２の情報処理装置は、前記第１のソフトウェアが起動されたことを条件として前記第２のソフトウェアに関する制御を行うことを特徴とする、請求項６に記載の情報処理システムである。
請求項８に係る本発明は、
前記第２の情報処理装置は、前記第２のソフトウェアに関する制御として、当該第２のソフトウェアを起動することを特徴とする、請求項６に記載の情報処理システムである。
請求項９に係る本発明は、
前記第２の情報処理装置は、前記第２のソフトウェアに関する制御として、当該第２のソフトウェアを起動するか否かをユーザに確認するメッセージを出力し、ユーザによる指示を受け付けて当該第２のソフトウェアを起動することを特徴とする、請求項６に記載の情報処理システムである。
請求項１０に係る本発明は、
前記第２の情報処理装置は、前記第２のソフトウェアに関する制御として、当該第２の情報処理装置に当該第２のソフトウェアがインストールされていない場合に、当該第２のソフトウェアをインストールするか否かをユーザに確認するメッセージを出力することを特徴とする、請求項６に記載の情報処理システムである。
請求項１１に係る本発明は、
前記第１の情報処理装置は、前記第１のソフトウェアと他のソフトウェアとが特定の態様で重複して実行される場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項６に記載の情報処理システムである。
請求項１２に係る本発明は、
前記第１の情報処理装置は、前記第１のソフトウェアと他のソフトウェアとが重複して実行される時間が予め定められた条件を満足する場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項６に記載の情報処理システムである。
請求項１３に係る本発明は、
前記第１の情報処理装置は、前記第１のソフトウェアと他のソフトウェアとが重複して実行される頻度が予め定められた条件を満足する場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項６に記載の情報処理システムである。
請求項１４に係る本発明は、
特定のネットワークを介して自装置と接続された他の情報処理装置におけるソフトウェアの使用に基づく一のソフトウェアと他のソフトウェアとの関連性の情報を取得する情報取得手段と、
自装置において前記一のソフトウェアに関して特定の操作が行われたことを条件として、前記関連性の情報に基づき、当該一のソフトウェアに関連する前記他のソフトウェアに関する制御を行う制御手段と、
を備えることを特徴とする、情報処理装置である。
請求項１５に係る本発明は、
前記制御手段は、前記一のソフトウェアが起動されたことを条件として前記他のソフトウェアに関する制御を行うことを特徴とする、請求項１４に記載の情報処理装置である。
請求項１６に係る本発明は、
自装置におけるソフトウェアの使用に関する情報を取得する使用情報取得手段と、
前記使用情報取得手段により取得された情報に基づき、第１のソフトウェアと関連する第２のソフトウェアを特定する関連ソフトウェア特定手段と、
特定のネットワークを介して接続された前記第１のソフトウェアを使用可能な他の情報処理装置に対して前記第２のソフトウェアに関する情報を通知する通知手段と、
を備えることを特徴とする、情報処理装置である。
請求項１７に係る本発明は、
前記関連ソフトウェア特定手段は、前記第１のソフトウェアと他のソフトウェアとが特定の態様で重複して実行される場合に、当該他のソフトウェアを前記第２のソフトウェアとすることを特徴とする、請求項１６に記載の情報処理装置である。
【発明の効果】
【０００８】
請求項１の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第２のソフトウェアの使用に関する利便性を向上させることができる。
請求項２の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１のソフトウェアが起動されたことに伴って第２のソフトウェアを起動させることにより、第２のソフトウェアの使用に関する利便性を向上させることができる。
請求項３の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、ユーザに対して第２のソフトウェアの使用を促すことができるため、第２のソフトウェアの使用に関する利便性を向上させることができる。
請求項４の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１のソフトウェアと重複して実行される時間が予め定められた条件を満足するソフトウェアの使用に関する利便性を向上させることができる。
請求項５の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１のソフトウェアと重複して実行される頻度が予め定められた条件を満足するソフトウェアの使用に関する利便性を向上させることができる。
請求項６の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１の情報処理装置で得られたソフトウェア間の関連性に基づき、第２のソフトウェアの使用に関する利便性を向上させることができる。
請求項７の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１のソフトウェアが起動されたことに伴って第２のソフトウェアを制御することにより、第２のソフトウェアの使用に関する利便性を向上させることができる。
請求項８の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１のソフトウェアが起動されたことに伴って第２のソフトウェアを起動させることにより、第２のソフトウェアの使用に関する利便性を向上させることができる。
請求項９の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、ユーザに対して第２のソフトウェアの使用を促すことができるため、第２のソフトウェアの使用に関する利便性を向上させることができる。
請求項１０の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第２の情報処理装置にインストールされていないソフトウェアのインストールを促すことができるため、第２のソフトウェアの使用に関する利便性を向上させることができる。
請求項１１の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１のソフトウェアと重複して実行されるソフトウェアの使用に関する利便性を向上させることができる。
請求項１２の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１のソフトウェアと重複して実行される時間が予め定められた条件を満足するソフトウェアの使用に関する利便性を向上させることができる。
請求項１３の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１のソフトウェアと重複して実行される頻度が予め定められた条件を満足するソフトウェアの使用に関する利便性を向上させることができる。
請求項１４の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、一のソフトウェアに関連するソフトウェアの使用に関する利便性を向上させることができる。
請求項１５の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、一のソフトウェアが起動されたことに伴って関連する他のソフトウェアを起動させることにより、ソフトウェアの使用に関する利便性を向上させることができる。
請求項１６の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、この一のソフトウェアを使用可能な情報処理装置において、一のソフトウェアに関連するソフトウェアの使用に関する利便性を向上させることができる。
請求項１７の発明によれば、一のソフトウェアで行われた操作を他のソフトウェアの起動条件としない構成と比較して、第１のソフトウェアと重複して実行されるソフトウェアの使用に関する利便性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の情報処理システムの全体構成を示す図である。
【図２】検証用コンピュータおよび利用側コンピュータとして用いられるコンピュータのハードウェア構成例を示す図である。
【図３】検証用コンピュータの機能構成を示す図である。
【図４】処理情報保持部に保持される情報の一例を示す図である。
【図５】利用側コンピュータの機能構成を示す図である。
【図６】ソフトウェアの実行状況の一例を示す図である。
【図７】ソフトウェアの実行状況の他の一例を示す図である。
【図８】検証用コンピュータにおいて、関連性の高いソフトウェアの情報を取得する動作の一例を示すフローチャートである。
【図９】検証用コンピュータにおいて、ソフトウェアの関連性を判定する動作の一例を示すフローチャートである。
【図１０】利用側コンピュータにおけるソフトウェアの使用に関する支援の動作の一例を示すフローチャートである。
【図１１】第１変形例による情報処理システムの構成例を示す図である。
【図１２】第２変形例による情報処理システムの構成例を示す図である。
【図１３】第３変形例による情報処理システムの構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
＜情報処理システムの全体構成＞
図１は、本実施形態が適用される情報処理システムの全体構成を示す図である。本実施形態の情報処理システム１００は、検証用コンピュータ（第１の情報処理装置）１０と、利用側コンピュータ（第２の情報処理装置）２０とを備える。検証用コンピュータ１０と利用側コンピュータ２０とは、ネットワーク３０を介して接続されている。
【００１１】
検証用コンピュータ１０は、ソフトウェア間の関連性の検証に用いられるコンピュータである。検証用コンピュータ１０は、例えば、パーソナル・コンピュータ等で実現される。検証用コンピュータ１０には、複数のソフトウェアがインストールされている。検証用コンピュータ１０は、インストールされている各ソフトウェアが実行された際の他のソフトウェアの状態に基づいて、実行されたソフトウェアと他のソフトウェアとの間の関連性を判定する。検証用コンピュータ１０による関連性の判定の詳細については後述する。
【００１２】
利用側コンピュータ２０は、検証用コンピュータ１０で検証されたソフトウェア間の関連性に基づき、ソフトウェアの使用に関して支援が行われるコンピュータである。利用側コンピュータ２０は、例えば、パーソナル・コンピュータ等で実現される。利用側コンピュータ２０には、複数のソフトウェアがインストールされている。利用側コンピュータ２０は、検証用コンピュータ１０からソフトウェア間の関連性の情報を取得する。そして、利用側コンピュータ２０は、インストールされているソフトウェアが実行された際に、取得した関連性の情報に基づいて、実行されたソフトウェアと関連性の高いソフトウェアの使用に関する支援を行う。利用側コンピュータ２０におけるソフトウェアの使用に関する支援の詳細については後述する。
【００１３】
検証用コンピュータ１０と利用側コンピュータ２０とは、本実施形態の情報処理システム１００における役割を示している。すなわち、情報処理システム１００を構成する個々のコンピュータが検証用コンピュータ１０または利用側コンピュータ２０としてのみ動作するのではない。各コンピュータはそれぞれ、インストールされている複数のソフトウェアのうちのあるソフトウェアに関して検証用コンピュータ１０として関連性の検証に用いられ、他のソフトウェアに関して利用側コンピュータ２０として支援対象となる。
【００１４】
また、支援の内容によっては、一のコンピュータが検証用コンピュータ１０と利用側コンピュータ２０の両方に該当する場合もある。例えば、一のコンピュータにおいて、あるソフトウェアに関する他のソフトウェアとの関連性が判定された後、そのソフトウェアを起動した際に、起動したソフトウェアと関連性の高いソフトウェアの使用に関する支援を行うようにしても良い。この場合、このコンピュータは、関連性の情報を蓄積する局面では検証用コンピュータ１０であり、起動したソフトウェアと関連性の高いソフトウェアの使用に関する支援を行う局面では利用側コンピュータ２０である。
【００１５】
また、図１には、検証用コンピュータ１０および利用側コンピュータ２０が１つずつ示されているが、実際のシステムにおいては、各々、複数設けても良い。すなわち、あるソフトウェアと他のソフトウェアの関連性を検証するために、そのソフトウェアがインストールされた複数のコンピュータ（検証用コンピュータ１０）を用いても良い。また、ソフトウェア間の関連性の情報に基づくソフトウェアの使用に関する支援は、多くの場合、複数のコンピュータ（利用側コンピュータ２０）に対して行われる。
【００１６】
情報処理システム１００は、システムを構成する各コンピュータ（検証用コンピュータ１０および利用側コンピュータ２０）を管理している。コンピュータの管理は、図示しない上位のサーバにより行っても良いし、システムを構成するコンピュータのうちの一つまたは複数のコンピュータに管理機能を設けて行っても良い。情報処理システム１００は、システムを構成する各コンピュータにインストールされたソフトウェア、各コンピュータのユーザ、各コンピュータまたはユーザに対して付与されたライセンス等を管理しても良い。また、ソフトウェアの使用に関する関連性の検証は、各コンピュータにおいて、ログインしたユーザごとに個別に行っても良い。
【００１７】
ネットワーク３０は、情報処理システム１００を構成する装置間のデータ通信に用いられる通信ネットワークである。ネットワーク３０は、例えば、ＬＡＮ（Local Area Network）である。また、検証用コンピュータ１０および利用側コンピュータ２０として用いられるコンピュータやそのユーザが管理される構成であれば、インターネット等のネットワークであっても良い。
【００１８】
＜コンピュータのハードウェア構成＞
図２は、検証用コンピュータ１０および利用側コンピュータ２０として用いられるコンピュータのハードウェア構成例を示す図である。図２に示すコンピュータ２００は、演算手段であるＣＰＵ（Central Processing Unit）２０１と、記憶手段である主記憶装置（メイン・メモリ）２０２および外部記憶装置２０３を備える。ＣＰＵ２０１は、外部記憶装置２０３に格納されたプログラムを主記憶装置２０２に読み込んで実行する。主記憶装置２０２としては、例えばＲＡＭ（Random Access Memory）が用いられる。外部記憶装置２０３としては、例えば磁気ディスク装置やＳＳＤ（Solid State Drive）等が用いられる。また、コンピュータ２００は、表示装置（ディスプレイ）２１０に表示出力を行うための表示機構２０４と、コンピュータ２００の操作者による入力操作が行われる入力デバイス２０５とを備える。入力デバイス２０５としては、例えばキーボードやマウス等が用いられる。また、コンピュータ２００は、ネットワーク３０に接続するためのネットワーク・インターフェイス２０６を備える。なお、図２に示すコンピュータ２００の構成は一例に過ぎず、本実施形態で用いられるコンピュータは図２の構成例に限定されるものではない。例えば、記憶装置としてフラッシュ・メモリ等の不揮発性メモリやＲＯＭ（Read Only Memory）を備える構成としても良い。
【００１９】
＜検証用コンピュータ１０の機能構成＞
図３は、検証用コンピュータ１０の機能構成を示す図である。検証用コンピュータ１０は、ソフトウェア実行部１１と、ソフトウェア監視部１２と、処理情報保持部１３と、関連性判定部１４と、関連性情報保持部１５と、送受信制御部１６とを備える。ソフトウェア実行部１１、ソフトウェア監視部１２、関連性判定部１４および送受信制御部１６の機能は、例えば、図２に示したコンピュータ２００において、ＣＰＵ２０１がプログラムを実行することにより実現される。処理情報保持部１３および関連性情報保持部１５は、例えば、図２に示したコンピュータ２００において、主記憶装置２０２や外部記憶装置２０３等の記憶手段により実現される。
【００２０】
ソフトウェア実行部１１は、検証用コンピュータ１０にインストールされているソフトウェアを起動し、実行する制御手段である。ソフトウェア実行部１１は、検証用コンピュータ１０にインストールされているソフトウェアのうち、複数のソフトウェアを、同時に実行可能である。
【００２１】
ソフトウェア監視部１２は、検証用コンピュータ１０にインストールされている各ソフトウェアの実行状況を監視する処理手段である。ソフトウェア監視部１２は、ソフトウェア実行部１１により実行されているソフトウェアに関して、実行されているソフトウェアの識別情報および実行内容の情報を取得する。実行内容は、ソフトウェアの使用に関する情報であり、例えば、ソフトウェアのプロセスの開始、終了等である。すなわち、ソフトウェア監視部１２は、使用情報取得手段の一例である。また、ソフトウェア監視部１２は、一のソフトウェアが実行された際に、同時に実行されている他のソフトウェアの情報を取得しても良い。これらの情報は、実行内容に応じて、ソフトウェアの実行におけるイベント発生時に取得しても良いし、定期的に取得しても良い。
【００２２】
処理情報保持部１３は、ソフトウェア監視部１２により取得されたソフトウェアの実行に関する情報（履歴情報）を保持する保持手段である。処理情報保持部１３には、例えば、情報が記録された時刻をキーとして、実行されているソフトウェアの識別情報、実行内容の情報等が記録される。記録対象のソフトウェアの実行時に、同時に実行されている他のソフトウェアがある場合、かかる他のソフトウェアの情報を関連付けて、処理情報保持部１３に記録しても良い。複数の検証用コンピュータ１０によりソフトウェアの検証を行う場合、ソフトウェアが実行された検証用コンピュータ１０の識別情報を、処理情報保持部１３に記録しても良い。ソフトウェアを使用したユーザごとに情報を取得する場合、ソフトウェアが実行された際にログインしていたユーザ（ログイン・ユーザ）の識別情報を、処理情報保持部１３に記録しても良い。
【００２３】
図４は、処理情報保持部１３に保持される情報の一例を示す図である。図４に示す例において、処理情報保持部１３には、情報の記録時刻（年：ＹＹＹＹ、月：ＭＭ、日：ＤＤ、時：ＨＨ、分ｍｍ、秒：ｓｓ.ｓｓｓ）をキーとして各種の情報が保持されている。保持されている情報のうち、「装置情報」には、ソフトウェアが実行された検証用コンピュータ１０の識別情報が記録される。「ソフトウェア情報」には、記録対象のソフトウェアの識別情報が記録される。識別情報としては、例えば、ソフトウェアの名称やソフトウェアの識別が可能な識別子（拡張子など）を用いて良い。「ソフトウェア状況」には、記録対象のソフトウェアの実行内容を示す情報が記録される。図示の例では、ソフトウェアの起動プロセスが行われたことを示す「開始」とソフトウェアの終了プロセスが行われたことを示す「終了」が記録されている。これらのプロセスは必須の記録内容である。また、ソフトウェアの種類や設定によっては、その他のプロセスを記録しても良い。その他のプロセスとしては、例えば、印刷、送受信、他のソフトウェアの起動等が考えられる。「ログイン・ユーザ」には、記録対象のソフトウェアの実行時にログインしていたユーザの識別情報が記録される。「同時実行ソフトウェア」には、記録対象のソフトウェアの実行時に、同時に実行されているソフトウェアの識別情報が記録される。識別情報としては、例えば、ソフトウェアの名称やソフトウェアの識別が可能な識別子（拡張子など）を用いて良い。
【００２４】
関連性判定部１４は、検証用コンピュータ１０にインストールされている複数のソフトウェアの間の関連性を判定する処理手段である。関連性判定部１４は、検証用コンピュータ１０にインストールされている複数のソフトウェアのうち、ソフトウェアの使用態様に基づいて定められた関係を有する複数のソフトウェアを検出し、そのソフトウェアの関連性を判定する。関連性判定部１４は、処理情報保持部１３に保持されている情報に基づき、予め定められた関係を有する複数のソフトウェアを検出する。関連性判定部１４は、処理情報保持部１３に保持されているソフトウェアの種類、情報処理システム１００の仕様や運用等に応じて設定される判定条件に基づき、ソフトウェアの関連性を判定する。すなわち、関連性判定部１４は、関連ソフトウェア特定手段の一例である。
【００２５】
関連性判定部１４によるソフトウェア間の関連性の判定に関して具体的例を挙げる。例えば、関連性判定部１４は、同時に実行されることの多いソフトウェアの組があるとき、それらのソフトウェアは関連性が高いと判定する。反対に、同時に実行されることの少ないソフトウェアの組があるとき、それらのソフトウェアは関連性が低いと判定する。同時に実行されることが多いと判断される状況には、いくつかの考え方がある。例えば、一のソフトウェアと他の一のソフトウェアが同時実行される頻度や割合によって判定することが考えられる。具体的には、二つのソフトウェアのうちの一方が実行されると、予め定められた閾値以上の確率で他方も実行される場合、同時に実行されることが多いと判断することが考えられる。また、一のソフトウェアと他の一のソフトウェアが同時実行されている時間の長さによって判定することが考えられる。具体的には、二つのソフトウェアのいずれか一方が実行されている時間と両方が同時実行されている時間とを計測して累積し、同時実行されている時間の割合が予め定められた閾値以上である場合、同時に実行されることが多いと判断することが考えられる。
【００２６】
判定条件として、ソフトウェアの実行状況を、より具体的に規定しても良い。例えば、一のソフトウェアが起動してから一定時間以内に起動したソフトウェアがあることを判定条件としても良い。また、一のソフトウェアで特定の処理（プロセス）が行われてから一定時間以内に起動されるソフトウェアがあることを判定条件としても良い。さらに、複数のソフトウェアが、一定時間以内に決まった順番で起動されることを判定条件としても良い。また、起動後、一定時間以上アクティブでないソフトウェアに関しては、アクティブでないときに起動した他のソフトウェアに対して関連性の判定の対象から除外しても良い。その他、関連性を判定するための条件は、判定対象のソフトウェアの種類、情報処理システム１００の仕様や運用等に応じて、様々に設定し得る。
【００２７】
関連性情報保持部１５は、関連性判定部１４により判定されたソフトウェア間の関連性の情報（以下、関連性情報）を保持する保持手段である。関連性情報保持部１５に保持された関連性情報は、利用側コンピュータ２０に送られ、利用側コンピュータ２０において、ソフトウェアの使用に関する支援を行うために用いられる。
【００２８】
送受信制御部１６は、利用側コンピュータ２０と通信を行うための通信手段である。送受信制御部１６は、例えば、図２に示したネットワーク・インターフェイス２０６を制御し、ネットワーク３０を介して利用側コンピュータ２０との間でコマンドやデータを送受信する。送受信制御部１６は、通知手段の一例である。
【００２９】
＜利用側コンピュータ２０の機能構成＞
図５は、利用側コンピュータ２０の機能構成を示す図である。利用側コンピュータ２０は、ソフトウェア実行部２１と、関連性情報取得部２２と、関連性情報保持部２３と、支援実行部２４と、送受信制御部２５とを備える。ソフトウェア実行部２１、関連性情報取得部２２、支援実行部２４および送受信制御部２５の機能は、例えば、図２に示したコンピュータ２００において、ＣＰＵ２０１がプログラムを実行することにより実現される。また、関連性情報保持部２３は、例えば、図２に示したコンピュータ２００において、主記憶装置２０２や外部記憶装置２０３等の記憶手段により実現される。
【００３０】
ソフトウェア実行部２１は、利用側コンピュータ２０にインストールされているソフトウェアを起動し、実行する制御手段である。ソフトウェア実行部２１は、利用側コンピュータ２０にインストールされているソフトウェアのうち、複数のソフトウェアを、同時に実行可能である。また、ソフトウェア実行部２１は、支援実行部２４による支援処理に基づき、ソフトウェアを起動する。すなわち、ソフトウェア実行部２１は、関連ソフトウェア起動手段の一例である。
【００３１】
関連性情報取得部２２は、検証用コンピュータ１０から関連性情報を取得する処理手段である。関連性情報取得部２２は、ネットワーク３０を介して検証用コンピュータ１０にアクセスし、検証用コンピュータ１０の関連性情報保持部１５に保持されている関連性情報を取得する。すなわち、関連性情報取得部２２は、情報取得手段の一例である。
【００３２】
関連性情報保持部２３は、関連性情報取得部２２により取得された関連性情報を保持する保持手段である。関連性情報保持部２３に保持された関係性情報は、利用側コンピュータ２０においてソフトウェアの使用に関する支援に用いられる。
【００３３】
支援実行部２４は、利用側コンピュータ２０においてソフトウェアの使用に関する支援として行われる処理（支援処理）を実行する処理手段である。支援実行部２４は、利用側コンピュータ２０にインストールされているソフトウェアに関して予め定められた支援処理の実行条件を満足したことを検知すると、そのソフトウェアと関連性の高い他のソフトウェアに対する支援処理を実行する。以下、支援処理の実行条件の判断対象となるソフトウェアを先行ソフトウェア（第１のソフトウェア）と呼ぶ。また、支援処理の対象となるソフトウェア（先行ソフトウェアと関連性が高いソフトウェア）を支援対象ソフトウェア（第２のソフトウェア）と呼ぶ。支援対象ソフトウェアの特定は、先行ソフトウェアの種類と満足した実行条件に基づいて、関連性情報保持部２３を参照することにより行われる。
【００３４】
実行条件は、先行ソフトウェアの実行状況に基づいて定められる。具体的な実行条件は、ソフトウェアの種類、情報処理システム１００の仕様や運用等に応じて設定し得る。具体的な実行条件としては、例えば、先行ソフトウェアが起動したこと、起動してから一定時間が経過したこと、先行ソフトウェアの実行中に特定の操作が行われたこと、特定の操作が行われてから一定時間が経過したこと、先行ソフトウェアの実行中に複数の特定の操作が特定の順番で行われたこと、先行ソフトウェアが終了したこと、終了してから一定時間が経過したこと等を、設定することができる。
【００３５】
支援処理としては、ソフトウェアの種類、情報処理システム１００の仕様や運用等に応じて種々の処理を実行し得る。具体的な支援処理としては、例えば、ユーザに対して支援対象ソフトウェアの起動を促すメッセージや、支援対象ソフトウェアを起動するか否かを確認するメッセージを出力する。メッセージの出力は、例えば図２に示したコンピュータ２００の表示機構２０４を制御して表示装置２１０に表示させることにより行っても良いし、図示しない音声出力手段を用いて音声メッセージとして出力しても良い。また、他の具体的な支援処理として、支援対象ソフトウェアを起動したり、起動した支援対象ソフトウェアにおいて特定のプロセスを実行させたりしても良い。特定のプロセスの実行の例としては、例えば、支援対象ソフトウェアに対して、画像形成装置による印刷プロセスを実行させたり、外部装置とのデータの送受信を実行させたりすること等が挙げられる。したがって、支援実行部２４は、制御手段の一例である。
【００３６】
送受信制御部２５は、検証用コンピュータ１０と通信を行うための通信手段である。送受信制御部２５は、例えば、図２に示したネットワーク・インターフェイス２０６を制御し、ネットワーク３０を介して検証用コンピュータ１０との間でコマンドやデータを送受信する。
【００３７】
＜関連性の判定例＞
ソフトウェアの関連性の判定についてさらに説明する。上述したように、検証用コンピュータ１０の関連性判定部１４は、ソフトウェアの使用態様に基づいてソフトウェア間の関連性を判定する。
【００３８】
図６は、ソフトウェアの実行状況の一例を示す図である。図６に示す例において、ソフトウェアＳＷ１が起動したとき、既にソフトウェアＳＷ２が起動され、実行されている。すなわち、ソフトウェアＳＷ１とソフトウェアＳＷ２とは同じ時間に使用されている。この場合、処理情報保持部１３に蓄積される情報には、二つのソフトウェアＳＷ１、ＳＷ２が実行されている間、ソフトウェアＳＷ１に対する同時実行ソフトウェアとしてソフトウェアＳＷ２が記録され、ソフトウェアＳＷ２に対する同時実行ソフトウェアとしてソフトウェアＳＷ１が記録されるエントリが蓄積されることとなる。一方、ソフトウェアＳＷ３は、ソフトウェアＳＷ１やソフトウェアＳＷ２が実行されているときには実行されていない。したがって、ソフトウェアＳＷ１とソフトウェアＳＷ３、ソフトウェアＳＷ２とソフトウェアＳＷ３が、相互に同時実行ソフトウェアとして処理情報保持部１３に記録されない。
【００３９】
また、図６において、ソフトウェアＳＷ２が起動してからソフトウェアＳＷ１が起動するまでに、時間Ｔａが経過している。ここで、一のソフトウェアが起動してから他のソフトウェアが起動するまでの時間の閾値Ｔｓを設定しておき、時間Ｔａが時間Ｔｓ以下であれば、ソフトウェアＳＷ１とソフトウェアＳＷ２とは関連性が高いと判定するようにしても良い。この場合、時間Ｔａが時間Ｔｓよりも長いときは、ソフトウェアＳＷ１はソフトウェアＳＷ２とは関係なく起動されたものであり、関連性は高くないと判定する。なお、図６に示す例では、ソフトウェアＳＷ２が起動した後、時間Ｔａ経過後にソフトウェアＳＷ２が起動した場合について説明した。これに対し、ソフトウェアＳＷ２において起動以外の特定のイベント（特定の操作が行われた等）が発生したことを条件として、そのイベント発生時からソフトウェアＳＷ１が起動するまでの経過時間を時間Ｔａとしても良い。
【００４０】
図７は、ソフトウェアの実行状況の他の一例を示す図である。図７に示す例において、ソフトウェアＳＷ１が起動したとき、既にソフトウェアＳＷ２およびソフトウェアＳＷ３が起動され、実行されている。より詳細には、ソフトウェアＳＷ２は、ソフトウェアＳＷ１が起動される以前に起動され、ソフトウェアＳＷ１が終了する前に終了している。ソフトウェアＳＷ３は、ソフトウェアＳＷ１が起動される前に起動され、ソフトウェアＳＷ１が終了した後に終了している。ここで、ソフトウェアＳＷ３は、起動した状態が長時間継続するが、ユーザによる操作が受け付けられるアクティブな状態となるのは断続的で、実際に使用される時間は短いものとする。このようなソフトウェアとしては、メーラー等がある。
【００４１】
図７に示すような実行状況では、ソフトウェアＳＷ２がソフトウェアＳＷ１よりも先に終了しているため、ソフトウェアＳＷ１と同時に実行されている時間は、ソフトウェアＳＷ２よりもソフトウェアＳＷ３の方が長くなる。しかし、ソフトウェアＳＷ３は、単にバックグラウンドで実行状態にあるだけであり、ソフトウェアＳＷ１と関連して動作しているとは言えない。そこで、この種のソフトウェアに対しては、アクティブな状態のときに同時実行されているものとし、非アクティブな状態のときは同時に実行されていないものとして、同時実行の頻度や時間を判断する。図７に示す例では、ソフトウェアＳＷ１が実行されている時間帯において、ソフトウェアＳＷ３がアクティブな状態となっている時間は、ソフトウェアＳＷ１とソフトウェアＳＷ２とが同時実行されている時間よりも短い。したがって、ソフトウェアＳＷ２の方がソフトウェアＳＷ３よりもソフトウェアＳＷ１に対する関連性が高い。実際には、各々のソフトウェアの同時実行の頻度や時間が閾値以上か否かに応じて、ソフトウェアごとに、関連性が判定される。
【００４２】
なお、以上の説明では、一のソフトウェアが起動した際に既に起動している他のソフトウェアがあった場合に、単に、これらのソフトウェアの組に関して、関連性を判定することとした。すなわち、同時実行される複数のソフトウェアの起動順については考慮していない。例えば、図６に示したソフトウェアＳＷ１とソフトウェアＳＷ２に関して、どちらが先に起動されるかに関わらず、単に、これらのソフトウェアＳＷ１、ＳＷ２の関連性が高いと判定される。この場合、この関連性情報に基づき、利用側コンピュータ２０において支援処理を実行する際には、ソフトウェアＳＷ１、ＳＷ２のどちらが先行ソフトウェアとして実行条件を満足しても、他方のソフトウェアに対する支援処理が行われる。
【００４３】
これに対し、ソフトウェアが起動される順番も加味して関連性を判定しても良い。例えば、図６に示したソフトウェアＳＷ１とソフトウェアＳＷ２に関して、ソフトウェアＳＷ１が起動した際に、それよりも先にソフトウェアＳＷ２が起動している事象が頻出し、逆の順番でソフトウェアＳＷ１、ＳＷ２が起動する事象の発生頻度は小さいものとする。この場合、ソフトウェアＳＷ２が先に起動し、次にソフトウェアＳＷ１が起動する順番では、ソフトウェアＳＷ１、ＳＷ２の関連性が高く、反対に、ソフトウェアＳＷ１が先に起動し、次にソフトウェアＳＷ２が起動する順番では、ソフトウェアＳＷ１、ＳＷ２の関連性は低いと判定する。したがって、この関連性情報に基づき、利用側コンピュータ２０において支援処理を実行する場合、ソフトウェアＳＷ２で実行条件を満足した場合に、ソフトウェアＳＷ１に対する支援処理が行われるが、ソフトウェアＳＷ１で実行条件を満足しても、ソフトウェアＳＷ２に対する支援処理は行われない。
【００４４】
＜検証用コンピュータ１０の動作＞
図８は、検証用コンピュータ１０において、関連性の高いソフトウェアの情報を取得する動作の一例を示すフローチャートである。ここでは、同時実行されているソフトウェアの情報を取得する場合を例として説明する。検証用コンピュータ１０において、ソフトウェア実行部１１が一のソフトウェア（以下、記録対象ソフトウェア）を起動すると（Ｓ８０１）、ソフトウェア監視部１２が、記録対象ソフトウェアのプロセスの情報を取得する（Ｓ８０２）。これ以降、プロセスの情報の取得は、記録対象ソフトウェアが終了するまで定期的に行われる。取得したプロセスが記録対象ソフトウェアの起動および終了のいずれでもない場合（Ｓ８０３でＮｏ）、ソフトウェア監視部１２は、取得したプロセスの情報を処理情報保持部１３に記録する（Ｓ８０６）。一方、取得したプロセスが記録対象ソフトウェアの起動および終了のいずれかである場合（Ｓ８０３でＹｅｓ）、ソフトウェア監視部１２は、記録対象ソフトウェアが起動または終了したことを処理情報保持部１３に記録する（Ｓ８０４）。そして、ソフトウェア監視部１２は、実行中のソフトウェア（同時実行ソフトウェア）の情報と、取得したプロセスの情報とを処理情報保持部１３に記録して（Ｓ８０５、Ｓ８０６）、処理を終了する。
【００４５】
図９は、検証用コンピュータ１０において、ソフトウェアの関連性を判定する動作の一例を示すフローチャートである。関連性判定部１４は、以下の動作を、例えば検証用コンピュータ１０の起動時に行ったり、一日の決まった時刻等に定期的に行ったりする。検証用コンピュータ１０において、関連性判定部１４は、処理情報保持部１３に保持されているソフトウェアの実行に関する情報のうち、一のユーザの情報を取得する（Ｓ９０１）。一のユーザの情報とは、同一ユーザが使用した記録対象ソフトウェアの情報である。ここで、一のユーザの情報は、一のユーザが一の検証用コンピュータ１０を占有する場合は、「装置情報」をキーとして情報を取得する。この場合、一の検証用コンピュータ１０の処理情報保持部１３に保持されている情報の全てが一のユーザの情報となる。また、検証用コンピュータ１０が複数ユーザにより共有される場合は、「ログイン・ユーザ」をキーとして情報を取得する。
【００４６】
次に、関連性判定部１４は、取得した情報のうち、一の記録対象ソフトウェアの起動および終了のエントリを抽出し（Ｓ９０２、Ｓ９０３）、このエントリに記録されている「同時実行ソフトウェア」の情報を抽出する（Ｓ９０４）。そして、関連性判定部１４は、抽出した「同時実行ソフトウェア」の情報に基づいて、記録対象ソフトウェアと関連性の高いソフトウェア（支援対象ソフトウェア）を特定し、関連性情報として関連性情報保持部１５に記録する（Ｓ９０５）。関連性判定部１４は、一のユーザに対応する全ての記録対象ソフトウェアに関して、Ｓ９０４およびＳ９０５の処理を行った後（Ｓ９０３でＮｏ）、他の一のユーザに関して同様の処理を行う（Ｓ９０６）。上述したように、検証用コンピュータ１０が複数ユーザにより共有される場合は、検証用コンピュータ１０にログインしたユーザごとに、同様の処理が行われる。全てのログイン・ユーザに関して情報の抽出および関連性情報保持部１５への記録を行ったならば（Ｓ９０６でＮｏ）、処理を終了する。
【００４７】
なお、上述した関連性の高いソフトウェアの情報を取得する動作およびソフトウェアの関連性を判定する動作において、図８および図９に示した手順は例示に過ぎない。各動作は、一のソフトウェアと関連性の高いソフトウェアを特定し、関連性情報として関連性情報保持部１５に記録するために行われるものであり、図８および図９を参照して説明した具体的な手順に限定されるものではない。例えば、図８に示す例では、記録対象ソフトウェアが起動したタイミングでプロセスの情報を取得するとした（Ｓ８０１、Ｓ８０２参照）。これに対し、記録対象ソフトウェアが起動してから一定時間経過後にプロセスの情報を取得したり、起動以外の特定のイベントが発生したことを条件としてプロセスの情報を取得したりしても良い。
【００４８】
＜利用側コンピュータ２０の動作＞
図１０は、利用側コンピュータ２０におけるソフトウェアの使用に関する支援の動作の一例を示すフローチャートである。ここでは、ソフトウェアの使用に関する支援として、関連性の高いソフトウェアを使用するか確認するメッセージを出力する場合を例として説明する。また、前提として、利用側コンピュータ２０の関連性情報取得部２２が検証用コンピュータ１０から関連性情報を取得して、取得した関連性情報が関連性情報保持部２３に保持されているものとする。
【００４９】
利用側コンピュータ２０において、ソフトウェア実行部２１が一のソフトウェアを実行すると（Ｓ１００１）、支援実行部２４が、実行中のソフトウェアのプロセスの情報（実行状況に関する情報）を取得し（Ｓ１００２）、支援処理の実行条件を満足したか否かを判断する（Ｓ１００３）。実行条件を満足すると、支援実行部２４は、関連性情報保持部２３に保持されている関連性情報を参照して、支援対象ソフトウェアを特定する（Ｓ１００４）。そして、支援対象ソフトウェアがある（利用側コンピュータ２０にインストールされている）場合（Ｓ１００５でＹｅｓ）、支援実行部２４は、特定した支援対象ソフトウェアに対する支援処理を実行し（Ｓ１００６）、ソフトウェアを起動するか確認するメッセージを出力する。一方、支援対象ソフトウェアがない（利用側コンピュータ２０にインストールされていない）場合（Ｓ１００５でＮｏ）、支援実行部２４は、処理を終了する。
【００５０】
なお、上述したソフトウェアの使用に関する支援の動作において、図１０に示した手順は例示に過ぎない。各動作は、一のソフトウェアに関して支援処理の実行条件を満足した場合に、支援対象ソフトウェアの使用を支援するために行われるものであり、図１０を参照して説明した具体的な手順に限定されるものではない。例えば、支援対象ソフトウェアがない場合に、支援対象ソフトウェアのインストールを促すメッセージを出力するようにしても良い。また、ソフトウェアの種類や利用側コンピュータ２０の設定によっては、支援対象ソフトウェアがある場合に、メッセージを出力してユーザに確認するのではなく、特定された支援対象ソフトウェアを起動するようにしても良い。
【００５１】
＜変形例＞
次に、いくつかの変形例について説明する。本実施形態は、検証用コンピュータ１０において、一のソフトウェアと関連性の高いソフトウェアを特定し、関連性情報を生成する。そして、本実施形態は、利用側コンピュータ２０において、一のソフトウェアに関して支援処理の実行条件を満足した場合に、関連性情報に基づいて特定される支援対象ソフトウェアの使用を支援する。ここで、図１に示した情報処理システム１００とは異なる情報処理システムに対して、本実施形態を適用することができる。
【００５２】
図１１は、第１変形例による情報処理システムの構成例を示す図である。図１１に示す情報処理システム１１０は、検証用コンピュータ１０および利用側コンピュータ２０に加えて、ユーザ管理サーバ４０が設けられている。ユーザ管理サーバ４０は、ネットワーク３０を介して検証用コンピュータ１０および利用側コンピュータ２０に接続されている。
【００５３】
ユーザ管理サーバ４０は、情報処理システム１１０に接続される各コンピュータのユーザを管理するサーバである。ユーザ管理サーバ４０は、例えば、図２に示すようなコンピュータ２００により実現される。また、ユーザ管理サーバ４０は、単体のコンピュータ２００で構成しても良いし、複数のコンピュータ２００による分散処理にて実現するように構成しても良い。ユーザ管理サーバ４０は、情報処理システム１１０に接続される各コンピュータのユーザの属性情報を保持している。属性情報には、例えば、ユーザの所属組織（会社、部署等）、業務、権限等の情報が含まれる。
【００５４】
図１１に示す情報処理システム１１０において、検証用コンピュータ１０は、ソフトウェアの実行に関する情報を処理情報保持部１３に記録する際に、ユーザ管理サーバ４０にアクセスし、自装置のユーザ（検証用コンピュータ１０が複数ユーザに利用される場合はログイン・ユーザ）の属性情報を取得する。そして、取得されたユーザの属性情報が、処理情報保持部１３に記録される。また、関連性判定部１４は、関連性情報において、関連性が高いと判定したソフトウェアの組に関して、それらのソフトウェアを実行したユーザの属性情報を取得し、それらのソフトウェアの関連性情報に対応付けて記録する。そして、このユーザの属性情報を含む関連性情報が利用側コンピュータ２０に送られる。
【００５５】
利用側コンピュータ２０は、支援処理の実行条件を満足し、支援実行部２４が支援対象ソフトウェアを特定する際に、ユーザ管理サーバ４０にアクセスし、自装置のユーザ（利用側コンピュータ２０が複数ユーザに利用される場合はログイン・ユーザ）の属性情報を取得する。そして、取得した属性情報が、先行ソフトウェアと支援対象ソフトウェアとの組に対応する関連性情報の属性情報と合致する場合に、支援実行部２４は、支援処理を実行する。
【００５６】
このようにすれば、ユーザの属性に応じて、ソフトウェアの使用に関する支援を行うか否かに関する詳細な制御を行うことができる。具体的には、例えば、ある先行ソフトウェアに関して支援処理の実行条件を満足したとき、利用側コンピュータ２０のユーザ（またはログイン・ユーザ）が特定の部署に所属する者であれば支援処理を実行し、その他の部署に所属する者である場合は支援処理を実行しないといった制御を行うことができる。
【００５７】
なお、上記の例では、検証用コンピュータ１０は、ソフトウェアの実行に関する情報を処理情報保持部１３に記録する際にユーザの属性情報を取得した。また、利用側コンピュータ２０は、支援処理の実行条件を満足して支援対象ソフトウェアを特定する際にユーザの属性情報を取得した。これに対し、各コンピュータ１０、２０を起動した際や、ユーザがログインした際に各コンピュータ１０、２０がユーザ管理サーバ４０にアクセスしてユーザの属性情報を取得し、保持しておくようにしても良い。
【００５８】
図１２は、第２変形例による情報処理システムの構成例を示す図である。図１２に示す情報処理システム１２０は、検証用コンピュータ１０および利用側コンピュータ２０に加えて、ソフトウェア管理サーバ５０が設けられている。ソフトウェア管理サーバ５０は、ネットワーク３０を介して利用側コンピュータ２０に接続されている。
【００５９】
ソフトウェア管理サーバ５０は、利用側コンピュータ２０がダウンロードしてインストールすることが可能なソフトウェアを保持し管理するサーバである。ソフトウェア管理サーバ５０は、例えば、図２に示すようなコンピュータ２００により実現される。また、ソフトウェア管理サーバ５０は、単体のコンピュータ２００で構成しても良いし、複数のコンピュータ２００による分散処理にて実現するように構成しても良い。
【００６０】
図１２に示す情報処理システム１２０において、利用側コンピュータ２０の支援実行部２４は、ある先行ソフトウェアに関して支援処理の実行条件を満足し、この先行ソフトウェアに対応する支援対象ソフトウェアが利用側コンピュータ２０にインストールされていない場合、ソフトウェア管理サーバ５０にアクセスし、支援対象ソフトウェアをダウンロードし、インストールする。なお、利用側コンピュータ２０に支援対象ソフトウェアがインストールされていない場合、直ちにソフトウェア管理サーバ５０から支援対象ソフトウェアをインストールするのではなく、インストールを促すメッセージやインストールするか否かをユーザに確認するメッセージを出力し、ユーザからの指示を受け付けて支援対象ソフトウェアのダウンロードおよびインストールを実行しても良い。
【００６１】
図１３は、第３変形例による情報処理システムの構成例を示す図である。図１３に示す情報処理システム１３０は、検証用コンピュータ１０および利用側コンピュータ２０に加えて、サービス・プロバイダ６０が設けられている。サービス・プロバイダ６０は、ネットワーク３０を介して検証用コンピュータ１０および利用側コンピュータ２０に接続されている。
【００６２】
サービス・プロバイダ６０は、ネットワークを介してサービス（Ｗｅｂサービスやクラウド・サービス）を提供するサーバである。サービス・プロバイダ６０は、例えば、図２に示すようなコンピュータ２００により実現される。また、サービス・プロバイダ６０は、単体のコンピュータ２００で構成しても良いし、複数のコンピュータ２００による分散処理にて実現するように構成しても良い。サービス・プロバイダ６０により提供されるサービスは、例えば、ネットワーク３０を介して利用されるアプリケーション・プログラム（Ｗｅｂアプリケーション）や、さらにバックエンドに置かれたアプリケーション・プログラムを用いた処理により実現される。また、サービス・プロバイダ６０により提供されるサービスには、ストレージやプロセッサ等のハードウェア資源の提供等も含む。
【００６３】
図１３に示す情報処理システム１３０において、検証用コンピュータ１０は、ソフトウェアの実行に加えて、サービス・プロバイダ６０により提供されるサービスの利用に関しても履歴情報を取得し、処理情報保持部１３に記録する。そして、関連性判定部１４は、検証用コンピュータ１０にインストールされているソフトウェアおよびサービス・プロバイダ６０により提供されるサービスの利用状況に基づき、関連性の高い組を特定し、関連性情報を生成する。
【００６４】
利用側コンピュータ２０において、支援処理の実行条件には、ソフトウェアの実行状況に基づく条件に加えて、サービス・プロバイダ６０により提供されるサービス（先行サービス）の利用状況に基づく条件が設定される。例えば、サービス・プロバイダ６０にアクセスして先行サービスの利用を開始したこと、先行サービスの利用を開始してから一定時間が経過したこと、先行サービスの利用中に特定の操作が行われたこと、特定の操作が行われてから一定時間が経過したこと、先行サービスの利用中に複数の特定の操作が特定の順番で行われたこと、先行サービスの利用を終了したこと、先行サービスの利用を終了してから一定時間が経過したこと等を、設定することができる。
【００６５】
また、利用側コンピュータ２０において、支援処理の対象には、サービス・プロバイダ６０により提供されるサービス（支援対象サービス）が含まれる。支援対象サービスに対する具体的な支援処理の内容としては、支援対象サービスの利用を促すメッセージや、支援対象サービスを利用するか否かを確認するメッセージを出力することが挙げられる。また、サービス・プロバイダ６０にアクセスして実際にサービスの利用を開始しても良い。
【００６６】
以上、本発明の実施形態について説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の技術思想の範囲から逸脱しない様々な変更や構成の代替は、本発明に含まれる。例えば、上記の実施形態において、検証用コンピュータ１０のソフトウェア監視部１２は、図８を参照して説明したように、一のソフトウェアが起動または終了した際に、同時実行ソフトウェアの情報を取得して処理情報保持部１３に記録した。これに対し、各ソフトウェアの実行時には動作履歴のみを取得して処理情報保持部１３に記録しておき、別途、バッチ処理により動作履歴を解析して同時に実行されているソフトウェアの組を検出し、処理情報保持部１３に記録するようにしても良い。
【００６７】
また、上記の実施形態では、検証用コンピュータ１０が、自装置におけるソフトウェアの使用状況に基づいてソフトウェア間の関連性を判定した。これに対し、検証用コンピュータ１０において取得されたソフトウェアの動作履歴の情報を用い、外部サーバ（検証用サーバ）においてソフトウェア間の関連性を判定する構成としても良い。このような構成とすれば、検証用コンピュータ１０を複数設けた場合に、検証用サーバが、各検証用コンピュータ１０で取得されたソフトウェアの動作履歴を収集し、一括してソフトウェア間の関連性を判定することができる。
【００６８】
また、上記の実施形態では、同時に実行されるソフトウェアの組がある場合に、同時に実行される頻度や時間等に基づいてソフトウェア間の関連性を判定した。この他、特定の順番で使用される複数のソフトウェアがある場合に、その順番で使用される頻度等に基づいてソフトウェア間の関連性を判定しても良い。また、同一のファイルを扱う複数のソフトウェアがある場合に、同一のファイルを扱う頻度等に基づいてソフトウェア間の関連性を判定しても良い。さらに、特定の文字列を含むファイル名を有するファイルを扱う複数のソフトウェアがある場合に、そのような事象の発生頻度等に基づいてソフトウェア間の関連性を判定しても良い。
【００６９】
また、上記の実施形態では、関連性の高いソフトウェアの組に関して、支援対象ソフトウェアに対する支援処理を行った。ここで、利用側コンピュータ２０に支援対象ソフトウェアがインストールされていない場合、支援処理として、インストールを促したり、インストールを実行したりすることを説明した。これに対し、検証側コンピュータ１０において関連性の低いソフトウェアの組を検出し、この関連性の低い複数のソフトウェアが利用側コンピュータ２０にインストールされている場合に、一方のソフトウェアのアンインストールを促す処理を行っても良い。この場合、アンインストールを促す対象のソフトウェアは、利用側コンピュータ２０において使用されていないソフトウェア等とすることができる。また、複数のユーザにより供用され、ライセンス数が制限されているソフトウェアが該当する場合、このソフトウェアをアンインストールさせることで、遊休ライセンスを発生させ、そのソフトウェアの使用を欲する他のユーザにライセンスを付与することができる。
【符号の説明】
【００７０】
１０…検証用コンピュータ、１１…ソフトウェア実行部、１２…ソフトウェア監視部、１３…処理情報保持部、１４…関連性判定部、１５…関連性情報保持部、１６…送受信制御部、２０…利用側コンピュータ、２１…ソフトウェア実行部、２２…関連性情報取得部、２３…関連性情報保持部、２４…支援実行部、２５…送受信制御部、３０…ネットワーク
【図１】
2019074901.tif 000003
【図２】
2019074901.tif 000004
【図３】
2019074901.tif 000005
【図４】
2019074901.tif 000006
【図５】
2019074901.tif 000007
【図６】
2019074901.tif 000008
【図７】
2019074901.tif 000009
【図８】
2019074901.tif 000010
【図９】
2019074901.tif 000011
【図１０】
2019074901.tif 000012
【図１１】
2019074901.tif 000013
【図１２】
2019074901.tif 000014
【図１３】
2019074901.tif 000015