(57)【要約】【課題】メインコンピュータシステム上で稼働するアプリケーションプログラムが補助ディスプレイデバイスと通信して、デバイス上の閲覧可能な情報、リモート制御機能および通知を提供するシステムおよび方法。【解決手段】ＡＰＩコールを介して、プログラムはデバイス機能や接続タイプにかかわらず同じフォーマットで情報を提供する。補助ディスプレイプラットフォームは、デバイスドライバによって理解されるフォーマットに情報を変換し、次いでデバイスドライバは、情報が通信される前にその特定のハードウェアデバイスのために要望に応じて情報をフィルタする。リターン通信はステータスや表示情報とのユーザインタラクションなどのデータを戻す。このように、ソフトウェアベンダは一度コードを書いて補助ディスプレイ上に情報を出力でき、ハードウェア製造業者は既存のハードウェアに対するほとんど修正なく彼らのデバイスを補助ディスプレイとして動作させ得る。【選択図】図４
2006164271.tif 000002
【特許請求の範囲】
【請求項１】
メインコンピュータシステムおよびそれに結合された補助デバイスを有するコンピューティング環境において、
ａ）前記補助デバイスに通信する情報に対応し、任意の特定の補助デバイスハードウェアとは独立な１組の少なくとも１つのパラメータを有するコールを含む、前記メインコンピュータシステム上で実行されるプログラムからのコールを受け取るアプリケーションインターフェースと、
前記補助デバイスに関連付けられたデバイスドライバに補助プラットフォームを結合するデバイスドライバインターフェースと
を含む、前記メインコンピュータシステム上の前記補助プラットフォームを備え、
前記補助プラットフォームは、前記デバイスドライバが前記補助デバイスに通信のための情報を転送するように前記デバイスドライバによって理解されるフォーマットに前記情報を変換することを特徴とするシステム。
【請求項２】
前記補助デバイスは、モバイル通信デバイスを備えたことを特徴とする請求項１に記載のシステム。
【請求項３】
前記補助デバイスは、別個のコンピュータ、モバイル通信デバイス、ボタンアクチュエータを有する２次ディスプレイスクリーン、腕時計、壁掛けディスプレイ、ディスプレイスクリーン、デジタルピクチャフレーム、時計、テレビジョン、ラジオ、メディアプレーヤ、民生用エレクトロニクスデバイスのメインディスプレイ内に埋め込まれるか、またはメインディスプレイを使用したデバイス、自動車、輸送または他の乗り物ユニット、前記メインコンピュータシステムのキーボードまたは他の入力デバイス、ページャ、および携帯情報端末を含む１組のデバイスタイプのうちからのデバイスを備えたことを特徴とする請求項１に記載のシステム。
【請求項４】
前記補助デバイスは、独自のフォーマットで受け取られるときに前記情報を処理することができるファームウェアを含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記補助プラットフォームは、前記デバイス上の前記デバイスドライバまたはファームウェアによって理解されるマークアップ言語ベースのフォーマットに前記情報を変換することを特徴とする請求項１に記載のシステム。
【請求項６】
前記デバイスドライバは、その関連付けられた補助デバイスの機能に基づいて前記情報の少なくとも一部をフィルタすることを特徴とする請求項１に記載のシステム。
【請求項７】
前記情報は、通知に対応することを特徴とする請求項１に記載のシステム。
【請求項８】
前記情報の少なくとも一部分は、前記補助デバイス上で表示するイメージに対応することを特徴とする請求項１に記載のシステム。
【請求項９】
前記情報の少なくとも一部分は、前記補助デバイス上で表示するテキストに対応することを特徴とする請求項１に記載のシステム。
【請求項１０】
第２の補助デバイスは、前記コンピュータシステムに接続され、前記補助プラットフォームは、前記メインコンピュータシステム上で稼働する前記プログラムのためにどの１つまたは複数の補助デバイスに前記情報をルートすべきかについてのデータを収容するデータ構造を保持することを特徴とする請求項１に記載のシステム。
【請求項１１】
前記データは、前記情報が前記第２の補助デバイスにルートされるべきことを示し、前記第２の補助デバイスは、前記第２の補助デバイスについての対応するデバイスドライバを含み、前記補助プラットフォームは、前記第２の補助デバイスについての前記デバイスドライバに前記情報をルートすることを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記補助デバイスは、前記メインコンピュータシステムに対する無線接続を介して前記デバイスドライバに結合されることを特徴とする請求項１に記載のシステム。
【請求項１３】
前記補助デバイスは、前記メインコンピュータシステムに対する有線接続を介して前記デバイスドライバに結合されることを特徴とする請求項１に記載のシステム。
【請求項１４】
前記デバイスドライバは、前記補助デバイスへの返信のために転送される前記情報に応答して前記補助プラットフォームにリターン情報を送ることを特徴とする請求項１に記載のシステム。
【請求項１５】
前記リターン情報は、前記補助デバイスとのユーザインタラクションに対応することを特徴とする請求項１４に記載のシステム。
【請求項１６】
メインコンピュータシステムおよびそれに結合された補助デバイスを有するコンピューティング環境において、
前記補助デバイスに通信する情報に対応し、特定の任意の補助デバイスハードウェアとは独立な１組の少なくとも１つの関連付けられたパラメータを有するコールを含む、前記メインコンピュータシステム上で稼働するコンピュータプログラムからのコールを受け取ることと、
前記情報にアクセスして、前記補助デバイスによって理解されるフォーマットに前記情報を変換することと、
前記情報に対応するデータを前記補助デバイスに通信することと
を備えることを特徴とする方法。
【請求項１７】
前記補助デバイス上で前記情報を表示することをさらに備えることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記コールは、補助プラットフォームにおいて受信され、前記補助プラットフォームに対して前記コールを行うことをさらに備えることを特徴とする請求項１６に記載の方法。
【請求項１９】
前記情報にアクセスして、前記補助デバイスによって理解されるフォーマットに前記情報を変換することは、マークアップ言語ベースのフォーマットに前記情報を変換することを備えることを特徴とする請求項１６に記載の方法。
【請求項２０】
前記情報にアクセスして、前記補助デバイスによって理解されるフォーマットに前記情報を変換することは、独自のフォーマットに前記情報を変換することを備えることを特徴とする請求項１６に記載の方法。
【請求項２１】
前記情報に対応するデータを伝えることは、通知データを送ることを備えることを特徴とする請求項１６に記載の方法。
【請求項２２】
前記情報に対応するデータを前記補助デバイスに通信することは、前記補助デバイスに関連付けられたデバイスドライバに前記情報を提供することを備えることを特徴とする請求項１６に記載の方法。
【請求項２３】
前記デバイスドライバにおいて、その関連付けられた補助デバイスの機能に基づく前記情報の少なくとも一部をフィルタすることをさらに備えることを特徴とする請求項２２に記載の方法。
【請求項２４】
フィルタすることは、イメージ情報を変更することを備えることを特徴とする請求項２３に記載の方法。
【請求項２５】
第２の補助デバイスは、前記コンピュータシステムに接続され、ルーティング情報にアクセスして、前記情報に対応するデータを前記第２の補助デバイスに通信するかどうかを決定することをさらに備えることを特徴とする請求項１６に記載の方法。
【請求項２６】
前記データは、前記データを前記第２の補助デバイスに通信すべきことを示し、前記第２の補助デバイスは、デバイスドライバを含み、前記情報に対応するデータを前記デバイスドライバにルートすることをさらに備えることを特徴とする請求項２５に記載の方法。
【請求項２７】
前記補助デバイスからのリターン情報を受け取ることをさらに備えることを特徴とする請求項１６に記載の方法。
【請求項２８】
前記リターン情報は、前記補助デバイスとのユーザインタラクションに対応し、その前記ユーザインタラクションに基づいて前記補助デバイスに他のデータを通信することをさらに備えることを特徴とする請求項２７に記載の方法。
【請求項２９】
別の補助デバイスからリターン情報を受け取ることをさらに備えることを特徴とする請求項１６に記載の方法。
【請求項３０】
前記リターン情報は、前記他の補助デバイス上の通知の取下げに対応し、前記リターン情報に基づいて追加データを前記補助デバイスに通信して、前記補助デバイス上の対応する通知を取り下げることをさらに備えることを特徴とする請求項２９に記載の方法。
【請求項３１】
実行されるときに請求項１６に記載の方法を実行するコンピュータ実行可能命令を有することを特徴とする少なくとも１つのコンピュータ読取り可能媒体。
【請求項３２】
実行されるときに、
補助デバイスに通信する情報に対応し、任意の特定の補助デバイスハードウェアとは独立な１組の少なくとも１つのパラメータを有するコールを含む、メインコンピュータシステム上で稼働するコンピュータプログラムからのコールを受け取ることと、
複数のタイプの補助デバイスのうちのどちらに前記情報を通信すべきかを決定することと、当該デバイスごとに、
ａ）前記情報にアクセスして、補助デバイス、または補助デバイスのデバイスドライバによって理解されるフォーマットに前記情報を変換することと、
ｂ）前記情報を補助デバイスに通信することと
を備えるステップを行うコンピュータ実行可能命令を有する少なくとも１つのコンピュータ読取り可能媒体。
【請求項３３】
前記メインコンピュータシステムは、複数の補助ディスプレイに結合され、前記補助ディスプレイのうちの少なくとも１つは、機能拡張補助ディスプレイを備えることを特徴とする請求項３２に記載のコンピュータ読取り可能媒体。
【請求項３４】
前記メインコンピュータシステムは、複数の補助ディスプレイに結合され、前記補助ディスプレイのうちの少なくとも１つは、基本的な補助ディスプレイを備えることを特徴とする請求項３２に記載のコンピュータ読取り可能媒体。
【請求項３５】
前記メインコンピュータシステムは、複数の補助ディスプレイに結合され、前記補助ディスプレイのうちの少なくとも１つは、機能拡張補助ディスプレイを備え、前記補助ディスプレイのうちの少なくとも他の１つは、基本的な補助ディスプレイを備えることを特徴とする請求項３２に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータシステムに関し、より詳細にはコンピュータシステムと補助デバイスの間で情報を通信するための改善されたシステムおよび方法に関する。
【背景技術】
【０００２】
特許文献１および特許文献２は、一般にある補助コンピューティング機能を提供する補助処理および補助メカニズムを有するコンピュータシステムの概念を対象としている。例えば、ラップトップコンピュータの蓋または側面上の小型ＬＣＤは、例えばラップトップコンピュータの蓋が閉じられており、そして／またはメインコンピュータの電源が切られているときなど、たとえメインコンピュータディスプレイを簡単に見ることができないときでさえ、ミーティングの場所や時間など有用な情報をその所有者に提供することができる。ボタンなどの制御を提供して、ユーザが補助デバイスとインタラクトできるように、カレンダデータ中のアポイントをスクロールしたり、電子メールメッセージを読んだり、指示を読んだりなど、様々なタイプのデータを閲覧することができるようになる。
【０００３】
モバイルホストコンピュータに組み込まれた補助ＬＣＤスクリーンといくぶん同様に、モバイル電話、音楽再生デバイス、ポケットサイズのパーソナルコンピュータ、携帯情報端末などは、そのディスプレイおよび／または他の機能がメインコンピュータによって活用できるようにデバイスがプログラムされている限り、物理的および／または無線（例えば、ブルートゥースまたは赤外線）リンクを介して接続されるときに、メインコンピュータに対する補助デバイスとしての機能を果たすことができる。一般に、コンピュータシステムと事実上任意の方法でインターフェースすることができるＩ／Ｏ機能を有するどのようなデバイスも、潜在的に補助コンピューティングデバイスとしての機能を果たすことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、コンピュータシステムの補助ディスプレイとしての機能を果たすことができる多様なデバイスが存在する。例えば、一部のデバイスは、ＵＳＢなどのハードワイヤード接続を介してコンピュータシステムに接続することができるが、他のデバイスは、８０２．１１、８０２．１６、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ）などの無線プロトコルを介して接続する。「スマート」モバイル電話やポケットサイズのコンピューティングデバイスなどの一部のデバイスは、かなり良いグラフィックス、利用可能なメモリを提供し、何らかの方法でホストコンピュータシステムに接続するようにすでに構成されていることもある。しかし、他のデバイスは、より限定されており、例えばテキストの単一行、光、および／またはオーディオしか提供しないこともある。同時に、メインコンピュータシステム上で稼働し、補助ディスプレイに情報を出力できることから恩恵を受けるであろう多くのタイプのソフトウェアプログラムがある。
【０００５】
必要なことは、現代のハードウェアデバイスに対してあるとしてもほとんど変更する必要がないように、ホストコンピュータシステムとインターフェースするために補助ディスプレイとして使用することができるハードウェアデバイスの製造業者のための方法である。同時に、このような解決方法は、実際に使用している補助ディスプレイデバイスのタイプとは独立に、アプリケーションプログラムを書いて、補助ディスプレイを使用することができるようにすべきである。
【課題を解決するための手段】
【０００６】
簡潔に述べれば、本発明は、メインコンピュータシステム上で稼働するアプリケーションプログラムが、補助ディスプレイデバイス（セル電話、ポケットサイズコンピュータ、時計、テレビジョン、デジタルピクチャフレームなど）と通信して、このデバイス上の閲覧可能な情報、リモートコントロール機能、および通知を提供するシステムおよび方法を提供する。この目的を達するために、独立系ソフトウェアベンダによって書かれるようなアプリケーションプログラムなどは、ＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）セットを介して補助ディスプレイプラットフォームと通信し、このＡＰＩセットが、次にこの情報を必要に応じて補助コンピューティングデバイスのデバイスドライバによって理解されるフォーマットに変換する。このデバイスドライバは、要望に応じてこの情報をフィルタし、このシステムに有線接続または無線接続介して結合することができるその特定のハードウェアデバイスのためにこの情報をフォーマットする。デバイスドライバは、補助デバイスに通信するための適切なハードウェアインターフェースにこのデータを転送する。補助デバイスからメインコンピュータシステムに対する返信パスも提供される。
【０００７】
補助デバイスのタイプおよび／または接続の仕方を抽象することにより、あらかじめ定義されたプロトコルおよびデータフォーマットしか、異なる機能を有すると思われる多種多様なデバイスと通信するプログラムに必要とされない。補助ディスプレイを利用するために、独立系ソフトウェアベンダは、単純に補助ディスプレイプラットフォームに対するＡＰＩをコールし、このＡＰＩの合意されたフォーマットでデータに対応する１つ（または複数）のパラメータを提供する。その後、このデータは、補助ディスプレイプラットフォームとインターフェースするデバイスドライバによって理解されるフォーマットに変換され、それによって、このデバイスドライバは、この情報をその対応する補助デバイスに伝えるためにトランスポートハードウェアインターフェースに転送する前に、必要に応じてこの情報を調整することができる。
【０００８】
一代替形態においては、ハードウェアベンダは、Ｍｉｃｒｏｓｏｆｔ（登録商標）−ベースのファームウェア（例えば、ＴｉｎｙＣＬＲ−ベースのファームウェアスタックを備える）を実装することを選ぶことができ、それによってこのユーザが完全な補助デバイス体験を受けることになることが保証される。例えば、ＴｉｎｙＣＬＲ−ベースのファームウェアスタックで構成される場合、ＡＰＩを介して提供されるどのようなプログラムデータも、補助デバイスによって処理できることが知られているので、たとえあるとしてもほとんどフィルタリングは必要とされない。このデータは、合意されたフォーマット／プロトコルを介して通知され、このようにしてデバイスドライバおよび／またはＡＰＩレイヤは、アプリケーションプログラム提供のデータを適切なフォーマットに変換し、プロトコルに従ってデータをハードウェアトランスポートに転送する必要があるだけである。補助デバイスのタイプは、適切なファームウェアスタックを有することが知られているので、フォーマットは、独自のものでもよい。
【０００９】
別の代替形態においては、同じＡＰＩ経由を前提として、低減された（しかし、依然として価値のある）プログラムデータを処理することに関して、より簡単なニーズと機能を有するこれらのデバイスに利用可能である。この目的を達するために、メインコンピュータシステム上で稼働するデバイスドライバは、定義されたハードウェアインターフェースを実装して、補助ディスプレイプラットフォームをどのようなタイプの補助デバイスに対してもシームレスに拡張する。デバイスドライバの上のコンポーネントは、デバイスドライバが理解するあらかじめ定義されたフォーマットで、データがデバイスドライバに提供されるように、ＩＳＶ供給のデータをフィルタおよび／または変換することができる。デバイスドライバは、その対応する補助デバイスのために適切な場合にはデータをフィルタして、例えばこのようなデバイスがテキストしか表示できないときに、その対応する補助デバイスのためのデータからグラフィックスを取り除くこともできる。コードを実行することができるハードウェアデバイスは、メインコンピュータ上のデバイスドライバにおいてではなく、デバイス上で、デバイスドライバ機能の一部またはほとんどすべてを実行するように選択することができる。
【００１０】
デバイスドライバによって使用されて、このデータをハードウェアトランスポートインターフェースに供給するインターフェース／ワイヤプロトコルの多くは、使用されている接続メカニズムにかかわらず同じになるように定義することができることに留意されたい。その結果、たとえ実際の接続メカニズムが異なっていても、デバイスドライバがある量のコードを共用することができる。このメカニズムを使用することにより、デバイスは、どのようにこれらが取り付けられるかにかかわらず、矛盾なく動作するように見える。
【００１１】
モバイル電話や２次コンピュータなどの補助ディスプレイを用いて動作することに加えて、本発明を使用して、メインコンピュータシステムの機能を拡張して、テレビジョン、ラジオ、他のメディアプレーヤ、デジタルイメージベースのピクチャフレーム、腕時計やアラーム時計を含む時計など、以前は単一目的のデバイスと通信することもできる。あるソフトウェアでハードウェアをほとんどまたは全く追加せずに、このような既存のデバイスが、これらのデバイスをメインコンピュータシステムと統合できるようにすることにより、これらのユーティリティを簡単に拡張することができる。このプラットフォームは、このようなシナリオを可能にするためにハードウェアおよびソフトウェアを拡張可能である。同時に、独立系ソフトウェアベンダの観点から見て補助デバイスと通信するタスクは、アプリケーションプログラムコードを１度だけ書いて、それを多種多様なデバイス上で実行させる必要があるだけであり、様々な補助デバイスのためにプログラムを適合させるために必要な追加の作業もないので、非常に簡単化される。
【００１２】
他の利点についても、図面と共に以下の詳細な説明から明らかになるであろう。
【発明を実施するための最良の形態】
【００１３】
（例示の動作環境）
図１は本発明を組み込むことができるパーソナルコンピュータシステムの形態におけるコンピューティングデバイス１２０を表すブロック図である。当業者は、図１に示すパーソナルコンピュータシステム１２０が単に例示的であることを意図しているにすぎず、また本発明がハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルな民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ヘッドレスサーバなどを含む他のコンピュータシステム構成と共に実施することができることを理解するであろう。本発明は、タスクが通信ネットワークを介してリンクされるリモート処理デバイスによって実行される分散化されたコンピューティング環境中で実施することもできる。分散コンピューティング環境においては、プログラムモジュールは、ローカルメモリストレージデバイス中にもリモートメモリストレージデバイス中にも配置することができる。
【００１４】
パーソナルコンピュータシステム１２０には、処理装置１２１、システムメモリ１２２、およびこのシステムメモリを含む様々なシステムコンポーネントを処理装置１２１に結合するシステムバス１２３が含まれる。システムバス１２３は、メモリバスまたはメモリコントローラ、ペリフェラルバス、および様々なバスアーキテクチャのうちのいずれかを使用したローカルバスを含む、いくつかのタイプのバス構造のうちのいずれであってもよい。システムメモリは、ＲＯＭ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）１２４およびＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１２５を含む。起動中などパーソナルコンピュータ１２０内のエレメント間で情報を転送する助けを行う基本ルーチンが入ったＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）１２６は、ＲＯＭ１２４に格納される。パーソナルコンピュータ１２０は、図示していないハードディスクとの間での読取りおよび書き込みを行うハードディスクドライブ１２７、リムーバブル磁気ディスク１２９との間で読取りおよび書き込みを行う磁気ディスクドライブ１２８、およびＣＤ−ＲＯＭや他の光媒体などのリムーバブルな光ディスク１３１との間で読取りおよび書き込みを行う光ディスクドライブ１３０をさらに含むことができる。ハードディスクドライブ１２７、磁気ディスクドライブ１２８、および光ディスクドライブ１３０は、それぞれハードディスクドライブインターフェース１３２、磁気ディスクドライブインターフェース１３３、および光ドライブインターフェース１３４によってシステムバス１２３に接続される。これらドライブおよび関連するコンピュータ読取り可能媒体は、パーソナルコンピュータ１２０のコンピュータ読取り可能命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージを提供する。本明細書中で説明している例示のコンピュータシステムは、ハードディスク、リムーバブル磁気ディスク１２９およびリムーバブル光ディスク１３１を使用しているが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ（Ｂｅｒｎｏｕｌｌｉ  ｃａｒｔｒｉｄｇｅ）、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）など、コンピュータによってアクセス可能なデータを格納することができる他のタイプのコンピュータ読取り可能媒体も、この例示のコンピュータシステム中で使用することができることが当業者によって理解されるべきである。
【００１５】
オペレーティングシステム（Ｗｉｎｄｏｗｓ（登録商標）ＸＰなど）１３５、１つまたは複数のアプリケーションプログラム（Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｏｕｔｌｏｏｋなど）１３６、他のプログラムモジュール１３７およびプログラムデータ１３８を含め、いくつかのプログラムモジュールは、ハードディスク、磁気ディスク１２９、光ディスク１３１、ＲＯＭ１２４またはＲＡＭ１２５に格納することができる。ユーザは、キーボード１４０やポインティングデバイス１４２などの入力デバイスを介してパーソナルコンピュータ１２０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれ得る。これらおよび他の入力デバイスは、システムバスに結合されるシリアルポートインターフェース１４６を介して処理装置１２１に接続されることが多い、パラレルポート、ゲームポート、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）など他のインターフェースによって接続することもできる。モニタ１４７または他のタイプのディスプレイデバイスもまた、ビデオアダプタ１４８などのインターフェースを介してシステムバス１２３に接続される。モニタ１４７に加えて、パーソナルコンピュータは、通常、スピーカやプリンタなど他のペリフェラル出力デバイス（図示せず）を含む。補助ディスプレイ２００は、追加の出力デバイスであり、例えば、補助ディスプレイインターフェース１５５を介してシステムバス１２３に接続することができる。補助ディスプレイ１０１はまた、シリアルインターフェースを介して、あるいはパラレルポート、ゲームポート、赤外線もしくは無線接続、ユニバーサルシリアルバス（ＵＳＢ）、または他のペリフェラルデバイス接続など他のインターフェースによってコンピューティングデバイス２０に接続することもできる。図１における入力デバイス２０１は、補助ディスプレイ２００とインターフェースし、そして／または補助ディスプレイ２００を制御する１つまたは複数のアクチュエータを提供することができ、例えば、補助ディスプレイデバイスの一部とすることができるが、それとは独立してもよく、シリアルインターフェースとすることができる入力デバイスインターフェース１５６を介して、あるいはパラレルポート、ゲームポート、赤外線もしくは無線接続、ユニバーサルシリアルバス（ＵＳＢ）、または他のペリフェラルデバイス接続など、他のインターフェースによってシステムバス１２３に接続することができる。
【００１６】
パーソナルコンピュータ１２０は、リモートコンピュータ１４９など１つまたは複数のリモートコンピュータに対する論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ１４９は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードとすることができ、通常、パーソナルコンピュータ１２０に関連して上で説明したエレメントの多くまたはすべてを含むが、メモリストレージデバイス１５０だけを図１に示している。図１に示す論理接続は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）１５１およびＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）１５２を含む。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて、一般的なものである。
【００１７】
ＬＡＮネットワーキング環境中で使用されるときには、パーソナルコンピュータ１２０は、ネットワークインターフェースまたはアダプタ１５３を介してローカルネットワーク１５１に接続される。ＷＡＮネットワーキング環境中で使用されるときには、パーソナルコンピュータ１２０は、通常、インターネットなどのワイドエリアネットワーク１５２を介して通信を確立するためのモデム１５４または他の手段を含む。モデム１５４は、内蔵または外付けとすることができるが、シリアルポートインターフェース１４６を介してシステムバス１２３に接続される。ネットワーク環境においては、パーソナルコンピュータ１２０に関連して示したプログラムモジュール、またはその一部分は、リモートメモリストレージデバイスに格納することもできる。図示したこれらのネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用することもできることが理解されよう。
【００１８】
補助デバイスが本発明に従って機能するためには、コンピュータシステムは必ずしも完全に動作している必要はないことに留意されたい。実際には、コンピュータシステムが、スリープ状態または休止状態モード（ｈｙｂｅｒｎａｔｅ  ｍｏｄｅ）にあるとき、および／またはユーザがまだログオンしていないか、そうでなければセキュリティメカニズムを介してシステムからロックアウトされるときなど、コンピュータが少なくとも初期設定の範囲またはユーザが設定する範囲までパワーダウンされるときにも、補助デバイスは、機能することができる。
【００１９】
補助デバイスは、メインディスプレイを補完することができ、メインディスプレイがシャットダウンされるか、そうでなければ動作していない（例えば、非接続）ときに、代理のディスプレイとしての機能を果たして、ユーザに何らかの情報を提供することができる。例えば、メインディスプレイがオフであり、そして／または簡単に見ることができない（例えば、ラップトップの蓋が閉じられている）ときにユーザが閲覧することができる、モバイルコンピュータに接続された補助ディスプレイデバイスにミーティングに対する部屋番号および／または指示があれば助けになるであろうように、メインディスプレイの起動の仕方などの情報があれば、助けになる可能性がある。この補助デバイスは、オーディオおよび／またはビデオを再生し、イメージを表示し、カレンダ情報を表示し、電子メールを表示することなどができる。
【００２０】
これらパワーダウンモード（ｐｏｗｅｒｅｄ−ｄｏｗｎ  ｍｏｄｅ）における通信を可能にし、制御するために、不揮発性メモリに格納されたファームウェアがあることもあり、このファームウェアにより、何らかの電力が利用可能である限り、２次プロセッサによってロードされ、動作されるときに、この補助ディスプレイを他の補助コンポーネントと一緒に使用することが可能になる。本明細書中で使用しているように、用語「ファームウェア」および「デバイスハードウェア」は、本質的に等価であり、一般にこの補助メモリ、その中のコード、および／またはファームウェアが稼働する二次プロセッサを表すものと考えることができることに留意されたい。
【００２１】
図２Ａ〜２Ｅは、補助ディスプレイスクリーン２００ａ〜２００ｅの配置についてのコンピューティングデバイス上の、またはコンピューティングデバイスに関連付けられた例示の位置をそれぞれ示している。図２Ａおよび２Ｂに示すように、補助ディスプレイスクリーン２００ａは、スタンドアロン（陸上通信線またはモバイル）電話２０２の前面、裏面、または他の表面に配置することができ（この電話は、ブルートゥース技術を介してなど何らかの方法でリンクされていれば、物理的に結合されている必要はない）、そして／または他の補助ディスプレイスクリーン２００ｂは、モバイルコンピュータ２０４またはタブレットコンピューティングデバイス（図示せず）の端部または蓋の上に配置することができる。補助ディスプレイスクリーン２００ｃの別の場所（図２Ｃ）は、コンピュータに取り付けられた電話上、またはモニタ２０６やキーボード（図示せず）など、コンピュータに取り付けられたペリフェラルデバイス上にあってもよい。図２Ｄおよび２Ｅは、コンピュータに接続されたスタンドアロンコンソール２０８、または（マザーボードのハウジングなど）何らかの他のハウジング２１０のフロントパネル上の補助ディスプレイスクリーン２００ｄおよび２００ｅの追加の位置をそれぞれ示している。補助ディスプレイスクリーンは、コンピュータに対する無線または他の接続を有する腕時計、リモートコントロールデバイス、リモート壁掛けユニットなど、ディスプレイ機能を有する任意のコンピューティングデバイスまたは他のデバイスの任意の表面上にも配置することができることを当業者は理解するであろう。実際に、補助ディスプレイは、接続がＬＡＮまたはＷＡＮを介して、あるいはインターネットを介してさえ可能になるので、メインコンピュータシステムに物理的に近くである必要はない。
【００２２】
図２Ａ〜２Ｅから明らかなように、補助ディスプレイは、１つまたは複数のＬＥＤ、２行の英数字のディスプレイ、モノクロディスプレイ、カラーディスプレイなど任意数の既知のタイプのディスプレイの形態とすることができる。本発明は、他のコンピューティングデバイスまたは通信デバイスのディスプレイを補助ディスプレイ２００として使用することができることを当業者は理解するであろう。これらの他のコンピューティングデバイスまたは通信デバイスは、汎用コンピュータ、セル電話、およびページャやＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）などのハンドヘルドデバイスを含んでいる。さらに、本発明は、ユーザがログインする前を含めて、コンピューティングデバイス１２０のオンスクリーン表示（例えば、スクリーンセーバーやグラフィックユーザインターフェースのコンポーネントなど）のエリア内に補助ディスプレイ２００として実装された仮想補助ディスプレイを使用することができる。補助ディスプレイ２００は、前述の形態のどのような組み合わせも含むことができ、また１つまたは複数のＬＥＤなどのインジケータと物理的または論理的に組み合わせ、そして／または仮想補助ディスプレイと共に使用することができる。
【００２３】
補助デバイスは、スクリーンなしでも、またはそのスクリーンの電源が切られているときでさえも、機能を提供することができる。例えば、補助デバイスは、オーディオを再生し、データを収集し（例えば、メインコンピュータに後でダウンロードする場合）、計算を実行することなどができる。また、ディスプレイは、フルスクリーンではなくて、１つまたは複数のＬＥＤなどを備えることもできる。このように、多くの利点および長所が、補助ディスプレイスクリーンを有することから生じ、そのため補助デバイスが、本明細書中では補助ディスプレイと呼ばれることもあるが、ディスプレイは必須ではない。一般に、本明細書中で称している補助ディスプレイは、どのような視覚的表現、聴覚的表現、および／または触覚的表現をも含め、感知することができる基本的にどのようなものから構成することもできる。
【００２４】
（補助ディスプレイとのデータの交換）
本発明は、一般に補助デバイスとのユーザインタラクションに基づくなど、補助デバイスディスプレイ上での表示のための通知および他のコンテンツを提供し、場合によってはディスプレイからリターン情報を取得するなど、補助デバイスとの通信を対象にしている。理解されるように、必ずしもディスプレイを有するとは限らず、音や光などの何らかの出力を提供することができるデバイスを含め、補助ディスプレイデバイスとしての機能を果たすことができる多くのタイプのデバイスが存在する。ラップトップの蓋上のディスプレイ、モバイル電話、ポケットサイズのパーソナルコンピュータ、デジタルイメージベースのピクチャフレーム、台所のディスプレイ、テレビジョン、メディアプレーヤ、アラーム時計を含む時計、腕時計などを含め、本明細書中ではいくつかの例が使用されているが、本発明は、これらの例のいずれにも限定されることはなく、むしろ補助「ディスプレイ」と呼ばれるときでさえ、知覚情報を出力することができる任意のデバイスの使用を想定している。例えば、他のタイプのデバイスには、民生用エレクトロニクスデバイス（冷蔵庫、ホームシアターレシーバ、ＤＶＤプレーヤなど）のメインディスプレイ、壁掛けディスプレイ、自動車、（例えば、補助ディスプレイとして車／列車／飛行機中にすでにあるディスプレイを使用した）輸送または他の乗り物ユニット、メインコンピュータシステムのキーボードまたは他の入力デバイス、ＰＤＡ（非セルラ電話ＰＤＡを含む）などの内部に埋め込まれるか、またはこれらを使用した補助デバイスが含まれる。
【００２５】
同様に、本発明は、補助ディスプレイを別のコンピュータシステムに結合するどのような特定のメカニズムにも限定されることはなく、したがって本明細書中で使用した有線または無線の例だけに限定されない。この接続は、ＬＡＮまたはＷＡＮや、インターネットを介した事実上の専用接続を介してなど、比較的に近くにあっても比較的に遠くにあっても基本的にどこにあってもよい。
【００２６】
図面のうちの図３を参照すると、アプリケーションプログラム３０２および他のプログラム（例えば、オペレーティングシステムコンポーネント）を備えるクライアントに対して補助ディスプレイＡＰＩセット３０４を介して補助デバイス３００および／または３０１を公開する例示のアーキテクチャが示されている。ＡＰＩセット３０４は、クライアントアプリケーション３０６（プログラムの１コンポーネントまたは可能性としてプログラムそれ自体）をシステムに登録すること、コンテンツをこれらの付属デバイスに送信すること、通知を付属デバイスに送信すること、付属デバイスからイベントを受信することを含め、様々なファンクションのＡＰＩを提供する。イベントは、ナビゲーションイベント、コンテンツ要求イベント、コンテンツ変更イベントなどを含むことができる。
【００２７】
本発明の一態様に沿って、ＡＰＩセット３０４の使用は、「補助ディスプレイシステム」だけをクライアントに公開し、個々のデバイスに対する直接アクセスはない。その結果、独立系ソフトウェアベンダにとっては、プログラムコンポーネントをクライアントアプリケーションとして登録した（ＡＰＩセット３０４を介して）後に、デバイスの実際のタイプおよび機能にかかわらず、同じＡＰＩセット３０４に対する別のコールを使用して任意の補助デバイスにコンテンツを送ることができる。ユーザ体験は異なることもあるが、プログラムは、存在する補助デバイスに合わせる必要はない。アプリケーションプログラムは、補助デバイスについての機能情報を取得することができ、これらの機能に基づいて異なるように動作することを選択できるが、アプリケーションプログラムは、そのようにしてデバイスを使用する必要はないことに留意されたい。これは、本発明が、さらなる通信を扱い、任意の特定のデバイスにデータをテイラー化することを含め、複雑なタスクからアプリケーションプログラムを開放するアーキテクチャを提供するからである。
【００２８】
ＡＰＩレイヤ３０４は、ポータブルデバイスＡＰＩセット３１０に書き込まれ、このＡＰＩセットは、ユーザモードドライバフレームワーク３１２を介してデバイスのドライバプロセスと通信する。ポータブルデバイスＡＰＩセット３１０は、補助ディスプレイをポータブルデバイスのカテゴリにマップし、デバイスの機能の列挙を可能にする。これは、ユーザモードドライバ内でカプセル化されるが、クライアントアプリケーション３０６に公開されない。
【００２９】
一般に、クライアントアプリケーション３０６は、補助デバイスに直接に通知を送る。このデバイスは、通知を表示するのと同様に、メインコンピュータシステムから提供されるデータに基づいてそれ自身の通知を生成することができる。図３に示す他の（オプションの）コンポーネントは、補助ディスプレイ上に通知を提供することができる通知クライアント３１６を含む。例えば、カレンダプログラムなどのアプリケーションプログラムが稼働していないときでさえ、このプログラムに対応するスケジュールされた通知を提供することが望ましいことがある。通知クライアント３１６はそのようなシナリオを可能にする。図４〜６を参照して以下で説明するように、このアプリケーションレイヤの下でデバイスドライバ３２４および３２５上のコンポーネントは、一般に「補助ディスプレイプラットフォーム」と呼ぶことができることに留意されたい。
【００３０】
ハードウェアベンダの観点から見ると、一般に、各補助ディスプレイベンダが、対応する補助デバイスドライバ３２４を提供するが、このデバイスがある種の方法で構築される場合には、デバイスドライバは、補助ディスプレイプラットフォームのプロバイダによって供給されることもある。より詳細には、以下で説明するように、ある種のタイプの補助デバイスは、これらが、とりわけＡＰＩ３０４を介して受け取ることができる任意の情報とも一般的に互換性がある、ある種のファームウェアを用いて構成されるので、「機能拡張された」ディスプレイと考えられる。このようなデバイスでは、デバイスドライバ３２５は、汎用的なものでよく（したがって、補助ディスプレイプラットフォームプロバイダによって提供され得る）、ＡＰＩ−受信情報（ＡＰＩ−ｒｅｃｅｉｖｅｄ  ｉｎｆｏｒｍａｔｉｏｎ）を補助デバイスファームウェアによって理解される独自のフォーマットに変換するなど、一般にある直截的なタスクを実行するように動作することができる。「基本的な（ｂａｓｉｃ）」ディスプレイと本明細書中で呼んでいる他の補助デバイスでは、ドライバは、デバイスの機能と互換性がある必要があり、したがって補助ディスプレイベンダは、このデバイスまたはデバイスのクラスにカスタマイズされたドライバを提供する必要がある。
【００３１】
いずれにしても、ユーザモードドライバフレームワークは、デバイスドライバ（例えば、３２４および３２５）を補助ディスプレイプラットフォームに結合するためのＤＤＩ（ｄｅｖｉｃｅ  ｄｒｉｖｅｒ  ｉｎｔｅｒｆａｃｅ）を提供する。次いで、これらのドライバは、補助ディスプレイデバイスへの通信のための適切なハードウェアインターフェース（トランスポート）に、ＡＰＩ−受信情報に対応するデータを転送する。例えば、図３において、基本的なデバイスドライバ３２４は、デバイス３００に無線（例えば、ブルートゥース、Ｗｉ−ＦＩ、ＡＭ／ＦＭ赤外線など）通信を行うためにリモートスタックおよびドライバ３２７に（あらかじめ定義されたプロトコルを介して）データを転送するものとして示されているのに対して、機能拡張されたデバイスドライバ３２５は、ＵＳＢ−ベースのハードウェア３２８にデータを転送するものとして示されているが、ＴＣＰ／ＩＰ−ベースのトランスポートなどのネットワークトランスポートを含む他のタイプのトランスポートも可能である。理解されるように、任意のデバイスドライバが、適切な場合には無線または有線通信のためのデータを転送することになるので、これらの接続は、例として示しているにすぎない。
【００３２】
図４に示すように、複数のデバイスをコンピュータに結合して、同時に補助デバイスとしての機能を果たすようにすることができることに留意されたい。ユーザは、（例えば、システムデータプロバイダコンポーネント３０８のコントロールパネルなどを介して）どのクライアントアプリケーションのデータが、どのデバイス上に表示されるかを設定することができる。システムデータプロバイダ３０８はまた、時間データ、無線信号強度データ、コンピュータのオーディオボリュームおよびミュート状態、および／またはバッテリレベルデータなどのシステム情報を補助ディスプレイに供給する。一実施形態においては、補助ディスプレイプラットフォーム４３０は、クライアントアプリケーション３０６がコンテンツを送るときはいつでもシステム保持マトリックス４３２を調べて、どの１つまたは複数のデバイスがこの情報を受け取るかを決定する。異なるデバイスタイプについてのコンテンツの何らかの変換は、このレベル、ならびに場合によっては以下で説明するようにデバイスドライバレベルの上およびデバイスレベルにおける他のレベルで生じることがある。補助ディスプレイプラットフォーム４３０のＡＰＩはまた、補助デバイスからアプリケーションクライアントアプリケーションにイベントなどを送ることになり、この場合にもマトリックスを使用して、適切な場合にはこれらのイベントをこの１つ（または複数）のクライアントアプリケーションにルートバックする。
【００３３】
以下で説明するように、補助デバイスにダウンロードすることができる一部のコンテンツは、通知を備える。ユーザが、１つの補助デバイス上での通知を取り下げるときに、ユーザは、一般にこの通知が他の補助デバイス上でも取り下げられることを望む（ユーザ設定可能とすることができるオプション）。この目的を達するために、補助デバイスから通信されたリターン情報は、特定の通知が取り下げられたことを示すときに、補助ディスプレイプラットフォームは、この通知がルートされる他の各補助デバイスに取下げ命令を送る。
【００３４】
図５および図６を参照すると、「機能拡張された」ディスプレイは、補助ディスプレイプラットフォームに知られている特定のファームウェアスタックを実行するディスプレイである。例えば、１つの本実施形態において、このようなファームウェアスタックは、ＴｉｎｙＣＬＲコンポーネントを含み、ＴｉｎｙＣＬＲオブジェクトシリアル化をサポートする。基本的なディスプレイは、補助ディスプレイプラットフォームに知られているスタックを実行しない任意のディスプレイである。
【００３５】
図５は、基本的なディスプレイ５００を補助ディスプレイとして使用するためのコンポーネントを示す図である。一般に、プログラム３０２は、前述のような補助ディスプレイプラットフォーム４３０に対するＡＰＩコールを行う。どの１つ（または複数）のデバイスが補助情報を送るかを知っている補助ディスプレイプラットフォーム４３０は、各デバイスが機能拡張されたディスプレイであるか、または基本的なディスプレイであるかについても知っている。この例では、デバイスは、基本的なディスプレイ５００であり、したがって、この補助デバイスは、ＡＰＩパラメータとしての基本的なコンテンツフォーマットを前提として、どのような基本的なデバイスドライバでもサポートするデータを転送する。
【００３６】
このような１つの基本的なコンテンツフォーマットは、ＸＭＬ−ベースであり、それ故にこの基本的なデバイスドライバ５５０は、ＸＭＬをパースすることができる必要がある。望まれるなら、システムＸＭＬパーサをコールする機能を含むライブラリ５５２は、デバイスドライバによって活用することができる。デバイスドライバ５５０は、その特定のデバイスに必要な情報をフィルタおよび／または変換し、基本的な補助ディスプレイデバイスへの通信のためにトランスポートにこの情報を転送する。
【００３７】
理解することができるように、このプラットフォームは、基本的なデバイスがほとんどまたは何の変更もなくサポートされるように、拡張可能である。一般に、必要な唯一のコンポーネントは、この特定のデバイスについてのデバイスドライバである。
【００３８】
いくつかの例では、基本的なデバイスは、このデバイスに対するファームウェア／ソフトウェアの変更なしで実行することができる。例えば、ある種のデバイスは、すでにモデムコマンド（ＧＳＭ  ＡＴ）に応答し、データを出力することができる。したがって、デバイスドライバ５５０（または場合によってはより高レベルのコンポーネント）は、データを変換し、適切なモデムコマンドを挿入し、それによって補助デバイスは、ハードウェア変更や再プログラミングを必要とすることなくデータを表示することになる。他のデバイスがすでにサポートしている他の任意のフォーマットおよび／または定義されたインタラクションメカニズムも、同様に使用することができる。
【００３９】
しかし、これは常に可能ではなく、それ故に、一部の補助デバイスは、補助ディスプレイとして機能するために、追加のファームウェアを必要とすることになる。一部の補助デバイスは、コードをこのデバイス上にダウンロードし、実行することができるようにすることに留意されたい。いずれにしても、補助ディスプレイとして機能するためには、基本的なデバイスを用いてどのような機能を実現すべきか、デバイスドライバ（通常はデバイスベンダによってやはり提供される）とデバイスファームウェアの間で機能をどのように分割すべきかを決定することは、デバイスベンダ次第である。
【００４０】
理解されるように、そのため、基本的な補助ディスプレイ５００に通信する前にデータが変換され、フィルタされ、そして／または変化されることができる、すなわち補助ディスプレイプラットフォーム中、およびデバイスドライバ５５０中における少なくとも２つのレベルが存在する。１つの一般的な目標は、このプログラムのＡＰＩコールを任意の特定のデバイスタイプから独立させることなので、デバイスドライバが、通常、比較的小さくされるように意図されているのでコンバータは、このようにデバイスの機能に応じて変化する必要があることがある。
【００４１】
一例として、通知は、一般にデバイス機能にかかわらずプログラム３０２の観点から同じ通知ＡＰＩを使用すべきである。したがって、タイトル、テキスト、およびイメージ、アイコン、ボタン、メニューなどのオプションの情報をパラメータとして指定することができる。グラフィックス機能がないデバイスは、このテキスト以外はどのようなものも情報から取り除くことになり、そのテキストでさえ、時間にわたって行を換えるなどにより、特定のデバイス表示にフィットするように修正することがある。
【００４２】
別の例として、デバイス上のキャッシュにデータを取り入れるためなど、コンテンツダウンロードのためのＡＰＩが提供される。デバイスが、キャッシュおよび定義されたナビゲーションフレームワークをもたない場合には、補助ディスプレイプラットフォームは、ナビゲーションフレームワークを提供することができ、要求に応じて次のアイテムをフェッチし、リンクが選択されると異なるページに対応する異なるビットマップを供給するなどのタスクを実行する。
【００４３】
図６を参照すると、機能拡張デバイス６００では、基本的に唯一の要求は、例えばシリアライザ６４０を介してシリアル化されたオブジェクト中でデータパイプおよびパスを確立することである。ユーザモードドライバは、接続タイプにかかわらず、すべての機能拡張ディスプレイについて動作することができるが、デバイスごとの接続タイプごとに１つのドライバを使用することがより直截的であるように思われる。いずれにしても、ドライバ６６０は、ＴｉｎｙＣＬＲ−ベースのデバイスが理解することができる何かにＡＰＩ−提供データおよびコマンドを変換することを担う。一般に、ファームウェアオペレーションは、補助ディスプレイプラットフォームのプロバイダによく知られているので、通過されるオブジェクトは、基本的に補助ディスプレイプラットフォーム、機能拡張デバイスドライバ、および機能拡張デバイスが合意するどのようなものにすることもできる。
【００４４】
コンテンツは、一般にこの機能拡張デバイス上のキャッシュにダウンロードされることになり、次いでこのデバイスそれ自体が、要望に応じてコンテンツを処理することになる。これにより、切り離された使用が可能になり、また同様に、システム上で稼働している複数のアプリケーション（１つのアプリケーションを一時に実行してこの補助ディスプレイ上のキャッシュされたコンテンツにアクセスして）にコンテンツを提供させることも可能になることに留意されたい。通知は、設計により現在実行中のアプリケーションにインポーズすることになる。通知は、ＦＩＦＯ（ｆｉｒｓｔ−ｉｎ  ｆｉｒｓｔ−ｏｕｔ）方式などの適切な順序付けで提示のために構成することができるが、容易に理解できるように、通知のタイプのうち異なる優先順位も存在することがある（例えば、緊急の通知、最近の通知などには、通常または古い通知よりも高い優先順位を与えることもできる）。
【００４５】
図６に示す一実施形態においては、キャッシュされたコンテンツをナビゲートし、表示するために、デバイスアプリケーション６６９およびシェルプログラム６７０は、ＴｉｎｙＣＬＲフレームワーク６７４およびコンポーネント６７６上で稼働し、これは、データをインタープリットし、ナビゲートし、表示する。一般に、シェルプログラム６７０は、補助ディスプレイデバイスのホームページ、非クライアントエリア（たとえ他のコンテンツが、時計、バッテリインジケータ、ネットワークインジケータなど、通常、必要とされるものを表示するために使用されるデバイス上で表示されていても、このディスプレイがオンのときには常に見ることができるデバイススクリーン上のエリア）、メニュー、および一般のルックアンドフィールを提供する。この提供されるデータは、そのそれぞれがＴｉｎｙＣＬＲフォームオブジェクトによってルートされるＴｉｎｙＣＬＲビューオブジェクトの視覚ツリーである、スクリーンの有向グラフの形態とすることができ、または有向グラフに変更することができる。シェルレイヤは、ファームウェアのより低いレイヤからボタンイベントを受け取り、これらのボタンイベントをインタープリットし、適切な場合にこのデータ中でナビゲートする。シェルプログラム６７０はまた、前述のように補助ディスプレイプラットフォームを介してメインコンピュータシステムからの通知要求を受け入れ、メインコンピュータシステムに対して要求を発行して、キャッシングマネージャ６７２から、コンテンツが必要とされる（例えば、見つからない）ことを知ったときに、新しいコンテンツを提供する。シェルプログラム６７０はまた、メインコンピュータシステムが接続されていないときに生じることができる時刻指定された通知を表示する。
【００４６】
オフラインキャッシングマネージャ６７２は、ＴｉｎｙＣＬＲ６７６の上に書き込まれたアセンブリを備え、これは、デバイスに記憶されたデータアイテムのキャッシュを管理する。このコンポーネントはまた、あるメモリ管理を行い、システムアプリケーションプログラムが、デバイスが記憶することができるよりも多くのデータを提供できるという事実に対応している。このファームウェアがデータキャッシュを変更する場合、このコンポーネントは、この情報を追跡し、システム上でアプリケーションプログラムに対してイベントをポストして、メインコンピュータシステムがオンラインである場合には直ちに、オンラインでない場合にはマシンがオンラインに復帰するときにこのアプリケーションプログラムに知らせる。キャッシュマネージャは、インターフェースを介してドライバ６６０に対して公開することができる。
【００４７】
補助デバイスは、これらの補助デバイスの製造業者によって、前述の機能を超える拡張機能をもつように構成することもできることに留意されたい。この目的を達するために、スタック中のドライバに沿って１つまたは複数のハードウェアコンポーネントを追加して、補助ディスプレイプラットフォームの補助デバイスおよび残りの部分に新しい任意のコンポーネントを公開することができる。このようなハードウェア拡張については、本願と同時に出願され、参照により本明細書に組み込まれる「Extensible Architecture for Auxiliary Display」という名称の同時係属の米国特許出願に記載している。
【００４８】
前述したものから理解することができるように、本発明は、実際に使用中の補助ディスプレイデバイスのタイプとは独立に、アプリケーションプログラムを書いて補助ディスプレイに情報を通信することができる補助ディスプレイプラットフォームを提供する。同時に、補助ディスプレイプラットフォームにより、ハードウェアデバイスの製造業者は、たとえあったとしてもハードウェアに対するわずかな変更でこれらのデバイスを補助ディスプレイとして使用することができるようになる。このように、本発明は、現代のコンピューティングにおいて必要とされる数多くの利点および長所を提供する。
【００４９】
本発明は、様々な変更形態および代替構造の余地があるが、本発明のある種の例示した実施形態について、図面中に示し、上記に詳細に説明した。しかし、本発明を開示した１つまたは複数の特定の形態に限定する意図はなく、反対に、本発明の趣旨および範囲に含まれるすべての変更形態、代替構成、および均等物を網羅するものであることを理解されたい。
【図面の簡単な説明】
【００５０】
【図１】本発明を組み込むことができる、従来のパーソナルコンピュータシステムの形態の汎用コンピューティングデバイスを示すブロック図である。
【図２Ａ】様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。
【図２Ｂ】様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。
【図２Ｃ】様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。
【図２Ｄ】様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。
【図２Ｅ】様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。
【図３】本発明の一態様による、アプリケーションプログラムが任意の補助ディスプレイデバイスのファームウェアとデータを交換することができることにより例示のレイヤ化アーキテクチャを一般的に表すブロック図である。
【図４】本発明の一態様による、どのように補助認識アプリケーションプログラムが、一実施形態において、補助ディスプレイプラットフォームとインターフェースして、複数の補助ディスプレイデバイスとデータを交換するかの一例を示す図である。
【図５】本発明の一態様による、どのように補助認識アプリケーションプログラムが、一実施形態において、補助ディスプレイプラットフォームとインターフェースして、基本的な補助ディスプレイデバイスとデータを交換するかの例を示す図である。
【図６】本発明の一態様による、どのように補助認識アプリケーションプログラムが、一実施形態において、補助ディスプレイプラットフォームとインターフェースして、機能拡張された補助ディスプレイデバイスとデータを交換するかの一例を示す図である。
【符号の説明】
【００５１】
１２０  コンピューティングデバイス
１２１  主処理装置
１２２  システムメモリ
１２３  システムバス
１２４  ＲＯＭ
１２５  ＲＡＭ
１２６  ＢＩＯＳ
１２７  ハードディスクドライブ
１２８  磁気ディスクドライブ
１２９  磁気ディスク
１３０  光ディスクドライブ
１３１  光ディスク
１３２  ハードディスクドライブインターフェース
１３３  磁気ディスクドライブインターフェース
１３４  光ドライブインターフェース
１３５  オペレーティングシステム
１３６  アプリケーションプログラム
１３６’  アプリケーションプログラム
１３７  他のプログラムモジュール
１３８  プログラムデータ
１４０  キーボード
１４２  マウス
１４６  シリアルポートインターフェース
１４７  モニタ
１４８  ビデオアダプタ
１４９  リモートコンピュータ
１５１  ローカルエリアネットワーク
１５２  ワイドエリアネットワーク
１５３  ネットワークインターフェース
１５４  モデム
１５５  補助ディスプレイインターフェース
１５６  入力デバイスインターフェース
２００  補助ディスプレイ
２０１  入力デバイス
２０２  電話
２０４  モバイルコンピュータ
２０６  モニタ
２０８  コンソール
２１０  ハウジング
３００  リモート補助ディスプレイ
３０１  補助ディスプレイハードウェア
３０２  補助認識アプリケーション
３０４  補助ディスプレイＡＰＩ
３０６  クライアントアプリケーション
３０８  システムデータプロバイダ
３１０  ポータブルデバイスＡＰＩ
３１２  ユーザモードドライバフレームワーク
３１６  通知クライアント
３２４  基本ディスプレイデバイスドライバ
３２５  拡張ディスプレイデバイスドライバ
３２７  リモートスタックおよびドライバ
３２８  ホストハードウェア
４３０  補助ディスプレイプラットフォーム
４３２  マトリックス［クライアントアプリから補助デバイス］
５００  基本的な補助ディスプレイデバイス
５５０  基本的なディスプレイデバイスドライバ
５５２  ライブラリ
６００  拡張補助ディスプレイデバイス
６４２  ライブラリ
６６０  拡張ディスプレイデバイスドライバ
６６９  デバイスアプリケーション
６７０  シェルプログラム
６７２  オフラインキャッシングマネージャ
６７４  ＴｉｎｙＣＬＲフレームワーク
６７８  ＴｉｎｙＣＬＲ  ＵＳＢドライバおよびＴｉｎｙＨＡＬ
６８０  ＵＳＢクライアントチップセット
【図１】
2006164271.tif 000003
【図２Ａ】
2006164271.tif 000004
【図２Ｂ】
2006164271.tif 000005
【図２Ｃ】
2006164271.tif 000006
【図２Ｄ】
2006164271.tif 000007
【図２Ｅ】
2006164271.tif 000008
【図３】
2006164271.tif 000009
【図４】
2006164271.tif 000010
【図５】
2006164271.tif 000011
【図６】
2006164271.tif 000012
【外国語明細書】
2006164271000001.pdf