(57)【要約】【課題】  サーバにより仮想クライアントが接続制御されている場合に、この接続制御を解除することにある。【解決手段】  端末と、前記端末に接続されたサーバと、前記サーバが管理する仮想クライアントとを備え、前記サーバを経由して仮想クライアントに接続するシステムにおける接続制御方法であって、前記サーバは、前記サーバが管理する仮想クライアントと接続制御状態であるか否かを監視し、前記監視の結果、接続制御されている場合は、前記仮想クライアントの接続制御を解除する。【選択図】  図１
2017059075.tif 000002
【特許請求の範囲】
【請求項１】
端末と、前記端末に接続されたサーバと、前記サーバが管理する仮想クライアントとを備え、前記端末は前記サーバを経由して前記仮想クライアントに接続するシステムにおける接続制御方法であって、
前記サーバが管理する仮想クライアントが接続制御されているか否かを監視し、
前記監視の結果、接続制御されている仮想クライアントがある場合は、前記仮想クライアントの接続制御を解除することを特徴とする接続制御方法。
【請求項２】
前記接続制御方法は、
前記サーバが管理する仮想クライアントと前記仮想クライアントの接続制御状態を対応付けて記憶し、
接続制御されている仮想クライアントがある場合には、前記仮想クライアントの接続制御を解除するとともに、接続制御を解除された仮想クライアントと対応付けて記憶された接続制御状態を更新することを特徴とする請求項１記載の接続制御方法。
【請求項３】
前記接続制御方法は、
接続制御されている仮想クライアントがある場合には、前記仮想クライアントに関する情報と、前記仮想クライアントに割り当てられたユーザに関する情報とを取得し、
前記接続状態を解除された仮想クライアント情報と、前記仮想クライアントに割り当てられたユーザ情報とを対応付けて記憶することを特徴とする請求項２記載の接続制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバが管理する仮想クライアントに対する接続制御方法に関する。
【背景技術】
【０００２】
物理資源を論理的に分割して複数の仮想クライアントとして動作させる場合、仲介サーバが仮想クライアントとユーザの接続制御を行う。この仲介サーバは、通信回線を介して接続されたエンドポイントデバイスに、いずれかの仮想クライアントを割り当てたり解放したりする構成である（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５３６０１９９号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、被操作状態になった仮想マシンを割り当て状態から解放するという利用シーンを想定しているが、それ以外の利用シーンについては記載がない。例えば、サーバと仮想クライアントの通信がなんらかの原因により途絶えた場合、サーバにより、ユーザが接続する仮想クライアントへの接続制御が行われることが考えられる。この場合、ユーザは、接続を試みようとした仮想クライアントへの接続ができなくなる。また、仮想クライアントへの接続制御が行われた場合、管理者側で接続解除する必要がある。
【０００５】
本発明は、サーバにより仮想クライアントが接続制御されている場合、この接続制御を解除することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本発明は、端末と、前記端末に接続されたサーバと、前記サーバが管理する仮想クライアントとを備え、前記サーバを経由して仮想クライアントに接続するシステムにおける接続制御方法であって、前記サーバは、前記サーバが管理する仮想クライアントと接続制御状態であるか否かを監視し、前記監視の結果、接続制御されている場合は、前記仮想クライアントの接続制御を解除する構成を採用する。
【発明の効果】
【０００７】
本発明によれば、接続制御された仮想クライアントを解除することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態を示したシステム構成図である。
【図２】本発明の実施形態における処理実行に使用するイベントログ出力フラグを格納するデータテーブルである。
【図３】本発明の実施形態における処理実行に使用する接続制御ステータス情報を格納するデータテーブルである。
【図４】本発明の実施形態における処理実行に使用する接続制御の解除情報を格納するデータテーブルである。
【図５】本発明の実施形態における処理実行に使用する接続制御フラグを格納するデータテーブルである。
【図６】本発明の実施形態において、仮想クライアントの接続制御を解除する際の前処理を説明するフローチャートである。
【図７】本発明の実施形態において、接続制御の解除対象となる仮想クライアント１１の情報を取得する処理を説明するフローチャートである。
【図８】本発明の実施形態において、仮想クライアントの接続制御を解除する処理を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態を、図面を用いて詳細に説明する。
【００１０】
図１は、本実施形態におけるシステム構成図である。
【００１１】
エンドポイントデバイス１８（一般的には端末）を利用するユーザ１９は、コネクションブローカ１２（一般的にはサーバ）を介し、仮想クライアント１１へ接続する。ユーザ１９は、エンドポイントデバイス１８を利用し、システム環境にログインする。コネクションブローカ１２は、ユーザ１９に仮想クライアント１１を割り当てる。
【００１２】
コネクションブローカ１２は、ユーザのログイン処理を受け付けるＷｅｂポータル１３、仮想クライアント１１とエンドポイントデバイス１８の割り当て情報等の管理や、変数部の定義をする管理モジュール１４、処理をタスク化するタスクスケジューラ１５、システムのイベントログ情報等を保存するシステムログ１６、仮想クライアント１１の接続情報を保持するデータベース１７を備える。
【００１３】
管理モジュール１４は、処理部と変数部を備え、変数部は、図２〜５に示すとおり、複数のデータテーブルを保持している。
【００１４】
図２は、変数部に記憶されるイベントログ出力フラグを示す。イベントログ出力フラグは、処理実行における日付取得の成功時または失敗時に立てるフラグである。実行日付取得に成功した場合、後にイベントログとしてシステムログ１６に出力するため、管理モジュール１４の処理部が、変数部のデータテーブルに２０１に示すとおり変数０を保存する。実行日付取得に失敗した場合、２０２に示すとおり変数１をデータテーブルに保存する。なお、変数の初期値は０とし、処理開始時に初期化される。
【００１５】
図３は、変数部に記憶される接続制御ステータス情報を示す。接続制御ステータス情報は、管理モジュール１４の処理部が、データベース１７から各仮想クライアントの接続制御情報を取得し、仮想クライアント名２０３とその接続制御ステータス２０４を保存する。これらの情報は、後に仮想クライアントの接続制御を解除する判断材料として利用される。
【００１６】
図４は、変数部に記憶される接続制御の解除情報を示す。接続制御の解除情報は、管理モジュール１４の処理部が接続制御の解除を実施した仮想クライアント１１の情報を、仮想クライアント名２０５とそれに割り当てられているユーザ名２０６を保存する。これらの情報は、後に接続制御の解除が行われた仮想クライアント１１の情報をシステムログ１６へ出力するために保持する。
【００１７】
図５は、変数部に記憶される接続制御解除フラグを示す。接続制御解除フラグは、管理モジュール１４の処理部が、仮想クライアント１１の接続制御の有無に立てるフラグである。接続制御されていない場合、管理モジュール１４の処理部が、２０７に示すとおり変数０を保存する。接続制御されている場合、後に接続制御を解除するか否かの判断材料のために、管理モジュール１４の処理部が、２０８に示すとおり変数１を保存する。なお、変数の初期値は０とし、処理開始時に初期化される。
【００１８】
図１に示すシステムにおいて、ユーザ１９は、通常、通信回線を介してコネクションブローカ１２へ接続し、コネクションブローカ１２が保持しているＷｅｂポータル１３を利用し、ユーザ独自のユーザＩＤとパスワードを入力することで仮想クライアント１１へログオンする。
【００１９】
コネクションブローカ１２と仮想クライアント１１はハートビートをとっており、一定期間通信ができない場合、コネクションブローカ１２が仮想クライアント１１に対し、接続制御を自動で行う。この接続制御がされた状態の場合、ユーザ１９は仮想クライアント１１を利用できなくなる。ユーザ１９が仮想クライアント１１へ接続ができなくなるまでのフローを次に示す。
【００２０】
１．コネクションブローカ１２と仮想クライアント１１の通信が一定期間できなくなる。
【００２１】
２．コネクションブローカ１２が任意の仮想クライアント１１に対し接続制御を行う。
【００２２】
３．ユーザ１９は、コネクションブローカ１２のＷｅｂポータル１３にてユーザＩＤおよびパスワードを入力する。
【００２３】
４．ログイン成功したユーザに対し、コネクションブローカ１２が任意の仮想クライアント１１へ割り当てを行う。
【００２４】
５．ユーザ１９が接続を試みようとする仮想クライアント１１は、接続制御されているため、仮想クライアント１１へ接続ができなくなる。
【００２５】
ユーザ１９が仮想クライアント１１へ接続できなくなった状態を解決する方法の一つ目は、仮想クライアント１１が接続制御状態か否かを管理モジュール１４にて監視するやり方である。監視のタイミングは、タスクスケジューラ１５を用いて定期的（１０分間隔）に監視を行う。監視の結果、接続制御されていた場合、制御を解除する。
【００２６】
二つ目は、接続制御状態をリアルタイムに監視し、接続制御状態が検知され次第、直ちに接続制御を解除するやり方である。これは、接続制御状態にある仮想クライアント１１に対し、ユーザ１９が接続を試みた場合、コネクションブローカ１２のシステムログ１６にエラーログが出力され、これをトリガーとし、管理モジュール１４にて接続制御を自動で解除するやり方である。
【００２７】
この解決方法の基本的な動作を、図６、７、８の処理フローに示す。
【００２８】
図６の処理フローにおいて、まずステップＳ１０１では、定期的（１０分間隔）にタスクスケジューラ１５を実行し、管理モジュール１４を起動する。管理モジュール１４起動時に実行日付を取得する。もしくは、コネクションブローカ１２のイベントログに接続制御に関するエラーログが出力されることにより、タスクスケジューラ１５が即時に実行し、管理モジュール１４を起動する。管理モジュール１４を起動時に実行日付を取得する。
【００２９】
ステップＳ１０２では、実行日付の取得が成功したか否かを判断する。
【００３０】
ステップＳ１０２で実行日付の取得が失敗した場合、ステップＳ１０３では、管理モジュール１４の処理部が、実行日付を名称としたログファイルを、コネクションブローカの任意のフォルダ配下に作成する。管理モジュール１４の処理部がログファイルおよびイベントログにエラー内容を出力し、処理を継続する。
【００３１】
ステップＳ１０２で実行日付の取得が成功した場合、ステップＳ１０４では、管理モジュール１４が毎日正常起動しているかを確認するために、確認時刻を１２：００とする。イベントログ出力時刻が１２：００（２４時間表記）でない場合、管理モジュール１４の管理変数部が図２の２０１データテーブルにイベントログ出力フラグ０を保存する。
【００３２】
ステップＳ１０５では、ステップＳ１０４においてイベントログ出力時刻が１２：００（２４時間表記）である場合、管理モジュール１４が正常に起動していることを示すために、管理モジュール１４の管理変数部が図２の２０２データテーブルに、イベントログ出力フラグ１を保存する。
【００３３】
ステップＳ１０６では、ログファイル数の管理をするために、管理モジュール１４の処理部がログファイル数を取得する。
【００３４】
ステップＳ１０７では、ステップＳ１０６においてログファイル数の取得に成功した否かを判断する。
【００３５】
ログファイル数の取得に失敗した場合、ステップＳ１０８では、管理モジュール１４の処理部がイベントログおよびログファイルにエラー内容を出力する。
【００３６】
ログファイル数の取得に成功した場合、ステップＳ１０９では、ログファイル数が９０未満であるか否かを判断する。ログファイル数が９０未満である場合、ステップＳ１１３（図７）に移る。
【００３７】
ログファイル数が９０未満でない場合、ステップＳ１１０では、管理モジュール１４の処理部が作成日付の最も古いログファイルを削除する。
【００３８】
ステップＳ１１１では、ステップＳ１１０においてログファイルの削除に成功したか否かを判断する。
【００３９】
ログファイルの削除に失敗した場合、ステップＳ１１２では、管理モジュール１４の処理部がイベントログおよびログファイルにエラー内容を出力する。
【００４０】
次に、図６の処理フローの続きとなる図７の処理フローを説明する。
【００４１】
ステップＳ１１３では、仮想クライアントの制御状態を取得するために、管理モジュール１４をロードする。
【００４２】
ステップＳ１１４では、管理モジュール１４のロードに成功したか否かを判断する。
【００４３】
管理モジュール１４のロードに失敗した場合、ステップＳ１１５では、管理モジュール１４のロードに失敗した場合、管理モジュール１４の処理部がイベントログおよびログファイルにエラー内容を出力する。そして、ステップＳ１１６では、終了コード１で処理を終了する。
【００４４】
管理モジュール１４のロードに成功した場合、ステップＳ１１７では、各仮想クライアントの接続制御状態（制御の有無）を取得するために、管理モジュール１４の処理部がデータベース１７から各仮想クライアント接続制御のステータス情報を取得する。
【００４５】
ステップＳ１１８では、各仮想クライアントの接続制御のステータス情報の取得に成功したか否かを判断する。
【００４６】
各仮想クライアントの接続制御のステータス情報の取得に失敗した場合、ステップＳ１１９では、管理モジュール１４の処理部がイベントログおよびログファイルにエラー内容を出力する。そして、ステップＳ１２０では、終了コード２で処理を終了する。
【００４７】
各仮想クライアントの接続制御のステータス情報の取得に成功した場合、ステップＳ１２１では、取得した接続制御のステータス情報を、管理モジュール１４の管理変数部が、図３の仮想クライアント名２０３および接続制御ステータス２０４にそれぞれ保存する。例えば、仮想クライアントＡの情報を示す場合、仮想クライアント名＝「仮想クライアントＡ」、接続制御ステータス＝「無」という内容を保存する。
【００４８】
ステップＳ１２２では、接続制御された仮想クライアント１１が存在するか否かを判断する。接続制御された仮想クライアント１１が存在しない場合、ステップＳ１２８（図８）に移る。
【００４９】
接続制御された仮想クライアント１１が存在する場合、ステップＳ１２３では、管理モジュール１４の処理部が接続制御された仮想クライアント１１の情報を取得するため、ループ処理を開始する。
【００５０】
ステップＳ１２４では、管理モジュール１４の管理変数部が、図４の仮想クライアント名２０５およびユーザ名２０６に、仮想クライアント名とユーザ名を保存する。例えば、接続制御ステータスが「有」である仮想クライアントＢの情報を示す場合、仮想クライアント名＝「仮想クライアントＢ」、ユーザ名＝「ユーザＢ」という内容を保存する。ステップＳ１２５では、管理モジュール１４の処理部がループ処理を終了する。
【００５１】
ステップＳ１２６では、管理モジュール１４の管理変数部が、図５に示すデータテーブルの「接続制御：有」２０８に、接続制御解除フラグを初期値の０から１に上書き保存する。
【００５２】
ステップＳ１２７では、管理モジュール１４の処理部が接続制御のステータス情報の取得結果をログファイルに出力する。
【００５３】
次に、図７の処理の続きとなる図８の処理フローを説明する。
【００５４】
ステップＳ１２８では、接続制御解除フラグの値が０であるか否かを判断する。接続制御解除フラグの値が０である場合、ステップ１４４に移る。
【００５５】
ステップＳ１２９では、接続制御解除フラグの値が０でない場合、管理モジュール１４の処理部が、接続制御された仮想クライアント１１を解除する。これに伴い、管理モジュール１４の管理変数部が、図５のデータテーブルの「接続制御：無」２０７を、接続制御解除フラグを１から０に上書き保存する。
【００５６】
ステップＳ１３０では、仮想クライアント１１の接続制御の解除に成功したか否かを判断する。
【００５７】
仮想クライアント１１の接続制御の解除に失敗した場合、ステップＳ１３１では、管理モジュール１４の処理部がイベントログおよびログファイルにエラー内容を出力する。そして、ステップＳ１３２では、終了コード３で処理を終了する。
【００５８】
仮想クライアント１１の接続制御の解除に成功した場合、ステップＳ１３３では、各仮想クライアントの接続制御状態（制御の有無）を取得するために、管理モジュール１４の処理部が、データベース１７から各仮想クライアント接続制御のステータス情報を取得する。
【００５９】
ステップＳ１３４では、各仮想クライアントの接続制御のステータス情報の取得に成功したか否かを判断する。
【００６０】
各仮想クライアントの接続制御のステータス情報の取得に失敗した場合、ステップＳ１３５では、管理モジュール１４の処理部がイベントログおよびログファイルにエラー内容を出力する。そして、ステップＳ１３６では、終了コード４で処理を終了する。
【００６１】
各仮想クライアントの接続制御のステータス情報の取得に成功した場合、ステップＳ１３７では、接続制御された仮想クライアント１１が存在するか否かを判断する。接続制御された仮想クライアント１１が存在しない場合、ステップＳ１４３に移る。
【００６２】
接続制御された仮想クライアント１１が存在する場合、ステップＳ１３８では、接続制御された仮想クライアントの情報を取得するため、管理モジュール１４の処理部がループ処理を開始する。
【００６３】
ステップＳ１３９では、管理モジュール１４の管理変数部が、図４に示すデータテーブルの仮想クライアント名２０５およびユーザ名２０６に、仮想クライアント名とユーザ名をそれぞれ保存する。例えば、接続制御ステータスが「有」である仮想クライアントＣの情報を示す場合、仮想クライアント名＝「仮想クライアントＣ」、ユーザ名＝「ユーザＣ」という内容を保存する。ステップＳ１４０では、管理モジュール１４の処理部がループ処理を終了する。
【００６４】
ステップＳ１４１では、管理モジュール１４の処理部が、ステップＳ１３９で取得した情報を、イベントログおよびログファイルに出力する。そして、ステップＳ１４２では、終了コード５で処理を終了する。
【００６５】
ステップＳ１４３では、ステップＳ１３７の処理において、接続制御された仮想クライアントが存在しない場合、ステップ１２７で取得した情報を、管理モジュール１４の処理部が、イベントログおよびログファイルにエラー内容を出力する。
【００６６】
ステップＳ１４４では、イベントログ出力フラグが１であるか否かを判断する。
【００６７】
イベントログ出力フラグが１である場合、ステップＳ１４５では、管理モジュール１４の処理部が、ステップＳ１０５で取得した情報をイベントログにエラー内容を出力する。
【００６８】
イベントログ出力フラグが１でない場合、ステップＳ１４６では、接続制御された仮想クライアントが存在しないことを管理モジュール１４の処理部がログファイルに出力する。
【００６９】
ステップＳ１４７では、終了コード０で処理を終了する。管理モジュール１４の管理変数部が、図２の２０１データテーブルにイベントログ出力フラグを１から０に上書き保存する。
【符号の説明】
【００７０】
１１：仮想クライアント、１２：コネクションブローカ、１３：Ｗｅｂポータル、１４：管理モジュール、１５：タスクスケジューラ、１６：システムログ、１７：データベース、１８：エンドポイントデバイス、１９：ユーザ
【図１】
2017059075.tif 000003
【図２】
2017059075.tif 000004
【図３】
2017059075.tif 000005
【図４】
2017059075.tif 000006
【図５】
2017059075.tif 000007
【図６】
2017059075.tif 000008
【図７】
2017059075.tif 000009
【図８】
2017059075.tif 000010