JP2008546274A - 周期的な分散された時間によるリソース管理 - Google Patents

周期的な分散された時間によるリソース管理 Download PDF

Info

Publication number
JP2008546274A
JP2008546274A JP2008513481A JP2008513481A JP2008546274A JP 2008546274 A JP2008546274 A JP 2008546274A JP 2008513481 A JP2008513481 A JP 2008513481A JP 2008513481 A JP2008513481 A JP 2008513481A JP 2008546274 A JP2008546274 A JP 2008546274A
Authority
JP
Japan
Prior art keywords
service
resource
rate
time domain
affects
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.)
Granted
Application number
JP2008513481A
Other languages
English (en)
Other versions
JP4724748B2 (ja
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008546274A publication Critical patent/JP2008546274A/ja
Application granted granted Critical
Publication of JP4724748B2 publication Critical patent/JP4724748B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

分散ネットワークにおいてリソース管理を行うシステムおよび方法が開示される。ネットワークにおけるデバイス群の集合の結合が緩いと、それらデバイスは、ネットワークにおけるその他のデバイスに関する電力の制約を知らない可能性がある。一般に、壁から給電されるデバイスは、バッテリ駆動型のモバイルデバイスとは大きく異なる電力設定を有する。本発明は、ネットワークにおける各デバイス(またはノード)のローカルなリソース要求を知る役割を担うローカルサービスに従属するように使用することができる、時間に関する統合ポリシを提供する。そのような分散時間システムにおいて、特定の時間領域内の全てのサービスは、速度を上げるか、速度を下げるか、または完全に停止させることができる。

Description

本発明は、一般に、分散ネットワークにおいてリソース管理を行うシステムおよび方法に関する。より詳細には、本発明は、ネットワークノードにおけるローカルなリソース要求を知る役割を担うサービスに従属する(slave)ように使用することができる、時間に関する統合ポリシ(federation policy)を使用するシステムおよび方法に関する。
ネットワークにおけるデバイス群の集合の結合が緩いと、それらデバイスは、ネットワークにおけるその他のデバイスに関する特定の制約を知らない可能性がある。例えば、壁から給電されるデバイス(wall-powered device)は、バッテリ駆動型のモバイルデバイスとは大きく異なる電力設定を有する可能性がある。しかし、これらのデバイスが対話するとき、デバイスがリモートサービスの電力消費設定に基づいてレートを上げるかまたはレートを下げる、構造的に一貫した方法は存在しない。
例えば、送信されるあらゆるパケットは、リモートデバイスの限られたバッテリに、より多くの無線電力およびCPUエネルギを消費するように要求するので、壁から給電されるデバイスは、バッテリ駆動型のデバイスに送信される作業量を低減させる必要がある場合がある。さらに、バッテリ駆動型のデバイスは、計算または記憶が(エネルギ消費の観点から)コストがかかりすぎて計算作業をローカルで実行できないために、計算または記憶を別のデバイスに譲りたいと望む場合がある。
したがって、分散ネットワークを形成する複数のノードの間で、バッテリ寿命、帯域幅の利用、および処理能力などのリソースを管理するためのシステムおよび方法が利用可能であることが望ましい。
本発明は、分散ネットワークにおいてデバイスのリソースを管理するシステムおよび方法を提供する。そのようなリソースの例には、バッテリ寿命、ネットワーク帯域幅、CPUの利用などを含めることができる。具体的には、本発明は、(それぞれがネットワークノードとみなすことができる)デバイス群のネットワークにおけるそのようなリソースを管理するための、分散され統合された方法を提供する。本明細書で使用される用語「統合された(federated)」は、あるシステムにおいて、デバイスをローカルで制御することもできるが、何らかの共通性を有する複数のデバイスを、何らかの集中的な方法で共同利用のためにまとめることもできるシステムを指す。
そのようなシステムにおいて、デバイスの要求を知る役割を担うローカルサービスに従属するように、時間に関する統合ポリシを使用することができる。そのような時間に関する統合ポリシは以前に開示されている。例えば、米国特許出願第09/836834号明細書には、複数のデバイスまたはサービスを1つのマスタクロックに従属させることができる分散時間システムが開示および特許請求されている。そのような分散時間システムにおいて、所与の時間領域内の全てのサービスは、速度を上げるか、速度を下げるか、または完全に停止させることができる。例えば、クロックチックなどの信号ソースは、サービスをどのくらい速く実行することができるかを管理する周期的なイベントとして送信することができる。複数のサービスを1つの分散クロックに従属させることにより、その時間領域内のいくつかのサービスは、わずかな速度であっても、または速度が0であっても、決まった方法で(in a lockstep fashion)実行することが可能となる。
さらに、サービスを、所与の期間、「リース」として許可することができる「リースホルダ(leaseholder)」サービスを提供することができる。一旦リースが失効したときにサービスが自身のリースを更新しない場合、そのサービスは、活動停止状態にあるとみなされ、その他のノードの利用可能なリモートサービスのリストから、ガベージ収集する(garbage-collect)ことができる。本発明の一側面にしたがうと、様々な時間領域が使用されているので、リースが早期に失効することがないことを確実にするとともに、デバイスリソースを管理することができる。
本発明にしたがうと、ローカルデバイスは、当該ローカルデバイスの1つまたは複数のリソースを管理するために、当該ローカルデバイスの現在のポリシまたは現在の状態に基づいて、1つ以上のローカルサービスまたはリモートサービスの制御動作に影響を及ぼすことができる。例えば、バッテリ寿命を管理するために、バッテリ利用を制御することができる。例えば、ネットワーク帯域幅を管理するために、パケット帯域幅を管理することができる。例えば、CPUの利用を管理するために、ワークアイテムのスケジューリングおよびバッテリ利用を制御することができる。したがって、ローカルデバイスは、時間サービスおよびリースホルダサービスに、バッテリ電力またはCPUを制御するため、受信メッセージのトラヒックを変更させる(すなわち、速度を下げさせるか、速度を上げさせるか、または停止させる)ことができるか、あるいはネットワーク帯域幅を管理するため、I/O帯域幅を変更させる(すなわち、低減させるか、または増大させる)ことができる。
ローカルデバイスの電力状態または電力ポリシに、特定のI/Oパターンを従属させることができる。そのようなI/Oパターンには、ワークアイテムのスケジューリングと、活性レート(liveness rate)(または、リースホルダサービスの周期的な任意のシグナリング)と、メモリ割り当てレート(さらに、どのくらいの時間の間、そのメモリが使用できる状態であるか)と、境界転送サービス(すなわち、ネットワークコントローラ、ネットワークコントローラ上のスタック、およびシリアルバスコントローラなどの、I/Oをシステムに出し入れするためのハードウェアを実際に使用するサービス)に関するI/Oレートとを含めることができる。
本発明にしたがう例示的なシステムは、分散クロックサービスとリソース利用コーディネータ(resource utilization coordinator)とを備えることができる。分散クロックサービスは、複数の時間領域のそれぞれを特定のリソースまたはアクティビティに関連付けることができる、それらそれぞれの時間領域を保持する。リソース利用コーディネータは、リソースがネットワーク上のデバイスによって利用されるレートを変更するために、分散クロックサービスに少なくとも1つの時間ベース(time base)を変更させる。
(例示的なコンピューティング環境)
図1および以下の記載は、本発明の例示的な実施形態を実施することができる好適なコンピューティング環境の、簡潔かつ全般的な説明を提供するように意図されている。しかし、ハンドヘルドコンピューティングデバイス、ポータブルコンピューティングデバイス、およびその他のあらゆる種類のコンピューティングデバイスが、本発明に関連して使用できるよう意図されていることを理解されたい。以下では汎用コンピュータについて説明するが、これは一例に過ぎない。本発明は、ネットワークサーバと相互運用したり対話したりするシンクライアント上で動作可能である。したがって、本発明の例示的な実施形態は、非常に少ない、または最小のクライアントリソースが関与するネットワーク化されたホスト型サービスの環境、例えば、クライアントデバイスが単にワールドワイドウェブに対するブラウザまたはインターフェースとして機能するネットワーク化された環境において、実装することもできる。そのようなコンピューティングデバイスは、直接的なヒューマンインターフェースを有する必要がなく、ネットワークを介してのみアクセス可能であってもよいことを理解されたい。
必須ではないが、本発明は、開発者または試験者による使用のためにアプリケーションプログラミングインターフェース(API)を介して実装することができるし、かつ/または、1つまたは複数のコンピュータ(例えば、クライアントワークステーション、サーバ、またはその他のデバイス)によって実行される、プログラムモジュールなどのコンピュータ実行可能命令との一般的な関連で説明されるネットワーク閲覧ソフトウェアに含めることができる。一般に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常、プログラムモジュールの機能は、様々な実施形態において、必要に応じて組み合わせてもよいし分散されてもよい。さらに、当業者であれば、本発明は、その他のコンピュータシステム構成を用いて実施できることが理解されよう。本発明について使用するのに適したその他のよく知られているコンピューティングシステム、コンピューティング環境、および/またはコンピューティング構成には、パーソナルコンピュータ(PC)、現金自動預け払い機(ATM)、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどが含まれるが、これらに限定されるものではない。本発明の一実施形態は、通信ネットワークまたはその他のデータ伝送媒体を介して接続されたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルコンピュータ記憶媒体およびリモートコンピュータ記憶媒体の両方に配置することができる。
したがって、図1は、本発明を実施することができる好適な例示的コンピューティングシステム環境100を示すが、上記にて明らかにしたように、コンピューティングシステム環境100は、好適なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲についていかなる限定を示唆するようにも意図されてはいない。同様に、コンピューティング環境100は、例示的な動作環境100に示された任意の1つのコンポーネントまたはコンポーネントの組合せに関して、いかなる依存関係または要件を有するようにも解釈するべきではない。
図1を参照すると、本発明を実施するための例示的なシステムは、コンピュータ110の形態の汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントには、処理ユニット120と、システムメモリ130と、システムメモリ130を含む様々なシステムコンポーネントを接続するシステムバス121とを含めることができるが、これらに限定されるものではない。システムバス121は、様々なバスアーキテクチャのいずれかを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む複数のタイプのいずれのバス構造であってもよい。そのようなアーキテクチャには、ISAバス、MCAバス、EISAバス、VESAローカルバス、および(メザニンバスとしても知られる)PCIバスが含まれるが、これらに限定されるものではない。
通常、コンピュータ110は、様々なコンピュータ読み取り可能な媒体を備える。コンピュータ読み取り可能な媒体は、コンピュータ110によってアクセスできる任意の入手可能な媒体とすることができ、コンピュータ読み取り可能な媒体には、揮発性媒体および不揮発性媒体、ならびに取り外し可能な媒体および取り外し不可能な媒体のいずれもが含まれる。コンピュータ読み取り可能な媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実現された揮発性媒体および不揮発性媒体、ならびに取り外し可能な媒体および取り外し不可能な媒体のいずれもが含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリ技術、CDROM、DVD、もしくはその他の光ディスク記憶デバイス、磁気カセット、磁気テープ、磁気ディスク記憶デバイス、もしくはその他の磁気記憶デバイス、または所望の情報を記憶するために使用でき、かつコンピュータ110によってアクセスすることができる任意のその他の媒体が含まれるが、これらに限定されるものではない。通常、通信媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他の搬送機構などの変調されたデータ信号として具現化したものであり、任意の情報配信媒体を含む。用語「変調されたデータ信号」は、信号内の情報を符号化するような方法で、その信号の1つまたは複数の特徴が設定または変更された信号を意味する。通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体と、音響、無線周波数(RF)、赤外線、およびその他の無線媒体などの無線媒体とが含まれるが、これらに限定されるものではない。このような媒体の任意の組合せもコンピュータ読み取り可能な媒体の範囲に含まれるべきである。
システムメモリ130は、ROM131およびRAM132などの揮発性メモリおよび/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中などにコンピュータ110内の要素間で情報を転送することに役立つ基本的なルーチンを含むBIOS133は一般に、ROM131に記憶される。通常、RAM132には、処理ユニット120によって直ちにアクセスでき、かつ/または、処理ユニット120によって現在操作されているデータおよび/またはプログラムモジュールが含まれる。例えば、図1には、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137が示されているが、これらに限定されるものではない。RAM132には、その他のデータおよび/またはプログラムモジュールが含まれてもよい。
コンピュータ110は、その他の取り外し可能な/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体を備えてもよい。例として、図1には、取り外し不可能な不揮発性磁気媒体に対して読み書きを行うハードディスクドライブ141と、取り外し可能な不揮発性磁気ディスク152に対して読み書きを行う磁気ディスクドライブ151と、CDROMまたはその他の光媒体などの取り外し可能な不揮発性光ディスク156に対して読み書きを行う光ディスクドライブ155とが示されている。例示的な動作環境において使用することができるその他の取り外し可能な/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、DVD、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ141は一般に、インターフェース140などの取り外し不可能なメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般に、インターフェース150などの取り外し可能なメモリインターフェースを介してシステムバス121に接続される。
図1に示して上述したドライブ群およびそれらドライブに関連するコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、およびその他のデータの記憶領域をコンピュータ110に提供する。例えば、図1において、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じであってもよいし、異なってもよいことに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147は、少なくともそれらが別のコピーであることを示すために、ここでは異なる番号が付されている。ユーザは、キーボード162や、一般的にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを介して、コンピュータ110に命令および情報を入力することができる。その他の入力デバイス(図示せず)としては、マイクロホン、ジョイスティック、ゲームパッド、衛星通信用パラボラアンテナ、スキャナなどを挙げることができる。これらのおよびその他の入力デバイスは、システムバス121に接続されたユーザ入力インターフェース160を介して処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、またはUSBなどのその他のインターフェースおよびバス構造を介して接続されてもよい。
モニタ191またはその他のタイプのディスプレイデバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタ191に加えて、コンピュータは、出力周辺インターフェース195を介して接続することができる、スピーカ197およびプリンタ196などのその他の出力周辺デバイスを備えることもできる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク環境において動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネットワークノードであってもよく、図1には、メモリ記憶デバイス181のみが示されているが、リモートコンピュータ180は通常、コンピュータ110に関して上述した要素の多くまたは全てを含む。図1に示された論理接続には、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173が含まれるが、その他のネットワークが含まれてもよい。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
LANネットワーキング環境において使用される場合、コンピュータ110は、ネットワークインターフェースまたはネットワークアダプタ170を介してLAN171に接続される。WANネットワーキング環境において使用される場合、コンピュータ110は通常、インターネットなどのWAN173を介して通信を確立するためのモデム172、またはその他の手段を備える。モデム172は、内蔵型でも外付け型でもよく、ユーザ入力インターフェース160またはその他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境において、コンピュータ110に関連して示したプログラムモジュール、またはそのプログラムモジュールの一部は、リモートメモリ記憶デバイスに記憶することもできる。例えば、図1には、メモリデバイス181に存在するものとしてリモートアプリケーションプログラム185が示されているが、これに限定されるものではない。図示されたネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立するその他の手段も使用できることが理解されよう。
当業者であれば、コンピュータ110またはその他のクライアントデバイスが、コンピュータネットワークの一部として配置され得ることが理解できよう。この点で、本発明は、任意の数のメモリまたは記憶ユニットと、任意の数の記憶ユニットまたは記憶ボリュームにわたって生じる任意の数のアプリケーションおよびプロセスとを有する任意のコンピュータシステムに関連する。本発明の一実施形態は、ネットワーク環境内に配置された、リモート記憶デバイスまたはローカル記憶デバイスを有するサーバコンピュータおよびクライアントコンピュータを含む環境に適用することができる。本発明は、プログラミング言語の機能性、解釈能力、および実行能力を有するスタンドアロンのコンピューティングデバイスに適用することもできる。
(例示的な分散ネットワーク)
図2は、複数のネットワークノード10A〜Hを含む例示的な分散ネットワークを示している。そのようなノードは、例えば、パーソナルコンピュータであってもよいし、例えば、サーバ、ルータ、ネットワークPC、ピアデバイスなどの、処理能力およびデータ記憶能力を有する任意のその他のネットワークデバイスであってもよい。ノード10A〜Hは、例えば、イントラネットまたはインターネットなどの、LANまたはWANを介して互いに相互接続されるピアデバイスであってもよい。
各ノード10A〜Hには一意なアドレスを割り当てることができる。アドレスの長さは、各ノードが確実に一意なアドレスを有するように選択することができる。一例では、ネットワークが数千万のノードを含むことが予想されるインターネットベースのシステムにおいては、160ビットのアドレスを使用することができる。そのようなアドレス指定方式は、伝送制御プロトコル(「TCP」)上でルーティングオーバーレイ(routing overlay)を形成することができる。
複数のノード10A〜H間に分散されたプロセスは、シンプルオブジェクトアクセスプロトコル(「SOAP」)メッセージを用いて、ネットワークを介して互いに通信することができる。SOAPは、周知のライトウェイトなXMLベースの分散コンピューティングプロトコルである。SOAPメッセージは、SOAPエンベロープ(envelope)を含むXMLドキュメントである。エンベロープは、オプションであるSOAPヘッダと、必須のSOAPボディとを含む。SOAPメッセージのヘッダは、メッセージのメタデータを表し、SOAPを拡張する方法を提供する。SOAPメッセージのボディは、実際のメッセージペイロードである。分散されたプロセスは、ネットワークを介してSOAPパケットを送信することによって、互いに通信することができる。
プロセスは、(例えば、図示されているようにノード10A上の)メッセージの送信元、(例えば、図示されているようにノード10G上の)意図されるメッセージの受信側、または(例えば、図示されているようにノード10C上の)中間点である可能性がある。メッセージの送信元は、SOAPメッセージをネットワーク上に最初に送信するプロセスである。意図されるメッセージの受信側は、最終的にそのメッセージが到達することになるプロセスである。したがって、メッセージの送信元から発生するSOAPメッセージには、意図されるメッセージの受信側に関連付けられたアドレスを含めることができる。
(分散時間管理)
図3は、時間サービスを利用することができる分散環境における分散クロックサービスを示している。そのような分散クロックサービスの態様(aspect)は、複数の分散サービスが均一に影響され得るように、複数のネットワークノードのうちのいずれかまたは全ての上のサービスコード内に統合することができる。図示されるように、各ノードは、コアサービスとして、ベースタイムキーパサービスを有することができる。ベースタイムキーパは、ネットワークタイムプロトコル(NTP)を使用して、ノードにおける実時間を管理するサービスとすることができる。ベースタイムキーパは、タイムゾーンに依存しなくてよい「実時間」(例えば、世界標準時(UTC))を追跡することができる。
ノードが孤立している場合、時間の概念は、ローカルマシンのシステムクロックとすることができる。ノードがアクティブなリングの一部である場合、どのサーバが最も高いタイミング精度を有するかに基づくサーバ選択プロセスを使用して、ベースタイムキーパのマスタを選択することができる。NTPを使用して、ノードを同期させる。その場合、NTPアルゴリズムを使用して、同一のリング上の全てのベースタイムキーパを同期させることができる。
例示的な一実施形態において、ベースタイムキーパは、最初は孤立していてよく、ローカルマシンのUTCを用いて自身で動作する(self-run)ことができる。孤立状態にある間、ベースタイムキーパは、周期的にその他のノードの探索を試みることができる。その他のノードが発見されると、ベースタイムキーパは、その他のノードとのサーバ選択プロセスに関与して、どのノードのベースタイムキーパが最良の時間マスタであるかを決定することができる。このノードが成熟した(mature)リング(例えば、3つ以上のノードが参加して、動作しているリング)に参加しようとしている場合、ベースタイムキーパは既に存在している可能性がある。この場合、サーバ選択プロセスは依然として実行されてよいが、より多くのノードがリングに参加するにつれて、現在のマスタが、マスタの座を取って代わられる可能性は低くなる。
あらゆるノードは、当該ノード上で特定の「時間領域」を追跡する少なくとも1つのタイムキーパサービスを有することができる。時間領域は、実時間に関連する時間の表現である。時間領域は、実時間より速くてもよいし、実時間より遅くてもよいし、実時間と同じであってもよい。時間領域は、一時停止させることもできるし、調整することもできる。時間領域は、一意的な概念の時間経過が望まれるときにはいつでも使用することができる。例えば、時間領域は、特定のリソースの使用を管理するために生成することができる。単一の時間領域が、複数のノードに関与してもよい。また、単一のノードが、複数の時間領域に関与してもよい。したがって、ノードは、2つ以上のタイムキーパを有する場合もある。正確なローカルタイミングのために、ノードが関与しているあらゆる時間領域に対して、ノード内でそれぞれのタイムキーパを生成することができる。タイムキーパサービスは、デバッグまたはその他の目的のためにタイミング調整を許可することによって、ベースタイムキーパの特徴を拡張させることができる。タイムキーパの状態には、タイムキーパと、(ローカルなベースタイムキーパによって表される)実時間との間の線形関係を規定する値を含めることができる。
「シーケンサ」は、所与の時間領域に関するノード内のタイミングイベントをスケジューリングするサービスである。ノード内の複数のエンティティが、同じ時間領域と、周期的な希望の通知とを使用している場合、シーケンサは、1つまたは複数の適切なタイムキーパと対話することによって、この機能を提供することができる。様々な時間領域が、様々なシーケンサを必要とする可能性がある。シーケンサは、タイムキーパと共に構成することができ、周期的なアラートおよび非周期的なアラートのための共通サービスとして動作することができる。その他のサービスは、タイムアウトおよびその他のタイミング信号を管理するために、シーケンサと共に構成することができる。シーケンササービスは、現在の時間を知るために、関連するタイムキーパ(すなわち、所望の時間領域を表すタイムキーパ)に問い合わせを行うことができる。失効アラートを生成するために、シーケンサは、関連するタイムキーパにサブスクライブする(subscribe)ことができる。このようにして、シーケンサがタイミングイベントを管理することができるのに対し、時間経過は、基礎となるタイムキーパによって制御される。
タイムマネージャは、複数のノードにまたがる時間領域を管理する役割を担うことができるサービスである。タイムマネージャは、所与の時間領域にサブスクライブする1つ以上のタイムキーパのグループを保持することができる。リング上の全てのタイムキーパが同じグループ内にあってもよい。しかし、ある場合には、別個の時間領域を管理することが望ましいことがある。したがって、時間は、マシンをまたがって速度を下げさせるか、停止させるか、または反転させる(reverse)ことさえもできる。時間領域ごとに1つの時間マネージャのみが必要とされる場合もある。
図3に示された例では、(「A」および「B」で表された)2つのノードが1つの時間領域に関与しており、ノードBのタイムキーパがマスタであり、ノードAのタイムキーパがスレーブである。(「C」で表された)第3のノードは別個の時間領域を保持する。図3には明示されていないが、単一のノードが、必要に応じて、複数のタイムキーパおよびシーケンサをインスタンス化する(instantiate)ことができることを理解されたい。
メッセージの再生をサポートするために、全てのメッセージにはタイムスタンプを付けることができる。タイムスタンプは、ベースタイムキーパから生成することができる。というのは、このことが、メッセージの順序付けにおける真の表示とすることができるからである。したがって、マシンをまたがるタイムスタンプを合理化することができるように、1つの分散マスタクロックに複数のCPUを従属させることができる。そうでなければ、マシン間のクロックのずれによって、時間追跡の比較が役に立たなくなってしまうおそれがある。
図4Aおよび図4Bは、シーケンサの動作を示している。図4Aに示されるように、1つまたは複数のサービス(例えば、SVC C、SVC D、およびSVC E)は、同じシーケンサを利用することができる。図示されるように、SVC Cは、1つおきのクロックチック(Δt)ごとに1回メッセージを送信する。SVC Dは、4クロックチックごとに1回メッセージを送信する。SVC Eは、図示された7クロックチックの間に1回メッセージを送信する。シーケンサは、複数のサービスからのメッセージを1つのシーケンスにして、それらメッセージを適切な時間にネットワーク上に振り分ける(dispatch)。
図4Aに示されるように、全てのサービスは、同じ時間領域内で動作することができる。しかし、図4Bに示されるように、SVC Cに対する時間領域は変更されている(例えば、半分の速度に減速されている)。例えば、SVC Cは、2クロックチックごとにメッセージを送信するのではなく、4クロックチックごとにメッセージを送信するように減速されている。シーケンサは、SVC Cが半分の速度でメッセージを送出することになっていることを知り、その結果、SVC Cからのメッセージを半分の頻度でシーケンスに入れる。このように、シーケンサは、同じ時間領域内で実行されている任意の数のサービスに対して順序付けを行うことができる。
(周期的な分散された時間によるリソース管理)
図5は、周期的な分散された時間によって、分散ネットワークにおけるデバイスリソースを管理するための例示的なシステム200の機能上のフロー図であり、図6は、周期的な分散された時間によって、分散ネットワークにおけるデバイスリソースを管理するための例示的な方法300のフローチャートである。
ステップ302において、ローカルデバイス202が、当該デバイスによって利用される、管理されたリソースに影響を及ぼす状態変化を検出する。そのようなローカルデバイスの例には、無線電話、携帯情報端末(「PDA」)、ラップトップコンピュータ、デスクトップパーソナルコンピュータ(「PC」)などが含まれる。そのような状態変化の例には、無線電話またはPDAがクレードルから外されたこと、ラップトップコンピュータの電源コードが抜かれたことなどが含まれる。そのようなリソースの例には、例えば、バッテリ寿命、ネットワーク帯域幅、CPUの利用などが含まれる。
ステップ304において、ローカルデバイス202上のサービスは、意思決定部(decision-maker)204に状態変化を通知することができる。ローカルデバイス上のサービスは、任意のメッセージフォーマットを使用して意思決定部に通知することができるが、例示的な一実施形態では、ウェブサービスアプリケーションプロトコル(WSAP)NOTIFY動作が実行される。WSAPは、米国特許出願第10/856399号明細書に開示され、特許請求されている。この開示は、参照することにより、本明細書に組み込まれるものである。このWSAPは、どのように状態変化が観測され、伝播されるかに関するいくつかの基本的な動詞(verb)を定義する。例えば、WSAPは、NOTIFY動作に基づく単純なイベント通知モデルを定義する。NOTIFY動作を使用して、状態変化が発生したことを報告することができる。したがって、ローカルデバイスは、ネットワーク内に分散されたその他のサービスがそのローカルデバイスの状態を認識することができるように、そのローカルデバイスの状態を公開することができる。NOTIFY動作は、米国特許出願第10/856399号明細書において、より詳細に説明されている。
意思決定部は、バッテリ寿命、ネットワーク帯域幅、CPUなどの、1つまたは複数の管理されたリソースに関連付けることができる。好ましくは、意思決定部は、ただ1つの管理されたリソースにのみ関連付けられ、したがって、リソースごとに異なる意思決定部が存在することができる。したがって、ローカルデバイスは、任意の数の意思決定部と通信することができる。ローカルデバイスにおいて状態変化が発生したとき、ローカルデバイス202は、1つまたは複数の意思決定部の全てに対して、状態変化を通知することができる。意思決定部204は、ローカルデバイス202上に存在してもよいし、その他のネットワークノード上に存在してもよい。意思決定部204は、ネットワーク上の任意の数のデバイスにサービスを提供することができる。
デバイス上のサービスは、意思決定部が通知されることを要求せずに、意思決定部に通知を行うことができるし、意思決定部204は、特定のイベントに対して「サブスクライブする」ことができる。すなわち、意思決定部204は、その特定のイベントが発生するときにそれを通知するようローカルデバイスに伝えることができる。
WSAPは、サブスクライバ(subscriber)がイベントソースに要求を発行するSUBSCRIBE動作を提供する。その要求には、サブスクライバが状態変化を観測することを望んでいる対象となるイベント通知元(event notification source)の一部を識別する問い合わせ(query)が含まれる。SUBSCRIBE動作が受理された場合、イベント通知元は、当該イベント通知元の現在の状態を示すNOTIFY動作を開始する。この初期NOTIFY動作の後、イベント通知元は、イベント通知元の状態が適切に変化するたびに、新たなNOTIFY動作を発行する。したがって、SUBSCRIBE動作を用いて、サービスの状態変化をサブスクライブすることができる。サブスクリプション(subscription)は、失効時間によって制限することができるか、またはUNSUBSCRIBE動作を用いて任意の時間に終了させることができ、アンサブスクライバ(unsubscriber)は、イベントソースにUNSUBSCRIBE動作を送信して、それ以降の通知を取り消す。SUBSCRIBE動作およびUNSUBSCRIBE動作は、米国特許出願第10/856399号明細書において、より詳細に説明されている。
ステップ306において、意思決定部204は、状態変化通知を受信し、状態変化と、管理されているリソースとに基づいて、もし行うべきことがあるならば、何を行うべきかを決定する。意思決定部204は、デバイスの現在の状態と、当該デバイスによって利用されるリソースに関連付けられたリソース管理ポリシとに基づいて、リソースの利用に影響を及ぼすサービスを識別することができる。
例えば、意思決定部がバッテリ寿命を管理することに関連付けられている場合、意思決定部は、(例えば、ローカルデバイスによって、またはローカルデバイスに対してメッセージが送信されるレートを制御することによって、)ローカルデバイスによって利用されている電力を最も有効に制御する方法を決定することができる。管理されているリソースがネットワーク帯域幅である場合、意思決定部は、(例えば、パケットが送信されるレートを制御することによって、)パケット帯域幅を最も有効に制御する方法を決定することができる。管理されているリソースがCPUである場合、意思決定部は、電力消費および処理要求を最も有効に制御する方法(例えば、ワークアイテムのスケジューリングなど)を決定することができる。
意思決定部204が、状態変化と管理されているリソースとに基づいて、もし行うべきことがあるならば、何を行うべきかを決定した後で、意思決定部204は、ステップ308において、意思決定部204が変更したいと望むものをコーディネータ206に通知することができる。例えば、デバイスBが、ちょうど今クレードルから外された無線デバイスであると仮定する。デバイスB上のサービスは、バッテリ寿命を制御するための意思決定部に、そのデバイスの状態が変更されたことを通知することができる。次いで、意思決定部は、バッテリ寿命の制御に関する予め定められたリソース管理ポリシに基づいて、デバイスが、そのデバイスのワークアイテムを発行するために、約10%というわずかな処理レートまでレートが下げられるべきであること(すなわち、どれぐらいの頻度でデバイスが何かを行うためにウェイクアップ(wake up)し、再びスリープ状態に戻るのか)を決定することができる。したがって、デバイスが電源に接続されたとき、時間を実時間までスケーリングすることができ、時間を100%で実行することができる。しかし、デバイスがバッテリ電力で動作している場合、時間をより低い割合までダウンスケーリングすることができる。したがって、デバイスがより低速で何らかのことを行っているので、リソースの寿命(例えば、バッテリ寿命)を延長させることができる。
意思決定部204は、ローカルデバイスの状態と、管理されたリソースに関連付けられたリソース管理ポリシとに基づいてリソースを適切に管理するために、意思決定部204が決定したどのようなアクションが取られるべきかを指示するメッセージをコーディネータ206に送信することによって、コーディネータ206に通知を行うことができる。例えば、意思決定部204は、ローカルデバイスが低電力モードであることと、リモートデバイスが、そのリモートデバイスがローカルデバイスに送信するメッセージの数または種類を少なくすべきであることとを指示するメッセージを、コーディネータ206に送信することができる。
ステップ310において、コーディネータ206はアクションが取られるようにする。コーディネータ206は、意思決定部204によってなされた決定によって引き起こされる全ての変化をもたらすために、1つまたは複数のデバイスに、1つまたは複数のメッセージを送信することができる。そのようなメッセージには、ローカルデバイスに関連する、URIなどの識別子を含めることができる。コーディネータからそのようなメッセージを受信する1つまたは複数のデバイスには、ローカルデバイス、およびネットワーク上の1つまたは複数の任意のその他のデバイスを含めることができる。そのようなメッセージには、コーディネータの指示に従うために、デバイスが行う必要がある(または、行う必要がない)ことが何であるかを、指示されているデバイスに理解させることを可能にする情報も含めることができる。例えば、メッセージには、ローカルデバイスが低電力モードであることと、したがってリモートデバイスはメッセージがローカルデバイスに送信されるレートを(例えば、そのようなメッセージトラヒックに関する、リモートデバイスにおける時間を遅くすることによって)下げるべきであることとを、指示されているデバイスに理解させることを可能にするレート情報を含めることができる。
メッセージは、コーディネータから、関連付けられた時間領域を管理するタイムマネージャに送信することができる。次いで、タイムマネージャは、サブスクライブされたタイムキーパにレートの変更を通知することになる。次に、このタイムキーパは、影響が及ぼされるサービスがメッセージトラヒックを生成するレートを高くするか、または低くするために、より高い頻度で、またはより低い頻度で、影響が及ぼされるサービスに関連付けられたシーケンサをウェイクアップさせることになる。
コーディネータ206は、ネットワーク上の任意の場所における「トラヒックジャム」を回避するために、「上流の」トラヒックを調整するよう試みることもできる。すなわち、コーディネータ206は、上流のデバイス(メッセージを送信するデバイス)にメッセージを送信して、下流のデバイス(メッセージを受信するデバイス)が低速で実行されていることを上流のデバイスに通知することができる。メッセージには、上流のデバイスが、メッセージが下流のデバイスに送信されるレートを(この場合もまた、例えば、そのようなメッセージトラヒックに関する、上流のデバイスにおける時間を遅くすることによって)下げるべきであることを、上流のデバイスに理解させることを可能にする、レート情報などの情報を含めることもできる。
コーディネータは、バッテリ寿命、ネットワーク帯域幅、CPUなどの管理されたリソースに関連付けることができる。好ましくは、コーディネータはただ1つの管理されたリソースにのみ関連付けられ、したがってリソースごとに異なるコーディネータが存在することができる。したがって、意思決定部はただ1つのコーディネータとのみ通信している可能性があり、1つのコーディネータはただ1つの意思決定部のみと通信している可能性がある。しかし、コーディネータは2つ以上の管理されたリソースと関連付けられてもよいこと、意思決定部は2つ以上の管理されたリソースと関連付けられてもよいこと、および、したがって任意の数の意思決定部が任意の数のコーディネータと通信していてよいことを理解されたい。
コーディネータは、ローカルデバイス上、または任意のその他のネットワークノード上に存在することができる。したがって、ローカルデバイスは、自身がコーディネータとなることもできるし、コーディネータとなるべき別のデバイスに役割を委任することもできる。そのような委任は、複数のリモートデバイスを調整するために必要とされる全てのメッセージではなく、ただ1つのメッセージ(すなわち、委託メッセージ)のみをロ―カルデバイスが送信することを可能にするので、そのような委託は低電力モードにおいて特に望ましいといえる。
コーディネータに関連付けられたリソースを使用している、またはコーディネータに関連付けられたリソースが使用されるようにされている任意のデバイスは、当該コ―ディネータを識別することができる。コーディネータは、各デバイス上で何らかのことがあるレートで発生しているべきであることを知らせるために、そのレートについてそのデバイスに通知する。したがって、各デバイスは、時間領域の一貫性のある状態を把握することができる。
管理されたリソースごとに1つの時間領域が存在することが好ましい。例えば、データ記憶デバイスに関するバッテリ使用を管理するために1つの時間領域が存在してもよいし、帯域幅に関するバッテリ使用、音声に関するバッテリ使用、ネットワークに関するデータストアの使用などを管理するためにその他の時間領域が存在してもよい。複数の時間領域は、システムが様々な相対時間を保持することを可能にする。例えば、ローカルデバイスは、VoIPを使用している可能性がある。そのようなデバイスは、そのデバイスが低帯域幅環境において動作している場合には、データよりも音声に対してより高い優先度を与えることを望むことができる。デバイスがある特定の時間に電話をかけるために使用されていない場合、デバイスはデータのために利用可能な帯域幅を増やしたいと望むことができる。ローカルデバイスが何をしたいと望むのかについての決定は、場所、現在の電力状態などによって変わり得る。そのような決定は、周期的に、または不定期に変わり得る。例えば、1ミリ秒ごとにデバイスが自身の状態を再評価し、その状態を意思決定部に通知することができる。各時間領域は、ノードごとに少なくとも1つのタイムマネージャと1つのタイムキーパとを必要とする可能性がある。
さらに、サービスを、所与の期間、「リース」として許可することができる「リースホルダ(leaseholder)」サービスを提供することができる。一旦リースが失効したときにサービスが自身のリースを更新しない場合、そのサービスは、活動停止状態にあるとみなされ、その他のノードの利用可能なリモートサービスのリストから、「ガベージ収集する」ことができる。
本発明の一側面にしたがうと、様々な時間領域が使用されているので、リースが早期に失効することがないことを確実にするとともに、デバイスリソースを管理することができる。特定のデバイス上の特定のリースされたサービスに関しては、時間を比較的遅く実行することができるので、リースサービスは、(リースされたサービスが実行されている時間領域と比較して速い時間領域において実行されているリモートサービスによって決定されるように、)そのリースが失効する前に、そのサービスのリースを更新しない可能性がある。しかし、同じ時間領域において実行されているリースの全ての態様に対して、更新レートは、時間領域が変わるときでさえ適切にスケーリングすることができる。
本発明の一側面にしたがうと、例えば、バッテリ駆動型のデバイスとすることができる第1のデバイスは、計算または記憶を別のデバイスに譲りたいと望む可能性がある。例示的な一実施形態において、サービスは再配置可能とすることができる。したがって、上記の譲ることは、いくつのサービスが移動されるべきか、および、どこにそれらサービスが配置されるべきかを決定する単純なプロセスとすることができる。全ての名前はグローバルにアドレスの付与が可能であり、全てのサービスの状態は観測可能であるので、再配置を可能にすることができる。これは、任意のサービスが停止され、そのサービスの状態が保存され、そのサービスが新たな場所に作成され、(保存されたバージョンで)置き換えられることを意味する。次いで、相手側サービスに、新たな名前を通知することができる。その名前は、変更されていてもよいし、変更されていなくてもよい。
(周期的な分散された時間によるリソース管理を使用するための例示的なシステム)
分散ストレージネットワークのメンバである無線電話の例を検討する。分散ストレージネットワークは、「Systems And Methods For Providing Distributed, Decentralized Data Storage And Retrieval」という名称で2005年4月20日に出願された、同時継続の米国特許出願第11/110128号明細書において、開示および特許請求されている。この開示は、参照することによって、本明細書に組み込まれるものである。無線電話が比較的広帯域幅の環境において(例えば、その無線電話のクレードルにおいて)動作している場合、その無線電話は、ネットワーク内の分散ストレージのために、全てのデータを一度にアップロードしたいと望む可能性がある。しかし、その無線電話が、無線(、したがって低帯域幅の)環境において動作している場合、その無線電話は、後で充電器に再び戻ったときに行うことができる、データの同期のためではなく通話のためにバッテリが利用可能であるように、データをアップロードすることよりもバッテリ寿命を節約することを選択することができる。
そのような例において、その無線電話は、当該ローカルデバイスがデータストレージアプリケーションのために25%で、ブロードバンド接続帯域幅のために70%で、および音声のために100%で動作したいことを、バッテリ使用を管理しているコーディネータに通知することを望むことができる。その場合、コーディネータは、その無線電話と直接的に、または間接的に何らかの協調関係を有する全てのデバイスにこの情報を発信することができる。したがって、コーディネータは、データの同期が実行されるレートを下げることができる。言うまでもなく、リソースは、ローカルデバイスに関連する任意のアルゴリズムに従って、優先順位を付けることができることを理解されたい。
別の例では、ユーザがラップトップコンピュータを使用している可能性がある。たとえラップトップが壁に付けられたコンセントに接続されているとしても、ユーザは、システムリソースを優先順位付けすることを望むことができる。例えば、ユーザが作業している間に、ユーザは、コンピュータに、ユーザが使用しているツール(例えば、ワードプロセッサ)へ追加的な処理能力を投入させたいと望む可能性がある。例えば、ユーザから直接的に関与していないバックグラウンドのプロセスは、ユーザが作業している間、より少ない処理リソースの割り当てを受ける可能性がある。ユーザが休憩を取った場合(システムが、HMIがある期間の間アイドル状態であったことを検出した場合)、コンピュータは、ユーザが戻ったことを検出するまで、バックグラウンドのタスクを実行することに追加的なリソースを割り当てることができる。したがって、本発明の原理は、単一のデバイスに適用することができ、ネットワークをまたいで適用される必要がない場合もある。そのような用途においては、意思決定部およびコーディネータは、ローカルデバイス上に存在している。
以上、周期的な分散された時間による分散された電力管理のためのシステムおよび方法を説明した。様々な図に示されたいくつかの好ましい実施形態に関連して本発明を説明したが、その他の同様の実施形態を使用することもでき、本発明の範囲から逸脱することなく、本発明を実施するために、説明した実施形態に変更または追加がなされ得ることを理解されたい。したがって、本発明は、任意の1つの実施形態に限定されるべきではなく、むしろ特許請求の範囲にしたがう範囲内で解釈されるべきである。
本発明の諸側面を実施することができる例示的なコンピューティング環境を示すブロック図である。 例示的な分散ネットワークを示す図である。 分散ネットワーク環境において使用することができる時間サービスを示す図である。 シーケンサによって管理されるタイミングイベントを示す図である。 シーケンサによって管理されるタイミングイベントを示す図である。 分散ネットワークにおけるデバイスリソースを管理するための例示的なシステムにおける機能上のフロー図である。 分散ネットワークにおけるデバイスリソースを管理するための例示的な方法を示すフローチャートである。

Claims (20)

  1. ネットワーク上のデバイスによって利用されるリソースを管理するシステムであって、
    前記ネットワーク上のデバイスによって利用されるリソースに関連付けられた時間領域を保持する分散クロックサービスと、
    前記デバイスによって利用される前記リソースのレートを変更するために、前記分散クロックサービスに前記時間領域を変更させるリソース利用コーディネータと
    を備えたことを特徴とするシステム。
  2. 前記分散クロックサービスは、前記時間領域を追跡するタイムキーパサービスを含むことを特徴とする請求項1に記載のシステム。
  3. 前記リソース利用コーディネータは、前記デバイスによって利用される前記リソースのレートを変更するために、前記タイムキーパサービスに前記時間領域を変更させることを特徴とする請求項2に記載のシステム。
  4. 前記タイムキーパサービスは、前記デバイス上に存在することを特徴とする請求項3に記載のシステム。
  5. 前記タイムキーパサービスは、前記デバイスからリモートにあるネットワークノード上に存在することを特徴とする請求項3に記載のシステム。
  6. 前記リソースは電力に関連付けられ、前記リソース利用コーディネータは、前記デバイスによって消費される電力のレートを変更するために、前記分散クロックサービスに前記時間領域を変更させることを特徴とする請求項1に記載のシステム。
  7. 第1のネットワークノードが前記デバイスにメッセージを送信し、前記リソース利用コーディネータは、前記第1のネットワークノードが前記デバイスにメッセージを送信するレートを変更するために、前記分散クロックサービスに前記時間領域を変更させることを特徴とする請求項1に記載のシステム。
  8. 第2のネットワークノードが前記第1のネットワークノードにメッセージを送信し、前記リソース利用コーディネータは、前記第2のネットワークノードが前記第1のネットワークノードにメッセージを送信するレートを変更するために、前記分散クロックサービスに第2の時間領域を変更させることを特徴とする請求項7に記載のシステム。
  9. 前記分散クロックサービスは、前記デバイス上で実行される1つまたは複数のサービスによって生成されるタイミングイベントを管理するシーケンサを含むことを特徴とする請求項1に記載のシステム。
  10. リソース利用を管理する方法であって、
    デバイスの現在の状態の指示を提供する情報を受信することと、
    前記デバイスの前記現在の状態と、前記デバイスによって利用されるリソースに関連付けられたリソース管理ポリシとに基づいて、前記リソースの利用に影響を及ぼすサービスを識別することと、
    前記サービスが前記リソースの利用に影響を及ぼすレートを変更することと
    を備えることを特徴とする方法。
  11. 前記サービスが前記リソースの利用に影響を及ぼすレートを前記変更することは、前記サービスに関連付けられた時間領域を変更することを含むことを特徴とする請求項10に記載の方法。
  12. 前記時間領域を変更することは、前記サービスがメッセージを生成するレートに影響を及ぼすことを特徴とする請求項11に記載の方法。
  13. 前記時間領域を変更することは、前記サービスが前記デバイスに対するメッセージを生成するレートに影響を及ぼすことを特徴とする請求項12に記載の方法。
  14. 前記時間領域を変更することは、前記デバイスに対するメッセージを生成するリモートデバイスに対するメッセージを前記サービスが生成するレートに影響を及ぼすことを特徴とする請求項12に記載の方法。
  15. 前記時間領域を変更することは、前記サービスが前記デバイス上の中央演算処理装置を利用する割合に影響を及ぼすことを特徴とする請求項11に記載の方法。
  16. 前記サービスが前記リソースの利用に影響を及ぼすレートを前記変更することは、前記サービスによって利用される帯域幅を変更することを含むことを特徴とする請求項10に記載の方法。
  17. 前記サービスが前記リソースの利用に影響を及ぼすレートを前記変更することは、前記サービスによって利用される帯域幅を変更することを含むことを特徴とする請求項10に記載の方法。
  18. 前記リソースは電力に関連付けられ、前記サービスが前記リソースの利用に影響を及ぼすレートを前記変更することは、前記サービスが前記デバイスによるバッテリ利用に影響を及ぼすレートを変更することを含むことを特徴とする請求項10に記載の方法。
  19. リソース利用を管理する方法であって、
    デバイスの状態の変化を検出することと、
    前記デバイスの前記状態の変化によって影響が及ぼされるリソースを識別することと、
    前記リソースの利用に影響を及ぼすサービスに関連付けられた時間領域を変更することによって、前記リソースが利用されるレートに影響を及ぼすことと
    を備えることを特徴とする方法。
  20. 前記デバイスの前記状態と、前記リソースに関連付けられたリソース管理ポリシとに基づいて、前記リソースの利用に影響を及ぼすサービスを識別すること
    をさらに備えることを特徴とする請求項19に記載の方法。
JP2008513481A 2005-05-23 2006-04-14 周期的な分散された時間によるリソース管理 Active JP4724748B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/135,134 2005-05-23
US11/135,134 US8881233B2 (en) 2005-05-23 2005-05-23 Resource management via periodic distributed time
PCT/US2006/014126 WO2006127174A2 (en) 2005-05-23 2006-04-14 Resource management via periodic distributed time

Publications (2)

Publication Number Publication Date
JP2008546274A true JP2008546274A (ja) 2008-12-18
JP4724748B2 JP4724748B2 (ja) 2011-07-13

Family

ID=37449731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008513481A Active JP4724748B2 (ja) 2005-05-23 2006-04-14 周期的な分散された時間によるリソース管理

Country Status (7)

Country Link
US (1) US8881233B2 (ja)
EP (1) EP1875652B1 (ja)
JP (1) JP4724748B2 (ja)
KR (1) KR101433945B1 (ja)
CN (1) CN101501676B (ja)
ES (1) ES2637233T3 (ja)
WO (1) WO2006127174A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428411B2 (en) * 2000-12-19 2008-09-23 At&T Delaware Intellectual Property, Inc. Location-based security rules
US20060294049A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Back-off mechanism for search
US20070067455A1 (en) * 2005-08-08 2007-03-22 Microsoft Corporation Dynamically adjusting resources
US8015249B2 (en) * 2006-10-10 2011-09-06 Microsoft Corporation Mitigating data usage in messaging applications
US8700715B1 (en) 2006-12-28 2014-04-15 Perftech, Inc. System, method and computer readable medium for processing unsolicited electronic mail
US7937451B2 (en) 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
US9317179B2 (en) 2007-01-08 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for providing recommendations to a user of a cloud computing service
US8271988B2 (en) * 2007-11-09 2012-09-18 Xerox Corporation System-generated resource management profiles
US8218177B2 (en) * 2007-11-09 2012-07-10 Xerox Corporation Resource management profiles
JP5053414B2 (ja) * 2010-05-13 2012-10-17 株式会社バッファロー 無線通信装置および無線通信装置の制御方法
US9134873B2 (en) 2010-09-28 2015-09-15 Qualcomm Incorporated Apparatus and methods for presenting interaction information
US9426097B1 (en) * 2010-12-09 2016-08-23 Qlogic, Corporation Facilitating communication between devices in a network
KR102500223B1 (ko) * 2015-07-14 2023-02-15 주식회사 엘지유플러스 네트워크 기능 가상화 장치 및 그의 타임 동기화 방법
CN109861922B (zh) * 2019-02-21 2022-03-29 北京百度网讯科技有限公司 用于控制流量的方法和装置
CN112019448B (zh) * 2020-10-29 2021-02-19 北京安盟信息技术股份有限公司 一种基于单向数据传输的可靠性控制方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09167141A (ja) * 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
JP2002071219A (ja) * 2000-08-29 2002-03-08 Toto Ltd 給湯機ヒータ電力管理装置
JP2004246862A (ja) * 2002-09-30 2004-09-02 Matsushita Electric Ind Co Ltd リソース管理装置
JP2005196601A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 自律管理システム向けポリシシミュレータ

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577075A (en) * 1991-09-26 1996-11-19 Ipc Information Systems, Inc. Distributed clocking system
US6282561B1 (en) 1995-12-07 2001-08-28 Microsoft Corporation Method and system for resource management with independent real-time applications on a common set of machines
US5960181A (en) * 1995-12-22 1999-09-28 Ncr Corporation Computer performance modeling system and method
US5889989A (en) * 1996-09-16 1999-03-30 The Research Foundation Of State University Of New York Load sharing controller for optimizing monetary cost
US5832529A (en) * 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5826239A (en) * 1996-12-17 1998-10-20 Hewlett-Packard Company Distributed workflow resource management system and method
US6009473A (en) * 1997-04-30 1999-12-28 Oracle Corporation Using callbacks to effectively manage resources
US6263359B1 (en) * 1997-05-22 2001-07-17 International Business Machines Corporation Computer resource proportional utilization and response time scheduling
US6904110B2 (en) 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US5938728A (en) * 1997-10-30 1999-08-17 Advanced Micro Devices, Inc. Apparatus and method for selectively controlling clocking and resetting of a network interface
JP4051510B2 (ja) * 1998-07-16 2008-02-27 ソニー株式会社 データ記憶装置およびデータ記憶方法
US6438670B1 (en) * 1998-10-02 2002-08-20 International Business Machines Corporation Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device
US6661810B1 (en) * 1999-03-19 2003-12-09 Verizon Laboratories Inc. Clock skew estimation and removal
US7111297B1 (en) * 2000-05-02 2006-09-19 Microsoft Corporation Methods and architectures for resource management
EP1744575B1 (en) 2000-08-03 2010-03-17 Infineon Technologies AG Configurable modulator
US6735709B1 (en) * 2000-11-09 2004-05-11 Micron Technology, Inc. Method of timing calibration using slower data rate pattern
JP2002208962A (ja) * 2000-12-28 2002-07-26 Fujitsu Ltd メディア配信資源管理装置および記録媒体
US6904537B1 (en) * 2001-08-27 2005-06-07 Network Elements, Inc. Data transmission across asynchronous time domains using phase-shifted data packet
US7325050B2 (en) * 2001-09-19 2008-01-29 Dell Products L.P. System and method for strategic power reduction in a computer system
US7337333B2 (en) * 2001-09-19 2008-02-26 Dell Products L.P. System and method for strategic power supply sequencing in a computer system with multiple processing resources and multiple power supplies
US7308714B2 (en) * 2001-09-27 2007-12-11 International Business Machines Corporation Limiting the output of alerts generated by an intrusion detection sensor during a denial of service attack
US6608528B2 (en) * 2001-10-22 2003-08-19 Intel Corporation Adaptive variable frequency clock system for high performance low power microprocessors
US7328261B2 (en) * 2001-11-21 2008-02-05 Clearcube Technology, Inc. Distributed resource manager
US6996728B2 (en) * 2002-04-26 2006-02-07 Hewlett-Packard Development Company, L.P. Managing power consumption based on utilization statistics
US7500152B2 (en) * 2003-12-05 2009-03-03 Freescale Semiconductor, Inc. Apparatus and method for time ordering events in a system having multiple time domains
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US7177728B2 (en) * 2003-12-30 2007-02-13 Jay Warren Gardner System and methods for maintaining power usage within a set allocation
US7281148B2 (en) * 2004-03-26 2007-10-09 Intel Corporation Power managed busses and arbitration
US7784054B2 (en) * 2004-04-14 2010-08-24 Wm Software Inc. Systems and methods for CPU throttling utilizing processes
US20060026268A1 (en) * 2004-06-28 2006-02-02 Sanda Frank S Systems and methods for enhancing and optimizing a user's experience on an electronic device
US7698705B1 (en) * 2004-10-19 2010-04-13 Oracle America, Inc. Method and system for managing CPU time consumption
US7337335B2 (en) * 2004-12-21 2008-02-26 Packet Digital Method and apparatus for on-demand power management
US8526524B2 (en) * 2007-03-27 2013-09-03 Qualcomm Incorporation Orthogonal reference signal permutation
US7530072B1 (en) * 2008-05-07 2009-05-05 International Business Machines Corporation Method to segregate suspicious threads in a hosted environment to prevent CPU resource exhaustion from hung threads
CN101359238B (zh) * 2008-09-02 2012-01-18 中兴通讯股份有限公司 一种多核系统的时间同步方法及系统
US8345546B2 (en) * 2010-07-13 2013-01-01 Verizon Patent And Licensing Inc. Dynamic machine-to-machine communications and scheduling

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09167141A (ja) * 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
JP2002071219A (ja) * 2000-08-29 2002-03-08 Toto Ltd 給湯機ヒータ電力管理装置
JP2004246862A (ja) * 2002-09-30 2004-09-02 Matsushita Electric Ind Co Ltd リソース管理装置
JP2005196601A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 自律管理システム向けポリシシミュレータ

Also Published As

Publication number Publication date
EP1875652B1 (en) 2017-05-17
KR101433945B1 (ko) 2014-08-25
US20060265738A1 (en) 2006-11-23
CN101501676A (zh) 2009-08-05
CN101501676B (zh) 2016-09-21
WO2006127174A2 (en) 2006-11-30
JP4724748B2 (ja) 2011-07-13
EP1875652A4 (en) 2015-01-28
ES2637233T3 (es) 2017-10-11
US8881233B2 (en) 2014-11-04
WO2006127174A3 (en) 2009-04-16
KR20080022080A (ko) 2008-03-10
EP1875652A2 (en) 2008-01-09

Similar Documents

Publication Publication Date Title
JP4724748B2 (ja) 周期的な分散された時間によるリソース管理
CN101981531B (zh) 聚集循环调度以优化资源消耗
Levis et al. The Emergence of Networking Abstractions and Techniques in TinyOS.
TWI304692B (en) A system and associated methods for network aware dynamic power management
US9247495B2 (en) Power saving Wi-Fi tethering
US9509632B2 (en) Workload prediction for network-based computing
US8136125B2 (en) Prioritization for online contact status updates
US10491535B2 (en) Adaptive data synchronization
KR101828295B1 (ko) 단말 및 그 단말에서 애플리케이션 관리 방법
CN109743399B (zh) 一种体检中心多任务调度的内外网数据传输方法及系统
US7675896B2 (en) Communication apparatus and control method thereof
KR20200016979A (ko) 메시지 송신 방법 및 디바이스
Ning et al. Message batching in wireless sensor networks—a perturbation analysis approach
CN111600958A (zh) 服务发现系统、服务数据管理方法、服务器及存储介质
US20230350708A1 (en) Dynamic on-demand datacenter creation
US11960342B2 (en) Sustainability-aware computing device behavior management
WO2023024894A1 (zh) 一种多设备同步播放方法及装置
US11653307B2 (en) Modifying idle mode DRX on wireless devices
Tate et al. Energy efficient duty allocation protocols for wireless sensor networks
WO2023154087A1 (en) Sustainability-aware computing device behavior management
Gaamel Enhanced Energy Aware TinyDDS Publish/Subscribe Approach (E-EATDDS)
Bakre et al. LA1 4YR, UK telephone:+ 44 (0) 524 65201 e-mail: nigel, gordon, kc, adrian@ comp. lancs. ac. uk
Birje et al. An efficient method of sharing device resource status in wireless grids
Anastasi et al. Power Management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100928

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110401

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110411

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4724748

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250