(57)【要約】      （修正有）【課題】マルチパーティ計算環境においてクライアントのデータが信頼できないパーティに漏洩するのを防止するためのシステム及び方法を提供する。【解決手段】システムは、ユーザのユーザデバイスからネットワークを通じてサーバのゲートウェイ（たとえばバイパス不可能なゲートウェイ）において受け取られた、実行サービスによってユーザデータを処理するようにとの要求に応答して、悪性コードに関してユーザデータを走査することにより、ユーザデータをサニタイズする。システムは、複数の実行環境（ＴＥＥ）ワーカから信頼できるＴＥＥワーカを選択し、選択されたＴＥＥワーカによって実行サービスの実行を開始し、選択されたＴＥＥワーカから実行結果を受け取り、ネットワークを通じてユーザのユーザデバイスに実行結果を伝送する。【選択図】図７
2020184326.tif 000002
【特許請求の範囲】
【請求項１】
信頼できる環境でデータを処理するためのコンピュータで実装される方法であって、
ユーザのユーザデバイスからネットワークを通じてサーバのゲートウェイにおいて受け取られた、実行サービスによってユーザデータを処理するようにとの要求に応答して、悪性コードに関して前記ユーザデータを走査することにより、該ユーザデータをサニタイズするステップと、
複数の実行環境（ＴＥＥ）ワーカから信頼できるＴＥＥワーカを選択し、該選択されたＴＥＥワーカによって前記実行サービスの実行を開始するステップと、
前記選択されたＴＥＥワーカから実行結果を受け取るステップと、
前記ネットワークを通じて前記ユーザの前記ユーザデバイスに前記実行結果を伝送するステップと、
を含む方法。
【請求項２】
前記要求が、複数のユーザに関連した複数のユーザデバイスから受け取られた複数の要求のうちの１つであり、前記要求の各々が、複数のＴＥＥワーカのうちそれぞれの１つによって処理される請求項１に記載の方法。
【請求項３】
前記ユーザデバイスが前記要求を伝送するのに先立って、前記ゲートウェイが、前記ユーザデバイスによって信頼できるものと証明される請求項１に記載の方法。
【請求項４】
前記クライアント要求に対する前記実行サービスを呼び出す前に、前記ゲートウェイを用いて前記実行サービスを登録するステップを含む請求項１に記載の方法。
【請求項５】
前記サービスを登録するステップが、
サービスプロバイダからサービス・バイナリおよび前記サービスの記述を受け取るのに応答して、前記サービス・バイナリの完全性および確実性を検証するステップと、
悪性コードに関して前記サービス・バイナリを走査するステップと、
前記サービス・バイナリを複数のＴＥＥワーカのうち１つとして登録するステップと、
を含む請求項４に記載の方法。
【請求項６】
前記サービスプロバイダが前記ゲートウェイに前記サービス・バイナリを伝送するのに先立って、前記サービスプロバイダが、前記ゲートウェイを信頼できるものと証明する請求項５に記載の方法。
【請求項７】
キー管理サーバ（ＫＭＳ）から、クライアント・データを暗号化するためのキーを得るステップを含む請求項１に記載の方法。
【請求項８】
前記パブリックキーを得るステップが、
前記ゲートウェイによって、前記キーを得るための要求を前記ＫＭＳに伝送するステップと、
前記ＫＭＳから前記キーを受け取るステップであって、前記ＫＭＳが対称なキーまたはキー・ペアを生成しており、前記ゲートウェイが前記キーの確実性を検証するように、前記キーが前記ＫＭＳによって署名されるステップと、
を含む請求項７に記載の方法。
【請求項９】
前記ゲートウェイが前記要求を伝送するのに先立って、前記ゲートウェイによって、前記ＫＭＳが信頼できるエンティティであることを証明するステップであって、前記ゲートウェイが前記要求を伝送するのに先立って、前記ゲートウェイが信頼できるものであると前記ＫＭＳが証明するステップを含む請求項８に記載の方法。
【請求項１０】
前記ゲートウェイが、該ゲートウェイに関するネットワーク・トラフィックの、認証、許可、監査およびアカウントを強化する請求項１に記載の方法。
【請求項１１】
前記ゲートウェイが、信頼できる、複製された、冗長で、かつ、フォールトトレラントな（ＲＡＦＴ）サービスを提供する請求項１に記載の方法。
【請求項１２】
前記ゲートウェイがバイパス不可能なゲートウェイである、請求項１に記載の方法。
【請求項１３】
命令を記憶した非一時的マシン可読媒体であって、前記命令がプロセッサによって実行されたとき、該プロセッサが、
ユーザのユーザデバイスからネットワークを通じてサーバのゲートウェイにおいて受け取られた、実行サービスによってユーザデータを処理するようにとの要求に応答して、悪性コードに関して前記ユーザデータを走査することにより、該ユーザデータをサニタイズするステップと、
複数の実行環境（ＴＥＥ）ワーカから信頼できるＴＥＥワーカを選択し、該選択されたＴＥＥワーカによって前記実行サービスの実行を開始するステップと、
前記選択されたＴＥＥワーカから実行結果を受け取るステップと、
前記ネットワークを通じて前記ユーザの前記ユーザデバイスに前記実行結果を伝送するステップと、
を含む動作を遂行する非一時的マシン可読媒体。
【請求項１４】
前記動作が、前記クライアント要求に対する前記実行サービスを呼び出す前に、前記ゲートウェイを用いて前記実行サービスを登録するステップを含む請求項１３に記載の非一時的マシン可読媒体。
【請求項１５】
前記サービスを登録するステップが、
サービスプロバイダからサービス・バイナリおよび前記サービスの記述を受け取るのに応答して、前記サービス・バイナリの完全性および確実性を検証するステップと、
悪性コードに関して前記サービス・バイナリを走査するステップと、
前記サービス・バイナリを複数のＴＥＥワーカのうちの１つとして登録するステップと、
を含む請求項１４に記載の非一時的マシン可読媒体。
【請求項１６】
前記動作が、キー管理サーバ（ＫＭＳ）から、クライアント・データを暗号化するためのキーを得るステップを含む請求項１３に記載の非一時的マシン可読媒体。
【請求項１７】
プロセッサと、
命令を記憶するように前記プロセッサに結合されたメモリと、
を備えるデータ処理システムであって、前記命令が前記プロセッサによって実行されたとき、該プロセッサが、
ユーザのユーザデバイスからネットワークを通じてサーバのゲートウェイにおいて受け取られた、実行サービスによってユーザデータを処理するようにとの要求に応答して、悪性コードに関して前記ユーザデータを走査することにより、前記ユーザデータをサニタイズするステップと、
複数の実行環境（ＴＥＥ）ワーカから信頼できるＴＥＥワーカを選択し、該選択されたＴＥＥワーカによって前記実行サービスの実行を開始するステップと、
前記選択されたＴＥＥワーカから実行結果を受け取るステップと、
前記ネットワークを通じて前記ユーザの前記ユーザデバイスに前記実行結果を伝送するステップとを含む動作を遂行するデータ処理システム。
【請求項１８】
前記動作が、前記クライアント要求に対する前記実行サービスを呼び出す前に、前記ゲートウェイを用いて前記実行サービスを登録するステップを含む請求項１７に記載のシステム。
【請求項１９】
前記サービスを登録するステップが、
サービスプロバイダからサービス・バイナリおよび前記サービスの記述を受け取るのに応答して、前記サービス・バイナリの完全性および確実性を検証するステップと、
悪性コードに関して前記サービス・バイナリを走査するステップと、
前記サービス・バイナリを複数のＴＥＥワーカのうち１つとして登録するステップと、
を含む請求項１８に記載のシステム。
【請求項２０】
前記動作が、キー管理サーバ（ＫＭＳ）から、クライアント・データを暗号化するためのキーを得るステップを含む請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般に、安全なマルチパーティ・コンピューティングに関する。より具体的には、本発明の実施形態は、バイパス不可能なゲートウェイを使用する信頼できるプラットフォーム・モジュール（ＴＰＭ）ベースの安全なマルチパーティ・コンピュータシステムに関する。
【背景技術】
【０００２】
機密のトランザクションは、クラウドベースのサーバによって漸増的に遂行されている。「クラウドベースの」という用語は、ユーザにとって、アプリケーション、サービスまたはリソースが、クラウド・サーバからインターネットを介してオンデマンドで利用可能になることを指す。クラウドベースのサーバのマルチパーティまたはマルチテナントの性質は、信頼できないパーティによる無許可のアクセスからマルチテナント・コンピュータ環境を保護する必要性が高まっている。たとえば、計算中に、あるパーティからのデータが、信頼できないパーティによってアクセス可能になる恐れがある。したがって、計算中にデータを保護する必要がある。その上、暗号ベースのマルチパーティ計算の解決策は遅く、したがって実用的ではない可能性がある。
【発明の概要】
【０００３】
本発明の実施形態が、限定ではなく例として示され、添付図面では類似の参照は類似の要素を指示する。
【図面の簡単な説明】
【０００４】
【図１】一実施形態に係るバイパス不可能なゲートウェイを使用する安全なマルチパーティ計算のためのコンピュータシステム向けのシステム構成の一例を示すブロック図である。
【図２】一実施形態に係るバイパス不可能なゲートウェイの一例を示すブロック図である。
【図３】一実施形態に係る安全なマルチパーティ・コンピュータシステムのためのキー登録プロトコルの一例を示す流れ図である。
【図４】一実施形態に係る安全なマルチパーティ・コンピュータシステムのための実行サービス登録プロトコルの一例を示す流れ図である。
【図５】一実施形態に係るクライアント〜ゲートウェイのデータ・アップロード・プロトコルの一例を示す流れ図である。
【図６】一実施形態に係るクライアント〜ゲートウェイのデータ・ダウンロード・プロトコルの一例を示す流れ図である。
【図７】一実施形態に係る安全なマルチパーティ・コンピュータシステムのための実行サービス呼び出しプロトコルの一例を示す流れ図である。
【図８】一実施形態に係る方法の一例を示す流れ図である。
【図９】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【０００５】
本発明の様々な実施形態および態様が、以下で論じられる詳細を参照しながら説明され、添付図面は様々な実施形態を示す。以下の説明および図面は本発明の実例であり、本発明を限定するものと解釈されるべきではない。本発明の様々な実施形態の完全な理解を提供するために、多くの具体的な詳細が説明される。しかしながら、特定の事例では、本発明の実施形態の簡潔な議論を提供するために、周知の詳細または旧来の詳細は説明されない。
【０００６】
本明細書における「一実施形態」または「実施形態」に対する参照は、実施形態に関連して説明された特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれ得ることを意味する。様々な位置において「一実施形態では」という慣用句が出現することは、必ずしもすべてが本明細書における同一の実施形態を指すわけではない。
【０００７】
本開示の実施形態は、クライアントのデータがマルチパーティ計算環境において信頼できないパーティに漏洩するのを防止するためのシステムを開示するものである。一実施形態によれば、このシステムは、ユーザのユーザデバイスからネットワークを通じてサーバのゲートウェイ（たとえばバイパス不可能なゲートウェイ）において受け取った、実行サービスによってユーザデータを処理するようにとの要求に応答して、悪性コードに関してユーザデータを走査することにより、ユーザデータをサニタイズする。このシステムは、複数の実行環境（ＴＥＥ）ワーカから信頼できるＴＥＥワーカを選択し、選択されたＴＥＥワーカによって実行サービスの実行を開始する。このシステムは選択されたＴＥＥワーカから実行結果を受け取る。このシステムはユーザのユーザデバイスに実行結果を伝送する。
【０００８】
図１は、一実施形態に係るバイパス不可能なゲートウェイを使用する安全なマルチパーティ計算のためのコンピュータシステム向けのシステム構成の一例を示すブロック図である。図１を参照して、システム構成１００は、それだけではないが、ネットワーク１０３上のデータ処理サーバ１０４に対して通信可能に結合された１または複数のクライアントデバイス１０１〜１０２を含む。クライアントデバイス１０１〜１０２は、パソコン（たとえばデスクトップ・コンピュータ、ノートパソコン、およびタブレット型コンピュータ）、「シン」クライアント、携帯情報端末（ＰＤＡ）、ウェブで使用可能な設備、スマートウォッチ、または携帯電話（たとえばスマートフォン）などの任意のタイプのクライアントデバイスでよい。あるいは、クライアントデバイス１０１〜１０２は他のサーバでよい。ネットワーク１０３は、ローカルエリアネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク（ＷＡＮ）、または有線もしくは無線によってこれらを結合したものなど、任意のタイプのネットワークでよい。ネットワーク１０３を通じた、クライアントデバイス１０１〜１０２とデータ処理サーバ１０４および管理サービス・サーバ１６０との間の通信は、たとえばＴＬＳ／ＳＳＬによって保護され得る。
【０００９】
データ処理サーバ（たとえばホスト）１０４は、ウェブ・サーバまたはクラウド・サーバ、アプリケーション・サーバ、バックエンド・サーバ、またはこれらの組合せなど、任意の種類のサーバまたはサーバのクラスタでよい。サーバ１０４は、クライアントデバイス１０１〜１０２などのクライアントがサーバ１０４、キー管理サーバ１６０、サービスプロバイダ１６１、またはクラウド・オペレータ１６２によって提供されるリソースまたはサービスにアクセスすることを可能にする、インターフェースを含むことができる。たとえば、サーバ１０４は、クラウド・サーバまたはクラウド・オペレータ１６２によって操作されるデータセンタのサーバでよい。サーバ１０４は、クライアントに、たとえばクラウド・ストレージ、クラウドコンピューティング・サービス、ビッグデータ・サービス、モデル化サービス、マシン学習を訓練するサービス、データマイニング・サービスなど、種々のクラウド・サービスを提供することができる。サーバ１０４は、プライベート・クラウド、パブリック・クラウド、またはハイブリッド・クラウドであり得るクラウドに対するｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ（ＳａａＳ）システムもしくはｐｌａｔｆｏｒｍ−ａｓ−ａ−ｓｅｒｖｉｃｅ（ＰａａＳ）システムの一部分として構成され得る。インターフェースは、ウェブ・インターフェース、アプリケーション・プログラミング・インターフェース（ＡＰＩ）、および／またはコマンドライン・インターフェース（ＣＬＩ）を含み得る。
【００１０】
データ処理サーバ１０４は、ＲＡＭディスク・ファイルシステム（ｒａｍｆｓ）１２１と、安全なブートのための信頼できるプラットフォーム・モジュール（ＴＰＭ）１２０などのセキュリティ・モジュールを装備した１または複数のＣＰＵ（図示せず）とを備えることができる。ＴＰＭは、ホストシステムに特有のハードウェア認証のための暗号キー（たとえばＲＳＡ暗号キー）を記憶するエンドポイント・デバイス上の特化されたチップである。各ＴＰＭチップは、保証キー（ＥＫ）または保証認証情報（すなわちルート・キー）（ＥＣ）と呼ばれる１または複数のＲＳＡキー・ペア（たとえばパブリックキー・ペアおよびプライベートキー・ペア）を含有することができる。キー・ペアはＴＰＭチップの内部に維持され、ソフトウェアによるアクセスは不可能である。そこで、ファームウェアおよびソフトウェアの無許可の変更に対してシステムを保護するために、ファームウェアおよびソフトウェアの危険域は、実行される前にＥＫまたはＥＣによってハッシュされ得る。したがって、ホストマシン上のＴＰＭチップがサーバ１０４の安全なブートのための信頼のルートとして使用され得るので、サーバ１０４のオペレーティングシステムまたは実行環境（たとえばＴＥＥワーカ１０８〜１０９）が信頼され得る。
【００１１】
データ処理サーバ１０４は、バイパス不可能なゲートウェイ１０６（たとえばゲートウェイ）および１または複数の信頼できる実行環境１０８〜１０９を含むことができる。バイパス不可能なゲートウェイ１０６は、クライアント１０１〜１０２とＴＥＥワーカ１０８〜１０９の間、ＫＭＳ１６０とＴＥＥワーカ１０８〜１０９の間、およびサービスプロバイダ１６１とＴＥＥワーカ１０８〜１０９の間のデータ・トラフィックおよびアクセス制御トラフィックを含むすべてのネットワーク・トラフィックを仲介する信頼できるゲートウェイであり得る。加えて、ゲートウェイ１０６は、４Ａサービス（たとえば認証、許可、監査、またはアカウント）を強化することができ、潜在的なセキュリティ上の弱点を軽減するために、仲介するネットワーク・トラフィックに基づくコード分析、ファイアウォール・サービス、およびデータ・サニタイゼイションを遂行することができる。
【００１２】
一実施形態では、ゲートウェイ１０６は、クライアント要求を容易にするためにクライアントデバイス１０１〜１０２と通信することができる。ゲートウェイ１０６は、種々のクライアントおよび／またはクライアント要求に対して様々な実行サービスを実行するために、環境１０８〜１０９などの信頼できる実行環境を開始することができる。ここで、信頼できる実行環境（ＴＥＥ）は、サンドボックス化された実行環境であり、互いに絶縁され、サーバ１０４のオペレーティングシステムからも絶縁されている。一実施形態では、ＴＥＥは、ＴＥＥ内にロードされたコードおよびデータの機密性および完全性を保証するために、オペレーティングシステムと並行して動作することができる。一実施形態では、ＴＥＥは、スタンド・アロンのカーネル、ネットワーキング、および／または入力／出力を有するオペレーティングシステム・レベルの仮想化を遂行するランタイム・コンテナ（たとえばＫａｔａコンテナ）であり得る。別の実施形態では、ＴＥＥは、データおよびコードをさらに保護するために、ハードウェア（たとえばＴＰＭ）とソフトウェア（たとえばＩｎｔｅｌ（登録商標）ソフトウェア・ガード・エクステンション（ＳＧＸ））の両方を使用することができる。
【００１３】
一実施形態では、システム１００はコンピュータ・サーバ・ノードのクラスタを含み、サーバ１０４はクラスタのコンピュータ・サーバ・ノードのうちの１つである。信頼性およびスケーラビリティの閾値を維持するために、クラスタは、信頼できる、複製された、冗長かつフォールトトレラントな（ＲＡＦＴ）クラスタであり得る。ＲＡＦＴは、ノード（たとえばサーバ１０４を含む）の集合が、ノード・メンバのうちいくつかの障害に耐えることができるコヒーレントなグループとして作動することを可能にするコンセンサス・アルゴリズムを指すことに留意されたい。たとえば、サーバ１０４のゲートウェイ１０６は、ＲＡＦＴクラスタの一部分としてＲＡＦＴサービスを実行し得る。ゲートウェイ１０６は、ＲＡＦＴサービスの一部分として、状態マシンおよび／またはクラスタのノードの中で複製されたログの一貫したコピーを維持することができるので、クライアント１０１〜１０２は、クラスタ内のノードのうち少数に障害があっても、単一の信頼できるマシンと相互作用するように見える。リーダー・ノードを選出することにより、クラスタのノードの中の状態マシンおよび／または複製されたログの一貫性を維持することができ、リーダー・ノードは、状態マシン／ログをフォロア・ノードに複製する役割を果たす。リーダーは、ハートビート・メッセージを定期的に送ることによって、それ自体の存在をフォロアに通知する。各フォロアがタイムアウトを有し、タイムアウトするとリーダーからのハートビートを待つ。ハートビートが受け取られるとタイムアウトがリセットされる。フォロアは、ハートビートが受け取られなければ、新規のリーダーを選ぶためにそれ自体の状態を変更する。ここで、クライアントデバイス１０１からのサービス要求はゲートウェイ１０６によって記録され得、要求の状態は状態マシンに記録され得る。状態マシン／ログは、選択されたリーダー・ノードによってクラスタのサーバ・ノードの中に複製され得る。状態マシン／ログが記録されていることにより、後にサーバ１０４が作動不能になった場合には、クラスタ内のノードのいずれかによって、クライアント要求がサービスされ得ることを保証することができる。
【００１４】
一実施形態では、ゲートウェイ１０６は、キー管理サーバ（ＫＭＳ）１６０と通信して暗号キーを得ることができる。ＫＭＳ１６０は任意の種類のサーバでよい。サーバ１６０が含み得るインターフェース（たとえばＡＰＩまたはＣＬＩ）により、データ処理サーバ１０４は、サーバ１６０によって提供される非対称のキー、対称のキー、およびセッション・キーに関するキー生成サービス、認証／検証サービス、およびキー回復サービスなどのキー管理サービスにアクセスすることができる。たとえば、ゲートウェイ１０６は、ＴＥＥワーカ１０８〜１０９のうち任意のもののために専用のキー・ペアを要求して、ＫＭＳ１６０から得ることができる。次いで、ゲートウェイ１０６は、ゲートウェイ１０６と通信する様々なエンティティ（たとえばクライアントデバイス１０１〜１０２およびＴＥＥワーカ１０８〜１０９）に暗号キーの要求などのキー・サービスを提供するとともに、これらのキーをゲートウェイ１０６の内部の保護されたリストに維持することができる。一実施形態では、ＫＭＳ１６０はＩｎｔｅｌ  ＳＧＸエンクレーブなどの安全なエンクレーブにおいて実行される。別の実施形態では、ＫＭＳ１６０は、ＳＧＸのリモート証明を使用してＴＥＥワーカを証明することにより、ＴＥＥワーカが信頼できると保証することができる。キー管理サーバ１６０は、単一のサーバとして示されているが、いくつかの実施形態では多くのサーバを表し得、またはデータ処理サーバ１０４と一体化され得る。
【００１５】
サービスプロバイダ１６１は任意の種類のサーバでよい。一実施形態では、ゲートウェイ１０６は、クライアント・データをサービスプロバイダ１６１に漏洩することなく、クライアントデバイス１０１〜１０２によって要求された各種サービスを実行するために、サービスプロバイダ１６１と通信してエグゼキュータ／ソフトウェア実行ファイル／コードを表す実行サービス・バイナリを得ることができる。いくつかの実行サービスは、コード走査、ビッグデータ分析、モデル化、マシン学習（人工知能）の推測／訓練タスクなどのためのコンピューティング・サービスを含むことができる。サービスプロバイダ１６１は、サーバ１６０と同様に、データ処理サーバ１０４がサーバ１６１によって提供されたサービス・バイナリにアクセスすることを可能にするインターフェース（たとえばＡＰＩまたはＣＬＩ）を含み得る。サービスプロバイダ１６１は、単一のサーバとして示されているが、いくつかの実施形態では多くのサーバを表し得、あるいはＫＭＳ１６０および／またはデータ処理サーバ１０４と一体化され得る。
【００１６】
クラウド・オペレータ１６２は、データ処理サーバ１０４にクラウド運用サービスを提供することができる。そのようなサービスは、クラウドネットワークの管理、セットアップおよび構成を含み、サーバ１０４はクラウドネットワークの一部分であり得る。クラウド・オペレータ１６２は、単一のサーバとして示されているが、いくつかの実施形態では多くのサーバを表し得、あるいはＫＭＳ１６０、サービスプロバイダ１６１および／またはデータ処理サーバ１０４と一体化され得る。
【００１７】
図２は、一実施形態に係るバイパス不可能なゲートウェイの一例を示すブロック図である。ゲートウェイ１０６は、ホストサーバ１０４のためにすべてのネットワーク・トラフィックを仲介する専用のゲートウェイであり得、これらのネットワーク・トラフィックはゲートウェイ１０６を通過しなければならず、たとえばゲートウェイ１０６はバイパス不可能である。一実施形態では、ゲートウェイ１０６は、要求レシーバ２０１、データのファイアウォール／サニタイザ２０３、ＴＥＥワーカのセレクタ／ランチャ２０５、実行結果のレトリーバ／センダ２０７などのモジュールを含む。要求レシーバ２０１はクライアントデバイス１０１〜１０２からクライアント要求を受け取ることができる。クライアント要求は、クライアント・データを使用して遂行されるサービスを実行するためのクライアント・データおよび識別子／名称を含むことができる。データのファイアウォール／サニタイザ２０３は、受け取られたクライアント・データを走査してサニタイズすることができる。クライアント・データは、悪性コードまたはサーバ１０４の機能に対するアクセス、制御、もしくは変更が可能なコードを除去するために、走査され得、かつ／またはフラグを立てられ得る。加えて、データのファイアウォール／サニタイザ２０３はファイアウォールとして働き、異常なアクティビティについてトラフィックデータを監視して、悪意のある侵入を防ぐことができる。ＴＥＥワーカのセレクタ／ランチャ２０５は、クライアント要求にサービスするためにＴＥＥワーカ（図１のＴＥＥワーカ１０８〜１０９など）を選択するかまたは開始することができる。実行結果のレシーバ／センダ２０７は、要求された実行サービスのために選択されたＴＥＥワーカから実行結果を受け取って、要求しているクライアントデバイス１０１〜１０２に実行結果を送ることができる。
【００１８】
図３は、一実施形態に係る安全なマルチパーティ・コンピュータシステムのためのキー登録プロトコルの一例を示す流れ図である。キー登録プロトコルは図１のシステム１００によって遂行され得る。キー登録プロトコルは、ＫＭＳ１６０と図１のゲートウェイ１０６などのゲートウェイの間の通信プロトコルであり得る。ゲートウェイ１０６は、クライアント・データを暗号化する／解読するためのキーを要求してよく、またはこのキーを、アイデンティティが認証される必要のあるエンティティに関連づけることを要求してよい。たとえば、ゲートウェイ１０６は、クライアント・データを暗号化するため／解読するため、および暗号化されたクライアント・データをＲＡＭＦＳ１２１の内部に保存するためのキーを要求してよく、そのためクライアント・データが後に回復され得る。エンティティの例は、エンティティ認証のために、それだけではないが、ＴＥＥワーカ、クライアントデバイス、およびネットワークに接続された他のホストサーバを含む。図３を参照して、例３００は、ゲートウェイ１０６によってＫＭＳ１６０を介して対称のキーまたは非対称のキー・ペアを登録する。一実施形態では、動作３０１において、ゲートウェイ１０６はＫＭＳ１６０と通信し、通信のためにＴＬＳハンドシェイクを遂行する。ＴＬＳハンドシェイク中に、２つの通信するパーティ（ここではゲートウェイ１０６とＫＭＳ１６０）は、互いに確認／検証のためのメッセージを交換する。２つのパーティは暗号アルゴリズムを確立し、通信セッションに使用されるセッション・キーについて合意することができる。
【００１９】
ゲートウェイ１０６は、セキュア・モジュール（たとえばＴＰＭ）を使用する信頼のルートを用いてブートされるため安全なエンティティであり得るが、ＫＭＳ１６０は安全なブートを認識していない可能性がある。同様に、ＫＭＳ１６０はゲートウェイ１０６によって信頼されない可能性がある。一実施形態では、動作３０２において、ＫＭＳ１６０に対する証明を遂行して、ゲートウェイ１０６は、ＫＭＳ１６０が信頼できるエンティティであることを保証する。証明は、ＫＭＳ１６０がサポートする利用可能な証明に依拠して、ＴＰＭキー証明、またはＩｎｔｅｌ  ＳＧＸ、ＡＲＭ（登録商標）ＴｒｕｓｔＺｏｎｅ、ＡＭＤ（登録商標）（安全な暗号化された仮想化）ＳＥＶなどからの証明など様々な他のタイプの証明を含み得る。たとえば、ＫＭＳ１６０がＩｎｔｅｌ  ＳＧＸエンクレーブで実行される場合には、証明はＳＧＸリモート証明であり得る。動作３０３において、ＫＭＳ１６０は、ゲートウェイ１０６に対する証明を遂行して、ゲートウェイ１０６が信頼できるエンティティであることを保証する。一実施形態では、システムのスケーラビリティを向上するために複数のホストまたはサービスプロバイダをサポートするように、ゲートウェイ１０６、ＫＭＳ１６０、またはサービスプロバイダ１６１など図１のエンティティのうち任意のものによって、ソフトウェア・ベースの仮想のＴＰＭが使用され得る。
【００２０】
動作３０４において、ゲートウェイ１０６はＫＭＳ１６０からのキーを要求する。ここで、キーは対称なキーまたは非対称なキー・ペアでよい。動作３０５において、ＫＭＳ１６０は新規のキーを生成する。ＫＭＳ１６０は、動作３０６においてキーに署名し、動作３０７においてゲートウェイ１０６に署名入りキーを配信する。ゲートウェイ１０６は、（たとえばオペレーティングシステムの記憶装置から分離して保護された記憶装置の中の）保護されたリストにキーを記録することができ、それぞれのクライアント・データまたはエンティティに対して発行された特定のキーを識別し得ることに留意されたい。したがって、ゲートウェイ１０６は、サーバ１０４に対してキーの生成および保守のサービスを提供していると見なされ得る。ＴＬＳハンドシェイク、証明、およびキー・ペアに対する署名のための動作など、上記の動作のうちのいくつかは任意選択でよいことに留意されたい。
【００２１】
図４は、一実施形態に係る安全なマルチパーティ・コンピュータシステムのための実行サービス登録プロトコルの一例を示す流れ図である。実行サービス登録プロトコルは、ＴＥＥワーカとしての実行サービスの登録のための、サービスプロバイダ（たとえば図１のＳＰ１６１）とゲートウェイ（たとえば図１のゲートウェイ１０６）の間の通信プロトコルであり得、そのため、実行サービスは、ゲートウェイとの通信において、クライアントに利用可能である。実行サービス登録プロトコルの例４００は図１のシステム１００によって遂行され得る。図４を参照して、一実施形態では、動作４０１において、ＳＰ１６１はゲートウェイ１０６に対するＴＬＳハンドシェイクおよび証明を遂行する。証明は、上記のものと同様に、ゲートウェイ１０６にとって利用可能な、ＴＰＭベースまたは何らかの他のタイプの証明であり得る。動作４０２において、ＳＰ１６１は、サービス記述を伴うサービス・バイナリをゲートウェイ１０６に伝送する。一実施形態では、サービス記述は、サービス・バイナリを検証するための署名を含む。動作４０３において、ゲートウェイ１０６は、サービス・バイナリの完全性（たとえば、サービス・バイナリは予期されたデータパケットのすべてを含む）を検証し、悪性コードに関してバイナリを走査する。たとえば、ゲートウェイ１０６は、サービス・バイナリのチェックサムを検証してよい。ゲートウェイ１０６はデータの確実性をさらに検証してよく、たとえば、サービス・バイナリはＳＰ１６１に関連づけられる。動作４０４において、ゲートウェイ１０６は、サービス・バイナリをＴＥＥワーカ（ＴＥＥワーカ１０８など）として登録する。動作４０５において、ゲートウェイ１０６はＳＰ１６１に承認を返す。サービスクライアント要求に対する１または複数のＴＥＥワーカとして、種々の実行サービスが登録され得ることに留意されたい。ＴＬＳハンドシェイクおよび証明のための動作など、上記の動作のうちいくつかは任意選択でよいことに留意されたい。
【００２２】
図５は、一実施形態に係るクライアント〜ゲートウェイのデータ・アップロード・プロトコルの一例を示す流れ図である。クライアント〜ゲートウェイのデータ・アップロード・プロトコルは、クライアントがゲートウェイにクライアント・データをアップロードするための、クライアント（たとえば、クライアントデバイス１０１〜１０２）とゲートウェイ（図１のゲートウェイ１０６）の間の通信プロトコルであり得る。クライアント〜ゲートウェイのデータ・アップロード・プロトコルの例５００は図１のシステム１００によって遂行され得る。クライアント・データがアップロードされるのは、クライアントが実行サービスを呼び出す前でよく、または呼び出すのと同時でもよい。図５を参照して、動作５０１において、クライアント１０１はゲートウェイ１０６に対するＴＬＳハンドシェイクおよび証明を遂行する。証明は、上記のものと同様に、ゲートウェイ１０６にとって利用可能な、ＴＰＭベースまたは何らかの他のタイプの証明であり得る。動作５０２において、クライアントはゲートウェイ１０６にクライアント・データをアップロードする。クライアント・データは実行サービスを呼び出す入力データであり得る。動作５０３において、ゲートウェイ１０６は、クライアント・データを暗号化するためにＫＭＳからキーを回復する。キーは、図３に示された例などのキー登録プロトコルによって回復され得る。図５を参照して、動作５０４において、ゲートウェイ１０６はクライアント・データを暗号化する。動作５０５において、ゲートウェイ１０６は、暗号化されたクライアント・データを、ＲＡＭＦＳ１２１、またはゲートウェイ１０６によってアクセス可能な任意の記憶装置に保存し、クライアント・データの汎用一意識別子（ＵＵＩＤ）を生成する。動作５０６において、ゲートウェイ１０６はクライアント１０１にＵＵＩＤを返す。次いで、ＵＵＩＤは、クライアント１０１によって、後に、実行サービスを呼び出すために、アップロードされたクライアント・データを復活するのに使用され得る。
【００２３】
図６は、一実施形態に係るクライアント〜ゲートウェイのデータ・ダウンロード・プロトコルの一例を示す流れ図である。クライアント〜ゲートウェイのデータ・ダウンロード・プロトコルは、クライアントがゲートウェイからデータ（たとえば実行結果）をダウンロードするための、クライアント（たとえばクライアントデバイス１０１〜１０２）とゲートウェイ（図１のゲートウェイ１０６）の間の通信プロトコルであり得る。クライアント〜ゲートウェイのデータ・ダウンロード・プロトコルの例６００は図１のシステム１００によって遂行され得る。クライアントは、ゲートウェイ１０６から、クライアントに関連したあらゆるデータをダウンロードし得る。図６を参照して、動作６０１において、クライアント１０１はゲートウェイ１０６に対するＴＬＳハンドシェイクおよび証明を遂行する。証明は、上記のものと同様に、ゲートウェイ１０６にとって利用可能な、ＴＰＭベースまたは何らかの他のタイプの証明であり得る。動作６０２において、クライアントは、ＵＵＩＤによってゲートウェイ１０６にデータ要求を送る。動作６０３において、ゲートウェイ１０６は、ＲＡＭＦＳ１２１からＵＵＩＤに対応するデータを回復する。動作６０４において、ゲートウェイ１０６は、データに関連した暗号キーを判定してデータを解読する。動作６０５において、ゲートウェイ１０６はクライアント１０１にデータを返す。
【００２４】
図７は、一実施形態に係る安全なマルチパーティ・コンピュータシステムのための実行サービス呼び出しプロトコルの一例を示す流れ図である。実行サービス呼び出しプロトコルは、ゲートウェイに対する実行サービスの呼び出しのための、クライアントデバイス（たとえばクライアントデバイス１０１〜１０２）とゲートウェイ（たとえば図１のゲートウェイ１０６）の間の通信プロトコルであり得、そのため、ゲートウェイのＴＥＥワーカは実行サービスを実行することができる。実行サービス呼び出しプロトコルの例７００は図１のシステム１００によって遂行され得る。図７を参照して、一実施形態では、動作７０１において、クライアントデバイス１０１は、サービス要求を送り、ゲートウェイ１０６に対するＴＬＳハンドシェイクおよび証明を遂行する。証明は、上記のものと同様に、ゲートウェイ１０６にとって利用可能な、ＴＰＭベースまたは何らかの他のタイプの証明であり得る。動作７０２において、クライアントデバイス１０１は、ゲートウェイ１０６にサービスＩＤおよびデータＵＵＩＤを伝送する。一実施形態では、サービスＩＤは、サーバ１０４によって実行される実行サービスを識別する固有の名称または識別子を含む。データＵＵＩＤは、実行サービスのために、ＲＡＭＦＳ１２１上のクライアント・データを入力データとして識別するＵＵＩＤであり得る。動作７０３において、ゲートウェイ１０６は、ＵＵＩＤを使用してＲＡＭＦＳ１２１からデータを回復し、データを解読して、悪性コードに関してデータを走査することによりデータをさらにサニタイズする。一実施形態では、入力データは、クライアントデバイス１０１により、クライアント要求の一部分としてゲートウェイ１０６に直接伝送される。動作７０４において、ゲートウェイ１０６は、クライアント要求に対してサービスする特定の実行サービスのために登録されたＴＥＥワーカ（たとえばＴＥＥワーカ１０８）を選択する。動作７０５において、ゲートウェイ１０６は、回復されたデータをＴＥＥワーカ１０８に送り、サービス実行を開始する。動作７０６において、ＴＥＥワーカは、データを使用して実行サービスを実行する。実行が完了すると、動作７０７において、ＴＥＥワーカはゲートウェイ１０６に実行結果を返す。動作７０８において、ゲートウェイ１０６は、実行結果のコピーを暗号化して、局所的に、たとえばＲＡＭＦＳ１２１に記憶する。加えて、ゲートウェイ１０６はＵＵＩＤを生成し、ＵＵＩＤを実行結果に関連づける。動作７０９において、ゲートウェイ１０６は、実行結果または実行結果に関連したＵＵＩＤをクライアントデバイス１０１に返す。ＵＵＩＤはマッピング表によって実行結果にマッピングされ得、マッピング表はゲートウェイ１０６によって維持され得ることに留意されたい。ＴＬＳハンドシェイクおよび証明のための動作など、いくつかの動作は任意選択でよいことに留意されたい。
【００２５】
図８は、一実施形態に係る方法の一例を示す流れ図である。処理８００を遂行し得る処理ロジックは、ソフトウェア、ハードウェア、またはこれらの組合せを含み得る。たとえば、処理８００は、図１のデータ処理サーバ（たとえばホスト）１０４のゲートウェイ１０６によって遂行され得る。図８を参照して、ブロック８０１において、処理ロジックは、ユーザのユーザデバイスからネットワークを通じてサーバのゲートウェイにおいて受け取られた、実行サービスによってユーザデータを処理するようにとの要求に応答して、悪性コードに関してユーザデータを走査することにより、ユーザデータをサニタイズする。ブロック８０２において、処理ロジックは、複数のＴＥＥワーカからＴＥＥワーカを選択し、選択されたＴＥＥワーカによって実行サービスの実行を開始する。ブロック８０３において、処理ロジックは選択されたＴＥＥワーカから実行結果を受け取る。ブロック８０４において、処理ロジックはユーザのユーザデバイスに実行結果を伝送する。
【００２６】
一実施形態では、要求は、複数のユーザに関連した複数のユーザデバイスから受け取られた複数の要求のうち１つであり、要求の各々が、複数のＴＥＥワーカのうちそれぞれの１つの内部で処理される。一実施形態では、ユーザデバイスが要求を伝送するのに先立って、ゲートウェイが、ユーザデバイスによって信頼できるものと証明される。
【００２７】
一実施形態では、処理ロジックは、クライアント要求に対する実行サービスを呼び出す前に、ゲートウェイを用いて実行サービスをさらに登録する。別の実施形態では、サービスを登録するステップは、サービスプロバイダからサービス・バイナリおよびサービスの記述を受け取るのに応答して、サービス・バイナリの完全性および確実性を検証するステップと、悪性コードに関してサービス・バイナリを走査するステップと、サービス・バイナリを複数のＴＥＥワーカのうちの１つとして登録するステップとを含む。別の実施形態では、サービスプロバイダは、サービスプロバイダがゲートウェイにサービス・バイナリを伝送するのに先立って、ゲートウェイを信頼できるものと証明する。
【００２８】
一実施形態では、処理ロジックは、キー管理サーバ（ＫＭＳ）から、クライアント・データを暗号化するためのキーをさらに得る。別の実施形態では、パブリックキーを得るステップは、ゲートウェイによって、キーを得るための要求をＫＭＳに伝送するステップと、ＫＭＳからキーを受け取るステップであって、ＫＭＳは対称なキーまたはキー・ペアを生成しており、ゲートウェイがキーの確実性を検証するように、キーがＫＭＳによって署名されている、キーを受け取るステップとを含む。別の実施形態では、処理ロジックは、ＫＭＳが信頼できるエンティティであることをさらに証明し、ＫＭＳは、ゲートウェイが要求を伝送してＫＭＳが受け取る前に、ゲートウェイが信頼できるエンティティであることを証明する。
【００２９】
一実施形態では、ゲートウェイは、ゲートウェイに関するネットワーク・トラフィックの、認証、許可、監査およびアカウントを強化する。一実施形態では、ゲートウェイは、信頼できる、複製された、冗長で、かつ、フォールトトレラントな（ＲＡＦＴ）サービスを提供する。一実施形態では、ゲートウェイはバイパス不可能なゲートウェイである。
【００３０】
図９は、本発明の一実施形態とともに使用され得るデータ処理システムの一例を示すブロック図である。たとえば、システム１５００は、上記で説明された処理または方法のうち任意のものを遂行する、上記で説明されたデータ処理システムのうち任意のものを表し得、たとえば上記で説明されたようなクライアント１０１〜１０２およびサーバ１０４など、たとえば上記で説明されたクライアントデバイスまたはサーバなどでよい。
【００３１】
システム１５００は多くの様々な構成要素を含むことができる。これらの構成要素は、集積回路（ＩＣ）、ＩＣの一部分、個別の電子デバイス、またはコンピュータシステムのマザーボードもしくはアドイン・カードなどの回路基板に適合された他のモジュール、またはコンピュータシステムのシャーシの内部に別様に組み込まれた構成要素として実施され得る。
【００３２】
システム１５００は、コンピュータシステムの多くの構成要素の高レベルの概観を示すように意図されていることにも留意されたい。しかしながら、特定の実装形態には追加の構成要素が存在し得、その上、他の実装形態では、示された構成要素の種々の配置が生じ得ることを理解されたい。システム１５００は、デスクトップ・コンピュータ、ノートパソコン、タブレット型コンピュータ、サーバ、携帯電話、メディアプレーヤ、携帯情報端末（ＰＤＡ）、スマートウォッチ、パーソナル・コミュニケータ、ゲーム機、ネットワークのルータまたはハブ、無線アクセスポイント（ＡＰ）またはリピータ、セットトップ・ボックス、またはこれらの組合せを表し得る。さらに、単一のマシンまたはシステムしか示されていないが、「マシン」または「システム」という用語は、本明細書で論じられた技法のうち任意の１または複数を遂行する１組（または複数の組）の命令を個々にまたは連帯的に実行するマシンまたはシステムの任意の収集を含むと解釈されるものとする。
【００３３】
一実施形態では、システム１５００は、バスまたは相互接続１５１０を介して、プロセッサ１５０１、メモリ１５０３、およびデバイス１５０５〜１５０８を備える。プロセッサ１５０１は、単一のプロセッサコアまたは複数のプロセッサコアを含む、単一のプロセッサまたは複数のプロセッサを表し得る。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）等の１または複数の汎用プロセッサを表し得る。より具体的には、プロセッサ１５０１は、複数命令セット・コンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セット・コンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＭ）マイクロプロセッサ、他の命令セットを実施するプロセッサ、または命令セットの組合せを実施するプロセッサでよい。プロセッサ１５０１は、特定用途向け集積回路（ＡＳＩＣ）、セルラー式プロセッサまたはベースバンド・プロセッサ、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワーク・プロセッサ、グラフィックス・プロセッサ、通信用プロセッサ、暗号プロセッサ、コプロセッサ、組み込み型プロセッサ、または命令を処理することができる何らかの他のタイプの論理などの１または複数の専用プロセッサでもよい。
【００３４】
超低電圧プロセッサなど低電力のマルチコア・プロセッサ・ソケットであり得るプロセッサ１５０１は、システムの様々な構成要素と通信するための主処理ユニットおよび中央ハブとして働き得る。そのようなプロセッサはシステム・オン・チップ（ＳｏＣ）として実施され得る。プロセッサ１５０１は、本明細書で論じた動作およびステップを遂行するための命令を実行するように構成されている。システム１５００がさらに含み得るグラフィックス・インターフェースは、表示コントローラ、グラフィックス・プロセッサ、および／または表示デバイスを含み得る任意選択のグラフィックス・サブシステム１５０４と通信する。
【００３５】
プロセッサ１５０１はメモリ１５０３と通信してよく、メモリ１５０３は、一実施形態では、所与の量のシステムメモリを与えるために複数のメモリ・デバイスによって実施され得る。メモリ１５０３は、ランダムアクセスメモリ（ＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）または他のタイプの記憶デバイスなど、１または複数の揮発性記憶（すなわちメモリ）デバイスを含み得る。メモリ１５０３は、プロセッサ１５０１または何らかの他のデバイスによって実行される命令のシーケンスを含む情報を記憶し得る。たとえば、種々のオペレーティングシステム、デバイス・ドライバ、ファームウェア（たとえば入出力基本システムすなわちＢＩＯＳ）の実行可能コードおよび／またはデータ、および／またはアプリケーションがメモリ１５０３にロードされ、プロセッサ１５０１によって実行され得る。オペレーティングシステムは、たとえばマイクロソフト（登録商標）のウィンドウズ（登録商標）オペレーティングシステム、アップルのマックＯＳ（登録商標）／ｉＯＳ（登録商標）、グーグル（登録商標）のアンドロイド（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｕｎｉｘ（登録商標）など任意の種類のオペレーティングシステム、またはＶｘＷｏｒｋｓなど他のリアルタイム・オペレーティングシステムもしくは組み込み型オペレーティングシステムであり得る。
【００３６】
システム１５００がさらに含み得るデバイス１５０５〜１５０８などのＩＯデバイスは、ネットワーク・インターフェース・デバイス１５０５、任意選択の入力デバイス１５０６、および他の任意選択のＩＯデバイス１５０７を含む。ネットワーク・インターフェース・デバイス１５０５は、無線トランシーバおよび／またはネットワーク・インターフェース・カード（ＮＩＣ）を含み得る。無線トランシーバは、Ｗｉ−Ｆｉトランシーバ、赤外線トランシーバ、ブルートゥース・トランシーバ、ＷｉＭａｘトランシーバ、無線セルラー電話トランシーバ、衛星トランシーバ（たとえば全地球測位システム（ＧＰＳ）トランシーバ）、もしくは他の無線周波数（ＲＦ）トランシーバ、またはこれらの組合せでよい。ＮＩＣはイーサネットカードでよい。
【００３７】
入力デバイス１５０６は、マウス、タッチパッド、タッチセンシティブ・スクリーン（表示デバイス１５０４に組み込まれ得る）、スタイラスなどのポインタデバイス、および／またはキーボード（たとえば物理的キーボードまたはタッチセンシティブ・スクリーンの一部分として表示されたバーチャル・キーボード）を含み得る。たとえば、入力デバイス１５０６はタッチスクリーンに結合されたタッチスクリーン・コントローラを含み得る。タッチスクリーンおよびタッチスクリーン・コントローラは、たとえば、それだけではないが、容量技術、抵抗技術、赤外線技術、表面弾性波技術、ならびに他の近接センサ配列またはタッチスクリーンに対する１または複数の接触点を判定するための他の要素を含む複数のタッチ感知技術のうち任意のものを使用して、接触と、動きまたは動きの中断とを検知する。
【００３８】
ＩＯデバイス１５０７はオーディオ・デバイスを含み得る。オーディオ・デバイスは、音声認識、音声応答、デジタル記録、および／または電話の機能など、音声対応の機能を促進するためのスピーカおよび／またはマイクロフォンを含み得る。他のＩＯデバイス１５０７は、ユニバーサル・シリアル・バス（ＵＳＢ）ポート、パラレルポート、シリアルポート、プリンタ、ネットワーク・インターフェース、バスブリッジ（たとえばＰＣＩ−ＰＣＩブリッジ）、センサ（たとえば加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどの運動センサ）またはこれらの組合せをさらに含み得る。デバイス１５０７がさらに含み得る画像処理サブシステム（たとえばカメラ）は、写真およびビデオクリップの記録などのカメラ機能を促進するために利用される電荷結合デバイス（ＣＣＤ）または相補型金属酸化膜半導体（ＣＭＯＳ）光センサなどの光センサを含み得る。特定のセンサがセンサ・ハブ（図示せず）を介して相互接続１５１０に結合されてよく、一方、キーボードまたは熱センサなど他のデバイスは、システム１５００の特定の構成または設計に依拠して、組み込みコントローラ（図示せず）によって制御され得る。
【００３９】
データ、アプリケーション、１または複数のオペレーティングシステムなどの情報の持続的記憶を提供するために、プロセッサ１５０１には大容量記憶装置（図示せず）も結合され得る。様々な実施形態において、より薄くより軽いシステム設計を可能にするばかりでなくシステム応答性も改善するために、この大容量記憶装置はソリッドステート・デバイス（ＳＳＤ）によって実施されてよい。しかしながら、他の実施形態では、大容量記憶装置は、停電中にコンテキスト状態および他のそのような情報の不揮発性記憶装置を有効にするために、主として、ＳＳＤキャッシュとして働く少量のＳＳＤ記憶装置を伴うハードディスク・ドライブ（ＨＤＤ）を使用して実施されてよく、その結果、システム・アクティビティの再起動において高速のパワーアップが可能になる。また、フラッシュメモリが、たとえばシリアル周辺インターフェース（ＳＰＩ）を介してプロセッサ１５０１に結合されてよい。このフラッシュメモリは、基本入出力ソフトウェア（ＢＩＯＳ）ならびにシステムの他のファームウェアを含むシステム・ソフトウェアの不揮発性記憶装置をもたらし得る。
【００４０】
記憶デバイス１５０８が含み得るコンピュータ・アクセス可能な記憶媒体１５０９（マシン可読記憶媒体またはコンピュータ可読媒体としても知られている）には、本明細書で説明された技法または機能のうち任意の１または複数を具現する１または複数の命令のセットまたはソフトウェア（たとえばモジュール、ユニット、および／またはロジック１５２８）が記憶されている。処理モジュール／ユニット／ロジック１５２８は、たとえばゲートウェイ１０６または図１のホストサーバ１０４など、上記で説明された構成要素のうち任意のものを表し得る。処理モジュール／ユニット／ロジック１５２８は、データ処理システム１５００による実行中には、メモリ１５０３の内部および／またはプロセッサ１５０１の内部に、余すところなく、または少なくとも部分的に存在してもよく、メモリ１５０３およびプロセッサ１５０１はマシンアクセス可能な記憶媒体も構成する。処理モジュール／ユニット／ロジック１５２８は、ネットワーク・インターフェース・デバイス１５０５によってネットワークを通じてさらに送信／受信されてよい。
【００４１】
コンピュータ可読記憶媒体１５０９は、上記で説明されたいくつかのソフトウェア機能を持続的に記憶するためにも使用され得る。例示的実施形態では、コンピュータ可読記憶媒体１５０９は単一の媒体であるように示されているが、「コンピュータ可読記憶媒体」という用語は、命令の１または複数のセットを記憶する単一の媒体または複数の媒体（たとえば集中型もしくは分散型のデータベース、および／または関連するキャッシュおよびサーバ）を含むように解釈されるべきである。「コンピュータ可読記憶媒体」という用語は、マシンによる実行のための命令のセットを記憶することまたは符号化することが可能であって本発明の技法のうち任意の１または複数をマシンに遂行させる任意の媒体を含むようにも解釈されるべきである。したがって、「コンピュータ可読記憶媒体」という用語は、それだけではないが、ソリッドステート・メモリならびに光媒体および磁気媒体、または何らかの他の非一時的マシン可読媒体を含むように解釈されるべきである。
【００４２】
処理モジュール／ユニット／ロジック１５２８、構成要素および本明細書で説明された他の機能は、個別のハードウェア構成要素として実施され得、またはＡＳＩＣ、ＦＰＧＡ、ＤＳＰまたは類似のデバイスなどハードウェア構成要素の機能の中に組み込まれ得る。加えて、処理モジュール／ユニット／ロジック１５２８は、ハードウェアデバイスの内部のファームウェアまたは機能回路として実施され得る。さらに、処理モジュール／ユニット／ロジック１５２８は、ハードウェアデバイスとソフトウェア・コンポーネントの任意の組合せで実施され得る。
【００４３】
システム１５００は、データ処理システムの様々な構成要素を用いて示されているが、何らかの特定のアーキテクチャまたは構成要素を相互に連結するやり方を表すことは意図されておらず、そのため、詳細は、本発明の実施形態に密接な関係はないことに留意されたい。ネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、および／または構成要素がより少ないかもしくは恐らくより多い他のデータ処理システムも、本発明の実施形態とともに使用され得ることも理解されたい。
【００４４】
先の詳細な説明のいくつかの部分は、コンピュータ記憶装置の内部のデータ・ビットにおける動作のアルゴリズムおよび記号表現の観点から提示されている。これらのアルゴリズム的な説明および表現は、データ処理技術の当業者が、著作物の要旨を他の当業者に最も効果的に伝えるために使用するやり方である。ここで、アルゴリズムは、一般に、所望の結果に達する動作の自己矛盾がないシーケンスと考えられる。動作は、物理量の物理的操作を必要とするものである。
【００４５】
しかしながら、これらおよび類似の用語のすべてが、適切な物理量に関連づけられるべきであり、これらの量に与えられた好都合なラベルでしかないことを念頭に置かれたい。特に別記しない限り、上記の議論から明らかなように、説明の全体にわたって、以下の特許請求の範囲において説明されるものなどの用語を利用する議論は、コンピュータシステムのレジスタおよびメモリの内部の物理的（電子的）量として表されたデータを操作して、コンピュータシステムのメモリもしくはレジスタ、または他のそのような情報の記憶デバイス、伝送デバイスもしくは表示デバイスの内部の物理量として同様に表される他のデータへと変換するコンピュータシステム（または類似の電子計算デバイス）の作用および処理を指すことが理解される。
【００４６】
図に示された技術は、１または複数の電子デバイス上に記憶されて実行されるコードおよびデータを使用して実施され得る。そのような電子デバイスは、非一時的コンピュータ可読記憶媒体（たとえば磁気ディスク、光ディスク、ランダムアクセスメモリ、読み取り専用メモリ、フラッシュメモリ・デバイス、相変化メモリ）および一時的なコンピュータ可読伝送媒体（たとえば搬送波、赤外線信号、デジタル信号など、電気、光、音響、または他の形態の伝搬される信号）などのコンピュータ可読媒体を使用して、コードおよびデータを記憶したり、（内部で、および／またはネットワーク上の他の電子デバイスと）通信したりする。
【００４７】
先の図に表された処理または方法は、ハードウェア（たとえば回路、専用ロジックなど）、ファームウェア、（たとえば非一時的コンピュータ可読媒体上に具現された）ソフトウェア、またはこれらの組合せを含む処理ロジックによって遂行され得る。上記では、処理または方法がいくつかの順次動作の観点から説明されているが、説明された動作のうちいくつかは異なる順序で遂行され得ることを理解されたい。その上に、いくつかの動作は、順次ではなく並行して遂行され得る。
【００４８】
前述の明細書では、本発明の実施形態が特定の例示的実施形態を参照しながら説明されている。以下の特許請求の範囲で説明されるような本発明のより広範な精神および範囲から逸脱することなく、様々な修正形態が作製され得ることが明白であろう。したがって、本明細書および図面は、限定的意味ではなく例示的意味に見なされるべきである。
【図１】
2020184326.tif 000003
【図２】
2020184326.tif 000004
【図３】
2020184326.tif 000005
【図４】
2020184326.tif 000006
【図５】
2020184326.tif 000007
【図６】
2020184326.tif 000008
【図７】
2020184326.tif 000009
【図８】
2020184326.tif 000010
【図９】
2020184326.tif 000011