(57)【要約】  本明細書で論じられる技法は、シークレット配布インフラストラクチャー内に維持されるシークレットについて障害耐性のある自動的なシークレットの入替えを行うことに関する。１つの実装形態において、装置は、１つまたは複数のコンピューター可読記憶媒体と、１つまたは複数のコンピューター可読記憶媒体に格納されたプログラム命令を含むシークレット入替えサービスとを含む。プログラム命令は、キーマスターサービス（ＫＭＳ）システムの１つまたは複数の処理システムによって実行されると、ＫＭＳシステムによって供給される１つまたは複数のシークレットを入れ替えることと、シークレット配布インフラストラクチャーの他の構成要素に１つまたは複数のシークレットを識別する入替え情報を提供することとを１つまたは複数の処理システムに指図する。命令は、実行されると、シークレット配布インフラストラクチャーの他の構成要素において１つまたは複数のシークレットが入れ替えられたことを確認することと、確認されると、メタデータストレージサービスに入替え情報を公表することとを１つまたは複数の処理システムにさらに指図する。
2019534512.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のコンピューター可読記憶媒体と、
前記１つまたは複数のコンピューター可読記憶媒体に格納されたプログラム命令を含むシークレット入替え(rotation)サービスであって、前記プログラム命令が、キーマスターサービス（ＫＭＳ）システムの１つまたは複数の処理システムによって実行されると、
前記ＫＭＳシステムによって供給される１つまたは複数のシークレットを入れ替えること、
シークレット配布インフラストラクチャーの他の構成要素に前記１つまたは複数のシークレットを識別する入替え情報を提供すること、
前記シークレット配布インフラストラクチャーの前記他の構成要素において前記１つまたは複数のシークレットが入れ替えられたことを確認すること、および
確認されると、メタデータストレージサービスに前記入替え情報を公表すること、
を前記１つまたは複数の処理システムに指図するシークレット入替えサービスと、
を備える、装置。
【請求項２】
前記プログラム命令が、前記１つまたは複数の処理システムによって実行されると、
入替えの前に前記１つまたは複数のシークレットをロックすること、を前記１つまたは複数の処理システムにさらに指図する、請求項１に記載の装置。
【請求項３】
前記１つまたは複数のシークレットのそれぞれが、複数のサブシークレットインスタンスを含み、前記複数のサブシークレットインスタンスのうちのただ１つがいつでもアクティブな、請求項１に記載の装置。
【請求項４】
前記１つまたは複数のシークレットを入れ替えるために、前記プログラム命令が、前記１つまたは複数の処理システムによって実行されると、
前記１つまたは複数のシークレットの各シークレットに対して、
アクティブ化されている前記シークレットの第１のサブシークレットインスタンスを非アクティブ化することと、
非アクティブ化されている前記シークレットの第２のサブシークレットインスタンスをアクティブ化することと、
を前記１つまたは複数の処理システムにさらに指図する、請求項３に記載の装置。
【請求項５】
前記プログラム命令が、前記１つまたは複数の処理システムによって実行されると、
シークレット入替えトリガーイベントを検出することと、
前記シークレット入替えトリガーイベントを検出するのに応答して、前記ＫＭＳシステムによって供給される前記シークレットから入れ替えられることになる前記１つまたは複数のシークレットを識別することと、
を前記１つまたは複数の処理システムにさらに指図する、請求項１に記載の装置。
【請求項６】
前記プログラム命令が、前記１つまたは複数の処理システムによって実行されると、
前記ＫＭＳシステムによって供給されるシークレットのシークレット入替えスケジュールを監視すること、
を前記１つまたは複数の処理システムにさらに指図する、請求項５に記載の装置。
【請求項７】
前記他の構成要素が、外部サービスを含む、請求項１に記載の装置。
【請求項８】
前記他の構成要素が、キーマスタークライアントを含む、請求項１に記載の装置。
【請求項９】
前記プログラム命令が、前記１つまたは複数の処理システムによって実行されると、
入替えの前に前記１つまたは複数のシークレットのうちの少なくとも１つのロックすることであって、
前記１つまたは複数のシークレットのうちの前記少なくとも１つが、前記シークレット配布インフラストラクチャー内の別のＫＭＳシステムによってロックされる、
ロックすること、
を前記１つまたは複数の処理システムにさらに指図する、請求項１に記載の装置。
【請求項１０】
前記シークレット配布インフラストラクチャーの他の構成要素に前記１つまたは複数のシークレットを識別する入替え情報を提供するために、前記プログラム命令が、前記１つまたは複数の処理システムによって実行されると、
前記他の構成要素のうちの少なくとも１つにコードを送ることであって、前記コードが前記入替え情報を示す、送ること、
を前記１つまたは複数の処理システムに指図する、請求項１に記載の装置。
【請求項１１】
前記シークレットが、証明書、パスワード、キー、ログイン、またはドメインアカウントの１つまたは複数を含む、請求項１に記載の装置。
【請求項１２】
シークレット配布インフラストラクチャー内でシークレットを自動的に入れ替える方法であって、
シークレット入替えスケジュールを監視するステップと、
前記シークレット入替えスケジュールに基づいてシークレット配布インフラストラクチャー内のＫＭＳシステムによって供給される複数のシークレットから１つまたは複数のシークレットを識別するステップと、
前記１つまたは複数のシークレットを入れ替えるステップと、
前記シークレット配布インフラストラクチャーの他の構成要素に前記１つまたは複数のシークレットを識別する入替え情報を提供するステップと、
前記シークレット配布インフラストラクチャーの前記他の構成要素において前記１つまたは複数のシークレットが成功裏に入れ替えられたことを確認するステップと、
メタデータストレージサービスに前記入替え情報を公表するステップと、
を含む、方法。
【請求項１３】
入替えの前に前記１つまたは複数のシークレットをロックするステップをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記１つまたは複数のシークレットを入れ替えるステップが、
前記１つまたは複数のシークレットの各シークレットに対して、
アクティブ化されている第１のサブシークレットインスタンスを非アクティブ化するステップと、
非アクティブ化されている前記シークレットの第２のサブシークレットインスタンスをアクティブ化するステップと
をさらに含み、
前記１つまたは複数のシークレットのそれぞれが、複数のサブシークレットインスタンスを含み、
前記複数のサブシークレットインスタンスのうちのただ１つがいつでもアクティブな、
請求項１２に記載の方法。
【請求項１５】
キーマスターサービス（ＫＭＳ）システムによって供給される１つまたは複数のシークレットを入れ替えるシークレット入替えモジュールと、
シークレット配布インフラストラクチャー内の他の構成要素に前記１つまたは複数のシークレットを識別する入替え情報を提供し、前記他の構成要素において前記１つまたは複数のシークレットが入れ替えられたことを確認する確認モジュールと、
前記１つまたは複数のシークレットのシークレット入替えが成功裏に確認されると、メタデータストレージサービスに前記入替え情報を公表する公表構成要素と、
を備える、シークレット入替えサービス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明の一実施例は、例えば、障害耐性のある自動的なシークレットの入替えに関する。
【背景技術】
【０００２】
[0001]例えばＭｉｃｒｏｓｏｆｔ  ＯｎｅＤｒｉｖｅ（登録商標）などの様々なオンラインアプリケーション、サービス、およびサイトは、正しく動作させるためにシークレット情報を要求する。シークレット配布インフラストラクチャーは、これらのサービス、およびこれらのサービスに格納された基になるデータにアクセスするためのシークレット情報を維持しクライアントに提供する。残念ながら、現在のセキュリティメカニズムは、潜在的な不法侵入者がセキュリティキーにアクセスするのを常に防げるわけではない。例えば潜在的な不法侵入者がキーを手に入れ、どのデータまたはサービスとキーが関連付けられているかを識別すると、不法侵入者は、セキュア情報を入手することができるか、そうでなければサービスにアクセスすることができる。
【０００３】
[0002]全体として、いくつかの以前のまたは関連したシステム、およびこれらの関連付けられた制限に関する本明細書の例は例証的なものであり、排他的なものであることを意図するものではない。以下を読むと、既存のまたは以前のシステムの他の制限が当業者には明らかになるであろう。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本願発明の一実施例は、例えば、障害耐性のある自動的なシークレットの入替えに関する。
【課題を解決するための手段】
【０００５】
[0003]本明細書で論じられる例は、シークレット配布インフラストラクチャー内に維持されるシークレットについて障害耐性のある自動的なシークレットの入替えを行うことに関する。１つの実装形態において、装置は、１つまたは複数のコンピューター可読記憶媒体と、１つまたは複数のコンピューター可読記憶媒体に格納されたプログラム命令を含むシークレット入替えサービスとを含む。プログラム命令は、キーマスターサービス（ＫＭＳ：ｋｅｙ  ｍａｓｔｅｒ  ｓｅｒｖｉｃｅ）システムの１つまたは複数の処理システムによって実行されると、ＫＭＳシステムによって供給される１つまたは複数のシークレットを入れ替えること、およびシークレット配布インフラストラクチャーの他の構成要素に１つまたは複数のシークレットを識別する入替え情報を提供することを１つまたは複数の処理システムに指図する。命令は、実行されると、シークレット配布インフラストラクチャーの他の構成要素において１つまたは複数のシークレットが入れ替えられたことを確認すること、および確認されると、メタデータストレージサービスに入替え情報を公表することを１つまたは複数の処理システムにさらに指図する。
【０００６】
[0004]本発明の実施形態は、方法、方法の変形形態、および本明細書で説明される他の動作を１つまたは複数のプロセッサに行わせる命令のセットを収めるコンピューター可読記憶媒体も含む。
【０００７】
[0005]複数の実施形態が開示されるが、本発明のさらなる他の実施形態が、本発明の例証的な実施形態を示し説明する以下の詳細な説明から当業者には明らかになるであろう。理解されるように本発明は全て、本発明の範囲から逸脱することなく様々な態様において修正することができる。したがって図面および詳細な説明は、事実上例証的なものであり、制限的なものではないとみなされるべきである。
【０００８】
[0006]本発明の概要は、技術的な開示において下記でさらに説明される概念の選択の範囲を単純な形で紹介するために提供される。本発明の概要は、特許請求される主題の主要な特徴または本質的な特徴を識別するためのものではなく、特許請求される主題の範囲を限定するために使用されるためのものでもないということが理解されよう。
【０００９】
[0007]上記に列挙された利点および特徴ならびに他の利点および特徴が手に入る可能性のある手法を説明するために、添付の図面に示される具体例を参照することによってさらに詳しい説明が示され描画される。これらの図面は典型的な例を描写するにすぎず、したがってその範囲を限定するものとみなされるべきではないということを理解し、添付の図面を使用することによってさらに具体的かつ詳細に実装形態が記述され説明される。
【図面の簡単な説明】
【００１０】
【図１】[0008]いくつかの実施形態による、障害耐性のある自動的なシークレットの入替えを行う動作アーキテクチャの例を示すブロック図を描写する図である。
【図２】[0009]図２Ａは、いくつかの実施形態による、障害耐性のある自動的なシークレットの入替えを行うシークレット入替えサービスを含むＫＭＳシステムの構成要素の例を示すブロック図を描写する図である。 [0010]図２Ｂは、いくつかの実施形態による、シークレットを入れ替えるシークレット入替えサービスの動作の例を示すブロック図を描写する図である。 [0011]図２Ｃは、いくつかの実施形態による、障害耐性のある自動的なシークレットの入替えを行うシークレット入替えサービスの構成要素の例を描写する図である。
【図３】[0012]いくつかの実施形態による、障害耐性のある自動的なシークレットの入替えを行う動作アーキテクチャの構成要素の動作の例を示すシーケンス図を描写する図である。
【図４】[0013]いくつかの実施形態による、障害耐性のある自動的なシークレットの入替えを行う動作のシナリオの例を示す流れ図を描写する図である。
【図５】[0014]いくつかの実施形態による、障害耐性のある自動的なシークレットの入替えを行う動作アーキテクチャの構成要素の動作の例を示すシーケンス図を描写する図である。
【図６】[0015]図に示され、技術的な開示において下記で論じられるアプリケーション、アーキテクチャ、要素、処理、ならびに動作のシナリオおよびシーケンスのいずれかを含む、本明細書で開示される技術を実行するのに適したコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【００１１】
[0016]図面は、必ずしもスケーリングするように描かれていない。同様に、いくつかの構成要素および／または動作は、本技術の実施形態のうちのいくつかを議論するために様々なブロックに分割されてよく、また単一のブロックに組み合わされてもよい。さらに本技術は、様々な修正形式および代替形式に対応できるが、特定の実施形態が図面に例として示されており、下記で詳細に説明される。しかし趣旨は、説明される特定の実施形態に技術を限定することではない。反対に本技術は、添付の特許請求の範囲によって定義されるような技術の範囲に含まれる全ての修正、均等物、および代替をカバーするためのものである。
【００１２】
[0017]下記に詳細に例が論じられる。特定の実装形態が論じられるが、これは例証のためだけに行われるということを理解されたい。当業者は、本開示の主題の精神および範囲から逸脱することなく、他の構成要素および構成が使用されてよいことを認識するであろう。実装形態は、機械実行方法、コンピューティングデバイス、またはコンピューター可読媒体であってよい。
【００１３】
[0018]シークレットストレージおよび配布インフラストラクチャー内で障害耐性のある自動的なシークレットの入替えを行うための技法が本明細書で説明される。シークレットストレージおよび配布インフラストラクチャーは、基になる（外部）アプリケーション、サービス、またはサイトにシークレット情報を提供するように構成される。シークレット情報（またはシークレット）は、証明書、パスワード、キー、ログイン、ドメインアカウント、などを含むことができる。シークレット情報は、例えば中間階層システム上で動くクライアントが、（外部の）アプリケーション、サービス、またはサイトにアクセスできるようにクライアントに配信される。
【００１４】
[0019]いくつかの実施形態において、例えば１日に数回までといった所定間隔でスケジュールに従ってシークレットを変更するシークレット入替えサービスが説明される。動的なシナリオまたは変更も可能である。最初にシークレット入替えサービスは、変更されるか入れ替えられる必要のあるシークレットを識別する。次にシークレット入替えサービスはこれらのシークレットを更新するか入れ替えること、または再実行可能な（ｒｅ−ｒｕｎｎａｂｌｅ）形式で、シークレット配布インフラストラクチャーの全体にわたるシークレットの入替えおよび更新を容易にする。この処理は、格納先および／またはキャッシュの中で更新または入替えを続けることを含む。
【００１５】
[0020]他の恩恵の中でも、本明細書で論じられる技法は、システムが侵入されている状態（ａ  ｓｔａｔｅ  ｏｆ  ｂｒｅａｃｈ）のときに、潜在的な不法侵入者（またはハッカー）がプライベートデータにアクセスする機会がほとんどないか全くないように、シークレットを入れ替えておく能力を含む様々な技術的な効果を促進する。さらに本明細書で説明される自動化は、アドミニストレータがシークレットと対話する必要性を制限する。
【００１６】
[0021]以下の説明において、説明のために、本技術の実施形態を完全に理解するための非常に多くの具体的詳細が示される。しかし、これらの具体的詳細のうちのいくつかがなくても、本技術の実施形態が行われ得ることが当業者には明らかであろう。利便性のために、スプレッドシートアプリケーションのネイティブ機能のようなマイクロサービスをサポートすることに関して本技術の実施形態が説明されるが、本技術の実施形態は、位置決め機器（ｌｏｃａｔｉｎｇ  ｅｑｕｉｐｍｅｎｔ）などの他の様々なアプリケーションに等しく適用可能である。
【００１７】
[0022]本明細書で紹介される技法は、専用ハードウェア（例えば回路機器）として、ソフトウェアおよび／またはファームウェアによって適切にプログラムされたプログラマブル回路機器として、または専用回路機器とプログラマブル回路機器の組合せとして具体化されてよい。したがって実施形態は、処理を行うコンピューター（または他の電子デバイス）をプログラムするために使用され得る命令を格納した機械可読媒体を含むことができる。機械可読媒体は、フロッピーディスケット、光ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光磁気ディスク、ＲＯＭ、ランダムアクセスメモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、消去可能プログラマブルリードオンリーメモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ：ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、磁気もしくは光カード、フラッシュメモリ、または電子命令を格納するのに適した他のタイプの媒体／機械可読媒体を含むことができるがこれらに限定されない。
【００１８】
[0023]句「いくつかの実施形態において（ｉｎ  ｓｏｍｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「いくつかの実施形態によれば（ａｃｃｏｒｄｉｎｇ  ｔｏ  ｓｏｍｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「示された実施形態において（ｉｎ  ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔｓ  ｓｈｏｗｎ）」、「他の実施形態において（ｉｎ  ｏｔｈｅｒ  ｅｍｂｏｄｉｍｅｎｔｓ）」、および同様のものは全体的に、句に続く特定の特徴、構造、または特性が本技術の少なくとも１つの実装形態に含まれ、また２つ以上の実装形態に含まれてもよいことを意味する。さらにこのような句は、必ずしも同じ実施形態または異なる実施形態を指さない。
【００１９】
[0024]図１は、いくつかの実施形態による、動作アーキテクチャ１００の例を示すブロック図を描写する。さらに具体的には、動作アーキテクチャ１００の例は、障害耐性があり自動的なシークレットの入替えを行うように構成されるシークレットストレージおよび配布インフラストラクチャーの例を示す。
【００２０】
[0025]図１の例に示されるように、動作アーキテクチャ１００は、複数のＫＭＳシステム１５２ａ〜１〜１５２ｎ−ｎをそれぞれが有する複数のキー保管庫１７０ａ〜１７０ｎと複数のキーマスター展開１５０ａ〜１５０ｎ、複数の地域ＶＩＰシステム１４０ａ〜１４０ｎ、少なくとも１つのメタデータストレージサービス１６０、複数の中間階層システム１３０ａ〜１３０ｎ、外部サービス１２５、フロントエンドシステム１２０、およびエンドユーザーシステム１１０を含む。中間階層システム１３０ａ〜１３０ｎは、例えばＭｉｃｒｏｓｏｆｔ  ＯｎｅＤｒｉｖｅ（登録商標）などの、例えばオンラインまたはクラウドベースのアプリケーション、サービス、またはサイトといった、関連アプリケーション、サイト、またはサービスのための対応するキーマスター（ＫＭ：ｋｅｙ  ｍａｓｔｅｒ）クライアント１３２ａ〜１３２ｎを実行するように構成される。さらに動作アーキテクチャ１００は、少なくとも１つのシークレット入替えサービス１５４を含む。図１の例に示されるようにＫＭＳシステム１５２ｎ−ｎにただ１つのシークレット入替えサービス１５４が含まれる。しかし任意の数のＫＭＳシステム（または各ＫＭＳシステム）がシークレット入替えサービス１５４を含むことができることが理解される。
【００２１】
[0026]エンドユーザーシステム１１０は、フロントエンドシステム１２０を通じて外部サービス１２５にアクセスすることができる。フロントエンドシステム１２０は、中間階層システム１３０ａ〜１３０ｎのうちの１つの中間階層システム１３０、またさらに詳細には中間階層システム１３０上で動くキーマスタークライアント１３２を介して外部サービス１２５へのアクセスをリクエストする。キーマスタークライアント１３２は、複数のＫＭＳシステム１５２ａ−１〜１５２ｎ−ｎのうちの１つのＫＭＳシステム１５２からシークレット情報をリクエストする。シークレット情報がフロントエンドシステム１２０に返されると、外部サービス１２５へのアクセスが許可され、接続が確立されることが可能になる。図３を参照しながらさらに詳細に例が示され論じられる。
【００２２】
[0027]フロントエンドシステム１２０は、ＰＣ、携帯電話デバイス、ウェブサーバー、または他のアプリケーションサーバー上でも動くＧＵＩ（グラフィカルユーザーインターフェース（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ））を含むことができる。このようなシステムは、１つまたは複数の仮想マシン、コンテナ、または他の任意のタイプの仮想コンピューティングリソースを用いることができる。フロントエンドシステム１２０は、リクエストされた情報を手に入れるために中間階層システム１３０ａ〜１３０ｎのうちの１つの中間階層システム１３０にアクセスする。
【００２３】
[0028]動作中、中間階層システム１３０上で動くキーマスタークライアント１３２は、複数のキーマスター展開１５０ａ〜１５０ｎに展開された複数のＫＭＳシステム１５２ａ−１〜１５２ｎ−ｎのうちの１つのＫＭＳシステム１５２からシークレット情報をリクエストする。本明細書で論じられるように、ＫＭＳシステム１５２ａ−１〜１５２ｎ−ｎは、様々な外部サービス、アプリケーション、またはサイトにアクセスするのに必要なシークレット情報を維持する。したがってＫＭＳシステム１５２ａ−１〜１５２ｎ−ｎのうちの少なくとも１つが作動中で、エンドユーザーシステム１１０が外部サービス１２５にアクセスできるように動いている必要がある。ＫＭＳシステム１５２ａ−１〜１５２ｎ−ｎは、シークレット情報のリクエストに応答して、中間階層システム１３０ａ〜１３０ｎ上で動くキーマスタークライアント１３２ａ〜１３２ｎにリクエストされたシークレット情報を提供する（または配信する）。いくつかの実施形態において、キーマスタークライアント１３２ａ〜１３２ｎは受け取ったシークレット情報をキャッシュする。
【００２４】
[0029]シークレット情報はキー保管庫１７０ａ〜１７０ｎに格納され、シークレット情報と関連付けられた対応するメタデータはメタデータストレージサービス１６０に格納される。メタデータストレージサービス１６０は、物理的および／または機能的に分散された複数のストレージサーバー１６２ａ〜１６２ｎを含むことができる。ストレージサーバー１６２ａ〜１６２ｎはそれぞれ、１つまたは複数のメタデータストア１６４を含む。いくつかの実施形態において、メタデータストアは、例えばＡｚｕｒｅ  ＳＱＬデータベースである。メタデータストア１６４は、冗長性のためにメタデータの複数のコピーを格納することができる。様々な地域に配置される追加のまたは２次的なメタデータストアも可能である。いくつかの実施形態において、各書込みはメタデータへの更新を含む。
【００２５】
[0030]各キー保管庫１７０は、例えばデータストア１７２内にデータの複数のコピーを含むことができる。さらに複数の冗長なキー保管庫１７０ａ〜１７０ｎが例えば物理的に分散された別々の地域に含まれてよい。
【００２６】
[0031]上述のように、キーマスター展開１５０ａ〜１５０ｎはそれぞれ、ＫＭＳシステムの複数のインスタンスを含む。キーマスター展開は機能的および／または物理的に分散されてよい。各キーマスター展開１５０は、このキーマスター展開の中で動作するＫＭＳシステムへのアクセスポイントとして働き作用する、対応するキーマスターサービスの地域ＶＩＰ１４０を介してアクセス可能である。ＫＭＳシステムは冗長ではない。むしろＫＭＳシステムの多くのインスタンスが、多くのキーマスタークライアントからのリクエストを同時にサービスするためにインフラストラクチャー内で必要とされる。図示されていないが、ＫＭＳシステムは負荷バランスされる。典型的には、それぞれの、またあらゆるＫＭＳシステムがいずれかのキーマスタークライアントをサービスできるように、あらゆるＫＭＳシステムが同じデータを有する。本明細書で論じられるようにＫＭＳシステムは、シークレット情報をクライアントに配信することが高度にできることが要求される。ＫＭＳシステムがシークレット情報を返せない場合、外部サービス１２５（サービスまたはサイト）は機能することができない。
【００２７】
[0032]いくつかの実施形態において、キャッシングは、機械がリブートするか、ＫＭＳシステムから新しいデータをポーリングするまで、受け取ったシークレット情報を格納できるようにキーマスタークライアントに内蔵される。キーマスタークライアントは、シークレット情報を必要とした（リクエストし、受け取った）だけであり、すなわちキーマスタークライアントは、全てのシークレット情報を有しているわけではない。
【００２８】
[0033]同様にキャッシングは各ＫＭＳシステムに内蔵されてよく、キーマスタークライアントとは異なり、ＫＭＳシステムは、サイト全体または外部サービス１２５に関するシークレット情報を含むことができる。（例えば入替えによって、またはクライアントツールを通じてユーザーがシークレットを更新することによって）シークレット情報が変わると、ＫＭＳシステムはキー保管庫にシークレットを書き込み、シークレットメタデータをメタデータストアに書き込む。いくつかの実施形態において、自動操縦機能も提供される。
【００２９】
[0034]各ＫＭＳシステムは、サーバーコンピューター、ブレードサーバー、ラックサーバー、および本明細書で論じられる動作の実行に適した他の任意のタイプのコンピューティングシステム（またはこれらの集合体）を含むことができる。同様にメタデータストレージサーバーおよび中間階層システムは、サーバーコンピューター、ブレードサーバー、ラックサーバー、および本明細書で論じられる動作の実行に適した他の任意のタイプのコンピューティングシステム（またはこれらの集合体）を含むことができる。
【００３０】
[0035]本明細書で論じられるように、シークレットが損なわれると、不法侵入者は、顧客データに不正アクセスできる可能性がある。したがってシークレット入替えサービス１５４は、不法侵入者が顧客データにアクセスするのをさらに困難にすることによって、侵入された結果として発生する潜在的なダメージを最小化する。例えばシークレット入替えサービス１５４は所定間隔でシークレットを自動的に入替え、入替えを行う例えばＫＭクライアント１３２ａ〜１３２ｎといったクライアントにクライアントコードを提供する。図示のように、シークレット入替えサービス１５４はＫＭＳ１５２ｎ−ｎの中にある。しかし本明細書で論じられるように、動作アーキテクチャ１００は、複数のＫＭＳシステム１５２ａ−１〜１５２ｎ−ｎの中に配置された、動作アーキテクチャ１００の他の構成要素の中に配置された、または１つもしくは複数のスタンドアロンシステムとして配置された任意の数のシークレット入替えサービスを含むことができる。
【００３１】
[0036]いくつかの実施形態において、入替えを必要とする各シークレットは対にされる。例えばシークレットの２つの別個のインスタンスがあってよく、任意の時点でこれらのうちの１つだけがアクティブである（システムによって使用される）。「アクティブ」ステータスは、次の更新時間と共にメタデータストレージサービス１６０に格納されてよい。シークレット入替えサービス１５４は、例えばメタデータストレージサービス内の構成情報に基づいて、入替えを必要とするシークレットを定期的に発見および／またはそうでなければ識別し、シークレットをロックし、シークレットを入替え、その後メタデータストレージサービスおよび（シークレットの実際のシークレットまたは値が格納される）キー保管庫を更新する。入替えが発生するとＫＭＳシステム１５２ａ−１〜１５２ｎ−ｎは、更新を手に入れるためにメタデータストレージサービス１６０をポーリングする。キーマスタークライアント（またはオブジェクト）１３２ａ〜１３２ｎは、更新されたシークレットを手に入れるためにＫＭＳをポーリングし、新しいシークレットの使用を開始する。ほとんどのインスタンスにおいて、頻繁に入替えをすればするほど、潜在的な不法侵入者が顧客データに不正アクセスするのがますます困難になる。
【００３２】
[0037]図２Ａは、いくつかの実施形態による、ＫＭＳシステム２００の構成要素の例を描写する。ＫＭＳシステム２００は図１のＫＭＳシステム１５２ａ−１〜１５２ｎ−ｎのうちの１つでよいが、代替構成が可能である。図２を参照しながら説明される構成要素、モジュール、および／またはエンジンによって表される機能は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せの中で、個別にまたはこれらの任意の組合せで、部分的または全面的に実行されてよい。
【００３３】
[0038]図２Ａの例に示されるようにＫＭＳシステム２００は、シークレット入替えサービス２１０、およびキャッシュメモリ２５５を含むストレージコンテナ２５０を含む。キャッシュメモリ２５５は、シークレット情報テーブル２５３を含む。他のシステム、データベース、および／または構成要素も可能である。例えばＫＭＳシステム２００は、数ある構成要素の中でも、シークレットハイドレーションおよびシークレット配布に関連した１つまたは複数の構成要素を含むことができる。
【００３４】
[0039]図２Ａの例に示されるようにＫＭＳシステム２００は様々なシークレットでハイドレートされており、これらのそれぞれが対にされている。ユーザーの観点からは、例えば「シークレットＡ」といったただ１つのシークレットが存在するが、インフラストラクチャーは、２つのサブシークレット「シークレットＡサブ１」および「シークレットＡサブ２」を作り出し、これらのうちのただ１つが任意の時点で「アクティブ」である。シークレット入替えサービス２１０はシークレット入替えスケジュール（図示せず）を監視し、サブシークレットの入替えを定期的に促進する。例えば図２Ｂの例に示されるように、シークレットＡサブ１がアクティブの場合、シークレット入替えサービスは、シークレットＡサブ１が非アクティブになるように、またシークレットＡサブ２がアクティブになるようにサブシークレットを入れ替える。簡単にするために２つのサブシークレットが示されるが、システムは任意の数のサブシークレットを利用できることが理解される。
【００３５】
[0040]図２Ｃを参照しながらさらに詳細に論じられるように、シークレット入替えサービスは、入れ替えられたシークレットが全ての構成要素の中で更新されることを検証および／またはそうでなければ保証（例えば入れ替えられるシークレットを確認）した後、メタデータストレージサービスに入替え情報を公表する。すなわち、シークレットが入れ替わることになると、シークレット入替えサービス２１０は非アクティブなサブシークレットを取り出してこれをアクティブにし、アクティブなサブシークレットを取り出してこれを非アクティブにする。検証され、外部サービスおよびクライアントを含む全ての構成要素にプッシュされると、シークレット入替えサービスは、メタデータストレージサービスに入替え情報を公表する。情報はいろいろなところを流れてキーマスターサービスに戻り、その後キーマスタークライアント全てに戻る。
【００３６】
[0041]図２Ｃは、いくつかの実施形態による、シークレット入替えサービス２１０の構成要素の例を描写する。シークレット入替えサービス２１０は図１のシークレット入替えサービス１５４でよいが、代替構成が可能である。図２Ｃを参照しながら説明される構成要素、モジュール、および／またはエンジンによって表される機能は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せの中で、個別にまたはこれらの任意の組合せで、部分的または全面的に実行されてよい。
【００３７】
[0042]図２Ｃの例に示されるようにシークレット入替えサービス２１０は、スケジュール監視モジュール２１１、シークレット入替えモジュール２１３、確認モジュール２１５、および公表モジュール２１７を含む。他のシステム、データベース、および／または構成要素も可能である。
【００３８】
[0043]スケジュール監視モジュールは、ＫＭＳシステムによって供給されるシークレットのシークレット入替えスケジュールを監視するように構成される。いくつかの実施形態において、スケジュールは、いくつかのイベントに応答して、アドミニストレータによって動的に修正されてよい。一方、スケジュールは、定期的なシークレット入替えのタイミングを示すことができる。
【００３９】
[0044]シークレット入替えモジュール２１３は、シークレット入替えを行うように構成される。本明細書で論じられるように、シークレットは、複数のサブシークレットインスタンスと関連付けられてよい。しかし複数のサブシークレットインスタンスのうちのただ１つは、いつでもアクティブである。いくつかの実施形態において、シークレットを入れ替えるためにＫＭＳシステムは、アクティブ化されているシークレットの第１のサブシークレットインスタンスを非アクティブ化し、非アクティブ化されているシークレットの第２のサブシークレットインスタンスをアクティブ化する。
【００４０】
[0045]確認モジュール２１５は、入れ替えられるか入れ替えられる予定のシークレットを識別する入替え情報を、シークレット配布インフラストラクチャーの他の構成要素に提供するように構成される。確認モジュール２１５は、シークレット配布インフラストラクチャーの他の構成要素においてシークレットが入れ替えられたことをさらに確認する。
【００４１】
[0046]公表モジュール２１７は、入替えの確認処理が成功裏に完了すると、メタデータストレージサービス、およびインフラストラクチャーの他の任意の必要な構成要素に入替え情報を公表する。
【００４２】
[0047]図３は、いくつかの実施形態による、図１の動作アーキテクチャ１００の構成要素の動作の例を示すシーケンス図３００を描写する。さらに具体的には、図３の例は、ＫＭＳシステムによって提供されたシークレット情報を使用して、エンドユーザーシステムが外部サービスにアクセスすることを示す。図３の例に示されるようにシーケンス図３００は、エンドユーザーシステム１１０、フロントエンドシステム１２０、キーマスタークライアント１３２、ＫＭＳシステム１５２、および外部サービス１２５を含む。
【００４３】
[0048]初めにエンドユーザーシステム１１０は、フロントエンドシステム１２０を通じて外部サービス１２５へのアクセスをリクエストする。フロントエンドシステム１２０は次に、中間階層システム上で動くキーマスタークライアント１３２から外部サービス１２５へのアクセスをリクエストする。キーマスタークライアント１３２は、外部サービス１２５にアクセスするのに必要なシークレット情報がキャッシュされているかどうかを判断する。キャッシュされている場合、キーマスタークライアント１３２はシークレット情報にアクセスし、フロントエンドシステム１２０にシークレット情報を提供する。本明細書で論じられるように、キーマスタークライアント１３２は、例えばクライアントが動いている中間階層システムがリブートするか、新しいデータがＫＭＳシステムから利用可能になるまで、受け取ったシークレット情報をキャッシュすることができる。キーマスタークライアントは、シークレット情報を必要とした（リクエストし、受け取った）だけであり、すなわちキーマスタークライアントは、全てのシークレット情報を有しているわけではない。
【００４４】
[0049]シークレット情報がキーマスタークライアント１３２によってキャッシュされていない場合、キーマスタークライアント１３２は、ＫＭＳシステム１５２からシークレット情報をリクエストする。上述のように、各キーマスター展開内のＫＭＳシステムは、サイト全体または外部サービス１２５のシークレット情報を含むことができる。リクエストを受け取るのに応答して、ＫＭＳ１５２はリクエストされたシークレット情報にアクセスし、キーマスタークライアント１３２にシークレット情報を提供する。キーマスタークライアント１３２はリクエストされたシークレット情報をキャッシュし、フロントエンドシステム１２０にシークレット情報を提供する。フロントエンドシステム１２０はエンドユーザーシステム１１０を外部サービス１２５に接続し、接続が確立される。
【００４５】
[0050]図４は、いくつかの実施形態による、障害耐性のある自動的なシークレットの入替えを行う動作のシナリオ４００の例を示す流れ図を描写する。動作４００の例は、例えばシークレット入替えサービス１５４、またはこれらと関連付けられた１つもしくは複数のプロセッサ、モジュール、エンジン、構成要素、もしくはツールなどの、ＫＭＳシステム上で動くシークレット入替えサービスによって様々な実施形態で実施されてよい。
【００４６】
[0051]初めに４０１において、シークレット入替えサービスは、シークレット入替えトリガーイベントのための、ＫＭＳシステムによって供給されるシークレットと関連付けられたシークレット入替えスケジュールを監視する。本明細書で論じられるように、シークレットは、証明書、パスワード、キー、ログイン、ドメインアカウント、などを含むことができる。ＫＭＳシステムは、例えばシークレット入替えサービスが動いているシステムでよい。判定４０３において、シークレット入替えサービスは、シークレット入替えトリガーイベントが検出されたかどうかを判断する。検出された場合、４０５において、シークレット入替えサービスは、ＫＭＳシステムによって供給されるシークレットから入れ替えられることになる１つまたは複数のシークレットを識別する。
【００４７】
[0052]４０７において、シークレット入替えサービスは、１つまたは複数のシークレットのそれぞれを入れ替える。例えば１つまたは複数のシークレットのそれぞれは、複数のサブシークレットインスタンスを含むことができ、これらのうちのただ１つがいつでもアクティブである。シークレットを入れ替えるためにシークレット入替えサービスは、１つまたは複数のシークレットのそれぞれに対して、アクティブ化されているシークレットの第１のサブシークレットインスタンスを非アクティブ化し、非アクティブ化されているシークレットの第２のサブシークレットインスタンスをアクティブ化する。他の入替え方法も可能である。
【００４８】
[0053]４０９において、シークレット入替えサービスは、シークレット配布インフラストラクチャーの他の構成要素に１つまたは複数のシークレットを識別する入替え情報を提供する。本明細書で論じられるように、他の構成要素は、図１の動作アーキテクチャ１００の例の数ある構成要素の中でも、外部サービス１２５、またはキーマスタークライアント１３２ａ〜１３２ｎの１つもしくは複数を含むことができる。いくつかの実施形態において、シークレット配布インフラストラクチャーの他の構成要素に１つまたは複数のシークレットを識別する入替え情報を提供するために、シークレット入替えサービスは、他の構成要素のうちの少なくとも１つに対してコードを生成して送ることができる。数ある情報の中でもコードは入替え情報を示すことができる。
【００４９】
[0054]４１１において、シークレット入替えサービスは、シークレット配布インフラストラクチャーの他の構成要素において１つまたは複数の識別されたシークレットが入れ替えられたことを確認する。確認は、クエリ／レスポンス、入替え情報を提供するのに応答して構成要素から承認メッセージを受け取ること、またはこれらの組合せもしくは変形形態を含む他のいくつかのメカニズムを含むことができる。もう１つのシークレットが入れ替えられたことをシークレット入替えサービスが確認すると、４１３において、シークレット入替えサービスは、メタデータストレージサービスに入替え情報を公表する。
【００５０】
[0055]図５は、いくつかの実施形態による、図５の動作アーキテクチャ５００の構成要素の動作の例を示すシーケンス図５００を描写する。さらに具体的には、図５の例は、入れ替え中のシークレットまたはシークレット入替え情報をロックした後にＫＭＳシステム５５２ａが故障することを示す。図５の例に示されるようにシーケンス図５００は、ＫＭＳシステム５５２ａおよび５５２ｂならびにメタデータストレージサービス５６０を含む。ＫＭＳシステム５５２ａおよび５５２ｂは図１の複数のＫＭＳシステム１５２ａ−１〜１５２ｎ−ｎのいずれかでよく、メタデータストレージサービス５６０は図１のメタデータストレージサービス１６０でよいが、代替構成が可能である。図５の例においてＫＭＳシステム５５２ａおよび５５２ｂはそれぞれ、これらの上でシークレット入替えサービスを動かす。
【００５１】
[0056]動作中、入れ替え中のシークレットまたはシークレット情報をロックした後にＫＭＳが故障することがある。このような事例において、メタデータストレージサービスは、入れ替え中のシークレットに対する（またはシークレットと関連付けられた）「チェックアウトされた」ステータスを有する。「チェックアウトされた」ステータスは、シークレットが戻ってチェックされるまで、他のＫＭＳサーバーがシークレットを修正するのを防ぐ。入れ替え中のシークレットをロックすることは、複数のＫＭＳシステムが同じシークレットを同時に入れ替えさせようとするのを回避するために重要である。入替え処理が長くかかりすぎているか（例えば予想時間より多くの時間か）どうかを判断するタイムアウトチェックがシステムと関連付けられる。長くかかりすぎている場合、別のＫＭＳがリース（チェックアウト）を引き継ぎ、シークレットを入れ替えさせようとすることができる。これは、シークレット入れ替え中の潜在的なデッドロック状態を回避する。
【００５２】
[0057]動作の別の例においてネットワークの（またはいくつかの）問題が、シークレット入替えの最終フェーズ中にメタデータの更新を妨げる。このような事例においてシステムは、シークレットの対により機能し続けることができる。システムはその後、いくつかの方法で問題が解決されると回復することができる。例えば別のＫＭＳシステムが引き継ぎ、非アクティブなシークレットを再び入れ替えることができる。一方、シークレットのリースを有していた元のＫＭＳシステムは、単純な再試行、または障害ハンドリングメカニズムを通じてメタデータストレージの更新に最終的に成功することができる。
【００５３】
[0058]図６は、本明細書で開示された様々なアプリケーション、サービス、シナリオ、および処理が実装され得る任意のシステムまたはシステムの集合体を表すコンピューティングシステム６０１を示す。例えばコンピューティングシステム６０１は、サーバーコンピューター、ブレードサーバー、ラックサーバー、および本明細書で説明される拡張されたコラボレーション動作を実行するのに適した他の任意のタイプのコンピューティングシステム（またはこれらの集合体）を含むことができる。このようなシステムは、１つまたは複数の仮想マシン、コンテナ、または拡張されたグループコラボレーションをサポートすることに関連した他の任意のタイプの仮想コンピューティングリソースを用いることができる。
【００５４】
[0059]コンピューティングシステム６０１は、単一の装置、システム、またはデバイスとして実装されてよく、また複数の装置、システム、またはデバイスとして分散させて実装されてもよい。コンピューティングシステム６０１は、処理システム６０２、ストレージシステム６０３、ソフトウェア６０５、通信インターフェースシステム６０７、およびユーザーインターフェースシステム６０９を含むがこれらに限定されない。処理システム６０２は、ストレージシステム６０３、通信インターフェースシステム６０７、および任意選択のユーザーインターフェースシステム６０９と動作可能なように連結される。
【００５５】
[0060]処理システム６０２は、ストレージシステム６０３からソフトウェア６０５をロードして実行する。複数テナントのクラウドベースのコンテンツおよびコラボレーション環境における、範囲に基づく証明書の展開のために、処理システム６０２によって実行されると、ソフトウェア６０５は、前述の実装形態で論じられた少なくとも様々な処理、動作のシナリオ、およびシーケンスに関して本明細書で説明されたような動作を行うように処理システム６０２に指図する。コンピューティングシステム６０１は、簡潔さのために論じられない追加のデバイス、特徴、または機能を任意選択で含むことができる。
【００５６】
[0061]図６をさらに参照すると、処理システム６０２は、ストレージシステム６０３からソフトウェア６０５を取得して実行するマイクロプロセッサおよび他の回路機器を備えることができる。処理システム６０２は単一の処理デバイスの中に実装されてよいが、プログラム命令を実行する際に連携する複数の処理デバイスまたはサブシステムにわたって分散されてもよい。処理システム６０２の例は、汎用中央処理装置、アプリケーション固有のプロセッサ、およびロジックデバイス、ならびに他の任意のタイプの処理デバイス、これらの組合せ、または変形形態を含む。
【００５７】
[0062]ストレージシステム６０３は、処理システム６０２によって読むことができ、ソフトウェア６０５を格納できる任意のコンピューター可読記憶媒体を備えることができる。ストレージシステム６０３は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するために任意の方法または技術で実装される揮発性および不揮発性の、取外し可能および取外し不能な媒体を含むことができる。記憶媒体の例は、ランダムアクセスメモリ、リードオンリーメモリ、磁気ディスク、光ディスク、フラッシュメモリ、仮想メモリ、および非仮想メモリ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、または他の任意の適切な記憶媒体を含む。コンピューター可読記憶媒体が、伝搬信号であることはない。
【００５８】
[0063]コンピューター可読記憶媒体に加えて、いくつかの実装形態において、ストレージシステム６０３は、ソフトウェア６０５のうちの少なくともいくつかが内部または外部に通信され得るコンピューター可読通信媒体を含むこともできる。ストレージシステム６０３は単一のストレージデバイスとして実装されてよいが、互いに同じ場所に配置されるか分散された複数のストレージデバイスまたはサブシステムにわたって実装されてもよい。ストレージシステム６０３は、処理システム６０２、または場合によっては他のシステムと通信することができるコントローラなどの追加要素を備えることができる。
【００５９】
[0064]ソフトウェア６０５はプログラム命令の中に実装されてよく、いくつかある機能の中でも特に、処理システム６０２によって実行されると、本明細書に示された様々な動作のシナリオ、シーケンス、および処理について説明されたような動作を行うように処理システム６０２に指図することができる。例えばソフトウェア６０５は、本明細書で説明される処理を行うようにシステムに指図するプログラム命令を含むことができる。
【００６０】
[0065]詳細には、プログラム命令は、本明細書で説明される様々な処理および動作のシナリオを行うために連携するか、そうでなければ対話する様々な構成要素またはモジュールを含むことができる。様々な構成要素またはモジュールは、コンパイルされるか翻訳された命令で、または命令の他のいくつかの変形形態もしくは組合せで具体化されてよい。様々な構成要素またはモジュールは、単一スレッド環境もしくは複数スレッド環境において、または他の任意の適切な実行パラダイム、変形形態、またはこれらの組合せに従って、同期または非同期式手法で、連続してまたは並行して実行されてよい。ソフトウェア６０５は、オペレーティングシステムソフトウェア、仮想マシンソフトウェア、またはアプリケーションソフトウェアなどの追加の処理、プログラム、または構成要素を含むことができる。ソフトウェア６０５は、ファームウェア、または処理システム６０２によって実行可能な他のいくつかの形式の機械可読処理命令も含むことができる。
【００６１】
[0066]一般にソフトウェア６０５は、処理システム６０２にロードされて実行されると、適切な装置、システム、またはデバイス（これらのうち、コンピューティングシステム６０１が代表的である）を、汎用コンピューティングシステムから専用コンピューティングシステムに全体的に変換することができる。実際は、ストレージシステム６０３上のエンコーディングソフトウェアは、ストレージシステム６０３の物理構造を変換することができる。物理構造の具体的な変換は、本説明の様々な実装形態における様々なファクタに依存することがある。このようなファクタの例は、ストレージシステム６０３の記憶媒体の実装に使用される技術、および１次または２次ストレージとしてコンピューター記憶媒体がみなされるかどうか、ならびに他のファクタを含むことができるがこれらに限定されない。
【００６２】
[0067]例えばコンピューター可読記憶媒体が半導体ベースのメモリとして実装される場合、ソフトウェア６０５は、トランジスタ、キャパシタ、または半導体メモリとみなされる他の個別の回路素子の状態を変換することなどによってプログラム命令が半導体メモリにエンコードされると、半導体メモリの物理状態を変換することができる。磁気媒体または光媒体に対して類似の変換が発生してよい。本議論を容易にするためだけに提供される前述の例と共に、本説明の範囲から逸脱することなく物理媒体の他の変換が可能である。
【００６３】
[0068]通信インターフェースシステム６０７は、通信ネットワーク（図示せず）での他のコンピューティングシステム（図示せず）との通信を可能にする通信接続およびデバイスを含むことができる。システム間通信を共に可能にする接続およびデバイスの例は、ネットワークインターフェースカード、アンテナ、電力増幅器、ＲＦ回路機器、送受信機、および他の通信回路機器を含むことができる。接続およびデバイスは、金属、ガラス、空気、または他の任意の適切な通信媒体などの、他のコンピューティングシステム、またはシステムのネットワークとの通信をやりとりするための通信媒体上で通信することができる。前述の媒体、接続、およびデバイスはよく知られており、本明細書で詳細に論じられる必要はない。
【００６４】
[0069]ユーザーインターフェースシステム６０９は、キーボード、マウス、音声入力デバイス、タッチジェスチャをユーザーから受け取るタッチ入力デバイス、ユーザーによる非タッチジェスチャおよび他の運動を検出する運動入力デバイス、ならびにユーザーからのユーザー入力を受け取れる他の同種の入力デバイスおよび関連処理要素を含むことができる。ディスプレイ、スピーカー、触感デバイス、および他のタイプの出力デバイスなどの出力デバイスもユーザーインターフェースシステム６０９に含まれてよい。いくつかのケースにおいて、入力および出力デバイスは、画像を表示し、タッチジェスチャを受け取れるディスプレイなどの単一のデバイスに組み合わされてよい。前述のユーザー入力および出力デバイスは当技術分野でよく知られており、本明細書で詳細に論じられる必要はない。いくつかのケースにおいて、例えば、ブレードサーバー、ラックサーバー、または他の任意のタイプのコンピューティングサーバーシステム（またはこれらの集合体）などの１つまたは複数のサーバーコンピューターとしてコンピューティングシステム６０１が実装されるときには、ユーザーインターフェースシステム６０９は省略されてよい。
【００６５】
[0070]ユーザーインターフェースシステム６０９は、上述された様々なユーザー入力および出力デバイスのサポートにおいて、処理システム６０２によって実行可能な関連ユーザーインターフェースソフトウェアを含んでもよい。互いにならびに他のハードウェア要素およびソフトウェア要素とは別々に、またはこれらと共に、ユーザーインターフェースソフトウェアおよびユーザーインターフェースデバイスは、グラフィカルユーザーインターフェース、自然のユーザーインターフェース、または生産性アプリケーションへのユーザーインターフェースが提示され得る他の任意のタイプのユーザーインターフェースをサポートすることができる。
【００６６】
[0071]コンピューティングシステム６０１と他のコンピューティングシステム（図示せず）との間の通信は、通信ネットワーク、またはネットワーク上で、また様々な通信プロトコル、プロトコルの組合せ、またはこれらの変形形態に従って発生してよい。例は、イントラネット、インターネット、インターネット、ローカルエリアネットワーク、広域ネットワーク、ワイヤレスネットワーク、有線ネットワーク、仮想ネットワーク、ソフトウェア定義のネットワーク、データセンターバス、コンピューティングバックプレーン、もしくは他の任意のタイプのネットワーク、ネットワークの組合せ、またはこれらの変形形態を含む。前述の通信ネットワークおよびプロトコルはよく知られており、本明細書で詳細に論じられる必要はない。データ、コンテンツ、または他の任意のタイプの情報がやりとりされる前述の例のいずれかにおいて、情報は、様々なよく知られたデータ転送プロトコルのいずれかに従って発生してよい。
【００６７】
[0072]図に示された機能ブロック図、動作のシナリオおよびシーケンス、ならびに流れ図は、本開示の斬新な態様を行うための例示的なシステム、環境、および方法を表す。説明を簡潔にするために本明細書に含まれる方法は、機能図、動作のシナリオ、またはシーケンス、または流れ図の形であることがあり、一連の行為として説明されることがあるが、行為の中には、本明細書で示され説明される順序とは異なる順序でおよび／または他の行為と並行に、行為に従って発生するものがあってもよいので、方法が行為の順序によって制限されないということが理解され認識されるべきである。例えば当業者は、一方で方法は、状態図などで一連の相関状態またはイベントとして表されることがあることを理解し認識するであろう。さらに、方法に示された全ての行為が斬新な実装形態に要求され得るわけではない。
【００６８】
[0073]本明細書に含まれる説明および図は、どのように最善のオプションを作り、使用するかを当業者に教示するために具体的な実装形態を描写する。発明の原理を教示するために、従来の態様の中には簡素化されるか省略されたものもある。当業者は、本発明の範囲に含まれるこれらの実装形態からの変形形態を認識するであろう。当業者は、複数の実装形態を形成するために上述の特徴が様々に組み合わされてよいことも理解するであろう。結果として本発明は上述の特定の実装形態に限定されるのではなく、特許請求の範囲およびこれらの均等物によってのみ限定される。
【図１】
2019534512.tif 000003
【図２】
2019534512.tif 000004
【図３】
2019534512.tif 000005
【図４】
2019534512.tif 000006
【図５】
2019534512.tif 000007
【図６】
2019534512.tif 000008
【国際調査報告】
2019534512.tif 000009
2019534512.tif 000010
2019534512.tif 000011