コンピューティングデバイスによって実行されると、コンピューティングデバイスに、共有入力メッセージキューを管理して、アプリケーションの複数のコンポーネントのメッセージを処理することと、前記複数のコンポーネントのうちの応答しないコンポーネントを検出することと、前記共有入力メッセージキューから前記応答しないコンポーネントをデタッチすることとを含む動作を実行するように構成されたメッセージキューマネージャーを実施させる命令を記憶する、1つまたは複数のコンピューター可読記憶媒体。前記アプリケーションがWebブラウザーを備える、請求項1に記載の1つまたは複数のコンピューター可読記憶媒体。前記複数のコンポーネントが前記アプリケーションのタブ付きインターフェイスの複数のタブを備える、請求項1に記載の1つまたは複数のコンピューター可読記憶媒体。前記アプリケーションがWebブラウザーを備え、前記複数のコンポーネントが前記Webブラウザーのタブ付きインターフェイスの複数のタブを備える、請求項1に記載の1つまたは複数のコンピューター可読記憶媒体。前記応答しないコンポーネントを検出することが、メッセージを前記複数のコンポーネントのそれぞれに定期的に送信して、前記複数のコンポーネントの応答性を監視することと、前記応答しないコンポーネントが前記メッセージに応答しなかったと判定することとを含む、請求項1に記載の1つまたは複数のコンピューター可読記憶媒体。前記メッセージキューマネージャーが、通知を出力して、前記応答しないコンポーネントについてユーザーに通知することであって、前記通知が非モーダルであり、コンテンツレンダリング領域において前記アプリケーションによって表示されたコンテンツをオーバーレイする通知バーを介して出力される、ユーザーに通知することを含む動作を実行するようにさらに構成される、請求項1に記載の1つまたは複数のコンピューター可読記憶媒体。前記通知が、前記応答しないコンポーネントを回復するための回復オプションを有効にするように構成された1つまたは複数のユーザー選択可能な手段を含む、請求項6に記載の1つまたは複数のコンピューター可読記憶媒体。前記複数のコンポーネントが、前記アプリケーションの共通フレーム内に含まれる別々に動作可能なサブアプリケーションを備える、請求項1に記載の1つまたは複数のコンピューター可読記憶媒体。前記応答しないコンポーネントをデタッチすることが、デタッチされたメッセージキューを開始して、前記応答しないコンポーネントのメッセージを処理することと、前記応答しないコンポーネントのメッセージを前記共有入力メッセージキューから前記デタッチされたメッセージキューに移行することとを含む、請求項1に記載の1つまたは複数のコンピューター可読記憶媒体。前記メッセージキューマネージャーが、応答しないものとして検出された前記コンポーネントが再び応答すると判定することと、前記コンポーネントを前記共有入力メッセージキューに再アタッチすることとを含む動作を実行するようにさらに構成される、請求項1に記載の1つまたは複数のコンピューター可読記憶媒体。前記コンポーネントを再アタッチすることが、デタッチされたメッセージキューから前記共有入力メッセージキューに前記コンポーネントのメッセージをマージすることと、前記デタッチされたメッセージキューをクリアすることと含む、請求項10に記載の1つまたは複数のコンピューター可読記憶媒体。メッセージをタブ付きアプリケーションの複数のタブに定期的に送信して、前記複数のタブの応答性を監視するステップであって、前記複数のタブがメッセージ処理に共有入力メッセージキューを使用するように構成される、ステップと、前記メッセージに基づいて、前記複数のタブのうちの1つのタブが応答しないことを検出するステップと、前記共有入力メッセージキューからデタッチされたメッセージキューに前記タブのメッセージを移行することによって、前記共有入力メッセージキューから前記応答しないタブをデタッチするステップと、応答しないものとして検出された前記タブが再び応答すると判定するステップと、前記デタッチされたメッセージキューから前記共有入力メッセージキューに前記タブのメッセージをマージすることによって、前記タブを前記共有入力メッセージキューに再アタッチするステップと含む、コンピューターにより実施される方法。通知を出力して、前記応答しないタブについてユーザーに通知するステップと、前記通知に含まれる1つまたは複数のユーザー選択可能な手段を介して、回復オプションへのアクセスを提供するステップとをさらに含む、請求項12に記載のコンピューターにより実施される方法。前記回復オプションが、前記応答しないタブを介してアクセスされるリソースを別のリソースとスワップするオプションを含む、請求項13に記載のコンピューターにより実施される方法。前記回復オプションが、スクリプトの実行が前記応答しないタブの原因として特定されたときに、前記応答しないタブに関連付けられた前記スクリプトの実行を停止するオプションを含む、請求項13に記載のコンピューターにより実施される方法。ところが、従来の手法では、1つのコンポーネントが応答しなくなった場合、そのコンポーネントは共有キューからそのメッセージを処理することを停止する。このことは、同じメッセージキューを共有するその他のコンポーネントのメッセージの中断を引き起こす可能性がある。したがって、1つの応答しないコンポーネントは、キューを事実上ブロックし、その他のコンポーネントも同様に応答しなくなる原因となる可能性がある。0002この概要は、発明を実施するための形態において以下でさらに説明される、簡略化した形態での概念の選択肢を紹介するために提供される。この概要は、特許請求される主題の主要な機能または必須の機能を特定することを意図するものでもなく、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。0003様々な実施形態は、マルチコンポーネントアプリケーションが応答しなくなる例えば、ロックアップ、ハング、クラッシュなど可能性を低減し、マルチコンポーネントアプリケーションが応答しなくなった場合に個々のコンポーネントの回復オプションを有効にするように設計されたメッセージキュー管理技法を提供する。少なくともいくつかの実施形態では、メッセージキューマネージャーを実施して、アプリケーションのコンポーネントが応答しなくなったときを検出し、共有入力メッセージキューからそのコンポーネントをデタッチすることができる。共有キューは、他の応答するコンポーネントのメッセージの処理を継続することができる一方、応答しないコンポーネントのメッセージングは、別個のキューを介して管理される。また、メッセージキューマネージャーは、応答しないコンポーネントについてユーザーに通知し、応答しないコンポーネントの回復を容易にするためのオプションをユーザーに提供することができる。さらに、少なくともいくつかの実施形態では、メッセージキューマネージャーは、デタッチされたコンポーネントを監視し、デタッチされたコンポーネントが再び応答するようになったときに、デタッチされたコンポーネントを再アタッチリアタッチ、reattachすることができる。0004同様の機能を参照するために、図面全体を通して同じ番号が使用される。概説0010様々な実施形態は、マルチコンポーネントアプリケーションが応答しなくなる例えば、ロックアップ、ハング、クラッシュなど可能性を低減し、マルチコンポーネントアプリケーションが応答しなくなった場合に個々のコンポーネントの回復オプションを有効にするように設計されたメッセージキュー管理技法を提供する。ブラウジング環境では、メッセージキューマネージャーを実施して、タブ付きブラウザーユーザーインターフェイスのタブを管理することができる。少なくともいくつかの実施形態では、メッセージキューマネージャーは、アプリケーションのコンポーネント例えば、タブが応答しなくなったときを検出し、共有入力メッセージキューからそのコンポーネントをデタッチすることができる。共有キューは、他の応答するコンポーネントのメッセージの処理を継続することができる一方、応答しないコンポーネントのメッセージングは、別個のキューを介して管理される。また、メッセージキューマネージャーは、応答しないコンポーネントについてユーザーに通知し、応答しないコンポーネントの回復を容易にするためのオプションをユーザーに提供することができる。さらに、少なくともいくつかの実施形態では、メッセージキューマネージャーは、デタッチされたコンポーネントを監視し、デタッチされたコンポーネントが再び応答するようになったときに、デタッチされたコンポーネントを再アタッチすることができる。0011以下に続く説明では、運用環境と題されたセクションが提供され、このセクションは、1つまたは複数の実施形態を用いることができる1つの環境について説明する。これに続いて、メッセージキュー管理と題されたセクションは、1つまたは複数の実施形態による、マルチコンポーネントアプリケーションのメッセージキューを管理するための例示的な技法について説明する。次に、例示的なWebブラウザーと題されたセクションは、1つまたは複数の実施形態によるタブ付きWebブラウザーインターフェイス、通知、および回復オプションの例について説明する。次いで、例示的な方法と題されたセクションは、例示的な方法の文脈におけるメッセージキュー管理に関連した例示的な技法および機能について説明する。最後に、例示的なシステムと題されたセクションは、1つまたは複数の実施形態を実施するために利用することができる例示的なシステムについて説明する。運用環境0012図1は、1つまたは複数の実施形態による運用環境の全体を100で示す。環境100は、1つまたは複数のプロセッサー104、1つまたは複数のコンピューター可読記憶媒体106および、コンピューター可読記憶媒体に常駐し、1つまたは複数のプロセッサーによって実行可能な1つまたは複数のアプリケーション108を有するコンピューティングデバイス102を含む。コンピューター可読記憶媒体は、例として限定することなく、すべての形態の揮発性メモリーおよび不揮発性メモリーならびに/または通常コンピューティングデバイスに関連付けられる記憶媒体を含むことができる。そのようなメディアとしては、ROM、RAM、フラッシュメモリー、ハードディスク、リムーバブルメディアなどを挙げることができる。コンピューティングデバイスの1つの具体的な例が図5に示され、以下で説明される。0013加えて、コンピューティングデバイス102は、上記および以下で説明されるように動作するメッセージキューマネージャー111を含む、またはそうでない場合はメッセージキューマネージャー111を利用するWebブラウザー110の形態のソフトウェアアプリケーションを含む。メッセージキューマネージャーは、マルチコンポーネントアプリケーションのコンポーネントの管理を提供して、応答しないコンポーネントによるクラッシュ/ハングに影響されず、クラッシュ/ハングから回復するように構成され得る。タブ付きブラウジング環境では、メッセージキューマネージャーは、Webブラウザー110の複数のタブの1つまたは複数の入力メッセージキューを管理するように動作可能である。少なくともいくつかの実施形態では、メッセージキューマネージャーは、アプリケーションのコンポーネント例えば、タブが応答しなくなったときを検出し、共有入力メッセージキューからそのコンポーネントをデタッチすることができる。そうすることにより、別個のデタッチされたメッセージキューによって、応答しないコンポーネントのメッセージ処理を行うことができる。これにより、共有キューがアプリケーションの他の応答するコンポーネントのメッセージの処理を継続することができ、その結果、応答するコンポーネントとの対話を継続することができる。また、メッセージキューマネージャーは、応答しないコンポーネントについてユーザーに通知し、応答しないコンポーネントの回復を容易にするためのオプションをユーザーに提供することができる。さらに、少なくともいくつかの実施形態では、メッセージキューマネージャーは、デタッチされたコンポーネント/タブを監視し、デタッチされたコンポーネントが再び応答するようになったときに、デタッチされたコンポーネントを再アタッチすることができる。0014ブラウジング環境およびWebブラウザーまたは他のアプリケーションのタブの文脈において、様々な例が本明細書に記載される。ただし、様々な環境において、複数のコンポーネントを利用する任意の適切なアプリケーションとともに、メッセージキューマネージャー111および対応する技法を用いることができることを理解されたい。例として限定することなく、メッセージキューマネージャーを実施して、電子メールアプリケーション、デスクトップ生産性アプリケーション、ゲームアプリケーション、メディアアプリケーション、および/またはコンピューティングデバイス102の他の適切なアプリケーションを含むがこれらに限定されない、様々なアプリケーション108のコンポーネントを管理することができる。0015加えて、環境100は、インターネットなどのネットワーク112、および上記および以下で説明されるようにコンテンツを送受信することができる1つまたは複数のWebサーバー114を含む。そのようなコンテンツは、Webサーバーから受信されるWebページを含むことができる。0016コンピューティングデバイス102は、例として限定することなく、デスクトップコンピューター、ポータブルコンピューター、携帯情報端末PDA、携帯電話などのハンドヘルドコンピューターなどの任意の適切なコンピューティングデバイスとして具体化され得る。0017例示的な運用環境について説明してきたが、次に、メッセージキューマネージャー111を利用することができるいくつかの例示的な実施形態の説明について検討する。メッセージキュー管理0018図2は、1つまたは複数の実施形態による、マルチコンポーネントアプリケーションのメッセージキュー管理の例示的な技法を表現したものを示す。具体的には、図2は、メッセージキューマネージャー111を含む、またはそうでない場合はメッセージキューマネージャー111を利用する図1の例示的なコンピューティングデバイス102などの、適切に構成されたコンピューティングデバイスによって実行することができるメッセージキューに関連付けられた異なる状態間の移行を表す。0019状態200において、複数のコンポーネント2041~2043を有するマルチコンポーネントアプリケーション202のインスタンスは最初に、共有入力メッセージキュー206を使用するように構成される。この状態では、それぞれの例示的なコンポーネント2041~2043のメッセージがシーケンス処理され、共有入力メッセージキュー206を介して処理される。0020本明細書で使用される場合、マルチコンポーネントアプリケーションは、アプリケーションのインターフェイスの別個の異なる部分またはコンポーネントを介して、複数のリソース例えば、Webページ、ドキュメント、ファイル、スクリプト、メディアコンテンツなどとのユーザー対話を可能にするアプリケーションである。この文脈では、コンポーネントという用語は、マルチコンポーネントアプリケーションの異なる、別々に誘導可能なおよび/または動作可能な部分を指すことができる。コンポーネントは、親アプリケーションの共通のメインウィンドウまたはフレーム内に含まれる別個のサブアプリケーションとすることができる。したがって、複数のコンポーネントを利用するインターフェイスは、アプリケーションの単一のウィンドウ内に含まれ得る。コンポーネントは同じアプリケーションの部分であってもよいが、1つのコンポーネントを介したユーザー対話はその他のコンポーネントを介したユーザー対話とは無関係であることができるという点で、コンポーネントは半自律とみなされ得る。異なるコンポーネントは、選択的には、共通の表示部分を介して二者択一的におよび/またはユーザーインターフェイスの様々な異なる領域明らかに異なる領域、differentdistinctareaにおいて同時に示され得る。共有キューを用いて、異なる複数の半自律コンポーネントを同期させ、調和させることができ、その結果、これらの半自律コンポーネントは単一のコンポーネントとして挙動する。0021本明細書に記載されるメッセージキュー管理を用いることができるマルチコンポーネントアプリケーションの様々な例が企図される。上述したように、複数のタブを有効にするように構成されたタブ付きWebブラウザーは、マルチコンポーネントアプリケーションの一例である。タブを文書処理アプリケーション、電子メールクライアント、またはマルチメディアアプリケーション用などの他の文脈において使用することもできる。別の例では、オフィス生産性スイートなどのアプリケーションは、テキストドキュメント、Webページ、スプレッドシート、グラフなどを含む複数のリソースとの対話を容易にするための異なるタブ、セクション、列または他のコンポーネントを有するように構成され得る。0022メッセージキューマネージャー111図1が、コンポーネントが応答しなくなったことを検出したとき、メッセージキューマネージャー111は、応答しないコンポーネントを共有入力メッセージキュー206からデタッチさせることによって応答することができる。例えば、何らかの理由で、コンポーネント2041がハングした、またはそうでない場合は応答しなくなったと仮定する。メッセージキューマネージャー111は、コンポーネント2041が応答しないことを任意の適切な方法で検出することができ、その例は上記および以下で説明される。検出に応答して、メッセージキューマネージャー111は、共有入力メッセージキューからコンポーネント2041をデタッチするように動作することができる。0023具体的には、図2におけるデタッチされた状態208によって表されるように、応答しないコンポーネント2041をデタッチすることができる。図示のように、デタッチされたメッセージキュー210を応答しないコンポーネント2041に関連付けることができ、デタッチされたメッセージキュー210を用いて、コンポーネント2041のメッセージングを管理することができる。コンポーネント2042およびコンポーネント2043は、共有入力メッセージキュー206の使用を継続することができる。したがって、応答しないコンポーネントのメッセージは、デタッチされたメッセージキュー210によって処理され得る。共有入力メッセージキュー206は、他の応答するコンポーネントのメッセージの処理を継続することができ、その結果、アプリケーション全体が個々のコンポーネントによって引き起こされる中断によって応答しなくなることはない。少なくともいくつかの実施形態では、メッセージキューマネージャー111は、デタッチされたメッセージキュー210をオンデマンドで作成し、そのキューをあるコンポーネントによる専用使用に割り当てるように構成され得る。これは、コンポーネントが応答しないことを検出したことに応答して起こり得る。次いで、コンポーネントのメッセージを新たに作成されたキューに移行させることができる。加えてまたはあるいは、メッセージキューマネージャー111は、既存のデタッチされたメッセージキューを利用して、必要に応じて応答しないコンポーネントを処理するように構成され得る。コンポーネントが応答しなくなった場合、既存のデタッチされたメッセージキューを異なるコンポーネントに対して繰り返し使用することができる。この場合、メッセージキューマネージャー111は、各使用の前に既存のデタッチされたメッセージキューを初期化するおよび/または各使用の後にキューをクリアして、次回使用するためのキューを準備することができる。0024メッセージキューマネージャー111が、デタッチされたコンポーネントに対する応答性が復旧したことを検出したとき、メッセージキューマネージャー111は、応答しないコンポーネントを共有入力メッセージキュー206に再アタッチさせることによって応答することができる。例えば、コンポーネント2041が上記のように一定期間デタッチされた後、再び応答するようになったと仮定する。メッセージキューマネージャー111は、コンポーネント2041が再び応答することを任意の適切な方法で検出することができ、その例は上記および以下で説明される。検出に応答して、メッセージキューマネージャー111は、コンポーネント2041を再アタッチするように動作することができる。0025具体的には、図2における再アタッチされた状態212によって表されるように、応答しないコンポーネント2041を再アタッチすることができる。図示のように、別個のコンポーネントメッセージキュー210が閉じられ、またはそうでない場合は削除される。再アタッチされた状態212では、コンポーネント2041のメッセージングは再び共有入力メッセージキュー206によって処理されている。これは、共有入力メッセージキュー206にコンポーネント2041のメッセージを戻してコンポーネント2042およびコンポーネント2043のメッセージとマージすることを含み得る。共有入力メッセージキューからのコンポーネントをデタッチし、再アタッチするために用いることができる技法についてのさらなる詳細は、以下で例示的な方法と題されたセクションで見出すことができる。0026メッセージキュー管理の例について説明してきたが、次に、1つまたは複数の実施形態による、メッセージキューマネージャー111を利用することができる例示的なWebブラウザーの説明について検討する。例示的なWebブラウザーインターフェイス0027図3は、1つまたは複数の実施形態による例示的なWebブラウザーの全体を300で示す。図示のWebブラウザーは、コンポーネントの管理を容易にするために複数のコンポーネント例えば、タブおよびメッセージキューマネージャー111図1を利用することができるアプリケーションの一例にすぎない。Webブラウザー300は、Webブラウザーユーザーインターフェイス302を含み、Webブラウザーユーザーインターフェイス302は、戻るナビゲーションボタンおよび進むナビゲーションボタン、アドレスバー、検索バー、ならびに複数のタブをサポートすることができるタブバンドなどの典型的な手段instrumentalityを含む。例えば、複数のタブは、図3に示されるタブバンドに現れる。これらのタブはコンポーネント2041~2043と称されて、図2に関連して説明されたコンポーネントが図3の例示的なタブなどのタブに対応することができることを示す。Webブラウザーユーザーインターフェイスは、コンテンツを表示することができるクロスハッチングによって示されたコンテンツレンダリング領域304も含む。加えて、Webブラウザーユーザーインターフェイス302は、通知バー306を含む。1つまたは複数の実施形態では、通知バーは、ユーザーが自分のブラウジングアクティビティへの集中を維持するのを助けるとともに、提案の形で通知を行うように設計される。通知バーを介して提示される通知は、メッセージキュー管理の様々な技法を有効にするように出力された、またはそうでない場合はメッセージキューマネージャー111の動作を介して引き起こされた、応答しないタブに関連する通知を含むことができる。0028少なくともいくつかの実施形態では、通知バーは非モーダルであり、ユーザーの注意散漫を低減するように選択されたブラウジング視野内の場所で提示される。例えば、図示され、説明された実施形態では、通知バーは、Webブラウザーのユーザーインターフェイスの下部でまたはその近くここでは、コンテンツレンダリング領域304の下部付近またはコンテンツレンダリング領域304の下に提示される。通知バーは、目立つものでありながら無視できるものであるように設計され、したがって、ユーザーは、モーダルダイアログによって気を散らされることなく、コンテンツレンダリング領域304で自分のブラウジング作業を継続することができる。さらに、少なくともいくつかの実施形態では、通知バーは、Webブラウザーによって表示されたコンテンツをオーバーレイする方法で提示される。したがって、通知バーの場所は事実上、通知バーに現れる可能性がある特定の通知よりもコンテンツレンダリング領域304内で表示されるコンテンツを優先させる。通知0029応答しないコンポーネントについての通知は、任意の適切な方法で構成され得る。適切な通知は、ポップアップダイアログボックス、Webブラウザー300または他のアプリケーションによって表示されるhtmlページ、タブ付きユーザーインターフェイスのタブ警告、通知バー306を介して提示される通知、および/またはこれらの組合せを含むことができる。通知は、直接および/またはその通知を介してアクセス可能な別個の回復ダイアログを介して回復を実行するための1つまたは複数のユーザー選択可能な手段を含むように構成され得る。回復ダイアログは、クラッシュについての追加の情報および/または様々な利用可能な回復オプションを提供するように構成され得る。0030例えば、図3における通知バー306は、応答しないコンポーネントについての例示的な通知を表示するものとして図示される。具体的には、メッセージキューマネージャー111は、例示的なブラウザー300のタブが応答しないことを検出したことに応答して、通知を提示させることができる。通知は、対応するタブにおいて現れるように構成され得る。したがって、バックグラウンドにおけるタブに対応する通知は、ユーザーがバックグラウンドタブをアクティブなタブとして選択するまで、現れないことがある。この手法は、ユーザーのブラウジングまたはアクティブなタブとの他の対話の中断を制限することができる。0031図示された例では、通知は、タブが応答していませんTabisnotrespondingと示す情報部分308を含む。また、この情報部分は、応答しないコンポーネントに関連付けられたページ名、URL、ドメイン名、および/または他の識別子を特定して、クラッシュの原因を特定することができる。例えば、メッセージキューマネージャーは、Webリソースのドメイン文字列を構文解析して、ドメイン名を判定し、Foo.comが応答していませんFoo.comisnotrespondingと示すものなど、ドメイン名を示すための、応答しないタブについての通知を構成することができる。任意選択で、通知は、全体が310で示された図示のボタンなどの1つまたは複数のユーザー選択可能な手段を含むこともでき、これらのボタンは、応答しないタブまたは他のコンポーネントの回復のための様々なオプションを提供するように構成される。例えば、図3の例示的なボタンは、タブを回復するRecoverTabボタンを含み、このボタンは、選択されたときに、通知を介して直接アクションを実行して、タブを回復するように構成され得る。例示的なアクションとしては、ページを再度読み込むこと、タブに関連して実行中のスクリプトを停止すること、ブラウジング履歴における前のリソースまたはURLにロールバックすることなどを挙げることができる。加えてまたは代替として、タブを回復するボタンは別のダイアログまたはインターフェイスを示すことができ、その別のダイアログまたはインターフェイスを介して、ユーザーは応答しないタブについてのより詳細な情報を取得するおよび/または様々な回復オプションを選択することができる。例示的なボタンは、ユーザーが応答しないタブを終了するよう選択することができるタブを閉じるCloseTabボタンをさらに含む。回復オプション0032上記に述べたように、応答しないタブまたは他のコンポーネントを回復するための様々なオプションは、通知に含まれるユーザー選択可能な手段を介しておよび/または様々な選択可能な回復オプションを有する回復ダイアログを介して利用可能とすることができる。回復オプションは、メニュー項目オプション、ツールバー、キーボードショートカット、ボタンなどの典型的な手段を介して利用可能とすることができる。0033次に、応答しないタブが検出されたときに利用可能とすることができる、いくつかの例示的な回復オプションについての詳細について検討する。タブを閉じるためのオプションが提供され得る。したがって、ユーザーは単に、応答しないタブとの対話を停止するよう選択することができる。さらに、タブを復旧させるためのオプションが提供され得る。復旧オプションを選択することで、Webブラウザーに、選択されたリソース例えば、ページ、ドキュメント、Webサイトなどを再度読み込むおよび/または選択されたリソースに再度移動することを試行させることができる。0034別のオプションにより、ユーザーは、応答しないコンポーネントに関連付けられたリソース間でのスワップを実行することができる。スワップは事実上、応答しないコンポーネントを隠しおよび/または強制終了し、新しいリソースを有する新しいコンポーネントを作成して、応答しないコンポーネントと置き換える。スワップは、バックグラウンドでユーザーに対して透過的に実行され得る。ユーザーの視点からは、コンポーネントを介して新しいリソースが選択され、提示されたかのように見える。0035例えば、選択されたときに、応答しないタブを別のWebページに自動的に移動するボタンまたは他の手段が提供され得る。その他のWebページは、事前に指定されたデフォルトページまたはホームページとすることができる。加えてまたは代替として、ユーザーは、入力することによってスワップを開始するか、または、お気に入りリストからリンクを選択する、Webブラウザーのアドレスバーに新しいアドレスをタイプする、戻るボタンまたはホームボタンなどの移動ボタンを選択することによってなど、様々な方法で別のリソースを選択することができる。応答しないタブについて別のリソースの選択が行われたとき、メッセージキューマネージャー111はこれを検出し、スワップを自動的に開始することができ、スワップは応答しないタブを隠しまたは強制終了し、新たに選択されたリソースに向けられた新しいタブを作成し、応答しないタブを新しいタブにシームレスに置き換える。0036加えて、ユーザーが応答しないタブの原因であり得るスクリプトの実行を停止することができるように、スクリプト回復オプションが提供され得る。例えば、メッセージキューマネージャー111が応答しないタブを検出したとき、チェックを行って、そのタブに関連付けられたスクリプトが実行中であるかどうかを確認することができる。スクリプトが特定された場合、メッセージキューマネージャー111は、上記および以下で説明されるように、通知を使用してユーザーに通知することができる。通知は、選択されたときに、スクリプトに実行を停止させるボタンまたは他のユーザー選択可能な手段を含むこともできる。スクリプトが原因でタブが応答しない場合、説明された方法でできるだけ早くスクリプトを停止することで、タブに対する応答性を迅速に復旧させ、ユーザーのブラウジングの中断を制限することができる。0037また、自己回復オプションを実施して、メッセージキューマネージャー111がいかなるユーザー介入もなしに回復を自動的に実行することもできることに留意されたい。このオプションでは、メッセージキューマネージャー111は、応答しないコンポーネントが再び応答するようになったことを判定することができる。この判定は、回復ボタンのユーザー選択または回復ダイアログとの対話とは無関係になど、ユーザーのアクションとは無関係に行われ得る。メッセージキューマネージャー111が応答性が復旧したと判定すると、メッセージキューマネージャー111は自動的に動作して、コンポーネントをキューに再アタッチし、図3のコンテンツレンダリング領域304などにおける表示部分でコンポーネントに対応するデータを表示し、適切な場合、対応する通知を解除することができる。自己回復手法を実施して、自力で回復するこれはよくあることであるコンポーネントについての通知および/または回復オプションでユーザーを混乱させることを回避することができる。00381つまたは複数の実施形態による、複数のタブおよび通知バーを利用する例示的なWebブラウザーについて検討してきたが、次に、例示的な方法の文脈において説明されるメッセージキュー管理についてのいくつかのさらなる詳細について検討する。例示的な方法0039図4は、1つまたは複数の実施形態による方法のステップについて説明する流れ図である。この方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せに関連して実施され得る。少なくともいくつかの実施形態では、この方法は、メッセージキューマネージャー111を含む、またはそうでない場合はメッセージキューマネージャー111を利用する図1の例示的なコンピューティングデバイス102などの、コンピューティングデバイスを構成する適合性によって実施され得る。0040初期状態では、タブ付きWebブラウザーなどのマルチコンポーネントアプリケーションは、共有入力メッセージキューを利用して、それぞれのコンポーネントのメッセージを処理することができることを思い出されたい。具体的な例では、Webブラウザーは複数のタブを有することができ、複数のタブは独立して動作し、複数のタブを用いて、Webサーバーからの異なるリソースにアクセスすることができる。したがって、それぞれのタブを移動して、異なるリソースまたはURLを示し、対応するコンテンツを提示することができる。初期状態では、Webブラウザーは、共有入力メッセージキューを使用して、それぞれのタブを管理するように構成され得る。例えば、それぞれの新しいタブは、デフォルトで、共有キューに割り当てられ得る。0041メッセージキューマネージャー111を実施して、タブが応答状態を維持していることを確認するためにタブを監視することができる。具体的には、ステップ400は、例示的なWebブラウザーなどに対するアプリケーションのタブの応答性を監視する。監視に基づいて、ステップ402は、タブが応答しなくなるかどうかを判定する。0042任意の適切な方法でタブの監視を行うことができる。タブの監視を行うことができる1つの方法は、定期的なハートビートメッセージをタブに送信することによるものである。言い換えれば、メッセージキューマネージャー111は、ハートビートメッセージを用いてそれぞれのタブにポーリングするように構成され得る。ハートビートメッセージは、タブに応答メッセージを送信させる基本要求メッセージとして構成され得る。したがって、メッセージキューマネージャー111は、タブが応答メッセージを送信するかどうかを監視することができる。応答するタブはメッセージに応答し、メッセージキューマネージャー111はタブが応答すると結論付けることができる。しかし、タブがハートビートメッセージに応答しない場合、メッセージキューマネージャー111はタブが応答しないと結論付けることができる。0043別の例示的な監視の技法では、リソースは、メッセージをメッセージキューマネージャー111にプッシュして、リソースが応答することをメッセージキューマネージャー111に通知するように構成され得る。この手法は、適切ではあるが、プッシュされたメッセージを有効にするコードを用いてリソースを再構成することを必要とすることがある。したがって、いずれも実行可能な手法ではあるが、説明したようにハートビートメッセージを使用してタブをポーリングすることは、プッシュされたメッセージの手法に比べてより効率的で、より安価で、より単純であり得る。ステップ402によって、どのタブも応答しないものとして検出されなかった場合、ステップ400で実行される監視を継続することができる。図に明示的に示されていなくても、応答しないタブが存在する場合でもステップ400の監視が継続することを理解されたい。0044応答しないタブが検出されたとき、ステップ404はそのタブをデタッチすることができる。具体的には、Webブラウザーまたは他のアプリケーションによって使用される共有入力メッセージキューから応答しないタブをデタッチすることができる。デタッチメントを実行するために、ステップ406はデタッチされたキューを開始する。例えば、メッセージキューマネージャー111は、キューを作成して、またはそうでない場合はキューを取得して、任意の適切な方法で応答しないタブのメッセージを処理することができる。これは、新しいキューをオンデマンドで作成することおよび/または応答しないタブが使用するための既存のキューを準備することを必要とすることがある。初期化は、キューと応答しないタブとの間の関連性を生み出す。0045適切なデタッチされたキューが初期化されると、ステップ408は、タブのメッセージを共有キューからデタッチされたキューに移行する。これは、キュー間でメッセージを移動することおよびメッセージが正しくシーケンス処理されることを確認することを含むことができる。例えば、メッセージを、タイムスタンプおよび/または入力キューにおいてメッセージをシーケンス処理するために使用することができる優先度などのシーケンス情報と関連付けることができる。メッセージは、メッセージを適切なタブに向けるために使用することができるメッセージ番号、ソース名、および/またはプロセスIDなどのターゲット情報を含むこともできる。0046特定の応答しないタブに関連付けられたメッセージの移行を実行するために、メッセージキューマネージャー111は、ターゲット情報を検査して、デタッチされたキューに移動されるべきメッセージを特定し、選択することができる。移動されるメッセージに関連付けられたシーケンス情報を用いて、メッセージシーケンスを保持するおよび/または適切な場合、デタッチされたキューにおいてメッセージを並べ替えることができる。これで、タブをデタッチされたものとみなすことができ、デタッチされたキューを使用して、デタッチされたタブのメッセージ処理を実行することができる。同時に、共有入力メッセージキューの使用を継続して、その他の応答するタブのメッセージを処理することができる。必要に応じて、シーケンス情報を使用して、共有入力メッセージに保持されるメッセージを並べ替えることもできる。0047タブがデタッチされると、ステップ410は、デタッチされたタブを監視する。監視に基づいて、ステップ412は、デタッチされたタブが再び応答するようになったときを判定する。任意の適切な機構を用いて、デタッチされたタブを監視することができる。例えば、上記で説明された共有キューのタブの監視に匹敵した方法で、デタッチされたタブの監視を行うことができる。少なくともいくつかの実施形態では、メッセージキューマネージャー111は、ハートビートメッセージをデタッチされたタブに送信し、ハートビートメッセージに基づいて、デタッチされたタブが応答するかどうかを判定するように動作することができる。0048デタッチされたタブが応答するようになったとき、ステップ414はそのタブを再アタッチする。例えば、メッセージキューマネージャー111がデタッチされたタブからハートビートメッセージ応答を受信した、またはそうでない場合はタブが応答すると判定した場合、メッセージキューマネージャー111は、タブを共有キューに再アタッチさせることができる。再アタッチメントを実行するために、ステップ416はデタッチされたキューから共有キューにタブのメッセージをマージする。例えば、メッセージキューマネージャー111は、共有キューにおけるメッセージとともに、適切なシーケンスで、メッセージをデタッチされたキューから共有キューに戻すことができる。メッセージが正しくシーケンス処理されるように、先に述べたシーケンス情報を用いて、メッセージをまとめることができる。例えば、メッセージが共有キューでマージされるときに、タイムスタンプおよび/またはメッセージに関連付けられた優先度を使用して、メッセージを並べ替えることができる。0049ステップ416でメッセージがマージされると、ステップ418はデタッチされたキューをクリアする。メッセージキューマネージャー111がキューを繰り返し使用するように構成されている場合、このステップを実行して、別の応答しないタブとともに使用するためのキューを準備することができる。メッセージキューマネージャー111が応答しないタブのためのキューをオンデマンドで作成する実施形態では、このステップは、デタッチされたキューを閉じること、デタッチされたキューを削除すること、またはそうでない場合はデタッチされたキューをシャットダウンすることを必要とすることがある。次いで、必要に応じて、異なる応答しないタブとともに使用するための別のデタッチされたキューがオンデマンドで作成され得る。0050ここで、タブを共有キューに再アタッチされたものとみなすことができ、再アタッチされたタブならびに他のタブのメッセージ処理が再び共有キューを介して行われる。00511つまたは複数の実施形態による例示的な方法について説明してきたが、次に、1つまたは複数の実施形態による、メッセージキュー管理の様々な技術を実施するために用いることができる例示的なシステムについて検討する。例示的なシステム0052図5は、上記で説明された様々な実施形態を実施するために使用することができる例示的なコンピューティングデバイス500を示す。コンピューティングデバイス500は、例えば、図1のコンピューティングデバイス102またはWebサーバー114とすることができる。0053コンピューティングデバイス500は、1つまたは複数のプロセッサーもしくは処理ユニット502、1つまたは複数のメモリーおよび/もしくは記憶コンポーネント504、1つまたは複数の入力/出力I/Oデバイス506、ならびに様々なコンポーネントおよびデバイスが互いに通信することを可能にするバス508を含む。バス508は、様々なバスアーキテクチャのいずれかを使用するメモリーバスまたはメモリーコントローラー、周辺バス、アクセラレーテッドグラフィックスポート、およびプロセッサーまたはローカルバスを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。バス508は、有線バスおよび/または無線バスを含むことができる。0054メモリー/記憶コンポーネント504は、1つまたは複数のコンピューター記憶媒体を表す。コンポーネント504は、ランダムアクセスメモリーRAMなどの揮発性メディアおよび/または読取り専用メモリーROM、フラッシュメモリー、光ディスク、磁気ディスクなどの不揮発性メディアを含むことができる。コンポーネント504は、固定メディア例えば、RAM、ROM、固定ハードドライブなどならびにリムーバブルメディア例えば、フラッシュメモリードライブ、リムーバブルハードドライブ、光ディスクなどを含むことができる。00551つまたは複数の入力/出力デバイス506により、ユーザーはコマンドおよび情報をコンピューティングデバイス500に入力することができ、また、情報をユーザーおよび/または他のコンポーネントもしくはデバイスに提示することができる。入力デバイスの例としては、キーボード、カーソル制御デバイス例えば、マウス、マイクロホン、スキャナーなどが挙げられる。出力デバイスの例としては、表示デバイス例えば、モニターまたはプロジェクター、スピーカー、プリンター、ネットワークカードなどが挙げられる。0056ソフトウェアまたはプログラムモジュールの概括的な文脈において、様々な技法が本明細書に記載され得る。概して、ソフトウェアは、特定のタスクを実行するまたは特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。これらのモジュールおよび技法の実施は、何らかの形態のコンピューター可読メディアに記憶されるか、または伝送され得る。コンピューター可読メディアは、コンピューティングデバイスによってアクセスすることができる、任意の利用可能な1つまたは複数のメディアとすることができる。例として限定することなく、コンピューター可読メディアは、コンピューター可読記憶媒体を備え得る。0057コンピューター可読記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するために任意の方法または技術で実施される揮発性メディアおよび不揮発性メディア、リムーバブルメディアおよび非リムーバブルメディアを含む。コンピューター可読記憶媒体としては、RAM、ROM、EEPROM、フラッシュメモリーもしくは他のメモリー技術、CD-ROM、デジタル多用途ディスクDVDもしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、コンピューターによってアクセスすることができる任意の他のメディアが挙げられるが、これらに限定されない。結論0058様々な実施形態は、マルチコンポーネントアプリケーションが応答しなくなる例えば、ロックアップ、ハング、クラッシュなど可能性を低減し、マルチコンポーネントアプリケーションが応答しなくなった場合に個々のコンポーネントの回復オプションを有効にするように設計された、メッセージキュー管理の技法を提供する。少なくともいくつかの実施形態では、メッセージキューマネージャーを実施して、アプリケーションインターフェイスのコンポーネントが応答しなくなったときを検出し、共有メッセージキューからそのコンポーネントをデタッチすることができる。共有メッセージキューは、他の応答するコンポーネントのメッセージの処理を継続することができる一方、応答しないコンポーネントのメッセージングは、別個のキューを介して管理される。また、メッセージキューマネージャーは、応答しないコンポーネントについてユーザーに通知し、応答しないコンポーネントの回復を容易にするためのオプションをユーザーに提供することができる。さらに、少なくともいくつかの実施形態では、メッセージキューマネージャーは、デタッチされたコンポーネントを監視し、デタッチされたコンポーネントが再び応答するようになったときに、デタッチされたコンポーネントを再アタッチすることができる。0059構造的機能および/または方法的行為に特有の文言で主題について説明してきたが、添付の特許請求の範囲で定義される主題は必ずしも上記で説明された特定の機能または行為に限定されないことを理解されたい。むしろ、上記で説明された特定の機能および行為は、特許請求の範囲を実施する例示的な形態として開示される。