(57)【要約】      （修正有）【課題】接続先装置毎に障害検出手段を設けることなく、接続先装置の一部機能の不調等を検出可能なコンピュータシステムを提供する。【解決手段】接続先装置とコンピュータとの間の接続時間を、接続先装置とコンピュータとの組み合わせ毎に測定する。測定結果に基づいて、接続先装置の動作が正常か否かを判断する。【選択図】図１８
2018173836.tif 000002
【特許請求の範囲】
【請求項１】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末とを備え、
前記接続先装置と前記端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
を備えるコンピュータシステム。
【請求項２】
前記接続時間は、前記端末と前記接続先装置との間で開始した最後の接続の接続時間である、請求項１に記載のコンピュータシステム。
【請求項３】
前記接続先装置のひとつである第１の接続先装置を含む組み合わせに係る前記接続時間を前記記憶装置に記憶した前記端末の数、及び、
前記第１の接続先装置と前記端末との組み合わせ毎の前記接続時間
に基づいて、前記第１の接続先装置の動作が正常であるか否かを判断する、請求項１または請求項２に記載のコンピュータシステム。
【請求項４】
前記接続先装置は、前記端末に予め関連付けられた第１のユーザ環境に基づいて動作し、
前記第１のユーザ環境に関連付けられた前記端末との前記接続時間を前記記憶装置に記憶した前記接続装置の数、及び、
前記第１のユーザ環境に関連付けられた前記端末と前記接続先装置との組み合わせ毎の接続時間
に基づいて、前記第１のユーザ環境が正常であるか否かを判断する、請求項１乃至請求項３のいずれかに記載のコンピュータシステム。
【請求項５】
前記接続先装置が依存する第１のコンポーネントの組み合わせを、前記接続先装置毎に前記記憶装置に予め記憶し、
前記第１のコンポーネントに依存して動作する接続先装置の数、
前記第１のコンポーネントに依存して動作する接続先装置と組み合わせて接続時間を記録した端末の数、及び、
前記第１のコンポーネントに依存して動作する接続先装置と端末との組み合わせに係る接続時間の長さ
に基づいて、前記第１のコンポーネントの動作が正常であるか否かを判断する、請求項１乃至請求項４のいずれかに記載のコンピュータシステム。
【請求項６】
前記接続先装置はシンクライアントサーバ上で動作する仮想マシンであり、前記端末は前記シンクライアントシステムのクライアント端末である、請求項１乃至請求項５のいずれかに記載のコンピュータシステム。
【請求項７】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
を備えるサーバ装置。
【請求項８】
前記接続時間は、前記端末と前記接続先装置との間で開始した最後の接続時間である、請求項７に記載のサーバ装置。
【請求項９】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
としてコンピュータを機能させるためのプログラム。
【請求項１０】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に予め記憶し、
前記記憶に基づいて、前記接続先装置の動作が正常か否かを処理装置が判断する
障害検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの動作が正常であるか否かの検出或いは障害の検出及び障害からの復旧に関する。
【背景技術】
【０００２】
コンピュータシステムには、当該コンピュータシステムに接続された資源を、複数のエンドユーザ端末から利用できるように構成されたものがある。この種のコンピュータシステムのひとつにシンクライアントシステムがある。シンクライアントシステムでは、エンドユーザが使用する端末には必要最小限の機能のみを持たせる一方、その他ほぼすべての処理をサーバ側で行う。シンクライアントシステムには様々な方式がある。
【０００３】
シンクライアントシステムの一方式として、サーバ側に仮想化技術を導入し、ユーザが使用するPC(Personal Computer)をサーバ上に仮想的に構築する手法がある。以下では、このときに仮想的に構築されるPCを仮想PCと呼ぶ。シンクライアントシステムの例としては、日本電気株式会社の「VirtualPCCenter」、VMware社の「VMware Horizon」、Citrix社の「XenDesktop」などがある。
【０００４】
シンクライアントシステムによればデータをサーバ側で一元管理することができる。このため情報漏えいを防止する等のセキュリティを強化することができるという利点がある。また、シンクライアントシステムによれば、エンドユーザが使用する仮想PCは全てサーバ側にあるため、メンテナンス工数を削減することができるという利点がある。
【０００５】
大規模なコンピュータネットワークを用いてシンクライアントシステムを構築すると、多いときには数千から数万台の仮想PCを管理することになる。このようなとき、特にメンテナンス工数の削減を図るため、シンクライアントシステムの方式として共有PC方式を採用することが多い。共有PC方式とは、その名の通り、1台の仮想PCを複数のエンドユーザで共有して使う方式である。共有PC方式ではエンドユーザ毎に仮想PCを用意する必要がない。このためシステム全体で用意する仮想PCの台数を削減することが可能となる。その結果、メンテナンス工数を削減することができる。  複数のエンドユーザが１台の仮想PCをそのままの状態で共有する場合、全エンドユーザは、自分の作業内容や好みに関わらず、一律に同じ環境を強いられる。例えばデスクトップの壁紙、デスクトップ上に配置するアイコンの種類や位置等、ひとつのデスクトップ環境が同じ仮想PCを利用する全エンドユーザに強制される。
【０００６】
このような不便さを解消するため、共有PC方式のシンクライアントシステムには、エンドユーザ毎に予め作成したカスタマイズ情報（以下ユーザ環境と記す）を、エンドユーザが仮想PCにログインするタイミングで読み込み、その仮想PCに適用するものがある。この種のシンクライアントシステムの管理者は、数千台から数万台の仮想PCに加えて、ユーザ数分のユーザ環境を管理する必要がある。
【０００７】
障害の発生を検出するために、特許文献１はフロントエンドサーバの障害を検出する手段を備えた負荷分散装置を含むシステムを開示している。この場合、負荷分散装置に設けられた障害検出手段は、フロントエンドサーバへ要求メッセージを送信し、一定時間以内に応答がなかった場合、そのフロントエンドサーバにおいて障害が発生したと判断する。
【０００８】
特許文献２は、複数のノードを有するクラスタシステムにおいて、クラスタを構成する複数のノードの中から異常の発生しているノードのみを正確に検出することを開示している。同文献によれば、障害の発生を検出される側である、ノードそれぞれに障害検出手段を設ける。自ノードでの障害発生を検出したノードは、障害監視ノードに通知する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−３１６８３７号公報
【特許文献２】特開２００７−１２２３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
仮想PC等の接続先装置における障害の検出に対し、特許文献１と同様の手法を適用したとする。このとき、障害の発生を検出できるのは、接続先装置のうち、特定の一部を含む部分乃至全体の動作が、遅延乃至停止した場合に限られる。
【００１１】
特許文献１の手法を適用すると、障害検出手段からの要求メッセージに対して応答する応答手段を仮想PCに設けることになる。この場合、仮想PC上で実行されるソフトウェアには、ユーザが利用しようとしているアプリケーションソフトウェアが含まれることになる。この状態で、仮想PCの一部ソフトウェアにおいてのみ障害が発生したとする。このとき上述の応答手段を含む他のソフトウェアは正常に動作する。このような状況では、障害検出手段は仮想PC全体が正常に動作していると誤認する恐れがある。
【００１２】
また、特許文献２によれば、障害発生の検出対象である全てのノードに、障害検出手段を設ける必要がある。特に、各ノードが複数のコンポーネントからなり、障害が発生したコンポーネントを特定する必要がある場合には、コンポーネント毎に障害検出手段を設ける必要がある。
【００１３】
いずれにしても、特許文献１及び２は、仮想PCを含むコンピュータシステムに適用することについて何等考慮していないし、適用したとしても上記した不都合が生じる。
【００１４】
以下では、仮想PCを含むシンクライアントサーバ側に設けられた各仮想PCを接続先装置と呼び、エンドユーザ側の端末をユーザ端末、クライアント端末、或いは単に端末と呼ぶものとする。尚、ここでいうユーザ端末、クライアント端末、端末は、必ずしも人による操作を前提とするものではない。ここでいうユーザ端末、クライアント端末、端末はIoT(Internet Of Things)で用いられる人が介在しない端末であってもよい。
【００１５】
本発明はこのような状況に鑑みてなされたものであり、本発明が解決しようとする課題は、接続先装置が完全に停止する前に、接続先装置の一部機能における不調や障害の発生を検出できるコンピュータシステム、障害検出方法、プログラムを提供することである。
【００１６】
また、本発明が解決しようとする他の課題は、複数の接続先装置のそれぞれに障害検出手段を設けることなく、接続先装置での障害発生を検出することが可能なコンピュータシステム、障害検出方法、プログラムを提供することである。
【課題を解決するための手段】
【００１７】
上述の課題を解決するため、本発明は、その一態様として、接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用するコンピュータとを備え、前記接続先装置と前記コンピュータとの間の接続時間を、前記接続先装置と前記コンピュータとの組み合わせ毎に測定して記憶装置に格納する手段、及び、前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段を備えるコンピュータシステムを提供する。
【００１８】
また、本発明は、他の一態様として、接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用するコンピュータとの間の接続時間を、前記接続先装置と前記コンピュータとの組み合わせ毎に測定して記憶装置に格納する手段、及び、前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段を備えるサーバ装置を提供する。
【００１９】
また、本発明は、他の一態様として、接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用するコンピュータとの間の接続時間を、前記接続先装置と前記コンピュータとの組み合わせ毎に測定して記憶装置に格納する手段、及び、前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段としてコンピュータを機能させるためのプログラムを提供する。
【００２０】
また、本発明は、他の一態様として、接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用するコンピュータとの間の接続時間を、前記接続先装置と前記コンピュータとの組み合わせ毎に測定して記憶装置に予め記憶し、前記記憶に基づいて、前記接続先装置の動作が正常か否かを処理装置が判断する障害検出方法を提供する。
【発明の効果】
【００２１】
本発明によれば、監視対象の全体が完全に停止する前の段階、即ち、監視対象の一部機能において不調や障害が発生した段階で、監視対象が正常に動作していないことを検出することができる。したがって、本発明は画面転送型シンクライアントシステムに適用して当該システムの健全性を容易に確認することができる。
【００２２】
尚、本発明によれば、監視対象の動作が正常であるか否かを、監視対象毎に監視手段を設けることなく、監視対象毎に判断することもできる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１実施形態であるコンピュータシステム１のブロック図である。
【図２】コンピュータシステム１の接続履歴テーブル2310の例である。
【図３】コンピュータシステム１の接続時間管理テーブル4310の例である。
【図４】コンピュータシステム１のパラメータテーブル4320の例である。
【図５】コンピュータシステム１の動作を説明するためのフローチャートである。
【図６】本発明の第２実施形態であるコンピュータシステム２のブロック図である。
【図７】コンピュータシステム２の接続履歴テーブル2320の例である。
【図８】コンピュータシステム２の接続時間管理テーブル4330の例である。
【図９】コンピュータシステム２のパラメータテーブル4340の例である。
【図１０】コンピュータシステム２の動作について説明するためのフローチャートである。
【図１１】コンピュータシステム２の動作について説明するためのフローチャートであり、図１０のフローチャートの続きである。
【図１２】本発明の第３実施形態であるコンピュータシステム３のブロック図である。
【図１３】コンピュータシステム３の接続履歴テーブル2330の例である。
【図１４】コンピュータシステム３の接続時間管理テーブル4350の例である。
【図１５】コンピュータシステム３の関連管理テーブル4360の例である。
【図１６】コンピュータシステム３のパラメータテーブル4370の例である。
【図１７】コンピュータシステム３の動作について説明するためのフローチャートである。
【図１８】本発明の原理を説明するためのブロック図である。
【発明を実施するための形態】
【００２４】
まず、図１８を参照して本発明の原理を説明する。本発明の原理に係るコンピュータシステム４は、端末100、接続先装置301、302、及び状態監視サーバ400によって構成されている。端末100は、例えば、接続先装置301と接続され、当該接続先装置301の機能を利用することができる端末である。状態監視サーバ400は接続先装置301又は302とユーザ端末100との間の接続時間を、接続先装置と端末100との組み合わせ毎に測定すると共に、測定結果を格納する記憶装置、及び、記憶装置に格納した接続時間に基づいて、接続先装置の動作が正常か否かを判断する処理装置を備えている。
【００２５】
［第１実施形態］
本発明の一実施形態に係るコンピュータシステム1について説明する。本実施形態では、シンクライアントサーバ上で動作する仮想PCが正常に動作しているか否かを判断し、その仮想PCの動作が異常であると判断する場合、シンクライアントサーバにて仮想PCを自動的に再作成する。本明細書では、端末とシンクライアントサーバ上の仮想PCとの一回の接続を開始してから終了するまでの時間を接続時間と呼ぶものとし、接続時間に基づいて仮想PCが正常に動作しているか否かを判断する。
【００２６】
図１を参照すると、コンピュータシステム1は、端末100、接続制御サーバ200、シンクライアントサーバ300、状態監視サーバ400を備える。端末100、接続制御サーバ200、シンクライアントサーバ300、状態監視サーバ400は、それぞれ、例えばLAN(Local Area Network)カード装置のようなデータ通信インタフェース装置を備え、LANを介して相互にデータ通信を行うことができるように構成されている。伝送媒体は有線であっても無線であってもよい。
【００２７】
端末100はプログラム制御で動作するコンピュータである。端末100上ではOS(Operating System)110が動作している。OS110上では接続処理部120、情報送信部130が動作している。
【００２８】
接続処理部120は、接続制御サーバ200から送信される接続先情報に基づいて、端末100をシンクライアントサーバ300上の仮想PCに接続する機能を有する。また、接続処理部120は、エンドユーザが仮想PCへのセッションを切断した等のセッション状況の変化を接続制御サーバ200へ送付するため、情報送信部130へ処理を指示する機能を有する。
【００２９】
情報送信部130は、接続処理部120からの指示で動作し、情報を接続制御サーバ200へ送信する機能を有する。
【００３０】
接続制御サーバ200はプログラム制御で動作するコンピュータである。接続制御サーバ200上ではOS(Operating System)210が動作している。OS210上では、接続管理部220、接続履歴管理部230、情報送信部240が動作している。接続制御サーバ200は、接続履歴管理部230に接続履歴テーブル2310(図2参照)を保持している。
【００３１】
接続管理部220は、端末の情報送信部130からの情報を受け取ったことで動作する。接続管理部220は、シンクライアントサーバ300上の仮想PC3100,3200の中から、端末100を接続させる仮想PCを選択する機能を有する。接続管理部220は、接続先情報を端末100へ送信するため、情報送信部240へ処理を指示する機能を有する。接続先情報は接続管理部220が選択した仮想PCを示す情報である。また、接続管理部220は、後述する接続履歴テーブル2310の更新処理を接続履歴管理部230に指示する機能を有する。
【００３２】
接続履歴管理部230は、接続管理部220からの指示で動作し、接続情報の履歴を保有する。接続履歴管理部230は履歴情報を保有するため、接続履歴テーブル2310へのアクセス権を有する。また、接続履歴管理部230は、状態監視サーバ400に対し接続履歴情報を送信するため、情報送信部240へ処理を指示する機能を有する。
【００３３】
接続履歴テーブル2310は接続情報を管理するためのテーブルである。接続情報とは、端末と仮想PCとの間の接続に関する情報である。図２の例では、ユーザ1は仮想PC1に5/1 9:00に接続を開始し、接続時間は1分間（つまり5/1 9:01に接続終了）であり、この接続は現時点で既に終了していることが分かる。
【００３４】
情報送信部240は、接続管理部220および接続履歴管理部230からの指示で動作し、情報を端末100や状態監視サーバ400へ送信する機能を有する。
【００３５】
シンクライアントサーバ300はプログラム制御により動作するコンピュータである。シンクライアントサーバ300上ではハイパーバイザー310が動作している。ハイパーバイザー310は、VM(Virtual Machine、仮想マシン)を動かすために必要なソフトウェアである。ハイパーバイザー310は、サーバ300が持っているCPU(Central Processing Unit)やメモリといった資源を各VMへ割り当てる機能を有する。
【００３６】
VM3100,3200即ち仮想PC3100、3200は、それぞれハイパーバイザー310上で動作している論理マシンであり、物理マシンをエミュレートしたものとなっている。つまり、VM3100,3200には、仮想的なHW(Hardware)3110,3210が実装され、その上でOS3120,3220が動作し、更にその上で業務AP(Application software)3130,3230が動作するという環境によって構成されている。図１では、ハイパーバイザー310上に2台の仮想PC3100、3200を動作させた状態を図示しているが、シンクライアントサーバ300の資源によって3台以上の仮想PCを動作させることとしてもよい。尚、本実施形態では、ハイパーバイザー310が作成或いは再作成する仮想PCはいずれも同等であるとする。即ち、ハイパーバイザー310はどの論理マシンに対しても等しい量のプロセッサ資源、メモリ資源を割り当てるものとする。
【００３７】
更に、図１に示された状態監視サーバ400はプログラム制御で動作するコンピュータである。状態監視サーバ400上ではOS(Operating System)410が動作している。OS410上では接続情報取得部420、状態判断部430、仮想PC制御部440が動作している。状態監視サーバ400は、接続時間管理テーブル4310（図3）、パラメータテーブル4320(図4)を情報判断部430に保持している。
【００３８】
接続情報取得部420は状態判断部430からの指示で動作し、接続制御サーバ200から接続履歴情報を取得する機能を有する。
【００３９】
状態判断部430は、接続時間管理テーブル4310およびパラメータテーブル4320の情報を元に、正常に動作していない仮想PCやユーザ環境、その他のコンポーネントを特定する機能を有する。また、状態判断部430は、接続時間管理テーブル4310を作成するため、接続情報取得部420へ処理を指示する機能を有する。また仮想PC再作成のため仮想PC制御部440へ処理を指示する機能を有する。また接続時間管理テーブル4310およびパラメータテーブル4320へのアクセス権を有する。
【００４０】
仮想PC制御部440は状態判断部430からの指示で動作し、シンクライアントサーバ300に対して特定の仮想PCの再作成を指示する機能を有する。
【００４１】
図１〜4を参照して、図に示されたコンピュータシステム1の動作を説明する。
【００４２】
ここでは、図2〜4に示された接続管理テーブル2310が接続履歴管理部230に格納され、接続時間管理テーブル4310及びパラメータテーブル4320が状態判断部430に格納されているものとする。
【００４３】
状態監視サーバ400の状態判断部430は、接続制御サーバ200の接続管理テーブル2310の情報を元に、図３に示す接続時間管理テーブル4310を作成する。接続時間管理テーブル4310はどのエンドユーザがどの仮想PCに何分間接続していたかを表すものである。同じエンドユーザが同じ仮想PCに複数回接続していた場合は、最新（最後に接続したもの）の情報を使用して作成する。例えば、図3を参照すると、エンドユーザであるユーザ2は仮想PC2に5時間30分接続していたことが分かる。
【００４４】
図４には、図1の状態判断部430に設けられたパラメータテーブル4320の一例が示されている。図4に示されたパラメータテーブル4320は、正常に動作していない仮想PCの判断条件を示している。ここでは、最小ユーザ数と最大接続時間が設定値をあらわすパラメータとして挙げられている。
【００４５】
具体的に説明すると、図４のパラメータテーブル4320の最小ユーザ数の設定値「２」は、接続時間管理テーブル4310のひとつの列に、接続時間が記録されたユーザが２人以上いるという条件を示す。また、図４のパラメータテーブル4320の最大接続時間の閾値「３分」は、接続時間管理テーブル4310のひとつの列の列に記録された接続時間のうち、最大のものが３分以下であるという条件を示している。
【００４６】
例えば、図４のパラメータテーブル4320と、図３の接続時間管理テーブル4310に基づいて、図2に示された状態を判断するものとする。ここで、仮想PC1の列に接続時間が記録されたユーザは図2に示す通り、ユーザ１、ユーザ３の二人である。仮想PC2の列に接続時間が記録されたユーザはユーザ２の一人である。仮想PC3の列に接続時間が記録されたユーザはユーザ３の一人である。従って、図４のパラメータテーブル4320の最小ユーザ数の値「２」を満たすのは仮想PC１のみである。
【００４７】
この点を考慮して状態判断部430は図４のパラメータテーブル4320の最大接続時間の閾値「３分」の条件を仮想PC１が満たすか判断する。図３の接続時間管理テーブル4310によれば、仮想PC1への接続時間は、ユーザ１は１分であり、ユーザ３は2分なので、接続時間管理テーブル4310に記録された接続時間のうち、最大接続時間は2分である。この最大接続時間は、図４のパラメータテーブル4320の最大接続時間の閾値「３分」以下という条件に合致する。従って、このとき状態判断部430は、仮想PC1、PC2、PC3のうち、仮想PC１は、図４のパラメータテーブル4320に示された全ての条件に合致したものと判断する。換言すれば、仮想PC1は正常に動作していないものと、状態判断部430は判断する。
【００４８】
次に、コンピュータシステム１の動作について図５を参照して更に詳細に説明する。この動作は一定時間毎に実行される。
【００４９】
まず、状態監視サーバ400では、状態判断部430が接続情報取得部420に対して接続情報の取得を依頼する（ステップS101）。接続情報取得部420は接続制御サーバ200に対して接続情報の取得を依頼する（ステップS102）。
【００５０】
接続制御サーバ200では接続履歴管理部230が接続情報取得依頼を受信する。接続履歴管理部230は接続履歴テーブル2310の情報を情報送信部240経由で状態監視サーバ400へ送信する（ステップS103）。
【００５１】
状態監視サーバ400では接続情報取得部420が接続情報を受信する。接続情報取得部420は受信した接続情報を状態判断部430へ渡す（ステップS104）。受け取った接続情報を用いて、状態判断部430は、接続時間管理テーブル4310を作成乃至更新する(ステップS105)。接続時間管理テーブル4310の作成乃至更新は、エンドユーザのそれぞれと仮想PCのそれぞれとの組み合わせ毎に行う。
【００５２】
最後の接続が既に終了している場合、状態判断部430は、その接続の開始から終了までの経過時間を接続時間管理テーブル4310の該当する欄に接続時間として格納する。一方、最後の接続が現に継続中の場合、状態判断部430は、その接続の開始から現在までの経過時間を接続時間管理テーブル4310の該当する欄に接続時間として格納する。
【００５３】
例えば、接続制御サーバ200は、現在、図２に例示した接続履歴テーブル2310を接続履歴管理部230に保持しているものとする。このとき、接続履歴テーブル2310に基づいて更新された接続時間管理テーブル4310は図３のようになる。図２の接続履歴テーブル2310において、ユーザ１に着目すると、接続先仮想PCとして仮想PC１が登録されていて、その接続時間は1分である。このため、図３の接続時間管理テーブル4310において、ユーザ１の行には仮想PC１の欄に1分と記入され、他の欄には未記入である。同様に、図２の接続履歴テーブル2310にはユーザ２に関して仮想PC２への接続時間として5時間30分が記入されているので、図３の接続時間管理テーブル4310ではユーザ２の行の仮想PC２の欄に5時間30分が記入され、他の欄は空欄である。一方、ユーザ３に関し、図２の接続履歴テーブル2310には仮想PC1への接続時間として2分が記入され、仮想PC３への接続時間として4時間20分が記入されている。このため、図３の接続時間管理テーブル4310ではユーザ３行の仮想PC１、仮想PC３の行にそれぞれ2分、4時間20分が記入される。
【００５４】
状態判断部430は、ステップS105で作成した接続時間管理テーブル4310の内容を、パラメータテーブル4320に記載の条件に当てはめて、正常に動作していない仮想PCが存在するか否か判断する（ステップS106）。
【００５５】
パラメータテーブル4320に記載の条件をすべて満たす仮想PCは、正常に動作していないと判断する（ステップS107）。
【００５６】
一般に、仮想PCが上手く動かない或いは正常に動作しない場合、エンドユーザがその仮想PCを長時間利用し続けるとは考えにくい。普通、エンドユーザはそうした問題がある仮想PCの利用を短時間で終了するものと考えられる。従って、正常に動作している仮想PCへの接続時間と比較したとき、正常に動作していない仮想PCへの接続時間は短くなると考えられる。本実施形態はこのような仮想PCの利用形態に着目したものである。
【００５７】
ステップS107において、状態判断部430は、接続時間が短い接続が特定の仮想PCに偏っている場合、その仮想PCが正常に動作していないと判断する。
【００５８】
今、接続時間管理テーブル4310が図３のような値を格納しているものとする。このとき、接続時間管理テーブル4310によれば、仮想PC1に接続したユーザ1、ユーザ3の2名で接続時間が2分以内である。このため、パラメータテーブル4320に記載の条件、即ち、接続時間が記録されたユーザが二人以上（最大ユーザ数２に対応）であるという条件と、それらのユーザの接続時間のうち、最長のものが３分以下（最大接続時間３分に対応）であるという条件との両方を満たす。このため、状態判断部430は仮想PC1が正常に動作していないと判断する。
【００５９】
正常に動作していない仮想PCが存在する場合、状態判断部430は仮想PC制御部440に仮想PCの再作成を指示する(ステップS108)。仮想PC制御部440は、シンクライアントサーバ300に対し、仮想PCの再作成を指示する(ステップS109)。この指示を受けて、ハイパーバイザー310は仮想PCを再作成する。
【００６０】
ステップS107での判断は、エンドユーザによる接続時間の長短に基づくものである。このため、状態判断部430は、仮想PCが実際には正常に動作しているにもかかわらず、異常動作していると誤った判断を下す場合がある。しかしながら、上述のようにハイパーバイザー310は資源割当量が同じ仮想PCを作成するため、異常動作の判断をした仮想PCに実際には問題がなかったとしても、仮想PC再作成による影響はない。
【００６１】
ステップS106にて、パラメータテーブル4320に記載の条件をすべて満たす仮想PCが存在しない場合、本フローは終了する。
【００６２】
以上、本実施形態によれば、エンドユーザから見て正常に動作していない仮想PCを、エンドユーザからの明示的な要求を待つことなく、システムが自動的に判別し、その修復を行うことができる。一般に、シンクライアントシステムのエンドユーザは、仮想PCの動作が通常とは異なる場合、その仮想PCへの接続を一度切断し、再接続を行う傾向がある。そのため、正常に動作していない仮想PCへの接続は、ユーザを問わず短時間で終了することが多い。本実施形態はこのような知見に基づいて正常に動作していない仮想PCを判断するものである。
【００６３】
尚、本実施形態では、ハイパーバイザー310が作成或いは再作成する仮想PCはいずれも同等であるとして説明した。これは、ステップS109の仮想PCの再作成についての説明を簡単にするためである。本実施形態を変形して、割り当てる資源量を仮想PC毎に定めることとしてもよい。この場合、ハイパーバイザー310は、正常に動作していない仮想PCと同じだけの資源量を割り当てた仮想PCを作成する。また、図４に示された最小ユーザ数及び最大接続時間は、必要に応じて変更可能である。
【００６４】
［第２実施形態］
本発明の第２実施形態に係るコンピュータシステム２について説明する。コンピュータシステム１において対応する機能を有するブロックについては同じ参照符号を付与している。コンピュータシステム１の対応するブロックと動作が同じ場合には説明を省略することがある。
【００６５】
図６を参照すると、コンピュータシステム２は、端末100、接続制御サーバ200、シンクライアントサーバ300、状態監視サーバ400、ユーザ環境管理サーバ500を備える。コンピュータシステム２は、特に、ユーザ環境管理サーバ500を備える点でコンピュータシステム１と異なる。
【００６６】
端末100の情報送信部130は、接続処理部120およびユーザ問合せ部140からの指示で動作する。情報送信部130は、情報を接続制御サーバ200およびユーザ環境管理サーバ500へ送信する機能を有する。
【００６７】
図示されたユーザ問合せ部140は情報送信部450からの情報で動作する。ユーザ問合せ部140はユーザに対してユーザ環境の初期化を行ってよいか問い合わせる機能を有する。また、ユーザ問合せ部140は、ユーザが初期化を行って良いと判断した場合、その処理をユーザ環境管理サーバ500へ依頼するため、情報送信部130へ処理を指示する機能を有する。
【００６８】
接続制御サーバ200は、接続履歴管理部230に接続履歴テーブル2320を情報として保持している。接続履歴テーブル2320は、端末100から仮想PC3100、3200への接続情報を管理するものである。図７の接続履歴テーブル2320によれば、ユーザ2は、仮想PC1に5/1 9:00に接続を開始し、接続時間は1分間（つまり5/1 9:01に接続終了）であり、現在はすでにこの接続を終了している。
【００６９】
状態監視サーバ400は状態判断部430に情報を保持している。保持している情報には、接続時間管理テーブル4330（図８）、パラメータテーブル4340(図９)に格納された情報がある。状態判断部430は接続時間管理テーブル4330およびパラメータテーブル4340の情報を元に、正常に動作していない仮想PCやユーザ環境、その他のコンポーネントを特定する機能を有する。また、接続時間管理テーブル4330を作成するため、状態判断部430は接続情報取得部420へ処理を指示する機能を有する。また、状態判断部430はユーザに対してユーザ環境初期化を行ってよいか問合せを行うため、処理を情報送信部450へ指示する機能を有する。更に、状態判断部430はまた接続時間管理テーブル4330およびパラメータテーブル4340へのアクセス権を有する。
【００７０】
情報送信部450は、状態判断部430からの指示で動作し、ユーザ端末100に対して情報を送信する機能を有する。
【００７１】
更に、ユーザ環境管理サーバ500はプログラム制御で動作するコンピュータである。ユーザ環境管理サーバ500上ではOS(Operating System)510が動作している。OS410上ではユーザ環境管理部520、ユーザ環境処理部530が動作している。ユーザ環境管理部520は、各エンドユーザのユーザ環境情報を管理する機能を有する。ユーザ環境処理部530は、ユーザ端末100からの指示で動作し、ユーザ環境の初期化を行う機能を有する。
【００７２】
接続時間管理テーブル4330は接続管理テーブル2320の情報を元に状態判断部430で作成される。接続時間管理テーブル4330はどのエンドユーザがどの仮想PCに何分間接続していたかを表す。一人のエンドユーザが同じ仮想PCに複数回接続していた場合は、最新の情報（最後の接続に関する情報）を使用して作成する。例えば図８を参照すると、ユーザ1は仮想PC2に5時間30分接続していたことが分かる。
【００７３】
図９に示されたパラメータテーブル4340はユーザ環境が正常に動作しない条件を記載したテーブルである。ここに記載されている条件すべてに合致する場合、当該仮想PCは正常に動作していないと、状態判断部430は判断する。
【００７４】
図９のパラメータテーブル4340のうち、最大仮想PC数の設定値「２」は、接続時間管理テーブル4330においてある一人のユーザに着目したとき、接続時間が記録された仮想PCが2台以上あるという条件を示す。また、最大接続時間の設定値「３分」は、接続時間管理テーブル4330においてある一人のユーザに着目したとき、記録された接続時間のうち、最長のものが３分以下であるという条件である。
【００７５】
ここで、図８の接続時間管理テーブル4330に対して、図９のパラメータテーブル4340に規定した条件を適用する場合を例に説明する。図８の接続時間管理テーブル4330に接続時間が記録された仮想PCの台数は、ユーザ１の場合は１台（仮想PC2）、ユーザ２の場合は２台（仮想PC1、PC3）、ユーザ３の場合は１台（仮想PC3）である。従って、最大仮想PC数の条件を満たすのはユーザ2のみである。
【００７６】
次に、ユーザ２について各仮想PCへの接続時間を見ると、仮想PC1との接続時間が１分であり、仮想PC3との接続時間が２分である。従って、ユーザ２の最大接続時間は２分となる。この最大接続時間の値は、図９のパラメータテーブル4340に規定した最大接続時間の閾値である3分以下である。以上から、図８の接続時間管理テーブル4330に対して、図９のパラメータテーブル4340に規定した条件を適用する場合、状態判断部430はユーザ２のユーザ環境は正常ではないと判断する。
【００７７】
図１０、１１を参照して、コンピュータシステム２の動作について説明する。コンピュータシステム２はここで説明する動作を一定時間毎に開始する。
【００７８】
状態監視サーバ400において、状態判断部430が接続情報取得部420に対して接続情報の取得を依頼する（S201）。接続情報取得部420は接続制御サーバ200に対して接続情報の取得を依頼する（S202）。
【００７９】
この接続情報取得依頼を接続制御サーバ200の接続履歴管理部230が受信する。接続履歴管理部230は接続履歴テーブル2320の情報（接続情報）を情報送信部240経由で状態監視サーバ400へ送信する（S203）。
【００８０】
この接続情報を状態監視サーバ400の接続情報取得部420が受信する。接続情報取得部420はその内容を状態判断部430へ渡す（S204）。受け取った接続情報を用いて、状態判断部430は接続時間管理テーブル4330を作成する(S205)。状態判断部430は、各エンドユーザと仮想PCの組み合わせ毎に、そのユーザがその仮想PCに最後に接続した時の接続時間を登録することにより、接続時間管理テーブル4330を作成する。
【００８１】
状態判断部430はS205で作成した接続時間管理テーブル4330の内容を確認し、パラメータテーブル4340記載の条件から正常ではないユーザ環境が存在するかを確認する（S206）。
【００８２】
ユーザ環境が正常ではない場合、そのユーザ環境を利用するエンドユーザは、どの仮想PCに接続しても接続時間が短くなると考えられる。本実施形態ではこのような観点からユーザ環境が正常か否かを判断する。あるエンドユーザが複数（パラメータテーブル4340の最小仮想PC数に対応）の仮想PCに接続して、それらのどの仮想PCでも接続時間が短い（パラメータテーブル4340の最大接続時間に対応）場合、そのエンドユーザのユーザ環境は正常ではないと判断する(S207)。
【００８３】
例えば、図８の接続時間管理テーブル4330に対して、図９のパラメータテーブル4340を適用して判断すると、ユーザ2は仮想PC1と仮想PC3の2台に接続し、どちらの接続も接続時間が2分以内である。このためパラメータテーブル4340記載の条件に全て合致する。このとき、状態判断部430は、ユーザ2のユーザ環境が正常ではないと判断する。すべてのユーザ環境が正常に動作している場合、本フローは終了する。
【００８４】
正常ではないユーザ環境が存在した場合、状態判断部430はユーザ環境初期化を行うため、情報送信部450に対して端末100にユーザ環境初期化の問い合わせ情報を送信するよう指示する(S208)。情報送信部450は端末100に対して情報を送信する(S209)。
【００８５】
このユーザ環境初期化の問い合わせ情報を端末100のユーザ問合せ部140が受信する。ユーザ問合せ部140はエンドユーザに対してユーザ環境の初期化を行ってよいかを問い合わせる(S210)。エンドユーザがユーザ環境の初期化を拒否した場合はフローを終了する(S211)。
【００８６】
エンドユーザがユーザ環境の初期化を承諾した場合、ユーザ問合せ部140はユーザ環境の初期化を実施するため、情報送信部130に対してユーザ環境の初期化依頼をユーザ環境管理サーバ500へ送信するよう指示する(S212)。情報送信部130はユーザ環境管理サーバ500に対してユーザ環境の初期化依頼を送信する(S213)。
【００８７】
このユーザ環境初期化依頼の情報をユーザ環境管理サーバ500のユーザ環境処理部530が受信する。ユーザ環境処理部530はユーザ環境の初期化を実施し、フローは終了する(S214)。
【００８８】
以上、本実施形態によれば、壊れたユーザ環境を自動的に判別し、エンドユーザ判断によりエンドユーザ自らユーザ環境の初期化を行うことができることである。その理由は、ユーザ環境が壊れたことを仮想PCへの接続履歴から検出し、エンドユーザに判断を促すからである。一般に、ユーザ環境が壊れた場合、その壊れたユーザ環境を使用しているエンドユーザは、どの仮想PCに接続しても正常に動作しない。このため、そのエンドユーザの接続時間は、仮想PCがどれであっても短くなることが予想される。このような知見に基づいて、本実施形態では、接続時間が短い仮想PCとエンドユーザの組み合わせを確認することにより、ユーザ環境に問題があるか否かをシステムが判断する。
【００８９】
［第3実施形態］
本発明の第３実施形態に係るコンピュータシステム３について説明する。コンピュータシステム１、２において対応する機能を有するブロックについては同じ参照符号を付与している。コンピュータシステム１、２の対応するブロックと動作が同じ場合には説明を省略することがある。
【００９０】
図１２に示すように、コンピュータシステム３は、端末100、接続制御サーバ200、シンクライアントサーバ300、状態監視サーバ400を備える。
【００９１】
接続制御サーバ200は接続履歴管理部230に接続履歴テーブル2330を保持している。接続履歴テーブル2330は、端末から仮想PCへの接続情報を管理するためのテーブルである。図１３の例によれば、端末100を使用するユーザ2は仮想PC1に5/1 9:00に接続を開始し、接続時間は1分間（つまり5/1 9:01に接続終了）である。また、この接続は現在すでに終了している。
【００９２】
状態監視サーバ400は状態判断部430を備える。状態判断部430は、接続時間管理テーブル4350、関連管理テーブル4360、パラメータテーブル4370を記憶装置に保持している。
【００９３】
状態判断部430は接続管理テーブル2330の情報を元に接続時間管理テーブル4350を作成する。接続時間管理テーブル4350はどのユーザがどの仮想PCに何分間接続していたかを表すテーブルである。一人のエンドユーザが同じ仮想PCに複数回接続していた場合は、最新（最後の接続）の情報を使用して作成する。図１４の例によればユーザ1は仮想PC3に1時間接続していたことが分かる。
【００９４】
システム管理者等は関連管理テーブル4360を事前に作成する。関連管理テーブル4360は、仮想PCが依存する資源、特にハードウェア資源、ネットワーク資源のコンポーネントに関する情報を格納している。図１５の関連管理テーブル4360は、仮想PCを動作させるハイパーバイザー乃至シンクライアントサーバ、仮想PCが利用しているストレージ、仮想PCが所属するネットワークの３つのコンポーネントについての情報を各仮想PCについて格納している。仮想PC1を例に挙げると、仮想PC1はサーバ1上で動作し、仮想PC1を動作させるために必要なデータはストレージ1に保管されていて、端末100と仮想PC1をつなぐネットワークはネットワーク1に所属している。
【００９５】
パラメータテーブル4370は被疑コンポーネントの判断条件を記載したものである。被疑コンポーネントとは、正常に動作していない恐れがあるコンポーネントである。パラメータテーブル4370に記載の条件すべてを満たす場合、そのコンポーネントを被疑コンポーネントと判断する。例えば図１６のパラメータテーブル4370によれば条件は次の条件１〜条件３の３つである。
【００９６】
（条件１：最小ユーザ数）
関連管理テーブル4360においてそのコンポーネントと関連付けられている仮想PCに接続したエンドユーザが、接続時間管理テーブル4350に最小ユーザ数（図１６では2人）以上登録されている。
【００９７】
（条件２：最小仮想PC数）
そのコンポーネントと関連付けられている仮想PCが、関連管理テーブル4360に最小仮想PC数（図１６では2台）以上登録されている。
【００９８】
（条件３：最大接続時間）
関連管理テーブル4360においてそのコンポーネントと関連付けられている仮想PCへの接続が、最大接続時間としての閾値（図１６では３分）以内である。
【００９９】
状態判断部430は接続時間管理テーブル4350、関連管理テーブル4360の情報およびパラメータテーブル4370を元に、正常に動作していない仮想PCやユーザ環境、その他のコンポーネントを特定する機能を有する。また、接続時間管理テーブル4350を作成するため、接続情報取得部420へ処理を指示する機能を有する。また管理者に対して通知を出すため、管理者通知部460へ処理を指示する機能を有する。また接続時間管理テーブル4350、関連管理テーブル4360およびパラメータテーブル4370へのアクセス権を有する。
【０１００】
管理者通知部460は状態判断部430からの指示で動作し、管理者へ通知を出す機能を有する。通知の方法は特に問わない。例えば、管理者の電子メールアドレスを予め登録しておき、その電子メールアドレスに通知すべき内容を記載した電子メールを送信することが考えられる。電子メールの代わりに、或いは、電子メールと共に、SMS(Short Message Service)、インスタントメッセージサービス等を用いることとしてもよい。
【０１０１】
図１７を参照して、コンピュータシステム３の動作について説明する。コンピュータシステム３では、被疑コンポーネントを特定し、特定した被疑コンポ―ネットを管理者に通知する。コンピュータシステム３は以下に説明する動作を一定時間ごとに開始する。
【０１０２】
状態判断部430が接続情報取得部420に対して接続情報の取得を依頼する（S301）。接続情報取得部420は接続制御サーバ200に対して接続情報の取得を依頼する（S302）。
【０１０３】
接続制御サーバ200では、この接続情報取得の依頼を接続履歴管理部230が受信する。この接続情報取得依頼に応じて、接続履歴管理部230は、接続履歴テーブル2330の接続情報を情報送信部240経由で状態監視サーバ400へ送信する（S303）。
【０１０４】
状態監視サーバ400では、この接続情報を接続情報取得部420が受信する。接続情報取得部420は接続情報の内容を状態判断部430へ渡す（S304）。受け取った接続情報を用いて、状態判断部430は、接続時間管理テーブル4350を作成する(S305)。状態判断部430は、各エンドユーザと仮想PCの組み合わせ毎に、最後に接続した時の接続時間を接続時間管理テーブル4350に登録する。
【０１０５】
次に、状態判断部430は、S305で作成した接続時間管理テーブル4350の内容と、関連管理テーブル4360の内容を確認し、パラメータテーブル4370記載の条件から被疑コンポーネントを特定する(S306)。この特定は何らか被疑コンポーネントが存在する場合、そのコンポーネントに関連する仮想PCへの接続のみ接続時間が短くなることから判断する。同一コンポーネントに依存して動作する複数の仮想PCそれぞれについて、各ユーザとの接続時間を所定の閾値と比較し、どのユーザとの接続時間も閾値以下の場合、そのコンポーネントを被疑コンポーネントと判断する。
【０１０６】
より詳しくは、関連管理テーブル4360に格納されたコンポーネントそれぞれについて以下のような判断を行う。
【０１０７】
（１）接続時間管理テーブル4350において、ある一人のユーザに着目したとき、そのコンポーネントに依存して動作する仮想PCが2台以上あること。パラメータテーブル4370、「最小仮想PC数」の値「２」に対応する。接続時間管理テーブル4350に基づいて判断する。図１４の接続時間管理テーブル4350の場合、仮想PC1、仮想PC2、仮想PC3が条件を満たすためそれらの仮想PCに関連しているコンポーネントすべてが条件を満たす。
【０１０８】
（２）そのコンポーネントに依存して動作する仮想PCへの接続時間が記録されたユーザが2人以上いること。パラメータテーブル4370、「最小ユーザ数」の値「２」に対応する。
【０１０９】
コンポーネント「シンクライアントサーバ」の値がサーバ１である仮想PC1について、接続時間管理テーブル4350を参照すると、ユーザ２、ユーザ３の二人について接続時間が記録されている。従って、二人以上のユーザについて接続時間が記録されているので、サーバ１は（２）の条件を満たす。
【０１１０】
コンポーネント「ネットワーク」の値がネットワーク１である仮想PC3について、接続時間管理テーブル4350を参照すると、ユーザ１、ユーザ２の二人について接続時間が記録されている。従って、二人以上のユーザについて接続時間が記録されているので、ネットワーク１は（２）の条件を満たす。
【０１１１】
（３）（２）の接続時間はどれも３分以内であること。パラメータテーブル4370、「最大接続時間」の値「３分」に対応する。
【０１１２】
コンポーネント「シンクライアントサーバ」の値がサーバ１である仮想PC1について、接続時間管理テーブル4350を参照すると、ユーザ1の接続時間は1分であり、ユーザ2の接続時間は2分である。どちらの接続時間も３分以内なので、サーバ1は（３）の条件を満たす。
【０１１３】
コンポーネント「ネットワーク」の値がネットワーク１である仮想PC3について、接続時間管理テーブル4350を参照すると、ユーザ１の接続時間は1時間であり、ユーザ２の接続時間は5時間30分である。どちらの接続時間も３分を越えるので、ネットワーク１は（３）の条件を満たしていない。
【０１１４】
被疑コンポーネントが存在しない場合、本フローは終了する。
【０１１５】
被疑コンポーネントが存在した場合、状態判断部430は管理者通知部460に対して管理者へ通知を出すように指示する(S308)。管理者通知部460は管理者へ通知を出して、本フローは終了する(S309)。
【０１１６】
以上、本実施形態によれば、シンクライアントシステム全体の動作の正常性、特に、エンドユーザから見た仮想PCの動作の正常性をシステムの管理者が容易に確認することができる。その際、本実施形態では、仮想PCを構成する資源のコンポーネント毎にログを収集することや、コンポーネント毎の正常性判断を行う必要がない。本実施形態では、エンドユーザが仮想PCに実際に接続した時間に基づいて、システム全体の状態を判断するためである。より直接的な判断手法として、コンポーネント毎にログの取得や異常検出を行う手段を設けることが考えられるが、本実施形態によればこのような手段を設ける必要はない。従って、本実施形態は大規模或いは複雑なシンクライアントシステムに対しても容易に適用することができる。
【０１１７】
また、本実施形態によれば、物理サーバやストレージ装置、ネットワークなどの障害被疑可能性を判別し、管理者に対して通知を行うことができる。その理由は、事前に仮想PCがどの物理サーバやストレージ、ネットワークに接続（関係）しているかを関係管理テーブル4360として定義しておくことにより、接続時間が短い仮想PCの情報から障害が発生している可能性のあるコンポーネントを特定することができるためである。
【０１１８】
［実施形態の変形］
以上、本発明を実施の形態に即して説明したが、本発明はこれらの実施形態に限定されるものではない。
【０１１９】
例えば、上述の実施形態では、端末の接続先を仮想PCとして説明した。しかし、接続先が物理サーバや物理クライアントの場合であっても本発明を適用することができる。
【０１２０】
また、上述の実施形態のうちの複数を、同一のコンピュータシステムに対して適用することとしてもよい。例えば、第１実施形態と第2実施形態とを同じコンピュータシステムに適用して、仮想PCとユーザ環境の両方について動作が正常か否かを判断することとしてもよい。
【０１２１】
上述の実施形態では、正常に動作していない仮想PCやユーザ環境、被疑コンポーネントを判断する具体的なロジックを限定していない。本発明は様々なロジックを判断に用いることができる。単純な閾値による判断を用いることとしてもよいし、AI(Artificial Intelligence)やディープラーニングによる異常検出などと組み合わせることももちろん可能である。
【０１２２】
上述の実施形態では、コンピュータシステムは接続制御サーバ、状態監視サーバ、ユーザ環境管理サーバを備えるものとして説明したが、これらサーバは、同一のサーバ装置上で実行されてもよい。
【０１２３】
上述の実施形態では、端末、接続制御サーバ、シンクライアントサーバ、状態監視サーバ、ユーザ環境管理サーバをそれぞれ1台ずつ記載したが、これが複数台であっても実施可能である。
【０１２４】
上述の実施形態では、システムが一定時間毎に実行するフローとしてシステムの動作を説明した。そのような動作の代わりに、或いは、そのような動作と共に、エンドユーザが仮想PCに接続するタイミングを契機として上述のフローを実行することとしてもよい。
【０１２５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１２６】
（付記１）
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用するコンピュータとを備え、
前記接続先装置と前記コンピュータとの間の接続を開始してから、当該接続を終了するまでの時間の長さ、或いは、前記接続を開始してから現在までの時間の長さである接続時間を、前記接続先装置と前記コンピュータとの組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
を備えるコンピュータシステム。
【０１２７】
（付記２）
前記接続は、前記コンピュータと前記接続先装置との間で開始した最後の接続である、付記１に記載のコンピュータシステム。
【０１２８】
（付記３）
前記接続先装置のひとつである第１の接続先装置を含む組み合わせに係る前記接続時間を前記記憶装置に記憶した前記コンピュータの数、及び、
前記第１の接続先装置と前記コンピュータとの組み合わせ毎の前記接続時間
に基づいて、前記第１の接続先装置の動作が正常であるか否かを判断する、付記１または付記２に記載のコンピュータシステム。
【０１２９】
（付記４）
前記接続先装置は、前記コンピュータに予め関連付けられたユーザ環境に基づいて動作し、
ひとつのユーザ環境である第１のユーザ環境に関連付けられた前記コンピュータとの前記接続時間を前記記憶装置に記憶した前記接続装置の数、及び、
前記第１のユーザ環境に関連付けられた前記コンピュータと前記接続先装置との組み合わせ毎の接続時間
に基づいて、前記第１のユーザ環境が正常であるか否かを判断する、付記１乃至付記３のいずれかに記載のコンピュータシステム。
【０１３０】
（付記５）
前記接続先装置が依存して動作するコンポーネントの組み合わせを、前記接続先装置毎に前記記憶装置に予め記憶し、
前記コンポーネントのひとつである第１のコンポーネントに依存して動作する接続先装置の数、
前記第１のコンポーネントに依存して動作する接続先装置と組み合わせて接続時間を記録したコンピュータの数、及び、
前記第１のコンポーネントに依存して動作する接続先装置とコンピュータとの組み合わせに係る接続時間の長さ
に基づいて、前記第１のコンポーネントの動作が正常であるか否かを判断する、付記１乃至付記４のいずれかに記載のコンピュータシステム。
【０１３１】
（付記６）
前記接続先装置はシンクライアントサーバ上で動作する仮想マシンであり、前記コンピュータは前記シンクライアントシステムのクライアント端末である、付記１乃至付記５のいずれかに記載のコンピュータシステム。
【０１３２】
（付記７）
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用するコンピュータとの間の接続を開始してから、当該接続を終了するまでの時間の長さ、或いは、前記接続を開始してから現在までの時間の長さである接続時間を、前記接続先装置と前記コンピュータとの組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
を備えるサーバ装置。
【０１３３】
（付記８）
前記接続は、前記コンピュータと前記接続先装置との間で開始した最後の接続である、付記７に記載のサーバ装置。
【０１３４】
（付記９）
前記接続先装置のひとつである第１の接続先装置を含む組み合わせに係る前記接続時間を前記記憶装置に記憶した前記コンピュータの数、及び、
前記第１の接続先装置と前記コンピュータとの組み合わせ毎の前記接続時間
に基づいて、前記第１の接続先装置の動作が正常であるか否かを判断する、付記７または付記８に記載のサーバ装置。
【０１３５】
（付記１０）
前記接続先装置は、前記コンピュータに予め関連付けられたユーザ環境に基づいて動作し、
ひとつのユーザ環境である第１のユーザ環境に関連付けられた前記コンピュータとの前記接続時間を前記記憶装置に記憶した前記接続装置の数、及び、
前記第１のユーザ環境に関連付けられた前記コンピュータと前記接続先装置との組み合わせ毎の接続時間
に基づいて、前記第１のユーザ環境が正常であるか否かを判断する、付記７乃至付記９のいずれかに記載のサーバ装置。
【０１３６】
（付記１１）
前記接続先装置が依存して動作するコンポーネントの組み合わせを、前記接続先装置毎に前記記憶装置に予め記憶し、
前記コンポーネントのひとつである第１のコンポーネントに依存して動作する接続先装置の数、
前記第１のコンポーネントに依存して動作する接続先装置と組み合わせて接続時間を記録したコンピュータの数、及び、
前記第１のコンポーネントに依存して動作する接続先装置とコンピュータとの組み合わせに係る接続時間の長さ
に基づいて、前記第１のコンポーネントの動作が正常であるか否かを判断する、付記７乃至付記１０のいずれかに記載のサーバ装置。
【０１３７】
（付記１２）
前記接続先装置はシンクライアントサーバ上で動作する仮想マシンであり、前記コンピュータは前記シンクライアントシステムのクライアント端末である、付記７乃至付記１１のいずれかに記載のサーバ装置。
【０１３８】
（付記１３）
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用するコンピュータとの間の接続を開始してから、当該接続を終了するまでの時間の長さ、或いは、前記接続を開始してから現在までの時間の長さである接続時間を、前記接続先装置と前記コンピュータとの組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
としてコンピュータを機能させるためのプログラム。
【０１３９】
（付記１４）
前記接続は、前記コンピュータと前記接続先装置との間で開始した最後の接続である、付記１３に記載のプログラム。
【０１４０】
（付記１５）
前記接続先装置のひとつである第１の接続先装置を含む組み合わせに係る前記接続時間を前記記憶装置に記憶した前記コンピュータの数、及び、
前記第１の接続先装置と前記コンピュータとの組み合わせ毎の前記接続時間
に基づいて、前記第１の接続先装置の動作が正常であるか否かを判断する、付記１３または付記１４に記載のプログラム。
【０１４１】
（付記１６）
前記接続先装置は、前記コンピュータに予め関連付けられたユーザ環境に基づいて動作し、
ひとつのユーザ環境である第１のユーザ環境に関連付けられた前記コンピュータとの前記接続時間を前記記憶装置に記憶した前記接続装置の数、及び、
前記第１のユーザ環境に関連付けられた前記コンピュータと前記接続先装置との組み合わせ毎の接続時間
に基づいて、前記第１のユーザ環境が正常であるか否かを判断する、付記１３乃至付記１５のいずれかに記載のプログラム。
【０１４２】
（付記１７）
前記接続先装置が依存して動作するコンポーネントの組み合わせを、前記接続先装置毎に前記記憶装置に予め記憶し、
前記コンポーネントのひとつである第１のコンポーネントに依存して動作する接続先装置の数、
前記第１のコンポーネントに依存して動作する接続先装置と組み合わせて接続時間を記録したコンピュータの数、及び、
前記第１のコンポーネントに依存して動作する接続先装置とコンピュータとの組み合わせに係る接続時間の長さ
に基づいて、前記第１のコンポーネントの動作が正常であるか否かを判断する、付記１３乃至付記１６のいずれかに記載のプログラム。
【０１４３】
（付記１８）
前記接続先装置はシンクライアントサーバ上で動作する仮想マシンであり、前記コンピュータは前記シンクライアントシステムのクライアント端末である、付記１３乃至付記１７のいずれかに記載のプログラム。
【０１４４】
（付記１９）
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用するコンピュータとの間の接続を開始してから、当該接続を終了するまでの時間の長さ、或いは、前記接続を開始してから現在までの時間の長さである接続時間を、前記接続先装置と前記コンピュータとの組み合わせ毎に測定して記憶装置に予め記憶し、
前記記憶に基づいて、前記接続先装置の動作が正常か否かを処理装置が判断する
障害検出方法。
【０１４５】
（付記２０）
前記接続は、前記コンピュータと前記接続先装置との間で開始した最後の接続である、付記１９に記載の障害検出方法。
【０１４６】
（付記２１）
前記接続先装置のひとつである第１の接続先装置を含む組み合わせに係る前記接続時間を前記記憶装置に記憶した前記コンピュータの数、及び、
前記第１の接続先装置と前記コンピュータとの組み合わせ毎の前記接続時間
に基づいて、前記第１の接続先装置の動作が正常であるか否かを処理装置が判断する、付記１９または付記２０に記載の障害検出方法。
【０１４７】
（付記２２）
前記接続先装置は、前記コンピュータに予め関連付けられたユーザ環境に基づいて動作し、
ひとつのユーザ環境である第１のユーザ環境に関連付けられた前記コンピュータとの前記接続時間を前記記憶装置に記憶した前記接続装置の数、及び、
前記第１のユーザ環境に関連付けられた前記コンピュータと前記接続先装置との組み合わせ毎の接続時間
に基づいて、前記第１のユーザ環境が正常であるか否かを処理装置が判断する、付記１９または付記２０に記載の障害検出方法。
【０１４８】
（付記２３）
前記接続先装置が依存して動作するコンポーネントの組み合わせを、前記接続先装置毎に前記記憶装置に予め記憶し、
前記コンポーネントのひとつである第１のコンポーネントに依存して動作する接続先装置の数、
前記第１のコンポーネントに依存して動作する接続先装置と組み合わせて接続時間を記録したコンピュータの数、及び、
前記第１のコンポーネントに依存して動作する接続先装置とコンピュータとの組み合わせに係る接続時間の長さ
に基づいて、前記第１のコンポーネントの動作が正常であるか否かを処理装置が判断する、付記１９または付記２０に記載の障害検出方法。
【０１４９】
（付記２４）
前記接続先装置はシンクライアントサーバ上で動作する仮想マシンであり、前記コンピュータは前記シンクライアントシステムのクライアント端末である、付記１９乃至付記２３のいずれかに記載の障害検出方法。
【符号の説明】
【０１５０】
1、2、3、4  コンピュータシステム
100  端末
110、210、410  OS(Operating System)
120  接続処理部
130  情報送信部
200  接続制御サーバ
220  接続管理部
230  接続履歴管理部
2310  接続履歴テーブル
240  情報送信部
300  シンクライアントサーバ
301、302  接続先装置
310  ハイパーバイザー
3100、3200  VM或いは仮想PC
400  状態監視サーバ
420  接続情報取得部
430  状態判断部
4310  接続時間管理テーブル
4320  パラメータテーブル
440  仮想PC制御部
500  ユーザ環境管理サーバ
【図１】
2018173836.tif 000003
【図２】
2018173836.tif 000004
【図３】
2018173836.tif 000005
【図４】
2018173836.tif 000006
【図５】
2018173836.tif 000007
【図６】
2018173836.tif 000008
【図７】
2018173836.tif 000009
【図８】
2018173836.tif 000010
【図９】
2018173836.tif 000011
【図１０】
2018173836.tif 000012
【図１１】
2018173836.tif 000013
【図１２】
2018173836.tif 000014
【図１３】
2018173836.tif 000015
【図１４】
2018173836.tif 000016
【図１５】
2018173836.tif 000017
【図１６】
2018173836.tif 000018
【図１７】
2018173836.tif 000019
【図１８】
2018173836.tif 000020
【手続補正書】
【提出日】平成30年3月15日(2018.3.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末とを備え、
前記接続先装置と前記端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
を備え、
前記接続先装置は、前記端末に予め関連付けられた第１のユーザ環境に基づいて動作し、
前記第１のユーザ環境に関連付けられた前記端末との前記接続時間を前記記憶装置に記憶した前記接続装置の数、及び、
前記第１のユーザ環境に関連付けられた前記端末と前記接続先装置との組み合わせ毎の接続時間に基づいて、前記第１のユーザ環境が正常であるか否かを判断する、
コンピュータシステム。
【請求項２】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末とを備え、
前記接続先装置と前記端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
を備え、
前記接続先装置が依存する第１のコンポーネントの組み合わせを、前記接続先装置毎に前記記憶装置に予め記憶し、
前記第１のコンポーネントに依存して動作する接続先装置の数、
前記第１のコンポーネントに依存して動作する接続先装置と組み合わせて接続時間を記録した端末の数、及び、
前記第１のコンポーネントに依存して動作する接続先装置と端末との組み合わせに係る接続時間の長さに基づいて、前記第１のコンポーネントの動作が正常であるか否かを判断する、
コンピュータシステム。
【請求項３】
前記接続時間は、前記端末と前記接続先装置との間で開始した最後の接続の接続時間である、請求項１または請求項２に記載のコンピュータシステム。
【請求項４】
前記接続先装置のひとつである第１の接続先装置を含む組み合わせに係る前記接続時間を前記記憶装置に記憶した前記端末の数、及び、
前記第１の接続先装置と前記端末との組み合わせ毎の前記接続時間
に基づいて、前記第１の接続先装置の動作が正常であるか否かを判断する、請求項１乃至請求項３のいずれかに記載のコンピュータシステム。
【請求項５】
前記接続先装置はシンクライアントサーバ上で動作する仮想マシンであり、前記端末は前記シンクライアントシステムのクライアント端末である、請求項１乃至請求項４のいずれかに記載のコンピュータシステム。
【請求項６】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
を備え、
前記接続先装置は、前記端末に予め関連付けられた第１のユーザ環境に基づいて動作し、
前記第１のユーザ環境に関連付けられた前記端末との前記接続時間を前記記憶装置に記憶した前記接続装置の数、及び、
前記第１のユーザ環境に関連付けられた前記端末と前記接続先装置との組み合わせ毎の接続時間に基づいて、前記第１のユーザ環境が正常であるか否かを判断する、
サーバ装置。
【請求項７】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
を備え、
前記接続先装置が依存する第１のコンポーネントの組み合わせを、前記接続先装置毎に前記記憶装置に予め記憶し、
前記第１のコンポーネントに依存して動作する接続先装置の数、
前記第１のコンポーネントに依存して動作する接続先装置と組み合わせて接続時間を記録した端末の数、及び、
前記第１のコンポーネントに依存して動作する接続先装置と端末との組み合わせに係る接続時間の長さに基づいて、前記第１のコンポーネントの動作が正常であるか否かを判断する、
サーバ装置。
【請求項８】
前記接続時間は、前記端末と前記接続先装置との間で開始した最後の接続時間である、請求項６または請求項７に記載のサーバ装置。
【請求項９】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
としてコンピュータを機能させるためのプログラムであって、
前記接続先装置は、前記端末に予め関連付けられた第１のユーザ環境に基づいて動作し、
前記第１のユーザ環境に関連付けられた前記端末との前記接続時間を前記記憶装置に記憶した前記接続装置の数、及び、
前記第１のユーザ環境に関連付けられた前記端末と前記接続先装置との組み合わせ毎の接続時間に基づいて、前記第１のユーザ環境が正常であるか否かを判断する、
コンピュータプログラム。
【請求項１０】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に格納する手段、及び、
前記記憶装置に格納した前記接続時間に基づいて、前記接続先装置の動作が正常か否かを判断する手段
としてコンピュータを機能させるためのプログラムであって、
前記接続先装置が依存する第１のコンポーネントの組み合わせを、前記接続先装置毎に前記記憶装置に予め記憶し、
前記第１のコンポーネントに依存して動作する接続先装置の数、
前記第１のコンポーネントに依存して動作する接続先装置と組み合わせて接続時間を記録した端末の数、及び、
前記第１のコンポーネントに依存して動作する接続先装置と端末との組み合わせに係る接続時間の長さに基づいて、前記第１のコンポーネントの動作が正常であるか否かを判断する、
コンピュータプログラム。
【請求項１１】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に予め記憶し、
前記記憶に基づいて、前記接続先装置の動作が正常か否かを処理装置が判断し、
前記接続先装置は、前記端末に予め関連付けられた第１のユーザ環境に基づいて動作し、
前記第１のユーザ環境に関連付けられた前記端末との前記接続時間を前記記憶装置に記憶した前記接続装置の数、及び、
前記第１のユーザ環境に関連付けられた前記端末と前記接続先装置との組み合わせ毎の接続時間に基づいて、前記第１のユーザ環境が正常であるか否かを判断する、
障害検出方法。
【請求項１２】
接続先装置と、前記接続先装置と接続されて前記接続先装置の機能を利用する端末との間の接続時間を、前記接続先装置と前記端末との組み合わせ毎に測定して記憶装置に予め記憶し、
前記記憶に基づいて、前記接続先装置の動作が正常か否かを処理装置が判断し、
前記接続先装置が依存する第１のコンポーネントの組み合わせを、前記接続先装置毎に前記記憶装置に予め記憶し、
前記第１のコンポーネントに依存して動作する接続先装置の数、
前記第１のコンポーネントに依存して動作する接続先装置と組み合わせて接続時間を記録した端末の数、及び、
前記第１のコンポーネントに依存して動作する接続先装置と端末との組み合わせに係る接続時間の長さに基づいて、前記第１のコンポーネントの動作が正常であるか否かを判断する、
障害検出方法。