[0017]この開示は、次に、考えられる実施形態の一部を示した添付の図面を参照して例示の実施形態を十分に説明する。しかしながら、多くの異なる形式で他の態様が具体化されることがあり、開示に特定の実施形態を含むことは、そのような態様を本明細書に示す実施形態に限定することと解釈されるべきではない。むしろ、図面に示す実施形態は、徹底的かつ完全な開示、ならびに意図された範囲を当業者に十分に伝える開示を提供するために含まれている。図面を参照するとき、全体を通して示される同様の構造および要素は、同様の参照符号を用いて表される。
[0018]本開示の実施形態は、効率的なアトミックアクセスのために最適化することができるフレキシブルファイル形式に関する。本明細書に開示する実施形態は、任意のタイプのソフトウェアアプリケーション(例えば、ワードププロセッサ、プレゼンテーションソフトウェア、作図ソフトウェアなど)と併せて使用することもできる。さらに、本明細書に開示する実施形態は、ユーザーに大量のコンテンツを提供するアプリケーションと共に使用することができる。例えば、本明細書に開示するフレキシブルファイル形式は、モンタージュを作成するアプリケーションによって利用されることがある。モンタージュは、ユーザーまたはアプリケーションが集約し、表示および/または消費のために提供する画像、文書、プレゼンテーション、スプレッドシート、図表、音声ファイル、ビデオ、ウェブコンテンツ、または任意のその他のタイプのデジタルコンテンツのリッチコレクションとすることができる。説明を容易にするために、本明細書における記載は、フレキシブルファイル形式を説明するとき、モンタージュの作成を指すことになる。しかしながら、本明細書に開示するフレキシブルファイル形式は、任意のタイプのアプリケーション用の任意のタイプのファイルを作成するために使用されることが可能であることを当業者は理解し、本明細書に開示される実施形態をモンタージュの作成に限定されるものと解釈しないであろう。
[0019]モンタージュなど、リッチコレクションは、多数のファイルで構成される可能性がある。このために、モンタージュを格納する標準的なファイル、または一般に大量のコンテンツは、ローカルコンピューティングリソースおよびネットワークコンピューティングリソースに重い負担をかける可能性がある。コレクションのサイズもまた、ユーザーがファイルにアクセスしようとする、またはファイルを開こうとするとき、ユーザー体験に悪影響を及ぼす恐れがある。例えば、モンタージュで集められたコンテンツのすべてが、モンタージュファイルに格納される場合、ファイルを開くこと、およびコンテンツをユーザーに表示することは、ロードされるコンテンツの量が原因で法外に長い時間がかかる可能性がある。他方では、モンタージュファイルがコンテンツ自体ではなく、コンテンツへの参照のコレクションで構成される場合、ファイルのサイズははるかに小さいものとなり、それによって迅速な初期ロードをユーザーに提供することができるが、ユーザーがファイルから選択するコンテンツのすべての部分が、検索されなければならない可能性がある。ファイルに格納された参照は、ユーザーをローカルに格納されたコンテンツと、ネットワークを通じてリモートに格納されたコンテンツとの両方に誘導するので、ファイル中のリンクにアクセスしてコンテンツを検索することは、ローカルリソースおよびネットワークリソースに重い負担をかける恐れがある。
[0020]本明細書に開示するフレキシブルファイル形式の実施形態は、説明した状況間でバランスをとり、ユーザーの必要とローカルコンピューティングリソースおよびネットワークコンピューティングリソースにかかる負担との間のバランスをとりながら、アプリケーションに大量のコンテンツを収集するおよび/または集約する能力を提供する。したがって、フレキシブルファイル形式は、ユーザーおよび/またはアプリケーションが大量のコンテンツを集約できるようにしながら、必要とされる検索の量でロード時間のバランスをとるファイルの作成を提供する。さらに、フレキシブルファイルは、特定のユーザーパフォーマンスの必要に適合するように、および/または利用できるコンピューティングリソースで動作するように、調整されることが可能である。
[0021]本明細書に開示されたフレキシブルファイルの実施形態は、集約されたコンテンツが検索されるおよび/または格納される方法に関して様々な度合いのアトミック性を提供することにより、融通性を提供することができる。諸実施形態では、アトミック性は、コンテンツが格納される方法を指す。高度のアトミック性は、個々に格納されたコンテンツを指すことができる。例えば、コンテンツの各部分が個々に格納されるまたは参照されるファイルは、高度のアトミック性を有する。高度のアトミック性が提供されるとき、少なくとも一部のコンテンツは、個々にアクセスされる、または検索されることが可能である。反対に、低度のアトミック性は、グループまたはコレクションとして格納されたコンテンツを指すことができる。例えば、コンテンツの各部分が一緒に(例えば、単一のコンテナ、ファイル、ディレクトリなどに)格納されたファイルは、非常に低度のアトミック性を有する。低度のアトミック性が提供されるとき、コンテンツの少なくとも一部は、個々にアクセスされない、または検索されない可能性がある。代わりにコンテンツは、グループとしてアクセスされる、または検索される可能性がある。
[0022]高いアトミック性を提供するファイルは、迅速なロード時間を提供することによってユーザー体験を向上させることができる。コンテンツは、高いアトミック性の環境では個々にアクセスされることが可能であるので、ユーザーは、単にユーザーが選択したコンテンツが検索されるのを待てばよく、したがってロード時間が削減される。しかしながら、高いアトミック性の環境で多数のコンテンツに個々にアクセスすることは、検索およびリクエストの数を増やし、したがって、ローカルリソースおよびネットワークリソースの負担を増やす。
[0023]低いアトミック性を提供するファイルは、必要とされるリクエストおよび検索の数を減らし、それによってローカルコンピューティングリソースおよびネットワークコンピューティングリソースの負担を低減することができる。しかしながら、コンテンツは、低いアトミック環境においてはグループとしてアクセスされるので、ユーザー体験は、低下する恐れがある。ユーザーは、ユーザーが選択したコンテンツのみならず、追加のコンテンツも同様に待たなければならない可能性があるからである。
[0024]諸実施形態では、フレキシブルファイル形式は、様々な度合いのアトミック性を提供し、それによってユーザー体験とコンピューティングリソースの使用との間のバランスをとることができる。例えば、フレキシブルファイル形式は、頻繁にアクセスされることになるいくつかのコンテンツを個別に格納し、それによって、肯定的なユーザー体験を保証し、一方では他のコンテンツをグループとして格納し(例えば、一緒にアクセスされると思われるコンテンツ)、それによってコンピューティングリソースにかかるストレスを軽減することができる。
[0025]諸実施形態では、フレキシブルファイル形式はまた、コンテンツの移動に関してある程度の回復性を提供することができる。すでに述べたように、フレキシブルファイル形式は、実際のコンテンツまたはコンテンツへの参照を格納することができる。コンテンツへの参照が格納されるとき、ファイルは、コンテンツが移動される場合、コンテンツへのアクセスを失う恐れがある。諸実施形態は、各コンテンツ項目に対していくつかの異なる参照を格納することによって、コンテンツの移動に対する回復性を提供する。諸実施形態では、各参照は、異なる方法でコンテンツにリンクし、それによって、フレキシブルファイルにコンテンツを発見し、検索するための複数の機構を提供することができる。
[0026]図1は、フレキシブルファイル100の実施形態の概念図である。記載する実施形態では、フレキシブルファイルは、モンタージュアプリケーションによって使用されて、コンテンツのモンタージュを格納し得る。他の実施形態では、フレキシブルファイルは、他のタイプのアプリケーションによって使用されて、コンテンツを格納し得る。フレキシブルファイル100は、面オブジェクト102を含むことができる。諸実施形態では、面オブジェクト102は、フレキシブルファイル100中に収集されたコンテンツを整理するおよび/または格納するために使用されることがある。したがって、面オブジェクト102は、様々な異なるコンテンツ項目(またはコンテンツ項目への参照)を含むことがある。モンタージュ面オブジェクト102は、フレキシブルファイル100に含まれているコンテンツを集約し、整理し、格納することができる。諸実施形態では、面オブジェクト100は、アプリケーションによってロードされて、異なるコンテンツを表示することがある。モンタージュ面オブジェクトは、コンテンツ自体ではなく、コンテンツへの参照を格納することができるので、面オブジェクト102のサイズは、フレキシブルファイル中に集約されたコンテンツに比べて小さく、それによってユーザーによるフレキシブルファイルの迅速な初期ロードを可能にすることができる。
[0027]フレキシブルファイル100が使用されてモンタージュを格納するとき、面オブジェクト102は、単一モンタージュの基本的なプロパティを含むことができる。プロパティは、モンタージュにおけるコンテンツの表示を整理するために使用することができる面オブジェクトのグリッド寸法(grid dimension)およびパディング(padding)、モンタージュの背景(例えば、背景の画像または色)を定義するために使用することができる背景のレイヤー、ならびにテーマ情報を含むことができる。面オブジェクトは、タイルオブジェクトのコレクション(例えば、タイルオブジェクト104A、104B、および104C)、ならびにクリップオブジェクトのコレクション(例えば、クリップオブジェクト106A、106B、および106C)を含むこともできる。諸実施形態では、クリップオブジェクト106A、106B、および106Cは、タイルオブジェクト104Cなどのタイルオブジェクトと視覚的に関連付けることができるが、クリップオブジェクト106A、1046B、および106Cは、面オブジェクト102に格納することができる。したがって、クリップオブジェクト、例えばクリップオブジェクト104A、106B、および106Cが、面オブジェクト102に格納される場合、クリップオブジェクト、例えばタイルオブジェクト104C中のクリップオブジェクト106A、106B、および106Cの並べ替えは、フレキシブルファイル100に格納されたクリップオブジェクトのIDおよび/またはティーザ−IDの順序指定されたリストを更新することを含むことができる。さらに、この実施形態では、クリップオブジェクトは、複数のタイルオブジェクト(例えば、タイルオブジェクト104Cとタイルオブジェクト104A)間で共有されることが可能であり、タイルオブジェクト間で大量のデータをエクスポートしない。
[0028]諸実施形態では、面オブジェクト102は、ユーザーまたはアプリケーションが面オブジェクト102および/または面オブジェクト102上のコンテンツの表示をカスタマイズするように設定することができるいくつかの調整可能なプロパティを提供することができる。表1は、面オブジェクト102によって提供されることが可能であるプロパティの非限定的な例を提供する。
[0029]諸実施形態では、フレキシブルファイル100は、オブジェクト104A、104B、および104Cなどのいくつかのタイルオブジェクトを含むことができる。タイルオブジェクトは、異なるコンテンツを関連付けて1つまたは複数のグループにするように使用されることが可能である。例えば、フレキシブルファイル100が表示されるとき、特定のタイルオブジェクトと関連付けられたコンテンツ項目は、関連付けられたタイルオブジェクトを使用してアクセスされることが可能である。1つの前述の実施形態では、クリップオブジェクトおよび/またはコンテンツは、面オブジェクト102に格納されることが可能である。このような実施形態では、クリップオブジェクトおよび/またはコンテンツは、やはりタイルオブジェクト104A、104B、および104Cなどのタイルオブジェクトと視覚的に関連付けられる。代替的実施形態では、クリップオブジェクトおよび/またはコンテンツは、タイルオブジェクト自体に格納することができる。提供されるフレキシブルファイル100の概念的実施形態は、3つのタイルオブジェクトを示すが、より多くのタイルオブジェクトまたはより少ないタイルオブジェクトが面オブジェクト102に含まれる場合もあることを当業者は理解するであろう。
[0030]諸実施形態では、タイルオブジェクト104Cなどのタイルオブジェクトは、単一の最上位コンテナとすることができる。タイルオブジェクトは、1つまたは複数のクリップオブジェクト(例えば、クリップオブジェクト106A、106B、および106C)および/またはコンテンツを含むことができる。諸実施形態では、タイルオブジェクトは、作成時に、テンプレートに定義されたプレースホルダのクリップオブジェクトを含むことができる。例えば、フレキシブルファイルは、クリップと関連付けられたコンテンツはまだないが、将来コンテンツを持つ可能性のあるクリップを含むことができる。このような実施形態では、クリップは、プレースホルダとして使用されることが可能である。さらなる実施形態では、タイルオブジェクトは、クリップオブジェクトおよび/またはコンテンツがフレキシブルファイル100に追加されるとき、さらなるクリップオブジェクトおよび/またはコンテンツを蓄積することができることがある。タイルオブジェクトは、グリッドベースの測位情報(例えば、列、行、列のスパン、行のスパンなど)、zオーダー情報、および形状情報(例えば、矩形、円形、楕円形など)を含むことができる。諸実施形態では、情報は、タイルオブジェクトの視覚的レイアウトおよび/またはデザインを定義することができる。
[0031]諸実施形態では、各タイルオブジェクトは、2つ以上のクリップオブジェクトを含むことができる。例えば、タイルオブジェクト104Cは、3つのクリップオブジェクト、クリップオブジェクト106A、106B、および106Cを含む。タイルオブジェクトは、タイルオブジェクト内に含まれているクリップオブジェクト間のナビゲーションの性能に関連する情報を提供することもできる。例えば、タイルオブジェクトは、各クリップオブジェクトと関連付けられた異なるコンテンツがアクセスされるおよび/または表示される方法を定義することができる。本明細書に開示する実施形態を用いて使用されることが可能なナビゲーションのタイプの例は、これらに限定ではないが、自動ナビゲーション(例えば、タイルオブジェクト中のクリップオブジェクト間の指定時刻に作動するクロスフェード(timed cross−fade))、手動ナビゲーション(例えば、次へボタン/戻るボタン)、またはこの2つの組合せを含む。諸実施形態では、手動ナビゲーションが選択される場合、タイルオブジェクトは、タイルオブジェクトと関連付けられたクリップオブジェクトおよび/またはコンテンツ間でナビゲートするためにユーザーが対話することができるナビゲーション構成要素の格納および/または表示に関連する情報も含むことができる。さらなる実施形態では、タイルオブジェクトは、自動ナビゲーションのためのアニメーション設定(例えば、期間および待ち時間(delay))に関連する情報、スタイル情報、およびタイトル情報を含むこともできる。諸実施形態では、アニメーション設定は、コンテンツの自動ナビゲーションのためのアニメーションを定義する、またはタイルオブジェクトにアクセスする前のプレビューとしてコンテンツを表示し得る方法を定義することができる。さらなる実施形態では、タイルオブジェクトは、タイルオブジェクトを一意に識別することができるタイルオブジェクト識別子と関連付けられることがある。タイルオブジェクト識別子情報は、面オブジェクト102によって格納されて、面オブジェクト102内にある特定のタイルオブジェクトを識別することができる。さらに別の実施形態では、タイルオブジェクトは、1つもしくは複数のティーザ−識別子(ティーザ−ID)と関連付けられることがある、または1つもしくは複数のティーザ−IDを格納することがある。ティーザ−IDは、タイルオブジェクトがアクセスされる前に、タイルオブジェクトの面オブジェクトに表示可能であるコンテンツを識別することができる。表2は、タイルオブジェクト104Cなどのタイルオブジェクトによって提供されることが可能であるプロパティの非限定的な例を提供する。
[0032]1つの実施形態では、各タイルオブジェクトは、各タイルオブジェクトがただ1つのタイプのコンテンツと関連付けられていることを意味する同種であることが可能である。別の実施形態では、各タイルオブジェクトは、異種コンテンツを格納することができる場合がある。諸実施形態では、タイルオブジェクトは、文書コンテンツ(例えば、.docx、.pptx、.pdf、.xslxなど)、画像コンテンツ(例えば、.jpg、.png、.bmp、.gifなど)、フォトアルバム、ビデオ、テキスト、フィード(例えば、RSSフィード)、および/またはウェブコンテンツと関連付けられることが可能である。タイルオブジェクトと関連付けたコンテンツの特定の例を提供しているが、いかなるタイプのコンテンツもタイルオブジェクトと関連付けることができる。
[0033]諸実施形態では、フレキシブルファイル100は、クリップオブジェクト106A、106B、および106Cなどのいくつかのクリップオブジェクトを含むことができる。諸実施形態では、クリップオブジェクトは、タイルオブジェクトと関連付けられることが可能である。例えば、図1では、クリップオブジェクト106A、106B、および106Cはタイルオブジェクト104Cと関連付けられる。フレキシブルファイル100と関連付けられたコンテンツに関連する情報は、クリップオブジェクトに格納されることが可能である。1つの実施形態では、クリップオブジェクトは、実際のコンテンツ項目を格納することができる。例えば、クリップオブジェクトは、画像、文書、ビデオなどを格納することができる。別の実施形態では、クリップオブジェクトは、コンテンツ自体ではなくコンテンツ項目への1つまたは複数の参照を格納することができる。このような実施形態では、実際のコンテンツ項目は、ファイルの外部に格納される。外部コンテンツは、ローカルマシンに、ネットワークを介してアクセスできるリモートマシンに、またはクラウドに、存在することがある。諸実施形態では、クラウドは、ネットワークを介してアクセスできるコンテンツを格納しているサーバーの分布とすることができる。
[0034]クリップオブジェクトが実際のコンテンツ項目ではなく、コンテンツ項目への参照を格納する諸実施形態では、クリップオブジェクトは、コンテンツ項目の移動または再編成に対して回復性を提供するために、コンテンツ項目への複数の参照を格納することができる。複数の参照のそれぞれは、同じコンテンツ項目を識別することができるが、各参照は、様々に識別することができる。例えば、クリップオブジェクトは、絶対参照、相対参照、トークン化された参照、または当技術分野に知られている任意の他のタイプの参照を格納することができる。絶対参照は、コンテンツ項目の正確な位置を指し示す参照とすることができる。例示の絶対参照は、URL、URI、メモリまたはストレージのアドレスなどを含むが、これらに限定されない。相対的参照は、コンテンツ項目を、コレクション(例えば、パッケージ、ディレクトリなど)におけるその相対的位置で識別することができる。トークン化された参照は、名前および位置データに依存することなく、コンテンツを識別することができる参照である。諸実施形態では、クリップオブジェクトに格納された1つまたは複数の参照は、同じコンテンツを識別し、それによってコンテンツの要求および検索に関する回復性を提供することができる。例えば、クリップオブジェクトにおいて参照されるコンテンツ項目が、例えば異なる記憶領域に移動することによって、その位置を変更する場合、絶対参照は、このコンテンツ項目を正確に識別することができないが、フレキシブルファイル100は、相対的参照またはトークン化された参照を使用して、コンテンツ項目を正常にリクエストし、検索することができる。
[0035]諸実施形態では、参照は、コンテンツの個々の項目、またはコンテンツのコレクションを参照することができる。高いアトミック性が望ましい場合、クリップオブジェクトに格納された1つまたは複数の参照は、単一コンテンツ項目(例えば、単一文書、単一画像など)を参照することができる。低いアトミック性が望ましい場合、クリップオブジェクトに格納された1つまたは複数の参照は、コンテンツのコレクションを参照することができる。低いアトミック性の実施形態では、大量のコンテンツのロードが原因で、ユーザー体験が劣化する可能性があるが、コンテンツにアクセスするために必要とされるリクエスト数の低下によって、計算リソースの負荷は緩和される可能性がある。したがって、フレキシブルファイル100のクリップオブジェクトの構成要素は、とローカルおよびネットワークのコンピューティングリソースにかかる負荷に対してユーザー体験のニーズのバランスをとるために、フレキシブルファイル100のアトミック性のレベルを調整する能力を提供する。
[0036]クリップオブジェクトは、クリップオブジェクトと関連付けられたコンテンツに関する追加情報を格納することができる。表2は、クリップオブジェクト106Aなどのクリップオブジェクトによって提供可能であるプロパティの非限定的な例を提供する。
[0037]面オブジェクト、タイルオブジェクト、およびクリップオブジェクト構成要素は、フレキシブルファイル100の融通性を提供する。諸実施形態では、コンテンツ項目またはコンテンツへの参照のいずれかを格納するクリップオブジェクトの能力は、融通性を提供するために活用することができる。さらに、諸実施形態では、コンテンツ項目を格納する、または項目への1つまたは複数の参照を格納するクリップオブジェクトの能力は、フレキシブルファイル100に様々なユーザー状況で動作する能力を与える。例えば、ユーザーがオフラインモードで動作している場合、フレキシブルファイル100は、1つまたは複数のクリップオブジェクトに実際のコンテンツ項目を格納するように適合することができる。そのようにして、フレキシブルファイル100は、オフライン環境でコンテンツを格納し、提供するように使用することができる。あるいは、諸実施形態ではフレキシブルファイル100は、コンテンツがローカルに格納されている場合、コンテンツへの参照を使用しながらオフラインモードで正常に使用することができる。反対に、フレキシブルファイル100は、クリップオブジェクトにコンテンツ項目への参照を格納し、オンライン環境で動作することができる。このような実施形態では、フレキシブルファイルのサイズを削減することができる。
[0038]諸実施形態では、フレキシブルファイル100は、XMLファイルとすることができる。セクション102、タイルオブジェクト104A、104B、および104C、ならびにクリップオブジェクト106A、106B、および106Cは、XML要素とすることができる。あるいは、フレキシブルファイル100は、異なる形式とすることができる。例えば、フレキシブルファイルは、バイナリファイル、HTMLファイル、JavaScript(登録商標)ファイル、または当技術分野に知られている任意の他のタイプのファイル形式とすることができる。
[0039]図2は、オフラインモードで高いアトミック性を提供するように使用されることが可能なフレキシブルファイルの構成要素の実施形態である。タイルオブジェクト200が、1つまたは複数のクリップオブジェクト(例えば、クリップオブジェクト202、204、および206)と関連付けられることが可能である。図2では単に3つのクリップオブジェクトが、タイルオブジェクト200と関連付けられているが、より多くのクリップオブジェクト、またはより少ないクリップオブジェクトがタイルオブジェクト200と関連付けられることがある。図2に示す実施形態では、各クリップオブジェクト202、204、および206が、実際のコンテンツを格納することができる。例えば、諸実施形態では、クリップオブジェクト202が画像を格納し、クリップオブジェクト204が文書を格納し、クリップオブジェクト206がプレゼンテーションを格納する。図示した実施形態では、コンテンツ項目がフレキシブルファイル内に格納されているので、フレキシブルファイルは、オフライン環境で動作するのに適したものとすることができる。
[0040]図3は、オンラインモードで高いアトミック性を提供するように使用されることが可能なフレキシブルファイルの構成要素の実施形態である。タイルオブジェクト300は、1つまたは複数のクリップオブジェクト(例えば、クリップオブジェクト302、304、および306)と関連付けられることが可能である。図3では単に3つのクリップオブジェクトが、タイルオブジェクト300と関連付けられているが、より少ないクリップオブジェクト、またはより多くのクリップオブジェクトがオブジェクト300と関連付けられることがある。図3に示す実施形態では、各クリップオブジェクト302、304、および306が、コンテンツ項目への1つまたは複数の参照を格納することができる。諸実施形態では、参照は、ローカルに格納されたコンテンツ項目を識別することができるが、このコンテンツ項目はフレキシブルファイル形式の一部ではないことがある。例えば、コンテンツ項目は、同じマシン上にフレキシブルファイルとして格納されることがあるが、メモリまたはコンピューター記憶媒体の異なる部分に、異なるディレクトリに、またはローカルマシン上の他の場所に格納されることがある。別の実施形態では、参照は、例えばネットワークを介してアクセス可能な異なるマシン上に、またはクラウド上になど、リモートに格納されたコンテンツ項目を識別することができる。
[0041]例えば、図3において、クリップオブジェクト302は、画像への1つまたは複数の参照を含むことができ、クリップオブジェクト304は、文書への1つまたは複数の参照を含むことができ、クリップオブジェクト306は、プレゼンテーションへの1つまたは複数の参照を含むことができる。諸実施形態では、1つまたは複数の参照は、絶対参照、相対参照、トークン化された参照、または当技術分野に知られている任意の他のタイプの参照とすることができる。クリップオブジェクト内の参照のそれぞれは、同じコンテンツ項目を、ただし異なる方法で、識別することができる。図3に示す実施形態は、ユーザーが様々なコンテンツ項目に個々にアクセスできるようにし、それによって、フレキシブルファイルがコンテンツを迅速にロードし、ユーザー体験を向上させる能力を提供する。しかしながら、コンテンツに個々にアクセスすると、コンテンツにアクセスするためのリクエストおよび/または検索の数が増加する可能性があり、したがって、ローカルおよびネットワークのコンピューティングリソースに増加した負荷がかかる可能性がある。
[0042]図4は、オンラインモードでバランス調整されたレベルのアトミック性を提供するために使用されることが可能なフレキシブルファイルの構成要素の実施形態である。タイルオブジェクト400は、1つまたは複数のクリップオブジェクト(例えば、クリップオブジェクト402、404、および406)と関連付けられることが可能である。図4では単に3つのクリップオブジェクトが、タイルオブジェクト400と関連付けられているが、より少ないクリップオブジェクト、またはより多くのクリップオブジェクトがタイルオブジェクト400と関連付けられることがある。図4に示す実施形態では、クリップオブジェクト402および406が、コンテンツ項目への1つまたは複数の参照を格納することができる。例えば、クリップオブジェクト402は、画像への1つまたは複数の参照を含み、クリップオブジェクト406は、プレゼンテーション項目への1つまたは複数の参照を含む。クリップオブジェクト404は、項目のグループへの1つまたは複数の参照を含むことができる。例えば、クリップオブジェクト404は、いくつかの文書を含むことができる文書のコンテナへの1つまたは複数の参照を含む。諸実施形態では、コンテンツ項目のコンテナを参照することにより、コンテンツを検索するために必要とされるリクエストの数を削減し、それによって、ローカルおよびネットワークのコンピューティングリソースにかかる負担を減らすことができる。諸実施形態では、1つまたは複数の参照は、絶対参照、相対参照、トークン化された参照、または当技術分野に知られている任意の他のタイプの参照とすることができる。クリップオブジェクト内の参照のそれぞれは、同じコンテンツ項目または同じコンテンツコンテナを、ただし異なる方法で、識別することができる。
[0043]再び図1を参照すると、フレキシブルファイル100は、いくつかのオブジェクト(例えば、タイルオブジェクト104A、104B、および104C)を含むことができ、各タイルオブジェクトは、いくつかのクリップオブジェクト(例えば、クリップオブジェクト106A、106B、および104C)を含むことができる。諸実施形態では、クリップオブジェクトは、コンテンツ項目またはコンテンツ項目への参照を含むことができる。したがって、フレキシブルファイル100は、クリップオブジェクトの種々のタイプに関連付けられたタイルオブジェクトの種々のタイプ(例えば、図2〜図4の実施形態)を同時に組み込み、それによって高レベルの適合性および融通性をフレキシブルファイル100にもたらすことができる可能性がある。したがって、フレキシブルファイルは、多くの異なる動作シナリオで使用するためにカスタマイズすることができる。
[0044]図5は、フレキシブルファイルを作成するために使用することができる方法500の実施形態である。方法500は、図7に関して述べられるコンピューティングシステムなど、コンピューティングデバイス上で実行するアプリケーションまたはプロセスによって行われることが可能である。フローは、図1の面オブジェクト102などの面オブジェクトが作成される動作502から始まる。諸実施形態では、動作502で作成される面オブジェクトは、フレキシブルファイルの主要な構成要素とすることができる。フローは、図1のタイルオブジェクト104A、104B、および104Cなどの少なくとも1つのタイルオブジェクトが作成される動作504に進む。1つの実施形態では、フレキシブルファイルに含まれているコンテンツおよび/またはクリップオブジェクトは、タイルオブジェクトと関連付けることができる。別の実施形態では、タイルオブジェクトは、フレキシブルファイルに含まれている任意のコンテンツおよび/またはクリップオブジェクトを格納するためのコンテナとして働くことができる。
[0045]フローは、決定動作506に進む。決定動作506において、フレキシブルファイルを作成する方法は、決定を行う、またはフレキシブルファイルを最適化することができるユーザーのシナリオおよび/または状況のタイプの指示を受け取る。例えば、フレキシブルファイルは、最良のユーザー体験(例えば、高速なロード時間)を求めて最適化することができる、フレキシブルファイルは、ローカルおよび/またはネットワークのコンピューティングリソースを管理する(例えば、コンテンツのリクエストを最小にする)ために最適化することができる、または、フレキシブルファイルは、バランス調整された手法をとることができる。諸実施形態では、指示は、フレキシブルファイルを最適化すべき方法に関する命令を提供する。例えば、指示は、フレキシブルファイル内に一部のデータを保存または格納し、一方ではファイル内に他のデータへの参照を格納するための命令を含むことができる。諸実施形態では、フレキシブルファイル内にコンテンツを格納すべきかどうかに関する命令は、コンテンツのタイプ、コンテンツのサイズ、またはコンテンツの他の特性とすることができる。方法500は、3つの異なるタイプの最適化を提供するように示しているが、格納されるコンテンツ、個々に参照されるコンテンツ、および/またはまとめて参照されるコンテンツの混合を含むことによって、フレキシブルファイルは、コンテンツをすべてファイル自体の内に格納すること、またはコンテンツをすべてリモートに格納することの間の範囲のどこにでも入るように作成可能であることを、当業者は理解するであろう。
[0046]1つの実施形態では、動作506において行われる決定は、方法500を行っているアプリケーションおよび/またはプロセスによって受け取られる指示に基づくことができる。例えば、ユーザーによって設定される選好(preference)の指示を使用して、動作506において決定を行うことができる。別の実施形態では、使用履歴、ネットワークリソース、フレキシブルファイルに含まれるコンテンツの量に基づいて、またはいずれかの他の機構によって、動的に決定を行うことができる。
[0047]諸実施形態では、フレキシブルファイルが最小のロード時間に最適化される(例えば、ユーザー体験を最大にする)場合、フローは、決定506から動作508へ「ロード時間を最小にする」を分岐させる。動作508では、実際のコンテンツ項目を格納するのではなく、1つまたは複数のコンテンツ項目への1つまたは複数の参照を格納する1つまたは複数のクリップオブジェクトが作成される。諸実施形態では、1つまたは複数の参照は、絶対参照、相対参照、トークン化された参照、または当技術分野に知られている任意の他のタイプの参照とすることができる。フローは動作510に進み、1つまたは複数の参照のコンテンツ項目がフレキシブルファイルの外部の、ローカルマシン、(例えば、クラウドに格納された)マシンのネットワーク全域に分散されたリモートマシン、または場所の組合せに格納される。ロード回数を増やすために、動作510において格納される1つまたは複数のコンテンツ項目は個別に格納され、それによって、コンテンツの個々の部分のリクエストおよび検索を可能にし、したがってロード時間を最小にすることができる。特定の実施形態では、例えば動作508および510は、ロード時間を最小にするために、図3に示す実施形態と同様の構成要素の大部分を含むことができるフレキシブルファイルを作成することができるが、他のタイプの構成要素もまた、フレキシブルファイルに含むことができる。動作508においてすべてのクリップオブジェクトが作成され、動作510においてすべてのコンテンツが格納されると、フローは動作518に進み、例えば、フレキシブルファイルをメモリに書き込むことによって、フレキシブルファイルが格納される。
[0048]諸実施形態では、フレキシブルファイルがローカルおよび/またはネットワークのコンピューティングリソースにかかる負荷を最小にするように最適化される場合、フローは、決定506から動作512へ「リクエストを最小にする」を分岐させる。動作512において、1つまたは複数のコンテンツ項目を格納した1つまたは複数のクリップオブジェクト。特定の実施形態では、例えば動作512は、コンテンツのリクエストおよび検索を最小にするために、図2に示す実施形態と同様の構成要素の大部分を含むことができるフレキシブルファイルを作成することができるが、他のタイプの構成要素もまた、フレキシブルファイルに含むことができる。諸実施形態では、動作512においてクリップオブジェクトに格納されるコンテンツは、個々に、またはコレクションとして、格納することができる。動作512においてすべてのクリップオブジェクトが作成されると、フローは動作518に進み、例えば、フレキシブルファイルをメモリに書き込むことによって、フレキシブルファイルが格納される。
[0049]諸実施形態では、より多くのバランス調整されたフレキシブルファイルが作成されることがあり、この場合、フローは、決定506から動作514へ「バランス調整する」を分岐する。動作512において、複数のクリップオブジェクトを作成することができる。複数のクリップオブジェクトは、コンテンツ項目を格納する、個々のコンテンツ項目への参照を格納する、および/またはコンテンツのコレクションへの参照を格納する、クリップオブジェクトを含むことができる。さらに、参照を格納しているクリップオブジェクトは、絶対参照、相対参照、トークン化された参照、または当技術分野に知られている任意の他のタイプの参照を格納することができる。フローは、動作516へ進み、動作514においてクリップオブジェクトに格納されなかったコンテンツが、個別に、コンテンツのコレクションとして、または両方で、格納される。個別のおよび集合的なコンテンツは、フレキシブルファイルの外部の、ローカルマシン、(例えば、クラウドに格納された)マシンのネットワーク全域に分散されたリモートマシン上に、または場所の組合せに格納されることが可能である。特定の実施形態では、例えば514および516は、図4に示す実施形態と同様の構成要素の大部分を含むことができるフレキシブルファイルを作成することができる。動作514においてすべてのクリップオブジェクトが作成され、動作516においてすべてのコンテンツが格納されると、フローは動作518に進み、例えば、フレキシブルファイルをメモリに書き込むことによって、フレキシブルファイルが格納される。
[0050]諸実施形態では、フレキシブルファイルが作成されると、変化するユーザーのシナリオおよび/またはハードウェアの状況に適応するように、ファイルを変更することができる。例えば、フレキシブルファイルにコンテンツ項目を格納したクリップは、その後に、コンテンツ項目への参照を格納するように変更することができる。すでにクリップに格納されたコンテンツ項目は、ローカルに、またはリモートに、ファイルから外部に格納されるように移動することができる。移動されたコンテンツ項目は、個別に、またはコンテンツのコレクションの一部として、外部に格納されることが可能である。同様に、コンテンツ項目またはコンテンツのコレクションへの1つまたは複数の参照を格納したクリップは、実際のコンテンツ項目またはコンテンツ項目のコレクションを格納するように変更することができる。したがって、フレキシブルファイルの構造は、ファイルに流動性を与え、ファイルが変化する状況に適応できるようにする。
[0051]図6は、本明細書に記載する様々な実施形態と共に使用することができるネットワークシステム600の実施形態である。ネットワークシステム600は、クライアントデバイス602を含むことができる。諸実施形態では、クライアントデバイスは、パーソナルコンピューター、ラップトップコンピューター、タブレットコンピューター、スマートフォン、または任意の他のタイプのコンピューティングデバイスとすることができる。クライアントデバイスは、ネットワーク608などのネットワークを介して、サーバーデバイス604およびサーバーデバイス606などの1つまたは複数のリモートデバイスと電気通信している可能性がある。諸実施形態では、サーバーデバイス604および606は、サーバーコンピューターまたは任意の他のタイプのコンピューティングデバイスとすることができる。1つの実施形態では、サーバーデバイス604および606は、サーバークラスタの一部であることがある、またはクラウドネットワークの一部であることがある。別の実施形態では、サーバーデバイス604および606は、分かれた、関連のないデバイスであることがある。ネットワーク608は、LAN、WAN、セルラネットワーク(cellular network)、インターネット、またはコンピューティングデバイス間の通信を容易にすることができる任意の他のタイプのネットワークとすることができる。
[0052]ユーザーが、クライアントデバイス602上でフレキシブルファイルを開いて、フレキシブルファイルによって集約されたコンテンツにアクセスすることができる。1つの実施形態では、フレキシブルファイルに集約されたコンテンツは、クライアントデバイス602にあることがある。例えば、集約されたコンテンツは、フレキシブルファイル自体に、またはクライアントコンピューター602上にあることが可能である。別の実施形態では、クライアントデバイス602上でアクセスされるフレキシブルファイルは、例えば、サーバーデバイス604および606上に、リモートにあるコンテンツへの1つまたは複数の参照を含むことができる。コンテンツがリモートにある場合、クライアントデバイスは、ネットワーク608を介して、コンテンツに対する1つまたは複数のリクエストをサーバーデバイス604および608に発行することができる。サーバーデバイス604および608は、ネットワーク608を介してクライアントデバイスにコンテンツを返すことができる。
[0053]図7を参照すると、本明細書に記載する様々な実施形態を実行するためのコンピューティング環境の実施形態が、コンピューターシステム700などのコンピューターシステムを含んでいる。記載する実施形態のあらゆる構成要素が、クライアントコンピューターシステム、サーバーコンピューターシステム、クライアントコンピューターシステムとサーバーコンピューターシステムの組合せ、ハンドヘルドデバイス、および本明細書に記載する他の考えられるコンピューティング環境もしくはシステムとして、あるいはこれらの上で、動作することができる。したがって、これらの環境すべてに適用可能な基本的なコンピューターシステムについて、以下に説明する。
[0054]最も基本的な構成では、コンピューターシステム700は、少なくとも1つの処理ユニットまたはプロセッサ704と、システムメモリ707とを含む。コンピューターシステム700の最も基本的な構成は、図7に破線702で示している。いくつかの実施形態では、記載したシステムの1つまたは複数の構成要素は、システムメモリ707にロードされ、システムメモリ706から処理ユニット704によって実行される。システムメモリ706は、コンピューターシステム700の正確な構成およびタイプに応じて、システムメモリ706は、揮発性オブジェクト(RAMなど)、不揮発性オブジェクト(ROM、フラッシュメモリ、その他など)、またはこの2つの何らかの組合せとすることができる。
[0055]また、コンピューターシステム700は、追加の特徴および機能を有することもある。例えば、コンピューターシステム700は、磁気または光のディスクまたはテープなどを含む、これらに限らないが、リムーバブルおよび/または非リムーバブル記憶装置など、追加の記憶媒体708を含む。いくつかの実施形態では、ソフトウェアまたは実行可能コードおよび記載したシステムに使用されるいかなるデータも、記憶媒体708に恒久的に格納される。記憶媒体708は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を保存する任意の方法または技術で実現された揮発性オブジェクトおよび不揮発性オブジェクトの、リムーバブルおよび非リムーバブル媒体を含む。諸実施形態では、記憶媒体708は、開示するフレキシブルファイルおよびフレキシブルファイル708を作成する方法を実行する命令を含む。
[0056]システムメモリ706および記憶媒体708は、コンピューター記憶媒体の例である。コンピューター記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途オブジェクトディスク(digital versatile object disk:「DVD」)もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、他の磁気記憶装置、または所望の情報を保存するために使用され、コンピューターシステム700およびプロセッサ704によってアクセスされる任意の他の媒体が含まれるが、これらに限定されない。このようないかなるコンピューター記憶媒体も、コンピューターシステム700の一部とすることができる。諸実施形態では、システムメモリ706および/または記憶媒体708は、フレキシブルファイルの実施形態、および本明細書に開示するフレキシブルファイルを作成する方法など、方法を行うおよび/または本明細書に開示する(1つまたは複数の)システムを形成するために使用されるデータを格納する。諸実施形態では、システムメモリ706は、フレキシブルファイル718およびフレキシブルファイルを生成するための命令716などの情報を格納する。
[0057]コンピューターシステム700は、装置が他の装置と通信できるようにする(1つまたは複数の)通信接続710を含むこともできる。諸実施形態では、(1つまたは複数の)通信接続710は、送信装置、中継装置、および受信装置の間でメッセージを送受信するために使用されることが可能である。(1つまたは複数の)通信接続710は、通信媒体の一例である。通信媒体は、搬送波または他の転送機構など、変調されたデータ信号を組み入れることができ、変調されたデータ信号に、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータを組み入れることができるいかなる情報配信媒体も含む。「変調されたデータ信号」という用語は、その特性の1つまたは複数が、データ信号中の情報またはメッセージを符号化するような方法で設定されたまたは変更された信号を意味する。一例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、RF、赤外線、およびその他の無線媒体などの無線媒体を含むが、これらに限定されない。
[0058]いくつかの実施形態では、コンピューターシステム700はまた、入力および出力接続712、ならびにグラフィカルユーザーインターフェイスなどのインターフェイスおよび周辺装置を含む。(1つまたは複数の)入力装置は、ユーザーインターフェイス選択装置とも呼ばれ、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などを含むが、これらに限定されない。本開示の実施形態と一致して、入力装置は、ユーザーの運動を検出することができる検出装置を含むことができる。例えば、入力装置は、複数のカメラと、複数のマイクを備えたMicrosoft Corporation製のKINECT(登録商標)モーションキャプチャデバイスを含むことができる。他の実施形態も可能である。(1つまたは複数の)出力装置は、ディスプレイとも呼ばれ、ブラウン管ディスプレイ、プラズマ画面ディスプレイ、液晶画面ディスプレイ、スピーカー、プリンターなどを含むが、これらに限定されない。個々にまたは組み合わせて、入力および出力接続712に接続されたこれらのデバイスは、本明細書に記載するように情報を表示するために使用される。これらのデバイスはすべて当技術分野でよく知られており、本明細書で詳細に説明する必要はない。
[0059]いくつかの実施形態では、本明細書に記載する構成要素は、コンピューター記憶媒体および他の有形媒体に格納する、および通信媒体で送信することができる、コンピューターシステム700によって実行可能なモジュールまたは命令を含む。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するための任意の方法または技術により実現される、揮発性オブジェクトおよび不揮発性オブジェクト、リムーバブルおよび非リムーバブル媒体を含む。上述のいずれかの組合せもまた、可読媒体の範囲内に含まれるべきである。いくつかの実施形態では、コンピューターシステム700は、コンピューターシステム700で使用するためにリモート記憶媒体にデータを格納するネットワークの一部である。
[0060]本明細書に記載する例示の実施形態は、ネットワーク接続されたコンピューティングシステム環境においてコンピューティングデバイスで論理演算として実行することができる。論理演算は、(i)コンピューティングデバイスで動作する一連のコンピューター実行命令、ステップ、またはプログラムモジュール、(ii)コンピューティングデバイス内で動作する相互接続した論理モジュールまたはハードウェアモジュールとして、実行することができる。
[0061]例えば、本開示の実施形態は、システムオンチップ(SOC)により実践することができ、図7に示す構成要素のそれぞれ、または多くは、単一の集積回路に統合することができる。このようなSOCデバイスは、1つまたは複数の処理ユニット、グラフィックユニット、通信ユニット、システム仮想化ユニット、およびアプリケーション機能を含むことができ、これらのすべてが、単一集積回路にとしてチップ基板に統合される。
[0062]さらに、論理演算は、本開示の範囲を逸脱することなく、ソフトウェア、ファームウェア、アナログ/デジタル回路、および/またはその任意の組合せにアルゴリズムとして実装することができる。ソフトウェア、ファームウェア、または同様の一連のコンピューター命令は、符号化され、コンピューター可読記憶媒体に格納されることが可能であり、コンピューター装置間で伝送するために搬送波信号内に符号化されることも可能である。
[0063]図8Aおよび図8Bは、例えば、携帯電話、スマートフォン、タブレットパーソナルコンピューター、ラップトップコンピューター、などのモバイルコンピューティングデバイス800を示し、開示の実施形態は、これらを用いて実践することができる。図8Aを参照すると、諸実施形態を実行するための例示のモバイルコンピューティングデバイス800が示されている。基本的な構成では、モバイルコンピューティングデバイス800は、入力要素と出力要素の両方を有するハンドヘルドコンピューターである。モバイルコンピューティングデバイス800は、一般的にディスプレイ805と、ユーザーがモバイルコンピューティングデバイス800に情報を入力できるようにする1つまたは複数の入力ボタン810とを含む。モバイルコンピューティングデバイス800のディスプレイ805は、入力装置(例えば、タッチスクリーンディスプレイ)としても機能することができる。含まれている場合は、オプションの側面入力要素815により、さらなるユーザー入力が可能となる。側面入力要素815は、ロータリースイッチ、ボタン、または任意の他のタイプの手動入力要素とすることができる。代替的実施形態では、モバイルコンピューティング装置800は、より多くの要素またはより少ない要素を組み込むことがある。例えば、ディスプレイ805は、いくつかの実施形態では、タッチスクリーンではないことがある。さらに別の代替的実施形態では、モバイルコンピューティングデバイス800は、セルラフォンなどの携帯電話システムである。モバイルコンピューティングデバイス800は、オプションのキーパッド835を含むこともできる。オプションのキーパッド835は、物理的キーパッド、またはタッチスクリーンディスプレイ上に生成される「ソフト」キーパッドとすることができる。様々な実施形態では、出力要素は、グラフィカルユーザーインターフェイス(GUI)を表示するためのディスプレイ805、視覚的インジケーター820(例えば、発光ダイオード)、および/または音声変換器825(例えば、スピーカー)を含む。いくつかの実施形態では、モバイルコンピューティングデバイス800は、ユーザーに触覚フィードバックを提供するための振動変換器を組み込む。さらに別の実施形態では、モバイルコンピューティングデバイス800は、外部装置へ信号を送信する、または外部装置から信号を受信するための、音声入力(例えば、マイクロホンジャック)、音声出力(例えば、ヘッドホンジャック)、およびビデオ出力(例えば、HDMI(登録商標)ポート)などの、入力ポートおよび/または出力ポートを組み込む。諸実施形態では、フレキシブルファイル形式で格納されたコンテンツは、ディスプレイ805上に表示されることが可能である。
[0064]本明細書ではモバイルコンピューティングデバイス800と組み合わせて説明しているが、開示の代替的実施形態は、デスクトップ環境、ラップトップまたはノートブックコンピューターシステム、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピューター、メインフレームコンピューターなど、任意の数のコンピューターシステムと組み合わせて使用することができる。開示の実施形態は、分散コンピューティング環境で実践されることも可能であり、分散コンピューティング環境ではタスクが通信ネットワークを介してリンクされたリモート処理装置によって行われ、プログラムが、ローカルとリモートの両方のメモリ記憶装置に配置される。要約すると、複数の環境センサー、ユーザーへの通知および複数の通知イベントタイプを提供するための複数の出力要素を有する任意のコンピューターシステムが、本発明の諸実施形態を組み込むことができる。
[0065]図8Bは、モバイルコンピューティングデバイスの1つの実施形態のアーキテクチャを示すブロック図である。すなわち、モバイルコンピューティングデバイス800は、システム(すなわち、アーキテクチャ)802を組み込んで、いくつかの実施形態を実行することができる。1つの実施形態では、システム802は、1つまたは複数のアプリケーション(例えば、ブラウザ、電子メール、予定表、連絡先管理、メッセージングクライアント、ゲーム、およびメディアクライアント/プレイヤー)を動作させることができる「スマートフォン」として実行される。いくつかの実施形態では、システム802は、統合された携帯情報端末(PDA)および無線電話など、コンピューティングデバイスとして統合される。
[0066]1つまたは複数のアプリケーションプログラム866は、メモリ862にロードされ、オペレーティングシステム864上で、またはオペレーティングシステム864に関連して動作することができる。アプリケーションプログラムの例は、電話ダイヤラプログラム、電子メールプログラム、個人情報管理(PIM)プログラム、文書処理プログラム、スプレッドシートプログラム、インターネットブラウザプログラム、メッセージングプログラム、作図アプリケーションなどを含む。システム802はまた、メモリ862内に不揮発性記憶領域868を含む。不揮発性記憶領域868は、システム802が電源を切られた場合に失われるべきではない固定情報を格納するために使用されることが可能である。アプリケーションプログラム866は、電子メールアプリケーションによって使用される電子メールまたは他のメッセージなど、不揮発性記憶領域868中の情報を使用し、格納することができる。同期アプリケーション(図示せず)もまた、システム802に常駐し、ホストコンピューターに常駐する対応する同期アプリケーションと対話して、不揮発性記憶領域868に格納された情報を、ホストコンピューターに格納された対応する情報と同期しておくようにプログラムされる。理解されるように、本明細書に開示するフレキシブルファイル形式、フレキシブルファイルを作成する方法、および未知のファイルコンテンツを提示する方法を含む、モバイルコンピューティングデバイス800上で、他のアプリケーションがメモリ862にロードされ、実行されることがある。
[0067]システム802は、1つまたは複数のバッテリーとして実装可能である電源870を有する。電源870は、バッテリーを補うまたは再充電するACアダプタまたは充電ドッキングクレードル(powered docking cradle)などの外部電源をさらに含むことができる。
[0068]システム802は、無線周波数通信を送受信する機能を行う無線機872を含むこともできる。無線機872は、通信キャリアまたはサービスプロバイダーを介して、システム802と「外界」との間の無線接続を容易にする。無線機872への伝送および無線機872からの伝送は、オペレーティングシステム864の制御下で行われる。言い換えれば、無線機872によって受信される通信は、オペレーティングシステム864を介してアプリケーションプログラム866に広めることができ、その逆も同様である。無線機872は、システム802が例えばネットワークを通じて他のコンピューティングデバイスと通信できるようにする。無線機872は、通信媒体の一例である。通信媒体は、一般的に、搬送波または他のトランスポート機構などの変調されたデータ信号中の、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータによって具体化されることが可能であり、いかなる情報配信媒体も含む。「変調されたデータ信号」という用語は、信号の中の情報を符号化するような方法でその特性の1つまたは複数が設定されたまたは変更された信号を意味する。一例として、限定ではないが、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、RF、赤外線、およびその他の無線媒体などの無線媒体を含む。本明細書で使用するコンピューター可読媒体という用語は、記憶媒体と通信媒体の両方を含む。
[0069]システム802のこの実施形態は、視覚的通知を提供するために使用することができる視覚的インジケーター820、および/または音声変換器825を介して可聴音の通知を生産する音声インターフェイス874を使用して、通知を提供する。例示的実施形態では、視覚的インジケーター820は発光ダイオード(LED)であり、音声変換器825はスピーカーである。これらのデバイスは、アクティブにされるとき、たとえプロセッサ860および他の構成要素が、バッテリー電力を保存するためにシャットダウンしたとしても、通知機構によって指示された期間、オン状態のままであるように、電源870に直接結合されることが可能である。LEDは、ユーザーがアクションを起こすまで無期限に点灯したままであって、デバイスの電源が入っている状態を示すようにプログラムされることが可能である。音声インターフェイス874は、可聴信号をユーザーに提供する、および可聴信号をユーザーから受信するために、使用される。例えば、音声変換器825に結合されることに加えて、音声インターフェイス874は、例えば電話の会話を容易にするために、可聴入力を受信するようにマイクロホンに結合されることも可能である。本発明の実施形態によれば、マイクロホンは、以下に説明するように、通知の制御を容易にするために音声センサーとして機能することもできる。システム802は、静止画像、ビデオストリームなどを記録するためにオンボードカメラ830の操作を可能にするビデオインターフェイス876をさらに含むことができる。
[0070]システム802を実装するモバイルコンピューティングデバイス800は、さらなる特徴または機能を有することができる。例えばモバイルコンピューティングデバイス800は、磁気ディスク、光ディスク、またはテープなど、追加のデータ記憶装置(リムーバブルおよび/または非リムーバブル)を含むこともできる。このような追加の記憶装置は、図8Bに不揮発性記憶領域868で示す。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を保存する任意の方法または技術で実現された、揮発性および不揮発性の、リムーバブルおよび非リムーバブル媒体を含むことができる。
[0071]モバイルコンピューティングデバイス800によって生成され、または取り込まれ、システム802を介して格納されるデータ/情報は、上述のように、モバイルコンピューティングデバイス800上にローカルに格納されることが可能である、またはデータは、モバイルコンピューティングデバイス800と、モバイルコンピューティングデバイス800と関連する別個のコンピューティングデバイス、例えばインターネットなどの分散コンピューティングネットワークのサーバーコンピューターとの間で、無線機872を介して、もしくは有線接続を介して、デバイスによってアクセスされることが可能である任意の数の記憶媒体に格納されることが可能である。理解されるように、このようなデータ/情報は、モバイルコンピューティングデバイス800を介して、無線機872を介して、または分散コンピューティングネットワークを介して、アクセスされることが可能である。同様に、このようなデータ/情報は、電子メールおよび協調データ/情報共有システム(collaborative data/information sharing system)などを含む、よく知られているデータ/情報転送および格納手段により格納および使用するためにコンピューティングデバイス間で容易に転送されることが可能である。
[0072]図9は、上述のように本明細書に開示するフレキシブルファイル100および方法を1つまたは複数のクライアントデバイスに提供するためのシステムのアーキテクチャの1つの実施形態を示す。フレキシブルファイル102と関連して開発される、対話される、または編集されるコンテンツは、様々な通信チャネルで、または他のストレージタイプで格納されることが可能である。例えば、様々な文書は、ディレクトリサービス922、ウェブポータル924、メールボックスサービス926、インスタントメッセージングストア928、またはソーシャルネットワーキングサイト930を使用して格納されることが可能である。フレキシブルファイル102は、本明細書に記載するように、データの利用を可能にするためにこれらのタイプのシステムまたは同様のもののいずれかを使用することができる。サーバー920は、フレキシブルファイル102および/または本明細書に開示するフレキシブルファイルを作成もしくは変更するための方法を、クライアントに提供することができる。1つの例として、サーバー920は、ウェブを通じてフレキシブルファイル102および/または本明細書に開示するフレキシブルファイルを作成するもしくは変更するための方法を提供するウェブサーバーとすることができる。サーバー920は、ウェブを通じてフレキシブルファイル102および/または本明細書に開示するフレキシブルファイルを作成するもしくは変更するための方法をネットワーク915を介してクライアントに提供することができる。例として、クライアントコンピューティングデバイス918は、コンピューティングデバイス700として実装され、パーソナルコンピューター918a、タブレットコンピューティングデバイス918b、および/またはモバイルコンピューティングデバイス918c(例えば、スマートフォン)に具体化されることが可能である。クライアントコンピューティング918のこれらの実施形態のいずれも、ストア916からコンテンツを取得することができる。様々な実施形態では、本発明を作り出すコンピューティングデバイス間で通信に利用されるネットワークのタイプは、インターネット、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、および仮想プライベートネットワーク(VPN)を含むが、これらに限定されない。本アプリケーションでは、ネットワークは、企業ネットワーク、およびクライアントコンピューティングデバイスがそれを通じて企業ネットワークにアクセスするネットワーク(すなわち、クライアントネットワーク)を含む。1つの実施形態では、クライアントネットワークは、企業ネットワークの一部である。別の実施形態では、クライアントネットワークは、ゲートウェイ、リモートアクセスプロトコル、またはパブリックもしくはプライベートインターネットアクセスなど、外部から利用できるエントリポイントを介して企業ネットワークにアクセスする別個のネットワークである。
[0073]この開示は、考えられる実施形態の一部のみを示した添付の図面を参照していくつかの実施形態を説明した。しかしながら、他の態様が多くの様々な形で具体化されることが可能であり、本明細書に示した実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、この開示が徹底的かつ完全であって、考えられる実施形態の範囲を当業者に十分に伝えられるように提供された。
[0074]諸実施形態について、構造的特徴、方法的行為、およびそのような行為を含んでいるコンピューター可読媒体に特定の言い回しで説明したが、添付の特許請求の範囲で定めるように、考えられる実施形態は、必ずしも上記の特定の構造、行為、または媒体に限定されないことを理解されたい。本開示の範囲および趣旨の内である他の実施形態または改善を、当業者は理解するであろう。したがって、特定の構造、行為、または媒体は、単に例示的実施形態として開示される。開示は、添付の特許請求の範囲によって定められる。