JP2008512746A - オペレーティングシステム独立エージェント - Google Patents

オペレーティングシステム独立エージェント Download PDF

Info

Publication number
JP2008512746A
JP2008512746A JP2007529834A JP2007529834A JP2008512746A JP 2008512746 A JP2008512746 A JP 2008512746A JP 2007529834 A JP2007529834 A JP 2007529834A JP 2007529834 A JP2007529834 A JP 2007529834A JP 2008512746 A JP2008512746 A JP 2008512746A
Authority
JP
Japan
Prior art keywords
application program
computer platform
instance
operating system
volatile storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007529834A
Other languages
English (en)
Inventor
スミス、キャリー
ハーバート、ハワード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2008512746A publication Critical patent/JP2008512746A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

オペレーティングシステムをホストするホスト処理システムと、データ通信メディアからデータを受信し、データ通信メディアへデータを送信する通信アダプタと、不揮発性ストレージを含むコンピュータプラットフォームを記す。コンピュータプラットフォームは、不揮発性ストレージの少なくとも一部に対するリード専用又はリード/ライトアクセスを行なう目的で、オペレーティングシステムと独立に実行できるエージェントを更に含む。
【選択図】図2

Description

1.分野
ここに記した発明の主題は、コンピュータアセットの管理に用いるシステムに関連する。具体的には、ここに記した発明の主題は、コンピュータプラットフォーム上で、そのコンピュータプラットフォーム上でホストされるオペレーティングシステムと独立に実行できるプロセスの使用に関する。
2.情報
企業は通常、ローカルエリアネットワーク(LAN)及びワイドエリアネットワーク(WAN)内のデータリンクによって結合されるコンピュータアセットを活用する。これらのコンピュータアセットは通常、ワード処理プログラム、電子メールプログラム及び表計算プログラム等の1つ以上のアプリケーションプログラム、及びオペレーティングシステムを含むソフトウェアビルドをホストする。これらのコンピュータアセットを管理する目的で、企業は通常、ハードウェア又はソフトウェアコンフィグレーション情報を確定し、
コンピュータアセットの一覧を最新のものに維持するアセットマネージメントアプリケーションを採用する。又、幾つかの企業は、セキュリティ脆弱性の発見及び修正を行なうネットワークセキュリティアプリケーション、及び、システムクラッシュが発生したときに、システムコンフィグレーションのリカバリを行なうオペレーティングシステムリカバリツールを採用する。
本発明の限定的及び網羅的でない実施形態を、以下の図面を参照して説明する。特に述べない限りは、全ての図面を通して同じ参照番号は同じ構成要素を示す。
本発明の1つの実施形態に準じたコンピュータプラットフォームを示す。
図1Aに示したコンピュータプラットフォームの1つの形態に準じたコンピュータプラットフォームを含み、企業情報技術環境内に採用されるネットワークトポロジを示す。
図1Aに示したコンピュータプラットフォームの1つの形態に準じたコンピュータプラットフォームを含み、サービスネットワーク内に採用されるネットワークトポロジを示す。
図1に示したコンピュータプラットフォームの1つの形態に準じた、オペレーティングシステム独立エージェントをホストするコンピュータプラットフォームの態様を示す。
図2に示したオペレーティングシステム独立エージェントの1つの形態に準じた、オペレーティングシステム独立エージェントとアプリケーションプログラム間の相互関係を示す。
図3に示したストレージマネージャの1つの形態に準じた、不揮発性ストレージの一部にアクセスする権利を割り当てるプロセスを示すフロー図である。
図2に示したコンピュータプラットフォームの1つの形態に準じた、ストレージマネージャと情報をやり取りするプロセスの1つの形態を示す。
ここで用いる「ある1つの形態」又は「1つの形態」とは、実施形態に関連して記載された特定の特徴、構造又は特性が本発明の少なくとも1つの形態に含まれることを意味する。従って、異なる箇所で用いられた「ある1つの形態」又は「1つの形態」が同一の実施形態を指す必要は無い。更に、特定の特徴、構造又は特性は1つ以上の実施形態の中で組み合わされても良い。
ここで用いる「機械可読」命令とは、1つ以上のロジック演算を実行する1つ以上の機械が理解できる表現に関連する。例えば、機械可読命令は1つ以上のデータオブジェクト上で1つ以上の演算を実行するプロセッサコンパイラが理解できる命令を含んでも良い。しかしながら、これは機械可読命令の単なる一例であって、本発明の形態はこれに限定されない。
ここで用いる「記憶メディア」とは、1つ以上の機械が理解できる表現を保持できるメディアに関連する。例えば、記憶メディアは機械可読命令又はデータを格納する1つ以上の記憶デバイスを含んでも良い。このような記憶デバイスは、例えば、光学、磁気又は半導体記憶メディアなどの記憶メディアを含んでも良い。しかしながら、これらは記憶メディアの単なる例であって、本発明の形態はこれらに限定されない。
ここで用いる「不揮発性ストレージ」とは、電力を供給しないときも、情報を保持できる記憶メディアに関連する。このような不揮発性ストレージは、例えば、書き込み可能光学メディア、磁気メディア(例えばハードディスクメモリ)、又は半導体メディア(例えばフラッシュメモリ)等の記憶メディアを含んでも良い。しかしながら、これらは不揮発性ストレージの単なる例であって、本発明の形態はこれに限定されない。不揮発性ストレージと通信するデバイスは、情報を取り出す目的で、不揮発性ストレージの一部に「リードアクセス」しても、不揮発性ストレージの一部に情報を格納する目的で「ライトアクセス」しても良い。
ここで用いる「ロジック」とは、1つ以上のロジック演算を実行するシステムに関連する。例えば、ロジックは1つ以上の入力信号に基づいて1つ以上の出力信号を出力する回路を含んでも良い。このような回路は、デジタル入力信号を受け取り、デジタル出力信号を出力する有限ステートマシーン、又は1つ以上のアナログ入力信号に応じて1つ以上のアナログ出力信号を出力する回路であっても良い。このような回路は、特定用途集積回路(ASIC)又はフィールドプログラムゲートアレイ(FPGA)の形で提供されても良い。更に、ロジックは、機械可読命令を実行する処理回路と共に、記憶メディアに格納された機械可読命令を含んでも良い。しかしながら、これらはロジックを提供する構造の単なる例であって、本発明の形態はこれに限定されない。
ここで用いる「処理システム」とは、コンピュータタスクを実行するハードウェア及びソフトウェアリソースの組み合わせに関連する。例えば、処理システムは予め定められた命令セットに従いデータを処理する機械可読命令を実行する目的で、システムメモリ及び処理回路(例えば、中央処理装置(CPU)又はマイクロコントローラ)を含んでも良い。しかしながら、これは処理システムの単なる一例であり、本発明の形態はこれに限定されない。ここで用いる「ホスト処理システム」とは、「周辺機器」との通信に適した処理システムに関連する。例えば、周辺機器は、ホスト処理システム上でホストされるアプリケーションプロセスに入力信号を送信しても、アプリケーションプロセスからの出力信号を受信しても良い。しかしながら、これらはホスト処理システム及び周辺機器の単なる例であり、本発明の形態はこれに限定されない。
ここで用いる「アプリケーションプログラム」とは、1つ以上のタスクを実行する目的で、機械可読命令に従って実行される1つ以上の手順に関連する。このようなアプリケーションプログラムは、予め定められたユーザの要求に準じた結果を提供する目的で作られても良い。アプリケーションプログラムは、例えば、電子表計算、文書処理プログラム、アセットマネージメントプログラム及びエージェント、システムマネージメントプログラム及びエージェント、ユーザインターフェース、及び通信に関連したアプリケーションプログラムを含んでも良い。しかしながら、これらはアプリケーションプログラムの単なる例であり、本発明の形態はこれらに限定されない。
ここで用いる「オペレーティングシステム」とは、アプリケーションプログラムと処理システムの処理リソースとの間の通信を促進する1つ以上の実行可能手順に関連する。このようなオペレーティングシステムは、アプリケーションプログラムに処理リソースを割り当てても良く、アプリケーションプログラムをサポートすべく、処理リソース上で実行される呼び出し可能なソフトウェア手順を含んだアプリケーションプログラミングインターフェース(API)を提供しても良い。しかしながら、これらはオペレーティングシステムの単なる例であって、本発明の形態はこれらに限定されない。
ここで用いる「エージェント」とは、1つ以上の定められたタスクを実行する処理システムに関連するプロセスに関連する。このようなタスクは、例えば、情報の収集、処理システムに関連したイベント又は状態の検知、イベント又は状態の検知に応じた手順の実行、又はコンピュータプラットフォームの1つ以上の部分に確実なアクセスを行なうことであっても良い。エージェントがデータネットワーク上の第2のノードに関連してホストされるプロセスとデータネットワークを介して通信できるよう、エージェントはデータネットワーク上の第1のノードと関連したコンピュータプラットフォーム上でホストされても良い。しかしながら、これらはエージェントの単なる例であり、本発明の形態はこれらに限定されない。
ここで用いる「データ通信メディア」とは、データ通信に適したメディアに関連する。データ通信メディアは、例えば、通信ケーブル(例えば、同軸、ツイストワイアペア又はファイバ光学ケーブル)、無線通信メディア又は電力ライン等のメディアのうちの1つを含んでも良い。しかしながら、これらはデータ通信メディアの単なる例であり、本発明の形態はこれに限定されない。
ここで用いる「通信アダプタ」とは、データ通信メディアに接続された他のデバイスにデータを送信又は他のデバイスからデータを受信する目的で、データ通信メディアに接続されたデバイスに関連する。例えば、通信アダプタは、ローカルエリアネットワーク等のネットワークに接続されたデバイスにデータを送信、又はデバイスからデータを受信する目的で設計されたネットワークアダプタを含んでも良い。このようなネットワークアダプタは、例えば、IEEE Std.802.3、IEEE Std.802.11、IEEE Std.802.16、USB、IEEE1394、非同期転送モード(ATM)、同期光伝送網(SONET)、又は同期デジタルハイアラーキ(SDH)規格に準じた通信フォーマット等のデータ通信フォーマットの1つに準じて、他のデバイスと通信しても良い。他の形態として、通信アダプタは、例えば、データ記憶システムを接続するアダプタ等である他のI/Oデバイスの1つを含んでも良い。しかしながら、これらは通信アダプタの単なる例であり、本発明の形態はこれらに限定されない。
つまり、本発明の形態はオペレーティングシステムのホストとなるホスト処理システム、データ通信メディア及び不揮発性ストレージにデータを送信、及び/又はそれらからデータを受信する通信アダプタを含むコンピュータプラットフォームに関連する。コンピュータプラットフォームは更に、要求に応じて外部プロセスによって、不揮発性ストレージの少なくとも一部にリードアクセス又はライトアクセスを可能とするオペレーティングシステムと独立に実行可能なエージェントを含んでも良い。しかしながら、これは本発明の単なる一例であり、他の形態はこれらに限定されない。
図1Aは、CPU12、システムメモリ16、及びコンピュータプラットフォーム10においてデバイス間の通信を可能とするコアロジック14を含むコンピュータプラットフォーム10を示す。CPU12は、例えば、インテル製のPentium(r)、Celeron(r)、Xeon(r)、Itanium(r)、又は XScale(r)等のCPUである一般的なプロセッサのうちの1つを含んでも良い。しかしながら、これらはCPUの単なる例であって、本発明の形態はこれらに限定されない。コアロジック14は、コンピュータプラットフォームにおいてデバイス間の通信を制御するデバイス(例えば、インテル製のメモリコントローラハブ(MCH)及び/又はI/Oコントロールハブ(ICH))の1つを含んでも良い。しかしながら、これらはコンピュータプラットフォームにコアロジックを提供するデバイスの単なる例であって、本発明の形態はこれらに限定されない。システムメモリ16は、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ラムバスDRAM(RDRAM)又はデュアルレートDRAM(DDR)等の1つ以上のランダムアクセスメモリ(RAM)デバイスを含んでも良い。しかしながら、これらはシステムメモリを提供する目的で用いられるメモリデバイスの単なる例であって、本発明の形態はこれらに限定されない。
コンピュータプラットフォーム10は更に、データ通信プルトコル(例えば、ファイバチャネル、IEEE Std.802.3、IEEE Std.802.11、IEEEStd.802.16、同期光伝送網/同期デジタルハイアラーキ(SONET/SDH)、USB又はIEEE1394)の1つに準じて、データ通信メディア(例えば、無線通信メディア、又は同軸、ファイバ光学又はシールド無しツイストワイアペアケーブル)にデータを送信、又はデータ通信メディアからデータを受信することを可能とする通信アダプタ20を含んでも良い。通信アダプタ20は周辺機器相互接続(PCI)データバス等の多重データバス22によってコアロジック14に接続されても良い。コアロジック14は、CPU12及び通信アダプタ20等の、コンピュータプラットフォーム内に存在する他の構成要素のうちのシステムメモリ16に対してリード及びライトアクセス処理を仲介しても良い。例えば、コアロジック14は、バイト、ワード又はページアドレス可能メモリ処理、又は、システムメモリ16とコンピュータプラットフォーム10内の他の構成要素との間のダイレクトメモリアクセス(DMA)処理を行っても良い。
コンピュータプラットフォーム10は、コンピュータプラットフォーム10の電力が切られたときでも、アドレス可能ロケーションに情報を格納できる不揮発性ストレージ(NVS)18を含んでも良い。NVS18は、フラッシュメモリデバイス、ポリマメモリデバイス、磁気メモリデバイス、又は光学メモリデバイス等の不揮発性メモリデバイスのうちの1つを含んでも良い。1つの形態によれば、NVS18は、CPU12上でホストされ、実行される構成要素又はプロセス、又は、通信アダプタ20を介してコンピュータプラットフォーム10と通信する構成要素又はプロセスによってリードアクセス又はライトアクセス可能であっても良い。他の形態として、通信アダプタ20は、アプリケーションプログラムによってアクセス可能な組み込み型不揮発性メモリ(図示せず)を含んでも良い。
1つの形態によると、CPU12及びシステムメモリ16はオペレーティングシステム、及びオペレーティングシステムの制御下において実行できるアプリケーションプログラムをホストしても良い。アプリケーションプログラムは、オペレーティングシステムによって規定されたAPIと相互通信する目的で構築されても良い。オペレーティングシステムの制御下のプロセス及びアプリケーションプログラムに加えて、他のプロセスは、コンピュータプラットフォーム10上でホストされるオペレーティングシステムと独立して保持及び実行されても良い。オペレーティングシステムと独立したプロセスは、オペレーティングシステムの状態に関わらず(例えば実行中、低電力状態、又はシステムクラッシュによる不具合状態)、不揮発性ストレージ(例えばNVS18、又は通信アダプタ20に組み込まれた他の不揮発性ストレージ(図示せず))の一部にアクセスしても良い。オペレーティングシステム独立プロセスによるこのようなアクセスは、オペレーティングシステムが実行中であろうとなかろうとハードウェア又はソフトウェアコンフィギュレーション情報を確定する目的で不揮発性ストレージにアクセスするものであっても良い。ネットワークセキュリティアプリケーションはセキュリティの脆弱性を発見及び修正する目的で不揮発性ストレージにアクセスしても良い。オペレーティングシステムリカバリツールは、オペレーティングシステムがクラッシュしたときにアプリケーションを修復する目的で、ハードウェア又はソフトウェアコンフィギュレーション情報にアクセスすべく、不揮発性ストレージにアクセスしても良い。
コンピュータプラットフォーム10は、コンピュータプラットフォーム10の1つ以上のサブシステムと通信するためのシステムメモリ16、及びCPU12上でホストされる1つ以上のプロセスを含む電力マネージメントシステムを含んでも良い。例えば、電力マネージメントシステムは、1つ以上のイベント又は状況の検知に応じて、サブシステムを低電力状態に移行しても良い。電力マネージメントシステムはその後、他のイベントに応じて、サブシステムをフル電力状態に戻しても良い。電力マネージメントシステムは、1999年2月2日発行のACPI仕様書改訂版1.0b(以後ACPI仕様書とする)で詳細を説明されている ACPI(Advanced Configuration and Power Interface)に準じて形成されても良い。しかしながら、これはコンピュータプラットフォームと関連した電力マネージメントシステムの単なる一例であって、本発明の形態はこれらに限定されない。
1つの形態によると、オペレーティングシステムの制御下の、又は通信アダプタ20を介してコンピュータプラットフォーム10を遠隔的に実行及び通信するプロセスに、不揮発性ストレージの一部へのライト又はリードアクセス権を提供しても良い。例えば、そのようなプロセスは、アセットマネージメントアプリケーション、ネットワークセキュリティアプリケーション又はオペレーティングシステムリカバリツールの一環としてハードウェア又はソフトウェアコンフィギュレーション情報を格納又は取り出ししても良い。
1つの形態によると、通信アダプタ20はデータ通信メディア24を介して外部ノード26と通信しても良い。外部ノード26は、CPU12上でホストされるアプリケーションプログラム、又はコンピュータプラットフォーム10上でホストされる他のプロセスと情報をやり取りできるプロセスをホストしても良い。又は、通信アダプタ20にコマンドを送信することで、外部ノードは不揮発性ストレージの一部に対してリード又はライトアクセスしても良い。
図1Bに企業情報技術環境におけるコンピュータプラットフォーム10の使い方の1つを示す。ルータ34は、(コンピュータプラットフォーム10の1つの形態に準じて形成された)コンピュータプラットフォーム32、ピアコンピュータプラットフォーム36及びサーバ38との間においてデータパケットのルーティングを行なっても良い。従って、ピアコンピュータプラットフォーム36又はサーバ38は、不揮発性ストレージから情報を格納又は取り出す目的で、通信アダプタを介して、コンピュータプラットフォーム32上でホストされるオペレーティングシステム独立エージェントと通信しても良い。
図1Cにサービスネットワークトポロジ40における複数のサブスクライバプラットフォーム42の1つとしてコンピュータプラットフォーム10を用いた他の形態を示す。1つの形態によると、分配ノード44は、サブスクライバプラットフォーム42にサービス(例えばATMサービス)を提供するエンドツーエンドのインフラの一環として音声、データ、又はビデオサービスを提供する。分配ノード44は、1つ以上のサービス(例えば、音声データ、ビデオデータ又はインターネットデータ)を提供する目的で、データパケット(例えば、インターリーブATMセル又はソネットフレーム内のIPパケットを送信する同期光伝送網(SONET)リンク)を送信する高速データリンク47によってサービスネットワークと接続しても良い。しかしながら、これは分配ノードがどのようにサービスネットワークと接続しても良いかを示す単なる一例であって、本発明の形態はこれらに限定されない。
サブスクライバプラットフォーム42にサービスを提供するには、分配ノード44は、分配ノード44の下流のネットワークエレメントである、DSLAM、ケーブルモデム通信システム(CMTS)又は無線通信ベースステーション等(図示せず)と通信するための装置を含んでも良い。サブスクライバプラットフォーム42(例えば、パーソナルコンピュータ、セットトップボックス、携帯無線デバイス、ブロードバンドモデム等)は、例えば、DSLリンク、無線リンク、同軸ケーブル、又は非シールドツイストワイアペアを介したイーサネット等である、サブスクライバプラットフォーム42にサービスを提供する目的でデータを送信するデータリンク45のうちの1つを介して分配ノード44と接続しても良い。他の形態として、サブスクライバプラットフォームは、ATMサービスを受信する目的で複数のデバイスと接続した電話装置(例えば構内交換システム)を更に含んでも良い。しかしながら、これらは、サブスクライバプラットフォームがどのように分配ノードと接合しても良いかを示す単なる例であって、本発明の形態はこれらに限定されない。1つの形態によれば、サービスネットワーク46と接続した構成要件は、サブスクライバプラットフォーム42内の不揮発性ストレージから情報を格納又は取り出しする目的で、通信アダプタを介して、サブスクライバプラットフォーム42上でホストされるオペレーティングシステム独立エージェントと通信しても良い。
図2に、図1に示したコンピュータプラットフォーム10の1つに形態に準じた、オペレーティングシステム独立エージェント116をホストするコンピュータプラットフォーム100を示す。CPU112は、コンピュータリソースを管理する目的で、オペレーティングシステム(OS)118の命令を実行しても良い。OS118はマイクロソフト製のWindows(r)、サンマイクロシステム製のSolaris(r)、又はウインドリバ製のオペレーティングシステムの商業的に利用できるバージョンのうちの1つを含んでも良い。あるいは、OS118はオープンソースLinuxオペレーティングシステムのいくつかのバージョンのうちの1つを含んでも良い。しかしながら、これらはコンピュータプラットフォーム上でホストされるオペレーティングシステムの単なる例であって、本発明の形態はこれらに限定されない。特に、OS118は、アプリケーションプログラム120及びアクセスドライバ122等の、CPU112上のプロセスの実行を制御しても良い。
1つの形態によると、OS独立エージェント116は、OS118のドメイン内で実行されるプロセス、又はOS118と独立して実行されるプロセスによって、不揮発性ストレージ128の1つ以上の部分に対するリード及び/又はライトアクセスを制御しても良い。OS独立エージェント116の特性は、OS118と独立して実行される記憶メディアに格納された機械可読命令によって具体化されてもよい。1つの形態として、CPU112は(例えば、1つのプロセッシングコア又は複数のプロセッシングコア上でマルチスレッドを行なうことによって)マルチスレッド処理をサポートしても良い。OS独立エージェント116は、CPU112の処理スレッド上で、OS118及びOS118のドメイン内の他のプロセスを実行する他の処理スレッドと独立に実行されても良い。あるいは、OS独立エージェント116は、CPU112と独立に、通信アダプタ20(図1)に組み込まれたMIPS又はARMプロセッシングコア等のマイクロプロセッサ又はマイクロコントローラ(図示せず)上で実行されても良い。しかしながら、これらはエージェントがどのようにオペレーティングシステムと独立にコンピュータプラットフォーム上でホストされるかを示す単なる例であって、本発明の形態はこれらに限定されない。
1つの形態によると、OS独立エージェント116は、アロケーションコントロールデータ(ACD)126に準じて、アプリケーションプログラム又は他のプロセスに対する不揮発性ストレージ128の割り当てを制御する目的で、ストレージマネージャ124を含んでも良い。不揮発性ストレージ128は、バイオス(BIOS)プラットフォーム又はプライベートデータストレージに対してファームウェアを保持する1つ以上の不揮発性メモリデバイス(例えば、フラッシュメモリデバイス)を含んでも良い。OS独立エージェント116は、全ての割り当て、及び、少なくとも、アプリケーションプログラム又は他のプロセスのインスタンスによって用いられる割り当てに利用される不揮発性ストレージ128の所定の物理的部分(連続した部分又は非連続の部分)に対するリード及びライトアクセスを制御しても良い。1つの形態によれば、ACD126は、OS独立エージェント116を介して、他のプロセスを除いてアクセス可能である不揮発性ストレージ128の専用部分に1つ以上のデータストラクチャを含んでも良い。アプリケーションプログラムの特定のインスタンス又は他のプロセスは、不揮発性ストレージ128の専用部分の一部の割り当てを要求しても良い。アプリケーションプログラムのインスタンスごとに、ACD126は、識別子、インスタンスに対して利用できる割り当てのトータルサイズ、及びインスタンスに対する現在の割り当てサイズを含み、インスタンスに関連付けられたレコードを保持しても良い。1つの形態によれば、レコード内の識別子は、IETF(Internet Engineering Task Force)によって2004年1月に発行されたUUID用URN名前空間インターネットドラフトに準じた汎用一意識別子(UUID)に基づいても良い。特定の期間には、アプリケーションプログラムには1つ以上のインスタンスが存在するので、ACD126内のレコードは、不揮発性ストレージ128の割り当てを受信する目的で、アプリケーションプログラムの特定のインスタンスと関連しても良い。対応するハンドル又は識別子はアプリケーションプログラムの特定のインスタンス用のACD126内のレコードを、同一のアプリケーションプログラムの異なるインスタンス、及び他のアプリケーションプログラムのインスタンスと一意的に区別しても良い。
ストレージマネージャ124は、要求中のアプリケーションプログラム又はプロセスに関連したACD226内のレコードに従って、不揮発性ストレージ128のさらなる部分を、最大サイズまで要求中のアプリケーションプログラム又はプロセスに割り当てても良い。他の一つの形態として、ACD226は、不揮発性ストレージ128の専用部分上で利用できるストレージ容量を超えた、累積された見込まれるトータルメモリ割り当てを有する全てのアプリケーションプログラム又はプロセスに対する最大割り当てサイズを示しても良い。しかしながら、全てのアプリケーション又はプロセスが、ACD226内のレコードで特定された、不揮発性ストレージ128の割り当てを要求しなくても良いことに留意すべきである。
コンピュータプラットフォーム100のコンポーネントをアセンブルする製造者は、コンピュータプラットフォーム100上でホストされるアプリケーションプログラムを展開及び提供するソフトウェアベンダとは異なっても良い。いずれにせよ、これらのパーティは、ストレージマネージャ124がソフトウェアベンダによって展開されたアプリケーションプログラムと関連する「パートナ」エントリをACD226内に格納することに同意(例えば、契約上の合意)しても良い。これらのパートナエントリは、製造者とのそのような取り決めを有するソフトウェアベンダによって提供されていないアプリケーションプログラム又はプロセスに対応する、ACD126内の他の「ノンパートナ」レコードと区別されても良い。そのようなノンパートナプロセス又はアプリケーションプログラムは、ストレージマネージャ124のベンダと契約上の関係を有さないベンダが提供しているプロセス又はアプリケーションプログラムを含んでも良い。1つの形態によれば、製造者は、パートナプロセス又はアプリケーションプログラムに関連するACD126内のエントリを、コンピュータプラットフォーム100が製造される時に予め搭載させても良い。ノンパートナプロセス又はアプリケーションプログラムに関連するACD126内のエントリは、コンピュータプラットフォーム100が配備された後でACD126に加えられても良い。ノンパートナプロセス又はアプリケーションプログラムに関連したエントリは、例えば、以下に記載のとおり、OS独立エージェント116に最初に登録された、コンピュータプラットフォーム100上で実行されるアプリケーションプログラム、又は通信アダプタ20を介してコンピュータプラットフォーム100と通信するリモートプロセスによってのちに生成されても良い。ノンパートナエントリのこのような生成は、企業情報技術環境において、システムマネージャの制御の下、システムマネージメントアプリケーションによって実行されても良い。
1つの形態によれば、ストレージマネージャ124は、割り当て要求がパートナアプリケーションプログラムのインスタンスから受信したのか、或いはノンパートナアプリケーションプログラムのインスタンスから受信したのかに基づいて、不揮発性ストレージ128の専用部分の割り当て用に、異なったポリシを実行しても良い。例えば、ストレージマネージャ124は、パートナアプリケーションプログラムのインスタンス専用の割り当てに不揮発性ストレージ128の一部をリザーブしても良い。ストレージマネージャ124はそれから、パートナアプリケーションプログラム又はノンパートナアプリケーションプログラムのインスタンスに対して不揮発性ストレージ128の残りの部分をリザーブしても良い。
1つの形態によれば、例えば、ハードウェアコンフィギュレーション情報(例えば、CPU、コアロジックチップセット、システムメモリ、ハードディスクドライブ、通信アダプタ、又は他の周辺機器の存在又は状態を表す情報)及びソフトウェアコンフィギュレーション情報(例えば、オペレーティングシステム、アプリケーションプログラムのバージョンを含むホスト上でホストされるアプリケーションプログラム、及びアプリケーションプログラムに関連するセキュリティパッチレベルの存在又は情報を表す情報)等の情報を格納する目的で、アプリケーションプログラムのインスタンス、又はプロセスは、不揮発性ストレージ128の一部の割り当ての要求をしても良い。
1つの形態によると、CPU118上で実行するアプリケーションプログラムインスタンス又はプロセス(例えば、アプリケーションプログラムインスタンス120)は、コマンドインターフェース114を介してOS独立エージェント116に対してコマンドを発行しても良い。OS118のドメイン外であるシステムメモリ16内(図1)の所定のバッファを用いることで、アクセスドライバ122は、アプリケーションプログラムインスタンス又はプロセスからOS独立エージェント116にコマンドインターフェース114を介してコマンドを送信しても良い。OS独立エージェント116がCPU112と独立にマイクロコントローラによって実行される形態では(例えば、通信アダプタ20に組み込まれた形態)、例えば、コマンドインターフェース114はメモリマップドI/Oインターフェース(例えば、PCIローカルバス仕様に準じたもの)の形で実行されても良い。
リモートアプリケーションプログラムインスタンス又はプロセス(例えば、プロセッシングプラットフォーム100の外部で実行するアプリケーションプログラムインスタンス、又はプロセス)はまた、通信アダプタ20において受信されるインバンドメッセージとしてカプセル化されたコマンドをOS独立エージェント116に対して発行しても良い。通信アダプタ20において受信された後で、カプセル化されたコマンドは、OS独立エージェント116によって取り出される目的で、システムメモリ内の所定のバッファに格納されても良い。あるいは、OS独立エージェント116が通信アダプタ20上のマイクロコントローラ上でCPU112と独立に実行される形態では、リモートアプリケーション又はプロセスはOS独立エージェント116にアウトオフバンドメッセージの形でコマンドを送信しても良い。他の形態として、アプリケーションプログラム120は、通信アダプタ20に送信されるアウトバウンドパケットの形でカプセル化されたコマンドをマイクロコントローラ上でホストされるOS独立エージェント116に送信しても良い。通信アダプタ20は、マイクロコントローラ上でホストされるOS独立エージェント116に提供されるコマンドとしてアウトバウンドパケットを認識して、カプセル化されたコマンドを提供しても良い。1つの例として、通信アダプタ20は、USパテント番号6,385,211に記載されている処理をするべく、アウトバウンドパケットの一部をマイクロコントローラに送信する目的で補助バスを含んでも良い。
図2に示したOS独立エージェント116の1つの形態における、OS独立エージェント216とアプリケーションプログラム又はプロセスとの間の相互関係を図3に示す。アプリケーションプログラムインスタンス202は、オペレーティングシステム118のドメイン内に存在しても良く、コマンドインターフェース114を介してOS独立エージェント116と通信しても良い。アプリケーションプログラムインスタンス204及び206は、オペレーティングシステム118のドメイン外、及びオペレーティングシステム118の制御範囲外に存在しても良い(例えば、アプリケーションプログラムインスタンス204及び206は、外部の処理システム上、又はオペレーティングシステム118を実行する処理スレッドと独立して実行する処理スレッド上で実行されても良い)。従って、これらアプリケーションプログラムインスタンスのどちらかが、コマンドインターフェース114(例えば、アプリケーションプログラムインスタンスがCPU112と独立したスレッド上で実行される場合)、又は通信アダプタ20(例えば、アプリケーションプログラムインスタンスが外部の処理システム上で実行される場合)を介してOS独立エージェント116と通信しても良い。
1つの形態によると、アプリケーションプログラムインスタンス202は、ストレージマネージャ224との通信に用いられるハンドル(又は固有の識別子)を取得する目的で、ストレージマネージャ224にその存在を登録しても良い。アプリケーションプログラムインスタンス202がベンダ名、アプリケーション名、企業名、及びUUID等の識別情報を提供する所定のプルトコルに準じて、この登録プロセスを行なっても良い。ストレージマネージャ224はそれから、要求中のアプリケーションプログラムインスタンス202によって提供される情報に基づいて、例えば、ハッシュアルゴリズム(SHA―1等)を用いてハンドルを生成しても良い。ハンドルはそれから、アプリケーションプログラムインスタンス202とストレージマネージャ224との間のこの先の通信に用いられても良い。
ストレージマネージャ224での登録プロセスの後に、アプリケーションプログラムインスタンス202は、上記登録プロセスで生成されたハンドルを用いて、OS独立エージェント216に割り当てブロックコマンドを送信することによって、不揮発性ストレージ228の割り当て可能な部分の割り当てを要求しても良い。ハンドルに加えて、割り当てブロックコマンドは、要求された不揮発性ストレージ228のメモリ割り当てサイズ等の情報を含んでも良い。割り当てブロックコマンドを受信した直後に、要求が達成されたかどうかを確定する目的で、ストレージマネージャ224は(受信した割り当てブロックコマンド内の)ハンドルをACD226内の情報と関連付けても良い。
1つの形態によると、アプリケーションプログラムインスタンス202に対する不揮発性ストレージ228の一部の割り当ての後に、アプリケーションプログラムインスタンス202は、他のプロセス又はアプリケーションプログラムに対する、不揮発性ストレージ228の割り当て部分へのリード専用アクセス権又はリード/ライトアクセス権を許可する新たなコマンドを、ストレージマネージャ224に提供しても良い。ストレージマネージャ224はそれから、不揮発性ストレージ228の割り当て部分に対するアクセスを制御しても良い。現在説明している形態によれば、例えば、アプリケーションプログラムインスタンス202は、アプリケーションプログラムインスタンス204又は206のどちらかに対するリード専用アクセス権又はリード/ライトアクセス権を許可するコマンドをストレージマネージャ224に提供しても良い。1つの例として、アプリケーションプログラムインスタンス202は、ストレージマネージャ224にライトブロックコマンドを送信することによって、不揮発性ストレージ228の割り当て部分内のハードウェア及び/又はソフトウェアコンフィギュレーション情報を定期的に更新しても良い。それから、アプリケーションプログラムインスタンス204又は206のどちらかが、ストレージマネージャ224にリードブロック要求を送信することによって更新されたコンフィギュレーション情報にアクセスしても良い。
他の例として、アプリケーションプログラムインスタンス204は、外部で実行されるマネージメントコンソールアプリケーションを含んでも良く、通信アダプタ20(図1)を介してストレージマネージャ224にコマンドを送信しても良い。マネージメントコンソールアプリケーションは、企業情報技術環境において、コンピュータプラットフォーム100のリモートマネージメメントを行っても良い。また、マネージメントコンソールアプリケーションは、アプリケーションプログラムインスタンス202に対して割り当てられた不揮発性ストレージの一部へのライトアクセスを有しても良く、コンピュータプラットフォーム100上で現在ホストされている関連したアプリケーションプログラムのバージョンを更新(例えばセキュリティパッチ)しても良い。
他の例では、アプリケーションプログラムインスタンス206は、システムクラッシュが生じたときに、コンピュータプラットフォームのシステム状態を回復させるOSリカバリアプリケーションを含んでも良い。オペレーティングシステム118と独立に実行することで、ストレージマネージャ224は、オペレーティングシステム118が実行中であろうとなかろうと、アプリケーションプログラムインスタンス206に不揮発性ストレージ228の割り当て部分内の更新されたコンフィギュレーション情報を読み出させても良い。OS独立エージェント216がCPU112と独立に実行された場合(例えば、通信アダプタ20に組み込まれたマイクロコントローラ又はマイクロプロセッサ上で)、ストレージマネージャ224はコンピュータプラットフォーム100がフル電力状態であろうとなかろうと、更新されたコンフィギュレーション情報をアプリケーションプログラムインスタンス204又は206に遠隔的に読み出させても良い。もしくは、アプリケーションプログラムインスタンス204又は206は、コンピュータプラットフォーム100が低電力状態のときに、不揮発性ストレージ228の割り当て部分に情報(例えば、更新されたコンフィギュレーション情報、パッチ等)を書き込んでも良い。コンピュータプラットフォーム100がフル電力状態に移行すると(リセットプロセスを含む)、アプリケーションプログラム202は不揮発性ストレージ228の割り当て部分から保存された情報を取り出しても良い(例えば、パワーアップスクリプトの一部として)。
不揮発性ストレージ228の割り当て部分の割り当てを制御する目的で、ストレージマネージャ224は、ACD226の1つ以上のデータストラクチャをメモリ(例えば、アプリケーションプログラムインスタンスに対して割り当てられたのではなく、不揮発性ストレージ228を管理する目的で用いられるデータストラクチャを格納する目的で用いられる不揮発性ストレージ228の一部)内に保持しても良い。アプリケーション登録リスト(ARL)は、登録プロセスにおいてインスタンス用に生成されたハンドルによって特定される現在登録中のインスタンスそれぞれのリストを保持しても良い。ファクトリパートナアロケーションコントロールリスト(FPACL)は、アプリケーションプログラムをそのファクトリアプリケーション識別子と関連付ける、アプリケーションプログラムそれぞれのレコード、及びそのアプリケーションプログラムに許される最大の割り当て総量を保持しても良い。パートナアロケーションコントロールリスト(PACL)は、不揮発性ストレージ228の一部を割り当てるパートナアプリケーションプログラム(例えば、FPACLによって特定される)に関連する、登録されたアプリケーションプログラムインスタンスそれぞれのレコードを保持しても良い。同様に、ノンパートナアロケーションコントロールリスト(NACL)は、不揮発性ストレージ228の一部を割り当てるパートナアプリケーションプログラムと関連しないアプリケーションプログラムインスタンスそれぞれのレコードを保持しても良い。PACL又はNACL内のレコードは、登録されたアプリケーションプログラムインスタンスのハンドルと、アプリケーションプログラムインスタンスに対する最大の割り当て量及び現行の割り当て量を対応づけても良い。割り当てブロックリスト(ABL)は、登録されたインスタンスそれぞれに割り当てられた不揮発性ストレージ228のブロックを特定しても良い。ABL内のレコードは、ブロックハンドル、及び不揮発性ストレージ228内のサイズ及びベースアドレス等の情報を割り当てブロックと関連付けても良い。
図4は、前述の登録手順の後で、ストレージマネージャ224がアプリケーションプログラムインスタンス202からの割り当て要求を如何に処理するか(例えば、要求中のアプリケーションプログラムインスタンスに対するハンドルを割り当てる目的で)を示したフロー図である。ブロック302において、不揮発性ストレージ228のブロックの割り当てを要求する割り当てブロックコマンドは、アプリケーションプログラムインスタンスから受信しても良い。受信した割り当てブロックコマンドは、要求中のアプリケーションプログラムインスタンスのハンドル、及び、不揮発性ストレージ228内のストレージブロックの要求量等の情報を含んでも良い。
条件ステップ304において、ストレージマネージャ224は、要求中のアプリケーションプログラムインスタンスがパートナアプリケーションプログラムに関連するか、或いは、ノンパートナアプリケーションプログラムに関連するかを判断しても良い(例えば、パートナベンダに関連するか、ノンパートナベンダに関連するか)。例えば、条件ステップ304において、(PACLで特定された、ストレージのアロケーションを既に受信した)パートナアプリケーションインスタンスと一致するものを見つける目的で、受信した割り当てブロックコマンドのハンドルとPACLのエントリを比較しても良い。PACLのエントリと一致するものが見つからなかった場合、条件ステップ304において、ハンドルをパートナアプリケーションプログラムと対応づける目的で、受信した割り当てブロックコマンドのハンドルとFPACL内のエントリとを比較しても良い。
図示している形態においては、FPACL内のエントリは、パートナアプリケーションプログラムインスタンスの1つに対して割り当てられるストレージの所定の最大サイズを規定する。グローバルデータはノンパートナアプリケーションプログラムインスタンスの1つに割り当てられるストレージの所定の最大サイズを規定する。従って、割り当てブロックコマンドがパートナアプリケーションプログラムインスタンスからのものであるか、或いはノンパートナアプリケーションプログラムインスタンスからのものであるかに応じて、条件ステップ308及び307において、要求されたストレージ量がアプリケーションプログラムインスタンスにとって許容できる最大値を超えているかを判断する。割り当てブロックコマンドがパートナアプリケーションプログラムインスタンスからのものである場合、例えば、条件ステップ308において、パートナアプリケーションプログラムインスタンス(例えば、PACLの対応するレコードに示されたもの)に割り当てられた現在のストレージに付加された、要求された割り当てが、パートナアプリケーションプログラムインスタンスの1つに対して許される最大値を超えているかどうかを判断する。同様に、割り当てブロックコマンドがノンパートナアプリケーションプログラムインスタンスからのものである場合、条件ステップ307において、ノンパートナアプリケーションプログラムインスタンス(例えば、NACLの対応するレコードに示されたもの)に割り当てられた現在のストレージに付加された、要求された割り当てが、ノンパートナアプリケーションプログラムインスタンスの1つに対して許される最大値を超えているかどうか判断しても良い。いずれの場合も、要求された割り当てが要求中のアプリケーションプログラムインスタンスが許容できる最大値を超えている場合は、ブロック306において、その要求は拒絶され、その拒絶を示す応答メッセージが要求中のアプリケーションプログラムインスタンス202に戻される。
ストレージスペースの要求量の割り当てが、要求中のパートナインスタンスに対して許される最大量を超えていなければ、条件ステップ310において、要求中のアプリケーションプログラムインスタンスに割り当てられるべき、パートナアプリケーションプログラムインスタンスに対してリザーブされた十分なスペースが、不揮発性ストレージ228内にあるかどうかが判断される。もし十分なスペースがあれば、ブロック316において、要求中のアプリケーションプログラムインスタンス202に返される応答メッセージでその成功を示すと共に、要求されたストレージブロックの割り当てを行ない、現行の割り当てサイズを示す目的でPACL内の対応するレコードを更新しても良い。
パートナアプリケーションプログラムインスタンスからの割り当て要求に対応する目的で、パートナアプリケーションプログラムインスタンスのためにリザーブされた十分なスペースが不揮発性ストレージ228に無い場合は、条件ステップ312において、ノンパートナアプリケーションプログラムインスタンスに対する割り当てに利用できる十分なスペースが不揮発性ストレージ228にあるかどうかを判断しても良い。又は、条件ステップ308で判断されたノンパートナアプリケーションプログラムインスタンスからの要求に応じて、ノンパートナアプリケーションプログラムインスタンスに対する割り当てに利用できる十分なスペースが不揮発性ストレージにあるかどうかを条件ステップ312において判断しても良い。条件ステップ312において、その要求に沿える十分なスペースがあると判断された場合は、ブロック318において、要求中のアプリケーションプログラムインスタンス202に返す応答メッセージでその成功を示すと共に、要求されたスペースの割り当てを行い、現在の割り当てサイズを示す目的で、PACL又はNACLのどちからの対応するレコードを更新しても良い。そうでなければ、ブロック314において、要求中のアプリケーションプログラムインスタンス202に返される応答メッセージでその拒絶を示すと共に、その要求は拒絶されても良い。
ストレージのブロックの割り当てを受信したアプリケーションプログラムインスタンスは、他のアプリケーションプログラムインスタンス又はプロセスと、割り当てられたブロックに対するアクセスを条件付きで共有しても良い。共有のアクセスが望まれる場合、アプリケーションプログラムインスタンスは、他のアプリケーションプログラムインスタンス又はプロセスに対して割り当てられたブロックに対するリード専用又はリード/ライトアクセス権を許可する目的で、ストレージマネージャ224に次のコマンドを提供しても良い。これらのコマンドを受信すると、ストレージマネージャ224は、割り当てられたブロックに対するリード専用又はリード/ライトアクセス権のどちらかを有する他のプログラムインスタンス又はプロセスを特定する割り当てブロックに関連した「許可グループ」を規定しても良い。ストレージマネージャ224は、ブロックハンドル、1つ以上の許可グループを特定する情報、及び特定されたグループにおけるアプリケーションインスタンス又はプロセスに対して許可された権利の種類を特定する情報等である、それぞれの割り当てられたブロックに対するレコードを有する許可グループリスト(PGL)データストラクチャを保持しても良い。それぞれの許可グループに対して、独立して、ストレージマネージャは、許可グループのメンバである、各インスタンス又はプロセスを有するグループメンバリスト(GML)データストラクチャ(例えば、インスタンス又はプロセスに関連したハンドルによって特定される)を保持しても良い。
図5に、図2及び図3に示したコンピュータプラットフォームの1つの形態に準じた、ストレージマネージャと情報をやり取りするプロセスを示す。マネージドクライアント404は、オペレーティングシステム(図示せず)のドメイン下で実行され、オペレーティングシステムのドメイン外のシステムメモリ(図示せず)内のバッファを介してOS独立エージェント406と通信しても良い。マネージドクライアント404は、上述したように、不揮発性ストレージ402の一部に対するアクセス権を取得しても良く、マネージメントコンソールアプリケーションプログラム408に対してその部分へのアクセス権を許可しても良い。マネージドクライアント404内のローカルストレージアプリケーションプログラム410は、不揮発性ストレージ402の割り当てられた部分にハードウェア又はソフトウェアコンフィグレーション情報を格納しても良い。ブロック438、434及び436の通信プルトコルスタックを用いることで、コンソールスキーマアプリケーション428は、格納されたコンフィグレーション情報のリードアクセスをする目的で、OS独立エージェント406と通信しても良い。同様に、リモートストレージアプリケーション430は、不揮発性ストレージ402の割り当て部分にデータを書き込む目的で(例えば、マネージドクライアント404に対してセキュリティパッチを提供する目的で)、ブロック438、434及び436の通信プルトコルスタックを用いても良い。
現在考えられる本発明の実施形態を記載及び図示してきたが、本発明の範囲から逸脱しない範囲で、多様な他の改良を行なえる事、及び同等な物で代用できる事は当業者であれば理解できるであろう。更に、ここに記した主要発明概念から逸脱しない範囲で、本発明が教示する特定の状態に適応させる目的で、多くの改良を行なっても良い。それゆえ、本発明はここに記した特定の実施形態には限定されず、請求項の範囲を逸脱しない全ての実施形態を含む。

Claims (28)

  1. オペレーティングシステムをホストする中央処理ユニットを含むホスト処理システムと、
    データ通信メディアからデータを受信すること、及びデータ通信メディアに対してデータを送信することのうち少なくとも1つを行なう通信アダプタと、
    不揮発性ストレージと、
    前記通信アダプタにおいて受信した要求に応じて、外部プロセスによって前記不揮発性ストレージデバイスの少なくとも1部分へのリード専用アクセス及びリード/ライトアクセスのうちの少なくとも1つを行なう、前記オペレーティングシステムと独立して実行できるエージェントとを含むコンピュータプラットフォーム。
  2. 前記エージェントは、前記オペレーティングシステムと独立して実行する、前記中央処理ユニットの処理スレッドによってホストされる請求項1に記載のコンピュータプラットフォーム。
  3. 前記コンピュータプラットフォームは、前記中央処理ユニットと独立に前記エージェントをホストするマイクロコントローラ及びマイクロプロセッサのうちの1つを含む請求項1に記載のコンピュータプラットフォーム。
  4. 前記ホスト処理システムは、前記オペレーティングシステムのドメイン内でアプリケーションプログラムの1つ以上のインスタンスをホストし、
    前記エージェントは、前記不揮発性メモリデバイスの1部分をアプリケーションプログラムのインスタンスの使用に、前記アプリケーションに関連した所定の最大割り当てサイズまで割り当てるロジックを含む請求項1に記載のコンピュータプラットフォーム。
  5. 前記ホスト処理システムは、前記オペレーティングシステムのドメインにおいてアプリケーションプログラムの1つ以上のインスタンスをホストし、
    前記エージェントは、アプリケーションプログラムの1つ以上の前記インスタンスに、前記不揮発性ストレージの所定の部分にハードウェア及びコンフィグレーションデータの少なくとも1つを格納させるロジックを含む請求項1に記載のコンピュータプラットフォーム。
  6. 前記エージェントは更に、前記通信アダプタにおいて受信した要求に応じて、前記不揮発性ストレージに格納された前記コンフィグレーションデータの少なくとも1部分へのリード専用アクセス及びリード/ライトアクセスのうちの少なくとも1つを、前記オペレーティングシステムと独立に前記外部プロセスに行わせるロジックを含む請求項5に記載のコンピュータプラットフォーム。
  7. 前記エージェントは、アプリケーションプログラムに関連した識別子を含む、前記通信アダプタから受信した登録要求メッセージに基づいて、前記アプリケーションプログラムのインスタンスを特定するロジックと、
    前記登録要求メッセージ内の情報に基づいて、前記アプリケーションプログラムの前記インスタンスに関連した固有の識別子を生成するロジックとを含む請求項1に記載のコンピュータプラットフォーム。
  8. 前記通信アダプタは、PCIインターフェースによって前記ホスト処理システムと結合される請求項1に記載のコンピュータプラットフォーム。
  9. 前記エージェントは更に、前記通信アダプタから受信した割り当て要求メッセージに応じて、アプリケーションプログラムの登録されたインスタンスに対して、前記不揮発性メモリの1部分を割り当てるロジックを含む請求項7に記載のコンピュータプラットフォーム。
  10. 前記登録要求メッセージは、アプリケーションプログラムベンダを特定する情報を含む請求項7に記載のコンピュータプラットフォーム。
  11. 不揮発性ストレージと通信アダプタとを含むコンピュータプラットフォーム上でオペレーティングシステムをホストする工程と、
    データ通信メディア上の前記通信アダプタにおいて外部プロセスからメッセージを受信する工程と、
    前記受信したメッセージに応じて、前記不揮発性ストレージの少なくとも1部分へのリード専用アクセス及びリード/ライトアクセスのうちの少なくとも1つを前記オペレーティングシステムと独立に行なう工程とを含む方法。
  12. 前記コンピュータプラットフォームは、中央処理ユニットを含み、
    前記方法は更に、前記中央処理ユニットの第1の処理スレッド上で前記オペレーティングシステムを実行する工程と、
    前記受信されたメッセージに応じて、前記中央処理ユニットの第2の処理スレッド上で、前記不揮発性ストレージの少なくとも1部分へのアクセスを実行する工程とを含む請求項11に記載の方法。
  13. 前記方法は更に、
    前記コンピュータプラットフォームの中央処理ユニット上で前記オペレーティングシステムを実行する工程と、
    前記受信したメッセージに応じて、前記不揮発性ストレージの少なくとも1部分へのアクセスを前記コンピュータプラットフォームのマイクロプロセッサ及びマイクロコントローラのうちの1つ上で前記中央処理ユニットと独立に実行する工程とを含む請求項11に記載の方法。
  14. 前記方法は更に、
    前記オペレーティングシステムのドメイン内でアプリケーションプログラムの1つ以上のインスタンスをホストする工程と、
    前記不揮発性メモリデバイスの1部をアプリケーションプログラムの1つ以上のインスタンスの少なくとも1つの使用に、前記アプリケーションに関連した所定の最大サイズまで割り当てる工程とを含む請求項11に記載の方法。
  15. 前記ホスト処理システムは、前記オペレーティングシステムのドメイン内で1つ以上のアプリケーションプログラムをホストし、
    前記方法は更に、前記1つ以上のアプリケーションプログラムに、
    前記不揮発性ストレージの所定の部分にハードウェア及びコンフィグレーションデータのうちの少なくとも1つを格納させる工程を含む請求項11に記載の方法。
  16. 前記方法は更に、前記通信アダプタにおいて受信した要求に応じて、前記不揮発性ストレージに格納された前記コンフィグレーションデータの少なくとも1部分へのリード専用アクセス及びリード/ライトアクセスのうちの少なくとも1つを前記オペレーティングシステムと独立に行なう工程を含む請求項15に記載の方法。
  17. 前記方法は更に、アプリケーションプログラムに関連した識別子を含む、前記通信アダプタから受信した登録要求メッセージに基づいて、前記アプリケーションプログラムのインスタンスを特定する工程と、
    前記登録要求メッセージ内の情報に基づいて、前記アプリケーションプログラムの前記インスタンスに関連した固有の識別子を生成する工程とを含む請求項11に記載の方法。
  18. 前記エージェントは更に、前記通信アダプタから受信した割り当て要求メッセージに応じて、登録されたアプリケーションに対して、前記不揮発性メモリの1部分を割り当てるロジックを含む請求項17に記載のコンピュータプラットフォーム。
  19. 前記登録要求メッセージは、アプリケーションプログラムベンダを特定する情報を含む請求項17に記載のコンピュータプラットフォーム。
  20. オペレーティングシステムをホストする中央処理ユニットを含むホスト処理システムと、
    不揮発性ストレージと、
    前記不揮発性ストレージの1部分の割り当を、前記オペレーティングシステムと独立に実行できるエージェントとを含み、
    前記エージェントは、前記アプリケーションプログラムに関連した所定の最大サイズまで、前記割り当て可能部分の少なくとも1つのサブ部分へのアクセス権をアプリケーションプログラムのインスタンスに割り当てるロジックを含むコンピュータプラットフォーム。
  21. 前記エージェントは、それぞれのレコードがアプリケーションプログラムのインスタンスに関連しており、前記割り当て可能部分のサブ部分の最大割り当て量を示す情報を含む複数のレコードを含むデータストラクチャを保持する請求項20に記載のコンピュータプラットフォーム。
  22. 前記複数のレコードは、前記割り当て可能部分を越えるサブ部分割り当ての総量を特定する請求項21に記載のコンピュータプラットフォーム。
  23. 前記複数のレコードの1つ以上は、パートナアプリケーションプログラムベンダに関連しており、前記レコードの1つ以上は、ノンパートナアプリケーションプログラムベンダに関連する請求項21に記載のコンピュータプラットフォーム。
  24. 前記エージェントは、パートナアプリケーションプログラムベンダに関連したアプリケーションプログラムのインスタンスに対する割り当て目的で、前記割り当て可能部分の1部分をリザーブするロジックを含む請求項23に記載のコンピュータプラットフォーム。
  25. 前記エージェントは更に、アプリケーションプログラムのインスタンスからのコマンドに応じて、前記割り当て可能部分の1部分を割り当てるロジックと、
    前記アプリケーションプログラムの前記インスタンスがパートナアプリケーションプログラムベンダに関連していない場合、前記コマンドに応じて、前記割り当て可能部分の前記リザーブされた部分の割り当てを拒否するロジックとを含む請求項24に記載のコンピュータプラットフォーム。
  26. 前記エージェントは、前記アプリケーションプログラムの前記インスタンスからのコマンドに応じて、前記アプリケーションプログラムの前記インスタンスに対して、前記サブ部分を割り当てる請求項20に記載のコンピュータプラットフォーム。
  27. 前記エージェントは、
    前記アプリケーションプログラムの前記インスタンスからの第1のコマンドに応じて、前記アプリケーションプログラムの前記インスタンスに対して前記サブ部分を割り当て、
    前記アプリケーションプログラムの前記インスタンスからの第2のコマンドに応じて、前記アプリケーションプログラムの前記インスタンス以外のプロセスに対して前記サブ部分を割り当てる請求項20に記載のコンピュータプラットフォーム。
  28. 前記コンピュータプラットフォームは更に、通信アダプタを含み、
    前記アプリケーションプログラムの前記インスタンス以外の前記プロセスは、前記通信アダプタによって前記コンピュータプラットフォームと通信可能に接続された処理システム上でホストされる請求項23記載のコンピュータプラットフォーム。
JP2007529834A 2004-09-08 2005-06-10 オペレーティングシステム独立エージェント Pending JP2008512746A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/937,755 US7707586B2 (en) 2004-09-08 2004-09-08 Operating system independent agent
PCT/US2005/020549 WO2006028535A1 (en) 2004-09-08 2005-06-10 Operating system independent agent

Publications (1)

Publication Number Publication Date
JP2008512746A true JP2008512746A (ja) 2008-04-24

Family

ID=34972523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007529834A Pending JP2008512746A (ja) 2004-09-08 2005-06-10 オペレーティングシステム独立エージェント

Country Status (6)

Country Link
US (2) US7707586B2 (ja)
EP (1) EP1805573A1 (ja)
JP (1) JP2008512746A (ja)
CN (1) CN101010656B (ja)
TW (1) TWI315825B (ja)
WO (1) WO2006028535A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010163349A (ja) * 2008-12-17 2010-07-29 Tosoh Corp N,n,n−トリメチル−ベンジルアンモニウムイオンを用いたチャバザイトの製造方法
JP2013535720A (ja) * 2010-07-14 2013-09-12 インテル コーポレイション ポート共有ハードウェアを介した記憶装置への帯域外アクセス

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10026003A1 (de) * 2000-05-25 2001-12-06 Bosch Gmbh Robert Stator
US7734797B2 (en) * 2004-03-29 2010-06-08 Marvell International Ltd. Inter-processor communication link with manageability port
US7707586B2 (en) 2004-09-08 2010-04-27 Intel Corporation Operating system independent agent
US7539888B2 (en) * 2006-03-31 2009-05-26 Freescale Semiconductor, Inc. Message buffer for a receiver apparatus on a communications bus
US20080005494A1 (en) * 2006-06-07 2008-01-03 Zimmer Vincent J Supporting flash access in a partitioned platform
US8386732B1 (en) * 2006-06-28 2013-02-26 Emc Corporation Methods and apparatus for storing collected network management data
US8972532B2 (en) * 2006-06-30 2015-03-03 Ca, Inc. Providing hardware configuration management for heterogeneous computers
CN102089764B (zh) * 2007-01-16 2015-04-29 绝对软件公司 具有与主代理配合的辅助代理的安全模块
CN101227314A (zh) * 2007-01-18 2008-07-23 国际商业机器公司 用于通过网络安全地更新脆弱***的装置和方法
US9769237B2 (en) * 2008-04-23 2017-09-19 Vonage America Inc. Method and apparatus for testing in a communication network
US8819589B2 (en) * 2008-06-10 2014-08-26 Microsoft Corporation Providing partner services within a host application
CN101345660B (zh) * 2008-08-21 2010-06-09 西安西电捷通无线网络通信有限公司 一种基于tcpa/tcg可信网络连接的可信网络管理方法
US20100083249A1 (en) * 2008-09-29 2010-04-01 Novell, Inc. Managing diverse hardware using common tools
KR101581311B1 (ko) * 2009-03-11 2015-12-31 삼성전자주식회사 플래시 메모리 장치 및 그 제어 방법
US8547577B2 (en) * 2009-06-19 2013-10-01 Xerox Corporation Mutualistic engine controller having sensor communication
US8675224B2 (en) 2009-06-19 2014-03-18 Xerox Corporation Mutualistic engine controller communicating with printer non-volatile memory
US8422058B2 (en) * 2009-06-19 2013-04-16 Xerox Corporation Mutualistic engine controller
US8582151B2 (en) * 2009-06-19 2013-11-12 Xerox Corporation Mutualistic engine controller having customer replaceable unit communication
KR20120123210A (ko) * 2011-04-19 2012-11-08 삼성전자주식회사 애플리케이션의 저장 공간을 제공하기 위한 제어 방법과 그를 위한 단말 및 서버
US8843665B2 (en) * 2012-01-18 2014-09-23 International Business Machines Corporation Operating system state communication
WO2013115773A1 (en) 2012-01-30 2013-08-08 Hewlett-Packard Development Company Secure information access over network
US9904556B1 (en) * 2013-03-15 2018-02-27 The Boeing Company Executing a boot sequence including movement of data through a buffer memory
FR3007603A1 (fr) * 2013-06-21 2014-12-26 France Telecom Etablissement de communication entre une application web et un terminal
US9858412B2 (en) 2015-06-25 2018-01-02 Intel Corporation Secure trusted execution environment data store
CN105278876B (zh) * 2015-09-23 2018-12-14 华为技术有限公司 一种固态硬盘的数据擦除方法及装置
US10530677B2 (en) * 2016-07-11 2020-01-07 Harmonic, Inc. Namespace routing
US11310095B2 (en) * 2018-01-17 2022-04-19 Arista Networks, Inc. Remote in-band management of a network interface controller
TWI751586B (zh) * 2020-06-17 2022-01-01 康和綜合證券股份有限公司 風險控管裝置及方法
WO2023140826A1 (ru) * 2022-01-20 2023-07-27 Игорь Николаевич СИДОРЕНКО Устройство и способы защиты компьютерных систем от несанкционированного доступа

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066956A (ja) * 1998-08-17 2000-03-03 Nec Corp 共有メモリのアクセス権設定・検証方式
JP2001195268A (ja) * 2000-01-05 2001-07-19 Nec Corp サービスレベルによる資源割当方式
JP2001337864A (ja) * 2000-03-22 2001-12-07 Hitachi Ltd アクセス制御システム
JP2002007195A (ja) * 2000-06-20 2002-01-11 Fujitsu Ltd アクセス制御システムおよび記録媒体
JP2002108630A (ja) * 2000-08-15 2002-04-12 Internatl Business Mach Corp <Ibm> スレッド能力を変更する方法、マルチスレッド・コンピュータ・システム、及びマルチスレッド・プロセッサ
JP2003337716A (ja) * 2002-05-20 2003-11-28 Ntt Docomo Inc 電子機器、データ共用方法、プログラム及び記憶媒体

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440726A (en) * 1994-06-22 1995-08-08 At&T Corp. Progressive retry method and apparatus having reusable software modules for software failure recovery in multi-process message-passing applications
US6601083B1 (en) * 1996-08-29 2003-07-29 Frederick John Reznak Multitasking data processing system and method of controlling allocation of a shared resource
US6151708A (en) * 1997-12-19 2000-11-21 Microsoft Corporation Determining program update availability via set intersection over a sub-optical pathway
US6385211B1 (en) 1998-08-19 2002-05-07 Intel Corporation Network controller
DE10052877B4 (de) * 1999-10-21 2008-07-03 Samsung Electronics Co., Ltd., Suwon Mikrocontroller
US6735623B1 (en) * 2000-02-09 2004-05-11 Mitch Prust Method and system for accessing a remote storage area
AU2001236989A1 (en) * 2000-02-16 2001-08-27 Sun Microsystems, Inc. An implementation for nonblocking memory allocation
US6981027B1 (en) * 2000-04-10 2005-12-27 International Business Machines Corporation Method and system for memory management in a network processing system
US7024668B2 (en) * 2000-05-15 2006-04-04 Matsushita Electric Industrial Co., Ltd. Application execution apparatus and method
US6665731B1 (en) * 2000-05-16 2003-12-16 Intel Corporation Method for remotely accessing component management information
US6535969B1 (en) * 2000-06-15 2003-03-18 Lsi Logic Corporation Method and apparatus for allocating free memory
US6785767B2 (en) * 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
US7240350B1 (en) * 2002-01-07 2007-07-03 Slt Logic, Llc System and method for providing communications to processes
US7007142B2 (en) * 2002-02-19 2006-02-28 Intel Corporation Network data storage-related operations
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US6772099B2 (en) * 2003-01-08 2004-08-03 Dell Products L.P. System and method for interpreting sensor data utilizing virtual sensors
US7966389B2 (en) * 2003-04-22 2011-06-21 Hewlett-Packard Development Company, L.P. System and method for application programming interface for extended intelligent platform management
US7424706B2 (en) * 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files
JP2005070965A (ja) * 2003-08-21 2005-03-17 Fujitsu Ltd 情報処理方法、情報処理システム及び情報処理装置
US20050137833A1 (en) * 2003-12-18 2005-06-23 Rajasekhar Sistla Automatic sensor integration
US7206915B2 (en) * 2004-06-03 2007-04-17 Emc Corp Virtual space manager for computer having a physical address extension feature
US7707586B2 (en) 2004-09-08 2010-04-27 Intel Corporation Operating system independent agent

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066956A (ja) * 1998-08-17 2000-03-03 Nec Corp 共有メモリのアクセス権設定・検証方式
JP2001195268A (ja) * 2000-01-05 2001-07-19 Nec Corp サービスレベルによる資源割当方式
JP2001337864A (ja) * 2000-03-22 2001-12-07 Hitachi Ltd アクセス制御システム
JP2002007195A (ja) * 2000-06-20 2002-01-11 Fujitsu Ltd アクセス制御システムおよび記録媒体
JP2002108630A (ja) * 2000-08-15 2002-04-12 Internatl Business Mach Corp <Ibm> スレッド能力を変更する方法、マルチスレッド・コンピュータ・システム、及びマルチスレッド・プロセッサ
JP2003337716A (ja) * 2002-05-20 2003-11-28 Ntt Docomo Inc 電子機器、データ共用方法、プログラム及び記憶媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010163349A (ja) * 2008-12-17 2010-07-29 Tosoh Corp N,n,n−トリメチル−ベンジルアンモニウムイオンを用いたチャバザイトの製造方法
JP2013535720A (ja) * 2010-07-14 2013-09-12 インテル コーポレイション ポート共有ハードウェアを介した記憶装置への帯域外アクセス

Also Published As

Publication number Publication date
US20100223625A1 (en) 2010-09-02
WO2006028535A1 (en) 2006-03-16
US7707586B2 (en) 2010-04-27
CN101010656A (zh) 2007-08-01
TWI315825B (en) 2009-10-11
TW200609752A (en) 2006-03-16
CN101010656B (zh) 2011-07-13
US20060080672A1 (en) 2006-04-13
EP1805573A1 (en) 2007-07-11

Similar Documents

Publication Publication Date Title
JP2008512746A (ja) オペレーティングシステム独立エージェント
US10419289B2 (en) System and method for configuration management service
US10833949B2 (en) Extension resource groups of provider network services
US9087021B2 (en) Peer-to-peer transcendent memory
JP5747981B2 (ja) 仮想機械を用いた電子ネットワークにおける複数のクライアントの遠隔保守のためのシステム及び方法
US7243142B2 (en) Distributed computer system enhancing a protocol service to a highly available service
US20200159555A1 (en) Provider network service extensions
CN110633175B (zh) 基于微服务的多机房数据处理方法、电子设备及存储介质
CN114070822B (zh) 一种Kubernetes Overlay IP地址管理方法
JP2000311098A (ja) データ処理システム及び方法
WO2016000470A1 (zh) 一种内存控制方法和装置
JPWO2007077615A1 (ja) ソフトウェア実行管理装置、その方法及びプログラム
CN105704042A (zh) 报文处理方法、bng及bng集群***
WO2024113582A1 (zh) 一种多云集群资源共享方法、装置、设备及存储介质
US20060253658A1 (en) Provisioning or de-provisioning shared or reusable storage volumes
CN114244654A (zh) 一种url的转发方法、装置、设备及计算机存储介质
EP3355181B1 (en) Method and apparatus for responding to request based on node controller
WO2022133827A1 (zh) 一种任务处理请求的处理方法、装置以及区块链节点设备
JP2001036581A (ja) 通信帯域設定システムと方法
TW200534633A (en) Method of automatically transferring router functionality
CN108366094B (zh) 一种云存储平台管理方法
CN102255872A (zh) 访问非远程对象的方法和装置
US20160248596A1 (en) Reflecting mdns packets
US7552191B1 (en) Method and apparatus to facilitate automatic sharing in a client server environment
US9270530B1 (en) Managing imaging of multiple computing devices

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101116

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101214