JP6470361B2 - ダウンロード可能コンテンツの転送を最適化するシステム及び方法 - Google Patents

ダウンロード可能コンテンツの転送を最適化するシステム及び方法 Download PDF

Info

Publication number
JP6470361B2
JP6470361B2 JP2017155650A JP2017155650A JP6470361B2 JP 6470361 B2 JP6470361 B2 JP 6470361B2 JP 2017155650 A JP2017155650 A JP 2017155650A JP 2017155650 A JP2017155650 A JP 2017155650A JP 6470361 B2 JP6470361 B2 JP 6470361B2
Authority
JP
Japan
Prior art keywords
downloadable content
request
content
downloadable
local
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.)
Active
Application number
JP2017155650A
Other languages
English (en)
Other versions
JP2018010654A (ja
Inventor
ジー. スタイルズ アンドリュー
ジー. スタイルズ アンドリュー
Original Assignee
ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー
ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー
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 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー, ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー filed Critical ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー
Publication of JP2018010654A publication Critical patent/JP2018010654A/ja
Application granted granted Critical
Publication of JP6470361B2 publication Critical patent/JP6470361B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/638Presentation of query results
    • G06F16/639Presentation of query results using playlists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Telephonic Communication Services (AREA)

Description

概して、本発明はダウンロード可能コンテンツの配信に関し、より詳細には、ダウンロード可能コンテンツの転送を最適化するシステム及び方法に関する。
近年、コンピューティング装置は、情報や娯楽、通信の主要な情報源として普遍的魅力を持つようになってきている。消費者があらゆるサイズや種類のデジタルコンテンツへアクセスしやすくするために、テレビやDVDプレーヤ、ゲーム機、コンピュータなどのデバイスを一体化したエンドユーザ製品が作り出され、変更や改良がなされている。そのようなデジタルコンテンツは多くの場合、CD、DVD、ブルーレイディスク(登録商標:BD)などの物理媒体に配信されるが、配信されるのは、物理媒体が収容することのできる記憶容量に制限されてしまう。
更に、物理媒体の場合、消費者は、実店舗に行ってコンテンツを取得するか、媒体が物理的に消費者に配信されるようにする必要がある。いずれの場合においても、媒体を実際に物理的に所持する必要がある。そのためにデジタルコンテンツへのアクセスが遅れてしまい、すぐにデジタルコンテンツを楽しむことができない。更に、物理媒体は、引っ掻き(スクラッチング)や破壊、一般的な消耗といった損傷を受けやすく、更に、製造上のばらつきや欠陥などもある。このような問題により、ローディングが遅延し、エラーが発生してしまうおそれがある。あるいは、デジタルコンテンツへのアクセスまでもできなくなるおそれがある。
従って、コンテンツの開発者や製造者は、インターネットを介してデジタルコンテンツの配信を開始している。これにより、上述した、物理媒体に関連する多くの問題が解消している。例えば、消費者は、店舗やその他のソースから物理媒体の所有権を取得する必要がない。これに代えて消費者は自宅で快適にコンテンツをダウンロードすることができる。これにより、消費者は、画像や音楽、ゲーム、テレビ番組、映画、アプリケーション、アップグレード、付加機能といった各種のデジタルコンテンツをボタンのシングルクリックにより取得することができる。
しかし、ダウンロード可能コンテンツのサイズは利用可能な帯域幅、消費者のインターネット速度、およびコンテンツを実行するエンドユーザ製品の記憶容量により制限されてしまうおそれがある。更に、様々な種類のコンテンツを実行するには、実行前に全てがダウンロードされていなければならない。よってこの場合も同様に、消費者が所望するコンテンツへのアクセスが遅れてしまい、すぐにコンテンツを楽しむことができない。
従って、帯域幅の使用を減らし、消費者のインターネット速度に対する影響を受けにくく、エンドユーザ製品の記憶容量に制限されずにコンテンツへの迅速なアクセスが可能な、インターネットを介してデジタルコンテンツを転送できる新規の改良されたシステムおよび方法が常に求められている。
本発明の各実施形態は、コンテンツが完全にダウンロードされないうちにコンテンツを実行することができる、ダウンロード可能コンテンツの転送を最適化するシステム及び方法を提供することにより、これらの要求等を満たす。本文に記載の各実施形態は動的であるため、静的コンテンツ及びインタラクティブコンテンツの双方にその用途を拡張している。更に、開示された1以上の実施形態は、ユーザデバイスのオペレーティングシステム(OS)上にパッチやドライバで実装することができるために、コンテンツのソースコードを大きく修正する必要はない。開示された各実施形態は、実行中のコンテンツからは独立して、及び/又は、実行中のコンテンツに対して不可視の状態で実行することもできる。これにより、コンテンツが表示される際にユーザにより検知されるエラーを最小に抑えることができる。
本発明の一実施形態によれば、ダウンロード可能コンテンツの転送を最適化する方法が記載されている。該方法は、複数のダウンロード可能コンテンツ部分の第1部分に対する第1ローカル要求を受信するステップ、第1ローカル要求を、ダウンロード可能コンテンツの第1部分に対する第1リモート要求に変換するステップ、第1リモート要求を送信するステップ、ダウンロード可能コンテンツの第1部分を記憶するステップ、及び、ダウンロード可能コンテンツの第1部分を実行するステップ、を含む。別の実施形態では、本方法の各行為を実行するために、コンピュータが実行可能な命令が組み込まれたコンピュータ可読記録媒体が記載される。
更に、本発明の一実施形態に従い本方法を実行するシステムが記載される。例えば、ダウンロード可能コンテンツの転送を最適化するシステムが記載される。システムは、プロセッサおよびメモリを含む。プロセッサは、複数のダウンロード可能コンテンツ部分の第1部分に対する第1ローカル要求を受信し、第1ローカル要求を、ダウンロード可能コンテンツの第1部分に対する第1リモート要求に変換し、第1リモート要求をネットワークを介して送信し、ネットワークを介してダウンロード可能コンテンツの第1部分を受信し、ダウンロード可能コンテンツの第1部分を実行するように動作可能である。メモリは、複数のダウンロード可能コンテンツ部分の少なくとも一部分を記憶するように動作可能である。
更に、一実施形態において、モジュールを使用してダウンロード可能コンテンツの転送を最適化するシステム及び方法が記載される。該システムは、複数のダウンロード可能コンテンツ部分の第1部分に対する第1ローカル要求を、ダウンロード可能コンテンツの第1部分に対する第1リモート要求に変換するように動作可能な変換モジュール、第1ローカル要求を受信し、第1リモート要求を送信し、ダウンロード可能コンテンツの第1部分を受信するように動作可能な通信モジュール、ダウンロード可能コンテンツの第1部分を実行するように動作可能な実行モジュール、及び、複数のダウンロード可能コンテンツ部分の少なくとも一部分を記憶するように動作可能な記憶モジュール、を含む。
本発明の実施形態に係るダウンロード可能コンテンツの転送を最適化する方法を例示したフローチャート。 本発明の別の実施形態に係るダウンロード可能コンテンツの転送を最適化する方法を例示したフローチャート。 本発明の実施形態に係るダウンロード可能コンテンツを実行するための方法を例示したフローチャート。 本発明の実施形態に係るダウンロード可能コンテンツ要求メタデータを構築するための方法を例示したフローチャート。 本発明の更なる実施形態に係るダウンロード可能コンテンツの転送を最適化するための方法を例示したフローチャート。 本文に記載した方法を実行するために、一実施形態のシステムを例示した概略図。 一連の命令を有し、該命令を用いて本文に記載した1以上の方法のいずれかを実行させるようにした機械の模式図。
ダウンロード可能コンテンツの転送を最適化するシステム及び方法が記載される。以下の説明では、説明のために、例示した各実施形態を完全に理解するために、特定の、多くの詳細が記載される。しかし、このような特定の詳細が記載されていなくても、あるいは等価の配置により、当業者が本発明の各実施形態を実施できることは明らかである。各実施形態を不必要に曖昧にしないように、場合によっては、周知の構造や装置をブロック図で示している。
図面を通じて、同一の参照番号は、同一の、又は対応する部分を示す。図面を参照すると、図1は本発明の実施形態に係るダウンロード可能コンテンツの転送を最適化する方法を示すフローチャートである。本実施形態では、コンテンツのダウンロードが完了しないうちにコンテンツの実行が開始され、コンテンツの後続部分は、必要に応じて「オンデマンド」で要求される。従って、ユーザは、大容量の可能性もあるコンテンツ全体がダウンロードされるのを待たずにコンテンツの実行を開始でき、すぐにコンテンツを楽しむことができる。更に、関係のない可能性のあるデータの記憶が削除される。
処理ブロック110では、ダウンロード可能コンテンツの一部分に対するローカル要求が受信される。このローカル要求は、ダウンロード可能コンテンツの所望の部分に関連づけられる一連のデータに対して、標準のファイル操作の形式でなされてもよい。更に、このローカル要求は、アプリケーションから、本文において検討しているようなオペレーションシステムに送信されてもよい。ダウンロード可能コンテンツとしては、例えば、ビデオコンテンツ、オーディオコンテンツ、ゲームコンテンツ、及び/又は、ゲームや映画、ソフトウェア、テレビ番組、ニュース、音楽ビデオ、トークショー、映画の予告、広告、音楽、本、オーディオブック、雑誌、新聞、カタログ、壁紙、テーマなどの静的ビジュアルコンテンツ、「アドオン」コンテンツ、あるいは、実行可能コンテンツをより小さな部分に分割できるその他のいずれの種類のコンテンツ、を挙げることができる。そのようなコンテンツは、ユーザ又は開発者が作成したもの、無料のもの又は有料のもの、完全版あるいは体験版、及び/又は販売用又はレンタル用であると考えられる。更に、本文中で使用される「部分」との用語は、シングルビットデータやシングルバイトデータ、又はマルチビットデータやマルチバイトデータからなる関連のグループ又は任意のグループに分割可能な、ダウンロード可能コンテンツのいずれの部分にも相当しうる。例えば、コンテンツの「部分」は、レベル、章(チャプター)場面、行為、キャラクタ、背景、テクスチャ、アクション、歌、テーマ、存続期間、サイズ、ファイル、これらの一部や組み合わせ、に相当するものであってよい。しかし、別の実施形態では、コンテンツの「部分」は、転送の効率化のためにグループ化された、その他の分かりやすい共通性を含まないデータを指すこともある。
決定ブロック115では、ダウンロード可能コンテンツの要求部分がローカルに記憶されているかどうかが判断される。例えば、プロセッサは、ダウンロード可能コンテンツの要求部分に対する問い合わせをローカルメモリに行うことができる。ダウンロード可能コンテンツの要求部分がローカルに実際に記憶されている場合、該部分は処理ブロック140で実行される。ダウンロード可能コンテンツの要求部分がローカルに記憶されていない場合、処理ブロック120において、例えばプロセッサにより、ローカル要求がリモート要求に変換される。処理ブロック125においてリモート要求が送信される。リモート要求は例えば、ローカルデバイスのプロセッサからサーバへ送信され得る。その後、サーバは、例えば、図5に関して本文において詳述している処理を実行しうる。
図1に戻ると、ダウンロード可能コンテンツの要求部分が処理ブロック130において受信される。処理ブロック130において、ダウンロード可能コンテンツの要求部分がローカルに記憶される。ダウンロード可能コンテンツの要求部分をローカルに記憶することにより、該部分が再要求された場合であっても、再ダウンロードする必要はない。例えば、あるゲームにおいて、同じ背景やキャラクタが複数レベルにわたって使用される場合、コンテンツの一部分が複数回要求される場合がある。
処理ブロック140において、ダウンロード可能コンテンツの要求部分が実行される。その一方で、ダウンロード可能コンテンツのうち、先に要求された部分が実行されている間に、ダウンロード可能コンテンツの一部分に対して受信した別のローカル要求に対して、処理ブロック110において該方法を繰り返すことができる。換言すれば、該方法における各行為は非同期的に実行されてもよい。つまり、前の処理が完了しないうちに別の処理を進行することができる。
図1に示すように、ダウンロード可能コンテンツの一部分に対する別のローカル要求は、処理ブロック135において、ダウンロード可能コンテンツの第1部分の記憶後に受信されうる。図面においては、ダウンロード可能コンテンツの各部分に対する後続のローカル要求はこの位置(処理ブロック135)で発生するものとして例示されているが、該要求は、最初のローカル要求を受信後、処理におけるいずれの時点においても発生しうる。しかし、直前に要求された部分の実行完了後に、後続の要求部分が実行できない場合は、エラーメッセージが生成され、後続の要求部分のダウンロードを終了できるように実施が遅延される。これについては、図3に関して本文において詳述している。本文中で使用されているように、「後続」との用語は、要求が受信される、送信される、及び/又は予測される順序について言及しているに過ぎない。また、該用語は、コンテンツの特定部分が必ずしも、時間や実行順序、コードの位置などに対して、前に要求されたコンテンツ部分の「後」であることを示すものではない。更に、コンテンツの同一部分が複数回要求されてもよい。従って、要求は、2以上の、先に要求されたコンテンツ、現在要求されているコンテンツ、及び/又はその次に要求されるコンテンツ部分から構成されると考えられる。
該方法は、要求デバイスとダウンロード可能コンテンツのホストとの間の接続が切断されるまで、ダウンロード可能コンテンツが全て実行されるまで、あるいは、ダウンロード可能コンテンツの全ての部分が記憶されるまで、継続されうる。例えば、ユーザがゲームを止めるまで、ゲーム機の電源を切るまで、あるいは、ゲームの全レベルを終了するまで、あるいは、ゲームが全てダウンロードされるまで、ゲームの各部分は常に要求され、実行され得る。従って、ユーザが短時間しかゲームをプレイせず、かつ、そのユーザがそのゲームを好きでないと判断する場合、ゲーム機にはゲームのうち小さな部分だけだダウンロードされている。これにより、ユーザは、好みでないゲームのダウンロードを待つことにより損失する時間、帯域幅量及び/又は、好みでないゲームに対して損失するデータ許容量、及び、好みでないゲームに占有されるゲーム機におけるメモリ量、を最小に抑えることができる。
同様に、ユーザが全レベルのゲームを終了してしまい、そのゲームのプレイを望むことはない場合、ゲームのなかでゲームプレイの間にユーザが必要とした部分だけがゲーム機にダウンロードされている。これにより、不要なファイルや機能のダウンロードを待つことにより損失する時間、不要なファイルや機能をダウンロードするにあたり損失するデータ許容量及び/又は帯域幅量、及び、不要なファイルや機能に占有されるメモリ量、を最小に抑えることができる。
図2は、本発明の別の実施形態に係るダウンロード可能コンテンツの転送を最適化する方法を示すフローチャートである。本実施形態によれば、ダウンロード可能コンテンツの各部分は、実行にあたり必要に応じて「オンデマンド」要求されるか、実行にあたり必要とされる部分の予測に基づいて要求されるか、この両方に基づいて要求される。ダウンロード可能コンテンツの各部分に対する要求はローカルに予測され、ダウンロード可能コンテンツの予測部分は、これらの部分に対するローカル要求を受信する前に取得される(あるいは、これらの部分に対するローカル要求を受信せずに全体が取得される)。
処理ブロック210において、ダウンロード可能コンテンツの最初の部分に対する最初のローカル要求が受信される。決定ブロック215において、ダウンロード可能コンテンツのうち、この最初の部分がローカルに記憶されているかどうかが判断される。ダウンロード可能コンテンツのうち、最初の部分が実際にローカルに記憶されている場合、最初のローカル要求が処理ブロック237において記憶され、ダウンロード可能コンテンツのうち、最初の部分が処理ブロック240で実行される。しかし、ダウンロード可能コンテンツのうち、最初の部分がローカルに記憶されていない場合、処理ブロック220において、最初のローカル要求は、ダウンロード可能コンテンツの最初の部分に対するリモート要求に変換される。処理ブロック225において、リモート要求が送信され、処理ブロック230において、ダウンロード可能コンテンツの最初の部分が受信される。処理ブロック235において、ダウンロード可能コンテンツの最初の部分が記憶され、処理ブロック237において、最初のローカル要求が記憶される。ダウンロード可能コンテンツの最初の部分は処理ブロック240において実行される。
使用されている「最初の」との用語は、コンテンツの特定の実行における第1要求に対応するコンテンツ部分であり、この部分は必ずしも、時間や実行順序、コードの位置に対するコンテンツの第1部分を示すものではない。従って、例えば、あるゲームの「最初の」部分はレベル7であってもよいし、あるビデオの「最初の」部分は、ビデオの中間部分であってもよいし、ある本の「最初の」部分は第8章、であってもよい。しかし、別の実施形態では、コンテンツの「最初の」部分はダウンロード可能コンテンツに対する最小の作業データセットに対応するものであってもよいし、あるいは、コンテンツ全体に対してまず初めに実行されるダウンロード可能コンテンツ部分に実際に対応するものであってもよい。後者に関しては、例えば、最初の部分は、ゲームのレベル1であってもよいし、ビデオの最初の10秒であってもよいし、あるいは、本の第1章であってもよい。いずれの場合も、ダウンロード可能コンテンツの少なくとも最初の部分は、本実施形態によりダウンロード可能コンテンツの実行が開始される前にローカルに記憶されることが要求されうる。実行開始前にコンテンツの最初の部分のダウンロードを要求することにより、実行の遅れや中断を最小にすることでユーザ体験を高めることができる。従って、例えば、初めてゲームを開始するユーザは、プレイする前にゲームのレベル1をダウンロードするように要求されうる。あるいは、レベル4で止めた後にゲームに戻るユーザは、プレイする前にゲームのレベル5をダウンロードするように要求されうる。
図2に示すように、処理ブロック250において、ダウンロード可能コンテンツの一部分に対する後続要求が予測されうる。本実施形態では、この後続要求は、例えばダウンロード可能コンテンツを実行中のデバイスによりローカルに予測される。そのような予測は、例えば、ダウンロード可能コンテンツのうち、前に要求された部分(例えば、ダウンロード可能コンテンツのうち、最初の部分)、前のローカル要求(例えば、記憶済みの最初のローカル要求)、ダウンロード可能コンテンツメタデータ(例えば、タイトル、サイズ、種類、パブリッシャ、要求デバイスメタデータ(例えば、種類、OS、記憶領域、接続のタイプ)、現ユーザ及び他のユーザ双方のユーザメタデータ(例えば、統計情報、コンテンツへのアクセス履歴)、および、ダウンロード可能コンテンツ要求メタデータ(例えば、ローカル要求の連続ログ)などによりなされ得る。任意に、予測要求は、予測要求メタデータとして記憶されうる。
ダウンロード可能コンテンツ要求メタデータは、実行中の特定のコンテンツにおいてなされた要求のログに限定されるものではなく、前に実行された他のコンテンツにおいてなされた要求のログも同様に含みうる。例えば、アクションゲームは同様の順序で同様の機能を実行するとの想定に基づき、特定のアクションゲームによりなされる後続要求は、別のアクションゲームの要求メタデータを使用して予測されうる。そのような想定は、要求されたコンテンツのジャンルだけではなく、プラットフォーム、パブリッシャ、著者、リリース日、あるいはその他利用可能コンテンツメタデータに基づいてなされてよい。
決定ブロック253において、ダウンロード可能コンテンツの予測部分がローカルに記憶されているかどうかが判断される。ダウンロード可能コンテンツの予測部分が実際にローカルに記憶されている場合、後述するように、該方法は処理ブロック265に進む。しかし、ダウンロード可能コンテンツの予測部分がローカルに記憶されていない場合、ダウンロード可能コンテンツの予測部分に対するリモート要求が処理ブロック255において生成される。処理ブロック257においてリモート要求が送信される。処理ブロック260において、ダウンロード可能コンテンツの予測部分が受信される。処理ブロック263において、ダウンロード可能コンテンツの予測部分が記憶される。該方法は処理ブロック265において継続する。ダウンロード可能コンテンツの予測部分をローカルに記憶することにより、該部分が要求された場合(例えば、予測が正しい場合)や該部分が再予測された場合でもこれらの部分の再ダウンロードする必要はなくなる。ブロック250から263は、ローカル要求を形成しているモジュールやアプリケーションから独立して完了され得る。
処理ブロック265において、ダウンロード可能コンテンツの一部分に対する後続のローカル要求が受信される。決定ブロック270において、予測要求メタデータにアクセスするなどにより、後続のローカル要求が予測要求に一致するかどうか、つまり、要求がダウンロード可能コンテンツの同一部分に対するものであるかどうかが判断される。予測要求メタデータは予測が正しかったかどうかを反映するようにアップデートすることもでき、かつ、後続の予測の精度を向上するために使用可能である。
後続のローカル要求が予測要求と一致する場合は、後続のローカル要求は処理ブロック273において記憶される。処理ブロック275においてダウンロード可能コンテンツの予測部分が実行される。後続のローカル要求が予測要求と一致しない場合、ダウンロード可能コンテンツの要求部分が決定ブロック280においてローカルに記憶される。ダウンロード可能コンテンツの要求部分が実際にローカルに記憶されている場合、処理ブロック293において後続のローカル要求が記憶され、かつ、処理ブロック295において、ダウンロード可能コンテンツの要求部分が実行される。ダウンロード可能コンテンツの要求部分がローカルに記憶されていない場合、処理ブロック283において後続のローカル要求がリモート要求に変換され、処理ブロック285において該リモート要求が送信される。処理ブロック287においてダウンロード可能コンテンツの要求部分が受信される。処理ブロック290において該部分が記憶される。後続のローカル要求は処理ブロック293において記憶され、処理ブロック295において、ダウンロード可能コンテンツの要求部分が実行される。
ダウンロード可能コンテンツの必要な部分に対してブロック250から295を繰り返すことができる。後続の予測を(要求されたコンテンツ及び将来要求されるコンテンツの双方に対して)より正確に行うために、例えば、ブロック237、273、及び293において記憶されるローカル要求を使用して、ダウンロード可能コンテンツ要求メタデータを確立及び拡張するようにしてもよい。この方法は、要求デバイスとダウンロード可能コンテンツのホストとの間での接続が切断されるまで、ダウンロード可能コンテンツが全て実行されるまで、あるいは、ダウンロード可能コンテンツの全ての部分が記憶されるまで、 継続されうる。
図面においては、後続要求は、後続のローカル要求を受信し、コンテンツの要求部分が実行された後に再び発生するものとして例示されている。しかし、先に行った予測に関連するローカル要求が受信される前に、後続要求が予測され、そしてコンテンツの予測部分がダウンロードされることも考えられる。例えば、ブロック210において第1ローカル要求を受信して240においてコンテンツのうち第1部分を実行した後に、250において第2のローカル要求はどのようなものでありうるかといった第1予測がなされてもよく、かつ、コンテンツのうち予測部分が260においてダウンロードされ、263において記憶されうる。ブロック240においてコンテンツのうち、第1部分を実行中であり、265において第2ローカル要求が受信される前に、第3ローカル要求はどのようなものであり得るかといった第2予測がなされてもよく、コンテンツのうち、予測部分がダウンロードされ、記憶されうる。
該方法が実行されている間は、予測や関連のダウンロードを永続的に継続することができ、あるいは、該方法におけるいずれの時点においても中断、中止が可能である。例えば、次のローカル要求が受信された場合は予測を中断することができ、この時点で、過去の予測や未来の予測のリファインや見直しがなされうる。予測要求メタデータは予測が正しかったかどうかを反映するようにアップデートすることもでき、かつ、後続の予測の制度を向上するために使用可能である。更に、現在実行中の要求やコンテンツ部分を超える、一定回数の予測要求がなされた場合に(あるいは、コンテンツのうち、一定量の予測部分がダウンロードされた場合に)、予測を中断することができる。例えば、第1ローカル要求に従いゲームのレベル1が現在実行中であり、後続のローカル要求がまだ受信されていない場合に、次の2つの要求に予測を限定することができる。従って、レベル2に対する第2要求と、レベル3に対する第3要求が予測され、ゲームの各々の部分がそれぞれダウンロードされ得る。しかし、現実の第2のローカル要求が受信されるまで、第4要求は予測されることはない。ダウンロード可能コンテンツ要求メタデータは、第2ローカル要求を受信後にアップデートされうる。そのため、このような実施形態により、将来の予測をより正確なものに向上することができ、その間にコンテンツの予測部分のうち、限定部分だけがダウンロードされることになる。更に、(実行が実際に求められるかどうかを問わず)コンテンツのうち、予測部分専用のメモリ量は制限される。従って、第2ローカル要求を受信する前にユーザがゲームを止め、再びゲームをプレイすることがない場合は、不要データで占有されているのは極少量のメモリだけである。
処理ブロック265において第2ローカル要求を受信後に、該方法は、第1予測に対して決定ブロック270に進むことができる。換言すれば、270において、第2ローカル要求が第1ローカル要求と比較され、図示しているように方法が進行する。更に、処理ブロック273又は293において第2ローカル要求を記憶後に、ダウンロード可能コンテンツ要求メタデータをアップデート可能であり、後続の予測の精度の向上が可能である。例えば、第2予測(及び、第2ローカル要求の受信前になされたいずれの他の予測)は第2ローカル要求のコンテンツとアップデートされた要求メタデータとに基づいて再定義されてよく、新たな予測が絶えず確立されうる。
図3は、例えば図1又は図2により説明したように、受信したダウンロード可能コンテンツを実行する方法を例示したフローチャートである。コンテンツの実行は、例えば、コンテンツの表示などによるコンテンツの出力である。これは、1以上のユーザ入力による影響を受け得る。図3に示す実施形態によれば、ダウンロード可能コンテンツの第1部分が実行され、該第1部分の実行完了後に、第2部分が実行される、等のことが行われる。しかし、直前に要求された部分の実行完了後に、後続の要求部分が実行できない場合は、エラーメッセージが生成され、後続の要求部分のダウンロードを終了できるように実施が遅延される。図3の処理ブロック310において、ダウンロード可能コンテンツの最初の部分が実行される。説明のために、ダウンロード可能コンテンツのこの部分には、nの値として1が割り当てられる。ダウンロード可能コンテンツの最初の部分の実行を開始すると、nは、n=n+1、又はn=2と設定される。本文で使用されているように、各種のnの値は単にコンテンツの特定部分が要求、送信、及び/又は予測される順序を示すに過ぎず、必ずしもコンテンツのうち、ある特定の部分が、時間、実行順序、コードのロケーションなどに対して、コンテンツのうち、前に要求された部分の「後」であることを示すものではない。更に、nの値が2以上であれば、同一のダウンロード可能コンテンツ部分を示し得ると考えられ得、例えば、2回以上要求されるダウンロード可能コンテンツの一部分などの場合である。
決定ブロック320において、ダウンロード可能コンテンツのn番目の部分が実行可能であるかどうかが判断される。この決定は、コンテンツの前の部分(例えば、n−1の部分)を実行後のいずれの時点においてなされ得る。例えば、第2部分が利用できるかどうかについては、コンテンツの最初の部分の実行直後、最初の部分を実行する間の特定の間隔で、最初の部分を実行する間、不定期に、あるいは、最初の部分の実行が完了する前に、問い合わせされ得る。実行をサポートするためにダウンロード可能コンテンツのデータの少なくとも最小量が記憶されている場合、ダウンロード可能コンテンツの一部分を実行することができる。例えば、該部分が全てダウンロードされ記憶されていれば、あるいは、該部分のうち、実行を開始させることができる少なくとも最小作業量のデータがあれば、該部分の実行が可能となる。
ダウンロード可能コンテンツのn番目の部分の実行が可能な場合、処理ブロック330で実行され、nは、n=n+1と設定され、該方法は決定ブロック320に戻る。例えば、ダウンロード可能コンテンツの第2部分の実行が可能な場合、処理ブロック330で実行され、nは、n=n+1と、あるいはn=3と設定される。次いで、決定ブロック320において、ダウンロード可能コンテンツの第3部分が実行可能であると判断され、ダウンロード可能コンテンツのn番目の部分ごとに、実行可能であるかどうかが判断される。
ダウンロード可能コンテンツのn番目の部分が実行できない場合は、ダウンロード可能コンテンツの実行は処理ブロック340において中断され、処理ブロック350において遅延メッセージが生成される。これにより、異常タイムアウトやその他の正常でない状況の発生を防ぐことができる。更に、nの値に変更はない。従って、該方法において、決定ブロック320において、ダウンロード可能コンテンツのn番目の部分が実行可能であるかどうかについて絶えず判断される。ダウンロード可能コンテンツのn番目の部分が実行可能である場合、該部分は処理ブロック330において実行され、nは、n=n+1と設定される。方法は、決定ブロック320に戻る。該方法は、要求デバイスとダウンロード可能コンテンツのホスト間の接続が切断されるまで、あるいは、 ダウンロード可能コンテンツが全て実行されるまで、ダウンロード可能コンテンツのn番目の部分ごとに繰り返され得る。
このn番目の部分のダウンロードを進めるか完了することができるように、ダウンロード可能コンテンツのいずれの部分の実行をいずれの時点においても中断することができる。しかし、本実施形態では、コンテンツの前の部分(つまり、n−1の部分)の実行完了後にダウンロード可能コンテンツのn番目の部分を実行できない場合、ダウンロード可能コンテンツの実行は中断される。例えば、ダウンロード可能コンテンツの第2部分が実行できない場合、処理ブロック340においてダウンロード可能コンテンツ全体の実行が中断され、(つまり、最初の部分の実行が完了し、第2部分の実行が開始する前の間に遅延が実施される)、処理ブロック350において遅延メッセージが生成される。nの値は、n=2のままである。従って、該方法は引き続き決定ブロック320に戻り、ダウンロード可能コンテンツの第2部分が実行可能であるかどうかを判断する。ダウンロード可能コンテンツの第2部分が実行可能になると、該部分は処理ブロック330で実行され、nは本例においては、n=n+1、又は、n=3と設定される。次いで、決定ブロック320において、ダウンロード可能コンテンツの第3部分が実行可能であるかどうかの決定等がなされる。該方法は、ダウンロード可能コンテンツのうち、ローカルに要求された部分ごとに繰り返されるか、要求デバイスとダウンロード可能コンテンツのホストとの接続が切断されるまで繰り返される。
図4は、本発明の実施形態に係るダウンロード可能コンテンツ要求メタデータを確立し拡張するための方法を例示したフローチャートである。本実施形態では、ダウンロード可能コンテンツ要求メタデータは、ダウンロード可能コンテンツをホストするサーバ、つまり、第3者より遠隔に構築される。処理ブロック410において、ダウンロード可能コンテンツの一部分に対するリモート要求が受信される。処理ブロック420において、ダウンロード可能コンテンツの要求部分が送信される。処理ブロック430において、リモート要求がダウンロード可能コンテンツ要求メタデータファイルに記憶される。該方法は、ダウンロード可能コンテンツの一部分に対して受信したリモート要求ごとに繰り返される。このリモート要求は受信した順序に従い順次記憶されたものである。ダウンロード可能コンテンツ要求メタデータは、ダウンロード可能コンテンツメタデータ(例えば、タイトル、サイズ、種類、パブリッシャ)、要求デバイスメタデータ(例えば、種類、OS、記憶領域、接続の種類)、及び現ユーザとその他のユーザ双方のユーザメタデータ(例えば、統計情報、コンテンツへのアクセス履歴)など、その他の各種情報に関連づけられて記憶され得る。
ダウンロード可能コンテンツメタデータがまだ記憶されていない場合、要求デバイスメタデータ、ユーザメタデータ及び/又はダウンロード可能コンテンツ要求メタデータは、要求デバイス、パブリッシャ、製造者及び/又はデータベース配信者、第3者のウェブサイト、及び/又は第3者のユーザデバイスなどの各種ソースからの情報を使って要求され、取得され、拡張されうる。
該方法は、要求デバイスとダウンロード可能コンテンツのホスト間の接続が切断されるまで、あるいは、ダウンロード可能コンテンツの全ての部分が要求されるまで、及び/又は送信されるまで継続されうる。
図5は、本発明の一実施形態に係る予測を用いてダウンロード可能コンテンツの転送を最適化するための方法を例示したフローチャートである。本実施形態では、該方法は、ダウンロード可能コンテンツのホスティングサーバに関して例示している。しかし、図5に関して説明するリモート予測は、同期又は非同期の形態で、図2に関して説明したローカル予測と組み合わせることもでき、また、図2のローカル予測に代えて、あるいはこれと同時になされてもよいと考えられる。更に、図5の実施形態は、同期又は非同期の形態で、図4に関して説明した実施形態と組み合わせることもできるし、これに代えてもよいし、あるいは、これと同時に、あるいは共に実施されてもよいと考えられる。図4及び図5により例示された方法は、非同期に実施される場合には、一方では将来の要求を予測しながら、要求を受信し、実行し、更にダウンロード可能コンテンツ要求メタデータを構築することができる。
図5の処理ブロック510において、ダウンロード可能コンテンツの最初の部分の最初のリモート要求が受信される。説明のために、ダウンロード可能コンテンツのこの部分には、nの値として1が割り当てられる。処理ブロック520において、最初のリモート要求に応答するダウンロード可能コンテンツの最初の部分が送信される。ダウンロード可能コンテンツの最初の部分の送信を開始すると、nは、n=n+1、又はn=2と設定される。処理ブロック530において、ダウンロード可能コンテンツの一部分に対するn番目のリモート要求が予測される。そのような予測は、例えば、ダウンロード可能コンテンツのうち、先に要求された部分(例えば、ダウンロード可能コンテンツの最初の部分)、先のリモート要求(例えば、図4の430において記憶されたリモート要求)、ダウンロード可能コンテンツメタデータ(例えば、タイトル、サイズ、種類、パブリッシャ)、要求デバイスメタデータ(例えば、種類、OS、記憶領域、接続のタイプ)、現ユーザ及び他のユーザ双方のユーザメタデータ(例えば、統計情報、コンテンツへのアクセス履歴)、および、ダウンロード可能コンテンツ要求メタデータ(例えば、図4に示したように確立され構築されたもの)、及び予測要求メタデータ等を用いてなされてよい。
予測を定式化するために、該データを要求ユーザ、要求デバイスおよび/又は特定の要求されたダウンロード可能コンテンツに関して分析するようにしてもよい。これに代えて、あるいはこれに追加して、該データを複数の要求ユーザ、要求デバイスおよび/又は要求されたダウンロード可能コンテンツにわたって集計され分析されてもよい。後者の実施形態では、同じダウンロード可能コンテンツのマルチ実行からダウンロード可能コンテンツ要求メタデータを分析し、ダウンロード可能コンテンツを実行する間に任意のブランチを特定するようにしてもよい。更に、各種分析をブランチダウンロード可能コンテンツ要求メタデータファイル(BDCRMF:branching downloadable content request metadata file)に統合してもよい。
例えば、ダウンロード可能コンテンツ要求メタデータファイルは、形状モデルデータが要求される場合は関連のテクスチャも要求されるであろうと予測するブランチを有することができる。従って、レベル1の形状モデルデータに対するローカル要求が受信されると、レベル1のテクスチャが要求されることが予測されうる。同様に、レベル2の形状モデルデータに対するローカル要求が受信されると、レベル2のテクスチャが要求されることが予測されうる、等である。
別の実施形態では、ユーザデバイスAによるゲームXにおける後続要求は、ゲームXにおいて複数のユーザデバイスに関連づけられた複数の要求メタデータファイルにおいて確立されたファイルアクセスパターンを分析することにより予測され得る。そのような予測は、ゲームXを実行中の複数のユーザデバイスが、同じ順序でゲームXのデータを要求する(つまり、同じゲームのユーザは同様の順序で似たような行動をとる)との想定に基づくものである。別の例では、ユーザデバイスBによるパズルゲームYにおける後続要求は、パズルゲームYにおいて確立されたユーザデバイスCのファイルアクセスパターンを分析することにより予測されうる。この場合、ユーザデバイスB及びユーザデバイスCは、同様のパズルゲームZにおいて、似たようなゲームプレイ挙動をとること(つまり、ファイルアクセスパターンが似ていること)が認められる。この予測は、ユーザデバイスBとユーザデバイスCとが同様の順序でゲームZを要求していることから、各ユーザデバイスが同様の順序で同様のゲームYを要求するであろう(つまり、1つのパズルゲームで似たようなゲームプレイ挙動をとる二人のユーザは、同様のパズルゲームにおいてもゲームプレイ挙動は似ているであろう)との想定に基づくものである。
このような要求やメタデータ、予測は動的であるので、本文に記載の各方法は、例えばユーザ入力に従い実行するインタラクティブコンテンツなど、実行ごとに同一の、又は同様の順序で同一の、又は同様のオペレーションを実行しないダウンロード可能コンテンツとの併用に適している。従って、例えば、本文に記載のシステム及び方法は、ハイレベルで高度なビデオゲームおよび仮想現実環境とともに実装され得る。
任意の決定ブロック540において、ダウンロード可能コンテンツの予測部分が要求デバイスに記憶済みであるかどうかが判断される。この判断は、要求された特定のダウンロード可能コンテンツ及び特定の要求デバイスに関連付けられるダウンロード可能コンテンツ要求メタデータを分析することによりなされ、予測部分が前に要求され送信済であるかどうかが判断される。これに代えて、要求デバイスにクエリを送信し、予測部分に関してローカルメモリをチェックするようにしてもよく、応答が受信されうる。ダウンロード可能コンテンツの予測部分が要求デバイスに記憶済みである場合、nはn=n+1と設定され、処理ブロック530において別の予測がなされる。ダウンロード可能コンテンツの予測部分が要求デバイスに記憶されていない場合、処理ブロック550において該部分が送信され、nは、n=n+1と設定され、処理ブロック530において別の予測がなされる。該方法は、例えば、要求デバイス又はサーバが接続を切断するまで、あるいは、ダウンロード可能コンテンツの全ての部分が送信されるまで継続され得る。
任意の決定ブロック540が省略される実施形態においては、方法は、処理ブロック530から直接進められる。ここではダウンロード可能コンテンツの一部分に対するn番目のリモート要求が予測され、処理ブロック550に進む。ここではダウンロード可能コンテンツの予測部分が送信される。つまり、要求デバイスに「プッシュ」される。次いで、要求デバイスは、コンテンツの予測部分に対して、所望するいずれのアクションをとることができる。例えば、予測部分が要求デバイスに記憶済みである場合、要求デバイスはその送信を終了するように要求することができるし、あるいは、前に記憶された部分を上書きするように要求することができる。予測部分が要求デバイスに記憶されていない場合、要求デバイスは予測部分を単に記憶し、コンテンツのその部分に対するローカル要求を待つようにしてもよい。
図6は、本文に記載の方法のうちの1以上の行為を実行するためのシステムを例示している。サーバ610はネットワーク640を介してユーザデバイス650に接続される。サーバ610は、プロセッサ620とメモリ630とを含み、これらは相互に通信状態にある。典型的には、サーバ610はコンピューティングシステムであり、ApacheサーバなどのHTTP(Hypertext Transfer Protocol)サーバとすることができる。しかし、サーバ610は、ダウンロード可能コンテンツやその一部をホストする、単一あるいは複数モジュール又はデバイスであってもよい。更に、サーバ610は、専用サーバ、共有サーバ、あるいはこれらの組み合わせであってよい。例えば、サーバ610は、ダウンロード可能コンテンツあるいはその一部の開発者、パブリッシャ、あるいは配信者、又は、ピアツーピア(P2P)ネットワークにおけるピアデバイスなどの第3者サーバであってもよい。更に、サーバ610は、ダウンロード可能コンテンツを提供する仮想マーケットやオンラインショッピングに基づくサービスを含み得る。本実施形態では、サーバ610(単独で、又は他のデバイスとの組み合わせで)、本文に記載した行為に加えて、料金請求など、各種の商業取引を進行し、実行することができる。
ユーザデバイス650は、アプリケーション660、OS670、プロセッサ680、メモリ690を含み、これらは相互に通信状態にある。ユーザデバイス650は、メインフレーム、ミニコンピュータ、パソコン、ノートパソコン、携帯情報端末(PDA:Personal Digital Assistant)、携帯電話、テレビ、CDプレーヤ、DVDプレーヤ、BDプレーヤ、ゲーム機、タブレット、電子書籍端末などであってよい。サーバ610及びユーザデバイス650は、ネットワーク640に接続可能であることを特徴とする。ネットワーク640は無線又は有線であってよく、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、電話ネットワーク(例えば、公衆電話網(PSTN:Public Switched Telephone Network)、無線ネットワーク、携帯電話ネットワーク(例えば、GSM(登録商標)、GPRS、CDMA、EV−CO、EDGE、3GSM(登録商標)、DECT、IS−136/TDA、iDENなど)、イントラネット、インターネット、あるいはこれらの組み合わせ、などであってよい。メモリ630及びメモリ690は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、Zipドライブ、およびこれらの組み合わせ等の、揮発性又は不揮発性のいずれの種類の記憶媒体であってよい。メモリ630及びメモリ690は、永続記憶又は一時記憶可能であるか、あるいは永続記憶も一時記憶も可能であり、更に、内蔵型、外付け型、あるいは両方のタイプであってよい。
ピアツーピアネットワークが用いられる実施形態では、サーバ610は第3者ユーザデバイスであってよく、ユーザデバイス650は、ダウンロード可能コンテンツの要求部分又は予測部分をサーバ610から取得する。そのようなピアツーピアネットワークが用いられる場合、パブリッシャサーバなど、コンテンツの他のホストサーバからの帯域幅の使用が減り、関連する費用が抑えられる。例えば、コンテンツのうち、全ての要求部分および予測部分はユーザデバイス650により、第3者ユーザデバイスから取得されうる。これにより、全体として、ユーザデバイス650による他のサーバからの帯域幅の使用をなくすことができる。別の例では、第3者ユーザデバイスをアプリケーションパブリッシャサーバと共に使用し、コンテンツを提供するようにしてもよい。これにより、ユーザデバイス650による他のサーバからの帯域幅の使用を減らすことができる。更に、ユーザデバイス650は、幾つもの第3者ユーザデバイスと協働して、夫々がダウンロード可能コンテンツのうち、異なる部分を要求することができ、必要に応じて、ユーザデバイス間で該部分を共有することができる。本実施形態では、ユーザデバイス650及び第3者ユーザデバイスの双方はホストとしての役割を果たし、サーバとクライアントプログラムの両方を動作させ、コンテンツの要求部分を相互に提供する。
使用においては、アプリケーション660は、標準ファイルオペレーションによりOS670を呼び出し、メモリ690に記憶されたデータをロードし、これにアクセスする。アプリケーション660は、ユーザデバイス650のユーザとダウンロード可能コンテンツ間にインターフェースを提供できるものであればどのようなソフトウェアおよび/又はハードウェアであってもよい。この標準ファイルオペレーションとしては、例えば、「オープン:開く」(つまり、アクセスされるファイルを特定する)、「シーク:探す」(つまり、データを読み込むためにファイルのどの位置に行けばいいかを特定する)、「リード:読み込む」(つまり、データがファイルから読み込まれ、アプリケーション660にコピーされるように要求する)、及び「クローズ:閉じる」(つまり、現時点でファイルが閉じられるように要求する)等が挙げられる。OS670は、既存のコードをパッチする、あるいはドライバを入れ替えることにより、標準ファイルオペレーションを本文に記載した付加的オペレーションを実行する新たなバージョンに変換し、「オンデマンド」のデータを最適にダウンロードするようにする。従って、アプリケーション660は、ダウンロード可能コンテンツが完全にダウンロードされないうちに、ダウンロード可能コンテンツの実行を開始することができる。更に、標準ファイルオペレーションを新たなオペレーションに置き換えることで、本文に記載の方法は、多種多様な新たなアプリケーションや既存のアプリケーションとともに実装され得る。例えば、開示した各実施形態を、昔に発売されたゲームや模倣されたゲームに実装することができる。その理由は、ゲームコードを大きく修正しなくても(あるいは、全く修正しなくても)ゲームコンテンツをストリーミングできるからである。
一実施形態では、アプリケーション660内の各ファイルは、生成されたアドレス領域においてユニークロケーション、つまり一意な位置にマッピングされる。例えば、アプリケーション660は、
(1)10kBのFILE1.DAT、及び
(2)20kBのFILE2.DAT
の2つのファイルを含みそのデータは、例えば、(1)のデータは0−9,999のユニークロケーションに、(2)のデータは10,000−29,999のユニークロケーションにリマッピングされ得る。
本例では、アプリケーション660は、OS670に以下のローカル要求、即ち、
(A)FILE2.DATに対する「オープン」要求、
(B)ロケーション20に行くように要求する「シーク」要求、及び
(C)40バイトの「リード」要求、
を伝える。
一実施形態では、OS670は、プロセッサ680に、アプリケーション660から受信したローカル要求を使用して、コンテンツの要求部分がメモリ690に記憶されているかどうかを判断するように指示する。コンテンツの要求部分がメモリ690に記憶されている場合、該部分がアプリケーション660に読み込まれてコピーされる。コンテンツの要求部分がメモリ690に記憶されていない場合、OS670は、アプリケーション660からのローカル要求を、サーバ610に読み込み可能なフォーマットで、コンテンツの所望部分に対するリモート要求に変換する。本例では、OS670は、ロケーション20における40バイトのFILE2.DATからのデータに対するローカル要求を、ロケーション10,020〜10,039に対応する、ダウンロード可能コンテンツの部分のリモート要求に変換する。ユーザデバイス650はこのリモート要求をサーバ610に送信する。サーバ610のプロセッサ620は、メモリ630よりダウンロード可能コンテンツの要求部分を取得し、該部分をユーザデバイス650に返す。ユーザデバイス650は、ダウンロード可能コンテンツの要求部分をメモリ690に記憶し、そのローカル要求に対する応答として、該部分をアプリケーション660にコピーする。その後、ダウンロード可能コンテンツの要求部分がアプリケーション660により実行できるようになる。
ローカル要求のフォーマットと、プロセッサ680及び/又はメモリ690により使用されるフォーマットとに一貫性がない別の実施形態では、OS670はアプリケーション660からのローカル要求を、プロセッサ680及び/又はメモリ690が読み込み可能なフォーマットで、コンテンツの所望部分に対する要求に直ちに変換する。従って、上記実施形態では、OS670は、ロケーション20における40バイトのFILE2.DATからのデータに対するローカル要求を、ロケーション10,020〜10,039に対応するコンテンツ部分に対するローカル要求に変換する。その後、OS670は、プロセッサ680に、アプリケーション660から受信したローカル要求を使用して、コンテンツの要求部分がメモリ690に記憶されているかどうかを判断するように指示する。
コンテンツの要求部分がメモリ690に記憶されている場合、該部分がアプリケーションに読み込まれ、コピーされる。コンテンツの要求部分がメモリ690に記憶されていない場合、OS670は、ロケーション10,020〜10,039に対応する部分に対するローカル要求を、ロケーション10,020〜10,039に対応するコンテンツの部分に対するリモート要求に変換し、ユーザデバイス650はこのリモート要求をサーバ610に送信する。サーバ610のプロセッサ620は、ダウンロード可能コンテンツの要求部分をメモリ630から取得し、該部分をユーザデバイス650に返す。ユーザデバイス650はダウンロード可能コンテンツの要求部分を、メモリ690に記憶し、そのローカル要求に対する応答として、この部分をアプリケーション660にコピーする。その後、ダウンロード可能コンテンツの要求部分がアプリケーション660により実行できるようになる。
本文に記載された特定の方法、具体的には、図1に関して記載した方法の実施に戻る。ユーザデバイス650のユーザは、アプリケーション660を使用して、サーバ610上で利用可能なダウンロード可能コンテンツを選択する。一実施形態では、アプリケーション660のオリジナルコードは、ダウンロード可能コンテンツ全体に対するユーザ要求に応答して、ダウンロード可能コンテンツの最初の部分(例えば、その最小作業ファイル)だけを要求するように修正されている。本実施形態では、アプリケーション660は選択されたコンテンツの最初の部分に対応するローカル要求をOS670に送信する。OS670は、プロセッサ680に要求を伝える。プロセッサ680はメモリ690に対して、コンテンツの最初の部分に関する問い合わせを行う。
アプリケーション660のオリジナルコードが上記のように修正されていない別の実施形態では、アプリケーション660は、ダウンロード可能コンテンツ全体に対するユーザ要求に応答して、ダウンロード可能コンテンツ全体(つまり、ダウンロード可能コンテンツの全ての部分)を要求する。本実施形態では、アプリケーション660は、ダウンロード可能コンテンツ全体に対応するローカル要求をOS670に送信する。OS670は、ダウンロード可能コンテンツ全体に対する要求を、ダウンロード可能コンテンツの最初の部分だけに対する要求(例えば、その最小作業ファイル)に変換し、この要求をプロセッサ680に伝える。
これらの実施形態のいずれにおいても、選択されたコンテンツの最初の部分がメモリ690にある場合、該部分はアプリケーション660によって、OS670とプロセッサ680と共に実行される。選択されたコンテンツの最初の部分がメモリ690にない場合、OS670は、ローカル要求をコンテンツの最初の部分に対するリモート要求に変換し、これをネットワーク640を介してサーバ610に送信する。例えば、宛先アドレス(例えば、サーバ610を表すアドレス)、要求(例えば、コンテンツの最初の部分に対する要求)、及び戻りアドレス(例えば、リモート要求を開始したユーザデバイス650を表すアドレス)を有する信号がユーザデバイス650から送信される。プロセッサ620は、メモリ630に対して、コンテンツの最初の部分に関しての問い合わせを行い、これをユーザデバイス650に送信する。ユーザデバイス650は、コンテンツの最初の部分をメモリ690に記憶する。該部分はアプリケーション660によって、OS670とプロセッサ680と共に実行される。アプリケーション660により生成されるダウンロード可能コンテンツの各部分に対する後続のローカル要求も同様に処理される。
ダウンロード可能コンテンツ全体に対するユーザ要求に応答して、ダウンロード可能コンテンツの最初の部分だけを要求するために、アプリケーション660あるいはOS670のオリジナルコードのいずれも修正されていない更に別の実施形態では、アプリケーション660及びOS670はダウンロード可能コンテンツ全体をそれぞれローカルおよびリモートに要求し、サーバ610はこの要求を変換する。具体的には、アプリケーション660はダウンロード可能コンテンツ全体に対応するローカル要求をOS670に送信する。OS670は、プロセッサ680にこの要求を伝える。プロセッサ680はメモリ690に対して、ダウンロード可能コンテンツ全体についての問い合わせを行う。
ダウンロード可能コンテンツ全体がメモリ690にある場合は、該部分は、アプリケーション660によって、OS670とプロセッサ680と共に実行される。コンテンツ全体がメモリ690にない場合は、OS670は、ローカル要求をコンテンツ全体に対するリモート要求に変換し、該要求をネットワーク640を介してサーバ610に送信する。サーバ610は、コンテンツ全体に対する要求を、コンテンツの最初の部分に対する要求(例えば、その最小作業ファイル)に変換し、このコンテンツの最初の部分をユーザデバイス650に送信する。ユーザデバイス650は、このコンテンツの最初の部分をメモリ690に記憶する。該部分は、アプリケーション660によって、OS670とプロセッサ680と共に実行される。アプリケーション660により生成されるダウンロード可能コンテンツの各部分に対する後続のローカル要求は、上述した各実施形態に従い、OS670によりローカルに変換される。
図1の方法の実施において、ダウンロード可能コンテンツのうち、前に要求された部分が実行されている間に後続要求が受信され、ダウンロード可能コンテンツのうち、この後続要求に関連する部分が取得され得る。換言すれば、本文に記載した各方法の行為は、非同期に実施され得る。つまり、前の処理が完了しないうちに他の処理を進行することができる。これにより、ユーザは、例えばゲーム全体のダウンロードが完了しないうちにゲームプレイを開始することができる。
図2の方法の実施において、例えば、サーバ610、ネットワーク640、及びユーザデバイス650は、図1の実施に関して上述した同様の機能を実行することができる。更に、アプリケーション660から受信したローカル要求は、それらがダウンロード可能コンテンツ要求メタデータとして受信された順序で順次メモリ690に記憶される。プロセッサ680はこのダウンロード可能コンテンツ要求メタデータにアクセスし、要求されたメタデータ内のファイルアクセスパターンを分析することにより、ダウンロード可能コンテンツの各部分に対する後続要求を予測する。プロセッサ680は更に、ダウンロード可能コンテンツのうち、前に要求された各部分(例えば、ダウンロード可能コンテンツの最初の部分)、前のローカル要求(例えば、記憶済みの最初のローカル要求)、ダウンロード可能コンテンツメタデータ(例えば、タイトル、サイズ、種類、パブリッシャ)、要求デバイスメタデータ(例えば、種類、OS、記憶領域、接続のタイプ)、現ユーザ及び他のユーザ双方のユーザメタデータ(例えば、統計情報、コンテンツへのアクセス履歴)などを用いて予測を行う。
プロセッサ680は、コンテンツの予測部分がローカルに記憶されているかどうかを判断するために、メモリ690に問い合わせを行う。コンテンツの予測部分がメモリ690に記憶されている場合、プロセッサ680は、ダウンロード可能コンテンツのうち、別の部分に対する別の後続要求を予測する。ダウンロード可能コンテンツの予測部分がメモリ690に記憶されていない場合、OS670はこのコンテンツの予測部分に対するリモート要求を生成し、該要求をネットワーク640を介してサーバ610に送信する。サーバ610は図1の実施に関して上述したリモート要求を実施し、これをメモリ690に記憶する。
一実施形態では、予測要求は、予測要求メタデータとしてメモリ690に記憶される。従って、OS670において、後続のローカル要求がアプリケーション660から実際に受信される場合、プロセッサ680は、これに対応する後続の予測要求をメモリ690から要求し、この予測を後続のローカル要求と比較する。後続のローカル要求が、ダウンロード可能コンテンツの予測部分と同じ部分を要求するものである場合、メモリ690に記憶されているコンテンツの予測部分は、アプリケーション660によって、OS670及びプロセッサ680と共にアプリケーション660により実行される。後続のローカル要求が、ダウンロード可能コンテンツの予測とは異なる部分を要求するものである場合、プロセッサ680は、コンテンツの要求部分がローカルに記憶されているかどうかを判断するために、メモリ690に問い合わせを行う。いずれの場合も、予測要求メタデータをアップデートして、予想が正しかったかどうかを示すようにしてもよく、また、予測要求メタデータを使用して、将来の予測をリファインあるいは精度を向上するようにしてもよい。次いで、図1の実施に関して上述したように、図2の実施が継続される。
別の実施形態では、予測要求はメモリ690に記憶されなくてもよい。従って、OS670において、後続のローカル要求がアプリケーション660から実際に受信される場合、プロセッサ680は、単にコンテンツの要求部分がローカルに記憶されているかどうかを判断するためにメモリ690に問い合わせを行う。換言すれば、プロセッサ680は、コンテンツの要求部分がどのようにしてメモリ690において利用できるようになったかについては関心がない。次いで、図1の実施に関して上述したように、図2の実施が継続される。
図3に示す方法の実施において、アプリケーション660は、OS670とプロセッサ680とともに、ダウンロード可能コンテンツの最初の部分を実行する。プロセッサ680は、ダウンロード可能コンテンツの次の部分が実行可能であるかどうか(つまり、次の部分に対する少なくとも最小作業量のデータがメモリ690に記憶されているかどうか)を判断するために、メモリ690に問い合わせを行う。コンテンツの次の部分が実行可能である場合、最初の部分の実行完了後に、この次の部分がアプリケーション660に提供され、該アプリケーションによって実行される。
最初の部分の実行完了後に、コンテンツの次の部分を実行できない場合、OS670はアプリケーション660によるダウンロード可能コンテンツの実行を延期する。換言すれば、コンテンツの最初の部分と後続部分との間で遅延が実施される。プロセッサ680は、保存された遅延メッセージをメモリ690から取得する。この遅延メッセージは、コンテンツの次の部分が実行できるようになるまで実行され、アプリケーション660に返されるものである。コンテンツの各部分のダウンロードは、ダウンロード可能コンテンツの実行とは別の処理で実行される(また、アプリケーション660によるダウンロード可能コンテンツの実行は、そのローカル要求に応答するコンテンツの次の部分が利用できるようになるまで中断される)ことから、異常タイムアウトやその他の異常事態の発生を防ぐことができる。換言すれば、アプリケーション660は、コンテンツの次の部分が利用できないこと、および、この次の部分が利用できるようになるまでその処理が延期されたことについて気づかないままである。アプリケーション660が延期される時間を最小限にするために、アプリケーション660により要求されそうなコンテンツの各部分を、要求されるであろう順序で要求するように、予測が定式化される。これについては、図2及び図5に関して詳述する。
図4に例示した方法の実施において、従って、ダウンロード可能コンテンツ要求メタデータの確立及び維持において、サーバ610はネットワーク640を介して、ユーザデバイス650からダウンロード可能コンテンツの一部分に対する要求を受信する。プロセッサ620は、メモリ630からコンテンツの要求部分を取得し、これをネットワーク640を介してユーザデバイス650に送信する。プロセッサ620は、ダウンロード可能コンテンツの各部分に対する要求を、受信した順序で順次メモリ630に記憶する。このファイル要求の順次リストは、サーバ610により使用されるダウンロード可能コンテンツ要求メタデータを構成するものであり、コンテンツの各部分に対する後続要求を予測するものである。図5に、本方法の実施に関して詳述している。
本文中の予測のために使用される各種データ(例えば、ダウンロード可能コンテンツメタデータ、ダウンロード可能コンテンツ要求データ、要求デバイスメタデータ、ユーザメタデータ)は、サーバ610とユーザデバイス650双方の予測の精度を向上するために、サーバ610とユーザデバイス650との間で共有され得る。例えば、ユーザデバイス650は、特定のコンテンツの実行において作成される要求の順次リストをより正確なものとするために、サーバ610とは別に、ダウンロード可能コンテンツ要求メタデータを確立し、維持し、共有することができる。従って、サーバ610が利用できるダウンロード可能コンテンツ要求メタデータは、リモートに要求されるものに限定されず、ローカルに利用可能なコンテンツの各部分に対してローカルに要求される要求を更に含み得る。
図5に例示の方法の実施において、サーバ610は、上述したように、コンテンツの一部分に対する最初の要求を受信し、該部分をユーザデバイス650に送信する。本実施形態では、プロセッサ620はメモリ630のダウンロード可能コンテンツ要求メタデータにアクセスし、図5に関して詳述したように、ダウンロード可能コンテンツの各部分に対する後続要求を予測する。任意に、プロセッサ620は、コンテンツの予測部分がユーザデバイス650に記憶されているかどうかを判断する。一実施形態では、プロセッサ620は、メモリ630内のファイル要求レコードを検索し、コンテンツの予測部分がユーザデバイス650によって前に要求されたものか、及び/又はユーザデバイス650に送信されたものであるかどうかを示す情報を求めることで、このような判断を行う。コンテンツの予測部分がユーザデバイス650によって前に要求されたものでなく、及び/又はユーザデバイス650に送信されたものでない場合、コンテンツの予測部分はサーバ610からメモリ690に送信される、あるいは「プッシュ」される。コンテンツの予測部分が実際にユーザデバイス650によって前に要求されたものであり、及び/又は、ユーザデバイス650に送信されたものである場合、プロセッサ620は、ダウンロード可能コンテンツの一部分に対する後続要求を予測する。
別の実施形態では、プロセッサ620は、コンテンツの予測部分がメモリ690に記憶されているかどうかに関して、ネットワーク640を介してユーザデバイス650にクエリを送信する。プロセッサ680は、コンテンツの予測部分がローカルに記憶されているかどうかを判断するために、メモリ690に問い合わせを行う。次いで、プロセッサ680は、ネットワーク640を介して、肯定応答又は否定応答をサーバ610に送信する。コンテンツの予測部分がユーザデバイス650に記憶されていない場合、コンテンツの予測部分はサーバ610からメモリに送信される、つまり、「プッシュ」される。コンテンツのうち、予測部分が実際にユーザデバイス650に記憶されている場合、プロセッサ620はダウンロード可能コンテンツの一部分に対する後続要求を予測する。
コンテンツの予測部分がユーザデバイス650に記憶されているかどうかをプロセッサ620が判断しない実施形態では、サーバ610は、ユーザデバイス650のメモリ690に、コンテンツの予測部分を送信する、つまり、「プッシュ」する。ユーザデバイス650のプロセッサ680は、コンテンツのうち、プッシュされた部分がメモリ690に記憶済みであるかどうかを判断しうる。この場合、プロセッサ680は、該部分の送信を終了するようにサーバ610に要求を出すことができる。これに代えて、プロセッサ680は単にコンテンツのうち、プッシュされた部分が前にメモリ690に記憶された部分を上書きするように許容するだけでもよい。コンテンツのうち、プッシュされた部分がまだメモリ690に記憶されていない場合、該部分は、コンテンツのうち、該部分に対するローカル要求に応答するものとしてメモリ690に記憶されてよい。
上述のいずれの実施形態においても、サーバ610及び/又はユーザデバイス650は、メモリ690内のダウンロード可能コンテンツのうち、各部分の消去を開始することができる。従って、メモリ690が一杯で、ダウンロード可能コンテンツのうち、更なる部分の実行の継続が要求される場合、キャッシュアルゴリズムを用いて破棄する部分を決定し、新たな部分に対するスペースを作るようにしてもよい。例えば、ユーザが、24GBのゲームにおいて、全部で30あるレベルのうちのレベル15にいる場合であって、ゲーム機の容量が12GBしかない場合には、ゲームのうち、アクセス頻度の最も低い部分(例えば、レベル1に対応する部分)が消去され、ゲームの実行を継続する必要のあるコンテンツの要求部分又は予測部分のためにスペースが空けられる。
従って、記載した各実施形態と共にキャッシュアルゴリズムを開始することにより、ユーザデバイス650の記憶領域を超えるサイズのダウンロード可能コンテンツが実行され得るだけでなく、ユーザにとっては最小の遅延で該コンテンツが実行され得る。例えば、ローカルストレージの制限、過剰なダウンロード時間、及び多くの帯域幅の使用により、前は物理媒体による配信に限定されていたコンテンツ(例えば、従来はブルーレイディスクに配信されていたコンテンツ)は、開示のシステム及び方法により、サーバ610により送信され、ユーザデバイス650により実行されうる。
上述した各システム及び各方法は、ユーザデバイス650が、セルラーネットワーク640を介してサーバ610からダウンロード可能コンテンツを要求するモバイルデバイスである場合の実施形態においても有益である。従来、そのようなモバイルデバイスは、セルラーネットワークの送信速度が遅いこと、セルラーネットワークに関連するデータ送信コストが高額であること、及び、モバイルデバイスのサイズが好適に小さくされていることにより、モバイルデバイスで利用できる記憶領域が非常に制限されていること、によりダウンロード可能コンテンツへのアクセスを制限してきた。しかし、そのような状況で開示の各システムを実装して各方法を実行することより、送信速度が遅いために生じる遅延が低減する。その理由は、コンテンツは全てのデータが揃わなくても実行を開始でき、更に、特定の時間において、コンテンツの一部分だけが実行の継続に必要であるからである。また、コンテンツの必要な部分だけがダウンロードされるので、データ送信において発生するコストも制限される。これにより不要部分に関連する送信コストをなくすことができる。更に、上述のキャッシュアルゴリズムとともに実施される場合、ダウンロード可能コンテンツはモバイルデバイスの記憶容量に制限されない。
本文に記載した各システム及び各方法は更に、「体験版」や「デモンストレーション(デモ版)」のコンテンツを最適化するように実施されてもよい。これらの「デモ版」は、ユーザが、フルコンテンツを購入する前又はダウンロードする前に、一定期間又は無期限でコンテンツの少なくとも一部を無料で試すことができるようにしたものである。伝統的に、そのようなデモ版は、ユーザがコンテンツ全体をダウンロードできるようにすることで提供されるが、実行できるのはコンテンツのある一定部分に限定される。コンテンツ全体にアクセスでき、コンテンツ全体を実行できるようになるのは、例えば、アクティベーションキーの購入後である。このアクティベーションキーは、コンテンツのうち、前もってブロックされた部分を解除するものである。このようなシステムでは、コンテンツ全体をダウンロードしてからでなければ、限定部分へアクセスすることができない、といった各種の難点がある。従って、体験版で使用されることになるデータ以上のデータがダウンロードされ、記憶されるので、ユーザは、体験版を楽しむのが必要以上に遅くなってしまう。更に、デモ版を試し、コンテンツ全体には興味がないと判断したユーザにとって、付加的にダウンロードされたコンテンツは不要となってしまう。加えて、ブロックされたコンテンツの各部分は、一度ダウンロードされると、アクティベーションキーを購入せずともハッキングされるおそれがある。
その他のデモ版としては、ダウンロード可能コンテンツををトランケートした、あるいは一部をカットした短縮版が挙げられる。これは、体験版に関連するデータだけを含むようにしたものである。これらの短縮版を用いることでハッカー達がフルコンテンツへアクセスする可能性はなくなるが、短縮版を作成するには、開発者がフルコンテンツとは別に短縮したコンテンツを作成しなければならない。更に、これらのタイプのデモ版は依然として、この特定部分を実行するために必要な特定のデモファイルだけではなく、体験版に関連する全てのファイルを完全にダウンロードしなければならない。ユーザがフルコンテンツの購入を決定した場合、ユーザは、前にダウンロードしていたとしても、体験版コンテンツの各部分を再ダウンロードする必要があり、体験版コンテンツに関連してセーブした進捗状況やデータを失うおそれがある。更に、ユーザは、依然として、購入してから実行するまでにコンテンツ全体をダウンロードしなければならない。
しかし、本文に記載した各実施形態を適用することにより、コンテンツを別にした短縮版を必要とせずに、ユーザにコンテンツのデモ版を提供することができる。例えば、サーバ610は、メモリ630に単一バージョンのコンテンツを記憶させ、この単一バージョンにアクセスすることで、コンテンツのうち、体験版の部分と完全版の部分の両方を要求デバイスに提供することができる。更に、デモコンテンツ又はフルコンテンツが完全にダウンロードされるのを待つことなく、デモ版の実行を開始することができる。
一実施形態では、サーバ610は、ユーザデバイス650に送信されるコンテンツの各部分(リモート要求又は予測されたコンテンツの各部分)を、トライアルコンテンツとして識別されたコンテンツの部分だけに限定する。上述の例に加えて、FILE1.DATがトライアルコンテンツとフルコンテンツの両方に関連づけられた専用ファイルの場合、サーバ610は、ロケーション0〜9,999に対応するコンテンツの各部分に対するリモート要求だけに応答することができる。ロケーション0〜9,999の範囲を超えるコンテンツ部分が要求される場合、サーバ610は更にユーザデバイス650に(例えば、要求コンテンツはトライアルの範囲を超えるものである、あるいは、トライアルは終わりである、ことを示す)エラーメッセージを送信し得る。サーバ610は、メモリ630に含まれるダウンロード可能コンテンツメタデータ及び/又はダウンロード可能コンテンツ要求メタデータを使用して、ユーザデバイス650に体験版へのアクセスを与えるべきか、完全版へのアクセスを与えるべきかを決定することができる。
別の実施形態では、ユーザデバイス650自体が、サーバ610からリモート要求される(ローカルに要求又は予測された)コンテンツの各部分を制限する。FILE1.DATがトライアルコンテンツ及びフルコンテンツの両方に関連づけられた専用ファイルの場合、プロセッサ680は、ロケーション0〜9,999に対応するコンテンツの各部分に対してのみ、アプリケーション660からのローカル要求に応答することができる。ロケーション0〜9,999の範囲を超えてコンテンツの各部分が要求される場合、プロセッサ680は(例えば、要求コンテンツはトライアルの範囲を超えるものである、あるいは、トライアルは終わりである、ことを示す) エラーメッセージを生成し、これをアプリケーション660に送信し得る。プロセッサ680は、メモリ690に含まれるダウンロード可能コンテンツメタデータ及び/又はダウンロード可能コンテンツ要求メタデータを使用して、アプリケーション660に体験版へのアクセスを与えるべきか、完全版へのアクセスを与えるべきかを決定することができる。そのようなメタデータは、ユーザがコンテンツのIDを体験版又は完全版として改ざんしないように、デジタル著作権管理(DRM)保護などと共に提供され得る。本実施形態は不正コンテンツのハッキングや盗用に対して、双方向からの保護を行うために、上述の実施形態と組み合わせることができると考えられる。
上述の各実施形態のいずれか(あるいは、別の実施形態)との組み合わせにより、サーバ610及び/又はユーザデバイス650を使用して、デモ版の実行時間を制限するようにしてもよい。例えば、サーバ610及び/又はユーザデバイス650は、コンテンツに対する最初の要求が受信されてから、設定時間以上の時間が経過したかどうかを判断することができる。サーバ610及び/又はユーザデバイス650が、設定時間を超える要求を受信すると、体験版が終了したことを示すエラーメッセージが生成されうる。従って、これらの実施形態によれば、メモリ690にダウンロードされるのは、体験版を実行ためにユーザデバイス650が必要とするデータ(あるいは、その一部)だけである。
図1〜図5に例示した各方法に関連して記載したが、本文に記載のいずれの方法も同様に実行されうることが理解される。更に、特定のデバイスについて記載したが、本文に記載の処理を実行するために、各種の同様のデバイスやモジュールを用いてもよいことが理解される。これらの実施形態や他の実施形態の機能は、有形媒体に記録されるコンピュータが実行可能な命令のモジュールとして記載されうる。モジュールは各種のデバイスにわたって、様々な方法で分離されうる。
図7は、コンピュータシステム700の例示的な形態における機械の模式図であり、該システムにおいて、本文に記載した1以上のいずれの方法を機械に実行させる一連の命令が実行されてよい。他の実施形態では、機械は、スタンドアローン型デバイスとして動作する。あるいは、他の機械と接続(例えば、ネットワーク接続)されてもよい。ネットワーク接続された配置においては、機械は、ホストマシンとして、あるいは、ピアツーピア(又は分散型)ネットワーク環境においてピアマシンとして、サーバ‐クライアントネットワーク環境において、サーバ又はクライアントマシンの容量で動作しうる。機械は、パソコン(PC)、タブレット、セットトップボックス(STB)、携帯端末(PDA)、携帯電話、ウェブで使用される機器、ネットワークルータ、スイッチ又はブリッジ、ゲーム機、テレビ、CDプレーヤ、DVDプレーヤ、BDプレーヤ、電子書籍端末、又は該機械により行われる行為を特定する一連の命令(順次的なもの、あるいはそれ以外のもの)を実行することができるいずれの機械であってよい。更に、1つの機械だけを例示したが、「機械」との用語は、本文に記載した1以上の方法を実行するための一連の(又は複数セットの)命令を個々に、あるいは一緒に実行することができる機械の集合体を含むものとする。
ある実施形態によれば、コンピュータシステム700は、プロセッサ750(例えば、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、又はその両方)、主メモリ760(例えば、リードオンリーメモリ(ROM)、フラッシュメモリ、シンクロナスDRAM(SDRAM)やラムバスDRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)、及び/又は静的メモリ770(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)を含む。これらはバス795を介して相互に通信を行うものである。
ある実施形態によれば、コンピュータシステム700は更に、ビデオ表示ユニット710(例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)、発光ダイオードディスプレイ(LED:Light-emitting Diode)、エレクトロルミネセントディスプレイ(ELD:Electroluminescent Display)、プラズマディスプレイパネル(PDP:Plasma Display Panel)、有機発光ダイオードディスプレイ(OLED:Organic Light-Emitting Diode Display)、表面伝導型電子放出ディスプレイ(SED:Surface-Conduction Electron-Emitted Display)、ナノクリスタルディスプレイ、3Dディスプレイ、あるいはブラウン管(CRT:Cathode Ray Tube)を更に含んでもよい。ある実施形態によれば、コンピュータシステム700は更に、英数字入力デバイス715(例えば、キーボード)、カーソルコントロールデバイス720(例えば、マウスやコントローラ)、ディスクドライブユニット730、信号生成デバイス740(例えば、スピーカ)、及び/又はネットワークインターフェースデバイス780を含んでもよい。
ディスクドライブユニット730は、本文に記載の1以上の方法又は機能を具現化する1以上の一連の命令が記憶された(例えば、ソフトウェア736)、コンピュータ可読記録媒体734を含む。更に、ソフトウェア736は、コンピュータシステム700や主メモリ760、プロセッサ750により実行する間、完全に、又は少なくとも一部が主メモリ760内に、及び/又はプロセッサ750内に存在していてもよい。また、プロセッサ750及び主メモリ760は、命令745と764とをそれぞれ有するコンピュータ可読記録媒体を構成しうる。更に、ソフトウェア736は、ネットワークインターフェース780を介してネットワーク790を介して送信又は受信されてよい。
コンピュータ可読記録媒体734は、一例の実施形態では単一の媒体として示すが、「コンピュータ可読記録媒体」との用語は、1以上の命令セットを記憶する単一媒体又は複数媒体(例えば、集中型データベース又は分散型データベース、及び/又は関連づけられたキャッシュ及びサーバ)を含むものとする。「コンピュータ可読記録媒体」との用語は更に、機械により実行されるための一連の命令を記憶し、コード化し、運ぶことのできる媒体であって、開示の各実施形態の1以上のいずれの方法を機械に実行させることのできる媒体を含むものとする。従って「コンピュータ可読記録媒体」との用語は、固体メモリや光学的媒体及び磁気的媒体を含むものとするが、これらに限定されない。
本文に記載の各処理および各技術は、いずれの特定の装置に本質的に関連するものではなく、適切な構成要素の組み合わせにより実装されてよいことが理解される。更に、各種の汎用デバイスは、本文に記載の教示に従い用いられてよい。また、本文に記載の各方法を実行するために専用装置を構築することが有利とされることもある。当業者であれば、開示の各実施形態を実行するために、ハードウェア、ソフトウェア、及びファームウェアの様々な組み合わせが適切であることはわかるであろう。本発明の各実施形態を特定の例に関連して記載してきたが、これらは、あらゆる点で限定的であるというよりはむしろ例示的であることを意図している。更に、各実施形態を多くの例と実装品とともに記載してきたが、各例に対して、本発明の実施形態の範囲を維持しつつ、各種の修正や等価の配置をすることができることが理解される。
本発明の他の実施形態は、明細書を考慮して、及び、本文に開示された各実施形態を実施により、当業者には明らかであろう。記載した各実施形態の各種態様及び/又は構成要素は、単一で用いることもできるし、いずれの組み合わせで用いることができる。明細書及び各例は単なる例示を目的としており、本開示の本来の範囲や真意は以下の請求の範囲により示される。

Claims (24)

  1. コンテンツプロバイダからプロセッサへのダウンロード可能コンテンツの転送を最適化する方法であって、
    前記プロセッサにより実行されるべき前記ダウンロード可能コンテンツの複数の部分の第1部分に対する第1ローカル要求を受信するステップと、
    前記第1ローカル要求を、前記ダウンロード可能コンテンツの前記第1部分に対する第1リモート要求に変換するステップと、
    前記第1リモート要求を送信するステップと、
    前記ダウンロード可能コンテンツの前記第1部分を受信するステップと、
    前記ダウンロード可能コンテンツの前記第1部分を記憶するステップと、
    前記ダウンロード可能コンテンツの他の部分が前記プロセッサにより実行可能になる前に、前記プロセッサを用いて前記ダウンロード可能コンテンツの前記第1部分を実行するステップと、
    前記ダウンロード可能コンテンツの前記複数の部分の第2部分を予測するステップと、
    前記予測された第2部分がローカルに記憶されていないと判断した場合には、前記第2部分に対する第2リモート要求を生成し、および前記第2部分を取得するステップと、
    前記第2部分に対する第2ローカル要求を受信するステップと、
    前記第2ローカル要求が前記予測された第2部分に合致するかどうかを判断するステップ、および
    前記第2ローカル要求が前記予測された第2部分に合致すると判断された場合には、前記プロセッサを用いて前記取得した第2部分を実行するステップと、
    を含み、
    前記ダウンロード可能コンテンツがゲームコンテンツであり、
    前記予測が複数の要求メタデータファイルにおいて確立されたファイルアクセスパターンを分析することで行われ、
    前記複数の要求メタデータファイルが同じゲームを実行する複数のユーザデバイスに関連づけされており、
    前記各ステップが前記プロセッサにより実行される、方法。
  2. 前記第2ローカル要求が前記予測された第2部分に合致しないと判断された場合には、前記第2部分がローカルに記憶されているかどうかを判断するステップをさらに含む請求項1記載の方法。
  3. 前記第2ローカル要求が前記予測された第2部分に合致しないと判断された場合には、前記第2部分がローカルに記憶されているかどうかを判断するステップと、
    前記第2部分がローカルに記憶されていなければ、
    前記第2ローカル要求を、前記ダウンロード可能コンテンツの前記第2部分に対する第2リモート要求に変換するステップと、
    前記第2リモート要求を送信するステップと、
    前記ダウンロード可能コンテンツの前記第2部分を受信するステップと、
    前記ダウンロード可能コンテンツの前記第2部分をローカルに記憶するステップと、
    をさらに含む請求項1記載の方法。
  4. 前記ダウンロード可能コンテンツの前記第2部分は、前記ダウンロード可能コンテンツの前記第1部分を実行する前又は実行する間に受信される、請求項3記載の方法。
  5. 前記ダウンロード可能コンテンツの前記第1部分を実行する前又は実行する間に、前記ダウンロード可能コンテンツの前記第2部分が受信されていなければエラーメッセージを生成するステップを更に含む、請求項3記載の方法。
  6. 前記第1ローカル要求及び前記第2ローカル要求をダウンロード可能コンテンツ要求メタデータとして順次記憶するステップを更に含む、請求項3記載の方法。
  7. 前記ダウンロード可能コンテンツの前記第2部分をローカルに記憶するステップと、
    前記ダウンロード可能コンテンツの前記第1部分の実行後に、前記ダウンロード可能コンテンツの前記第2部分を実行するステップと、を更に含む請求項1記載の方法。
  8. ダウンロード可能コンテンツの転送を最適化するシステムであって、
    プロセッサであって、
    前記ダウンロード可能コンテンツの複数の部分の第1部分に対する第1ローカル要求を受信し、
    前記第1ローカル要求を、前記ダウンロード可能コンテンツの前記第1部分に対する第1リモート要求に変換し、
    前記第1リモート要求をネットワークを介して送信し、
    前記ダウンロード可能コンテンツの前記第1部分をネットワークを介して受信し、
    前記ダウンロード可能コンテンツの他の部分が前記プロセッサにより実行可能になる前に前記ダウンロード可能コンテンツの前記第1部分を実行し、
    前記複数の前記ダウンロード可能コンテンツ部分の第2部分を予測し、
    前記予測された第2部分がローカルに記憶されていないと判断した場合には、前記第2部分に対する第2リモート要求を生成し、および前記第2部分を取得し、
    前記第2部分に対する第2ローカル要求を受信し、
    前記第2ローカル要求が前記予測された第2部分に合致するかどうかを判断し、および
    前記第2ローカル要求が前記予測された第2部分に合致すると判断された場合には、前記取得した第2部分を実行するように動作可能なプロセッサと、
    前記複数の前記ダウンロード可能コンテンツ部分の少なくとも一部分を記憶するように動作可能なメモリと、を含み、
    前記ダウンロード可能コンテンツがゲームコンテンツであり、
    前記予測が複数の要求メタデータファイルにおいて確立されたファイルアクセスパターンを分析することで行われ、
    前記複数の要求メタデータファイルが同じゲームを実行する複数のユーザデバイスに関連づけされている、システム。
  9. 前記プロセッサは、さらに
    前記第2ローカル要求が前記予測された第2部分に合致しないと判断された場合には、前記ダウンロード可能コンテンツの前記第2部分が前記メモリに記憶されているかどうかを判断するように動作可能である請求項8記載のシステム。
  10. 前記プロセッサは、さらに
    前記第2ローカル要求が前記予測された第2部分に合致しないと判断された場合には、前記ダウンロード可能コンテンツの前記第2部分が前記メモリに記憶されているかどうかを判断し、
    前記ダウンロード可能コンテンツの前記第2部分が前記メモリに記憶されていなければ、
    前記第2ローカル要求を、前記ダウンロード可能コンテンツの前記第2部分に対する第2リモート要求に変換し、
    前記第2リモート要求をネットワークを介して送信し、
    前記ダウンロード可能コンテンツの前記第2部分をネットワークを介して受信するように動作可能である請求項8記載のシステム。
  11. 前記プロセッサは、前記ダウンロード可能コンテンツの前記第1部分を実行する前又は実行する間に、前記ダウンロード可能コンテンツの前記第2部分を受信するように動作可能である、請求項10記載のシステム。
  12. 前記プロセッサは更に、前記ダウンロード可能コンテンツの前記第1部分を実行する前又は実行する間に、前記ダウンロード可能コンテンツの前記第2部分が受信されていなければエラーメッセージを生成するように動作可能である、請求項10記載のシステム。
  13. 前記メモリは更に、複数のローカル要求をダウンロード可能コンテンツ要求メタデータとして順次記憶するように動作可能である、請求項10記載のシステム。
  14. 前記ダウンロード可能コンテンツの複数の部分の少なくとも一部分を表示するように動作可能なプロセッサに接続されたディスプレイを更に含む、請求項8記載のシステム。
  15. ダウンロード可能コンテンツの複数の部分の第1部分に対する第1ローカル要求を受信するステップと、
    前記第1ローカル要求を、前記ダウンロード可能コンテンツの前記第1部分に対する第1リモート要求に変換するステップと、
    前記第1リモート要求を送信するステップと、
    前記ダウンロード可能コンテンツの前記第1部分を受信するステップと、
    前記ダウンロード可能コンテンツの前記第1部分を記憶するステップと、
    前記ダウンロード可能コンテンツの他の部分が実行可能になる前に、前記ダウンロード可能コンテンツの前記第1部分を実行するステップと、
    前記ダウンロード可能コンテンツの前記複数の部分の第2部分を予測するステップと、
    前記予測された第2部分がローカルに記憶されていないと判断した場合には、前記第2部分に対する第2リモート要求を生成し、および前記第2部分を取得するステップと、
    前記第2部分に対する第2ローカル要求を受信するステップと、
    前記第2ローカル要求が前記予測された第2部分に合致するかどうかを判断するステップ、および
    前記第2ローカル要求が前記予測された第2部分に合致すると判断された場合には、前記取得した第2部分を実行するステップと
    を実行するため、コンピュータにより実行可能な命令が埋め込まれたコンピュータ可読記録媒体であって、
    前記ダウンロード可能コンテンツがゲームコンテンツであり、
    前記予測が複数の要求メタデータファイルにおいて確立されたファイルアクセスパターンを分析することで行われ、
    前記複数の要求メタデータファイルが同じゲームを実行する複数のユーザデバイスに関連づけされている、コンピュータ可読記録媒体。
  16. 前記第2ローカル要求が前記予測された第2部分に合致しないと判断された場合には、前記第2部分がローカルに記憶されているかどうかを判断するステップをさらに実行するための、コンピュータにより実行可能な命令が埋め込まれた請求項15記載のコンピュータ可読記録媒体。
  17. 前記第2ローカル要求が前記予測された第2部分に合致しないと判断された場合には、前記第2部分がローカルに記憶されているかどうかを判断するステップと、
    前記第2部分がローカルに記憶されていなければ、
    前記第2ローカル要求を、前記ダウンロード可能コンテンツの前記第2部分に対する第2リモート要求に変換するステップと、
    前記第2リモート要求を送信するステップと、
    前記ダウンロード可能コンテンツの前記第2部分を受信するステップと、
    前記ダウンロード可能コンテンツの前記第2部分をローカルに記憶するステップと、
    をさらに実行するための、コンピュータにより実行可能な命令が埋め込まれた請求項15記載のコンピュータ可読記録媒体。
  18. 前記ダウンロード可能コンテンツの前記第2部分は、前記ダウンロード可能コンテンツの前記第1部分を実行する前又は実行する間に受信される、請求項17記載のコンピュータ可読記録媒体。
  19. 前記ダウンロード可能コンテンツの前記第1部分を実行する前又は実行する間に、前記ダウンロード可能コンテンツの前記第2部分が受信されていなければエラーメッセージを生成するステップを更に実行するため、コンピュータにより実行可能な命令が埋め込まれた請求項17記載のコンピュータ可読記録媒体。
  20. ダウンロード可能コンテンツ要求メタデータとして前記第1ローカル要求及び前記第2ローカル要求を経時的に記憶するステップを更に実行するため、コンピュータにより実行可能な命令が埋め込まれた請求項17記載のコンピュータ可読記録媒体。
  21. コンテンツプロバイダから実行モジュールへのダウンロード可能コンテンツの転送を最適化するシステムであって、
    前記ダウンロード可能コンテンツの複数の部分の第1部分に対する第1ローカル要求を、前記ダウンロード可能コンテンツの前記第1部分に対する第1リモート要求に変換するように動作可能な変換モジュールと、
    前記第1ローカル要求を受信し、前記第1リモート要求を送信し、前記ダウンロード可能コンテンツの前記第1部分を受信するように動作可能な通信モジュールと、
    実行モジュールであって、前記ダウンロード可能コンテンツの他の部分が前記実行モジュールにより実行可能になる前に、前記ダウンロード可能コンテンツの前記第1部分を実行するように動作可能な実行モジュールと、
    前記ダウンロード可能コンテンツの前記複数の部分の少なくとも一部分を記憶するように動作可能な記憶モジュールと、
    前記ダウンロード可能コンテンツの前記複数の部分の第2部分を予測するように動作可能な予測モジュールと、を含み、
    前記予測された第2部分がローカルに記憶されていないと判断した場合には、前記通信モジュールは第2リモート要求を送信し、前記ダウンロード可能コンテンツの前記第2部分を受信するように更に動作可能であり、
    前記通信モジュールは更に、前記ダウンロード可能コンテンツの前記第2部分に対する第2ローカル要求を受信するように動作可能であり、
    前記第2ローカル要求が前記予測された第2部分に合致するかどうかを判断するクエリモジュールを含み、
    前記第2ローカル要求が前記予測された第2部分に合致すると判断された場合には、前記実行モジュールは前記取得した第2部分を実行するように更に動作可能であ
    前記ダウンロード可能コンテンツがゲームコンテンツであり、
    前記予測が複数の要求メタデータファイルにおいて確立されたファイルアクセスパターンを分析することで行われ、
    前記複数の要求メタデータファイルが同じゲームを実行する複数のユーザデバイスに関連づけされている、ダウンロード可能コンテンツの転送を最適化するシステム。
  22. 前記実行モジュールは更に、前記ダウンロード可能コンテンツの前記第1部分の実行後に、前記ダウンロード可能コンテンツの前記第2部分を実行するように動作可能である、請求項21記載のシステム。
  23. 前記実行モジュールが前記ダウンロード可能コンテンツの前記第1部分を実行する前又は実行する間に、前記通信モジュールが前記ダウンロード可能コンテンツの前記第2部分を受信していなければエラーメッセージを生成するように動作可能なエラーモジュールを更に含む、請求項22記載のシステム。
  24. 前記記憶モジュールは更に、複数のローカル要求をダウンロード可能コンテンツ要求メタデータとして経時的に記憶するように動作可能である、請求項22記載のシステム。
JP2017155650A 2011-11-21 2017-08-10 ダウンロード可能コンテンツの転送を最適化するシステム及び方法 Active JP6470361B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/300,966 US8886752B2 (en) 2011-11-21 2011-11-21 System and method for optimizing transfers of downloadable content
US13/300,966 2011-11-21

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014543488A Division JP2015507240A (ja) 2011-11-21 2012-11-07 ダウンロード可能コンテンツの転送を最適化するシステム及び方法

Publications (2)

Publication Number Publication Date
JP2018010654A JP2018010654A (ja) 2018-01-18
JP6470361B2 true JP6470361B2 (ja) 2019-02-13

Family

ID=48428008

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014543488A Pending JP2015507240A (ja) 2011-11-21 2012-11-07 ダウンロード可能コンテンツの転送を最適化するシステム及び方法
JP2017155650A Active JP6470361B2 (ja) 2011-11-21 2017-08-10 ダウンロード可能コンテンツの転送を最適化するシステム及び方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014543488A Pending JP2015507240A (ja) 2011-11-21 2012-11-07 ダウンロード可能コンテンツの転送を最適化するシステム及び方法

Country Status (11)

Country Link
US (1) US8886752B2 (ja)
EP (1) EP2783295B1 (ja)
JP (2) JP2015507240A (ja)
KR (1) KR101979621B1 (ja)
CN (2) CN105721608A (ja)
BR (1) BR112014012185B1 (ja)
IN (1) IN2014CN02991A (ja)
MX (1) MX2014005256A (ja)
RU (1) RU2619181C2 (ja)
TW (1) TWI562569B (ja)
WO (1) WO2013078008A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4609723B2 (ja) * 2003-07-14 2011-01-12 ソニー株式会社 記録装置、記録方法及びプログラム
US8989408B2 (en) 2012-01-18 2015-03-24 Harman International Industries, Inc. Methods and systems for downloading effects to an effects unit
US8930491B2 (en) * 2012-01-18 2015-01-06 Echostar Technologies L.L.C. Apparatus, systems and methods for providing edge cached media content to media devices based on user history
US9389965B1 (en) * 2012-03-12 2016-07-12 Emc Corporation System and method for improving performance of backup storage system with future access prediction
US8957297B2 (en) 2012-06-12 2015-02-17 Harman International Industries, Inc. Programmable musical instrument pedalboard
US9189408B1 (en) 2012-08-31 2015-11-17 Emc Corporation System and method of offline annotation of future accesses for improving performance of backup storage system
US9318086B1 (en) 2012-09-07 2016-04-19 Jerry A. Miller Musical instrument and vocal effects
US9294553B1 (en) * 2013-09-20 2016-03-22 Amazon Technologies, Inc. Predictive rendering of current content versions
CN104580268A (zh) * 2013-10-09 2015-04-29 南京中兴新软件有限责任公司 文件数据的传输方法及装置
US10911838B2 (en) * 2014-12-18 2021-02-02 Arris Enterprises Llc Mechanism for transference of media meta-data
US9918114B2 (en) * 2015-06-01 2018-03-13 Comcast Cable Communications, Llc Transmission of applications with content
US10887371B2 (en) * 2015-09-14 2021-01-05 Google Llc Systems and methods for content storage and retrieval
US20190079788A1 (en) * 2017-09-08 2019-03-14 Cisco Technology, Inc. Predictive image storage system for fast container execution
US20200296462A1 (en) 2019-03-11 2020-09-17 Wci One, Llc Media content presentation
US11533384B2 (en) * 2020-03-20 2022-12-20 International Business Machines Corporation Predictive provisioning of cloud-stored files
CN115052323B (zh) * 2022-08-15 2022-11-08 晨越建设项目管理集团股份有限公司 一种基于大数据的智慧城市移动服务系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959318B1 (en) * 1998-03-06 2005-10-25 Intel Corporation Method of proxy-assisted predictive pre-fetching with transcoding
US6820133B1 (en) 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7024485B2 (en) 2000-05-03 2006-04-04 Yahoo! Inc. System for controlling and enforcing playback restrictions for a media file by splitting the media file into usable and unusable portions for playback
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
GB0121064D0 (en) * 2001-08-31 2001-10-24 Transitive Technologies Ltd Obtaining translation of generic code representation
US6957306B2 (en) * 2002-09-09 2005-10-18 Broadcom Corporation System and method for controlling prefetching
US7797064B2 (en) * 2002-12-13 2010-09-14 Stephen Loomis Apparatus and method for skipping songs without delay
US7853699B2 (en) * 2005-03-15 2010-12-14 Riverbed Technology, Inc. Rules-based transaction prefetching using connection end-point proxies
JP4124115B2 (ja) * 2003-12-02 2008-07-23 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
US7240162B2 (en) * 2004-10-22 2007-07-03 Stream Theory, Inc. System and method for predictive streaming
US7380066B2 (en) * 2005-02-10 2008-05-27 International Business Machines Corporation Store stream prefetching in a microprocessor
MY145716A (en) * 2005-04-08 2012-03-30 Qualcomm Inc Method and apparatus for enhanced file distribution in multicast or broadcast
US20070112973A1 (en) * 2005-11-16 2007-05-17 Harris John M Pre-cached streaming content method and apparatus
JP4687424B2 (ja) * 2005-11-25 2011-05-25 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
CN100418330C (zh) * 2006-06-06 2008-09-10 北京北大方正电子有限公司 一种基于预测搜索的网络文件传输方法
US7886069B2 (en) 2007-01-05 2011-02-08 Divx, Llc Video distribution system including progressive playback
US8577957B2 (en) * 2008-04-01 2013-11-05 Litl Llc System and method for streamlining user interaction with electronic content
KR20090120722A (ko) * 2008-05-20 2009-11-25 엘지전자 주식회사 이동 단말기 및 이것의 콘텐츠 다운로드 방법
US8443056B2 (en) * 2010-01-22 2013-05-14 Netflix, Inc. Client-server signaling in content distribution networks
JP5192506B2 (ja) * 2010-03-12 2013-05-08 株式会社日立製作所 ファイルキャッシュの管理方法、装置、及び、プログラム
US10511887B2 (en) * 2010-08-30 2019-12-17 Saturn Licensing Llc Reception apparatus, reception method, transmission apparatus, transmission method, program, and broadcasting system

Also Published As

Publication number Publication date
US20130132509A1 (en) 2013-05-23
EP2783295A1 (en) 2014-10-01
TW201342848A (zh) 2013-10-16
BR112014012185B1 (pt) 2021-09-21
RU2014125263A (ru) 2015-12-27
KR20140099907A (ko) 2014-08-13
WO2013078008A1 (en) 2013-05-30
CN103312761A (zh) 2013-09-18
MX2014005256A (es) 2014-08-08
IN2014CN02991A (ja) 2015-07-03
EP2783295A4 (en) 2015-07-15
CN105721608A (zh) 2016-06-29
JP2018010654A (ja) 2018-01-18
JP2015507240A (ja) 2015-03-05
EP2783295B1 (en) 2017-07-12
KR101979621B1 (ko) 2019-05-17
TWI562569B (en) 2016-12-11
RU2619181C2 (ru) 2017-05-12
CN103312761B (zh) 2019-04-23
US8886752B2 (en) 2014-11-11
BR112014012185A2 (pt) 2017-05-30

Similar Documents

Publication Publication Date Title
JP6470361B2 (ja) ダウンロード可能コンテンツの転送を最適化するシステム及び方法
US10474693B2 (en) Resolving conflicts within saved state data
US9740761B2 (en) Management of application state data
US8606948B2 (en) Cloud-based device interaction
US9940119B2 (en) Providing limited versions of applications
CA2825223C (en) Remotely emulating computing devices
US9485305B2 (en) API platform that includes server-executed client-based code
US10673916B1 (en) Executing applications in remotely emulated computing devices
KR101643022B1 (ko) 카탈로그-기반 소프트웨어 컴포넌트 관리
US9332087B2 (en) Dynamic buffer
US20190196805A1 (en) Controlled rollout of updates for applications installed on client devices
TWI492156B (zh) 用以有效下載資料包的方法與系統
JP7397094B2 (ja) リソース構成方法、リソース構成装置、コンピューター機器、及びコンピュータープログラム
US20160205216A1 (en) Methods and apparatus for sharing digital books and other digital media objects
EP2932367A1 (en) Updating of digital content buffering order
WO2019133170A1 (en) System and method for providing software applications
US20120191803A1 (en) Decommissioning factored code
JP2023518367A (ja) ビデオゲームのインスタントプレイのための、ならびにクライアント側でゲームデータを破棄およびプリフェッチするためのファイルシステム読み出し動作の追跡
US20040143586A1 (en) Method of controlling user application program
JP6529678B2 (ja) アプリケーションの実行を加速する方法及びデバイス

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180529

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181029

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190117

R150 Certificate of patent or registration of utility model

Ref document number: 6470361

Country of ref document: JP

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250