(57)【要約】      （修正有）【課題】アプリケーションサービス・サーバと非同期で通信してサービス要求を完了することができるアバターサーバを提供する。【解決手段】アプリケーションサービスを複数のクライアントアプリケーションに提供するためのアプリケーションサービス・サーバへの少なくとも断続的なネットワークアクセスを有するアバターサーバにアプリケーションサービス・アバターを実装する。アバターサーバは、アバターサーバに接続されたエンドユーザデバイスのプロファイルを管理してサービスグループを設定する。アバターサーバは、１つ以上のエンドユーザデバイスに対して、アプリケーションサービスによって提供される複数の機能の少なくとも一部分をエミュレートすることによって、エンドユーザデバイスからのサービス要求をローカルで処理する。【選択図】図１
2019204524.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
複数のクライアントサービスにアプリケーションサービスを提供するためのアプリケー
ションサービス・サーバへのバックホール・ネットワークチャネルを介した少なくとも断
続的なネットワークアクセスを有するアバターサーバにアプリケーションサービス・アバ
ターを実装すること、
前記アプリケーションサービスにアクセスするために前記アバターサーバに接続された
１つ以上のエンドユーザデバイスのリストを管理することによってサービスグループを確
立すること、
前記アプリケーションサービスによって提供される複数の機能の少なくとも一部分をエ
ミュレートすることによって、前記アバターサーバを介して、ローカライズされたアプリ
ケーションサービスを前記１つ以上のエンドユーザデバイスに提供することであって、少
なくとも部分的に、前記アバターサーバにおける前記１つ以上のエンドユーザデバイスの
うちの少なくとも１つからのサービス要求をローカルで処理することを含む、前記ローカ
ライズされたアプリケーションサービスを前記エンドユーザデバイスに提供すること、
前記アプリケーションサービス・サーバと非同期で通信して前記サービス要求を完了す
ること、を備える方法。
【請求項２】
前記ローカライズされたアプリケーションサービスを提供することは、
前記サービスグループの少なくとも第１のエンドユーザデバイスから、前記サービス要
求を前記アバターサーバで受信することであって、前記サービス要求は、前記サービスグ
ループの第２のエンドユーザデバイスと関連する、前記サービス要求を前記アバターサー
バで受信すること、
前記第１のエンドユーザデバイスに代わって前記第２のエンドユーザデバイスにメッセ
ージを通信することによって、前記サービス要求を少なくとも部分的に処理することを含
む、請求項１に記載の方法。
【請求項３】
前記メッセージを通信することが、前記バックホール・ネットワークチャネルが利用で
きないこと、または前記アプリケーションサービス・サーバが到達不能であると判定した
ことに応答して実施されること、および
前記サービス要求を処理することは、前記サービス要求によって示されるか、前記サー
ビス要求において参照されるか、または前記サービス要求から導出されたメッセージを識
別することを含むこと、
のうちの少なくとも一方を含む請求項２に記載される方法。
【請求項４】
前記アプリケーションサービス・サーバと非同期で通信することは、前記バックホール
・ネットワークチャネルが利用可能であると判定することに応答して実施される、請求項
１〜３のいずれか１項に記載の方法。
【請求項５】
前記ローカライズされたアプリケーションサービスを提供することは、
前記１つ以上のエンドユーザデバイスのうちの１つからメディアコンテンツのデータ変
換要求を受信すること、
前記アバターサーバに保存された処理モジュールのローカルバージョンを利用すること
によって、前記アプリケーションサービス・アバターを利用して前記メディアコンテンツ
を変換すること、をさらに含み、
好ましくは、前記バックホール・ネットワークチャネルが利用可能である場合に、前記
アプリケーションサービス・サーバからの前記処理モジュールのローカルバージョンへの
更新を受信することをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記ローカライズされたアプリケーションサービスを提供することは、
前記１つ以上のエンドユーザデバイスのうちの要求デバイスからコンテンツ識別子を含
むコンテンツ提供要求を受信すること、
前記コンテンツ識別子を用いて前記アバターサーバのローカルデータバンクにおいてコ
ンテンツを特定すること、
前記ローカルデータバンクにおいて前記コンテンツを特定することに応答して、前記コ
ンテンツを要求デバイスに提供すること、を含む、請求項１〜５のいずれか１項に記載の
方法。
【請求項７】
前記ローカライズされたアプリケーションサービスを提供することは、
前記１つ以上のエンドユーザデバイスのうちの要求デバイスからコンテンツ識別子を含
むコンテンツ提供要求を受信すること、
前記コンテンツ識別子を用いて前記アバターサーバのローカルデータバンクにおいてコ
ンテンツを特定すること、
前記バックホール・ネットワークチャネルが利用可能である場合、前記コンテンツを前
記ローカルデータバンクにおいて特定できないことに応答して、前記アプリケーションサ
ービス・サーバから前記コンテンツをフェッチして前記要求デバイスに配信すること、を
含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記ローカライズされたアプリケーションサービスを提供することは、
前記１つ以上のエンドユーザデバイスのうちの要求デバイスからコンテンツ識別子を含
むコンテンツ提供要求を受信すること、
前記コンテンツ識別子を用いて前記アバターサーバのローカルデータバンクにおいてコ
ンテンツを特定すること、
前記バックホール・ネットワークチャネルが利用できない場合に前記ローカルデータバ
ンクにおいて前記コンテンツを特定できないことに応答して、前記コンテンツのためのコ
ンテンツ要求をアプリケーションサービス・サーバにキューイングし、前記要求デバイス
に配信すること、を含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記ローカライズされたアプリケーションサービスを提供することは、
前記１つ以上のエンドユーザデバイスのうちの要求デバイスから公開可能なコンテンツ
を含むコンテンツ公開要求を受信すること、
前記公開可能なコンテンツを前記アプリケーションサービス・サーバに送信する前に、
前記サービスグループに利用可能な前記公開可能なコンテンツを作成することによって前
記サービスグループ内で前記公開可能なコンテンツを事前に公開すること、を含む、請求
項１〜８のいずれか１項に記載の方法。
【請求項１０】
アバターサーバを動作させるためのコンピュータにより実行可能な複数の命令を記憶す
るコンピュータ可読記憶メモリであって、
前記アバターサーバにアプリケーションサービス・アバターを実装するための命令であ
って、前記アバターサーバは、バックホール・ネットワークチャネルを介してアプリケー
ションサービス・サーバへの断続的なネットワークアクセスを少なくとも有し、前記アプ
リケーションサービス・サーバは、複数のクライアントアプリケーションにアプリケーシ
ョンサービスを提供する、前記アバターサーバにアプリケーションサービス・アバターを
実装するための命令と、
前記アプリケーションサービスにアクセスするために前記アバターサーバに接続された
１つ以上のエンドユーザデバイスのリストを管理することによってサービスグループを確
立するための命令と、
前記サービスグループの少なくとも第１のエンドユーザデバイスからのサービス要求を
前記アバターサーバで受信するための命令であって、前記サービス要求は、前記サービス
グループの第２のエンドユーザデバイスに関連する、前記サービス要求を前記アバターサ
ーバで受信するための命令と、
前記第１のエンドユーザデバイスに代わって前記第２のエンドユーザデバイスにメッセ
ージを通信することによって、少なくとも部分的に、前記サービス要求を処理するための
命令と、を備えるコンピュータ可読記憶メモリ。
【請求項１１】
前記１つ以上のエンドユーザデバイスに対して、前記アプリケーションサービスによっ
て提供される複数の機能の少なくとも一部分をエミュレートすることによって、前記アバ
ターサーバを用いてローカライズされたアプリケーションサービスを提供するための命令
、
前記バックホール・ネットワークチャネルが利用可能である場合に、前記サービス要求
を前記アプリケーションサービス・サーバに非同期で通信するための命令、
前記アプリケーションサービス・サーバに対して、前記１つ以上のエンドユーザデバイ
スのうちの１つに代わってリモートプロシージャコールにおいて複数のパラメータを変換
するクライアントアプリケーション・スタブを呼び出すための命令、および
前記１つ以上のエンドユーザデバイスのデバイスプロファイルおよび前記１つ以上のエ
ンドユーザデバイスに関連付けられたユーザプロファイルを管理するための命令のうちの
少なくとも１つをさらに備える請求項１０に記載のコンピュータ可読記憶メモリ。
【請求項１２】
アバターサーバであって、
１つまたは複数のエンドユーザデバイスのローカルセットに接続し、バックホール・ネ
ットワークチャネルを介して少なくとも断続的にアプリケーションサービスを提供するア
プリケーションサービス・サーバに接続するように構成された１つまたは複数のネットワ
ークインタフェースと、
前記バックホール・ネットワークチャネルが利用可能である場合、前記アプリケーショ
ンサービス・サーバと通信するアプリケーションサービス・アバターをホストするように
構成されたプロセッサであって、前記アプリケーションサービス・アバターは、アバター
・アプリケーションプログラミングインタフェース（ＡＰＩ）を提供し、前記アバター・
アプリケーションプログラミングインタフェースは、前記１つ以上のエンドユーザデバイ
スに対して、前記アプリケーションサービスによって提供される複数の機能の少なくとも
一部分をエミュレートすることによって、前記アプリケーションサービス・アバターを介
してローカライズされたアプリケーションサービスを提供する、前記プロセッサと、
前記１つ以上のエンドユーザデバイスのローカルセットに対するコンテンツをキャッシ
ュし、前記１つ以上のエンドユーザデバイスのプロファイルを追跡するためのメモリと、
を備えるアバターサーバ。
【請求項１３】
前記アバターサーバは、前記１つ以上のエンドユーザデバイスのネットワークアクセス
またはアグリゲーション通信データを提供するネットワーク機器に実装される、請求項１
２に記載のアバターサーバ。
【請求項１４】
前記アバターサーバは、前記１つ以上のエンドユーザデバイスのネットワークアクセス
を提供するネットワーク機器とは独立して実装される、請求項１２又は１３に記載のアバ
ターサーバ。
【請求項１５】
前記アバターサーバは、前記１つ以上のエンドユーザデバイスのうちの１つに実装され
る、請求項１４に記載のアバターサーバ。
【発明の詳細な説明】
【背景技術】
【０００１】
地方の地理的地域を電力網及び／又はインターネットに接続することは困難であり、例
えば、ネットワーク事業者、政府機関、電力会社等によるかなりの投資を必要とする可能
性がある。これらの理由の少なくともいくつかのために、開発途上国の多くの地方では、
ケーブルや電話回線などを介して、継続的な電力供給や有線によるインターネット接続に
アクセスできないことがよくある。しかし、世界中のインターネットサービスの普及に伴
い、これらの地域の人々は、モバイルデバイス、例えば、限られた計算能力（例えば、低
速のプロセッサおよび／またはクライアントサイドのスクリプト実行機能の欠如）を有す
るローエンド携帯電話端末（ローエンドのモバイルデバイス）を用いていることがある。
ローエンドのモバイルデバイス上で実行される（また、「実行中」の）アプリケーション
は、サーバへの計算およびメモリ消費を軽減し、複数のユーザ間の対話をより促進にする
ためにクライアントサーバ・アーキテクチャを実装することが多い。しかし、これらのモ
バイルデバイスのための無線ネットワークは、信頼できるネットワークインフラストラク
チャの欠如のために、断続的なネットワーク中断を被る可能性がある。従来のクライアン
トサーバ・コンピューティング・アーキテクチャを実装するアプリケーションでは、クラ
イアントとしてのアプリケーションが、その対応するサーバから命令やデータを例えば、
命令またはデータが必要な場合に受け取ることができない可能性があるため、断続的なネ
ットワーク中断は、アプリケーションの適切な動作を妨げる可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００２】
本発明に従った実施形態は、特に、方法、記憶媒体、システム、およびコンピュータプ
ログラム製品に関する添付の特許請求の範囲に開示されている。1つの請求項カテゴリ、
例えば方法に記載されている任意の特徴は、他の請求項カテゴリ、例えば、システムにお
いても同様に請求され得る。添付の請求項に記載された従属または参照は、形式的な理由
のためにのみ選択されている。しかしながら、前の請求項への意図的な参照（特に複数従
属）に起因する特定事項は、同様に請求され、添付の特許請求の範囲において選択される
従属に関係なく、特許請求の範囲およびその特徴の任意の組み合わせが開示され請求され
得る。請求され得る特定事項は、添付の特許請求の範囲に記載された特徴の組み合わせだ
けでなく、特許請求の範囲における他の特徴の組み合わせも含む。特許請求の範囲に記載
された各特徴は、特許請求の範囲における他の特徴または他の特徴の組み合わせと組み合
わせることができる。さらに、本明細書に記載または図示された実施形態および特徴のう
ちのいずれかは、別個の請求項および/または本明細書に記載または図示される任意の実
施形態または特徴並びに添付の特許請求の範囲の複数の特徴のいずれかとの任意の組み合
わせにおいて請求され得る。
【０００３】
本発明に従った実施形態では、方法は、複数のクライアントサービスにアプリケーショ
ンサービスを提供するためのアプリケーションサービス・サーバへのバックホール・ネッ
トワークチャネルを介した少なくとも断続的なネットワークアクセスを有するアバターサ
ーバにアプリケーションサービス・アバターを実装すること、アプリケーションサービス
にアクセスするためにアバターサーバに接続された１つ以上のエンドユーザデバイスのリ
ストを管理することによってサービスグループを確立すること、アプリケーションサービ
スによって提供される複数の機能の少なくとも一部分をエミュレートすることによって、
アバターサーバを介して、ローカライズされたアプリケーションサービスを１つ以上のエ
ンドユーザデバイスに提供することであって、少なくとも部分的に、アバターサーバにお
ける１つ以上のエンドユーザデバイスのうちの少なくとも１つからのサービス要求をロー
カルで処理することを含む、ローカライズされたアプリケーションサービスをエンドユー
ザデバイスに提供すること、
アプリケーションサービス・サーバと非同期で通信してサービス要求を完了すること、
を備える。
【０００４】
ローカライズされたアプリケーションサービスを提供することは、サービスグループの
少なくとも第１のエンドユーザデバイスから、サービス要求をアバターサーバで受信する
ことであって、サービス要求は、サービスグループの第２のエンドユーザデバイスと関連
する、サービス要求をアバターサーバで受信すること、第１のエンドユーザデバイスに代
わって第２のエンドユーザデバイスにメッセージを通信することによって、サービス要求
を少なくとも部分的に処理することを含み得る。
【０００５】
メッセージを通信することは、バックホール・ネットワークチャネルが利用できないこ
と、またはアプリケーションサービス・サーバが到達不能であると判定したことに応答し
て実施され得る。
【０００６】
サービス要求を処理することは、サービス要求によって示されるか、サービス要求にお
いて参照されるか、またはサービス要求から導出されたメッセージを識別することを含み
得る。
【０００７】
アプリケーションサービス・サーバと非同期で通信することは、バックホール・ネット
ワークチャネルが利用可能であると判定することに応答して実施され得る。
ローカライズされたアプリケーションサービスを提供することは、１つ以上のエンドユ
ーザデバイスのうちの１つからメディアコンテンツのデータ変換要求を受信すること、ア
バターサーバに保存された処理モジュールのローカルバージョンを利用することによって
、アプリケーションサービス・アバターを利用してメディアコンテンツを変換することを
含み得る。
【０００８】
本発明に従った実施形態では、方法は、バックホール・ネットワークチャネルが利用可
能である場合に、アプリケーションサービス・サーバからの処理モジュールのローカルバ
ージョンへの更新を受信することをさらに備えることができる。
【０００９】
ローカライズされたアプリケーションサービスを提供することは、１つ以上のエンドユ
ーザデバイスのうちの要求デバイスからコンテンツ識別子を含むコンテンツ提供要求を受
信すること、コンテンツ識別子を用いてアバターサーバのローカルデータバンクにおいて
コンテンツを特定すること、ローカルデータバンクにおいてコンテンツを特定することに
応答して、コンテンツを要求デバイスに提供すること、を含み得る。
【００１０】
ローカライズされたアプリケーションサービスを提供することは、１つ以上のエンドユ
ーザデバイスのうちの要求デバイスからコンテンツ識別子を含むコンテンツ提供要求を受
信すること、コンテンツ識別子を用いてアバターサーバのローカルデータバンクにおいて
コンテンツを特定すること、バックホール・ネットワークチャネルが利用可能である場合
、コンテンツをローカルデータバンクにおいて特定できないことに応答して、アプリケー
ションサービス・サーバからコンテンツをフェッチして要求デバイスに配信すること、を
含み得る。
【００１１】
ローカライズされたアプリケーションサービスを提供することは、１つ以上のエンドユ
ーザデバイスのうちの要求デバイスからコンテンツ識別子を含むコンテンツ提供要求を受
信すること、コンテンツ識別子を用いてアバターサーバのローカルデータバンクにおいて
コンテンツを特定すること、バックホール・ネットワークチャネルが利用できない場合に
ローカルデータバンクにおいてコンテンツを特定できないことに応答して、コンテンツの
ためのコンテンツ要求をアプリケーションサービス・サーバにキューイングし、要求デバ
イスに配信すること、を含み得る。
【００１２】
ローカライズされたアプリケーションサービスを提供することは、１つ以上のエンドユ
ーザデバイスのうちの要求デバイスから公開可能なコンテンツを含むコンテンツ公開要求
を受信すること、公開可能なコンテンツをアプリケーションサービス・サーバに送信する
前に、サービスグループに利用可能な公開可能なコンテンツを作成することによってサー
ビスグループ内で公開可能なコンテンツを事前に公開すること、を含み得る。
【００１３】
本発明に従ったさらなる実施形態では、アバターサーバを動作させるためのコンピュー
タにより実行可能な複数の命令を記憶するコンピュータ可読記憶メモリは、アバターサー
バにアプリケーションサービス・アバターを実装するための命令であって、アバターサー
バは、バックホール・ネットワークチャネルを介してアプリケーションサービス・サーバ
への断続的なネットワークアクセスを少なくとも有し、アプリケーションサービス・サー
バは、複数のクライアントアプリケーションにアプリケーションサービスを提供する、ア
バターサーバにアプリケーションサービス・アバターを実装するための命令と、アプリケ
ーションサービスにアクセスするためにアバターサーバに接続された１つ以上のエンドユ
ーザデバイスのリストを管理することによってサービスグループを確立するための命令と
、サービスグループの少なくとも第１のエンドユーザデバイスからのサービス要求をアバ
ターサーバで受信するための命令であって、サービス要求は、サービスグループの第２の
エンドユーザデバイスに関連する、サービス要求をアバターサーバで受信するための命令
と、第１のエンドユーザデバイスに代わって第２のエンドユーザデバイスにメッセージを
通信することによって、少なくとも部分的に、サービス要求を処理するための命令と、を
備える。
【００１４】
本発明に従ったさらなる実施形態では、コンピュータ可読記憶メモリは、１つ以上のエ
ンドユーザデバイスに対して、アプリケーションサービスによって提供される複数の機能
の少なくとも一部分をエミュレートすることによって、アバターサーバを用いてローカラ
イズされたアプリケーションサービスを提供するための命令をさらに備えることができる
。
【００１５】
本発明に従ったさらなる実施形態では、コンピュータ可読記憶メモリは、バックホール
・ネットワークチャネルが利用可能である場合に、サービス要求をアプリケーションサー
ビス・サーバに非同期で通信するための命令をさらに備えることができる。
【００１６】
本発明に従ったさらなる実施形態では、コンピュータ可読記憶メモリは、アプリケーシ
ョンサービス・サーバに対して、１つ以上のエンドユーザデバイスのうちの１つに代わっ
てリモートプロシージャコールにおいて複数のパラメータを変換するクライアントアプリ
ケーション・スタブを呼び出すための命令をさらに備えることができる。
【００１７】
本発明に従ったさらなる実施形態では、コンピュータ可読記憶メモリは、１つ以上のエ
ンドユーザデバイスのデバイスプロファイルおよび１つ以上のエンドユーザデバイスに関
連付けられたユーザプロファイルを管理するための命令をさらに備えることができる。
【００１８】
本発明に従ったさらなる実施形態では、アバターサーバは、１つまたは複数のエンドユ
ーザデバイスのローカルセットに接続し、バックホール・ネットワークチャネルを介して
少なくとも断続的にアプリケーションサービスを提供するアプリケーションサービス・サ
ーバに接続するように構成された１つまたは複数のネットワークインタフェースと、バッ
クホール・ネットワークチャネルが利用可能である場合、アプリケーションサービス・サ
ーバと通信するアプリケーションサービス・アバターをホストするように構成されたプロ
セッサであって、アプリケーションサービス・アバターは、アバター・アプリケーション
プログラミングインタフェース（ＡＰＩ）を提供し、アバター・アプリケーションプログ
ラミングインタフェースは、１つ以上のエンドユーザデバイスに対して、アプリケーショ
ンサービスによって提供される複数の機能の少なくとも一部分をエミュレートすることに
よって、アプリケーションサービス・アバターを介してローカライズされたアプリケーシ
ョンサービスを提供する、プロセッサと、１つ以上のエンドユーザデバイスのローカルセ
ットに対するコンテンツをキャッシュし、１つ以上のエンドユーザデバイスのプロファイ
ルを追跡するためのメモリと、を備える。
【００１９】
アバターサーバは、１つ以上のエンドユーザデバイスのネットワークアクセスまたはア
グリゲーション通信データを提供するネットワーク機器に実装され得る。
アバターサーバは、１つ以上のエンドユーザデバイスのネットワークアクセスを提供す
るネットワーク機器とは独立して実装され得る。
【００２０】
アバターサーバは、１つ以上のエンドユーザデバイスのうちの１つに実装され得る。
同様に請求され得る本発明に従ったさらなる実施形態では、1つまたは複数のコンピュ
ータ可読非一時的記憶媒体は、実行されたときに本発明または上記した実施形態のいずれ
かに従った方法で動作可能なソフトウェアを具体化する。
【００２１】
同様に請求され得る本発明に従ったさらなる実施形態では、システムは、1つまたは複
数のプロセッサと、該プロセッサに接続され且つ該プロセッサによって実行可能な命令を
含む少なくとも1つのメモリとを含み、該プロセッサは、命令を実行すると、本発明また
は上記した実施形態のいずれかに従った方法を実行するように動作可能である。
【００２２】
同様に請求され得る本発明に従ったさらなる実施形態では、コンピュータプログラム製
品は、好ましくは、コンピュータ可読非一時的記憶媒体を備え、データ処理システム上で
実行されると、本発明または上記した実施形態のいずれかに従った方法を実行するように
動作可能である。
【図面の簡単な説明】
【００２３】
【図１】様々な実施形態に従った地方ネットワーキングシステムのネットワークシステム環境を示すブロック図である。
【図２】様々な実施形態に従った地方ネットワーキングシステムの地方エッジにアプリケーションサービス・アバターを実装する潜在的な複数の位置を示すブロック図である。
【図３】様々な実施形態に従ったアプリケーションサービス・アバターを実装するために使用されるシステム環境の一例を示すブロック図である。
【図４】様々な実施形態に従ったアプリケーションサービス・アバターのアプリケーションプログラミングインタフェース（API）を示す機能ブロック図である。
【図５】様々な実施形態に従ったアプリケーションサービス・アバターとしてコンピューティングデバイスを動作させる方法を示すフローチャートである。
【図６】様々な実施形態による、本明細書に記載の1つまたは複数のコンピューティングデバイスまたはサーバを示すコンピューティングデバイスの一例のブロック図である。
【発明を実施するための形態】
【００２４】
図面は、例示のみを目的として本開示の様々な実施形態を示す。当業者であれば、本明
細書に記載された本発明の原理から逸脱することなく、本明細書に例示された構造および
方法の代替の実施形態を使用できることを容易に認識するであろう。
【００２５】
いくつかの実施形態は、広域ネットワーク（例えば、インターネット）、つまりアプリ
ケーションサービス・アバター（application service avatar）に対応する１つまたは複
数のアプリケーションサービス・サーバへの断続的な接続性を有するローカルネットワー
クアイランド（local network island）におけるアプリケーションサービス「アバター（
avatar）」を具体化することを含む。断続的な接続は、高いレイテンシおよび／または低
い帯域幅（例えば、タイムスライス帯域幅共有（time sliced bandwidth sharing））を
有し、頻繁に利用できないことがある。各アプリケーションサービス・アバターは、アプ
リケーションサービスと、アプリケーションサービスを提供する１つ以上のアプリケーシ
ョンサービス・サーバとに対応することができる。例えば、アプリケーションサービスは
、メッセージングサービス、ソーシャルネットワーキングサービス、写真共有サービス、
コンテンツ検索サービス、コラボレーションサービス、他の無料の基本サービス（free b
asic services : FBSs）、またはそれらの任意の組み合わせとすることができる。通常、
アプリケーションサービス・アバターの存在なしに、１つまたは複数のエンドユーザデバ
イスは、１つまたは複数のアプリケーションサービス・サーバからアプリケーションサー
ビスを直接要求することができる。例えば、エンドユーザデバイスは、１つまたは複数の
アプリケーションサービス・サーバのサーバ・サービス・アプリケーション・プログラミ
ング・インタフェイス（server service application programming interface : API）に
アクセスするように構成されたクライアントプログラムを実行することができる。例えば
、クライアントプログラムは、モバイルアプリケーション、デスクトップアプリケーショ
ン、ブラウザベースのアプリケーション、またはそれらの任意の組み合わせとして具体化
することができる。
【００２６】
アプリケーションサービス・アバターは、アバターサーバ上に実装することができる。
アバターサーバは、計算能力を有し、エンドユーザデバイスのローカルセット（ｌｏｃａ
ｌ  ｓｅｔ）のコンテンツをキャッシュし、エンドユーザデバイスのプロファイルを追跡
するメモリ容量を有し、エンドユーザデバイスのローカルセットへの連続的な接続性を有
し（一方で、ローカルセットの関係性は時間とともに変化する）、１つまたは複数のアプ
リケーションサービス・サーバへの少なくとも断続的な接続性を有する。アバターサーバ
は、（例えば、アバターサーバ上で動作する仮想マシンまたはアバターアプリケーション
プロセスとして）単一のアプリケーションサービス・アバターまたは複数のアプリケーシ
ョンサービス・アバターをホストするためのプラットフォームを提供することができる。
【００２７】
各アプリケーションサービス・アバターは、アプリケーションサービス・アバターの存
在なしに、１つまたは複数のアプリケーションサービス・サーバがエンドユーザデバイス
に通常提供する複数の機能の少なくとも一部分を記憶することができる。１つまたは複数
のアプリケーションサービス・サーバは、サービス機能をアプリケーションサービス・ア
バターに公開し、アプリケーションサービス・アバターへの断続的な接続性だけを有する
にもかかわらず、１つまたは複数のアプリケーションサービス・サーバによって提供され
るサービス機能の少なくとも一部分をエミュレート（emulate）できるようにする委譲（d
elegation）ＡＰＩを提供することができる。例えば、このセットアップの下では、サー
ビスタスクは、例えばアプリケーションサービス・アバターによって局所的に部分的に完
了され、サービスタスクの完了は、断続的な接続が再び利用可能になるまで遅延させるこ
とができる。
【００２８】
アプリケーションサービス・アバターは、次に、アバターＡＰＩを実装することができ
る。アバターＡＰＩは、アプリケーションに、１つまたは複数のアプリケーションサービ
ス・サーバによって提供されるサービス機能の少なくとも一部分をプログラム的に公開し
、アプリケーションサービス・アバターに接続されたローカルネットワークアイランド内
のエンドユーザデバイス（例えば、携帯電話ハンドセットまたは他のコンピューティング
デバイス）のサービス要求に応答し、エンドユーザデバイスをターゲットとする１つ以上
のアプリケーションサービス・サーバからのコマンドを処理し、またはそれらの任意の組
み合わせを実行する。アバターＡＰＩは、１つまたは複数のアプリケーションサービス・
サーバと非同期で通信することもできる（たとえば、１つまたは複数のアプリケーション
サービス・サーバでサービス要求をさらに処理するためにサービス要求を受信することと
は非同期）。アバターＡＰＩによって提供されるこれらのサービス機能は、例えば、エン
ドユーザデバイスのローカルセットのプロファイルを識別すること、エンドユーザ要求が
受信されたが断続的な接続が利用できない場合の「ストアアンドフォワード（store and 
forward）」機能、エンドユーザデバイスのローカルセットなどの、広域（「コア（core
）」）ネットワーク内の１つまたは複数のアプリケーションサービス・サーバまたは他の
ソースから）コンテンツをキャッシュすることを含む。
【００２９】
開示された実施形態は、１つまたは複数のアバターサーバが、「バックホール（backha
ul）」ネットワークとエンドユーザデバイスとの間のどこにでも実装されることを可能に
する。バックホール・ネットワークは、断続的に接続されるクライアントに代わってイン
ターネットに接続されたサーバと情報を交換するように構成されたネットワーク（例えば
、イントラネットまたはインターネット）の一部である。例えば、アバターサーバは、ロ
ーカルネットワークアクセスポイントまたはアグリゲーションネットワーク機器（aggreg
ation network appliance）に結合された独立したサーバとすることができる。あるいは
、アバターサーバは、ローカルネットワークアクセスポイント、アグリゲーションネット
ワーク機器、またはエンドユーザデバイスと統合され得る。アバターサーバは、エンドユ
ーザデバイス上のアプリケーション・ポータルとアプリケーションサービス・サーバとの
間で相互通信することができ、または遅延対話を促進することができる。
【００３０】
アプリケーションサービス・アバターは、ローカル地理的領域（local geographical r
egion）内のエンドユーザデバイスにサービスを提供することができる。アプリケーショ
ンサービス・アバターは、断続的なネットワーク中断があっても、（アプリケーションサ
ービス・サーバのサービス機能の一部分またはすべてであり得る）継続的なサービスを提
供することができる。
【００３１】
アプリケーションサービス・アバターは、少なくとも別の「ネットワークアイランド（
network island）」（例えば、少なくとも断続的にネットワークおよび／またはコアネッ
トワーク（例えば、インターネット）に接続された１組のコンピューティングデバイス）
への断続的または継続的なネットワークアクセスを有する。例えば、断続的なネットワー
ク接続は、衛星（例えば、低軌道衛星または静止軌道衛星）、無人航空機または他の航空
機、列車、船舶または他の水系の船舶、他の断続的に接続された通信リレー、またはそれ
らの任意の組み合わせを含むことができる。ネットワークアイランドは、一緒に「メッシ
ュ（mesh）」ネットワークを形成することができる。メッシュ・ネットワークは、各メッ
シュ・ノード（例えば、ネットワークデバイス）がネットワークのデータを中継し、すべ
てのノードがネットワーク内のデータの分散において協力するネットワークトポロジであ
る。
【００３２】
いくつかの実施形態では、１つまたは複数のアプリケーションサービス・アバターは、
ネットワークアイランド内のユーザに、ニュースフィード、メッセージング、メディアブ
ラウジングなどを含む基本的なソーシャルネットワーク機能を提供することができる。ア
プリケーションサービス・アバターは、バックホール・ネットワークチャネルが利用でき
なくなったときに、ネットワークアイランド内の１つまたは複数のデバイスからの下り通
信（outgoing communications）（例えば、コンテンツ、メッセージ、データ要求など）
をバッファし、バックホール・ネットワークチャネルが利用可能になったときに、これら
を送信することができる。アプリケーションサービス・アバターは、バックホール・ネッ
トワークチャネルがアクティブなときに例えば、ネットワークアイランドの外部のコンピ
ューティングデバイスからの上り通信（例えば、ウェブページ、上りメッセージ、メディ
アコンテンツ、テキスト、スクリプト、または実行可能ファイル）を受信してキャッシュ
し、バックホール・ネットワークチャネル、つまり断続的なネットワークアクセスが利用
できないとき、ネットワークアイランド内のデバイスがリソースにアクセスすることがで
きる。例えば、アプリケーションサービス・アバターは、最近要求されたリソース、通常
要求されたリソース、およびネットワークアイランド内のユーザのプリファレンスプロフ
ァイル（preference profiles）に一致するリソースをキャッシュすることができる。ア
プリケーションサービス・アバターは、そのユーザのアイデンティティをアプリケーショ
ンサービス・サーバに提供することができる。例えば、ソーシャルネットワーキングシス
テムのアプリケーションサービス・サーバは、ローカルネットワークアイランド内のユー
ザのプロファイルを生成して格納し、キャッシングのためにアプリケーションサービス・
アバターにどのプロファイル特有のリソース（profile-specific resources）を「プッシ
ュ（push）」するかを予測することができる。プッシュは、宛先クライアント（destinat
ion client）（例えば、アプリケーションサービス・アバター）に対するデータ送信要求
がサーバ（例えば、アプリケーションサービス・サーバ）によって開始されるデータ転送
通信を含む。一例として、アプリケーションサービス・サーバは、プロファイル特有のリ
ソース、通常、アクセス可能な公的に利用可能なデータ、または実際には他の任意のタイ
プの適切なデータをプッシュすることができる。
【００３３】
プロファイル特有のリソースは、ネットワークアイランド内でアクティブであるユーザ
プロファイルに関連するデータ（例えば、個人データ）を含むことができる。ユーザプロ
ファイルのプロファイル特有リソースは、関連するユーザプロファイル（affiliated use
r profiles）に関連付けられたデータも含むことができる。例えば、関連するソーシャル
ネットワークノードは、プロファイルのプリファレンス、属性、動作、またはユーザプロ
ファイルのアクティビティに基づいて識別され得る。地理的近接度（例えば、同じ都市ま
たは閾値距離半径内）、（例えば、ソーシャルネットワーキングシステムのソーシャルグ
ラフにおける閾値の分離度内のユーザプロファイルに社会的に結合されている）社会的近
接度、または、（例えば、同じネットワークアイランド内の）ネットワーク近接性を含む
ことができる。
【００３４】
いくつかの実施形態は、有利には、アプリケーションサービス・アバターを利用して地
方にコンテンツアクセスおよびアプリケーションサービス機能を提供する。アプリケーシ
ョンサービス・アバターは、（例えば、複数のネットワーク構成要素のタイムスライス／
帯域幅共有（time slicing/bandwidth sharing）のために）断続的な接続性および高いレ
イテンシを有するバックホールチャネルから生じる帯域幅制限に技術的解決策を提供する
。アプリケーションサービス・アバターは、バックホールチャネルの断続的な接続性にも
かかわらず、アプリケーションサービス機能の少なくとも一部分をエンドユーザに配信す
ることを可能にする。アプリケーションサービス・アバターのアーキテクチャはまた、ネ
ットワーク内の近くにサーバーロジックを複数のエンドユーザデバイスを移動させること
によって、バックホールチャネルが存在しない場合でもネットワーク速度を向上させる。
アプリケーションサービス・アバターは、さらに、完全なピアツーピアアーキテクチャ（
peer-to-peer architecture）に変換することなく、従来のクライアントサーバ・アーキ
テクチャにおけるピアツーピアリンクを可能にする。いくつかのアプリケーションサービ
スは、地方のコミュニケーションのための基本的な手段と、人々の生活に関係する基本的
な情報の更新を提供する。したがって、断続的なバックホール接続しか存在しないにもか
かわらず、継続的なアプリケーションサービスを可能にすることは非常に有用であり得る
。
【００３５】
図１は、様々な実施形態に従った地方ネットワーキングシステム（rural networking s
ystem）１００のネットワークシステム環境を示すブロック図である。地方ネットワーキ
ングシステム１００は、ネットワークアイランド（例えば、ネットワークアイランド１０
２）の集合を含む。各ネットワークアイランドは、ネットワーク機器１０４（例えば、ネ
ットワークデバイス）によって確立され得る。ネットワーク機器１０４は、タワー、ボッ
クス、ルータ、アクセスポイント、またはネットワーク接続を提供するための他の電子ハ
ードウェアとすることができる。いくつかの実施形態では、ネットワーク機器１０４に接
続された１つまたは複数のデバイスは、さらなるサブネットワークを確立することができ
、これらのサブネットワークに接続されたデバイスは、さらに低レベルのネットワークな
どを確立することができる。
【００３６】
例えば、ネットワーク機器１０４は、エンドユーザデバイス１０６のためのネットワー
ク接続を提供することができる。エンドユーザデバイス１０６は、コンピューティングデ
バイスである。例えば、エンドユーザデバイス１０６は、パーソナルコンピュータ、携帯
電話、タブレット、ウェアラブルデバイス、ＩｏＴ（Internet of Things）デバイス、ま
たは他の任意のモバイルデバイスまたは固定デバイスを含むことができる。複数のエンド
ユーザデバイス１０６間のネットワーク接続は、無線プロトコル、例えばＬＴＥ（long-t
erm evolution）、３Ｇ、２Ｇ、Ｗｉ−Ｆｉ、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ、ＷｉＭＡＸ、
ブルートゥース、ブルートゥースＬＥ、または任意のそれらの組み合わせを用いて確立さ
れ得る。ネットワーク接続は、有線プロトコル、例えば、ユニバーサルシリアルバス（Ｕ
ＳＢ）またはイーサネット（登録商標）に基づくこともできる。ネットワーク接続のネッ
トワークアーキテクチャは、メッシュ・ネットワークまたはスター・ネットワークに基づ
くことができる。
【００３７】
いくつかの実施形態では、ネットワークデバイスのそれぞれは、コアネットワーク１０
８、例えばインターネットまたは他の地域ネットワークに直接的または間接的に接続され
得る。例えば、ネットワーク機器１０４は、バックホール・ネットワークチャネル１１０
を介してコアネットワーク１０８に接続され得る。バックホール・ネットワークチャネル
１１０は、そのエンドポイント間の接続を非連続的に提供する伝送媒体である。すなわち
、バックホール・ネットワークチャネル１１０は、定期的にまたは散発的に機能すること
を停止し得る。バックホール・ネットワークチャネル１１０の例には、列車、無人機、衛
星、船、またはそれらの任意の組み合わせによって実現されるネットワークが含まれる。
【００３８】
いくつかの実施形態では、ネットワーク機器１０４は、ネットワークアイランド１０２
内の複数のエンドユーザデバイス１０６間の連続的な接続（continuous connectivity）
と、エンドユーザデバイス１０６とコアネットワーク１０８との間の非連続的な接続（no
n-continuous connectivity）を提供することができる。ネットワーク機器１０４は、他
のネットワークアイランドにも接続され得る。例えば、ネットワーク機器１０４は、別の
断続的なネットワークチャネルを介して別の基地局、つまり、他の基地局に接続された別
のネットワークアイランド内の他のコンピューティングデバイスに接続されてもよい。
【００３９】
バックホール・ネットワークチャネル１１０によって課せられる制限のために、ネット
ワークアイランド１０２は、コアネットワーク１０８に接続された外部システムと常にリ
アルタイムで通信することはできない。したがって、地方ネットワーキングシステム１０
０は、アプリケーションサービス・サーバ１１４（例えば、ソーシャルネットワーキング
システム、クラウドアプリケーション、またはモバイルアプリケーションサーバのアプリ
ケーションサーバ）に対応するアプリケーションサービス・アバター１１２を介して非同
期アプリケーションサービスを支援するメカニズムを提供する。アプリケーションサービ
ス・アバター１１２は、バックホール・ネットワークチャネル１１０とエンドユーザデバ
イス１０６との間（例えば、その間で包括的に）に具体化され、ネットワークアイランド
１０２を確立することができる。すなわち、アプリケーションサービス・アバター１１２
は、地方ネットワーキングシステム１００の地方エッジ（rural edge）で具体化され得る
。
【００４０】
いくつかの実施形態では、バックホール・ネットワークチャネル１１０は、ネットワー
ク機器のチェーン（例えば、アグリゲーションサーバ、基地局、スイッチ、ルータ、また
は他のネットワーク対応コンピューティングデバイス）を介してエンドユーザデバイス１
０６に接続され得る。（例えば、ネットワーク距離の点で）エンドユーザデバイス１０６
に最も近いのは、モバイルコア１１６、例えば進化したパケットコア（evolved packet c
ore : EPC）とすることができる。ＥＰＣは、セルラーネットワーク、例えば、ＬＴＥ（l
ong-term evolution）ネットワークを介してユーザと接続するための統合された音声（co
nverged voice）およびデータネットワーキングフレームワークを提供する。
【００４１】
モバイルコア１１６は、インターネットサービスプロバイダ（Internet service provi
der : ISP）のエッジＰＯＰ（edge point of presence）１１８に接続され得る。ＩＰエ
ッジＰＯＰ１１８は、複数の通信エンティティ間のインタフェースポイントである。例え
ば、ＩＳＰのエッジＰＯＰ１１８は、モバイルコア１１６とアプリケーションサービス・
サーバ１１４との間、またはモバイルコア１１６とコンテンツ配信ネットワーク（conten
t delivery network : CDN）１２０との間でデータ通信するためのインタフェースを提供
し得る。ＣＤＮは、ユーザの地理的位置に基づいてウェブページおよび他のウェブコンテ
ンツをユーザに配信する。ＣＤＮ１２０は、アプリケーションサービスまたはアプリケー
ションサービスのグループ（例えば、ソーシャルネットワーキングシステムの複数のアプ
リケーションサービス）に固有のものであってもよい。ＣＤＮ１２０は、アプリケーショ
ンサービスまたは複数のアプリケーションサービスのグループの静的コンテンツ（static
content）を格納することができる。対照的に、アプリケーションサービス・サーバ１１
４は、エンドユーザデバイス１０６からのサービス要求に応答して、ＣＤＮ１２０によっ
て提供される静的コンテンツへのリンクを生成することを含む動的コンテンツを生成する
ことができる。ＣＤＮ１２０が、サービス要求が目的とするアプリケーションサービスに
関連する静的コンテンツをまだキャッシュしていない場合、ＣＤＮ１２０は、アプリケー
ションサービスのデータセンター１２２にアクセスすることができる。いくつかの実施形
態では、ＣＤＮ１２０に格納されたコンテンツは、不正アクセスを防止するために暗号化
または符号化される。
【００４２】
アプリケーションサービス・アバター１１２は、アプリケーションサービス・サーバ１
１４によって提供されるアプリケーションサービスに対応することができる。例えば、ア
プリケーションサービスは、メッセージングサービス、ソーシャルネットワーキングサー
ビス、写真共有サービス、コンテンツ検索サービス、コラボレーションサービス、その他
の無料基本サービス、またはそれらの任意の組み合わせを含む。通常、アプリケーション
サービス・アバターの存在なしに、１つ以上のエンドユーザデバイスは、アプリケーショ
ンサービス・サーバからアプリケーションサービスを直接要求することができる。例えば
、エンドユーザデバイスは、アプリケーションサービス・サーバ１１４のアプリケーショ
ンサービスＡＰＩ  １２４にアクセスするように構成されたクライアントプログラムを実
行することができる。例えば、クライアントプログラムは、１つ以上のモバイルアプリケ
ーション、デスクトップアプリケーション、（例えば、ＪａｖａＳｃｒｉｐｔ（登録商標
）ベース、フラッシュベースなどの）ブラウザベースアプリケーション、またはそれらの
任意の組み合わせであってもよい。
【００４３】
アプリケーションサービス・アバター１１２は、アバターサーバ１２６上で動作する仮
想マシンまたはアプリケーションスレッドとして具体化され得る。アプリケーションサー
ビス・アバター１１２は、アバターサーバ１２６のメモリスペース１２８にアクセス（例
えば、読み書き）することができる。いくつかの実施形態では、メモリスペース１２８は
、アプリケーションサービス・サーバ１１４の認証されたエージェントによってのみアク
セス可能な暗号鍵で部分的または全体的に暗号化される。アバターサーバ１２６は、計算
能力を有し、エンドユーザデバイス（例えば、エンドユーザデバイス１０６）のローカル
セットのコンテンツをキャッシュし、エンドユーザデバイスのプロファイルを追跡するた
めのメモリ容量を有し、（ローカルセットの関係性は時間とともに変化するかもしれない
が）エンドユーザデバイスのローカルセットへの連続的な接続を有し、アプリケーション
サービス・サーバ１１４への断続的な接続（例えば、バックホール・ネットワークチャネ
ル１１０）を有する。アバターサーバ１２６は、アプリケーションサービス・アバター１
１２（すなわち、単一のインスタンス）またはアプリケーションサービス・アバター１１
２を含む複数のアプリケーションサービス・アバター（複数のインスタンス）をホストす
るためにプラットフォームを提供する。
【００４４】
アプリケーションサービス・アバター１１２は、アプリケーションサービス・アバター
１１２の存在なしに、アプリケーションサービス・サーバ１１４が通常、複数のエンドユ
ーザデバイス（例えば、複数のエンドユーザデバイス１０６）に提供する複数の機能の少
なくとも一部を保存することができる。アプリケーションサービス・サーバ１１４は、サ
ービス機能をアプリケーションサービス・アバター１１２に公開し、アプリケーションサ
ービス・アバター１１２に、アプリケーションサービス・サーバ１１４に提供されるサー
ビス機能の少なくとも一部をエミュレートさせる委譲ＡＰＩ  １３０を提供することがで
きる。例えば、この設定の下では、サービス要求に対応するサービスタスクの完了が遅れ
ることがある。
【００４５】
サービスタスクは、例えば、コンテンツプロビジョニングタスク（content provisioni
ng task）（例えば、検索エンジンのタスク、メディアライブラリ、デジタルイエローブ
ック（digital yellow book）、ニュースフィード、デジタル辞書または百科事典、デジ
タルマップ、ニュースフィード、またはそれらの任意の組み合わせ）であり、コンテンツ
仕様または嗜好に従ってコンテンツを提供することができる。アプリケーションサービス
・アバター１１２は、メモリスペース１２８においてコンテンツインデックスを事前キャ
ッシングすることによって、コンテンツプロビジョニングタスクをエミュレートすること
ができる。アプリケーションサービス・アバター１１２は、コンテンツインデックスに基
づいて要求ユーザの要求されたコンテンツを見つける（locate）ことができる。アプリケ
ーションサービス・アバター１１２は、アプリケーションサービス・サーバ１１４への断
続的な接続性（例えば、バックホール・ネットワークチャネル１１０の）が利用可能であ
るときに、コンテンツインデックスを更新することができる。アプリケーションサービス
・アバター１１２は、ローカルデータバンク（例えば、メモリスペース１２８内）に以前
に要求されたコンテンツをキャッシュすることができる。いくつかの実施形態では、アプ
リケーションサービス・サーバ１１４は、（例えば、ローカルネットワークアイランドに
関連付けられたユーザプロファイルに基づいて）コンテンツをローカルデータバンクに予
測的にプッシュする。いくつかの実施形態では、アプリケーションサービス・アバター１
１２は、（アプリケーションサービス・サーバ１１４を含む）コアネットワーク１０８か
ら要求される可能性のあるコンテンツをプリフェッチ（ｐｒｅ−ｆｅｔｃｈ）（すなわち
、読み出し）して、ユーザの要求に先立ってローカルデータバンクにコンテンツを記憶す
る。プリフェッチは、ローカルネットワークアイランドに関連付けられたユーザプロファ
イルに基づいて、要求される可能性のあるコンテンツを予測し、バックホール・ネットワ
ークチャネル１１０、つまり、断続的な接続が利用可能であるときにコンテンツをフェッ
チすることによって行うことができる。アプリケーションサービス・アバター１１２は、
どの情報／コンテンツがローカルデータバンクにキャッシュされているかに基づいてコン
テンツインデックスを更新することができる。要求されたコンテンツを見つけるとき、ア
プリケーションサービス・アバター１１２は、コンテンツインデックスに従ってローカル
データバンクから要求されたコンテンツを最初に見つけようとすることができる。要求さ
れたコンテンツがローカルデータバンクで利用できない場合、アプリケーションサービス
・アバター１１２は、コアネットワーク１０８内のコンテンツのネットワークロケーショ
ンを識別することができる。バックホール・ネットワークチャネル１１０が利用できない
場合、アプリケーションサービス・アバター１１２は、フェッチ・キュー（fetch queue
）に格納するためにフェッチ要求を生成する。アプリケーションサービス・アバター１１
２が、バックホール・ネットワークチャネル１１０が利用可能であることを検出すると、
アプリケーションサービス・アバター１１２は、フェッチ・キューにおいて識別されたコ
ンテンツのフェッチを開始し、フェッチされたコンテンツをローカルデータバンクに格納
する。いくつかの実施形態では、コンテンツがフェッチされると、アプリケーションサー
ビス・アバター１１２は、コンテンツを要求側ユーザのエンドユーザデバイスに転送する
か、またはコンテンツがローカルデータバンクからの検索に利用可能であることをエンド
ユーザデバイスに通知する。
【００４６】
サービスタスクは、例えば、コンテンツルーティングタスク（例えば、メッセージング
アプリケーション、掲示板、ソーシャルネットワーキングアプリケーション、イベント管
理アプリケーション、コラボレーションアプリケーション、またはこれらの任意の組み合
わせのタスク）であってもよく、ユーザからユーザへのメッセージまたはデバイスからデ
バイスへのメッセージをルーティングする。コンテンツルーティング要求を受信すると、
アプリケーションサービス・アバター１１２は、メッセージの宛先と、宛先に関連付けら
れた宛先プロファイル（例えば、ユーザプロファイル、グループプロファイル、ページプ
ロファイル、掲示板プロファイル）を識別する。アプリケーションサービス・アバター１
１２は、メモリスペース１２８内のローカルエンティティのプロファイルのリストを管理
する（maintain）ことができる。プロファイルの各々は、固有の識別、ネットワークアイ
ランド１０２への接続の頻度、現在の位置、コンテンツプリファレンス、またはそれらの
組み合わせを含む。宛先プロファイルがプロファイルリスト内で見つかると、アプリケー
ションサービス・アバター１１２は、直ちに宛先プロファイルに関連付けられたエンドユ
ーザデバイスにメッセージを配信することができる。宛先プロファイルがプロファイルの
リスト内で見つからない場合、アプリケーションサービス・アバター１１２は、バックホ
ール・ネットワークチャネル（例えば、バックホール・ネットワークチャネル１１０）が
利用可能であるかどうかを判定することができる。利用可能な場合、アプリケーションサ
ービス・アバター１１２は、アプリケーションサービス・サーバ１１４にメッセージを送
信して、その宛先にルーティングすることができる。利用できない場合、アプリケーショ
ンサービス・アバター１１２は、メッセージを発信キュー（outgoing queue）にキューイ
ングし（queue）、メッセージをアプリケーションサービス・サーバ１１４に送信するた
めにバックホール・ネットワークチャネルが利用可能になるまで待機することができる。
【００４７】
サービスタスクは、例えば、コンテンツ公開タスク（例えば、ステータスを更新し、ブ
ログを公開し、ローカル広告を公表し、イベントを発表し、オークションを発表し、販売
のためにアイテムまたはサービスを発表し、またはそれらの任意の組み合わせのタスク）
であり、共有可能なパブリックドメインにコンテンツをプッシュする。アプリケーション
サービス・アバター１１２は、コンテンツ公開要求を受信したことに応答して、ローカル
データバンクに公開コンテンツを格納し、公開すべきコンテンツ（例えば、ニュースフィ
ードの作成）を公開するためにアプリケーションサービス・サーバ１１４に転送すること
ができる。バックホール・ネットワークチャネル１１０が利用できない場合、バックホー
ル・ネットワークチャネル１１０が再び利用可能になると、コンテンツは、転送のために
キューイングされる。いくつかの実施形態では、アプリケーションサービス・アバター１
１２は、公開プラットフォーム（publishing platform）のローカルバージョン（例えば
、ニュースレター、ブログ、オークションサイト、プロフィールページ、発表ページ、イ
ベントサイト、Ｗｉｋｉ、またはそれらの任意の組み合わせなど）に公開されるべきコン
テンツをローカルで事前に公開する（pre-publish）ことができる。公開プラットフォー
ムのローカルバージョンは、バックホール・ネットワークチャネル１１０からコアネット
ワーク１０８へのアクセスができない場合であっても利用可能である。アプリケーション
サービス・アバター１１２は、バックホール・ネットワークチャネル１１０が利用可能に
なったときにアプリケーションサービス・サーバ１１４を介してローカルバージョン（lo
cal version）をグローバルバージョン（global version）と同期させることができる。
【００４８】
いくつかの実施形態では、アプリケーションサービス・アバター１１２は、アプリケー
ションサービス・サーバ１１４と通信する時間（例えば、同期の実行、メッセージの送信
、タスク要求の転送など）を決定して選択することができる。例えば、選択された時間は
、バックホール・ネットワークチャネル１１０のリアルタイム帯域幅利用可能性、バック
ホール・ネットワークチャネル１１０の輻輳レベル、バックホール・ネットワークチャネ
ル１１０の使用に関連する費用、通信に関連するアプリケーション要件、またはそれらの
任意の組み合わせに基づいた最適な時間であり得る。
【００４９】
アプリケーションサービス・アバター１１２は、次に、アバターＡＰＩ  １３２を実装
することができる。アバターＡＰＩ  １３２は、アプリケーションサービス・アバター１
１２に接続されたネットワークアイランド１０２のエンドユーザのサービス要求に応答し
て、１つまたは複数のアプリケーションサービス・サーバによって提供されるサービス機
能の少なくとも一部を公開し、エンドユーザデバイス１０６をターゲットとするアプリケ
ーションサービス・サーバ１１４からのコマンドを処理するか、またはそれらの任意の組
み合わせである。アバターＡＰＩ  １３２は、アプリケーションサービス・サーバ１１４
と非同期で通信して（例えば、アプリケーションサービス・サーバ１１４でサービス要求
をさらに処理するために）サービス要求を送信したり、コンテンツまたはコマンドを受信
したりすることもできる。アバターＡＰＩ  １３２によって提供されるこれらのサービス
機能は、エンドユーザデバイス１０６のローカルセットのプロファイルの識別、エンドユ
ーザ要求が受信されたがバックホール・ネットワークチャネル１１０が利用できない場合
の「ストアアンドフォワード（store and forward）」機能、エンドユーザデバイス１０
６のローカルセットの（例えば、アプリケーションサービス・サーバ１１４またはコアネ
ットワーク１０８内の他のソースからの）コンテンツのキャッシュなどを含む。
【００５０】
アプリケーションサービス・アバター１１２は、エンドユーザデバイスがバックホール
・ネットワークチャネル１１０を介してアプリケーションサービス・サーバ１１４に接続
されているにもかかわらず、リモートエリアのエンドユーザデバイスに連続アプリケーシ
ョンサービスを提供する機会を付与する。アプリケーションサービス・アバター１１２は
、エンドユーザデバイスに向いているバックホール・ネットワークチャネル１１０の側の
ネットワークアクセスエッジ（network access edge）からコンテンツおよびサービスを
提供することができる。アプリケーションサービス・アバター１１２は、エンドユーザデ
バイス１０６に配信することができるコンテンツを事前にキャッシュすることによって、
または複数のエンドユーザデバイス１０６の間でメッセージを配信することにより、オフ
ラインおよびローカルエクスペリエンス（local experiences）を提供することができる
。
【００５１】
図２は、地方ネットワーキングシステム２００（例えば、図１の地方ネットワーキング
システム１００）の地方エッジ２０１にアプリケーションサービス・アバター２０２（例
えば、図１のアプリケーションサービス・アバター１１２）を具体化する潜在的な複数の
位置を示すブロック図である。図１の地方エッジ（rural edge）２０１は、バックホール
・ネットワーク２０６を介してコアネットワーク２０４に接続される。コアネットワーク
２０４は、複数の相互接続されたコンピューティングデバイスおよびコンピュータサーバ
を含む。例えば、コアネットワーク２０４は、アプリケーションデータセンター２０８（
例えば、図１のデータセンター１２２）およびＩＳＰ  ＰＯＰ２０６（図１のＩＳＰエッ
ジＰＯＰ１１８）を含むことができる。
【００５２】
アプリケーションサービス・アバター２０２は、地方エッジ２０１の様々なデバイス上
に実装され得る。アプリケーションサービス・アバター２０２がバックホール・ネットワ
ーク２０６に近づくにつれて、より多くのユーザが、アプリケーションサービス・アバタ
ー２０２から利益を得ることができ、よりサービス機能性が利用され得る。アプリケーシ
ョンサービス・アバターがエンドユーザデバイスに向かって近づくほど、サービス要求に
対する応答時間がより速くなる。例えば、アプリケーションサービス・アバター２０２は
、アグリゲーションネットワーク２１２またはアクセスネットワーク２１４に実装され得
る。アグリゲーションネットワーク２１２は、アグリゲーションネットワーク機器２１６
、例えば、無線ネットワークコントローラ（radio network controller : RNC）、基地局
コントローラ（ＢＳＣ）、またはマイクロ波コントローラとすることができる。アクセス
ネットワーク２１４は、アクセスネットワーク機器２１８、例えば、３Ｇ基地局、Ｗｉ−
Ｆｉアクセスポイント、またはルータによって確立され得る。アプリケーションサービス
・アバター２０２は、アグリゲーションネットワーク機器２１６によって、またはアクセ
スネットワーク機器２１８によって実装されてもよい。代わりに、アプリケーションサー
ビス・アバター２０２は、アグリゲーションネットワーク機器２１６、アクセスネットワ
ーク機器２１８、またはバックホール・ネットワーク２０６に関連するネットワーク機器
のいずれかとのネットワーク通信におけるアバターサーバ（例えば、図１のアバターサー
バ１２６）に実装され得る。
【００５３】
いくつかの実施形態では、アプリケーションサービス・アバター２０２は、複数のエン
ドユーザデバイスのうちの１つ、例えばエンドユーザデバイス２２２に実装され得る。い
くつかの実施形態では、アプリケーションサービス・アバター２０２のインスタンス（in
stance）が実装され、各エンドユーザデバイス上でアクティブとなる。いくつかの実施形
態では、アプリケーションサービス・アバター２０２のインスタンスは、各エンドユーザ
デバイス上に実装されるが、これらのインスタンスの一部分のみがアクティブとなる。例
えば、アプリケーションサービス・アバター２０２に関連するアプリケーションサービス
・サーバ（例えば、図１のアプリケーションサービス・サーバ１１４）は、アプリケーシ
ョンサービス・アバター２０２のアクティブインスタンスをホストするエンドユーザデバ
イスのうちの少なくとも１つを選択することができる。アプリケーションサービス・サー
バは、その能力（例えば、ネットワークインタフェースおよびプロトコルの可用性）、仕
様（例えば、プロセッサタイプまたは最大メモリスペース）、リソース容量（例えば、利
用可能なバッテリ電力、利用可能なメモリスペース、利用可能な帯域幅、または利用可能
な処理能力）、および／または他のエンドユーザデバイスと比較した接続性（例えば、特
定の数の他のエンドユーザデバイスと通信することができる）に基づいてエンドユーザデ
バイスを選択することができる。別例では、アプリケーションサービス・アバター２０２
のアクティブインスタンスは、他のエンドユーザの能力、仕様、リソース容量、および／
または接続性に基づいて、他のエンドユーザデバイス内のアプリケーションサービス・ア
バター２０２の休止インスタンス（dormant instance）をアクティブにすることができる
。例えば、このアクティブ化プロセスは、アプリケーションサービス・アバター２０２の
役割を１つのエンドユーザデバイスから別のエンドユーザデバイスにハンドオーバするプ
ロセスとすることができる。これにより、アプリケーションサービス・アバター２０２の
実装を動的にすることができる。いくつかの実施形態では、これらのインスタンスの選択
的なアクティブ化（activation）は、アプリケーションサービス・サーバによって制御さ
れてもよい。アプリケーションサービス・アバター２０２がエンドユーザデバイス内に実
装されるいくつかの実施形態では、アプリケーションサービス・アバター２０２のインス
タンスは、エンドユーザではなく、アプリケーションサービス・サーバによって制御およ
び構成され、アプリケーションサービス・アバター２０２によって管理されるデータのプ
ライバシーを保護する。これにより、例えば、暗号鍵による暗号認証を含むセキュリティ
機構を用いて達成することができる。
【００５４】
図３は、様々な実施形態に従って、アプリケーションサービス・アバター（例えば、図
１のアプリケーションサービス・アバター１１２）を実装するために使用され得るシステ
ム環境の例を示すブロック図である。いくつかの実施形態では、アプリケーションサービ
ス・アバターは、アバターサーバ３０２に実装される。アバターサーバ３０２は、１つま
たは複数のアプリケーションサービス・サーバ（例えば、アプリケーションサービス・サ
ーバ３０４Ａおよびアプリケーションサービス・サーバ３０４Ｂ、総称して「アプリケー
ションサービス・サーバ３０４」）に少なくとも断続的に接続される。アバターサーバ３
０２は、１つまたは複数のエンドユーザデバイス３０６の動的セット（dynamic set）を
含むローカルネットワークに連続的に接続される。
【００５５】
アバターサーバ３０２は、そのオペレーティングシステム３０７上でアバターエンジン
３０８を実行することができる。アバターエンジン３０８は、１つ以上のアバタープロセ
スをアバターサーバ３０２上で実行することを可能にする。いくつかの実施形態において
、各アバタープロセスは、異なるアプリケーションサービスに対応する単一のアプリケー
ションサービス・アバターを含む。いくつかの実施形態では、複数のアバタープロセスは
、ハードウェアの異なるセットでそれぞれ実装され得る。例えば、複数のアバタープロセ
スは、複数のサーバブレード（server blades）（例えば、アプリケーションブレード３
１０Ａおよびアプリケーションブレード３１０Ｂ、総称して「アプリケーション・サーバ
ブレード３１０」）上にそれぞれ実装され得る。アプリケーション・サーバブレード３１
０の各々は、独立した複数のプロセッサ、独立したオペレーティングメモリ、独立した永
続データストレージ（persistent data storage）、またはそれらの任意の組み合わせを
有することができる。アプリケーション・サーバブレード３１０は、ネットワークインタ
フェース、電源、永続データストレージ、またはそれらの任意の組み合わせを共有するこ
とができる。
【００５６】
いくつかの実施形態では、アバターサーバ３０２は、コンピュータ仮想化のためのハイ
パーバイザ３１２を実装することができる。ハイパーバイザ３１２は、１つまたは複数の
仮想アバターサーバ（例えば、仮想サーバ３１４Ａおよび仮想サーバ３１４Ｂ、総称して
「仮想アバターサーバ３１４」）を実装することができる。各仮想アバターサーバ３１４
は、単一のアプリケーションサービス・アバターまたは複数のアプリケーションサービス
・アバターを実装することができる。いくつかの実施形態では、ハイパーバイザ３１２上
、アプリケーション・サーバブレード上、および／またはオペレーティングシステム３０
７上で動作する１つまたは複数のアプリケーションサービス・アバターは、ネットワーク
環境において互いに通信し、且つ他のアプリケーションサービス・アバターと通信するこ
とができる。
【００５７】
いくつかの実施形態では、アバターサーバ３０２は、アバターデータベース３１６を実
装することができる。アバターデータベース３１６は、オペレーティングシステム３０７
、複数のアプリケーション・サーバブレード３１０のうちの１つ以上、または１つ以上の
仮想アバターサーバにおいて実装され得る。アバターデータベース３１６は、キャッシュ
されたコンテンツ、キャッシュされたコンテンツのインデックス、エンドユーザデバイス
３０６のデバイスプロファイル、エンドユーザデバイス３０６に関連付けられたユーザプ
ロファイル、アプリケーションサービス・サーバ３０４または断続的なバックホール・ネ
ットワークチャネルが利用できないことによって遅延される他のデバイスへのメッセージ
のためのメッセージキュー、またはそれらの任意の組み合わせを含むことができる。
【００５８】
図４は、様々な実施形態に従ったアプリケーションサービス・アバターのアバター・ア
プリケーションプログラミングインタフェース（ＡＰＩ）４００を示す機能ブロック図で
ある。アバターＡＰＩ  ４００は、図１のアバターＡＰＩ  １３２であってもよい。アプ
リケーションサービス・アバターは、図１のアプリケーションサービス・アバター１１２
または図２のアプリケーションサービス・アバター２０２であってもよい。アバターＡＰ
Ｉ  ４００は、アプリケーション層４０２、接続層４０４、ルーティング層４０６、シス
テム層４０８、またはそれらの任意の組み合わせを含む。
【００５９】
アプリケーション層４０２は、アプリケーションサービス・アバターに対応するアプリ
ケーションサービス・サーバ（例えば、図１のアプリケーションサービス・サーバ１１４
）に送信するための１つ以上のメッセージをキューイングするように構成される。例えば
、アプリケーション層４０２は、サービス品質（quality of service : QoS）メカニズム
を使用してこれを達成することができる。ＱｏＳメカニズムは、コンピュータネットワー
クのメッセージングトラフィックを促進するためのリソース予約制御メカニズムである。
例えば、リソース予約制御メカニズムは、ＡＳＡＰ（as-soon-as-possible）キュー、「
Ｅｘｐｉｒｅ−Ａｆｔｅｒ」キュー、優先順位に基づくキュー、またはそれらの任意の組
み合わせを具体化することができる。
【００６０】
アプリケーション層４０２は、キューからアプリケーションサービス・サーバにメッセ
ージを送信することが可能であるかどうかを判断することができる。メッセージを送信す
ることが可能な場合、アプリケーション層４０２は、クライアントアプリケーション・ス
タブを管理および／または呼び出す（invoke）ことができる。クライアントアプリケーシ
ョン・スタブは、リモートプロシージャコール（remote procedure call : RPC）におい
て転送されたパラメータを変換するために使用される実行可能命令によって具体化される
。ＲＰＣは、クライアントコンピュータ（例えば、アプリケーションサービス・アバター
）がサーバコンピュータ（例えば、アプリケーションサービス・サーバ）上のプロシージ
ャ（例えば、実行可能なオブジェクト、関数またはプロセス）をリモートで呼び出すこと
を可能にする。関数呼び出しで使用されるパラメータは、クライアントコンピュータおよ
びサーバコンピュータが異なるアドレス空間を使用するため、変換する必要がある。クラ
イアントアプリケーション・スタブはコンバージェンス（convergence）を実行し、リモ
ートサーバーコンピュータがＲＰＣをローカル関数呼び出しとして受け取る。
【００６１】
接続層４０４は、アプリケーションサービス・アバターをホストするアバターサーバ（
例えば、図２に記載された複数のデバイスのいずれかのアバターサーバ）に利用可能な１
つ以上のネットワークインタフェースを監視する。接続層４０４は、アバターサーバが１
つまたは複数のローカルエンドユーザデバイス（例えば、図１のエンドユーザデバイス１
０６）に接続されているかどうか、および／またはアバターサーバがアプリケーションサ
ービス・サーバに接続されているかどうかを判定することができる。接続層４０４は、デ
バイスプロファイル（例えば、ソフトウェアおよびハードウェア能力、リソース容量、仕
様、接続可否、アイデンティティ、またはそれらの任意の組み合わせ）および／またはユ
ーザプロファイル（例えば、ソーシャルネットワーク、ロケーションベースのプロファイ
ル、ネットワークアクセスプリファレンス、またはそれらの任意の組み合わせ）を含む全
ての接続されたデバイスのリストを管理することができる。
【００６２】
接続層４０４は、エンドユーザデバイスが接続または切断するときに、他の層（例えば
、アプリケーション層４０２またはルーティング層４０６）のうちの少なくとも１つに割
り込みメッセージ（例えば、ｐｉｎｇメッセージ）を送信することができる。接続層４０
４は、バックホール・ネットワークチャネルが切断されたとき（例えば、アプリケーショ
ンサービス・サーバが切断されたとき）、他の層の少なくとも１つに割り込みメッセージ
を送信することができる。例えば、接続層４０４は、アプリケーション層４０２によって
管理される１つまたは複数のクライアントアプリケーション・スタブに割り込みメッセー
ジを送信することができる。接続層４０４はまた、バックホール・ネットワークチャネル
が利用可能になる予測されるスケジュールを管理することもできる。いくつかの実施形態
では、接続層４０４は、バックホール・ネットワークチャネルを使用することに関連する
コストマップ（cost map）を管理することができる。例えば、これにより、ルーティング
層４０６は、アプリケーションサービス・アバターのネットワーク利用のコストを最適化
することができる。接続層４０４は、（例えば、断続的な接続が利用可能になったときの
）アプリケーションサービス・サーバのＱｏＳキューのためのバックホールＱｏＳパラメ
ータをさらに設定することができる。接続層４０４は、（例えば、アプリケーションサー
ビス・アバターによって提供されるアプリケーションサービスに対応する）クライアント
アプリケーション・スタブに対するメッセージまたはコンテンツを受信することもできる
。アプリケーションサービス・サーバは（例えば、図１の委譲ＡＰＩ  １３０を介して）
メッセージまたはコンテンツをプッシュメッセージとして送信することができる。
【００６３】
ルーティング層４０６は、エンドユーザデバイスとアプリケーションサービス・サーバ
との間のメッセージまたはコンテンツのトラフィックを促進することができる。ルーティ
ング層４０６は、接続層４０４によって管理された接続情報およびプロファイル情報を使
用して、どのようにおよびいつメッセージをルーティングするかを決定することができる
。例えば、アプリケーションサービス・サーバからの受信メッセージ（incoming message
）の場合、ルーティング層４０６は、接続層４０４から、エンドユーザデバイスが、受信
メッセージによってターゲットとされているユーザプロファイルに関連付けられたアプリ
ケーションサービス・アバターに接続されているかまたは頻繁に接続するかを判定するこ
とができる。別の例として、エンドユーザデバイスからの発信メッセージの場合、ルーテ
ィング層４０６は、接続層４０４から、ターゲットデバイスのアイデンティティを特定す
ることができる。ターゲットデバイスがアプリケーションサービス・サーバまたは断続的
なネットワークチャネルを介して接続された別のコンピューティングデバイスである場合
、接続層４０４は、予想される配信の時間でルーティング層４０６に応答し、および／ま
たはメッセージをメッセージキューに配置することを促進することができる。ターゲット
デバイスがアプリケーションサービス・アバターに接続されたエンドユーザデバイスであ
る場合、接続層４０４は、ターゲットデバイスへのメッセージのルーティングを促進する
ために必要な情報をルーティング層４０６に提供することができる。
【００６４】
システム層４０８は、クライアントアプリケーション・スタブをＱｏＳパラメータで登
録または登録解除することができる。システム層４０８は、システムログを記録および格
納することもできる。システムログは、例えば、各クライアントアプリケーション・スタ
ブに関連するＱｏＳパラメータ、アプリケーションサービス・サーバまたはエンドユーザ
デバイスに／から送信されるメッセージ、アバターＡＰＩ  ４００のレイヤによって実行
される動作、エラーまたはサービスタスクに関する例外、および／またはそれらの任意の
組み合わせを含む。
【００６５】
アプリケーションサービス・サーバおよび／またはアバターサーバ（例えば、アプリケ
ーションサービスＡＰＩ  １２４、委譲ＡＰＩ  １３０、アバターＡＰＩ  １３２、また
はアバターＡＰＩ  ４００）に実装されるモジュールは、ハードウェアコンポーネント、
ソフトウェアコンポーネント、またはそれらの任意の組み合わせとして具体化され得る。
例えば、説明されたモジュールは、図６で説明されるコンピュータシステム上のプロセッ
サまたはコントローラによって実行可能な非一時的メモリの命令として実装されたソフト
ウェアコンポーネントであってもよい。別の例として、モジュールに導入された方法およ
び他の技術は、ソフトウェアおよび／またはファームウェアによってプログラムまたは構
成されたプログラマブル回路によって具体化されるか、またはそれらは専用の「ハードワ
イヤード（hardwired）」回路によって全体として、またはそのような形態の組み合わせ
によって具体化され得る。（存在する場合）そのような専用回路は、例えば、１つまたは
複数の特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤｓ
）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの形態であり得る。
【００６６】
各モジュールは、個別にかつ他のモジュールとは独立して動作することができる。複数
のモジュールの一部または全部を１つのモジュールとして組み合わせることもできる。単
一のモジュールをサブモジュールに分割することもでき、それぞれが単一のモジュールの
別個の方法ステップまたは方法ステップを実行する。モジュールは、メモリスペースへの
アクセスを共有することができる。１つのモジュールは、別のモジュールによってアクセ
スされるかまたは変換されたデータにアクセスできる。モジュールは、物理的な接続また
は仮想的な接続を直接的または間接的に共有し、あるモジュールからアクセスまたは修正
されたデータに別のモジュールでアクセスすることを可能にする場合に、互いに「接続」
されたとみなすことができる。各「メモリスペース（memory space）」または「データバ
ンク（data bank）」は、データストレージに実装され、他のデータストレージとは個別
に独立して動作することができる。データストレージの一部または全部を１つのデータス
トレージとして組み合わせることができる。単一のデータストレージは、各々、単一のデ
ータストレージの一部を含む複数のサブストレージに分割することもできる。
【００６７】
説明されたストレージまたは「ストア（store）」は、ハードウェアコンポーネントま
たはデジタルデータを格納するためのハードウェアコンポーネントの一部である。各スト
レージは、単一の物理エンティティでも、複数の物理デバイスを介して分散されてもよい
。各ストレージは、別個の物理デバイスであっても、同じ物理デバイスまたは複数の物理
デバイスを共有してもよい。各ストレージは、実行時間アプリケーション、プロセス、ま
たはモジュールに複数の特定のストレージスペースを割り当てることができる。
【００６８】
図５は、様々な実施形態に従った、コンピューティングデバイス（例えば、図１のアバ
ターサーバ１２６）をアプリケーションサービス・アバター（例えば、図１のアプリケー
ションサービス・アバター１１２）として動作させる方法５００を示すフローチャートで
ある。ブロック５０２で、コンピューティングデバイスは、アプリケーションサービス・
アバターを実装する。コンピューティングデバイスは、アプリケーションサービスをクラ
イアントアプリケーションに提供するためのアプリケーションサービス・サーバ（例えば
、図１のアプリケーションサービス・サーバ１１４）へのバックホール・ネットワークチ
ャネルを介して少なくとも断続的なネットワークアクセスを有することができる。
【００６９】
ブロック５０４において、コンピューティングデバイスは、コンピューティングデバイ
スに接続された１つ以上のエンドユーザデバイスのリストを管理し、アプリケーションサ
ービスにアクセスすることによってサービスグループを確立することができる。例えば、
ブロック５０４は、コンピューティングデバイスが、エンドユーザデバイスのデバイスプ
ロファイルおよびエンドユーザデバイスに関連付けられたユーザプロファイルを管理する
ことを含むことができる。
【００７０】
ブロック５０６において、コンピューティングデバイスは、アプリケーションサービス
によってエンドユーザデバイスに提供される複数の機能の少なくとも一部分をエミュレー
トすることによって、ローカライズされた（localized）アプリケーションサービスを提
供する。例えば、ローカライズされたアプリケーションサービスを提供することは、アバ
ターサーバにおける複数のエンドユーザデバイスの少なくとも１つからのサービス要求を
少なくとも部分的にローカルで処理することを含むことができる。サービス要求を処理す
ることは、アプリケーションサービス・サーバに対して、複数のエンドユーザデバイスの
うちの１つの代わりにリモートプロシージャコールにおいて複数のパラメータを変換する
クライアントアプリケーション・スタブを呼び出すことを含むことができる。
【００７１】
いくつかの実施形態では、ローカライズされたアプリケーションサービスを提供するこ
とは、サービスグループ内の少なくとも第１のエンドユーザデバイスからサービス要求を
受信することを含むことができる。サービス要求は、サービスグループ内の第２のエンド
ユーザデバイスを呼び出すことを含み得る。ローカライズされたアプリケーションサービ
スを提供することは、第１のエンドユーザデバイスに代わって第２のエンドユーザデバイ
スにメッセージを通信することによって、サービス要求を少なくとも部分的に処理するこ
とをさらに含むことができる。メッセージを通信することは、バックホール・ネットワー
クチャネルが利用できないこと、またはアプリケーションサービス・サーバが到達不能で
ある（unreachable）と判定したことに応答してもよい。サービス要求を処理することは
、サービス要求によって示されるか、参照されるか、またはサービス要求から導出された
メッセージを識別することを含むことができる。
【００７２】
いくつかの実施形態では、ローカライズされたアプリケーションサービスを提供するこ
とは、エンドユーザデバイスのうちの１つからメディアコンテンツのデータ処理要求（例
えば、データ変換要求）を受信することを含むことができる。例えば、エンドユーザは、
アプリケーションサービス用の音声コマンドを送信することができる。音声コマンドは、
音声認識および／または変換処理タスクを含むことができる。コンピューティングデバイ
スは、アバターサーバに格納された処理モジュールのローカルバージョンを利用すること
によって、アプリケーションサービス・アバターを使用してメディアコンテンツを変換す
ることができる。
【００７３】
いくつかの実施形態では、ローカライズされたアプリケーションサービスを提供するこ
とは、複数のエンドユーザデバイスにおいて要求デバイスからコンテンツ識別子を含むコ
ンテンツ提供要求を受信することを含むことができる。コンピューティングデバイスは、
コンピューティングデバイスに利用可能なまたはコンピューティングデバイス内で利用可
能なローカルデータバンクのコンテンツ識別子を介してコンテンツを見つけることができ
る。コンピューティングデバイスがローカルデータバンク内でコンテンツを見つけること
ができず、バックホール・ネットワークチャネルが利用できないとき、コンピューティン
グデバイスは、要求デバイスへのコンテンツのその後の配信のために、コンテンツのため
のコンテンツ要求をアプリケーションサービス・サーバにキューイングする。コンピュー
ティングデバイスがローカルデータバンク内のコンテンツを見つけることができず、バッ
クホール・ネットワークチャネルが利用可能であるとき、コンピューティングデバイスは
、アプリケーションサービス・サーバからコンテンツをフェッチして、要求デバイスに配
信する。コンピューティングデバイスがローカルデータバンクにコンテンツを配置すると
、コンピューティングデバイスは、要求デバイスにコンテンツを提供する。
【００７４】
いくつかの実施形態では、ローカライズされたアプリケーションサービスを提供するこ
とは、複数のエンドユーザデバイスにおいて要求デバイスから公開可能なコンテンツを含
むコンテンツ公開要求を受信することを含む。次いで、コンピューティングデバイスは、
公開可能なコンテンツをアプリケーションサービス・サーバに送信する前に、公開可能な
コンテンツをサービスグループが利用できるようにすることによって、サービスグループ
内の公開可能なコンテンツを事前に公開することができる。
【００７５】
ブロック５０８において、コンピューティングデバイスは、アプリケーション要求に非
同期でアプリケーションサービス・サーバと通信して、サービス要求をファイナライズす
ることができる。ブロック５０８のロジックは、バックホール・ネットワークチャネルが
利用可能であると判定したことに応答して実行され得る。
【００７６】
ブロック５１０において、コンピューティングデバイスは、アプリケーションサービス
・サーバからプッシュメッセージを受信することができる。プッシュメッセージは、アプ
リケーションサービス・アバターのシステムアップデートとすることができる。例えば、
ブロック５１０は、アプリケーションサービス・サーバから処理モジュールのローカルバ
ージョンへの更新を受信することを含むことができる。プッシュメッセージは、サービス
グループ内の複数のエンドユーザデバイスのうちの１つに向けられたメッセージであって
もよい。
【００７７】
プロセスまたは方法が所定の順序で提示されるが、代替的な実施形態は、異なる順序で
、複数のステップを有する複数のルーチンを実行するかまたは複数のブロックを有する複
数のシステムを使用し、且つ、いくつかのプロセスまたはブロックが、代替またはサブコ
ンビネーションを提供するために、削除、移動、追加、細分化、結合および／または修正
されてもよい。これらのプロセスまたはブロックの各々は、様々な異なる方法で具体化さ
れ得る。さらに、複数のプロセスまたは複数のブロックが直列に実行されるように示され
ているが、これらのプロセスまたはブロックは代わりに並列に実行されてもよく、または
異なる時間に実行されてもよい。
【００７８】
図６は、様々な実施形態に従った、本明細書に記載の１つまたは複数のコンピューティ
ングデバイスまたはサーバを示すコンピューティングデバイス６００の一例のブロック図
である。コンピューティングデバイス６００は、図１のアプリケーションサービス・アバ
ター１１２、図１のアプリケーションサービス・サーバ１１４、または本開示に記載され
た複数の方法および複数のプロセス（例えば、図５の方法５００）を実装する１つまたは
複数のコンピューティングデバイスであり得る。コンピューティングデバイス６００は、
相互接続部６３０に結合された１つ以上のプロセッサ６１０およびメモリ６２０を含む。
図６に示された相互接続部６３０は、１つまたは複数の別個の物理バス、ポイントツーポ
イント接続、または適切な複数のブリッジ、複数のアダプタ、または複数のコントローラ
によって接続された両方を表す抽象概念（abstraction）である。したがって、相互接続
部６３０は、例えば、システムバス、ＰＣＩ（Peripheral Component Interconnect）バ
スまたはＰＣＩ−Ｅｘｐｒｅｓｓバス、ＨｙｐｅｒＴｒａｎｓｐｏｒｔまたは業界標準ア
ーキテクチャ（ＩＳＡ）バス、ＳＣＳＩ（Small Computer System Interface）バス、ユ
ニバーサルシリアルバス（ＵＳＢ）、ＩＩＣ（Ｉ２Ｃ）バス、または「Ｆｉｒｅｗｉｒｅ
」を含む。
【００７９】
（複数の）プロセッサ６１０は、コンピューティングデバイス６００の中央処理装置（
ＣＰＵ）であり、したがって、コンピューティングデバイス６００の全体的な動作を制御
する。特定の実施形態では、プロセッサ６１０は、メモリ６２０に格納されたソフトウェ
アまたはファームウェアを実行することによってこれを達成する。プロセッサ６１０は、
１つまたは複数のプログラム可能な汎用マイクロプロセッサまたは専用マイクロプロセッ
サ、デジタルシグナルプロセッサ（ＤＳＰ）、プログラマブルコントローラ、特定用途向
け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、トラステッドプ
ラットフォームモジュール（ＴＰＭ）など、またはそのようなデバイスの組み合わせを含
む。
【００８０】
メモリ６２０は、コンピューティングデバイス６００の主メモリであるか、またはそれ
を含む。メモリ６２０は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（
ＲＯＭ）、フラッシュメモリ、またはそれらの組み合わせの任意の形態を表す。使用にお
いて、メモリ６２０は、本明細書で開示されるメッシュ接続システムによる命令を含むコ
ード６７０を含むことができる。
【００８１】
また、相互接続部６３０を介してプロセッサ６１０に接続されるのは、ネットワークア
ダプタ６４０とストレージアダプタ６５０である。ネットワークアダプタ６４０は、コン
ピューティングデバイス６００に、ネットワークを介してリモート装置と通信する機能を
提供し、たとえば、イーサネット・アダプタまたはファイバ・チャネル・アダプタなどで
ある。ネットワークアダプタ６４０はまた、コンピューティングデバイス６００に、他の
コンピュータと通信する能力を機能してもよい。ストレージアダプタ６５０は、コンピュ
ーティングデバイス６００が永続的ストレージにアクセスすることを可能にし、例えば、
ファイバ・チャネル・アダプタまたはＳＣＳＩアダプタでもよい。
【００８２】
メモリ６２０に格納されたコード６７０は、上述の動作を実行するようにプロセッサ６
１０をプログラムするためのソフトウェアおよび／またはファームウェアとして具体化し
てもよい。特定の実施形態では、そのようなソフトウェアまたはファームウェアは、コン
ピューティングデバイス６００を介して（例えば、ネットワークアダプタ６４０を介して
）リモートシステムからダウンロードすることによって、コンピューティングデバイス６
００に最初に提供されてもよい。
【００８３】
本明細書で紹介された技法は、例えば、ソフトウェアおよび／またはファームウェアで
プログラムされたプログラム可能な回路（例えば、１つまたは複数のマイクロプロセッサ
）によって、または完全に専用のハードワイヤード回路で、またはそのような形態の組み
合わせによって具体化され得る。専用ハードワイヤード回路は、例えば、１つまたは複数
の特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、フ
ィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの形態であってもよい。
【００８４】
明細書において紹介された技術を具体化する際に使用するソフトウェアまたはファーム
ウェアは、機械可読記憶媒体（machine-readable storage medium）に格納されてもよい
し、１つまたは複数の汎用または専用のプログラム可能なマイクロプロセッサによって実
行されてもよい。本明細書で使用される「機械可読記憶媒体」は、機械によってアクセス
可能な形式で情報を格納することができる任意のメカニズムを含む（機械は、例えば、コ
ンピュータ、ネットワーク装置、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）
、製造ツール、１つ以上のプロセッサを有する任意のデバイスなどとすることができる。
）。例えば、機械アクセス可能な記憶媒体は、記録可能／記録不可能媒体（例えば、リー
ドオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒
体、光学記憶媒体、フラッシュメモリ装置など）等を含む。
【００８５】
本明細書で使用される用語「ロジック」は、例えば、特定のソフトウェアおよび／また
はファームウェアでプログラムされたプログラム可能な回路、専用ハードワイヤード回路
、またはそれらの組み合わせを含み得る。
【００８６】
ソーシャルネットワーキングシステムの概要
開示されるアプリケーションサービスの様々な実施形態は、ソーシャルネットワーキン
グシステムを利用するか、またはソーシャルネットワーキングシステムの一部である。ソ
ーシャルネットワーキングシステムは、一般に、ユーザがソーシャルネットワーキングシ
ステムのコンテキスト内外のオブジェクトおよび他のユーザと対話することを可能にする
メカニズムを提供する。ソーシャルネットワーキングシステムユーザは、個人または任意
の他のエンティティ、例えば、ビジネスエンティティまたは他の非パーソンエンティティ
（non-person entity）であってもよい。ソーシャルネットワーキングシステムは、ユー
ザを表示してユーザがソーシャルネットワーキングシステムのオブジェクトおよび情報と
対話することを可能にする一連の相互接続されたページを含むウェブベースのインタフェ
ースまたはモバイルインタフェースを利用することができる。例えば、ソーシャルネット
ワーキングシステムは、ソーシャルネットワーキングシステムユーザによって入力された
、またはソーシャルネットワーキングシステムユーザに関連するオブジェクトおよび情報
を含む各ソーシャルネットワーキングシステムユーザのページ（例えば、ユーザの「プロ
ファイル」）を表示することができる。ソーシャルネットワーキングシステムは、複数の
コンセプトに注目した、類似の関心のある複数のユーザー（「グループ」）に注目した、
または他のユーザへの、他のユーザから、または他のユーザによる複数のコミュニケーシ
ョンやソーシャルネットワーキングシステムのアクティビティを含む写真やビデオを含む
複数のページを有してもよい。ソーシャルネットワーキングシステムページは、他のソー
シャルネットワーキングシステムページへのリンクを含むことができ、検索、リアルタイ
ム通信、コンテンツアイテムアップロード、購入、広告、および他のウェブベース推論エ
ンジンまたは機能などの追加機能を含み得る。ソーシャルネットワーキングシステムイン
タフェースは、ウェブブラウザまたは非ウェブブラウザアプリケーション、例えば、モバ
イルコンピューティングデバイスまたは他のコンピューティングデバイス上で実行される
専用のソーシャルネットワーキングシステムアプリケーションからアクセス可能であり得
ることに留意されたい。したがって、本明細書で使用される「ページ（ｐａｇｅ）」は、
ウェブページ、アプリケーションインタフェースまたはディスプレイ、ウェブページまた
はアプリケーション上に表示されるウィジェット、ボックスまたは他のグラフィカルイン
タフェース、（ソーシャルネットワーキングシステムコンテキスト内か外のどちらかの）
別のページ上のオーバーレイウィンドウ（ｏｖｅｒｌａｙ  ｗｉｎｄｏｗ）、または複数
の機能におけるソーシャルネットワーキングシステムプラグインまたは統合機能を有する
ソーシャルネットワーキングシステムの外部のウェブページであってもよい。
【００８７】
上述したように、ソーシャルグラフは、（相互作用、アクティビティまたは関連性を表
す）エッジによって相互接続されたノードのセット（ソーシャルネットワーキングシステ
ムオブジェクト、またはソーシャルオブジェクトとしても知られている）を含むことがで
きる。ソーシャルネットワーキングシステムオブジェクトは、ソーシャルネットワーキン
グシステムユーザ、非パーソスエンティティ、コンテンツアイテム、グループ、ソーシャ
ルネットワーキングシステムページ、ロケーション、アプリケーション、主題、概念また
は他のソーシャルネットワーキングシステムオブジェクト、例えば映画、バンド、本であ
ってもよい。コンテンツアイテムは、ソーシャルネットワーキングシステムのユーザまた
は他のオブジェクトが、例えば、メッセージ、キューイングされたメッセージ（例えば電
子メール）、テキストおよびＳＭＳ（ショートメッセージサービス）メッセージ、コメン
トメッセージ、他の好適なメッセージ技術を用いたメッセージ、ＨＴＴＰリンク、ＨＴＭ
Ｌファイル、画像、ビデオ、オーディオクリップ、文書、文書編集、カレンダーエントリ
またはイベント、および他のコンピュータ関連ファイルを作成、アップロード、編集、ま
たは対話することができるもののいずれかを含み得る。主題と概念は、ソーシャルグラフ
の説明において、任意の人物、場所、物、またはアイデアを表すノードを含む。
【００８８】
ソーシャルネットワーキングシステムは、ユーザが、ユーザの関心、教育および勤務経
験、連絡先情報、人口統計情報、およびユーザのプロフィールページ内の他の経歴情報に
関連する情報を入力および表示することを可能にすることができる。プロフィールページ
に含まれる各学校、雇用者、関心（例えば、音楽、書籍、映画、テレビ番組、ゲーム、政
治的見解、哲学、宗教、グループ、またはファンページ）、地理的位置、ネットワーク、
またはその他の情報は、ソーシャルグラフ内のノードによって表される。ソーシャルネッ
トワーキングシステムは、ユーザが写真、ビデオ、文書、歌、または他のコンテンツアイ
テムをアップロードまたは作成することを可能にし、ユーザがイベントを作成およびスケ
ジュールすることを可能にすることができる。コンテンツアイテムおよびイベントは、ソ
ーシャルグラフ内のノードによって表されてもよい。
【００８９】
ソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステム内の非
パーソンオブジェクトと対話するための様々な手段を提供することができる。例えば、ユ
ーザは、ソーシャルネットワーキングシステム内でグループを形成したり、グループに参
加したり、ファンページのファンになることができる。さらに、ユーザは、ソーシャルネ
ットワーキングシステムオブジェクトを作成、ダウンロード、閲覧、アップロード、リン
ク付け、タグ付け、編集、または再生することができる。ユーザは、ソーシャルネットワ
ーキングシステムのコンテキスト外でソーシャルネットワーキングシステムオブジェクト
と対話することができる。例えば、ニュースウェブサイト上の記事は、ユーザがクリック
できる「いいね（like）」ボタンを有する可能性がある。これらの各インスタンスにおい
て、ユーザとオブジェクトとの間の対話は、ユーザのノードをオブジェクトのノードに接
続するソーシャルグラフ内のエッジによって表される。ユーザは、特定の場所に「チェッ
クイン（check in）」するために（モバイルデバイスのＧＰＳ受信機のような）位置検出
機能を使用することができ、エッジは、ユーザのノードをソーシャルグラフ内の場所のノ
ードに接続することができる。
【００９０】
ソーシャルネットワーキングシステムは、様々な通信チャネルをユーザに提供すること
ができる。例えば、ソーシャルネットワーキングシステムは、ユーザが電子メール、イン
スタントメッセージ、またはテキスト／ＳＭＳメッセージを１人以上の他のユーザに実行
することを可能にし、ユーザのウォール（wall）またはプロフィールまたは他のユーザの
ウォールまたはプロフィールにメッセージを掲示し、ユーザがグループまたはファンペー
ジにメッセージを投稿し、またはユーザがユーザまたは他のユーザによって作成またはア
ップロードされた画像、ウォールのポストまたは他のコンテンツアイテムにコメントする
ことを可能にすることができる。少なくとも１つの実施形態では、ユーザは、現在のイベ
ント、心の状態、思考、感情、アクティビティ、または現時点で他に関連する任意のコミ
ュニケーションを示すステータスメッセージをユーザのプロファイルに掲示する。ソーシ
ャルネットワーキングシステムは、ユーザがソーシャルネットワーキングシステムの内部
および外部の両方で通信することを可能にすることができる。例えば、第１のユーザは、
ソーシャルネットワーキングシステムにおけるメッセージ、ソーシャルネットワーキング
システムを介した電子メール、ソーシャルネットワーキングシステムに起因するが外部の
電子メール、ソーシャルネットワーキングシステムにおけるインスタントメッセージ、お
よびソーシャルネットワーキングシステムに起因するが外部のインスタントメッセージを
第２のユーザに送信してもよい。さらに、第１のユーザは、第２のユーザのプロファイル
ページにコメントすることができ、または第２のユーザに関連するオブジェクト、例えば
第２のユーザによってアップロードされたコンテンツアイテムにコメントすることができ
る。
【００９１】
ソーシャルネットワーキングシステムは、複数のユーザがソーシャルネットワーキング
システムの他のユーザと自身を関連付けて複数の接続を確立することを可能にする。２人
のユーザ（例えば、ソーシャルグラフノード）がソーシャルネットワーキングシステムに
おいてソーシャル接続を明示的に確立すると、２人のユーザは、ソーシャルネットワーキ
ングシステムのコンテキスト内で「友達」（または「接続」）になる。例えば、「Ｊａｎ
ｅ  Ｓｍｉｔｈ」によって受け入れられた「Ｊｏｈｎ  Ｄｏｅ」から「Ｊａｎｅ  Ｓｍｉ
ｔｈ」への友達要求は、ソーシャル接続である。ソーシャル接続は、ソーシャルネットワ
ークのエッジである。ソーシャルネットワーキングシステムで友達になると、ユーザは、
接続されていないユーザに利用可能な他の情報よりも多くの情報にアクセスすることがで
きる。例えば、友達であることは、ユーザが別のユーザのプロフィールを見ること、他の
ユーザの友達を見ること、または別のユーザの写真を見ることを可能にすることができる
。同様に、ソーシャルネットワーキングシステム内で友達となることは、ユーザが、（ソ
ーシャルネットワーキングシステムの内部および外部の）電子メール、インスタントメッ
セージ、テキストメッセージ、電話、または他の任意の通信インタフェースなどによって
他のユーザとコミュニケーションするためにより多くのアクセスを可能にする。コミュニ
ケーションのアップロードされたコンテンツアイテムを閲覧、コメント、ダウンロード、
承認または他の方法で対話することを可能にすることができる。接続を確立すること、ユ
ーザ情報にアクセスすること、コミュニケーションすること、およびソーシャルネットワ
ーキングシステムのコンテキスト内で対話することは、２人のソーシャルネットワーキン
グシステムユーザを表すノード間のエッジによって表される。
【００９２】
ソーシャルネットワーキングシステムにおける接続を明示的に確立することに加えて、
共通の特性を有する複数のユーザは、通信のトピックを決定する際に使用するためのソー
シャルコンテキストを決定する目的で（ソフトまたは暗黙的接続（soft or implicit con
nection）などの）接続されたものと見なすことができる。少なくとも１つの実施形態で
は、共通のネットワークに属する複数のユーザは、接続されているとみなされる。たとえ
ば、共通の学校に通う人、共通の会社に所属する人、または共通のソーシャルネットワー
キングシステムグループに属する複数のユーザは、接続されているとみなされる。少なく
とも１つの実施形態では、共通の経歴特徴を有する複数のユーザは、接続されているとみ
なされる。例えば、ユーザが生まれたかまたは生きている地理的領域、ユーザの年齢、ユ
ーザの性別およびユーザの関係状態が使用されて、複数のユーザが接続されているかどう
かを判定することができる。少なくとも１つの実施形態では、共通の関心を有する複数の
ユーザが、接続されているとみなされる。例えば、ユーザの映画の好み、音楽の好み、政
治的な意見、宗教的な意見、または他の関心が、複数のユーザが接続されているかどうか
を判定するために使用されてもよい。少なくとも１つの実施形態では、ソーシャルネット
ワーキングシステム内で共通の行動を取った複数のユーザは、接続されたとみなされる。
たとえば、共通のオブジェクトを推薦または推奨するユーザ、共通のコンテンツアイテム
にコメントするユーザ、または共通のイベントに喜んで出席する（ＲＳＶＰ）複数のユー
ザは、接続されたとみなされる。ソーシャルネットワーキングシステムは、ソーシャルグ
ラフを利用して、複数のユーザ間のソーシャルコンテキストを判定または評価するために
、特定のユーザと接続されているかまたは類似している複数のユーザを特定することがで
きる。ソーシャルネットワーキングシステムは、そのようなソーシャルコンテキストおよ
び共通の属性を利用して、特定のソーシャルネットワークアカウントに関連付けられたキ
ャッシュアプライアンス（cache appliance）内のキャッシングのための複数のコンテン
ツ項目を予測可能に選択するコンテンツ配信システムおよびコンテンツキャッシングシス
テムを支援することができる。
【００９３】
本開示のいくつかの実施形態は、上述のものに加えて、またはその代わりに、他の態様
、要素、特徴およびステップを有する。これらの潜在的な追加および置換は、本明細書の
残りの部分で説明される。
【００９４】
例えば、幾つかの実施形態は、アバターサーバを含み、アバターサーバは、１つまたは
複数のエンドユーザデバイスのローカルセットに接続し、バックホール・ネットワークチ
ャネルを介して少なくとも断続的にアプリケーションサービスを提供するアプリケーショ
ンサービス・サーバに接続するように構成された１つまたは複数のネットワークインタフ
ェースと、バックホール・ネットワークチャネルが利用可能である場合、アプリケーショ
ンサービス・サーバと通信するアプリケーションサービス・アバターをホストするように
構成されたプロセッサであって、アプリケーションサービス・アバターは、アバター・ア
プリケーションプログラミングインタフェース（ＡＰＩ）を提供し、アバター・アプリケ
ーションプログラミングインタフェースは、１つ以上のエンドユーザデバイスに対して、
アプリケーションサービスによって提供される複数の機能の少なくとも一部分をエミュレ
ートすることによって、アプリケーションサービス・アバターを介してローカライズされ
たアプリケーションサービスを提供する、プロセッサと、１つ以上のエンドユーザデバイ
スのローカルセットに対するコンテンツをキャッシュし、１つ以上のエンドユーザデバイ
スのプロファイルを追跡するためのメモリと、を備える。アバターサーバは、１つ以上の
エンドユーザデバイスのネットワークアクセスまたはアグリゲーション通信データを提供
するネットワーク機器に実装され得る。アバターサーバは、１つ以上のエンドユーザデバ
イスのネットワークアクセスを提供するネットワーク機器とは独立して実装され得る。ア
バターサーバは、１つ以上のエンドユーザデバイスのうちの１つに実装され得る。
【００９５】
幾つかの実施形態は、アバターサーバを動作させるためのコンピュータにより実行可能
な複数の命令を記憶するコンピュータ可読記憶メモリ（例えば、非一時的データ記憶メモ
リ）を含む。コンピュータ可読記憶メモリは、アバターサーバにアプリケーションサービ
ス・アバターを実装するための命令であって、アバターサーバは、バックホール・ネット
ワークチャネルを介してアプリケーションサービス・サーバへの断続的なネットワークア
クセスを少なくとも有し、アプリケーションサービス・サーバは、複数のクライアントア
プリケーションにアプリケーションサービスを提供する、アバターサーバにアプリケーシ
ョンサービス・アバターを実装するための命令と、アプリケーションサービスにアクセス
するためにアバターサーバに接続された１つ以上のエンドユーザデバイスのリストを管理
することによってサービスグループを確立するための命令と、サービスグループの少なく
とも第１のエンドユーザデバイスからのサービス要求をアバターサーバで受信するための
命令であって、サービス要求は、サービスグループの第２のエンドユーザデバイスに関連
する、サービス要求をアバターサーバで受信するための命令と、第１のエンドユーザデバ
イスに代わって第２のエンドユーザデバイスにメッセージを通信することによって、少な
くとも部分的に、サービス要求を処理するための命令と、を含み得る。コンピュータ可読
記憶メモリは、１つ以上のエンドユーザデバイスに対して、アプリケーションサービスに
よって提供される複数の機能の少なくとも一部分をエミュレートすることによって、アバ
ターサーバを用いてローカライズされたアプリケーションサービスを提供するための命令
をさらに含み得る。コンピュータ可読記憶メモリは、バックホール・ネットワークチャネ
ルが利用可能である場合に、サービス要求をアプリケーションサービス・サーバに非同期
で通信するための命令をさらに含み得る。コンピュータ可読記憶メモリは、アプリケーシ
ョンサービス・サーバに対して、１つ以上のエンドユーザデバイスのうちの１つに代わっ
てリモートプロシージャコールにおいて複数のパラメータを変換するクライアントアプリ
ケーション・スタブを呼び出すための命令をさらに含み得る。コンピュータ可読記憶メモ
リは、１つ以上のエンドユーザデバイスのデバイスプロファイルおよび１つ以上のエンド
ユーザデバイスに関連付けられたユーザプロファイルを管理するための命令をさらに含み
得る。
【図１】
2019204524.tif 000003
【図２】
2019204524.tif 000004
【図３】
2019204524.tif 000005
【図４】
2019204524.tif 000006
【図５】
2019204524.tif 000007
【図６】
2019204524.tif 000008
【手続補正書】
【提出日】令和1年7月31日(2019.7.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
複数のクライアントアプリケーションにアプリケーションサービスを提供するためのアプリケーションサービス・サーバへのバックホール・ネットワークチャネルを介した少なくとも断続的なネットワークアクセスを有するアバターサーバにアプリケーションサービス・アバターを実装すること、
前記アプリケーションサービスにアクセスするために前記アバターサーバに接続された１つ以上のエンドユーザデバイスのリストを管理することによってサービスグループを確立すること、
前記アプリケーションサービスによって提供される複数の機能の少なくとも一部分をエミュレートすることによって、前記アバターサーバを介して、ローカライズされたアプリケーションサービスを前記１つ以上のエンドユーザデバイスに提供すること、ここで、前記ローカライズされたアプリケーションサービスを提供することは、
前記サービスグループの少なくとも第１のエンドユーザデバイスから、サービスグループの第２のエンドユーザデバイスと関連するサービス要求を前記アバターサーバで受信することと、
前記サービスグループの少なくとも第３のエンドユーザデバイスから、共有可能なパブリックドメインに公開されるべきコンテンツを含む公開可能なコンテンツを含むコンテンツ公開要求を受信することと、
前記バックホール・ネットワークチャネルが利用できない、又は前記アプリケーションサービス・サーバが到達不能であると判定することと、
前記バックホール・ネットワークチャネルが利用できない、又は前記アプリケーションサービス・サーバが到達不能であると判定したことに応答して、前記アバターサーバにおいてローカルで、
前記第１のエンドユーザデバイスに代わって前記第２のエンドユーザデバイスにメッセージを通信することによって、前記サービス要求を少なくとも部分的に処理すること、及び
前記公開可能なコンテンツを前記アプリケーションサービス・サーバに送信する前に、前記公開可能なコンテンツを前記サービスグループの前記１つ以上のエンドユーザデバイスが利用できるようにすることによって、前記サービスグループ内の前記公開可能なコンテンツを事前に公開することと
を含み、
前記バックホール・ネットワークチャネルが利用可能なとき、前記アプリケーションサービス・サーバと非同期で通信して前記サービス要求を完了し、前記公開可能なコンテンツを前記アプリケーションサービス・サーバに送信すること、
を備える方法。
【請求項２】
前記コンテンツ公開要求は、
ステータスを更新するタスク、
ブログを公開するタスク、
ローカル広告を公表するタスク、
イベントを発表するタスク、
オークションを発表するタスク、および
販売のためにアイテムまたはサービスを発表するタスク、
のうちの１つまたは複数を実行するための要求を含む、請求項１に記載の方法。
【請求項３】
前記コンテンツ公開要求を受信することに応答して、前記アプリケーションサービス・アバターは、公開すべきコンテンツをローカルデータバンクに格納する、請求項１に記載の方法。
【請求項４】
前記アプリケーションサービス・アバターは、前記公開すべきコンテンツを、公開のために前記アプリケーションサービス・サーバに転送する、請求項３に記載の方法。
【請求項５】
前記アプリケーションサービス・アバターは、ニュースフィードの生成を通じて、前記公開すべきコンテンツを、公開のために前記アプリケーションサービス・サーバに転送する、請求項４に記載の方法。
【請求項６】
前記バックホール・ネットワークチャネルが利用できないと判定すること、
前記バックホール・ネットワークチャネルが再び利用可能になった場合、転送するために前記コンテンツをキューイングすること、をさらに備える、請求項１に記載の方法。
【請求項７】
前記アプリケーションサービス・アバターが、公開プラットフォームのローカルバージョンに前記コンテンツをローカルで事前に公開することをさらに備える、請求項１に記載の方法。
【請求項８】
前記公開プラットフォームは、
ニュースレター、
ブログ、
オークションサイト、
プロフィールページ、
発表ページ、
イベントサイト、および
Ｗｉｋｉ、
のうちの１つまたは複数を含む、請求項７に記載の方法。
【請求項９】
前記アプリケーションサービス・アバターが、前記バックホール・ネットワークチャネルが利用可能になった場合、前記アプリケーションサービス・サーバを介してローカルバージョンをグローバルバージョンと同期させることをさらに備える、請求項７に記載の方法。
【請求項１０】
演算装置の物理プロセッサによって実行されたときに前記演算装置にアバターサーバを動作させるための動作を実行させるコンピュータにより実行可能な複数の命令を記憶するコンピュータ可読記憶媒体であって、前記動作は、
前記アバターサーバにアプリケーションサービス・アバターを実装すること、ここで、前記アバターサービスはバックホール・ネットワークチャネルを介した前記アプリケーションサービス・サーバへの少なくとも断続的なアクセスを有し、前記アプリケーションサービス・サーバは、アプリケーションサービスをクライアントアプリケーションに提供し、
前記アプリケーションサービスにアクセスするために前記アバターサーバに接続された１つ以上のエンドユーザデバイスのリストを管理することによってサービスグループを確立すること、
ローカライズされたアプリケーションサービスを提供すること、ここで、前記ローカライズされたアプリケーションサービスを提供することは、
前記サービスグループの少なくとも第１のエンドユーザデバイスから、サービスグループの第２のエンドユーザデバイスと関連するサービス要求を前記アバターサーバで受信することと、
前記サービスグループの少なくとも第３のエンドユーザデバイスから、共有可能なパブリックドメインに公開されるべきコンテンツを含む公開可能なコンテンツを含むコンテンツ公開要求を受信することと、
前記バックホール・ネットワークチャネルが利用できない、又は前記アプリケーションサービス・サーバが到達不能であると判定することと、
前記バックホール・ネットワークチャネルが利用できない、又は前記アプリケーションサービス・サーバが到達不能であると判定したことに応答して、
前記第１のエンドユーザデバイスに代わって前記第２のエンドユーザデバイスにメッセージを通信することによって、前記サービス要求を少なくとも部分的に処理すること、及び
前記公開可能なコンテンツを前記アプリケーションサービス・サーバに送信する前に、前記公開可能なコンテンツを前記サービスグループの前記１つ以上のエンドユーザデバイスが利用できるようにすることによって、前記サービスグループ内の前記公開可能なコンテンツを事前に公開することと
を含み、
前記バックホール・ネットワークチャネルが利用可能なとき、前記アプリケーションサービス・サーバと非同期で通信して前記サービス要求を完了し、前記公開可能なコンテンツを前記アプリケーションサービス・サーバに送信すること、
を含む、コンピュータ可読記憶媒体。
【請求項１１】
前記アプリケーションサービス・アバターが、公開プラットフォームのローカルバージョンに前記コンテンツをローカルで事前に公開するための命令をさらに備える、請求項１０に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記動作がさらに、前記アプリケーションサービスによって前記１つ以上のエンドユーザデバイスに提供される複数の機能の少なくとも一部分をエミュレートすることによって、前記アバターサーバを介して、前記ローカライズされたアプリケーションサービスを前記１つ以上のエンドユーザデバイスに提供することを含む、請求項１０に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記動作がさらに、前記バックホール・ネットワークチャネルが利用可能なとき、前記サービス要求を前記アプリケーションサービス・サーバに非同期で通信することを含む、請求項１０に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記動作がさらに、アプリケーションサービス・サーバに対して、前記１つ以上のエンドユーザデバイスのうちの１つに代わってリモートプロシージャコールにおいて複数のパラメータを変換するクライアントアプリケーション・スタブを呼び出すことを含む、請求項１０に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記動作がさらに、前記１つ以上のエンドユーザデバイスのデバイスプロファイルおよび前記１つ以上のエンドユーザデバイスに関連付けられたユーザプロファイルを管理することを含む、請求項１０に記載のコンピュータ可読記憶媒体。
【外国語明細書】
2019204524000001.pdf