(57)【要約】アプリケーションのアクターのインスタンスをマイグレーションするための仕組みが提供される。方法は、開始ランタイム環境によって実行される。方法は、対象ランタイム環境の集合について取得したセキュリティ属性に基づいて、アクターのインスタンスのマイグレーションのために対象ランタイム環境の集合から対象ランタイム環境を選択することを有する。方法は、対象ランタイム環境が選択されると、選択された対象ランタイム環境へアクターのインスタンスをマイグレーションすることを有する。このような方法を実行するように構成されたランタイム環境も提供される。
2019507920.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）のインスタンス（１１０）をマイグレーションするための方法であって、前記方法は開始ランタイム環境（２００ａ）によって実行され、前記方法は、
対象ランタイム環境（２００ｂ、２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｂ、２００ｃ）の前記集合から対象ランタイム環境（２００ｂ）を選択すること（Ｓ１０６）と、
前記対象ランタイム環境（２００ｂ）を選択すると、前記選択された対象ランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をマイグレーションすること（Ｓ１０８）と、を有する方法。
【請求項２】
請求項１に記載の方法であって、前記対象ランタイム環境（２００ｂ）を選択することは、
対象ランタイム環境（２００ｂ、２００ｃ）の前記集合について前記セキュリティ属性を取得すること（Ｓ１０６ａ）を含む、方法。
【請求項３】
請求項１に記載の方法であって、前記対象ランタイム環境（２００ｂ）を選択することは、
前記選択された対象ランタイム環境（２００ｂ）についての前記取得されたセキュリティ属性が前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のセキュリティ属性条件を充足することを検証すること（Ｓ１０６ｂ）を含む、方法。
【請求項４】
請求項１に記載の方法であって、前記対象ランタイム環境（２００ｂ）を選択することは、
前記選択された対象ランタイム環境（２００ｂ）についての前記取得されたセキュリティ属性が前記対象ランタイム環境（２００ｂ）によって正当に識別されることを検証すること（Ｓ１０６ｃ）を含む、方法。
【請求項５】
請求項１に記載の方法であって、前記対象ランタイム環境（２００ｂ）を選択することは、
前記選択された対象ランタイム環境（２００ｂ）への前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションを開始する前に、前記対象ランタイム環境（２００ｂ）への前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションの開始を受理することを検証すること（Ｓ１０６ｄ）を含む、方法。
【請求項６】
請求項１に記載の方法であって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をマイグレーションすることは、
前記選択された対象ランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを提供すること（Ｓ１０８ａ）を含む、方法。
【請求項７】
請求項１に記載の方法であって、
別の開始ランタイム環境から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションとして前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）を取得すること（Ｓ１０２）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）についての前記開始ランタイム環境（２００ａ）の認可ポリシーが充足されないことを判定すること（Ｓ１０４）であって、前記対象ランタイム環境を選択することはこれに応答して実行される、ことと、を更に有する方法。
【請求項８】
請求項１に記載の方法であって、前記対象ランタイム環境を選択することは、別の対象ランタイム環境への前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションが成功しなかったことに応答して実行される、方法。
【請求項９】
請求項１に記載の方法であって、対象ランタイム環境（２００ｂ、２００ｃ）の前記集合内の前記対象ランタイム環境（２００ｂ、２００ｃ）のうちの少なくとも１つの前記セキュリティ属性は、前記対象ランタイム環境（２００ｂ、２００ｃ）のうちの前記少なくとも１つから直接に取得される、方法。
【請求項１０】
請求項１に記載の方法であって、対象ランタイム環境（２００ｂ、２００ｃ）の前記集合内の前記対象ランタイム環境（２００ｂ、２００ｃ）のうちの少なくとも１つの前記セキュリティ属性は、セキュリティ属性サービスから取得される、方法。
【請求項１１】
請求項１に記載の方法であって、前記セキュリティ属性は、ユーザ認証情報と、認可ポリシーと、認可クレデンシャルと、セキュア個人識別番号、ＰＩＮ、コードの利用可能性の情報と、セキュア・ユーザ・インタフェースの利用可能性の情報と、セキュア・ブートの利用可能性の情報と、のうちの少なくとも１つを含む、方法。
【請求項１２】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）のインスタンス（１１０）をマイグレーションするための方法であって、前記方法は対象ランタイム環境（２００ｂ）によって実行され、前記方法は、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションのために開始ランタイム環境（２００ａ）が前記対象ランタイム環境を選択することを可能にするセキュリティ属性を識別すること（Ｓ２０２）と、
前記識別されたセキュリティ属性に基づいて、前記開始ランタイム環境（２００ａ）から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを取得すること（Ｓ２０４）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）についての前記対象ランタイム環境（２００ｂ）の認可ポリシーが充足される場合に前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化すること（Ｓ２０６）によって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）が少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを可能にすることと、を有する方法。
【請求項１３】
請求項１２に記載の方法であって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）アクセスの前記インスタンス（１１０）をインスタンス化することは、
前記認可ポリシーに従って、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要な前記データの真正性を検証すること（Ｓ２０６ａ）を含む、方法。
【請求項１４】
請求項１２に記載の方法であって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）アクセスの前記インスタンス（１１０）をインスタンス化することは、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要な前記データから要求された属性のオーナーシップを検証すること（Ｓ２０６ｂ）を含む、方法。
【請求項１５】
請求項１４に記載の方法であって、前記要求された属性のオーナーシップを検証することは、
前記インスタンス化するランタイム環境（２００ａ）との認証検証を実行すること（Ｓ２０６ｃ）を含む、方法。
【請求項１６】
請求項１３、１４及び１５の何れか１項に記載の方法であって、前記検証の何れかが失敗した場合に、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）は前記対象ランタイム環境（２００ｂ）での実行をブロックされる、方法。
【請求項１７】
請求項１２に記載の方法であって、
前記認可ポリシーが充足されない場合に、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）が前記少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを阻止すること（Ｓ２０８）を更に有する方法。
【請求項１８】
請求項１６又は１７に記載の方法であって、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）の実行をブロックしたこと又は前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）が前記少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを阻止したことに応答して、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーション失敗を前記開始ランタイム環境（２００ａ）に通知すること（Ｓ２１０）を更に有する方法。
【請求項１９】
請求項１６又は１７に記載の方法であって、
他の対象ランタイム環境（２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｃ）の前記集合から別の対象ランタイム環境（２００ｃ）を選択すること（Ｓ２１２）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）の実行をブロックしたことに応答して前記別の対象ランタイム環境（２００ｃ）を選択すると、前記選択された別の対象ランタイム環境（２００ｃ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をマイグレーションすること（Ｓ２１４）と、を更に有する方法。
【請求項２０】
請求項１２に記載の方法であって、前記認可ポリシーは、どのアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）か、前記少なくとも１つのリソース・オブジェクト（１６０）のうちのどれか、及びアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）が前記対象ランタイム環境（２００ｂ）の少なくとも１つのリソース・オブジェクト（１６０）へアクセスするために充足される必要がある動作属性はどれかを規定する、方法。
【請求項２１】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）のインスタンス（１１０）をマイグレーションするための開始ランタイム環境として動作するランタイム環境（２００ａ）であって、前記ランタイム環境は処理回路（２１０）を備え、前記処理回路は、前記ランタイム環境（２００ａ）に、
対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の前記集合から対象ランタイム環境（２００ｂ）として動作するランタイム環境（２００ｂ）を選択することと、
対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）を選択すると、対象ランタイム環境（２００ｂ）として動作する前記選択されたランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をマイグレーションすることと、を行わせるように構成される、ランタイム環境。
【請求項２２】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）のインスタンス（１１０）をマイグレーションするための開始ランタイム環境として動作するランタイム環境（２００ａ）であって、
対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の前記集合から対象ランタイム環境（２００ｂ）として動作するランタイム環境（２００ｂ）を選択するように構成された選択モジュール（２１０ａ）と、
対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）を選択すると、対象ランタイム環境（２００ｂ）として動作する前記選択されたランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をマイグレーションするように構成されたマイグレーション・モジュール（２１０ｂ）と、を備えるランタイム環境。
【請求項２３】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）のインスタンス（１１０）をマイグレーションするための対象ランタイム環境として動作するランタイム環境（２００ｂ）であって、前記ランタイム環境は処理回路（２１０）を備え、前記処理回路は、前記ランタイム環境（２００ｂ）に、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションのために開始ランタイム環境（２００ａ）として動作するランタイム環境（２００ａ）が前記対象ランタイム環境（２００ｂ）を選択することを可能にするセキュリティ属性を識別することと、
前記識別されたセキュリティ属性に基づいて、開始ランタイム環境（２００ａ）として動作する前記ランタイム環境（２００ａ）から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを取得することと、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）についての対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）の認可ポリシーが充足される場合に前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化することによって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）が少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを可能にすることと、を行わせるように構成される、ランタイム環境。
【請求項２４】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）のインスタンス（１１０）をマイグレーションするための対象ランタイム環境として動作するランタイム環境（２００ｂ）であって、前記ランタイム環境は、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションのために開始ランタイム環境（２００ａ）として動作するランタイム環境（２００ａ）が前記対象ランタイム環境（２００ｂ）を選択することを可能にするセキュリティ属性を識別するように構成された識別モジュール（２１０ｋ）と、
前記識別されたセキュリティ属性に基づいて、開始ランタイム環境（２００ａ）として動作する前記ランタイム環境（２００ａ）から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを取得するように構成された取得モジュール（２１０ｍ）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）についての対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）の認可ポリシーが充足される場合に前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化することによって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）が少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを可能にするように構成されたインスタンス化モジュール（２１０ｎ）と、を備えるランタイム環境。
【請求項２５】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）のインスタンス（１１０）をマイグレーションするためのコンピュータプログラム（３２０ａ）であって、前記コンピュータプログラムは、開始ランタイム環境として動作するランタイム環境（２００ａ）の処理回路（２１０）で実行される場合に、前記ランタイム環境（２００ａ）に、
対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の前記集合から対象ランタイム環境（２００ｂ）として動作するランタイム環境（２００ｂ）を選択すること（Ｓ１０６）と、
対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）を選択すると、対象ランタイム環境（２００ｂ）として動作する前記選択されたランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をマイグレーションすること（Ｓ１０８）と、を行わせるプログラムコードを有する、コンピュータプログラム。
【請求項２６】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）のインスタンス（１１０）をマイグレーションするためのコンピュータプログラム（３２０ａ）であって、前記コンピュータプログラムは、対象ランタイム環境として動作するランタイム環境（２００ｂ）の処理回路（２１０）で実行される場合に、前記ランタイム環境（２００ｂ）に、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）のマイグレーションのために開始ランタイム環境（２００ａ）として動作するランタイム環境（２００ａ）が前記対象ランタイム環境（２００ｂ）を選択することを可能にするセキュリティ属性を識別すること（Ｓ２０２）と、
前記識別されたセキュリティ属性に基づいて、開始ランタイム環境（２００ａ）として動作する前記ランタイム環境（２００ａ）から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを取得すること（Ｓ２０４）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）についての対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）の認可ポリシーが充足される場合に前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）をインスタンス化すること（Ｓ２０６）によって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ６）の前記インスタンス（１１０）が少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを可能にすることと、を行わせるように構成される、ランタイム環境。
【請求項２７】
請求項２５及び１６の何れか１項に記載のコンピュータプログラム（３２０ａ、３２０ｂ）と、前記コンピュータプログラムを格納したコンピュータ可読記憶媒体（３３０）と、を備えるコンピュータプログラム製品（３１０ａ、３１０ｂ）。
【発明の詳細な説明】
【技術分野】
【０００１】
本書で提示される実施形態は、アプリケーションのアクターのインスタンスをマイグレーションするための方法、ランタイム環境、コンピュータプログラム及びコンピュータプログラム製品に関する。
【背景技術】
【０００２】
通信ネットワークにおいて、所与の通信プロトコル、そのパラメータ及び通信ネットワークがデプロイされる物理環境について良好な性能及び容量を取得することは挑戦的でありうる。
【０００３】
例えば、通信ネットワーク内の所与の通信プロトコルについて良好な性能及び容量を提供する１つのパラメータは、通信ネットワーク内の少なくとも２つのランタイム環境間でアプリケーションを分散する能力である。
【０００４】
それゆえ、ランタイム環境は、アクターと示されるアプリケーション・モジュールが、いくつかのデバイス（各デバイスはランタイム環境を備える）にわたって分散されてデプロイされることを可能にする。大まかに言うと、アクターは、メッセージで通信する分散アプリケーションの一部としてみなされうる（（２０１６年１月２９日にアクセスされた）http://arxiv.org/abs/1008.1459参照）。アクターは、ランタイム環境にアクターのインスタンスの配置を案内するための条件を有する。ランタイム環境は、ランタイム環境の機能だけでなく他の情報を記述する属性を有する。分散アプリケーションを処理するための通信ネットワーク内のランタイム環境の現在の実装は、セキュリティについてのサポートを欠く。
【０００５】
アプレットのようなソフトウェア部品がランタイム環境に移動されうる環境はＪａｖａ（登録商標）である。Ｊａｖａは、アプレットのためのランタイム・セキュリティを提供する。Ｊａｖａフレームワークによれば、アプレットは（アクセス・パーミッションとともに）署名され、ランタイム環境は実行が開始される前にアプレット及びパーミッションを検証する。しかし、Ｊａｖａフレームワークは、（アプレット署名に必要な公開鍵を有する証明書のパーミッションの要件を超えて）ランタイムの信用性をアプレットが検証することを可能にしない。
【０００６】
それゆえ、ランタイム環境での分散アプリケーションの改良された処理が必要となる。
【発明の概要】
【０００７】
本書の実施形態の目的は、ランタイム環境での分散アプリケーションの処理を提供することである。
【０００８】
第１側面によれば、アプリケーションのアクターのインスタンスをマイグレーションするための方法が提示される。本方法は、開始ランタイム環境によって実行される。本方法は、対象ランタイム環境の集合について取得されたセキュリティ属性に基づいて、アクターのインスタンスのマイグレーションのために対象ランタイム環境の集合から対象ランタイム環境を選択することを有する。本方法は、対象ランタイム環境を選択すると、選択された対象ランタイム環境へアクターのインスタンスをマイグレーションすることを有する。
【０００９】
第２側面によれば、アプリケーションのアクターのインスタンスをマイグレーションするための開始ランタイム環境として動作するランタイム環境が提示される。ランタイム環境は処理回路を備える。処理回路は、対象ランタイム環境として動作するランタイム環境の集合について取得したセキュリティ属性に基づいて、アクターのインスタンスのマイグレーションのために対象ランタイム環境として動作するランタイム環境の集合から対象ランタイム環境として動作するランタイム環境をランタイム環境に選択させるように構成される。処理回路は、対象ランタイム環境として動作するランタイムを選択すると、対象ランタイム環境として動作する選択されたランタイム環境へアクターのインスタンスをランタイム環境にマイグレーションさせるように構成される。
【００１０】
第３側面によれば、アプリケーションのアクターのインスタンスをマイグレーションするための開始ランタイム環境として動作するランタイム環境が提示される。本ランタイム環境は、対象ランタイム環境として動作するランタイム環境の集合について取得されたセキュリティ属性に基づいて、アクターのインスタンスのマイグレーションのために対象ランタイム環境として動作するランタイム環境の集合から対象ランタイム環境として動作するランタイム環境を選択するように構成された選択モジュールを備える。本ランタイム環境は、対象ランタイム環境として動作するランタイムを選択すると、対象ランタイム環境として動作する選択されたランタイム環境へアクターのインスタンスをマイグレーションするように構成されたマイグレーション・モジュールを備える。
【００１１】
第４側面によれば、アプリケーションのアクターのインスタンスをマイグレーションするためのコンピュータプログラムが提示され、コンピュータプログラムは、開始ランタイム環境として動作するランタイム環境の処理回路で実行される場合に、第１側面による方法をランタイム環境に実行させるコンピュータプログラムコードを備える。
【００１２】
第５側面によれば、アプリケーションのアクターのインスタンスをマイグレーションするための方法が提示される。本方法は、対象ランタイム環境によって実行される。本方法は、開始ランタイム環境がアクターのインスタンスのマイグレーションのために対象ランタイム環境を選択することを可能にするセキュリティ属性を識別することを有する。本方法は、識別されたセキュリティ属性に基づいて開始ランタイム環境からアクターのインスタンスをインスタンス化するのに必要なデータを取得することを有する。本方法は、アクターのインスタンスについての対象ランタイム環境の認可ポリシーが充足される場合にアクターのインスタンスをインスタンス化することによって、アクターのインスタンスが少なくとも１つのリソース・オブジェクトへアクセスすることを可能にすることを有する。
【００１３】
第６側面によれば、アプリケーションのアクターのインスタンスをマイグレーションするための対象ランタイム環境として動作するランタイム環境が提示され、本ランタイム環境は処理回路を備える。本処理回路は、開始ランタイム環境として動作するランタイム環境がアクターのインスタンスのマイグレーションのために対象ランタイム環境を選択することを可能にするセキュリティ属性をランタイム環境に識別させるように構成される。本処理回路は、識別されたセキュリティ属性に基づいて開始ランタイム環境として動作するランタイム環境からアクターのインスタンスをインスタンス化するのに必要なデータをランタイム環境に取得させるように構成される。本処理回路は、アクターのインスタンスについての対象ランタイム環境として動作するランタイム環境の認可ポリシーが充足される場合にアクターのインスタンスを実行環境にインスタンス化させることによって、アクターのインスタンスが少なくとも１つのリソース・オブジェクトへアクセスすることを可能にするように構成される。
【００１４】
第７側面によれば、アプリケーションのアクターのインスタンスをマイグレーションするための対象ランタイム環境として動作するランタイム環境が提示される。本ランタイム環境は、開始ランタイム環境として動作するランタイム環境がアクターのインスタンスのマイグレーションのために対象ランタイム環境を選択することを可能にするセキュリティ属性を識別するように構成された識別モジュールを備える。本ランタイム環境は、識別されたセキュリティ属性に基づいて開始ランタイム環境として動作するランタイム環境からアクターのインスタンスをインスタンス化するのに必要なデータを取得するように構成された取得モジュールを備える。本ランタイム環境は、アクターのインスタンスについての対象ランタイム環境として動作するランタイム環境の認可ポリシーが充足される場合にアクターのインスタンスをインスタンス化することによって、アクターのインスタンスが少なくとも１つのリソース・オブジェクトへアクセスすることを可能にするように構成されたインスタンス化モジュールを備える。
【００１５】
第８側面によれば、アプリケーションのアクターのインスタンスをマイグレーションするためのコンピュータプログラムが提示され、本コンピュータプログラムは、対象ランタイム環境として動作するランタイム環境の処理回路で実行される場合に、第５側面による方法をランタイム環境に実行させるコンピュータプログラムコードを備える。
【００１６】
第９側面によれば、第４側面と第８側面とのうちの少なくとも１つによるコンピュータプログラムと、当該コンピュータプログラムが格納されたコンピュータ可読記憶媒体と、を備えるコンピュータプログラム製品が提示される。本コンピュータ可読記憶媒体は、非一時的コンピュータ可読記憶媒体でありうる。
【００１７】
好適に、これらの方法、これらのランタイム環境及びこれらのコンピュータプログラムは、アクターのインスタンスの効率的なマイグレーションを提供する。
【００１８】
好適に、これらの方法、これらのランタイム環境及びこれらのコンピュータプログラムは、分散アプリケーションのアクターのセキュアなマイグレーションを可能にする。分散アプリケーションのアクターのこのようなセキュアなマイグレーションは、続いて、ランタイム環境での分散アプリケーションの効率的な処理を可能にする。
【００１９】
第１側面、第２側面、第３側面、第４側面、第５側面、第６側面、第７側面、第８側面及び第９側面の任意の特徴は適切であるならば任意の他の側面に適用されてもよいことが留意される。同様に、第１側面の任意の利点は、第２側面、第３側面、第４側面、第５側面、第６側面、第７側面、第８側面及び／又は第９側面にそれぞれ等しく適用されてもよく、逆も同様である。包含される実施形態の他の目的、特徴及び利点は、以下の詳細な開示、添付の従属請求項だけでなく、図面からも明らかになるだろう。
【００２０】
一般に、特許請求の範囲で用いられるすべての用語は、本書で異なるように明示的に定義されない限り、本技術分野の通常の意味として解釈される。“要素、装置、コンポーネント、手段、ステップなど”へのすべての言及は、異なるように明示的に記載されない限り、要素、装置、コンポーネント、手段、ステップなどの少なくとも１つの例を制限なく参照すると解釈される。本書に開示される任意の方法のステップは、明示的に記載されない限り、記載されたそのままの順序で実行される必要はない。
【図面の簡単な説明】
【００２１】
添付の図面を参照しつつ、例示によって発明の概念が以下に記載される。
【図１ａ】実施形態に係る通信ネットワークを説明する概略図である。
【図１ｂ】実施形態に係るアクターのインスタンスのマイグレーションを説明する概略図である。
【図２ａ】実施形態に係るランタイム環境の機能部を示す概略図である。
【図２ｂ】実施形態に係るランタイム環境の機能モジュールを示す概略図である。
【図３】実施形態に係るコンピュータ可読手段を備えるコンピュータプログラム製品の一例を示す。
【図４】実施形態に係る方法のフローチャートである。
【図５】実施形態に係る方法のフローチャートである。
【図６】実施形態に係る方法のフローチャートである。
【図７】実施形態に係る方法のフローチャートである。
【発明を実施するための形態】
【００２２】
発明の概念の何らかの実施形態が示される添付の図面を参照して発明の概念が以下により十分に記載される。しかし、発明の概念は、多くの異なる形式で実施されてもよく、本書で説明される実施形態に限定されると解釈されるべきではない。それどころか、これらの実施形態は、この開示が完全であり、当業者に発明の概念の範囲を十分に伝えるために、例示によって提供される。同様の番号は明細書を通じて同様の要素を指す。破線で説明される任意のステップ又は機能はオプションとしてみなされるべきである。
【００２３】
図１ａは、通信ネットワーク１０を概略的に説明する。通信ネットワーク１００は、デバイス、コンピュータ・ノード及びストレージ・ノードの任意の組み合わせを表す３つのエンティティ（エンティティ１、エンティティ２、エンティティ３）１２０ａ、１２０ｂ、１２０ｃを備える。各エンティティ１２０ａ、１２０ｂ、１２０ｃは、自身のハードウェア（ＨＷ）を有してもよく、自身のオペレーティングシステム（ＯＳ）を有してもよい。これに代えて、エンティティ１２０ａ、１２０ｂ、１２０ｃのうちの少なくとも２つでハードウェア及び／又はオペレーティングシステムが共有されてもよい。
【００２４】
エンティティ１２０ａ、１２０ｂ、１２０ｃは、第１アプリケーション（アプリ１）１３０及び第２アプリケーション（アプリ２）１４０をホスティングし、これらのアプリケーションのそれぞれはエンティティ１２０ａ、１２０ｂ、１２０ｃに分散される。アプリケーション１３０、１４０は、通信ネットワーク１００にわたって透過的に分散され、アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）を備える。アクターＡ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６とエンティティ１２０ａ、１２０ｂ、１２０ｃとの間に１対１対応は存在しない。例えば、図１ａの説明例で、アクターＡ５及びＡ６は両方とも同じエンティティ１２０ｂ（すなわち、エンティティ２）に存在する。アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）は、ランタイム環境２００ａ、２００ｂ、２００ｃのうちの少なくとも１つによってリソース・オブジェクトにアクセスしてもよい。各リソース・オブジェクト１６０は、ランタイム環境２００ａ、２００ｂ、２００ｃによってアクセスが提供されるファイルシステム、センサ、アクチュエータ、ネットワーク・インタフェースなどでありうる。
【００２５】
通信ネットワーク１００は、アプリケーション１３０、１４０によって単一のプラットフォームとして見られるランタイム環境２００ａ、２００ｂ、２００ｃのネットワークの集合によって形成された分散実行環境１５０をさらに備える。
【００２６】
各アクターＡ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６は、１つ以上のインスタンス１１０として実行可能である。本書に開示される実施形態は、アプリケーションのアクターのインスタンス１１０をマイグレーションするための仕組みに関する。このような仕組みを得るために、開始ランタイム環境及び／又は対象ランタイム環境として動作するランタイム環境２００ａ、２００ｂ、２００ｃと、ランタイム環境２００ａ、２００ｂ、２００ｃによって実行される方法と、ランタイム環境２００ａ、２００ｂ、２００ｃの処理回路によって実行される場合に、ランタイム環境２００ａ、２００ｂ、２００ｃに当該方法を実行させる、例えばコンピュータプログラムの形式のコードを含むコンピュータプログラム製品と、が提供される。
【００２７】
総括的に、アクター又はアクターのインスタンス１１０は、実行ファイル、ステート、デプロイメント条件及びクレデンシャルのようなデータの集まりの任意のものとしてみることができる。この観点で、インスタンスだけがステートを有するとみなされてもよいが、アクターはステートレスであるとみなされてもよい。概念的に、デプロイメント条件及びクレデンシャルは、別個であり、アクターのインスタンス化又は実行を開始するエンティティによってアクターに適用されうる。一部のデプロイメント条件は、アクターのインスタンスがマイグレーション（プッシュ又はインスタンス化）されることが許可される対象ランタイム環境についての特定のセキュリティ属性に関連する。アクターの各インスタンスは、簡潔化のためにセキュリティ条件と呼ばれるセキュリティ属性の要求値を有する。
【００２８】
アクターのインスタンスは、アプリケーション属性と、場合によってはアクター固有セキュリティ属性と、を有しうる。このような属性の例が以下に要約される。
【００２９】
対象ランタイム・ポリシーは、対象ランタイム環境で利用可能なリソース属性及び値、例えば利用可能なセキュア個人識別番号（ＰＩＮ）コード、セキュア・ユーザ・インタフェース、セキュア・ブートなどに関する条件である。
【００３０】
デプロイメント・クレデンシャルは、アクターのインスタンスに適用されるセキュリティ属性であり、この下で、ロール、ユーザネーム及びパスワード、ドメイン証明書、アプリケーション証明書などが動作する。デプロイメント・クレデンシャルは、アプリケーション・ユーザ・クレデンシャルであってもよい。デプロイメント・クレデンシャルは、アクターのインスタンスのマイグレーションを開始するランタイム環境のクレデンシャルであってもよい。デプロイメント・クレデンシャルという名前が挙げられたが、クレデンシャルが供給される時間に何ら制限を及ぼすものではない。デプロイメント・クレデンシャルは、デプロイメント前又はデプロイメント後にも供給されうる。
【００３１】
アクター・クレデンシャルは、アクターのインスタンスの属性であり、例えば署名である。アクター・クレデンシャルの例は、アクターのデベロッパ署名であり、対応する証明書が、署名に用いられるクレデンシャルを証明する。
【００３２】
ランタイム環境は、ランタイム環境セキュリティ属性を有しうる。このような属性の例が以下に要約される。
【００３３】
アクター・ポリシーは、所与のアクターのデプロイメントと、要件に関するアクター・クレデンシャル又はアクター署名に関するランタイム環境に関する条件である。
【００３４】
ランタイム・クレデンシャルは、アクターのインスタンスを現在ホスティング中のランタイム環境のセキュリティ属性であり、ドメイン証明書、エンティティ証明書、パスワード、秘密鍵又は公開鍵、又はウェブ・オブ・トラストのような非証明ベースＰＫＩ構造でありうる。
【００３５】
リソース・オブジェクト１６０（以下参照）は、セキュリティ属性を有しうる。このような属性の例が以下に要約される。
【００３６】
アクセス・ポリシーは、アクター・インスタンスに関する条件、アクター・クレデンシャル権、デプロイメント・クレデンシャル権及びリソース・オブジェクト１６０へのランタイム・クレデンシャル権である。
【００３７】
図４及び図５は、開始ランタイム環境として動作するランタイム環境２００ａによって実行されるアプリケーションのアクターのインスタンス１１０をマイグレーションするための方法の実施形態を説明するフローチャートである。図６及び図７は、対象ランタイム環境として動作するランタイム環境２００ｂによって実行されるアプリケーションのアクターのインスタンス１１０をマイグレーションするための方法の実施形態を説明するフローチャートである。方法は、好適には、以下に示すコンピュータプログラム３２０ａ、３２０ｂとして提供される。
【００３８】
本書に開示される実施形態の少なくとも一部は、アクターのセキュリティ条件を対象ランタイム環境２００ｂに強制している間に、開始ランタイム環境２００ａがアクターのインスタンス１１０を対象ランタイム環境２００ｂへマイグレーションすることに基づき、対象ランタイム環境２００ｂは自身のセキュリティ条件をアクターに強制する。
【００３９】
全体を通じて図１ｂが並行して参照される。図１ｂの（ａ）に開始ランタイム環境２００ａ及び対象ランタイム環境２００ｂが説明され、開始ランタイム環境２００ａはアプリケーションのアクターのインスタンス１１０を保持する。
【００４０】
ある実施形態による開始ランタイム環境として動作するランタイム環境２００ａによって実行されるアプリケーションのアクターのインスタンス１１０をマイグレーションするための方法を説明する図４が以下で参照される。
【００４１】
Ｓ１０６：開始ランタイム環境２００ａは、アクターのインスタンス１１０のマイグレーションのために対象ランタイム環境２００ｂ、２００ｃの集合から対象ランタイム環境２００ｂを選択する。対象ランタイム環境２００は、対象ランタイム環境２００ｂ、２００ｃについて取得されたセキュリティ属性に基づいて選択される。このようなセキュリティ属性をどのように取得するかの例については後述する。図１ｂの（ａ）に開始ランタイム環境２００ａ及び対象ランタイム環境２００ｂが説明され、開始ランタイム環境２００ａはアクターのインスタンス１１０の（矢印１７０によって示される）マイグレーションのために対象ランタイム環境２００ｂを選択した。
【００４２】
Ｓ１０８：開始ランタイム環境２００ａは、対象ランタイム環境２００ｂを選択すると、選択された対象ランタイム環境２００ｂへアクターのインスタンス１１０をマイグレーションする。図１ｂの（ｃ）に開始ランタイム環境２００ａ及び対象ランタイム環境２００ｂが説明され、アクターのインスタンス１１０が対象ランタイム環境２００ｂへマイグレーションされている。
【００４３】
開始ランタイム環境２００ａによって実行されるアプリケーションのアクターのインスタンス１１０のマイグレーションの更なる詳細に関する実施形態が以下に開示される。
【００４４】
セキュリティ属性は、分散方式又は集中方式で取得されうる。それゆえ、ある実施形態によれば、対象ランタイム環境２００ｂ、２００ｃの集合内の対象ランタイム環境２００ｂ、２００ｃのうちの少なくとも１つの（個別の）セキュリティ属性は、対象ランタイム環境２００ｂ、２００ｃのうちの少なくとも１つから直接に取得される。別の実施形態によれば、対象ランタイム環境２００ｂ、２００ｃの集合内の対象ランタイム環境２００ｂ、２００ｃのうちの少なくとも１つのセキュリティ属性は、セキュリティ属性サービスから取得される。セキュリティ属性サービスの様々な例が存在しうる。例えば、セキュリティ属性サービスは、ランタイム環境２００ａ、２００ｂ、２００ｃのためにセキュリティ属性を管理（生成、提供、検証及び破棄のうちの少なくとも１つ）するように構成されたサービス、少なくとも１つのランタイム環境２００ａ、２００ｂ、２００ｃのセキュリティ属性を格納する集中サービス、及び／又は少なくとも１つのランタイム環境２００ａ、２００ｂ、２００ｃのセキュリティ属性を格納する分散サービスでありうる。
【００４５】
セキュリティ属性の様々な例が存在しうる。例えば、セキュリティ属性は、ユーザ認証情報、認可ポリシー、認可クレデンシャル、セキュア個人識別番号（ＰＩＮ）コードの利用可能性の情報、セキュア・ユーザ・インタフェースの利用可能性の情報、及び／又はセキュア・ブートの利用可能性の情報でありうる。
【００４６】
更なる実施形態による開始ランタイム環境として動作するランタイム環境２００ａによって実行されるアプリケーションのアクターのインスタンス１１０をマイグレーションするための方法を説明する図５が以下に参照される。図４を参照して開示されたようにステップＳ１０６及びＳ１０８が実行されることが想定される。
【００４７】
開始ランタイム環境２００ａが対象ランタイム環境２００ｂを選択する様々な方法が存在しうる。これに関する様々な実施形態が続いて以下に記載される。
【００４８】
例えば、開始ランタイム環境２００ａは、セキュリティ属性に関する情報を要求しうる。それゆえ、ある実施形態によれば、開始ランタイム環境２００ａは、対象ランタイム環境２００ｂの選択の一部としてステップＳ１０６ａを実行するように構成される。
【００４９】
Ｓ１０６ａ：開始ランタイム環境２００ａは、対象ランタイム環境２００ｂ、２００ｃの集合についてセキュリティ属性を取得する。ステップＳ１０６ａは、上記のステップＳ１０６の一部として実行されうる。よって、マイグレーションを開始する開始ランタイム環境２００ａは、まずセキュリティ属性に関する情報を要求し、次いで第１潜在的対象ランタイム環境２００ｂを選択しうる。
【００５０】
例えば、開始ランタイム環境２００ａは、対象ランタイム環境２００ｂがセキュリティ属性条件を充足することを検証しうる。それゆえ、ある実施形態によれば、開始ランタイム環境２００ａは、対象ランタイム環境２００ｂの選択の一部としてステップＳ１０６ｂを実行するように構成される。
【００５１】
Ｓ１０６ｂ：開始ランタイム環境２００ａは、選択された対象ランタイム環境２００ｂについて取得されたセキュリティ属性がアクターのインスタンス１１０のセキュリティ属性条件を充足することを検証する。ステップＳ１０６ｂは、上記のステップＳ１０６の一部として実行されうる。
【００５２】
例えば、対象ランタイム環境２００ｂとやり取りすることによって、開始ランタイム環境２００ａは、対象ランタイム環境２００ｂがセキュリティ属性条件を充足することを検証しうる。このような検証は、開始ランタイム環境２００ａがチャレンジを対象ランタイム環境２００ｂへ通信することによって行われてもよく、対象ランタイム環境２００ｂは、他のプライベート・セキュリティ属性を用いて、チャレンジへのレスポンスを導出し、レスポンスを開始ランタイム環境２００ａへ返す。それゆえ、ある実施形態によれば、開始ランタイム環境２００ａは、対象ランタイム環境２００ｂの選択の一部としてステップＳ１０６ｃを実行するように構成される。
【００５３】
Ｓ１０６ｃ：開始ランタイム環境２００ａは、選択された対象ランタイム環境２００ｂについて取得されたセキュリティ属性が対象ランタイム環境２００ｂによって正当に識別されることを検証する。ステップＳ１０６ｄは、上記のステップＳ１０６の一部として実行されうる。
【００５４】
例えば、開始ランタイム環境２００ａは、アクターのインスタンス１１０が対象ランタイム環境２００ｂへマイグレーションされる前に対象ランタイム環境２００ｂがアクターを受理しうるか部分チェックを実行しうる。それゆえ、ある実施形態によれば、開始ランタイム環境２００ａは、対象ランタイム環境２００ｂの選択の一部としてステップＳ１０６ｄを実行するように構成される。
【００５５】
Ｓ１０６ｄ：開始ランタイム環境２００ａは、選択された対象ランタイム環境２００ｂへのアクターのインスタンス１１０のマイグレーションを開始する前に、対象ランタイム環境２００ｂがアクターのインスタンス１１０のマイグレーションの開始を受理することを検証する。これは、マイグレーション成功の可能性を向上する。ステップＳ１０６ｄは、上記のステップＳ１０６の一部として実行されうる。
【００５６】
開始ランタイム環境２００ａが対象ランタイム環境２００ｂへアクターのインスタンス１１０をマイグレーションするための様々な方法が存在しうる。例えば、開始ランタイム環境２００ａは、対象ランタイム環境２００ｂへアクターのインスタンス１１０の（再）インスタンス化に必要なデータを提供しうる。それゆえ、ある実施形態によれば、開始ランタイム環境２００ａは、対象ランタイム環境２００ｂへのアクターのインスタンス１１０のマイグレーションの一部としてステップＳ１０８ａを実行するように構成される。
【００５７】
Ｓ１０８ａ：開始ランタイム環境２００ａは、選択された対象ランタイム環境２００ｂへアクターのインスタンス１１０のインスタンス化に必要なデータを提供する。ステップＳ１０８ａは、上記のステップＳ１０８の一部として実行されうる。
【００５８】
マイグレーションは、アクターのインスタンス１１０が他の対象ランタイム環境２００ｂによって以前に却下されたことの結果でありうる。それゆえ、ある実施形態によれば、ステップＳ１０６での対象ランタイム環境２００ｂの選択は、成功しなかった別の対象ランタイム環境２００ｃへのアクターのインスタンス１１０のマイグレーションに応答して実行される。
【００５９】
同様に、マイグレーションは、アクターのインスタンス１１０が開始ランタイム環境２００ａへ以前にプッシュされたがアクターのインスタンス１１０が開始ランタイム環境２００ａによってアクセスを受理されなかった結果でありうる。それゆえ、ある実施形態によれば、開始ランタイム環境２００ａは、ステップＳ１０２及びＳ１０４を実行するように構成される。
【００６０】
Ｓ１０２：開始ランタイム環境２００ａは、別の開始ランタイム環境２００ｃからインスタンス１１０のマイグレーションとしてアクターのインスタンス１１０を取得する。アクターのインスタンス１１０を取得すると、開始ランタイム環境２００ａは、ステップＳ１０４を実行する。
【００６１】
Ｓ１０４：開始ランタイム環境２００ａは、アクターのインスタンス１１０についての開始ランタイム環境２００ａの認可ポリシーが充足されないことを判定する。次いで、それに応答してステップＳ１０６の対象ランタイム環境の選択が実行される。それゆえ、アクターの同じインスタンス１１０についてステップｓ１０６の前にステップＳ１０２及びＳ１０４が実行される。
【００６２】
ある実施形態による対象ランタイム環境として動作するランタイム環境２００ｂによって実行されるアプリケーションのアクターのインスタンス１１０をマイグレーションするための方法を説明する図６が以下に参照される。
【００６３】
Ｓ２０２：対象ランタイム環境２００ｂは、開始ランタイム環境２００ａがアクターのインスタンス１１０のマイグレーションのために対象ランタイム環境２００ｂを選択することを可能にするセキュリティ属性を識別する。
【００６４】
Ｓ２０４：対象ランタイム環境２００ｂは、開始ランタイム環境２００ａからアクターのインスタンス１１０をインスタンス化するのに必要なデータを取得する。取得されるデータは、識別されたセキュリティ属性に基づく。
【００６５】
Ｓ２０６：対象ランタイム環境２００ｂは、アクターのインスタンス１１０についての対象ランタイム環境２００ｂの認可ポリシーが充足される場合にアクターのインスタンス１１０をインスタンス化する。それによって、対象ランタイム環境２００ｂは、アクターのインスタンス１１０が少なくとも１つのリソース・オブジェクト１６０へアクセスすることを可能にする。
【００６６】
対象ランタイム環境２００ｂによって実行されるアプリケーションのアクターのインスタンス１１０のマイグレーションの更なる詳細に関する実施形態が以下に開示される。
【００６７】
認可ポリシーの様々な例が存在しうる。ある例によれば、認可ポリシーは、どのアクターか、少なくとも１つのリソース・オブジェクト１６０のうちのどれか、及びアクターが対象ランタイム環境２００ｂの少なくとも１つのリソース・オブジェクト１６０へアクセスするために充足される必要がある動作属性はどれかを規定する。
【００６８】
リソース・オブジェクト１６０の様々な例が存在しうる。各リソース・オブジェクト１６０は、センサ、アクチュエータ、プロセッシング、カメラ、ネットワーク・インタフェース、メッセージ・サービス、ストレージ、データベース、顔認識サービス／モジュール、パターン・マッチング・サービス／モジュール、分析サービス／モジュール、ソルバー・サービス／モジュールなどのようなリソースを表すインタフェースでありうる。
【００６９】
更なる実施形態による対象ランタイム環境として動作するランタイム環境２００ｂによって実行されるアプリケーションのアクターのインスタンス１１０をマイグレーションするための方法を説明する図７が以下に参照される。図６を参照して開示されたようにステップＳ２０２、Ｓ２０４及びＳ２０６が実行されることが想定される。
【００７０】
上述のように、ステップＳ２０６で、対象ランタイム環境２００ｂは、アクターのインスタンス１１０についての対象ランタイム環境２００ｂの認可ポリシーが充足される場合にアクターのインスタンス１１０をインスタンス化する。アクターのインスタンス１１０についての対象ランタイム環境２００ｂの認可ポリシーが充足されるか否かを対象ランタイム環境２００ｂが判定するための様々な方法が存在しうる。これに関する様々な実施形態が順に以下に記載される。
【００７１】
例えば、認可ポリシーによって要求されるならば、対象ランタイム環境２００ｂは、アクターのインスタンス１１０が真正であることを検証しうる。これを行うために、対象ランタイム環境２００ｂは、ある実施形態によれば、ステップＳ２０６ａを実行するように構成される。
【００７２】
Ｓ２０６ａ：対象ランタイム環境２００ｂは、認可ポリシーに従って、アクターのインスタンス１１０をインスタンス化するのに必要なデータの真正性を検証する。ステップＳ２０６ａは、上記のステップＳ２０６の一部として実行されうる。これを行うために、対象ランタイム環境２００ｂは、アクターのインスタンス１１０をインスタンス化するのに必要なデータが、対象ランタイム環境２００ｂが受理するクレデンシャルで署名されているかをチェックしうる。
【００７３】
例えば、対象ランタイム環境２００ｂによって要求されるならば、アクターは、要求される属性の正当なオーナーシップを証明することをチャレンジされる。これを行うために、対象ランタイム環境２００ｂは、ある実施形態によれば、ステップＳ２０６ｂを実行するように構成される。
【００７４】
Ｓ２０６ｂ：対象ランタイム環境２００ｂは、アクターのインスタンス１１０をインスタンス化するのに必要なデータから、要求される属性のオーナーシップを検証する。ステップＳ２０６ｂは、上記のステップＳ２０６の一部として実行されうる。
【００７５】
ステップＳ２０６ｂでの検証は、開始ランタイム環境２００ａ、又はエンティティ・クレデンシャルの保護及び認証に責任を有する開始ランタイム環境２００ａに存在する同じアプリケーションのアクターとのやり取りを伴ってもよい。これを行うために、対象ランタイム環境２００ｂは、ある実施形態によれば、ステップＳ２０６ｃを実行するように構成される。
【００７６】
Ｓ２０６ｃ：対象ランタイム環境２００ｂは、インスタンス化するランタイム環境２００ａと認証検証を実行する。ステップＳ２０６ｃは、上記のステップＳ２０６の一部として実行されうる。チャレンジは、例えばエンティティがチャレンジを認証及び署名し、レスポンスを返すことでありうる。このような認証検証の１つの非限定的な例は、対象ランタイム環境２００ｂとインスタンス化するランタイム環境２００ａとの間で実行されてもよい暗号化チャレンジ−レスポンス認証である。
【００７７】
何らかのセキュリティ条件認証が失敗したならば、アクターは対象ランタイム環境２００ｂでの実行をブロックされてもよく、開始ランタイム環境２００ａ又は対象ランタイム環境２００ｂの何れかは、以下のように、アクターのインスタンス１１０を新たな対象ランタイム環境２００ｃへマイグレーションするための新たな試行を開始する。
【００７８】
それゆえ、ある実施形態によれば、アクターのインスタンス１１０は、検証ステップＳ２０６ａ、Ｓ２０６ｂ、Ｓ２０６ｃの何れかが失敗した場合に、対象ランタイム環境２００ｂでの実行をブロックされる。
【００７９】
さらに、リソース・オブジェクト１６０へのアクセスは、認可ポリシーが充足されない場合にブロックされうる。それゆえ、ある実施形態によれば、対象ランタイム環境２００ｂは、ステップＳ２０８を実行するように構成される。
【００８０】
Ｓ２０８：対象ランタイム環境２００ｂは、認可ポリシーが充足されない場合に、アクターのインスタンス１１０が少なくとも１つのリソース・オブジェクト１６０へアクセスすることを阻止する。ステップＳ２０８は、ステップＳ２０６の後に実行されうる。
【００８１】
アクターのインスタンス１１０のマイグレーション失敗が発生すると及び／又はアクターのインスタンス１１０が少なくとも１つのリソース・オブジェクト１６０へのアクセスを阻止された場合に対象ランタイム環境２００ｂが動作する様々な方法が存在しうる。ある実施形態によれば、対象ランタイム環境２００ｂは、開始ランタイム環境２００ａにマイグレーション失敗／ブロックを知らせ、それゆえステップＳ２１０を実行する。
【００８２】
Ｓ２１０：対象ランタイム環境２００ｂは、アクターのインスタンス１１０の実行をブロックしたこと又はアクターのインスタンス１１０が少なくとも１つのリソース・オブジェクト１６０へアクセスすることを阻止したことに応答して、アクターのインスタンス１１０のマイグレーション失敗を開始ランタイム環境２００ａに通知する。ステップＳ２１０は、ステップＳ２０８の後に実行されうる。図１ｂの（ｄ）に開始ランタイム環境２００ａ及び対象ランタイム環境２００ｂが説明され、対象ランタイム環境２００ｂは（矢印１７０によって示されるように）アクターのインスタンス１１０のマイグレーション失敗を開始ランタイム環境２００ａに通知した。
【００８３】
ある実施形態によれば、対象ランタイム環境２００ｂは、新たなランタイム環境２００ｃのためにアクターのインスタンス１１０のマイグレーション試行を開始し、それゆえステップＳ２１２及びＳ２１４を実行する。
【００８４】
Ｓ２１２：対象ランタイム環境２００ｂは、他の対象ランタイム環境２００ｃの集合について取得されたセキュリティ属性に基づいて、アクターのインスタンス１１０のマイグレーションのために対象ランタイム環境２００ｃの集合から別の対象ランタイム環境２００ｃを選択する。図１ｂの（ｅ）に開始ランタイム環境２００ａ、対象ランタイム環境２００ｂ及び別の対象ランタイム環境２００ｃが説明され、対象ランタイム環境２００ｂはアクターのインスタンス１１０の（矢印１７０によって示される）（更なる）マイグレーションのためにこの別の対象ランタイム環境２００ｃを選択した。
【００８５】
Ｓ２１４：対象ランタイム環境２００ｂは、アクターのインスタンス１１０の実行をブロックしたことに応答してこの別の対象ランタイム環境２００ｃを選択すると、選択された別の対象ランタイム環境２００ｃへアクターのインスタンス１１０をマイグレーションするＳ２１４。
【００８６】
よって、ステップＳ２１２及びＳ２１４は上述のステップＳ１０６及びＳ１０８と同様であるが、ステップＳ２１２及びＳ２１４は、選択された対象ランタイム環境として別の対象ランタイム環境２００ｃとともに対象ランタイム環境２００ｂによって実行される。当業者が理解するように、対象ランタイム環境２００ｂは、アクターをインスタンス化するのに必要な取得されたデータからアクターをインスタンス化していなくてもよく、それゆえアクターをインスタンス化するのに必要な取得されたデータを直接に用いてアクター１１０のインスタンスをマイグレーションしてもよい。
【００８７】
大まかに言うと、アクターのインスタンス１１０がマイグレーションされることを対象ランタイム環境２００ｂが却下するならば、対象ランタイム環境２００ｂ又は開始ランタイム環境２００ｃの何れかが新たな対象ランタイム環境２００ｃへ向けたアクターのインスタンス１１０の新たなマイグレーションを開始しうる。例えば、開始ランタイム環境２００ａは、その後、以前の情報収集からの結果を反復又は再利用し、アクターのインスタンス１１０の対象ランタイム環境となる別の対象ランタイム環境２００ｂを選択し、マイグレーション試行をやり直す。図１ｂの（ｆ）に開始ランタイム環境２００ａ、対象ランタイム環境２００ｂ及び別の対象ランタイム環境２００ｃが説明され、開始ランタイム環境２００ａはアクターのインスタンス１１０の（矢印１７０によって示される）マイグレーションのために別の対象ランタイム環境２００ｃを選択した。
【００８８】
上述のように、開始ランタイム環境２００ａは、取得されたセキュリティ属性に基づいて対象ランタイム環境２００ｂを選択する。これを行うために、開始ランタイム環境２００ａは、対象ランタイム環境２００ｂのポリシーがデプロイメント・クレデンシャル及びランタイム環境クレデンシャルと組み合わせされることを強制し、その結果として、アクターのインスタンス１１０が対象ランタイム環境２００ｂへマイグレーションされる前に対象ランタイム環境２００ｂに関する要件が充足される。このような要件の例は、セキュリティ能力、（セキュア・ブートの認証のような）セキュリティ・アシュアランス、及びランタイム環境オーナーシップが既知の信頼されたパーティーを有することである。
【００８９】
開始ランタイム環境２００ａと対象ランタイム環境２００ｂとの間の信頼関係は、公開鍵基盤（ＰＫＩ）を介して確立されてもよく、すなわち証明書構造が別のランタイム環境を信頼する方法を表現する。各ランタイム環境２００ａ、２００ｂは、共通の認証局（ＣＡ）を共有してもよいし、ＣＡ間の信頼が相互認証によって確立されてもよい。このようなＰＫＩを用いて、ランタイム環境２００ａ、２００ｂは、上述のステップＳ１０６ｃのように互いに認証し、共有暗号鍵を確立し、例えばトランスポート層セキュリティ（ＴＬＳ）プロトコル、データグラム・トランスポート層セキュリティ（ＤＴＬＳ）プロトコルを介して又はオブジェクト・セキュリティ・プロトコルを用いてセキュアに通信できる。
【００９０】
アプリケーション属性は、このような信頼関係が確立されうることを要求してもよいが、対象ランタイム環境２００ｂが固有のＣＡを有すること、又はさらには特定されたデバイスの集合のメンバーであることを要求してもよい。上述のように、他のセキュリティ属性はセキュア・コンピューティング属性である。アプリケーションのインスタンス１１０は、対象ランタイム環境２００ｂがセキュアなメジャード・ブートを実行したことの検証可能な証明を要求してもよい。トラステッド・エクゼキューション・エンバイロンメント、トラステッド・プラットフォーム・モジュール、スマートカード、トラステッド・ユーザ入出力のサポート、セキュア・ビデオ／オーディオ・パスの利用可能性は、使用されうる属性の他の例である。
【００９１】
対象ランタイム環境２００ｂに関する要件が充足されたと開始ランタイム環境２００ａがみなした場合に、開始ランタイム環境２００ａは、アクターのインスタンス１１０を対象ランタイム環境２００ｂへマイグレーションする。対象ランタイム環境２００ｂは、クレデンシャルと組み合わせた自身のアクター・ポリシー及びアクセス・ポリシーがアクターのマイグレーションされたインスタンス１１０によって充足されることを強制する。このような要件の例は、ユーザ認証及び認可、署名されたコードに関する要件であるが、動作に関連する属性や、アクターのインスタンス１１０が実行される環境、例えば日時であってもよい。セキュリティ・ポリシーは、対象ランタイム環境２００ｂによって提供されるリソース・オブジェクト１６０で要求された動作をアクターのインスタンス１１０が実行するために、主体、リソース・オブジェクト１６０、環境及び動作のどの属性が充足されなければならないかを記載する。これに関して、主体は、アプリケーションを実行する責任があるエンティティ、通常はユーザ又は組織のコンピュータ化された表現である。主体属性は、ユーザ・アイデンティティを記載するために用いられる。アイデンティティは、ランタイム環境リソースへのアクセス権に関連してもよい。これは、ユーザネーム、グループ及びロール・メンバーシップの形式であってもよいが、暗号鍵又はパスワードの所有であってもよい。例えば、上述のように、暗号化チャレンジ・レスポンス手続き又はゼロ知識証明プロトコルを介して所有により証明されうる暗号鍵にアクターのインスタンス１１０が関連することをランタイム環境２００ａ、２００ｂ、２００ｃが保証することで十分であってもよい。ポリシーは、ユーザの識別及び認証に関する要件、ユーザにアクセス可能なリソース、及びアクター及びアプリケーションを署名することが可能なエンティティに関する要件を列挙してもよい。
【００９２】
図２ａは、複数の機能部の観点で、ある実施形態によるランタイム環境２００ａ、２００ｂ、２００ｃのコンポーネントを概略的に説明する。側面によれば、ランタイム環境２００ａ、２００ｂ、２００ｃは、開始ランタイム環境２００ａ及び対象ランタイム環境２００ｂの両方として動作するように構成される。
【００９３】
処理回路２１０は、例えば記憶媒体２３０の形式の（図４のような）コンピュータプログラム製品３１０ａに格納されたソフトウェア命令を実行可能な適切な中央処理ユニット（ＣＰＵ）、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）などのうちの１つ以上の任意の組み合わせを用いて提供される。処理回路２１０はさらに、少なくとも１つの特定用途向け集積回路（ＡＳＩＣ）又はフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）として提供されてもよい。
【００９４】
特に、処理回路２１０は、上述の動作の集合、すなわちステップＳ１０２〜Ｓ１０８、Ｓ２０２〜Ｓ２１４をランタイム環境２００ａ、２００ｂ、２００ｃに実行させるように構成される。例えば、記憶媒体２３０は動作の集合を格納してもよく、処理回路２１０はランタイム環境２００ａ、２００ｂ、２００ｃに動作の集合を実行させるために記憶媒体２３０から動作の集合を読み出してもよい。動作の集合は、実行可能命令の集合として提供されてもよい。よって、処理回路２１０は、それによって、本書に開示されるような方法を実行するように構成される。
【００９５】
記憶媒体２３０はまた、例えば磁気メモリ、光学メモリ、固体メモリ又はリモートに搭載されたメモリの任意の単体又は組み合わせでありうる永続ストレージを備えてもよい。
【００９６】
ランタイム環境２００ａ、２００ｂ、２００ｃは、少なくとも別のランタイム環境２００ａ、２００ｂ、２００ｃと通信するための通信インタフェース２２０を更に備えてもよい。このようなものとして、通信インタフェース２２０は、例えば１つ以上の送信機及び受信機を備えてもよく、アナログ及びデジタル・コンポーネントと、無線通信のための適切な個数のアンテナと、有線通信のためのポートとを備えてもよい。
【００９７】
処理回路２１０は、例えばデータ及び制御信号を通信インタフェース２２０及び記憶媒体２３０へ送信することによって、通信インタフェース２２０からデータ及びレポートを受信することによって、及び記憶媒体２３０からデータ及び命令を読み出すことによって、ランタイム環境２００ａ、２００ｂ、２００ｃの一般的な動作を制御する。ランタイム環境２００ａ、２００ｂ、２００ｃの関連機能とともに他のコンポーネントは、本書で提示される概念を曖昧にしないために省略される。
【００９８】
図２ｂは、複数の機能モジュールの観点で、ある実施形態によるランタイム環境２００ａ、２００ｂ、２００ｃのコンポーネントを概略的に説明する。図２ｂのランタイム環境２００ａ、２００ｂ、２００ｃは、複数の機能モジュールを備える。
【００９９】
ランタイム環境が開始ランタイム環境２００ａとして動作するために、ランタイム環境は、ステップＳ１０６を実行するように構成された選択モジュール２１０ａと、ステップＳ１０８を実行するように構成されたマイグレーション・モジュール２１０ｂと、を備える。開始ランタイム環境２００ａとして動作する図２ｂのランタイム環境は、ステップＳ１０６ａを実行するように構成された取得モジュール２１０ｃと、ステップＳ１０６ｂを実行するように構成された検証モジュール２１０ｄと、ステップＳ１０６ｃを実行するように構成された検証モジュール２１０ｅと、ステップＳ１０６ｄを実行するように構成された検証モジュール２１０ｆと、ステップＳ１０８ａを実行するように構成された提供モジュール２１０ｇと、ステップＳ１０２を実行するように構成された取得モジュール２１０ｈと、ステップＳ１０４を実行するように構成された判定モジュール２１０ｊと、のいずれかのような複数の動作機能モジュールを更に備えてもよい。
【０１００】
ランタイム環境が対象ランタイム環境２００ｂとして動作するために、ランタイム環境は、ステップＳ２０２を実行するように構成された識別モジュール２１０ｋと、ステップＳ２０４を実行するように構成された取得モジュール２１０ｍと、ステップＳ２０６を実行するように構成されたインスタンス化モジュール２１０ｎと、を備える。開始ランタイム環境２００ｂとして動作する図２ｂのランタイム環境は、ステップＳ２０６ａを実行するように構成された検証モジュール２１０ｐと、ステップＳ２０６ｂを実行するように構成された検証モジュール２１０ｑと、ステップＳ２０６ｃを実行するように構成された認証検証モジュール２１０ｒと、ステップＳ２０８を実行するように構成された阻止モジュール２１０ｓと、ステップＳ２１０を実行するように構成された通知モジュール２１０ｔと、ステップＳ２１２を実行するように構成された選択モジュール２１０ｕと、ステップＳ２１４を実行するように構成されたマイグレーション・モジュール２１０ｗと、のいずれかのような複数の動作機能モジュールを更に備えてもよい。
【０１０１】
大まかに言えば、各機能モジュール２１０ａ〜２１０ｗは、ハードウェア又はソフトウェアで実装されてもよい。好適に、１つ以上又はすべての機能モジュール２１０ａ〜２１０ｗは、場合によっては機能部２２０及び／又は２３０と連携して、処理回路２１０によって実行されてもよい。よって、処理回路２１０は、機能モジュール２１０ａ〜２１０ｗによって提供されるような命令を記憶媒体２３０からフェッチし、これらの命令を実行することによって、以下に開示される任意のステップを実行するように構成されてもよい。
【０１０２】
図３は、コンピュータ可読手段３３０を備えるコンピュータプログラム製品３１０ａ、３１０ｂの一例を示す。このコンピュータ可読手段３３０にコンピュータプログラム３２０ａが格納されてもよく、コンピュータプログラム３２０ａは、処理回路２１０、及び通信インタフェース２２０や記憶媒体２３０のようなこれに動作可能に結合されたエンティティ及びデバイスに、本書に記載された実施形態に従う方法を実行させうる。コンピュータプログラム３２０ａ及び／又はコンピュータプログラム製品３１０ａは、よって、本書に開示される開始ランタイム環境として動作するランタイム環境２００ａの任意のステップを実行するための手段を提供してもよい。このコンピュータ可読手段３３０にコンピュータプログラム３２０ｂが格納されてもよく、コンピュータプログラム３２０ｂは、処理回路３１０、及び通信インタフェース３２０や記憶媒体３３０のようなこれに動作可能に結合されたエンティティ及びデバイスに、本書に記載された実施形態に従う方法を実行させうる。コンピュータプログラム３２０ｂ及び／又はコンピュータプログラム製品３１０ｂは、よって、本書に開示される対象ランタイム環境として動作するランタイム環境２００ｂの任意のステップを実行するための手段を提供してもよい。
【０１０３】
図３の例で、コンピュータプログラム製品３１０ａ、３１０ｂは、ＣＤ（コンパクトディスク）又はＤＶＤ（デジタル多目的ディスク）又はブルーレイディスクのような光学ディスクとして説明される。コンピュータプログラム製品３１０ａ、３１０ｂはまた、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）又は電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）のようなメモリとして実施されてもよく、より具体的にＵＳＢ（ユニバーサルシリアルバス）メモリのような外部メモリ又はコンパクトフラッシュメモリのようなフラッシュメモリ内のデバイスの不揮発性記憶媒体として実施されてもよい。よって、コンピュータプログラム３２０ａ、３２０ｂは本書で図示された光学ディスク上のトラックとして概略的に示されるが、コンピュータプログラム３２０ａ、３２０ｂはコンピュータプログラム製品３１０ａ、３１０ｂに適切な任意の方法で格納されうる。
【０１０４】
発明の概念が主に少数の実施形態を参照して上述されてきた。しかし、当業者に容易に理解されるように、上述されたもの以外の実施形態が、添付の特許請求の範囲によって規定される発明の概念の範囲内で等しく可能である。
【図１ａ】
2019507920.tif 000003
【図１ｂ】
2019507920.tif 000004
【図２ａ】
2019507920.tif 000005
【図２ｂ】
2019507920.tif 000006
【図３】
2019507920.tif 000007
【図４】
2019507920.tif 000008
【図５】
2019507920.tif 000009
【図６】
2019507920.tif 000010
【図７】
2019507920.tif 000011
【手続補正書】
【提出日】平成30年10月10日(2018.10.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）のインスタンス（１１０）をマイグレーションするための方法であって、前記方法は開始ランタイム環境（２００ａ）によって実行され、前記方法は、
対象ランタイム環境（２００ｂ、２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｂ、２００ｃ）の前記集合から対象ランタイム環境（２００ｂ）を選択すること（Ｓ１０６）と、
前記対象ランタイム環境（２００ｂ）を選択すると、前記選択された対象ランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をマイグレーションすること（Ｓ１０８）と、を有する方法。
【請求項２】
請求項１に記載の方法であって、前記対象ランタイム環境（２００ｂ）を選択することは、
対象ランタイム環境（２００ｂ、２００ｃ）の前記集合について前記セキュリティ属性を取得すること（Ｓ１０６ａ）を含む、方法。
【請求項３】
請求項１に記載の方法であって、前記対象ランタイム環境（２００ｂ）を選択することは、
前記選択された対象ランタイム環境（２００ｂ）についての前記取得されたセキュリティ属性が前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のセキュリティ属性条件を充足することを検証すること（Ｓ１０６ｂ）を含む、方法。
【請求項４】
請求項１に記載の方法であって、前記対象ランタイム環境（２００ｂ）を選択することは、
前記選択された対象ランタイム環境（２００ｂ）についての前記取得されたセキュリティ属性が前記対象ランタイム環境（２００ｂ）によって正当に識別されることを検証すること（Ｓ１０６ｃ）を含む、方法。
【請求項５】
請求項１に記載の方法であって、前記対象ランタイム環境（２００ｂ）を選択することは、
前記選択された対象ランタイム環境（２００ｂ）への前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションを開始する前に、前記対象ランタイム環境（２００ｂ）への前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションの開始を受理することを検証すること（Ｓ１０６ｄ）を含む、方法。
【請求項６】
請求項１に記載の方法であって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をマイグレーションすることは、
前記選択された対象ランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを提供すること（Ｓ１０８ａ）を含む、方法。
【請求項７】
請求項１に記載の方法であって、
別の開始ランタイム環境から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションとして前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）を取得すること（Ｓ１０２）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）についての前記開始ランタイム環境（２００ａ）の認可ポリシーが充足されないことを判定すること（Ｓ１０４）であって、前記対象ランタイム環境を選択することはこれに応答して実行される、ことと、を更に有する方法。
【請求項８】
請求項１に記載の方法であって、前記対象ランタイム環境を選択することは、別の対象ランタイム環境への前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションが成功しなかったことに応答して実行される、方法。
【請求項９】
請求項１に記載の方法であって、対象ランタイム環境（２００ｂ、２００ｃ）の前記集合内の前記対象ランタイム環境（２００ｂ、２００ｃ）のうちの少なくとも１つの前記セキュリティ属性は、前記対象ランタイム環境（２００ｂ、２００ｃ）のうちの前記少なくとも１つから直接に取得される、方法。
【請求項１０】
請求項１に記載の方法であって、対象ランタイム環境（２００ｂ、２００ｃ）の前記集合内の前記対象ランタイム環境（２００ｂ、２００ｃ）のうちの少なくとも１つの前記セキュリティ属性は、セキュリティ属性サービスから取得される、方法。
【請求項１１】
請求項１に記載の方法であって、前記セキュリティ属性は、ユーザ認証情報と、認可ポリシーと、認可クレデンシャルと、セキュア個人識別番号、ＰＩＮ、コードの利用可能性の情報と、セキュア・ユーザ・インタフェースの利用可能性の情報と、セキュア・ブートの利用可能性の情報と、のうちの少なくとも１つを含む、方法。
【請求項１２】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）のインスタンス（１１０）をマイグレーションするための方法であって、前記方法は対象ランタイム環境（２００ｂ）によって実行され、前記方法は、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションのために開始ランタイム環境（２００ａ）が前記対象ランタイム環境を選択することを可能にするセキュリティ属性を識別すること（Ｓ２０２）と、
前記識別されたセキュリティ属性に基づいて、前記開始ランタイム環境（２００ａ）から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを取得すること（Ｓ２０４）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）についての前記対象ランタイム環境（２００ｂ）の認可ポリシーが充足される場合に前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化すること（Ｓ２０６）によって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）が少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを可能にすることと、を有する方法。
【請求項１３】
請求項１２に記載の方法であって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化することは、
前記認可ポリシーに従って、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要な前記データの真正性を検証すること（Ｓ２０６ａ）を含む、方法。
【請求項１４】
請求項１２に記載の方法であって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化することは、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要な前記データから要求された属性のオーナーシップを検証すること（Ｓ２０６ｂ）を含む、方法。
【請求項１５】
請求項１４に記載の方法であって、前記要求された属性のオーナーシップを検証することは、
前記開始ランタイム環境（２００ａ）との認証検証を実行すること（Ｓ２０６ｃ）を含む、方法。
【請求項１６】
請求項１３、１４及び１５の何れか１項に記載の方法であって、前記検証の何れかが失敗した場合に、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）は前記対象ランタイム環境（２００ｂ）での実行をブロックされる、方法。
【請求項１７】
請求項１２に記載の方法であって、
前記認可ポリシーが充足されない場合に、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）が前記少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを阻止すること（Ｓ２０８）を更に有する方法。
【請求項１８】
請求項１６又は１７に記載の方法であって、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）の実行をブロックしたこと又は前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）が前記少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを阻止したことに応答して、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーション失敗を前記開始ランタイム環境（２００ａ）に通知すること（Ｓ２１０）を更に有する方法。
【請求項１９】
請求項１６又は１７に記載の方法であって、
他の対象ランタイム環境（２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｃ）の前記集合から別の対象ランタイム環境（２００ｃ）を選択すること（Ｓ２１２）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）の実行をブロックしたことに応答して前記別の対象ランタイム環境（２００ｃ）を選択すると、前記選択された別の対象ランタイム環境（２００ｃ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をマイグレーションすること（Ｓ２１４）と、を更に有する方法。
【請求項２０】
請求項１２に記載の方法であって、前記認可ポリシーは、どのアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）か、前記少なくとも１つのリソース・オブジェクト（１６０）のうちのどれか、及びアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）が前記対象ランタイム環境（２００ｂ）の少なくとも１つのリソース・オブジェクト（１６０）へアクセスするために充足される必要がある動作属性はどれかを規定する、方法。
【請求項２１】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）のインスタンス（１１０）をマイグレーションするための開始ランタイム環境として動作するランタイム環境（２００ａ）であって、前記ランタイム環境は処理回路（２１０）を備え、前記処理回路は、前記ランタイム環境（２００ａ）に、
対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の前記集合から対象ランタイム環境（２００ｂ）として動作するランタイム環境（２００ｂ）を選択することと、
対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）を選択すると、対象ランタイム環境（２００ｂ）として動作する前記選択されたランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をマイグレーションすることと、を行わせるように構成される、ランタイム環境。
【請求項２２】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）のインスタンス（１１０）をマイグレーションするための開始ランタイム環境として動作するランタイム環境（２００ａ）であって、
対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の前記集合から対象ランタイム環境（２００ｂ）として動作するランタイム環境（２００ｂ）を選択するように構成された選択モジュール（２１０ａ）と、
対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）を選択すると、対象ランタイム環境（２００ｂ）として動作する前記選択されたランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をマイグレーションするように構成されたマイグレーション・モジュール（２１０ｂ）と、を備えるランタイム環境。
【請求項２３】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）のインスタンス（１１０）をマイグレーションするための対象ランタイム環境として動作するランタイム環境（２００ｂ）であって、前記ランタイム環境は処理回路（２１０）を備え、前記処理回路は、前記ランタイム環境（２００ｂ）に、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションのために開始ランタイム環境（２００ａ）として動作するランタイム環境（２００ａ）が前記対象ランタイム環境（２００ｂ）を選択することを可能にするセキュリティ属性を識別することと、
前記識別されたセキュリティ属性に基づいて、開始ランタイム環境（２００ａ）として動作する前記ランタイム環境（２００ａ）から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを取得することと、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）についての対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）の認可ポリシーが充足される場合に前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化することによって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）が少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを可能にすることと、を行わせるように構成される、ランタイム環境。
【請求項２４】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）のインスタンス（１１０）をマイグレーションするための対象ランタイム環境として動作するランタイム環境（２００ｂ）であって、前記ランタイム環境は、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションのために開始ランタイム環境（２００ａ）として動作するランタイム環境（２００ａ）が前記対象ランタイム環境（２００ｂ）を選択することを可能にするセキュリティ属性を識別するように構成された識別モジュール（２１０ｋ）と、
前記識別されたセキュリティ属性に基づいて、開始ランタイム環境（２００ａ）として動作する前記ランタイム環境（２００ａ）から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを取得するように構成された取得モジュール（２１０ｍ）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）についての対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）の認可ポリシーが充足される場合に前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化することによって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）が少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを可能にするように構成されたインスタンス化モジュール（２１０ｎ）と、を備えるランタイム環境。
【請求項２５】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）のインスタンス（１１０）をマイグレーションするためのコンピュータプログラム（３２０ａ）であって、前記コンピュータプログラムは、開始ランタイム環境として動作するランタイム環境（２００ａ）の処理回路（２１０）で実行される場合に、前記ランタイム環境（２００ａ）に、
対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の集合について取得されたセキュリティ属性に基づいて、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションのために対象ランタイム環境（２００ｂ、２００ｃ）として動作するランタイム環境（２００ｂ、２００ｃ）の前記集合から対象ランタイム環境（２００ｂ）として動作するランタイム環境（２００ｂ）を選択すること（Ｓ１０６）と、
対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）を選択すると、対象ランタイム環境（２００ｂ）として動作する前記選択されたランタイム環境（２００ｂ）へ前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をマイグレーションすること（Ｓ１０８）と、を行わせるプログラムコードを有する、コンピュータプログラム。
【請求項２６】
アプリケーション（１３０、１４０）のアクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）のインスタンス（１１０）をマイグレーションするためのコンピュータプログラム（３２０ａ）であって、前記コンピュータプログラムは、対象ランタイム環境として動作するランタイム環境（２００ｂ）の処理回路（２１０）で実行される場合に、前記ランタイム環境（２００ｂ）に、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）のマイグレーションのために開始ランタイム環境（２００ａ）として動作するランタイム環境（２００ａ）が前記対象ランタイム環境（２００ｂ）を選択することを可能にするセキュリティ属性を識別すること（Ｓ２０２）と、
前記識別されたセキュリティ属性に基づいて、開始ランタイム環境（２００ａ）として動作する前記ランタイム環境（２００ａ）から前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化するのに必要なデータを取得すること（Ｓ２０４）と、
前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）についての対象ランタイム環境（２００ｂ）として動作する前記ランタイム環境（２００ｂ）の認可ポリシーが充足される場合に前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）をインスタンス化すること（Ｓ２０６）によって、前記アクター（Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６）の前記インスタンス（１１０）が少なくとも１つのリソース・オブジェクト（１６０）にアクセスすることを可能にすることと、を行わせるように構成される、コンピュータプログラム。
【請求項２７】
請求項２５又は２６に記載のコンピュータプログラム（３２０ａ、３２０ｂ）を格納したコンピュータ可読記憶媒体（３３０）。
【国際調査報告】
2019507920.tif 000012
2019507920.tif 000013