(58)【調査した分野】(Int.Cl.,DB名)
前記第1のベースファイルを選択するステップは、最も以前に獲得されたファイルを選択するステップ、最も少なくアクセスされたファイルを選択するステップ、または最も長くアクセスされていないファイルを選択するステップのうちの1つを含む、請求項1に記載の方法。
前記第1のベースファイルを選択するステップは、前記メモリ書込動作を実行するのに必要なメモリのサイズ以上のサイズを有するファイルを選択するステップを含む、請求項1に記載の方法。
静止画像カメラ、ビデオカメラ、マイクロホン、またはネットワークインターフェースのうちの1つを介して前記複数のベースファイルを受け取るステップをさらに含む、請求項1に記載の方法。
前記メモリ書込動作は、前記コンピュータシステムによって受け取られる新たに獲得されたベースファイルを前記ローカルメモリ内に記憶することによって表される、請求項1に記載の方法。
前記新たに獲得されたベースファイルは、静止画像ファイル、ビデオファイル、オーディオファイル、または文書ファイルのうちの1つによって提供される、請求項8に記載の方法。
各プレビューファイルを記憶するステップは、対応するベースファイルを外部コンピュータに送信することに応答して通信インターフェースを介して前記プレビューファイルを受信するステップを含む、請求項1に記載の方法。
前記プロセッサは、入出力インターフェースを介して前記複数のベースファイルのうちのベースファイルを受信するようにさらに構成される、請求項13に記載のシステム。
前記コンピュータシステムに各プレビューファイルを記憶させる実行可能命令は、前記コンピュータシステムに、対応するベースファイルを外部コンピュータに送信することに応答して通信インターフェースを介して前記プレビューファイルを受信させる実行可能命令をさらに含む、請求項16に記載のコンピュータ可読非一時的記憶媒体。
【発明を実施するための形態】
【0006】
本明細書で説明されるのは、モバイルコンピューティングデバイスによるファイル管理の方法およびシステムである。「モバイルコンピューティングデバイス」は、本明細書では、少なくとも1つのプロセッサ、メモリ、および少なくとも1つの通信インターフェースを有するポータブルデバイスを指す。しかし、本明細書で説明されるシステムおよび方法が、たとえばデスクトップコンピュータなどの非ポータブルコンピュータシステムに同等に適用可能である可能性があることに留意されたい。
モバイルコンピューティングデバイスは、たとえば、キーボード、タッチスクリーン、ネットワークインターフェース、マイクロホン、ビデオカメラ、静止画像カメラ、および/またはマイクロホンを含むさまざまなインターフェースを介して情報を入力することができる。そのようなモバイルコンピューティングデバイスは、静止画像ファイル、ビデオストリームファイル、オーディオストリームファイル、および/または文書ファイル(たとえば、テキストファイル)を入力できるものとすることができる。
【0007】
いくつかの実施態様では、モバイルコンピューティングデバイスは、ファイル(たとえば、静止画像ファイル)の獲得に応答して、獲得されたファイルをそのローカルメモリ内に記憶することができる。「メモリ」は、本明細書では、ランダムアクセスメモリ(RAM)および/またはストレージメモリを指す。後者は、EEPROM、フラッシュメモリ、ディスクメモリ、その他などの不揮発性メモリ内に存在する1つまたは複数のファイルシステムによって表され得る。
【0008】
ファイルの獲得に応答して、モバイルコンピューティングデバイスは、たとえば無線通信インターフェースを介して、獲得されたファイルのコピーをファイルサーバに送信することもできる。モバイルコンピューティングデバイスは、さらに、獲得された画像ファイルから導出されたプレビューファイルをローカルメモリ内に記憶することができる。プレビューファイルは、たとえば、サムネイル画像もしくは他の縮小されたサイズの画像または下げられた解像度の画像の形とすることができる。
【0009】
モバイルコンピューティングデバイスは、さらに、メモリ書込動作(たとえば、新たに獲得された画像ファイルのローカルファイルシステム内での記憶)を試みることができる。モバイルコンピューティングデバイスのローカルファイルシステム内で使用可能な空間が、試みられたメモリ書込動作の完了を可能にするのに不十分である場合には、モバイルコンピューティングデバイスは、ローカルファイルシステムから除去し、したがって、新たに獲得されたファイルを記憶するのに必要な空間を解放するために、1つまたは複数の以前に獲得されたファイルを選択することができる。1つの例示的な例では、モバイルコンピューティングデバイスは、ファイルアクセス動作の回数によって最も少なくアクセスされたファイルを除去することができる。別の例では、モバイルコンピューティングデバイスは、最も長くアクセスされていない(least recently accessed)ファイルを除去することができる。さらなる例では、モバイルコンピューティングデバイスは、最も以前に獲得された(least recently acquired)ファイルを除去することができる。
【0010】
1つまたは複数の選択されたファイルの除去に応答して、モバイルコンピューティングデバイスは、試みられたメモリ書込動作(たとえば、ローカルファイルシステム内での新たに獲得された画像ファイルの記憶)を完了することができる。その後、以前にローカルメモリから除去されたファイルを要求するユーザインターフェースコマンドの最終的な受取に応答して、このシステムは、対応するプレビューファイルを提示することができる。フルサイズファイルを明示的に対象とするユーザインターフェースコマンドの受取に応答して、このシステムは、そのファイルが当初に記憶されたサーバからフルサイズファイルを取り出すことができる。
【0011】
したがって、モバイルコンピューティングデバイスは、モバイルコンピューティングデバイスによって獲得されたファイルのうちの少なくともいくつかのプレビューファイルを記憶することができ、さらに、フルサイズファイルをモバイルコンピューティングデバイスのファイルシステム内に収容できる範囲で、獲得されたファイルのサブセットについてファイルのフルサイズバージョンを記憶することができる。フルサイズファイルは、新たに獲得されたファイルを収容するためにファイルシステムから除去される場合があり、プレビューファイルが、ユーザインターフェースコマンドに応答してユーザに提示される場合がある。フルサイズファイルは、フルサイズファイルを明示的に対象とするユーザインターフェースコマンドの受取に応答してファイルサーバから取り出され得る。
【0012】
いくつかの実施態様では、上で説明されたファイル管理方法は、モバイルコンピューティングデバイスによって実行されるカレンダアプリケーションによるファイル添付の処理を容易にするために実施され得る。「カレンダアプリケーション」は、本明細書では、個々のユーザおよび/またはユーザのグループに関するイベントのスケジューリングおよび追跡を提供するアプリケーションを指す。
【0013】
上で言及されたシステムおよび方法のさまざまな態様を、限定によるのではなく例によって、本明細書で下で詳細に説明する。
【0014】
図1に、本開示の1つまたは複数の態様による、コンピュータシステム1000の1つの例示的な実施形態のネットワークレベルの図を示す。コンピュータシステム1000は、ファイル管理アプリケーション(たとえば、カレンダアプリケーション)のサーバ側部分120を実行する1つまたは複数のサーバ110を含むことができる。ファイル管理アプリケーションのクライアント側部分125を実行する1つまたは複数のクライアントコンピュータ130を、複数の相互接続するネットワーク115を介してサーバコンピュータ110に接続することができる。
【0015】
「コンピュータ」は、本明細書では、プロセッサ、メモリ、および少なくとも1つのI/Oインターフェースを含む装置を指す。コンピュータは、たとえば、サーバ、ホストコンピュータシステム上で動作する仮想マシン、ポータブルパーソナルコンピュータ(PC)もしくはデスクトップパーソナルコンピュータ(PC)、タブレットコンピュータ、またはスマートフォンによって表され得る。さらに、用語「コンピュータ」は、本明細書で説明される方法の任意の1つまたは複数を実行するために命令のセット(または複数のセット)を個別にまたは合同で実行するコンピュータのすべての集合を含まなければならない。
【0016】
「ネットワーク」は、本明細書では、複数のコンピュータを相互接続する分散通信システムを指す。ネットワークは、たとえばローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、または仮想プライベートネットワーク(VPN)によって表され得る。いくつかの実施態様では、複数の相互接続するネットワーク115は、インターネットを含むことができる。
【0017】
コンピュータシステム1000の諸機能を、たとえばポータブルパーソナルコンピュータ(PC)もしくはデスクトップパーソナルコンピュータ(PC)、タブレットコンピュータ、またはスマートフォンなどの1つまたは複数のクライアントデバイス130を介してエンドユーザに配送することができる。一例では、1つまたは複数のクライアントデバイス130は、ユーザインターフェース機能を提供し、1つまたは複数のサーバ110に通信し、このサーバ110が、クライアント要求処理、負荷平衡化、クライアント認証、認可、ファイルの記憶および検索、請求、ならびに他の機能を実行することができる。上記および他の機能を、1つまたは複数の物理施設内に存在する1つまたは複数のサーバ110の間で分散させることができる。
【0018】
別の例では、上でリストされたサーバ側機能の少なくとも一部を、1つまたは複数のクライアントデバイス130によって実行することができる。いくつかの実施態様では、クライアントデバイス130は、サーバ110に接続されていない間に、少なくともその機能のサブセットを実行することができる。この処理モードを、オフラインクライアント動作モードとも言われる。
【0019】
たとえばクライアント要求処理、負荷平衡化、クライアント認証、認可、ファイルの記憶および検索、ならびに/または請求などの上にリストした機能の一部は、サーバ側機能性に関係すると言われる場合がある。たとえばユーザ入力の受入、1つまたは複数の通信インターフェースを介するファイルの獲得、および/またはディスプレイ上の情報のレンダリングなどの他の機能は、クライアント側機能性に関係すると言われる場合がある。しかし、いくつかの実施態様では、コンピュータシステム1000が、サーバ側機能性に関係するサーバ側機能性の少なくとも一部とクライアント側機能性に関係する機能の少なくとも一部とを実行する1つまたは複数のコンピュータを含む場合がある。したがって、本明細書で言及される可能性があるクライアント側機能性およびサーバ側機能性の指定は、コンピュータシステム1000のコンポーネントに動作には何の関係もない、例示のためのものであることを意図されている。
【0020】
いくつかの実施態様では、コンピュータシステム1000を、モバイルコンピューティングデバイス130の1つまたは複数の通信インターフェースを介してさまざまなタイプのファイルを獲得するように構成することができる。1つの例示的な例では、モバイルコンピューティングデバイス130は、静止画像ファイルを獲得するのに使用され得る静止画像カメラを備えることができる。別の例では、モバイルコンピューティングデバイス130は、ビデオストリームを獲得するのに使用され得るビデオカメラを備えることができる。さらなる例では、モバイルコンピューティングデバイス130は、オーディオストリームを獲得するのに使用され得るマイクロホンを備えることができる。さらなる例では、モバイルコンピューティングデバイス130は、テキストファイルを獲得するのに使用され得るキーボードまたはタッチスクリーンを備えることができる。
【0021】
ファイルの獲得に応答して、モバイルコンピューティングデバイス130は、モバイルコンピューティングデバイスのローカルメモリ内にファイルを記憶することができる。1つの例示的な例では、モバイルコンピューティングデバイス130は、ローカル不揮発性メモリ内に存在するローカルファイルシステム内にファイルを記憶することができる。別の例では、モバイルコンピューティングデバイス130は、ローカル不揮発性メモリ内に存在するデータベース内にファイルを記憶することができる。
【0022】
ファイルの獲得にさらに応答して、モバイルコンピューティングデバイス130は、ファイル管理アプリケーションのサーバ側部分120を実行する1つまたは複数のサーバ110にファイルのコピーを送信することができる。1つまたは複数のサーバ110は、ファイルシステム、データベース、および/または適切なアーキテクチャの任意の他のリポジトリ内に、受信されたファイルを記憶することができる。
【0023】
ファイルの獲得にさらに応答して、モバイルコンピューティングデバイス130は、獲得されたファイルから導出されたプレビューファイルを作ることができる。プレビューファイルは、ベースファイルのサイズより小さいサイズを有することができる。プレビューファイルは、モバイルコンピューティングデバイスのスクリーン上でベースファイルをレンダリングするためのベースファイルの代理として働くことを意図され、プレビューファイルではなくベースファイルを表示することがユーザによって特に要求されない限り、モバイルコンピューティングデバイスは、1つまたは複数のファイルを表示するユーザインターフェースコマンドの受取に応答して、ユーザによって要求されたファイルに対応する1つまたは複数のプレビューファイルを表示することができる。
【0024】
画像ファイルについて、プレビューファイルを、たとえばサムネイル画像もしくは他の縮小されたサイズの画像または下げられた解像度の画像によって提供することができる。ビデオファイルについて、プレビューファイルを、たとえばベースビデオファイルのフレームのサブセットを含む「トレイラ」によって提供することができる。オーディオファイルについて、プレビューファイルを、たとえばベースオーディオファイルの1つまたは複数の部分によって提供することができる。テキストファイルについて、プレビューファイルを、要約、梗概、またはベーステキストファイルの他の説明によって提供することができる。
【0025】
いくつかの実施態様では、モバイルコンピューティングデバイスは、プレビューファイルをローカルに作ることができる。代替案では、モバイルコンピューティングデバイスは、獲得されたファイルを処理のために外部サーバに送信することができ、その後、その外部サーバからプレビューファイルを受信することができる。1つの例示的な例では、サーバ110は、サーバベースのデータリポジトリへの記憶のためにモバイルコンピューティングデバイス130からベースファイルを受信することに応答して、プレビューファイルを作るためにそのファイルを処理し、プレビューファイルをモバイルコンピューティングデバイス130に送り返すことができる。
【0026】
モバイルコンピューティングデバイス130は、モバイルコンピューティングデバイスおよび/またはサーバ110上に記憶されたファイルへのアクセスを追跡することができる。1つの例示的な例では、モバイルコンピューティングデバイス130は、モバイルコンピューティングデバイスによって獲得された複数のファイルのファイルごとに、
図2によって概略的に示されるデータ構造200をメモリ内に記憶することができる。データ構造200は、ファイル識別子210、ファイル作成タイムスタンプ212、ファイルアクセスタイムスタンプ214、および/またはファイルアクセス動作の総数216を含むことができる。このデータ構造内に記憶される情報は、本明細書で下でより詳細に説明されるように、モバイルコンピューティングデバイス130のローカルメモリから除去される候補ファイルを識別する際に使用され得る。
【0027】
モバイルコンピューティングデバイス130は、1つまたは複数の入出力インターフェースを介してモバイルコンピューティングデバイスによって獲得されたファイルを記憶するために、ローカルメモリ内で(たとえば、1つまたは複数のローカルファイルシステム内で)クォータを割り振ることができる。モバイルコンピューティングデバイス130は、モバイルコンピューティングデバイスの使用可能なローカルメモリが試みられたメモリ書込動作(たとえば、ローカルファイルシステム内での新たに獲得されたファイルの記憶)に対処するのに不十分であると最終的に判定する可能性がある。試みられたメモリ書込動作を完了するために、モバイルコンピューティングデバイス130は、事前定義の選択判断基準に基づいて、ファイルシステムから除去し、したがって、新たに獲得されたファイルを記憶するのに必要なメモリを解放するために、以前に獲得されたファイルのうちの1つを選択することができる。
【0028】
1つの例示的な例では、モバイルコンピューティングデバイスは、ファイルアクセス動作の総数216に基づいて、それに関連する最小回数のファイルアクセス動作を有するファイルを選択するために、モバイルコンピューティングデバイスのローカルメモリ内に記憶された複数のファイルについてデータ構造200の配列を分析することができる。別の例では、モバイルコンピューティングデバイスは、ファイルアクセスタイムスタンプ214に基づいて、最も長くアクセスされていないファイルを選択するために、モバイルコンピューティングデバイスのローカルメモリ内に記憶された複数のファイルについてデータ構造200の配列を分析することができる。さらなる例では、モバイルコンピューティングデバイスは、ファイル作成タイムスタンプ212に基づいて、最も以前に獲得されたファイルを選択するために、モバイルコンピューティングデバイスのローカルメモリ内に記憶された複数のファイルについてデータ構造200の配列を分析することができる。さらなる例では、モバイルコンピューティングデバイスは、たとえば所与の日付までに作成された最も少なくアクセスされたファイルなど、複数の条件を満足するファイルを選択するために、モバイルコンピューティングデバイスのローカルメモリ内に記憶された複数のファイルについてデータ構造200の配列を分析することができる。
【0029】
いくつかの実施態様では、モバイルコンピューティングデバイス130は、新たに獲得されたファイルと同一のタイプのファイルの中で除去されるファイルを選択することができる。代替案では、モバイルコンピューティングデバイス130は、新たに獲得されたファイルのサイズ以上のサイズを有するファイルの中で除去されるファイルを選択することができる。いくつかの実施態様では、モバイルコンピューティングデバイス130は、新たに獲得されたファイルの総サイズ以上の総サイズを有する、除去される複数のファイルを選択することができる。
【0030】
1つまたは複数の選択されたファイルの除去に応答して、モバイルコンピューティングデバイスは、試みられたメモリ書込動作(たとえば、ローカルメモリ内での新たに獲得されたファイルの記憶)を完了することができる。モバイルコンピューティングデバイスは、さらに、新たに獲得されたファイルの作成タイムスタンプおよびアクセスタイムスタンプならびに/またはアクセスカウンタを記憶するデータ構造を含めるために、データ構造200の配列を付加することができる。モバイルコンピューティングデバイスは、さらに、本明細書で上でより詳細に説明されたように、新たに獲得されたファイルに対応するプレビューファイルを作成し、ローカルメモリ内に記憶することができる。
【0031】
モバイルコンピューティングデバイスは、以前にローカルメモリから除去されたファイルに対する動作を実行することを要求するユーザインターフェースコマンドを最終的に受け取る場合がある。その後、モバイルコンピューティングデバイスは、対応するプレビューファイルを提示し、かつ/またはベースファイルを明示的に対象とするユーザインターフェースコマンドの受取に応答して、ファイルが以前に記憶されたサーバからベースファイルを取り出すことができる。ローカルファイルシステムが、サーバから取り出されたフルサイズファイルを収容するのに十分な使用可能空間を有しない場合には、モバイルコンピューティングデバイスは、本明細書で上でより詳細に説明されたように、1つまたは複数の最も少なくアクセスされたファイルまたは最も長くアクセスされていないファイルを選択し、それらのファイルをローカルファイルシステムから除去することができる。
【0032】
したがって、
図3によって概略的に示されているように、モバイルコンピューティングデバイス130は、ローカルメモリ(たとえば、ローカルファイルシステム310)内に、モバイルコンピューティングデバイスによって獲得されたファイル314のうちの少なくともいくつかのプレビューファイル312を記憶することができる。モバイルコンピューティングデバイスは、さらに、フルサイズファイルをモバイルコンピューティングデバイスのローカルメモリ内に収容できる範囲で、ファイル314の少なくともいくつかのフルサイズバージョンを記憶することができる。1つの例示的な例では、モバイルコンピューティングデバイスは、ローカルファイルシステム310内の事前定義のクォータ316内に、ベースファイル314に対応する複数のプレビューファイル312を記憶することができる。モバイルコンピューティングデバイスは、さらに、ローカルファイルシステム310内の事前定義のクォータ316内に、プレビューファイル312-2に対応するベースファイルをローカルファイルシステム310内の事前定義のクォータ316に収容できないので、対応するベースファイルを有しない複数のプレビューファイル312-2を記憶することができる。
【0033】
ベースファイル314-1を、新たに獲得されたファイル318を収容するためにファイルシステムから除去することができ、対応するプレビューファイル312-1を、ユーザインターフェースコマンドに応答してユーザに提示することができる。フルサイズファイル314-1は、フルサイズファイル314-1を明示的に対象とするユーザインターフェースコマンドに応答して、ファイルサーバから取り出され得る。
【0034】
いくつかの実施態様では、コンピュータシステム1000は、個々のユーザおよび/またはユーザのグループに関するイベントのスケジューリングおよび追跡を容易にするカレンダアプリケーションを実行することができる。ユーザは、モバイルコンピューティングデバイス130を含むさまざまなクライアントデバイスによってカレンダアプリケーションにアクセスすることができる。
【0035】
一例では、コンピュータシステム1000は、
図4によって概略的に示されるように、カレンダ項目およびメモを含むデータモデルをサポートすることができる。カレンダ項目は、識別子412と時刻414とを含むデータ構造410によって表され得る。いくつかの実施態様では、識別子412を、カレンダ項目のタイトルおよび/または説明を含む英数字文字の人間可読シーケンスによって提供することができる。代替案では、カレンダ項目識別子を、人間可読であることを意図されていない英数字識別子または非英数字識別子によって提供することができる。
【0036】
いくつかの実施態様では、時刻414を、カレンダ項目によって識別されるイベントの開始時刻とそのイベントの持続時間とによって表すことができる。代替案では、時刻414を、イベントの開始時刻と終了時刻とによって表すことができる。イベントの開始時刻および/または終了時刻を、日付(たとえば、日、月、および年を含む)と時刻(たとえば、時、分、および秒を含む)とによって表すことができる。時刻414は、タイムゾーン識別子をさらに含むことができる。
【0037】
データ構造410は、カレンダ項目タイトル416、説明418、位置420、カレンダ項目によって識別されるイベントの創始者の識別子422、イベントの参加者のリスト424、再発するスケジュール426、および/または他のフィールドをさらに含むことができる。いくつかの実施態様では、データ構造410は、カレンダ項目のタイプ識別子411を含むことができる。データ構造410によって表されるカレンダ項目の例は、面会予約、会議要求、リマインダなどを含むことができる。いくつかの実施態様では、データ構造410は、添付ファイルと言われる場合もあるデータセットへの1つまたは複数のポインタ428を含むことができる。一例では、添付ファイルを、テキスト、オーディオストリーム、ビデオストリーム、静止画像、その他など、任意のタイプのファイルによって提供することができる。
【0038】
メモを、メモテキスト448を含むデータ構造440によって表すことができる。いくつかの実施態様では、データ構造440は、タイプ識別子441、メモ識別子442、メモの作成および/もしくは変更の時刻444、ならびに/またはメモのタイトル446をさらに含むことができる。時刻444を、日付(たとえば、日、月、および年を含む)と時刻(たとえば、時、分、および秒を含む)とによって表すことができる。時刻444は、タイムゾーン識別子をさらに含むことができる。
【0039】
いくつかの実施態様では、データ構造440は、添付ファイルと言われる場合もあるデータセットへの1つまたは複数のポインタ450を含むことができる。一例では、添付ファイルを、テキスト、オーディオストリーム、ビデオストリーム、静止画像、その他など、任意のタイプのファイルによって提供することができる。
【0040】
いくつかの実施態様では、コンピュータシステム1000は、1つもしくは複数のサーバ110および/または1つもしくは複数のクライアントデバイス130を含む1つまたは複数のコンピュータ上に存在するリレーショナルデータベース内に、上で言及されたファイルおよび/またはデータ構造を記憶することができる。いくつかの実施態様では、たとえば階層データベース、または1つもしくは複数のフラットファイルなど、上で説明されたデータモデルを実施するファイルおよび/またはデータ構造を記憶する他の方法を、コンピュータシステム1000によって使用することができる。
【0041】
いくつかの実施態様では、コンピュータシステム1000は、Lightweight Directory Access Protocol (LDAP)サーバなどのディレクトリサーバ内に、カレンダシステムに関連するユーザディレクトリを記憶することができる。いくつかの実施態様では、たとえばサーバ110のオペレーティングシステムによって提供されるネイティブユーザディレクトリを含むユーザディレクトリを記憶する他の方法を、コンピュータシステム1000によって使用することができる。
【0042】
ユーザインターフェースコマンドを受け取る時に、コンピュータシステム1000は、クライアントデバイス上で、たとえばカレンダビューおよびノートブックビューを含むさまざまなビューを介して1つまたは複数のカレンダ項目および/またはメモをレンダリングすることができる。
【0043】
カレンダビューは、1つまたは複数の時刻インジケータへの視覚的参照と共にスクリーン上にレンダリングされる1つまたは複数のカレンダ項目を含むことができる。一例では、
図5aによって概略的に示されるように、カレンダビュー500は、1つまたは複数の週ビュー510を含むことができる。週ビュー510は、曜日に対応する7つまでの視覚的に別個のスクリーン領域(日ビュー512)を含むことができる。各日ビューは、時刻に対応する複数のスクリーン領域514に視覚的に分割され得る。1つまたは複数の時刻値を、1つの日ビュー内に配置することができる。1つまたは複数のカレンダ項目516を、日ビュー512内に示すことができる。別の例では、
図5bによって概略的に示されるように、カレンダビュー500は、1つまたは複数の月ビュー520を含むことができる。月ビュー520は、複数の週ビュー510を含むことができる。週ビュー510は、曜日に対応する7つまでの視覚的に別個のスクリーン領域(日ビュー512)を含むことができる。各日ビューは、時刻に対応する複数のスクリーン領域514に視覚的に分割され得る。1つまたは複数の時刻値を、1つの日ビュー内に配置することができる。1つまたは複数のカレンダ項目516を、日ビュー512内に示すことができる。さらなる例では、カレンダビューは、四半期ビュー、年ビュー、および/または他のビューを含むことができる。
【0044】
ノートブックビューは、スクリーン上にレンダリングされた1つまたは複数のメモを含むことができる。一例では、
図6aによって概略的に示されるように、ノートブックビュー600内にレンダリングされた1つまたは複数のメモ610を、タイトル/主題によってアルファベット順にソートすることができる。別の例では、
図6bによって概略的に示されるように、ノートブックビュー600内にレンダリングされた1つまたは複数のメモを、メモの作成または変更の時刻の日付によって年代順にソートすることができる。
【0045】
いくつかの実施態様では、コンピュータシステム1000は、たとえば、タイトル、キーワード、作成者、および/またはカレンダイベントもしくはメモの作成もしくは変更の日時によってカレンダイベントおよびメモを選択することおよび/またはソートすることによって、1つまたは複数のカレンダイベントおよび1つまたは複数のメモを混合ビュー内でレンダリングすることができる。
【0046】
いくつかの実施態様では、コンピュータシステム1000は、既存のカレンダ項目または既存のメモを編集するユーザ入力を受け入れることができる。一例では、メモを編集するユーザ入力の受入に応答して、コンピュータシステム1000は、新たに追加されたテキストが時刻参照を含むことを判定することができる。そのような判定の後に、本明細書で上でより詳細に説明されたように、コンピュータシステム1000は、メモをカレンダ項目に変換し、カレンダ項目データ構造に、0個以上のオプションフィールドと一緒に時刻参照によって識別される時刻を記憶することができる。
【0047】
図7に、モバイルコンピューティングデバイスによるファイル管理の方法700の一実施形態の流れ図を示す。方法700を、ハードウェア(たとえば、回路網、専用論理、および/またはプログラム可能論理)、ソフトウェア(たとえば、ハードウェアシミュレーションを実行するためにコンピュータシステム上で実行可能な命令)、またはその組合せを含むことができるコンピュータシステムによって実行することができる。方法700および/またはその個々の関数、ルーチン、サブルーチン、または動作を、この方法を実行するコンピュータシステムの1つまたは複数の物理プロセッサによって実行することができる。方法700の複数の関数、ルーチン、サブルーチン、または動作を、並列にまたは上で説明された順序とは異なってもよい順序で実行することができる。
【0048】
処理は、ブロック710で、モバイルコンピューティングデバイスがモバイルコンピューティングデバイスの1つまたは複数の入出力インターフェースを介してファイルを受信することによって開始され得る。いくつかの実施態様では、モバイルコンピューティングデバイスは、さまざまなタイプのファイルを獲得するように構成され得、1つの例示的な例では、モバイルコンピューティングデバイスは、静止画像ファイルを獲得するのに使用され得る静止画像カメラを備えることができ、別の例では、モバイルコンピューティングデバイスは、ビデオストリームを獲得するのに使用され得るビデオカメラを備えることができ、さらなる例では、モバイルコンピューティングデバイスは、オーディオストリームを獲得するのに使用され得るマイクロホンを備えることができ、さらなる例では、モバイルコンピューティングデバイスは、テキストファイルを獲得するのに使用され得るキーボードまたはタッチスクリーンを備えることができる。
【0049】
ブロック715では、モバイルコンピューティングデバイスが、モバイルコンピューティングデバイスのローカルメモリ内にファイルを記憶することができる。1つの例示的な例では、モバイルコンピューティングデバイス130は、ローカル不揮発性メモリ内に存在するローカルファイルシステム内にファイルを記憶することができる。別の例では、モバイルコンピューティングデバイスは、ローカル不揮発性メモリ内に存在するデータベース内にファイルを記憶することができる。
【0050】
ブロック720では、モバイルコンピューティングデバイスは、1つまたは複数の外部コンピュータ(たとえば、ファイル管理アプリケーションのサーバ側部分を実行するファイルサーバ)にファイルのコピーを送信することができる。
【0051】
ブロック725では、モバイルコンピューティングデバイスが、第1のファイルから導出された第2のファイル(「プレビュー」ファイルとも称する)をローカルメモリ内に記憶することができる。プレビューファイルのサイズは、第1のファイルのサイズより小さいものとすることができる。画像ファイルについて、プレビューファイルを、たとえばサムネイル画像もしくは他の縮小されたサイズの画像または下げられた解像度の画像によって提供することができる。ビデオファイルについて、プレビューファイルを、たとえばベースビデオファイルのフレームのサブセットを含む「トレイラ」によって提供することができる。オーディオファイルについて、プレビューファイルを、たとえばベースオーディオファイルの1つまたは複数の部分によって提供することができる。テキストファイルについて、プレビューファイルを、要約、梗概、またはベーステキストファイルの他の説明によって提供することができる。いくつかの実施態様では、モバイルコンピューティングデバイスは、プレビューファイルをローカルに作ることができる。代替案では、モバイルコンピューティングデバイスは、獲得されたファイルを処理のために外部サーバに送信することができ、その後、その外部サーバからプレビューファイルを受信することができる。
【0052】
ブロック730での、ローカルメモリが試みられたメモリ書込動作を実行するのに不十分であるとの判定に応答して、処理は、ブロック735で継続され得、そうでない場合には、この方法は、終了することができる。いくつかの実施態様では、モバイルコンピューティングデバイスは、1つまたは複数の入出力インターフェースを介してモバイルコンピューティングデバイスによって獲得されるファイルを記憶するために、ローカルメモリ内に(たとえば、1つまたは複数のローカルファイルシステム内に)クォータを割り振ることができる。モバイルコンピューティングデバイスは、モバイルコンピューティングデバイスの使用可能ローカルメモリが、試みられたメモリ書込動作(たとえば、ローカルファイルシステム内での新たに獲得されたファイルの記憶)に対処するのに不十分であると最終的に判定する可能性がある。
【0053】
ブロック735では、第3のファイルが、それに関連する第4のファイルを有し、第4のファイルが、第3のファイルから導出されたものになるように、モバイルコンピューティングデバイスは、第3のファイルを選択することができる。試みられたメモリ書込動作を完了するために、モバイルコンピューティングデバイスは、ファイルシステムから除去し、したがって新たに獲得されたファイルを記憶するのに必要なメモリを解放するために、事前定義の選択判断基準に基づいて、以前に獲得されたファイルのうちの1つを選択することができる。1つの例示的な例では、モバイルコンピューティングデバイスは、それに関連する最小回数のファイルアクセス動作を有するファイルを選択することができる。別の例では、モバイルコンピューティングデバイスは、最も長くアクセスされていないファイルを選択することができる。さらなる例では、モバイルコンピューティングデバイスは、最も以前に獲得されたファイルを選択することができる。さらなる例では、モバイルコンピューティングデバイスは、たとえば所与の日付までに作成された最も少なくアクセスされたファイルなど、複数の条件を満足するファイルを選択することができる。いくつかの実施態様では、モバイルコンピューティングデバイスは、新たに獲得されたファイルと同一のタイプのファイルの中で除去されるファイルを選択することができる。代替案では、モバイルコンピューティングデバイスは、新たに獲得されたファイルのサイズ以上のサイズを有するファイルの中で除去されるファイルを選択することができる。いくつかの実施態様では、モバイルコンピューティングデバイスは、新たに獲得されたファイルの総サイズ以上の総サイズを有する、除去される複数のファイルを選択することができる。
【0054】
ブロック740では、モバイルコンピューティングデバイスは、選択されたファイルをローカルメモリから除去することができる。
【0055】
ブロック745では、モバイルコンピューティングデバイスは、試みられたメモリ書込動作を完了することができる。
【0056】
ブロック750では、モバイルコンピューティングデバイスは、第3のファイルに対する動作を実行することを要求するユーザインターフェースコマンドを受け取ることができる。
【0057】
ブロック755では、モバイルコンピューティングデバイスは、ファイルが以前に記憶されたサーバから第3のファイルのコピーを取り出すことができる。ローカルファイルシステムが、サーバから取り出されたフルサイズファイルを収容するのに十分な使用可能空間を有しない場合には、モバイルコンピューティングデバイスは、本明細書で上でより詳細に説明されたように、1つまたは複数の最も少なくアクセスされたファイルまたは最も長くアクセスされていないファイルを選択し、それらのファイルをローカルファイルシステムから除去することができる。ブロック755によって参照される動作の完了に応答して、この方法は、終了することができる。
【0058】
図8に、本明細書で説明される方法のうちの1つまたは複数をコンピュータに実行させる命令を実行することができる例のコンピュータシステム100を示す。いくつかの実施形態では、コンピュータシステム100は、
図1の1つまたは複数のサーバ110および/またはクライアントデバイスに対応することができる。
【0059】
いくつかの実施形態では、コンピュータシステム100を、他のコンピュータシステムに接続する(たとえば、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、またはインターネットなどのネットワークを介して)ことができる。コンピュータシステム100は、クライアント-サーバ環境内のサーバまたはクライアントコンピュータの資格で、またはピアツーピア環境もしくは分散ネットワーク環境内のピアコンピュータとして、動作することができる。コンピュータシステム100は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、セルラ電話、ウェブ機器、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのデバイスによって行われるべきアクションを指定する命令のセットを実行することができる(順次または他の形で)任意のデバイスによって提供され得る。
【0060】
さらなる態様では、コンピュータシステム100は、バス1008を介してお互いと通信することができる、プロセッサ1002、揮発性メモリ1004(たとえば、ランダムアクセスメモリ(RAM))、不揮発性メモリ1006(たとえば、読取専用メモリ(ROM)または電気的消去可能プログラム可能ROM(EEPROM))、および2次メモリ1016(たとえば、データストレージデバイス)を含むことができる。プロセッサ1002は、汎用プロセッサ(たとえば、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、他のタイプの命令セットを実施するマイクロプロセッサ、または命令セットのタイプの組合せを実施するマイクロプロセッサなど)または特殊化されたプロセッサ(たとえば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディジタル信号プロセッサ(DSP)、またはネットワークプロセッサなど)などの1つまたは複数のプロセッサによって提供され得る。
【0061】
コンピュータシステム100は、さらに、ネットワークインターフェースデバイス1022を含むことができる。コンピュータシステム100は、ビデオディスプレイユニット1010(たとえば、LCD)、英数入力デバイス1012(たとえば、キーボード)、ポインティングデバイス1014(たとえば、マウス)、およびオーディオ出力デバイス1020(たとえば、スピーカ)をも含むことができる。
【0062】
2次メモリ1016は、その上にファイル管理アプリケーション120、125の命令を記憶することができる非一時的コンピュータ可読記憶媒体1024を含むことができる。ファイル管理アプリケーション120、125の命令は、コンピュータシステム1000によるその実行中にメインメモリ1004内および/またはプロセッサ1002内に完全にまたは部分的に存在することもでき、したがって、メインメモリ1004およびプロセッサ1002も、機械可読記憶媒体を構成することができる。コンピュータ可読記憶媒体1024は、図示の実施形態では単一の媒体として図示されているが、用語「コンピュータ可読記憶媒体」は、実行可能命令の1つまたは複数のセットを記憶する、単一の媒体または複数の媒体(たとえば、集中化されたもしくは分散されたデータベース、ならびに/または関連するキャッシュおよびサーバ)を含まなければならない。用語「コンピュータ可読記憶媒体」は、コンピュータに本明細書で説明される方法のうちの任意の1つまたは複数を実行させる、コンピュータによる実行のための命令のセットを記憶しまたは符号化することのできるすべての非一時的媒体をも含まなければならない。用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ、光学媒体、および磁気媒体を含まなければならないが、これらに限定はされない。
【0063】
本明細書で説明される方法、コンポーネント、および特徴を、ディスクリートハードウェアコンポーネントによって実施することができ、あるいは、ASIC、FPGA、DSP、または類似するデバイスなどの他のハードウェアコンポーネントの機能性に一体化することができる。さらに、方法、コンポーネント、および特徴を、ハードウェアデバイス内のファームウェアモジュールまたは機能回路網によって実施することができる。さらに、方法、コンポーネント、および特徴を、ハードウェアデバイスとソフトウェアコンポーネントとの任意の組合せで、またはソフトウェアのみにおいて実施することができる。
【0064】
そうではない特に述べられない限り、「更新」、「識別」、「判定」、「送出」、「割当」、または類似物などの用語は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されたデータを操作し、コンピュータシステムのメモリもしくはレジスタまたは他のそのような情報記憶デバイス、情報伝送デバイス、もしくは情報表示デバイス内の物理量として同様に表される他のデータに変換する、コンピュータシステムによって実行されまたは実施されるアクションおよびプロセスを指す。
【0065】
本明細書で説明される実施形態は、本明細書で説明される方法を実行する装置にも関する。この装置は、要求される目的のために特に構成されるものとすることができ、あるいは、コンピュータシステム内に記憶されたコンピュータプログラムによって選択的にプログラムされた汎用コンピュータシステムを含むことができる。そのようなコンピュータプログラムを、コンピュータ可読非一時的記憶媒体内に記憶することができる。
【0066】
本明細書で説明される方法および例示的な例は、どの特定のコンピュータまたは他の装置にも固有には関係しない。さまざまな汎用システムを、本明細書で説明される教示に従って使用することができ、あるいは、要求される方法の関数、ルーチン、サブルーチン、または動作を実行するために、より特殊化された装置を構成することが、より便利である場合がある。さまざまなこれらのシステムの要求される構造は、上の説明に示されるもののように見える。
【0067】
上の説明は、制限的ではなく例示的であることを意図されたものである。本開示を、特定の例示的な例および実施形態を参照して説明したが、本開示が、説明された実施形態に限定されないことが認められる。本開示の範囲は、特許請求の範囲が資格を与えられる同等物のすべての範囲と一緒に、以下の特許請求の範囲を参照することによって判定されなければならない。