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

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

Info

Publication number
JP2018509672A
JP2018509672A JP2017534837A JP2017534837A JP2018509672A JP 2018509672 A JP2018509672 A JP 2018509672A JP 2017534837 A JP2017534837 A JP 2017534837A JP 2017534837 A JP2017534837 A JP 2017534837A JP 2018509672 A JP2018509672 A JP 2018509672A
Authority
JP
Japan
Prior art keywords
avatar
application service
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.)
Pending
Application number
JP2017534837A
Other languages
English (en)
Inventor
ルイス ボハノン、フィリップ
ルイス ボハノン、フィリップ
プーサラ、ビスワナス
Original Assignee
フェイスブック,インク.
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 フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2018509672A publication Critical patent/JP2018509672A/ja
Pending legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

いくつかの実施形態は、アバターサーバを動作させる方法を含む。本方法は、アプリケーションサービスを複数のクライアントアプリケーションに提供するためのアプリケーションサービス・サーバへの少なくとも断続的なネットワークアクセスを有するアバターサーバにアプリケーションサービス・アバターを実装することを含むことができる。アバターサーバは、アバターサーバに接続された1つ以上のエンドユーザデバイスのプロファイルを管理してアプリケーションサービスにアクセスすることによってサービスグループを設定することができる。アバターサーバは、1つ以上のエンドユーザデバイスに対して、アプリケーションサービスによって提供される複数の機能の少なくとも一部分をエミュレートすることによって、例えば、少なくとも部分的に、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 basic services : FBSs)、またはそれらの任意の組み合わせとすることができる。通常、アプリケーションサービス・アバターの存在なしに、1つまたは複数のエンドユーザデバイスは、1つまたは複数のアプリケーションサービス・サーバからアプリケーションサービスを直接要求することができる。例えば、エンドユーザデバイスは、1つまたは複数のアプリケーションサービス・サーバのサーバ・サービス・アプリケーション・プログラミング・インタフェイス(server service application programming interface : API)にアクセスするように構成されたクライアントプログラムを実行することができる。例えば、クライアントプログラムは、モバイルアプリケーション、デスクトップアプリケーション、ブラウザベースのアプリケーション、またはそれらの任意の組み合わせとして具体化することができる。
アプリケーションサービス・アバターは、アバターサーバ上に実装することができる。アバターサーバは、計算能力を有し、エンドユーザデバイスのローカルセット(local set)のコンテンツをキャッシュし、エンドユーザデバイスのプロファイルを追跡するメモリ容量を有し、エンドユーザデバイスのローカルセットへの連続的な接続性を有し(一方で、ローカルセットの関係性は時間とともに変化する)、1つまたは複数のアプリケーションサービス・サーバへの少なくとも断続的な接続性を有する。アバターサーバは、(例えば、アバターサーバ上で動作する仮想マシンまたはアバターアプリケーションプロセスとして)単一のアプリケーションサービス・アバターまたは複数のアプリケーションサービス・アバターをホストするためのプラットフォームを提供することができる。
各アプリケーションサービス・アバターは、アプリケーションサービス・アバターの存在なしに、1つまたは複数のアプリケーションサービス・サーバがエンドユーザデバイスに通常提供する複数の機能の少なくとも一部分を記憶することができる。1つまたは複数のアプリケーションサービス・サーバは、サービス機能をアプリケーションサービス・アバターに公開し、アプリケーションサービス・アバターへの断続的な接続性だけを有するにもかかわらず、1つまたは複数のアプリケーションサービス・サーバによって提供されるサービス機能の少なくとも一部分をエミュレート(emulate)できるようにする委譲(delegation)APIを提供することができる。例えば、このセットアップの下では、サービスタスクは、例えばアプリケーションサービス・アバターによって局所的に部分的に完了され、サービスタスクの完了は、断続的な接続が再び利用可能になるまで遅延させることができる。
アプリケーションサービス・アバターは、次に、アバターAPIを実装することができる。アバターAPIは、アプリケーションに、1つまたは複数のアプリケーションサービス・サーバによって提供されるサービス機能の少なくとも一部分をプログラム的に公開し、アプリケーションサービス・アバターに接続されたローカルネットワークアイランド内のエンドユーザデバイス(例えば、携帯電話ハンドセットまたは他のコンピューティングデバイス)のサービス要求に応答し、エンドユーザデバイスをターゲットとする1つ以上のアプリケーションサービス・サーバからのコマンドを処理し、またはそれらの任意の組み合わせを実行する。アバターAPIは、1つまたは複数のアプリケーションサービス・サーバと非同期で通信することもできる(たとえば、1つまたは複数のアプリケーションサービス・サーバでサービス要求をさらに処理するためにサービス要求を受信することとは非同期)。アバターAPIによって提供されるこれらのサービス機能は、例えば、エンドユーザデバイスのローカルセットのプロファイルを識別すること、エンドユーザ要求が受信されたが断続的な接続が利用できない場合の「ストアアンドフォワード(store and forward)」機能、エンドユーザデバイスのローカルセットなどの、広域(「コア(core)」)ネットワーク内の1つまたは複数のアプリケーションサービス・サーバまたは他のソースから)コンテンツをキャッシュすることを含む。
開示された実施形態は、1つまたは複数のアバターサーバが、「バックホール(backhaul)」ネットワークとエンドユーザデバイスとの間のどこにでも実装されることを可能にする。バックホール・ネットワークは、断続的に接続されるクライアントに代わってインターネットに接続されたサーバと情報を交換するように構成されたネットワーク(例えば、イントラネットまたはインターネット)の一部である。例えば、アバターサーバは、ローカルネットワークアクセスポイントまたはアグリゲーションネットワーク機器(aggregation network appliance)に結合された独立したサーバとすることができる。あるいは、アバターサーバは、ローカルネットワークアクセスポイント、アグリゲーションネットワーク機器、またはエンドユーザデバイスと統合され得る。アバターサーバは、エンドユーザデバイス上のアプリケーション・ポータルとアプリケーションサービス・サーバとの間で相互通信することができ、または遅延対話を促進することができる。
アプリケーションサービス・アバターは、ローカル地理的領域(local geographical region)内のエンドユーザデバイスにサービスを提供することができる。アプリケーションサービス・アバターは、断続的なネットワーク中断があっても、(アプリケーションサービス・サーバのサービス機能の一部分またはすべてであり得る)継続的なサービスを提供することができる。
アプリケーションサービス・アバターは、少なくとも別の「ネットワークアイランド(network island)」(例えば、少なくとも断続的にネットワークおよび/またはコアネットワーク(例えば、インターネット)に接続された1組のコンピューティングデバイス)への断続的または継続的なネットワークアクセスを有する。例えば、断続的なネットワーク接続は、衛星(例えば、低軌道衛星または静止軌道衛星)、無人航空機または他の航空機、列車、船舶または他の水系の船舶、他の断続的に接続された通信リレー、またはそれらの任意の組み合わせを含むことができる。ネットワークアイランドは、一緒に「メッシュ(mesh)」ネットワークを形成することができる。メッシュ・ネットワークは、各メッシュ・ノード(例えば、ネットワークデバイス)がネットワークのデータを中継し、すべてのノードがネットワーク内のデータの分散において協力するネットワークトポロジである。
いくつかの実施形態では、1つまたは複数のアプリケーションサービス・アバターは、ネットワークアイランド内のユーザに、ニュースフィード、メッセージング、メディアブラウジングなどを含む基本的なソーシャルネットワーク機能を提供することができる。アプリケーションサービス・アバターは、バックホール・ネットワークチャネルが利用できなくなったときに、ネットワークアイランド内の1つまたは複数のデバイスからの下り通信(outgoing communications)(例えば、コンテンツ、メッセージ、データ要求など)をバッファし、バックホール・ネットワークチャネルが利用可能になったときに、これらを送信することができる。アプリケーションサービス・アバターは、バックホール・ネットワークチャネルがアクティブなときに例えば、ネットワークアイランドの外部のコンピューティングデバイスからの上り通信(例えば、ウェブページ、上りメッセージ、メディアコンテンツ、テキスト、スクリプト、または実行可能ファイル)を受信してキャッシュし、バックホール・ネットワークチャネル、つまり断続的なネットワークアクセスが利用できないとき、ネットワークアイランド内のデバイスがリソースにアクセスすることができる。例えば、アプリケーションサービス・アバターは、最近要求されたリソース、通常要求されたリソース、およびネットワークアイランド内のユーザのプリファレンスプロファイル(preference profiles)に一致するリソースをキャッシュすることができる。アプリケーションサービス・アバターは、そのユーザのアイデンティティをアプリケーションサービス・サーバに提供することができる。例えば、ソーシャルネットワーキングシステムのアプリケーションサービス・サーバは、ローカルネットワークアイランド内のユーザのプロファイルを生成して格納し、キャッシングのためにアプリケーションサービス・アバターにどのプロファイル特有のリソース(profile-specific resources)を「プッシュ(push)」するかを予測することができる。プッシュは、宛先クライアント(destination client)(例えば、アプリケーションサービス・アバター)に対するデータ送信要求がサーバ(例えば、アプリケーションサービス・サーバ)によって開始されるデータ転送通信を含む。一例として、アプリケーションサービス・サーバは、プロファイル特有のリソース、通常、アクセス可能な公的に利用可能なデータ、または実際には他の任意のタイプの適切なデータをプッシュすることができる。
プロファイル特有のリソースは、ネットワークアイランド内でアクティブであるユーザプロファイルに関連するデータ(例えば、個人データ)を含むことができる。ユーザプロファイルのプロファイル特有リソースは、関連するユーザプロファイル(affiliated user profiles)に関連付けられたデータも含むことができる。例えば、関連するソーシャルネットワークノードは、プロファイルのプリファレンス、属性、動作、またはユーザプロファイルのアクティビティに基づいて識別され得る。地理的近接度(例えば、同じ都市または閾値距離半径内)、(例えば、ソーシャルネットワーキングシステムのソーシャルグラフにおける閾値の分離度内のユーザプロファイルに社会的に結合されている)社会的近接度、または、(例えば、同じネットワークアイランド内の)ネットワーク近接性を含むことができる。
いくつかの実施形態は、有利には、アプリケーションサービス・アバターを利用して地方にコンテンツアクセスおよびアプリケーションサービス機能を提供する。アプリケーションサービス・アバターは、(例えば、複数のネットワーク構成要素のタイムスライス/帯域幅共有(time slicing/bandwidth sharing)のために)断続的な接続性および高いレイテンシを有するバックホールチャネルから生じる帯域幅制限に技術的解決策を提供する。アプリケーションサービス・アバターは、バックホールチャネルの断続的な接続性にもかかわらず、アプリケーションサービス機能の少なくとも一部分をエンドユーザに配信することを可能にする。アプリケーションサービス・アバターのアーキテクチャはまた、ネットワーク内の近くにサーバーロジックを複数のエンドユーザデバイスを移動させることによって、バックホールチャネルが存在しない場合でもネットワーク速度を向上させる。アプリケーションサービス・アバターは、さらに、完全なピアツーピアアーキテクチャ(peer-to-peer architecture)に変換することなく、従来のクライアントサーバ・アーキテクチャにおけるピアツーピアリンクを可能にする。いくつかのアプリケーションサービスは、地方のコミュニケーションのための基本的な手段と、人々の生活に関係する基本的な情報の更新を提供する。したがって、断続的なバックホール接続しか存在しないにもかかわらず、継続的なアプリケーションサービスを可能にすることは非常に有用であり得る。
図1は、様々な実施形態に従った地方ネットワーキングシステム(rural networking system)100のネットワークシステム環境を示すブロック図である。地方ネットワーキングシステム100は、ネットワークアイランド(例えば、ネットワークアイランド102)の集合を含む。各ネットワークアイランドは、ネットワーク機器104(例えば、ネットワークデバイス)によって確立され得る。ネットワーク機器104は、タワー、ボックス、ルータ、アクセスポイント、またはネットワーク接続を提供するための他の電子ハードウェアとすることができる。いくつかの実施形態では、ネットワーク機器104に接続された1つまたは複数のデバイスは、さらなるサブネットワークを確立することができ、これらのサブネットワークに接続されたデバイスは、さらに低レベルのネットワークなどを確立することができる。
例えば、ネットワーク機器104は、エンドユーザデバイス106のためのネットワーク接続を提供することができる。エンドユーザデバイス106は、コンピューティングデバイスである。例えば、エンドユーザデバイス106は、パーソナルコンピュータ、携帯電話、タブレット、ウェアラブルデバイス、IoT(Internet of Things)デバイス、または他の任意のモバイルデバイスまたは固定デバイスを含むことができる。複数のエンドユーザデバイス106間のネットワーク接続は、無線プロトコル、例えばLTE(long-term evolution)、3G、2G、Wi−Fi、Wi−Fi Direct、WiMAX、ブルートゥース、ブルートゥースLE、または任意のそれらの組み合わせを用いて確立され得る。ネットワーク接続は、有線プロトコル、例えば、ユニバーサルシリアルバス(USB)またはイーサネット(登録商標)に基づくこともできる。ネットワーク接続のネットワークアーキテクチャは、メッシュ・ネットワークまたはスター・ネットワークに基づくことができる。
いくつかの実施形態では、ネットワークデバイスのそれぞれは、コアネットワーク108、例えばインターネットまたは他の地域ネットワークに直接的または間接的に接続され得る。例えば、ネットワーク機器104は、バックホール・ネットワークチャネル110を介してコアネットワーク108に接続され得る。バックホール・ネットワークチャネル110は、そのエンドポイント間の接続を非連続的に提供する伝送媒体である。すなわち、バックホール・ネットワークチャネル110は、定期的にまたは散発的に機能することを停止し得る。バックホール・ネットワークチャネル110の例には、列車、無人機、衛星、船、またはそれらの任意の組み合わせによって実現されるネットワークが含まれる。
いくつかの実施形態では、ネットワーク機器104は、ネットワークアイランド102内の複数のエンドユーザデバイス106間の連続的な接続(continuous connectivity)と、エンドユーザデバイス106とコアネットワーク108との間の非連続的な接続(non-continuous connectivity)を提供することができる。ネットワーク機器104は、他のネットワークアイランドにも接続され得る。例えば、ネットワーク機器104は、別の断続的なネットワークチャネルを介して別の基地局、つまり、他の基地局に接続された別のネットワークアイランド内の他のコンピューティングデバイスに接続されてもよい。
バックホール・ネットワークチャネル110によって課せられる制限のために、ネットワークアイランド102は、コアネットワーク108に接続された外部システムと常にリアルタイムで通信することはできない。したがって、地方ネットワーキングシステム100は、アプリケーションサービス・サーバ114(例えば、ソーシャルネットワーキングシステム、クラウドアプリケーション、またはモバイルアプリケーションサーバのアプリケーションサーバ)に対応するアプリケーションサービス・アバター112を介して非同期アプリケーションサービスを支援するメカニズムを提供する。アプリケーションサービス・アバター112は、バックホール・ネットワークチャネル110とエンドユーザデバイス106との間(例えば、その間で包括的に)に具体化され、ネットワークアイランド102を確立することができる。すなわち、アプリケーションサービス・アバター112は、地方ネットワーキングシステム100の地方エッジ(rural edge)で具体化され得る。
いくつかの実施形態では、バックホール・ネットワークチャネル110は、ネットワーク機器のチェーン(例えば、アグリゲーションサーバ、基地局、スイッチ、ルータ、または他のネットワーク対応コンピューティングデバイス)を介してエンドユーザデバイス106に接続され得る。(例えば、ネットワーク距離の点で)エンドユーザデバイス106に最も近いのは、モバイルコア116、例えば進化したパケットコア(evolved packet core : EPC)とすることができる。EPCは、セルラーネットワーク、例えば、LTE(long-term evolution)ネットワークを介してユーザと接続するための統合された音声(converged voice)およびデータネットワーキングフレームワークを提供する。
モバイルコア116は、インターネットサービスプロバイダ(Internet service provider : ISP)のエッジPOP(edge point of presence)118に接続され得る。IPエッジPOP118は、複数の通信エンティティ間のインタフェースポイントである。例えば、ISPのエッジPOP118は、モバイルコア116とアプリケーションサービス・サーバ114との間、またはモバイルコア116とコンテンツ配信ネットワーク(content delivery network : CDN)120との間でデータ通信するためのインタフェースを提供し得る。CDNは、ユーザの地理的位置に基づいてウェブページおよび他のウェブコンテンツをユーザに配信する。CDN120は、アプリケーションサービスまたはアプリケーションサービスのグループ(例えば、ソーシャルネットワーキングシステムの複数のアプリケーションサービス)に固有のものであってもよい。CDN120は、アプリケーションサービスまたは複数のアプリケーションサービスのグループの静的コンテンツ(static content)を格納することができる。対照的に、アプリケーションサービス・サーバ114は、エンドユーザデバイス106からのサービス要求に応答して、CDN120によって提供される静的コンテンツへのリンクを生成することを含む動的コンテンツを生成することができる。CDN120が、サービス要求が目的とするアプリケーションサービスに関連する静的コンテンツをまだキャッシュしていない場合、CDN120は、アプリケーションサービスのデータセンター122にアクセスすることができる。いくつかの実施形態では、CDN120に格納されたコンテンツは、不正アクセスを防止するために暗号化または符号化される。
アプリケーションサービス・アバター112は、アプリケーションサービス・サーバ114によって提供されるアプリケーションサービスに対応することができる。例えば、アプリケーションサービスは、メッセージングサービス、ソーシャルネットワーキングサービス、写真共有サービス、コンテンツ検索サービス、コラボレーションサービス、その他の無料基本サービス、またはそれらの任意の組み合わせを含む。通常、アプリケーションサービス・アバターの存在なしに、1つ以上のエンドユーザデバイスは、アプリケーションサービス・サーバからアプリケーションサービスを直接要求することができる。例えば、エンドユーザデバイスは、アプリケーションサービス・サーバ114のアプリケーションサービスAPI 124にアクセスするように構成されたクライアントプログラムを実行することができる。例えば、クライアントプログラムは、1つ以上のモバイルアプリケーション、デスクトップアプリケーション、(例えば、JavaScript(登録商標)ベース、フラッシュベースなどの)ブラウザベースアプリケーション、またはそれらの任意の組み合わせであってもよい。
アプリケーションサービス・アバター112は、アバターサーバ126上で動作する仮想マシンまたはアプリケーションスレッドとして具体化され得る。アプリケーションサービス・アバター112は、アバターサーバ126のメモリスペース128にアクセス(例えば、読み書き)することができる。いくつかの実施形態では、メモリスペース128は、アプリケーションサービス・サーバ114の認証されたエージェントによってのみアクセス可能な暗号鍵で部分的または全体的に暗号化される。アバターサーバ126は、計算能力を有し、エンドユーザデバイス(例えば、エンドユーザデバイス106)のローカルセットのコンテンツをキャッシュし、エンドユーザデバイスのプロファイルを追跡するためのメモリ容量を有し、(ローカルセットの関係性は時間とともに変化するかもしれないが)エンドユーザデバイスのローカルセットへの連続的な接続を有し、アプリケーションサービス・サーバ114への断続的な接続(例えば、バックホール・ネットワークチャネル110)を有する。アバターサーバ126は、アプリケーションサービス・アバター112(すなわち、単一のインスタンス)またはアプリケーションサービス・アバター112を含む複数のアプリケーションサービス・アバター(複数のインスタンス)をホストするためにプラットフォームを提供する。
アプリケーションサービス・アバター112は、アプリケーションサービス・アバター112の存在なしに、アプリケーションサービス・サーバ114が通常、複数のエンドユーザデバイス(例えば、複数のエンドユーザデバイス106)に提供する複数の機能の少なくとも一部を保存することができる。アプリケーションサービス・サーバ114は、サービス機能をアプリケーションサービス・アバター112に公開し、アプリケーションサービス・アバター112に、アプリケーションサービス・サーバ114に提供されるサービス機能の少なくとも一部をエミュレートさせる委譲API 130を提供することができる。例えば、この設定の下では、サービス要求に対応するサービスタスクの完了が遅れることがある。
サービスタスクは、例えば、コンテンツプロビジョニングタスク(content provisioning task)(例えば、検索エンジンのタスク、メディアライブラリ、デジタルイエローブック(digital yellow book)、ニュースフィード、デジタル辞書または百科事典、デジタルマップ、ニュースフィード、またはそれらの任意の組み合わせ)であり、コンテンツ仕様または嗜好に従ってコンテンツを提供することができる。アプリケーションサービス・アバター112は、メモリスペース128においてコンテンツインデックスを事前キャッシングすることによって、コンテンツプロビジョニングタスクをエミュレートすることができる。アプリケーションサービス・アバター112は、コンテンツインデックスに基づいて要求ユーザの要求されたコンテンツを見つける(locate)ことができる。アプリケーションサービス・アバター112は、アプリケーションサービス・サーバ114への断続的な接続性(例えば、バックホール・ネットワークチャネル110の)が利用可能であるときに、コンテンツインデックスを更新することができる。アプリケーションサービス・アバター112は、ローカルデータバンク(例えば、メモリスペース128内)に以前に要求されたコンテンツをキャッシュすることができる。いくつかの実施形態では、アプリケーションサービス・サーバ114は、(例えば、ローカルネットワークアイランドに関連付けられたユーザプロファイルに基づいて)コンテンツをローカルデータバンクに予測的にプッシュする。いくつかの実施形態では、アプリケーションサービス・アバター112は、(アプリケーションサービス・サーバ114を含む)コアネットワーク108から要求される可能性のあるコンテンツをプリフェッチ(pre−fetch)(すなわち、読み出し)して、ユーザの要求に先立ってローカルデータバンクにコンテンツを記憶する。プリフェッチは、ローカルネットワークアイランドに関連付けられたユーザプロファイルに基づいて、要求される可能性のあるコンテンツを予測し、バックホール・ネットワークチャネル110、つまり、断続的な接続が利用可能であるときにコンテンツをフェッチすることによって行うことができる。アプリケーションサービス・アバター112は、どの情報/コンテンツがローカルデータバンクにキャッシュされているかに基づいてコンテンツインデックスを更新することができる。要求されたコンテンツを見つけるとき、アプリケーションサービス・アバター112は、コンテンツインデックスに従ってローカルデータバンクから要求されたコンテンツを最初に見つけようとすることができる。要求されたコンテンツがローカルデータバンクで利用できない場合、アプリケーションサービス・アバター112は、コアネットワーク108内のコンテンツのネットワークロケーションを識別することができる。バックホール・ネットワークチャネル110が利用できない場合、アプリケーションサービス・アバター112は、フェッチ・キュー(fetch queue)に格納するためにフェッチ要求を生成する。アプリケーションサービス・アバター112が、バックホール・ネットワークチャネル110が利用可能であることを検出すると、アプリケーションサービス・アバター112は、フェッチ・キューにおいて識別されたコンテンツのフェッチを開始し、フェッチされたコンテンツをローカルデータバンクに格納する。いくつかの実施形態では、コンテンツがフェッチされると、アプリケーションサービス・アバター112は、コンテンツを要求側ユーザのエンドユーザデバイスに転送するか、またはコンテンツがローカルデータバンクからの検索に利用可能であることをエンドユーザデバイスに通知する。
サービスタスクは、例えば、コンテンツルーティングタスク(例えば、メッセージングアプリケーション、掲示板、ソーシャルネットワーキングアプリケーション、イベント管理アプリケーション、コラボレーションアプリケーション、またはこれらの任意の組み合わせのタスク)であってもよく、ユーザからユーザへのメッセージまたはデバイスからデバイスへのメッセージをルーティングする。コンテンツルーティング要求を受信すると、アプリケーションサービス・アバター112は、メッセージの宛先と、宛先に関連付けられた宛先プロファイル(例えば、ユーザプロファイル、グループプロファイル、ページプロファイル、掲示板プロファイル)を識別する。アプリケーションサービス・アバター112は、メモリスペース128内のローカルエンティティのプロファイルのリストを管理する(maintain)ことができる。プロファイルの各々は、固有の識別、ネットワークアイランド102への接続の頻度、現在の位置、コンテンツプリファレンス、またはそれらの組み合わせを含む。宛先プロファイルがプロファイルリスト内で見つかると、アプリケーションサービス・アバター112は、直ちに宛先プロファイルに関連付けられたエンドユーザデバイスにメッセージを配信することができる。宛先プロファイルがプロファイルのリスト内で見つからない場合、アプリケーションサービス・アバター112は、バックホール・ネットワークチャネル(例えば、バックホール・ネットワークチャネル110)が利用可能であるかどうかを判定することができる。利用可能な場合、アプリケーションサービス・アバター112は、アプリケーションサービス・サーバ114にメッセージを送信して、その宛先にルーティングすることができる。利用できない場合、アプリケーションサービス・アバター112は、メッセージを発信キュー(outgoing queue)にキューイングし(queue)、メッセージをアプリケーションサービス・サーバ114に送信するためにバックホール・ネットワークチャネルが利用可能になるまで待機することができる。
サービスタスクは、例えば、コンテンツ公開タスク(例えば、ステータスを更新し、ブログを公開し、ローカル広告を公表し、イベントを発表し、オークションを発表し、販売のためにアイテムまたはサービスを発表し、またはそれらの任意の組み合わせのタスク)であり、共有可能なパブリックドメインにコンテンツをプッシュする。アプリケーションサービス・アバター112は、コンテンツ公開要求を受信したことに応答して、ローカルデータバンクに公開コンテンツを格納し、公開すべきコンテンツ(例えば、ニュースフィードの作成)を公開するためにアプリケーションサービス・サーバ114に転送することができる。バックホール・ネットワークチャネル110が利用できない場合、バックホール・ネットワークチャネル110が再び利用可能になると、コンテンツは、転送のためにキューイングされる。いくつかの実施形態では、アプリケーションサービス・アバター112は、公開プラットフォーム(publishing platform)のローカルバージョン(例えば、ニュースレター、ブログ、オークションサイト、プロフィールページ、発表ページ、イベントサイト、Wiki、またはそれらの任意の組み合わせなど)に公開されるべきコンテンツをローカルで事前に公開する(pre-publish)ことができる。公開プラットフォームのローカルバージョンは、バックホール・ネットワークチャネル110からコアネットワーク108へのアクセスができない場合であっても利用可能である。アプリケーションサービス・アバター112は、バックホール・ネットワークチャネル110が利用可能になったときにアプリケーションサービス・サーバ114を介してローカルバージョン(local version)をグローバルバージョン(global version)と同期させることができる。
いくつかの実施形態では、アプリケーションサービス・アバター112は、アプリケーションサービス・サーバ114と通信する時間(例えば、同期の実行、メッセージの送信、タスク要求の転送など)を決定して選択することができる。例えば、選択された時間は、バックホール・ネットワークチャネル110のリアルタイム帯域幅利用可能性、バックホール・ネットワークチャネル110の輻輳レベル、バックホール・ネットワークチャネル110の使用に関連する費用、通信に関連するアプリケーション要件、またはそれらの任意の組み合わせに基づいた最適な時間であり得る。
アプリケーションサービス・アバター112は、次に、アバターAPI 132を実装することができる。アバターAPI 132は、アプリケーションサービス・アバター112に接続されたネットワークアイランド102のエンドユーザのサービス要求に応答して、1つまたは複数のアプリケーションサービス・サーバによって提供されるサービス機能の少なくとも一部を公開し、エンドユーザデバイス106をターゲットとするアプリケーションサービス・サーバ114からのコマンドを処理するか、またはそれらの任意の組み合わせである。アバターAPI 132は、アプリケーションサービス・サーバ114と非同期で通信して(例えば、アプリケーションサービス・サーバ114でサービス要求をさらに処理するために)サービス要求を送信したり、コンテンツまたはコマンドを受信したりすることもできる。アバターAPI 132によって提供されるこれらのサービス機能は、エンドユーザデバイス106のローカルセットのプロファイルの識別、エンドユーザ要求が受信されたがバックホール・ネットワークチャネル110が利用できない場合の「ストアアンドフォワード(store and forward)」機能、エンドユーザデバイス106のローカルセットの(例えば、アプリケーションサービス・サーバ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のインスタンス(instance)が実装され、各エンドユーザデバイス上でアクティブとなる。いくつかの実施形態では、アプリケーションサービス・アバター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」)に少なくとも断続的に接続される。アバターサーバ302は、1つまたは複数のエンドユーザデバイス306の動的セット(dynamic set)を含むローカルネットワークに連続的に接続される。
アバターサーバ302は、そのオペレーティングシステム307上でアバターエンジン308を実行することができる。アバターエンジン308は、1つ以上のアバタープロセスをアバターサーバ302上で実行することを可能にする。いくつかの実施形態において、各アバタープロセスは、異なるアプリケーションサービスに対応する単一のアプリケーションサービス・アバターを含む。いくつかの実施形態では、複数のアバタープロセスは、ハードウェアの異なるセットでそれぞれ実装され得る。例えば、複数のアバタープロセスは、複数のサーバブレード(server blades)(例えば、アプリケーションブレード310Aおよびアプリケーションブレード310B、総称して「アプリケーション・サーバブレード310」)上にそれぞれ実装され得る。アプリケーション・サーバブレード310の各々は、独立した複数のプロセッサ、独立したオペレーティングメモリ、独立した永続データストレージ(persistent data storage)、またはそれらの任意の組み合わせを有することができる。アプリケーション・サーバブレード310は、ネットワークインタフェース、電源、永続データストレージ、またはそれらの任意の組み合わせを共有することができる。
いくつかの実施形態では、アバターサーバ302は、コンピュータ仮想化のためのハイパーバイザ312を実装することができる。ハイパーバイザ312は、1つまたは複数の仮想アバターサーバ(例えば、仮想サーバ314Aおよび仮想サーバ314B、総称して「仮想アバターサーバ314」)を実装することができる。各仮想アバターサーバ314は、単一のアプリケーションサービス・アバターまたは複数のアプリケーションサービス・アバターを実装することができる。いくつかの実施形態では、ハイパーバイザ312上、アプリケーション・サーバブレード上、および/またはオペレーティングシステム307上で動作する1つまたは複数のアプリケーションサービス・アバターは、ネットワーク環境において互いに通信し、且つ他のアプリケーションサービス・アバターと通信することができる。
いくつかの実施形態では、アバターサーバ302は、アバターデータベース316を実装することができる。アバターデータベース316は、オペレーティングシステム307、複数のアプリケーション・サーバブレード310のうちの1つ以上、または1つ以上の仮想アバターサーバにおいて実装され得る。アバターデータベース316は、キャッシュされたコンテンツ、キャッシュされたコンテンツのインデックス、エンドユーザデバイス306のデバイスプロファイル、エンドユーザデバイス306に関連付けられたユーザプロファイル、アプリケーションサービス・サーバ304または断続的なバックホール・ネットワークチャネルが利用できないことによって遅延される他のデバイスへのメッセージのためのメッセージキュー、またはそれらの任意の組み合わせを含むことができる。
図4は、様々な実施形態に従ったアプリケーションサービス・アバターのアバター・アプリケーションプログラミングインタフェース(API)400を示す機能ブロック図である。アバターAPI 400は、図1のアバターAPI 132であってもよい。アプリケーションサービス・アバターは、図1のアプリケーションサービス・アバター112または図2のアプリケーションサービス・アバター202であってもよい。アバターAPI 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のエンドユーザデバイス106)に接続されているかどうか、および/またはアバターサーバがアプリケーションサービス・サーバに接続されているかどうかを判定することができる。接続層404は、デバイスプロファイル(例えば、ソフトウェアおよびハードウェア能力、リソース容量、仕様、接続可否、アイデンティティ、またはそれらの任意の組み合わせ)および/またはユーザプロファイル(例えば、ソーシャルネットワーク、ロケーションベースのプロファイル、ネットワークアクセスプリファレンス、またはそれらの任意の組み合わせ)を含む全ての接続されたデバイスのリストを管理することができる。
接続層404は、エンドユーザデバイスが接続または切断するときに、他の層(例えば、アプリケーション層402またはルーティング層406)のうちの少なくとも1つに割り込みメッセージ(例えば、pingメッセージ)を送信することができる。接続層404は、バックホール・ネットワークチャネルが切断されたとき(例えば、アプリケーションサービス・サーバが切断されたとき)、他の層の少なくとも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は、上述の動作を実行するようにプロセッサ610をプログラムするためのソフトウェアおよび/またはファームウェアとして具体化してもよい。特定の実施形態では、そのようなソフトウェアまたはファームウェアは、コンピューティングデバイス600を介して(例えば、ネットワークアダプタ640を介して)リモートシステムからダウンロードすることによって、コンピューティングデバイス600に最初に提供されてもよい。
本明細書で紹介された技法は、例えば、ソフトウェアおよび/またはファームウェアでプログラムされたプログラム可能な回路(例えば、1つまたは複数のマイクロプロセッサ)によって、または完全に専用のハードワイヤード回路で、またはそのような形態の組み合わせによって具体化され得る。専用ハードワイヤード回路は、例えば、1つまたは複数の特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)などの形態であってもよい。
明細書において紹介された技術を具体化する際に使用するソフトウェアまたはファームウェアは、機械可読記憶媒体(machine-readable storage medium)に格納されてもよいし、1つまたは複数の汎用または専用のプログラム可能なマイクロプロセッサによって実行されてもよい。本明細書で使用される「機械可読記憶媒体」は、機械によってアクセス可能な形式で情報を格納することができる任意のメカニズムを含む(機械は、例えば、コンピュータ、ネットワーク装置、携帯電話、パーソナルデジタルアシスタント(PDA)、製造ツール、1つ以上のプロセッサを有する任意のデバイスなどとすることができる。)。例えば、機械アクセス可能な記憶媒体は、記録可能/記録不可能媒体(例えば、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置など)等を含む。
本明細書で使用される用語「ロジック」は、例えば、特定のソフトウェアおよび/またはファームウェアでプログラムされたプログラム可能な回路、専用ハードワイヤード回路、またはそれらの組み合わせを含み得る。
ソーシャルネットワーキングシステムの概要
開示されるアプリケーションサービスの様々な実施形態は、ソーシャルネットワーキングシステムを利用するか、またはソーシャルネットワーキングシステムの一部である。ソーシャルネットワーキングシステムは、一般に、ユーザがソーシャルネットワーキングシステムのコンテキスト内外のオブジェクトおよび他のユーザと対話することを可能にするメカニズムを提供する。ソーシャルネットワーキングシステムユーザは、個人または任意の他のエンティティ、例えば、ビジネスエンティティまたは他の非パーソンエンティティ(non-person entity)であってもよい。ソーシャルネットワーキングシステムは、ユーザを表示してユーザがソーシャルネットワーキングシステムのオブジェクトおよび情報と対話することを可能にする一連の相互接続されたページを含むウェブベースのインタフェースまたはモバイルインタフェースを利用することができる。例えば、ソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステムユーザによって入力された、またはソーシャルネットワーキングシステムユーザに関連するオブジェクトおよび情報を含む各ソーシャルネットワーキングシステムユーザのページ(例えば、ユーザの「プロファイル」)を表示することができる。ソーシャルネットワーキングシステムは、複数のコンセプトに注目した、類似の関心のある複数のユーザー(「グループ」)に注目した、または他のユーザへの、他のユーザから、または他のユーザによる複数のコミュニケーションやソーシャルネットワーキングシステムのアクティビティを含む写真やビデオを含む複数のページを有してもよい。ソーシャルネットワーキングシステムページは、他のソーシャルネットワーキングシステムページへのリンクを含むことができ、検索、リアルタイム通信、コンテンツアイテムアップロード、購入、広告、および他のウェブベース推論エンジンまたは機能などの追加機能を含み得る。ソーシャルネットワーキングシステムインタフェースは、ウェブブラウザまたは非ウェブブラウザアプリケーション、例えば、モバイルコンピューティングデバイスまたは他のコンピューティングデバイス上で実行される専用のソーシャルネットワーキングシステムアプリケーションからアクセス可能であり得ることに留意されたい。したがって、本明細書で使用される「ページ(page)」は、ウェブページ、アプリケーションインタフェースまたはディスプレイ、ウェブページまたはアプリケーション上に表示されるウィジェット、ボックスまたは他のグラフィカルインタフェース、(ソーシャルネットワーキングシステムコンテキスト内か外のどちらかの)別のページ上のオーバーレイウィンドウ(overlay window)、または複数の機能におけるソーシャルネットワーキングシステムプラグインまたは統合機能を有するソーシャルネットワーキングシステムの外部のウェブページであってもよい。
上述したように、ソーシャルグラフは、(相互作用、アクティビティまたは関連性を表す)エッジによって相互接続されたノードのセット(ソーシャルネットワーキングシステムオブジェクト、またはソーシャルオブジェクトとしても知られている)を含むことができる。ソーシャルネットワーキングシステムオブジェクトは、ソーシャルネットワーキングシステムユーザ、非パーソスエンティティ、コンテンツアイテム、グループ、ソーシャルネットワーキングシステムページ、ロケーション、アプリケーション、主題、概念または他のソーシャルネットワーキングシステムオブジェクト、例えば映画、バンド、本であってもよい。コンテンツアイテムは、ソーシャルネットワーキングシステムのユーザまたは他のオブジェクトが、例えば、メッセージ、キューイングされたメッセージ(例えば電子メール)、テキストおよびSMS(ショートメッセージサービス)メッセージ、コメントメッセージ、他の好適なメッセージ技術を用いたメッセージ、HTTPリンク、HTMLファイル、画像、ビデオ、オーディオクリップ、文書、文書編集、カレンダーエントリまたはイベント、および他のコンピュータ関連ファイルを作成、アップロード、編集、または対話することができるもののいずれかを含み得る。主題と概念は、ソーシャルグラフの説明において、任意の人物、場所、物、またはアイデアを表すノードを含む。
ソーシャルネットワーキングシステムは、ユーザが、ユーザの関心、教育および勤務経験、連絡先情報、人口統計情報、およびユーザのプロフィールページ内の他の経歴情報に関連する情報を入力および表示することを可能にすることができる。プロフィールページに含まれる各学校、雇用者、関心(例えば、音楽、書籍、映画、テレビ番組、ゲーム、政治的見解、哲学、宗教、グループ、またはファンページ)、地理的位置、ネットワーク、またはその他の情報は、ソーシャルグラフ内のノードによって表される。ソーシャルネットワーキングシステムは、ユーザが写真、ビデオ、文書、歌、または他のコンテンツアイテムをアップロードまたは作成することを可能にし、ユーザがイベントを作成およびスケジュールすることを可能にすることができる。コンテンツアイテムおよびイベントは、ソーシャルグラフ内のノードによって表されてもよい。
ソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステム内の非パーソンオブジェクトと対話するための様々な手段を提供することができる。例えば、ユーザは、ソーシャルネットワーキングシステム内でグループを形成したり、グループに参加したり、ファンページのファンになることができる。さらに、ユーザは、ソーシャルネットワーキングシステムオブジェクトを作成、ダウンロード、閲覧、アップロード、リンク付け、タグ付け、編集、または再生することができる。ユーザは、ソーシャルネットワーキングシステムのコンテキスト外でソーシャルネットワーキングシステムオブジェクトと対話することができる。例えば、ニュースウェブサイト上の記事は、ユーザがクリックできる「いいね(like)」ボタンを有する可能性がある。これらの各インスタンスにおいて、ユーザとオブジェクトとの間の対話は、ユーザのノードをオブジェクトのノードに接続するソーシャルグラフ内のエッジによって表される。ユーザは、特定の場所に「チェックイン(check in)」するために(モバイルデバイスのGPS受信機のような)位置検出機能を使用することができ、エッジは、ユーザのノードをソーシャルグラフ内の場所のノードに接続することができる。
ソーシャルネットワーキングシステムは、様々な通信チャネルをユーザに提供することができる。例えば、ソーシャルネットワーキングシステムは、ユーザが電子メール、インスタントメッセージ、またはテキスト/SMSメッセージを1人以上の他のユーザに実行することを可能にし、ユーザのウォール(wall)またはプロフィールまたは他のユーザのウォールまたはプロフィールにメッセージを掲示し、ユーザがグループまたはファンページにメッセージを投稿し、またはユーザがユーザまたは他のユーザによって作成またはアップロードされた画像、ウォールのポストまたは他のコンテンツアイテムにコメントすることを可能にすることができる。少なくとも1つの実施形態では、ユーザは、現在のイベント、心の状態、思考、感情、アクティビティ、または現時点で他に関連する任意のコミュニケーションを示すステータスメッセージをユーザのプロファイルに掲示する。ソーシャルネットワーキングシステムは、ユーザがソーシャルネットワーキングシステムの内部および外部の両方で通信することを可能にすることができる。例えば、第1のユーザは、ソーシャルネットワーキングシステムにおけるメッセージ、ソーシャルネットワーキングシステムを介した電子メール、ソーシャルネットワーキングシステムに起因するが外部の電子メール、ソーシャルネットワーキングシステムにおけるインスタントメッセージ、およびソーシャルネットワーキングシステムに起因するが外部のインスタントメッセージを第2のユーザに送信してもよい。さらに、第1のユーザは、第2のユーザのプロファイルページにコメントすることができ、または第2のユーザに関連するオブジェクト、例えば第2のユーザによってアップロードされたコンテンツアイテムにコメントすることができる。
ソーシャルネットワーキングシステムは、複数のユーザがソーシャルネットワーキングシステムの他のユーザと自身を関連付けて複数の接続を確立することを可能にする。2人のユーザ(例えば、ソーシャルグラフノード)がソーシャルネットワーキングシステムにおいてソーシャル接続を明示的に確立すると、2人のユーザは、ソーシャルネットワーキングシステムのコンテキスト内で「友達」(または「接続」)になる。例えば、「Jane Smith」によって受け入れられた「John Doe」から「Jane Smith」への友達要求は、ソーシャル接続である。ソーシャル接続は、ソーシャルネットワークのエッジである。ソーシャルネットワーキングシステムで友達になると、ユーザは、接続されていないユーザに利用可能な他の情報よりも多くの情報にアクセスすることができる。例えば、友達であることは、ユーザが別のユーザのプロフィールを見ること、他のユーザの友達を見ること、または別のユーザの写真を見ることを可能にすることができる。同様に、ソーシャルネットワーキングシステム内で友達となることは、ユーザが、(ソーシャルネットワーキングシステムの内部および外部の)電子メール、インスタントメッセージ、テキストメッセージ、電話、または他の任意の通信インタフェースなどによって他のユーザとコミュニケーションするためにより多くのアクセスを可能にする。コミュニケーションのアップロードされたコンテンツアイテムを閲覧、コメント、ダウンロード、承認または他の方法で対話することを可能にすることができる。接続を確立すること、ユーザ情報にアクセスすること、コミュニケーションすること、およびソーシャルネットワーキングシステムのコンテキスト内で対話することは、2人のソーシャルネットワーキングシステムユーザを表すノード間のエッジによって表される。
ソーシャルネットワーキングシステムにおける接続を明示的に確立することに加えて、共通の特性を有する複数のユーザは、通信のトピックを決定する際に使用するためのソーシャルコンテキストを決定する目的で(ソフトまたは暗黙的接続(soft or implicit connection)などの)接続されたものと見なすことができる。少なくとも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つ以上のエンドユーザデバイスのネットワークアクセスまたはアグリゲーション通信データを提供するネットワーク機器に実装される、請求項12に記載のアバターサーバ。
  14. 前記アバターサーバは、前記1つ以上のエンドユーザデバイスのネットワークアクセスを提供するネットワーク機器とは独立して実装される、請求項12に記載のアバターサーバ。
  15. 前記アバターサーバは、前記1つ以上のエンドユーザデバイスのうちの1つに実装される、請求項14に記載のアバターサーバ。
JP2017534837A 2014-12-29 2014-12-30 アプリケーションサービス・アバターを用いたアプリケーションサービス配信 Pending JP2018509672A (ja)

Applications Claiming Priority (3)

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
PCT/US2014/072633 WO2016108828A1 (en) 2014-12-29 2014-12-30 Application service delivery through an application service avatar

Related Child Applications (1)

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

Publications (1)

Publication Number Publication Date
JP2018509672A true JP2018509672A (ja) 2018-04-05

Family

ID=56165753

Family Applications (2)

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

Family Applications After (1)

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

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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10601947B2 (en) 2014-12-29 2020-03-24 Facebook, Inc. Application service delivery through an application service avatar
JP2022550609A (ja) * 2020-06-29 2022-12-02 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド ミニプログラムの音声制御方法、機器及び記憶媒体

Families Citing this family (27)

* 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
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
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 东软集团股份有限公司 部署微服务应用的方法、装置和存储介质以及电子设备
CA3105141A1 (en) * 2018-07-19 2020-01-23 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 北京邮电大学 一种无人机的网络部署和资源分配的方法及其系统
JP7459760B2 (ja) * 2020-10-27 2024-04-02 セイコーエプソン株式会社 表示システムの制御方法、表示システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051839A (ja) * 1999-08-12 2001-02-23 Nippon Telegr & Teleph Corp <Ntt> クライアント・サーバシステム及びその制御方法並びにクライアント端末
JP2003228520A (ja) * 2001-12-12 2003-08-15 Pervasive Security Systems Inc 保護電子データにオフラインでアクセスする方法及び装置
WO2010106832A1 (ja) * 2009-03-18 2010-09-23 日本電気株式会社 データ同期システム
JP2013510356A (ja) * 2009-11-06 2013-03-21 アルカテル−ルーセント コンテンツをプリフェッチおよびキャッシュするためのシステムおよび方法

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
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
US20020178330A1 (en) 2001-04-19 2002-11-28 Schlowsky-Fischer Mark Harold Systems and methods for applying a quality metric to caching and streaming of multimedia files over a network
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
US8412791B2 (en) 2001-09-28 2013-04-02 International Business Machines Corporation Apparatus and method for offloading application components to edge servers
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
US20050234864A1 (en) 2004-04-20 2005-10-20 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
CA2807829C (en) 2004-11-04 2017-10-10 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
EP1886232A1 (en) 2005-06-02 2008-02-13 Thomson Licensing Content timing method and system
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
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
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
WO2012103515A1 (en) 2011-01-28 2012-08-02 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
GB2517815A (en) 2011-04-19 2015-03-04 Seven Networks Inc 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
WO2013038320A1 (en) 2011-09-16 2013-03-21 Strangeloop Networks, Inc. Mobile resource accelerator
US8412772B1 (en) 2011-09-21 2013-04-02 Color Labs, Inc. Content sharing via social networking
US8732579B2 (en) 2011-09-23 2014-05-20 Klip, Inc. Rapid preview of remote video content
US20130086437A1 (en) * 2011-09-30 2013-04-04 Microsoft Corporation Communicating unexpected collaboration server responses on reconnection
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
EP2651152B1 (en) * 2012-04-10 2018-08-15 Alcatel Lucent Optimizing backhaul and wireless link capacity in mobile telecommunication systems
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
US10205797B2 (en) 2014-12-29 2019-02-12 Facebook, Inc. Application service delivery through an application service avatar
EP3040931A1 (en) 2014-12-29 2016-07-06 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
JP2001051839A (ja) * 1999-08-12 2001-02-23 Nippon Telegr & Teleph Corp <Ntt> クライアント・サーバシステム及びその制御方法並びにクライアント端末
JP2003228520A (ja) * 2001-12-12 2003-08-15 Pervasive Security Systems Inc 保護電子データにオフラインでアクセスする方法及び装置
WO2010106832A1 (ja) * 2009-03-18 2010-09-23 日本電気株式会社 データ同期システム
JP2013510356A (ja) * 2009-11-06 2013-03-21 アルカテル−ルーセント コンテンツをプリフェッチおよびキャッシュするためのシステムおよび方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10601947B2 (en) 2014-12-29 2020-03-24 Facebook, Inc. Application service delivery through an application service avatar
JP2022550609A (ja) * 2020-06-29 2022-12-02 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド ミニプログラムの音声制御方法、機器及び記憶媒体
JP7373063B2 (ja) 2020-06-29 2023-11-01 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド ミニプログラムの音声制御方法、機器及び記憶媒体
US11984120B2 (en) 2020-06-29 2024-05-14 Beijing Baidu Netcom Science Technology Co., Ltd. Voice control method for applet and device, and storage medium

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6762406B2 (ja) アプリケーションサービス・アバターを用いたアプリケーションサービス配信
US20200153918A1 (en) Multi-modal conversational intercom
US10397357B2 (en) Rural area network device
US10931778B2 (en) Content delivery network system and method
JP6676080B2 (ja) 近距離通信を介してアプリケーションバージョンをインストールする方法およびシステム
US20140325601A1 (en) Managing private information in instant messaging
US20150244769A1 (en) Content delivery system
US20240106902A1 (en) Communication protocols for an online content management system
JP6185488B2 (ja) 公開カレンダーからの可用性情報の引き出し
CN107667513B (zh) 用于远程网络拓扑发现的系统和方法
JP2019506665A (ja) シンジケート化されたクラウドベースのnotification as a service
Sneps-Sneppe et al. On mobile cloud for smart city applications
EP3040931A1 (en) Application service delivery through an application service avatar
US10231269B2 (en) Dynamic generation of geographically bound manet IDs
US10652323B2 (en) Secure and seamless offline file transfer through peer to peer wireless communication
US20140258439A1 (en) Shared client caching
US9456024B1 (en) Content sharing in mobile ad hoc networks
US20190378504A1 (en) Cognitive agent disambiguation
US20190132420A1 (en) Temporal pinning of an entity to a data center
Gorman Implement Caching for Solutions
JEEVAN et al. Mobile Cloud Computing Service Models: A User-Centric Approach

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190305

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190520