(57)【要約】  オペレーティングシステムをホストするホスト処理システムと、データ通信メディアからデータを受信し、データ通信メディアへデータを送信する通信アダプタと、不揮発性ストレージを含むコンピュータプラットフォームを記す。コンピュータプラットフォームは、不揮発性ストレージの少なくとも一部に対するリード専用又はリード／ライトアクセスを行なう目的で、オペレーティングシステムと独立に実行できるエージェントを更に含む。【選択図】図２
2008512746.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムをホストする中央処理ユニットを含むホスト処理システムと、
データ通信メディアからデータを受信すること、及びデータ通信メディアに対してデータを送信することのうち少なくとも１つを行なう通信アダプタと、
不揮発性ストレージと、
前記通信アダプタにおいて受信した要求に応じて、外部プロセスによって前記不揮発性ストレージデバイスの少なくとも１部分へのリード専用アクセス及びリード／ライトアクセスのうちの少なくとも１つを行なう、前記オペレーティングシステムと独立して実行できるエージェントとを含むコンピュータプラットフォーム。
【請求項２】
前記エージェントは、前記オペレーティングシステムと独立して実行する、前記中央処理ユニットの処理スレッドによってホストされる請求項１に記載のコンピュータプラットフォーム。
【請求項３】
前記コンピュータプラットフォームは、前記中央処理ユニットと独立に前記エージェントをホストするマイクロコントローラ及びマイクロプロセッサのうちの１つを含む請求項１に記載のコンピュータプラットフォーム。
【請求項４】
前記ホスト処理システムは、前記オペレーティングシステムのドメイン内でアプリケーションプログラムの１つ以上のインスタンスをホストし、
前記エージェントは、前記不揮発性メモリデバイスの１部分をアプリケーションプログラムのインスタンスの使用に、前記アプリケーションに関連した所定の最大割り当てサイズまで割り当てるロジックを含む請求項１に記載のコンピュータプラットフォーム。
【請求項５】
前記ホスト処理システムは、前記オペレーティングシステムのドメインにおいてアプリケーションプログラムの１つ以上のインスタンスをホストし、
前記エージェントは、アプリケーションプログラムの１つ以上の前記インスタンスに、前記不揮発性ストレージの所定の部分にハードウェア及びコンフィグレーションデータの少なくとも１つを格納させるロジックを含む請求項１に記載のコンピュータプラットフォーム。
【請求項６】
前記エージェントは更に、前記通信アダプタにおいて受信した要求に応じて、前記不揮発性ストレージに格納された前記コンフィグレーションデータの少なくとも１部分へのリード専用アクセス及びリード／ライトアクセスのうちの少なくとも１つを、前記オペレーティングシステムと独立に前記外部プロセスに行わせるロジックを含む請求項５に記載のコンピュータプラットフォーム。
【請求項７】
前記エージェントは、アプリケーションプログラムに関連した識別子を含む、前記通信アダプタから受信した登録要求メッセージに基づいて、前記アプリケーションプログラムのインスタンスを特定するロジックと、
前記登録要求メッセージ内の情報に基づいて、前記アプリケーションプログラムの前記インスタンスに関連した固有の識別子を生成するロジックとを含む請求項１に記載のコンピュータプラットフォーム。
【請求項８】
前記通信アダプタは、ＰＣＩインターフェースによって前記ホスト処理システムと結合される請求項１に記載のコンピュータプラットフォーム。
【請求項９】
前記エージェントは更に、前記通信アダプタから受信した割り当て要求メッセージに応じて、アプリケーションプログラムの登録されたインスタンスに対して、前記不揮発性メモリの１部分を割り当てるロジックを含む請求項７に記載のコンピュータプラットフォーム。
【請求項１０】
前記登録要求メッセージは、アプリケーションプログラムベンダを特定する情報を含む請求項７に記載のコンピュータプラットフォーム。
【請求項１１】
不揮発性ストレージと通信アダプタとを含むコンピュータプラットフォーム上でオペレーティングシステムをホストする工程と、
データ通信メディア上の前記通信アダプタにおいて外部プロセスからメッセージを受信する工程と、
前記受信したメッセージに応じて、前記不揮発性ストレージの少なくとも１部分へのリード専用アクセス及びリード／ライトアクセスのうちの少なくとも１つを前記オペレーティングシステムと独立に行なう工程とを含む方法。
【請求項１２】
前記コンピュータプラットフォームは、中央処理ユニットを含み、
前記方法は更に、前記中央処理ユニットの第１の処理スレッド上で前記オペレーティングシステムを実行する工程と、
前記受信されたメッセージに応じて、前記中央処理ユニットの第２の処理スレッド上で、前記不揮発性ストレージの少なくとも１部分へのアクセスを実行する工程とを含む請求項１１に記載の方法。
【請求項１３】
前記方法は更に、
前記コンピュータプラットフォームの中央処理ユニット上で前記オペレーティングシステムを実行する工程と、
前記受信したメッセージに応じて、前記不揮発性ストレージの少なくとも１部分へのアクセスを前記コンピュータプラットフォームのマイクロプロセッサ及びマイクロコントローラのうちの１つ上で前記中央処理ユニットと独立に実行する工程とを含む請求項１１に記載の方法。
【請求項１４】
前記方法は更に、
前記オペレーティングシステムのドメイン内でアプリケーションプログラムの１つ以上のインスタンスをホストする工程と、
前記不揮発性メモリデバイスの１部をアプリケーションプログラムの１つ以上のインスタンスの少なくとも１つの使用に、前記アプリケーションに関連した所定の最大サイズまで割り当てる工程とを含む請求項１１に記載の方法。
【請求項１５】
前記ホスト処理システムは、前記オペレーティングシステムのドメイン内で１つ以上のアプリケーションプログラムをホストし、
前記方法は更に、前記１つ以上のアプリケーションプログラムに、
前記不揮発性ストレージの所定の部分にハードウェア及びコンフィグレーションデータのうちの少なくとも１つを格納させる工程を含む請求項１１に記載の方法。
【請求項１６】
前記方法は更に、前記通信アダプタにおいて受信した要求に応じて、前記不揮発性ストレージに格納された前記コンフィグレーションデータの少なくとも１部分へのリード専用アクセス及びリード／ライトアクセスのうちの少なくとも１つを前記オペレーティングシステムと独立に行なう工程を含む請求項１５に記載の方法。
【請求項１７】
前記方法は更に、アプリケーションプログラムに関連した識別子を含む、前記通信アダプタから受信した登録要求メッセージに基づいて、前記アプリケーションプログラムのインスタンスを特定する工程と、
前記登録要求メッセージ内の情報に基づいて、前記アプリケーションプログラムの前記インスタンスに関連した固有の識別子を生成する工程とを含む請求項１１に記載の方法。
【請求項１８】
前記エージェントは更に、前記通信アダプタから受信した割り当て要求メッセージに応じて、登録されたアプリケーションに対して、前記不揮発性メモリの１部分を割り当てるロジックを含む請求項１７に記載のコンピュータプラットフォーム。
【請求項１９】
前記登録要求メッセージは、アプリケーションプログラムベンダを特定する情報を含む請求項１７に記載のコンピュータプラットフォーム。
【請求項２０】
オペレーティングシステムをホストする中央処理ユニットを含むホスト処理システムと、
不揮発性ストレージと、
前記不揮発性ストレージの１部分の割り当を、前記オペレーティングシステムと独立に実行できるエージェントとを含み、
前記エージェントは、前記アプリケーションプログラムに関連した所定の最大サイズまで、前記割り当て可能部分の少なくとも１つのサブ部分へのアクセス権をアプリケーションプログラムのインスタンスに割り当てるロジックを含むコンピュータプラットフォーム。
【請求項２１】
前記エージェントは、それぞれのレコードがアプリケーションプログラムのインスタンスに関連しており、前記割り当て可能部分のサブ部分の最大割り当て量を示す情報を含む複数のレコードを含むデータストラクチャを保持する請求項２０に記載のコンピュータプラットフォーム。
【請求項２２】
前記複数のレコードは、前記割り当て可能部分を越えるサブ部分割り当ての総量を特定する請求項２１に記載のコンピュータプラットフォーム。
【請求項２３】
前記複数のレコードの１つ以上は、パートナアプリケーションプログラムベンダに関連しており、前記レコードの１つ以上は、ノンパートナアプリケーションプログラムベンダに関連する請求項２１に記載のコンピュータプラットフォーム。
【請求項２４】
前記エージェントは、パートナアプリケーションプログラムベンダに関連したアプリケーションプログラムのインスタンスに対する割り当て目的で、前記割り当て可能部分の１部分をリザーブするロジックを含む請求項２３に記載のコンピュータプラットフォーム。
【請求項２５】
前記エージェントは更に、アプリケーションプログラムのインスタンスからのコマンドに応じて、前記割り当て可能部分の１部分を割り当てるロジックと、
前記アプリケーションプログラムの前記インスタンスがパートナアプリケーションプログラムベンダに関連していない場合、前記コマンドに応じて、前記割り当て可能部分の前記リザーブされた部分の割り当てを拒否するロジックとを含む請求項２４に記載のコンピュータプラットフォーム。
【請求項２６】
前記エージェントは、前記アプリケーションプログラムの前記インスタンスからのコマンドに応じて、前記アプリケーションプログラムの前記インスタンスに対して、前記サブ部分を割り当てる請求項２０に記載のコンピュータプラットフォーム。
【請求項２７】
前記エージェントは、
前記アプリケーションプログラムの前記インスタンスからの第１のコマンドに応じて、前記アプリケーションプログラムの前記インスタンスに対して前記サブ部分を割り当て、
前記アプリケーションプログラムの前記インスタンスからの第２のコマンドに応じて、前記アプリケーションプログラムの前記インスタンス以外のプロセスに対して前記サブ部分を割り当てる請求項２０に記載のコンピュータプラットフォーム。
【請求項２８】
前記コンピュータプラットフォームは更に、通信アダプタを含み、
前記アプリケーションプログラムの前記インスタンス以外の前記プロセスは、前記通信アダプタによって前記コンピュータプラットフォームと通信可能に接続された処理システム上でホストされる請求項２３記載のコンピュータプラットフォーム。
【発明の詳細な説明】
【技術分野】
【０００１】
１．分野
ここに記した発明の主題は、コンピュータアセットの管理に用いるシステムに関連する。具体的には、ここに記した発明の主題は、コンピュータプラットフォーム上で、そのコンピュータプラットフォーム上でホストされるオペレーティングシステムと独立に実行できるプロセスの使用に関する。
【背景技術】
【０００２】
２．情報
企業は通常、ローカルエリアネットワーク（ＬＡＮ）及びワイドエリアネットワーク（ＷＡＮ）内のデータリンクによって結合されるコンピュータアセットを活用する。これらのコンピュータアセットは通常、ワード処理プログラム、電子メールプログラム及び表計算プログラム等の１つ以上のアプリケーションプログラム、及びオペレーティングシステムを含むソフトウェアビルドをホストする。これらのコンピュータアセットを管理する目的で、企業は通常、ハードウェア又はソフトウェアコンフィグレーション情報を確定し、
コンピュータアセットの一覧を最新のものに維持するアセットマネージメントアプリケーションを採用する。又、幾つかの企業は、セキュリティ脆弱性の発見及び修正を行なうネットワークセキュリティアプリケーション、及び、システムクラッシュが発生したときに、システムコンフィグレーションのリカバリを行なうオペレーティングシステムリカバリツールを採用する。
【図面の簡単な説明】
【０００３】
本発明の限定的及び網羅的でない実施形態を、以下の図面を参照して説明する。特に述べない限りは、全ての図面を通して同じ参照番号は同じ構成要素を示す。
【０００４】
【図１Ａ】本発明の１つの実施形態に準じたコンピュータプラットフォームを示す。
【０００５】
【図１Ｂ】図１Ａに示したコンピュータプラットフォームの１つの形態に準じたコンピュータプラットフォームを含み、企業情報技術環境内に採用されるネットワークトポロジを示す。
【０００６】
【図１Ｃ】図１Ａに示したコンピュータプラットフォームの１つの形態に準じたコンピュータプラットフォームを含み、サービスネットワーク内に採用されるネットワークトポロジを示す。
【０００７】
【図２】図１に示したコンピュータプラットフォームの１つの形態に準じた、オペレーティングシステム独立エージェントをホストするコンピュータプラットフォームの態様を示す。
【０００８】
【図３】図２に示したオペレーティングシステム独立エージェントの１つの形態に準じた、オペレーティングシステム独立エージェントとアプリケーションプログラム間の相互関係を示す。
【０００９】
【図４】図３に示したストレージマネージャの１つの形態に準じた、不揮発性ストレージの一部にアクセスする権利を割り当てるプロセスを示すフロー図である。
【００１０】
【図５】図２に示したコンピュータプラットフォームの１つの形態に準じた、ストレージマネージャと情報をやり取りするプロセスの１つの形態を示す。
【発明を実施するための最良の形態】
【００１１】
ここで用いる「ある１つの形態」又は「１つの形態」とは、実施形態に関連して記載された特定の特徴、構造又は特性が本発明の少なくとも１つの形態に含まれることを意味する。従って、異なる箇所で用いられた「ある１つの形態」又は「１つの形態」が同一の実施形態を指す必要は無い。更に、特定の特徴、構造又は特性は１つ以上の実施形態の中で組み合わされても良い。
【００１２】
ここで用いる「機械可読」命令とは、１つ以上のロジック演算を実行する１つ以上の機械が理解できる表現に関連する。例えば、機械可読命令は１つ以上のデータオブジェクト上で１つ以上の演算を実行するプロセッサコンパイラが理解できる命令を含んでも良い。しかしながら、これは機械可読命令の単なる一例であって、本発明の形態はこれに限定されない。
【００１３】
ここで用いる「記憶メディア」とは、１つ以上の機械が理解できる表現を保持できるメディアに関連する。例えば、記憶メディアは機械可読命令又はデータを格納する１つ以上の記憶デバイスを含んでも良い。このような記憶デバイスは、例えば、光学、磁気又は半導体記憶メディアなどの記憶メディアを含んでも良い。しかしながら、これらは記憶メディアの単なる例であって、本発明の形態はこれらに限定されない。
【００１４】
ここで用いる「不揮発性ストレージ」とは、電力を供給しないときも、情報を保持できる記憶メディアに関連する。このような不揮発性ストレージは、例えば、書き込み可能光学メディア、磁気メディア（例えばハードディスクメモリ）、又は半導体メディア（例えばフラッシュメモリ）等の記憶メディアを含んでも良い。しかしながら、これらは不揮発性ストレージの単なる例であって、本発明の形態はこれに限定されない。不揮発性ストレージと通信するデバイスは、情報を取り出す目的で、不揮発性ストレージの一部に「リードアクセス」しても、不揮発性ストレージの一部に情報を格納する目的で「ライトアクセス」しても良い。
【００１５】
ここで用いる「ロジック」とは、１つ以上のロジック演算を実行するシステムに関連する。例えば、ロジックは１つ以上の入力信号に基づいて１つ以上の出力信号を出力する回路を含んでも良い。このような回路は、デジタル入力信号を受け取り、デジタル出力信号を出力する有限ステートマシーン、又は１つ以上のアナログ入力信号に応じて１つ以上のアナログ出力信号を出力する回路であっても良い。このような回路は、特定用途集積回路（ＡＳＩＣ）又はフィールドプログラムゲートアレイ（ＦＰＧＡ）の形で提供されても良い。更に、ロジックは、機械可読命令を実行する処理回路と共に、記憶メディアに格納された機械可読命令を含んでも良い。しかしながら、これらはロジックを提供する構造の単なる例であって、本発明の形態はこれに限定されない。
【００１６】
ここで用いる「処理システム」とは、コンピュータタスクを実行するハードウェア及びソフトウェアリソースの組み合わせに関連する。例えば、処理システムは予め定められた命令セットに従いデータを処理する機械可読命令を実行する目的で、システムメモリ及び処理回路（例えば、中央処理装置（ＣＰＵ）又はマイクロコントローラ）を含んでも良い。しかしながら、これは処理システムの単なる一例であり、本発明の形態はこれに限定されない。ここで用いる「ホスト処理システム」とは、「周辺機器」との通信に適した処理システムに関連する。例えば、周辺機器は、ホスト処理システム上でホストされるアプリケーションプロセスに入力信号を送信しても、アプリケーションプロセスからの出力信号を受信しても良い。しかしながら、これらはホスト処理システム及び周辺機器の単なる例であり、本発明の形態はこれに限定されない。
【００１７】
ここで用いる「アプリケーションプログラム」とは、１つ以上のタスクを実行する目的で、機械可読命令に従って実行される１つ以上の手順に関連する。このようなアプリケーションプログラムは、予め定められたユーザの要求に準じた結果を提供する目的で作られても良い。アプリケーションプログラムは、例えば、電子表計算、文書処理プログラム、アセットマネージメントプログラム及びエージェント、システムマネージメントプログラム及びエージェント、ユーザインターフェース、及び通信に関連したアプリケーションプログラムを含んでも良い。しかしながら、これらはアプリケーションプログラムの単なる例であり、本発明の形態はこれらに限定されない。
【００１８】
ここで用いる「オペレーティングシステム」とは、アプリケーションプログラムと処理システムの処理リソースとの間の通信を促進する１つ以上の実行可能手順に関連する。このようなオペレーティングシステムは、アプリケーションプログラムに処理リソースを割り当てても良く、アプリケーションプログラムをサポートすべく、処理リソース上で実行される呼び出し可能なソフトウェア手順を含んだアプリケーションプログラミングインターフェース（ＡＰＩ）を提供しても良い。しかしながら、これらはオペレーティングシステムの単なる例であって、本発明の形態はこれらに限定されない。
【００１９】
ここで用いる「エージェント」とは、１つ以上の定められたタスクを実行する処理システムに関連するプロセスに関連する。このようなタスクは、例えば、情報の収集、処理システムに関連したイベント又は状態の検知、イベント又は状態の検知に応じた手順の実行、又はコンピュータプラットフォームの１つ以上の部分に確実なアクセスを行なうことであっても良い。エージェントがデータネットワーク上の第２のノードに関連してホストされるプロセスとデータネットワークを介して通信できるよう、エージェントはデータネットワーク上の第１のノードと関連したコンピュータプラットフォーム上でホストされても良い。しかしながら、これらはエージェントの単なる例であり、本発明の形態はこれらに限定されない。
【００２０】
ここで用いる「データ通信メディア」とは、データ通信に適したメディアに関連する。データ通信メディアは、例えば、通信ケーブル（例えば、同軸、ツイストワイアペア又はファイバ光学ケーブル）、無線通信メディア又は電力ライン等のメディアのうちの１つを含んでも良い。しかしながら、これらはデータ通信メディアの単なる例であり、本発明の形態はこれに限定されない。
【００２１】
ここで用いる「通信アダプタ」とは、データ通信メディアに接続された他のデバイスにデータを送信又は他のデバイスからデータを受信する目的で、データ通信メディアに接続されたデバイスに関連する。例えば、通信アダプタは、ローカルエリアネットワーク等のネットワークに接続されたデバイスにデータを送信、又はデバイスからデータを受信する目的で設計されたネットワークアダプタを含んでも良い。このようなネットワークアダプタは、例えば、ＩＥＥＥ  Ｓｔｄ．８０２．３、ＩＥＥＥ  Ｓｔｄ．８０２．１１、ＩＥＥＥ  Ｓｔｄ．８０２．１６、ＵＳＢ、ＩＥＥＥ１３９４、非同期転送モード（ＡＴＭ）、同期光伝送網（ＳＯＮＥＴ）、又は同期デジタルハイアラーキ（ＳＤＨ）規格に準じた通信フォーマット等のデータ通信フォーマットの１つに準じて、他のデバイスと通信しても良い。他の形態として、通信アダプタは、例えば、データ記憶システムを接続するアダプタ等である他のＩ／Ｏデバイスの１つを含んでも良い。しかしながら、これらは通信アダプタの単なる例であり、本発明の形態はこれらに限定されない。
【００２２】
つまり、本発明の形態はオペレーティングシステムのホストとなるホスト処理システム、データ通信メディア及び不揮発性ストレージにデータを送信、及び/又はそれらからデータを受信する通信アダプタを含むコンピュータプラットフォームに関連する。コンピュータプラットフォームは更に、要求に応じて外部プロセスによって、不揮発性ストレージの少なくとも一部にリードアクセス又はライトアクセスを可能とするオペレーティングシステムと独立に実行可能なエージェントを含んでも良い。しかしながら、これは本発明の単なる一例であり、他の形態はこれらに限定されない。
【００２３】
図１Ａは、ＣＰＵ１２、システムメモリ１６、及びコンピュータプラットフォーム１０においてデバイス間の通信を可能とするコアロジック１４を含むコンピュータプラットフォーム１０を示す。ＣＰＵ１２は、例えば、インテル製のＰｅｎｔｉｕｍ(r)、Ｃｅｌｅｒｏｎ(r)、Ｘｅｏｎ(r)、Ｉｔａｎｉｕｍ(r)、又は ＸＳｃａｌｅ(r)等のＣＰＵである一般的なプロセッサのうちの１つを含んでも良い。しかしながら、これらはＣＰＵの単なる例であって、本発明の形態はこれらに限定されない。コアロジック１４は、コンピュータプラットフォームにおいてデバイス間の通信を制御するデバイス（例えば、インテル製のメモリコントローラハブ（ＭＣＨ）及び／又はＩ／Ｏコントロールハブ（ＩＣＨ））の１つを含んでも良い。しかしながら、これらはコンピュータプラットフォームにコアロジックを提供するデバイスの単なる例であって、本発明の形態はこれらに限定されない。システムメモリ１６は、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ラムバスＤＲＡＭ（ＲＤＲＡＭ）又はデュアルレートＤＲＡＭ（ＤＤＲ）等の１つ以上のランダムアクセスメモリ（ＲＡＭ）デバイスを含んでも良い。しかしながら、これらはシステムメモリを提供する目的で用いられるメモリデバイスの単なる例であって、本発明の形態はこれらに限定されない。
【００２４】
コンピュータプラットフォーム１０は更に、データ通信プルトコル（例えば、ファイバチャネル、ＩＥＥＥ  Ｓｔｄ．８０２．３、ＩＥＥＥ  Ｓｔｄ．８０２．１１、ＩＥＥＥＳｔｄ．８０２．１６、同期光伝送網／同期デジタルハイアラーキ（ＳＯＮＥＴ／ＳＤＨ）、ＵＳＢ又はＩＥＥＥ１３９４）の１つに準じて、データ通信メディア（例えば、無線通信メディア、又は同軸、ファイバ光学又はシールド無しツイストワイアペアケーブル）にデータを送信、又はデータ通信メディアからデータを受信することを可能とする通信アダプタ２０を含んでも良い。通信アダプタ２０は周辺機器相互接続（ＰＣＩ）データバス等の多重データバス２２によってコアロジック１４に接続されても良い。コアロジック１４は、ＣＰＵ１２及び通信アダプタ２０等の、コンピュータプラットフォーム内に存在する他の構成要素のうちのシステムメモリ１６に対してリード及びライトアクセス処理を仲介しても良い。例えば、コアロジック１４は、バイト、ワード又はページアドレス可能メモリ処理、又は、システムメモリ１６とコンピュータプラットフォーム１０内の他の構成要素との間のダイレクトメモリアクセス（ＤＭＡ）処理を行っても良い。
【００２５】
コンピュータプラットフォーム１０は、コンピュータプラットフォーム１０の電力が切られたときでも、アドレス可能ロケーションに情報を格納できる不揮発性ストレージ（ＮＶＳ）１８を含んでも良い。ＮＶＳ１８は、フラッシュメモリデバイス、ポリマメモリデバイス、磁気メモリデバイス、又は光学メモリデバイス等の不揮発性メモリデバイスのうちの１つを含んでも良い。１つの形態によれば、ＮＶＳ１８は、ＣＰＵ１２上でホストされ、実行される構成要素又はプロセス、又は、通信アダプタ２０を介してコンピュータプラットフォーム１０と通信する構成要素又はプロセスによってリードアクセス又はライトアクセス可能であっても良い。他の形態として、通信アダプタ２０は、アプリケーションプログラムによってアクセス可能な組み込み型不揮発性メモリ（図示せず）を含んでも良い。
【００２６】
１つの形態によると、ＣＰＵ１２及びシステムメモリ１６はオペレーティングシステム、及びオペレーティングシステムの制御下において実行できるアプリケーションプログラムをホストしても良い。アプリケーションプログラムは、オペレーティングシステムによって規定されたＡＰＩと相互通信する目的で構築されても良い。オペレーティングシステムの制御下のプロセス及びアプリケーションプログラムに加えて、他のプロセスは、コンピュータプラットフォーム１０上でホストされるオペレーティングシステムと独立して保持及び実行されても良い。オペレーティングシステムと独立したプロセスは、オペレーティングシステムの状態に関わらず（例えば実行中、低電力状態、又はシステムクラッシュによる不具合状態）、不揮発性ストレージ（例えばＮＶＳ１８、又は通信アダプタ２０に組み込まれた他の不揮発性ストレージ（図示せず））の一部にアクセスしても良い。オペレーティングシステム独立プロセスによるこのようなアクセスは、オペレーティングシステムが実行中であろうとなかろうとハードウェア又はソフトウェアコンフィギュレーション情報を確定する目的で不揮発性ストレージにアクセスするものであっても良い。ネットワークセキュリティアプリケーションはセキュリティの脆弱性を発見及び修正する目的で不揮発性ストレージにアクセスしても良い。オペレーティングシステムリカバリツールは、オペレーティングシステムがクラッシュしたときにアプリケーションを修復する目的で、ハードウェア又はソフトウェアコンフィギュレーション情報にアクセスすべく、不揮発性ストレージにアクセスしても良い。
【００２７】
コンピュータプラットフォーム１０は、コンピュータプラットフォーム１０の１つ以上のサブシステムと通信するためのシステムメモリ１６、及びＣＰＵ１２上でホストされる１つ以上のプロセスを含む電力マネージメントシステムを含んでも良い。例えば、電力マネージメントシステムは、１つ以上のイベント又は状況の検知に応じて、サブシステムを低電力状態に移行しても良い。電力マネージメントシステムはその後、他のイベントに応じて、サブシステムをフル電力状態に戻しても良い。電力マネージメントシステムは、１９９９年２月２日発行のＡＣＰＩ仕様書改訂版１．０ｂ（以後ＡＣＰＩ仕様書とする）で詳細を説明されている ＡＣＰＩ（Ａｄｖａｎｃｅｄ Ｃｏｎｆｉｇｕｒａｔｉｏｎ ａｎｄ Ｐｏｗｅｒ Ｉｎｔｅｒｆａｃｅ）に準じて形成されても良い。しかしながら、これはコンピュータプラットフォームと関連した電力マネージメントシステムの単なる一例であって、本発明の形態はこれらに限定されない。
【００２８】
１つの形態によると、オペレーティングシステムの制御下の、又は通信アダプタ２０を介してコンピュータプラットフォーム１０を遠隔的に実行及び通信するプロセスに、不揮発性ストレージの一部へのライト又はリードアクセス権を提供しても良い。例えば、そのようなプロセスは、アセットマネージメントアプリケーション、ネットワークセキュリティアプリケーション又はオペレーティングシステムリカバリツールの一環としてハードウェア又はソフトウェアコンフィギュレーション情報を格納又は取り出ししても良い。
【００２９】
１つの形態によると、通信アダプタ２０はデータ通信メディア２４を介して外部ノード２６と通信しても良い。外部ノード２６は、ＣＰＵ１２上でホストされるアプリケーションプログラム、又はコンピュータプラットフォーム１０上でホストされる他のプロセスと情報をやり取りできるプロセスをホストしても良い。又は、通信アダプタ２０にコマンドを送信することで、外部ノードは不揮発性ストレージの一部に対してリード又はライトアクセスしても良い。
【００３０】
図１Ｂに企業情報技術環境におけるコンピュータプラットフォーム１０の使い方の１つを示す。ルータ３４は、（コンピュータプラットフォーム１０の１つの形態に準じて形成された）コンピュータプラットフォーム３２、ピアコンピュータプラットフォーム３６及びサーバ３８との間においてデータパケットのルーティングを行なっても良い。従って、ピアコンピュータプラットフォーム３６又はサーバ３８は、不揮発性ストレージから情報を格納又は取り出す目的で、通信アダプタを介して、コンピュータプラットフォーム３２上でホストされるオペレーティングシステム独立エージェントと通信しても良い。
【００３１】
図１Ｃにサービスネットワークトポロジ４０における複数のサブスクライバプラットフォーム４２の１つとしてコンピュータプラットフォーム１０を用いた他の形態を示す。１つの形態によると、分配ノード４４は、サブスクライバプラットフォーム４２にサービス（例えばＡＴＭサービス）を提供するエンドツーエンドのインフラの一環として音声、データ、又はビデオサービスを提供する。分配ノード４４は、１つ以上のサービス（例えば、音声データ、ビデオデータ又はインターネットデータ）を提供する目的で、データパケット（例えば、インターリーブＡＴＭセル又はソネットフレーム内のＩＰパケットを送信する同期光伝送網（ＳＯＮＥＴ）リンク）を送信する高速データリンク４７によってサービスネットワークと接続しても良い。しかしながら、これは分配ノードがどのようにサービスネットワークと接続しても良いかを示す単なる一例であって、本発明の形態はこれらに限定されない。
【００３２】
サブスクライバプラットフォーム４２にサービスを提供するには、分配ノード４４は、分配ノード４４の下流のネットワークエレメントである、ＤＳＬＡＭ、ケーブルモデム通信システム（ＣＭＴＳ）又は無線通信ベースステーション等（図示せず）と通信するための装置を含んでも良い。サブスクライバプラットフォーム４２（例えば、パーソナルコンピュータ、セットトップボックス、携帯無線デバイス、ブロードバンドモデム等）は、例えば、ＤＳＬリンク、無線リンク、同軸ケーブル、又は非シールドツイストワイアペアを介したイーサネット等である、サブスクライバプラットフォーム４２にサービスを提供する目的でデータを送信するデータリンク４５のうちの１つを介して分配ノード４４と接続しても良い。他の形態として、サブスクライバプラットフォームは、ＡＴＭサービスを受信する目的で複数のデバイスと接続した電話装置（例えば構内交換システム）を更に含んでも良い。しかしながら、これらは、サブスクライバプラットフォームがどのように分配ノードと接合しても良いかを示す単なる例であって、本発明の形態はこれらに限定されない。１つの形態によれば、サービスネットワーク４６と接続した構成要件は、サブスクライバプラットフォーム４２内の不揮発性ストレージから情報を格納又は取り出しする目的で、通信アダプタを介して、サブスクライバプラットフォーム４２上でホストされるオペレーティングシステム独立エージェントと通信しても良い。
【００３３】
図２に、図１に示したコンピュータプラットフォーム１０の１つに形態に準じた、オペレーティングシステム独立エージェント１１６をホストするコンピュータプラットフォーム１００を示す。ＣＰＵ１１２は、コンピュータリソースを管理する目的で、オペレーティングシステム（ＯＳ）１１８の命令を実行しても良い。ＯＳ１１８はマイクロソフト製のＷｉｎｄｏｗｓ(r)、サンマイクロシステム製のＳｏｌａｒｉｓ(r)、又はウインドリバ製のオペレーティングシステムの商業的に利用できるバージョンのうちの１つを含んでも良い。あるいは、ＯＳ１１８はオープンソースＬｉｎｕｘオペレーティングシステムのいくつかのバージョンのうちの１つを含んでも良い。しかしながら、これらはコンピュータプラットフォーム上でホストされるオペレーティングシステムの単なる例であって、本発明の形態はこれらに限定されない。特に、ＯＳ１１８は、アプリケーションプログラム１２０及びアクセスドライバ１２２等の、ＣＰＵ１１２上のプロセスの実行を制御しても良い。
【００３４】
１つの形態によると、ＯＳ独立エージェント１１６は、ＯＳ１１８のドメイン内で実行されるプロセス、又はＯＳ１１８と独立して実行されるプロセスによって、不揮発性ストレージ１２８の１つ以上の部分に対するリード及び／又はライトアクセスを制御しても良い。ＯＳ独立エージェント１１６の特性は、ＯＳ１１８と独立して実行される記憶メディアに格納された機械可読命令によって具体化されてもよい。１つの形態として、ＣＰＵ１１２は（例えば、１つのプロセッシングコア又は複数のプロセッシングコア上でマルチスレッドを行なうことによって）マルチスレッド処理をサポートしても良い。ＯＳ独立エージェント１１６は、ＣＰＵ１１２の処理スレッド上で、ＯＳ１１８及びＯＳ１１８のドメイン内の他のプロセスを実行する他の処理スレッドと独立に実行されても良い。あるいは、ＯＳ独立エージェント１１６は、ＣＰＵ１１２と独立に、通信アダプタ２０（図１）に組み込まれたＭＩＰＳ又はＡＲＭプロセッシングコア等のマイクロプロセッサ又はマイクロコントローラ（図示せず）上で実行されても良い。しかしながら、これらはエージェントがどのようにオペレーティングシステムと独立にコンピュータプラットフォーム上でホストされるかを示す単なる例であって、本発明の形態はこれらに限定されない。
【００３５】
１つの形態によると、ＯＳ独立エージェント１１６は、アロケーションコントロールデータ（ＡＣＤ）１２６に準じて、アプリケーションプログラム又は他のプロセスに対する不揮発性ストレージ１２８の割り当てを制御する目的で、ストレージマネージャ１２４を含んでも良い。不揮発性ストレージ１２８は、バイオス（ＢＩＯＳ）プラットフォーム又はプライベートデータストレージに対してファームウェアを保持する１つ以上の不揮発性メモリデバイス（例えば、フラッシュメモリデバイス）を含んでも良い。ＯＳ独立エージェント１１６は、全ての割り当て、及び、少なくとも、アプリケーションプログラム又は他のプロセスのインスタンスによって用いられる割り当てに利用される不揮発性ストレージ１２８の所定の物理的部分（連続した部分又は非連続の部分）に対するリード及びライトアクセスを制御しても良い。１つの形態によれば、ＡＣＤ１２６は、ＯＳ独立エージェント１１６を介して、他のプロセスを除いてアクセス可能である不揮発性ストレージ１２８の専用部分に１つ以上のデータストラクチャを含んでも良い。アプリケーションプログラムの特定のインスタンス又は他のプロセスは、不揮発性ストレージ１２８の専用部分の一部の割り当てを要求しても良い。アプリケーションプログラムのインスタンスごとに、ＡＣＤ１２６は、識別子、インスタンスに対して利用できる割り当てのトータルサイズ、及びインスタンスに対する現在の割り当てサイズを含み、インスタンスに関連付けられたレコードを保持しても良い。１つの形態によれば、レコード内の識別子は、ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ Ｅｎｇｉｎｅｅｒｉｎｇ Ｔａｓｋ Ｆｏｒｃｅ）によって２００４年１月に発行されたＵＵＩＤ用ＵＲＮ名前空間インターネットドラフトに準じた汎用一意識別子（ＵＵＩＤ）に基づいても良い。特定の期間には、アプリケーションプログラムには１つ以上のインスタンスが存在するので、ＡＣＤ１２６内のレコードは、不揮発性ストレージ１２８の割り当てを受信する目的で、アプリケーションプログラムの特定のインスタンスと関連しても良い。対応するハンドル又は識別子はアプリケーションプログラムの特定のインスタンス用のＡＣＤ１２６内のレコードを、同一のアプリケーションプログラムの異なるインスタンス、及び他のアプリケーションプログラムのインスタンスと一意的に区別しても良い。
【００３６】
ストレージマネージャ１２４は、要求中のアプリケーションプログラム又はプロセスに関連したＡＣＤ２２６内のレコードに従って、不揮発性ストレージ１２８のさらなる部分を、最大サイズまで要求中のアプリケーションプログラム又はプロセスに割り当てても良い。他の一つの形態として、ＡＣＤ２２６は、不揮発性ストレージ１２８の専用部分上で利用できるストレージ容量を超えた、累積された見込まれるトータルメモリ割り当てを有する全てのアプリケーションプログラム又はプロセスに対する最大割り当てサイズを示しても良い。しかしながら、全てのアプリケーション又はプロセスが、ＡＣＤ２２６内のレコードで特定された、不揮発性ストレージ１２８の割り当てを要求しなくても良いことに留意すべきである。
【００３７】
コンピュータプラットフォーム１００のコンポーネントをアセンブルする製造者は、コンピュータプラットフォーム１００上でホストされるアプリケーションプログラムを展開及び提供するソフトウェアベンダとは異なっても良い。いずれにせよ、これらのパーティは、ストレージマネージャ１２４がソフトウェアベンダによって展開されたアプリケーションプログラムと関連する「パートナ」エントリをＡＣＤ２２６内に格納することに同意（例えば、契約上の合意）しても良い。これらのパートナエントリは、製造者とのそのような取り決めを有するソフトウェアベンダによって提供されていないアプリケーションプログラム又はプロセスに対応する、ＡＣＤ１２６内の他の「ノンパートナ」レコードと区別されても良い。そのようなノンパートナプロセス又はアプリケーションプログラムは、ストレージマネージャ１２４のベンダと契約上の関係を有さないベンダが提供しているプロセス又はアプリケーションプログラムを含んでも良い。１つの形態によれば、製造者は、パートナプロセス又はアプリケーションプログラムに関連するＡＣＤ１２６内のエントリを、コンピュータプラットフォーム１００が製造される時に予め搭載させても良い。ノンパートナプロセス又はアプリケーションプログラムに関連するＡＣＤ１２６内のエントリは、コンピュータプラットフォーム１００が配備された後でＡＣＤ１２６に加えられても良い。ノンパートナプロセス又はアプリケーションプログラムに関連したエントリは、例えば、以下に記載のとおり、ＯＳ独立エージェント１１６に最初に登録された、コンピュータプラットフォーム１００上で実行されるアプリケーションプログラム、又は通信アダプタ２０を介してコンピュータプラットフォーム１００と通信するリモートプロセスによってのちに生成されても良い。ノンパートナエントリのこのような生成は、企業情報技術環境において、システムマネージャの制御の下、システムマネージメントアプリケーションによって実行されても良い。
【００３８】
１つの形態によれば、ストレージマネージャ１２４は、割り当て要求がパートナアプリケーションプログラムのインスタンスから受信したのか、或いはノンパートナアプリケーションプログラムのインスタンスから受信したのかに基づいて、不揮発性ストレージ１２８の専用部分の割り当て用に、異なったポリシを実行しても良い。例えば、ストレージマネージャ１２４は、パートナアプリケーションプログラムのインスタンス専用の割り当てに不揮発性ストレージ１２８の一部をリザーブしても良い。ストレージマネージャ１２４はそれから、パートナアプリケーションプログラム又はノンパートナアプリケーションプログラムのインスタンスに対して不揮発性ストレージ１２８の残りの部分をリザーブしても良い。
【００３９】
１つの形態によれば、例えば、ハードウェアコンフィギュレーション情報（例えば、ＣＰＵ、コアロジックチップセット、システムメモリ、ハードディスクドライブ、通信アダプタ、又は他の周辺機器の存在又は状態を表す情報）及びソフトウェアコンフィギュレーション情報（例えば、オペレーティングシステム、アプリケーションプログラムのバージョンを含むホスト上でホストされるアプリケーションプログラム、及びアプリケーションプログラムに関連するセキュリティパッチレベルの存在又は情報を表す情報）等の情報を格納する目的で、アプリケーションプログラムのインスタンス、又はプロセスは、不揮発性ストレージ１２８の一部の割り当ての要求をしても良い。
【００４０】
１つの形態によると、ＣＰＵ１１８上で実行するアプリケーションプログラムインスタンス又はプロセス（例えば、アプリケーションプログラムインスタンス１２０）は、コマンドインターフェース１１４を介してＯＳ独立エージェント１１６に対してコマンドを発行しても良い。ＯＳ１１８のドメイン外であるシステムメモリ１６内（図１）の所定のバッファを用いることで、アクセスドライバ１２２は、アプリケーションプログラムインスタンス又はプロセスからＯＳ独立エージェント１１６にコマンドインターフェース１１４を介してコマンドを送信しても良い。ＯＳ独立エージェント１１６がＣＰＵ１１２と独立にマイクロコントローラによって実行される形態では（例えば、通信アダプタ２０に組み込まれた形態）、例えば、コマンドインターフェース１１４はメモリマップドＩ／Ｏインターフェース（例えば、ＰＣＩローカルバス仕様に準じたもの）の形で実行されても良い。
【００４１】
リモートアプリケーションプログラムインスタンス又はプロセス（例えば、プロセッシングプラットフォーム１００の外部で実行するアプリケーションプログラムインスタンス、又はプロセス）はまた、通信アダプタ２０において受信されるインバンドメッセージとしてカプセル化されたコマンドをＯＳ独立エージェント１１６に対して発行しても良い。通信アダプタ２０において受信された後で、カプセル化されたコマンドは、ＯＳ独立エージェント１１６によって取り出される目的で、システムメモリ内の所定のバッファに格納されても良い。あるいは、ＯＳ独立エージェント１１６が通信アダプタ２０上のマイクロコントローラ上でＣＰＵ１１２と独立に実行される形態では、リモートアプリケーション又はプロセスはＯＳ独立エージェント１１６にアウトオフバンドメッセージの形でコマンドを送信しても良い。他の形態として、アプリケーションプログラム１２０は、通信アダプタ２０に送信されるアウトバウンドパケットの形でカプセル化されたコマンドをマイクロコントローラ上でホストされるＯＳ独立エージェント１１６に送信しても良い。通信アダプタ２０は、マイクロコントローラ上でホストされるＯＳ独立エージェント１１６に提供されるコマンドとしてアウトバウンドパケットを認識して、カプセル化されたコマンドを提供しても良い。１つの例として、通信アダプタ２０は、ＵＳパテント番号６，３８５，２１１に記載されている処理をするべく、アウトバウンドパケットの一部をマイクロコントローラに送信する目的で補助バスを含んでも良い。
【００４２】
図２に示したＯＳ独立エージェント１１６の１つの形態における、ＯＳ独立エージェント２１６とアプリケーションプログラム又はプロセスとの間の相互関係を図３に示す。アプリケーションプログラムインスタンス２０２は、オペレーティングシステム１１８のドメイン内に存在しても良く、コマンドインターフェース１１４を介してＯＳ独立エージェント１１６と通信しても良い。アプリケーションプログラムインスタンス２０４及び２０６は、オペレーティングシステム１１８のドメイン外、及びオペレーティングシステム１１８の制御範囲外に存在しても良い（例えば、アプリケーションプログラムインスタンス２０４及び２０６は、外部の処理システム上、又はオペレーティングシステム１１８を実行する処理スレッドと独立して実行する処理スレッド上で実行されても良い）。従って、これらアプリケーションプログラムインスタンスのどちらかが、コマンドインターフェース１１４（例えば、アプリケーションプログラムインスタンスがＣＰＵ１１２と独立したスレッド上で実行される場合）、又は通信アダプタ２０（例えば、アプリケーションプログラムインスタンスが外部の処理システム上で実行される場合）を介してＯＳ独立エージェント１１６と通信しても良い。
【００４３】
１つの形態によると、アプリケーションプログラムインスタンス２０２は、ストレージマネージャ２２４との通信に用いられるハンドル（又は固有の識別子）を取得する目的で、ストレージマネージャ２２４にその存在を登録しても良い。アプリケーションプログラムインスタンス２０２がベンダ名、アプリケーション名、企業名、及びＵＵＩＤ等の識別情報を提供する所定のプルトコルに準じて、この登録プロセスを行なっても良い。ストレージマネージャ２２４はそれから、要求中のアプリケーションプログラムインスタンス２０２によって提供される情報に基づいて、例えば、ハッシュアルゴリズム（ＳＨＡ―１等）を用いてハンドルを生成しても良い。ハンドルはそれから、アプリケーションプログラムインスタンス２０２とストレージマネージャ２２４との間のこの先の通信に用いられても良い。
【００４４】
ストレージマネージャ２２４での登録プロセスの後に、アプリケーションプログラムインスタンス２０２は、上記登録プロセスで生成されたハンドルを用いて、ＯＳ独立エージェント２１６に割り当てブロックコマンドを送信することによって、不揮発性ストレージ２２８の割り当て可能な部分の割り当てを要求しても良い。ハンドルに加えて、割り当てブロックコマンドは、要求された不揮発性ストレージ２２８のメモリ割り当てサイズ等の情報を含んでも良い。割り当てブロックコマンドを受信した直後に、要求が達成されたかどうかを確定する目的で、ストレージマネージャ２２４は（受信した割り当てブロックコマンド内の）ハンドルをＡＣＤ２２６内の情報と関連付けても良い。
【００４５】
１つの形態によると、アプリケーションプログラムインスタンス２０２に対する不揮発性ストレージ２２８の一部の割り当ての後に、アプリケーションプログラムインスタンス２０２は、他のプロセス又はアプリケーションプログラムに対する、不揮発性ストレージ２２８の割り当て部分へのリード専用アクセス権又はリード／ライトアクセス権を許可する新たなコマンドを、ストレージマネージャ２２４に提供しても良い。ストレージマネージャ２２４はそれから、不揮発性ストレージ２２８の割り当て部分に対するアクセスを制御しても良い。現在説明している形態によれば、例えば、アプリケーションプログラムインスタンス２０２は、アプリケーションプログラムインスタンス２０４又は２０６のどちらかに対するリード専用アクセス権又はリード／ライトアクセス権を許可するコマンドをストレージマネージャ２２４に提供しても良い。１つの例として、アプリケーションプログラムインスタンス２０２は、ストレージマネージャ２２４にライトブロックコマンドを送信することによって、不揮発性ストレージ２２８の割り当て部分内のハードウェア及び／又はソフトウェアコンフィギュレーション情報を定期的に更新しても良い。それから、アプリケーションプログラムインスタンス２０４又は２０６のどちらかが、ストレージマネージャ２２４にリードブロック要求を送信することによって更新されたコンフィギュレーション情報にアクセスしても良い。
【００４６】
他の例として、アプリケーションプログラムインスタンス２０４は、外部で実行されるマネージメントコンソールアプリケーションを含んでも良く、通信アダプタ２０（図１）を介してストレージマネージャ２２４にコマンドを送信しても良い。マネージメントコンソールアプリケーションは、企業情報技術環境において、コンピュータプラットフォーム１００のリモートマネージメメントを行っても良い。また、マネージメントコンソールアプリケーションは、アプリケーションプログラムインスタンス２０２に対して割り当てられた不揮発性ストレージの一部へのライトアクセスを有しても良く、コンピュータプラットフォーム１００上で現在ホストされている関連したアプリケーションプログラムのバージョンを更新（例えばセキュリティパッチ）しても良い。
【００４７】
他の例では、アプリケーションプログラムインスタンス２０６は、システムクラッシュが生じたときに、コンピュータプラットフォームのシステム状態を回復させるＯＳリカバリアプリケーションを含んでも良い。オペレーティングシステム１１８と独立に実行することで、ストレージマネージャ２２４は、オペレーティングシステム１１８が実行中であろうとなかろうと、アプリケーションプログラムインスタンス２０６に不揮発性ストレージ２２８の割り当て部分内の更新されたコンフィギュレーション情報を読み出させても良い。ＯＳ独立エージェント２１６がＣＰＵ１１２と独立に実行された場合（例えば、通信アダプタ２０に組み込まれたマイクロコントローラ又はマイクロプロセッサ上で）、ストレージマネージャ２２４はコンピュータプラットフォーム１００がフル電力状態であろうとなかろうと、更新されたコンフィギュレーション情報をアプリケーションプログラムインスタンス２０４又は２０６に遠隔的に読み出させても良い。もしくは、アプリケーションプログラムインスタンス２０４又は２０６は、コンピュータプラットフォーム１００が低電力状態のときに、不揮発性ストレージ２２８の割り当て部分に情報（例えば、更新されたコンフィギュレーション情報、パッチ等）を書き込んでも良い。コンピュータプラットフォーム１００がフル電力状態に移行すると（リセットプロセスを含む）、アプリケーションプログラム２０２は不揮発性ストレージ２２８の割り当て部分から保存された情報を取り出しても良い（例えば、パワーアップスクリプトの一部として）。
【００４８】
不揮発性ストレージ２２８の割り当て部分の割り当てを制御する目的で、ストレージマネージャ２２４は、ＡＣＤ２２６の１つ以上のデータストラクチャをメモリ（例えば、アプリケーションプログラムインスタンスに対して割り当てられたのではなく、不揮発性ストレージ２２８を管理する目的で用いられるデータストラクチャを格納する目的で用いられる不揮発性ストレージ２２８の一部）内に保持しても良い。アプリケーション登録リスト（ＡＲＬ）は、登録プロセスにおいてインスタンス用に生成されたハンドルによって特定される現在登録中のインスタンスそれぞれのリストを保持しても良い。ファクトリパートナアロケーションコントロールリスト（ＦＰＡＣＬ）は、アプリケーションプログラムをそのファクトリアプリケーション識別子と関連付ける、アプリケーションプログラムそれぞれのレコード、及びそのアプリケーションプログラムに許される最大の割り当て総量を保持しても良い。パートナアロケーションコントロールリスト（ＰＡＣＬ）は、不揮発性ストレージ２２８の一部を割り当てるパートナアプリケーションプログラム（例えば、ＦＰＡＣＬによって特定される）に関連する、登録されたアプリケーションプログラムインスタンスそれぞれのレコードを保持しても良い。同様に、ノンパートナアロケーションコントロールリスト（ＮＡＣＬ）は、不揮発性ストレージ２２８の一部を割り当てるパートナアプリケーションプログラムと関連しないアプリケーションプログラムインスタンスそれぞれのレコードを保持しても良い。ＰＡＣＬ又はＮＡＣＬ内のレコードは、登録されたアプリケーションプログラムインスタンスのハンドルと、アプリケーションプログラムインスタンスに対する最大の割り当て量及び現行の割り当て量を対応づけても良い。割り当てブロックリスト（ＡＢＬ）は、登録されたインスタンスそれぞれに割り当てられた不揮発性ストレージ２２８のブロックを特定しても良い。ＡＢＬ内のレコードは、ブロックハンドル、及び不揮発性ストレージ２２８内のサイズ及びベースアドレス等の情報を割り当てブロックと関連付けても良い。
【００４９】
図４は、前述の登録手順の後で、ストレージマネージャ２２４がアプリケーションプログラムインスタンス２０２からの割り当て要求を如何に処理するか（例えば、要求中のアプリケーションプログラムインスタンスに対するハンドルを割り当てる目的で）を示したフロー図である。ブロック３０２において、不揮発性ストレージ２２８のブロックの割り当てを要求する割り当てブロックコマンドは、アプリケーションプログラムインスタンスから受信しても良い。受信した割り当てブロックコマンドは、要求中のアプリケーションプログラムインスタンスのハンドル、及び、不揮発性ストレージ２２８内のストレージブロックの要求量等の情報を含んでも良い。
【００５０】
条件ステップ３０４において、ストレージマネージャ２２４は、要求中のアプリケーションプログラムインスタンスがパートナアプリケーションプログラムに関連するか、或いは、ノンパートナアプリケーションプログラムに関連するかを判断しても良い（例えば、パートナベンダに関連するか、ノンパートナベンダに関連するか）。例えば、条件ステップ３０４において、（ＰＡＣＬで特定された、ストレージのアロケーションを既に受信した）パートナアプリケーションインスタンスと一致するものを見つける目的で、受信した割り当てブロックコマンドのハンドルとＰＡＣＬのエントリを比較しても良い。ＰＡＣＬのエントリと一致するものが見つからなかった場合、条件ステップ３０４において、ハンドルをパートナアプリケーションプログラムと対応づける目的で、受信した割り当てブロックコマンドのハンドルとＦＰＡＣＬ内のエントリとを比較しても良い。
【００５１】
図示している形態においては、ＦＰＡＣＬ内のエントリは、パートナアプリケーションプログラムインスタンスの１つに対して割り当てられるストレージの所定の最大サイズを規定する。グローバルデータはノンパートナアプリケーションプログラムインスタンスの１つに割り当てられるストレージの所定の最大サイズを規定する。従って、割り当てブロックコマンドがパートナアプリケーションプログラムインスタンスからのものであるか、或いはノンパートナアプリケーションプログラムインスタンスからのものであるかに応じて、条件ステップ３０８及び３０７において、要求されたストレージ量がアプリケーションプログラムインスタンスにとって許容できる最大値を超えているかを判断する。割り当てブロックコマンドがパートナアプリケーションプログラムインスタンスからのものである場合、例えば、条件ステップ３０８において、パートナアプリケーションプログラムインスタンス（例えば、ＰＡＣＬの対応するレコードに示されたもの）に割り当てられた現在のストレージに付加された、要求された割り当てが、パートナアプリケーションプログラムインスタンスの１つに対して許される最大値を超えているかどうかを判断する。同様に、割り当てブロックコマンドがノンパートナアプリケーションプログラムインスタンスからのものである場合、条件ステップ３０７において、ノンパートナアプリケーションプログラムインスタンス（例えば、ＮＡＣＬの対応するレコードに示されたもの）に割り当てられた現在のストレージに付加された、要求された割り当てが、ノンパートナアプリケーションプログラムインスタンスの１つに対して許される最大値を超えているかどうか判断しても良い。いずれの場合も、要求された割り当てが要求中のアプリケーションプログラムインスタンスが許容できる最大値を超えている場合は、ブロック３０６において、その要求は拒絶され、その拒絶を示す応答メッセージが要求中のアプリケーションプログラムインスタンス２０２に戻される。
【００５２】
ストレージスペースの要求量の割り当てが、要求中のパートナインスタンスに対して許される最大量を超えていなければ、条件ステップ３１０において、要求中のアプリケーションプログラムインスタンスに割り当てられるべき、パートナアプリケーションプログラムインスタンスに対してリザーブされた十分なスペースが、不揮発性ストレージ２２８内にあるかどうかが判断される。もし十分なスペースがあれば、ブロック３１６において、要求中のアプリケーションプログラムインスタンス２０２に返される応答メッセージでその成功を示すと共に、要求されたストレージブロックの割り当てを行ない、現行の割り当てサイズを示す目的でＰＡＣＬ内の対応するレコードを更新しても良い。
【００５３】
パートナアプリケーションプログラムインスタンスからの割り当て要求に対応する目的で、パートナアプリケーションプログラムインスタンスのためにリザーブされた十分なスペースが不揮発性ストレージ２２８に無い場合は、条件ステップ３１２において、ノンパートナアプリケーションプログラムインスタンスに対する割り当てに利用できる十分なスペースが不揮発性ストレージ２２８にあるかどうかを判断しても良い。又は、条件ステップ３０８で判断されたノンパートナアプリケーションプログラムインスタンスからの要求に応じて、ノンパートナアプリケーションプログラムインスタンスに対する割り当てに利用できる十分なスペースが不揮発性ストレージにあるかどうかを条件ステップ３１２において判断しても良い。条件ステップ３１２において、その要求に沿える十分なスペースがあると判断された場合は、ブロック３１８において、要求中のアプリケーションプログラムインスタンス２０２に返す応答メッセージでその成功を示すと共に、要求されたスペースの割り当てを行い、現在の割り当てサイズを示す目的で、ＰＡＣＬ又はＮＡＣＬのどちからの対応するレコードを更新しても良い。そうでなければ、ブロック３１４において、要求中のアプリケーションプログラムインスタンス２０２に返される応答メッセージでその拒絶を示すと共に、その要求は拒絶されても良い。
【００５４】
ストレージのブロックの割り当てを受信したアプリケーションプログラムインスタンスは、他のアプリケーションプログラムインスタンス又はプロセスと、割り当てられたブロックに対するアクセスを条件付きで共有しても良い。共有のアクセスが望まれる場合、アプリケーションプログラムインスタンスは、他のアプリケーションプログラムインスタンス又はプロセスに対して割り当てられたブロックに対するリード専用又はリード／ライトアクセス権を許可する目的で、ストレージマネージャ２２４に次のコマンドを提供しても良い。これらのコマンドを受信すると、ストレージマネージャ２２４は、割り当てられたブロックに対するリード専用又はリード／ライトアクセス権のどちらかを有する他のプログラムインスタンス又はプロセスを特定する割り当てブロックに関連した「許可グループ」を規定しても良い。ストレージマネージャ２２４は、ブロックハンドル、１つ以上の許可グループを特定する情報、及び特定されたグループにおけるアプリケーションインスタンス又はプロセスに対して許可された権利の種類を特定する情報等である、それぞれの割り当てられたブロックに対するレコードを有する許可グループリスト（ＰＧＬ）データストラクチャを保持しても良い。それぞれの許可グループに対して、独立して、ストレージマネージャは、許可グループのメンバである、各インスタンス又はプロセスを有するグループメンバリスト（ＧＭＬ）データストラクチャ（例えば、インスタンス又はプロセスに関連したハンドルによって特定される）を保持しても良い。
【００５５】
図５に、図２及び図３に示したコンピュータプラットフォームの１つの形態に準じた、ストレージマネージャと情報をやり取りするプロセスを示す。マネージドクライアント４０４は、オペレーティングシステム（図示せず）のドメイン下で実行され、オペレーティングシステムのドメイン外のシステムメモリ（図示せず）内のバッファを介してＯＳ独立エージェント４０６と通信しても良い。マネージドクライアント４０４は、上述したように、不揮発性ストレージ４０２の一部に対するアクセス権を取得しても良く、マネージメントコンソールアプリケーションプログラム４０８に対してその部分へのアクセス権を許可しても良い。マネージドクライアント４０４内のローカルストレージアプリケーションプログラム４１０は、不揮発性ストレージ４０２の割り当てられた部分にハードウェア又はソフトウェアコンフィグレーション情報を格納しても良い。ブロック４３８、４３４及び４３６の通信プルトコルスタックを用いることで、コンソールスキーマアプリケーション４２８は、格納されたコンフィグレーション情報のリードアクセスをする目的で、ＯＳ独立エージェント４０６と通信しても良い。同様に、リモートストレージアプリケーション４３０は、不揮発性ストレージ４０２の割り当て部分にデータを書き込む目的で（例えば、マネージドクライアント４０４に対してセキュリティパッチを提供する目的で）、ブロック４３８、４３４及び４３６の通信プルトコルスタックを用いても良い。
【００５６】
現在考えられる本発明の実施形態を記載及び図示してきたが、本発明の範囲から逸脱しない範囲で、多様な他の改良を行なえる事、及び同等な物で代用できる事は当業者であれば理解できるであろう。更に、ここに記した主要発明概念から逸脱しない範囲で、本発明が教示する特定の状態に適応させる目的で、多くの改良を行なっても良い。それゆえ、本発明はここに記した特定の実施形態には限定されず、請求項の範囲を逸脱しない全ての実施形態を含む。
【図１Ａ】
2008512746.tif 000003
【図１Ｂ】
2008512746.tif 000004
【図１Ｃ】
2008512746.tif 000005
【図２】
2008512746.tif 000006
【図３】
2008512746.tif 000007
【図４】
2008512746.tif 000008
【図５】
2008512746.tif 000009
【国際調査報告】
2008512746.tif 000010
2008512746.tif 000011