(57)【特許請求の範囲】
【請求項１】
データ処理システム内に短期間のセキュア区画を構成するためのコンピュータ実装方法であって、
セキュア・アプリケーション用の短期間のセキュア区画を作成するためのコマンドを受信すること、
前記データ処理システム内に前記短期間のセキュア区画を作成することであって、前記短期間のセキュア区画へは、スーパユーザまたは他のアプリケーションによるアクセスが不可能である、作成すること、
物理リソースおよび前記物理リソースの仮想割り振りを含むシステム・リソースを、前記短期間のセキュア区画に割り振ること、および
前記セキュア・アプリケーションを実行するために必要なハードウェアおよびソフトウェアのコンポーネントを、前記短期間のセキュア区画にロードすること、
を含む、コンピュータ実装方法。
【請求項２】
前記短期間のセキュア・アプリケーションがその処理を完了することに応答して、前記短期間のセキュア区画およびシステム・リソースに割り振られたスペースを解放すること、をさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記受信、作成、割り振り、ロード、および解放の諸ステップが、ハードウェア管理コンソールによって実行される、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記短期間のセキュア区画に割り振られたスペースを解放することが、前記短期間のセキュア区画を前記ハードウェア管理コンソール上の区画構成から除去することを含む、請求項３に記載のコンピュータ実装方法。
【請求項５】
前記ハードウェア管理コンソールが、区画管理ファームウェアからのシステム呼び出しの受信に応答して、前記短期間のセキュア区画およびシステム・リソースに割り振られた前記スペースを解放する、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記短期間のセキュア区画を作成することが、
前記セキュア・アプリケーション用に事前に定義された区画構成が存在する旨の決定に応答して、前記短期間のセキュア区画を作成すること、および前記事前に定義された区画構成内に指定されたシステム・リソースを割り振ること、
前記セキュア・アプリケーション用に事前に定義された区画構成が存在しない旨の決定に応答して、前記短期間のセキュア区画を作成すること、および使用可能なシステム・リソースを前記短期間のセキュア区画に割り振ること、
をさらに含む、請求項１から請求項５のいずれか一項に記載のコンピュータ実装方法。
【請求項７】
前記システム・リソースが、インターネット・プロトコル・アドレス、メモリ、中央処理ユニット、またはネットワーク・アダプタのうちの少なくとも１つを含む、請求項１から請求項６のいずれか一項に記載のコンピュータ実装方法。
【請求項８】
セキュア・アプリケーション用に短期間のセキュア区画を作成するための前記コマンドが、区画管理ファームウェアから受信される、請求項１から請求項７のいずれか一項に記載のコンピュータ実装方法。
【請求項９】
新しいアプリケーションが前記データ処理システム内の区画上にインストールされる場合、または、区画上にすでにインストールされているアプリケーションが短期間のセキュア区画に関する要求を前記区画管理ファームウェアに送信する場合、前記区画管理ファームウェアが前記コマンドを送信する、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記コマンドが、動的区画、仮想区画、または論理区画のうちの１つをセットアップするための命令を備える、請求項８に記載のコンピュータ実装方法。
【請求項１１】
前記短期間のセキュア区画にシステム・リソースを割り振ることが、オペレーティング・システムの一部を提供すること、前記オペレーティング・システムをカプセル化すること、または、前記オペレーティング・システムをクローニングすること、および前記短期間のセキュア区画内で実行するためのいくつかのオペレーティング・システム・アクセス・コマンドを制限することを含む、請求項１から請求項１０のいずれか一項に記載のコンピュータ実装方法。
【請求項１２】
前記短期間のセキュア区画がセキュアでない既存の区画のコピーとしてクローニングされ、前記セキュアでない既存の区画から取得されたハードウェア識別子またはソフトウェア識別子が、セキュア要求にのみ応答するように、前記クローニングされた短期間のセキュア区画内でマスクされる、請求項１１に記載のコンピュータ実装方法。
【請求項１３】
短期間のセキュア区画のプールを形成するために追加の短期間のセキュア区画を作成すること、
１つまたは複数のトランザクションを処理するために、前記短期間のセキュア区画のプール内の短期間のセキュア区画を使用すること、および
前記短期間のセキュア区画が前記トランザクションを処理することに応答して、前記短期間のセキュア区画を前記プールに戻す前に、前記短期間のセキュア区画をフラッシュすること、
をさらに含む、請求項１から請求項１２のいずれか一項に記載のコンピュータ実装方法。
【請求項１４】
前記プール内に存在する短期間のセキュア区画の数を決定すること、
前記短期間のセキュア区画の数が最低しきい値に達することに応答して、前記プール内に短期間のセキュア区画をさらに作成すること、および
前記短期間のセキュア区画の数が削除しきい値に達することに応答して、前記プールを削除し、前記１つまたは複数のトランザクションを処理するために、前記セキュアでない既存の区画または動的に作成されたセキュア区画のうちの１つを使用すること、
をさらに含む、請求項１３に記載のコンピュータ実装方法。
【請求項１５】
データ処理システム内に短期間のセキュア区画を構成するためのデータ処理システムであって、
バスと、
前記バスに接続された、コンピュータ使用可能コードを含むストレージ・デバイスと、
前記バスに接続された少なくとも１つの被管理デバイスと、
前記バスに接続された通信ユニットと、
前記バスに接続された処理ユニットとを備え、前記処理ユニットが、
セキュア・アプリケーション用の短期間のセキュア区画を作成するためのコマンドを受信するため、
前記データ処理システム内に前記短期間のセキュア区画を作成するためであって、前記短期間のセキュア区画へは、スーパユーザまたは他のアプリケーションによるアクセスが不可能である、作成するため、
物理リソースおよび前記物理リソースの仮想割り振りを含むシステム・リソースを、前記短期間のセキュア区画に割り振るため、および
前記セキュア・アプリケーションを実行するために必要なハードウェアおよびソフトウェアのコンポーネントを、前記短期間のセキュア区画にロードするために、
前記コンピュータ使用可能コードを実行する、データ処理システム。
【請求項１６】
データ処理システム内に短期間のセキュア区画を構成するためのコンピュータ・プログラムであって、
セキュア・アプリケーション用の短期間のセキュア区画を作成するためのコマンドを受信するためのコンピュータ使用可能プログラム・コードであって、前記短期間のセキュア区画へは、スーパユーザまたは他のアプリケーションによるアクセスが不可能である、コンピュータ使用可能プログラム・コードと、
前記データ処理システム内に前記短期間のセキュア区画を作成するためのコンピュータ使用可能プログラム・コードと、
物理リソースおよび前記物理リソースの仮想割り振りを含むシステム・リソースを、前記短期間のセキュア区画に割り振るためのコンピュータ使用可能プログラム・コードと、
前記セキュア・アプリケーションを実行するために必要なハードウェアおよびソフトウェアのコンポーネントを、前記短期間のセキュア区画にロードするためのコンピュータ使用可能プログラム・コードと、
を備える、コンピュータ・プログラム。
【請求項１７】
前記短期間のセキュア・アプリケーションがその処理を完了することに応答して、前記短期間のセキュア区画およびシステム・リソースに割り振られたスペースを解放するためのコンピュータ使用可能プログラム・コードをさらに備える、請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
システム・リソースを前記短期間のセキュア区画に割り振るためのコンピュータ使用可能プログラム・コードが、オペレーティング・システムの一部を提供するためのコンピュータ使用可能プログラム・コード、前記オペレーティング・システムをカプセル化するためのコンピュータ使用可能プログラム・コード、または、前記オペレーティング・システムをクローニングするため、および前記短期間のセキュア区画内で実行するためのいくつかのオペレーティング・システム・アクセス・コマンドを制限するためのコンピュータ使用可能プログラム・コードを含み、前記短期間のセキュア区画が既存の区画のコピーとしてクローニングされ、前記既存の区画から取得されたハードウェア識別子またはソフトウェア識別子が、セキュア要求にのみ応答するように、前記クローニングされた短期間のセキュア区画内でマスクされる、請求項１６または請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
短期間のセキュア区画のプールを形成するために追加の短期間のセキュア区画を作成するためのコンピュータ使用可能プログラム・コードと、
１つまたは複数のトランザクションを処理するために、前記短期間のセキュア区画のプール内の短期間のセキュア区画を使用するためのコンピュータ使用可能プログラム・コードと、
前記短期間のセキュア区画が前記トランザクションを処理することに応答して、前記短期間のセキュア区画を前記プールに戻す前に、前記短期間のセキュア区画をフラッシュするためのコンピュータ使用可能プログラム・コードと、
をさらに備える、請求項１６、請求項１７、または請求項１８に記載のコンピュータ・プログラム。
【請求項２０】
前記プール内に存在する短期間のセキュア区画の数を決定するためのコンピュータ使用可能プログラム・コードと、
前記短期間のセキュア区画の数が最低しきい値に達することに応答して、前記プール内に短期間のセキュア区画をさらに作成するためのコンピュータ使用可能プログラム・コードと、
前記短期間のセキュア区画の数が削除しきい値に達することに応答して、前記プールを削除し、前記１つまたは複数のトランザクションを処理するために、前記セキュアでない既存の区画または動的に作成されたセキュア区画のうちの１つを使用するためのコンピュータ使用可能プログラム・コードと、
をさらに備える、請求項１９に記載のコンピュータ・プログラム。
【請求項２１】
データ処理システム内に短期間のセキュア区画を構成するためのデータ処理システムであって、
バスと、
前記バスに接続された、コンピュータ使用可能コードを含むストレージ・デバイスと、
前記バスに接続された少なくとも１つの被管理デバイスと、
前記バスに接続された通信ユニットと、
前記バスに接続された処理ユニットとを備え、前記処理ユニットが、請求項１から請求項１４のいずれか一項に記載の方法ステップを実行するために、前記コンピュータ使用可能コードを実行するように動作可能な、
データ処理システム。
【請求項２２】
プログラムがコンピュータ上で実行された場合、請求項１から請求項１４のいずれか一項に記載の方法を実行するように適合された、プログラム・コード手段を備える、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、改良型データ処理システムに関し、具体的に言えば、セキュアな環境でアプリケーションを実行および処理できるようにするために必要なシステム・リソースを備えた区画を構成するための、コンピュータ実装方法、データ処理システム、およびコンピュータ・プログラム製品に関する。
【背景技術】
【０００２】
データ処理システム内の論理区分機能は、単一のオペレーティング・システムまたは複数の異種オペレーティング・システムの複数のコピーを、単一のデータ処理システム・プラットフォーム上で同時に実行させることができる。オペレーティング・システム・イメージが内部で実行可能な区画は、プラットフォームのリソースの非重複サブセットが割り当てられる。これらのプラットフォーム割り振り可能リソースは、割り込み管理領域を備えた１つまたは複数のアーキテクチャ的に別個のプロセッサ、システム・メモリの領域、および入力／出力（Ｉ／Ｏ）デバイスを含む。オペレーティング・システムは、プロセッサ、メモリ、および入力／出力リソースが区画に割り振られた状態で、各論理区画（ＬＰＡＲ）が独立したサーバとして実行するように、ディスク・ドライブ上にインストール可能である。区画のリソースは、プラットフォームのファームウェアによってオペレーティング・システム・イメージに提示される。
【０００３】
現在、区画上のアプリケーションを実行するために必要なシステム・リソースを備える論理区画を構成するためには、システム管理者がこれらの構成を実行および維持する必要がある。システム管理者は、ハードウェア管理コンソール（ＨＭＣ）を介して構成または管理されているシステムに接続する。ハードウェア管理コンソールとは、サーバ・ファームウェアに接続するハードウェア端末のことである。この端末によって、管理者はハードウェア構成を作成し、オペレーティング・システム、アプリケーションをインストールし、論理区分データ処理システム用のソフトウェアを構成することができる。論理区分システムを構成する際の要素には、ネットワーク情報、物理または仮想の可能性があるディスクのサイズおよび容量、ならびにＥｔｈｅｒｎｅｔ（商標）アダプタが含まれるが、これらに限定されるものではない。ネットワーク構成情報は、たとえば、インターネット・プロトコル（ＩＰ）アドレス、サブネット・マスク、およびデフォルト・ゲートウェイを含む。
【０００４】
現在、特定のオペレーティング環境用の区画を有するデータ処理システムをセットアップするために、システム管理者はハードウェア管理コンソールを使用して、特定のオペレーティング環境用の特定の区画を作成し、さらにその区画に特定のシステム・リソースを割り振る。別の方法として、システム管理者はハードウェア管理コンソールを使用して、動的論理区分をセットアップすることが可能であり、区画用の特定システム・リソースは、システム管理者によってセットアップされた構成に基づいて動的に割り振ることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現在の論理区分方法の欠点は、区画をランタイムに先立ってセットアップし、必要な割り振りまたはシステム・リソースと共に事前構成しなければならないことである。したがって、アプリケーションがデータ処理システム上に配置されている場合、そのアプリケーションはこれらの事前構成されたリソース割り振りの制約の下で動作しなければならない。
【課題を解決するための手段】
【０００６】
例示的諸実施形態は、セキュアな環境でアプリケーションを実行および処理できるようにするために必要なシステム・リソースを備えた区画を構成するための、コンピュータ実装方法、データ処理システム、およびコンピュータ・プログラム製品を提供する。セキュア・アプリケーション用の短期間のセキュア区画を作成するためのコマンドを受信すると同時に、データ処理システム内に短期間のセキュア区画が作成される。この短期間のセキュア区画には、スーパユーザまたは他のアプリケーションはアクセスできない。物理リソースおよび物理リソースの仮想割り振りを含むシステム・リソースが、短期間のセキュア区画に割り振られる。セキュア・アプリケーションを実行するために必要なハードウェアおよびソフトウェアのコンポーネントが、短期間のセキュア区画にロードされる。
【０００７】
次に、本発明の好ましい諸実施形態について、単なる例として以下の図面を参照しながら説明する。
【図面の簡単な説明】
【０００８】
【図１】内部に例示的諸実施形態が実装可能な、分散データ処理システムを示す絵画図である。
【図２】内部に例示的諸実施形態が実装可能な、データ処理システムを示すブロック図である。
【図３】（好ましい実施形態に従って）論理的に区分されたサーバとして実装可能な、データ処理システムを示すブロック図である。
【図４】内部に例示的諸実施形態が実装可能な、例示的論理区分プラットフォームを示すブロック図である。
【図５】例示的諸実施形態に従った、区画およびセキュア区画へのユーザ・アクセスを示すブロック図である。
【図６】例示的諸実施形態に従った、セキュア区画要求のタイプを決定するためのプロセスを示す流れ図である。
【図７】例示的諸実施形態に従った、セキュアな環境でアプリケーションを実行および処理できるようにするために、必要なシステム・リソースを備えた区画を動的に構成するためのプロセスを示す流れ図である。
【図８】例示的諸実施形態に従った、ハードウェア区画が作成されたかどうかを決定するための、クライアントまたは実行区画内で実行されるプロセスを示す流れ図である。
【図９】例示的諸実施形態に従った、セキュア要求をセキュア区画に転送するための、実行区画オペレーティング・システム内で実行されるプロセスを示す流れ図である。
【図１０】例示的諸実施形態に従った、ソフトウェア・コンポーネントをセキュア区画にクローニングするための、実行区画オペレーティング・システム内で実行されるプロセスを示す流れ図である。
【発明を実施するための形態】
【０００９】
次に、図、特に図１〜図２を参照して、内部に例示的諸実施形態が実装可能な、データ処理環境の例示的図面が提供される。図１〜図２は単なる例示的なものであり、内部に様々な実施形態が実装可能な環境に関して、いかなる制限の主張または示唆をも意図するものでないことを理解されたい。示された諸環境に対する多くの修正形態が実行可能である。
【００１０】
図１は、内部に例示的諸実施形態が実装可能な、データ処理システムのネットワークを示す絵画図である。ネットワーク・データ処理システム１００は、内部に例示的諸実施形態が実装可能なコンピュータのネットワークである。ネットワーク・データ処理システム１００は、ネットワーク・データ処理システム１００内でまとめて接続された様々なデバイスとコンピュータとの間の通信リンクを提供するために使用されるメディアである、ネットワーク１０２を含む。ネットワーク１０２は、有線、無線通信リンク、または光ファイバ・ケーブルなどの、接続を含むことができる。
【００１１】
示された例では、サーバ１０４およびサーバ１０６は、ストレージ・ユニット１０８と共にネットワーク１０２に接続される。加えて、クライアント１１０、１１２、および１１４は、ネットワーク１０２に接続される。クライアント１１０、１１２、および１１４は、たとえばパーソナル・コンピュータまたはネットワーク・コンピュータとすることができる。示された例では、サーバ１０４は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント１１０、１１２、および１１４に提供する。クライアント１１０、１１２、および１１４は、この例ではサーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、追加のサーバ、クライアント、および図示されていない他のデバイスを含むことができる。
【００１２】
示された例では、ネットワーク・データ処理システム１００は、互いに通信するために伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）のプロトコル・スイートを使用する、ネットワークおよびゲートウェイの世界規模の集合を表す、ネットワーク１０２を備えたインターネットである。インターネットの中心は、データおよびメッセージをルーティングする何千もの商用、行政、教育、および他のコンピュータ・システムからなる、主要ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンである。もちろん、ネットワーク・データ処理システム１００は、たとえばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、またはワイド・エリア・ネットワーク（ＷＡＮ）などの、多数の異なるタイプのネットワークとして実装することもできる。図１は、一例として意図されたものであり、様々な例示的諸実施形態に対するアーキテクチャ上の制限として意図されたものではない。
【００１３】
次に図２を参照すると、内部に例示的諸実施形態が実装可能な、データ処理システムのブロック図が示されている。データ処理システム２００は、例示的諸実施形態に関して、プロセスを実施するコンピュータ使用可能プログラム・コードまたは命令を内部に配置することが可能な、図１のサーバ１０４またはクライアント１１０などの、コンピュータの一例である。この例では、データ処理システム２００は、プロセッサ・ユニット２０４、メモリ２０６、固定ストレージ２０８、通信ユニット２１０、入力／出力（Ｉ／Ｏ）ユニット２１２、およびディスプレイ２１４の間の通信を提供する、通信構造２０２を含む。
【００１４】
プロセッサ・ユニット２０４は、メモリ２０６内にロード可能なソフトウェアに関する命令を実行する働きをする。プロセッサ・ユニット２０４は、特定の実装に応じて、１つまたは複数のプロセッサのセットとするか、またはマルチプロセッサ・コアとすることができる。さらにプロセッサ・ユニット２０４は、単一チップ上に２次プロセッサと共にメイン・プロセッサが存在する、１つまたは複数の異種プロセッサ・システムを使用して、実装可能である。他の例として、プロセッサ・ユニット２０４は、同じタイプの複数のプロセッサを含む対称マルチプロセッサ・システムとすることができる。
【００１５】
これらの例では、メモリ２０６は、たとえばランダム・アクセス・メモリとすることができる。固定ストレージ２０８は、特定の実装に応じて様々な形を取ることができる。たとえば固定ストレージ２０８は、１つまたは複数のコンポーネントまたはデバイスを含むことができる。たとえば固定ストレージ２０８は、ハード・ドライブ、フラッシュ・メモリ、書き換え可能光ディスク、書き換え可能磁気テープ、またはそれらの何らかの組み合わせとすることができる。固定ストレージ２０８によって使用されるメディアは、取り外し可能とすることもできる。たとえば固定ストレージ２０８に対して、取り外し可能ハード・ドライブを使用することができる。
【００１６】
これらの例では、通信ユニット２１０は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット２１０はネットワーク・インターフェース・カードである。通信ユニット２１０は、物理および無線のいずれかまたは両方の通信リンクを使用して、通信を提供することができる。
【００１７】
入力／出力ユニット２１２は、データ処理システム２００に接続可能な他のデバイスを使用したデータの入出力が可能である。たとえば入力／出力ユニット２１２は、キーボードおよびマウスを介したユーザ入力のための接続を提供することができる。さらに入力／出力ユニット２１２は、プリンタに出力を送信することができる。ディスプレイ２１４は、ユーザに情報を表示するためのメカニズムを提供する。
【００１８】
オペレーティング・システムおよびアプリケーションまたはプログラムに関する命令が、固定ストレージ２０８上に配置される。これらの命令は、プロセッサ・ユニット２０４による実行のためにメモリ２０６にロードすることができる。様々な実施形態のプロセスは、メモリ２０６などのメモリ内に配置可能なコンピュータ実装命令を使用し、プロセッサ・ユニット２０４によって実行可能である。これらの命令は、プロセッサ・ユニット２０４内のプロセッサによって読み取りおよび実行可能な、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ読み取り可能プログラム・コードと呼ばれる。様々な実施形態におけるプログラム・コードは、メモリ２０６または固定ストレージ２０８などの、様々な物理的または有形のコンピュータ読み取り可能メディア上で具体化することができる。
【００１９】
プログラム・コード２１６は、コンピュータ読み取り可能メディア２１８上に関数形式で配置され、プロセッサ・ユニット２０４による実行のために、データ処理システム２００にロードまたは転送することができる。これらの例では、プログラム・コード２１６およびコンピュータ読み取り可能メディア２１８はコンピュータ・プログラム製品２２０を形成する。一例では、コンピュータ読み取り可能メディア２１８は、たとえば、固定ストレージ２０８の一部であるハード・ドライブなどの、ストレージ・デバイス上に転送するための固定ストレージ２０８の一部である、ドライブまたは他のデバイス内に挿入または配置される、光または磁気ディスクなどの、有形の形式とすることができる。有形の形では、コンピュータ読み取り可能メディア２１８は、データ処理システム２００に接続されたハード・ドライブまたはフラッシュ・メモリなどの、固定ストレージの形を取ることもできる。有形の形のコンピュータ読み取り可能メディア２１８は、コンピュータ記録可能ストレージ・メディアとも呼ばれる。
【００２０】
別の方法として、プログラム・コード２１６は、通信ユニット２１０への通信リンクを介して、あるいは入力／出力ユニット２１２への接続を介して、またはその両方を介して、コンピュータ読み取り可能メディア２１８からデータ処理システム２００へ転送することができる。示された例では、通信リンクあるいは接続またはその両方は、物理的または無線とすることができる。コンピュータ読み取り可能メディアは、プログラム・コードを含む通信リンクまたは無線伝送などの、非有形メディアの形を取ることもできる。
【００２１】
データ処理システム２００に関して示された様々なコンポーネントは、様々な実施形態が内部に実装可能な様式に、アーキテクチャ上の制限を与えることを意味するものではない。様々な例示的実施形態は、データ処理システム２００に関して示されたコンポーネントに加えた、またはそれらの代わりのコンポーネントを含む、データ処理システム内に実装可能である。図２に示された他のコンポーネントが、図示された例とは異なることが可能である。
【００２２】
たとえばバス・システムは、通信構造２０２を実装するために使用可能であり、システム・バスまたは入力／出力バスなどの１つまたは複数のバスからなるものとすることができる。もちろんバス・システムは、バス・システムに取り付けられた様々なコンポーネントまたはデバイス間でのデータの転送を提供する任意の好適なタイプのアーキテクチャを使用して、実装可能である。加えて、通信ユニットは、モデムまたはネットワーク・アダプタなどの、データの送受信に使用される１つまたは複数のデバイスを含むことができる。さらにメモリは、たとえばメモリ２０６、または通信構造２０２内に存在可能なインターフェースおよびメモリ・コントローラ・ハブ内に見られるようなキャッシュとすることができる。
【００２３】
次に図３を参照すると、本発明の好ましい実施形態に従って、図１のサーバ１０４などの論理的に区分されたサーバとして実装可能な、データ処理システムのブロック図が示されている。データ処理システム３００は、システム・バス３０６に接続された複数のプロセッサ３０１、３０２、３０３、および３０４を含む、対称マルチプロセッサ（ＳＭＰ）システムとすることができる。別の方法として、単一プロセッサ・システムも採用可能である。システム・バス３０６には、複数のローカル・メモリ３６０〜３６３へのインターフェースを提供する、メモリ・コントローラ／キャッシュ３０８も接続される。Ｉ／Ｏバス・ブリッジ３１０がシステム・バス３０６に接続され、Ｉ／Ｏバス３１２へのインターフェースを提供する。メモリ・コントローラ／キャッシュ３０８およびＩ／Ｏバス・ブリッジ３１０は、図に示されたように一体型とすることができる。
【００２４】
データ処理システム３００は、論理的に区分されたデータ処理システムである。したがってデータ処理システム３００は、同時に実行している複数の異種のオペレーティング・システム（または単一オペレーティング・システムの複数のインスタンス）を有することができる。これら複数のオペレーティング・システムは、それぞれ、内部で実行中の任意数のソフトウェア・プログラムを有することができる。データ処理システム３００は、異なるＩ／Ｏアダプタ３２０〜３２１、３２８〜３２９、３３６〜３３７、および３４６〜３４７が異なる論理区画に割り当て可能なように、論理的に区分される。
【００２５】
したがって、たとえばデータ処理システム３００が３つの論理区画、Ｐ１、Ｐ２、およびＰ３に分割されると想定する。それぞれのＩ／Ｏアダプタ３２０〜３２１、３２８〜３２９、および３３６〜３３７、それぞれのプロセッサ３０１〜３０４、ならびにそれぞれのローカル・メモリ３６０〜３６３が、３つの区画のうちの１つに割り当てられる。たとえば、プロセッサ３０１、メモリ３６０、ならびにＩ／Ｏアダプタ３２０、３２８、および３２９が、論理区画Ｐ１に割り当て可能であり、プロセッサ３０２〜３０３、メモリ３６１、ならびにＩ／Ｏアダプタ３２１および３３７が、論理区画Ｐ２に割り当て可能であり、プロセッサ３０４、メモリ３６２〜３６３、ならびにＩ／Ｏアダプタ３３６および３４６〜３４７が、論理区画Ｐ３に割り当て可能である。
【００２６】
データ処理システム３００内で実行中の各オペレーティング・システムは、異なる論理区画に割り当てられる。したがって、データ処理システム３００内で実行中の各オペレーティング・システムは、その論理区画内にあるＩ／Ｏユニットにのみアクセス可能である。したがって、たとえばＡｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ（ＡＩＸ（Ｒ））オペレーティング・システムの１つのインスタンスが区画Ｐ１内で実行中であり、ＩＢＭ（Ｒ）  ＡＩＸオペレーティング・システムの第２のインスタンスが区画Ｐ２内で実行中であり、Ｗｉｎｄｏｗｓ（Ｒ）２０００オペレーティング・システムが論理区画Ｐ３内で実行中であることが可能である。Ｗｉｎｄｏｗｓは米国、諸外国、またはその両方におけるマイクロソフト・コーポレーションの商標である。ＩＢＭおよびＡＩＸは、米国、諸外国、またはその両方におけるインターナショナル・ビジネス・マシンズ・コーポレーションの商標である。
【００２７】
Ｉ／Ｏバス３１２に接続された周辺コンポーネント相互接続（ＰＣＩ）ホスト・ブリッジ３１４は、ＰＣＩローカル・バス３１５へのインターフェースを提供する。複数の端末ブリッジ３１６〜３１７をＰＣＩバス３１５に接続することができる。典型的なＰＣＩバス実装は、拡張スロットまたはアドイン・コネクタを提供するために４つの端末ブリッジをサポートすることになる。それぞれの端末ブリッジ３１６〜３１７が、ＰＣＩバス３１８〜３１９を介してＰＣＩ  Ｉ／Ｏアダプタ３２０〜３２１に接続される。それぞれのＩ／Ｏアダプタ３２０〜３２１は、データ処理システム３００と、たとえばサーバ３００に対するクライアントである他のネットワーク・コンピュータなどの、入力／出力デバイスとの間のインターフェースを提供する。各端末ブリッジ３１６〜３１７には、単一のＩ／Ｏアダプタ３２０〜３２１のみが接続可能である。それぞれの端末ブリッジ３１６〜３１７は、ＰＣＩホスト・ブリッジ３１４および高位のデータ処理システム３００へのエラーの伝播を防止するように構成される。このようにすることによって、端末ブリッジ３１６〜３１７のいずれかによって受け取られたエラーは、異なる区画内にある可能性のある他のＩ／Ｏアダプタ３２１、３２８〜３２９、および３３６〜３３７の、共有バス３１５および３１２から分離される。したがって、１区画内のＩ／Ｏデバイス内で発生したエラーは、他の区画のオペレーティング・システムには「わからない」。したがって、１区画内のオペレーティング・システムの整合性は、他の論理区画内で発生したエラーの影響を受けない。こうしたエラーの分離がなければ、１区画のＩ／Ｏデバイス内で発生したエラーによって、他の区画のオペレーティング・システムまたはアプリケーション・プログラムが動作を停止するか、または正しい動作を停止する可能性がある。
【００２８】
追加のＰＣＩホスト・ブリッジ３２２、３３０、および３４０は、追加のＰＣＩバス３２３、３３１、および３４１に対するインターフェースを提供する。追加のＰＣＩバス３２３、３３１、および３４１は、それぞれ複数の端末ブリッジ３２４〜３２５、３３２〜３３３、および３４２〜３４３に接続され、これらはそれぞれ、ＰＣＩバス３２６〜３２７、３３４〜３３５、および３４４〜３２５によって、ＰＣＩ  Ｉ／Ｏアダプタ３２８〜３２９、３３６〜３３７、および３４６〜３４７に接続される。したがって、たとえばモデムまたはネットワーク・アダプタなどの追加のＩ／Ｏデバイスは、それぞれＰＣＩ  Ｉ／Ｏアダプタ３２８〜３２９、３３６〜３３７、および３４６〜３４７を介してサポート可能である。このように、サーバ３００は、複数のネットワーク・コンピュータへの接続が可能である。グラフィクス・アダプタ３４８およびハード・ディスク３５０にマッピングされたメモリも、図に示すように、直接または間接的にＩ／Ｏバス３１２に接続可能である。
【００２９】
論理区画の管理は、ハードウェア管理コンソール（ＨＭＣ）などの端末を介して達成される。このアクセスは、これらの例では、サービス・プロセッサ３６６、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）３６８、および入力／出力（Ｉ／Ｏ）アダプタ３７０を介して提供される。ハードウェア管理コンソールは、Ｉ／Ｏアダプタ３７０を介してサービス・プロセッサ３６６に接続される。ＮＶＲＡＭ  ３６８は、データ処理システム３００内の論理区画の構成および管理に使用される構成プロファイルなどの、オブジェクトを含む。これらの例では、ＮＶＲＡＭ  ３６８に格納可能な構成プロファイルは、ハードウェア管理コンソールがオンラインになった時、またはＩ／Ｏアダプタ３７０を介してデータ処理システム３００に接続された時に、このコンソールに送られる。このアーキテクチャによって、論理区画に関する構成プロファイルを、ハードウェア管理コンソールまたはＮＶＲＡＭ  ３６８のいずれかに格納することができる。
【００３０】
当業者であれば、図３に示されたハードウェアが変更可能であることを理解されよう。たとえば、光ディスク・ドライブなどの他の周辺デバイスを、示されたハードウェアに加えて、またはその代わりに、使用することができる。示された例は、本発明に関するアーキテクチャ上の制限を示唆することを意味するものではない。
【００３１】
例示的諸実施形態は、セキュアな環境でアプリケーションを実行および処理できるようにするために、必要なシステム・リソースを備えた区画を動的に構成するためのメカニズムを提供する。セキュアな環境とは、アプリケーション、トランザクション、またはアプリケーション機能が、ユーザまたはスーパユーザに代わって実行中の他のアプリケーション、トランザクション、またはアプリケーション機能による対話またはアクセス可能性なしに、独立かつセキュアに実行できる環境である。セキュアな環境でのいずれのコマンド動作も、実行中の部分および実行中の部分によって使用される部分に関連する情報を公開するのみである。たとえば、システムに関するプロセス情報を出力するためのポストスクリプト（ｐｓ）コマンドは、特定のアプリケーション、機能、またはトランザクションに関する特定のプロセス出力を示し、その出力を特定のアプリケーション、機能、またはトランザクションへと送達するのみである。したがって、例示的諸実施形態に従い、セキュアな環境を必要とするアプリケーションに対して動的に区画を構成することを使用して、他のアプリケーションまたはユーザがセキュア・データへのアクセス権を得られないようにすることができる。たとえば、スーパユーザとは、許可のいかんに関わらず、システム全体、すなわちすべてのコマンドおよびすべてのファイルへの無制限なアクセスを有する特権ユーザである。スーパユーザは、セキュア要求によって実行されているいかなる情報へもアクセスできないことになる。カーネル・デバッガまたは他の深い追跡機能の場合などの、より深いレベルで実行されるいかなる情報収集でも、同じことがあてはまる。
【００３２】
セキュアな環境は、ユーザの発明なしにハードウェア管理コンソール上で構成される、仮想区画、専用区画、または動的区画とすることができる。内部でアプリケーションが実行しているセキュアな環境は、ユーザまたはユーザ・グループに特有の環境を含むこともできる。
【００３３】
例示的諸実施形態は、セキュアな環境に関する要求が区画でのシステム呼び出しを介してセキュア・アプリケーションから受け取られた場合に、または、セキュア・アプリケーションが区画上にインストールされた場合に、セキュア区画を動的に構成する。データ処理システム内の区画管理ファームウェアがこうした要求をアプリケーションから受け取った場合、区画管理ファームウェアは自動的に、区画セットアップ・コマンドをハードウェア管理コンソールに送信する。別の方法として、区画セットアップ・コマンドは、アプリケーションがインストールされた場合に、ハードウェア管理コンソールに送信される。このセットアップ・コマンドは、新しい区画を作成するよう、ハードウェア管理コンソールに命令する。セットアップ・コマンドによって作成される新しい区画は、アプリケーションの実行に必要な区分システム・リソースをアプリケーションが使用できるようになった場合に、アクティブとされる。新しい区画は、他のアプリケーションまたはユーザがセキュア区画内のデータにアクセスできないようにすることによって、アプリケーションに対するセキュアな環境として動作する。したがって新しい区画は、他のアプリケーションが、アプリケーションの「プライベート」環境を覗き込めないようにすることによって、セキュア区画のすべての分離利点を提供する。その後、セキュアな環境内の新しい区画上で、要求側アプリケーションまたはアプリケーションの一部を実行することができる。
【００３４】
例示的諸実施形態は、アプリケーションまたは要求が処理を完了すると、新しいセキュア区画に割り振られたスペースも解放する。アプリケーションがその処理を完了した場合、セキュア区画に割り振られたスペースを解放し、ハードウェア管理コンソール構成からセキュア区画を削除するように、ハードウェア管理コンソールに通知するために、区画管理ファームウェアによる特定のシステム呼び出しが実行可能である。
【００３５】
さらに例示的諸実施形態は、軽量で短期間のセキュア区画の作成を実行可能にする。軽量のセキュア区画は短期間であり、短期間のトランザクションをシステム内の他のトランザクションから分離して実行することができる。軽量で短期間のセキュア区画は、管理者がそれらを削除するまで存在する長期間の永続区画である、既存の事前に作成された区画とは区別することができる。例示的諸実施形態は、使用可能な軽量セキュア区画の事前作成プールを形成するために、これらの軽量で短期間のセキュア区画を予め（動的に作成される区画とは対照的に）作成することができる。その後、事前作成プール内の軽量で短期間のセキュア区画を使用して、より多くの時間を要する動的区画作成を使用することのオーバヘッドなしに、トランザクションを処理することができる。各トランザクションの後、セキュア区画を事前作成プールに戻す前に、軽量で短期間のセキュア区画をフラッシュまたはリセットすることができる。
【００３６】
さらに、軽量で短期間のセキュア区画は、セキュア区画が実行可能化された場合、リソース割り振りのみを行うように事前構成することができる。したがって、いったん使用された既存の区画は、管理者が区画を削除するかまたは区画を再度使用禁止にするのを待たなければならないという点で、事前構成された軽量で短期間のセキュア区画を既存の区画と区別することもできる。その一方で、軽量で短期間のセキュア区画は、既存の区画に必要な場合、管理者が削除アクションを実行するのを待たなければならないのではなく、トランザクション後に自動的にフラッシュまたはリセットすることができる。
【００３７】
図４は、内部に例示的諸実施形態が実装可能な、例示的論理区分プラットフォームのブロック図である。論理区分プラットフォーム４００内のハードウェアは、たとえば、図３のデータ処理システム３００として実装可能である。論理区分プラットフォーム４００は、区分ハードウェア４３０、オペレーティング・システム４０２〜４０８、および区画管理ファームウェア４１０を含む。オペレーティング・システム４０２〜４０８は、単一オペレーティング・システムの複数コピー、または、論理区分プラットフォーム４００上で同時に実行される複数の異種オペレーティング・システムとすることができる。
【００３８】
オペレーティング・システム４０２〜４０８は区画４０３〜４０９内に配置される。ハイパーバイザ・ソフトウェアは、区画管理ファームウェア４１０の実装に使用可能なソフトウェアの一例であり、論理区分プラットフォーム４００の作成および区分化実施のために、オペレーティング・システム４０２〜４０８に対するいくつかの機能およびサービスを実行する。ファームウェアは、たとえば、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、および不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）などの、電力なしでそのコンテンツを保持する、メモリ・チップ内に格納された「ソフトウェア」である。
【００３９】
区分ハードウェア４３０は、複数のプロセッサ４３２〜４３８、複数のシステム・メモリ・ユニット４４０〜４４６、複数の入力／出力（Ｉ／Ｏ）アダプタ４４８〜４６２、ＮＶＲＡＭストレージ４９８、およびストレージ・ユニット４７０を含む。プロセッサ４３２〜４３８、メモリ・ユニット４４０〜４４６、ＮＶＲＡＭストレージ４９８、およびＩ／Ｏアダプタ４４８〜４６２は、それぞれ、論理区分プラットフォーム４００内の複数の区画のうちの１つに割り当て可能であり、この区画はそれぞれ、オペレーティング・システム４０２〜４０８のうちの１つに対応する。
【００４０】
区画管理ファームウェア４１０は、論理区分プラットフォーム４００の作成および区分化の実施のために、区画４０３〜４０９に対していくつかの機能およびサービスを実行する。区画管理ファームウェア４１０は、基礎となるハードウェアと同一のファームウェア実装仮想マシンである。したがって区画管理ファームウェア４１０は、論理区分プラットフォーム４００のすべてのハードウェア・リソースを仮想化することによって、独立したオペレーティング・システム・イメージ４０２〜４０８を同時に実行することができる。
【００４１】
代替実施形態では、論理区画４０３〜４０９の代わりに、ＡＩＸ（Ｒ）  Ｗｏｒｋｌｏａｄ  Ｐａｒｔｉｔｉｏｎなどの作業負荷区画（ＷＰＡＲ）を使用することができる。作業負荷区画は、オペレーティング・システムの単一インスタンス上で動作するソフトウェア・ベースの区画（コンテナ）である。コンテナまたは作業負荷区画は、オペレーティング・システムの別々のインスタンスではなく、オペレーティング・システムの１つのインスタンスを使用するという相違点を伴う、論理区画（ＬＰＡＲ）と同様のソフトウェア区画を可能にする。作業負荷区画は、作業負荷区画をセキュア区画内にカプセル化することによって、論理区画の代替として使用可能である。このカプセル化により、スーパユーザによるセキュアな環境内への侵入可能な（intrudable）アクセスが使用禁止となる。しかしながら、作業負荷区画は、ソフトウェア境界を使用する分離を提供するための機能を有するが、アプリケーションまたはトランザクション処理のセキュア部分に対してセキュア環境を提供するための機能は有していないことに留意されたい。セキュア環境は、特定ユーザの数が制限された専用のリソースを含む分離環境とは異なり、個人またはユーザ・グループがその環境内の他のユーザの環境を認識することができるか、またはスーパユーザが分離環境の任意の部分を認識しアクセスできる。分離ゾーンがコンテナ環境内で動作する大規模ゾーンは、分離ゾーンによるゾーン・アクセスを防止するが、大規模ゾーンの不正なエントリおよび制御による分離は防止しない。
【００４２】
前述のように、論理区画の管理はハードウェア管理コンソール４８０を通じて達成される。異なる区画の動作は、ハードウェア管理コンソール４８０を通じて制御可能である。ハードウェア管理コンソール４８０は、異なる区画へのリソースの再割り振りを含む様々な機能をシステム管理者が実行可能な、別のデータ処理システムである。ハードウェア管理コンソール４８０は、必要なハードウェア・コンポーネントを備えたセキュア区画を構成し、必要であれば、オペレーティング・システムのクローニングまたはインストールを開始することができる。ハードウェア管理コンソール４８０は、論理区分プラットフォーム４００内での論理区画の構成および管理のために使用される、事前に定義された構成を含むことができる。事前定義された構成は、ハードウェア、オペレーティング・システム、およびソフトウェア構成を含む、特定のシステム・リソースを、各区画に対して指定することができる。ハードウェア管理コンソール４８０は、図４に示されるように論理区分プラットフォーム４００に直接接続するか、または、たとえば図１のネットワーク１０２などのネットワークを介して、論理区分プラットフォーム４００に接続することができる。このハードウェア・コンソールは、たとえばデスクトップ・コンピュータ、ラップトップ・コンピュータ、または他の端末とすることが可能であり、図２のデータ処理システム２００を使用して実装可能である。別の方法として、ハードウェア管理コンソールは、論理区分プラットフォーム４００内の区画で実行中のアプリケーションとすることができる。当業者であれば、図４に示されたハードウェアおよびソフトウェアが変更可能であることを理解されよう。たとえば、図４に示された数よりも多いかまたは少ないプロセッサ、あるいは多いかまたは少ない区画、またはその両方を、使用することができる。示された例は、例示された諸実施形態に関してアーキテクチャ上の制限を示唆することを意味するものではない。
【００４３】
区画４０３〜４０９などの区画上にインストールされたアプリケーションが、内部で実行するためのセキュアな環境を有する必要がある場合、このアプリケーションは、区画管理ファームウェア４１０に対してセキュアな環境を要求する。区画上へのアプリケーションのインストールに応答して、アプリケーションがセキュアな環境を必要としている旨を、区画管理ファームウェア４１０に通知することもできる。アプリケーションのインストール・プロセスは、セキュア区画の作成を同期的または非同期的に要求するために、インストール・プロセス中に、システム呼び出しを送信するか、またはＡＰＩの使用を通じてハードウェア管理コンソール４８０と対話することになる。インストール・メニューは、セキュア区画が必要であるかどうかをユーザに尋ねること、または、アプリケーションが実行のためのセキュア区画を必要とするかどうかを構成パラメータが示せるようにすることができる。
【００４４】
区画管理ファームウェア４１０は、要求側アプリケーションから、アプリケーションによって必要とされているセキュアな環境が、動的区画、仮想区画、または論理区画のいずれであるかを決定する。動的区画とは、必要とされる最小限あるいは最大限またはその両方のリソースを指定し、リソースが使用可能になった場合に、システムからリソースを取り出すための機能を可能にする、事前定義された区画である。仮想区画とは、既存の実行中の区画のうちの部分的区画（微小区画（micropartition））とすることができる。仮想区画は、プロセッサ時間の一部分で実行するため、または、プロセッサの全体部分とプロセッサの一部分とを合わせて実行するための機能などの、リソースの一部分を使用することができる。論理区画とは、事前定義された論理ユニットに分割されたシステムであり、アダプタなどの特定の物理リソースが特定の論理区画に割り当てられる。システムが定義済みの論理区画および未使用のリソースを有する場合、それらの未使用のリソースを使用して、セキュア区画用に使用する他の論理区画を定義することができる。システム上に動的区画が存在する場合、他の動的区画を作成することが可能であるか、またはシステムが微小区分された場合、セキュア区画用に追加の仮想区画を作成することができる。使用可能なリソースが存在しない場合、およびシステムがセキュア区画を構成するために論理区画のみで構成されている場合、アプリケーションのセキュアな環境は定義できないことになる。この状況でシステム管理者は、第一に、セキュアな環境処理を可能にするために使用可能なリソースを用いる使用可能な方法のうちの１つで、システムを構成しなければならない。動的または微小区分の場合、セキュア区画は、事前構成の必要なしに同じリソースを使用することが可能であるか、またはセキュア区画を事前構成することができる。アプリケーションは、システムがセキュア区画を定義できるという前提条件を指定することができる。
【００４５】
決定された区画タイプ（論理、動的、または仮想区画）に基づき、動的区画、仮想区画、または論理区画を作成するようハードウェア管理コンソール４８０に命じる区画管理ファームウェア４１０によって、区画セットアップ・コマンドが自動的に実行される。代替実施形態では、ハードウェア管理コンソール４８０へのシステム呼び出しを介して、アプリケーションによってコマンドを発行することができる。新しい区画は、とりわけアプリケーション要求の実行のために動的に作成および破棄される区画である。アプリケーション用の新しい区画は、アプリケーションが内部で実行している区画のオペレーティング・システムから外部的に作成され、この区画が作業負荷区画の論理区画とされる。セキュア区画上で実行可能な作業は、アプリケーション処理イベントまたはトランザクション処理イベントを含む。たとえば、セキュアな環境を必要とするＨＴＴＰＳトランザクションは、セキュア区画上で実行可能である。
【００４６】
新しい区画は、アプリケーションの以前のインスタンスを含む、システム上のルートまたは共有ユーザである、他のアプリケーションまたはユーザが、このアプリケーションのセキュアな環境を覗き込むことができないようにする、区画のすべての分離利点を提供する。区画は、まさにその本質上、作成された時点ではセキュアである。システムは、直接メモリ・アクセスあるいはスタックまたはキャッシュ情報の転送を通じて、セキュア区画に情報を直接転送することができる。他のユーザまたはアプリケーションは、システム上のセキュア区画にアクセスすることができない。セキュア区画の他のいずれの面に関する情報も取得するための、アプリケーション用のログイン機能または他のメカニズムは存在しない。
【００４７】
アプリケーションが必要とするシステム・リソースをアプリケーションが実行用に使用できるようになった場合、新しい区画が動的に作成され、アクティブとなる。これらのシステム・リソースは、新しいセキュア区画に割り振られる。メモリ４４０〜４４６などの、アプリケーションによって必要とされるシステム・リソースは、共有、微小区画、または物理リソースとして定義することができる。共有リソースは、複数の区画によって使用されるか、または必要に応じて区画間で移動されるリソースである。微小区画リソースは、物理リソースの部分的スライスであるリソースである。物理リソースは、ソフトウェアを実行するために必要な、ハードウェア・コンポーネント、ＣＰＵ、メモリ、レジスタ、およびＩ／Ｏアダプタである。
【００４８】
アプリケーションが処理を完了した場合、新しいセキュア区画は破棄される。新しい区画は、区画管理ファームウェア４１０またはアプリケーション自体が（完了時に）ハードウェア管理コンソール４８０にシステム呼び出しを送信した場合、破棄される。システム呼び出しは、ハードウェア管理コンソール構成からセキュア区画を除去することによって、セキュア区画に割り振られたスペースを解放するように、ハードウェア管理コンソール４８０に命じる。
【００４９】
図５は、例示的諸実施形態に従った、区画およびセキュア区画へのユーザ・アクセスを示すブロック図である。区画５０２は、非セキュア環境である。非セキュア環境とは、環境内で実行中のアプリケーションに、スーパユーザ５０４、ネットワーク・ユーザ５０６、または他のユーザ５０８（たとえば、共有または割り振りリソースを使用するユーザ）がアクセス可能な環境である。
【００５０】
セキュア区画５１０は、環境内で実行中のアプリケーションへのユーザ・アクセスを制限する、セキュア環境を備える。セキュア区画５１０は、共有または割り振りリソースを使用するユーザによる、あるいはスーパユーザによる、アクセス可能性はないが、ユーザまたはスーパユーザに代わって、実行中の他のアプリケーション、トランザクション、またはアプリケーション機能による対話またはアクセス可能性なしに、独立かつセキュアに機能を実行するための機能を備えた、セキュア環境内で、アプリケーション、トランザクション、またはアプリケーション機能が実行できるようにする。限定オペレーティング・システム５１２によって実行されるコマンド動作は、実行中のアプリケーション部分に関連する情報、およびこの部分によって使用されるための情報のみを明らかにする。スーパユーザ５１４は、セキュア要求によって実行されているいかなる情報へもアクセスできないことになる。カーネル・デバッガまたは他の深い追跡機能の場合などの、より深いレベルで実行されるいかなる情報収集でも、同じことがあてはまる。加えて、セキュア区画５１０は、セキュア区画のプール内に作成することができる。事前に作成されたセキュア区画のプールを使用して、動的セキュア区画作成を使用することのオーバヘッドなしに、トランザクションを処理することができる。プール内部では、プール内の短期間のセキュア区画を使用して、１つまたは複数のトランザクションを処理することができる。セキュア区画が使用されると、使用可能な事前に作成されたセキュア区画の数が使い尽くされる（depleted）。各トランザクション後、事前に作成されたプールにセキュア区画を戻す前に、短期間のセキュア区画をフラッシュまたはリセットすることができる。このリセット・プロセスは、いったん使用されると、管理者が区画を削除するかまたは区画を使用禁止にするのを待たなければならない、既存の区画とは対照的である。したがって、プール内の短期間のセキュア区画は、既存の区画に必要な場合、管理者が削除アクションを実行するのを待たなければならないのではなく、トランザクション後に自動的にフラッシュまたはリセットすることができる。
【００５１】
セキュア区画のプールでは、セキュア区画が使用された場合、そのセキュア区画はプールから除去される。短期間のセキュア区画の数が、調整可能な最低しきい値に達した場合、短期間のセキュア区間をさらに作成し、プールに追加することができる。別の方法として、短期間のセキュア区画の数が、削除しきい値に達した場合（たとえば、プール内に存在する短期間のセキュア区画の数が０である）、プールを削除することができる。したがって、いずれのトランザクションも、システムがどのように構成されているかに応じて、セキュア区画のクローニング元であったオリジナル区画内で、または動的に作成されたセキュア区画内で、処理することができる。
【００５２】
図６は、例示的諸実施形態に従った、セキュア区画要求のタイプを決定するためのプロセスを示す流れ図である。図６に示されるプロセスは、図４の区画管理ファームウェア４１０によって実装可能である。
【００５３】
このプロセスは、区画管理ファームウェアが、セキュア・アプリケーションからセキュア区画環境を要求するシステム呼び出しを受け取ると、開始される（ステップ６０２）。要求を受け取ると、区画管理ファームウェアは、セキュア区画に関する要求が動的セキュア区画に関する要求を含むかどうかを判別する（ステップ６０４）。セキュア区画に関する要求が動的セキュア区画に関する要求である場合（ステップ６０４の「ｙｅｓ」出力）、区画管理ファームウェアは、動的セキュア区画を作成するためのコマンドをハードウェア管理コンソールに送信する（ステップ６０６）。次に、ハードウェア管理コンソールは、コマンドに従ってセキュア区画を作成し（ステップ６０８）、その後プロセスは終了する。
【００５４】
セキュア区画に関する要求が動的セキュア区画に関する要求でない場合（ステップ６０４の「ｎｏ」出力）、区画管理ファームウェアは、セキュア区画に関する要求が仮想セキュア区画に関する要求であるかどうかを判別する（ステップ６１０）。セキュア区画に関する要求が仮想セキュア区画に関する要求である場合（ステップ６１０の「ｙｅｓ」出力）、区画管理ファームウェアは、仮想セキュア区画を作成するためのコマンドを、ハードウェア管理コンソールに送信する（ステップ６１２）。次に、ハードウェア管理コンソールは、コマンドに従ってセキュア区画を作成し（ステップ６０８）、その後プロセスは終了する。
【００５５】
セキュア区画に関する要求が仮想セキュア区画に関する要求でない場合（ステップ６１０の「ｎｏ」出力）、区画管理ファームウェアは、セキュア区画に関する要求が論理セキュア区画に関する要求であるかどうかを判別する（ステップ６１４）。セキュア区画に関する要求が論理セキュア区画に関する要求である場合（ステップ６１４の「ｙｅｓ」出力）、区画管理ファームウェアは、論理セキュア区画を作成するためのコマンドを、ハードウェア管理コンソールに送信する（ステップ６１６）。次に、ハードウェア管理コンソールは、コマンドに従ってセキュア区画を作成し（ステップ６０８）、その後プロセスは終了する。
【００５６】
ステップ６１４に戻り、セキュア区画に関する要求が論理セキュア区画に関する要求でない場合（ステップ６１４の「ｎｏ」出力）、その後プロセスは終了する。
【００５７】
図７は、例示的諸実施形態に従った、セキュアな環境でアプリケーションを実行および処理できるようにするために、システム・リソースを備えたセキュア区画を動的に構成するためのプロセスを示す流れ図である。ハードウェア管理コンソール４８０が図４の論理区分プラットフォーム４００上でセキュア区画の作成を開始することで、プロセスが開始される（ステップ７０２）。ハードウェア管理コンソールによって作成されるセキュア区画は、図４の区画４０３〜４０９のうちの１つを含むことが可能であり、区画を作成するための区画管理ファームウェアからのコマンドの受け取りに応答して作成することができる。セキュア区画は、図６に示されたような、動的区画、仮想区画、または論理区画のうちの１つとすることができる。
【００５８】
セキュア区画を作成する場合、ハードウェア管理コンソールは、第一に、論理区画プラットフォーム内の区画について事前に定義された構成をチェックする（ステップ７０４）。これらの事前に定義された構成は、ハードウェア管理コンソール上に配置することができる。これらの事前に定義された構成は、新しい区画に割り振り可能なシステム・リソースを指定する。次に、ハードウェア管理コンソールは、セキュア区画環境を必要とする要求側アプリケーションまたはトランザクション用に事前に定義された構成があるかどうかを判別する（ステップ７０６）。要求側アプリケーションまたはトランザクション用に事前に定義された構成がある場合（ステップ７０６の「ｙｅｓ」出力）、ハードウェア管理コンソールは、事前に定義された構成内で指定された、区画に割り振られた事前に定義されたシステム・リソースを有する区画を作成する（ステップ７０８）。プロセスはステップ７１２へと続行される。これらの事前に定義されたシステム・リソースは、ＩＰアドレス、メモリ、ＣＰＵ、ネットワーク・アダプタなどを含む、様々なハードウェア要素を含むことができる。
【００５９】
ステップ７０６に戻り、要求側アプリケーションまたはトランザクション用に事前に定義された構成がない場合（ステップ７０６の「ｎｏ」出力）、ハードウェア管理コンソールは、区画が使用可能な、区画に割り振られたシステム・リソースを有する区画を作成する（ステップ７１０）。これらの使用可能なシステム・リソースも、ＩＰアドレス、メモリ、ＣＰＵ、ネットワーク・アダプタなどを含む、様々なハードウェア要素を含むことができる。
【００６０】
ハードウェア管理コンソールは、すべての非必須の環境要因を停止することによって、区画をセキュアにすることができる（ステップ７１２）。非必須の環境要因は、たとえば、ユーザまたは他のアプリケーションによる区画へのアクセスを含むことができる。このように、区画は、ユーザまたは他のアプリケーションが区画内のデータにアクセスするのを禁止することによって、セキュアにすることができる。ハードウェア管理コンソールは、区画内のアプリケーションを実行させるために必要な必須コンポーネントをハードウェア側にロードする（ステップ７１４）。このステップは、ランタイム・ライブラリ、ウェブサーバなどのロードを含むことができる。
【００６１】
次に、区画限定オペレーティング・システムは、セキュア区画内のアプリケーションまたはアプリケーションの一部を実行し（ステップ７１６）、その結果を要求側クライアントに送信する（ステップ７１８）。区画が、ＨＴＴＰＳトランザクションの結果などの結果をクライアントに送信する準備ができている場合、結果をクライアントに戻すことができる。ステップ７１６での結果は、アプリケーションが実行していたオリジナル区画上のアプリケーションに戻すこともできる（ステップ７２０）。アプリケーションがセキュア区画から結果を直接受け入れるためには、セキュア区画は、アプリケーションの発生元である区画のクローンとしなければならない。クローンは、結果をセキュア区画からクライアントに返送する場合の真のクローンである。クライアントが通常受け取るあらゆるハードウェアまたはソフトウェアＩＤは、要求が着信した区画のものと同じとなる。したがってクローニングは、アプリケーションがオリジナルの非セキュア区画上で実行しているかのように、いずれのハードウェアまたはソフトウェアＩＤもマスクするが、セキュア区画がクライアントに情報を直接返送している場合のみである。
【００６２】
アプリケーションがその処理を完了すると、区分管理ファームウェアは、割り振られたセキュア区画および割り振られたリソースを解放するため、および、ハードウェア管理コンソール構成からセキュア区画を除去するために、ハードウェア管理コンソールにシステム呼び出しを送信する（ステップ７２２）。
【００６３】
図８は、例示的諸実施形態に従った、ハードウェア区画が作成されたかどうかを決定するための、クライアントまたは実行区画内で実行されるプロセスを示す流れ図である。図８に示されたプロセスは、図１のクライアント１１０、１１２、または１１４、あるいは図５の区画５０２などの、クライアント内で実装可能である。クライアントまたは実行区画がセキュア区画に関する要求をアプリケーションから受け取った場合、プロセスが開始される（ステップ８０２）。クライアントまたは実行区画は、アプリケーションの実行に必要な特定のハードウェア・リソースを備えたセキュア区画を作成するように、ハードウェア管理コンソールに命じる（ステップ８０４）。次に、ハードウェア管理コンソールは、要求されたセキュア区画を指定されたシステムまたはサーバ上に作成する（ステップ８０６）。次に、ハードウェア管理コンソールが実際に要求されたセキュア区画を作成したかどうかが、クライアントまたは実行区画によって判別される（ステップ８０８）。クライアントまたは実行区画は、セキュア区画が作成されたか否かをハードウェア管理コンソールに通知する（ステップ８１０）。次に、プロセスはステップ８０４にループ・バックし、クライアントまたは実行区画は、アプリケーションの実行に必要な特定のハードウェア・リソースを備えたセキュア区画を作成するように、ハードウェア管理コンソールに別の命令を送信する。
【００６４】
図９は、例示的諸実施形態に従った、セキュア要求をセキュア区画に転送するための、実行区画オペレーティング・システム内で実行されるプロセスを示す流れ図である。図９に示されたプロセスは、図５の区画５０２で実装可能である。プロセスは、実行区画オペレーティング・システムがサーバ上の区画を監視することで開始される（ステップ９０２）。実行区画オペレーティング・システムは、ハードウェア管理コンソールがサーバ上にセキュア区画を作成したかどうかを判別する（ステップ９０４）。作成された場合、実行区画オペレーティング・システムは、セキュア要求および前提条件をセキュア区画に転送する（ステップ９０６）。ハードウェア管理コンソールがサーバ上にセキュア区画を作成しなかった場合、実行区画オペレーティング・システムは、ハードウェア区画が作成されなかった旨をアプリケーションまたはクライアントに通知する（ステップ９０８）。
【００６５】
図１０は、例示的諸実施形態に従った、ソフトウェア・コンポーネントをセキュア区画にクローニングするための、実行区画オペレーティング・システム内で実行されるプロセスを示す流れ図である。具体的に言えば、図１０は、セキュア・アプリケーションの実行に必要なハードウェアおよびソフトウェア・コンポーネントが、実行区画のオペレーティング・システムによってセキュア区画内にどのようにロードされるかを示す。図１０に示されたプロセスは、図５の区画５０２に実装可能である。プロセスは、セキュア区画が作成された場合、実行区画オペレーティング・システムがセキュア要求を受け取ることで開始される（ステップ１００２）。実行区画オペレーティング・システムは、セキュア要求および前提条件をセキュア区画に転送する（ステップ１００４）。作成されたセキュア区画がクローンであるかどうかに関して、実行区画オペレーティング・システムによって判別される（ステップ１００６）。実行区画のオペレーティング・システムは、セキュア区画内でソフトウェア・コンポーネントを実行するために必要な実行区画内で、任意のソフトウェア・コンポーネントを転送またはクローニングする。これらのソフトウェア・コンポーネントは、アプリケーション、アプリケーション内の手順、またはシステム上の何らかのデータにアクセスするセキュア移行要求を含むことができる。このように、セキュア区画内で実行するために必要なすべてのソフトウェア・コンポーネントは、実行区画上のソフトウェア・オペレーティング・システムによって転送される。作成されたセキュア区画がクローンの場合、実行区画オペレーティング・システムは、実行用のアプリケーションまたはセキュア要求に必要な、オペレーティング・システムならびにハードウェアおよびソフトウェアＩＤをクローニングする（ステップ１００８）。その後、プロセスはステップ１０１０へと続行される。
【００６６】
ステップ１００６へ戻り、作成されたセキュア区画がクローンでない場合、実行区画オペレーティング・システムは、アプリケーションまたはセキュア要求の実行に必要なライブラリ、アプリケーション・スタック、ウェブサーバ、データベースなどを、セキュア区画に直接転送する（ステップ１０１０）。実行区画オペレーティング・システムは、セキュアなアプリケーション、機能、または移行を実行する（ステップ１０１２）。その後、実行区画オペレーティング・システムは、セキュアなアプリケーション、機能、または移行の実行結果を、実行区画またはクライアントに戻す（ステップ１０１４）。
【００６７】
本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態、またはハードウェアおよびソフトウェアの両方の要素を含む実施形態の、形を取ることができる。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されない、ソフトウェア内に実装される。
【００６８】
さらに本発明は、コンピュータまたは任意の命令実行システムによって使用されるか、またはこれらに接続された、コンピュータ使用可能メディアまたはコンピュータ読み取り可能メディアからアクセス可能な、コンピュータ・プログラム製品の形を取ることができる。説明のために、コンピュータ使用可能メディアまたはコンピュータ読み取り可能メディアは、命令実行のシステム、装置、またはデバイスによって使用されるかあるいはこれらに接続されたプログラムの収容、格納、通信、伝播、または移送が可能な、任意の有形装置とすることができる。
【００６９】
メディアは、電子、磁気、光、電磁、赤外線、または半導体のシステム（あるいは装置またはデバイス）、あるいは伝播メディアとすることができる。コンピュータ読み取り可能メディアの例には、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛性磁気ディスク、および光ディスクが含まれる。光ディスクの現行例には、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読み取り／書き込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤが含まれる。
【００７０】
さらに、コンピュータ・ストレージ・メディアは、コンピュータ読み取り可能プログラム・コードがコンピュータ上で実行された場合、このコンピュータ読み取り可能プログラム・コードの実行により、通信リンクを介してコンピュータに他のコンピュータ読み取り可能プログラム・コードを伝送させるように、コンピュータ読み取り可能プログラム・コードを収容または格納することができる。この通信リンクは、たとえば制限なし、物理、または無線の、メディアを使用することができる。
【００７１】
プログラム・コードの格納あるいは実行またはその両方に好適なデータ処理システムは、システム・バスを介してメモリ要素に直接または間接的に結合された、少なくとも１つのプロセッサを含むことになる。メモリ要素は、プログラム・コードの実際の実行時に使用されるローカル・メモリと、大容量ストレージと、実行時に大容量ストレージからコードを取り出さなければならない回数を削減するために少なくともいくつかのプログラム・コードの一時ストレージを提供するキャッシュ・メモリとを、含むことができる。
【００７２】
入力／出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない）は、直接、または介在するＩ／Ｏコントローラを介して、システムに結合することができる。
【００７３】
ネットワーク・アダプタは、データ処理システムを、介在する専用または公衆ネットワークを介して、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにするために、システムに結合することもできる。モデム、ケーブル・モデム、およびＥｔｈｅｒｎｅｔ（ＴＭ）カードは、ネットワーク・アダプタの現在使用可能なタイプの一部にすぎない。
【００７４】
以上、例示および説明の目的で本発明について説明してきたが、これは本発明を網羅するか、または開示された形に限定することを意図するものではない。当業者であれば、多くの修正形態および変形形態が明らかとなろう。実施形態は、本発明の原理、実際の応用例を最も良く説明するため、および、他の同業者が、企図された特定の用途に好適な様々な修正を伴う様々な実施形態について本発明を理解できるように、選択および説明されたものである。
【図１】
0005398726.tif 000002
【図２】
0005398726.tif 000003
【図３】
0005398726.tif 000004
【図４】
0005398726.tif 000005
【図５】
0005398726.tif 000006
【図６】
0005398726.tif 000007
【図７】
0005398726.tif 000008
【図８】
0005398726.tif 000009
【図９】
0005398726.tif 000010
【図１０】
0005398726.tif 000011