(57)【要約】  あるクライアントコンピューティングデバイスが所有するサービスインスタンスに対し、たとえばこの種のサービスインスタンスの利用が制限されている場合に、終了を要求するシステムおよび方法。本開示の１つの態様によれば、第１のクライアントデバイスが所有してリモートアプリケーションサーバにおいて実行中のサービスインスタンスの終了を要求する方法について述べられている。この方法は、前記サービスインスタンスを含む、要求を生成してもよい複数のサービスインスタンスから成るリストを、第２のクライアントデバイスにおい受け取ること、前記第１のクライアントデバイスが所有するサービスインスタンスの終了を第２のクライアントデバイスによって要求すること、第１のクライアントデバイスに対して前記サービスインスタンスの終了要求を転送すること、前記第１のクライアントデバイスが所有するサービスインスタンスが終了したならば、新たなサービスインスタンスを生成し、その後、前記第２のクライアントデバイスが、前記新たなサービスインスタンスのオーナになること、を含むことができる。
2018513460.tif 000002
【特許請求の範囲】
【請求項１】
第１のクライアントデバイスが所有するサービスインスタンスの終了を要求する方法であって、
前記サービスインスタンスを含む、要求を生成してもよい複数のサービスインスタンスから成るリストを、第２のクライアントデバイスにおいて受け取ること、
前記第１のクライアントデバイスが所有するサービスインスタンスの終了を第２のクライアントデバイスによって要求すること、
第１のクライアントデバイスに対して前記サービスインスタンスの終了要求を転送すること、および
前記第１のクライアントデバイスが所有するサービスインスタンスが終了したならば、新たなサービスインスタンスを生成し、その後、前記第２のクライアントデバイスが、前記新たなサービスインスタンスのオーナになること、を含む方法。
【請求項２】
前記第２のクライアントデバイスがアクセス拒否を受け取った後、前記サービスインスタンスリストを受け取ることをさらに含む、請求項１に記載された方法。
【請求項３】
前記第１のクライアントデバイスが所有するセッションに対するアクセスを提供するトークンを用いて終了を要求することをさらに含む、請求項１または２に記載された方法。
【請求項４】
前記第２のクライアントデバイスにおける割込者に関連づけられたレベルアクセス、前記サービスインスタンスの重要度、前記サービスインスタンスが実行されるリモートアプリケーションサーバにおいて利用可能なリソース、前記サービスインスタンスリスト中の各サービスインスタンスのアイドルタイム、のうちの１つに従って、前記サービスインスタンスリストをソートすることをさらに含む、請求項１から３までのいずれか１項に記載された方法。
【請求項５】
前記サービスインスタンスのうち少なくとも１つのサービスインスタンスの終了要求を転送する、請求項１から４までのいずれか１項に記載された方法であって、さらに、
前記サービスインスタンスを選択するために、前記第２のクライアントデバイスにおける割込者にダイアログボックスを表示すること、
前記サービスインスタンスがアイドル状態であるか否かを判定するステップと、および
前記サービスインスタンスがアイドル状態であるならば、前記第１のクライアントデバイスが前記終了要求をキャンセル可能な期間である予め定められた期間を与えるタイマをスタートさせることと、を含む方法。
【請求項６】
未処理の終了要求をキャンセルすることをさらに含む、請求項５に記載された方法。
【請求項７】
前記予め定められた期間は調整可能であるような、請求項５または６に記載された方法。
【請求項８】
前記予め定められた期間が１分であるような、請求項７に記載された方法。
【請求項９】
前記サービスインスタンスのうち少なくとも１つのサービスインスタンスの終了要求を転送する、請求項１から８までのいずれか１項記載の方法であって、さらに、
前記第２のクライアントデバイスにおける割込者が、アクティブなサービスインスタンスの終了を要求したか否か、の判定、および
要求に応じて、アクティブなサービスインスタンスが終了したか否か、の判定を含む方法。 
【請求項１０】
請求項９記載の方法であって、さらに他のいかなる未処理の終了要求をもキャンセルすることを含む方法。
【請求項１１】
サービスインスタンスへのアクセスを要求する方法であって、
１つの環境内で１つのサービスインスタンスに接続することを求める要求を第１のクライアントデバイスから受けること、
前記環境内のリソースが利用不可であるため、前記サービスインスタンスに接続することを求める要求を拒否すること、
アクアクティブなサービスインスタンスおよび／またはアイドル状態のサービスインスタンスから成るリストを、前記第１のクライアントデバイスに表示すること、
前記アクティブなサービスインスタンスおよび／または前記アイドル状態のサービスインスタンスのうち少なくとも１つのサービスインスタンスを終了する要求を受け取ること、
前記前記アクティブなサービスインスタンスおよび／または前記アイドル状態のサービスインスタンスのうち少なくとも１つのサービスインスタンスを所有する第２のクライアントデバイスへ、前記終了要求を転送すること、
前記アクティブなサービスインスタンスおよび／または前記アイドル状態のサービスインスタンスのうち少なくとも１つのサービスインスタンスが、前記第２のクライアントデバイスにおいて終了させられた後、前記第１のクライアントデバイスが新たなサービスインスタンスの所有者になること、を含む方法。
【請求項１２】
前記終了要求を転送する請求項１１記載の方法であって、トークンを使用することを含む方法。
【請求項１３】
請求項１１または１２記載の方法であって、前記アクティブなサービスインスタンスおよび／または前記アイドル状態のサービスインスタンスのうち少なくとも１つのサービスインスタンスがアイドル状態であるならば、前記第１のクライアントデバイスが前記終了要求をキャンセル可能な期間である予め定められた期間を与えるために、タイマをスタートさせる方法。
【請求項１４】
請求項１３記載の方法であって、前記第１のクライアントデバイスにおけるユーザが前記要求をキャンセルできるようにするユーザインタフェースを表示するステップをさらに含む方法。
【請求項１５】
請求項１１から１４までのいずれか１項記載の方法であって、前記アクティブなサービスインスタンスおよび／または前記アイドル状態のサービスインスタンスのうち少なくとも１つのサービスインスタンスがアイドル状態であるならば、前記第１のクライアントデバイスにおいてユーザが前記要求をキャンセルできるようなユーザインタフェースを提供する方法。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
背景技術
サービスインスタンスへのユビキタスリモートアクセスは、ブロードバンドおよびワイヤレスのネットワークアクセスが発展し利用可能になった結果として、一般的なものとなった。
【０００２】
したがってユーザは、ますます多様化しているクライアントデバイス（たとえばモバイルデバイス、タブレットコンピューティングデバイス、ラップトップ／ノートブック／デスクトップコンピュータ等）を使用して、サービスインスタンスにアクセスしている。
【０００３】
それらのサービスインスタンスへはリモートサーバを介してアクセス可能であり、リモートサーバは、３Ｇおよび４Ｇモバイルデータネットワーク、ＷｉＦｉおよびＷｉＭａｘなどのワイヤレスネットワーク、有線ネットワーク等を含む様々なネットワークを介して、サービスインスタンスとクライアントデバイスとの間でデータまたはその他の情報を含むメッセージを伝達することができる。
【０００４】
リソースまたは物理的な制約があるがゆえに、いかなる時点でも利用できるサービスインスタンスの個数が制限されている場合がある。
このため、サービスインスタンスに接続しようとするクライアントが、それを実行できない場合がある。
【０００５】
このことによって、別のクライアントにより使用中となっているサービスへアクセスする必要のあるクライアントにとって、またはあるクライアントが通信を確立した後、アイドル待機状態のサービスへアクセスする必要のあるクライアントにとって、問題が引き起こされる可能性がある。
【０００６】
概要 
本明細書では、たとえばあるクライアントコンピューティングデバイスが所有するサービスインスタンスの利用が制限されている場合に、その種のサービスインスタンスサービスインスタンスの終了を要求するシステムおよび方法が開示される。
【０００７】
本開示の１つの態様によれば、第１のクライアントデバイスが所有してリモートアプリケーションサーバにおいて実行中のサービスインスタンスの終了を要求する方法について述べられている。
【０００８】
この方法は、前記サービスインスタンスを含む、要求を生成してもよい複数のサービスインスタンスから成るリストを、第２のクライアントデバイスにおい受け取ること、前記第１のクライアントデバイスが所有するサービスインスタンスの終了を第２のクライアントデバイスによって要求すること、第１のクライアントデバイスに対して前記サービスインスタンスの終了要求を転送すること、前記第１のクライアントデバイスが所有するサービスインスタンスが終了したならば、新たなサービスインスタンスを生成し、その後、前記第２のクライアントデバイスが、前記新たなサービスインスタンスのオーナになること、を含むことができる。
【０００９】
以下の図面および詳細な説明を精査すれば、当業者にはこれとは別のシステム、方法、特徴および／または利点が明確に理解されるであろう。ここで意図されているのは、かかる付加的なシステム、方法、特徴および／または利点はすべて、本明細書に含まれ、かつ添付の特許請求の範囲によって保護される、ということである。
【００１０】
図中のコンポーネントは、必ずしも同じ縮尺で示されているわけではない。同じ参照符号は、複数の図面にわたり対応する部分を表すものである。
【図面の簡単な説明】
【００１１】
【図１】図１は、制限されたサービスインスタンスへのアクセスを提供する環境を示す簡略ブロック図である。
【図２】図２は、制限されたサービスインスタンスへのアクセスを提供および要求するオペレーションフローの一例を示す図である。
【図３Ａ−３Ｂ】図３Ａ〜３Ｂは図１の環境において図２のオペレーションフローに従い実施される、制限されたサービスインスタンスへのアクセスの提供の一例を示す簡略ブロック図である。
【図４】図４は、図２のオペレーションフローに関連づけられたユーザインタフェースを示す図である。
【図５】図５は、図２のオペレーションフローに関連づけられたユーザインタフェースを示す図である。
【図６】図６は、図２のオペレーションフローに関連づけられたユーザインタフェースを示す図である。
【図７】図7は、制限されたサービスインスタンスへのアクセスを提供する環境の別の例を示す簡略ブロック図である。
【図８】図８は、コンピューティングデバイスの一例を示す図である。
【発明を実施するための形態】
【００１２】
詳細な説明
特別に定義されていないかぎり、本明細書で使われるすべての技術用語および科学用語は、当業者によって一般的に理解されるものと同じ意味をもつ。
【００１３】
また、本明細書に記載されているものと類似または等価の方法および材料を、本開示の実施や試験において用いることができる。 
図１は、制限されたサービスインスタンスへのアクセスを提供する環境１００を示す簡略ブロック図である。
【００１４】
いくつかの実施形態によれば、１つまたは複数のサービスインスタンス１，２を提供することができ、このようなサービスインスタンスを、クライアントデバイス１０８Ａ，１０８Ｂ，１０８Ｃによってリモートでアクセスされるアプリケーション、データプロバイダ等とすることができる。
【００１５】
サービスインスタンス１，２を、アプリケーションサーバ（図示せず）において実行させることができ、それらのアプリケーションサーバは各々、リソースに余裕があるならば、複数のサービスインスタンスを実行することができる。
【００１６】
クライアントデバイス１０８Ａ，１０８Ｂ，１０８Ｃのユーザは、通信ネットワーク１１２を経由しリソースマネージャ１０６を通してサービスインスタンス１，２に接続するために、予め定められたコネクションであるユニフォームリソースロケータ（ＵＲＬ）を、クライアントユーザインタフェース（ＵＩ）１０９Ａ，１０９Ｂ，１０９Ｃに入力することができる。
【００１７】
ネットワーク１１２は、どのようなタイプのネットワークであってもよく、たとえばインターネット、イーサネット、Ｗｉ−Ｆｉ（ＩＥＥＥ ８０２．１１ｘ）、ＷｉＭａｘ（ＩＥＥＥ ８０２．１６）、イーサネット、３Ｇ、４Ｇ、ＬＴＥ等とすることができる。 
【００１８】
なお、本明細書において、クライアントデバイスが１つの特定のサービスインスタンスに接続されている場合、そのクライアントデバイスの個々のクライアントＵＩは、そのサービスインスタンスを所有する「ホスト」または「オーナ」である。
【００１９】
たとえば、クライアントデバイス１０８Ａがサービスインスタンス１に接続されているとすれば、クライアントＵＩ １０９Ａはサービスインスタンス１を「ホスティングする」、または「所有する」。
【００２０】
クライアントデバイス１０８Ａ，１０８Ｂ，１０８Ｃの個々のクライアントＵＩ １０９Ａ，１０９Ｂ，１０９Ｃが、ホストまたはオーナとして振る舞う場合には、動作中のサービスインスタンスのためのスロットの所有権を表すトークン１１０Ａ，１１０Ｂを、それらのクライアントデバイス１０８Ａ，１０８Ｂ，１０８Ｃに与えることができる。  トークン１１０Ａ，１１０Ｂを、動作中のサービスインスタンスを表すスロットの任意の識別子とする。
【００２１】
たとえばトークン１１０Ａ，１１０Ｂを、インスタンスＩＤとすることができる。  本開示の他の態様によれば、オーナであるクライアントデバイス１０８Ａ，１０８Ｂ，１０８Ｃ、リソースマネージャ１０６のいずれか、または両方が、トークンを保持することができる。
【００２２】
関連づけられたサービスインスタンスがスタートアップするとき、クライアントデバイスがサービスインスタンスに接続するとき、またはそれ以外の時点に、トークン１１０Ａ，１１０Ｂを生成することができる。
【００２３】
サービスインスタンスが利用不可能であるときに、クライアントデバイス１０８Ａ，１０８Ｂ，１０８Ｃがサービスインスタンスの終了を要求できるようにするメカニズムが、リソースマネージャ１０６に設けられている。
【００２４】
リソースマネージャ１０６は、サービスインスタンスが登録されているサービスインスタンスリスト１０７を維持することができる（後に詳述する）。
このリストには、サービスインスタンス各々に関する情報が含まれており、以下に限定されるものではないがたとえば、サービスインスタンスに関連づけられたトークン、ホスト情報（たとえばユーザ名、氏名、部署等）、およびポストセッション情報（たとえばセッションのステータス、アイドル状態／非アイドル状態等）が含まれている。
【００２５】
アイドルタイムは、ユーザがサービスインスタンスと対話していない期間である。
リソースマネージャ１０６の詳細については、後に図２を参照しつつ説明する。
リソースマネージャ１０６を、サービスインスタンス１，２と同じサーバにおいて、またはそれとは異なるサーバにおいて、実行させておくことができる。
【００２６】
サービスインスタンス１，２は、自身をリソースマネージャ１０６に登録するために、予め定められたインターネットプロトコル（ＩＰ）アドレスおよび／またはソケットで、あるいはリソースマネージャ１０６に関連づけられたＵＲＬを用いて、リソースマネージャ１０６に接続することができる。
【００２７】
場合によってはサービスインスタンス１，２は、リソースマネージャ１０６に登録するために、ネットワーク１１２を介してリソースマネージャ１０６に接続することができる。
【００２８】
サービスインスタンス１，２は登録された時点で、クライアントデバイスがそのサービスインスタンスに接続できるよう、キューに加えられる。
キューに加えられたサービスインスタンスを、ユニークなインスタンスＩＤによって参照することができる。
【００２９】
クライアントデバイスは、リソースマネージャ１０６に接続することによって、サービスインスタンスに接続することができ、アプリケーションのインスタンスＩＤを使用することにより、キューに加えられているサービスの特定のサービスインスタンスに接続することができ、またはアプリケーション名を用いて、キューに加えられている特定のタイプの最初の利用可能なサービスインスタンスに接続することができる。
【００３０】
サービスインスタンス１，２を「アンマネージドサービス」としてもよく、これは、リソースマネージャ１０６のサーバ（ノード）と同じまたは異なるサーバ（ノード）に常駐させることができるサービスである。
【００３１】
アンマネージドサービスの場合には、リソースマネージャ１０６によってもアプリケーション／プロセスのライフサイクルは管理されない。
上述のサーバおよびクライアントデバイス１０８Ａ，１０８Ｂ，１０８Ｃを、図８の汎用コンピューティングデバイスにおいて示されているようなハードウェアを用いて実装することができる。
【００３２】
ソフトウェア、アプリケーション（たとえばサービスインスタンス１，２、リソースマネージャ１０６、およびクライアントＵＩ １０９Ａ，１０９Ｂ，１０９Ｃ）、オペレーティングシステム等を、図８の汎用コンピューティングデバイスのメモリおよびプロセッサにおいて、実行させることができる。
【００３３】
図２には、制限されたサービスインスタンスへのアクセスを提供および要求するオペレーションフロー２００の一例が示されており、これは環境１００において実施可能である。
【００３４】
図３Ａ〜図３Ｂには、オペレーションフロー２００による環境１００内のコネクティビティおよびデータフローが示されている。
図３Ａに示されているように、当初はクライアントデバイス１０８Ａが、スロット１においてサービスインスタンス１を所有しているオーナ１である。
【００３５】
サービスインスタンス１は、クライアントＵＩ １０９Ａに表示されている（コネクション３０２を参照）。
したがって、オーナ１にはトークン１が与えられている。
【００３６】
クライアントデバイス１０８Ｂはオーナ２であり、スロット２においてサービスインスタンス２を所有している。
サービスインスタンス2は、クライアントＵＩ １０９Ｂに表示されている（コネクション３０３を参照）。
【００３７】
したがって、オーナ２にはトークン２が与えられている。 
ステップ２０２において「割込者（ｉｎｔｒｕｄｅｒ）」は、新たなサービスインスタンスへのアクセスを要求できるが、その割込者はアクセスを拒否される。
【００３８】
本明細書において、１つまたは複数のサービスインスタンスの終了を要求するクライアントデバイス（たとえば１０８Ｃ）は、「割込者（ｉｎｔｒｕｄｅｒ）」と呼ばれる。
たとえば、割込者であるクライアントデバイス１０８Ｃは、新たなサービスインスタンスにアクセスするためにリソースマネージャ１０６に対する要求を生成できるけれども、新たなサービスインスタンスのために利用可能なリソースが存在し得ないことから、拒否される（参照符号３０４ａを参照）。
【００３９】
ステップ２０４において割込者に対し、サービスインスタンスリストが表示される。
たとえば、リソースマネージャ１０６は割込者を認証することができ、その割込者に対しサービスインスタンスのテーブルまたはリスト１０７を表示することができ（参照符号３０６を参照）、それらのサービスインスタンスに対し割込者は終了を要求することができる。
【００４０】
図４には、サービスのリストを表示するユーザインタフェースの一例が示されている。
すなわち、割込者に割り当てられているレベルアクセスまたは権限、特定のサービスインスタンスの重要度、サービスインスタンスが実行されるアプリケーションサーバにおいて利用可能なリソース、またはその他の判断基準に従って、ソートまたは優先順位づけすることができる。
【００４１】
ステップ２０４において割込者に提供される情報も、予めコンフィギュレーションされたルールに従ってソートすることができ、たとえばアクセス／権限のレベル（たとえばあるユーザは、もっと高い権限レベルまたはアクセスレベルを有する他のユーザに関連づけられたインスタンスを見るつもりはない）、アイドルタイム、部署、職位、ユーザ設定等に従ってソートしてもよいし、または割込者が手動でソートしてもよい。
【００４２】
サービスインスタンスリストは、サービスインスタンスおよびそれらの個々のトークン（たとえばトークン１、トークン２等）を含むことができる。
ステップ２０５において割込者は、サービスインスタンスリスト１０７の中から１つのサービスインスタンス（または複数のインスタンス）を選択する。
【００４３】
図４に示されているように、割込者はチェックボックスをクリックすることにより、サービスインスタンス２の終了を要求することができる。
それによって制限されたアクセスコネクションが確立され、割込者をセッションに接続することができるが、割込者は共働するかたちではそのセッションに関与しないし、割込者はそのセッションにおける他のクライアントデバイスには見えない。
【００４４】
さらに別の割込者またはユーザがその割込者よりも先にサービスインスタンスに接続することがないよう、リソースマネージャ１０６はその割込者のためのスロット２を保持することもできる。
ステップ２０６において割込者は、１つまたは複数のサービスインスタンスの終了を要求することができる。
【００４５】
たとえば図４のダイアログボックスにおいて、割込者であるユーザは、１つのサービスインスタンスを選択して終了を要求した（たとえばオーナ２が所有するサービスインスタンス２）。
【００４６】
環境１００によって提供されるクライアント間通信メカニズムを用いて、割込者は、自身が終了を要求しているサービスインスタンスに関連づけられたセッションのクライアントデバイスとコンタクトをとる。
【００４７】
ステップ２０７において、終了が要求されている１つまたは複数のサービスインスタンスがアイドル状態にあるのかアクティブ状態にあるのか、が判定される。サービスインスタンスがアイドル状態（すなわちユーザがそのサービスインスタンスと活発に対話していない状態）にあれば、ステップ２０８において、アイドル状態のサービスインスタンスおよび／またはクライアントデバイスは割込者をリスニングすることができ、（ステップ２１０において）タイマをスタートさせて、クライアントデバイス（またはそのクライアントデバイスと対話しているユーザ）に対し、終了要求をキャンセルするオプションを提供する。
【００４８】
たとえば、クライアントデバイスにおけるユーザに対し警告および要求をキャンセルするオプションを提供するために、アイドル状態のサービスインスタンスを表示しているクライアントＵＩに、図５のユーザインタフェースを表示することができる。
【００４９】
いくつかのインプリメンテーションによれば、クライアントデバイスまたはユーザが要求をキャンセルできるように、１分間のタイマをセットすることができる。
別の選択肢として図５のユーザインタフェースによって、割込者のユーザ名を表示させてもよい。
【００５０】
ステップ２１２において、クライアントデバイスまたはクライアントデバイスにおけるユーザが終了要求をキャンセルしたのか否か、が判定される。
クライアントデバイスまたはユーザが終了をキャンセルしなかったならば、ステップ２１４において割込者は、終了させたサービスインスタンスの代わりに生成された新たなサービスインスタンスのオーナになる。
【００５１】
たとえば図３Ｂに示されているように、オーナ２がスロット２において所有していたサービスインスタンス２が終了すると、コネクション３０３が終了させられ、スロット２に新たなサービスインスタンス３が生成される。
【００５２】
割込者とサービスインスタンス３との間で新たなコネクション３０８が確立され、これが今度はスロット２において実行中となる。
そして割込者がサービスインスタンス３のオーナとなり、トークン２がその割込者に送られる（フロー３１０を参照）。
【００５３】
ステップ２０６において、割込者が２つ以上のサービスインスタンスの終了を要求していた場合もあるので、オプションとしてステップ２１６において、その割込者に関連づけられているいかなる未処理の終了要求もキャンセルされる。
【００５４】
ただしステップ２１２において、ホストが終了をキャンセルしたならば、ステップ２２２において、他のサービスインスタンスが終了させられたか否か、が判定される。
他のサービスインスタンスが終了させられていたならば、ステップ２１４において割込者は上述のように、最近終了させられたサービスインスタンスの代わりに生成された新たなサービスインスタンスのオーナとなる。
【００５５】
ここでもオプションとしてステップ２１６において、割込者に関連づけられているいかなる未処理の終了要求もキャンセルされる。
しかしながらステップ２２２において、他のサービスインスタンスが終了していなかったならば、ステップ２２４において、要求を繰り返すべきか否か、が判定される。
【００５６】
要求を繰り返すべきであれば、プロセスはステップ２０６に戻る。
要求を繰り返すべきでなければ、プロセスはステップ２２６に進み、このステップにおいて、さらに多くの支援を得るためにインフォメーションテクノロジー（ＩＴ）サポートに向けて要求を生成してプロセスを終了させることができ、またはセッションを利用できるようになるまで割込者は待機することができる。
【００５７】
ステップ２０７に戻って説明すると、割込者がアクティブなサービスインスタンスの終了を要求した、と判定されたならば（ステップ２１８）、次にステップ２１９において、クライアントデバイスにおけるユーザは、終了について問い合わせを受ける。
【００５８】
たとえばオーナ２がアクティブなサービス要求に関連づけられていたならば、オーナ２のユーザに対しクライアントＵＩ １０９Ｂにおいて、図６に示されているようなユーザインタフェースが表示されることになる。
【００５９】
別の選択肢として図6のユーザインタフェースによって、割込者のユーザ名を表示させてもよい。
次にステップ２２０において、クライアントデバイスにおけるユーザが要求に応答して実際に終了させたか否か、が判定される。
【００６０】
本開示の態様によれば、アクティブなサービスインスタンスは、割込者の要求に応答して明示的に終了させなければならない。
サービスインスタンスが終了したならば、上述のようにフローはステップ２１４において続けられる。
【００６１】
ただしステップ220において、ホストが終了をキャンセルしたならば、ステップ２２２において、他のサービスインスタンスが終了させられたか否か、が判定される。他のサービスインスタンスが終了していれば、ステップ２１４において上述のようにフローが続けられる。
【００６２】
しかしながらステップ２２２において、いかなる他のサービスインスタンスも終了していなかったならば、ステップ２２４および２２６におけるプロセスが上述のように実施される。
【００６３】
図7は、制限されたサービスインスタンスへのアクセスを提供する環境700を示す簡略ブロック図である。
この環境７００を、スケーリング可能なフォールトトレラントリモートアクセスアーキテクチャとして、たとえばＡｍａｚｏｎ Ｗｅｂ Ｓｅｒｖｉｃｅｓ（ＡＷＳ）または他のエンティティなどのようなクラウドインフラストラクチャにおいて提供することができる。
【００６４】
環境７００は、場合によっては多数になるかもしれないサービスインスタンスおよびホストに適合させるよう、スケーリングが意図されたものではあるが、ライセンスの制約、物理的キャパシティ、ネットワークキャパシティなどのように、スケーラビリティに対し他の制約が加わる可能性がある。よって、サービスインスタンスに対するアクセスを割込者に提供するために、本開示の技術を実施することができる。
【００６５】
図７によれば、サービスインスタンス１およびサービスインスタンス２をそれぞれホスティングするために、リモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂを提供することができる。
【００６６】
リモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂの各々には、ただ１つのサービスインスタンスだけしか示されていないけれども、リモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂ各々において、２つ以上のサービスインスタンスが実行されるようにしてもよい。
【００６７】
リモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂを、イメージから生成されるクラウドベースのインスタンスとすることができる。
たとえば、各サービスインスタンスに関連づけられたプレビルドイメージを設けておくことができ、クラウド環境においてインスタント化されたときに、そのイメージをリモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂにロードすることができる。 
【００６８】
各リモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂは、サービスマネージャ１１１Ａ，１１１Ｂおよびアプリケーションサーバ１１４Ａ，１１４Ｂを含むことができる。
【００６９】
サービスマネージャ１１１Ａ，１１１Ｂは、ある特定のリモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂにおいてサービスインスタンスをストップおよびスタートさせる役割を担っている。
【００７０】
アプリケーションサーバ１１４Ａ，１１４Ｂは、コネクションのマーシャリングを提供し、クライアントデバイス１０８Ａ，１０８Ｂ，１０８Ｃからサービスインスタンス１，２へ、およびその逆方向へ、ディスプレイ情報を提供するサーバＳＤＫ（図示せず）を含むことができる。
【００７１】
リモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂの一例は、Ｃａｌｇａｒｙ，Ａｌｂｅｒｔａ，ＣａｎａｄａのＣａｌｇａｒｙ Ｓｃｉｅｎｔｉｆｉｃ社から入手可能なＰＵＲＥＷＥＢである。
【００７２】
プロキシサーバ１１３Ａ，１１３Ｂを、同時に発生する比較的多くの要求を処理する能力があるＨＴＴＰサーバおよびリバースプロキシサーバとすることができる。
図示されているように、プロキシサーバ１１３Ａ，１１３Ｂは、１つまたは複数のリモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂから分離されたノード（たとえばサーバコンピューティングデバイス）において実行される。
【００７３】
プロキシサーバ１１３Ａ，１１３Ｂの一例は、Ｓａｎ Ｆｒａｎｃｉｓｃｏ，ＣａｌｉｆｏｒｎｉａのＮｇｉｎｘ社から入手可能なｎｇｉｎｘである。
リソースマネージャ１０６を、スケジューラ（図示せず）の機能として設けることができ、このスケジューラは、リモートアクセスおよびアプリケーションサーバ１０３Ａ，１０３Ｂまたはクラスタ１２０内のその他のノードなどリソースの使用をマネージメントすることができる。
【００７４】
リソースマネージャ１０６のこのような機能に加え、スケジューラは、いずれのアプリケーションサーバ１０３Ａ，１０３Ｂがリモートアクセスコネクション要求に応えられるかを判定するために、１つまたは複数のヒューリスティック（自己習得的な）選択を実行することができる。
【００７５】
図２に例示した、制限されたサービスインスタンスへのアクセスを提供および要求するオペレーションフロー２００を、環境７００においても実施可能である。
ただし、環境７００の特性ゆえに、図３Ａ〜図３Ｂのコネクティビティおよびデータフローとは異なり、ホスト（すなわちクライアントデバイス１０８Ａ，１０８Ｂ，１０８Ｃ）はプロキシサーバ１１３Ａ，１１３Ｂに接続し、これらのプロキシサーバがそれぞれサービスインスタンス１，２へのコネクションを提供する。
【００７６】
本開示の態様によれば、サービスインスタンスへのアクセスを要求する複数の割込者が存在していてもよい。
複数の割込者によって生成されたそれらの要求各々に対し、ファーストイン・ファーストアウトの原理、要求が必要とされる緊急度、要求側の権限レベル等に基づき、優先順位づけすることができる。さらに付言しておくと、上述のようにすることで、たとえば数に制限のあるライセンス、制約されたＣＰＵ／ＧＰＵのケイパビリティ等、リソースに制約のあるエンタープライズシステムに起因する、サービスインスタンスのアベイラビリティの制限を緩和することができる。ここで説明した技術を、クラウドベースの環境において使用することもできる。
【００７７】
一例として、医療イメージングアプリケーションに即座にアクセスする必要がある緊急治療室の医師が、上述の技術を利用することができる。
別の例を挙げると、軍部の高官は階級が低いスタッフよりも優先して、隊や施設の配備を示す兵站アプリケーションへアクセスすることができる。さらに別の例によれば、管理職は部下よりも優先して、ビジネスアプリケーションへのアクセスが得られるようにしておくことができる。
【００７８】
よって、物理的キャパシティ、論理的キャパシティ、ライセンシング等のような制約によってインスタンスが制限されている状況で、サービスに対するアクセスを提供するために、数多くの様々な環境において、本明細書で開示した技術を用いることができる。
【００７９】
図８には、例示的な実施形態および態様を実施可能なコンピューティング環境の一例が示されている。
このコンピューティングシステム環境は、適切なコンピューティング環境の一例にすぎず、使用または機能の範囲に関して何らかの制限を示唆しようというものではない。  
【００８０】
これとは別の多数の汎用または特定用途向けのコンピューティングシステム環境またはコンフィギュレーションを使用してもよい。
使用に適しているといえる周知のコンピューティングシステム、環境および／またはコンフィギュレーションの具体例には、以下に限定されるものではないけれども、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークパーソナルコンピュータ（ＰＣ）、ミニコンピュータ、メインフレームコンピュータ、組み込みシステム、上述のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、およびその他同類のもの、が含まれる。
【００８１】
コンピュータによって実行されるプログラムモジュールなど、コンピュータにより実行可能な命令を用いることができる。
一般にプログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれており、これらは特定のタスクを実行し、または特定の抽象データタイプを実施する。
【００８２】
通信ネットワークまたは他のデータ伝送媒体を介してリンクされている複数のリモートプロセッシングデバイスによってタスクが実行される状況において、分散コンピューティング環境を使用することができる。
【００８３】
分散コンピューティング環境において、メモリストレージデバイスを含むローカルとリモートの双方のコンピュータストレージ媒体に、プログラムモジュールおよびその他のデータを配置することができる。
【００８４】
図８を参照すると、本明細書で説明した態様を実施するための例示的なシステムには、コンピューティングデバイス８００などのようなコンピューティングデバイスが含まれている。
【００８５】
その最も基本的なコンフィギュレーションによれば、コンピューティングデバイス８００は典型的には、少なくとも１つの処理ユニット８０２とメモリ８０４とを含む。
コンピューティングデバイスの正確なコンフィギュレーションおよびタイプに応じて、メモリ８０４を、（ランダムアクセスメモリ（ＲＡＭ）のような）揮発性メモリ、（リードオンリメモリ（ＲＯＭ）、フラッシュメモリ等のような）不揮発性メモリ、またはこれら２つの何らかの組み合わせ、とすることができる。
【００８６】
図８には、このような最も基本的なコンフィギュレーションが破線８０６で示されている。
コンピューティングデバイス８００に、付加的な特徴／機能をもたせることができる。
【００８７】
たとえばコンピューティングデバイス８００に、付加的なストレージ（リムーバブルおよび／または非リムーバブル）を含めることができ、以下に限定されるものではないが、そのような付加的なストレージには、磁気ディスクまたは光ディスクまたはテープが含まれる。
【００８８】
図８には、かかる付加的なストレージが、リムーバブルストレージ８０８および非リムーバブルストレージ８１０によって示されている。
コンピューティングデバイス８００は一般に、様々なコンピュータ読み取り可能媒体を含んでいる。
【００８９】
コンピュータ読み取り可能媒体を、デバイス８００によってアクセスできる入手可能な任意の媒体とすることができ、このようなコンピュータ読み取り可能媒体には、揮発および不揮発双方の媒体、リムーバブルおよび非リムーバブルの媒体が含まれる。
【００９０】
コンピュータストレージ媒体には、揮発および不揮発、リムーバブルおよび非リムーバブルの媒体が含まれており、これらはコンピュータ読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータといった情報を記憶するための任意の方法または技術によって実施される。
【００９１】
メモリ８０４、リムーバブルストレージ８０８および非リムーバブルストレージ８１０はすべて、コンピュータストレージ媒体の具体例である。コンピュータストレージ媒体には、以下に限定されるものではないが、ＲＡＭ、ＲＯＭ、電気的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたは他のメモリテクノロジー、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）またはその他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、または所望の情報を記憶するために使用可能かつコンピューティングデバイス８００によってアクセス可能な他の任意の媒体が含まれる。
【００９２】
かかるコンピュータストレージ媒体のいずれも、コンピューティングデバイス８００の一部分とすることができる。 
コンピューティングデバイス８００は、このデバイスが他のデバイスと通信できるようにする１つまたは複数の通信コネクション８１２を含むことができる。
【００９３】
コンピューティングデバイス８００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス等のような、１つまたは複数の入力デバイス８１４も含むことができる。また、ディスプレイ、スピーカ、プリンタ等のような、１つまたは複数の出力デバイス８１６も含めることができる。
【００９４】
これらすべてのデバイスはこの分野ではよく知られており、ここで詳細に論じる必要はない。
自明のとおり、本明細書で説明した様々な技術を、ハードウェアまたはソフトウェアと連携させて、あるいは適切であれば両者を組み合わせて、実施することができる。
【００９５】
よって、本開示の対象である方法および装置、あるいは特定の態様またはその一部は、フロッピーディスク、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意の機械読み取り可能なストレージ媒体など、有形媒体において具現化されたプログラムコード（すなわち命令）の形態をとることができ、この場合、プログラムコードがコンピュータなどの機械にロードされ、それによって実行されると、その機械は、本開示の対象を実施するための装置となる。
【００９６】
プログラミング可能なコンピュータにおいてプログラムコードが実行されるケースであれば、コンピューティングデバイスは一般に、プロセッサ、プロセッサによって読み取り可能なストレージ媒体（揮発性および不揮発性のメモリおよび／またはストレージエレメントを含む）、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスを含む。
【００９７】
１つまたは複数のプログラムは、たとえばアプリケーションプログラミングインタフェース（ＡＰＩ）、再利用可能なコントロール、またはその他同類のものを使用することにより、本開示の対象と関連して説明したプロセスを実施することができ、または利用することができる。かかるプログラムを、コンピュータシステムと通信するために、高水準の手続型またはオブジェクト指向のプログラム言語で実施することができる。
【００９８】
ただし要望次第では、１つまたは複数のプログラムを、アセンブリ言語または機械語で実施することができる。
いずれのケースであれ、言語をコンパイラ型言語またはインタプリタ型言語とすることができ、ハードウェアの実施と組み合わせることができる。
【００９９】
これまで本開示の対象について、構造的な特徴および／または方法の動作に固有の記述内容で説明してきたが、自明のとおり、特許請求の範囲において規定されている本開示の対象は、上述の特定の特徴または動作に必ずしも限定されるものではない。むしろ、上述の特定の特徴および動作は、特許請求の範囲を実施する例示的形態として開示されたものである。
【図１】
2018513460.tif 000003
【図２】
2018513460.tif 000004
【図３Ａ】
2018513460.tif 000005
【図３Ｂ】
2018513460.tif 000006
【図４】
2018513460.tif 000007
【図５】
2018513460.tif 000008
【図６】
2018513460.tif 000009
【図７】
2018513460.tif 000010
【図８】
2018513460.tif 000011
【国際調査報告】
2018513460.tif 000012
2018513460.tif 000013