JP5592380B2 - 時刻提示を用いたデータ配信調整システム及び方法 - Google Patents

時刻提示を用いたデータ配信調整システム及び方法 Download PDF

Info

Publication number
JP5592380B2
JP5592380B2 JP2011529211A JP2011529211A JP5592380B2 JP 5592380 B2 JP5592380 B2 JP 5592380B2 JP 2011529211 A JP2011529211 A JP 2011529211A JP 2011529211 A JP2011529211 A JP 2011529211A JP 5592380 B2 JP5592380 B2 JP 5592380B2
Authority
JP
Japan
Prior art keywords
computing device
time
transmission time
data
requested
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.)
Expired - Fee Related
Application number
JP2011529211A
Other languages
English (en)
Other versions
JP2012503952A5 (ja
JP2012503952A (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 JP2012503952A publication Critical patent/JP2012503952A/ja
Publication of JP2012503952A5 publication Critical patent/JP2012503952A5/ja
Application granted granted Critical
Publication of JP5592380B2 publication Critical patent/JP5592380B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling

Description

本発明は、ネットワークで接続された計算システムに関し、具体的には、計算装置からデータを送信するシステムに関する。
[0001] 携帯電話及び携帯情報端末(PDA)のような携帯計算装置が、近年、ますます人気が増している。装置がより小さくなるにつれて、メモリー、ストレージ、帯域幅、バッテリー容量のようなリソースにおける制限が増えている。加えて、今日では、より多くのアプリケーションが、そのようなリソースを増大した水準で消費している。多くのアプリケーションは、例えば、頻繁な無線通信利用を必要とするサーバーとの同期などの再発性のタスクを実行する。携帯計算装置の無線通信は電源投入され、データの送信後、無線通信は、電源を落とすために数秒(例えば、2.5Gのネットワークで約3秒及び3Gのネットワークで約20秒)かかる。無線通信のこの「テール」が、電力を消耗させ、携帯計算装置のバッテリー寿命を減らす。更に、無線通信をスピンアップして無線通信を停止する際、別の電力の非効率性が存在する。
[0002] データのリアルタイムプッシュ又は更新を用いた接続アプリケーションは、携帯ユーザーによって広く採用されている。アプリケーションは、電子メール、個人情報管理、存在情報、及びその他のウェブアプリケーションを含んでいる。サーバーは、未調整の方法によってデータをプッシュし、携帯計算装置のバッテリー寿命を低下させてユーザーの体験に負の影響を及ぼしている。
本発明の目的は、データの送信を調整し、計算装置の通信リソースを保護するためのシステムを提供することである。
[0003] 本発明の実施形態は、複数の第2の計算装置から、少なくとも1つの第1の計算装置に対するデータの送信を調整する。第2の計算装置のうち1つが、データ送信に関する時間間隔をリクエストする。第1の計算装置が、リクエストされた時間間隔を第1の計算装置に関連する通信リソースに対する複数の既知の電力供給時間と比較する。送信時刻が決定され、第2の計算装置へ提供される。データの送信を調整することが、第1の計算装置の通信リソースを保護する。実施形態の中には、決定された送信時刻が、プロセス遅延及びネットワーク待ち時間に対し調整されるものもある。
[0004] この「課題を解決するための手段」は、「発明を実施するための形態」において更に後述される概念のいくつかを簡易化した形式で紹介するために提供される。この「課題を解決するための手段」は、請求対象項目の重要な機能も本質的な特徴も特定するように意図されておらず、請求対象項目の範囲を決定する際の支援として利用されることも意図されていない。
[0005]複数の第2の計算装置からデータを受信する第1の計算装置を示している例示的なブロック図である。 [0006]本発明の態様を実装するための、リソース及び計算機実行可能なコンポーネントに対する既知の電力供給時間をストアしている計算装置を示している例示的なブロック図である。 [0007]リクエストされた時間間隔を、再発性のスケジュールに関する起動時刻及び既に提示された送信時刻と比較し、サーバーに提示する送信時刻を決定することを示している例示的な流れ図である。 [0008]プロセス遅延及びネットワーク待ち時間に基づくデータ送信時刻の決定、及び決定された送信時刻の調整を示している例示的な流れ図である。 [0009]携帯計算装置に関連する通信リソースに対する既知の電力供給時間に基づくデータ送信時刻の決定を示している例示的な流れ図である。 [0010]2つのサーバーから携帯計算装置へのデータの送信に関するスケジューリングを示している例示的なシーケンスの図である。
[0011]対応する参照文字は、図面中、対応する部品を示している。
[0012]図面を参照すると、本発明の実施形態が、複数の第2の計算装置(104)から少なくとも1つの第1の計算装置(102)へのデータの送信を調整し、第1の計算装置(102)の通信リソースの消費を減らす。実施形態の中には、第1の計算装置(102)が、送信時刻(例えば、最適な送信時刻)に関する手引、提示、推奨、又は割当てを第2の計算装置(104)へ提供し、複数の第2の計算装置(104)が、同一の時刻か又はほぼ同じ時刻に、第1の計算装置(102)へデータを送信するものもある。第1の計算装置(102)が携帯計算装置(602)である例において、調整されたデータ送信が、1つ以上のセルラー方式無線通信に対する既知の電力供給時間(例えば、無線通信のスピンアップ)を活用し、携帯計算装置(602)のバッテリー寿命を保護する。しかしながら、別の例において、本発明の態様は、第1の計算装置(102)の任意のリソースを保護し、消費を抑え、寿命を伸ばすか又は最適化するように作動可能である。
[0013]実施形態の中には、携帯計算装置(602)が、既知のスケジュールデータを活用し、次にスケジュールされている無線通信時刻を識別し、ネットワーク待ち時間(214)に適応し、その後、この時刻を関心あるアプリケーション又はサーバーへ発行するものもある。例において、発行される時刻は、次にスケジュールされている無線通信時刻の少し前であって、サーバーの通信及び装置のスケジュール双方が、無線通信の同一のスピンアップを活用する。例えば、装置のスケジュールは、午前9時に起動する予定であって、発行される時刻は、午前8:59:45amである。サーバー通信が、その後、8:59:45amに生じる無線通信をもたらす。
[0014]「ファズ(fuzz)」又は許容範囲要因が、スケジュール(208)それぞれに関連する実施形態において、許容範囲要因は、第2の計算装置(104)に対し、第1の計算装置(102)と連絡するための時刻を対象に調整するためのより大きな時間窓を提供する。50%の許容範囲要因を有する10分間隔のスケジュールの例において、第2の計算装置(104)は、時間5分と時間10分との間において第1の計算装置(102)といつでも連絡し、無線通信のスピンアップを活用する。許容範囲要因が、無線通信のスピンアップが活用される確率を大きくする。
[0015]再び図1を参照すると、例示的なブロック図は、Nが正の整数である、第2の計算装置#1から第2計算装置#Nのような複数の第2の計算装置(104)からデータを受信している第1の計算装置(102)を示している。第2の計算装置(104)は、例えば、インターネットのようなネットワーク(106)を介し第1の計算装置(102)と接続される。実施形態の中には、図3、図4、及び図5に例示されているような動作が、スケジューラー(108)、又はその他のコンポーネント、命令、又はロジックによって第1の計算装置(102)上で実行されるものもある。
[0016]第2の計算装置(104)は、第1の計算装置(102)へ周期的(例えば、定期的又は断続的)にデータを送信するためのサービスを実行する。実施形態の中には、第2の計算装置(104)が、コンテンツのリアルタイム更新(例えば、プッシュメール、カレンダー、連絡先、インスタントメッセージ、及びソーシャルネットワークデータ)を第1の計算装置(102)へ提供するものもある。第2の計算装置(104)が、ハートビート接続試験用パケットを送信又は受信し、第2の計算装置(104)と第1の計算装置(102)との関係をオープンに保つ。
[0017]第2の計算装置(104)は、第1の計算装置(102)へデータを送信するサーバー、プロキシーサーバー、エンタープライズサーバー、又はその他の任意の装置を含むがこれらに限定しない。更に、実施形態の中には、第1の計算装置(102)を参照し記載されている携帯計算装置(602)を含むものもあるが、本発明の態様は、第2の計算装置(104)と通信するラップトップコンピューター、ゲーム端末、携帯ナビゲーション装置、又はその他の任意の機器など、別の装置と作動可能である。加えると、本発明の実施形態は、携帯計算装置(602)へデータを送信するサーバーを参照し説明されているが、本発明の態様は、第1の計算装置(102)と第2の計算装置(104)との間のピアツーピア接続のような別の環境において作動可能である。
[0018]次の図2を参照すると、例示的なブロック図は、本発明の態様を実装するためのリソース及び計算機実行可能なコンポーネントに対する既知の電力供給時間をストアしている第1の計算装置(102)のような計算装置(202)を示している。計算装置(202)は、プロセッサー(204)及びメモリー領域(206)、又はその他の計算機可読媒体を含む。メモリー領域(206)は、Mが正の整数である、スケジュール#1からスケジュール#Mのような複数のスケジュール(208)をストアしている。スケジュール(208)が、計算装置(202)へデータを送信するための第2の計算装置(104)に関連付けられていて、それによって提供される。アプリケーションプログラムが、それぞれのスケジュール(208)を実行し、関連付けられている第2の計算装置(104)のような装置からデータを受信又は送信し、計算装置(202)上のセルラー方式無線通信のような通信インターフェースへの電源投入をもたらす。アプリケーションプログラムは、例えば、計算装置(202)によってホスティングされる。スケジュール(208)それぞれは、起動時刻(210)を有していて、スケジュール(208)それぞれは、少なくとも1つの第2の計算装置(104)に関連付けられている。実施形態の中には、スケジュール(208)が再発性の起動時刻(210)を有するものもある。
[0019]スケジュール(208)の実行が、起動時刻(210)にスケジュール(208)と関連する1つ以上の動作を実施又は実行することを含む。起動時刻(210)は、例えば、関連する第2の計算装置(104)が計算装置(202)へデータを送信する絶対時間又はオフセット時間を示している。データの送信は、計算装置(202)上の電力を消費するリソース(例えば、1つ以上のセルラー方式無線通信のような通信リソース又は無線通信リソース)を使用する。スケジュール(208)は、通信リソースが使用する、既知の将来の時間を示すと同時に、メモリー領域(206)は、代替として又は加えると、1つ以上の通信リソースに対する既知の電力供給時間を明示的にストアし得る。
[0020]実施形態の中には、メモリー領域(206)にストアされているスケジュール(208)が、条件付スケジュール(208)、条件のないスケジュール(208)、通信リソースを消費するスケジュール(208)、及び通信リソースを消費しないスケジュール(208)(又は最適化されたその他のリソース)を含むものもある。そのような実施形態において、計算装置(202)は、送信時刻を決定するとき、スケジュール(208)のサブセットをフィルタリング、検索、又は他に生成する。例えば、条件のないスケジ
ュール(208)は、条件付スケジュール(208)よりも実行される、より大きな機会(例えば、最良の実行見込み)を有していて、したがって、条件のないスケジュール(208)に関連する起動時刻(210)が送信時刻を決定するとき、条件付スケジュール(208)に関連する起動時刻(210)は、優先順位又は優先権が与えられる。
[0021]別の実施形態において、スケジュール(208)は、事前にソートされるか、事前にフィルタリングされるか、又は別の方法で分類される。メモリーは、例えば、送信時刻の決定を早めるための条件付のリソース消費、条件のないリソース消費、及び非リソース消費の別のグループのスケジュール(208)をストアし得る。
[0022]メモリー領域(206)は更に、プロセス遅延(212)及びネットワーク待ち時間(214)をストアする。プロセス遅延(212)は、計算装置(202)上のプロセス実行による遅延を示している。ネットワーク待ち時間(214)は、計算装置(202)へのネットワーク(106)のデータ転送による遅延を示している。実施形態の中には、プロセス遅延(212)及びネットワーク待ち時間(214)のどちらか一方又は双方が、オフセットとして表されるものもある。プロセス遅延(212)及びネットワーク待ち時間(214)は、計算装置(202)によって使用され、より正確な送信時刻を提供する。実施形態の中には、プロセス遅延(212)及びネットワーク待ち時間(214)が、計算装置(202)によって(例えば、プロセス処理又はネットワーク転送中の時間差を測定し)決定されるものもある。別の実施形態において、ネットワーク待ち時間(214)が、(例えば、計算装置(202)へデータを送信している装置によって)計算装置(202)へ提供される。
[0023]メモリー領域(206)は更に、既に提案された1つ以上の送信時刻(216)をストアしている。既に決定された送信時刻(216)は、計算装置(202)へデータを送信するための時刻の手引又は提案時刻を表している。既に決定された送信時刻(216)は、将来、発生する時刻を表している。現在の時刻が午後12時30分である例において、計算装置(202)は、第1のアプリケーションプログラムへの送信時刻、午後12時40分を決定し、提供する。図3を参照し、より詳細に後述されているように、第2のアプリケーションプログラムから送信時刻に関するリクエストを受信すると、計算装置(202)は、既に決定された送信時刻の午後12時40分を認識し、この時刻を、計算装置(202)上の通信リソースの利用を調整するための第2の計算装置(104)へ提供することを考慮し得る。
[0024]メモリー領域(206)は更に、インターフェースコンポーネント(218)、キャッシュコンポーネント(220)、手引コンポーネント(222)、及び発行コンポーネント(224)のような1つ以上の計算機実行可能コンポーネントをストアする。
これらコンポーネントの動作が、図5を参照し後述される。
[0025]次に図3を参照すると、例示的な流れ図は、リクエストされた時間間隔を、スケジュール(208)に関する起動時刻(210)及び既に提案された送信時刻(216)と比較し、サーバーへ提示する送信時刻を決定することを示している。(302)において、第1の計算装置(102)のような計算装置が、サーバー又は第2の計算装置(104)のような別の計算装置からリクエストされた時刻を受信する。実施形態の中には、時刻の値が、最小の時刻の値及び最大の時刻の値を指定している時間間隔又は範囲を含むものもある。時刻の値は、絶対時間(例えば、第1の計算装置(102)による受信時刻)又は現在時刻からのオフセットであり得る。時間間隔を指定する手段の例が付録Aに示されている。
[0026](304)において、リクエストされた時刻の値を受信すると、第1の計算装置
(102)が、スケジュール(208)に関連する1つ以上の次回の起動時刻(210)を識別する。例えば、第1の計算装置(102)が、通信リソース(又は最適化される別のリソース)を消費するスケジュール(208)に関連する起動時刻(210)を識別する。第1の計算装置(102)は、その後、条件の無いスケジュール(208)に関連するそれらの起動時刻(210)を識別する。そのようなスケジュール(208)が利用可能でない場合、第1の計算装置(102)は、条件付スケジュール(208)に関連するそれらの起動時刻(210)を識別する。
[0027](304)においても、第1の計算装置(102)は、既に提案されている1つ以上の送信時刻(216)を識別する。第1の計算装置(102)は、例えば、メモリー領域(206)にストアされた既に提案されている送信時刻(216)にアクセスする。(306)において、リクエストされた時刻の値が、識別された起動時刻(210)及び既に提案された送信時刻(216)と比較される。(306)において第1の計算装置(102)が、比較に基づいて送信時刻を決定する。リクエストされた時刻の値が間隔である例において、決定される送信時刻は、間隔内の時刻を示している。代替として又は加えると、決定された送信時刻は、次回の起動時刻(210)の1つ又は既に提案された送信時刻(216)の1つに対応する時刻を示している。そのような実施形態において、通信リソースが電源投入されている間、複数のサーバーが通信リソースを使用しているため、通信リソースの利用が最適化される。
[0028](308)において、決定された送信時刻がサーバーに提供される。サーバー、提供された送信時刻に第1の計算装置(102)へデータを送信する。実施形態の中には、リクエストされた時刻の値が第1の計算装置(102)上で実行するけれどもサーバー関連するアプリケーションプログラムから受信されるものもある。そのような実施形態において、決定された送信時刻、アプリケーションプログラムへ提供される。アプリケーションプログラムが、決定された送信時刻をサーバーへ伝達し、サーバーが、決定された送信時刻に第1の計算装置(102)へデータを送信する。
[0029]複数のサーバーが第1の計算装置(102)へデータを送信する実施形態において、それぞれのサーバーは、それと関連する優先順位を有している。第1の計算装置(102)は、送信時刻を決定したときに割り当てられる優先順位を使用する。例えば、通信リソースが特定の時間間隔を利用可能な場合、高い優先順位を有し、送信時刻をリクエストしているサーバーが、前に決定された特定の時間間隔内の送信時刻を受信する。低い優先順位を有するサーバーが、特定の時間間隔内に、後で決定される送信時刻を受信する。
[0030]次に図4を参照すると、例示的な流れ図が、データ送信時刻の決定と、プロセス遅延(212)及びネットワーク待ち時間(214)に基づく、決定された送信時刻の調整と、を示している。(402)において、サーバー又は別の第2の計算装置(104)によってリクエストされた時間間隔が(例えば第1の計算装置(102)によって)アクセスされる。リクエストされた時間間隔は時間範囲を示していて、その間、サーバーが第1の計算装置(102)へデータを送信することを所望している。(404)において、リクエストされた時間間隔内にある起動時刻(210)が(実施形態の中には既に決定された送信時刻(216)も)検索され、起動時刻(210)のサブセットを識別する。(406)において、送信時刻が識別された起動時刻(210)のサブセットに基づいて決定され、通信リソースの消費を調整する。(408)において、決定された送信時刻が、プロセス遅延(212)及び/又はネットワーク待ち時間(214)に対応しているオフセットに基づいて調整される。(410)において、決定された送信時刻がサーバーへ発行される。
[0031]送信時刻を決定するための例示的な命令又は動作が、付録Bに記載される。
[0032]次に図5を参照すると、例示的な流れ図が、携帯計算装置(602)に関連した通信リソースに対する既知の電力供給時間に基づくデータ送信時刻の決定を示している。図5の例において、インターフェースコンポーネント(218)、キャッシュコンポーネント(220)、手引コンポーネント(222)、又は発行コンポーネント(224)が、携帯計算装置(602)上で実行する。(502)において、インターフェースコンポーネント(218)が、リクエストされた時間間隔又は時刻の値を受信又はアクセスする。時間間隔が、予測されるサーバーから携帯計算装置(602)へのデータ送信に関連付けられる。(504)において、キャッシュコンポーネント(220)が、携帯計算装置(602)の通信リソースに関する1つ以上の見込みの電力供給時間を識別する。見込みの電力供給時間が、例えば、通信リソース又は既に決定された送信時刻(216)を消費している携帯計算装置(602)上で実行しているスケジュール(208)に関する次回の起動時刻(210)を示している。
[0033](506)において、手引コンポーネント(222)は、インターフェースコンポーネント(218)によって受信されるリクエストされた時間間隔、及びキャッシュコンポーネント(220)によって識別された見込みの電力供給時間の比較に基づいて送信時刻を決定する。例えば手引コンポーネント(222)が、見込みの電力供給時間の1つに対応している時間間隔の始まりに送信時刻を設定する。実施形態の中には、インターフェースコンポーネント(218)によって受信されるリクエストが、予測されるデータ転送サイズを示しているペイロード値を含むものもある。そのような実施形態において、手引コンポーネント(222)は、受信されるペイロード値に基づいて、送信時刻を決定し、携帯計算装置(602)上の帯域幅を管理する(例えば通信リソースのスラッシングを回避する)。小さなペイロードを有するデータパケットが、例えば、最初に送信されるように優先順位付けされ、後に大きなペイロードを有するデータパケットが続く。代替として又はペイロードサイズに加えて、いくつかのインターフェースを横断するペイロードは、優先順位を与えられ、優先順の降順に送信する。
[0034](508)において、公開コンポーネント(224)が、手引コンポーネント(222)によって決定された送信時刻をサーバーへ提供する。サーバーは、提供された送信時刻に携帯計算装置(602)へデータを送信する。
[0035]実施形態の中には、携帯計算装置(602)が複数のセルラー方式無線通信を有するものもある。そのような実施形態において、インターフェースコンポーネント(218)によって受信されたリクエストは、セルラー方式無線通信のうち1つの識別を含む。別の実施形態において、携帯計算装置(602)が、セルラー方式無線通信の1つにリクエストを割り当てる。更に別の実施形態において、スケジュール(208)それぞれによって使用される、接続を維持している無線通信がトラッキングされる。識別されたセルラー方式無線通信が手引コンポーネント(222)によって使用される別の可変なものになり、送信時刻を決定する。そのような実施形態において、メモリー領域(206)にストアされている既に決定された送信時刻(216)それぞれは、関連するセルラー方式無線通信の識別を含んでいる。手引コンポーネント(222)は、送信時刻を決定するとき識別された同一のセルラー方式無線通信を有するスケジュール(208)を優先する。
[0036]次に、図6を参照すると、例示的なシーケンスの図が、2つのサーバーから携帯計算装置(602)へのデータ送信スケジュールを示している。携帯装置において実行している2つのアプリケーションプログラム(604)、(606)が、携帯計算装置(602)へのデータ送信に関する手引をリクエストする。スケジューラー(108)から手引を受信すると、アプリケーションプログラム(604)、(606)が、関連するサーバー(610)、(612)へ手引を提供する。サーバー(610)、(612)は、そ
の後、手引された時刻に携帯計算装置(602)へのデータ送信を試みる。
[0037]図6の例において、既知の電力供給時間(例えば、次回の起動時刻(210)又は既に決定されている送信時刻(216))のリストは、ServerSendTimesのリストとして参照される。ServerSendTimesのリストは、スケジューラー(108)又は別のサービスの起動中に生成され、スケジューラー(108)がプロセスを終了するとき、クリアされる。ServerSendTimesのリストは、キャッシュとして処理されていて、キャッシュエントリーがリクエストされた時間間隔内に収まっている場合、キャッシュエントリーが別の送信時刻を決定するときの候補として考慮される。実施形態の中には、キャッシュが、<key,value>=<ServerSendTime,frequncy>を用いたハッシュマップとして表されるものもある。<ServerSendTime,frequncy>のマップが、key(ServerSendTime)に関してソートされる。そのような例において、マップは、終了時刻に最も近いServerSendTimeの識別速度を増す。
[0038]実施形態の中には、それぞれのスケジュール(208)に対する起動時刻(210)が、起動時刻(210)によって(例えば昇順に)ソートされたキャッシュとしてストアされるものもある。キャッシュは、アクティブスケジュール(208)すべてに対する起動時刻(210)をストアしている。キャッシュは、サーバーから受信された送信データに対するリクエストそれぞれを用いて作成又は更新される。実施形態の中には、スケジューラー(108)が、単にこのキャッシュを提供又は発行していて、サーバーが適切な送信時刻を選択できるようにしているものもある。
[0039]図6の例において、リクエストされた時間間隔を受信すると、スケジューラー(108)は、キャッシュを介し繰り返し(例えば、現在時刻に満たない起動時刻(210)を有する)期限が切れたエントリーすべてを削除する。スケジューラー(108)は、スケジュール(208)を介し繰り返し、携帯計算装置(602)上の通信リソースを使用する、再発性のアクティブスケジュール(208)のサブセットを識別する。スケジュール(208)のサブセットのスケジュール(208)それぞれに対する次の起動時刻(210)が計算される。スケジューラー(108)は、このスケジュール(208)のサブセットから、サーバーによってリクエストされた時間間隔内に収まる起動時刻(210)を識別する。スケジューラー(108)は、高い実行確実性を有するスケジュール(208)に関連する起動時刻(210)に優先権を与える。例えば、実行に関し条件のないスケジュール(208)は高い実行確実性を有する。スケジューラー(108)は、識別されたスケジュール(208)のサブセットに基づいて起動時刻(210)のキャッシュを更新する。
[0040]スケジューラー(108)は、起動時刻(210)のキャッシュ及びServerSendTimesのリストに基づいて送信時刻又は別の時刻の手引を決定する。起動時刻(210)の1つがリクエストされた時間間隔内に収まっている場合、起動時刻(210)がServerSendTimesのリストに追加され、頻度が1に設定される。起動時刻(210)のキャッシュ内の起動時刻(210)を満たしているものが存在しない場合、スケジューラー(108)は、ServerSendTimesのリストを走査する。ServerSendTimesの1つがリクエストされた時間間隔内に収まっている場合、そのServerSendTimeがリクエストされているサーバーへ提供され、リスト内のそのServerSendTimeの頻度が増やされる。1つ以上のServerSendTimeが間隔内に収まっている場合、最も大きな頻度を有するServerSendTimeが選択される。ServerSendTimeのどれもリクエストされた時間間隔内に収まらない場合、最も近いServerSendTimeが、(例えば、定義された許容範囲又はデルタ領域に基づいて)選択される。送信時刻は、最も近
いServerSendTimeの始まりに設定される。どんなServerSendTimeも時間間隔内に収まっていない場合、リクエストされた時間間隔の終わりの時刻がServerSendTimeに設定される。終了時刻が、その後、1の頻度(1)を用いてServerSendTimesのリストへ入力される。
[0041]図6の例は、例示的な送信時刻の決定を例示しているが、別の選択方法が本発明の態様の範囲内にある。更に、選択方法が動的に変更され得る。
[0042]実施形態の中には、最小の時刻の値が現在時刻であって、最大の時刻の値が最大のハートビート間隔(例えば、携帯計算装置(602)とサーバーが、ずっと接続を維持しているためにデータを送信せずに作動し得る最長の期間)を表しているものもある。
[0043](示されていない)実施形態において、サーバーは、1つ以上のサーバーからのデータを段階分けするプロキシーサーバーである。プロキシーサーバーは、携帯計算装置(602)にデータを送信する前にデータを段階分けする。プロキシーサーバーは、データパケット(又はサーバー)に割り当てられる優先順位を有する。優先権は、携帯計算装置(602)へのデータパケットを取得するための(例えば、パケットを遅延させる許容範囲に対する)緊急性を示している。プロキシーサーバーは、意志の観点から優先順位を定量化し、データを送信する前(例えば数分間)、待機する。携帯計算装置(602)において、アプリケーションは、データパケットを発信しているサーバーがデータの送信を遅延させる意志がある持続時間に等しい最小の時刻(例えば現在時刻)と、最大の時刻と、を提供する。携帯計算装置(602)のアプリケーションがサーバーへハートビート接続試験用パケットを送信したとき、それは、サーバーがデータを送信するために決定された送信時刻又は最も適した将来の手引を含んでいる。
[0044]ServerSendTimeは、サーバーがデータを送信する開始時刻を示している。リソースがServerSendTime後、ある持続時間(例えばセルラー方式無線通信のテール)が利用可能なことを知っている実施形態において、持続時間は、スケジューラー(108)によって考慮される。許容範囲又はデルタ領域は、例えば、既知のセルラー方式無線通信のテールに基づいて設定される。

[0045]例において、メールサーバーは、手引を要求し、最小時刻及び最大時刻として12:00及び12:20を提供する。スケジューラー(108)は、10分間隔の持続時間スケジュールを持った、12:20にアクティブ接続を有するアクティブスケジュールを有している。スケジューラー(108)が、アクティブスケジュールを識別し、ネットワーク待ち時間(214)及び/又はプロセス遅延(212)(例えば30秒)を考慮した送信時刻に適応し、送信時刻12:19:30を決定し、決定された送信時刻をサーバーへ提供する。
[0046]たった今の例の変形において、どんな起動時刻(210)もリクエストされた時間間隔内に収まらない。この例において、スケジューラー(108)が、決定された送信時刻(例えばServerSendTime)として最大時刻12:20を設定する。
[0047]たった今の例を継続すると、別のサーバーが、最小の時刻及び最大の時刻として12:15及び12:30を提供する。ServerSendTimeは、12:20に等しく、リクエストされた時間間隔内に収まっている。スケジューラー(108)は、ネットワーク待ち時間(214)に対し適応した後、決定された送信時刻として12:19:30を提供する。
例示的動作環境
[0048]例であって限定されない計算機可読媒体は、計算機記憶媒体及び通信媒体を含む
。計算機記憶媒体は、計算機可読な命令、データ構造、プログラムモジュール、又はその他のデータなどの情報をストアする。通信媒体は、典型的に、計算機可読な命令、データ構造、プログラムモジュール、又はその他のデータを搬送波又はその他の伝送機構のような変調データ信号で具体化していて、任意の情報送信媒体を含んでいる。上記の組み合わせはどれも、計算機可読媒体の範囲内に含まれる。
[0049]例示的な計算システム環境に関し説明されているが、本発明の実施形態は別の多くの汎用若しくは専用計算システム環境又は構成を用いて作動する。本発明の態様をとともに使用するための知られている適切な計算システム、環境、及び/又は構成の例は、携帯計算装置、パーソナルコンピューター、サーバーコンピューター、携帯用若しくはラップトップ機器、マルチプロセッサーシステム、ゲーム端末、マイクロプロセッサーベースのシステム、セットトップボックス、プログラマブル家電、携帯電話、ネットワークPC、ミニコンピューター、メインフレームコンピューター、上記システム又は機器などのうち任意のものを含む分散計算環境を含むがこれらに限定しない
[0050]本発明の実施形態は、1つ以上の計算機又はその他の機器によって実行されるプログラムモジュールなどのように計算機実行可能命令に関する一般的な文脈で記載されている。計算機が実行可能な命令は、1つ以上の計算機実行可能コンポーネント又はモジュールの中に統合化され得る。一般にプログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実装しているルーチン、プログラム、オブジェクト、コンポーネント、及びデータ構造を含むがこれらに限定しない。本発明の態様は、そのようなコンポーネント又はモジュールの任意の数及び機構を用いて実装され得る。本発明の態様は、例えば、図面に例示され本明細書に記載された特定の計算機実行可能命令、特定のコンポーネント又はモジュールに制限されない。本発明の別の実施形態は、異なる計算機実行可能命令又は本明細書に例示され記載されたものよりも多いか若しくは少ない機能性を有するコンポーネントを含み得る。
[0051]本明細書に例示され記載された実施形態、及び本発明の態様の範囲内であるが本明細書に特に記載されていない実施形態が、リクエストされた時間間隔内の無線通信リソースに対する既知の電力供給時間に基づく送信時刻を決定するための例示的手段と、プロセス遅延(212)及び待ち時間に基づいて送信時刻を調整するための例示的手段と、を構成する。
[0052]本明細書に例示され記載された発明の実施形態において、命令の順番又は動作の性能は、特に記載していない限り本質的ではない。すなわち動作は、特に記載していない限り任意の順番で実行され、本発明の実施形態は、本明細書に開示されたものに付加的な動作又ははより少ない動作を含む。例えば、別の動作の前か、同時か、又は後に実行するか若しくは実施する特定の動作が、本発明の態様の範囲内にあることを想定されている。
[0053]本発明の態様のエレメント又はその実施形態を導入するとき、冠詞、「a」、「an」、「the」、及び「said」は、1つ以上のエレメントが存在することを意味するように意図されている。用語「から成る()」、「を含む()」、「を有する()」は、包括的であって、記載されたエレメント以外の付加的なエレメントが有り得ることを意味するように意図されている。
[0054]本発明の態様を詳細に説明したので、修正及び変型が添付した請求項に定義されているように本発明の態様の範囲から逸脱せずに可能であることが明らかであろう。上記の構造、製品、及び方法において様々な変更が本発明の態様の範囲から逸脱せずに実施され得るので上記説明に含まれていて添付図面に示されている事項すべてが、例示的であって、限定した意味でないものとして解釈されるように意図されている。
付録A
[0055]以下に示されるアプリケーションプログラミングインターフェース(API)は、アプリケーションプログラムが最小時刻及び最大時刻の間隔を提供することを可能にする。第1の計算装置上で実行するスケジューラーは、2つの間隔の間に収まる(例えばユニバーサルタイムコード形式の)手引を返却する。
APIの署名は以下に示される。
//preconditions:-
// startTime <= endTime
// CurrentTime <= endTime
//postconditions:-
// startTime <= serverSendTime and serverSendTime <= endTime
HRESULT TaskSchedulerGetBestNetworkTimelnRange (_in const FILETIME * startTime, _in const FILETIME *endTime, _out FILETIME *serverSendTime);
このAPIは、startTimeとendTimeとの間の機器にデータを送信するサーバーのための手引が、時刻を取得する。
パラメーター
startTime
[in]間隔の始まりの時間
endTime
[in]間隔の終わりの時間
serverSendTime
[out]サーバーが機器へデータを送信する必要がある時刻の手引
返却値
S_OK
成功した場合、返却される値
E_INVALIDARG
前提条件のどれかが失敗又は不正な引数の場合、返却される値
E_FAIL
成功しなかった場合、返却される値
[0056]既にTaskSchedulerGetBestNetworkTimelnRange()によって返却される手引をキャンセルするための例示的なAPIが以下に示される。このAPIは、任意のリクエスト元によって使用され、手引を使用せずに終了する。APIは、手引の時刻が発行されるとき、より高い重み付けがされるので、少なくとも本発明の態様の精度及び有効性を増大する。スケジューラーは、このAPI関数呼び出しを用いて、時刻の手引の値の利用を密接にトラッキングし、次に時刻の手引を与えるとき、スケジューラーによって内部で使用される発見的手法を改善する。以下の例において、既存の手引をキャンセルするためのTaskSchedulerCancelBestNetworkTimeを使用した呼び出し元(アカウント)は、手引を取得するためのTaskSchedulerGetBestNetworkTimelnRangeを使用した同一の呼び出し元(アカウント)である。
HRESULT TaskSchedulerCancelBestNetworkTime (_in const FILETIME *serverSendTime);
パラメーター
serverSendTime
[in]TaskSchedulerGetBestNetworkTimelnRangeによって、前に返却された時刻の手引
返却値
S_OK
時刻の手引のリリースがトラッキングされている
S_FALSE
時刻の手引が認識されない(値が「期限切れ」又はTaskSchedulerGetBestNetworkTimelnRangeによって以前、返却されていない)
E_*
リクエスト処理中に遭遇するその他の失敗
付録B
[0057]送信時刻を決定するための例示的な命令又は動作が以下に示される。
[0058]ServerSendTimeのリストは、サービスの起動中、生成され、サービスが終了されるとき、クリアされる。このリストはキャッシュとして扱われ、キャッシュエントリーが間隔の間に収まる場合、すべてのスケジュールを介し繰り返し、再度、ServerSendTimeを計算する必要はなく、キャッシュエントリーは、ServerSendTimeに関する候補であるとみなされ得る。キャッシュは、<key,value>=<ServerSendTime,mapAcctIdtoFreq>を有するハッシュマップ(hashmap)として内部で表され得、ここでmapAcctIdtoFreqは、頻度に対する所有者アカウント識別子のハッシュマップであって、
map<ACCTID, DWORD>mapAcctIdtoFreq;
として定義される。
<ServerSendTime,mapAcctIdtoFreq>のマップは、キー(ServerSendTime)に関しソートされる。
NRT(nextruntime)に関しソートされた<NRT>のリストも保持される。このリストは、APIが呼び出されるときはいつも生成される。リストは、アクティブスケジュールすべてに関するNRTをストアしている。
送信時刻を決定するための例示的なアルゴリズムが次に説明される。
1.キャッシュを介し繰り返し、期限が切れている(例えばNRT<CurrentTime)エントリーすべてを削除する。
2.starttime==endTimeの場合、キャッシュ<ServerSendTime,mapAcctIdtoFreq>に値を追加し、存在しない場合、さもなければ、ServerSendTimeが既にキャッシュに存在しているとき、napAcctldtoFreqに頻度を追加又は増加する。
3.ShrinkFactorがレジストリに定義されている場合、シュリンクファクターに基づいて間隔(starttime−endTime)を短かくする。
Starttimeが、newStartTimeにプッシュされ、間隔(newStartTime−endTime)となる。定義されていない場合、newStartTime=starttimeである。
これは常に、終了時刻の近くで実行され、時刻の手引を生成する。
4.グループコレクションを介し繰り返す。
5.それぞれのグループのスケジュールすべてを通し繰り返す。
6.以下の条件を満たすスケジュールだけを考えられたい。
a)Recurrence!=BOOTUP
b)Network Connectivity=TRUE(ネットワーク接続のないスケジュールは、それらが無線通信スピン低減の支援が可能か又は可能ではないので、SendServerTimeに関し考慮されない)
c)IsCellularPreferred=1の場合、CELLULAR=ON
を有するスケジュールだけを考慮する。IsCellularPreferred=0の場合、CELLULARの条件を考慮しない。
d)Active=TRUE
考慮されるスケジュールは、現在アクティブであるスケジュールを含んでいて、与えられたnewStartTime−endtime及びMaxRuncounts条件が満たされ、将来もアクティブを維持する。
7.次に説明されるServerSendTimeが、ステップ6において生成されたリストから作成される。
(例えば、ステップ6において作成された)リスト内で選択されたスケジュールそれぞれに対し、N番目のRunTimeを計算する。N番目のランタイムは、
再発性の平均に関しては
NRT (N) = NRT (N-1) + CurrentlntervalDuration
再発性の間隔に関しては
NRT (N) = NRT (N-1)+ CurrentlntervalDuration
の式を使用し計算され、
ここでNRT(0)=Groupであって、次のランタイム時、アクティブスケジュールである。
以下、2つのカテゴリに属するスケジュールだけを考えられたい。
a)条件のないスケジュール及びグループ内のスケジュールのみ。
b)条件のないスケジュール及びグループ内の条件を有していない別のスケジュールもすべて。
グループ内にある条件を有する少なくとも1つのスケジュールが存在する場合、そのグループは、ServerSendTimeに関し考慮されない。
8.この結果、<NRT>のリスト及びキャッシュ<ServerSendTimes,mapAcctIdtoFreq>となる。
次に、間隔<newStartTime,endTime>内において「最良」の時刻の手引が選択される。
IsPreferredCacheを設定したレジストリに基づく少なくとも2つの順列があり得る。
a)IsPreferredCache=1の場合、最初、キャッシュ<ServerSendTimes,mapAcctIdtoFreq>内のServerSendTimeを検索する。
1つのServerSendTimeだけが見つかった場合、ステップ10へ。
複数のServerSendTime値が見つかった場合、最大の頻度を有するserverSendTimeを検索し、ステップ10へ。
同一の最大値を持つ2つ以上のServerSendTimeを有する、複数のServerSendTime値が見つかった場合、UseEndtimeのレジストリの値に基づいて1つを選択する。
UseEndTime=1の場合、
間隔の終わりに近い値を選択する
UseEndTime=1の場合、
間隔の始まりに近い値を選択する
その他の場合、キャッシュ内に見つからなかったとき、リスト<NRT>を調査
b)IsPreferredCache=0の場合、最初、リスト<NRT>内のServerSendTimeを検索。ServerSendTimeが見つかった場合、ステップ10へ。
複数のNRTが見つかった場合、UseEndTimeのレジストリ値に基づいて1つを選択し、
UseEndTime=1の場合、
間隔の終わりに近い値を選択
UseEndTime=1の場合、
間隔の始まりに近い値を選択、
その他の場合、リスト<NRT>内に見つからなかったとき、キャッシュ<ServerSendTime,mapAcctIdToFreq>を調査。
9.ステップ8から、ServerSendTimeが見つからなかった場合、
ShrinkFactor=0の場合、
デルタ領域を計算し、キャッシュ<ServerSendTime,mapAcctIdtoFreq>からデルタ領域内のServerSendTimeを検索。
デルタ領域は、
Starttimeに対しStarttime−デルタとして考慮され得、
ServerSendTimeがデルタ領域内においても見つからなかった場合、UsedEndTimeのレジストリ値に基づいてServerSendTimeを割り当てる
UseEndTime=1 の場合、
ServerSendTime=Endtimeである
UsedEndTime=0の場合、
ServerSendTime=StartTimeである
ShrinkFactor=1の場合、
この場合、starttimeが既に新しい値にプッシュされるので、デルタ領域はチェックされ得ない。
ServerSendTimeをEndTimeに割り当てる。
ServerSendTime=EndTimeである
10.ステップ8から、ServerSendTimeが見つかった場合、
a.NetworkLatencyAdjustment ServerSendTime=ServerSendTime−NetworkLatencyAdjustmentを用いて、ServerSendTimeを調整する
新しいServerSendTime>StartTimeかチェックする。(StartTimeはShrinkFactorを適用しない)
そうでない場合、ServersendTime=StartTimeを割り当てる。(StartTimeはShrinkFactorを適用しない)
11.ここで、ServerSendTimeが計算され、キャッシュ<ServerSendTimes,mapAcctIdtoFreq>内のこのServerSendTimeの値を検索する。
a.キャッシュ内に見つからなかった場合、この値を所有者のアカウント識別子及びfrequency=1を用いて追加する。
b.キャッシュ内に見つかった場合、アカウント識別子を検索する。アカウント識別子も存在する場合、頻度を増やす。アカウント識別子が存在しない場合、frequency=1を用いてアカウント識別子を追加する。
12.TaskSchedulerCancelBestNetworkTimeが、ある時刻の値を用いて呼び出された場合、それは、キャッシュ<ServerSendTimes,mapAcctldtoFreq>内のその値を検索する。値がキャッシュ内に見つかった場合、対応するmapAcctldtoFreqが、所有者のアカウント識別子を検索する。ある値がmapAcctldtoFreqにおいて見つかった場合、頻度が減らされる。frequency=0のとき、mapAcctIdtoFreからエントリーを削除する。mapAcctldtoFreqが空である場合も、キャッシュ<ServerSendTimes,mapAcctIdtoFreq>からServerSendTimeの値を削除する。
留意点:
1)NetworkLatencyAdjustmentは、ネットワーク待ち時間及びプロセス遅延を使用し決定される値である。これは、ネットワーク待ち時間を説明する構成可能なレジストリエントリーである。ServerSendTimeが返却されるときはいつも、それはNetworkLatencyAdjustmentによるオフセットである必要がある。
2)機器の絶対時間が変化した場合、キャッシュ<ServerSendTime,frequency>内の時刻の値は、時刻変更に基づいて調整される必要がある。これは、timechangeイベント通知を登録することによって実行され得る。
3)APIが開始時刻/終了時刻を用いて非常に細かく呼び出されるとき、(例えば、間隔が10年より遅い)シナリオが存在し得る。そのような場合、(例えば、間隔が現在時刻から24時間以内である)境界チェックが、NRT<N>を計算する代わりにAPIにおいて実行される。
4)StarttimePreferred/EndtimePreferredを含むレジストリの値及びFrequencyPreferredは、構成可能なレジストリエントリーである。選択アルゴリズムは、これらのレジストリの値に基づいて動的に変更され得る。
102 第1の計算装置
104 第2の計算装置
106 ネットワーク
108 スケジューラー
202 計算装置
204 プロセッサー
206 メモリー領域
208 スケジュール
210 起動時刻
212 プロセス遅延
214 ネットワーク待ち時間
216 送信時刻
218 インターフェースコンポーネント
220 キャッシュコンポーネント
222 手引コンポーネント
224 発行コンポーネント
602 携帯計算装置
604 アプリケーションプログラム
606 アプリケーションプログラム
610 サーバー
612 サーバー

Claims (15)

  1. ネットワークを介し、サーバーから携帯計算装置へデータを送信する時刻を提示するためのシステムであって、
    複数の起動時刻をストアするための前記携帯計算装置上のメモリー領域であって、前記起動時刻が、複数のスケジュールに関連し、前記複数のスケジュールの起動が、前記携帯計算装置上の無線通信リソースを消費し、前記メモリー領域が更に、前記携帯計算装置上のプロセス遅延及びネットワークに関連する待ち時間を示すオフセットをストアするものと、
    前記携帯計算装置上のプロセッサーと、を含み、該プロセッサーが、
    前記携帯計算装置へデータを送信するための前記サーバーによって、リクエストされた時間間隔にアクセスし、
    前記リクエストされた時間間隔に基づいて、前記ストアされている複数の起動時刻を検索し、前記複数の起動時刻のサブセットを識別し、
    前記識別された前記複数の起動時刻のサブセットに基づいて、送信時刻を決定し、
    前記メモリー領域にストアされている前記オフセットに基づいて、前記決定された送信時刻を調整し、
    前記調整された送信時刻を発行するようにプログラムされており、前記サーバーが、前記調整され発行された送信時刻に基づいて前記携帯計算装置へ前記データを送信すること、を特徴とするシステム。
  2. 前記決定された送信時刻が、現在時刻からのオフセットを含むことを特徴とする請求項1記載のシステム。
  3. 前記プロセッサーが更に、前記携帯計算装置上で実行しているサーバーに関連するアプリケーションプログラムから前記時間間隔を受信するようにプログラムされていることを特徴とする請求項1記載のシステム。
  4. 前記サーバーが、前記発行された起動時刻に前記携帯計算装置へ前記データを送信することを特徴とする請求項1記載のシステム。
  5. 前記プロセッサーが更に、最大の実行可能性を有するスケジュールを識別することによって、前記サブセットの1つを選択するようにプログラムされていることを特徴とする請求項1記載のシステム。
  6. 前記携帯計算装置が、複数の無線通信を含み、前記プロセッサーが、前記サーバーから前記時間間隔に関するリクエストを受信し、前記リクエストが、前記無線通信の1つを識別するようにプログラムされていることと、前記プロセッサーが、前記リクエストされた時間間隔及び前記識別された無線通信に基づいて、前記ストアされている複数の起動時刻を検索するようにプログラムされていることと、を特徴とする請求項1記載のシステム。
  7. 更に、
    前記リクエストされた時間間隔内で前記送信時刻を、前記無線通信リソースに対する既知の電力供給時間に基づいて決定する手段と、
    前記送信時刻を、前記プロセス遅延及び前記待ち時間に基づいて調整する手段と、を含む請求項1記載のシステム。
  8. 第1の計算装置によって実行される方法であって、前記方法が、
    第1の計算装置にデータを送信するために第2の計算装置からリクエストされた時刻の値を受信するステップと、
    複数のスケジュールに関連する複数の起動時刻を識別するステップであって、前記複数のスケジュールの起動が、前記第1の計算装置に関するリソースを消費するものと、
    既に提案された1つ以上の送信時刻を識別するステップと、
    前記リクエストされた時間値を、前記識別された複数の起動時刻及び前記既に提案された送信時刻と比較するステップと、
    前記比較に基づいて送信時刻を決定するステップと、
    前記決定された送信時刻を前記第2の計算装置へ提供するステップであって、前記第2の計算装置が、前記決定され提供された送信時刻に前記第1の計算装置へデータを送信するステップと、を含む方法。
  9. 前記リクエストされた時刻の値を受信するステップが、最小の時刻の値及び最大の時刻の値を受信するステップを含むことを特徴とする請求項8記載の方法。
  10. 前記リクエストされた時刻の値を受信するステップが、前記第2の計算装置に関連するアプリケーションプログラムから前記リクエストされた時刻の値を受信するステップを含むことと、前記第1の計算装置が、前記アプリケーションプログラムの実行をホスティングし、更に、前記決定された送信時刻を第2の計算装置へ伝達するための前記アプリケーションプログラムへ提供するステップと、含むことを特徴とする請求項8記載の方法。
  11. 前記第2の計算装置が、複数の計算装置の1つであって、前記複数の計算装置それぞれが、それに関する優先順位を有していて、前記送信時刻を決定するステップが、前記第2の計算装置に関連する前記優先順位に基いて前記送信時刻を決定するステップを含むことを特徴とする請求項8記載の方法。
  12. 前記複数の起動時刻を識別するステップが、条件のないスケジュールに関連する複数の起動時刻を識別するステップを含むことを特徴とする請求項8記載の方法。
  13. 前記時刻の値が時間間隔を含むことと、前記送信時刻を決定するステップが、前記時間間隔内で送信時刻を決定するステップと、既に決定された前記送信時刻の1つ又は前記複数の起動時刻の1つに対応付けるステップと、を含むことを特徴とする請求項8記載の方法。
  14. 前記時刻の値が時間間隔を含むことと、前記送信時刻を決定するステップが、前記時間間隔内で送信時刻を決定するステップを含むことと、前記決定された送信時刻が、前記複数の起動時刻の1つよりも少し早期であることを特徴とする請求項8記載の方法。
  15. 更に、
    リクエストされた時間間隔を受信するためのインターフェースコンポーネントであって、前記リクエストされた時間間隔が、第2の計算装置から前記第1の計算装置への予測されるデータ伝達に関連しているものと、
    前記第1の計算装置の通信リソースに関連する複数の見込み電力供給時間を識別するためのキャッシュコンポーネントと、
    前記インターフェースコンポーネントによって受信された前記時間間隔、及び前記キャッシュコンポーネントによって識別された前記複数の見込み電力供給時間の比較に基づいて、送信時刻を決定するための手引コンポーネントと、
    前記手引コンポーネントによって決定された前記送信時刻を前記第2の計算装置へ提供するための公開コンポーネントであって、前記第2の計算装置が、前記提供された送信時刻に前記第1の計算装置へ前記データを送信するものと、を含む請求項8記載の方法。
JP2011529211A 2008-09-25 2009-09-24 時刻提示を用いたデータ配信調整システム及び方法 Expired - Fee Related JP5592380B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/237,797 2008-09-25
US12/237,797 US7966410B2 (en) 2008-09-25 2008-09-25 Coordinating data delivery using time suggestions
PCT/US2009/058166 WO2010036768A2 (en) 2008-09-25 2009-09-24 Coordinating data delivery using time suggestions

Publications (3)

Publication Number Publication Date
JP2012503952A JP2012503952A (ja) 2012-02-09
JP2012503952A5 JP2012503952A5 (ja) 2012-09-27
JP5592380B2 true JP5592380B2 (ja) 2014-09-17

Family

ID=42038744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011529211A Expired - Fee Related JP5592380B2 (ja) 2008-09-25 2009-09-24 時刻提示を用いたデータ配信調整システム及び方法

Country Status (6)

Country Link
US (1) US7966410B2 (ja)
EP (1) EP2340673B1 (ja)
JP (1) JP5592380B2 (ja)
KR (1) KR101617057B1 (ja)
CN (1) CN102165818B (ja)
WO (1) WO2010036768A2 (ja)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058483A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Connection architecture for a mobile network
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US8468126B2 (en) * 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
WO2006045102A2 (en) 2004-10-20 2006-04-27 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US8010082B2 (en) * 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (fi) 2004-12-03 2006-06-30 Seven Networks Internat Oy Sähköpostiasetusten käyttöönotto matkaviestimelle
US7877703B1 (en) 2005-03-14 2011-01-25 Seven Networks, Inc. Intelligent rendering of information in a limited display environment
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US8793305B2 (en) * 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
CN102365395B (zh) * 2009-04-07 2015-04-29 巴斯夫欧洲公司 包含抑制剂的无空隙亚微米结构填充用金属电镀组合物
US8166203B1 (en) * 2009-05-29 2012-04-24 Google Inc. Server selection based upon time and query dependent hashing
GB2495066B (en) 2010-07-26 2013-12-18 Seven Networks Inc Mobile application traffic optimization
JP5620578B2 (ja) 2010-07-26 2014-11-05 セブン ネットワークス インコーポレイテッド 複数のアプリケーションにわたるモバイルネットワークトラフィック調整
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
GB2495877B (en) 2010-07-26 2013-10-02 Seven Networks Inc Distributed implementation of dynamic wireless traffic policy
US9118611B2 (en) * 2010-08-20 2015-08-25 Mosys, Inc. Data synchronization for circuit resources without using a resource buffer
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
WO2012060997A2 (en) 2010-11-01 2012-05-10 Michael Luna Application and network-based long poll request detection and cacheability assessment therefor
WO2012060996A2 (en) 2010-11-01 2012-05-10 Michael Luna Caching adapted for mobile application behavior and network conditions
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
WO2012061437A1 (en) 2010-11-01 2012-05-10 Michael Luna Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
GB2495463B (en) 2010-11-22 2013-10-09 Seven Networks Inc Aligning data transfer to optimize connections established for transmission over a wireless network
EP2636268B1 (en) 2010-11-22 2019-02-27 Seven Networks, LLC Optimization of resource polling intervals to satisfy mobile device requests
WO2012094675A2 (en) 2011-01-07 2012-07-12 Seven Networks, Inc. System and method for reduction of mobile network traffic used for domain name system (dns) queries
US9084105B2 (en) 2011-04-19 2015-07-14 Seven Networks, Inc. Device resources sharing for network resource conservation
EP2702827A4 (en) 2011-04-27 2014-10-22 Seven Networks Inc MOBILE DEVICE DISCHARGING REQUESTS MOBILE APPLICATION TO REMOTE ENTITY TO KEEP MOBILE DEVICE RESOURCES AND NETWORK RESOURCES AND RELATED METHODS
WO2012149434A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
WO2013015995A1 (en) 2011-07-27 2013-01-31 Seven Networks, Inc. Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
US8977755B2 (en) 2011-12-06 2015-03-10 Seven Networks, Inc. Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
EP2788889A4 (en) 2011-12-07 2015-08-12 Seven Networks Inc FLEXIBLE AND DYNAMIC INTEGRATION SCHEMES OF A TRAFFIC MANAGEMENT SYSTEM WITH VARIOUS NETWORK OPERATORS TO REDUCE NETWORK TRAFFIC
WO2013086447A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9380110B2 (en) 2011-12-09 2016-06-28 Google Technology Holdings LLC Adaptive data synchronization based on data plan or network usage
WO2013090821A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
WO2013090212A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
US8909202B2 (en) 2012-01-05 2014-12-09 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
WO2013116856A1 (en) 2012-02-02 2013-08-08 Seven Networks, Inc. Dynamic categorization of applications for network access in a mobile network
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
WO2013155208A1 (en) 2012-04-10 2013-10-17 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
US9736222B1 (en) * 2013-04-28 2017-08-15 Amdocs Software Systems Limited System, method, and computer program for automatically exposing application programming interfaces (APIS) associated with an application server to one or more client devices
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
CN103647727B (zh) * 2013-11-29 2017-01-18 福建星网锐捷网络有限公司 音视频传输控制方法和装置
US9906977B2 (en) 2014-04-18 2018-02-27 Apple Inc. Deterministic RRC connections
US9497771B2 (en) 2014-04-18 2016-11-15 Apple Inc. Deterministic RRC connections
US10375646B2 (en) * 2014-04-18 2019-08-06 Apple Inc. Coordination between application and baseband layer operation
US20150341280A1 (en) * 2014-05-22 2015-11-26 Toshiba Tec Kabushiki Kaisha Method to diffuse cloud peak load by dynamically adjusting communication schedules
US20160150006A1 (en) * 2014-11-21 2016-05-26 At&T Intellectual Property I, L.P. Device data transfer via a wireless interface
US10383055B2 (en) 2015-01-26 2019-08-13 Hewlett Packard Enterprise Development Lp Regulating a power consumption state of a cellular radio

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924783B1 (en) * 1994-05-06 2011-04-12 Broadcom Corporation Hierarchical communications system
US6694146B1 (en) * 1995-09-25 2004-02-17 Pacific Comm Sciences Inc Method for reducing time required to receive and decode a temporary equipment identifier message
US5867657A (en) * 1996-06-06 1999-02-02 Microsoft Corporation Distributed scheduling in a multiple data server system
US7209949B2 (en) * 1998-05-29 2007-04-24 Research In Motion Limited System and method for synchronizing information between a host system and a mobile data communication device
US7305475B2 (en) * 1999-10-12 2007-12-04 Webmd Health System and method for enabling a client application to operate offline from a server
JP2004501523A (ja) * 1999-12-21 2004-01-15 クゥアルコム・インコーポレイテッド 時間同期セルラーネットワーク装置
US7155487B2 (en) * 2000-11-30 2006-12-26 Intel Corporation Method, system and article of manufacture for data distribution over a network
FI20012256A0 (fi) * 2001-11-20 2001-11-20 Nokia Corp Matkaviestintäverkot ja digitaaliset yleislähetyspalvelut
US7299304B2 (en) * 2001-11-20 2007-11-20 Intel Corporation Method and architecture to support interaction between a host computer and remote devices
JP2003162470A (ja) * 2001-11-27 2003-06-06 Fujitsu Ltd 配信制御プログラムおよび方法
JP2003230121A (ja) * 2001-11-30 2003-08-15 Fujitsu Ltd コンテンツ配信方法、コンテンツ視聴方法、サーバ装置、および端末装置
JP2003223385A (ja) * 2002-01-31 2003-08-08 Matsushita Electric Ind Co Ltd データ配信システム及びにデータ配信方法
US7130313B2 (en) * 2002-02-14 2006-10-31 Nokia Corporation Time-slice signaling for broadband digital broadcasting
KR100721298B1 (ko) * 2002-03-11 2007-05-28 리서치 인 모션 리미티드 모바일 장치에 데이터를 푸시하는 시스템 및 방법
US7110783B2 (en) * 2002-04-17 2006-09-19 Microsoft Corporation Power efficient channel scheduling in a wireless network
US8271971B2 (en) * 2002-11-26 2012-09-18 Hewlett-Packard Development Company, L.P. System and method for automated program updating in a remote appliance
US7693117B2 (en) * 2002-12-16 2010-04-06 Avaya Inc. Power-saving mechanism for periodic traffic streams in wireless local-area networks
CN1324858C (zh) * 2003-01-13 2007-07-04 三星电子株式会社 利用节能轮询表来减少功耗的设备和方法
US20040225525A1 (en) * 2003-05-05 2004-11-11 Weitzman Vernon L. Automatic contacts replication system and software
CA2524789C (en) * 2003-05-06 2010-09-28 Research In Motion Limited System and method of wireless device activity messaging
US7286845B2 (en) * 2003-06-30 2007-10-23 Nokia Corporation System, and associated method, for scheduling weighted transmissions from multiple antennas
US7069303B2 (en) * 2003-08-21 2006-06-27 Par3 Communications, Inc. Method and system for regulating the dispatching of messages for requestors
KR101015642B1 (ko) * 2003-09-19 2011-02-22 삼성전자주식회사 헤테로지니어스 네트워크를 통한 데이터 푸쉬 서비스시스템 및 방법
US20050071419A1 (en) * 2003-09-26 2005-03-31 Lewontin Stephen Paul System, apparatus, and method for providing Web services using wireless push
US7324474B2 (en) * 2003-10-21 2008-01-29 Qualcomm Incorporated Methods and apparatus for Network Initiated Data Services
JP4367090B2 (ja) 2003-10-31 2009-11-18 日本電気株式会社 観測結果通信端末および情報収集システム
GB2415335B (en) * 2004-06-15 2007-09-26 Toshiba Res Europ Ltd Wireless terminal dynamically programmable proxies
US20060248197A1 (en) * 2005-04-27 2006-11-02 Evans Scott C Adaptive connectionless scheduling protocol
EP1715656B1 (en) 2005-04-18 2008-05-14 Research In Motion Limited Offering a push service to a wireless device using a push proxy which monitors the coverage state of the device
CA2604897C (en) * 2005-04-18 2013-05-28 Research In Motion Limited System and method for enabling asynchronous push-based applications on a wireless device
WO2007007330A2 (en) 2005-07-11 2007-01-18 Yossi Glazer System and method for scheduling and receiving reminder messages
CN1794708A (zh) * 2005-07-29 2006-06-28 华为技术有限公司 呈现业务系统及发布呈现信息的方法
US8600336B2 (en) * 2005-09-12 2013-12-03 Qualcomm Incorporated Scheduling with reverse direction grant in wireless communication systems
US20070074217A1 (en) * 2005-09-26 2007-03-29 Ryan Rakvic Scheduling optimizations for user-level threads
FR2893476B1 (fr) * 2005-11-14 2008-01-25 Radiotelephone Sfr Procede et systeme de simulation et de gestion des ressources d'un reseau de telephonie mobile.
RU2483478C2 (ru) 2006-01-11 2013-05-27 Фишер-Роузмаунт Системз, Инк. Способ составления визуальной карты маршрутов сообщений от полевых устройств в беспроводной ячеистой сети
US7647037B2 (en) * 2006-01-31 2010-01-12 International Business Machines Corporation Location aware, on demand, media delivery to remote devices
JP4699279B2 (ja) * 2006-05-18 2011-06-08 株式会社エヌ・ティ・ティ・ドコモ 移動通信端末、配信サーバ、更新通知配信システム及び更新通知制御方法
US20080113656A1 (en) * 2006-11-15 2008-05-15 Lg Telecom Ltd. System and method for updating contents
US20080126751A1 (en) * 2006-11-27 2008-05-29 Shay Mizrachi Scheduler hint method and system to improve network interface controller (nic) receive (rx) processing cache performance
US7944868B2 (en) * 2006-12-04 2011-05-17 Nec Laboratories America, Inc. Method and system for dynamic power management in wireless local area networks
US20080170526A1 (en) * 2007-01-12 2008-07-17 Qualcomm Incorporated Method and apparatus for extending standby battery life of a wireless device
US8230436B2 (en) * 2008-01-10 2012-07-24 Microsoft Corporation Aggregating recurrent schedules to optimize resource consumption
US20090182802A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Mobile device management scheduling
US8166145B2 (en) * 2008-01-10 2012-04-24 Microsoft Corporation Managing event-based conditional recurrent schedules
US8020025B2 (en) * 2008-06-04 2011-09-13 Sony Ericsson Mobile Communications Ab Power saving scheduler for timed events
US8090826B2 (en) * 2008-06-27 2012-01-03 Microsoft Corporation Scheduling data delivery to manage device resources
US8112475B2 (en) * 2008-06-27 2012-02-07 Microsoft Corporation Managing data delivery based on device state
US7945206B2 (en) * 2009-02-04 2011-05-17 Telefonaktiebolaget L M Ericsson (Publ) Data packet transmission scheduling in a mobile communication system

Also Published As

Publication number Publication date
KR101617057B1 (ko) 2016-04-29
EP2340673B1 (en) 2017-04-26
KR20110061578A (ko) 2011-06-09
JP2012503952A (ja) 2012-02-09
US7966410B2 (en) 2011-06-21
CN102165818B (zh) 2014-12-31
US20100077083A1 (en) 2010-03-25
CN102165818A (zh) 2011-08-24
EP2340673A2 (en) 2011-07-06
WO2010036768A2 (en) 2010-04-01
WO2010036768A3 (en) 2010-06-17
EP2340673A4 (en) 2014-07-23

Similar Documents

Publication Publication Date Title
JP5592380B2 (ja) 時刻提示を用いたデータ配信調整システム及び方法
KR101800902B1 (ko) 예측성 배경에 기초한 푸시된 컨텐츠 전달의 구성
US10554786B2 (en) Dynamic adjustment of mobile device based on peer event data
JP5281145B2 (ja) 資源消費最適化のための再発性スケジュールの統合方法及びシステム
US9462965B2 (en) Dynamic adjustment of mobile device based on system events
US8090826B2 (en) Scheduling data delivery to manage device resources
US9432839B2 (en) Dynamic adjustment of mobile device based on thermal conditions
US8112475B2 (en) Managing data delivery based on device state
US9465679B2 (en) Dynamic adjustment of mobile device based on adaptive prediction of system events
US9813990B2 (en) Dynamic adjustment of mobile device based on voter feedback
EP2907346B1 (en) Method, node and computer program for reset of timers
Ebert et al. Context-, Resource-, and User-Aware Provision of Services on Mobile Devices
Chantem et al. An Online Holistic Scheduling Framework for Energy-Constrained Wireless Real-Time Systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120813

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131028

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140325

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: 20140702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140731

R150 Certificate of patent or registration of utility model

Ref document number: 5592380

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees