(57)【要約】【課題】  それによってアプリケーションプログラムが、ユーザへの表示のための本質的にすべてのタイプの補助ディスプレイデバイスにデータを供給できるアーキテクチャを提供すること。【解決手段】  定義されたアプリケーション層（たとえば、インターフェースを介してアクセスされる）は、プログラムが、補助ディスプレイデバイスへのデータの出力を制御するサービスにデータを供給することを可能にし、アクチュエータを介するデバイスとの適当なユーザ相互作用の際にアプリケーションにナビゲーションデータを返す。列挙は、アプリケーションが、デバイスの機能を発見することを可能にし、アービトレーションは、どのアプリケーションがデバイスへの入出力権利を有するかを決定する。このアーキテクチャは、さらに、様々なタイプのディスプレイが補助ディスプレイとして働くことを可能にするプラグ可能プロトコルプロキシを含むプロトコル層を提供する。【選択図】  図４
2006012123.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいて、
補助情報を提示するために前記コンピュータシステムに結合された補助デバイスと、
前記コンピュータシステムで走り、前記コンピュータシステムで走るコンピュータプログラムによってインターフェースを介してアクセスされる補助デバイスサービスであって、前記補助デバイスでの情報の提示に関連するデータを前記コンピュータプログラムから受け取るように構成された補助デバイスサービスと、
前記コンピュータプログラムのうちのどれが出力データを前記補助デバイスに提示させるかを決定する、前記補助デバイスサービスのメディエーションコンポーネントと
を含むことを特徴とするシステム。
【請求項２】
前記メディエーションコンポーネントは、前記補助デバイスの出力機能に対応する情報を前記コンピュータプログラムに通信することを特徴とする請求項１に記載のシステム。
【請求項３】
少なくとも１つの選択可能なプロトコルコンポーネントを含むプロトコルコンポーネントセットをさらに含み、前記補助デバイスサービスは、前記補助デバイスによって使用されるプロトコルに対応する、前記セットから選択されたプロトコルコンポーネントを介してその補助デバイスと通信することを特徴とする請求項１に記載のシステム。
【請求項４】
前記組の各プロトコルコンポーネントは、前記補助デバイスサービスのインターフェースにプラグインすることを特徴とする請求項３に記載のシステム。
【請求項５】
前記補助デバイスでの情報の提示に関係する前記コンピュータプログラムから受け取られる前記データは、登録データを含むことを特徴とする請求項１に記載のシステム。
【請求項６】
前記補助デバイスでの情報の提示に関係する前記コンピュータプログラムから受け取られる前記データは、表示可能データに対応する情報を含むことを特徴とする請求項１に記載のシステム。
【請求項７】
前記表示可能データから受け取られるデータは、ビットマップを含むことを特徴とする請求項１に記載のシステム。
【請求項８】
前記表示可能データから受け取られるデータは、ページへのレンダリングのために解釈することができるデータを含むことを特徴とする請求項１に記載のシステム。
【請求項９】
前記表示可能データから受け取られるデータは、レンダリング命令を含むことを特徴とする請求項１に記載のシステム。
【請求項１０】
前記コンピュータプログラムのそれぞれは、前記補助デバイスに関係するイベントを受け取るメカニズムを含むことを特徴とする請求項１に記載のシステム。
【請求項１１】
コンピュータプログラムによって受け取られるイベントは、提示のためのデータを提供することの要求に対応することを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記補助デバイスは、関連するアクチュエータを有し、コンピュータプログラムによって受け取られるイベントは、ナビゲーションコマンドに対応することを特徴とする請求項１０に記載のシステム。
【請求項１３】
前記補助デバイスは、関連するアクチュエータを有し、前記メディエーションコンポーネントは、前記コンピュータプログラムのどれはアクチュエータのアクチュエーションに対応するイベントを受け取るかを決定することを特徴とする請求項１０に記載のシステム。
【請求項１４】
前記補助デバイスの少なくとも１つの特性は、前記コンピュータシステムによって構成可能であることを特徴とする請求項１に記載のシステム。
【請求項１５】
補助情報を提示するために前記コンピュータシステムに結合された少なくとも１つの他の補助デバイスをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項１６】
１つの補助デバイスは、別の補助デバイスが結合された時より後の時に前記コンピュータシステムに結合されるようになることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記補助デバイスが、無線接続を介して前記コンピュータシステムに結合されることを特徴とする請求項１に記載のシステム。
【請求項１８】
コンピュータシステムにおいて、
コンピュータプログラムからサービス層で関数呼び出しを受け取ることであって、前記関数呼び出しが、前記コンピュータシステムに結合された補助デバイスに情報を書き込むことを指示する、受け取ることと、
前記補助デバイスからナビゲーションコマンドを受け取ることと、
前記関数呼び出しおよび前記ナビゲーションコマンドに基づいて、前記補助デバイスで提示される情報を決定することと
を含むことを特徴とする方法。
【請求項１９】
前記関数呼び出しを受け取ることは、前記補助デバイスへの結合のためにコンピュータプログラムを登録する要求を受け取ることを含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記関数呼び出しを受け取ることは、前記補助デバイスの機能を列挙する要求を受け取ることを含むことを特徴とする請求項１８に記載の方法。
【請求項２１】
イベントを受け取ることと、前記イベントに基づいて前記補助デバイスで提示される情報を決定することとをさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２２】
前記ナビゲーションコマンドは、コンピュータプログラムの選択に対応し、前記補助デバイスで提示される情報を決定することは、どのコンピュータプログラムが選択されたかを判定することと、前記選択されたコンピュータプログラムが前記補助デバイスで情報を提示するためのデータを提供することを要求するために前記選択されたコンピュータプログラムにデータを送ることとを含むことを特徴とする請求項１８に記載の方法。
【請求項２３】
前記要求されたデータを受け取ることと、前記データを提示のために前記補助デバイスに通信することとをさらに含むことを特徴とする請求項２２に記載の方法。
【請求項２４】
前記ナビゲーションコマンドは、選択されたコンピュータプログラムの前記データ内でのナビゲーションに対応し、前記補助デバイスで提示される情報を決定することは、前記ナビゲーションコマンドを前記選択されたコンピュータプログラムに送ることを含むことを特徴とする請求項１８に記載の方法。
【請求項２５】
前記選択されたコンピュータプログラムを、メディエーションを介して選択することをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記補助デバイスでの提示のためのデータをコンピュータプログラムから受け取ることと、前記補助デバイスによって使用される通信プロトコルに対応するプラグ可能プロトコルコンポーネントを介して提示のために前記データを前記補助デバイスに通信することとをさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２７】
実行される時に、請求項１８に記載の方法を実行するコンピュータ実行可能命令を有するコンピュータ可読メディア。
【請求項２８】
コンピュータシステムにおいて、
情報を提示する補助デバイスであって、その補助デバイスのプロトコルを介する前記コンピュータシステムとの通信のために結合された補助デバイスと、
少なくとも１つの選択可能なプロトコルコンポーネントを含むプロトコルコンポーネントセットと、
前記コンピュータシステムで走り、その補助デバイスの前記プロトコルに対応する前記セットからの選択されたプロトコルコンポーネントを介して前記補助デバイスと通信する補助デバイスサービスと
を含むことを特徴とするシステム。
【請求項２９】
前記補助デバイスサービスは、前記コンピュータシステムで走るコンピュータプログラムからプログラムデータを受け取り、前記補助デバイスでの情報の提示のために前記補助デバイスに前記データを通信するのに前記選択されたプロトコルコンポーネントを使用することを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記補助デバイスは、前記補助デバイスに関連するアクチュエータに対応するコマンドを受け取り、データをプログラムするために前記コンピュータシステムで走るコンピュータプログラムに前記コマンドを通信するのに前記選択されたプロトコルコンポーネントを使用することを特徴とする請求項２８に記載のシステム。
【請求項３１】
前記補助デバイスは、前記補助デバイスの少なくとも１つの特性を前記コンピュータシステムに通信するのに前記選択されたプロトコルコンポーネントを使用することを特徴とする請求項２８に記載のシステム。
【請求項３２】
前記コンピュータシステムは、前記補助デバイスの少なくとも１つの構成可能な特性を構成するのに前記選択されたプロトコルコンポーネントを使用することを特徴とする請求項２８に記載のシステム。
【請求項３３】
補助情報を提示するために前記コンピュータシステムに結合された少なくとも１つの他の補助デバイスをさらに含むことを特徴とする請求項２８に記載のシステム。
【請求項３４】
前記他の補助デバイスは、前記選択されたプロトコルコンポーネントを介して前記補助デバイスサービスと通信することを特徴とする請求項３３に記載のシステム。
【請求項３５】
前記他の補助デバイスは、第２の選択されたプロトコルコンポーネントを介して前記補助デバイスサービスと通信することを特徴とする請求項３３に記載のシステム。
【請求項３６】
前記補助デバイスは、無線接続を介して前記コンピュータシステムに結合されることを特徴とする請求項３３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはコンピュータシステムに関し、具体的には、コンピューティングデバイスの情報を表示する改善された方法およびシステムに関する。
【背景技術】
【０００２】
米国特許仮出願第１０／４２９９３０号明細書および米国特許仮出願第１０／４２９９３２号明細書は、全般的に、ある補助コンピューティング機能性を提供する、補助処理メカニズムおよび補助メカニズム、特にディスプレイ関連メカニズムを有するコンピュータシステムの概念を対象とする。たとえば、ラップトップコンピュータのリッドが閉じられており、かつ／またはメインコンピュータがパワーダウンされている場合など、メインコンピュータディスプレイがすぐに可視でない場合であっても、ラップトップコンピュータのリッドまたは側面の小さいＬＣＤが、その所有者に、会議の場所および時刻など、有用な情報を与えることができる。
【０００３】
しかし、そのような補助ディスプレイの使用は、これまでは、専用の補助ディスプレイプログラムが、ディスプレイのタイプおよび表示される情報に関してカスタマイズされる、狭い限られた動作に制限されてきた。そのようなシステムでは、補助ディスプレイプログラムが、サイズおよび解像度など、ディスプレイのタイプの詳細に合わせてコーディングされ、その結果、プログラムが、可読であるがスクリーン領域におさまる物を出力できるようになる。これは、通常のコンピュータシステムディスプレイと異なり、通常のコンピュータシステムディスプレイでは、現代のオペレーティングシステムコンポーネントが、どの特定のビデオグラフィックスアダプタがインストールされているかに関する複雑さおよび詳細を高水準プログラムから抽象化する。それと同時に、専用補助ディスプレイコードは、補助ディスプレイが通常は製造の場合にハードウェアに２〜３行のテキストディスプレイを組み込まれ、必要な物が、専用アプリケーションに会議の時刻および現在時刻などの情報を有する単純なテキストをディスプレイに書き込ませることであったので、実際的な解決策であった。
【０００４】
専用解決策に関する問題の１つは、補助ディスプレイとして働くことができる物が、もはや必ずしも物理的に専用のデバイスでないことである。その代わりに、米国特許仮出願第１０／４２９９３２号明細書に記載されているように、仮想的な形でコンピュータシステムとインターフェースできるディスプレイを有するすべてのデバイスが、潜在的に補助ディスプレイとして働くことができる。したがって、たとえば、携帯電話機、ポケットサイズのパーソナルコンピュータ、またはディジタルアシスタントを、別の（たとえばデスクトップまたはラップトップ）コンピュータに、物理的におよび／または無線（たとえばＢｌｕｅｔｏｏｔｈ）リンクを介して接続することができ、そのディスプレイを他のコンピュータによって乗っ取られることを許容するようにプログラムされている場合に、その別のコンピュータが、そのデバイスのディスプレイを補助ディスプレイとして使用することができる。実際に、デスクトップ機またはラップトップ機のメインモニタのある部分が、補助ディスプレイとして働くことができる。すぐに諒解されるように、ディスプレイのタイプおよび使用可能なアクチュエータ（たとえば、補助デバイスでのスクロールを可能にする）の両方が、デバイスごとに異なり、したがって、専用プログラムは、そのような補助ディスプレイの有用性を非常に制限する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
専用補助ディスプレイプログラムに関するもう１つの問題は、そのプログラムだけが、デバイスでの表示用の情報を提供できることである。専用プログラムは、たとえば、現在再生中のコンパクトオーディオディスクなどの外部供給源から情報を読み取ることができるが、他のアプリケーションプログラムは、そのアプリケーションが専用アプリケーションプログラムおよびディスプレイ要件の深い知識およびデータを専用プログラムから使用可能にする方法に関する深い知識を有しない限り、表示用のデータを提供することができない。
【０００６】
必要な物は、コンピュータシステムのメインオペレーティングシステムの下で走るアプリケーションプログラムが、そのコンピュータシステムに関連する補助ディスプレイでの表示のために適当なデータを適当な時に提供すると同時に、専用補助ディスプレイとして組み込まれた物であれ独立デバイスディスプレイであれ、事実上すべての可能なディスプレイが補助ディスプレイとして働くことを可能にする形である。
【課題を解決するための手段】
【０００７】
短く言うと、本発明は、アプリケーションプログラムおよびオペレーティングシステムコンポーネントを含むプログラムが、補助ディスプレイデバイスへのデータの出力を制御し、アクチュエータ（たとえばボタン）を介するデバイスのすべての相互作用を処理するサービス層にデータを供給できるようにする定義されたアプリケーション層（たとえばインターフェースを介してアクセスされる）を含むアーキテクチャを提供する。この階層化アーキテクチャは、さらに、様々なタイプのディスプレイが補助ディスプレイとして働くことを可能にするプラグ可能プロトコルプロキシを含むプロトコル層を提供する。この非常に柔軟でプラットフォーム様のモデルは、プログラム開発者に、使用可能な場合に補助ディスプレイを活用するプログラムを提供する能力を与え、ディスプレイ製造業者に、拡張可能な機能を有するディスプレイを提供する能力を与える。その結果、本発明の補助ディスプレイのモデルおよびアーキテクチャは、コンピュータシステムのメインコンポーネントがパワーダウンされている時を含めて、コンピュータシステムに関連する１つまたは複数の様々な位置で、ユーザが一目でコンパクトだが重要な情報を見ることを可能にすることによって、ユーザ経験を拡張する。「補助ディスプレイデバイス」が、全般的に、補助ディスプレイスクリーンおよび／またはそのスクリーンに関連するすべてのアクチュエータならびにデバイス内の他のハードウェア、ファームウェア、またはソフトウェアを指すことと、補助ディスプレイデバイスに、ピクセルタイプのディスプレイスクリーンの代わりにまたはこれに加えて、インジケータ（たとえば個々のＬＥＤ）を含めることができることに留意されたい。
【０００８】
一実施形態で、列挙およびアービトレーションを処理するメディエーションコンポーネントを有する補助デバイスサービスが提供される。列挙は、オペレーティングシステム上で走るコンピュータプログラムが、補助ディスプレイおよびそれに対応するアクチュエータの機能の非同期イベントまたは照会によって機能を判定し、その結果、アプリケーションが、望み通りに、たとえば色、解像度、ナビゲーションコマンドなど、入出力をそれ相応に調整できるようにする形を提供することを指す。たとえば、補助ディスプレイデバイスが、高解像度カラースクリーンおよび４方向ナビゲーションボタンを有することをアプリケーションが知っている場合に、そのアプリケーションは、望まれる場合に、リッチフォーマットデータを補助ディスプレイに出力し、４方向でのナビゲーションコマンドを受け入れるように調整することができる。
【０００９】
どのアプリケーションまたはオペレーティングシステムコンポーネントがそのデータを現在表示されなければならないかを決定するメカニズムを提供するために、アービトレーションも、サービス層のメディエーションコンポーネント内で提供され、アプリケーションおよび他のプログラムタスクが、適当にディスプレイを交替で共有することに留意されたい。しばしば、現在ディスプレイデバイスに結合されている（同様に、フォーカスを有する）プログラムは、ホームページからナビゲートすることによるなど、ユーザ選択された物であるが、他のイベントが、ユーザの選択（かなり以前に行われた可能性がある）より優先される場合がある。たとえば、会議リマインダ、電話呼、ホームページへの復帰タイムアウト、電力低下状態、または現在表示されている物より表示することが重要である可能性が高いと考えられる物などのイベントが発生する場合に、補助ディスプレイを、別のアプリケーションのデータまたはシェルアプリケーションホームページを表示するために完全に、あるいはイベントを示す他の形で（たとえば、画面の点滅または一部を占める）のいずれかで変更することができる。複数の補助ディスプレイを有することが可能であり、ＬＥＤなどの１つまたは複数のインジケータも有することが可能であり、これによって、アービトレーションが、アプリケーションプログラムおよび類似物と各そのようなディスプレイおよび／またはインジケータとの間のデータマッピングを決定することに留意されたい。
【００１０】
サービス層のアプリケーション関連コンポーネントの下に、プロトコルプロキシ（たとえば、ＤＬＬすなわちダイナミックリンクライブラリ）がプラグインされる通信関連インターフェースがあり、この通信関連インターフェースは、結合された補助ディスプレイの存在の最初の検出に応答して、自動的または十分に自動的とすることができる。この形で、合意されたプロトコルが存在する補助ディスプレイデバイスとの通信が可能である（たとえば、ＵＳＢ  ＨＩＤまたはＢｌｕｅｔｏｏｔｈインターフェース／プロトコルおよび類似物を介する接続、および、たとえば、本質的に世界中のどこにでも配置されるウェブサービスへの接続）。
【００１１】
プラグ可能プロトコルプロキシのゆえに、通信の詳細および要件が、アプリケーションプログラムおよびメディエーションコンポーネントから抽象化される。本質的に、アプリケーションプログラムは、適当なインターフェースを介して補助デバイスサービスだけを見て、補助ディスプレイデバイスとデータを正しく交換する。同様に、補助ディスプレイデバイスは、必要なインターフェースだけを見て、上位コンポーネントとデータを正しく交換する。
【００１２】
一実施形態で、補助ディスプレイは、それ自体のＣＰＵ（本質的に組み込みコントローラから強力なプロセッサまでのすべての物）およびメモリを有することができ、このファームウェアは、本明細書で「オンライン」と称する、メインコンピュータ動作とあいまって動作することができ、あるいは、メインコンピュータが「オフライン」である、たとえば、コンピュータが、ある程度までパワーダウンされ、たとえば、完全にパワーダウンされるか、スリープ／スタンバイ／ハイバネーション状態または類似物（たとえば、ＡＣＰＩ状態Ｓ３からＳ５）である場合に動作することができる。オンラインの場合に、オンライン相互作用マネージャが、ユーザ入力を受け取り、対応するデータを、処理のためにアプリケーションプログラムおよびディスプレイコントローラに渡すことができ、オフラインの場合に、オフライン相互作用マネージャが、ユーザ入力を受け取り、キャッシングされたデータに基づいて、前述の米国特許仮出願、名称「Ｃａｃｈｉｎｇ  Ｄａｔａ  ｆｏｒ  Ｏｆｆｌｉｎｅ  Ｄｉｓｐｌａｙ  ａｎｄ  Ｎａｖｉｇａｔｉｏｎ  ｏｆ  Ａｕｘｉｌｉａｒｙ  Ｉｎｆｏｒｍａｔｉｏｎ」に記載されているように、マイクロコントローラと共に働いて補助ディスプレイ出力を制御する。
【００１３】
他の利益は、図面と共に理解される場合に、次の詳細な説明から明白になる。
【発明を実施するための最良の形態】
【００１４】
例示的オペレーティング環境
図１は、本発明を組み込むことができる普通のパーソナルコンピュータシステムの形のコンピューティングデバイス１２０を表すブロック図である。当業者は、図１に示されたパーソナルコンピュータシステム１２０が、単に例示的であることを意図されていることと、本発明を、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラマブルなコンシューマ電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ヘッドレスサーバ、および類似物を含む他のコンピュータシステム構成と共に実践できることを諒解するであろう。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートの両方のメモリストレージデバイスに配置することができる。
【００１５】
パーソナルコンピュータシステム１２０に、処理ユニット１２１、システムメモリ１２２、およびシステムメモリを含む様々なシステムコンポーネントを処理ユニット１２１に結合するシステムバス１２３が含まれる。システムバス１２３は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。システムメモリに、読取専用メモリ（ＲＯＭ）１２４およびランダムアクセスメモリ（ＲＡＭ）１２５が含まれる。スタートアップ中などにパーソナルコンピュータ１２０内の要素の間での情報の転送を助ける基本ルーチンを含む基本入出力システム１２６（ＢＩＯＳ）が、ＲＯＭ  １２４に保管される。パーソナルコンピュータ１２０に、さらに、図示されないハードディスクから読み取り、これに書き込むハードディスクドライブ１２７、取外し可能磁気ディスク１２９から読み取り、これに書き込む磁気ディスクドライブ１２８、ＣＤ−ＲＯＭまたは他の光学メディアなどの取外し可能光学ディスク１３１から読み取り、これに書き込む光学ディスクドライブ１３０を含めることができる。ハードディスクドライブ１２７、磁気ディスクドライブ１２８、および光学ディスクドライブ１３０は、それぞれ、ハードディスクドライブインターフェース１３２、磁気ディスクドライブインターフェース１３３、および光学ドライブインターフェース１３４によってシステムバス１２３に接続される。ドライブおよびそれに関連するコンピュータ可読メディアは、パーソナルコンピュータ１２０に、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。本明細書に記載の例示的コンピュータシステムでは、ハードディスク、取外し可能磁気ディスク１２９、および取外し可能光学ディスク１３１を使用するが、当業者は、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、および類似物などのコンピュータによってアクセス可能なデータを保管できる他のタイプのコンピュータ可読メディアも、例示的コンピュータシステムで使用できることを諒解するであろう。
【００１６】
オペレーティングシステム１３５（Ｗｉｎｄｏｗｓ（登録商標）ＸＰなど）、１つまたは複数のアプリケーションプログラム１３６（Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｏｕｔｌｏｏｋなど）、他のプログラムモジュール１３７、およびプログラムデータ１３８を含む複数のプログラムモジュールを、ハードディスク、磁気ディスク１２９、光学ディスク１３１、ＲＯＭ  １２４、またはＲＡＭ  １２５に保管することができる。ユーザは、キーボード１４０およびポインティングデバイス１４２などの入力デバイスを介して、パーソナルコンピュータ１２０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、または類似物を含めることができる。これらおよび他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインターフェース１４６を介して処理ユニット１２１に接続されるが、パラレルポート、ゲームポートおよび／またはｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）などの他のインターフェースによって接続することができる。モニタ１４７または他のタイプのディスプレイデバイスも、ビデオアダプタ１４８などのインターフェースを介してシステムバス１２３に接続される。モニタ１４７の他に、パーソナルコンピュータに、通常はスピーカおよびプリンタなどの他の周辺出力デバイス（図示せず）が含まれる。補助ディスプレイ２００は、追加出力デバイスであり、たとえば、補助ディスプレイインターフェース１５５を介してシステムバス１２３に接続することができる。補助ディスプレイ２００は、シリアルインターフェースを介して、または、パラレルポート、ゲームポート、赤外線接続、無線接続、ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）、または他の周辺デバイス接続などの他のインターフェースによって、コンピューティングデバイス１２０に接続することもできる。図１の入力デバイス２０１は、補助ディスプレイ２００とインターフェースし、かつ／またはこれを制御する１つまたは複数のアクチュエータを提供することができ、たとえば、入力デバイスインターフェース１５６を介してシステムバス１２３に接続することができ、入力デバイスインターフェース１５６は、シリアルインターフェースとするか、パラレルポート、ゲームポート、赤外線接続、無線接続、ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）、または他の周辺デバイス接続などの他のインターフェースによる物とすることができる。
【００１７】
パーソナルコンピュータ１２０は、リモートコンピュータ１４９などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ１４９は、もう１つのパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、通常は、パーソナルコンピュータ１２０に関して上で説明した要素の多くまたはすべてを含むが、図１には、メモリストレージデバイス１５０だけを示した。図１に示された論理接続に、ローカルエリアネットワーク（ＬＡＮ）１５１および広域ネットワーク（ＷＡＮ）１５２が含まれる。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれた物である。
【００１８】
ＬＡＮネットワーキング環境で使用される場合に、パーソナルコンピュータ１２０は、ネットワークインターフェースまたはネットワークアダプタ１５３を介してローカルエリアネットワーク１５１に接続される。ＷＡＮネットワーキング環境で使用される場合に、パーソナルコンピュータ１２０に、通常は、インターネットなどの広域ネットワーク１５２を介する通信を確立する、モデム１５４または他の手段が含まれる。モデム１５４は、内蔵または外付けとすることができるが、シリアルポートインターフェース１４６を介してシステムバス１２３に接続される。ネットワーク化された環境では、パーソナルコンピュータ１２０に関して図示したプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに保管することができる。図示のネットワーク接続が例示的であり、コンピュータの間の通信リンクを確立する他の手段を使用できることを諒解されたい。
【００１９】
本発明に従って補助ディスプレイが働くために、コンピュータシステムが完全に動作する必要がないことに留意されたい。実際に、図６に関して下で説明するように、補助ディスプレイは、コンピュータシステムがスリープ状態、スタンバイ、またはハイバネーションモードである場合、（たとえばＡＣＰＩ状態Ｓ３〜Ｓ５）および／またはユーザがまだログオンしていないか、他の形でセキュリティメカニズムを介してシステムからロックアウトされている場合など、コンピュータがパワーダウンされている場合でも、少なくともデフォルトの範囲またはユーザによって構成される範囲まで働くことができる。たとえば、ユーザは、コンピュータシステムがパワーダウンされている場合でも、パーソナルコンピュータに一体化された電話受話器およびスピーカホンが普通の機器として働くことを求め、発呼者ＩＤデバイスとして補助ディスプレイを使用することを求める可能性がある。このデバイスは、コンピュータシステムが完全にはパワーアップされなかった場合を含めて、着呼をログ記録するなど、コンピュータがもう一度パワーアップされた場合に、後でコンピュータシステムに送るためにデータを保管することもできる。
【００２０】
補助ディスプレイは、メインディスプレイを補足することができ、メインディスプレイがシャットダウンされるか他の形で動作しない（たとえば切断された）場合に、ユーザにある情報を与えるために代理ディスプレイとして働くこともできる。たとえば、メインディスプレイをパワーアップする方法などの情報が役に立つ可能性があり、メインディスプレイがオフであり、かつ／または簡単に可視でない（たとえば、ラップトップ機のリッドが閉じられている）場合にユーザが見ることのできるモバイルコンピュータに接続された補助ディスプレイデバイスの会議の部屋番号および／または道順もそうである。継続的に可視のスクリーンを有するタブレットＰＣであっても、電力を節約するためにメインディスプレイをシャットダウンすることができ、これによって、補助ディスプレイがかなりの利益を提供できるようになる。ユーザが、コンピュータシステムの状態に基づいてディスプレイの範囲を制限することができ、たとえば、ユーザがログインしていない場合に、ある機密でないか非常に特に制御された情報だけを表示することなどができることに留意されたい。
【００２１】
これらのパワーダウンモードでの通信を可能にし、制御するために、不揮発性メモリに保管され、副プロセッサによってロードされ実行される場合に、ある電力が使用可能である限り、使用される他の補助コンポーネントと共に補助ディスプレイをイネーブルするファームウェアが存在することができる。言い換えると、副プロセッサは、関連するメモリ（ＮＶＲＡＭ、および潜在的にいくつかのＲＯＭも）を有し、ファームウェアは、ＮＶＲＡＭまたはＲＯＭのいずれかにロードされて、その副プロセッサによって実行される。本明細書で使用される用語「ファームウェア」が、一般に、補助メモリ、その中のコード、および／またはそれが動作する副プロセッサを表すと考えることができることに留意されたい。
【００２２】
図２Ａから２Ｅに、補助ディスプレイスクリーン２００ａから２００ｅの配置に関する、コンピューティングデバイス上またはコンピューティングデバイスに関連する例示的な位置を示す。図２Ａおよび２Ｂからわかるように、補助ディスプレイスクリーン２００ａを、独立型の（陸線または形態）電話機２０２の前面、背面、または他の表面に置くことができ（Ｂｌｕｅｔｏｏｔｈテクノロジを介するなど、他の形でリンクされる場合に物理的に結合される必要はない）、かつ／または、別の補助ディスプレイスクリーン２００ｂを、モバイルコンピュータ２０４またはタブレットコンピューティングデバイス（図示せず）の縁またはリッドに置くことができる。補助ディスプレイスクリーン２００ｃ（図２Ｃ）のもう１つの場所は、コンピュータに取り付けられる電話機上あるいはモニタ２０６またはキーボード（図示せず）などのコンピュータに取り付けられる周辺デバイス上とすることができる。図２Ｄおよび２Ｅに、コンピュータに接続された独立型コンソール２０８の前面パネル上または他のハウジング２１０（マザーボードのハウジングなど）上の、補助ディスプレイスクリーン２００ｄおよび２００ｅの追加の配置を示す。コンピュータへの無線接続または他の接続を有する時計、リモートコントロールデバイス、またはリモート壁掛けユニットなどに配置されるなど、コンピューティングデバイスまたは表示機能性を有する他のデバイスの表面に補助ディスプレイスクリーンを置くことができることを、当業者は諒解するであろう。
【００２３】
図２Ａから２Ｅからわかるように、補助ディスプレイは、１つまたは複数のＬＥＤ、２行英数字ディスプレイ、白黒ディスプレイ、またはカラーディスプレイなどの任意の個数の既知のタイプのディスプレイの形とすることができる。本発明が、補助ディスプレイ２００としての他のコンピューティングデバイスまたは通信デバイスのディスプレイも使用できることを、当業者は諒解するであろう。これらの他のコンピューティングデバイスまたは通信デバイスに、汎用コンピュータ、セル電話機、および、ポケットベルまたは携帯情報端末（ＰＤＡ）などのハンドヘルドデバイスが含まれる。さらに、本発明は、ユーザがログインする前を含めて、補助ディスプレイ２００として、コンピューティングデバイス１２０のオンスクリーンディスプレイの区域内で実施される仮想補助ディスプレイ（たとえば、スクリーンセーバまたはグラフィカルユーザインターフェースのコンポーネント）を使用することができる。補助ディスプレイ２００に、上で説明した形のいずれかの組合せを含めることができ、補助ディスプレイ２００を、１つまたは複数のＬＥＤなどのインジケータと物理的にまたは論理的に組み合わせ、かつ／または仮想補助ディスプレイと共に使用することもできる。
【００２４】
スクリーンがなくても、メインコンピュータシステムで走るアプリケーションプログラムに関するアクティビティの発生に関する通知のための補助ディスプレイ２００として、１つまたは複数のＬＥＤを有利に使用することができる。そのような補助ディスプレイは、低コスト低電力消費で実施することができ、控え目な形で通知を提供することができる。これは、極端に小さいフォームファクタを有するシステムまたはユーザのための通信が別の人によって管理されるシステムに効果的に使用することができる。補助ディスプレイ２００は、さらに、通知を遠くから見る必要がある場合に効果的になる可能性がある。補助ディスプレイは、新しい電子メールメッセージの通知など、アクティビティに関連する情報コンテンツがある場合に、オンスクリーン仮想補助ディスプレイとあいまって使用することもできる。この場合に、電子メールからの内容を、仮想補助ディスプレイ２００に表示することができる。さらに、内容の表示が望ましくない場合に、公衆システム（図書館またはキオスク）または共有されるコンピュータについて、補助ディスプレイ２００を効果的に使用することができる。
【００２５】
その代わりに、コストまたはスペースがクリティカルであるが、通知および基本的内容が望まれる場合に、２行英数字ディスプレイを補助ディスプレイ２００として有利に使用することができる。これは、タブレットＰＣ、ラップトップ機、バジェットＰＣ、電話ドッキングステーション、モニタベゼル、および、受話器、キーボードまたはリモートコントロールなどの小さく低コストのＰＣ機器または周辺機器に効果的に使用することができる。これは、発呼者ＩＤボックスの置換物（およびこれに対する改善）としても効果的に使用することができる。
【００２６】
さらに、メディアリッチアプリケーション、ハイエンドコンシューマシステム、またはメディアセンタシステムに、白黒またはカラーの複数行ディスプレイを補助ディスプレイ２００として有利に使用することができる。これは、より大きいフォームファクタを有するハイエンドラップトップ機に、または、通信が強調される場合、ビジネスまたは通信を強く強調されたフル機能ＰＣ、ラックマウントサーバのフロントパネルディスプレイ、メディアセンタ機器またはハイエンドメディア機器（ポータブルメディア機能を有するリモートコンソールシステムを含む）およびモバイル補助ディスプレイに、効果的に使用することができる。さらに、ユーザがＰＣを使用する場合に補助デバイスの役割を拡張できる場合に、別のコンピューティングデバイスまたは通信デバイスのディスプレイを補助ディスプレイ２００として有利に使用することができる。これらの他のコンピューティングデバイスまたは通信デバイスに、汎用コンピュータ、セル電話機、および、ポケットベルまたは携帯情報端末（ＰＤＡ）などのハンドヘルドデバイスが含まれる。さらに、補助ディスプレイが、実際のディスプレイである必要はなく、情報の投射（たとえば壁への）とすることができることに留意されたい。本明細書で称する補助ディスプレイは、視覚表現、聴覚表現、および／または触覚表現のすべてを含む、感知することができる本質的にすべての物からなる物とすることができる。
【００２７】
前に述べたように、仮想補助ディスプレイは、公衆システム（図書館またはキオスク）または、内容の表示が望ましくない場合の共有されるコンピュータの補助ディスプレイ２００として使用することができる。これは、低コストシステムまたは、ＬＥＤさえ非実用的になる非常に最小限のフォームファクタを有するデバイスに効果的に使用することもできる。仮想補助ディスプレイは、スクリーンセーバとしてまたはグラフィカルユーザインターフェースのコンポーネントとして実施することができる。
【００２８】
入力デバイス２０１は、下ではアクチュエータ（ボタンまたはポインティングデバイスなどの単一のメカニズムだけである場合であっても複数形）と称するが、ユーザに、電子メール通知、ボイスメール通知、カレンダ通知、システム状況通知、発呼者ＩＤリスト、および他のタイプの通知メッセージなどのアプリケーションデータまたは通知の異なるカテゴリの間で切り替えるメカニズムを与える。そのようなスイッチボタンに、ユーザが特定のカテゴリ内の通知メッセージの中で前後にスクロールできるようにするアップボタンおよびダウンボタンも付随させることができる。当業者は、キーボード、マイクロホン、ジョイスティック、ゲームパッド、または、バイオメトリックセンサ、環境センサ、位置センサ、もしくは他のタイプのセンサを含むデバイスを含む他のデバイスなどのすべての他のタイプのアクチュエータを使用できることを諒解するであろう。図１に示されたコンピューティングデバイス１２０の入力デバイスのいずれかを、入力デバイス（アクチュエータ）２０１として使用することができ、独立のアクチュエータと共に使用することができる。
【００２９】
補助ディスプレイシステムアーキテクチャ
理解されるように、本発明は、気を散らさず、現在オンスクリーンのタスクがある場合にそのタスクから動作フォーカスを切り替える必要なしに、ユーザが周辺タスクに関するちらりと見ることのできる情報を単純に素早く見るための補助ディスプレイ２００を提供する。本発明と調和して、ユーザは、アプリケーションプログラムデータの中で選択するためにアクチュエータ２０１を使用することによって、ある範囲まで、どの情報が補助ディスプレイに現れるかを選択することができる。プログラムデータおよびイベント通知を使用して、情報の補助表示を示すことができるが、本発明が、トランザクションサービス、オークションサービス、宣伝サービス、エンターテイメントサービス、およびロケーションサービスを含むインターネット関連サービスからなど、他のタイプの情報の補助表示を提供できることを理解されたい。そのようなサービスは、金融トランザクション情報、見出しニュース、株式市況、スポーツスコア、気象および、ユーザによって具体的に要求される情報および求められていない情報を含む他の情報を含む様々な情報を提供することができる。補助ディスプレイ２０１が、通知ライトのセット、２行英数字ディスプレイ、白黒ディスプレイ、またはカラーディスプレイなどの任意の個数の既知のタイプのディスプレイを使用して動作できることも諒解されたい。本明細書で使用される説明を単純にするための「補助ディスプレイデバイス」が、一般に、補助ディスプレイスクリーンおよび／またはそのスクリーンに関連するアクチュエータならびにデバイス内の他のハードウェア、ファームウェアまたはソフトウェアを指すことに留意されたい。しかし、スクリーンおよびアクチュエータを独立のメカニズムとすることができること、および／またはデータを入力するために物理的接触を必要とするアクチュエータがない場合があることを理解されたい。さらに、補助ディスプレイデバイスを、ピクセルタイプディスプレイスクリーンの代わりにまたはこれに加えて多分インジケータ（たとえば個々のＬＥＤ）を含むと考えることができることに留意されたい。
【００３０】
本発明の態様によれば、図３に全般的に示されているように、それによって１つまたは複数のアプリケーションプログラム３０２が事実上すべてのタイプの補助ディスプレイデバイス３０４とインターフェースしてディスプレイ２００にデータを出力し、かつ／またはアクチュエータ２０１を介してユーザと相互作用できるアーキテクチャ３００が提供される。そのようなアプリケーションプログラム３０２（またはアプリケーションプログラムに結合された関連するプラグインコンポーネントを介して）は、補助ディスプレイについて知るようにプログラムされた（すなわち、補助ディスプレイ対応）物であり、したがって、補助ディスプレイデバイス３０４が存在する場合に必ずその補助ディスプレイデバイス３０４を使用してユーザと情報を交換し、これによって改善されたユーザ経験を提供することができる。本明細書で使用する、「アプリケーション」または「アプリケーションプログラム」の概念は、補助ディスプレイにデータを供給することを求める可能性があり、かつ／または補助ディスプレイデバイスの関連するアクチュエータを介してそれに関連する割込みを発生させる可能性がある、普通のプログラムならびにオペレーティングシステムコンポーネントを表すことに留意されたい。
【００３１】
補助ディスプレイ対応のアプリケーションプログラム３０２が補助ディスプレイデバイス３０４を使用することを可能にするために、補助ディスプレイサービス３０６が、コンピュータシステムにインストールされ、アプリケーションモジュール／層を提供し、このアプリケーションモジュール／層を介して、普通のコンピュータオペレーティングシステムで走るアプリケーション層プログラムが、補助デバイス３０４と通信して、そのディスプレイ２００に情報を表示し、かつ／またはアクチュエータ２０１を介してナビゲーションコマンドなどのコマンドを受け取ることができる。このために、アプリケーションプログラム３０２は、定義されたインターフェース３０８を介して、補助ディスプレイサービス３０６（サービス層の）とデータを交換する。下で説明するように、補助ディスプレイサービス３０６は、補助ディスプレイデバイス３０４とデータを交換する。したがって、この非常に柔軟なモデルの結果として、まだ開発されていないものを含むすべてのプログラムが、定義されたインターフェースセット３０８を正しく実装することによって、補助ディスプレイデバイス３０４を使用することができる。サービスが、別々のプロセスとして走っているのではないＤＬＬとしてプラグインをロードする時に、いつでも、そのＤＬＬ内のコードが、サービスの（すなわち、システムの）セキュリティコンテキストではなく、ユーザプロセスのセキュリティコンテキストで走ることに留意されたい。
【００３２】
さらに、一実施形態で、補助ディスプレイサービス３０６は、補助ディスプレイデバイスハードウェア（ならびにすべてのデバイスファームウェアまたはデバイスソフトウェア）を他の層から抽象化し、これによって、適当なデバイスが、まだ開発されていないデバイスを含めて、補助ディスプレイデバイスとして働くことができる。このために、アーキテクチャ３００は、プロトコル層を提供し、このプロトコル層によって、サービス３０６が、適当な通信プロトコル／インターフェースおよび有線または無線のデバイスインターフェース３１０を介してデバイスファームウェア／ハードウェアと通信する。ディスプレイサービス３０６および補助ディスプレイデバイス３０４の両方が適当に実装する既存のまたは将来のすべてのプロトコルが、すべての対応する物理的なまたは無線のコンピュータ−デバイスインターフェース３１０（まだ開発されていないものを含む）と同様に、十分である。
【００３３】
下で説明するように、一実施形態で、メディエーションコンポーネント３１２（たとえば、列挙およびアービトレーションを処理する）は、定義されたインターフェース３１４を介して通信メカニズムから抽象化され、この定義されたインターフェース３１４に、使用される通信プロトコルに適当なようにプロトコルプロキシ３１６がプラグインされる。プロトコルプロキシが、図３では補助ディスプレイサービス３０６の一部として図示されているが、このサービスの一部とみなされる物が、多少任意であり、したがって、プロトコルプロキシを、その代わりにプロトコル層の一部とみなすことができることに留意されたい。どの場合でも、階層化アーキテクチャは、アプリケーション開発者およびディスプレイデバイス製造業者に高い柔軟性を提供する。
【００３４】
図４に移り、アプリケーション層およびサービス層の動作を説明すると、アプリケーションプログラム３０２を望み通りに拡張して、そのデータの一部を補助ディスプレイデバイス３０４を介してユーザに提示することができる。これは、補助ディスプレイサービスインターフェース３０８を直接に理解するアプリケーションプログラム３０２を開発することによって、および／またはインターフェース３０８を理解するコンポーネントにアプリケーションプログラム３０２を関連付けることによって、達成することができる。たとえば、プラグイン（たとえば、ＤＬＬの形の）を用いて、アプリケーション開発者が、アプリケーションデータへの公開されたインターフェースを使用することによって、メインアプリケーションコードを変更せずに（プラグインへのリンクを除いて）アプリケーションプログラムを簡単に開発できるようになる。図４に、アプリケーションプログラム３０２内にある物として補助アプリケーションコンポーネント４０２が示されているが、これは、単なる表現であり、したがって、コンポーネント４０２を、アプリケーションコード自体の中にある物とするか、アプリケーションにプラグインされるＤＬＬなどのプラグ可能コンポーネントとすることができることを理解されたい。さらに、アプリケーションプログラム自体が、そのデータを表示のために提供しない場合があることを理解されたい。たとえば、アプリケーションプログラムと独立とすることができる別のプログラムが、アプリケーションプログラムに対応するデータを提示することができ、このために、たとえば、アプリケーションプログラムの関数呼び出しをフックすることによって、他のプログラムが、そのアプリケーションプログラムから来るように見えるデータを補助ディスプレイデバイス３０４に供給することができる。
【００３５】
図４からわかるように、補助ディスプレイサービス３０６によって提供されるアプリケーション−サービス層は、補助プラグイン登録を含む様々な構造および機能性を提供し、この補助プラグイン登録によって、アプリケーション／プラグインが補助ディスプレイサービス３０６のサービス登録コンポーネント４０４にそれ自体を登録し、これによって、アプリケーション／プラグインが、使用可能な補助デバイス３０４を使用する能力を有する。図４の例の実施形態では、サービス登録コンポーネント４０４が、このためにＩＡｕｘＡｐｐＲｅｇインターフェースを提供する。他のアプリケーションプログラムは、同様に、このインターフェースを介してそれ自体を登録する。本明細書で使用される名前が、例にすぎず、すべての適当なインターフェース名が十分であることに留意されたい。
【００３６】
補助アプリケーションコンポーネント４０２は、関連する補助ディスプレイデバイスおよび／または関連するリソースからイベントを受け取る能力を有する。たとえば、補助デバイスがそれへのデータ送信に使用可能になった時にイベントを補助アプリケーションコンポーネント４０２に送ることができ、別のイベントが、補助デバイスアクチュエータとのユーザ対話に対応することができる。図４に示された例の実施形態では、アプリケーションプログラムが、そのようなイベントを受け取るためにＩＡｕｘＡｐｐＳｉｎｋインターフェースを実装する。
【００３７】
上でも説明したように、アプリケーションプログラム３０２は、使用可能な補助ハードウェアデバイスまたは使用可能であるデバイスを列挙する能力を有する。図４の例の実施形態では、補助ディスプレイサービス３０６内のメディエータコンポーネント４０６が、ＩＡｕｘＭｅｄｉａｔｏｒインターフェースを介して列挙を提供する。この形で、デバイスまたはデバイスに関連するあるデータ（たとえば対応するＸＭＬファイル）が、デバイスディスプレイスクリーンまたは類似物および／またはそのアクチュエータの機能をアプリケーションプログラム３０２に報告することができる。アプリケーションプログラム３０２は、ディスプレイに従って入出力を調整することができ、たとえば、カラースキーム、解像度、ナビゲーションコマンドなどを、デバイス特性のために変更することができる。たとえば、アプリケーションプログラム３０２が、補助ディスプレイデバイスが高解像度カラースクリーンおよび４方向ナビゲーションボタンを有することを知っている場合に、そのアプリケーションは、リッチフォーマットデータを補助ディスプレイに出力し、４方向でのナビゲーションコマンドを受け入れるように調整することができる。その代わりに、２行のテキストディスプレイだけが使用可能である場合に、アプリケーションプログラム３０２は、単純なテキストを出力することができる。
【００３８】
補助デバイスのコンフィギュレーション情報を、サービスからデバイスに渡すこともできることに留意されたい。たとえば、バックライトタイマ期間、フォントタイプ、フォントサイズ、パスワードデータ、スクリーンをイネーブル／ディスエーブルするコマンドなどを、メインコンピュータシステムで走るサービスから送ることができる。デバイスコンフィギュレーションを、列挙と完全に独立とすることができるが、時々、補助デバイスとメインコンピュータで走るプログラムの間でデバイスセッティングをネゴシエートすることが便利である場合があり、たとえば、デバイス機能を列挙して、走っているプログラムで、デバイスが何を行えるかを判定し、この機能（可変とすることができる）に基づいて、その特定の時にその走っているプログラムについて望まれるようにデバイスを構成する。
【００３９】
アービトレーションも、アプリケーションレイヤのメディエーションコンポーネント４０６で提供されて、どのアプリケーションがそのデータを現在表示されなければならず、ナビゲーションコマンドを受け取らなければならないかを決定するメカニズムが提供される。アプリケーションプログラムが、適当にディスプレイを交替で共有する、言い換えると、メディエーションのアービトレーション機能が、補助アプリケーションプログラムおよび／またはプラグインの優先順位（ｚ順）を管理することに留意されたい。補助デバイスは、少量のディスプレイスペース（または、単一のＬＥＤ程度に少ない）だけを有する場合があるので、一実施形態で、一時に１つのアプリケーションだけが、ディスプレイ全体を得るが、代替実施形態で、十分なスクリーンスペースが使用可能であるかスクリーンおよびインジケータが同一デバイスで使用可能である場合に、同時に複数のアプリケーションの間でディスプレイおよび／またはインジケータを分割することが実現可能であり、あるいは、他の形で複数のアプリケーションから情報を提供することが実行可能である（たとえば、デバイスが、あるアプリケーションのデータを表示するが、別のアプリケーションが状態を変え、本質的に、厳しい要求ではないがユーザが注意を払うことを要求する場合に点滅することができる）。
【００４０】
アービトレーションも、サービス層のメディエーションコンポーネントで提供されて、どのアプリケーションプログラムまたはオペレーティングシステムコンポーネントがそのデータを現在表示されなければならないかを決定するメカニズムが提供される。アプリケーションおよび他のプログラムが、適当にディスプレイを交替で共有することに留意されたい。一般に、ユーザは、ホームページを与えられ、このホームページに、ユーザがナビゲートできる（たとえば登録された）アプリケーションが表示される。システムのユーザが切り替わる場合、すなわち、別のユーザに切り替わる場合（または、あるユーザがログアウトし、別のユーザがログインする場合）に、サービスが、通知され、システムにログインしたばかりの特定のユーザについて登録されたアプリケーションに基づいて、適当なデータを準備し、補助ディスプレイデバイスに送る。
【００４１】
現在ディスプレイデバイスに結合されている（フォーカスを有するのに似る）プログラムが、ホームページからのナビゲートによるなど、ユーザ選択される場合など、アービトレーションはしばしば単純である。しかし、他のイベントは、ユーザの選択（かなり前に行われた可能性がある）より優先される。たとえば、会議リマインダ、電話呼、ホームページへの復帰タイムアウト、電力低下状態、または現在表示されている物より表示することが重要である可能性が高いと考えられる物などのイベントが発生する場合に、補助ディスプレイを、別のアプリケーションのデータまたはシェルアプリケーションホームページを表示するために完全に、あるいはイベントを示す他の形で（たとえば点滅）のいずれかで変更することができる。複数の補助ディスプレイを有することが可能であり、ＬＥＤなどの１つまたは複数のインジケータも有することが可能であり、これによって、アービトレーションが、アプリケーションプログラムおよび類似物と各そのようなディスプレイおよび／またはインジケータとの間のデータマッピングを決定することに留意されたい。
【００４２】
プログラムが、ディスプレイに書き込み、そのアクチュエータを介してコマンドを受け取ることを許可されたならば、補助システム参照が、現在選択されている補助アプリケーション（たとえばプラグイン）コンポーネント４０２がディスプレイリソースを使用することを可能にする、抽象化されたメモリバッファにブリット／レンダリングする能力を提供する。図４の例の実施形態では、デバイスコンポーネントが、アプリケーションプログラムにＩＡｕｘＤｅｖｉｃｅインターフェースを提供して、サービス層を介してそのデータをデバイスに供給する。たとえば、前述の米国特許仮出願、名称「Ｃａｃｈｉｎｇ  Ｄａｔａ  ｆｏｒ  Ｏｆｆｌｉｎｅ  Ｄｉｓｐｌａｙ  ａｎｄ  Ｎａｖｉｇａｔｉｏｎ  ｏｆ  Ａｕｘｉｌｉａｒｙ  Ｉｎｆｏｒｍａｔｉｏｎ」に記載されているようにレンダリングならびにキャッシングを容易にするためにツリーまたはグラフなどの形でデータを構造化するために、アプリケーションデータを、サービス層を通過する前に処理することができることに留意されたい。
【００４３】
要約として、丸で囲まれた１から６までの数字のラベルを付けられた矢印は、補助アプリケーションのブートストラップおよび実行の一般化されたタイムラインに対応する。矢印１によって示されるように、補助デバイスサービスが開始される。矢印２では、その初期化プロセスの一部として、サービスが、アウトプロセスアプリケーションＣＯＭオブジェクトを作成する。このアウトプロセスＣＯＭオブジェクトは、ＩＡｕｘＡｐｐＳｉｎｋインターフェースをサポートする。アプリケーションが、ＩＡｕｘＡｐｐＳｉｎｋインターフェースを実装し、登録時にそのシンクをＩＡｕｘＡｐｐＲｅｇに渡し、ここで、シンクインターフェースを実装するオブジェクトが、サービスによって使用されることに留意されたい。
【００４４】
矢印３によって示されるように、補助アプリケーションコンポーネント（たとえばオブジェクト）は、補助ディスプレイサービス３０６のサービス登録コンポーネントのＩＡｕｘＡｐｐＲｅｇインターフェース（たとえばオブジェクトメソッド）を呼び込んで、１つまたは複数の補助デバイスにサブスクライブする。各使用可能デバイスは、この呼び出しから返される特定の識別によってリストすることができ、あるいは、単に、使用可能として識別することができ、この場合に、イベント列挙によって、各デバイスの特性を判定することができる。
【００４５】
矢印４によって示されるように、登録に続いて、登録サービス４０４は、本質的に、登録コンポーネントからＩＡｕｘＭｅｄｉａｔｏｒオブジェクトインターフェースを返すことによって、補助アプリケーションコンポーネント４０２にメディエータコンポーネント（たとえばオブジェクト）を識別する。サービスのメディエータコンポーネント（オブジェクト）は、ＩＡｕｘＡｐｐＳｉｎｋインターフェースのコピーを保ち、その結果、アプリケーションコンポーネント４０２がディスプレイでのアクチュエータイベントドローに応答するかインジケータの状態をセットすることをメディエータ４０６が要求できるようにする。オンラインの場合に、アプリケーションがデータをレンダリングする番になった（たとえば、この例でデータが補助ディスプレイまたはインジケータに書かれることを除いて「フォーカスを得た」）場合に、このシステムが、周知のＷＭ＿ＰＡＩＮＴモデルのように働くことに留意されたい。さらに、現在「フォーカスがある」アプリケーションの概念が、アクチュエータにも適用される、すなわち、ユーザがアクチュエータを押す時に、イベントが、現在フォーカスがあるアプリケーションだけに送られることに留意されたい。
【００４６】
図４の番号付きの矢印５は、メディエータコンポーネント４０６がＩＡｕｘＡｐｐＳｉｎｋを介して補助アプリケーションにＩＡｕｘＤｅｖｉｃｅインターフェースを渡すことを表す。このアプリケーションは、そのインターフェースを使用して、デバイスコンポーネントを介して要求を現実化する。
【００４７】
図５に、メディエータコンポーネント（オブジェクト）４０６に接続された複数のアプリケーションプログラム３０２Ａから３０２Ｃを示す。３つのそのようなアプリケーションプログラム３０２Ａから３０２Ｃが示されているが、実用的なすべての個数が実現可能であることを理解されたい。一般に、メディエータコンポーネント４０６は、どのアプリケーションプログラムがそのデータを補助ディスプレイ２００（および／または１つもしくは複数のインジケータ５００）に表示させなければならず、かつ／またはアクチュエータ２０１からユーザ入力データを受け取らなければならないかを決定する。複数の補助ディスプレイデバイスが存在する場合に、メディエータコンポーネント（オブジェクト）４０６は、アプリケーションをそれらのデバイスにマッピングする。どの時点でも、異なる補助デバイスは、それぞれ、異なるアプリケーションプログラムのデータをインジケータまたはディスプレイスクリーンを介して表示することができ、あるいは、任意の１つのアプリケーションが、一時に複数の補助デバイスにそのデータを表示させることができる。したがって、同一のアプリケーションが、複数のディスプレイにデータを出力することができるが、アプリケーションのデータを、補助デバイスごとに異なる物とすることができることに留意されたい。説明を単純にするために、次の説明では、ディスプレイ（インジケータセットではなく）に出力する単一の補助ディスプレイデバイスに言及する。
【００４８】
図５では、相互作用マネージャ５０１と称するアクチュエータオブジェクトが、補助ディスプレイに対応するアクチュエータ２０１とのユーザ相互作用を管理する。この相互作用に、どのアプリケーションがそのデータを表示させるかを変更するようにメディエータコンポーネント（オブジェクト）４０６に指示するナビゲーションコマンドのユーザ入力を含めることができる。このコマンドは、たとえば、選択された電子メールメッセージの本体などのデータの一部を表示するために、現在補助ディスプレイアクティブなアプリケーションプログラムに向けられた物とすることができる。その代わりに、タイムドイベントなどのイベント５２０をメディエータコンポーネント４０６によって受け取り、処理して、イベントに応答するそのような変更を自動的に行うことができる。メディエータコンポーネントによって維持されるルックアップテーブルまたは類似物が、イベント（または内部タイマ）をアクションにマッピングすることができる。
【００４９】
相互作用マネージャが、ディスプレイを変更するのに完全にアプリケーションプログラムに頼る必要がないことに留意されたい。たとえば、ユーザが選択できる使用可能なアプリケーションプログラムをリストする「ホームページ」プログラムを、相互作用マネージャおよび／またはディスプレイオブジェクト４０８に組み込むことができる。アプリケーションが選択されるまで、ホームページプログラムは、ユーザがアプリケーションの１つを選択するまで、アクチュエータ２０１を用いるユーザ相互作用に応答して、ディスプレイを調整する（たとえば、使用可能なアプリケーションのリストを強調表示し、かつ／またはスクロールする）。もう１つの例として、走っているプログラムおよび／または補助サービスが、イベント関連データを補助デバイスに送ることができ、これによって、補助デバイスが、プログラムからのさらなる命令を必要とせずに、アクションを行うことができる。たとえば、「この特定のイメージを特定の時に表示する」などの時刻関連イベントを、「スリープしている場合にメインコンピュータをウェイクし、無線ネットワーク信号を検出する」などのコマンドと同様に補助デバイスに送ることができる。
【００５０】
一実施形態で、そのようなアプリケーション選択または他の変更要求（たとえばイベントベースの）の検出時に、メディエータコンポーネント４０６は、新たに選択されたまたは現在選択されているアプリケーションにイベントを送って、そのアプリケーションに、表示のために適当なデータをディスプレイオブジェクト４０８に供給するように指示する。タイムドイベントのゆえになど、あるアプリケーションプログラムから別のアプリケーションプログラムに変化する時、またはホームページに戻るように変化する場合に、メディエータコンポーネント４０６は、前にアクティブであったアプリケーションにもイベントを送って、それがもはやデータを表示されないことを示す。複数のディスプレイおよび／またはインジケータがある場合に、メディエータコンポーネントは、変化が起こる場合にアプリケーションをディスプレイオブジェクトに再マッピングすることができ、したがって、アプリケーションが出力しつつあるディスプレイおよび／またはインジケータがどれであるかを示すメカニズムが、別のデバイスのためにそのデータを調整する方法についてアプリケーションに知らせるために必要になる場合がある。
【００５１】
補助ディスプレイデバイスのディスプレイオブジェクトは、データが、それに対応するディスプレイに適当であることを保証することができ、たとえば、ＬＥＤへのテキストは無意味である（そのテキストが色および／または点滅パターンなどの特定の状態に対応しない限り）。さらに、ディスプレイオブジェクトは、たとえばカラーをグレイスケールに、テキストを表示用のビットマップになど、適当にデータを再フォーマットすることができる。
【００５２】
アクチュエータ２０１は、そのデータを表示させている現在選択されているアプリケーションプログラムの状態を変更することもできる。たとえば、選択された時に、電子メールアプリケーションプログラムは、電子メールメッセージのリストを表示することができ、このリストは、適当なボタンで受け取られるアクチュエーションに応答して、アプリケーションプログラムによってスクロールすることができる。電子メールメッセージの選択時に、アプリケーションは、その状態を変更して、メッセージのリストではなく選択されたメッセージの内容を出力することができる。
【００５３】
本発明のもう１つの態様によれば、アプリケーション関連層の下に、プロトコルプロキシ（たとえばＤＬＬ）がプラグインされる通信関連インターフェースを介して達成されるプロトコル層がある。プロトコル層のゆえに、通信の詳細および要件が、アプリケーションプログラムおよびメディエーションコンポーネントから抽象化される。
【００５４】
さらに、プロトコルは、固定されるのではなく、プラグ可能プロトコルプロキシを介して構成可能である。したがって、まだ開発されていないプロトコルを含めて、補助デバイスとの合意がある、本質的にすべてのプロトコルを使用することができる。プロキシのプラグインは、結合される補助ディスプレイの存在の最初の検出に応答して、自動的または十分に自動的とすることができる。たとえば、ユーザは、コンピュータにスマート携帯電話機を結合することができ、その結合が検出される場合に、適当なプロトコルプロキシを自動的にロードすることによって、携帯電話機のディスプレイを補助ディスプレイにすることができる。
【００５５】
階層化アーキテクチャのゆえに、アプリケーションプログラムと補助ディスプレイデバイスの両方が、本質的に、補助ディスプレイサービスだけを見、この補助ディスプレイサービスは、正しくデータを交換するのに必要なめいめいのインターフェースを有する。この形で、合意されたプロトコルが存在する、任意のアプリケーションから任意の補助ディスプレイデバイスへの通信が可能である（たとえば、ＵＳＢ  ＨＩＤ、Ｂｌｕｅｔｏｏｔｈなどを介して接続すること、および、たとえば、本質的に世界中のどこにでも配置されるウェブサービスへの接続）。
【００５６】
図６に移ると、補助デバイスサービス３０６のプロトコル（時々ハードウェア抽象化とも称する）層は、アプリケーションプラグインを１つまたは複数の様々なデバイスにルーティングできるようにする抽象化である。一実施形態で、出力の物理的手段が、単一のＬＥＤほどのわずかなものから、フルカラービットマップ補助ディスプレイまでにわたって変化するか、事実上その間のすべてである可能性がある（たとえば、英数字ディスプレイ、カスタムセグメント化を有する補助ディスプレイ、２ｎビットの小さいグレイスケールビットマップディスプレイ、３２ビットのより大きいビットマップディスプレイなど）。入力能力も変化し、たとえば、アクチュエータは、ボタンから、スイッチ、光センサ、動きセンサ、質量センサなどを含む容量性または他のセンサまで変化することができる。
【００５７】
図６からわかるように、一実施形態で、プロトコルプロキシに、アプリケーション内容を物理デバイスに向けられるようにするＤＬＬが含まれる。プロキシのＩＤｅｖｉｃｅインターフェースおよびＩＰｒｏｔｏｃｏｌインターフェースは、プロキシからコールバックイベントを受け取る補助ディスプレイサービス３０６のコアコードに公開される。図６の例では、例６１６および６１７が、それぞれＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ／Ｈｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅ（ＵＳＢ／ＨＩＤ）ベースの補助ディスプレイおよびＷｉｎＳｏｃｋベースエンドポイントについて示されている。同時に異なる通信プロトコルをアクティブにする複数の補助ディスプレイを有することが可能であることに留意されたい。補助デバイスサービスは、プロトコルプロキシプロバイダおよびそのめいめいの能力のデータ６５０（たとえば、ＸＭＬフォーマットのデバイスコンフィギュレーションリスト）を維持する。
【００５８】
ここまでで、本発明を、本明細書で「オンライン」状態と称する、走っている（動いていること）オペレーティングシステム（ＡＣＰＩ状態Ｓ０）と共にメインコンピュータで能動的に走るアプリケーションに関して説明したことに留意されたい。しかし、代替のシナリオでは、補助ディスプレイが、それ自体のＣＰＵおよびメモリを有することができ、このファームウェアは、メインコンピュータが「オフライン」の場合、たとえば、コンピュータがある範囲までパワーダウンされ、たとえば、スリープ／スタンバイ／ハイバネーション状態または類似物（Ｓ１以上のＡＣＰＩスリープ状態）である場合に、補助デバイスを操作することができる。そのようなファームウェアが存在する場合に、補助デバイスは、デバイスがオンラインまたはオフラインである間にデータを表示することができる。存在しない場合に、補助デバイスは、オンライン状態で働くことだけができる。オンライン対応のみの状態で、上で説明したアプリケーションおよび様々なコンポーネントは、オペレーティングシステムの下でメインＣＰＵ上で走る。
【００５９】
図７に、全般的に、アプリケーション３０２Ａおよび３０２Ｂ（この例ではめいめいの補助プラグイン４０２Ａおよび４０２Ｂを有する）と相互作用マネージャとの間の、この２つのシナリオすなわちオンライン対応のみまたはオンライン／オフライン対応のいずれかでの関係を表す。オンラインのみの場合に、オンライン相互作用マネージャ５０１１（メインＣＰＵオペレーティングシステムで動作）は、ユーザ入力を受け取り、補助ディスプレイサービス３０６を介し、対応するデータを処理のために現在選択されているアプリケーションプログラムおよび／またはディスプレイコントローラ７３０１に渡すことができる。これが、本質的に、上で図５に関して説明した物であることに留意されたい。さらに、デバイスがオフライン対応でない場合であっても、処理能力およびメモリが通常はオンライン状態でより高いので、およびアプリケーションがキャッシングされたデータではなく実際のデータを用いて動作しているので、これらのオンラインコンポーネントは、メインシステムがオンラインである時にいつでも動作することができることに留意されたい。
【００６０】
オフラインの場合に、オフライン相互作用マネージャ５０１２が使用される。理解されるように、オフライン相互作用マネージャ５０１２は、補助マイクロコントローラ／およびオフライン（たとえばフラッシュまたは代替電力供給の）ストレージの下で動作する。一般に、オフライン相互作用マネージャ５０１２は、アクチュエータ２０１からのナビゲーションコマンドに応答して、キャッシングされたデータを操作する。オフライン相互作用マネージャ５０１２の一部とみなすことができる（別々のコンポーネントとすることができるが）オフラインシェルプログラムは、ホームページを提供することができ、どのイメージ（たとえばビットマップ）を表示するか、またはシェル内のレンダラによるなど、どの内容をディスプレイへのレンダリングのために解釈しなければならないかを決定するナビゲーション論理を含む。同一のアクチュエータおよび補助ディスプレイを、オンラインまたはオフラインのどちらであるかに無関係に、オンライン／オフライン対応デバイスで使用することができるが、補助プロセッサおよび／またはメモリの制限に起因して表示できる物に相違がある場合があることに留意されたい。たとえば、イメージの解像度は、オフラインシナリオにキャッシングされたビットマップが使用され、スペースが制限されている場合に、異なる可能性がある。しかし、ユーザが類似する経験を得ることと、オンライン状態またはオフライン状態に応じて異なる構造を処理するために様々なコンポーネントを構成する必要がないことを含めて、ディスプレイデバイスに送られるデータをオンラインとオフラインに共通のナビゲーション（たとえばツリーまたはグラフ）構造でフォーマットすることが有利である可能性があることに留意されたい。しかし、表示できる実際のデータは、異なる可能性があり、たとえば、アプリケーションデータの一部が、ストレージスペース制限に起因してオフライン表示用にキャッシングできない場合に、前述の米国特許仮出願、名称「Ｃａｃｈｉｎｇ  Ｄａｔａ  ｆｏｒ  Ｏｆｆｌｉｎｅ  Ｄｉｓｐｌａｙ  ａｎｄ  Ｎａｖｉｇａｔｉｏｎ  ｏｆ  Ａｕｘｉｌｉａｒｙ  Ｉｎｆｏｒｍａｔｉｏｎ」に記載されているように、キャッシングされるデータの量が、サイズを減らされる（たとえばツリー構造が枝刈りされる）。また、あるタイプの情報は、オフラインの場合に表示が無意味であり、たとえば、コンピュータが、コンピュータシステムと共にパワーダウンされるテープバックアップユニットを有する場合に、補助ディスプレイにテープバックアップユニットのパワーダウン状態を示すことは、価値をもたらさず、不必要にメモリを消費する。
【００６１】
前述からわかるように、本発明のアーキテクチャは、アプリケーションプログラムが、コンピュータシステムの補助ディスプレイに適当な時にデータを供給することを可能にすると同時に、専用補助ディスプレイとして組み込まれるものであれ、独立のディスプレイデバイスであれ、事実上すべての可能なディスプレイが補助デバイスとして働くことを可能にする。したがって、本発明は、補助ディスプレイデバイスに関する現在のコンピューティングに必要な多数の長所および利益を提供する。
【００６２】
本発明は、様々な変更および代替構成を許すが、ある図示された実施形態を、図面に示し、上で詳細に説明した。しかし、本発明を開示された特定の形態に制限する意図はなく、逆に、本発明は、本発明の趣旨および範囲に含まれるすべての修正形態、代替構成、および同等物を含む。
【図面の簡単な説明】
【００６３】
【図１】本発明を組み込むことができるパーソナルコンピュータシステムの形の汎用コンピューティングデバイスを表すブロック図である。
【図２Ａ】様々なデバイスの補助ディスプレイの配置のための位置を全般的に表す例示的な図である。
【図２Ｂ】様々なデバイスの補助ディスプレイの配置のための位置を全般的に表す例示的な図である。
【図２Ｃ】様々なデバイスの補助ディスプレイの配置のための位置を全般的に表す例示的な図である。
【図２Ｄ】様々なデバイスの補助ディスプレイの配置のための位置を全般的に表す例示的な図である。
【図２Ｅ】様々なデバイスの補助ディスプレイの配置のための位置を全般的に表す例示的な図である。
【図３】本発明の態様による、それによってアプリケーションプログラムが任意の補助ディスプレイデバイスと抽象化された様式でデータを交換できる階層化アーキテクチャを全般的に表すブロック図である。
【図４】一実施形態で、本発明の態様に従って、補助対応アプリケーションプログラムが補助ディスプレイデバイスとデータを交換するために補助ディスプレイサービスとどのようにインターフェースするかを示す表現である。
【図５】本発明の態様による、メディエーションに基づく補助ディスプレイデバイスとのデータ交換のためにそれぞれが選択的に結合可能である複数のアプリケーションプログラムを全般的に表すブロック図である。
【図６】本発明の態様による、異なるタイプのディスプレイデバイスと共に動作できる一実施形態での補助ディスプレイサービスを表す図である。
【図７】本発明の態様による、補助ディスプレイデバイスのオフライン動作およびオンライン動作がこれによって可能になるファームウェアを含む階層化アーキテクチャのコンポーネントを全般的に表すブロック図である。
【符号の説明】
【００６４】
１２２  システムメモリ
１３５  オペレーティングシステム
１３６  アプリケーションプログラム
１３７  他のプログラムモジュール
１３８  プログラムデータ
１２１  メイン処理ユニット
１５５  補助ディスプレイインターフェース
１５６  入力デバイスインターフェース
１４８  ビデオアダプタ
２００  補助ディスプレイ
２０１  入力デバイス
１４７  モニタ
１２３  システムバス
１３２  ハードディスクドライブインターフェース
１３３  磁気ディスクドライブインターフェース
１３４  光学ドライブインターフェース
１４６  シリアルポートインターフェース
１５３  ネットワークインターフェース
１５１  ローカルエリアネットワーク
１３５  オペレーティングシステム
１３６  アプリケーションプログラム
１３７  他のプログラムモジュール
１３８  プログラムデータ
１４２  マウス
１４０  キーボード
１５４  モデム
１５２  広域ネットワーク
１４９  リモートコンピュータ
１３６’  アプリケーションプログラム
【図１】
2006012123.tif 000003
【図２Ａ】
2006012123.tif 000004
【図２Ｂ】
2006012123.tif 000005
【図２Ｃ】
2006012123.tif 000006
【図２Ｄ】
2006012123.tif 000007
【図２Ｅ】
2006012123.tif 000008
【図３】
2006012123.tif 000009
【図４】
2006012123.tif 000010
【図５】
2006012123.tif 000011
【図６】
2006012123.tif 000012
【図７】
2006012123.tif 000013
【外国語明細書】
2006012123000001.pdf