(57)【要約】【課題】  メインコンピュータシステムが電源停止している時点を含めて、アプリケーションプログラムが、表示のためにデータを（メインコンピュータシステムと関連付けられている）補助ディスプレイ装置に提供するためのシステムおよび方法を提供すること。【解決手段】  キャッシュにより、構造化された探索情報に関連付けられているユーザデータが維持され、これにより、この構造によるデータ内部での探索ができるようになる。オンライン時に、メインコンピュータシステムにより、データキャッシュが探索情報と組み合わせたプログラムデータから準備され、このキャッシュがファームウェア内の補助ストレージなどのオフライン媒体へと転送される。キャッシュは、探索コマンドにより木の中のデータに従って出力されるように、木構造として構成することができる。時刻ベースのイベントなどの他のイベントにより、補助装置出力を変更することが可能である。【選択図】  図５
2006024188.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムを有するコンピューティング環境において、
補助的情報を提示するように構成された補助装置であって、前記補助的情報の少なくとも一部を前記コンピュータシステムが提供する補助装置と、
前記コンピュータシステム上で動作する補助装置サービスであって、前記補助装置サービスは情報の前記補助装置上での提示に関するデータをコンピュータプログラムから受け取るように構成され、さらに、前記データのキャッシュ内での構造化をその後の前記データの探索のために行うように構成される補助装置サービスを含み、
前記補助装置は、探索コマンドを受け取り、前記キャッシュにアクセスして、どのような出力データを前記補助装置上に提示すべきかを、前記探索コマンドに基づいて判断することを特徴とするシステム。
【請求項２】
前記キャッシュは、アプリケーションプログラムデータを含み、前記補助装置は、前記アプリケーションプログラムデータの少なくとも一部の提示を、前記コンピュータシステムが電源停止状態にあるときに行うことを特徴とする請求項１に記載のシステム。
【請求項３】
前記キャッシュは、前記コンピュータシステムの主記憶内のアプリケーションプログラムデータへの参照を含み、前記補助装置は、前記アプリケーションプログラムデータの少なくとも一部の提示を、前記アプリケーションプログラムデータを前記参照によって得ることによって、前記コンピュータシステムが立ち上げられた状態であるときに行うことを特徴とする請求項１に記載のシステム。
【請求項４】
前記キャッシュは、シェルプログラムによってアクセスされることを特徴とする請求項１に記載のシステム。
【請求項５】
前記キャッシュは、前記プログラムデータを木として構造化する情報を含むことを特徴とする請求項１に記載のシステム。
【請求項６】
前記キャッシュは、シェルプログラムによってアクセスされ、前記シェルプログラムは、前記木のルートに対応するホームページを提示することを特徴とする請求項５に記載のシステム。
【請求項７】
前記補助装置サービスは、キャッシュ動作のために受け取るデータの量を減らすべきかどうかを、前記キャッシュ内の利用可能なストレージスペースに基づいて判断することを特徴とする請求項１に記載のシステム。
【請求項８】
前記補助装置は、前記コンピュータシステムのハウジングへと物理的に接続されていることを特徴とする請求項１に記載のシステム。
【請求項９】
前記補助装置は、リモートに前記コンピュータシステムへと結合されることを特徴とする請求項１に記載のシステム。
【請求項１０】
前記キャッシュは、前記コンピュータシステムから物理的に別個であるストレージ媒体上に格納され、前記補助装置の前記コンピュータシステムへのリモートな結合は、前記キャッシュへのアクセスによって行われることを特徴とする請求項９に記載のシステム。
【請求項１１】
前記補助装置は、時刻ベースのイベントをさらに受け取り、これに応答して補助ストレージにアクセスして、どのような出力データを前記補助装置上に提示すべきかの判断を、前記時刻ベースのイベントに基づいて行うことを特徴とする請求項１に記載のシステム。
【請求項１２】
提示する前記データは、前記キャッシュ内に維持されることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記キャッシュは、少なくとも１つのビットマップを、前記補助装置上に提示するために含むことを特徴とする請求項１に記載のシステム。
【請求項１４】
前記キャッシュは、解釈されたとき前記補助装置上に描画するために画像を作成するデータを含むことを特徴とする請求項１に記載のシステム。
【請求項１５】
コンピューティング環境において、
コンピュータプログラムデータを受け取ること、
前記コンピュータプログラムデータと、どのように前記コンピュータプログラムデータが他のコンピュータプログラムデータと関係するかを決定する探索情報とを、補助装置による探索のために組み合わせること、
キャッシュ内で、他のコンピュータプログラムデータおよび前記探索情報とともに、前記コンピュータプログラムデータのキャッシュを行うこと、および
前記補助装置に前記キャッシュへのアクセスを提供すること
を含むことを特徴とする方法。
【請求項１６】
探索コマンドを前記補助装置で受け取ること、キャッシュにアクセスしてどのような出力データを補助装置上に提示するかを前記探索コマンドに基づいて提示すること、および前記データを前記補助装置上に提示することをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記補助装置に前記キャッシュへのアクセスを提供することは、前記キャッシュをメインコンピュータシステム側の補助ストレージへと、前記メインコンピュータシステムを電源停止させる前に転送することを含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記補助装置に前記キャッシュへのアクセスを提供することは、メインコンピュータシステム側のキャッシュを、前記メインコンピュータシステムとは物理的に別個のストレージ媒体へと転送することを含むことを特徴とする請求項１５に記載の方法。
【請求項１９】
前記キャッシュは、メインコンピュータシステム上で動作するプログラムのプログラムデータを含み、前記データを前記補助装置上に、前記メインコンピュータシステムが電源停止状態にあるときに提示することをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項２０】
前記キャッシュに、補助ファームウェア内で動作するシェルプログラムによってアクセスすることをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項２１】
前記コンピュータプログラムデータを探索情報と組み合わせることは、前記コンピュータプログラムデータを木構造で表現することを含むことを特徴とする請求項１５に記載の方法。
【請求項２２】
ホームページを補助ファームウェア内で動作するシェルプログラムから出力することをさらに含み、前記ホームページは、前記キャッシュ内の前記コンピュータプログラムデータの少なくとも一部への探索パスを提供することを特徴とする請求項２１に記載の方法。
【請求項２３】
受け取るプログラムデータの量を、前記キャッシュ内の利用可能なストレージスペースに基づいて減らすことをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項２４】
イベントを前記補助装置で受け取ること、前記キャッシュにアクセスして、どのような出力データを前記補助装置上に提示すべきかを前記イベントに基づいて判断すること、および前記データを前記補助装置上に提示することをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項２５】
前記イベントは、時刻ベースのイベントに対応することを特徴とする請求項２４に記載の方法。
【請求項２６】
前記イベントは、前記キャッシュへのアクセスを要求する特定のアクションに対応することを判断することをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２７】
前記イベントは、ユーザ入力に対応することを特徴とする請求項２４に記載の方法。
【請求項２８】
実行されたとき、請求項１５に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項２９】
コンピューティング環境において、
補助装置でイベントを受け取ること、
キャッシュに前記補助装置によってアクセスして、どのような出力データを前記補助装置上に提示すべきかを、前記探索コマンドに基づいて判断すること、および
前記データを前記補助装置上に提示すること
を含むことを特徴とする方法。
【請求項３０】
前記補助装置で前記イベントを受け取ることは、探索コマンドに対応するユーザ入力を受け取ることを含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
前記補助装置で前記イベントを受け取ることは、時刻ベースのイベントを受け取ることを含むことを特徴とする請求項２９に記載の方法。
【請求項３２】
キャッシュにアクセスすることは、補助ストレージを読み取ることを含むことを特徴とする請求項２９に記載の方法。
【請求項３３】
キャッシュにアクセスすることは、データを前記補助装置によって、前記キャッシュを含むストレージ媒体から読み取ることを含み、前記ストレージ媒体は、前記データを前記ストレージ媒体から読み取る時点で前記補助装置に結合されていないコンピュータシステムが書き込むことを特徴とする請求項２９に記載の方法。
【請求項３４】
実行したとき、請求項１５に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、コンピュータシステムに関し、より詳細には、コンピューティング装置用の情報の表示のための改善されたシステムおよび方法に関する。
【背景技術】
【０００２】
ラップトップおよび他のモバイル装置により、ユーザは様々な場所で働くことができるようになり、ユーザには非常に好都合である。しかし、モバイル装置は、しばしば、場所間を移動するときに電源停止され（ｐｏｗｅｒｅｄ  ｄｏｗｎ）、このことは、移動中にその蓋が通常閉じられるラップトップでは特に当てはまる。その結果、装置上の関係のあるデータにアクセスするには、ラップトップのふたを開け、立ち上がる（ｐｏｗｅｒ−ｕｐ）のを待ち、所望の情報まで探索する（ｎａｖｉｇａｔｅ）ことが必要になる。これは、時間もかかり、望ましいというにはほど遠いユーザ体験であり、所望のデータが会議の部屋番号のような簡単なものであるときには、特にそうである。
【０００３】
特許文献１および特許文献２は、概して、何らかのコンピューティング機能を提供する補助的処理および補助的機構、特に、ディスプレイ関連の機構を有するコンピュータシステムの概念を対象としている。たとえば、ラップトップコンピュータの蓋または側面上の小さな液晶ディスプレイ（ＬＣＤ）は、会議の場所および時間などの有用な情報をその所有者に提供することができる。
【０００４】
【特許文献１】米国特許出願第１０／４２９，９３０号明細書
【特許文献２】米国特許出願第１０／４２９，９３２号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、そのような補助ディスプレイは、これまで、専用の補助ディスプレイプログラムを、表示できる情報に関してカスタマイズする、狭い、限られた動作に制限されている。たとえば、会議情報が望ましい場合、補助ディスプレイプログラムが、現在の会議に関係のあるデータとともにプログラムされた特定のタイプのデータをも表示するようにプログラムされていたならば、ユーザは、その情報を見るだけであるはずである。
【０００６】
コンピュータシステムのメインオペレーティングシステムのもとで動作するアプリケーションプログラムが、そのコンピュータシステムの補助ディスプレイ上での表示および探索に適当なデータの提供を、コンピュータシステムの電源停止時など、メインディスプレイが容易にアクセス可能でないときを含めて行う手法が必要とされている。
【課題を解決するための手段】
【０００７】
簡潔には、本発明により、重要なユーザアプリケーションプログラムデータのキャッシュが提供され、これにより、ユーザは情報の中の探索を、メインコンピュータシステムの電源停止の（オフラインである）間もアクティブな補助ディスプレイおよび関連するアクチュエータによって行えるようになる。キャッシュには、ユーザデータが、構造化された探索情報に関連付けて維持され、これにより、ユーザはデータ内部をこの構造によって探索できるようになる。構造化されたキャッシュにより、ユーザをキャッシュ可能なタイプのデータに制限しない柔軟な機構が提供される。
【０００８】
オフライン動作を達成するために、オンライン時に、メインＣＰＵ、オペレーティングシステム、およびアプリケーションプログラムにより、データキャッシュおよび他の情報が準備され、次いでこれが、オフラインでの使用のために、ファームウェア内の補助ストレージへと転送される。この転送は、電源停止状態（ｐｏｗｅｒｅｄ−ｄｏｗｎ  ｓｔａｔｅ）への移行時のキャッシュの完全な転送であってもよく、または、それまでにキャッシュしたデータの同期であってもよい。補助装置は、コンピュータシステムに取り付けることもできるが、または、キャッシュを他の装置によるリモートアクセスのために利用可能にすることもでき、その場合、キャッシュは、他の装置をメインコンピュータのデータに結合し、本質的に他の装置を補助ディスプレイにするエンティティとなる。
【０００９】
レイヤ状のアーキテクチャが提供され、これにより、アプリケーションプログラムなど（たとえば、オペレーティングシステムのコンポーネント）は、補助ディスプレイのためのデータを補助装置サービスレイヤに登録する。数多くの動作の中でも特に、サービスレイヤは、データをキャッシュに構造化するように構成される。この構造は、ユーザの探索に対応させて、ユーザから受け取った探索コマンドにより、ユーザが構造の中を移動するようにすることができる。たとえば、データを提供するアプリケーションプログラムのそれぞれを、木（ツリー）構造の枝で代表させ、それぞれの枝の下の子ノードは、その先の何らかの探索パスおよび／またはアプリケーションのデータの何らかのサブセットを提供するようにできる。キャッシュは、オフライン探索に加えて、オンライン探索のために使用することもできるが、効率のためおよび最新の状態に保つために、オンライン時に、キャッシュ内のデータの一部を、実際のデータではなく、メインシステム内のデータへの参照ポインタとすることができることに注意されたい。さらに、このオンラインキャッシュは、使用時に、必ずしもオフラインキャッシュと同じデータを提供する必要はないことに注意されたい。たとえば、ユーザは、オンライン時とオフライン時とで異なるアプリケーションプログラムを望むこともあろうし、アプリケーションプログラムのデータの一部を、オフライン時に、ファームウェア内のストレージ場所の制限が理由で枝刈り（ｐｒｕｎｅ）しなければならないこともあろう。
【００１０】
一実施形態では、キャッシュは１本の木構造として構成され、この木を探索するのには上および下の探索コマンドだけが必要となっており、これと並んで選択を行うための選択機構（たとえば、選択ボタンまたはボタンの組み合わせ／アクチュエーションパタン）がある。ファームウェア内にはホームページ（ｈｏｍｅ  ｐａｇｅ）が維持され、最低限でもアプリケーションプログラムの、またはプログラムのデータまで到着するやり方が提供される。たとえば、キャッシュが木構造である場合、このホームページは、その木の中のルートノードであり、このルート／ホームページのノードから直接に枝分かれするノードの表すアプリケーションプログラムの（スクロール可能な）リストを提供することができる。
【００１１】
ユーザが木を探索するのに従って、補助装置の出力を変化させることが、新しいキャッシュ済みビットマップをディスプレイへと送り、またはキャッシュ済みのマークアップデータのインタープリタ実行によって新しい表示を描画（ｒｅｎｄｅｒ）させることによって可能である。
【００１２】
また、ファームウェアは、プログラムのデータに加えて、時刻に基づくイベントのデータ、または、電源状態に基づくイベントなど、他のイベントに基づくデータを含むことができる。たとえば、時刻に基づくイベントを使うと、ファームウェアは、あるイベントを発生させる時刻でトリガされた割り込みを設定することができる。ファームウェアは、そのようなイベントを受け取ると、そのイベントが何を意味するのかを判断し、そのイベントに応答する補助装置の状態を変更させて、たとえば、キャッシュ済みの会議の備忘メモ（ｒｅｍｉｎｄｅｒ）の表示、インジケータの点灯、または他の何らかのプログラム済みの動作の実行を行わせることができる。
【００１３】
他の諸利点は、以下の詳細な説明を、図面とともに解釈するとき明らかとなろう。
【発明を実施するための最良の形態】
【００１４】
例示的な動作環境
図１は、本発明を組み込むことができるパーソナルコンピュータシステムの形のコンピューティング装置１２０を示す構成図である。図１に示すパーソナルコンピュータシステム１２０は、例示を目的とするのに過ぎないこと、および、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ヘッドレスサーバなどの他のコンピューティング装置の構成でも実施できることが、当業者には理解されよう。また、本発明は、タスクを通信ネットワークを通してリンクしたリモート処理装置が実行する分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールはローカルとリモートのメモリストレージ装置のどちらにも配置することができる。
【００１５】
パーソナルコンピュータシステム１２０は、処理ユニット１２１、システムメモリ１２２、および、システムメモリを含む様々なシステムコンポーネントを処理ユニット１２１へと結合するシステムバス１２３を含む。システムバス１２３は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含めて、いくつかのタイプのバス構造のうちのどのようなものとすることもできる。システムメモリは、ＲＯＭ（読み取り専用メモリ）１２４およびＲＡＭ（ランダムアクセスメモリ）１２５を含む。起動時（ｓｔａｒｔ−ｕｐ）などにパーソナルコンピュータ１２０内部の要素間で情報を転送するのに役立つ基本ルーチンを含む、ＢＩＯＳ（基本入出力システム）１２６は、ＲＯＭ１２４に格納されている。パーソナルコンピュータ１２０は、さらに、ハードディスク（図示せず）の読み取りまたは書き込みを行うハードディスクドライブ１２７、リムーバブルな磁気ディスク１２９の読み取りまたは書き込みを行う磁気ディスクドライブ１２８、および、ＣＤ−ＲＯＭや他の光学メディアなどのリムーバブルな光ディスク１３１の読み取りまたは書き込みを行う光ディスクドライブ１３０を含むことができる。ハードディスクドライブ１２７、磁気ディスクドライブ１２８、および光ディスクドライブ１３０のシステムバス１２３への接続は、それぞれ、ハードディスクドライブインターフェース１３２、磁気ディスクドライブインターフェース１３３、および光ディスクドライブインターフェース１３４によって行われる。ドライブおよびその関連するコンピュータストレージ媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、およびパーソナルコンピュータ１２０のための他のデータの不揮発性ストレージが提供される。本明細書で説明する例示的なコンピュータシステムでは、ハードディスク、リムーバブル磁気ディスク１２９、およびリムーバブル光ディスク１３１を使用しているが、磁気カセット、フラッシュメモリカード、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｋ、デジタルビデオディスク）、ベルヌイカートリッジ（Ｂｅｒｎｏｕｌｌｉ  ｃａｒｔｒｉｄｇｅｓ）、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（読み取り専用メモリ）など、コンピュータのアクセス可能なデータを格納できる他のタイプのコンピュータ可読媒体も、この例示的なコンピュータシステムでは使用することができる。
【００１６】
（Ｗｉｎｄｏｗｓ（登録商標）ＸＰなどの）オペレーティングシステム１３５、（Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｏｕｔｌｏｏｋなどの）１つまたは複数のアプリケーションプログラム１３６、他のプログラムモジュール１３７，およびプログラムデータ１３８を含めて、いくつものプログラムモジュールを、ハードディスク、磁気ディスク１２９、光ディスク１３１、ＲＯＭ１２４またはＲＡＭ１２５上に格納することができる。ユーザは、コマンドおよび情報のパーソナルコンピュータ１２０への入力を、キーボード１４０やポインティングデバイス１４２などの入力装置を通して行うことができる。他の入力装置（図示せず）としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがあり得る。こうしたおよび他の入力装置の処理ユニット１２１への接続は、しばしば、システムバスに結合されるシリアルポートインターフェース１４６を通して行われるが、パラレルポート、ゲームポート、またはＵＳＢ（ユニバーサルシリアルバス）など、他のインターフェースによって行うことも可能である。また、モニタ１４７または他のタイプのディスプレイ装置のシステムバス１２３への接続も、ビデオアダプタ１４８などのインターフェースを介して行われる。パーソナルコンピュータは、通常、モニタ１４７のほかに、プリンタやスピーカなど他の周辺出力装置（図示せず）を含む。補助ディスプレイ２００は、追加の出力装置であり、たとえば、システムバス１２３への接続を、補助ディスプレイインターフェース１５５を介して行うことができる。また、補助ディスプレイ２００は、コンピューティング装置１２０への接続を、シリアルインターフェースを通して、あるいは、パラレルポート、ゲームポート、赤外線接続もしくは無線接続、ＵＳＢ、または他の周辺装置接続など、他のインターフェースによって行うこともできる。図１の入力装置２０１により、補助ディスプレイ２００に対してインターフェースおよび／または制御を行う１つまたは複数のアクチュエータが提供され、たとえば、入力装置２０１のシステムバス１２３への接続は、シリアルインターフェースとすることができる入力装置インターフェース１５６を介して、あるいは、パラレルポート、ゲームポート、赤外線接続もしくは無線接続、ＵＳＢ、または他の周辺装置接続など、他のインターフェースによって行うことができる。
【００１７】
パーソナルコンピュータ１２０は、リモートコンピュータ１４９など、１つまたは複数のリモートコンピュータへの論理接続を用いてネットワーク化環境で動作することができる。図１にはメモリストレージ装置１５０しか示されていないが、リモートコンピュータ１４９は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置（ｐｅｅｒ  ｄｅｖｉｃｅ）または他の一般的なネットワークノードとすることができ、通常、パーソナルコンピュータ１２０に関して上で説明した要素の多くまたはすべてを含む。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１５１およびワイドエリアネットワーク（ＷＡＮ）１５２を含む。そのようなネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットでは普通のものである。
【００１８】
パーソナルコンピュータ１２０は、ＬＡＮ環境で使用するときには、ＬＡＮ１５１にネットワークインターフェースまたはアダプタ１５３を通して接続する。パーソナルコンピュータ１２０は、ＷＡＮ環境で使用するときには、通常、モデム１５４、または、インターネットなどのＷＡＮ１５２を介して通信を確立する他の手段を含む。モデム１５４は、内蔵でも外付けでもよいが、システムバス１２３にシリアルポートインターフェース１４６を介して接続される。ネットワーク化環境では、パーソナルコンピュータ１２０に関して示したプログラムモジュールまたはその部分は、リモートのメモリストレージ装置に格納することができる。ここに示すネットワーク接続は例示的であり、コンピュータ間に通信リンクを確立する他の手段を使用してもよいことが理解されよう。
【００１９】
コンピュータシステムは、補助ディスプレイが本発明に従って動作するために、完全に動作している（ｆｕｌｌｙ  ｏｐｅｒａｔｉｏｎａｌ）必要はないことに注意されたい。実際、図６に関して下で説明するように、補助ディスプレイの動作は、コンピュータの電源停止時でも、少なくともデフォルトの範囲で、あるいは、コンピュータシステムがスリープ状態または休止状態モード（ｈｉｂｅｒｎａｔｅ  ｍｏｄｅ）にあるとき、および／またはユーザがまだログオンしていない、もしくは他の方法でセキュリティ機構によってシステムからロックアウトされているときなどに、ユーザの構成する範囲で、依然として可能である。たとえば、ユーザは、コンピュータシステムが、停止しているときパーソナルコンピュータに組み込まれている電話の送受話器（ｈａｎｄｓｅｔ）またはスピーカフォン（ｓｐｅａｋｅｒｐｈｏｎｅ）を従来の器具として働かせようと思い、補助ディスプレイを発信者番号装置（ｃａｌｌｅｒ−ＩＤ  ｄｅｖｉｃｅ）として使用することもあろう。また、この装置では、データの保存を、受信された呼を記録するためなどコンピュータシステムがまた立ち上がったとき、後でこのコンピュータシステムに送信するために行うことが、コンピュータシステムが完全に立ち上がっていなかったときを含めて、可能である。
【００２０】
補助ディスプレイは、メインディスプレイを補完することができ、また、メインディスプレイがシャットダウンまたは他の理由で動作していない（たとえば、接続されていない）とき、ユーザに何らかの情報を与えるために、代理のディスプレイの役を果たすことができる。たとえば、メインディスプレイをどのように立ち上げるかなどの情報は、会議の部屋番号および／または道順がそうであるのと同様に、モバイルコンピュータに接続された、メインディスプレイがオフおよび／または簡単に見ることができない（たとえば、ラップトップのふたが閉まっている）ときにユーザに見える補助ディスプレイ装置上では、有用なことがあるはずである。
【００２１】
絶えず見ることのできる画面の付いたタブレットＰＣ上でさえ、メインディスプレイは電力を節約するためにシャットダウンされることがあり、その際、補助ディスプレイはかなりの利益を提供できることに注意されたい。ユーザは、表示の範囲の制限を、たとえば、ユーザがログインしていないときには、特定の機密でないまたは非常に細かく管理した情報だけを表示できるなど、コンピュータシステムの状態に基づいて行うことができる。
【００２２】
こうした電源停止モードでの通信の許可および管理を行うために、不揮発性メモリに格納されたファームウェアを存在させ、これを２次プロセッサがロードし動作させると、補助ディスプレイが、使用すべき他の補助コンポーネントとともに、何らかの電源が利用可能である限り、許可されるようにすることができる。本明細書で使用する「ファームウェア」という用語は、一般に、補助メモリ、補助メモリ中のコード、および／またはその上で動作する２次プロセッサを表すものとみなすことができる。
【００２３】
図２Ａ〜２Ｅに、補助ディスプレイ画面２００ａ〜２００ｅを設置するための、コンピューティング装置上のまたはそれに関連付けられた例示的な場所をそれぞれ示している。図２Ａ〜２Ｂに示すように、補助ディスプレイ画面２００ａを、スタンドアロン（陸線またはモバイル）の電話２０２の前面、背面、または他の面上に（物理的な結合は、Ｂｌｕｅｔｏｏｔｈ技術などその他の方法によってリンクされている場合、行う必要はない）、および／または、別の補助ディスプレイ画面２００ｂを、モバイルコンピュータ２０４またはタブレットコンピューティング装置（図示せず）の縁またはふた上に、設置することができる。補助ディスプレイ画面２００ｃのための別の場所は（図２Ｃ）、モニタ２０６またはキーボード（図示せず）上など、コンピュータまたはコンピュータに接続された周辺装置上に取り付けた電話上とすることができる。図２Ｄおよび２Ｅにさらに示すのは、補助ディスプレイ画面２００ｄおよび２００ｅの、コンピュータに接続されたスタンドアロンのコンソール２０８、または（マザーボード用のハウジングなど）他の何らかのハウジング２１０の前面パネル上への設置である。補助ディスプレイ画面の設置は、コンピュータへの無線または他の接続を有する腕時計上、リモートの制御装置上、リモートの壁に取り付けたユニット上など、表示機能を有するどのようなコンピューティング装置または他の装置のどのような面上へも、行えることが当業者には理解されよう。
【００２４】
図２Ａ〜２Ｅから明らかなはずであるが、補助ディスプレイは、１つまたは複数のＬＥＤ、２行型英数字ディスプレイ、白黒ディスプレイ、カラーディスプレイなど、どのような数の知られているタイプのディスプレイの形をも取ることができる。また、本発明では、補助ディスプレイ２００として他のコンピューティングまたは通信装置のディスプレイを使用できることが、当業者には理解されよう。こうした他のコンピューティングまたは通信装置としては、汎用コンピュータ、携帯電話、ページャや携帯情報端末（ＰＤＡ）などのハンドヘルド装置がある。さらに、本発明では補助ディスプレイ２００として、コンピューティング装置１２０の画面上表示の領域内部に実装した仮想補助ディスプレイ（たとえば、スクリーンセーバまたはＧＵＩ（グラフィカルユーザインターフェース）のコンポーネント）を、ユーザがログインする前を含めて、使用することができる。補助ディスプレイ２００は、上に説明した形式のどのようなものの組み合わせも含み、また、物理的または論理的に、１つまたは複数のＬＥＤなどのインジケータと組み合わせ、および／または仮想補助ディスプレイと併せることができる。
【００２５】
１つまたは複数のＬＥＤは、画面がない場合でさえ、補助ディスプレイ２００として、アクティビティの生起についての通知のために、有利に使用することができる。そのような補助ディスプレイは、低コストかつより少ない電力消費で実装し、通知を目立ちすぎない（ｕｎｏｂｔｒｕｓｉｖｅ）形で提供することができる。これは、フォームファクタが極度に厳しいシステム、またはユーザのための通信を別の人物が管理しているシステムで使用すると、効果的であることがある。さらに、補助ディスプレイ２００は、通知を遠くから見る必要があるときに効果的であることがある。また、補助ディスプレイは、電子メールの新しいメッセージの通知など、アクティビティと関連する情報内容があるときに、画面上の仮想補助ディスプレイと併せて使用することもできる。この場合、電子メールからの内容も仮想補助ディスプレイ２００上に表示することができる。さらに、補助ディスプレイ２００は、公共のシステム（図書館またはキオスク）または共用のコンピュータで内容の表示が望ましくないときに、効果的に使用することができる。
【００２６】
代替方法として、２行型英数字ディスプレイは、コストまたはスペースが限界的（ｃｒｉｔｉｃａｌ）であるが、通知および基本的な内容が望まれる場合に、補助ディスプレイ２００として有利に使用することができる。これは、タブレットＰＣ、ラップトップ、低価格ＰＣ、電話用ドッキングステーション（ｐｈｏｎｅ  ｄｏｃｋｉｎｇ  ｓｔａｔｉｏｎ）、モニタ用ベゼル（ｍｏｎｉｔｏｒ  ｂｅｚｅｌ）、および、小型または低コストのＰＣアプライアンス、あるいは、ハンドセット、キーボード、リモコン（ｒｅｍｏｔｅ  ｃｏｎｔｒｏｌ）などの周辺機器用に効果的に使用することができる。また、これは、発信者番号ボックス（ｃａｌｌｅｒ  ＩＤ  ｂｏｘ）の代替品（およびその改良品）として効果的に使用することもできる。
【００２７】
さらに、白黒またはカラーのマルチラインディスプレイは、メディアを多用する（ｍｅｄｉａ  ｒｉｃｈ）適用例、ハイエンドの消費者向けシステム、またはメディアセンタシステム用に、補助ディスプレイ２００として有利に使用することができる。これは、フォームファクタにより余裕のある、または通信に重点が置かれているハイエンドのラップトップ、ビジネスまたは通信に相当の重点のあるフル機能のＰＣ、（ポータブルのメディア機能付きのリモコン（ｒｅｍｏｔｅｓ）、コンソールシステムなどの）メディアセンタもしくはハイエンドのメディアアプライアンス、およびモバイル補助ディスプレイ用に、効果的に使用することができる。さらに、別のコンピューティング装置または通信装置のディスプレイは、ユーザが、そのＰＣを使用するときに、こうした補足的な装置の役割を拡張できる場合に、補助ディスプレイ２００として有利に使用することができる。こうした他のコンピューティング装置または通信装置としては、汎用コンピュータ、携帯電話、および、ページャや携帯情報端末（ＰＤＡ）などのハンドヘルド装置がある。さらに、補助ディスプレイは、実際のディスプレイである必要はなく、情報の（たとえば、壁への）投影とすることができることに注意されたい。本明細書で補助ディスプレイと呼ぶものは、どのような視覚、聴覚、および／または触覚表現も含めて、知覚することのできる、本質的に任意のものからなるのであってよい。
【００２８】
前に述べたように、仮想補助ディスプレイを、公共のシステム（図書館またはキオスク）または共用のコンピュータで内容の表示が望ましくないときに、補助ディスプレイ２００として使用することができる。また、これは、低コストのシステム用に、またはＬＥＤさえ実用的にならないフォームファクタが非常に小さい装置用に、効果的に使用することができる。仮想補助ディスプレイは、スクリーンセーバとして、またはＧＵＩ（グラフィカルユーザインターフェース）として実装することができる。
【００２９】
入力装置２０１は、本明細書でこの後、アクチュエータ（１個のボタンまたはポインティングデバイスなどの単一の機構の場合でも複数形とする）と呼ぶが、これによりユーザには、電子メール通知、ボイスメール通知、カレンダ通知、システムステータス通知、発信者番号リスト、および、他のタイプの通知メッセージなど、異なるカテゴリのアプリケーションデータまたは通知の間で切り替えるための機構が提供される。また、そのようなスイッチボタンに付随して、アップボタンおよびダウンボタンも存在して、これによりユーザは、特定のカテゴリ内部の通知メッセージ全体のスクロールを進めることおよび戻すことができるようになる。キーボード、マイクロフォン、ジョイスティック、ゲームパッド、あるいは、バイオメトリックセンサ、環境センサ、位置センサ、または他のタイプのセンサを含む装置を含む他の装置など、他のどのようなタイプのアクチュエータも使用することができることが、当業者には理解されよう。図１に示しているコンピューティング装置１２０の入力装置のうちのどのようなものも、入力装置（アクチュエータ）２０１として使用することができ、独立したアクチュエータと併せて使用することができる。
【００３０】
補助ディスプレイのオフラインの動作のためのキャッシュ動作
以下でわかるように、本発明により、ユーザが補助的情報を簡易かつ迅速に見るための補助ディスプレイ２００が提供される。本発明のレベルに合わせるため、ユーザは、どのような情報が補助ディスプレイ上に現れるかの選択を、アクチュエータ２０１を使用して、補助装置上に提示できるアプリケーションプログラムデータのうちで選択することにより、ある程度、行うことができる。情報の補助ディスプレイを例示するために、プログラムのデータおよびイベント通知を使用することになるが、本発明により、取引（ｔｒａｎｓａｃｔｉｏｎ）サービス、オークションサービス、広告サービス、娯楽サービス、ロケーションサービスを含む、インターネット関連サービスからのデータなど、他のタイプの情報の補助ディスプレイも提供できることを理解されたい。そうしたサービスからは、金融取引情報、ヘッドラインニュース、株式速報（ｓｔｏｃｋ  ｑｕｏｔｅｓ）、スポーツの結果（ｓｐｏｒｔ  ｓｃｏｒｅｓ）、天気情報、および他の情報を含むかなり様々な情報が、ユーザの特に要求する情報も、希望しない（ｕｎｓｏｌｉｃｉｔｅｄ）情報も含めて、提供される可能性がある。また、補助ディスプレイ２００は、１組の通知ライト、２行型英数字ディスプレイ、白黒ディスプレイ、カラーディスプレイなど、知られているタイプのどのような数のディスプレイを用いても、有効でありうることが理解されよう。簡単のため、本明細書で使用する「補助ディスプレイ装置」は、一般に、補助ディスプレイ画面、および／または、その画面ならびにその装置内の他のどのようなハードウェア、ファームウェア、もしくはソフトウェアにも関連付けられているアクチュエータを指すことに注意されたい。しかし、画面とアクチュエータとは独立の機構とすることができること、および／または入力データへの物理的な接触を必要とするアクチュエータがなくてもよいことを理解されたい。さらに、補助ディスプレイ装置は、場合によっては、ピクセル型のディスプレイ画面の代わりにまたはそれに加えて、インジケータ（たとえば、個別のＬＥＤ）を含むものと考えることができることに注意されたい。
【００３１】
本発明の一態様によれば、本発明により、メインＣＰＵ／オペレーティングシステムおよびアプリケーションプログラムが動作していない、すなわち、システムはオフラインであるが、補助ディスプレイは動作している時点での補助ディスプレイの使用が容易になる。オフライン補助システムコンポーネントは、補助プロセッサ、ならびに、実行可能なコードおよびデータを含む補助メモリを含む、ファームウェアで実装されることに注意されたい。オフライン動作を達成するために、メインＣＰＵ／オペレーティングシステムおよびアプリケーションプログラムは、オンライン時にデータキャッシュおよび他の情報を準備し、次いでこれがオフラインでの使用のためにファームウェア内の補助ストレージへと転送される。
【００３２】
転送は、電源停止（ｐｏｗｅｒ−ｄｏｗｎ）（たとえば、シャットダウン／スリープ／休止状態（ｈｉｂｅｒｎａｔｅ  ｔｉｍｅ））時のキャッシュのフル転送であってもよく、または、バックグラウンドプロセスなどによって部分的に実行し、電源停止時に（フルデータ転送ではなく）同期だけが必要なようにするのでもよい。しかも、デスクトップなどのコンピュータ装置は、そのようなキャッシュにアクセス可能になる電源停止状態に入らない可能性がある。たとえば、バックグラウンドプロセスまたは手動で開始した動作によって、キャッシュを作成することができる。キャッシュがリモートでアクセス可能な場合には、ユーザは、キャッシュされた補助的情報へのリモートのアクセス権を有するはずであり、リモート装置への転送は、そのコンピュータ装置が電源停止になる必要がなくても可能である。たとえば、コンピュータは持っていないが、メインコンピュータのキャッシュデータへのアクセスをリモートで行うように構成したＳｍａｒｔＰｈｏｎｅなどの他の装置を持って会議に移動するユーザを考えよう。そのようなリモートユーザは、キャッシュの閲覧および検索を、キャッシュのおかげで、リモートでリモート装置によって行うことができ、このリモート装置は、キャッシュのおかげで、システムの補助ディスプレイとなっている。
【００３３】
図３に一般的に示しているように、レイヤ化されたアーキテクチャが提供されており、これにより、１つまたは複数のアプリケーションプログラム３０２は、事実上どのようなタイプの補助ディスプレイ装置ともインターフェースを行い、そのディスプレイ２００へのデータの出力および／またはアクチュエータ２０１によるユーザとのやり取りを行うことができる。このために、ソフトウェアの独立のアーキテクチャレイヤを有するアーキテクチャが提供されており、上記の関連の、「補助ディスプレイシステムアーキテクチャ」という名称の米国特許出願で一般的に説明されている。そこでは、レイヤは一般に図３と同じ順序で示されているが、いくぶん任意であるコンポーネントのグループ分けは、本出願の図３とはやや異なる可能性がある。いずれにせよ、図３では、サービスは、独立のレイヤ３０４として、アプリケーションレイヤ３０２がサービスレイヤ３０４の上位にあり、プロトコルレイヤ３０６がサービスレイヤ３０４の下位にある状態で、考えることができる。
【００３４】
図３に示した実装では、４つのレイヤが存在しており、それぞれはインターフェースで分離されている。より具体的には、アプリケーションレイヤ３０２、サービスレイヤ３０４、およびプロトコルレイヤ３０６の他に、図３に示すファームウェアレイヤ３０８がある。下で説明するように、こうしたレイヤにより、アプリケーションプログラムが、キャッシュ動作（ｃａｃｈｉｎｇ）のための補助的データの提供を、ユーザに対し、関連性のあるキャッシュされた情報への容易なアクセスを、コンピュータを立ち上げる（および／または、ラップトップまたはカバーのあるタブレットの場合、メインのディスプレイ画面を見るためにコンピュータを開けること）必要なく提供する構造化した形で行える、直接的な機構が提供される。
【００３５】
図４に、レイヤのうちのいくつかおよび様々なインターフェースをより詳細に示している。一般に、アプリケーションレイヤ３０２により、管理されたおよびネイティブのインターフェースがＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）として提供され、これにより、下で説明するように、構造化キャッシュを、たとえば、木フォーマットまたは他の適切な構造で作成することが容易になる。アプリケーションレイヤ３０２の１つの目的は、構造化キャッシュの詳細に抽象化を提供し、アプリケーションプログラムがデータを特定の構造に合わせるのではなく、ただデータを提供しさえすればよいようにすることである。
【００３６】
アプリケーションレイヤ３０２では、開発者がソリューションを構築するためのインターフェースが提供されるのに対し、サービスレイヤでは、補助的情報を提示することの特定の側面、すなわち、アービトレーション、割り込み、およびキャッシュ作成が対象である。（たとえば、上記の関連の、「補助ディスプレイシステムアーキテクチャ」という名称の米国特許出願で一般的に説明されている）アービトレーション、および割り込みサポートにより、補助的資源の共用を可能にする枠組みが提供される。
【００３７】
本発明の一態様によれば、キャッシュの作成が、オフライン体験用にアプリケーションデータを構造化する機構となっている。図５に関して下で説明するように、サービスレイヤにより、キャッシュは、オンラインの動作状態から完全に孤立したとき、ファームウェアがデータを探索できるように、コンテキストおよび構造の情報を保存する形で作成される。また、下でさらに説明するように、一実装形態では、サービスレイヤは、データ構造の枝刈り（ｐｒｕｎｉｎｇ）を、その内容のサイズが補助装置ファームウェアの割り当てられたストレージ容量を超える場合に行う役割も果たす。
【００３８】
図４に示すように、アプリケーションレイヤ３０２および補助ディスプレイサービスレイヤ３０４により、様々な構造および機能が、アプリケーションプログラム４０２（または関連するアプリケーションプラグイン）が補助ディスプレイサービスレイヤ３０４のサービス登録コンポーネント４０４にそれ自体の登録を行うための補助登録を含めて、可能になる。図４の実装の例では、サービス登録コンポーネント４０４により、ＩＡｕｘＡｐｐＲｅｇインターフェースがこの目的で提供されている。他のアプリケーションプログラムも、同様にこのインターフェースによってそれ自体の登録を行うことができる。
【００３９】
補助アプリケーション４０２には、登録が済むと、関連づけられている補助ディスプレイおよび／または関系する資源からイベントを受け取る能力が備わる。たとえば、あるイベントの補助アプリケーションコンポーネント４０２への送信は、補助装置が利用可能になると行うことができ、他方、別のイベントは、ユーザのやり取りに対して、補助装置アクチュエータによって応答することができるはずである。図４の実装の例では、アプリケーションプログラムにより、ＩＡｕｘＡｐｐＲｅｇインターフェースの実装および露出（ｅｘｐｏｓｅ）が、そのようなイベントの受け取りのために行われている。
【００４０】
また、アプリケーションプログラム４０２には、利用可能な補助ハードウェア装置を列挙する能力がある。図４の実装の例では、補助装置サービス３０６内のメディエーションコンポーネント４０６により、ＩＡｕｘＭｅｄｉａｔｏｒインターフェースを介して列挙が提供されている。このようにして、装置またはその装置に関係する何らかのデータ（たとえば、対応するＸＭＬファイル）は、装置のディスプレイ画面などおよび／またはそのアクチュエータの機能をアプリケーションプログラム４０２へと報告することができる。次いで、アプリケーションプログラム４０２は、出力および入力をディスプレイに従って調整することができる。たとえば、色方式、解像度、検索コマンド、などを装置の特性に関して変更することが可能である。
【００４１】
また、サービスレイヤのメディエーションコンポーネント４０６には、アービトレーションが、ＩＡｕｘＭｅｄｉａｔｏｒインターフェースを介して提供されて、どのアプリケーションプログラム４０２が、そのデータを現在表示させているべきであり、検索コマンドを受け取っているべきであるかを判断する機構が提供される。複数のアプリケーションプログラムにより、順番に、そのディスプレイが適宜共用されること、言い換えると、メディエーションのアービトレーション機能により、補助アプリケーションプログラムおよび／またはプラグインの優先順位（ｚ−ｏｒｄｅｒ）の管理が行われることに注意されたい。
【００４２】
プロトコルレイヤ３０６により、サービスレイヤ３０４が補助装置との間でデータを送り、受け取るための抽象化が作成される。このようにして、プロトコルレイヤ３０６により、ハードウェアの独立性のレベルの維持が容易になる。サービスレイヤは、ディスプレイへの書き込み、またはインジケータの状態の設定を、ＩＡｕｘＤｅｖｉｃｅインターフェースを介して行って、装置へのデータの通信を行うことができる。
【００４３】
プログラムに、ディスプレイへの書き込み、および、そのアクチュエータによるコマンドの受け取りが許可されると、参照中の補助システムは、現在選択されている補助アプリケーション（たとえば、プラグイン）コンポーネント４０２がディスプレイ資源を使用できるようにしている抽象化されたメモリバッファへのビットのブロック転送（ｂｌｉｔ）／描画の能力を提供する１つの機構となる。オフラインのキャッシュ動作の許されていない実装では、メディエータが、補助装置インターフェースへの参照ポインタを補助アプリケーションへと渡し、それ以降、アプリケーションプログラムにそのインターフェースを直接コールさせて、表示データをディスプレイおよび／またはインジケータに提供することができる。これは、オフライン機能のあるモデルでも実現可能なはずである。そのような抽象化は、マシンがオンラインの間でも、補助ディスプレイ装置の特定のハードウェア実装がオフライン動作をサポートしない場合でさえも、依然として存在することができること、たとえば、キャッシュが装置のＮＶＲＡＭ上に格納され、ファームウェアによって描画されるのではなく、サービスレイヤにより、木／キャッシュが格納され、ビットマップとして装置へと通常のオンラインＡＰＩを用いて描画されるはずであることに注意されたい。たとえば、図４の実装の例では、アプリケーションプログラムは、そのデータの受け渡しをサービスレイヤ（メディエータインターフェース）を通して行い、サービスレイヤが、オフラインのキャッシュ動作のためにコードを構造化できるようにする。
【００４４】
一般に、一実装形態では、オンライン時に、システムの動作は、そのアプリケーションがデータを描画する番になると、アプリケーションにサービスから指示が出されるという点で（この場合、データが補助ディスプレイに書き込まれることを除き）、よく知られているＷＭ＿ＰＡＩＮＴモデルと同様になる。一代替実装形態では、アプリケーションに、データを表示オブジェクトにではなく、キャッシュに書き込ませる際、たとえば、実際のデータを送るのではなくキャッシュの構造と同じ構造を用いて、キャッシュされているメインシステムへのポインタを送って、補助装置がそのポインタによって現時点で表示する必要のあるデータを得るようにし、それにより、たとえば、データ転送を回避し、画像のキャッシュされたコピーを定期的に同期させる必要を回避することが、実現可能である。
【００４５】
容易に理解できるように、様々なレイヤにより、包括的かつ拡張可能なアーキテクチャでは補助的機能が提供される。このプラグ可能（ｐｌｕｇｇａｂｌｅ）なアーキテクチャにより、低レベルの要件の理解または取り扱いの必要なしに補助的資源の利用が可能なアプリケーションを書くことが容易になる。
【００４６】
本発明の一態様によれば、関連性のあるアプリケーションデータおよび他の情報のキャッシュが、補助ディスプレイ装置による使用のために行われる。一般的な一目的は、情報を迅速にアクセス可能なストアへとキャッシュすることであり、それと並んで、アプリケーションがキャッシュすべき情報を提供するための直接的なシステム（ｓｙｓｔｅｍｏｌｏｇｙ）を提供することである。このために、一実装形態では、データは木フォーマットに構造化され（構造化キャッシュ木と呼ぶ）、構造化キャッシュ木を構築するために単純なプリミティブが提供される。この実装形態では、構造化キャッシュ木（または木のサブセット）の集まり（ｃｏｌｌｅｃｔｉｏｎ）、木のファームウェアへの転送、および、メインコンピュータの電源停止時のファームウェアによる木データとのやり取りにより、補助ディスプレイのオフライン使用が容易になる機構が提供される。
【００４７】
図５に、オンライン時専用のコンポーネントおよびデータと、メインシステムのオンライン時にオンラインコンポーネントおよびデータとともに動作し、またメインシステムがオフライン時にも補助ディスプレイを動作させることができる、オフライン（ファームウェア）コンポーネントとを示している。図５に示すオフラインコンポーネントおよびデータは、オンライン時に、必ずしも存在または動作する必要はないことに注意されたい。たとえば、オンライン時には、オンライン対話マネージャ（図示せず）が、アクチュエータとのユーザ対話を、多くのユーザ入力（たとえば、探索コマンド）を動作中のアプリケーションプログラムに送ることによって取り扱い、このため、オフライン対話マネージャ５０８は、アクティブである必要はない。また、図５に示すキャッシュおよび他の転送済みデータは、オンラインからオフラインへの移行までは補助ストレージ５１０に転送しなくてもよいが、速さのため、データをすべて転送するのではなく、上で述べたように、データの一部を時々補助ストレージへとコピーし、オンラインからオフラインへの移行時に同期させることができる。同期は双方向とすることができる。
【００４８】
図５に示すように、オンラインアプリケーションデータ５０２の収集は、キャッシュ動作機構５０４（ｃａｃｈｉｎｇ  ｍｅｃｈａｎｉｓｍ）により、たとえばそのデータのために補助ディスプレイを使用する各アプリケーションプログラムへのポーリングなどにより、行うことができる（動作中ではないが、ユーザがそのデータとのオフライン対話の必要があるとしたアプリケーションは、データを得るために起動することが可能である）。オンライン時に補助ディスプレイ装置を使用するあらゆるアプリケーションを、補助ディスプレイをオフライン時に使用するように構成しなくてもよく、またはオフライン時の補助ディスプレイの使用を、アプリケーションをオフラインデータ閲覧に関して構成するときに、オフライン制限を設定するなど、異なる方法で行えることに注意されたい。たとえば、補助ディスプレイは、オンライン時には、どのような数の電子メールメッセージもスクロールすることができるが、オフラインのスクロールに関して、アプリケーションは、何らかのデフォルトのまたはユーザの構成可能な数（たとえば、２０件）を超えないメッセージを利用可能にすることができる。
【００４９】
ユーザは、システムの構成を、オフライン閲覧のためにどのアプリケーションプログラムによってキャッシュにデータが提供されるかを制御するために行うことができる。たとえば、ユーザが、電話番号、電子メールメッセージ、仕事（ｔａｓｋｓ）、およびカレンダデータは、オフライン閲覧のために補助ディスプレイ上にキャッシュしたいが、他のプログラムのデータはそうしたくないと思うこともあろう。たとえば、オンラインアプリケーションが、補助ディスプレイを株式速報の表示のために使用するかもしれない場合でも、ユーザは、株式速報を補助的閲覧のためにキャッシュすることは、たちまち旧くなるデータをキャッシュするのはデータ用のストレージ場所を無駄にしてしまうため、してほしくないと思うこともあるはずである。
【００５０】
また、ユーザは、各アプリケーションによってそのデータ用に確保されるストレージの量を構成することができ、アプリケーションをオフラインストレージに関する規則によって構成することが可能である。代替方法として、（下に説明する）アルゴリズムによるデータの木からの枝刈り（ｐｒｕｎｅ）が、複数のアプリケーションプログラムからキャッシュに多すぎるデータが提供される場合に行われ、あるアプリケーションの割り当てからの余りを別のアプリケーションのデータ用に使用することが、その別のアプリケーションのデータが利用可能であるよりも多くのスペースを使用すると、行われる。余りのデータの再分配分のアプリケーションへの引き渡しは、ユーザの指定する優先順序（ｐｒｉｏｒｉｔｙ  ｏｒｄｅｒｉｎｇ）に基づいて、たとえば、ホームページ上にリストされている最初のアプリケーション（リストの順序はユーザによって構成可能である）に、次いで、すべてが必要でない場合、次にリストされているアプリケーションへと、行われる。
【００５１】
これまでに述べたように、収集動作は、電源停止時に行うことができ、または、ある程度、オフラインへの移行時に行われる同期とともに進行するのでもよい。枝刈りは、必要に応じて、データ枝刈り機構５０６によって行われて、利用可能なストレージがアプリケーション間で分配され、それぞれが利用可能なスペースの量に見合うように必要に応じてデータが切り詰められる。いずれにせよ、図５の実装の例では、結果は、木構造によって探索できるオフラインデータの構造化キャッシュ５０８となる。
【００５２】
アプリケーションから、単に探索可能なより多くのデータをユーザに提供したい場合がある。たとえば、カレンダプログラムから、特定の日付および時刻に自動的に現れる会議の備忘メモ（ｒｅｍｉｎｄｅｒ）などのデータを提供したいこともあろう。そのようなイベントを探すために定期的にオフラインキャッシュ木をたどるのは効率的ではないと思われるため、時刻ベースの割り込みのトリガなどのための情報は、ファームウェアへの転送を、時刻と取るべきアクション（ａｃｔｉｏｎｓ  ｔｏ  ｔａｋｅ）のリストとして（木によることもあり、その場合は見つけるのに１度たどらなければならないはずであるが、好ましくは別個のデータとして）行うことができる。図５に示すように、ファームウェアは、そのような時刻ベースの割り込み５１４をセットアップし、また、それぞれの識別されたタイマ割り込みが発生したときに、取るべきアクションをタイマＩＤの形でアクションテーブル５１６などに保存することができる。このようにして、たとえば、特定の備忘メモの正しい時刻での表示や、１つまたは複数のインジケータの点灯またはフラッシュなどを行うことができる。
【００５３】
セットアップ、転送、およびメインコンピュータの電源停止が済むと、マイクロコントローラ５２０および補助ストレージにより、補助ディスプレイ２００およびアクチュエータ２０１の制御が一手に引き継がれる。オフラインシェルプログラム５２０により、探索の基点となるホームページが、タイマベースのイベントなどを処理するための論理と並んで提供される。オフラインシェルプログラム５２０が、オフライン対話マネージャ５０８と共同して取り扱うのは、オフラインキャッシュ全体にわたる探索、ならびに、場合によっては、ディスプレイの状態を非手動のアクチュエータに応答して変更して、たとえば、バッテリが残り少ない（ｌｏｗ）ときに特定のメッセージを示すことである。シェルのプリミティブとしては、メール、電話、住所、カレンダ、株式、音楽、メモなどがありうる。
【００５４】
図６に、３つのアプリケーションプログラム６０１〜６０３を表すノードがシェル（ホーム）ノード６０４の下にある簡単な木構造を示している。アプリケーションプログラムを３つ示しているが、（利用可能なストレージスペースに関して）実用的な、どのような数のアプリケーションでも実現可能である。これを見るとわかるように、構造のおかげで（構造そのものは、通常、表示されるはずのものではないとしても）、ノードを経由した手動の探索は、比較的直感的であり、直接的である。たとえば、木構造では、上下の探索だけが必要であり、このため、たとえば、２ボタン型のコントローラしか必要にならないはずである（ただし、片方または両方のボタンには、タイマイベント駆動のディスプレイ画面を閉じるなど、他の機能をもたせることができる）。
【００５５】
一般に、ホームページは、単にアプリケーションプログラムのメニューを（必要な場合はスクロール可能にして）提供することができるが、アクチュエータの構成に応じて、階層性（ｈｉｅｒａｒｃｈｙ）を反映するより複雑なメニューが実現可能であり、たとえば、４方向探索ボタンでは、上および下ボタンを使用してスクロールを行い、右および左ボタンを使用して現在ハイライトされている、部分木を表すデータを示すメニューエントリを拡げること（ｅｘｐａｎｄｉｎｇ）およびたたむこと（ｃｏｌｌａｐｓｉｎｇ）もできるはずである。ユーザが、ホームページメニュー内であるページの選択を、あるページ上にいるときに選択アクチュエータボタンを押すことなどによって行うと、シェルノードが本質的にそのノードへと移り、そのページについての情報が得られ、そのページが描画される。情報ページは、ビットマップからマークアップ言語（たとえば、ＨＴＭＬまたはＸＡＭＬ）にいたるどのようなものも、所与の装置上での描画のために適宜含むことができ、これはその装置上にインストールされているコードに依存する。また、キャッシュされたデータを解釈するためのコードを転送または他の方法でファームウェアへとダウンロードすることができることにも注意されたい。
【００５６】
図６に示すように、木構造には、複数の下位レベルが存在しうる。たとえば、ここに示すパーソナル情報マネージャノード６２０は、連絡先（ｃｏｎｔａｃｔｓ）、面会予定（ａｐｐｏｉｎｔｍｅｎｔ）、および仕事（ｔａｓｋ）のノード（それぞれ、６２０〜６２２）をその下位にもつことができ、それぞれはそれ自体が、対応するディスプレイ画面およびそれぞれの下位ノードＣ１〜Ｃｉ、Ａ１〜Ａｊ、およびＴ１〜Ｔｋを有する。アプリケーションプログラムノードは、メッセージノードＭ１〜Ｍｎで表す１レベルをその下位にもつことができるだけである。一般に、各ノードは、そのデータ、および探索の可能などのような下位ノードも表示する、スクロール可能なページに対応している。
【００５７】
図６に、念のためメディアプレーヤアプリケーション６０３を示してあるが、これは、一部の実装形態では、同じ探索木をオンラインまたはオフライン時に使用して、描画すべき次の画面を決定することは、メディアアプリケーションがオフライン状態で動作できなくても、可能であることを示すためのものである。オンライン時には、そのような実装形態では、オンライン専用メディアプレーヤアプリケーションは、ディスプレイ画面ノードをその木の中にもつことになり、ユーザは、現在のトラックおよびタイマのデータを補助ディスプレイ上で閲覧するなどのために、そのノードへと探索することができる。オフライン時には、そのようなディスプレイ画面を表すそのノード（末端の（ｔｅｒｍｉｎａｌ）または生の（ｒａｗ）ノードと呼ぶ）は、木から枝刈りされて、ストレージスペースが節約される。代替方法として、ＭＰ３プレイヤなどのメディアプレーヤが補助ディスプレイの役を果たすときは、そのようなノードにより、ＭＰ３プレイヤが画面を望み通りに使用することができるようになるが、これは他のアプリケーションデータを伴う探索の枠組みでもそうなるはずである。
【００５８】
図７に、別の木のノードの例におけるデータの例を示してあるが、このデータは、下位ノードの（たとえば、テキストを示すための）識別ラベル、およびそれらのノードへのポインタデータを含んでいる。これを見るとわかるように、バッテリ状態を示すバッテリメータページへの探索が可能であり、パーソナル情報マネージャ（ＰＩＭ）ページも同様であるが、こちらはその下に電子メールおよびカレンダの下位ノードが、アクチュエータによる探索先としてリストしてある。電子メールノードに示しているのは、これが選択された場合、２件の電子メールメッセージが、補助ディスプレイ上での表示のために探索先として利用可能であり、選択した電子メールメッセージの本体は、そのメッセージへの探索後に表示されるということである。図６とは異なり、図７の木では、電子メールはパーソナル情報マネージャの一部であることに注意されたい。しかし、図６と図７のどちらも木の例であるに過ぎないことを理解されたい。
【００５９】
図７から明らかなように、キャッシュされるデータは、アプリケーションデータであるだけでなく、探索のための構造を含んでもいる。このようにして、ファームウェアは、様々な画像の正しい描画を、ユーザがアクチュエータによって探索するのに従って、その描画が、異なるビットマップをキャッシュから探索コマンドに応じて提供することによるにせよ、内容をブラウザ様のソフトウェアによって解釈して各ページを構築することによるにせよ、他の何らかの機構によるにせよ、行うことができる。したがって、木を説明してきたが、どのような探索用の構造も（たとえば、グラフ、描画データを含むＨＴＭＬまたはＸＡＭＬ文書、または事実上任意の構造化されたデータも）データのうちで探索を行うために使用することができる。そのような実装形態では、アプリケーションを記述するメタデータもキャッシュを行うことができる。代替的な実装形態では、このデータは形式的に構造化をより弱くすることも可能であり、データを解釈するコードのファームウェアへの提供を、（アプリケーションデータと並んで、）そのコードがファームウェア内に存在しない場合に行うことができる。
【００６０】
しかも、探索用の構造およびデータのキャッシュが行われると、キャッシュへのアクセスを有するどのような補助装置も、キャッシュ時に存在していなかったものも含めて、データ構造を読み込み、データの描画および探索を行えるようにすることができる。たとえば、キャッシュが、単に結合された装置のファームウェアだけにではなく、インターネットまたはリムーバブルメディアへと保存された場合であれば、キャッシュファイルへのアクセス（および適切なアクセス権）を有する正しくコードされたどのような装置も、データの描画および探索を行うことができるはずである。したがって、たとえば、ユーザには、自分のキャッシュされた補助ディスプレイデータの読み出しが、ＭＰ３プレイヤによって、そのプレイヤがキャッシュ構造を読み出せるようになっている限り、そのＭＰ３プレイヤがメインコンピュータへとキャッシュ時に結合されていなかったとしても、可能なはずである。言い換えると、キャッシュこそが、補助装置をコンピュータシステムへと結合するものなのである。これは、装置がデータの意味を理解しているということではなく、装置はデータを描画し、データを探索することができるということを意味するに過ぎないことに注意されたい。さらに、データの一部が、それ自体、内的に構造化されている（たとえば、ビットマップではなく、列と行で構成される）場合には、データの理解もしている描画および探索の装置には、データの取り扱いが、適切なデータをユーザが望み通りに動的にソートすることができるようにするなど、さらに可能になることにも注意されたい。
【００６１】
キャッシュをファイルとして保存することによって、他の利益が可能になることは容易に理解することができる。たとえば、ちょうどファイルと同様に、ずっと後で（たとえば、数年）補助ディスプレイの状態を再現（ｒｅｐｌａｙ）して重要な情報を回復することができる。
【００６２】
オンライン状態で起きる枝刈り動作の説明に移ると、レベルの高い（ｓｏｐｈｉｓｔｉｃａｔｅｄ）ユーザには、そのユーザがオフライン状態のときに補助装置を使用することができると指定している各アプリケーションプログラムへのメモリの割り当てを構成することが可能である。したがって、たとえば、あるユーザは、多数の連絡先のリストを利用できるようにしなければならず、別のユーザには、たくさんの会議に呼ばれており、また別のユーザには、電子メールメッセージの補助ディスプレイが必要であることもあろう。どのユーザも、データのすべてを利用可能にしたいと思うかもしれないが、それぞれが、異なるアプリケーションの対応する表示を優先することを選ぶはずである。
【００６３】
また、レベルのそれほど高くない（ｌｅｓｓｅｒ−ｓｏｐｈｉｓｔｉｃａｔｅｄ）、データの多すぎるユーザにも、使用中のアプリケーションのデータの間でメモリを分けて木を構築するデフォルトのやり方が必要なはずである。一実装形態では、デフォルトは、利用可能なメモリの分割を最初に、アプリケーション間で等分に、すなわち、ホームページの下位の最初のレベルにあるノードに等分に行うことである。最初は等分に分割するが、所与のどのアプリケーションのためのデータもその最初の割り当てを必要とするわけではなく、したがって、枝刈り機構により、余りが他のアプリケーションのデータのために利用できるようになる可能性がある。したがって、最初は等分に分割するとしても、どのように余りを割り当てるかに関して、やはり何らかの機構が必要である。
【００６４】
一実装形態では、余りの割り当て機構は、ホームページが、アプリケーションプログラムを代表している下位ページを提示する順番に基づく単純な優先順位方式である。表示の順序は、ユーザによって構成可能であり、したがって、優先順位もそうだということになる。
【００６５】
木を構築するときに、枝（ｂｒａｎｃｈ）が作られてしまうまでは、その枝に対してメモリの余りまたは不足があるかどうかはわからないことに留意されたい。たとえば、電子メールの枝の枝刈りは、メッセージの削除（古い順（ｏｌｄｅｓｔ  ｆｉｒｓｔ））を、残っているメッセージに十分なスペースが利用可能になるまで行うことによって可能である。しかし、最後のメッセージの枝刈りを行うと、それが大きなメッセージである場合には、それまでの不足がかなりの余りになり、今度はそれを木の別の枝に再分配することができる。したがって、枝刈りアルゴリズムは、レベルからレベルへと再帰的であり、より多くのメモリが利用可能になると、ある枝に関して再動作させることができる。
【００６６】
次の擬似コードにより、そのようなある木の枝刈りルーチンの説明を行うが、これはルート識別子および合計キャッシュサイズを引数として（ｗｉｔｈ）呼び出すことができる。合計キャッシュサイズ（キャッシュに割り当てるメモリの量）は、最初、枝の間で等分に分けられ、下位の子ノードのそれぞれは、最初、親ノードの割り当て量（ｂｕｄｇｅｔ）の等しい分け前を取る。これを見るとわかるように、枝刈りは必要なときに適用されるだけであり、メモリの枝刈りは再帰的であって、最後のノードから始めて最初のノードへと、枝を上へとたどって行われる。ある枝の子ノードは、余りがあればまず与えられ、どの子ノードもその余りを使用できない場合に限り、別の枝にその余りが与えられる。
【００６７】
【表１−１】
2006024188.tif 000003
【００６８】
【表１−２】
2006024188.tif 000004
【００６９】
【表１−３】
2006024188.tif 000005
以上からわかるように、本発明により、アプリケーションプログラムは、コンピュータシステムの補助装置によって、メインコンピュータの電源停止時に表示および探索するためのデータのキャッシュが行えるようになる。したがって、本発明により、現在のコンピューティングに必要な数多くの利益および利点が提供される。
【００７０】
本発明には、様々な変更および代替構成の余地があるが、本発明の特定の例示的な実施形態を図面に示し、上で詳細な説明を行っている。しかし、本発明を開示した特定の一形式または諸形式に制限する意図はなく、逆に、意図は、本発明の趣旨および範囲内に属するすべての変更、代替構成、および均等物をカバーすることにある。
【図面の簡単な説明】
【００７１】
【図１】本発明を組み込むことができる従来のパーソナルコンピュータシステムの形の汎用コンピューティング装置を示す構成図である。
【図２Ａ】様々な装置上の補助ディスプレイの設置の場所を一般的に示す例示的な図である。
【図２Ｂ】様々な装置上の補助ディスプレイの設置の場所を一般的に示す例示的な図である。
【図２Ｃ】様々な装置上の補助ディスプレイの設置の場所を一般的に示す例示的な図である。
【図２Ｄ】様々な装置上の補助ディスプレイの設置の場所を一般的に示す例示的な図である。
【図２Ｅ】様々な装置上の補助ディスプレイの設置の場所を一般的に示す例示的な図である。
【図３】本発明の一態様による、アプリケーションプログラムが任意の補助ディスプレイ装置のファームウェアとデータを交換できるようにするためのレイヤ化されたアーキテクチャを一般的に示す構成図である。
【図４】本発明の一態様に従って、一実施形態において、補助対応アプリケーションプログラムが補助ディスプレイサービスとインターフェースを行って補助ディスプレイ装置とデータを交換する様子を示す図である。
【図５】本発明の一態様に従って、オフラインの探索を提供するコンポーネントを一般的に示す構成図である。
【図６】本発明の一態様による、ユーザデータのキャッシュを行ってオフラインの探索を提供する木の形式の、探索構造の一例を示す図である。
【図７】本発明の一態様による、構造化されたキャッシュ木のノードを示す図である。
【符号の説明】
【００７２】
１２０  コンピュータ
１２１  メイン処理ユニット
１２２  システムメモリ
１２３  システムバス
１２４  ＲＯＭ
１２５  ＲＡＭ
１２６  ＢＩＯＳ
１３２  ハードディスクドライブインターフェース
１３３  磁気ディスクドライブインターフェース
１３４  光ディスクドライブインターフェース
１３５  オペレーティングシステム
１３６  アプリケーションプログラム
１３６’  アプリケーションプログラム
１３７  他のプログラムモジュール
１３８  プログラムデータ
１４０  キーボード
１４２  マウス
１４６  シリアルポートインターフェース
１４７  モニタ
１４８  ビデオアダプタ
１４９  リモートのコンピュータ
１５０  フロッピーディスクドライブ
１５１  ＬＡＮ（構内通信網）
１５２  ＷＡＮ（広域通信網）
１５３  ネットワークＩ／Ｆ
１５４  モデム
１５５  補助ディスプレイインターフェース
１５６  入力装置インターフェース
２００  補助ディスプレイ
２０１  入力装置
３０２  補助アプリケーション（データ）
３０４  補助ディスプレイサービスレイヤ
３０６  プロトコルデータ
３０８  ファームウェアレイヤ（補助ディスプレイ装置用）
４０２  補助アプリケーション（データ）
４０４  登録
４０６  メディエータ
４０８  構成ストア
４１０  ディスプレイ
４１２  インジケータ
５０２  オンラインアプリケーションデータ
５０４  キャッシュ動作機構
５０６  データ枝刈り機構
５０８  オンライン対話マネージャ
５１０  補助ストレージ
５１２  オフラインキャッシュ（探索構造）
５１４  時刻ベースの割り込み
５１６  タイマＩＤ／アクションテーブル
５２０  オフラインシェルプログラム（ファームウェアのプリミティブ）
５ｘｘ  マイクロコントローラ
６０１  パーソナル情報マネージャ
６０２  電子メール
６０３  メディアプレーヤ
６０４  シェル（ホーム）
６２０  連絡先
６２１  面会予定
６２２  仕事
６３０  末端／生（ｒａｗ）
【図１】
2006024188.tif 000006
【図２Ａ】
2006024188.tif 000007
【図２Ｂ】
2006024188.tif 000008
【図２Ｃ】
2006024188.tif 000009
【図２Ｄ】
2006024188.tif 000010
【図２Ｅ】
2006024188.tif 000011
【図３】
2006024188.tif 000012
【図４】
2006024188.tif 000013
【図５】
2006024188.tif 000014
【図６】
2006024188.tif 000015
【図７】
2006024188.tif 000016
【外国語明細書】
2006024188000001.pdf