(57)【特許請求の範囲】
【請求項１】
１または複数のコンピューティングデバイスが、
第１のユーザの移動体デバイスから、前記デバイスに対する電力に関する情報、前記デバイスのネットワーク接続に関する情報、および前記デバイスの通知モードから成るグループから選択されるデバイス状態情報を受信する、第１のメッセージ受信ステップと、
前記第１のユーザに対して送信される１または複数の発信メッセージを識別するステップと、
前記１または複数の発信メッセージのそれぞれの価値を計算するステップであって、前記価値は、前記第１のユーザに関する情報について計算される、発信メッセージ価値計算ステップと、
前記１または複数の発信メッセージのそれぞれにタイムアウト期間を割り当てるステップであって、前記タイムアウト期間は前記第１のユーザと前記１または複数の発信メッセージのそれぞれとの間の計算された親和度に反比例し、前記タイムアウト期間は前記デバイス状態情報に基づいてスケール係数によって調整される、ステップと、
前記発信メッセージを発信メッセージキューに入れる、発信メッセージをキューに入れるステップと、
前記デバイス状態情報と、前記タイムアウト期間と、前記１または複数の発信メッセージのそれぞれの価値とに基づくトリガ条件を検出すると、前記発信メッセージキュー内の少なくとも１つのメッセージを前記移動体デバイスに送信する、送信ステップと、からなる方法。
【請求項２】
前記発信メッセージ価値計算ステップはさらに、前記１または複数の発信メッセージのぞれぞれと前記第１のユーザとの間の親和度に基づく、請求項１に記載の方法。
【請求項３】
前記発信メッセージをキューに入れるステップは、前記発信メッセージキュー内のすべてのメッセージの価値の合計を計算するを含み、前記トリガ条件は、該合計が所定の閾値を超えることを含む、請求項１に記載の方法。
【請求項４】
前記所定の閾値は、前記デバイス状態情報に基づく、請求項３に記載の方法。
【請求項５】
前記トリガ条件は、前記発信メッセージキュー内の前記１または複数のメッセージの前
記タイムアウト期間のうちのいずれか１つが経過した場合にトリガされる、請求項１に記載の方法。
【請求項６】
前記デバイス状態情報は、前記移動体デバイスのシステム健全性を含む、請求項１に記載の方法。
【請求項７】
前記移動体デバイスの前記システム健全性は、前記移動体デバイスのバッテリ状態を含む、請求項６に記載の方法。
【請求項８】
非一時的なコンピュータ記憶媒体であって、命令を備え、前記命令は、１または複数のコンピューティングデバイスによって実行されると、
第１のユーザの移動体デバイスから、前記デバイスに対する電力に関する情報、前記デバイスのネットワーク接続に関する情報、および前記デバイスの通知モードから成るグループから選択されるデバイス状態情報を受信する、第１のメッセージ受信ステップと、
前記第１のユーザに対して送信される１または複数の発信メッセージを識別するステップと、
前記１または複数の発信メッセージのそれぞれの価値を計算するステップであって、前記価値は、前記第１のユーザに関する情報について計算される、発信メッセージ価値計算ステップと、
前記１または複数の発信メッセージのそれぞれにタイムアウト期間を割り当てるステップであって、前記タイムアウト期間は前記第１のユーザと前記１または複数の発信メッセージのそれぞれとの間の計算された親和度に反比例し、前記タイムアウト期間は前記デバイス状態情報に基づいてスケール係数によって調整される、ステップと、
前記発信メッセージを発信メッセージキューに入れる、発信メッセージをキューに入れるステップと、
前記デバイス状態情報と、前記タイムアウト期間と、前記１または複数の発信メッセージのそれぞれの価値とに基づくトリガ条件を検出すると、前記発信メッセージキュー内の少なくとも１つのメッセージを前記移動体デバイスに送信する、送信ステップと、が行われるように構成される、媒体。
【請求項９】
前記発信メッセージ価値計算ステップはさらに、前記１または複数の発信メッセージのぞれぞれと前記第１のユーザとの間の親和度に基づく、請求項８に記載の媒体。
【請求項１０】
前記発信メッセージをキューに入れるステップは、前記発信メッセージキュー内のすべてのメッセージの価値の合計を計算するを含み、前記トリガ条件は、該合計が所定の閾値を超えることを含む、請求項８に記載の媒体。
【請求項１１】
前記所定の閾値は、前記デバイス状態情報に基づく、請求項１０に記載の媒体。
【請求項１２】
前記トリガ条件は、前記発信メッセージキュー内の前記１または複数のメッセージの前記タイムアウト期間のうちのいずれか１つが経過した場合にトリガされる、請求項８に記載の媒体。
【請求項１３】
前記デバイス状態情報は、前記移動体デバイスのシステム健全性を含む、請求項８に記載の媒体。
【請求項１４】
前記移動体デバイスの前記システム健全性は、前記移動体デバイスのバッテリ状態を含む、請求項１３に記載の媒体。
【請求項１５】
１また複数のプロセッサと、
前記プロセッサによって実行可能な命令を含む、前記プロセッサに結合されているメモリと、を備え、前記プロセッサは、前記命令が実行されるとき、
第１のユーザの移動体デバイスから、前記デバイスに対する電力に関する情報、前記デバイスのネットワーク接続に関する情報、および前記デバイスの通知モードから成るグループから選択されるデバイス状態情報を受信する、第１のメッセージ受信ステップと、
前記第１のユーザに対して送信される１または複数の発信メッセージを識別するステップと、
前記１または複数の発信メッセージのそれぞれの価値を計算するステップであって、前記価値は、前記第１のユーザに関する情報について計算される、発信メッセージ価値計算ステップと、
前記１または複数の発信メッセージのそれぞれにタイムアウト期間を割り当てるステップであって、前記タイムアウト期間は前記第１のユーザと前記１または複数の発信メッセージのそれぞれとの間の計算された親和度に反比例し、前記タイムアウト期間は前記デバイス状態情報に基づいてスケール係数によって調整される、ステップと、
前記発信メッセージを発信メッセージキューに入れる、発信メッセージをキューに入れるステップと、
前記デバイス状態情報と、前記タイムアウト期間と、前記１または複数の発信メッセージのそれぞれの価値とに基づくトリガ条件を検出すると、前記発信メッセージキュー内の少なくとも１つのメッセージを前記移動体デバイスに送信する、送信ステップと、が行われるように構成される、システム。
【請求項１６】
前記発信メッセージ価値計算ステップはさらに、前記１または複数の発信メッセージのぞれぞれと前記第１のユーザとの間の親和度に基づく、請求項１５に記載のシステム。
【請求項１７】
前記発信メッセージをキューに入れるステップは、前記発信メッセージキュー内のすべてのメッセージの価値の合計を計算するを含み、前記トリガ条件は、該合計が所定の閾値を超えることを含む、請求項１５に記載のシステム。
【請求項１８】
前記所定の閾値は、前記デバイス状態情報に基づく、請求項１７に記載のシステム。
【請求項１９】
前記トリガ条件は、前記発信メッセージキュー内の前記１または複数のメッセージの前記タイムアウト期間のうちのいずれか１つが経過した場合にトリガされる、請求項１５に記載のシステム。
【請求項２０】
前記デバイス状態情報は、前記移動体デバイスのシステム健全性を含む、請求項１５に記載のシステム。
【請求項２１】
前記移動体デバイスの前記システム健全性は、前記移動体デバイスのバッテリ状態を含む、請求項２０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にデータ通信に関する。
【背景技術】
【０００２】
２つのコンピューティングデバイスがネットワークに接続されている場合、１または複数の適切なネットワークプロトコルを使用してその２つのデバイス間でネットワークを通じてデータを送信することができる。ネットワークはインターネット、企業イントラネット、仮想プライベートネットワーク、ローカルエリアネットワーク、無線ローカルエリアネットワーク、セルラーネットワーク、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、または２以上のこのようなネットワークの組み合わせの場合がある。
【０００３】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステムのユーザとソーシャルネットワーキングシステムとの対話、およびシステムを通じたユーザ同士の対話を可能にする。ソーシャルネットワーキングシステムは、よくユーザプロファイルと称する記録を、ユーザと関連付けて作成し記憶することができる。ユーザプロファイルには、ユーザの人口学的情報、通信チャネル情報、および個人的関心などが含まれ得る。また、ソーシャルネットワーキングシステムは、ユーザとソーシャルネットワーキングシステム内の他のユーザとの関係の記録（例えばソーシャルグラフ）を作成して記憶し、サービス（ウォール投稿、写真のシェア、イベント企画、メッセージ交換、ゲームまたは広告など）を提供して、ソーシャルネットワーキングシステム内のユーザ間のソーシャルネットワーク上の対話を促すこともできる。ソーシャルネットワーキングシステムは、そのサービスに関連するコンテンツおよびメッセージを、ネットワークを通じてユーザのクライアントデバイスに送信することができる。
【図面の簡単な説明】
【０００４】
【図１】例示のネットワーク環境を示す図。
【図２】サーバから移動体デバイスへのメッセージ送信を、移動体デバイスのユーザインタフェースモードに基づいて管理する例示の方法を示す図。
【図３】ユーザインタフェースモードおよび通知モードの例を示す図。
【図３Ａ】例示の無線接続状態を示す図。
【図４】サーバから移動体デバイスへのメッセージ送信を、管理する例示の方法を示す図。
【図４Ａ】メッセージキューを送信する例示の方法を示す図。
【図４Ｂ】メッセージキューを送信する他の例示の方法を示す図。
【図５】ソーシャルネットワーキングシステム内のユーザの親和度の尺度を計算するための例示のブロック図を示す図。
【図６】例示のソーシャルネットワーキング環境を示す図。
【図７】要求に基づいてユーザの親和度の尺度を計算する例示の方法を示す図。
【図８】例示のコンピュータシステムを示す図。
【図９】例示の移動体デバイスプラットフォームを示す図。
【発明を実施するための形態】
【０００５】
データ通信において、サーバはコンピュータネットワークを通じてクライアントデバイスに１または複数のメッセージを送信することができる。例えば、電子メール交換ソフトウェアを動作させているサーバシステムは、インターネットを通じてユーザのクライアン
トデバイス（例えばデスクトップコンピュータ、携帯電話、タブレットコンピュータ）に電子メールメッセージを送信することができる。ユーザは、移動体デバイス上で動作している電子メールプログラム（例えばマイクロソフトアウトルック（Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ））を使用して、クライアントデバイスで受信した電子メールメッセージにアクセスすることができる。
【０００６】
図１に、サーバから移動体デバイスに１または複数のメッセージを送信することができる例示のネットワーク環境を示す。特定の実施形態では、サーバ１２０はネットワーククラウド１２１を通じて移動体デバイス１２２と通信し、移動体デバイス１２２に１または複数のメッセージを送信することができる。サーバ１２０は、１または複数のコンピュータまたはコンピューティングデバイスを含み得る。特定の実施形態では、サーバ１２０は１または複数のメッセージサービス１１２に動作可能に接続することができる。各メッセージサービス１１２は、１または複数のユーザにメッセージを転送するように構成された１または複数のコンピュータまたはコンピューティングデバイスであってもよい。例えば、メッセージは電子メール、インスタントメッセージ（ＩＭ）、ショートメッセージサービス（ＳＭＳ）メッセージ、マルチメディアメッセージングサービス（ＭＭＳ）メッセージ、ニュース記事、広告、システム更新メッセージ、またはこれらの任意の組み合わせであってもよいが、これらには限定されない。例えば、メッセージは、リアルタイム通信セッション（例えば通話、ビデオ通話）の確立要求を示す通知であってもよい。例えば、サーバ１２０はユーザへの１または複数の発信メッセージのためにメッセージサービス１１２にアクセスし、ネットワーククラウド１２１を通じてユーザの移動体デバイス１２２にその１または複数の発信メッセージを送信することができる。ネットワーククラウド１２１は、サーバ１２０がそれを通じて移動体デバイス１２２と通信することができるネットワークまたはネットワークの集合（インターネット、企業イントラネット、仮想プライベートネットワーク、ローカルエリアネットワーク、無線ローカルエリアネットワーク、セルラーネットワーク、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、または２以上のこのようなネットワークの組み合わせなど）を一般に表す。
【０００７】
移動体デバイス１２２は、一般に、ネットワークを通じて通信（例えば遠隔通信）するための機能を備えた携帯型コンピュータまたはコンピューティングデバイスである。例えば、移動体デバイス１２２は、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、携帯ゲーム機、電子書籍リーダ、またはその他任意の適切な携帯型デバイスであってよい。移動体デバイス１２２が、ウェブブラウザ（例えば、マイクロソフトウィンドウズ（登録商標）インターネットエクスプローラ（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ）、モジラファイアフォックス（Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ）、アップルサファリ（Ａｐｐｌｅ  Ｓａｆａｒｉ）、グーグルクローム（Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ）、およびオペラ（Ｏｐｅｒａ）など）、または専用クライアントアプリケーション（例えばマイクロソフトアウトルック（Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ）、フェースブック（登録商標）フォーアイフォン（Ｆａｃｅｂｏｏｋ（登録商標）ｆｏｒ  ｉＰｈｏｎｅ（登録商標））など）などの１または複数のクライアントアプリケーションを実行することによって、ネットワーククラウド１２１を通じてサーバ１２０から送信されたコンテンツおよびメッセージにアクセスし、閲覧することができる。特定の実施形態では、移動体デバイス１２２はセルラーネットワーク（例えばグローバルシステムフォーモバイルコミュニケーションズ（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）すなわちＧＳＭ（登録商標）セルラーネットワーク、ロングタームエボリューション（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）すなわちＬＴＥネットワーク）の基地局１３１を通じてネットワーククラウド１２１に接続することができる。特定の実施形態では、移動体デバイス１２２はＷｉ−Ｆｉネットワークの無線アクセスポイント１３２を通じてネットワーククラウド１２１に接続することができる。
【０００８】
移動体デバイス（例えば携帯電話、タブレットコンピュータ）は、移動体デバイス自体のバッテリのみで動作することが多い。一方、無線ネットワークを通じたメッセージの受信は、（例えば移動体デバイスの無線送受信部によって）移動体デバイスのバッテリに蓄積されたエネルギーを相当量減少させることがある。ユーザがユーザの移動体デバイスで利用できる大量のメッセージ（前述のメッセージなど）を考えると、移動体デバイスのバッテリの電力の節約のために、ユーザの移動体デバイスへのメッセージ送信を管理することが望ましい。本開示における特定の実施形態では、ユーザの移動体デバイスに対するメッセージの送信を管理する方法について説明する。より具体的には、特定の実施形態では、移動体デバイスとのユーザの対話に基づいて、ユーザの移動体デバイスへのメッセージの送信を管理する。例えば、特定の実施形態は、ユーザが移動体デバイスと活発に対話している場合（例えばユーザが移動体デバイス上で動作している１または複数のアプリケーションにアクセスしている場合）、１または複数のメッセージをユーザの移動体デバイスにリアルタイムで送信することができる。例えば、特定の実施形態は、ユーザの移動体デバイスがユーザの手元にないとき（例えばユーザが睡眠中）に移動体デバイスと活発に対話していない場合は、ユーザの要求時にのみユーザの移動体デバイスに１または複数のメッセージを送信することができる。
【０００９】
図２に、サーバから移動体デバイスへのメッセージ送信を、移動体デバイスのユーザインタフェースモードに基づいて管理する例示の方法を示す。図２の例示の方法は、ユーザの移動体デバイスの１または複数のプロセッサ上で動作している通知モードマネージャ処理によって実装されてもよい。例えば、移動体デバイスは携帯電話、タブレットコンピュータ、ラップトップコンピュータ、携帯ゲーム機、電子書籍リーダ、またはその他任意の適切な携帯型デバイスであってもよい。特定の実施形態では、サーバ１２０は、図１に示すようにネットワーククラウド１２１（例えばインターネット）を通じて通信し、移動体デバイスにメッセージを送信することができる。特定の実施形態では、移動体デバイスは、図１に示すようにセルラーネットワークの基地局１３１および／またはＷｉ−Ｆｉネットワークのアクセスポイント１２２を通じてネットワーククラウド１２１に接続することができる。特定の実施形態では、通知モードマネージャ処理は、移動体デバイスのユーザインタフェースモードに基づいて通知モードを決定してもよい（２０１）。特定の実施形態では、通知モードマネージャ処理は、１または複数のコンピューティングデバイス（例えばサーバ１２０）に通知モードを含むメッセージを送信し、それによって、その１または複数のコンピューティングデバイスに通知モードに基づいて移動体デバイスに１または複数のメッセージを送信させることができる（２０２）。
【００１０】
図３に、図２の例示の方法のユーザインタフェースモードおよび通知モードの例を示す。特定の実施形態では、通知モードマネージャ処理は、ユーザが移動体デバイスと活発に対話していることを示す現在のユーザインタフェースモードに基づいてトリクル通知モードを決定することができる。通知モードマネージャ処理は、ユーザが移動体デバイス上で動作している１または複数のアプリケーションと対話している場合に、ユーザが移動体デバイスと活発に対話していると判断してもよい。通知モードマネージャ処理は、特定のアプリケーションのユーザインタフェースがユーザ入力を受け取ったか、または所定時間内（例えば最近の２０秒以内）にユーザインタフェースフォーカスを受け取ったか否かを判断することによって、ユーザが特定のアプリケーションと対話しているか否かを判断することができる。例えば、通知モードマネージャ処理は、移動体デバイスのオペレーティングシステムにアクセスすることによって、または特定のアプリケーションのユーザ入力イベントのリスナとして加入することによって、特定のアプリケーションのユーザインタフェースが所定時間内にユーザ入力を受け取ったか（またはユーザインタフェースフォーカスを受け取ったか）を判断してもよい。
【００１１】
例えば、通知モードマネージャ処理は、ユーザが移動体デバイス上で動作しているメッセージリーダアプリケーションと対話しているか否かを判断してもよい。また、例えば、通知モードマネージャ処理は、ユーザが移動体デバイス上でメッセージリーダ以外のアプリケーションと対話しているかを判断してもよい。メッセージリーダは専用クライアントアプリケーション（例えばマイクロソフトアウトルック（Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ）、フェースブックフォーアイフォン（Ｆａｃｅｂｏｏｋ  ｆｏｒ  ｉＰｈｏｎｅ）であってもよい。メッセージリーダは、１または複数のメッセージ（例えばグーグル（Ｇｏｏｇｌｅ）のＧｍａｉｌウェブインタフェース、フェースブック（Ｆａｃｅｂｏｏｋ）ウェブユーザインタフェース）にアクセスするための１または複数の構造化文書（例えばウェブページ、アイフレーム（ｉＦｒａｍｅ））を表示するウェブブラウザとすることもできる。特定の実施形態では、図３に示すように、通知モードマネージャ処理は、現在のユーザインタフェースモードが、ユーザが移動体デバイス上で動作しているメッセージリーダアプリケーションと対話していること（３０１）であるか、またはユーザが移動体デバイス上のメッセージリーダ以外のアプリケーションと対話していること（３０２）である場合、トリクル通知モード（３１０）と決定してもよい。特定の実施形態では、通知モードマネージャ処理は、サーバ１２０に、トリクル通知モードを示すメッセージを送信して、サーバ１２０に１または複数のメッセージを移動体デバイスにリアルタイムで送信させることができる。例えば、トリクル通知モードを示すメッセージに応答して、サーバ１２０上で動作しているサーバ側の処理は、ユーザへの１または複数の発信メッセージのために１または複数のメッセージサービス１１２にアクセスし、その１または複数のメッセージをユーザにリアルタイムで（例えば新たな発信メッセージが利用可能なときはいつでも）送信することができる。
【００１２】
特定の実施形態では、通知モードマネージャ処理は、例えばユーザが歩行中または車の運転中に移動体デバイスがユーザのポケットに入っている場合など、現在のユーザインタフェースモードが、移動体デバイスがユーザの手元にあるがユーザが移動体デバイスと活発に対話していないことを示していることに基づいて、ナッピング通知モードと決定してもよい。通知モードマネージャ処理は、移動体デバイス上で動作しているいずれのアプリケーションも、所定時間内（例えば最近の３分間以内）にユーザ入力（またはユーザ入力フォーカス）を受け取っていない場合、ユーザが移動体デバイスと対話していないと判断してもよい。他の実施形態では、通知モードマネージャ処理は、移動体デバイスのディスプレイが低電力または低利用状態（ディスプレイの電力を落としている状態またはスクリーンセーバまたはスクリーンロックプログラムが実行されている状態）である場合に、ユーザが移動体デバイスと対話していないと判断することができる。通知モードマネージャ処理は、移動体デバイスが移動中である（例えばユーザが移動体デバイスを持ち歩いていることを示している）場合に、移動体デバイスがユーザの手元にあると判断することができる。通知モードマネージャ処理は、移動体デバイスの加速度計のデバイスドライバにアクセスすることによって、移動体デバイスが移動中であるか否かを判断することができる。
【００１３】
特定の実施形態では、通知モードマネージャ処理は、図３に示すように、移動体デバイスの移動中であってユーザが移動体デバイスと対話していない場合（３０３）、ナッピング通知モード（３１１）と決定してもよい。特定の実施形態では、通知モードマネージャ処理は、ナッピング通知モードを示すメッセージをサーバ１２０に送信して、サーバ１２０に所定時間間隔で（例えば１０分おきに）移動体デバイスに対して１または複数のメッセージを送信させることもできる。例えば、ナッピング通知モードを示すメッセージに応答して、サーバ１２０上で動作しているサーバ側の処理は、ユーザへの１または複数の発信メッセージのために１または複数のメッセージサービス１１２にアクセスし、１０分おきに移動体デバイスにその１または複数の発信メッセージを送信することができる。
【００１４】
特定の実施形態では、通知モードマネージャ処理は、現在のユーザインタフェースモードが、移動体デバイスが所定時間静止している（例えば移動体デバイスが最近１５分間静止している）ときにユーザが移動体デバイスと活発に対話していないことを示していることに基づいて、スリープ通知モードと決定してもよい。例えば、ユーザが睡眠中である可能性がある。前述のように、通知モードマネージャ処理は、移動体デバイス上で動作しているいずれのアプリケーションも所定時間内にユーザ入力（またはユーザ入力フォーカス）を受け取っていない場合、ユーザが移動体デバイスと対話していないと判断することができる。通知モードマネージャ処理は、移動体デバイスのディスプレイが低電力または低利用状態にある場合にユーザが移動体デバイスと対話していないと判断することもできる。通知モードマネージャ処理は、移動体デバイスの加速度計のデバイスドライバにアクセスすることによって、移動体デバイスが静止状態またはＩＤＬＥ状態（アイドル）であるかを判断することができる。
【００１５】
特定の実施形態では、通知モードマネージャ処理は、図３に示すように、移動体デバイスが静止しておりユーザが移動体デバイスと対話していない場合（３０４）に、スリープ通知モード（３１２）と決定することができる。特定の実施形態では、通知モードマネージャ処理は、スリープ通知モードを示すメッセージをサーバ１２０に送信して、サーバ１２０にユーザの要求時に移動体デバイスに対して１または複数のメッセージを送信させてもよい。すなわち、サーバ１２０は、ユーザがメッセージへのアクセスを要求しない限り、移動体デバイスにメッセージを送信しない。例えば、ユーザは前述のメッセージリーダアプリケーションにアクセスして、前述のように通知モードマネージャ処理にトリクル通知モード（３１０）を示すメッセージをサーバ１２０に対して送信させてもよい。トリクル通知モードを示すメッセージに応答して、サーバ１２０上で動作しているサーバ側の処理が、ユーザへの１または複数の発信メッセージのために１または複数のサービス１１２にアクセスし、その１または複数のメッセージをユーザに送信することができる。
【００１６】
通知モードマネージャ処理は、ユーザインタフェースモードの様々な組み合わせに基づいて通知モードを決定することもできる。例えば、通知モードマネージャ処理は、ユーザが移動体デバイス上でメッセージリーダアプリケーション以外のアプリケーションと対話している場合（３０２）、または移動体デバイスの移動中にユーザが移動体デバイスと対話していない場合（３０３）に、ナッピング通知モードと決定してもよい。通知モードマネージャ処理は、ユーザが移動体デバイス上で動作しているメッセージリーダアプリケーションと対話している場合（３０１）に、トリクル通知モードと決定してもよい。通知モードマネージャ処理は、移動体デバイスが静止しておりユーザが移動体デバイスと対話していない場合（３０４）に、スリープ通知モードと決定してもよい。
【００１７】
また、通知モードマネージャ処理は、移動体デバイスの電源状態に基づいて通知モードを決定することができる。例えば、通知モードマネージャ処理は、移動体デバイスのバッテリのデバイスドライバにアクセスし、バッテリレベルが低い（例えば充電率２０％未満）と判断することができる。バッテリエネルギーを節約するために、図３に示すように、通知モードマネージャ処理は、バッテリレベルが低い場合（３０５）に、スリープ通知モード（３１２）と決定してもよい。他の実施形態では、通知モードマネージャ処理は、バッテリがほぼ完全に充電されている（例えば充電率９０％を超えている）場合、ナッピング通知モードと決定してもよい。通知モードは、バッテリが充電中である場合に、トリクル通知モードと決定してもよい。
【００１８】
通知モードマネージャ処理は、移動体デバイスの現在の無線ネットワーク状態に基づいて通知モードを決定してもよい。例えば、通知モードマネージャ処理は、移動体デバイスの無線通信サブシステムのデバイスドライバにアクセスし、現在の無線ネットワーク接続の信号強度（例えばバー５本のうちの４本）を判断することができる。例えば、信号強度
の弱い（例えばバー５本のうちの１本）無線ネットワーク接続は、パケット損失によりデータ通信の効率が良くない（したがってより多くのエネルギーを消費する）可能性がある。図３に示すように、通知モードマネージャ処理は、現在の無線ネットワーク接続の信号強度が低い場合（３０６）、スリープ通知モード（３１２）と決定してもよい。
【００１９】
特定の実施形態は、通知モードに基づいて移動体デバイスの無線ネットワーク状態をさらに変更することができる。例示として、図３ＡにＧＳＭおよび次世代ＵＭＴＳ（ユニバーサルモバイルテレコミュニケーションシステム（Ｕｎｉｖｅｒｓａｌ  Ｍｏｂｉｌｅ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｙｓｔｅｍ））地上無線アクセスネットワーク（Ｔｅｒｒｅｓｔｒｉａｌ  Ｒａｄｉｏ  Ａｃｃｅｓｓ  Ｎｅｔｗｏｒｋ）（Ｅ−ＵＴＲＡＮ）セルラーネットワーク接続の無線リソース制御（ＲＲＣ）接続モードを示す。本開示は、任意の種類のセルラーネットワークの無線ネットワーク状態の任意の組み合わせを企図する。図３Ａの例では、電源投入後、移動体デバイスは、ＤＣＨ（専用チャネル（Ｄｅｄｉｃａｔｅｄ  Ｃｈａｎｎｅｌ））接続モード（３５１）またはＦＡＣＨ（下りアクセスチャネル（Ｆｏｒｗａｒｄ  Ａｃｃｅｓｓ  Ｃｈａｎｎｅｌ））接続モード（３５３）に遷移することによって基地局との接続を確立するまでＩＤＬＥ状態（３５０）である。ＤＣＨ接続モードおよびＦＡＣＨ接続に加えて、移動体デバイスはＰＣＨ（ページングチャネル（Ｐａｇｉｎｇ  Ｃｈａｎｎｅｌ））接続モード（３５２）でも基地局に接続することができる。これらの接続モードのうち、ＤＣＨ接続モードのデータ帯域幅が最も大きく、エネルギー消費が最も高い（例えば２ＭＢ／秒、２００ｍＡ）可能性がある。ＦＡＣＨ接続モードは、データ帯域幅はより小さいがエネルギー消費はＤＣＨ接続モードの約５０％である（例えば４ｋＢ／秒、１００ｍＡ）。ＰＣＨ接続モードのデータ帯域幅はゼロであるが、エネルギー消費はＤＣＨ接続モードの１％〜２％である（例えばデータなし、２ｍＡ）。移動体デバイスは、基地局との接続を維持したまま、より高い電力およびより大きいデータ帯域幅の接続状態からより低い電力およびより小さいデータ帯域幅の接続状態に遷移して（例えば図３Ａの３６０、３６１および３６２）、エネルギー消費を節約することができる。遷移３６０、３６１、３６２は、タイマーを使用することによってトリガされ得る。例えば、基地局は、移動体デバイスがデータ転送セッションを完了した１０秒後に移動体デバイスとの無線接続をより高い電力およびより大きいデータ帯域幅の接続状態からより低い電力およびより小さいデータ帯域幅の接続状態に遷移させてもよい。移動体デバイスは、より低い電力およびより小さい帯域幅の接続状態への遷移要求（例えば３ＧＰＰ  ＴＳ２５．３３１リリース８のＣＲ３４８３Ｒ２に記載されているファストドーマンシー（ｆａｓｔ  ｄｏｒｍａｎｃｙ）要求）を基地局に送信することにより、タイマーが満了するのを待たずに基地局との無線接続をより高い電力およびより大きい帯域幅の接続状態からより低い電力およびより小さいデータ帯域幅の接続状態に能動的に遷移させることも可能である。
【００２０】
特定の実施形態では、通知モードマネージャ処理は、通知モードに基づいて第２の無線ネットワーク状態を決定してもよい。特定の実施形態では、通知モードマネージャ処理は、第２の無線ネットワーク状態の要求をセルラー基地局に送信して、基地局に移動体デバイスとセルラー基地局との間の接続を第２の無線ネットワーク状態に遷移させることができる。例えば、図３に示すように、通知モードマネージャ処理はユーザインタフェースモード（３０４）に基づいてスリープ通知モード（３１２）と決定することがある。スリープ通知モード中は、ユーザ要求がない限りサーバ１２０が移動体デバイスにメッセージを送信しないため、より低い電力およびより小さいデータ帯域幅のモードにして移動体デバイスのバッテリの寿命を節約することが望ましい。例えば、通知モードマネージャ処理は、基地局１３１にＩＤＬＥ接続モード要求を送信して、基地局１３１に移動体デバイスと基地局１３１との間の無線接続をＩＤＬＥ接続モードに遷移（３２２）させることができる。同様に、例えば図３に示すように、通知モードマネージャ処理はユーザインタフェースモード（３０３）に基づいてナッピング通知モード（３１１）と決定してもよい。通知
モードマネージャ処理は、基地局１３１にＰＣＨ接続モード要求を送信して、基地局１３１に移動体デバイスと基地局１３１との無線接続をＰＣＨ接続モードに遷移（３２１）させることができる。さらに他の例として、通知モードマネージャ処理は、図３に示すように、ユーザインタフェースモード（３０１または３０２）に基づいてトリクル通知モード（３１０）と決定してもよい。通知モードマネージャ処理は、基地局１３１にＦＡＣＨ接続モード要求を送信して、基地局１３１に移動体デバイスと基地局１３１との無線接続をＦＡＣＨ接続モードに遷移（３２０）させることができる。
【００２１】
前述のように、特定の実施形態は移動体デバイスのユーザインタフェースモードに基づいて移動体デバイスのための通知モードを決定することができる。特定の実施形態は、通知モードを示すメッセージをサーバに送信して、サーバに移動体デバイスに対して通知モードに基づいてメッセージを送信させることができる。例えば、サーバは通知モードがトリクル通知モードである場合、移動体デバイスにリアルタイムでメッセージを送信することができる。例えば、通知モードがナッピング通知モードである場合、サーバは移動体デバイスに１０分おきにメッセージを送信することができる。通知モードに基づいて移動体デバイスに発信メッセージを送信することに加えて、特定の実施形態は図４に示すようにさらに発信メッセージのランク付けに基づいて移動体デバイスに発信メッセージを送信することができる。
【００２２】
特定の実施形態では、サーバ１２０がユーザの移動体デバイスから、移動体デバイスの通知モード（例えばトリクル通知モード、ナッピング通知モード）を含むメッセージを受信することができる（４０１）。特定の実施形態では、サーバ１２０はユーザの移動体デバイスから、バッテリの寿命、信号強度、無線ネットワークの利用可能性（ＷｉＦｉまたは３Ｇ／４Ｇ）、デバイスが充電中か否かなどの移動体デバイスの健全性を含むメッセージを受信してもよく、サーバ１２０は移動体デバイスの通知モードを決定することができる。特定の実施形態では、移動体デバイスは移動体デバイスの通知モードを決定する要因、すなわち変動要素３０１〜３０６等をサーバ１２０に送信することができる。特定の実施形態では、サーバ１２０は移動体デバイスの通知モードを決定し、移動体デバイスに対して移動体デバイスの通知モードを調整する命令を送信する。特定の実施形態では、移動体デバイスが移動体デバイス自体の通知モードを決定するが、この場合も移動体デバイス自体のシステム健全性に関する情報を移動体デバイスがサーバ１２０に送信する。
【００２３】
メッセージはさらに、ユーザの識別子（例えばユーザ名、電話番号、電子メールアドレス）を含んでもよい。メッセージに応答して、サーバ１２０上で動作しているサーバ側の処理はユーザへの１または複数の発信メッセージを示す１または複数のメッセージサービス１１２にアクセスすることができる（４０２）。サーバ側の処理は、その１または複数の発信メッセージのための情報について、１または複数のメッセージサービス１１２にアクセスすることができる。例えば、発信メッセージのための情報は、発信メッセージの発信者の１または複数の識別子（例えばユーザ名、電話番号、電子メールアドレス）を含み得る。
【００２４】
特定の実施形態では、サーバ側の処理は、１または複数の発信メッセージのそれぞれの価値を決定することができる（４０３）。特定の実施形態では、サーバ側の処理は、１または複数の発信メッセージのそれぞれとユーザとの親和度またはソーシャル関連性に基づいて、すなわち各発信メッセージの発信者とユーザとの親和度に基づいて、１または複数の発信メッセージのそれぞれの価値を決定してもよい。例えば、サーバ側の処理は、１または複数の発信メッセージのそれぞれに親和度スコアを割り当ててもよい。例えば、サーバ側の処理は、発信メッセージの発信者がユーザの近親者（例えば親、兄弟姉妹）である場合にその発信メッセージに親和度スコア１．０を割り当て、発信メッセージの発信者がユーザと頻繁に通信している場合は親和度係数０．９を割り当て、発信メッセージの発信
者がソーシャルネットワーキングシステムのソーシャルグラフにおけるユーザの一次連絡先である場合、親和度係数０．７を割り当ててもよい。ソーシャルネットワーキングシステム上でのユーザ間のチャット、ウォール投稿、電子メールなどの対話も、ソーシャルネットワーキングシステムのユーザ間の親和度にスコアを付ける際に使用することができる。親和度スコア付けの評価方法については後述する。
【００２５】
特定の実施形態は、ユーザが移動体デバイスと対話している場合には移動体デバイスにより多くの発信メッセージを送信し、ユーザが移動体デバイスと活発に対話していない場合には、移動体デバイスにより少ない発信メッセージを送信してもよい。特定の実施形態では、サーバ側の処理は、通知モードと１または複数の発信メッセージのそれぞれの価値とに基づいて、移動体デバイスに少なくとも１つの発信メッセージを送信してもよい（４０４）。例えば、サーバ側の処理は、トリクル通知モード（例えばユーザが移動体デバイスで対話中）を示す移動体デバイスからのメッセージに応答して、所定の閾値（例えば０．４）より大きい親和度スコアを有する発信メッセージを選択し、選択した発信メッセージを移動体デバイスに送信することができる。一方、例えばナッピング通知モード（例えば移動体デバイスの移動中にユーザが移動体デバイスと対話していない状態）を示す移動体デバイスからのメッセージに応答して、サーバ側の処理は、より高い閾値（例えば０．８）を使用して親和度の高い発信メッセージ（例えばユーザにとって最も関連性の高いメッセージ）のみを選択し、この選択した親和度の高い発信メッセージを移動体デバイスに送信することができる。
【００２６】
最も高い親和度スコアを有する発信メッセージを移動体デバイスに送信することに加えて、特定の実施形態は、１または複数の残りの発信メッセージをキューに記憶し、後で移動体デバイスに送信してもよい。特定の実施形態では、サーバ側の処理が、１または複数の発信メッセージの価値と通知モードとに基づいて１または複数の発信メッセージのうちの１または複数を選択し、キューに記憶してもよい。例えば、サーバ側の処理は、通知モードがトリクル通知モードである場合、親和度スコアが０．４未満の発信メッセージを選択し、選択したメッセージをキューに記憶してもよい。例えば、サーバ側の処理は、通知モードがナッピング通知モードの場合、親和度スコアが０．８未満の発信メッセージを選択し、選択したメッセージをキューに記憶してもよい
サーバ側の処理は、キューに入れられた１または複数の発信メッセージのうちの少なくとも１つをより後の時点で移動体デバイスに送信することができる。例えば、サーバ側の処理は、少なくとも１つのキューに入れられた発信メッセージを所定の時間間隔で（例えば３０分ごとに）移動体デバイスに送信してもよい。例えば、サーバ側の処理は、キューのサイズが所定の閾値よりも大きい場合（例えばキューに入っているメッセージが２０個を超える場合）、キューに入れられた少なくとも１つの発信メッセージを移動体デバイスに送信してもよい。例えば、サーバ側の処理は、リアルタイム発信メッセージ（例えば通話）が移動体デバイスに送信されるときに、キューに入れられた少なくとも１つの発信メッセージを移動体デバイスに送信してもよい。例えば、サーバ側の処理は、親和度の高い発信メッセージ（例えば親和度スコアが０．８を超えるメッセージ）が移動体デバイスに送信されるときに、キューに入れられた少なくとも１つの発信メッセージを移動体デバイスに送信してもよい。すなわち、サーバ側の処理は、キューに入れられた少なくとも１つの発信メッセージを、他のリアルタイムまたは親和度の高い発信メッセージにピギーバックすることができる。
【００２７】
図４Ａに、移動体デバイスの報告された通知モード、または代替として移動体デバイスの報告されたシステム健全性に基づいてメッセージをキューに入れ、移動体デバイスに送信する例示の方法を示す。ステップ４０５で、サーバ１２０上の１または複数のサーバ側の処理はメッセージサービス１１２から発信メッセージを受信することができる。前述のように、メッセージは移動体デバイスに送信する任意の種類の通知または通信であっても
よく、これにはインスタントメッセージ、友達リクエストおよびその承認、ユーザのウォールへの他のユーザによる書込み、ユーザの写真への他のユーザによるタグ付け、付近のユーザからのチェックイン、ユーザの友達からの近況メッセージなどが含まれるが、これらには限定されない。
【００２８】
ステップ４０６で、サーバ１２０上の１または複数のサーバ側の処理は、発信メッセージにスコアを割り当てる。前述のように、このスコアは親和度スコアに基づいて割り当てられてもよい。特定の実施形態では、親和度スコアは、ユーザがそのようなメッセージに対して有する相対的な関心度の予測であってもよい。そのような実施形態では、予測関数は、同じ種類のメッセージに対するユーザの過去の関り（エンゲージメント）に基づく機械学習アルゴリズムであってもよい。メッセージの親和度スコア付けについて、図５および図７を参照しながら詳細に記載する。特定の実施形態では、メッセージの所定のカテゴリ化に基づいてメッセージに価値を割り当てることができる。例えばインスタントメッセージ、ウォール投稿、または友達リクエストなど、特定のメッセージをすべてのユーザにとってより重要であるとみなし、その他のメッセージを重要度が有意により低いとみなしてもよい。特定の実施形態では、メッセージをリアルタイムメッセージと非リアルタイムメッセージに分類する。本開示は、個々の発信メッセージのメッセージスコアを計算する任意の適切な方法を企図する。
【００２９】
ステップ４０７で、サーバ１２０上の１または複数のサーバ側の処理は、新たにスコア付けされたメッセージを発信メッセージキューに追加し、そのスコアを、メッセージキュー内のすべてのメッセージのスコアの現在の合計に加算する。したがって、ステップ４０７ではキュースコアの合計はその特定のメッセージについて算出されたスコアだけ増加する。
【００３０】
ステップ４０８で、サーバ１２０上の１または複数のサーバ側の処理は、発信メッセージキュー内のすべてのメッセージのスコアの合計が所定の閾値を超えるか否かを判断する。閾値は、移動体デバイスから受信した通知モードメッセージまたは代替としてシステム健全性を示す情報に基づいて、１または複数のサーバ側の処理によってリアルタイムで調整されてもよい。特定の実施形態では、より高い電力消費通知モードは「より健全な」デバイスということになり、閾値を下げてもよい。例えば、移動体デバイスが、バッテリが完全に充電されていて、プラグ接続され、ＷｉＦｉネットワークに接続されていると報告した場合、閾値をゼロに設定してもよく、その結果、サーバ１２０上のサーバ側の処理は移動体デバイスにほぼリアルタイムでメッセージをプッシュ送信することができる。反対に、移動体デバイスが、バッテリの寿命が１０％未満であり、３Ｇネットワークのエッジにあると報告した場合、サーバ１２０上の１または複数のサーバ側の処理は、閾値を極めて高い数値、例えば１００に増加させてもよい。特定の実施形態では、通知モードまたは移動体デバイスの状況を含むメッセージの受け取りをトリガとして割り込みを行い、それによって閾値を更新し、図４Ａの処理を強制的にステップ４０８にジャンプさせることができる。したがって、このような実施形態では、デバイスが例えば３ＧアクセスのみのエリアからＷｉＦｉアクセスが可能なエリアに移動することによってデバイス自体の「健全性」が増加したと報告した場合、サーバ１２０上のサーバ側の処理は、移動体デバイスのための閾値を下げる方向に調整し、キューを送信すべきかを判定するためのチェックを行う。したがって、新たなメッセージが存在しないときでも、移動体デバイスの健全性または通知モードの変化をトリガとしてキューの送信を行うことができる。
【００３１】
ステップ４０８でサーバ１２０上の１または複数のサーバ側の処理が、発信メッセージキュー内のスコアの合計が閾値を超えたと判断した場合、サーバ側の処理は、発信メッセージキュー内のすべてのメッセージを移動体デバイスに送信し、キューを空にし、合計をクリアする。ステップ４０８で発信メッセージキュー内のメッセージのスコアの合計が閾
値を超えない場合、処理はステップ４０５に戻り、サーバ１２０上のサーバ側の処理は、移動体デバイスへの他の発信メッセージの受け取りを待つ。
【００３２】
図４Ｂに、重要度がより低いメッセージの送信を、より重要なメッセージの送信にピギーバックする他の例示の方法を示す。図４Ａの方法と同様に、図４Ｂの方法は発信メッセージの相対的重要度と移動体デバイスの通知モードまたはデバイスの健全性に基づいて、発信メッセージの送信を調整する。
【００３３】
ステップ４１０で、サーバ１２０上の１または複数のサーバ側の処理は移動体デバイスへの発信メッセージを受信する。ステップ４１１で、サーバ１２０上のサーバ側の処理は、メッセージのタイムアウト（時間切れ）を計算する。特定の実施形態では、メッセージのタイムアウトは判定された重要度に反比例し、移動体デバイスの相対的健全性または通知モードに逆の関連性を示してもよい。例えば、特定のメッセージはタイムアウト値をゼロ（すなわち、メッセージが即座にほぼリアルタイムでユーザに送信される）とし得るほど重要な場合がある。例えば、「至急」の印の付けられたインスタントメッセージは、ゼロのタイムアウト値を有してもよい。反対に、単なる知人からの極めて低い値の状況メッセージは無限大のタイムアウト値を有していてもよくそのメッセージは決して単独では送信されない。特定の実施形態では、各発信メッセージのタイムアウト値は以下に述べるように親和度スコア付けによって決定されてもよく、タイムアウト値はメッセージの親和度に逆の関連性を示すようにされてもよい。個々のメッセージそれぞれのタイムアウト値は、デバイスの健全性または通知モードに対し逆の関連性を示してもよい。したがって、デバイスがＤＣＨモードなどのプロミスキャス（高メッセージ）通知モードである場合、個々のメッセージのタイムアウト値が所定の要素分だけ短縮される。逆に、移動体デバイスが低メッセージ送信モードである場合、または不健全な状態（この場合も教示を目的として、低バッテリの寿命または低ネットワーク接続性）を報告した場合、各メッセージのタイムアウト期間を、１を超える所定のスケール係数を乗じたものにしてもよい。本開示は、個々の発信メッセージのタイムアウトの任意の適切な計算方法を企図する。
【００３４】
ステップ４１２で、発信メッセージはメッセージキューに記憶される。特定の実施形態では、サーバ１２０上の１または複数のサーバ側の処理は、発信メッセージキュー内の発信メッセージのそれぞれについて別々のタイマーを維持する。特定の実施形態では、サーバ側の処理は、単一のシステムタイマーを維持し、発信メッセージキュー内の各メッセージについてカウントダウン値と開始時刻とを記憶する。本開示は、いずれかの個々の発信メッセージがタイムアウト（時間切れ）したか否かを決定する任意の適切な方法を企図する。
【００３５】
ステップ４１３で、サーバ１２０上の１または複数のサーバ側の処理は、発信メッセージキュー内のいずれかのメッセージがタイムアウトしたか否かを判断する。特定の実施形態では、発信メッセージキュー内のいずれかのメッセージのタイムアウトをトリガとして、図４Ｂの方法をステップ４１４に直ちに分岐させる割り込み処理を開始させる。タイムアウトしたメッセージが存在しない場合、処理はステップ４１０に戻り、送信デバイスに送信する新たなメッセージの受信を待つ。
【００３６】
ステップ４１４で、発信メッセージキュー内のメッセージのいずれかがタイムアウトした場合、サーバ１２０上の１または複数のサーバ側の処理は、発信メッセージキュー内のすべてのメッセージを移動体デバイスに送信し、キューを空にする。次に、移動体デバイスへの次の発信メッセージの受信について処理が繰り返される。上記の各方法は、２つの例示のサーバ側メッセージ送信アルゴリズムを例示したに過ぎない。本開示は、メッセージの重要度、メッセージに対するユーザの親和度、デバイスの送信モードまたはデバイスの健全性に基づく他の方法も企図する。原則として、移動体デバイスは図３を参照しなが
ら説明した様々な要因（バッテリの寿命、ユーザの対話、ネットワーク接続など）に基づいて、メッセージを受信する資源コストを認識するのに対し、サーバは（ソーシャル要因および経験的関りに基づいて）ユーザに送信する情報またはメッセージの価値を認識する。移動体デバイスによって資源コストを通知された後、サーバは、その価値がコストを超える場合に移動体デバイスにメッセージを送信すべきか否かの判断に基づくことができる。本開示は、１つの情報の受信に関連付けられた資源コストの任意の適切な計算方法またはその計算の任意の適切な配分方法を企図する。本開示は、特定のユーザにとっての１つの情報の主観的価値もしくはすべてのユーザにとっての１つの情報の客観的価値の任意の適切な計算方法またはその計算の任意の適切な配分方法を企図する。
【００３７】
一実施形態では、ソーシャルネットワーキング環境で動作する処理が、親和度関数を実装するモジュールに対して特定のユーザの親和度の尺度を要求する。このモジュールは、一実装形態では、予測関数の重み付きの組を組み合わせる（例えば加算する）ことによって、要求された親和度の尺度を計算する。ここで、各予測関数はユーザが異なるアクションを行うか否かを予測する関数である。重みは、親和度の尺度を要求する処理によって提供されてもよく、これによって要求側の処理は予測関数に異なる重みを付けることができる。この意味で親和度関数は要求側の処理がその処理自体の目的に合わせて調整可能である。一実装形態では、意図した受信者に対する発信メッセージの親和度スコアを計算する目的で親和度を計算することができる。
【００３８】
予測関数は、ユーザが特定のアクションを行うか否かを、そのアクションに対するユーザの関心に基づいて予測することができる。例えば、予測関数は、ユーザの過去のアクティビティ（例えば前述のソーシャルネットワーキングシステム機能を使用した他のユーザとの対話など）に基づいて導き出すことができる。さらに、予測関数は、ユーザの過去のアクティビティによって与えられた信号の強度を時間とともに減衰させる減衰係数を含むことができる。予測関数は、任意の数のアクションを予測することができ、アクションはソーシャルネットワーキングシステムの内部または外部のアクションであってもよい。例えば、これらのアクションは、メッセージ、コンテンツの投稿、およびコンテンツへのコメントなどのユーザの様々な種類の通信、他の連絡先のプロファイルの閲覧、および他の連絡先によって投稿された写真およびコンテンツの閲覧などユーザの様々な種類の観察アクション、ならびに、同じ写真内のタグ付け、同じ場所へのチェックインおよび同じイベントへの参加などの２つ以上のユーザに関する様々な種類の同時発生情報を含み得る。予測関数は、過去のアクティビティおよび過去のユーザ応答、またはユーザを様々な選択肢および測定応答に触れさせることによってユーザから育てられた（ｆａｒｍｅｄ）データで学習した機械学習アルゴリズムを使用して決定されてもよい。
【００３９】
所定の状況でユーザがとる可能性の高いアクションを予測するために、ソーシャルネットワーキングシステム上または外部の任意の処理が、１組の重みを提供することによってユーザの親和度の尺度を要求することができる。親和度の尺度は、ソーシャルネットワーキングシステム内の他のユーザ、コンテンツ、アクション、広告またはその他任意の対象に対するユーザの関心を反映することができる。重みは、２進数またはより一般的に任意の実数であってもよい。一実装態様では、例えばソーシャルネットワーキングシステムによって送信または中継された対象ユーザの通信デバイスへのメッセージを処理して、その対象ユーザとメッセージとの親和度を計算してもよい。親和度の値は、通信デバイスに送信する前にメッセージの後に付加され得る。他の実装態様では、通信デバイス上で実行されている処理が親和度モジュールにアクセスして親和度の尺度を要求してもよい。一部の実装態様では、通信デバイスは通信デバイスの対象ユーザと（通信デバイス上にローカルに記憶されているかまたはソーシャルネットワーキングシステム上に遠隔に記憶された）対象ユーザの連絡先データベースで識別される１または複数の他のユーザとの親和度を要求することができる。その後の同期処理で、修正された親和度値を得ることができる。通
信デバイスはこれらの親和度値をそれぞれのユーザからのメッセージのために使用することができる。他の実装態様では、通信デバイスは対話をローカルで監視し、親和度値をローカルで計算することができる。
【００４０】
図５は、ソーシャルネットワーキングシステムにおけるユーザの親和度の尺度を計算するための機能を示すブロック図である。所定の状況でユーザが行いたいと考える可能性のある１組のアクションを示す親和度の尺度６１５を計算するために、予測関数６１０に重み１０５を適用し、次にそれらを組み合わせて親和度の尺度６１５を得る。図５には３つの予測関数６１０が示されているが、他の実施形態では任意の数の予測関数を採用することができる。また、図５の実施形態では重み付けされた予測関数６１０は線形的に組み合わされる。異なる実施形態では、調和平均、二乗平均、および相乗平均を含む、他の形態の組み合わせを使用することができる。また、ユーザのアクションを予測する前に様々な重み６０５を有する親和度の複数の尺度６１５を計算してもよい。
【００４１】
親和度関数の重み６０５によって、ソーシャルネットワーキングシステム環境内の様々な処理が親和度関数を異なる目的のために使用することが可能になる。例えば、閲覧者の友達からのソーシャルエンドースメントとともに広告を提供する処理では、広告アルゴリズムが親和度の尺度６１５関数を使用して、ソーシャルエンドースメントにおいてユーザの連絡先のいずれについて言及するか、またはエンドースメントにおいてどのような種類のアクションについて言及するかを決定することができる。親和度の尺度６１５は、ユーザが他のユーザによって投稿されたコンテンツを閲覧することにどの程度関心があるかを示すこれらの予測子関数６１０、および、ソーシャルエンドースメントにおいて言及可能な様々なアクションにユーザがどの程度関心があるかを示す１つまたは複数の予測関数６１０に基づくことができる。したがって広告アルゴリズムは、これらの予測関数６１０に比較的大きな重みを与え、それによって、その結果としての親和度の尺度によって、どのソーシャルエンドースメントがその閲覧ユーザとってより関心のあるものかをより正確に判定されるようにする。次に広告アルゴリズムは、その結果の親和度の尺度を使用してソーシャルエンドースメントを選択し、それによって広告のコンバージョンの尤度を向上させることができる。
【００４２】
第２の例として、ユーザ間の通信を中継するメッセージングアプリケーションのための処理において、ソーシャルアルゴリズムが親和度の尺度６１５関数を使用して、特定の送信側ユーザによって送信されたメッセージに対するユーザの関心の高さを判断することができる。この目的のための親和度の尺度６１５は、ユーザの連絡先によって投稿されたコンテンツを閲覧することにユーザがどの程度関心があるか、および／またはユーザ同士が一般にどれ程度の頻度でメッセージを送信するかを示す予測関数６１０、および、ユーザが様々な種類のメッセージを投稿することまたは様々な種類のメッセージにアクセスすることにどの程度関心があるかを示す１または複数の予測関数６１０に基づくことができる。したがって、ソーシャルアルゴリズムはこれらの予測関数６１０に比較的高く重みを付け、それによってその結果の親和度の尺度によって、どのメッセージがその閲覧ユーザにとってより関心のあるものかを正確に判定されるようにする。この親和度関数は、重み付けされた予測関数６１０によって可能になった高い調整可能な特性のため、多くの異なる目的に使用することができる。
【００４３】
図６は、一実施形態によるソーシャルネットワーキングシステムの環境を示すハイレベルブロック図である。図６には、ネットワーク７０８によって接続された、ソーシャルネットワーキングシステム７００、ユーザデバイス７０２、および外部サーバ７０４が示されている。ソーシャルグラフ７１８は、各ユーザとソーシャルネットワーキングシステム１００の他のユーザとのつながりを記憶する。ソーシャルグラフ７１８は、一部の実施形態では二次つながりを記憶することもできる。したがってつながりは、直接的または間接
的であってもよい。例えば、ユーザＡがユーザＢの一次連絡先であるがユーザＣの一次連絡先ではなく、ＢはＣの一次連絡先である場合、Ｃはソーシャルグラフ７１８上でＡの二次連絡先である。
【００４４】
アクションストア７４０は、ソーシャルネットワーキングシステム７００のユーザによって行われたアクションを、それらのアクションに関連付けられた時刻を示す標識およびアクションに関連する任意のオブジェクトへの参照とともに記憶する。さらに、アクションストア７４０は、アクションの指定カテゴリの統計も記憶することができる。例えば、所与のユーザについて、アクションストア７４０は３０日間にユーザが行ったウォール投稿数、ユーザが送信したメッセージの数、ユーザが３０日間に投稿した写真の数、３０日間にこのユーザのコメントを受信した異なるユーザの人数を含むことができる。アクションストア７４０は、ユーザＡとユーザＢという２つのユーザ間の所与のつながりについて、ＡからＢへのプロファイルページの閲覧回数、ＡからＢへの写真ページの閲覧回数、ＡからＢへのメッセージ数、およびＡとＢが同じ写真内でタグ付けされた回数などのアクションを含むことができ、これらのアクションはタイムスタンプと関連付けられることができ、または期限（例えば２４時間、９０日など）によってフィルタリングされてもよい。アクションストア７４０に記録されるアクションは、育てられた（ｆａｒｍｅｄ）アクション、すなわちソーシャルネットワーキングシステム７００がユーザに対して提案したアクションの選択肢の提示に応答してユーザが行うアクションであってもよい。
【００４５】
予測モジュール７２０は、ユーザが１組の対応するアクションを行うか否かを予測する予測関数６１０の組を計算する役割を担う。前述のように、各予測関数６１０はその予測関数６１０に関連付けられた特定のアクションに対するユーザの関心を表すことができる。ユーザの過去のアクティビティを同じアクティビティに対するユーザの将来の関心を示すものとして使用することができる。一部の実施形態では、予測関数６１０は、アクションに関連付けられたユーザの過去のアクティビティを使用して学習した機械学習アルゴリズムを使用して生成される。したがって予測モジュール７２０は、１組のアクションのそれぞれについて予測関数６１０を提供し、予測関数６１０はユーザの過去のアクティビティを入力とし、対応するアクティビティにユーザが関る尤度の尺度を出力する。
【００４６】
一部の実施形態では、予測関数６１０のうちの１または複数は、ユーザの過去のアクティビティからの信号の強度が時間の経過とともに減衰する、減衰係数を使用することができる。さらに、異なる予測関数６１０が過去のアクティビティを異なるレート（割合）で減衰させてもよい。例えば、新たなつながりの追加などの所定のユーザアクティビティは、他のユーザの近況にコメントするなど、より一時的な関心を示す他の種類のアクティビティよりも持続的な関心を示す。したがって、予測関数６１０は、そのアクティビティが時間の経過とともにどのように関連性が少なくなっていくかについての認識に基づいて過去のアクティビティの効果を減衰させることができる。この目的のために様々な減衰のメカニズムを使用し得る。例えば、予測関数６１０は、指数関数的減衰などの数学的な関数を使用して、ユーザの挙動に関する統計値を減衰させてもよい。他の実施形態では、２４時間または３０日などの特定の時間窓内で発生したユーザの挙動に関する統計値のみを選択することによって減衰が実装される。
【００４７】
一実施形態では、予測関数６１０は、式（１）に示す２つのアフィン関数の比として実現される。この分子のアフィン関数および分母のアフィン関数は、ユーザの過去のアクティビティの統計値を入力とする。
【００４８】
【数１】
0005864769.tif 000002
上式で
Ｐは予測関数６１０、
ａｉはｉ＝０、１、２、．．．、Ｎについての分子のアフィン関数における係数、
ｂｉはｉ＝０、１、２、．．．、Ｍについての分母のアフィン関数における係数、
ｘｉはｉ＝１、２、．．．、Ｎ＋Ｍについての予測関数Ｐに関連するユーザの過去のアクティビティの統計値である。
【００４９】
分母のアフィン関数は、分子のアフィン関数の正規化を表すことができる。例えば、ユーザのコメントの数を、様々な統計値の中でも、ユーザがソーシャルネットワーキングシステム７００上で活動的であった回数によって正規化してよい。具体的には、ｉ＝０、１、２、．．．、Ｍについてｂｉを変更することによって正規化パターンを変更することができる。一部の実施形態では、ｉ＝０、１、２、．．．、Ｎについての係数ａｉおよびｉ＝０、１、２、．．．、Ｍについての係数ｂｉを、機械学習によって求める。機械学習は予測モジュール７２０で実装可能である。特定の実施形態では、教師あり機械学習アルゴリズムは、統計的に有意な数のユーザに対していくつかの選択肢を提供し、それらのユーザの応答を監視することによるファーミング（ｆａｒｍｉｎｇ）で得た学習データとともに使用される。他の実施形態では、過去のユーザアクティビティとアクションの選択肢に対する過去の応答とに全体的に基づいて教師あり機械学習アルゴリズムを学習させる。予測関数６１０は非線形であってもよい。実施形態の一例は家族の予測関数６１０を実装し、その場合、予測関数６１０は家族のメンバについての「ｉｆ−ｔｈｅｎ」構文を含む。すなわち予測関数６１０は、それが親と子のいずれについて計算されるかによって異なるように計算される。
【００５０】
ソーシャルネットワーキングシステム７００における所定の予測関数６１０は、ソーシャルネットワーキングシステム７００におけるユーザの通信に関連するアクションを予測することができる。通信に特に関連する統計は、ブロードキャストデータと通信データを含み得る。ブロードキャストデータは、例えば、一定期間にユーザが投稿した写真の数、一定期間にユーザがアプリケーションを通じて行った投稿の数、およびユーザが他のユーザのグループに対して投稿またはその他の方法で配信したその他任意の通信が含まれ得る。通信データとしては、例えば、一定期間中にユーザが「いいね！」と表明した回数、一定期間中にユーザが投稿したコメントの数、およびユーザの通信アクティビティに関するその他の任意の情報などがある。
【００５１】
同様に、ソーシャルネットワーキングシステム７００における所定の予測関数６１０は、ソーシャルネットワーキングシステム７００におけるユーザによるコンテンツ観察に関連するアクションを予測してもよい。観察に特に関連する統計には、例えば一定期間にユーザが他のユーザのプロファイルページを閲覧した回数、一定期間中にユーザが閲覧した写真の数、一定期間中のソーシャルエンドースメントを含む広告の閲覧回数、およびユーザによるコンテンツの閲覧を含むその他任意のアクティビティなどがある。
【００５２】
最後に、ソーシャルネットワーキングシステム７００における所定の予測関数６１０は、ユーザとソーシャルネットワーキングシステムの１または複数の他のユーザとの同時発生に関連するアクションを予測することができる。同時発生に特に関連する統計値としては、例えば同じ写真内で２つ以上のユーザがタグ付けされた割合、同じ場所にチェックイ
ンした割合、または同じイベントに出席する予定であると（例えば出欠返信依頼によって）確認した割合、および複数のユーザに関連するソーシャルネットワーキングシステム内のアクションまたはオブジェクトを含む他の任意のアクティビティの割合などが含まれ得る。
【００５３】
親和度モジュール７６０は、予測関数６１０を使用して、ソーシャルネットワーキングシステム７００からのユーザに関する入力データに基づいて親和度の尺度６１５を提供する。図５の実施形態では、親和度モジュール７６０は式（２）に示すように予測関数を線形に加算する。ただし、他の実装形態も同様に実現可能である。
【００５４】
【数２】
0005864769.tif 000003
上式で
Ａは要求された親和度の尺度６１５、
Ｐｉはｉ＝０、１、２、．．．、ｓについてのソーシャルネットワーキングシステム７００におけるｓ番目の予測関数６１０、
βｉはｉ＝１、２、．．．、ｓについてのソーシャルネットワーキングシステム１００におけるｓ番目の予測関数６１０に割り当てられた重み６０５である。
【００５５】
図７に、要求に基づいてユーザの親和度の尺度６１５を計算する方法の一実施形態を示す。ソーシャルネットワーキングシステム７００は、まず、処理から、ユーザの親和度の尺度６１５の要求を、様々な予測関数６１０に割り当てられる重み６０５とともに受信する（７７１）。要求は、親和度スコアが所望されるメッセージ、またはメッセージから抽出された１または複数の属性を含むことができる。次に、ソーシャルネットワーキングシステム７００は、予測モジュール７７２においてユーザの予測関数６１０を計算する（７７２）。以前に計算された予測関数６１０を組み合わせて総合的な親和度の尺度６１５を求め（７７３）、次にそれを要求側処理に提供する（７７４）。
【００５６】
図８に、一部の実施形態とともに使用可能な例示のコンピュータシステム８００を示す。本開示は、任意の適合する数のコンピュータシステム８００を企図する。本開示は、任意の適切な物理的形態であるコンピュータシステム８００を企図する。例として、コンピュータシステム８００は、組込コンピュータシステム、システムオンチップ（ＳＯＣ）、デスクトップコンピュータシステム、モバイルコンピュータシステム、ゲーム機、メインフレーム、コンピュータシステム網、サーバ、またはこれらのうちの２以上の組み合わせであってもよいが、これらには限定されない。必要に応じて、コンピュータシステム８００は１または複数のコンピュータシステム８００を含むことができ、単独型または分散型、複数の場所に亘って設置されたもの、複数のマシンに跨って設置されたもの、または１または複数のネットワーク内の１または複数のクラウドコンポーネントを含むクラウドにあるものでもよい。必要に応じて、１または複数のコンピュータシステム８００が、実質的な空間的または時間的な限定なしに、本開示に記載または図示する１または複数の方法の１または複数のステップを実行することができる。例として、１または複数のコンピュータシステム８００は、本開示に記載または図示する１または複数の方法の１または複数のステップを、リアルタイムでまたはバッチモードで実行してもよいが、これには限定されない。１または複数のコンピュータシステム８００は、必要に応じて、本開示に記載または図示する１または複数の方法の１または複数のステップを、異なる時点または異なる場所で実行してもよい。
【００５７】
特定の実施形態では、コンピュータシステム８００は、プロセッサ８０２、メモリ８０４、ストレージ８０６、入出力（Ｉ／Ｏ）インタフェース８０８、通信インタフェース８１０、およびバス８１２を含む。特定の実施形態では、プロセッサ８０２は、コンピュータプログラムを構成する命令などの命令を実行するためのハードウェアを備える。例として、プロセッサ８０２は命令を実行するために、内部レジスタ、内部キャッシュ、メモリ８０４またはストレージ８０６から命令を取り出し（またはフェッチし）、デコードして実行し、１または複数の結果を内部レジスタ、内部キャッシュ、メモリ８０４、またはストレージ８０６に書き込むことができるが、これには限定されない。特定の実施形態では、プロセッサ８０２は、データ、命令、またはアドレスのための１または複数の内部キャッシュを含んでもよい。特定の実施形態では、メモリ８０４は、プロセッサ８０２が実行するための命令またはプロセッサ８０２が操作するためのデータを記憶するためのメインメモリを含む。例として、コンピュータシステム８００は、ストレージ８０６からメモリ８０４に命令をロードすることができるが、これには限定されない。プロセッサ８０２は、次に、命令をメモリ８０４から内部レジスタまたは内部キャッシュにロードすることができる。プロセッサ８０２は命令を実行するために、内部レジスタまたは内部キャッシュから命令を取り出し、デコードすることができる。命令の実行中または実行後、プロセッサ８０２は１または複数の結果（中間結果または最終結果でもよい）を内部レジスタまたは内部キャッシュに書き込むことができる。次に、プロセッサ８０２はこれらの結果の１または複数をメモリ８０４に書き込んでもよい。１または複数のメモリバス（各バスがアドレスバスとデータバスとを含み得る）によって、プロセッサ８０２をメモリ８０４に組み合わせることができる。バス８１２は、以下に述べるように、１または複数のメモリバスを含み得る。特定の実施形態では、１または複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ８０２とメモリ８０４との間に存在し、プロセッサ８０２によって要求されるメモリ８０４へのアクセスを容易にする。特定の実施形態では、メモリ８０４はランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、必要に応じて揮発性メモリであってもよい。必要に応じて、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であってよい。
【００５８】
特定の実施形態では、ストレージ８０６はデータまたは命令のための大容量ストレージを含む。例として、ストレージ８０６はＨＤＤ、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、光ディスク、磁気光ディスク、磁気テープまたはユニバーサルシリアルバス（ＵＳＢ）ドライブ、またはこれらのうちの２以上の組み合わせを含み得るが、これらには限定されない。ストレージ８０６は、必要に応じて、取り外し可能または取り外し不能な（または固定）媒体を含むことができる。ストレージ８０６は、必要に応じて、コンピュータシステム８００の内部ストレージでも外部ストレージでもよい。特定の実施形態では、ストレージ８０６は不揮発性の固体メモリである。特定の実施形態では、ストレージ８０６は読み取り専用メモリ（ＲＯＭ）を含む。必要に応じて、このＲＯＭはマスクプログラム型ＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、またはフラッシュメモリまたはこれらのうちの２以上の組み合わせであってもよい。
【００５９】
特定の実施形態では、Ｉ／Ｏインタフェース８０８は、コンピュータシステム８００と１または複数のＩ／Ｏデバイスとの間の通信のための１または複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム８００は、必要に応じて、これらのＩ／Ｏデバイスの１または複数を含み得る。これらのＩ／Ｏデバイスの１または複数は、人間とコンピュータシステム８００との間の通信を可能にすることができる。一例として、Ｉ／Ｏデバイスはキーボード、マイクロフォン、ディスプレイ、タッチスクリーン、マウス、スピーカ、カメラ、その他の適切なＩ／Ｏデバイス、またはこれらのうちの２以上の組み合わせを含むことができるが、これらには限定され
ない。Ｉ／Ｏデバイスは、１または複数のセンサを含み得る。本開示は、任意の適切なＩ／Ｏデバイスおよびそれらのための任意の適切なＩ／Ｏインタフェース８０８を企図している。必要に応じて、Ｉ／Ｏインタフェース８０８は、プロセッサ８０２がこれらのＩ／Ｏデバイスの１または複数を駆動することができるようにする１または複数のデバイスドライバまたはソフトウェアドライバを含み得る。Ｉ／Ｏインタフェース８０８は、必要に応じて、１または複数のＩ／Ｏインタフェース８０８を含むことができる。本開示では、特定のＩ／Ｏインタフェースについて記載し、図示しているが、本開示は任意の適切なＩ／Ｏインタフェースを企図している。
【００６０】
特定の実施形態では、通信インタフェース８１０は、コンピュータシステム８００と１もしくは複数の他のコンピュータシステム８００または１もしくは複数のネットワークとの間の通信（例えばパケット方式の通信など）のための１または複数のインタフェースを提供するハードウェア、ソフトウェアまたはその両方を含む。一例として、通信インタフェース８１０は、イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））またはその他の有線ネットワークとの通信のためのネットワークインタフェースコントローラ（ＮＩＣ）、または、Ｗｉ−Ｆｉネットワークなどの無線ネットワークとの通信のための無線ＮＩＣ（ＷＮＩＣ）を含み得るが、これらには限定されない。本開示では、任意の適切なネットワークおよびそのための任意の適切な通信インタフェース８１０を企図している。一例として、コンピュータシステム８００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、または、インターネットの１もしくは複数の部分、あるいはこれらのうちの２以上の組み合わせを含み得るが、これらには限定されない。これらのネットワークのうちの１または複数のネットワークの１または複数の部分は、有線または無線であってもよい。例として、コンピュータシステム８００は、無線ＰＡＮ（ＷＰＡＮ）（例えばＢｌｕｅｔｏｏｔｈ（登録商標）ＷＰＡＮ）、Ｗｉ−Ｆｉネットワーク（例えば８０２．１１ａ／ｂ／ｇ／ｎ  Ｗｉ−Ｆｉネットワーク）、Ｗｉ−Ｍａｘネットワーク、セルラーネットワーク（例えばグローバルシステムフォーモバイルコミュニケーションズ（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ：ＧＳＭ）ネットワーク、ロングタームエボリューション（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ：ＬＴＥ）ネットワーク）、またはその他の適切な無線ネットワーク、あるいはこれらのうちの２以上の組み合わせと通信することができる。
【００６１】
特定の実施形態では、バス８１２は、コンピュータシステム８００の構成要素を互いに結合するハードウェア、ソフトウェアまたはその両方を含む。一例として、バス８１２は、アクセラレーテッドグラフィクスポート（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ
Ｐｏｒｔ：ＡＧＰ）またはその他のグラフィクスバス、エンハンストインダストリースタンダードアーキテクチャ（Ｅｎｈａｎｃｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨｙｐｅｒＴｒａｎｓｐｏｒｔ：ＨＴ）相互接続、インフィニバンド（ＩｎｆｉｎｉＢａｎｄ）相互接続、ローピンカウント（ＬＰＣ）バス、メモリバス、ペリフェラルコンポーネントインターコネクトエクスプレス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）またはＰＣＩ−Ｅｘｐｒｅｓｓバス、シリアルアドバンストテクノロジーアッタチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ：ＳＡＴＡ）バス、インターインテグレーテッドサーキット（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：Ｉ２Ｃ）バス、セキュアデジタル（ＳＤ）メモリインタフェース、セキュアデジタル入出力（ＳＤＩＯ）インタフェース、ユニバーサルシリアルバス（ＵＳＢ）バス、汎用入出力（ＧＰＩＯ）バス、またはその他の適切なバスあるいはこれらのうちの２以上の組み合わせであってもよいが、これらには限定されない。バス８１２は、必要に応じて１または複数
のバス８１２を含み得る。
【００６２】
上述のクライアント側機能は、実行されるとプログラマブルプロセッサに上述の操作を実装させるコンピュータ可読記憶媒体に記憶された一連の命令として実装可能である。移動体デバイス１２２は様々なハードウェアおよびコンピューティングシステムで実装可能であるが、図９に様々な特定の実施形態によるクライアントまたは移動体デバイスの例示のコンピューティングプラットフォームの主要構成要素の概略図を示す。特定の実施形態では、コンピューティングプラットフォーム９０２は、コントローラ９０４、メモリ９０６および入出力サブシステム９１０を含むことができる。特定の実施形態では、コントローラ９０４は、命令を実行し、コンピューティングプラットフォームに関連付けられた操作を行うように構成された１または複数のプロセッサおよび／あるいは１または複数のマイクロコントローラを含み得る。様々な実施形態では、コントローラ９０４は、シングルチップ、マルチプルチップならびに／もしくは、１または複数の集積回路およびプリント回路基板を含むその他電気構成要素として実装可能である。必要に応じ、コントローラ９０４は、命令、データまたはコンピュータアドレスの一時的なローカルストレージとしてキャッシュメモリユニットを含んでもよい。コントローラ９０４は、例えばメモリから取り出した命令を使用して、コンピューティングプラットフォーム９０２の構成要素間での入出力データの受信および操作を制御することができる。一例として、コントローラは９０４は、例えば二次元／三次元グラフィクス処理、画像処理、または映像処理のためなど、コンピューティングプラットフォーム９０２の特定の処理タスク専用の１または複数のプロセッサあるいは１または複数のコントローラを含み得る。
【００６３】
コントローラ９０４は、適切なオペレーティングシステムと協働して、コンピュータコードの形態の命令を実行し、データを生成および使用するように動作することができる。一例として、オペレーティングシステムは、ウィンドウズ（Ｗｉｎｄｏｗｓ）、Ｍａｃ、またはＵｎｉｘ（登録商標）またはＬｉｎｕｘ（登録商標）、シンビアン（Ｓｙｍｂｉａｎ）ベースなどの適切なオペレーティングシステムであってもよいが、これらには限定されない。オペレーティングシステム、その他のコンピュータコードおよび／またはデータは、コントローラ９０４に動作可能に結合されたメモリ９０６内に物理的に記憶されてもよい。
【００６４】
メモリ９０６は、１または複数の記憶媒体を含むことができ、一般に、コンピューティングプラットフォーム９０２が使用するコンピュータコード（例えばソフトウェアおよび／またはファームウェア）およびデータを記憶する場所を提供する。例として、メモリ９０６は、読み取り専用メモリ（ＲＯＭ）および／またはランダムアクセスメモリ（ＲＡＭ）を含む様々な有形のコンピュータ可読記憶媒体を含み得る。当技術分野で周知のように、ＲＯＭはコントローラ９０４に対して一方向にデータおよび命令を転送するように動作し、ＲＡＭは典型的にはデータおよび命令を双方向に転送するために使用される。メモリ９０６は、コントローラ９０４に双方向に結合された適切な形態のメモリ、特に例えばハードディスクドライブ（ＨＤＤ）、半導体ドライブ（ＳＳＤ）、フラッシュメモリカード（例えばセキュアデジタルすなわちＳＤカード）などの形態の、１または複数の固定ストレージデバイスも含み得る。情報は、必要に応じてコンピューティングプラットフォーム９０２に装着または搭載される１または複数の取り外し可能な記憶媒体上にあってもよい。一例として、多数の適切なメモリカード（例えばＳＤカード）のいずれも、コンピューティングプラットフォーム９０２に一時的または永続的に装着されてもよい。
【００６５】
入出力サブシステム９１０は、コントローラ９０４に動作可能に接続された１または複数の入出力デバイスを含み得る。例えば、入出力サブシステムは、キーボード、マウス、１または複数のボタン、および／または、ディスプレイ（例えば液晶ディスプレイ（ＬＣＤ）、またはその他の任意の適切な表示技術）を含み得る。一般に、入力デバイスは、外
部からコンピューティングプラットフォーム９０２にデータ、コマンドおよび応答を転送するように構成される。ディスプレイは一般に、コンピューティングプラットフォーム９０２のユーザと移動体デバイス上で動作するオペレーティングシステムまたはアプリケーションとの間の操作性のよい視覚インタフェースを提供するグラフィカルユーザインタフェース（ＧＵＩ）を表示するように構成される。一般に、ＧＵＩはプログラム、ファイルおよび操作選択項目にグラフィカルイメージを提示する。操作中、ユーザは、そのグラフィカルイメージ関連付けられた機能および作業を開始するために、ディスプレイ上に表示された様々なグラフィカルイメージを選択し有効化することができる。入出力サブシステム９１０は、タッチパッドやタッチスクリーンなどのタッチ方式のデバイスも含み得る。タッチパッドは、ユーザのタッチ方式の入力を検出する表面を備えた入力デバイスである。同様に、タッチスクリーンはユーザのタッチ入力の存在および場所を検出するディスプレイである。入出力システム９１０は、２回または３回の指のタッチなど、複数のタッチ入力の存在、場所および移動を識別可能なデュアルタッチまたはマルチタッチディスプレイまたはタッチパッドも含み得る。
【００６６】
特定の実施形態では、コンピューティングプラットフォーム９０２はさらに、コントローラ９０４に動作可能に接続されてコンピューティングプラットフォーム９０２の様々な機能をサポートするオーディオサブシステム９１２、カメラサブシステム９１２、無線通信サブシステム９１６、センササブシステム９１８、および／または有線通信サブシステム９２０を含み得る。例えば、オーディオサブシステム９１２は、スピーカ、マイクロフォン、および音声信号を処理するように構成されたコーデックモジュールを含み、音声認識、音声再生、デジタル録音、および電話機能などの音声対応機能をサポートするために使用することができる。例えば、カメラサブシステム９１２は、光学センサ（例えば電荷結合素子（ＣＣＤ）イメージセンサ）を含み、写真撮影やビデオ録画などのカメラ機能をサポートするために使用されてもよい。有線通信サブシステム９２０は、例えば、ファイル転送用のユニバーサルシリアルバス（ＵＳＢ）ポート、またはローカルエリアネットワーク（ＬＡＮ）への接続用のイーサネット（Ｅｔｈｅｒｎｅｔ）ポートを含み得る。さらに、コンピューティングプラットフォーム９０２は、電源９３２によって電力供給されてもよい。
【００６７】
無線通信サブシステム９１６は、１または複数の無線ネットワーク、例えば、無線ＰＡＮ（ＷＰＡＮ）（例えばＢｌｕｅｔｏｏｔｈ）、Ｗｉ−Ｆｉネットワーク（例えば８０２．１１ａ／ｂ／ｇ／ｎネットワーク）、Ｗｉ−Ｍａｘネットワーク、セルラーネットワーク（例えばグローバルシステムフォーモバイルコミュニケーションズ（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ：ＧＳＭ）ネットワーク、ロングタームエボリューション（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ：ＬＴＥ）ネットワーク）などを通じて動作するように設計され得る。さらに、無線通信サブシステム９１６は、コンピューティングプラットフォーム９０２を他の無線デバイスの基地局として構成することができるように、ホストプロトコルを含んでもよい。その他の入出力デバイスとして、デバイスの向きを検出するために使用可能な加速度計を含み得る。
【００６８】
センササブシステム９１８は、付加的な入力を実現し、コンピューティングプラットフォーム９０２の複数の機能をサポートする１または複数のセンサデバイスを含んでもよい。例えば、センササブシステム９１８は、位置測定用のＧＰＳセンサ、高度測定用の高度計、移動体デバイスの向き測定用の運動センサ、カメラサブシステム９１４による写真撮影機能用の光センサ、周囲温度測定用の温度センサ、および／またはセキュリティアプリケーション（例えば指紋リーダ）用のバイオメトリックセンサを含んでもよい。
【００６９】
特定の実施形態では、コンピューティングプラットフォーム９０２の様々な構成要素が１または複数のバス（ハードウェアおよび／またはソフトウェア）によって、動作可能に
互いに接続されていてもよい。例として、１または複数のバスは、アクセラレーテッドグラフィクスポート（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ：ＡＧＰ）またはその他のグラフィクスバス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨｙｐｅｒＴｒａｎｓｐｏｒｔ：ＨＴ）相互接続、インダストリースタンダードアーキテクチャ（ＩＳＡ）バス、インフィニバンド（ＩｎｆｉｎｉＢａｎｄ）相互接続、ローピンカウント（ＬＰＣ）バス、メモリバス、ペリフェラルコンポーネントインターコネクトエクスプレス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）ＰＣＩ−Ｅｘｐｒｅｓｓバス、シリアルアドバンストテクノロジーアッタチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ（ＳＡＴＡ）バス、インターインテグレーテッドサーキット（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（Ｉ２Ｃ）バス、セキュアデジタル（ＳＤ）メモリインタフェース、セキュアデジタル入出力（ＳＤＩＯ）インタフェース、ユニバーサルシリアルバス（ＵＳＢ）バス、汎用入出力（ＧＰＩＯ）バス、アドバンストマイクロコントローラバスアーキテクチャ（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＡＭＢＡ）バスまたはその他適切なバスあるいはこれらのうちの２以上の組み合わせであってもよいがこれらには限定されない。
【００７０】
本開示でコンピュータ可読記憶媒体という場合、それは１または複数の非一時的な有形のコンピュータ可読記憶媒体処理構造を包含する。一例として、コンピュータ可読記憶媒体は、必要に応じて、半導体ベースまたはその他の集積回路（ＩＣ）（例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ）、ハードディスク、ＨＤＤ、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、磁気光ディスク、磁気光ドライブ、フロッピーディスク、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ホログラフィック記憶媒体、半導体ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタルカード、セキュアデジタルドライブ、またはその他適切なコンピュータ可読記憶媒体、あるいはこれらのうちの２以上の組み合わせを含むことができるが、これらには限定されない。本開示において、コンピュータ可読記憶媒体という場合、それは米国特許法１０１条（３５Ｕ．Ｓ．Ｃ．§１０１）の保護の対象として適格でない媒体を含まない。本開示において、コンピュータ可読記憶媒体という場合、それは米国特許法１０１条の保護の対象として適格でない限りにおいて、信号送信（電気信号または電磁信号自体の伝播など）の一時的形態を含まない。コンピュータ可読非一時的記憶媒体は、必要に応じて、揮発性、不揮発性または、揮発性と不揮発性の組み合わせであってもよい。
【００７１】
本開示において、「または（ｏｒ）」は、別様に明記する場合または文脈により別様に示される場合を除き、包含的であり、排他的ではない。したがって、本開示において「ＡまたはＢ」は、別様に明記する場合または文脈により別様に示される場合を除き、「ＡまたはＢ、あるいはその両方」を意味する。また、「および（ａｎｄ）」は、別様に明記する場合または文脈により別様に示される場合を除き、共同と個別的の両方である。したがって、本開示において「ＡおよびＢ」は、別様に明記する場合または文脈により別様に示される場合を除き、「ＡとＢとが共同して、またはＡとＢとが個別に」であることを意味する。
【００７２】
本開示は、本開示に記載の例示の実施形態に対する、当業者であれば理解されると考えられるすべての変更、代替、変形、改変および修正を包含する。さらに、添付の特許請求の範囲において、特定の機能を、実行するように適合化された（ａｄａｐｔｅｄ  ｔｏ）、実行するように設定された（ａｒｒａｎｇｅｄ  ｔｏ）、実行可能な（ｃａｐａｂｌｅ
ｏｆ）、実行するように構成された（ｃｏｎｆｉｇｕｒｅｄ  ｔｏ）、実行可能にされた（ｅｎａｂｌｅｄ  ｔｏ）、実行するように動作可能な（ｏｐｅｒａｂｌｅ  ｔｏ）、または、実行するように作動可能な（ｏｐｅｒａｔｉｖｅ  ｔｏ  ｐｅｒｆｏｒｍ）デバ
イスまたはシステム、またはデバイスもしくはシステムの構成要素という場合、それはデバイス、システム、構成要素またはその特定の機能が起動、オン、またはロック解除されているか否かにかかわらず、そのデバイス、システムまたは構成要素がそのように適合化され、設定され、可能であり、構成され、可能にされ、動作可能であり、または作動可能である限りにおいて、そのデバイス、システム、構成要素を包含する。
【図２】
0005864769.tif 000004
【図３】
0005864769.tif 000005
【図３Ａ】
0005864769.tif 000006
【図４】
0005864769.tif 000007
【図４Ａ】
0005864769.tif 000008
【図４Ｂ】
0005864769.tif 000009
【図５】
0005864769.tif 000010
【図６】
0005864769.tif 000011
【図７】
0005864769.tif 000012
【図８】
0005864769.tif 000013
【図９】
0005864769.tif 000014
【図１】
0005864769.tif 000015