KR20170102289A - 애플리케이션 서비스 아바타를 통한 애플리케이션 서비스 전달 - Google Patents

애플리케이션 서비스 아바타를 통한 애플리케이션 서비스 전달 Download PDF

Info

Publication number
KR20170102289A
KR20170102289A KR1020177020963A KR20177020963A KR20170102289A KR 20170102289 A KR20170102289 A KR 20170102289A KR 1020177020963 A KR1020177020963 A KR 1020177020963A KR 20177020963 A KR20177020963 A KR 20177020963A KR 20170102289 A KR20170102289 A KR 20170102289A
Authority
KR
South Korea
Prior art keywords
application service
avatar
server
content
service
Prior art date
Application number
KR1020177020963A
Other languages
English (en)
Other versions
KR102277186B1 (ko
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 KR20170102289A publication Critical patent/KR20170102289A/ko
Application granted granted Critical
Publication of KR102277186B1 publication Critical patent/KR102277186B1/ko

Links

Images

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
    • H04L67/2861
    • 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

몇몇 실시예는 아바타 서버를 운영하는 방법을 포함한다. 본 방법은 애플리케이션 서비스를 클라이언트 애플리케이션으로 제공하기 위한 애플리케이션 서비스 서버로의 적어도 하나의 간헐적 네트워크 액세스를 가지는 아바타 서버의 애플리케이션 서비스 아바타를 구현하는 단계를 포함할 수 있다. 아바타 서버는 애플리케이션 서비스에 액세스하도록 아바타 서버와 연결된 하나 이상의 최종-사용자 장치의 프로필을 관리함으로써 서비스 그룹을 확립할 수 있다. 아바타 서버는 예컨대 아바타 서버에서 최종-사용자 장치 중 적어도 하나로부터의 서비스 요청을 적어도 부분적으로 로컬 처리함으로써 최종-사용자 장치로 애플리케이션 서버에 의해 제공된 기능의 적어도 하나의 서브세트를 에뮬레이팅하여 로컬 애플리케이션 서비스를 제공할 수 있다. 아바타 서버는 서비스 요청을 완료하도록 애플리케이션 서비스 서버와 비동기식으로 통신할 수 있다.

Description

애플리케이션 서비스 아바타를 통한 애플리케이션 서비스 전달
본 출원은 본 명세서에 전체로서 참조로 통합되는 2014년 12월 29일자로 출원된 미국특허출원 제14/584,815호의 우선권을 주장한다.
전력망 및/또는 인터넷과 전원의 지리적 영역을 연결하는 것은 어려울 수 있고 예컨대 네트워크 운영자, 정부 기관, 전력 회사 또는 다른 사람들에 의해 막대한 투자가 필요할 수 있다. 적어도 일부의 이러한 이유로, 개발도상국의 많은 전원 영역은 예컨대 케이블이나 전화선 등을 통해 지속적인 전기 공급 또는 유선 인터넷 연결을 이용할 수 없는 경우가 많다. 그러나, 전 세계적으로 인터넷 서비스가 확대됨에 따라 이러한 영역의 사람들은 때때로 제한된 계산 능력(예컨대, 느린 프로세서 및/또는 클라이언트-측 스크립트 실행 능력의 부족)을 갖는 가령 저가형 휴대전화 핸드셋("저가형 모바일 장치(low-end mobile devices)")과 같은 모바일 장치를 사용한다. 저가형 모바일 장치에서 실행("운영")되는 애플리케이션은 흔히 서버에 대한 계산 및 메모리 소비를 줄이고 사용자-대-사용자 상호작용을 더 용이하게 하도록 클라이언트-서버 구조를 구현한다. 그러나, 이러한 모바일 장치용 무선 네트워크는 신뢰할 수 있는 네트워크 인프라가 부족하기 때문에 간헐적인 네트워크 중단으로 어려움을 겪을 수 있다. 종래의 클라이언트-서버 컴퓨팅 구조를 구현하는 애플리케이션의 경우, 간헐적인 네트워크 중단은 예컨대 명령어나 데이터가 필요할 때 클라이언트로서의 애플리케이션이 대응하는 서버로부터 명령어 또는 데이터를 수신할 수 없기 때문에 애플리케이션의 적절한 운영을 방해할 수 있다.
특히, 본 발명에 따른 실시예들은 방법, 저장매체, 시스템 및 컴퓨터 프로그램 제품에 관한 첨부된 청구항들에 개시되며, 예컨대 방법과 같은 하나의 청구항 카테고리로 언급되는 임의의 특징은 또한 예컨대 시스템과 같은 또 다른 청구항 카테고리로 청구될 수 있다. 첨부된 청구항들에서 종속항들이나 재-참조(references back)가 단지 형식적인 이유로 선택된다. 그러나, 임의의 이전의 청구항들에 대한 의도적인 재-참조(특히, 다수의 종속항들)로부터 생성된 임의의 발명의 내용은 청구항들과 이들의 특징들의 임의의 조합이 개시되고 첨부된 청구항들에서 선택된 종속항들에 관계없이 청구될 수 있도록 또한 청구될 수 있다. 청구될 수 있는 발명의 내용은 첨부된 청구항들에서 제시되는 특징들의 조합뿐 아니라 청구항들의 특징들의 임의의 다른 조합을 포함하며, 청구항들에 언급된 각각의 특징은 청구항들의 임의의 다른 특징이나 다른 특징들의 조합과 결합될 수 있다. 게다가, 본 명세서에 기술되거나 도시된 임의의 실시예들 및 특징들은 단독의 청구항으로 및/또는 본 명세서에서 기술되거나 도시된 임의의 실시예나 특징과의 임의의 조합으로 또는 첨부된 청구항들의 임의의 특징들로 청구될 수 있다.
본 발명에 따른 일실시예로, 본 방법은 백홀(backhaul) 네트워크 채널을 통해 애플리케이션 서비스를 클라이언트 애플리케이션에 제공하기 위한 애플리케이션 서비스 서버로의 적어도 하나의 간헐적 네트워크 액세스를 가지는 아바타 서버(avatar server)에서 애플리케이션 서비스 아바타를 구현하는 단계; 애플리케이션 서비스에 액세스하는 아바타 서버와 연결되는 하나 이상의 최종-사용자 장치의 목록을 관리함으로써 서비스 그룹을 확립하는 단계; 애플리케이션 서비스에 의해 제공되는 기능의 적어도 하나의 서브세트를 에뮬레이팅(emulating)함으로써 아바타 서버를 통해 최종-사용자 장치로 로컬 애플리케이션 서비스(localized application service)를 제공하는 단계; 및 서비스 요청을 완료하도록 애플리케이션 서비스 서버와 비동기식으로 통신하는 단계를 포함하며, 상기 로컬 애플리케이션 서비스를 제공하는 단계는 아바타 서버에서 최종-사용자 장치 중 적어도 하나로부터의 서비스 요청을 적어도 부분적으로 로컬 처리(locally processing)하는 단계를 포함한다.
로컬 애플리케이션 서비스를 제공하는 단계는: 서비스 그룹 내 적어도 하나의 제1 최종-사용자 장치로부터, 서비스 그룹 내 제2 최종-사용자 장치와 관련되는 아바타 서버에서의 서비스 요청을 수신하는 단계; 및 제1 최종-사용자 장치를 대신하여 제2 최종-사용자 장치로 메시지를 통신함으로써 서비스 요청을 적어도 부분적으로 처리하는 단계를 더 포함할 수 있다.
상기 메시지를 통신하는 것은 백홀 네트워크 채널이 이용 가능하지 않거나 애플리케이션 서비스 서버가 접속될 수 없다는 결정에 응답할 수 있다.
서비스 요청을 처리하는 단계는 서비스 요청에 의해 표시되거나, 서비스 요청에서 참조되거나, 서비스 요청으로부터 유래한 메시지를 식별하는 단계를 포함할 수 있다.
애플리케이션 서비스 서버와 비동기식으로 통신하는 단계는 백홀 네트워크 채널이 이용 가능하다는 결정에 응답할 수 있다.
로컬 애플리케이션 서비스를 제공하는 단계는: 최종-사용자 장치 중 하나로부터 미디어 컨텐츠에 대한 데이터 변환 요청을 수신하는 단계; 및 아바타 서버에 저장된 처리 모듈의 로컬 버전을 이용함으로써 애플리케이션 서비스 서버를 사용하여 미디어 컨텐츠를 변환하는 단계를 더 포함할 수 있다.
본 발명에 따른 일실시예로, 본 방법은 백홀 네트워크 채널이 이용 가능한 경우 애플리케이션 서비스 서버로부터 처리 모듈의 로컬 버전에 대한 업데이트를 수신하는 단계를 더 포함할 수 있다.
로컬 애플리케이션 서비스를 제공하는 단계는: 최종-사용자 장치 중 요청중인 장치로부터 컨텐츠 식별자를 포함하는 컨텐츠 제공 요청을 수신하는 단계와; 컨텐츠 식별자를 통해 아바타 서버의 로컬 데이터 뱅크에 컨텐츠를 위치시키는 단계와; 로컬 데이터 뱅크에 컨텐츠를 위치시키는 것에 응답하여 요청중인 장치로 컨텐츠를 제공하는 단계를 더 포함할 수 있다.
로컬 애플리케이션 서비스를 제공하는 단계는: 최종-사용자 장치 중 요청중인 장치로부터 컨텐츠 식별자를 포함하는 컨텐츠 제공 요청을 수신하는 단계와; 컨텐츠 식별자를 통해 아바타 서버의 로컬 데이터 뱅크에 컨텐츠를 위치시키는 단계와; 백홀 네트워크 채널이 이용 가능한 경우 로컬 데이터 뱅크에 컨텐츠를 위치시킬 수 없음에 응답하여, 요청중인 장치로 전달하도록 애플리케이션 서비스 서버로부터 컨텐츠를 페치(fetching)하는 단계를 더 포함할 수 있다.
로컬 애플리케이션 서비스를 제공하는 단계는: 최종-사용자 장치 중 요청중인 장치로부터 컨텐츠 식별자를 포함하는 컨텐츠 제공 요청을 수신하는 단계와; 컨텐츠 식별자를 통해 아바타 서버의 로컬 데이터 뱅크에 컨텐츠를 위치시키는 단계와; 백홀 네트워크 채널이 이용 가능하지 않고 로컬 데이터 뱅크에 컨텐츠를 위치시킬 수 없음에 응답하여, 요청중인 장치로의 후속 전달을 위해 애플리케이션 서비스 서버로 컨텐츠에 대한 컨텐츠 요청을 큐잉(queuing)하는 단계를 더 포함할 수 있다.
로컬 애플리케이션 서비스를 제공하는 단계는: 최종-사용자 장치 중 요청중인 장치로부터 컨텐츠 식별자를 포함하는 컨텐츠 제공 요청을 수신하는 단계; 및 애플리케이션 서비스 서버로 게재 가능한 컨텐츠를 송신하기 전에 게재 가능한 컨텐츠를 서비스 그룹에서 이용 가능하게 함으로써 서비스 그룹 내 게재 가능한 컨텐츠를 사전-게재(pre-publishing)하는 단계를 더 포함할 수 있다.
본 발명에 따른 또 하나의 실시예로, 컴퓨터-판독가능한 저장 메모리는 백홀 네트워크 채널을 통해 애플리케이션 서비스를 클라이언트 애플리케이션에 제공하기 위한 애플리케이션 서비스 서버로의 적어도 하나의 간헐적 네트워크 액세스를 가지는 아바타 서버에서 애플리케이션 서비스 아바타를 구현하기 위한 명령어; 애플리케이션 서비스에 액세스하는 아바타 서버와 연결되는 하나 이상의 최종-사용자 장치의 목록을 관리함으로써 서비스 그룹을 확립하기 위한 명령어; 서비스 그룹 내 적어도 하나의 제1 최종-사용자 장치로부터, 서비스 그룹 내 제2 최종-사용자 장치와 관련되는 아바타 서버에서의 서비스 요청을 수신하기 위한 명령어; 및 제1 최종-사용자 장치를 대신하여 제2 최종-사용자 장치로 메시지를 통신함으로써 서비스 요청을 적어도 부분적으로 처리하기 위한 명령어를 포함하는, 아바타 서버를 운영하기 위한 컴퓨터-실행가능한 명령어를 저장한다.
본 발명에 따른 또 하나의 실시예로, 컴퓨터-판독가능한 저장 메모리는 애플리케이션 서비스에 의해 제공되는 기능의 적어도 하나의 서브세트를 에뮬레이팅(emulating)함으로써 아바타 서버를 통해 최종-사용자 장치로 로컬 애플리케이션 서비스를 제공하기 위한 명령어를 더 포함할 수 있다.
본 발명에 따른 또 하나의 실시예로, 컴퓨터-판독가능한 저장 메모리는 백홀 네트워크 채널이 이용 가능한 경우 애플리케이션 서비스 서버로 서비스 요청을 비동기식으로 통신하기 위한 명령어를 더 포함할 수 있다.
본 발명에 따른 또 하나의 실시예로, 컴퓨터-판독가능한 저장 메모리는 최종-사용자 장치 중 하나를 대신하여 원격 절차 호출(remote procedure call) 중의 파라미터를 애플리케이션 서비스 서버로 변환하는 클라이언트 애플리케이션 스터브(stub)를 호출하기 위한 명령어를 더 포함할 수 있다.
본 발명에 따른 또 하나의 실시예로, 컴퓨터-판독가능한 저장 메모리는 최종-사용자 장치에 대한 장치 프로필 및 최종-사용자 장치와 관련된 사용자 프로필을 관리하기 위한 명령어를 더 포함할 수 있다.
본 발명에 따른 또 하나의 실시예로, 아바타 서버는 하나 이상의 최종-사용자 장치의 로컬 세트와 연결하고, 백홀 네트워크 채널을 통해 적어도 간헐적으로 애플리케이션 서비스를 제공하는 애플리케이션 서비스 서버와 연결하도록 구성된 하나 이상의 네트워크 인터페이스; 백홀 네트워크 채널이 이용 가능한 경우 애플리케이션 서비스 서버와 통신하고 아바타 애플리케이션 프로그래밍 인터페이스(API)를 제공하는 애플리케이션 서비스 아바타를 호스트하도록 구성된 프로세서; 및 최종-사용자 장치의 로컬 세트에 대한 컨텐츠를 캐시(cache)하고 최종-사용자 장치의 프로필을 추적하는 메모리를 포함하며, 아바타 API는 애플리케이션 서비스에 의해 제공되는 기능의 적어도 하나의 서브세트를 에뮬레이팅(emulating)함으로써 애플리케이션 서비스 아바타를 통해 최종-사용자 장치로 로컬 애플리케이션 서비스를 제공한다.
아바타 서버는 네트워크 액세스를 제공하거나 최종-사용자 장치에 대한 통신 데이터를 집계하는 네트워크 설비에서 구현될 수 있다.
아바타 서버는 최종-사용자 장치에 대한 네트워크 액세스를 제공하는 네트워크 설비와는 별도로 구현될 수 있다.
아바타 서버는 최종-사용자 장치 중 하나에서 구현될 수 있다.
또한, 청구될 수 있는 본 발명의 또 하나의 실시예로, 하나 이상의 컴퓨터-판독가능한 비-일시적 저장매체는 본 발명 또는 상술한 임의의 실시예들에 따른 방법을 수행하도록 실행될 때 동작하는 소프트웨어를 포함한다.
또한, 청구될 수 있는 본 발명의 또 하나의 실시예로, 시스템은: 하나 이상의 프로세서; 및 프로세서와 연결되고 프로세서에 의해 실행가능한 명령어를 포함하는 적어도 하나의 메모리를 포함하며, 상기 프로세서는 본 발명 또는 상술한 임의의 실시예들에 따른 방법을 수행하는 명령어를 실행할 때 동작한다.
또한, 청구될 수 있는 본 발명의 또 하나의 실시예로, 바람직하기로 컴퓨터-판독가능한 비-일시적 저장매체를 포함하는 컴퓨터 프로그램 제품은 본 발명 또는 상술한 임의의 실시예들에 따른 방법을 수행하도록 데이터 처리 시스템에서 실행될 때 동작한다.
본 발명의 내용 중에 포함되어 있다.
도 1은 다양한 실시예에 따라 전원의 네트워킹 시스템의 네트워크 시스템 환경을 도시한 블록도이다.
도 2는 다양한 실시예에 따라 전원의 네트워킹 시스템의 전원 에지(rural edge)에서 애플리케이션 서비스 아바타를 구현하는 잠재적 위치를 도시한 블록도이다.
도 3은 다양한 실시예에 따라 애플리케이션 서비스 아바타를 구현하는데 사용될 수 있는 시스템 환경의 예를 도시한 블록도이다.
도 4는 다양한 실시예에 따라 애플리케이션 서비스 아바타의 애플리케이션 프로그래밍 인터페이스(API)를 도시한 기능 블록도이다.
도 5는 다양한 실시예에 따라 애플리케이션 서비스 아바타로서 컴퓨팅 장치를 운영하는 방법을 도시한 흐름도이다.
도 6은 다양한 실시예에 따라 본 명세서에 기술된 하나 이상의 컴퓨팅 장치 또는 서버를 나타낼 수 있는 컴퓨팅 장치의 예의 블록도이다.
도면들은 단지 예시의 목적으로 본 명세서의 다양한 실시예들을 도시한다. 당업자는 하기의 설명을 통해 본 명세서에 나타난 구성 및 방법의 대안적인 실시예들이 본 명세서에 기술된 본 발명의 원리에서 벗어남이 없이 이용될 수 있음을 용이하게 인식할 것이다.
몇몇 실시예들은 광역 네트워크(예컨대, 인터넷) 그리고 그에 따라 애플리케이션 서비스 아바타에 대응하는 하나 이상의 애플리케이션 서비스 서버와 간헐적 연결을 갖는 로컬 네트워크 섬(local network island)에서 애플리케이션 서비스 "아바타(avatar)"를 구현하는 것을 포함한다. 간헐적 연결(intermittent connectivity)은 높은 대기 시간 및/또는 낮은 대역폭(예컨대, 시간 분할 대역폭 공유)을 가질 수 있고, 자주 사용하지 못할 수 있다. 각각의 애플리케이션 서비스 아바타는 애플리케이션 서비스 및 애플리케이션 서비스를 제공하는 하나 이상의 애플리케이션 서비스 서버에 대응할 수 있다. 예컨대, 애플리케이션 서비스는 메시징 서비스, 소셜 네트워킹 서비스, 사진 공유 서비스, 컨텐츠 검색 서비스, 협업 서비스, 기타 무료 기본 서비스(FBS) 또는 이들의 임의의 조합일 수 있다. 통상적으로, 애플리케이션 서비스 아바타의 존재 없이, 하나 이상의 최종-사용자 장치는 하나 이상의 애플리케이션 서비스 서버로부터 애플리케이션 서비스를 직접 요청할 수 있다. 예컨대, 최종-사용자 장치는 하나 이상의 애플리케이션 서비스 서버의 서버 서비스 애플리케이션 프로그래밍 인터페이스("API")에 액세스하도록 구성된 클라이언트 프로그램을 실행할 수 있다. 예컨대, 클라이언트 프로그램은 모바일 애플리케이션, 데스크톱 애플리케이션, 브라우저-기반 애플리케이션 또는 이들의 임의의 조합으로서 구현될 수 있다.
애플리케이션 서비스 아바타는 아바타 서버에서 구현될 수 있다. 아바타 서버는 계산 능력을 가지며; 최종-사용자 장치의 로컬 세트에 대한 컨텐츠를 캐시하고 최종-사용자 장치의 프로필을 추적할 수 있는 메모리 용량을 가지며; (로컬 세트의 멤버쉽은 시간이 지남에 따라 변할 수 있지만) 최종-사용자 장치의 로컬 세트에 지속적으로 연결되며; 하나 이상의 애플리케이션 서비스 서버에 적어도 간헐적 연결을 가진다. 아바타 서버는 (예컨대, 아바타 서버에서 실행되는 가상 머신 또는 아바타 애플리케이션 프로세스로서) 단일의 애플리케이션 서비스 아바타 또는 다수의 애플리케이션 서비스 아바타를 호스트하는 플랫폼을 제공할 수 있다.
각각의 애플리케이션 서비스 아바타는 애플리케이션 서비스 아바타의 존재 없이 하나 이상의 애플리케이션 서비스 서버가 통상적으로 최종-사용자 장치에 제공하는 기능의 적어도 한 서브세트를 보존할 수 있다. 하나 이상의 애플리케이션 서비스 서버는 애플리케이션 서비스 아바타에 서비스 기능을 노출하는 위임 API(delegation API)를 제공할 수 있고 단지 애플리케이션 서비스 아바타와 간헐적 연결만을 가짐에도 불구하고 애플리케이션 서비스 아바타가 하나 이상의 애플리케이션 서비스 서버에 의해 제공되는 서비스 기능의 적어도 한 서브세트를 에뮬레이트하게 할 수 있다. 예컨대, 이런 설정하에서, 서비스 작업은 예컨대 애플리케이션 서비스 아바타에 의해 부분적으로 로컬 완료될 수 있고, 서비스 작업의 완료는 간헐적 연결이 다시 이용 가능할 때까지 지연될 수 있다.
이어서, 애플리케이션 서비스 아바타는 아바타 API를 구현할 수 있다. 아바타 API는 하나 이상의 애플리케이션 서비스 서버에 의해 제공되는 서비스 기능의 적어도 한 서브세트를 애플리케이션에 프로그램 방식으로 노출하거나, 애플리케이션 서비스 아바타와 연결된 로컬 네트워크 섬 내의 최종-사용자 장치(예컨대, 셀룰러 전화 핸드셋 또는 다른 컴퓨팅 장치들)의 서비스 요청에 응답하거나, 최종-사용자 장치를 타겟팅하는 하나 이상의 애플리케이션 서비스 서버로부터의 명령을 처리하거나, 이들의 임의의 조합을 수행할 수 있다. 또한, 아바타 API는 하나 이상의 애플리케이션 서비스 서버와 비동기식으로(예컨대, 하나 이상의 애플리케이션 서비스 서버에서 서비스 요청을 더 처리하도록 서비스 요청의 수신에 비동기식으로) 통신할 수 있다. 아바타 API에 의해 제공되는 이러한 서비스 기능은 예컨대 최종-사용자 장치의 로컬 세트의 프로필의 식별, 최종-사용자 요청이 수신되지만 간헐적 연결이 이용 불가능한 경우의 "저장 및 전달(store and forward)" 기능, 최종-사용자 장치의 로컬 세트에 대한 (광역("코어") 네트워크 내 하나 이상의 애플리케이션 서비스 서버 또는 다른 소스들로부터의) 컨텐츠의 캐싱(caching) 등을 포함할 수 있다.
개시된 실시예를 통해 하나 이상의 아바타 서버는 "백홀" 네트워크와 최종-사용자 장치 사이의 임의의 위치에 구현될 수 있다. 백홀 네트워크는 간헐적으로 연결된 클라이언트를 대신하여 인터넷에 연결된 서버와 정보를 교환하도록 구성된 네트워크(예컨대, 인트라넷 또는 인터넷)의 일부이다. 예컨대, 아바타 서버는 로컬 네트워크 액세스 포인트 또는 집계 네트워크 기기에 연결된 독립형 서버일 수 있다. 대안으로, 아바타 서버는 로컬 네트워크 액세스 포인트, 집계 네트워크 기기 또는 최종-사용자 장치와 통합될 수 있다. 아바타 서버는 서로 통신하거나, 최종-사용자 장치의 애플리케이션 포털과 애플리케이션 서비스 서버 간의 지연된 상호작용을 촉진할 수 있다.
애플리케이션 서비스 아바타는 로컬 지리적 지역 내 최종-사용자 장치에 서비스를 제공할 수 있다. 애플리케이션 서비스 아바타는 간헐적 네트워크 중단이 있음에도 불구하고 (애플리케이션 서비스 서버의 서비스 기능 중 일부 또는 전부일 수 있는) 지속적인 서비스를 제공할 수 있다.
애플리케이션 서비스 아바타는 적어도 다른 "네트워크 섬"(예컨대, 가령 인터넷과 같은 네트워크 및/또는 코어 네트워크에 적어도 간헐적으로 연결된 컴퓨팅 장치의 연결된 세트)으로의 간헐적이거나 지속적인 네트워크 액세스를 가질 수 있다. 예컨대, 간헐적 네트워크 연결은 위성(예컨대, 저궤도 또는 정지궤도 위성), 무인 항공기 또는 기타 비행기기, 기차, 배 또는 기타 물-기반 선박, 기타 간헐적 연결의 통신 중계기 또는 이들의 임의의 조합을 이용하는 외부 네트워크와 연결하여 확립될 수 있다. 네트워크 섬은 함께 "메시(mesh)" 네트워크를 형성할 수 있다. 메시 네트워크는 각 메쉬 노드(예컨대, 네트워크 장치)가 네트워크에 대한 데이터를 중계하고 모든 노드가 네트워크의 데이터 배포에 협력하는 네트워크 토폴로지(topology)이다.
일부 실시예로, 하나 이상의 애플리케이션 서비스 아바타는 뉴스피드, 메시징, 미디어 브라우징 등을 포함하는 기본적인 소셜 네트워크 기능을 네트워크 섬 내의 사용자에게 제공할 수 있다. 애플리케이션 서비스 아바타는 백홀 네트워크 채널이 이용 가능하지 않을 때 네트워크 섬 내의 하나 이상의 장치로부터 발신 통신(예컨대, 컨텐츠, 메시지, 데이터 요청 등)을 버퍼링할 수 있고, 백홀 네트워크 채널이 이용 가능하게 될 때 이들을 전송할 수 있다. 애플리케이션 서비스 아바타는 예컨대 백홀 네트워크 채널이 활성화되어있을 때 네트워크 섬 외부의 컴퓨팅 장치로부터 착신 통신(예컨대, 웹페이지, 착신 메시지, 미디어 컨텐츠, 텍스트, 스크립트 또는 실행 파일)을 수신하고 캐시할 수 있으므로, 백홀 네트워크 채널 따라서 간헐적 네트워크 액세스가 이용 가능하지 않을 때 네트워크 섬 내의 장치는 리소스에 액세스할 수 있다. 예컨대, 애플리케이션 서비스 아바타는 최근에 요청된 리소스, 자주 요청된 리소스 및 네트워크 섬에 있는 사용자의 선호 프로필과 일치하는 리소스를 캐시할 수 있다. 애플리케이션 서비스 아바타는 애플리케이션 서비스 서버에 사용자의 신원을 제공할 수 있다. 예컨대, 소셜 네트워킹 시스템의 애플리케이션 서비스 서버는 로컬 네트워크 섬에 있는 사용자의 프로필을 생성 및 저장하여 캐싱을 위해 애플리케이션 서비스 아바타에게 어떤 프로필-특정 리소스를 "푸시(push)"할 것인지를 예측할 수 있다. 푸시 행위는 데이터 전송 요청이 서버(예컨대, 애플리케이션 서비스 서버)에 의해 목적지 클라이언트(예컨대, 애플리케이션 서비스 아바타)에 개시되는 데이터 전송 통신을 수반한다. 예로서, 애플리케이션 서비스 서버는 프로필-특정 리소스, 흔히 공개적으로 액세스되는 이용가능한 데이터 또는 실제로 임의의 다른 유형의 적합한 데이터를 푸시할 수 있다.
프로필-특정 리소스는 네트워크 섬 내에서 활성화된 사용자 프로필과 관련된 데이터(예컨대, 개인 데이터)를 포함할 수 있다. 또한, 사용자 프로필의 프로필-특정 리소스는 제휴된 사용자 프로필과 연관된 데이터를 포함할 수 있다. 예컨대, 제휴된 소셜 네트워크 노드는 프로필 선호도, 속성, 행동 또는 사용자 프로필의 활동에 기반하여 식별될 수 있다. 다른 사용자 프로필은 (예컨대, 동일한 도시 또는 임계 거리 반경 내) 지리적 근접성, (예컨대, 소셜 네트워킹 시스템의 소셜 그래프에서 임계 이격도 내에서 사용자 프로필과 소셜 연결되는) 소셜 근접성 또는 (예컨대, 동일한 네트워크 섬 내) 네트워크 근접성에 기인하여 사용자 프로필과 제휴될 수 있다. 
이점적으로, 일부 실시예는 애플리케이션 서비스 아바타를 이용하여 전원 영역에 컨텐츠 액세스 및 애플리케이션 서비스 기능을 제공한다. 애플리케이션 서비스 아바타는 (예컨대, 다수의 네트워크 구성요소에 대한 시간 분할/대역폭 공유에 기인하여) 간헐적 연결 및 높은 대기 시간을 가지는 백홀 채널에서 발생하는 대역폭 제한에 대한 기술적 해결책을 제공한다. 애플리케이션 서비스 아바타는 백홀 채널의 간헐적 연결에도 불구하고 애플리케이션 서비스 기능의 적어도 한 서브세트가 최종-사용자에게 전달될 수 있게 한다. 또한, 애플리케이션 서비스 아바타의 구조는 서버 로직을 네트워크에서 최종-사용자 장치에 "더 가깝게" 이동시킴으로써 백홀 채널이 없는 경우에도 네트워크 속도를 향상시킨다. 애플리케이션 서비스 아바타는 또한 완전한 피어-투-피어 구조로 변환하지 않고도 종래의 클라이언트-서버 구조에서 피어-투-피어 링크를 가능하게 한다. 일부 애플리케이션 서비스는 전원 지역사회를 위한 기본적인 통신 수단 및 사람들의 생계에 관한 기본적인 정보 업데이트를 제공한다. 따라서, 간헐적 백홀 연결만 존재하더라도 지속적인 애플리케이션 서비스를 가능하게 하는 것이 매우 유용할 수 있다.
도 1은 다양한 실시예에 따라 전원의 네트워킹 시스템(100)의 네트워크 시스템 환경을 도시하는 블록도이다. 전원의 네트워킹 시스템(100)은 네트워크 섬(예컨대, 네트워크 섬(102))의 집합을 포함한다. 각각의 네트워크 섬은 네트워크 설비(104)(예컨대, 네트워크 장치)에 의해 확립될 수 있다. 네트워크 설비(104)는 네트워크 연결을 제공하는 타워, 박스, 라우터, 액세스 포인트 또는 다른 전자 하드웨어일 수 있다. 일부 실시예에서, 네트워크 설비(104)와 연결된 하나 이상의 장치는 추가의 서브-네트워크를 확립할 수 있고, 이러한 서브-네트워크와 연결된 장치는 더 낮은 레벨의 네트워크 등을 확립할 수 있다. 
예컨대, 네트워크 설비(104)는 최종-사용자 장치(106)에 대한 네트워크 연결을 제공할 수 있다. 최종-사용자 장치(106)는 컴퓨팅 장치이다. 예컨대, 최종-사용자 장치(106)는 개인 컴퓨터, 이동 전화, 태블릿, 착용가능 장치, IoT(Internet of Things) 장치 또는 임의의 다른 이동 또는 고정 장치를 포함할 수 있다. 최종-사용자 장치(106) 간의 네트워크 연결은 예컨대 LTE(long-term evolution), 3G, 2G, Wi-Fi, Wi-Fi Direct, WiMAX, 블루투스, 블루투스 LE 또는 이들의 임의의 조합과 같은 무선 프로토콜을 통해 확립될 수 있다. 또한, 네트워크 연결은 예컨대 범용 직렬 버스(USB) 또는 이더넷과 같은 유선 프로토콜에 기반할 수 있다. 네트워크 연결의 네트워크 구조는 메시 네트워크 또는 스타(star) 네트워크에 기반할 수 있다. 
일부 실시예에서, 각각의 네트워크 장치는 직접 또는 간접으로 예컨대 인터넷이나 다른 지역 네트워크와 같은 코어 네트워크(108)와 연결될 수 있다. 예컨대, 네트워크 설비(104)는 백홀 네트워크 채널(110)을 통해 코어 네트워크(108)와 연결될 수 있다. 백홀 네트워크 채널(110)은 비-연속적으로 종단점 사이의 연결을 제공하는 전송 매체이다. 즉, 백홀 네트워크 채널(110)은 주기적으로 또는 산발적으로 잠시 기능을 중지할 수 있다. 백홀 네트워크 채널(110)의 예는 기차, 드론, 위성, 선박 또는 이들의 임의의 조합에 의해 구현되는 네트워크를 포함한다.
일부 실시예에서, 네트워크 설비(104)는 네트워크 섬(102) 내의 최종-사용자 장치(106) 간의 연속적인 연결 및 최종-사용자 장치(106)와 코어 네트워크(108) 사이의 비-연속적인 연결을 제공할 수 있다. 네트워크 설비(104)는 또한 다른 네트워크 섬에 연결될 수 있다. 예컨대, 네트워크 설비(104)는 또 다른 간헐적 네트워크 채널을 통해 또 다른 기지국, 따라서 다른 기지국과 결합된 다른 네트워크 섬의 다른 컴퓨팅 장치에 연결될 수 있다.
백홀 네트워크 채널(110)에 의해 부과된 제한 때문에, 네트워크 섬(102)은 항상 코어 네트워크(108)와 결합된 외부 시스템과 실시간으로 통신할 수 없다. 이와 같이, 전원의 네트워킹 시스템(100)은 애플리케이션 서비스 서버(114)(예컨대, 소셜 네트워킹 시스템의 애플리케이션 서버, 클라우드 애플리케이션 또는 모바일 애플리케이션 서버)에 대응하는 애플리케이션 서비스 아바타(112)를 통해 비동기식 애플리케이션 서비스를 용이하게 하는 메커니즘을 제공한다. 애플리케이션 서비스 아바타(112)는 백홀 네트워크 채널(110)과 최종-사용자 장치(106) 사이에서 (예컨대, 포괄적으로) 구현됨으로써 네트워크 섬(102)을 확립할 수 있다. 즉, 애플리케이션 서비스 아바타(112)는 전원의 네트워킹 시스템(100)의 전원 에지에서 구현될 수 있다.
일부 실시예에서, 백홀 네트워크 채널(110)은 일련의 네트워크 설비(예컨대, 집계 서버, 기지국, 스위치, 라우터 또는 다른 네트워크-가능 컴퓨팅 장치)를 통해 최종-사용자 장치(106)와 연결될 수 있다. (예컨대, 네트워크 거리의 관점에서) 최종-사용자 장치(106)에 가장 근접한 것은 예컨대 EPC(evolved packet core)와 같은 모바일 코어(116)일 수 있다. EPC는 가령 LTE(long-term evolution) 네트워크와 같은 셀룰러 네트워크를 통해 사용자와 연결하는 통합 음성 및 데이터 네트워킹 프레임워크를 제공한다. 
모바일 코어(116)는 인터넷 서비스 제공자(ISP) 에지 POP(point of presence)(118)에 연결될 수 있다. ISP 에지 POP(118)는 통신하는 엔티티들 사이의 인터페이스 거점이다. 예컨대, ISP 에지 POP(118)는 모바일 코어(116)와 애플리케이션 서비스 서버(114) 사이에서 또는 모바일 코어(116)와 컨텐츠 전달 네트워크(CDN)(120) 사이에서 데이터를 통신하기 위한 인터페이스를 제공할 수 있다. CDN은 사용자의 지리적 위치에 기반하여 사용자에게 웹페이지 및 기타 웹 컨텐츠를 전달하는 분산 서버의 시스템이다. CDN(120)은 애플리케이션 서비스 또는 애플리케이션 서비스 그룹(예컨대, 소셜 네트워킹 시스템용 애플리케이션 서비스)에 특화될 수 있다. CDN(120)은 애플리케이션 서비스 또는 애플리케이션 서비스 그룹에 대한 정적 컨텐츠를 저장할 수 있다. 반면에, 애플리케이션 서비스 서버(114)는 서비스 요청에 응답하여 CDN(120)에 의해 제공된 정적 컨텐츠에 대한 링크를 생성하는 것을 포함하여 최종-사용자 장치(106)로부터의 서비스 요청에 응답하여 동적 컨텐츠를 생성할 수 있다. CDN(120)이 서비스 요청이 향하는 애플리케이션 서비스와 연관된 정적 컨텐츠를 아직 캐시하지 않은 경우, CDN(120)은 애플리케이션 서비스의 데이터 센터(122)에 액세스할 수 있다. 일부 실시예에서, CDN(120)에 저장된 컨텐츠는 인가되지 않은 액세스를 방지하기 위해 암호화되거나 인코딩된다.
애플리케이션 서비스 아바타(112)는 애플리케이션 서비스 서버(114)에 의해 제공되는 애플리케이션 서비스에 대응할 수 있다. 예컨대, 애플리케이션 서비스는 메시징 서비스, 소셜 네트워킹 서비스, 사진 공유 서비스, 컨텐츠 검색 서비스, 협업 서비스, 기타 무료 기본 서비스, 또는 이들의 임의의 조합일 수 있다. 일반적으로, 애플리케이션 서비스 아바타가 없으면, 하나 이상의 최종-사용자 장치는 애플리케이션 서비스 서버로부터 애플리케이션 서비스를 직접 요청할 수 있다. 예컨대, 최종-사용자 장치는 애플리케이션 서비스 서버(114)의 애플리케이션 서비스 API(124)에 액세스하도록 구성된 클라이언트 프로그램을 실행할 수 있다. 예컨대, 클라이언트 프로그램은 하나 이상의 모바일 애플리케이션, 데스크톱 애플리케이션, 브라우저-기반 애플리케이션(예컨대, JavaScript-기반, Flash-기반 등) 또는 이들의 임의의 조합일 수 있다. 
애플리케이션 서비스 아바타(112)는 아바타 서버(126)에서 실행되는 가상 머신 또는 애플리케이션 스레드(thread)로서 구현될 수 있다. 애플리케이션 서비스 아바타(112)는 애플리케이션 서비스 아바타(112)에 전용되거나 할당된 아바타 서버(126)의 메모리 공간(128)을 액세스(예컨대, 판독 또는 기록)할 수 있다. 일부 실시예에서, 메모리 공간(128)은 애플리케이션 서비스 서버(114)의 인증된 에이전트에 의해서만 액세스될 수 있는 암호 키로 부분적으로 또는 전체적으로 암호화된다. 아바타 서버(126)는 계산 능력을 가지며; 최종-사용자 장치(예컨대, 최종-사용자 장치(106))의 로컬 세트에 대한 컨텐츠를 캐시하고 최종-사용자 장치의 프로필을 추적할 수 있는 메모리 용량을 가지며; (로컬 세트의 멤버쉽은 시간이 지남에 따라 변할 수 있지만) 최종-사용자 장치의 로컬 세트에 지속적으로 연결되며; 애플리케이션 서비스 서버(114)에 적어도 간헐적 연결(예컨대, 백홀 네트워크 채널(110))을 가진다. 아바타 서버는 애플리케이션 서비스 아바타(112)를 포함하는 애플리케이션 서비스 아바타(112)(즉, 단일의 인스턴스) 또는 다수의 애플리케이션 서비스 아바타(즉, 다수의 인스턴스)만을 호스트하는 플랫폼을 제공할 수 있다.
애플리케이션 서비스 아바타(112)는 애플리케이션 서비스 아바타(112)의 존재 없이 애플리케이션 서비스 서버(114)가 최종-사용자 장치(예컨대, 최종-사용자 장치(106))로 정상적으로 제공하는 기능들의 적어도 한 서브세트를 보존할 수 있다. 애플리케이션 서비스 서버(114)는 애플리케이션 서비스 아바타(112)에 서비스 기능을 노출시키는 위임 API(130)를 제공하고 애플리케이션 서비스 아바타(112)가 애플리케이션 서비스 아바타(112)에 대한 간헐적 연결에도 불구하고 애플리케이션 서비스 서버(114)에 의해 제공되는 서비스 기능의 적어도 한 서브세트를 에뮬레이트하게 할 수 있다. 예컨대, 이러한 설정에서 서비스 요청에 대응하는 서비스 작업 완료가 지연될 수 있다.
예컨대, 서비스 작업은 컨텐츠 내역 또는 선호도에 따라 컨텐츠를 제공하는 컨텐츠 제공 작업(예컨대, 검색 엔진, 미디어 라이브러리, 디지털 옐로우 북, 뉴스 피드, 디지털 사전 또는 백과 사전, 디지털 맵, 뉴스 피드 또는 이들의 임의의 조합에 대한 작업)일 수 있다. 애플리케이션 서비스 아바타(112)는 메모리 공간(128)에서 컨텐츠 인덱스를 사전 캐싱함으로써 컨텐츠 제공 작업을 에뮬레이트할 수 있다. 애플리케이션 서비스 아바타(112)는 컨텐츠 인덱스에 기반하여 요청 사용자에 대한 요청된 컨텐츠의 위치를 찾을 수 있다. 애플리케이션 서비스 아바타(112)는 애플리케이션 서비스 서버(114)에 대한 (예컨대, 백홀 네트워크 채널(110)의) 간헐적 연결이 이용 가능할 때 컨텐츠 인덱스를 업데이트할 수 있다. 애플리케이션 서비스 아바타(112)는 로컬 데이터 뱅크(예컨대, 메모리 공간(128))에 이전에 요청된 컨텐츠를 캐싱할 수 있다. 일부 실시예에서, 애플리케이션 서비스 서버(114)는 (예컨대, 로컬 네트워크 섬과 연관된 사용자 프로필에 기초하여) 컨텐츠를 로컬 데이터 뱅크로 예상하여 푸시한다. 일부 실시예에서, 애플리케이션 서비스 아바타(112)는 컨텐츠에 대한 사용자의 요청 이전에 로컬 데이터 뱅크에 저장하기 위해 (애플리케이션 서비스 서버(114)를 포함하는) 코어 네트워크(108)로부터 잠재적으로 요청될 수 있는 컨텐츠를 프리-페치(즉, 검색)한다. 프리-페치 행위는 로컬 네트워크 섬과 연관된 사용자 프로필에 기초하여 잠재적으로 요청될 수 있는 컨텐츠를 예측하고, 백홀 네트워크 채널(110) 따라서 간헐적 연결이 이용 가능할 때 컨텐츠를 페치함으로써 발생할 수 있다. 애플리케이션 서비스 아바타(112)는 어떤 정보/컨텐츠 가 로컬 데이터 뱅크에 캐시되는지에 기반하여 컨텐츠 인덱스를 업데이트할 수 있다. 요청된 컨텐츠를 위치시킬 때, 애플리케이션 서비스 아바타(112)는 먼저 컨텐츠 인덱스에 따라 요청된 컨텐츠를 로컬 데이터 뱅크로부터 위치시키려고 시도할 수 있다. 요청된 컨텐츠가 로컬 데이터 뱅크에서 이용 가능하지 않은 경우, 애플리케이션 서비스 아바타(112)는 코어 네트워크(108)에서 컨텐츠의 네트워크 위치를 식별할 수 있다. 백홀 네트워크 채널(110)을 이용할 수 없는 경우, 애플리케이션 서비스 아바타(112)는 페치 큐(fetch queue)에 저장하는 페치 요청을 생성한다. 애플리케이션 서비스 아바타(112)가 백홀 네트워크 채널(110)이 이용 가능하다고 감지할 때, 애플리케이션 서비스 아바타(112)는 페치 큐에 식별된 컨텐츠를 페치하고 페치된 컨텐츠를 로컬 데이터 뱅크에 저장하기 시작한다. 일부 실시예에서, 일단 컨텐츠가 페치되면, 애플리케이션 서비스 아바타(112)는 요청중인 사용자의 최종-사용자 장치로 컨텐츠를 전송하거나, 컨텐츠가 로컬 데이터 뱅크로부터의 검색에 이용 가능하다고 최종-사용자 장치에 알린다.
예컨대, 서비스 작업은 사용자-대-사용자 또는 장치-대-장치 메시지를 라우팅하는 컨텐츠 라우팅 작업(예컨대, 메시징 애플리케이션, 게시판, 소셜 네트워킹 애플리케이션, 이벤트 관리 애플리케이션, 협업 애플리케이션 또는 이들의 임의의 조합을 위한 작업)일 수 있다. 컨텐츠 라우팅 요청을 수신하면, 애플리케이션 서비스 아바타(112)는 메시지의 목적지 및 목적지와 관련된 목적지 프로필(예컨대, 사용자 프로필, 그룹 프로필, 페이지 프로필, 게시판 프로필)을 식별한다. 애플리케이션 서비스 아바타(112)는 메모리 공간(128) 내의 로컬 엔티티들의 프로필의 목록을 관리할 수 있다. 각각의 프로필은 고유한 식별정보, 네트워크 섬(102)으로의 연결 빈도, 현재 위치, 컨텐츠 선호도 또는 이들의 임의의 조합을 포함할 수 있다. 목적지 프로필이 프로필의 목록 내에서 발견되면, 애플리케이션 서비스 아바타(112)는 목적지 프로필과 연관된 최종-사용자 장치에 메시지를 즉시 전달할 수 있다. 목적지 프로필이 프로필의 목록 내에서 발견되지 않으면, 애플리케이션 서비스 아바타(112)는 백홀 네트워크 채널(예컨대, 백홀 네트워크 채널(110))이 이용 가능한지 여부를 결정할 수 있다. 이용 가능할 때, 애플리케이션 서비스 아바타(112)는 메시지를 애플리케이션 서비스 서버(114)로 전송하여 그 목적지로 라우팅할 수 있다. 이용 가능하지 않을 때, 애플리케이션 서비스 아바타(112)는 메시지를 발신 큐에 큐잉하고 백홀 네트워크 채널이 메시지를 애플리케이션 서비스 서버(114)에 송신하도록 이용가능할 때까지 대기할 수 있다.
예컨대, 서비스 작업은 컨텐츠를 공유가능한 공개 도메인으로 푸시하는 컨텐츠 게재 작업(예컨대, 상태를 업데이트하거나, 블로그를 게재하거나, 로컬 광고를 게재하거나, 이벤트를 발표하거나, 경매를 발표하거나, 판매용 아이템 또는 서비스를 발표하거나, 이들의 임의의 조합을 하는 작업)일 수 있다. 컨텐츠 게재 요청을 수신함에 응답하여, 애플리케이션 서비스 아바타(112)는 게재될 컨텐츠를 로컬 데이터 뱅크에 저장할 수 있고, 게재될 컨텐츠를 게재를 위해(예컨대, 뉴스피드 생성) 애플리케이션 서비스 서버(114)에 전송할 수 있다. 백홀 네트워크 채널(110)을 이용할 수 없는 경우, 컨텐츠는 백홀 네트워크 채널(110)을 다시 이용할 수 있을 때 전달을 위해 큐잉된다. 일부 실시예에서, 애플리케이션 서비스 아바타(112)는 메모리 공간(128)에 저장된 (예컨대, 뉴스레터, 블로그, 경매 사이트, 프로필 페이지, 발표 페이지, 이벤트 사이트, 위키 또는 이들의 임의의 조합과 같은) 게재 플랫폼의 로컬 버전으로 게재될 컨텐츠를 로컬 사전-게재할 수 있다. 게재 플랫폼의 로컬 버전은 코어 네트워크(108)에 대한 백홀 네트워크 채널(110)이 이용 가능하지 않은 경우에도 이용 가능할 수 있다. 애플리케이션 서비스 아바타(112)는 백홀 네트워크 채널(110)이 이용 가능하게 될 때 애플리케이션 서비스 서버(114)를 통해 로컬 버전을 전체 버전(global version)과 동기화시킬 수 있다.
일부 실시예에서, 애플리케이션 서비스 아바타(112)는 애플리케이션 서비스 서버(114)와 통신하는(예컨대, 동기화 수행, 메시지 전송, 작업 요청 전달 등) 시간을 결정하고 선택할 수 있다. 예컨대, 선택된 시간은 백홀 네트워크 채널(110)의 실시간 대역폭 가용성, 백홀 네트워크 채널(110)의 혼잡 레벨, 백홀 네트워크 채널(110)의 사용과 관련된 비용, 통신과 관련된 애플리케이션 요건(들) 또는 이들의 임의의 조합에 기반하여 선택된 "최적 시간(best time)"일 수 있다. 
결국, 애플리케이션 서비스 아바타(112)는 아바타 API(132)를 구현할 수 있다. 아바타 API(132)는 하나 이상의 애플리케이션 서비스 서버에 의해 제공되는 서비스 기능의 적어도 한 서브세트를 노출하거나, 애플리케이션 서비스 아바타(112)와 연결된 네트워크 섬(102) 내의 최종-사용자 장치의 서비스 요청에 응답하거나, 최종-사용자 장치(106)를 타겟팅하는 애플리케이션 서비스 서버(114)로부터의 명령을 처리하거나, 이들의 임의의 조합할 수 있다. 또한, 아바타 API(132)는 애플리케이션 서비스 서버(114)와 비동기식으로 통신하여 (예컨대, 애플리케이션 서비스 서버(114)에서 서비스 요청을 더 처리하도록) 서비스 요청을 송신하거나 컨텐츠 또는 명령을 수신할 수 있다. 아바타 API(132)에 의해 제공되는 이러한 서비스 기능은 최종-사용자 장치(106)의 로컬 세트의 프로필의 식별, 최종-사용자 요청이 수신되지만 백홀 네트워크 채널(110)이 이용 가능하지 않을 때의 "저장 및 전달" 기능, 최종-사용자 장치(106)의 로컬 세트에 대한 (예컨대, 애플리케이션 서비스 서버(114) 또는 코어 네트워크(108) 내 다른 소스들로부터의) 컨텐츠의 캐싱 등을 포함할 수 있다.
애플리케이션 서비스 아바타(112)는 백홀 네트워크 채널(110)을 통해 애플리케이션 서비스 서버(114)에 연결되는 최종-사용자 장치에도 불구하고 원격 영역의 최종-사용자 장치에 연속적인 애플리케이션 서비스를 제공하는 기회를 제공한다. 애플리케이션 서비스 아바타(112)는 최종-사용자 장치를 향하는 백홀 네트워크 채널(110)의 측면의 네트워크 액세스 에지로부터 컨텐츠 및 서비스를 제공할 수 있다. 애플리케이션 서비스 아바타(112)는 최종-사용자 장치(106)에 배포될 수 있는 컨텐츠를 사전-캐시하거나 최종-사용자 장치(106) 간에 메시지를 전달함으로써 오프-라인 및 로컬 경험을 제공할 수 있다.
도 2는 다양한 실시예에 따라 전원의 네트워킹 시스템(200)(예컨대, 도 1의 전원의 네트워킹 시스템(100))의 전원 에지(201)에서 애플리케이션 서비스 아바타(202)(예컨대, 도 1의 애플리케이션 서비스 아바타(112))를 구현하는 잠재적 위치를 도시하는 블록도이다. 전원 에지(201)는 백홀 네트워크(206)를 통해 코어 네트워크(204)에 연결된다. 코어 네트워크(204)는 다수의 상호연결형 컴퓨팅 장치 및 컴퓨터 서버를 포함한다. 예컨대, 코어 네트워크(204)는 애플리케이션 데이터 센터(208)(예컨대, 도 1의 데이터 센터(122)) 및 ISP POP(206)(도 1의 ISP 에지 POP(118))을 포함할 수 있다.
애플리케이션 서비스 아바타(202)는 전원 에지(201) 내 다양한 장치에서 구현될 수 있다. 애플리케이션 서비스 아바타(202)가 백홀 네트워크(206)를 향하여 더 가깝게 구현될수록, 더 많은 사용자가 애플리케이션 서비스 아바타(202)로부터 이익을 얻을 수 있고 더 많은 서비스 기능이 이용될 수 있다. 애플리케이션 서비스 아바타가 최종-사용자 장치를 향하여 더 가깝게 구현될수록, 서비스 요청에 대한 응답 시간이 더 빨라진다. 예컨대, 애플리케이션 서비스 아바타(202)는 집계 네트워크(212) 또는 액세스 네트워크(214)에서 구현될 수 있다. 집계 네트워크(212)는 예컨대 무선 네트워크 제어기(RNC), 기지국 제어기(BSC) 또는 마이크로파 제어기와 같은 집계 네트워크 설비(216)에 의해 확립될 수 있다. 액세스 네트워크(214)는 예컨대, 3G 기지국, Wi-Fi 액세스 지점 또는 라우터와 같은 액세스 네트워크 설비(218)에 의해 확립될 수 있다. 애플리케이션 서비스 아바타(202)는 집계 네트워크 설비(216) 또는 액세스 네트워크 설비(218)에 의해 구현될 수 있다. 그 대신, 애플리케이션 서비스 아바타(202)는 집계 네트워크 설비(216), 액세스 네트워크 설비(218) 또는 백홀 네트워크(206)와 연관된 네트워크 설비 중 하나와 네트워크 통신하는 아바타 서버(예컨대, 도 1의 아바타 서버(126))에서 구현될 수 있다.
일부 실시예에서, 애플리케이션 서비스 아바타(202)는 예컨대 최종-사용자 장치(222)와 같은 최종-사용자 장치들 중 하나에서 구현될 수 있다. 일부 실시예에서, 애플리케이션 서비스 아바타(202)의 인스턴스는 최종-사용자 장치의 각각에서 구현되고 활성화된다. 일부 실시예에서, 애플리케이션 서비스 아바타(202)의 인스턴스는 최종-사용자 장치 각각에 구현되지만, 이들 인스턴스의 서브세트만이 활성화된다. 예컨대, 애플리케이션 서비스 아바타(202)와 관련된 애플리케이션 서비스 서버(예컨대, 도 1의 애플리케이션 서비스 서버(114))는 애플리케이션 서비스 아바타(202)의 활성 인스턴스를 호스트하도록 최종-사용자 장치들 중 적어도 하나를 선택할 수 있다. 애플리케이션 서비스 서버는 다른 최종-사용자 장치들과 비교하여 기능(예컨대, 네트워크 인터페이스 및 프로토콜의 가용성), 사양(예컨대, 프로세서 유형 또는 최대 메모리 공간), 리소스 용량(예컨대, 이용가능한 배터리 전력, 이용가능한 메모리 공간, 이용가능한 대역폭 또는 이용가능한 프로세싱 전력) 및/또는 (예컨대, 특정 수의 다른 최종-사용자 장치들과 통신할 수 있는) 연결성에 기반하여 최종-사용자 장치를 선택할 수 있다. 다른 예로서, 애플리케이션 서비스 아바타(202)의 활성 인스턴스는 다른 최종-사용자 장치의 기능, 사양, 리소스 용량 및/또는 연결성에 기반하여 다른 최종-사용자 장치에서 애플리케이션 서비스 아바타(202)의 휴면 인스턴스를 활성화할 수 있다. 예컨대, 이러한 활성화 프로세스는 하나의 최종-사용자 장치에서 다른 최종-사용자 장치로 애플리케이션 서비스 아바타(202)의 역할을 핸드오버(handover)하는 프로세스일 수 있다. 이를 통해 애플리케이션 서비스 아바타(202)의 구현이 동적일 수 있다.  일부 실시예에서, 이러한 인스턴스의 선택적 활성화는 애플리케이션 서비스 서버에 의해 제어될 수 있다. 애플리케이션 서비스 아바타(202)가 최종-사용자 장치에서 구현되는 몇몇 실시예에서, 애플리케이션 서비스 아바타(202)의 인스턴스는 애플리케이션 서비스 아바타(202)에 의해 관리되는 데이터의 프라이버시를 보호하기 위해 최종-사용자가 아닌 애플리케이션 서비스 서버에 의해 제어되고 구성된다. 이는 예컨대 암호 키를 통한 암호 인증을 포함하는 보안 메커니즘을 통해 달성될 수 있다. 
도 3은 다양한 실시예에 따라 애플리케이션 서비스 아바타(예컨대, 도 1의 애플리케이션 서비스 아바타(112))를 구현하는데 사용될 수 있는 시스템 환경의 예를 도시하는 블록도이다. 몇몇 실시예에서, 애플리케이션 서비스 아바타는 아바타 서버(302)에서 구현된다. 아바타 서버(302)는 적어도 하나 이상의 애플리케이션 서비스 서버(예컨대, 애플리케이션 서비스 서버(304A) 및 애플리케이션 서비스 서버(304B), 포괄하여 "애플리케이션 서비스 서버(304)")와 적어도 간헐적으로 연결된다. 아바타 서버(302)는 하나 이상의 최종-사용자 장치(306)의 동적 세트를 포함하는 로컬 네트워크에 연속적으로 연결된다.
아바타 서버(302)는 자신의 운영 시스템(307)에서 아바타 엔진(308)을 실행할 수 있다. 아바타 엔진(308)은 하나 이상의 아바타 프로세스가 아바타 서버(302)에서 실행될 수 있게 한다. 일부 실시예에서, 각각의 아바타 프로세스는 상이한 애플리케이션 서비스에 대응하는 단일의 애플리케이션 서비스 아바타에 대응한다. 일부 실시예에서, 각각의 아바타 프로세스는 상이한 하드웨어 세트에서 구현될 수 있다. 예컨대, 아바타 프로세스는 서버 블레이드(server blades)(예컨대, 애플리케이션 블레이드(310A) 및 애플리케이션 블레이드(310B), 포괄하여 "애플리케이션 서버 블레이드(310)")에서 각각 구현될 수 있다. 애플리케이션 서버 블레이드들(310) 각각은 독립적인 프로세서, 독립적인 동작 메모리, 독립적인 영구 데이터 저장소 또는 이들의 임의의 조합을 가질 수 있다. 애플리케이션 서버 블레이드(310)는 네트워크 인터페이스, 전력 공급장치, 영구 데이터 저장소 또는 이들의 임의의 조합을 공유할 수 있다.
일부 실시예에서, 아바타 서버(302)는 컴퓨터 가상화를 위한 하이퍼바이저(hypervisor)(312)를 구현할 수 있다. 하이퍼바이저(312)는 하나 이상의 가상 아바타 서버(예컨대, 가상 서버(314A) 및 가상 서버(314B), 포괄하여 "가상 아바타 서버(314)")를 구현할 수 있다. 가상 아바타 서버들(314) 각각은 단일의 애플리케이션 서비스 아바타 또는 다수의 애플리케이션 서비스 아바타를 구현할 수 있다. 일부 실시예에서, 하이퍼바이저(312), 애플리케이션 서버 블레이드 및/또는 운영 시스템(307)에서 실행중인 하나 이상의 애플리케이션 서비스 아바타는 서로 통신하고 네트워크 환경 내의 다른 애플리케이션 서비스 아바타들과 통신할 수 있다. 
일부 실시예에서, 아바타 서버(302)는 아바타 데이터베이스(316)를 구현할 수 있다. 아바타 데이터베이스(316)는 운영 시스템(307), 하나 이상의 애플리케이션 서버 블레이드(310) 또는 하나 이상의 가상 아바타 서버(314)에서 구현될 수 있다. 아바타 데이터베이스(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))로 송신하는 하나 이상의 메시지를 큐잉하도록 구성된다. 예컨대, 애플리케이션 계층(402)은 서비스 품질(QoS) 메커니즘을 사용하여 이를 달성할 수 있다. QoS 메커니즘은 컴퓨터 네트워크 메시징 트래픽을 원활하게 하기 위한 리소스 예약 제어 메커니즘(resource reservation control mechanism)이다. 예컨대, 리소스 예약 제어 메커니즘은 ASAP(as-soon-as-possible) 큐, "Expire-After(다음날 이후 만료)" 큐, 우선순위-기반 큐 또는 이들의 임의의 조합을 구현할 수 있다. 
애플리케이션 계층(402)은 큐로부터 애플리케이션 서비스 서버로 메시지를 송신할 수 있는지 여부를 결정할 수 있다. 메시지를 송신할 수 있을 때, 애플리케이션 계층(402)은 클라이언트 애플리케이션 스터브(client application stub)을 관리 및/또는 호출할 수 있다. 클라이언트 애플리케이션 스터브는 원격 절차 호출(RPC) 동안 전달된 파라미터를 변환하는데 사용되는 실행가능한 명령어에 의해 구현된다. RPC를 통해 클라이언트 컴퓨터(예컨대, 애플리케이션 서비스 아바타)는 서버 컴퓨터(예컨대, 애플리케이션 서비스 서버)에서 절차(예컨대, 실행가능한 객체, 함수 또는 프로세스)를 원격으로 호출할 수 있다. 함수 호출에 사용된 파라미터는 클라이언트 컴퓨터와 서버 컴퓨터가 다른 주소 공간을 사용하기 때문에 변환되어야 한다. 클라이언트 애플리케이션 스터브는 원격 서버 컴퓨터가 로컬 함수 호출로서 RPC를 수신하도록 통합(convergence)을 수행한다.
연결 계층(404)은 애플리케이션 서비스 아바타를 호스트하는 아바타 서버(예컨대, 도 2에 기술된 임의의 장치에서의 아바타 서버)가 이용할 수 있는 하나 이상의 네트워크 인터페이스를 모니터한다. 연결성 계층(404)은 아바타 서버가 하나 이상의 로컬 최종-사용자 장치(예컨대, 도 1의 최종-사용자 장치(106))에 연결되어 있는지 여부 및/또는 아바타 서버가 애플리케이션 서비스 서버와 연결되어 있는지 여부를 결정할 수 있다. 연결 계층(404)은 장치 프로필(예컨대, 소프트웨어 및 하드웨어 성능, 리소스 용량, 사양, 연결 가용성, 신원(identities) 또는 이들의 임의의 조합) 및/또는 연결된 장치와 관련된 사용자 프로필(예컨대, 소셜 네트워크, 위치-기반 프로필, 네트워크 액세스 선호도 또는 이들의 임의의 조합)를 포함하는 모든 연결된 장치들의 목록을 관리할 수 있다.
연결 계층(404)은 최종-사용자 장치가 연결하거나 연결을 끊을 때 인터럽트 메시지(예컨대, 핑 메시지)를 적어도 하나의 다른 계층(예컨대, 애플리케이션 계층(402) 또는 라우팅 계층(406))으로 송신할 수 있다. 연결 계층(404)은 백홀 네트워크 채널이 연결해제될 때(예컨대, 애플리케이션 서비스 서버가 연결해제될 때) 인터럽트 메시지를 적어도 하나의 다른 계층으로 송신할 수 있다. 예컨대, 연결 계층(404)은 애플리케이션 계층(402)에 의해 관리되는 하나 이상의 클라이언트 애플리케이션 스터브로 인터럽트 메시지를 송신할 수 있다. 연결 계층(404)은 또한 백홀 네트워크 채널이 이용 가능할 때의 예상된 스케줄을 관리할 수 있다. 일부 실시예에서, 연결 계층(404)은 백홀 네트워크 채널을 사용하는 것과 관련된 비용 맵(cost map)을 관리할 수 있다. 예컨대, 이를 통해 라우팅 계층(406)은 애플리케이션 서비스 아바타의 네트워크 사용을 비용 최적화할 수 있다. 연결 계층(404)은 (예컨대, 간헐적 연결이 이용 가능해질 때) 애플리케이션 서비스 서버에 대한 QoS 큐에 대한 백홀 QoS 파라미터를 더 설정할 수 있다. 연결 계층(404)은 또한 (예컨대, 애플리케이션 서비스 아바타에 의해 제공되는 애플리케이션 서비스에 대응하는) 클라이언트 애플리케이션 스터브에 대한 메시지 또는 컨텐츠를 수신할 수 있다. 애플리케이션 서비스 서버는 (예컨대, 도 1의 위임 API(130)를 통해) 푸시 메시지로서 메시지 또는 컨텐츠를 송신할 수 있다.
라우팅 계층(406)은 최종-사용자 장치들과 애플리케이션 서비스 서버 간의 메시지 또는 컨텐츠 트래픽을 원활하게 할 수 있다. 라우팅 계층(406)은 메시지를 라우팅하는 방법 및 시기를 결정하기 위해 연결 계층(404)에 의해 관리되는 연결 정보 및 프로필 정보를 사용할 수 있다. 예컨대, 애플리케이션 서비스 서버로부터의 착신 메시지에 대하여, 라우팅 계층(406)은 연결 계층(404)으로부터 최종-사용자 장치가 착신 메시지에 의해 타겟팅된 사용자 프로필과 연관된 애플리케이션 서비스 아바타에 연결되거나 자주 연결하는지를 결정할 수 있다. 또 다른 예로서, 최종-사용자 장치로부터의 발신 메시지의 경우, 라우팅 계층(406)은 연결 계층(404)으로부터 타겟 장치의 신원을 결정할 수 있다. 타겟 장치가 애플리케이션 서비스 서버 또는 간헐적 네트워크 채널을 통해 연결된 또 다른 컴퓨팅 장치라면, 연결 계층(404)은 예상된 전달 시간으로 라우팅 계층(406)에 응답할 수 있고/있거나 메시지를 메시지 큐에 배치하는 것을 용이하게 할 수 있다. 타겟 장치가 애플리케이션 서비스 아바타에 연결된 최종-사용자 장치라면, 연결 계층(404)은 타겟 장치에 메시지를 국부적으로 라우팅하는 것을 용이하게 하는데 필요한 정보를 라우팅 계층(406)에 제공할 수 있다.
시스템 계층(408)은 클라이언트 애플리케이션 스터브를 QoS 파라미터로 등록 또는 등록해제할 수 있다. 시스템 계층(408)은 또한 시스템 로그를 기록하고 저장할 수 있다. 시스템 로그는 예컨대 각각의 클라이언트 애플리케이션 스터브와 관련된 QoS 파라미터, 애플리케이션 서비스 서버 또는 최종-사용자 장치로/로부터 송신된 메시지, 아바타 API(400)의 계층에 의해 수행되는 동작, 서비스 작업에 관한 오류 또는 예외, 및/또는 이들의 임의의 조합을 포함할 수 있다.
애플리케이션 서비스 서버 및/또는 아바타 서버(예컨대, 애플리케이션 서비스 API(124), 위임 API(130), 아바타 API(132) 또는 아바타 API(400))에서 구현되는 모듈은 하드웨어 구성요소, 소프트웨어 구성요소 또는 이들의 임의의 조합으로서 구현될 수 있다. 예컨대, 설명된 모듈들은 도 6에 기술된 컴퓨터 시스템의 프로세서 또는 제어기에 의해 실행될 수 있는 비-일시적 메모리의 명령어로서 구현되는 소프트웨어 구성요소일 수 있다. 또 다른 예로서, 모듈들에 도입된 방법들 및 다른 기술들은 소프트웨어 및/또는 펌웨어에 의해 프로그래밍되거나 구성된 프로그램 가능한 회로부에 의해 구현될 수 있거나, 전체적으로 특수목적의 "하드와이어(hardwired)" 회로부에 의해 또는 이러한 형태들의 조합으로 구현될 수 있다. 이런 특수목적의 회로부는 (만일 있다면) 예컨대 하나 이상의 ASICs(application-specific integrated circuits), PLDs(programmable logic devices), FPGAs(field-programmable gate arrays) 등의 형태일 수 있다.
각각의 모듈은 개별적으로 그리고 다른 모듈들과는 별도로 동작할 수 있다. 모듈의 일부 또는 전부는 하나의 모듈로 결합될 수 있다. 단일 모듈은 하위 모듈로 나눌 수 있으며, 각각은 단일 모듈의 별도의 방법 단계 또는 방법 단계들을 수행한다. 모듈은 메모리 공간으로의 액세스를 공유할 수 있다. 하나의 모듈은 다른 모듈에 의해 접근되거나 변형되는 데이터에 액세스할 수 있다. 모듈은 물리적 연결이나 가상 연결을 직접 또는 간접적으로 공유하는 경우 서로 "연결"되어 있는 것으로 간주될 수 있으므로 한 모듈로부터 액세스되거나 수정된 데이터가 다른 모듈에서 액세스될 수 있게 한다. 각각의 "메모리 공간" 또는 "데이터 뱅크"는 데이터 저장 장치로 구현될 수 있으며 개별적이고 다른 데이터 저장소와는 독립적으로 동작할 수 있다. 데이터 저장소의 일부 또는 전부는 하나의 데이터 저장소로 결합될 수 있다. 또한, 단일의 데이터 저장소는 하위-저장소로 분할될 수 있고 각 하위 저장소는 단일의 데이터 저장소의 일부를 포함한다.
기술된 저장소 또는 "스토어(stores)"는 하드웨어 구성요소 또는 디지털 데이터를 저장하기 위한 하드웨어 구성요소의 일부이다. 각 저장소는 단일 물리적 엔티티이거나 다수의 물리적 장치를 통해 분산될 수 있다. 각 저장소는 별도의 물리적 장치들에 있거나 동일한 물리적 장치 또는 장치들을 공유할 수 있다. 각 저장소는 런-타임 애플리케이션, 프로세스 또는 모듈에 대한 특정 저장 공간을 할당할 수 있다.
도 5는 다양한 실시예에 따라 애플리케이션 서비스 아바타(예컨대, 도 1의 애플리케이션 서비스 아바타(112))로서 컴퓨팅 장치(예컨대, 도 1의 아바타 서버(126))를 동작하는 방법(500)을 도시한 흐름도이다. 블록 502에서, 컴퓨팅 장치는 애플리케이션 서비스 아바타를 구현한다. 컴퓨팅 장치는 백홀 네트워크 채널을 통해 애플리케이션 서비스를 클라이언트 애플리케이션으로 제공하기 위한 애플리케이션 서비스 서버(예컨대, 도 1의 애플리케이션 서비스 서버(114))로의 적어도 하나의 간헐적 네트워크 액세스를 가질 수 있다.
블록 504에서, 컴퓨팅 장치는 컴퓨팅 장치에 연결된 하나 이상의 최종-사용자 장치의 목록을 관리하여 서비스 그룹을 설정하여 애플리케이션 서비스에 액세스할 수 있다. 예컨대, 블록 504는 최종-사용자 장치에 대한 장치 프로필 및 최종-사용자 장치와 관련된 사용자 프로필을 관리하는 컴퓨팅 장치를 포함할 수 있다.
블록 506에서, 컴퓨팅 장치는 애플리케이션 서비스에 의해 제공되는 기능의 적어도 한 서브세트를 최종-사용자 장치에 에뮬레이트함으로써 로컬 애플리케이션 서비스를 제공한다. 예컨대, 로컬 애플리케이션 서비스를 제공하는 것은 아바타 서버에서 적어도 하나의 최종-사용자 장치로부터의 서비스 요청을 적어도 부분적으로 로컬 처리하는 것을 포함할 수 있다. 서비스 요청을 처리하는 것은 최종-사용자 장치 중 하나를 대신하여 원격 절차 호출 중에 파라미터를 애플리케이션 서비스 서버로 변환하는 클라이언트 애플리케이션 프로그램 스터브를 호출하는 것을 포함할 수 있다.
일부 실시예에서, 로컬 애플리케이션 서비스를 제공하는 것은 서비스 그룹 내 적어도 제1 최종-사용자 장치로부터 서비스 요청을 수신하는 것을 포함할 수 있다. 서비스 요청은 서비스 그룹 내 제2 최종-사용자 장치를 포함할 수 있다. 로컬 애플리케이션 서비스를 제공하는 것은 메시지를 제1 최종-사용자 장치를 대신하여 제2 최종-사용자 장치로 통신함으로써 적어도 부분적으로 서비스 요청을 처리하는 것을 더 포함할 수 있다. 메시지를 통신하는 것은 백홀 네트워크 채널이 이용 가능하지 않거나 애플리케이션 서비스 서버가 접속될 수 없다는 결정에 응답할 수 있다. 서비스 요청을 처리하는 것은 서비스 요청에 의해 표시되거나, 서비스 요청에서 참조되거나, 서비스 요청으로부터 유래한 메시지를 식별하는 것을 포함할 수 있다.
일부 실시예에서, 로컬 애플리케이션 서비스를 제공하는 것은 최종-사용자 장치 중 하나로부터 미디어 컨텐츠에 대한 데이터 처리 요청(예컨대, 데이터 변환 요청)을 수신하는 것을 포함할 수 있다. 예컨대, 최종-사용자는 애플리케이션 서비스를 위한 음성 명령을 송신할 수 있다. 음성 명령은 음성 인식 및/또는 번역 처리 작업을 포함할 수 있다. 컴퓨팅 장치는 아바타 서버에 저장된 처리 모듈의 로컬 버전을 이용함으로써 애플리케이션 서비스 아바타를 사용하여 미디어 컨텐츠를 변환할 수 있다.
일부 실시예에서, 로컬 애플리케이션 서비스를 제공하는 것은 최종-사용자 장치들 중 요청중인 장치로부터 컨텐츠 식별자를 포함하는 컨텐츠 제공 요청을 수신하는 것을 포함할 수 있다. 컴퓨팅 장치는 컴퓨팅 장치가 이용하거나 컴퓨팅 장치 내에서 이용할 수 있는 로컬 데이터 뱅크 내에 컨텐츠 식별자를 통해 컨텐츠를 위치시킬 수 있다. 컴퓨팅 장치가 로컬 데이터 뱅크에서 컨텐츠를 찾을 수 없고 백홀 네트워크 채널이 이용 가능하지 않을 때, 컴퓨팅 장치는 요청중인 장치로의 추후 컨텐츠 전달을 위해 컨텐츠에 대한 컨텐츠 요청을 애플리케이션 서비스 서버에 큐잉한다. 컴퓨팅 장치가 로컬 데이터 뱅크에서 컨텐츠를 찾을 수 없고 백홀 네트워크 채널이 이용 가능할 때, 컴퓨팅 장치는 요청중인 장치로 전달하도록 애플리케이션 서비스 서버로부터 컨텐츠를 페치한다. 컴퓨팅 장치가 로컬 데이터 뱅크에서 컨텐츠를 찾으면, 컴퓨팅 장치는 요청중인 장치로 컨텐츠를 제공한다.
일부 실시예에서, 로컬 애플리케이션 서비스를 제공하는 것은 최종-사용자 장치 사이에서 요청중인 장치로부터 게재가능한 컨텐츠를 포함하는 컨텐츠 게재 요청을 수신하는 것을 포함한다. 이후, 컴퓨팅 장치는 게재가능한 컨텐츠를 애플리케이션 서비스 서버에 전송하기 전에 서비스 그룹이 게재가능한 컨텐츠를 이용할 수 있도록 함으로써 서비스 그룹 내 게재가능한 컨텐츠를 사전-게재할 수 있다.
블록 508에서, 컴퓨팅 장치는 서비스 요청을 완료하도록 서비스 요청과 비동기식으로 애플리케이션 서비스 서버와 통신할 수 있다. 블록 508의 로직은 백홀 네트워크 채널이 이용 가능하다는 결정에 응답하여 수행될 수 있다.
블록 510에서, 컴퓨팅 장치는 애플리케이션 서비스 서버로부터 푸시 메시지를 수신할 수 있다. 푸시 메시지는 애플리케이션 서비스 아바타에 대한 시스템 업데이트일 수 있다. 예컨대, 블록 510은 애플리케이션 서비스 서버로부터 처리 모듈의 로컬 버전에 대한 업데이트를 수신하는 것을 포함할 수 있다. 또한, 푸시 메시지는 서비스 그룹의 최종-사용자 장치 중 하나에 대한 메시지일 수도 있다.
프로세스들 또는 방법들이 소정의 순서로 제시되지만, 대안적인 실시예들은 상이한 순서로 단계들을 갖는 루틴을 수행하거나 블록들을 갖는 시스템을 구현할 수 있고, 일부 프로세스들 또는 블록들은 대체물 또는 하위 조합을 제공하도록 삭제, 이동, 추가, 하위 분할, 결합 및/또는 수정될 수 있다. 이들 프로세스 또는 블록 각각은 다양한 다른 방식으로 구현될 수 있다. 또한, 프로세서 또는 블록은 때때로 순차적으로 수행되는 것으로 도시되지만, 그 대신 이런 프로세서 또는 블록은 병행하여 수행될 수 있거나, 다른 시기에 수행될 수 있다.
도 6은 다양한 실시예에 따라 본 명세서에 기재된 하나 이상의 컴퓨팅 장치 또는 서버를 나타낼 수 있는 컴퓨팅 장치(600)의 예의 블록도이다. 컴퓨팅 장치( 600)는 도 1의 애플리케이션 서비스 아바타(112), 도 1의 애플리케이션 서비스 서버(114) 또는 본 명세서에 기술된 방법과 프로세스(예컨대, 도 5의 방법(500))를 구현하는 하나 이상의 컴퓨팅 장치일 수 있다. 컴퓨팅 장치(600)는 인터커넥트(630)에 연결된 하나 이상의 프로세서(610) 및 메모리(620)를 포함한다. 도 6에 도시된 인터커넥트(630)는 임의의 하나 이상의 개별 물리적 버스, 포인트-투-포인트 연결 또는 적절한 브릿지, 어댑터 또는 제어기로 연결되는 이들 모두를 나타낼 수 있는 추상도이다. 따라서, 인터커넥트(630)는 예컨대 시스템 버스, PCI(Peripheral Component Interconnect) 버스 또는 PCI-Express 버스, HyperTransport 또는 ISA(Industry Standard Architecture) 버스, SCSI(Small Computer System Interface) 버스, 범용 직렬 버스(USB), IIC(I2C) 버스, 또는 "파이어와이어(Firewire)"를 포함할 수 있다.
프로세서(들)(610)는 컴퓨팅 장치(600)의 중앙 처리 장치(CPU)이며 따라서 컴퓨팅 장치(600)의 전체 동작을 제어한다. 특정 실시예에서, 프로세서(들)(610)는 메모리(620)에 저장된 소프트웨어 또는 펌웨어를 실행함으로써 이를 수행한다. 프로세서(들)(601)는 하나 이상의 프로그램가능한 범용 또는 특수용 마이크로프로세서, 디지털 신호 프로세서(DSPs), 프로그램가능한 컨트롤러, 주문형 집적회로(application specific integrated circuits; ASICs), 프로그램가능한 논리 장치(PLDs), 보안 플랫폼 모듈(trusted platform modules; TPMs) 등 또는 이런 장치의 조합이거나 이를 포함할 수 있다.
메모리(620)는 컴퓨팅 장치(600)의 메인 메모리이거나 또는 메인 메모리를 포함한다. 메모리(602)는 임의의 형태의 랜덤 액세스 메모리(RAM), 읽기-전용 메모리(ROM), 플래시 메모리 등 또는 이런 장치의 조합을 나타낸다. 사용시, 메모리(620)는 본 명세서에 개시된 메시 연결 시스템에 따른 명령들을 포함하는 코드(670)를 포함할 수 있다.
또한, 네트워크 어댑터(640) 및 저장 어댑터(650)가 인터커넥트(630)를 통해 프로세서(들)(610)에 연결된다. 네트워크 어댑터(640)는 네트워크를 통해 원격 장치와 통신하는 능력을 컴퓨팅 장치(600)에 제공하며, 예컨대, 이더넷 어댑터(Ethernet adapter) 또는 파이버 채널 어댑터(Fibre Channel adapter)일 수 있다. 네트워크 어댑터(640)는 또한 컴퓨팅 장치(600)에 다른 컴퓨터와 통신하는 능력을 제공할 수 있다. 저장 어댑터(650)는 컴퓨팅 장치(600)가 영구 저장소에 액세스할 수 있게 하며, 예컨대 파이버 채널 어댑터 또는 SCSI 어댑터일 수 있다.
메모리(620)에 저장된 코드(670)는 상술한 동작을 수행하도록 프로세서(들)(610)를 프로그래밍하는 소프트웨어 및/또는 펌웨어로서 구현될 수 있다. 특정 실시예에서, 이러한 소프트웨어 또는 펌웨어는 컴퓨팅 장치(600)를 통해 (예컨대, 네트워크 어댑터(640)를 통해) 원격 시스템으로부터 다운로드함으로써 컴퓨팅 장치(600)에 초기에 제공될 수 있다.
본 명세서에서 소개된 기술은 예컨대 소프트웨어 및/또는 펌웨어로 프로그래밍되거나, 또는 특수목적의 하드와이어 회로부에서 또는 이러한 형태들의 조합으로 프로그래밍된 프로그램가능 회로부(예컨대, 하나 이상의 마이크로프로세서)에 의해 구현될 수 있다. 특수목적의 하드와이어 회로부는 예컨대 하나 이상의 ASICs(Application-Specific Integrated Circuits), PLDs(programmable logic devices), FPGAs(field-programmable gate arrays) 등의 형태일 수 있다.
본 명세서에 소개된 기술을 구현하는데 사용하기 위한 소프트웨어 또는 펌웨어는 기계-판독가능한 저장 매체(machine-readable storage medium)에 저장될 수 있고 하나 이상의 범용 또는 특수용 프로그램가능 마이크로프로세서에 의해 실행될 수 있다. 본 명세서에서 사용되는 용어인 "기계-판독가능한 저장 매체"는 기계에 의해 접근 가능한 형태로 정보를 저장할 수 있는 임의의 장비를 포함한다(기계는 예컨대 컴퓨터, 네트워크 장치, 휴대 전화, 개인용 정보 단말기(PDA), 제조 도구, 하나 이상의 프로세서가 있는 장치 등일 수 있다). 예컨대, 기계-액세스 가능 저장 매체는 기록 가능한/기록 불가능한 매체(예컨대, 읽기-전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 등)를 포함한다.
본 명세서에서 사용되는 "로직(logic)"이라는 용어는 예컨대 특정 소프트웨어 및/또는 펌웨어, 특수목적의 하드와이어 회로부 또는 이들의 조합으로 프로그램된 프로그램 가능한 회로부를 포함할 수 있다.
소셜 네트워킹 시스템 개요
본 명세서에 개시된 애플리케이션 서비스의 다양한 실시예들은 소셜 네트워킹 시스템을 이용하거나 소셜 네트워킹 시스템의 일부이다. 소셜 네트워킹 시스템은 일반적으로 사용자가 소셜 네트워킹 시스템의 컨텍스트 내부 및 외부 모두의 객체 및 다른 사용자들과 상호작용할 수 있는 메커니즘을 제공한다. 소셜 네트워킹 시스템 사용자는 예컨대 사업체 또는 다른 비-인격 엔티티와 같은 개인 또는 임의의 다른 엔티티일 수 있다. 소셜 네트워킹 시스템은 사용자가 소셜 네트워킹 시스템 객체 및 정보와 상호작용할 수 있게 하고 디스플레이하는 일련의 상호-연결된 페이지를 포함하는 웹-기반 인터페이스 또는 모바일 인터페이스를 이용할 수 있다. 예컨대, 소셜 네트워킹 시스템은 소셜 네트워킹 시스템 사용자에 의해 입력되거나 관련된 정보(예컨대, 사용자의 "프로필") 및 객체를 포함하는 각각의 소셜 네트워킹 시스템 사용자에 대한 페이지를 디스플레이할 수 있다. 또한, 소셜 네트워킹 시스템은 컨셉 전용, 유사한 관심사("그룹")를 가진 사용자 전용의 사진 또는 비디오를 포함하거나, 다른 사용자들에 의하거나 그로부터의 통신이나 소셜 네트워킹 시스템 활동을 포함하는 페이지를 가질 수 있다. 소셜 네트워킹 시스템 페이지는 다른 소셜 네트워킹 시스템 페이지에 대한 링크를 포함할 수 있으며, 예컨대 검색, 실시간 통신, 컨텐츠-아이템 업로드, 구매, 광고 및 임의의 다른 웹-기반 추론 엔진이나 기능과 같은 추가 기능을 포함할 수 있다. 소셜 네트워킹 시스템 인터페이스는 웹 브라우저 또는 비-웹 브라우저 애플리케이션 예컨대 모바일 컴퓨팅 장치 또는 다른 컴퓨팅 장치에서 실행되는 전용 소셜 네트워킹 시스템 애플리케이션으로부터 액세스 가능할 수 있음에 유의해야 한다. 따라서, 본 명세서에서 사용되는 바와 같이, "페이지"는 웹페이지, 애플리케이션 인터페이스나 디스플레이, 웹페이지나 애플리케이션을 통해 디스플레이되는 위젯(widget), 박스나 다른 그래픽 인터페이스, (소셜 네트워킹 시스템의 컨텍스트 내외의) 다른 페이지의 오버레이 창, 또는 소셜 네트워크 시스템 플러그 인이나 통합 능력을 갖는 소셜 네트워킹 시스템 외부의 웹페이지일 수 있다.
상술한 바와 같이, 소셜 그래프는 (상호작용, 활동 또는 관계성을 나타내는)에지로 상호연결되는 (소셜 네트워킹 시스템 객체를 나타내거나 소셜 객체라고도 하는) 노드의 세트를 포함할 수 있다. 소셜 네트워킹 시스템 객체는 소셜 네트워킹 시스템 사용자, 비-인격 엔티티, 컨텐츠 아이템, 그룹, 소셜 네트워킹 시스템 페이지, 위치, 애플리케이션, 주제, 개념 또는 가령 영화, 밴드 또는 책과 같은 다른 소셜 네트워킹 시스템 객체일 수 있다. 컨텐츠 아이템은 소셜 네트워킹 시스템 사용자 또는 다른 객체가 가령 메시지, 대기중인 메시지(예컨대, 이메일), 텍스트 및 SMS(단문 메시지 서비스) 메시지, 코멘트 메시지, 임의의 다른 적절한 메시징 기술을 사용하여 송신된 메시지, HTTP 링크, HTML 파일, 이미지, 비디오, 오디오 클립, 문서, 문서 편집, 캘린더 항목이나 이벤트 및 다른 컴퓨터-관련 파일을 생성하거나, 업로드하거나, 편집하거나, 상호작용할 수 있는 모든 것을 포함할 수 있다. 주제 및 컨셉은 소셜 그래프의 맥락에서 임의의 사람, 장소, 사물 또는 사상을 나타내는 노드를 포함한다. 
소셜 네트워킹 시스템은 사용자가 사용자의 관심사, 학력과 경력, 연락처 정보, 인구통계 정보 및 사용자의 프로필 페이지의 다른 신상 정보에 관한 정보를 입력하고 디스플레이할 수 있게 한다. 각각의 학교, 고용주, 관심사(예컨대, 음악, 책, 영화, 텔레비전 쇼, 게임, 정치적 견해, 철학, 종교, 그룹 또는 팬 페이지), 지리적 위치, 네트워크 또는 프로필 페이지 내에 포함된 임의의 다른 정보는 소셜 그래프에서 노드로 표현될 수 있다. 소셜 네트워킹 시스템은 사용자가 사진, 비디오, 문서, 노래 또는 다른 컨텐츠 아이템을 업로드하거나 생성할 수 있게 하며, 사용자가 이벤트를 생성하고 스케줄링할 수 있게 한다. 컨텐츠 아이템 및 이벤트는 소셜 그래프에서 노드로 표현될 수 있다.
소셜 네트워킹 시스템은 소셜 네트워킹 시스템 내 비-인격 객체와 상호작용 하는 다양한 수단을 제공할 수 있다. 예컨대, 사용자는 그룹을 형성하거나 그룹에 가입할 수 있거나, 소셜 네트워킹 시스템 내 팬 페이지의 팬이 될 수 있다. 또한, 사용자는 소셜 네트워킹 시스템 객체를 생성하거나, 다운로드하거나, 열람하거나, 업로드하거나, 링크하거나, 태그하거나, 편집하거나, 실행할 수 있다. 사용자는 소셜 네트워킹 시스템의 컨텍스트 외부의 소셜 네트워킹 시스템 객체와 상호작용할 수 있다. 예컨대, 뉴스 웹사이트의 기사는 사용자가 클릭할 수 있는 "좋아요" 버튼을 가질 수 있다. 각각의 이런 예에서, 사용자와 객체 사이의 상호작용은 사용자의 노드와 객체의 노드를 연결하는 소셜 그래프의 에지로 표현될 수 있다. 사용자는 특정 위치로 "체크인(check in)"하는 위치 감지 기능(가령 모바일 장치상의 GPS 수신기)을 사용할 수 있고, 에지는 소셜 그래프에서 사용자의 노드를 위치의 노드와 연결할 수 있다.
소셜 네트워킹 시스템은 다양한 통신 채널을 사용자들에게 제공할 수 있다. 예컨대, 소셜 네트워킹 시스템은 사용자가 이메일, 인스턴트 메시지 또는 텍스트/SMS 메시지를 하나 이상의 다른 사용자에게 이메일을 보낼 수 있게 하고; 사용자가 사용자의 담벼락이나 프로필 또는 다른 사용자의 담벼락이나 프로필에 메시지를 게시할 수 있게 하며; 사용자가 그룹 또는 팬 페이지에 메시지를 게시할 수 있게 하고; 사용자가 사용자 또는 다른 사용자에 의해 생성되거나 업로드되는 이미지, 담벼락 게시물 또는 다른 컨텐츠 아이템에 대해 코멘트할 수 있게 할 수 있다. 적어도 하나의 실시예에서, 사용자는 현재 이벤트, 마음과 생각의 상태, 감정, 활동 또는 임의의 다른 현재시간 관련 통신을 나타내는 상태 메시지를 사용자의 프로필에 게시한다. 소셜 네트워킹 시스템은 사용자가 소셜 네트워킹 시스템의 내부 및 외부 모두에서 통신할 수 있게 할 수 있다. 예컨대, 제1 사용자는 제2 사용자에게 소셜 네트워킹 시스템 내 메시지를, 소셜 네트워킹 시스템을 통한 이메일을, 소셜 네트워킹 시스템에서 비롯되나 외부에 있는 이메일을, 소셜 네트워킹 시스템 내 인스턴트 메시지를, 그리고 소셜 네트워킹 시스템에서 비롯되나 외부에 있는 인스턴트 메시지를 송신할 수 있다. 또한, 제1 사용자는 제2 사용자의 프로필 페이지에 대해 코멘트하거나, 예컨대 제2 사용자에 의해 업로드되는 컨텐츠 아이템과 같이 제2 사용자와 연관된 객체에 대해 코멘트할 수 있다.
소셜 네트워킹 시스템을 통해 사용자는 서로 연관시키고 소셜 네트워킹 시스템의 다른 사용자와 연결할 수 있다. 2명의 사용자(예컨대, 소셜 그래프 노드들)가 소셜 네트워킹 시스템에서 소셜 연결을 명시적으로 확립하는 경우, 그들은 소셜 네트워킹 시스템의 맥락에서 "친구"(또는 "연결관계")가 된다. 예컨대, "John Doe"로부터 "Jane Smith"로의 친구 요청이 "Jane Smith "에 의해 수락되면 소셜 연결이 된다. 소셜 연결은 소셜 네트워크 에지이다. 소셜 네트워킹 시스템에서 친구가 되면 사용자들은 미-연결 사용자들이 이용할 수 있는 것보다 서로에 대해 더 많은 정보에 액세스할 수 있다. 예컨대, 친구가 되면 사용자는 다른 사용자의 프로필을 열람하거나 다른 사용자의 친구를 보거나 다른 사용자의 사진을 열람할 수 있다. 마찬가지로, 소셜 네트워킹 시스템 내에서 친구가 되면 사용자는 예컨대 (소셜 네트워킹 시스템 내부 및 외부의) 이메일, 인스턴트 메시지, 문자 메시지, 전화 또는 임의의 다른 통신 인터페이스에 의해 다른 사용자와 통신하도록 더 많이 액세스할 수 있다. 친구가 되면 사용자는 다른 사용자의 업로드된 컨텐츠 아이템을 열람하거나, 코멘트하거나, 다운로드하거나, 보증하거나, 상호작용하도록 액세스할 수 있다. 연결을 확립하고, 사용자 정보에 액세스하며, 통신하고, 소셜 네트워킹 시스템의 컨텍스트 내에서 상호작용하는 것은 2명의 소셜 네트워킹 시스템 사용자들을 표현하는 노드들 사이의 에지로 표현될 수 있다.
소셜 네트워킹 시스템에서 연결을 명시적으로 확립하는 것 이외에, 공통의 특성을 갖는 사용자들이 통신의 토픽을 결정하는데 사용하기 위해 소셜 컨텍스트를 결정할 목적으로 연결(가령, 약한 연결 또는 암시적 연결)된 것으로 간주될 수 있다. 적어도 하나의 실시예에서, 공통 네트워크에 속한 사용자는 연결된 것으로 간주된다. 예컨대, 공통의 학교에 다니거나, 공통의 회사에서 일하거나, 공통의 소셜 네트워킹 시스템 그룹에 속하는 사용자들은 연결된 것으로 간주될 수 있다. 적어도 하나의 실시예에서, 공통의 신상 특성을 갖는 사용자는 연결된 것으로 간주된다. 예컨대, 사용자들이 태어나거나 자란 지리적 영역, 사용자들의 연령, 사용자들의 성별 및 사용자들의 관계 상태가 사용자들의 연결 여부를 결정하는데 사용될 수 있다. 적어도 하나의 실시예에서, 공통의 관심사를 가진 사용자는 연결된 것으로 간주된다. 예컨대, 사용자들의 영화 선호도, 음악 선호도, 정치적 견해, 종교적 견해 또는 임의의 다른 관심사가 사용자들의 연결 여부를 결정하는데 사용될 수 있다. 적어도 하나의 실시예에서, 소셜 네트워킹 시스템 내에서 공통의 조치를 취한 사용자는 연결된 것으로 간주된다. 예컨대, 공통의 객체를 보증하거나 추천한 사용자들, 공통의 컨텐츠 아이템에 대해 코멘트한 사용자들 또는 공통의 이벤트로 회답(RSVP)한 사용자들은 연결된 것으로 간주될 수 있다. 소셜 네트워킹 시스템은 소셜 그래프를 이용하여 특정 사용자와 연결되거나 유사한 사용자를 결정함으로써 사용자들 간의 소셜 컨텍스트를 결정하거나 평가할 수 있다. 소셜 네트워킹 시스템은 이러한 소셜 컨텍스트 및 공통의 속성을 이용하여 컨텐츠 배포 시스템 및 컨텐츠 캐싱 시스템이 특정 소셜 네트워크 계정과 연관된 캐시 기기(cache appliances)에서 캐싱하기 위해 컨텐츠 아이템을 예측가능하게 선택하도록 촉진할 수 있다.
본 명세서의 일부 실시예는 상술한 것에 추가하여 또는 대체하여 다른 태양, 구성요소, 특징 및 단계를 갖는다. 이런 잠재적인 추가 및 대체는 본 명세서의 나머지 부분을 통해 기술된다. 
예컨대, 일부의 실시예는 하나 이상의 최종-사용자 장치의 로컬 세트와 연결하고, 백홀 네트워크 채널을 통해 적어도 간헐적으로 애플리케이션 서비스를 제공하는 애플리케이션 서비스 서버와 연결하도록 구성된 하나 이상의 네트워크 인터페이스; 백홀 네트워크 채널이 이용 가능한 경우 애플리케이션 서비스 서버와 통신하고 아바타 애플리케이션 프로그래밍 인터페이스(API)를 제공하는 애플리케이션 서비스 아바타를 호스트하도록 구성된 프로세서; 및 최종-사용자 장치의 로컬 세트에 대한 컨텐츠를 캐시하고 최종-사용자 장치의 프로필을 추적하는 메모리를 포함하는 아바타 서버를 포함하며, 아바타 API는 애플리케이션 서비스에 의해 제공되는 기능의 적어도 하나의 서브세트를 에뮬레이팅함으로써 애플리케이션 서비스 아바타를 통해 최종-사용자 장치로 로컬 애플리케이션 서비스를 제공한다. 아바타 서버는 네트워크 액세스를 제공하거나 최종-사용자 장치에 대한 통신 데이터를 집계하는 네트워크 설비에서 구현될 수 있다. 아바타 서버는 최종-사용자 장치에 대한 네트워크 액세스를 제공하는 네트워크 설비와는 별도로 구현될 수 있다. 아바타 서버는 최종-사용자 장치 중 적어도 하나에서 구현될 수 있다.
일부의 실시예는 아바타 서버를 운영하기 위한 컴퓨터-실행가능한 명령어를 저장한 컴퓨터-판독가능한 저장 메모리(예컨대, 비-일시적 데이터 저장 메모리)를 포함한다. 컴퓨터-판독가능한 저장 메모리는 백홀 네트워크 채널을 통해 애플리케이션 서비스를 클라이언트 애플리케이션에 제공하기 위한 애플리케이션 서비스 서버로의 적어도 하나의 간헐적 네트워크 액세스를 가지는 아바타 서버에서 애플리케이션 서비스 아바타를 구현하기 위한 명령어; 애플리케이션 서비스에 액세스하는 아바타 서버와 연결되는 하나 이상의 최종-사용자 장치의 목록을 관리함으로써 서비스 그룹을 확립하기 위한 명령어; 서비스 그룹 내 적어도 하나의 제1 최종-사용자 장치로부터, 서비스 그룹 내 제2 최종-사용자 장치와 관련되는 아바타 서버에서의 서비스 요청을 수신하기 위한 명령어; 및 제1 최종-사용자 장치를 대신하여 제2 최종-사용자 장치로 메시지를 통신함으로써 서비스 요청을 적어도 부분적으로 처리하기 위한 명령어를 포함할 수 있다. 컴퓨터-판독가능한 저장 메모리는 애플리케이션 서비스에 의해 제공되는 기능의 적어도 하나의 서브세트를 에뮬레이팅함으로써 아바타 서버를 통해 최종-사용자 장치로 로컬 애플리케이션 서비스를 제공하기 위한 명령어를 더 포함할 수 있다. 컴퓨터-판독가능한 저장 메모리는 백홀 네트워크 채널이 이용 가능한 경우 애플리케이션 서비스 서버로 서비스 요청을 비동기식으로 통신하기 위한 명령어를 더 포함할 수 있다. 컴퓨터-판독가능한 저장 메모리는 최종-사용자 장치 중 하나를 대신하여 원격 절차 호출 중의 파라미터를 애플리케이션 서비스 서버로 변환하는 클라이언트 애플리케이션 스터브를 호출하기 위한 명령어를 더 포함할 수 있다. 컴퓨터-판독가능한 저장 메모리는 최종-사용자 장치에 대한 장치 프로필 및 최종-사용자 장치와 관련된 사용자 프로필을 관리하기 위한 명령어를 더 포함할 수 있다.

Claims (15)

  1. 백홀(backhaul) 네트워크 채널을 통해 애플리케이션 서비스를 클라이언트 애플리케이션에 제공하기 위한 애플리케이션 서비스 서버로의 적어도 하나의 간헐적 네트워크 액세스를 가지는 아바타 서버(avatar server)에서 애플리케이션 서비스 아바타를 구현하는 단계;
    애플리케이션 서비스에 액세스하는 아바타 서버와 연결되는 하나 이상의 최종-사용자 장치의 목록을 관리함으로써 서비스 그룹을 확립하는 단계;
    애플리케이션 서비스에 의해 제공되는 기능의 적어도 하나의 서브세트를 에뮬레이팅(emulating)함으로써 아바타 서버를 통해 최종-사용자 장치로 로컬 애플리케이션 서비스(localized application service)를 제공하는 단계; 및
    서비스 요청을 완료하도록 애플리케이션 서비스 서버와 비동기식으로 통신하는 단계를 포함하며,
    상기 로컬 애플리케이션 서비스를 제공하는 단계는 아바타 서버에서 최종-사용자 장치 중 적어도 하나로부터의 서비스 요청을 적어도 부분적으로 로컬 처리(locally processing)하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 로컬 애플리케이션 서비스를 제공하는 단계는:
    서비스 그룹 내 적어도 하나의 제1 최종-사용자 장치로부터, 서비스 그룹 내 제2 최종-사용자 장치와 관련되는 아바타 서버에서의 서비스 요청을 수신하는 단계; 및
    제1 최종-사용자 장치를 대신하여 제2 최종-사용자 장치로 메시지를 통신함으로써 서비스 요청을 적어도 부분적으로 처리하는 단계를 더 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 메시지를 통신하는 것은 백홀 네트워크 채널이 이용 가능하지 않거나 애플리케이션 서비스 서버가 접속될 수 없다는 결정에 응답하고/하거나,
    서비스 요청을 처리하는 단계는 서비스 요청에 의해 표시되거나, 서비스 요청에서 참조되거나, 서비스 요청으로부터 유래한 메시지를 식별하는 단계를 포함하는 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    애플리케이션 서비스 서버와 비동기식으로 통신하는 단계는 백홀 네트워크 채널이 이용 가능하다는 결정에 응답하는 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 로컬 애플리케이션 서비스를 제공하는 단계는:
    최종-사용자 장치 중 하나로부터 미디어 컨텐츠에 대한 데이터 변환 요청을 수신하는 단계; 및
    아바타 서버에 저장된 처리 모듈의 로컬 버전을 이용함으로써 애플리케이션 서비스 서버를 사용하여 미디어 컨텐츠를 변환하는 단계를 더 포함하며,
    바람직하기로, 백홀 네트워크 채널이 이용 가능한 경우 애플리케이션 서비스 서버로부터 처리 모듈의 로컬 버전에 대한 업데이트를 수신하는 단계를 더 포함하는 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 로컬 애플리케이션 서비스를 제공하는 단계는:
    최종-사용자 장치 중 요청중인 장치로부터 컨텐츠 식별자를 포함하는 컨텐츠 제공 요청을 수신하는 단계와;
    컨텐츠 식별자를 통해 아바타 서버의 로컬 데이터 뱅크에 컨텐츠를 위치시키는 단계와;
    로컬 데이터 뱅크에 컨텐츠를 위치시키는 것에 응답하여 요청중인 장치로 컨텐츠를 제공하는 단계를 더 포함하는 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 로컬 애플리케이션 서비스를 제공하는 단계는:
    최종-사용자 장치 중 요청중인 장치로부터 컨텐츠 식별자를 포함하는 컨텐츠 제공 요청을 수신하는 단계와;
    컨텐츠 식별자를 통해 아바타 서버의 로컬 데이터 뱅크에 컨텐츠를 위치시키는 단계와;
    백홀 네트워크 채널이 이용 가능한 경우 로컬 데이터 뱅크에 컨텐츠를 위치시킬 수 없음에 응답하여, 요청중인 장치로 전달하도록 애플리케이션 서비스 서버로부터 컨텐츠를 페치(fetching)하는 단계를 더 포함하는 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 로컬 애플리케이션 서비스를 제공하는 단계는:
    최종-사용자 장치 중 요청중인 장치로부터 컨텐츠 식별자를 포함하는 컨텐츠 제공 요청을 수신하는 단계와;
    컨텐츠 식별자를 통해 아바타 서버의 로컬 데이터 뱅크에 컨텐츠를 위치시키는 단계와;
    백홀 네트워크 채널이 이용 가능하지 않고 로컬 데이터 뱅크에 컨텐츠를 위치시킬 수 없음에 응답하여, 요청중인 장치로의 후속 전달을 위해 애플리케이션 서비스 서버로 컨텐츠에 대한 컨텐츠 요청을 큐잉(queuing)하는 단계를 더 포함하는 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 로컬 애플리케이션 서비스를 제공하는 단계는:
    최종-사용자 장치 중 요청중인 장치로부터 컨텐츠 식별자를 포함하는 컨텐츠 제공 요청을 수신하는 단계; 및
    애플리케이션 서비스 서버로 게재 가능한 컨텐츠를 송신하기 전에 게재 가능한 컨텐츠를 서비스 그룹에서 이용 가능하게 함으로써 서비스 그룹 내 게재 가능한 컨텐츠를 사전-게재(pre-publishing)하는 단계를 더 포함하는 방법.
  10. 백홀 네트워크 채널을 통해 애플리케이션 서비스를 클라이언트 애플리케이션에 제공하기 위한 애플리케이션 서비스 서버로의 적어도 하나의 간헐적 네트워크 액세스를 가지는 아바타 서버에서 애플리케이션 서비스 아바타를 구현하기 위한 명령어;
    애플리케이션 서비스에 액세스하는 아바타 서버와 연결되는 하나 이상의 최종-사용자 장치의 목록을 관리함으로써 서비스 그룹을 확립하기 위한 명령어;
    서비스 그룹 내 적어도 하나의 제1 최종-사용자 장치로부터, 서비스 그룹 내 제2 최종-사용자 장치와 관련되는 아바타 서버에서의 서비스 요청을 수신하기 위한 명령어; 및
    제1 최종-사용자 장치를 대신하여 제2 최종-사용자 장치로 메시지를 통신함으로써 서비스 요청을 적어도 부분적으로 처리하기 위한 명령어를 포함하는, 아바타 서버를 운영하기 위한 컴퓨터-실행가능한 명령어를 저장한 컴퓨터-판독가능한 저장 메모리.
  11. 제 10 항에 있어서,
    애플리케이션 서비스에 의해 제공되는 기능의 적어도 하나의 서브세트를 에뮬레이팅(emulating)함으로써 아바타 서버를 통해 최종-사용자 장치로 로컬 애플리케이션 서비스를 제공하기 위한 명령어; 및/또는
    백홀 네트워크 채널이 이용 가능한 경우 애플리케이션 서비스 서버로 서비스 요청을 비동기식으로 통신하기 위한 명령어; 및/또는
    최종-사용자 장치 중 하나를 대신하여 원격 절차 호출(remote procedure call) 중의 파라미터를 애플리케이션 서비스 서버로 변환하는 클라이언트 애플리케이션 스터브(stub)를 호출하기 위한 명령어; 및/또는
    최종-사용자 장치에 대한 장치 프로필 및 최종-사용자 장치와 관련된 사용자 프로필을 관리하기 위한 명령어를 더 포함하는 컴퓨터-판독가능한 저장 메모리.
  12. 하나 이상의 최종-사용자 장치의 로컬 세트와 연결하고, 백홀 네트워크 채널을 통해 적어도 간헐적으로 애플리케이션 서비스를 제공하는 애플리케이션 서비스 서버와 연결하도록 구성된 하나 이상의 네트워크 인터페이스;
    백홀 네트워크 채널이 이용 가능한 경우 애플리케이션 서비스 서버와 통신하고 아바타 애플리케이션 프로그래밍 인터페이스(API)를 제공하는 애플리케이션 서비스 아바타를 호스트하도록 구성된 프로세서; 및
    최종-사용자 장치의 로컬 세트에 대한 컨텐츠를 캐시(cache)하고 최종-사용자 장치의 프로필을 추적하는 메모리를 포함하는 아바타 서버로서,
    아바타 API는 애플리케이션 서비스에 의해 제공되는 기능의 적어도 하나의 서브세트를 에뮬레이팅(emulating)함으로써 애플리케이션 서비스 아바타를 통해 최종-사용자 장치로 로컬 애플리케이션 서비스를 제공하는 아바타 서버.
  13. 제 12 항에 있어서,
    아바타 서버는 네트워크 액세스를 제공하거나 최종-사용자 장치에 대한 통신 데이터를 집계하는 네트워크 설비에서 구현되는 아바타 서버.
  14. 제 12 항 또는 제 13 항에 있어서,
    아바타 서버는 최종-사용자 장치에 대한 네트워크 액세스를 제공하는 네트워크 설비와는 별도로 구현되는 아바타 서버.
  15. 제 14 항에 있어서,
    아바타 서버는 최종-사용자 장치 중 하나에서 구현되는 아바타 서버.
KR1020177020963A 2014-12-29 2014-12-30 애플리케이션 서비스 아바타를 통한 애플리케이션 서비스 전달 KR102277186B1 (ko)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
KR20170102289A true KR20170102289A (ko) 2017-09-08
KR102277186B1 KR102277186B1 (ko) 2021-07-14

Family

ID=56165753

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177020963A KR102277186B1 (ko) 2014-12-29 2014-12-30 애플리케이션 서비스 아바타를 통한 애플리케이션 서비스 전달

Country Status (10)

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

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
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

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
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
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 东软集团股份有限公司 部署微服务应用的方法、装置和存储介质以及电子设备
ES2929004T3 (es) * 2018-07-19 2022-11-24 Inventio Ag Procedimiento y dispositivo para monitorizar una instalación de transporte de personas utilizando un equipo de registro y un doble digital
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040167967A1 (en) * 1998-09-08 2004-08-26 Tenzing Communications, Inc. Communications systems for aircraft
US20070010245A1 (en) * 2005-07-06 2007-01-11 Levitan Benjamin C System and method for operating a private wireless communications system
US20090100268A1 (en) * 2001-12-12 2009-04-16 Guardian Data Storage, Llc Methods and systems for providing access control to secured data
US20110276535A1 (en) * 2010-05-05 2011-11-10 Salesforce.Com, Inc. Knowledge article workflow management
US20140344437A1 (en) * 2013-03-04 2014-11-20 Tencent Technology (Shenzhen) Company Limited Method and system for implementing a transparent proxy of an ios system

Family Cites Families (77)

* 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
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 インターナショナル・ビジネス・マシーンズ・コーポレーション バックアップ電源モジュール、バックアップ電源装置及びコンピュータ
WO2002001458A2 (en) 2000-06-23 2002-01-03 Citerra Technologies, L.L.C. User services and information management 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
US20020169926A1 (en) 2001-04-19 2002-11-14 Thomas Pinckney Systems and methods for efficient cache management in streaming applications
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
US10360545B2 (en) * 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
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
EP1815642A4 (en) 2004-11-04 2010-12-29 Topeer Corp SYSTEM AND METHOD FOR GENERATING A SAFE TRUSTWORTHY SOCIAL NETWORK
US7640296B2 (en) 2004-12-21 2009-12-29 Sap Ag Mapping of a content request for a cache server
WO2006132611A1 (en) 2005-06-02 2006-12-14 Thomson Licensing Content timing method and 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
US9218436B2 (en) * 2009-03-18 2015-12-22 Nec Corporation Data synchronization system
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
EP2497252A1 (en) * 2009-11-06 2012-09-12 Alcatel Lucent A system and method for pre-fetching and caching content
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
CA2825393C (en) 2011-01-28 2019-03-12 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
WO2012145544A2 (en) 2011-04-19 2012-10-26 Seven Networks, Inc. Device resource sharing for network resource conservation
JP2014518804A (ja) * 2011-05-05 2014-08-07 シェフラー テクノロジーズ アクチエンゲゼルシャフト ウント コンパニー コマンディートゲゼルシャフト トルク伝達ユニット
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
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
EP3396983A1 (en) * 2012-04-10 2018-10-31 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
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040167967A1 (en) * 1998-09-08 2004-08-26 Tenzing Communications, Inc. Communications systems for aircraft
US20090100268A1 (en) * 2001-12-12 2009-04-16 Guardian Data Storage, Llc Methods and systems for providing access control to secured data
US20070010245A1 (en) * 2005-07-06 2007-01-11 Levitan Benjamin C System and method for operating a private wireless communications system
US20110276535A1 (en) * 2010-05-05 2011-11-10 Salesforce.Com, Inc. Knowledge article workflow management
US20140344437A1 (en) * 2013-03-04 2014-11-20 Tencent Technology (Shenzhen) Company Limited Method and system for implementing a transparent proxy of an ios system

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
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
JP2018509672A (ja) 2018-04-05
WO2016108828A1 (en) 2016-07-07
IL253064A0 (en) 2017-08-31
MX367217B (es) 2019-08-09
US10601947B2 (en) 2020-03-24
MX2017008740A (es) 2017-11-17
KR102277186B1 (ko) 2021-07-14
CN107251086A (zh) 2017-10-13
JP6762406B2 (ja) 2020-09-30
BR112017013902A2 (pt) 2018-01-02
CA2971154A1 (en) 2016-07-07
IL253064B (en) 2020-01-30
AU2014415653A1 (en) 2017-07-27
US20160191673A1 (en) 2016-06-30
CN107251086B (zh) 2021-08-03
US10205797B2 (en) 2019-02-12
JP2019204524A (ja) 2019-11-28
US20190141162A1 (en) 2019-05-09

Similar Documents

Publication Publication Date Title
JP6762406B2 (ja) アプリケーションサービス・アバターを用いたアプリケーションサービス配信
US11076007B2 (en) Multi-modal conversational intercom
JP7422834B2 (ja) サーバ、プログラム及び情報処理方法
US10397357B2 (en) Rural area network device
CN104301373B (zh) 经由文件共享服务同步的推送通知
US8869256B2 (en) Network aggregator
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
JP2019506665A (ja) シンジケート化されたクラウドベースのnotification as a service
CN110708238B (zh) 用于处理信息的方法和装置
EP3040931A1 (en) Application service delivery through an application service avatar
US10231269B2 (en) Dynamic generation of geographically bound manet IDs
US10783886B2 (en) Cognitive agent disambiguation
US9456024B1 (en) Content sharing in mobile ad hoc networks
CN105721272B (zh) 消息发送、接收、展示方法和系统、发送端、接收端
Namiot et al. On Proximity Application Server
US20130132478A1 (en) Establishing Communication Among Parties Based on Location
US20190132420A1 (en) Temporal pinning of an entity to a data center

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant