JP2019204524A - アプリケーションサービス・アバターを用いたアプリケーションサービス配信 - Google Patents

アプリケーションサービス・アバターを用いたアプリケーションサービス配信 Download PDF

Info

Publication number
JP2019204524A
JP2019204524A JP2019126079A JP2019126079A JP2019204524A JP 2019204524 A JP2019204524 A JP 2019204524A JP 2019126079 A JP2019126079 A JP 2019126079A JP 2019126079 A JP2019126079 A JP 2019126079A JP 2019204524 A JP2019204524 A JP 2019204524A
Authority
JP
Japan
Prior art keywords
application service
avatar
server
content
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019126079A
Other languages
English (en)
Other versions
JP6762406B2 (ja
Inventor
ルイス ボハノン、フィリップ
Lewis BOHANNON Philip
ルイス ボハノン、フィリップ
プーサラ、ビスワナス
Poosala Viswanath
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Facebook Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Facebook Inc filed Critical Facebook Inc
Publication of JP2019204524A publication Critical patent/JP2019204524A/ja
Application granted granted Critical
Publication of JP6762406B2 publication Critical patent/JP6762406B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Abstract

【課題】アプリケーションサービス・サーバと非同期で通信してサービス要求を完了することができるアバターサーバを提供する。【解決手段】アプリケーションサービスを複数のクライアントアプリケーションに提供するためのアプリケーションサービス・サーバへの少なくとも断続的なネットワークアクセスを有するアバターサーバにアプリケーションサービス・アバターを実装する。アバターサーバは、アバターサーバに接続されたエンドユーザデバイスのプロファイルを管理してサービスグループを設定する。アバターサーバは、1つ以上のエンドユーザデバイスに対して、アプリケーションサービスによって提供される複数の機能の少なくとも一部分をエミュレートすることによって、エンドユーザデバイスからのサービス要求をローカルで処理する。【選択図】図1

Description

地方の地理的地域を電力網及び/又はインターネットに接続することは困難であり、例
えば、ネットワーク事業者、政府機関、電力会社等によるかなりの投資を必要とする可能
性がある。これらの理由の少なくともいくつかのために、開発途上国の多くの地方では、
ケーブルや電話回線などを介して、継続的な電力供給や有線によるインターネット接続に
アクセスできないことがよくある。しかし、世界中のインターネットサービスの普及に伴
い、これらの地域の人々は、モバイルデバイス、例えば、限られた計算能力(例えば、低
速のプロセッサおよび/またはクライアントサイドのスクリプト実行機能の欠如)を有す
るローエンド携帯電話端末(ローエンドのモバイルデバイス)を用いていることがある。
ローエンドのモバイルデバイス上で実行される(また、「実行中」の)アプリケーション
は、サーバへの計算およびメモリ消費を軽減し、複数のユーザ間の対話をより促進にする
ためにクライアントサーバ・アーキテクチャを実装することが多い。しかし、これらのモ
バイルデバイスのための無線ネットワークは、信頼できるネットワークインフラストラク
チャの欠如のために、断続的なネットワーク中断を被る可能性がある。従来のクライアン
トサーバ・コンピューティング・アーキテクチャを実装するアプリケーションでは、クラ
イアントとしてのアプリケーションが、その対応するサーバから命令やデータを例えば、
命令またはデータが必要な場合に受け取ることができない可能性があるため、断続的なネ
ットワーク中断は、アプリケーションの適切な動作を妨げる可能性がある。
本発明に従った実施形態は、特に、方法、記憶媒体、システム、およびコンピュータプ
ログラム製品に関する添付の特許請求の範囲に開示されている。1つの請求項カテゴリ、
例えば方法に記載されている任意の特徴は、他の請求項カテゴリ、例えば、システムにお
いても同様に請求され得る。添付の請求項に記載された従属または参照は、形式的な理由
のためにのみ選択されている。しかしながら、前の請求項への意図的な参照(特に複数従
属)に起因する特定事項は、同様に請求され、添付の特許請求の範囲において選択される
従属に関係なく、特許請求の範囲およびその特徴の任意の組み合わせが開示され請求され
得る。請求され得る特定事項は、添付の特許請求の範囲に記載された特徴の組み合わせだ
けでなく、特許請求の範囲における他の特徴の組み合わせも含む。特許請求の範囲に記載
された各特徴は、特許請求の範囲における他の特徴または他の特徴の組み合わせと組み合
わせることができる。さらに、本明細書に記載または図示された実施形態および特徴のう
ちのいずれかは、別個の請求項および/または本明細書に記載または図示される任意の実
施形態または特徴並びに添付の特許請求の範囲の複数の特徴のいずれかとの任意の組み合
わせにおいて請求され得る。
本発明に従った実施形態では、方法は、複数のクライアントサービスにアプリケーショ
ンサービスを提供するためのアプリケーションサービス・サーバへのバックホール・ネッ
トワークチャネルを介した少なくとも断続的なネットワークアクセスを有するアバターサ
ーバにアプリケーションサービス・アバターを実装すること、アプリケーションサービス
にアクセスするためにアバターサーバに接続された1つ以上のエンドユーザデバイスのリ
ストを管理することによってサービスグループを確立すること、アプリケーションサービ
スによって提供される複数の機能の少なくとも一部分をエミュレートすることによって、
アバターサーバを介して、ローカライズされたアプリケーションサービスを1つ以上のエ
ンドユーザデバイスに提供することであって、少なくとも部分的に、アバターサーバにお
ける1つ以上のエンドユーザデバイスのうちの少なくとも1つからのサービス要求をロー
カルで処理することを含む、ローカライズされたアプリケーションサービスをエンドユー
ザデバイスに提供すること、
アプリケーションサービス・サーバと非同期で通信してサービス要求を完了すること、
を備える。
ローカライズされたアプリケーションサービスを提供することは、サービスグループの
少なくとも第1のエンドユーザデバイスから、サービス要求をアバターサーバで受信する
ことであって、サービス要求は、サービスグループの第2のエンドユーザデバイスと関連
する、サービス要求をアバターサーバで受信すること、第1のエンドユーザデバイスに代
わって第2のエンドユーザデバイスにメッセージを通信することによって、サービス要求
を少なくとも部分的に処理することを含み得る。
メッセージを通信することは、バックホール・ネットワークチャネルが利用できないこ
と、またはアプリケーションサービス・サーバが到達不能であると判定したことに応答し
て実施され得る。
サービス要求を処理することは、サービス要求によって示されるか、サービス要求にお
いて参照されるか、またはサービス要求から導出されたメッセージを識別することを含み
得る。
アプリケーションサービス・サーバと非同期で通信することは、バックホール・ネット
ワークチャネルが利用可能であると判定することに応答して実施され得る。
ローカライズされたアプリケーションサービスを提供することは、1つ以上のエンドユ
ーザデバイスのうちの1つからメディアコンテンツのデータ変換要求を受信すること、ア
バターサーバに保存された処理モジュールのローカルバージョンを利用することによって
、アプリケーションサービス・アバターを利用してメディアコンテンツを変換することを
含み得る。
本発明に従った実施形態では、方法は、バックホール・ネットワークチャネルが利用可
能である場合に、アプリケーションサービス・サーバからの処理モジュールのローカルバ
ージョンへの更新を受信することをさらに備えることができる。
ローカライズされたアプリケーションサービスを提供することは、1つ以上のエンドユ
ーザデバイスのうちの要求デバイスからコンテンツ識別子を含むコンテンツ提供要求を受
信すること、コンテンツ識別子を用いてアバターサーバのローカルデータバンクにおいて
コンテンツを特定すること、ローカルデータバンクにおいてコンテンツを特定することに
応答して、コンテンツを要求デバイスに提供すること、を含み得る。
ローカライズされたアプリケーションサービスを提供することは、1つ以上のエンドユ
ーザデバイスのうちの要求デバイスからコンテンツ識別子を含むコンテンツ提供要求を受
信すること、コンテンツ識別子を用いてアバターサーバのローカルデータバンクにおいて
コンテンツを特定すること、バックホール・ネットワークチャネルが利用可能である場合
、コンテンツをローカルデータバンクにおいて特定できないことに応答して、アプリケー
ションサービス・サーバからコンテンツをフェッチして要求デバイスに配信すること、を
含み得る。
ローカライズされたアプリケーションサービスを提供することは、1つ以上のエンドユ
ーザデバイスのうちの要求デバイスからコンテンツ識別子を含むコンテンツ提供要求を受
信すること、コンテンツ識別子を用いてアバターサーバのローカルデータバンクにおいて
コンテンツを特定すること、バックホール・ネットワークチャネルが利用できない場合に
ローカルデータバンクにおいてコンテンツを特定できないことに応答して、コンテンツの
ためのコンテンツ要求をアプリケーションサービス・サーバにキューイングし、要求デバ
イスに配信すること、を含み得る。
ローカライズされたアプリケーションサービスを提供することは、1つ以上のエンドユ
ーザデバイスのうちの要求デバイスから公開可能なコンテンツを含むコンテンツ公開要求
を受信すること、公開可能なコンテンツをアプリケーションサービス・サーバに送信する
前に、サービスグループに利用可能な公開可能なコンテンツを作成することによってサー
ビスグループ内で公開可能なコンテンツを事前に公開すること、を含み得る。
本発明に従ったさらなる実施形態では、アバターサーバを動作させるためのコンピュー
タにより実行可能な複数の命令を記憶するコンピュータ可読記憶メモリは、アバターサー
バにアプリケーションサービス・アバターを実装するための命令であって、アバターサー
バは、バックホール・ネットワークチャネルを介してアプリケーションサービス・サーバ
への断続的なネットワークアクセスを少なくとも有し、アプリケーションサービス・サー
バは、複数のクライアントアプリケーションにアプリケーションサービスを提供する、ア
バターサーバにアプリケーションサービス・アバターを実装するための命令と、アプリケ
ーションサービスにアクセスするためにアバターサーバに接続された1つ以上のエンドユ
ーザデバイスのリストを管理することによってサービスグループを確立するための命令と
、サービスグループの少なくとも第1のエンドユーザデバイスからのサービス要求をアバ
ターサーバで受信するための命令であって、サービス要求は、サービスグループの第2の
エンドユーザデバイスに関連する、サービス要求をアバターサーバで受信するための命令
と、第1のエンドユーザデバイスに代わって第2のエンドユーザデバイスにメッセージを
通信することによって、少なくとも部分的に、サービス要求を処理するための命令と、を
備える。
本発明に従ったさらなる実施形態では、コンピュータ可読記憶メモリは、1つ以上のエ
ンドユーザデバイスに対して、アプリケーションサービスによって提供される複数の機能
の少なくとも一部分をエミュレートすることによって、アバターサーバを用いてローカラ
イズされたアプリケーションサービスを提供するための命令をさらに備えることができる
本発明に従ったさらなる実施形態では、コンピュータ可読記憶メモリは、バックホール
・ネットワークチャネルが利用可能である場合に、サービス要求をアプリケーションサー
ビス・サーバに非同期で通信するための命令をさらに備えることができる。
本発明に従ったさらなる実施形態では、コンピュータ可読記憶メモリは、アプリケーシ
ョンサービス・サーバに対して、1つ以上のエンドユーザデバイスのうちの1つに代わっ
てリモートプロシージャコールにおいて複数のパラメータを変換するクライアントアプリ
ケーション・スタブを呼び出すための命令をさらに備えることができる。
本発明に従ったさらなる実施形態では、コンピュータ可読記憶メモリは、1つ以上のエ
ンドユーザデバイスのデバイスプロファイルおよび1つ以上のエンドユーザデバイスに関
連付けられたユーザプロファイルを管理するための命令をさらに備えることができる。
本発明に従ったさらなる実施形態では、アバターサーバは、1つまたは複数のエンドユ
ーザデバイスのローカルセットに接続し、バックホール・ネットワークチャネルを介して
少なくとも断続的にアプリケーションサービスを提供するアプリケーションサービス・サ
ーバに接続するように構成された1つまたは複数のネットワークインタフェースと、バッ
クホール・ネットワークチャネルが利用可能である場合、アプリケーションサービス・サ
ーバと通信するアプリケーションサービス・アバターをホストするように構成されたプロ
セッサであって、アプリケーションサービス・アバターは、アバター・アプリケーション
プログラミングインタフェース(API)を提供し、アバター・アプリケーションプログ
ラミングインタフェースは、1つ以上のエンドユーザデバイスに対して、アプリケーショ
ンサービスによって提供される複数の機能の少なくとも一部分をエミュレートすることに
よって、アプリケーションサービス・アバターを介してローカライズされたアプリケーシ
ョンサービスを提供する、プロセッサと、1つ以上のエンドユーザデバイスのローカルセ
ットに対するコンテンツをキャッシュし、1つ以上のエンドユーザデバイスのプロファイ
ルを追跡するためのメモリと、を備える。
アバターサーバは、1つ以上のエンドユーザデバイスのネットワークアクセスまたはア
グリゲーション通信データを提供するネットワーク機器に実装され得る。
アバターサーバは、1つ以上のエンドユーザデバイスのネットワークアクセスを提供す
るネットワーク機器とは独立して実装され得る。
アバターサーバは、1つ以上のエンドユーザデバイスのうちの1つに実装され得る。
同様に請求され得る本発明に従ったさらなる実施形態では、1つまたは複数のコンピュ
ータ可読非一時的記憶媒体は、実行されたときに本発明または上記した実施形態のいずれ
かに従った方法で動作可能なソフトウェアを具体化する。
同様に請求され得る本発明に従ったさらなる実施形態では、システムは、1つまたは複
数のプロセッサと、該プロセッサに接続され且つ該プロセッサによって実行可能な命令を
含む少なくとも1つのメモリとを含み、該プロセッサは、命令を実行すると、本発明また
は上記した実施形態のいずれかに従った方法を実行するように動作可能である。
同様に請求され得る本発明に従ったさらなる実施形態では、コンピュータプログラム製
品は、好ましくは、コンピュータ可読非一時的記憶媒体を備え、データ処理システム上で
実行されると、本発明または上記した実施形態のいずれかに従った方法を実行するように
動作可能である。
様々な実施形態に従った地方ネットワーキングシステムのネットワークシステム環境を示すブロック図である。 様々な実施形態に従った地方ネットワーキングシステムの地方エッジにアプリケーションサービス・アバターを実装する潜在的な複数の位置を示すブロック図である。 様々な実施形態に従ったアプリケーションサービス・アバターを実装するために使用されるシステム環境の一例を示すブロック図である。 様々な実施形態に従ったアプリケーションサービス・アバターのアプリケーションプログラミングインタフェース(API)を示す機能ブロック図である。 様々な実施形態に従ったアプリケーションサービス・アバターとしてコンピューティングデバイスを動作させる方法を示すフローチャートである。 様々な実施形態による、本明細書に記載の1つまたは複数のコンピューティングデバイスまたはサーバを示すコンピューティングデバイスの一例のブロック図である。
図面は、例示のみを目的として本開示の様々な実施形態を示す。当業者であれば、本明
細書に記載された本発明の原理から逸脱することなく、本明細書に例示された構造および
方法の代替の実施形態を使用できることを容易に認識するであろう。
いくつかの実施形態は、広域ネットワーク(例えば、インターネット)、つまりアプリ
ケーションサービス・アバター(application service avatar)に対応する1つまたは複
数のアプリケーションサービス・サーバへの断続的な接続性を有するローカルネットワー
クアイランド(local network island)におけるアプリケーションサービス「アバター(
avatar)」を具体化することを含む。断続的な接続は、高いレイテンシおよび/または低
い帯域幅(例えば、タイムスライス帯域幅共有(time sliced bandwidth sharing))を
有し、頻繁に利用できないことがある。各アプリケーションサービス・アバターは、アプ
リケーションサービスと、アプリケーションサービスを提供する1つ以上のアプリケーシ
ョンサービス・サーバとに対応することができる。例えば、アプリケーションサービスは
、メッセージングサービス、ソーシャルネットワーキングサービス、写真共有サービス、
コンテンツ検索サービス、コラボレーションサービス、他の無料の基本サービス(free b
asic services : FBSs)、またはそれらの任意の組み合わせとすることができる。通常、
アプリケーションサービス・アバターの存在なしに、1つまたは複数のエンドユーザデバ
イスは、1つまたは複数のアプリケーションサービス・サーバからアプリケーションサー
ビスを直接要求することができる。例えば、エンドユーザデバイスは、1つまたは複数の
アプリケーションサービス・サーバのサーバ・サービス・アプリケーション・プログラミ
ング・インタフェイス(server service application programming interface : API)に
アクセスするように構成されたクライアントプログラムを実行することができる。例えば
、クライアントプログラムは、モバイルアプリケーション、デスクトップアプリケーショ
ン、ブラウザベースのアプリケーション、またはそれらの任意の組み合わせとして具体化
することができる。
アプリケーションサービス・アバターは、アバターサーバ上に実装することができる。
アバターサーバは、計算能力を有し、エンドユーザデバイスのローカルセット(loca
l set)のコンテンツをキャッシュし、エンドユーザデバイスのプロファイルを追跡
するメモリ容量を有し、エンドユーザデバイスのローカルセットへの連続的な接続性を有
し(一方で、ローカルセットの関係性は時間とともに変化する)、1つまたは複数のアプ
リケーションサービス・サーバへの少なくとも断続的な接続性を有する。アバターサーバ
は、(例えば、アバターサーバ上で動作する仮想マシンまたはアバターアプリケーション
プロセスとして)単一のアプリケーションサービス・アバターまたは複数のアプリケーシ
ョンサービス・アバターをホストするためのプラットフォームを提供することができる。
各アプリケーションサービス・アバターは、アプリケーションサービス・アバターの存
在なしに、1つまたは複数のアプリケーションサービス・サーバがエンドユーザデバイス
に通常提供する複数の機能の少なくとも一部分を記憶することができる。1つまたは複数
のアプリケーションサービス・サーバは、サービス機能をアプリケーションサービス・ア
バターに公開し、アプリケーションサービス・アバターへの断続的な接続性だけを有する
にもかかわらず、1つまたは複数のアプリケーションサービス・サーバによって提供され
るサービス機能の少なくとも一部分をエミュレート(emulate)できるようにする委譲(d
elegation)APIを提供することができる。例えば、このセットアップの下では、サー
ビスタスクは、例えばアプリケーションサービス・アバターによって局所的に部分的に完
了され、サービスタスクの完了は、断続的な接続が再び利用可能になるまで遅延させるこ
とができる。
アプリケーションサービス・アバターは、次に、アバターAPIを実装することができ
る。アバターAPIは、アプリケーションに、1つまたは複数のアプリケーションサービ
ス・サーバによって提供されるサービス機能の少なくとも一部分をプログラム的に公開し
、アプリケーションサービス・アバターに接続されたローカルネットワークアイランド内
のエンドユーザデバイス(例えば、携帯電話ハンドセットまたは他のコンピューティング
デバイス)のサービス要求に応答し、エンドユーザデバイスをターゲットとする1つ以上
のアプリケーションサービス・サーバからのコマンドを処理し、またはそれらの任意の組
み合わせを実行する。アバターAPIは、1つまたは複数のアプリケーションサービス・
サーバと非同期で通信することもできる(たとえば、1つまたは複数のアプリケーション
サービス・サーバでサービス要求をさらに処理するためにサービス要求を受信することと
は非同期)。アバターAPIによって提供されるこれらのサービス機能は、例えば、エン
ドユーザデバイスのローカルセットのプロファイルを識別すること、エンドユーザ要求が
受信されたが断続的な接続が利用できない場合の「ストアアンドフォワード(store and
forward)」機能、エンドユーザデバイスのローカルセットなどの、広域(「コア(core
)」)ネットワーク内の1つまたは複数のアプリケーションサービス・サーバまたは他の
ソースから)コンテンツをキャッシュすることを含む。
開示された実施形態は、1つまたは複数のアバターサーバが、「バックホール(backha
ul)」ネットワークとエンドユーザデバイスとの間のどこにでも実装されることを可能に
する。バックホール・ネットワークは、断続的に接続されるクライアントに代わってイン
ターネットに接続されたサーバと情報を交換するように構成されたネットワーク(例えば
、イントラネットまたはインターネット)の一部である。例えば、アバターサーバは、ロ
ーカルネットワークアクセスポイントまたはアグリゲーションネットワーク機器(aggreg
ation network appliance)に結合された独立したサーバとすることができる。あるいは
、アバターサーバは、ローカルネットワークアクセスポイント、アグリゲーションネット
ワーク機器、またはエンドユーザデバイスと統合され得る。アバターサーバは、エンドユ
ーザデバイス上のアプリケーション・ポータルとアプリケーションサービス・サーバとの
間で相互通信することができ、または遅延対話を促進することができる。
アプリケーションサービス・アバターは、ローカル地理的領域(local geographical r
egion)内のエンドユーザデバイスにサービスを提供することができる。アプリケーショ
ンサービス・アバターは、断続的なネットワーク中断があっても、(アプリケーションサ
ービス・サーバのサービス機能の一部分またはすべてであり得る)継続的なサービスを提
供することができる。
アプリケーションサービス・アバターは、少なくとも別の「ネットワークアイランド(
network island)」(例えば、少なくとも断続的にネットワークおよび/またはコアネッ
トワーク(例えば、インターネット)に接続された1組のコンピューティングデバイス)
への断続的または継続的なネットワークアクセスを有する。例えば、断続的なネットワー
ク接続は、衛星(例えば、低軌道衛星または静止軌道衛星)、無人航空機または他の航空
機、列車、船舶または他の水系の船舶、他の断続的に接続された通信リレー、またはそれ
らの任意の組み合わせを含むことができる。ネットワークアイランドは、一緒に「メッシ
ュ(mesh)」ネットワークを形成することができる。メッシュ・ネットワークは、各メッ
シュ・ノード(例えば、ネットワークデバイス)がネットワークのデータを中継し、すべ
てのノードがネットワーク内のデータの分散において協力するネットワークトポロジであ
る。
いくつかの実施形態では、1つまたは複数のアプリケーションサービス・アバターは、
ネットワークアイランド内のユーザに、ニュースフィード、メッセージング、メディアブ
ラウジングなどを含む基本的なソーシャルネットワーク機能を提供することができる。ア
プリケーションサービス・アバターは、バックホール・ネットワークチャネルが利用でき
なくなったときに、ネットワークアイランド内の1つまたは複数のデバイスからの下り通
信(outgoing communications)(例えば、コンテンツ、メッセージ、データ要求など)
をバッファし、バックホール・ネットワークチャネルが利用可能になったときに、これら
を送信することができる。アプリケーションサービス・アバターは、バックホール・ネッ
トワークチャネルがアクティブなときに例えば、ネットワークアイランドの外部のコンピ
ューティングデバイスからの上り通信(例えば、ウェブページ、上りメッセージ、メディ
アコンテンツ、テキスト、スクリプト、または実行可能ファイル)を受信してキャッシュ
し、バックホール・ネットワークチャネル、つまり断続的なネットワークアクセスが利用
できないとき、ネットワークアイランド内のデバイスがリソースにアクセスすることがで
きる。例えば、アプリケーションサービス・アバターは、最近要求されたリソース、通常
要求されたリソース、およびネットワークアイランド内のユーザのプリファレンスプロフ
ァイル(preference profiles)に一致するリソースをキャッシュすることができる。ア
プリケーションサービス・アバターは、そのユーザのアイデンティティをアプリケーショ
ンサービス・サーバに提供することができる。例えば、ソーシャルネットワーキングシス
テムのアプリケーションサービス・サーバは、ローカルネットワークアイランド内のユー
ザのプロファイルを生成して格納し、キャッシングのためにアプリケーションサービス・
アバターにどのプロファイル特有のリソース(profile-specific resources)を「プッシ
ュ(push)」するかを予測することができる。プッシュは、宛先クライアント(destinat
ion client)(例えば、アプリケーションサービス・アバター)に対するデータ送信要求
がサーバ(例えば、アプリケーションサービス・サーバ)によって開始されるデータ転送
通信を含む。一例として、アプリケーションサービス・サーバは、プロファイル特有のリ
ソース、通常、アクセス可能な公的に利用可能なデータ、または実際には他の任意のタイ
プの適切なデータをプッシュすることができる。
プロファイル特有のリソースは、ネットワークアイランド内でアクティブであるユーザ
プロファイルに関連するデータ(例えば、個人データ)を含むことができる。ユーザプロ
ファイルのプロファイル特有リソースは、関連するユーザプロファイル(affiliated use
r profiles)に関連付けられたデータも含むことができる。例えば、関連するソーシャル
ネットワークノードは、プロファイルのプリファレンス、属性、動作、またはユーザプロ
ファイルのアクティビティに基づいて識別され得る。地理的近接度(例えば、同じ都市ま
たは閾値距離半径内)、(例えば、ソーシャルネットワーキングシステムのソーシャルグ
ラフにおける閾値の分離度内のユーザプロファイルに社会的に結合されている)社会的近
接度、または、(例えば、同じネットワークアイランド内の)ネットワーク近接性を含む
ことができる。
いくつかの実施形態は、有利には、アプリケーションサービス・アバターを利用して地
方にコンテンツアクセスおよびアプリケーションサービス機能を提供する。アプリケーシ
ョンサービス・アバターは、(例えば、複数のネットワーク構成要素のタイムスライス/
帯域幅共有(time slicing/bandwidth sharing)のために)断続的な接続性および高いレ
イテンシを有するバックホールチャネルから生じる帯域幅制限に技術的解決策を提供する
。アプリケーションサービス・アバターは、バックホールチャネルの断続的な接続性にも
かかわらず、アプリケーションサービス機能の少なくとも一部分をエンドユーザに配信す
ることを可能にする。アプリケーションサービス・アバターのアーキテクチャはまた、ネ
ットワーク内の近くにサーバーロジックを複数のエンドユーザデバイスを移動させること
によって、バックホールチャネルが存在しない場合でもネットワーク速度を向上させる。
アプリケーションサービス・アバターは、さらに、完全なピアツーピアアーキテクチャ(
peer-to-peer architecture)に変換することなく、従来のクライアントサーバ・アーキ
テクチャにおけるピアツーピアリンクを可能にする。いくつかのアプリケーションサービ
スは、地方のコミュニケーションのための基本的な手段と、人々の生活に関係する基本的
な情報の更新を提供する。したがって、断続的なバックホール接続しか存在しないにもか
かわらず、継続的なアプリケーションサービスを可能にすることは非常に有用であり得る
図1は、様々な実施形態に従った地方ネットワーキングシステム(rural networking s
ystem)100のネットワークシステム環境を示すブロック図である。地方ネットワーキ
ングシステム100は、ネットワークアイランド(例えば、ネットワークアイランド10
2)の集合を含む。各ネットワークアイランドは、ネットワーク機器104(例えば、ネ
ットワークデバイス)によって確立され得る。ネットワーク機器104は、タワー、ボッ
クス、ルータ、アクセスポイント、またはネットワーク接続を提供するための他の電子ハ
ードウェアとすることができる。いくつかの実施形態では、ネットワーク機器104に接
続された1つまたは複数のデバイスは、さらなるサブネットワークを確立することができ
、これらのサブネットワークに接続されたデバイスは、さらに低レベルのネットワークな
どを確立することができる。
例えば、ネットワーク機器104は、エンドユーザデバイス106のためのネットワー
ク接続を提供することができる。エンドユーザデバイス106は、コンピューティングデ
バイスである。例えば、エンドユーザデバイス106は、パーソナルコンピュータ、携帯
電話、タブレット、ウェアラブルデバイス、IoT(Internet of Things)デバイス、ま
たは他の任意のモバイルデバイスまたは固定デバイスを含むことができる。複数のエンド
ユーザデバイス106間のネットワーク接続は、無線プロトコル、例えばLTE(long-t
erm evolution)、3G、2G、Wi−Fi、Wi−Fi Direct、WiMAX、
ブルートゥース、ブルートゥースLE、または任意のそれらの組み合わせを用いて確立さ
れ得る。ネットワーク接続は、有線プロトコル、例えば、ユニバーサルシリアルバス(U
SB)またはイーサネット(登録商標)に基づくこともできる。ネットワーク接続のネッ
トワークアーキテクチャは、メッシュ・ネットワークまたはスター・ネットワークに基づ
くことができる。
いくつかの実施形態では、ネットワークデバイスのそれぞれは、コアネットワーク10
8、例えばインターネットまたは他の地域ネットワークに直接的または間接的に接続され
得る。例えば、ネットワーク機器104は、バックホール・ネットワークチャネル110
を介してコアネットワーク108に接続され得る。バックホール・ネットワークチャネル
110は、そのエンドポイント間の接続を非連続的に提供する伝送媒体である。すなわち
、バックホール・ネットワークチャネル110は、定期的にまたは散発的に機能すること
を停止し得る。バックホール・ネットワークチャネル110の例には、列車、無人機、衛
星、船、またはそれらの任意の組み合わせによって実現されるネットワークが含まれる。
いくつかの実施形態では、ネットワーク機器104は、ネットワークアイランド102
内の複数のエンドユーザデバイス106間の連続的な接続(continuous connectivity)
と、エンドユーザデバイス106とコアネットワーク108との間の非連続的な接続(no
n-continuous connectivity)を提供することができる。ネットワーク機器104は、他
のネットワークアイランドにも接続され得る。例えば、ネットワーク機器104は、別の
断続的なネットワークチャネルを介して別の基地局、つまり、他の基地局に接続された別
のネットワークアイランド内の他のコンピューティングデバイスに接続されてもよい。
バックホール・ネットワークチャネル110によって課せられる制限のために、ネット
ワークアイランド102は、コアネットワーク108に接続された外部システムと常にリ
アルタイムで通信することはできない。したがって、地方ネットワーキングシステム10
0は、アプリケーションサービス・サーバ114(例えば、ソーシャルネットワーキング
システム、クラウドアプリケーション、またはモバイルアプリケーションサーバのアプリ
ケーションサーバ)に対応するアプリケーションサービス・アバター112を介して非同
期アプリケーションサービスを支援するメカニズムを提供する。アプリケーションサービ
ス・アバター112は、バックホール・ネットワークチャネル110とエンドユーザデバ
イス106との間(例えば、その間で包括的に)に具体化され、ネットワークアイランド
102を確立することができる。すなわち、アプリケーションサービス・アバター112
は、地方ネットワーキングシステム100の地方エッジ(rural edge)で具体化され得る
いくつかの実施形態では、バックホール・ネットワークチャネル110は、ネットワー
ク機器のチェーン(例えば、アグリゲーションサーバ、基地局、スイッチ、ルータ、また
は他のネットワーク対応コンピューティングデバイス)を介してエンドユーザデバイス1
06に接続され得る。(例えば、ネットワーク距離の点で)エンドユーザデバイス106
に最も近いのは、モバイルコア116、例えば進化したパケットコア(evolved packet c
ore : EPC)とすることができる。EPCは、セルラーネットワーク、例えば、LTE(l
ong-term evolution)ネットワークを介してユーザと接続するための統合された音声(co
nverged voice)およびデータネットワーキングフレームワークを提供する。
モバイルコア116は、インターネットサービスプロバイダ(Internet service provi
der : ISP)のエッジPOP(edge point of presence)118に接続され得る。IPエ
ッジPOP118は、複数の通信エンティティ間のインタフェースポイントである。例え
ば、ISPのエッジPOP118は、モバイルコア116とアプリケーションサービス・
サーバ114との間、またはモバイルコア116とコンテンツ配信ネットワーク(conten
t delivery network : CDN)120との間でデータ通信するためのインタフェースを提供
し得る。CDNは、ユーザの地理的位置に基づいてウェブページおよび他のウェブコンテ
ンツをユーザに配信する。CDN120は、アプリケーションサービスまたはアプリケー
ションサービスのグループ(例えば、ソーシャルネットワーキングシステムの複数のアプ
リケーションサービス)に固有のものであってもよい。CDN120は、アプリケーショ
ンサービスまたは複数のアプリケーションサービスのグループの静的コンテンツ(static
content)を格納することができる。対照的に、アプリケーションサービス・サーバ11
4は、エンドユーザデバイス106からのサービス要求に応答して、CDN120によっ
て提供される静的コンテンツへのリンクを生成することを含む動的コンテンツを生成する
ことができる。CDN120が、サービス要求が目的とするアプリケーションサービスに
関連する静的コンテンツをまだキャッシュしていない場合、CDN120は、アプリケー
ションサービスのデータセンター122にアクセスすることができる。いくつかの実施形
態では、CDN120に格納されたコンテンツは、不正アクセスを防止するために暗号化
または符号化される。
アプリケーションサービス・アバター112は、アプリケーションサービス・サーバ1
14によって提供されるアプリケーションサービスに対応することができる。例えば、ア
プリケーションサービスは、メッセージングサービス、ソーシャルネットワーキングサー
ビス、写真共有サービス、コンテンツ検索サービス、コラボレーションサービス、その他
の無料基本サービス、またはそれらの任意の組み合わせを含む。通常、アプリケーション
サービス・アバターの存在なしに、1つ以上のエンドユーザデバイスは、アプリケーショ
ンサービス・サーバからアプリケーションサービスを直接要求することができる。例えば
、エンドユーザデバイスは、アプリケーションサービス・サーバ114のアプリケーショ
ンサービスAPI 124にアクセスするように構成されたクライアントプログラムを実
行することができる。例えば、クライアントプログラムは、1つ以上のモバイルアプリケ
ーション、デスクトップアプリケーション、(例えば、JavaScript(登録商標
)ベース、フラッシュベースなどの)ブラウザベースアプリケーション、またはそれらの
任意の組み合わせであってもよい。
アプリケーションサービス・アバター112は、アバターサーバ126上で動作する仮
想マシンまたはアプリケーションスレッドとして具体化され得る。アプリケーションサー
ビス・アバター112は、アバターサーバ126のメモリスペース128にアクセス(例
えば、読み書き)することができる。いくつかの実施形態では、メモリスペース128は
、アプリケーションサービス・サーバ114の認証されたエージェントによってのみアク
セス可能な暗号鍵で部分的または全体的に暗号化される。アバターサーバ126は、計算
能力を有し、エンドユーザデバイス(例えば、エンドユーザデバイス106)のローカル
セットのコンテンツをキャッシュし、エンドユーザデバイスのプロファイルを追跡するた
めのメモリ容量を有し、(ローカルセットの関係性は時間とともに変化するかもしれない
が)エンドユーザデバイスのローカルセットへの連続的な接続を有し、アプリケーション
サービス・サーバ114への断続的な接続(例えば、バックホール・ネットワークチャネ
ル110)を有する。アバターサーバ126は、アプリケーションサービス・アバター1
12(すなわち、単一のインスタンス)またはアプリケーションサービス・アバター11
2を含む複数のアプリケーションサービス・アバター(複数のインスタンス)をホストす
るためにプラットフォームを提供する。
アプリケーションサービス・アバター112は、アプリケーションサービス・アバター
112の存在なしに、アプリケーションサービス・サーバ114が通常、複数のエンドユ
ーザデバイス(例えば、複数のエンドユーザデバイス106)に提供する複数の機能の少
なくとも一部を保存することができる。アプリケーションサービス・サーバ114は、サ
ービス機能をアプリケーションサービス・アバター112に公開し、アプリケーションサ
ービス・アバター112に、アプリケーションサービス・サーバ114に提供されるサー
ビス機能の少なくとも一部をエミュレートさせる委譲API 130を提供することがで
きる。例えば、この設定の下では、サービス要求に対応するサービスタスクの完了が遅れ
ることがある。
サービスタスクは、例えば、コンテンツプロビジョニングタスク(content provisioni
ng task)(例えば、検索エンジンのタスク、メディアライブラリ、デジタルイエローブ
ック(digital yellow book)、ニュースフィード、デジタル辞書または百科事典、デジ
タルマップ、ニュースフィード、またはそれらの任意の組み合わせ)であり、コンテンツ
仕様または嗜好に従ってコンテンツを提供することができる。アプリケーションサービス
・アバター112は、メモリスペース128においてコンテンツインデックスを事前キャ
ッシングすることによって、コンテンツプロビジョニングタスクをエミュレートすること
ができる。アプリケーションサービス・アバター112は、コンテンツインデックスに基
づいて要求ユーザの要求されたコンテンツを見つける(locate)ことができる。アプリケ
ーションサービス・アバター112は、アプリケーションサービス・サーバ114への断
続的な接続性(例えば、バックホール・ネットワークチャネル110の)が利用可能であ
るときに、コンテンツインデックスを更新することができる。アプリケーションサービス
・アバター112は、ローカルデータバンク(例えば、メモリスペース128内)に以前
に要求されたコンテンツをキャッシュすることができる。いくつかの実施形態では、アプ
リケーションサービス・サーバ114は、(例えば、ローカルネットワークアイランドに
関連付けられたユーザプロファイルに基づいて)コンテンツをローカルデータバンクに予
測的にプッシュする。いくつかの実施形態では、アプリケーションサービス・アバター1
12は、(アプリケーションサービス・サーバ114を含む)コアネットワーク108か
ら要求される可能性のあるコンテンツをプリフェッチ(pre−fetch)(すなわち
、読み出し)して、ユーザの要求に先立ってローカルデータバンクにコンテンツを記憶す
る。プリフェッチは、ローカルネットワークアイランドに関連付けられたユーザプロファ
イルに基づいて、要求される可能性のあるコンテンツを予測し、バックホール・ネットワ
ークチャネル110、つまり、断続的な接続が利用可能であるときにコンテンツをフェッ
チすることによって行うことができる。アプリケーションサービス・アバター112は、
どの情報/コンテンツがローカルデータバンクにキャッシュされているかに基づいてコン
テンツインデックスを更新することができる。要求されたコンテンツを見つけるとき、ア
プリケーションサービス・アバター112は、コンテンツインデックスに従ってローカル
データバンクから要求されたコンテンツを最初に見つけようとすることができる。要求さ
れたコンテンツがローカルデータバンクで利用できない場合、アプリケーションサービス
・アバター112は、コアネットワーク108内のコンテンツのネットワークロケーショ
ンを識別することができる。バックホール・ネットワークチャネル110が利用できない
場合、アプリケーションサービス・アバター112は、フェッチ・キュー(fetch queue
)に格納するためにフェッチ要求を生成する。アプリケーションサービス・アバター11
2が、バックホール・ネットワークチャネル110が利用可能であることを検出すると、
アプリケーションサービス・アバター112は、フェッチ・キューにおいて識別されたコ
ンテンツのフェッチを開始し、フェッチされたコンテンツをローカルデータバンクに格納
する。いくつかの実施形態では、コンテンツがフェッチされると、アプリケーションサー
ビス・アバター112は、コンテンツを要求側ユーザのエンドユーザデバイスに転送する
か、またはコンテンツがローカルデータバンクからの検索に利用可能であることをエンド
ユーザデバイスに通知する。
サービスタスクは、例えば、コンテンツルーティングタスク(例えば、メッセージング
アプリケーション、掲示板、ソーシャルネットワーキングアプリケーション、イベント管
理アプリケーション、コラボレーションアプリケーション、またはこれらの任意の組み合
わせのタスク)であってもよく、ユーザからユーザへのメッセージまたはデバイスからデ
バイスへのメッセージをルーティングする。コンテンツルーティング要求を受信すると、
アプリケーションサービス・アバター112は、メッセージの宛先と、宛先に関連付けら
れた宛先プロファイル(例えば、ユーザプロファイル、グループプロファイル、ページプ
ロファイル、掲示板プロファイル)を識別する。アプリケーションサービス・アバター1
12は、メモリスペース128内のローカルエンティティのプロファイルのリストを管理
する(maintain)ことができる。プロファイルの各々は、固有の識別、ネットワークアイ
ランド102への接続の頻度、現在の位置、コンテンツプリファレンス、またはそれらの
組み合わせを含む。宛先プロファイルがプロファイルリスト内で見つかると、アプリケー
ションサービス・アバター112は、直ちに宛先プロファイルに関連付けられたエンドユ
ーザデバイスにメッセージを配信することができる。宛先プロファイルがプロファイルの
リスト内で見つからない場合、アプリケーションサービス・アバター112は、バックホ
ール・ネットワークチャネル(例えば、バックホール・ネットワークチャネル110)が
利用可能であるかどうかを判定することができる。利用可能な場合、アプリケーションサ
ービス・アバター112は、アプリケーションサービス・サーバ114にメッセージを送
信して、その宛先にルーティングすることができる。利用できない場合、アプリケーショ
ンサービス・アバター112は、メッセージを発信キュー(outgoing queue)にキューイ
ングし(queue)、メッセージをアプリケーションサービス・サーバ114に送信するた
めにバックホール・ネットワークチャネルが利用可能になるまで待機することができる。
サービスタスクは、例えば、コンテンツ公開タスク(例えば、ステータスを更新し、ブ
ログを公開し、ローカル広告を公表し、イベントを発表し、オークションを発表し、販売
のためにアイテムまたはサービスを発表し、またはそれらの任意の組み合わせのタスク)
であり、共有可能なパブリックドメインにコンテンツをプッシュする。アプリケーション
サービス・アバター112は、コンテンツ公開要求を受信したことに応答して、ローカル
データバンクに公開コンテンツを格納し、公開すべきコンテンツ(例えば、ニュースフィ
ードの作成)を公開するためにアプリケーションサービス・サーバ114に転送すること
ができる。バックホール・ネットワークチャネル110が利用できない場合、バックホー
ル・ネットワークチャネル110が再び利用可能になると、コンテンツは、転送のために
キューイングされる。いくつかの実施形態では、アプリケーションサービス・アバター1
12は、公開プラットフォーム(publishing platform)のローカルバージョン(例えば
、ニュースレター、ブログ、オークションサイト、プロフィールページ、発表ページ、イ
ベントサイト、Wiki、またはそれらの任意の組み合わせなど)に公開されるべきコン
テンツをローカルで事前に公開する(pre-publish)ことができる。公開プラットフォー
ムのローカルバージョンは、バックホール・ネットワークチャネル110からコアネット
ワーク108へのアクセスができない場合であっても利用可能である。アプリケーション
サービス・アバター112は、バックホール・ネットワークチャネル110が利用可能に
なったときにアプリケーションサービス・サーバ114を介してローカルバージョン(lo
cal version)をグローバルバージョン(global version)と同期させることができる。
いくつかの実施形態では、アプリケーションサービス・アバター112は、アプリケー
ションサービス・サーバ114と通信する時間(例えば、同期の実行、メッセージの送信
、タスク要求の転送など)を決定して選択することができる。例えば、選択された時間は
、バックホール・ネットワークチャネル110のリアルタイム帯域幅利用可能性、バック
ホール・ネットワークチャネル110の輻輳レベル、バックホール・ネットワークチャネ
ル110の使用に関連する費用、通信に関連するアプリケーション要件、またはそれらの
任意の組み合わせに基づいた最適な時間であり得る。
アプリケーションサービス・アバター112は、次に、アバターAPI 132を実装
することができる。アバターAPI 132は、アプリケーションサービス・アバター1
12に接続されたネットワークアイランド102のエンドユーザのサービス要求に応答し
て、1つまたは複数のアプリケーションサービス・サーバによって提供されるサービス機
能の少なくとも一部を公開し、エンドユーザデバイス106をターゲットとするアプリケ
ーションサービス・サーバ114からのコマンドを処理するか、またはそれらの任意の組
み合わせである。アバターAPI 132は、アプリケーションサービス・サーバ114
と非同期で通信して(例えば、アプリケーションサービス・サーバ114でサービス要求
をさらに処理するために)サービス要求を送信したり、コンテンツまたはコマンドを受信
したりすることもできる。アバターAPI 132によって提供されるこれらのサービス
機能は、エンドユーザデバイス106のローカルセットのプロファイルの識別、エンドユ
ーザ要求が受信されたがバックホール・ネットワークチャネル110が利用できない場合
の「ストアアンドフォワード(store and forward)」機能、エンドユーザデバイス10
6のローカルセットの(例えば、アプリケーションサービス・サーバ114またはコアネ
ットワーク108内の他のソースからの)コンテンツのキャッシュなどを含む。
アプリケーションサービス・アバター112は、エンドユーザデバイスがバックホール
・ネットワークチャネル110を介してアプリケーションサービス・サーバ114に接続
されているにもかかわらず、リモートエリアのエンドユーザデバイスに連続アプリケーシ
ョンサービスを提供する機会を付与する。アプリケーションサービス・アバター112は
、エンドユーザデバイスに向いているバックホール・ネットワークチャネル110の側の
ネットワークアクセスエッジ(network access edge)からコンテンツおよびサービスを
提供することができる。アプリケーションサービス・アバター112は、エンドユーザデ
バイス106に配信することができるコンテンツを事前にキャッシュすることによって、
または複数のエンドユーザデバイス106の間でメッセージを配信することにより、オフ
ラインおよびローカルエクスペリエンス(local experiences)を提供することができる
図2は、地方ネットワーキングシステム200(例えば、図1の地方ネットワーキング
システム100)の地方エッジ201にアプリケーションサービス・アバター202(例
えば、図1のアプリケーションサービス・アバター112)を具体化する潜在的な複数の
位置を示すブロック図である。図1の地方エッジ(rural edge)201は、バックホール
・ネットワーク206を介してコアネットワーク204に接続される。コアネットワーク
204は、複数の相互接続されたコンピューティングデバイスおよびコンピュータサーバ
を含む。例えば、コアネットワーク204は、アプリケーションデータセンター208(
例えば、図1のデータセンター122)およびISP POP206(図1のISPエッ
ジPOP118)を含むことができる。
アプリケーションサービス・アバター202は、地方エッジ201の様々なデバイス上
に実装され得る。アプリケーションサービス・アバター202がバックホール・ネットワ
ーク206に近づくにつれて、より多くのユーザが、アプリケーションサービス・アバタ
ー202から利益を得ることができ、よりサービス機能性が利用され得る。アプリケーシ
ョンサービス・アバターがエンドユーザデバイスに向かって近づくほど、サービス要求に
対する応答時間がより速くなる。例えば、アプリケーションサービス・アバター202は
、アグリゲーションネットワーク212またはアクセスネットワーク214に実装され得
る。アグリゲーションネットワーク212は、アグリゲーションネットワーク機器216
、例えば、無線ネットワークコントローラ(radio network controller : RNC)、基地局
コントローラ(BSC)、またはマイクロ波コントローラとすることができる。アクセス
ネットワーク214は、アクセスネットワーク機器218、例えば、3G基地局、Wi−
Fiアクセスポイント、またはルータによって確立され得る。アプリケーションサービス
・アバター202は、アグリゲーションネットワーク機器216によって、またはアクセ
スネットワーク機器218によって実装されてもよい。代わりに、アプリケーションサー
ビス・アバター202は、アグリゲーションネットワーク機器216、アクセスネットワ
ーク機器218、またはバックホール・ネットワーク206に関連するネットワーク機器
のいずれかとのネットワーク通信におけるアバターサーバ(例えば、図1のアバターサー
バ126)に実装され得る。
いくつかの実施形態では、アプリケーションサービス・アバター202は、複数のエン
ドユーザデバイスのうちの1つ、例えばエンドユーザデバイス222に実装され得る。い
くつかの実施形態では、アプリケーションサービス・アバター202のインスタンス(in
stance)が実装され、各エンドユーザデバイス上でアクティブとなる。いくつかの実施形
態では、アプリケーションサービス・アバター202のインスタンスは、各エンドユーザ
デバイス上に実装されるが、これらのインスタンスの一部分のみがアクティブとなる。例
えば、アプリケーションサービス・アバター202に関連するアプリケーションサービス
・サーバ(例えば、図1のアプリケーションサービス・サーバ114)は、アプリケーシ
ョンサービス・アバター202のアクティブインスタンスをホストするエンドユーザデバ
イスのうちの少なくとも1つを選択することができる。アプリケーションサービス・サー
バは、その能力(例えば、ネットワークインタフェースおよびプロトコルの可用性)、仕
様(例えば、プロセッサタイプまたは最大メモリスペース)、リソース容量(例えば、利
用可能なバッテリ電力、利用可能なメモリスペース、利用可能な帯域幅、または利用可能
な処理能力)、および/または他のエンドユーザデバイスと比較した接続性(例えば、特
定の数の他のエンドユーザデバイスと通信することができる)に基づいてエンドユーザデ
バイスを選択することができる。別例では、アプリケーションサービス・アバター202
のアクティブインスタンスは、他のエンドユーザの能力、仕様、リソース容量、および/
または接続性に基づいて、他のエンドユーザデバイス内のアプリケーションサービス・ア
バター202の休止インスタンス(dormant instance)をアクティブにすることができる
。例えば、このアクティブ化プロセスは、アプリケーションサービス・アバター202の
役割を1つのエンドユーザデバイスから別のエンドユーザデバイスにハンドオーバするプ
ロセスとすることができる。これにより、アプリケーションサービス・アバター202の
実装を動的にすることができる。いくつかの実施形態では、これらのインスタンスの選択
的なアクティブ化(activation)は、アプリケーションサービス・サーバによって制御さ
れてもよい。アプリケーションサービス・アバター202がエンドユーザデバイス内に実
装されるいくつかの実施形態では、アプリケーションサービス・アバター202のインス
タンスは、エンドユーザではなく、アプリケーションサービス・サーバによって制御およ
び構成され、アプリケーションサービス・アバター202によって管理されるデータのプ
ライバシーを保護する。これにより、例えば、暗号鍵による暗号認証を含むセキュリティ
機構を用いて達成することができる。
図3は、様々な実施形態に従って、アプリケーションサービス・アバター(例えば、図
1のアプリケーションサービス・アバター112)を実装するために使用され得るシステ
ム環境の例を示すブロック図である。いくつかの実施形態では、アプリケーションサービ
ス・アバターは、アバターサーバ302に実装される。アバターサーバ302は、1つま
たは複数のアプリケーションサービス・サーバ(例えば、アプリケーションサービス・サ
ーバ304Aおよびアプリケーションサービス・サーバ304B、総称して「アプリケー
ションサービス・サーバ304」)に少なくとも断続的に接続される。アバターサーバ3
02は、1つまたは複数のエンドユーザデバイス306の動的セット(dynamic set)を
含むローカルネットワークに連続的に接続される。
アバターサーバ302は、そのオペレーティングシステム307上でアバターエンジン
308を実行することができる。アバターエンジン308は、1つ以上のアバタープロセ
スをアバターサーバ302上で実行することを可能にする。いくつかの実施形態において
、各アバタープロセスは、異なるアプリケーションサービスに対応する単一のアプリケー
ションサービス・アバターを含む。いくつかの実施形態では、複数のアバタープロセスは
、ハードウェアの異なるセットでそれぞれ実装され得る。例えば、複数のアバタープロセ
スは、複数のサーバブレード(server blades)(例えば、アプリケーションブレード3
10Aおよびアプリケーションブレード310B、総称して「アプリケーション・サーバ
ブレード310」)上にそれぞれ実装され得る。アプリケーション・サーバブレード31
0の各々は、独立した複数のプロセッサ、独立したオペレーティングメモリ、独立した永
続データストレージ(persistent data storage)、またはそれらの任意の組み合わせを
有することができる。アプリケーション・サーバブレード310は、ネットワークインタ
フェース、電源、永続データストレージ、またはそれらの任意の組み合わせを共有するこ
とができる。
いくつかの実施形態では、アバターサーバ302は、コンピュータ仮想化のためのハイ
パーバイザ312を実装することができる。ハイパーバイザ312は、1つまたは複数の
仮想アバターサーバ(例えば、仮想サーバ314Aおよび仮想サーバ314B、総称して
「仮想アバターサーバ314」)を実装することができる。各仮想アバターサーバ314
は、単一のアプリケーションサービス・アバターまたは複数のアプリケーションサービス
・アバターを実装することができる。いくつかの実施形態では、ハイパーバイザ312上
、アプリケーション・サーバブレード上、および/またはオペレーティングシステム30
7上で動作する1つまたは複数のアプリケーションサービス・アバターは、ネットワーク
環境において互いに通信し、且つ他のアプリケーションサービス・アバターと通信するこ
とができる。
いくつかの実施形態では、アバターサーバ302は、アバターデータベース316を実
装することができる。アバターデータベース316は、オペレーティングシステム307
、複数のアプリケーション・サーバブレード310のうちの1つ以上、または1つ以上の
仮想アバターサーバにおいて実装され得る。アバターデータベース316は、キャッシュ
されたコンテンツ、キャッシュされたコンテンツのインデックス、エンドユーザデバイス
306のデバイスプロファイル、エンドユーザデバイス306に関連付けられたユーザプ
ロファイル、アプリケーションサービス・サーバ304または断続的なバックホール・ネ
ットワークチャネルが利用できないことによって遅延される他のデバイスへのメッセージ
のためのメッセージキュー、またはそれらの任意の組み合わせを含むことができる。
図4は、様々な実施形態に従ったアプリケーションサービス・アバターのアバター・ア
プリケーションプログラミングインタフェース(API)400を示す機能ブロック図で
ある。アバターAPI 400は、図1のアバターAPI 132であってもよい。アプ
リケーションサービス・アバターは、図1のアプリケーションサービス・アバター112
または図2のアプリケーションサービス・アバター202であってもよい。アバターAP
I 400は、アプリケーション層402、接続層404、ルーティング層406、シス
テム層408、またはそれらの任意の組み合わせを含む。
アプリケーション層402は、アプリケーションサービス・アバターに対応するアプリ
ケーションサービス・サーバ(例えば、図1のアプリケーションサービス・サーバ114
)に送信するための1つ以上のメッセージをキューイングするように構成される。例えば
、アプリケーション層402は、サービス品質(quality of service : QoS)メカニズム
を使用してこれを達成することができる。QoSメカニズムは、コンピュータネットワー
クのメッセージングトラフィックを促進するためのリソース予約制御メカニズムである。
例えば、リソース予約制御メカニズムは、ASAP(as-soon-as-possible)キュー、「
Expire−After」キュー、優先順位に基づくキュー、またはそれらの任意の組
み合わせを具体化することができる。
アプリケーション層402は、キューからアプリケーションサービス・サーバにメッセ
ージを送信することが可能であるかどうかを判断することができる。メッセージを送信す
ることが可能な場合、アプリケーション層402は、クライアントアプリケーション・ス
タブを管理および/または呼び出す(invoke)ことができる。クライアントアプリケーシ
ョン・スタブは、リモートプロシージャコール(remote procedure call : RPC)におい
て転送されたパラメータを変換するために使用される実行可能命令によって具体化される
。RPCは、クライアントコンピュータ(例えば、アプリケーションサービス・アバター
)がサーバコンピュータ(例えば、アプリケーションサービス・サーバ)上のプロシージ
ャ(例えば、実行可能なオブジェクト、関数またはプロセス)をリモートで呼び出すこと
を可能にする。関数呼び出しで使用されるパラメータは、クライアントコンピュータおよ
びサーバコンピュータが異なるアドレス空間を使用するため、変換する必要がある。クラ
イアントアプリケーション・スタブはコンバージェンス(convergence)を実行し、リモ
ートサーバーコンピュータがRPCをローカル関数呼び出しとして受け取る。
接続層404は、アプリケーションサービス・アバターをホストするアバターサーバ(
例えば、図2に記載された複数のデバイスのいずれかのアバターサーバ)に利用可能な1
つ以上のネットワークインタフェースを監視する。接続層404は、アバターサーバが1
つまたは複数のローカルエンドユーザデバイス(例えば、図1のエンドユーザデバイス1
06)に接続されているかどうか、および/またはアバターサーバがアプリケーションサ
ービス・サーバに接続されているかどうかを判定することができる。接続層404は、デ
バイスプロファイル(例えば、ソフトウェアおよびハードウェア能力、リソース容量、仕
様、接続可否、アイデンティティ、またはそれらの任意の組み合わせ)および/またはユ
ーザプロファイル(例えば、ソーシャルネットワーク、ロケーションベースのプロファイ
ル、ネットワークアクセスプリファレンス、またはそれらの任意の組み合わせ)を含む全
ての接続されたデバイスのリストを管理することができる。
接続層404は、エンドユーザデバイスが接続または切断するときに、他の層(例えば
、アプリケーション層402またはルーティング層406)のうちの少なくとも1つに割
り込みメッセージ(例えば、pingメッセージ)を送信することができる。接続層40
4は、バックホール・ネットワークチャネルが切断されたとき(例えば、アプリケーショ
ンサービス・サーバが切断されたとき)、他の層の少なくとも1つに割り込みメッセージ
を送信することができる。例えば、接続層404は、アプリケーション層402によって
管理される1つまたは複数のクライアントアプリケーション・スタブに割り込みメッセー
ジを送信することができる。接続層404はまた、バックホール・ネットワークチャネル
が利用可能になる予測されるスケジュールを管理することもできる。いくつかの実施形態
では、接続層404は、バックホール・ネットワークチャネルを使用することに関連する
コストマップ(cost map)を管理することができる。例えば、これにより、ルーティング
層406は、アプリケーションサービス・アバターのネットワーク利用のコストを最適化
することができる。接続層404は、(例えば、断続的な接続が利用可能になったときの
)アプリケーションサービス・サーバのQoSキューのためのバックホールQoSパラメ
ータをさらに設定することができる。接続層404は、(例えば、アプリケーションサー
ビス・アバターによって提供されるアプリケーションサービスに対応する)クライアント
アプリケーション・スタブに対するメッセージまたはコンテンツを受信することもできる
。アプリケーションサービス・サーバは(例えば、図1の委譲API 130を介して)
メッセージまたはコンテンツをプッシュメッセージとして送信することができる。
ルーティング層406は、エンドユーザデバイスとアプリケーションサービス・サーバ
との間のメッセージまたはコンテンツのトラフィックを促進することができる。ルーティ
ング層406は、接続層404によって管理された接続情報およびプロファイル情報を使
用して、どのようにおよびいつメッセージをルーティングするかを決定することができる
。例えば、アプリケーションサービス・サーバからの受信メッセージ(incoming message
)の場合、ルーティング層406は、接続層404から、エンドユーザデバイスが、受信
メッセージによってターゲットとされているユーザプロファイルに関連付けられたアプリ
ケーションサービス・アバターに接続されているかまたは頻繁に接続するかを判定するこ
とができる。別の例として、エンドユーザデバイスからの発信メッセージの場合、ルーテ
ィング層406は、接続層404から、ターゲットデバイスのアイデンティティを特定す
ることができる。ターゲットデバイスがアプリケーションサービス・サーバまたは断続的
なネットワークチャネルを介して接続された別のコンピューティングデバイスである場合
、接続層404は、予想される配信の時間でルーティング層406に応答し、および/ま
たはメッセージをメッセージキューに配置することを促進することができる。ターゲット
デバイスがアプリケーションサービス・アバターに接続されたエンドユーザデバイスであ
る場合、接続層404は、ターゲットデバイスへのメッセージのルーティングを促進する
ために必要な情報をルーティング層406に提供することができる。
システム層408は、クライアントアプリケーション・スタブをQoSパラメータで登
録または登録解除することができる。システム層408は、システムログを記録および格
納することもできる。システムログは、例えば、各クライアントアプリケーション・スタ
ブに関連するQoSパラメータ、アプリケーションサービス・サーバまたはエンドユーザ
デバイスに/から送信されるメッセージ、アバターAPI 400のレイヤによって実行
される動作、エラーまたはサービスタスクに関する例外、および/またはそれらの任意の
組み合わせを含む。
アプリケーションサービス・サーバおよび/またはアバターサーバ(例えば、アプリケ
ーションサービスAPI 124、委譲API 130、アバターAPI 132、また
はアバターAPI 400)に実装されるモジュールは、ハードウェアコンポーネント、
ソフトウェアコンポーネント、またはそれらの任意の組み合わせとして具体化され得る。
例えば、説明されたモジュールは、図6で説明されるコンピュータシステム上のプロセッ
サまたはコントローラによって実行可能な非一時的メモリの命令として実装されたソフト
ウェアコンポーネントであってもよい。別の例として、モジュールに導入された方法およ
び他の技術は、ソフトウェアおよび/またはファームウェアによってプログラムまたは構
成されたプログラマブル回路によって具体化されるか、またはそれらは専用の「ハードワ
イヤード(hardwired)」回路によって全体として、またはそのような形態の組み合わせ
によって具体化され得る。(存在する場合)そのような専用回路は、例えば、1つまたは
複数の特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLDs
)、フィールドプログラマブルゲートアレイ(FPGA)などの形態であり得る。
各モジュールは、個別にかつ他のモジュールとは独立して動作することができる。複数
のモジュールの一部または全部を1つのモジュールとして組み合わせることもできる。単
一のモジュールをサブモジュールに分割することもでき、それぞれが単一のモジュールの
別個の方法ステップまたは方法ステップを実行する。モジュールは、メモリスペースへの
アクセスを共有することができる。1つのモジュールは、別のモジュールによってアクセ
スされるかまたは変換されたデータにアクセスできる。モジュールは、物理的な接続また
は仮想的な接続を直接的または間接的に共有し、あるモジュールからアクセスまたは修正
されたデータに別のモジュールでアクセスすることを可能にする場合に、互いに「接続」
されたとみなすことができる。各「メモリスペース(memory space)」または「データバ
ンク(data bank)」は、データストレージに実装され、他のデータストレージとは個別
に独立して動作することができる。データストレージの一部または全部を1つのデータス
トレージとして組み合わせることができる。単一のデータストレージは、各々、単一のデ
ータストレージの一部を含む複数のサブストレージに分割することもできる。
説明されたストレージまたは「ストア(store)」は、ハードウェアコンポーネントま
たはデジタルデータを格納するためのハードウェアコンポーネントの一部である。各スト
レージは、単一の物理エンティティでも、複数の物理デバイスを介して分散されてもよい
。各ストレージは、別個の物理デバイスであっても、同じ物理デバイスまたは複数の物理
デバイスを共有してもよい。各ストレージは、実行時間アプリケーション、プロセス、ま
たはモジュールに複数の特定のストレージスペースを割り当てることができる。
図5は、様々な実施形態に従った、コンピューティングデバイス(例えば、図1のアバ
ターサーバ126)をアプリケーションサービス・アバター(例えば、図1のアプリケー
ションサービス・アバター112)として動作させる方法500を示すフローチャートで
ある。ブロック502で、コンピューティングデバイスは、アプリケーションサービス・
アバターを実装する。コンピューティングデバイスは、アプリケーションサービスをクラ
イアントアプリケーションに提供するためのアプリケーションサービス・サーバ(例えば
、図1のアプリケーションサービス・サーバ114)へのバックホール・ネットワークチ
ャネルを介して少なくとも断続的なネットワークアクセスを有することができる。
ブロック504において、コンピューティングデバイスは、コンピューティングデバイ
スに接続された1つ以上のエンドユーザデバイスのリストを管理し、アプリケーションサ
ービスにアクセスすることによってサービスグループを確立することができる。例えば、
ブロック504は、コンピューティングデバイスが、エンドユーザデバイスのデバイスプ
ロファイルおよびエンドユーザデバイスに関連付けられたユーザプロファイルを管理する
ことを含むことができる。
ブロック506において、コンピューティングデバイスは、アプリケーションサービス
によってエンドユーザデバイスに提供される複数の機能の少なくとも一部分をエミュレー
トすることによって、ローカライズされた(localized)アプリケーションサービスを提
供する。例えば、ローカライズされたアプリケーションサービスを提供することは、アバ
ターサーバにおける複数のエンドユーザデバイスの少なくとも1つからのサービス要求を
少なくとも部分的にローカルで処理することを含むことができる。サービス要求を処理す
ることは、アプリケーションサービス・サーバに対して、複数のエンドユーザデバイスの
うちの1つの代わりにリモートプロシージャコールにおいて複数のパラメータを変換する
クライアントアプリケーション・スタブを呼び出すことを含むことができる。
いくつかの実施形態では、ローカライズされたアプリケーションサービスを提供するこ
とは、サービスグループ内の少なくとも第1のエンドユーザデバイスからサービス要求を
受信することを含むことができる。サービス要求は、サービスグループ内の第2のエンド
ユーザデバイスを呼び出すことを含み得る。ローカライズされたアプリケーションサービ
スを提供することは、第1のエンドユーザデバイスに代わって第2のエンドユーザデバイ
スにメッセージを通信することによって、サービス要求を少なくとも部分的に処理するこ
とをさらに含むことができる。メッセージを通信することは、バックホール・ネットワー
クチャネルが利用できないこと、またはアプリケーションサービス・サーバが到達不能で
ある(unreachable)と判定したことに応答してもよい。サービス要求を処理することは
、サービス要求によって示されるか、参照されるか、またはサービス要求から導出された
メッセージを識別することを含むことができる。
いくつかの実施形態では、ローカライズされたアプリケーションサービスを提供するこ
とは、エンドユーザデバイスのうちの1つからメディアコンテンツのデータ処理要求(例
えば、データ変換要求)を受信することを含むことができる。例えば、エンドユーザは、
アプリケーションサービス用の音声コマンドを送信することができる。音声コマンドは、
音声認識および/または変換処理タスクを含むことができる。コンピューティングデバイ
スは、アバターサーバに格納された処理モジュールのローカルバージョンを利用すること
によって、アプリケーションサービス・アバターを使用してメディアコンテンツを変換す
ることができる。
いくつかの実施形態では、ローカライズされたアプリケーションサービスを提供するこ
とは、複数のエンドユーザデバイスにおいて要求デバイスからコンテンツ識別子を含むコ
ンテンツ提供要求を受信することを含むことができる。コンピューティングデバイスは、
コンピューティングデバイスに利用可能なまたはコンピューティングデバイス内で利用可
能なローカルデータバンクのコンテンツ識別子を介してコンテンツを見つけることができ
る。コンピューティングデバイスがローカルデータバンク内でコンテンツを見つけること
ができず、バックホール・ネットワークチャネルが利用できないとき、コンピューティン
グデバイスは、要求デバイスへのコンテンツのその後の配信のために、コンテンツのため
のコンテンツ要求をアプリケーションサービス・サーバにキューイングする。コンピュー
ティングデバイスがローカルデータバンク内のコンテンツを見つけることができず、バッ
クホール・ネットワークチャネルが利用可能であるとき、コンピューティングデバイスは
、アプリケーションサービス・サーバからコンテンツをフェッチして、要求デバイスに配
信する。コンピューティングデバイスがローカルデータバンクにコンテンツを配置すると
、コンピューティングデバイスは、要求デバイスにコンテンツを提供する。
いくつかの実施形態では、ローカライズされたアプリケーションサービスを提供するこ
とは、複数のエンドユーザデバイスにおいて要求デバイスから公開可能なコンテンツを含
むコンテンツ公開要求を受信することを含む。次いで、コンピューティングデバイスは、
公開可能なコンテンツをアプリケーションサービス・サーバに送信する前に、公開可能な
コンテンツをサービスグループが利用できるようにすることによって、サービスグループ
内の公開可能なコンテンツを事前に公開することができる。
ブロック508において、コンピューティングデバイスは、アプリケーション要求に非
同期でアプリケーションサービス・サーバと通信して、サービス要求をファイナライズす
ることができる。ブロック508のロジックは、バックホール・ネットワークチャネルが
利用可能であると判定したことに応答して実行され得る。
ブロック510において、コンピューティングデバイスは、アプリケーションサービス
・サーバからプッシュメッセージを受信することができる。プッシュメッセージは、アプ
リケーションサービス・アバターのシステムアップデートとすることができる。例えば、
ブロック510は、アプリケーションサービス・サーバから処理モジュールのローカルバ
ージョンへの更新を受信することを含むことができる。プッシュメッセージは、サービス
グループ内の複数のエンドユーザデバイスのうちの1つに向けられたメッセージであって
もよい。
プロセスまたは方法が所定の順序で提示されるが、代替的な実施形態は、異なる順序で
、複数のステップを有する複数のルーチンを実行するかまたは複数のブロックを有する複
数のシステムを使用し、且つ、いくつかのプロセスまたはブロックが、代替またはサブコ
ンビネーションを提供するために、削除、移動、追加、細分化、結合および/または修正
されてもよい。これらのプロセスまたはブロックの各々は、様々な異なる方法で具体化さ
れ得る。さらに、複数のプロセスまたは複数のブロックが直列に実行されるように示され
ているが、これらのプロセスまたはブロックは代わりに並列に実行されてもよく、または
異なる時間に実行されてもよい。
図6は、様々な実施形態に従った、本明細書に記載の1つまたは複数のコンピューティ
ングデバイスまたはサーバを示すコンピューティングデバイス600の一例のブロック図
である。コンピューティングデバイス600は、図1のアプリケーションサービス・アバ
ター112、図1のアプリケーションサービス・サーバ114、または本開示に記載され
た複数の方法および複数のプロセス(例えば、図5の方法500)を実装する1つまたは
複数のコンピューティングデバイスであり得る。コンピューティングデバイス600は、
相互接続部630に結合された1つ以上のプロセッサ610およびメモリ620を含む。
図6に示された相互接続部630は、1つまたは複数の別個の物理バス、ポイントツーポ
イント接続、または適切な複数のブリッジ、複数のアダプタ、または複数のコントローラ
によって接続された両方を表す抽象概念(abstraction)である。したがって、相互接続
部630は、例えば、システムバス、PCI(Peripheral Component Interconnect)バ
スまたはPCI−Expressバス、HyperTransportまたは業界標準ア
ーキテクチャ(ISA)バス、SCSI(Small Computer System Interface)バス、ユ
ニバーサルシリアルバス(USB)、IIC(I2C)バス、または「Firewire
」を含む。
(複数の)プロセッサ610は、コンピューティングデバイス600の中央処理装置(
CPU)であり、したがって、コンピューティングデバイス600の全体的な動作を制御
する。特定の実施形態では、プロセッサ610は、メモリ620に格納されたソフトウェ
アまたはファームウェアを実行することによってこれを達成する。プロセッサ610は、
1つまたは複数のプログラム可能な汎用マイクロプロセッサまたは専用マイクロプロセッ
サ、デジタルシグナルプロセッサ(DSP)、プログラマブルコントローラ、特定用途向
け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、トラステッドプ
ラットフォームモジュール(TPM)など、またはそのようなデバイスの組み合わせを含
む。
メモリ620は、コンピューティングデバイス600の主メモリであるか、またはそれ
を含む。メモリ620は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(
ROM)、フラッシュメモリ、またはそれらの組み合わせの任意の形態を表す。使用にお
いて、メモリ620は、本明細書で開示されるメッシュ接続システムによる命令を含むコ
ード670を含むことができる。
また、相互接続部630を介してプロセッサ610に接続されるのは、ネットワークア
ダプタ640とストレージアダプタ650である。ネットワークアダプタ640は、コン
ピューティングデバイス600に、ネットワークを介してリモート装置と通信する機能を
提供し、たとえば、イーサネット・アダプタまたはファイバ・チャネル・アダプタなどで
ある。ネットワークアダプタ640はまた、コンピューティングデバイス600に、他の
コンピュータと通信する能力を機能してもよい。ストレージアダプタ650は、コンピュ
ーティングデバイス600が永続的ストレージにアクセスすることを可能にし、例えば、
ファイバ・チャネル・アダプタまたはSCSIアダプタでもよい。
メモリ620に格納されたコード670は、上述の動作を実行するようにプロセッサ6
10をプログラムするためのソフトウェアおよび/またはファームウェアとして具体化し
てもよい。特定の実施形態では、そのようなソフトウェアまたはファームウェアは、コン
ピューティングデバイス600を介して(例えば、ネットワークアダプタ640を介して
)リモートシステムからダウンロードすることによって、コンピューティングデバイス6
00に最初に提供されてもよい。
本明細書で紹介された技法は、例えば、ソフトウェアおよび/またはファームウェアで
プログラムされたプログラム可能な回路(例えば、1つまたは複数のマイクロプロセッサ
)によって、または完全に専用のハードワイヤード回路で、またはそのような形態の組み
合わせによって具体化され得る。専用ハードワイヤード回路は、例えば、1つまたは複数
の特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、フ
ィールドプログラマブルゲートアレイ(FPGA)などの形態であってもよい。
明細書において紹介された技術を具体化する際に使用するソフトウェアまたはファーム
ウェアは、機械可読記憶媒体(machine-readable storage medium)に格納されてもよい
し、1つまたは複数の汎用または専用のプログラム可能なマイクロプロセッサによって実
行されてもよい。本明細書で使用される「機械可読記憶媒体」は、機械によってアクセス
可能な形式で情報を格納することができる任意のメカニズムを含む(機械は、例えば、コ
ンピュータ、ネットワーク装置、携帯電話、パーソナルデジタルアシスタント(PDA)
、製造ツール、1つ以上のプロセッサを有する任意のデバイスなどとすることができる。
)。例えば、機械アクセス可能な記憶媒体は、記録可能/記録不可能媒体(例えば、リー
ドオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒
体、光学記憶媒体、フラッシュメモリ装置など)等を含む。
本明細書で使用される用語「ロジック」は、例えば、特定のソフトウェアおよび/また
はファームウェアでプログラムされたプログラム可能な回路、専用ハードワイヤード回路
、またはそれらの組み合わせを含み得る。
ソーシャルネットワーキングシステムの概要
開示されるアプリケーションサービスの様々な実施形態は、ソーシャルネットワーキン
グシステムを利用するか、またはソーシャルネットワーキングシステムの一部である。ソ
ーシャルネットワーキングシステムは、一般に、ユーザがソーシャルネットワーキングシ
ステムのコンテキスト内外のオブジェクトおよび他のユーザと対話することを可能にする
メカニズムを提供する。ソーシャルネットワーキングシステムユーザは、個人または任意
の他のエンティティ、例えば、ビジネスエンティティまたは他の非パーソンエンティティ
(non-person entity)であってもよい。ソーシャルネットワーキングシステムは、ユー
ザを表示してユーザがソーシャルネットワーキングシステムのオブジェクトおよび情報と
対話することを可能にする一連の相互接続されたページを含むウェブベースのインタフェ
ースまたはモバイルインタフェースを利用することができる。例えば、ソーシャルネット
ワーキングシステムは、ソーシャルネットワーキングシステムユーザによって入力された
、またはソーシャルネットワーキングシステムユーザに関連するオブジェクトおよび情報
を含む各ソーシャルネットワーキングシステムユーザのページ(例えば、ユーザの「プロ
ファイル」)を表示することができる。ソーシャルネットワーキングシステムは、複数の
コンセプトに注目した、類似の関心のある複数のユーザー(「グループ」)に注目した、
または他のユーザへの、他のユーザから、または他のユーザによる複数のコミュニケーシ
ョンやソーシャルネットワーキングシステムのアクティビティを含む写真やビデオを含む
複数のページを有してもよい。ソーシャルネットワーキングシステムページは、他のソー
シャルネットワーキングシステムページへのリンクを含むことができ、検索、リアルタイ
ム通信、コンテンツアイテムアップロード、購入、広告、および他のウェブベース推論エ
ンジンまたは機能などの追加機能を含み得る。ソーシャルネットワーキングシステムイン
タフェースは、ウェブブラウザまたは非ウェブブラウザアプリケーション、例えば、モバ
イルコンピューティングデバイスまたは他のコンピューティングデバイス上で実行される
専用のソーシャルネットワーキングシステムアプリケーションからアクセス可能であり得
ることに留意されたい。したがって、本明細書で使用される「ページ(page)」は、
ウェブページ、アプリケーションインタフェースまたはディスプレイ、ウェブページまた
はアプリケーション上に表示されるウィジェット、ボックスまたは他のグラフィカルイン
タフェース、(ソーシャルネットワーキングシステムコンテキスト内か外のどちらかの)
別のページ上のオーバーレイウィンドウ(overlay window)、または複数
の機能におけるソーシャルネットワーキングシステムプラグインまたは統合機能を有する
ソーシャルネットワーキングシステムの外部のウェブページであってもよい。
上述したように、ソーシャルグラフは、(相互作用、アクティビティまたは関連性を表
す)エッジによって相互接続されたノードのセット(ソーシャルネットワーキングシステ
ムオブジェクト、またはソーシャルオブジェクトとしても知られている)を含むことがで
きる。ソーシャルネットワーキングシステムオブジェクトは、ソーシャルネットワーキン
グシステムユーザ、非パーソスエンティティ、コンテンツアイテム、グループ、ソーシャ
ルネットワーキングシステムページ、ロケーション、アプリケーション、主題、概念また
は他のソーシャルネットワーキングシステムオブジェクト、例えば映画、バンド、本であ
ってもよい。コンテンツアイテムは、ソーシャルネットワーキングシステムのユーザまた
は他のオブジェクトが、例えば、メッセージ、キューイングされたメッセージ(例えば電
子メール)、テキストおよびSMS(ショートメッセージサービス)メッセージ、コメン
トメッセージ、他の好適なメッセージ技術を用いたメッセージ、HTTPリンク、HTM
Lファイル、画像、ビデオ、オーディオクリップ、文書、文書編集、カレンダーエントリ
またはイベント、および他のコンピュータ関連ファイルを作成、アップロード、編集、ま
たは対話することができるもののいずれかを含み得る。主題と概念は、ソーシャルグラフ
の説明において、任意の人物、場所、物、またはアイデアを表すノードを含む。
ソーシャルネットワーキングシステムは、ユーザが、ユーザの関心、教育および勤務経
験、連絡先情報、人口統計情報、およびユーザのプロフィールページ内の他の経歴情報に
関連する情報を入力および表示することを可能にすることができる。プロフィールページ
に含まれる各学校、雇用者、関心(例えば、音楽、書籍、映画、テレビ番組、ゲーム、政
治的見解、哲学、宗教、グループ、またはファンページ)、地理的位置、ネットワーク、
またはその他の情報は、ソーシャルグラフ内のノードによって表される。ソーシャルネッ
トワーキングシステムは、ユーザが写真、ビデオ、文書、歌、または他のコンテンツアイ
テムをアップロードまたは作成することを可能にし、ユーザがイベントを作成およびスケ
ジュールすることを可能にすることができる。コンテンツアイテムおよびイベントは、ソ
ーシャルグラフ内のノードによって表されてもよい。
ソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステム内の非
パーソンオブジェクトと対話するための様々な手段を提供することができる。例えば、ユ
ーザは、ソーシャルネットワーキングシステム内でグループを形成したり、グループに参
加したり、ファンページのファンになることができる。さらに、ユーザは、ソーシャルネ
ットワーキングシステムオブジェクトを作成、ダウンロード、閲覧、アップロード、リン
ク付け、タグ付け、編集、または再生することができる。ユーザは、ソーシャルネットワ
ーキングシステムのコンテキスト外でソーシャルネットワーキングシステムオブジェクト
と対話することができる。例えば、ニュースウェブサイト上の記事は、ユーザがクリック
できる「いいね(like)」ボタンを有する可能性がある。これらの各インスタンスにおい
て、ユーザとオブジェクトとの間の対話は、ユーザのノードをオブジェクトのノードに接
続するソーシャルグラフ内のエッジによって表される。ユーザは、特定の場所に「チェッ
クイン(check in)」するために(モバイルデバイスのGPS受信機のような)位置検出
機能を使用することができ、エッジは、ユーザのノードをソーシャルグラフ内の場所のノ
ードに接続することができる。
ソーシャルネットワーキングシステムは、様々な通信チャネルをユーザに提供すること
ができる。例えば、ソーシャルネットワーキングシステムは、ユーザが電子メール、イン
スタントメッセージ、またはテキスト/SMSメッセージを1人以上の他のユーザに実行
することを可能にし、ユーザのウォール(wall)またはプロフィールまたは他のユーザの
ウォールまたはプロフィールにメッセージを掲示し、ユーザがグループまたはファンペー
ジにメッセージを投稿し、またはユーザがユーザまたは他のユーザによって作成またはア
ップロードされた画像、ウォールのポストまたは他のコンテンツアイテムにコメントする
ことを可能にすることができる。少なくとも1つの実施形態では、ユーザは、現在のイベ
ント、心の状態、思考、感情、アクティビティ、または現時点で他に関連する任意のコミ
ュニケーションを示すステータスメッセージをユーザのプロファイルに掲示する。ソーシ
ャルネットワーキングシステムは、ユーザがソーシャルネットワーキングシステムの内部
および外部の両方で通信することを可能にすることができる。例えば、第1のユーザは、
ソーシャルネットワーキングシステムにおけるメッセージ、ソーシャルネットワーキング
システムを介した電子メール、ソーシャルネットワーキングシステムに起因するが外部の
電子メール、ソーシャルネットワーキングシステムにおけるインスタントメッセージ、お
よびソーシャルネットワーキングシステムに起因するが外部のインスタントメッセージを
第2のユーザに送信してもよい。さらに、第1のユーザは、第2のユーザのプロファイル
ページにコメントすることができ、または第2のユーザに関連するオブジェクト、例えば
第2のユーザによってアップロードされたコンテンツアイテムにコメントすることができ
る。
ソーシャルネットワーキングシステムは、複数のユーザがソーシャルネットワーキング
システムの他のユーザと自身を関連付けて複数の接続を確立することを可能にする。2人
のユーザ(例えば、ソーシャルグラフノード)がソーシャルネットワーキングシステムに
おいてソーシャル接続を明示的に確立すると、2人のユーザは、ソーシャルネットワーキ
ングシステムのコンテキスト内で「友達」(または「接続」)になる。例えば、「Jan
e Smith」によって受け入れられた「John Doe」から「Jane Smi
th」への友達要求は、ソーシャル接続である。ソーシャル接続は、ソーシャルネットワ
ークのエッジである。ソーシャルネットワーキングシステムで友達になると、ユーザは、
接続されていないユーザに利用可能な他の情報よりも多くの情報にアクセスすることがで
きる。例えば、友達であることは、ユーザが別のユーザのプロフィールを見ること、他の
ユーザの友達を見ること、または別のユーザの写真を見ることを可能にすることができる
。同様に、ソーシャルネットワーキングシステム内で友達となることは、ユーザが、(ソ
ーシャルネットワーキングシステムの内部および外部の)電子メール、インスタントメッ
セージ、テキストメッセージ、電話、または他の任意の通信インタフェースなどによって
他のユーザとコミュニケーションするためにより多くのアクセスを可能にする。コミュニ
ケーションのアップロードされたコンテンツアイテムを閲覧、コメント、ダウンロード、
承認または他の方法で対話することを可能にすることができる。接続を確立すること、ユ
ーザ情報にアクセスすること、コミュニケーションすること、およびソーシャルネットワ
ーキングシステムのコンテキスト内で対話することは、2人のソーシャルネットワーキン
グシステムユーザを表すノード間のエッジによって表される。
ソーシャルネットワーキングシステムにおける接続を明示的に確立することに加えて、
共通の特性を有する複数のユーザは、通信のトピックを決定する際に使用するためのソー
シャルコンテキストを決定する目的で(ソフトまたは暗黙的接続(soft or implicit con
nection)などの)接続されたものと見なすことができる。少なくとも1つの実施形態で
は、共通のネットワークに属する複数のユーザは、接続されているとみなされる。たとえ
ば、共通の学校に通う人、共通の会社に所属する人、または共通のソーシャルネットワー
キングシステムグループに属する複数のユーザは、接続されているとみなされる。少なく
とも1つの実施形態では、共通の経歴特徴を有する複数のユーザは、接続されているとみ
なされる。例えば、ユーザが生まれたかまたは生きている地理的領域、ユーザの年齢、ユ
ーザの性別およびユーザの関係状態が使用されて、複数のユーザが接続されているかどう
かを判定することができる。少なくとも1つの実施形態では、共通の関心を有する複数の
ユーザが、接続されているとみなされる。例えば、ユーザの映画の好み、音楽の好み、政
治的な意見、宗教的な意見、または他の関心が、複数のユーザが接続されているかどうか
を判定するために使用されてもよい。少なくとも1つの実施形態では、ソーシャルネット
ワーキングシステム内で共通の行動を取った複数のユーザは、接続されたとみなされる。
たとえば、共通のオブジェクトを推薦または推奨するユーザ、共通のコンテンツアイテム
にコメントするユーザ、または共通のイベントに喜んで出席する(RSVP)複数のユー
ザは、接続されたとみなされる。ソーシャルネットワーキングシステムは、ソーシャルグ
ラフを利用して、複数のユーザ間のソーシャルコンテキストを判定または評価するために
、特定のユーザと接続されているかまたは類似している複数のユーザを特定することがで
きる。ソーシャルネットワーキングシステムは、そのようなソーシャルコンテキストおよ
び共通の属性を利用して、特定のソーシャルネットワークアカウントに関連付けられたキ
ャッシュアプライアンス(cache appliance)内のキャッシングのための複数のコンテン
ツ項目を予測可能に選択するコンテンツ配信システムおよびコンテンツキャッシングシス
テムを支援することができる。
本開示のいくつかの実施形態は、上述のものに加えて、またはその代わりに、他の態様
、要素、特徴およびステップを有する。これらの潜在的な追加および置換は、本明細書の
残りの部分で説明される。
例えば、幾つかの実施形態は、アバターサーバを含み、アバターサーバは、1つまたは
複数のエンドユーザデバイスのローカルセットに接続し、バックホール・ネットワークチ
ャネルを介して少なくとも断続的にアプリケーションサービスを提供するアプリケーショ
ンサービス・サーバに接続するように構成された1つまたは複数のネットワークインタフ
ェースと、バックホール・ネットワークチャネルが利用可能である場合、アプリケーショ
ンサービス・サーバと通信するアプリケーションサービス・アバターをホストするように
構成されたプロセッサであって、アプリケーションサービス・アバターは、アバター・ア
プリケーションプログラミングインタフェース(API)を提供し、アバター・アプリケ
ーションプログラミングインタフェースは、1つ以上のエンドユーザデバイスに対して、
アプリケーションサービスによって提供される複数の機能の少なくとも一部分をエミュレ
ートすることによって、アプリケーションサービス・アバターを介してローカライズされ
たアプリケーションサービスを提供する、プロセッサと、1つ以上のエンドユーザデバイ
スのローカルセットに対するコンテンツをキャッシュし、1つ以上のエンドユーザデバイ
スのプロファイルを追跡するためのメモリと、を備える。アバターサーバは、1つ以上の
エンドユーザデバイスのネットワークアクセスまたはアグリゲーション通信データを提供
するネットワーク機器に実装され得る。アバターサーバは、1つ以上のエンドユーザデバ
イスのネットワークアクセスを提供するネットワーク機器とは独立して実装され得る。ア
バターサーバは、1つ以上のエンドユーザデバイスのうちの1つに実装され得る。
幾つかの実施形態は、アバターサーバを動作させるためのコンピュータにより実行可能
な複数の命令を記憶するコンピュータ可読記憶メモリ(例えば、非一時的データ記憶メモ
リ)を含む。コンピュータ可読記憶メモリは、アバターサーバにアプリケーションサービ
ス・アバターを実装するための命令であって、アバターサーバは、バックホール・ネット
ワークチャネルを介してアプリケーションサービス・サーバへの断続的なネットワークア
クセスを少なくとも有し、アプリケーションサービス・サーバは、複数のクライアントア
プリケーションにアプリケーションサービスを提供する、アバターサーバにアプリケーシ
ョンサービス・アバターを実装するための命令と、アプリケーションサービスにアクセス
するためにアバターサーバに接続された1つ以上のエンドユーザデバイスのリストを管理
することによってサービスグループを確立するための命令と、サービスグループの少なく
とも第1のエンドユーザデバイスからのサービス要求をアバターサーバで受信するための
命令であって、サービス要求は、サービスグループの第2のエンドユーザデバイスに関連
する、サービス要求をアバターサーバで受信するための命令と、第1のエンドユーザデバ
イスに代わって第2のエンドユーザデバイスにメッセージを通信することによって、少な
くとも部分的に、サービス要求を処理するための命令と、を含み得る。コンピュータ可読
記憶メモリは、1つ以上のエンドユーザデバイスに対して、アプリケーションサービスに
よって提供される複数の機能の少なくとも一部分をエミュレートすることによって、アバ
ターサーバを用いてローカライズされたアプリケーションサービスを提供するための命令
をさらに含み得る。コンピュータ可読記憶メモリは、バックホール・ネットワークチャネ
ルが利用可能である場合に、サービス要求をアプリケーションサービス・サーバに非同期
で通信するための命令をさらに含み得る。コンピュータ可読記憶メモリは、アプリケーシ
ョンサービス・サーバに対して、1つ以上のエンドユーザデバイスのうちの1つに代わっ
てリモートプロシージャコールにおいて複数のパラメータを変換するクライアントアプリ
ケーション・スタブを呼び出すための命令をさらに含み得る。コンピュータ可読記憶メモ
リは、1つ以上のエンドユーザデバイスのデバイスプロファイルおよび1つ以上のエンド
ユーザデバイスに関連付けられたユーザプロファイルを管理するための命令をさらに含み
得る。

Claims (15)

  1. 方法であって、
    複数のクライアントサービスにアプリケーションサービスを提供するためのアプリケー
    ションサービス・サーバへのバックホール・ネットワークチャネルを介した少なくとも断
    続的なネットワークアクセスを有するアバターサーバにアプリケーションサービス・アバ
    ターを実装すること、
    前記アプリケーションサービスにアクセスするために前記アバターサーバに接続された
    1つ以上のエンドユーザデバイスのリストを管理することによってサービスグループを確
    立すること、
    前記アプリケーションサービスによって提供される複数の機能の少なくとも一部分をエ
    ミュレートすることによって、前記アバターサーバを介して、ローカライズされたアプリ
    ケーションサービスを前記1つ以上のエンドユーザデバイスに提供することであって、少
    なくとも部分的に、前記アバターサーバにおける前記1つ以上のエンドユーザデバイスの
    うちの少なくとも1つからのサービス要求をローカルで処理することを含む、前記ローカ
    ライズされたアプリケーションサービスを前記エンドユーザデバイスに提供すること、
    前記アプリケーションサービス・サーバと非同期で通信して前記サービス要求を完了す
    ること、を備える方法。
  2. 前記ローカライズされたアプリケーションサービスを提供することは、
    前記サービスグループの少なくとも第1のエンドユーザデバイスから、前記サービス要
    求を前記アバターサーバで受信することであって、前記サービス要求は、前記サービスグ
    ループの第2のエンドユーザデバイスと関連する、前記サービス要求を前記アバターサー
    バで受信すること、
    前記第1のエンドユーザデバイスに代わって前記第2のエンドユーザデバイスにメッセ
    ージを通信することによって、前記サービス要求を少なくとも部分的に処理することを含
    む、請求項1に記載の方法。
  3. 前記メッセージを通信することが、前記バックホール・ネットワークチャネルが利用で
    きないこと、または前記アプリケーションサービス・サーバが到達不能であると判定した
    ことに応答して実施されること、および
    前記サービス要求を処理することは、前記サービス要求によって示されるか、前記サー
    ビス要求において参照されるか、または前記サービス要求から導出されたメッセージを識
    別することを含むこと、
    のうちの少なくとも一方を含む請求項2に記載される方法。
  4. 前記アプリケーションサービス・サーバと非同期で通信することは、前記バックホール
    ・ネットワークチャネルが利用可能であると判定することに応答して実施される、請求項
    1〜3のいずれか1項に記載の方法。
  5. 前記ローカライズされたアプリケーションサービスを提供することは、
    前記1つ以上のエンドユーザデバイスのうちの1つからメディアコンテンツのデータ変
    換要求を受信すること、
    前記アバターサーバに保存された処理モジュールのローカルバージョンを利用すること
    によって、前記アプリケーションサービス・アバターを利用して前記メディアコンテンツ
    を変換すること、をさらに含み、
    好ましくは、前記バックホール・ネットワークチャネルが利用可能である場合に、前記
    アプリケーションサービス・サーバからの前記処理モジュールのローカルバージョンへの
    更新を受信することをさらに含む、請求項1〜4のいずれか1項に記載の方法。
  6. 前記ローカライズされたアプリケーションサービスを提供することは、
    前記1つ以上のエンドユーザデバイスのうちの要求デバイスからコンテンツ識別子を含
    むコンテンツ提供要求を受信すること、
    前記コンテンツ識別子を用いて前記アバターサーバのローカルデータバンクにおいてコ
    ンテンツを特定すること、
    前記ローカルデータバンクにおいて前記コンテンツを特定することに応答して、前記コ
    ンテンツを要求デバイスに提供すること、を含む、請求項1〜5のいずれか1項に記載の
    方法。
  7. 前記ローカライズされたアプリケーションサービスを提供することは、
    前記1つ以上のエンドユーザデバイスのうちの要求デバイスからコンテンツ識別子を含
    むコンテンツ提供要求を受信すること、
    前記コンテンツ識別子を用いて前記アバターサーバのローカルデータバンクにおいてコ
    ンテンツを特定すること、
    前記バックホール・ネットワークチャネルが利用可能である場合、前記コンテンツを前
    記ローカルデータバンクにおいて特定できないことに応答して、前記アプリケーションサ
    ービス・サーバから前記コンテンツをフェッチして前記要求デバイスに配信すること、を
    含む、請求項1〜6のいずれか1項に記載の方法。
  8. 前記ローカライズされたアプリケーションサービスを提供することは、
    前記1つ以上のエンドユーザデバイスのうちの要求デバイスからコンテンツ識別子を含
    むコンテンツ提供要求を受信すること、
    前記コンテンツ識別子を用いて前記アバターサーバのローカルデータバンクにおいてコ
    ンテンツを特定すること、
    前記バックホール・ネットワークチャネルが利用できない場合に前記ローカルデータバ
    ンクにおいて前記コンテンツを特定できないことに応答して、前記コンテンツのためのコ
    ンテンツ要求をアプリケーションサービス・サーバにキューイングし、前記要求デバイス
    に配信すること、を含む、請求項1〜7のいずれか1項に記載の方法。
  9. 前記ローカライズされたアプリケーションサービスを提供することは、
    前記1つ以上のエンドユーザデバイスのうちの要求デバイスから公開可能なコンテンツ
    を含むコンテンツ公開要求を受信すること、
    前記公開可能なコンテンツを前記アプリケーションサービス・サーバに送信する前に、
    前記サービスグループに利用可能な前記公開可能なコンテンツを作成することによって前
    記サービスグループ内で前記公開可能なコンテンツを事前に公開すること、を含む、請求
    項1〜8のいずれか1項に記載の方法。
  10. アバターサーバを動作させるためのコンピュータにより実行可能な複数の命令を記憶す
    るコンピュータ可読記憶メモリであって、
    前記アバターサーバにアプリケーションサービス・アバターを実装するための命令であ
    って、前記アバターサーバは、バックホール・ネットワークチャネルを介してアプリケー
    ションサービス・サーバへの断続的なネットワークアクセスを少なくとも有し、前記アプ
    リケーションサービス・サーバは、複数のクライアントアプリケーションにアプリケーシ
    ョンサービスを提供する、前記アバターサーバにアプリケーションサービス・アバターを
    実装するための命令と、
    前記アプリケーションサービスにアクセスするために前記アバターサーバに接続された
    1つ以上のエンドユーザデバイスのリストを管理することによってサービスグループを確
    立するための命令と、
    前記サービスグループの少なくとも第1のエンドユーザデバイスからのサービス要求を
    前記アバターサーバで受信するための命令であって、前記サービス要求は、前記サービス
    グループの第2のエンドユーザデバイスに関連する、前記サービス要求を前記アバターサ
    ーバで受信するための命令と、
    前記第1のエンドユーザデバイスに代わって前記第2のエンドユーザデバイスにメッセ
    ージを通信することによって、少なくとも部分的に、前記サービス要求を処理するための
    命令と、を備えるコンピュータ可読記憶メモリ。
  11. 前記1つ以上のエンドユーザデバイスに対して、前記アプリケーションサービスによっ
    て提供される複数の機能の少なくとも一部分をエミュレートすることによって、前記アバ
    ターサーバを用いてローカライズされたアプリケーションサービスを提供するための命令

    前記バックホール・ネットワークチャネルが利用可能である場合に、前記サービス要求
    を前記アプリケーションサービス・サーバに非同期で通信するための命令、
    前記アプリケーションサービス・サーバに対して、前記1つ以上のエンドユーザデバイ
    スのうちの1つに代わってリモートプロシージャコールにおいて複数のパラメータを変換
    するクライアントアプリケーション・スタブを呼び出すための命令、および
    前記1つ以上のエンドユーザデバイスのデバイスプロファイルおよび前記1つ以上のエ
    ンドユーザデバイスに関連付けられたユーザプロファイルを管理するための命令のうちの
    少なくとも1つをさらに備える請求項10に記載のコンピュータ可読記憶メモリ。
  12. アバターサーバであって、
    1つまたは複数のエンドユーザデバイスのローカルセットに接続し、バックホール・ネ
    ットワークチャネルを介して少なくとも断続的にアプリケーションサービスを提供するア
    プリケーションサービス・サーバに接続するように構成された1つまたは複数のネットワ
    ークインタフェースと、
    前記バックホール・ネットワークチャネルが利用可能である場合、前記アプリケーショ
    ンサービス・サーバと通信するアプリケーションサービス・アバターをホストするように
    構成されたプロセッサであって、前記アプリケーションサービス・アバターは、アバター
    ・アプリケーションプログラミングインタフェース(API)を提供し、前記アバター・
    アプリケーションプログラミングインタフェースは、前記1つ以上のエンドユーザデバイ
    スに対して、前記アプリケーションサービスによって提供される複数の機能の少なくとも
    一部分をエミュレートすることによって、前記アプリケーションサービス・アバターを介
    してローカライズされたアプリケーションサービスを提供する、前記プロセッサと、
    前記1つ以上のエンドユーザデバイスのローカルセットに対するコンテンツをキャッシ
    ュし、前記1つ以上のエンドユーザデバイスのプロファイルを追跡するためのメモリと、
    を備えるアバターサーバ。
  13. 前記アバターサーバは、前記1つ以上のエンドユーザデバイスのネットワークアクセス
    またはアグリゲーション通信データを提供するネットワーク機器に実装される、請求項1
    2に記載のアバターサーバ。
  14. 前記アバターサーバは、前記1つ以上のエンドユーザデバイスのネットワークアクセス
    を提供するネットワーク機器とは独立して実装される、請求項12又は13に記載のアバ
    ターサーバ。
  15. 前記アバターサーバは、前記1つ以上のエンドユーザデバイスのうちの1つに実装され
    る、請求項14に記載のアバターサーバ。
JP2019126079A 2014-12-29 2019-07-05 アプリケーションサービス・アバターを用いたアプリケーションサービス配信 Active JP6762406B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/584,815 US10205797B2 (en) 2014-12-29 2014-12-29 Application service delivery through an application service avatar
US14/584,815 2014-12-29

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017534837A Division JP2018509672A (ja) 2014-12-29 2014-12-30 アプリケーションサービス・アバターを用いたアプリケーションサービス配信

Publications (2)

Publication Number Publication Date
JP2019204524A true JP2019204524A (ja) 2019-11-28
JP6762406B2 JP6762406B2 (ja) 2020-09-30

Family

ID=56165753

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017534837A Pending JP2018509672A (ja) 2014-12-29 2014-12-30 アプリケーションサービス・アバターを用いたアプリケーションサービス配信
JP2019126079A Active JP6762406B2 (ja) 2014-12-29 2019-07-05 アプリケーションサービス・アバターを用いたアプリケーションサービス配信

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017534837A Pending JP2018509672A (ja) 2014-12-29 2014-12-30 アプリケーションサービス・アバターを用いたアプリケーションサービス配信

Country Status (10)

Country Link
US (2) US10205797B2 (ja)
JP (2) JP2018509672A (ja)
KR (1) KR102277186B1 (ja)
CN (1) CN107251086B (ja)
AU (1) AU2014415653A1 (ja)
BR (1) BR112017013902A2 (ja)
CA (1) CA2971154A1 (ja)
IL (1) IL253064B (ja)
MX (1) MX367217B (ja)
WO (1) WO2016108828A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11862160B2 (en) 2020-10-27 2024-01-02 Seiko Epson Corporation Control method for display system, and display system

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9930132B2 (en) 2014-01-10 2018-03-27 Facebook, Inc. Content specific router caching
US10397357B2 (en) 2014-07-23 2019-08-27 Facebook, Inc. Rural area network device
US10291735B2 (en) 2014-07-23 2019-05-14 Facebook, Inc. Residential cache appliance utilizing a social network
US10205797B2 (en) 2014-12-29 2019-02-12 Facebook, Inc. Application service delivery through an application service avatar
US10594831B2 (en) * 2015-03-26 2020-03-17 Raymond Francis St. Martin Social identity of objects
US20160364553A1 (en) * 2015-06-09 2016-12-15 Intel Corporation System, Apparatus And Method For Providing Protected Content In An Internet Of Things (IOT) Network
US9507626B1 (en) * 2015-07-20 2016-11-29 Red Had Israel, Ltd. Virtual device backend recovery
CN106506322A (zh) * 2015-09-08 2017-03-15 阿里巴巴集团控股有限公司 业务功能的实现方法和装置
US10348849B2 (en) 2016-02-22 2019-07-09 At&T Mobility Ii Llc Automatic delivery of media content to a device
US10063666B2 (en) 2016-06-14 2018-08-28 Futurewei Technologies, Inc. Modular telecommunication edge cloud system
US20180041578A1 (en) * 2016-08-08 2018-02-08 Futurewei Technologies, Inc. Inter-Telecommunications Edge Cloud Protocols
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US9768893B1 (en) * 2016-11-16 2017-09-19 Spirent Communications, Inc. Over-the-air isolation testing
US10445127B2 (en) * 2017-02-28 2019-10-15 At&T Mobility Ii Llc Hypervisor for shared spectrum core and regional network elements
US11502917B1 (en) * 2017-08-03 2022-11-15 Virtustream Ip Holding Company Llc Virtual representation of user-specific resources and interactions within cloud-based systems
FR3076022A1 (fr) * 2017-12-27 2019-06-28 Orange Virtualisation d'un objet connecte
US10531130B2 (en) 2018-01-23 2020-01-07 Charter Communications Operating, Llc Protocol and architecture for the decentralization of content delivery
CN108804113B (zh) * 2018-06-07 2022-03-22 东软集团股份有限公司 部署微服务应用的方法、装置和存储介质以及电子设备
AU2019305982B2 (en) * 2018-07-19 2022-07-21 Inventio Ag Method and device for monitoring a passenger transport system using a detection device and a digital double
CN109088757B (zh) * 2018-08-02 2021-11-16 广州视源电子科技股份有限公司 服务提供方法、装置和系统
US10880616B2 (en) * 2018-09-28 2020-12-29 Viasat, Inc. Systems and methods for quality-of-experience driven in-transport communications
US11362889B2 (en) * 2018-10-15 2022-06-14 Cdw Llc System and method for automated information technology services management
CN109670126B (zh) * 2018-11-27 2021-04-13 广东耐思智慧科技有限公司 一种跨境访问加速方法及装置
TWI811493B (zh) * 2018-12-12 2023-08-11 瑞士商伊文修股份有限公司 用於交換乘客運輸系統中的組件之方法及使用於此目的的裝置
US10771989B2 (en) * 2018-12-20 2020-09-08 The Boeing Company Adaptive self-optimizing network using closed-loop feedback
US10708124B1 (en) * 2018-12-31 2020-07-07 Facebook, Inc. System and method of data communication
CN110996293B (zh) * 2019-11-29 2021-04-02 北京邮电大学 一种无人机的网络部署和资源分配的方法及其系统
EP4170650A1 (en) * 2020-06-29 2023-04-26 Baidu Online Network Technology (Beijing) Co., Ltd. Speech control method for mini-program, and devices and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030084091A1 (en) * 2001-09-28 2003-05-01 International Business Machines Corporation Apparatus and method for offloading application components to edge servers
JP2003228520A (ja) * 2001-12-12 2003-08-15 Pervasive Security Systems Inc 保護電子データにオフラインでアクセスする方法及び装置
CN102946407A (zh) * 2011-09-30 2013-02-27 微软公司 在重新连接时传递非预期协作服务器响应
WO2013152820A1 (en) * 2012-04-10 2013-10-17 Alcatel Lucent Optimizing backhaul and wireless link capacity in mobile telecommunication systems

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864837A (en) 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
GB9909825D0 (en) * 1998-09-08 1999-06-23 Airnet Global Holdings Limited Communications system for aircraft
US6920610B1 (en) 1999-03-02 2005-07-19 Microsoft Corporation Method and system for browsing a low-resolution image
US7069328B1 (en) 1999-05-25 2006-06-27 Conexant, Inc. System and method to interface a local area network with a wide area network
JP2001051839A (ja) * 1999-08-12 2001-02-23 Nippon Telegr & Teleph Corp <Ntt> クライアント・サーバシステム及びその制御方法並びにクライアント端末
US6941338B1 (en) 1999-09-01 2005-09-06 Nextwave Telecom Inc. Distributed cache for a wireless communication system
JP4173942B2 (ja) 2000-04-18 2008-10-29 インターナショナル・ビジネス・マシーンズ・コーポレーション バックアップ電源モジュール、バックアップ電源装置及びコンピュータ
AU2001271410A1 (en) 2000-06-23 2002-01-08 Citerra Technologies, L.L.C. Site information system and method
GB2366406A (en) 2000-09-01 2002-03-06 Ncr Int Inc Downloading and uploading data in information networks
US7574481B2 (en) 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
US6651141B2 (en) 2000-12-29 2003-11-18 Intel Corporation System and method for populating cache servers with popular media contents
US20020160773A1 (en) 2001-03-29 2002-10-31 Tenzing Communications, Inc. Communications systems for aircraft including wireless systems
US20020176418A1 (en) 2001-04-19 2002-11-28 Russell Hunt Systems and methods for producing files for streaming from a content file
US6957212B2 (en) 2001-04-24 2005-10-18 Innopath Software, Inc. Apparatus and methods for intelligently caching applications and data on a gateway
JP2003008664A (ja) 2001-06-27 2003-01-10 Nec Corp アクセスネットワーク及びそれに用いるインタネットサービス方式
US20040128346A1 (en) 2001-07-16 2004-07-01 Shmuel Melamed Bandwidth savings and qos improvement for www sites by catching static and dynamic content on a distributed network of caches
US6757684B2 (en) 2001-10-01 2004-06-29 Ipac Acquisition Subsidiary I, Llc Network-based photosharing architecture
US20030101267A1 (en) 2001-11-28 2003-05-29 Thompson Mark R. Peer-to-peer caching network
US7380120B1 (en) * 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US7359933B1 (en) 2002-09-26 2008-04-15 Oracle International Corporation Providing remote access to network applications using a dual proxy
US7743022B2 (en) 2003-02-28 2010-06-22 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
US7496607B2 (en) 2003-08-29 2009-02-24 Yahoo! Inc. Method and system for maintaining synchronization between a local data cache and a data store
US8234414B2 (en) 2004-03-31 2012-07-31 Qurio Holdings, Inc. Proxy caching in a photosharing peer-to-peer network to improve guest image viewing performance
WO2005103881A2 (en) 2004-04-20 2005-11-03 Shapiro Aaron M Systems and methods for improved data sharing and content transformation
US7437364B1 (en) 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
WO2006047879A1 (en) 2004-11-04 2006-05-11 Topeer Corporation System and method for creating a secure trusted social network
US7640296B2 (en) 2004-12-21 2009-12-29 Sap Ag Mapping of a content request for a cache server
BRPI0520273A2 (pt) 2005-06-02 2009-04-28 Thomson Licensing mÉtodo e sistema de sincronizaÇço de conteédo
US7437155B2 (en) * 2005-07-06 2008-10-14 Nextel Communications Inc. System and method for operating a private wireless communications system
US20080005195A1 (en) 2006-06-30 2008-01-03 Microsoft Corporation Versioning synchronization for mass p2p file sharing
US8355990B2 (en) 2007-01-08 2013-01-15 Microsoft Corporation Sharing and monetization of content
ITGE20070073A1 (it) * 2007-07-31 2009-02-01 Giorgio Gai Elemento radiante per pannelli luminosi e pannello luminoso realizzato con detto elemento radiante
US8812651B1 (en) 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US8255921B2 (en) 2007-05-30 2012-08-28 Google Inc. Method and apparatus that enables a web-based client-server application to be used offline
US8370424B2 (en) 2007-06-22 2013-02-05 Aol Inc. Systems and methods for caching and serving dynamic content
US8156118B2 (en) 2007-08-20 2012-04-10 Samsung Electronics Co., Ltd. Method and system for generating playlists for content items
US7697557B2 (en) 2007-12-26 2010-04-13 Alcatel Lucent Predictive caching content distribution network
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8417766B2 (en) 2008-06-25 2013-04-09 Viasat, Inc. Methods and systems for peer-to-peer app-level performance enhancing protocol (PEP)
JP4533976B2 (ja) 2008-07-09 2010-09-01 独立行政法人 日本原子力研究開発機構 ネットワーク網を利用するtv会議システム
TWI378381B (en) 2008-11-07 2012-12-01 Htc Corp Method and apparatus for displaying icon of multimedia file, recording medium thereof, and computer program product using the method
WO2010106832A1 (ja) * 2009-03-18 2010-09-23 日本電気株式会社 データ同期システム
US8458742B2 (en) 2009-06-30 2013-06-04 Echostar Technologies L.L.C. Apparatus systems and methods for securely sharing content with a plurality of receiving devices
US20110027653A1 (en) * 2009-08-03 2011-02-03 Ho Marvin C Negative plate for lead acid battery
US9112875B2 (en) 2009-08-04 2015-08-18 Sam Zaid System and method for anonymous addressing of content on network peers and for private peer-to-peer file sharing
CN102612830A (zh) 2009-11-06 2012-07-25 阿尔卡特朗讯公司 用于预获取和缓存内容的系统和方法
US20110276535A1 (en) * 2010-05-05 2011-11-10 Salesforce.Com, Inc. Knowledge article workflow management
US8494888B2 (en) 2010-06-21 2013-07-23 Microsoft Corporation Offline modification of business data
US8751664B2 (en) 2010-12-16 2014-06-10 Palo Alto Research Center Incorporated Custodian-based routing in content-centric networks
US8886742B2 (en) 2011-01-28 2014-11-11 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US20120271903A1 (en) 2011-04-19 2012-10-25 Michael Luna Shared resource and virtual resource management in a networked environment
DE112012001990A5 (de) * 2011-05-05 2014-02-20 Schaeffler Technologies AG & Co. KG Drehmomentübertragungs-Vorrichtung
US10210494B2 (en) 2011-05-10 2019-02-19 Ooyala, Inc. Providing content to a target network that has insufficient connectivity to a source network
US8769073B2 (en) 2011-06-29 2014-07-01 International Business Machines Corporation Intelligent offline caching of non-navigated content based on usage metrics
US9292467B2 (en) 2011-09-16 2016-03-22 Radware, Ltd. Mobile resource accelerator
US8327012B1 (en) 2011-09-21 2012-12-04 Color Labs, Inc Content sharing via multiple content distribution servers
US8732579B2 (en) 2011-09-23 2014-05-20 Klip, Inc. Rapid preview of remote video content
US8874781B2 (en) 2011-10-17 2014-10-28 Qualcomm Incorporated System and apparatus for power efficient delivery of social network updates to a receiver device in a broadcast network
US9229740B1 (en) 2011-11-02 2016-01-05 Amazon Technologies, Inc. Cache-assisted upload proxy
US20130219006A1 (en) 2012-02-21 2013-08-22 Sony Corporation Multiple media devices through a gateway server or services to access cloud computing service storage
US9015269B2 (en) 2012-06-19 2015-04-21 Canon Kabushiki Kaisha Methods and systems for notifying a server with cache information and for serving resources based on it
US9055124B1 (en) 2012-06-19 2015-06-09 Amazon Technologies, Inc. Enhanced caching of network content
US10154109B2 (en) 2012-07-31 2018-12-11 Apple Inc. Delivering content to electronic devices using local caching servers
US10187315B2 (en) 2012-09-06 2019-01-22 Apple Inc. Apparatus and method for optimizing communications at an intermittent communication link
US9514785B2 (en) 2012-09-07 2016-12-06 Google Inc. Providing content item manipulation actions on an upload web page of the content item
US20140143647A1 (en) 2012-11-16 2014-05-22 Qualcomm Incorporated Method for improving browser cache by reducing duplicate stored content
US9298391B2 (en) 2012-12-19 2016-03-29 Dropbox, Inc. Application programming interfaces for data synchronization with online storage systems
US20140181040A1 (en) 2012-12-21 2014-06-26 Zetta, Inc. Client application software for on-line backup and disaster recovery
US20150169701A1 (en) 2013-01-25 2015-06-18 Google Inc. Providing customized content in knowledge panels
US9189510B2 (en) 2013-02-26 2015-11-17 Facebook, Inc. System and method for implementing cache consistent regional clusters
CN104038510B (zh) * 2013-03-04 2018-11-09 腾讯科技(深圳)有限公司 iOS系统透明代理的实现方法及系统
US9942299B2 (en) 2013-03-15 2018-04-10 Yottaa Inc. System and method for managing multiple variants of an HTTP object
US20150004949A1 (en) 2013-06-28 2015-01-01 Callplease Llc Message processing system
US9930132B2 (en) 2014-01-10 2018-03-27 Facebook, Inc. Content specific router caching
US10291735B2 (en) 2014-07-23 2019-05-14 Facebook, Inc. Residential cache appliance utilizing a social network
US10397357B2 (en) 2014-07-23 2019-08-27 Facebook, Inc. Rural area network device
EP3040931A1 (en) 2014-12-29 2016-07-06 Facebook, Inc. Application service delivery through an application service avatar
US10205797B2 (en) 2014-12-29 2019-02-12 Facebook, Inc. Application service delivery through an application service avatar

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030084091A1 (en) * 2001-09-28 2003-05-01 International Business Machines Corporation Apparatus and method for offloading application components to edge servers
JP2003228520A (ja) * 2001-12-12 2003-08-15 Pervasive Security Systems Inc 保護電子データにオフラインでアクセスする方法及び装置
CN102946407A (zh) * 2011-09-30 2013-02-27 微软公司 在重新连接时传递非预期协作服务器响应
WO2013152820A1 (en) * 2012-04-10 2013-10-17 Alcatel Lucent Optimizing backhaul and wireless link capacity in mobile telecommunication systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11862160B2 (en) 2020-10-27 2024-01-02 Seiko Epson Corporation Control method for display system, and display system

Also Published As

Publication number Publication date
AU2014415653A1 (en) 2017-07-27
CN107251086A (zh) 2017-10-13
KR20170102289A (ko) 2017-09-08
CA2971154A1 (en) 2016-07-07
IL253064B (en) 2020-01-30
WO2016108828A1 (en) 2016-07-07
MX2017008740A (es) 2017-11-17
US20160191673A1 (en) 2016-06-30
KR102277186B1 (ko) 2021-07-14
MX367217B (es) 2019-08-09
US20190141162A1 (en) 2019-05-09
JP2018509672A (ja) 2018-04-05
US10601947B2 (en) 2020-03-24
JP6762406B2 (ja) 2020-09-30
IL253064A0 (en) 2017-08-31
US10205797B2 (en) 2019-02-12
BR112017013902A2 (pt) 2018-01-02
CN107251086B (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
JP6762406B2 (ja) アプリケーションサービス・アバターを用いたアプリケーションサービス配信
US20210360079A1 (en) Unified end user notification platform
JP7422834B2 (ja) サーバ、プログラム及び情報処理方法
US10397357B2 (en) Rural area network device
EP4009610A1 (en) Multi-modal conversational intercom
US10931778B2 (en) Content delivery network system and method
JP6676080B2 (ja) 近距離通信を介してアプリケーションバージョンをインストールする方法およびシステム
US9083693B2 (en) Managing private information in instant messaging
US9047308B2 (en) Methods and apparatus for providing unified access to various data resources using virtualized services
US9961130B2 (en) Distributed high availability processing methods for service sessions
US20140012932A1 (en) Integrating social network posts
US11611492B2 (en) Conversational bots platform
EP3040931A1 (en) Application service delivery through an application service avatar
US11316816B1 (en) Systems and methods for asynchronous communication
EP3121713A2 (en) Methods and systems for installing an application version via close-range communications
US10652323B2 (en) Secure and seamless offline file transfer through peer to peer wireless communication
US20130297707A1 (en) Enabling and supporting a presence server cache
Aitsaadi et al. Cloudification of the internet of things
Miltenburg et al. Functional breakdown of decentralised social networks
US20130132478A1 (en) Establishing Communication Among Parties Based on Location
Namiot et al. On Data Program Interfaces.
US20190132420A1 (en) Temporal pinning of an entity to a data center

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190731

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200908

R150 Certificate of patent or registration of utility model

Ref document number: 6762406

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350