KR20180022867A - 근거리 통신을 통한 애플리케이션 버전 설치 방법 및 시스템 - Google Patents

근거리 통신을 통한 애플리케이션 버전 설치 방법 및 시스템

Info

Publication number
KR20180022867A
KR20180022867A KR1020187002452A KR20187002452A KR20180022867A KR 20180022867 A KR20180022867 A KR 20180022867A KR 1020187002452 A KR1020187002452 A KR 1020187002452A KR 20187002452 A KR20187002452 A KR 20187002452A KR 20180022867 A KR20180022867 A KR 20180022867A
Authority
KR
South Korea
Prior art keywords
electronic device
application
version
local connection
determination
Prior art date
Application number
KR1020187002452A
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 KR20180022867A publication Critical patent/KR20180022867A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

제1 전자 장치는 그 메모리에 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 저장한다. 로컬 연결이 제1 전자 장치 및 제2 전자 장치 간에 확립된다. 로컬 연결은 인터넷 연결과 독립적이다. 로컬 연결을 사용하여, 애플리케이션의 제1 버전이 제2 전자 장치 상에 설치되어 있는지 여부의 결정이 내려진다. 애플리케이션의 제1 버전이 제2 전자 장치 상에 설치되어 있지 않다는 결정에 응답하여, 제1 전자 장치는, 로컬 연결을 통해 제2 전자 장치로, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신한다.

Description

근거리 통신을 통한 애플리케이션 버전 설치 방법 및 시스템
본 명세서는 일반적으로 장치 통신에 관한 것이고, 전자 장치간 로컬 연결을 통해 설치 파일을 전송함으로써 전자 장치 상에 애플리케이션을 설치하는 것을 포함하지만 이에 제한되지 않는다.
모바일 장치는 점점 소비자가 인터넷을 통해 전자 컨텐츠에 접근, 다운로드 및 소비하는 지배적 수단이 되었다.
통신 기술의 실질적 발전에도 불구하고, 인터넷 상의 컨텐츠에 접근하기 위한 달성 가능한 데이터 속도는 여전히 제한된다. 나아가, 개발 도상국과 같은 특정 지리적 영역에서 인터넷 속도의 제한된 사용성에 추가로 모바일 애플리케이션을 위한 상대적으로 큰 파일 크기를 고려하면, 소비자는 종종 애플리케이션 다운로드에 어려움을 겪고 따라서 모바일 장치를 사용할 때 종종 좌절감을 느낀다.
따라서, 전자 장치간에 확립된 로컬 연결을 통해 설치 파일을 전송함으로써 전자 장치 상의 업데이트된 애플리케이션 설치를 위한 방법, 장치 및 시스템이 필요하다. 근거리 통신 프로토콜(예컨대, Bluetooth 또는 WiFi Direct)을 사용하는 장치간 확립된 로컬 연결에 의하여, 인터넷 연결을 확립할 수 없거나 느린 인터넷 연결을 가지는 장치는 근처의 연결된 장치로부터 설치 파일을 수신할 수 있다. 그렇게 하여, 장치는 인터넷 연결이 좋지 않거나 없어서 접근 불가능한 애플리케이션을 설치 또는 업데이트할 수 있다. 이러한 방법, 장치 및 시스템은 선택적으로 전자 장치 상의 애플리케이션 설치 및 업데이트를 위한 종래의 방법을 보완 또는 대체한다.
일부 실시예에 따르면, 방법은 하나 이상의 프로세서 및, 하나 이상의 프로세서에 의한 실행을 위한 명령어를 저장하는 메모리를 가지는 제1 전자 장치(예컨대, 클라이언트 장치)에서 수행된다. 방법은 메모리에 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 저장하는 단계를 포함한다. 제2 전자 장치와 로컬 연결이 확립되고, 로컬 연결은 인터넷 연결과 독립적이다. 로컬 연결을 사용하여, 방법은 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계를 포함한다. 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정에 응답하여, 제1 전자 장치는, 로컬 연결을 통해 제2 전자 장치로, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신한다.
일부 실시예에 따르면, 전자 장치(예컨대, 클라이언트 장치)는 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하고; 하나 이상의 프로그램은 메모리에 저장되고 하나 이상의 프로세서에 의해 실행되도록 구성된다. 하나 이상의 프로그램은 위에서 기술된 방법의 동작을 수행하기 위한 명령어를 포함한다. 일부 실시예에 따르면, 비일시적 컴퓨터 판독가능한 저장 매체는, 전자 장치에 의해 실행될 때, 전자 장치로 하여금 상술한 방법의 동작을 수행하도록 야기하는 명령어를 저장한다.
따라서, 전자 장치는 전자 장치 상에 애플리케이션을 설치 및 업데이트하기 위한 더 효율적이고 효과적인 방법이 제공되고, 이로써 이러한 장치의 효과와 효율 및 이러한 장치와의 사용자 만족을 증가시킨다.
첨부된 청구항에 개시되는 실시예들은 저장 매체, 시스템 및 컴퓨터 프로그램 제품에 대한 것인데, 한 청구항 카테고리, 예컨대 방법에 언급된 임의의 특징은 다른 청구항 카테고리, 예컨대 시스템에도 청구될 수 있다. 첨부된 청구항의 인용 또는 참조는 형식상의 이유를 위해 선택되었을 뿐이다. 하지만 임의의 선행 청구항으로의 의도적인 참조(특히 다중 인용)에서 야기되는 임의의 주제 또한 청구될 수 있어, 청구항 및 그 특징의 임의의 조합이 첨부된 청구항에서 선택된 인용에 관계 없이 개시되고 청구될 수 있다. 청구될 수 있는 주제는 첨부된 청구항에 나타난 바와 같은 특징의 조합뿐만 아니라 청구항의 특징의 다른 임의의 조합을 포함하는데, 청구항에 언급된 각 특징은 청구항의 임의의 다른 특징 또는 다른 특징의 조합과 조합될 수 있다. 나아가, 임의의 실시예와 본 명세서에 서술되거나 도시된 특징은 별개의 청구항 및/또는 임의의 다른 실시예나 본 명세서에 서술되거나 도시된 특징과의 또는 첨부된 청구항의 임의의 특징과의 조합에 청구될 수 있다.
일부 실시예에서, 방법은:
하나 이상의 프로세서 및, 하나 이상의 프로세서에 의한 실행을 위한 명령어를 저장하는 메모리를 가지는 제1 전자 장치에서:
메모리에 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 저장하는 단계;
제2 전자 장치와 로컬 연결을 확립하는 단계;
로컬 연결을 사용하여, 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계; 및
제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정에 응답하여, 로컬 연결을 통해 제2 전자 장치로, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계를 포함하고,
로컬 연결은 인터넷 연결과 독립적이다.
로컬 연결을 확립하는 단계는 무선 통신 프로토콜을 사용하여 제1 전자 장치를 제2 전자 장치와 페어링시키는 단계를 포함할 수 있다.
로컬 연결을 확립하는 단계는 PAN(personal-area network)를 통하여 제2 전자 장치와 연결하는 단계를 포함할 수 있다.
로컬 연결을 확립하는 단계는 P2P(peer-to-peer) 네트워크를 통하여 제2 전자 장치와 연결하는 단계를 포함할 수 있다.
로컬 연결을 확립하는 단계는 인터넷 연결에 대한 임계 혼잡이 충족됐다는 결정에 응답하여 수행될 수 있다.
로컬 연결을 확립하는 단계는 제2 장치가 인터넷 연결을 확립하지 못한다는 결정에 응답하여 수행될 수 있다.
일부 실시예에서, 방법은:
제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계는 애플리케이션의 제1 버전보다 앞서는 애플리케이션의 제2 버전이 제2 전자 장치 상에 설치되어 있는지 여부를 결정하는 단계를 포함하고,
제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정은 애플리케이션의 제2 버전이 제2 전자 장치 상에 설치되어 있다는 결정이고, 및
애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일은 제2 버전에서 제1 버전으로 제2 전자 장치 상의 애플리케이션을 업데이트하기 위한 업데이트를 포함한다.
일부 실시예에서, 방법은:
제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계는 애플리케이션의 임의의 버전이 제2 전자 장치 상에 설치되어 있는지 여부를 결정하는 단계를 포함하고,
제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정은 애플리케이션의 버전이 제2 전자 장치 상에 설치되어 있지 않다는 결정이고, 및
애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일은 애플리케이션의 제1 버전을 전체로 설치하기 위한 하나 이상의 파일을 포함한다.
일부 실시예에서, 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계는:
로컬 연결을 통하여, 제2 전자 장치 상의 설치를 위한 소프트웨어 업데이터 애플리케이션을 제2 전자 장치로 제공하는 단계; 및
제2 전자 장치 상의 소프트웨어 업데이터 애플리케이션으로부터, 로컬 연결을 통하여, 애플리케이션의 제1 버전이 제2 전자 장치 상에 설치되어 있는지 여부의 표시를 수신하는 단계를 포함한다.
일부 실시예에서, 방법은 하나 이상의 설치 파일을 송신하기 전에, 애플리케이션의 제1 버전의 설치를 가능하게 하기 위하여 제2 전자 장치 상의 보안 설정을 업데이트하기 위한 명령을 가지는 메시지를 제1 전자 장치에 디스플레이하는 단계를 더 포함한다.
일부 실시예에서, 방법은, 애플리케이션은 소셜 네트워킹 서비스에 접속하기 위한 애플리케이션이고, 제1 전자 장치와 연관된 제1 사용자는 소셜 네트워킹 서비스의 사용자이고, 방법은, 제1 전자 장치에서:
애플리케이션의 제1 버전이 제2 전자 장치 상에 설치된 후:
제2 전자 장치로부터 로컬 연결을 통하여, 제2 전자 장치와 연관된 제2 사용자를 위하여 소셜 네트워킹 서비스의 계정을 생성하기 위한 요청을 수신하는 단계; 및
로컬 연결과 별개의 통신 채널을 통하여 원격 서버로 요청을 송신하는 단계를 더 포함한다.
일부 실시예에서, 방법은 원격 서버로 계정을 생성하기 위한 요청을 송신한 후 제1 전자 장치 상에 제1 사용자가 소셜 네트워킹 서비스 상에서 제2 사용자와 연관시키도록 유도하는 메시지를 자동으로 디스플레이하는 단계를 더 포함한다.
일부 실시예에서, 애플리케이션은 소셜 네트워킹 서비스에 접속하기 위한 애플리케이션이고, 제1 전자 장치와 연관된 제1 사용자 및 제2 전자 장치와 연관된 제2 사용자는 소셜 네트워킹 서비스의 사용자이고, 방법은, 제1 전자 장치에서:
로컬 연결과 별개의 통신 채널을 통하여 소셜 네트워킹 서비스로부터, 제2 사용자를 위한 컨텐츠를 수신하는 단계; 및
로컬 연결을 통하여 제2 전자 장치로, 제2 전자 장치 상에 디스플레이하기 위하여 소셜 네트워킹 서비스로부터의 컨텐츠를 송신하는 단계를 더 포함한다.
소셜 네트워킹 서비스로부터의 컨텐츠를 송신하는 단계는 제2 전자 장치가 인터넷 연결이 없다는 결정에 따라 수행될 수 있다.
일부 실시예에서, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계는:
로컬 연결을 통하여 제2 전자 장치로 제1 복수의 패킷을 송신하는 단계;
제1 복수의 패킷을 송신한 후, 제2 전자 장치와의 로컬 연결의 손실을 감지하는 단계;
제2 전자 장치와의 로컬 연결을 재확립하는 단계; 및
로컬 연결을 재확립한 후, 로컬 연결을 통하여 제2 전자 장치로 제2 복수의 패킷을 송신하는 단계를 포함한다.
일부 실시예에서, 방법은:
제1 전자 장치는 제2 전자 장치의 무선 통신 범위 내의 복수의 전자 장치 중 하나이고; 및
복수의 전자 장치 중 다른 전자 장치 상의 애플리케이션의 각 버전이 애플리케이션의 제1 버전보다 앞선다는 결정에 따라 제1 전자 장치는 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신한다.
일부 실시예에서, 방법은:
애플리케이션은 제1 애플리케이션이고; 및
제1 애플리케이션의 우선 순위가 제2 전자 장치 상의 제2 애플리케이션의 우선 순위를 대체한다는 결정에 따라 제1 전자 장치는 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신한다.
일부 실시예에서, 방법은 애플리케이션의 제1 버전이 제2 전자 장치와 호환되는지 여부를 결정하는 단계를 더 포함하고;
로컬 연결을 통해 제2 전자 장치로 하나 이상의 설치 파일을 송신하는 단계는 애플리케이션의 제1 버전이 제2 전자 장치와 호환된다는 결정에 더 응답하여 수행된다.
일부 실시예에서, 전자 장치는:
하나 이상의 프로세서; 및
하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 포함하는 장치로서, 하나 이상의 프로그램은:
메모리에 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 저장하는 단계;
제2 전자 장치와 로컬 연결을 확립하는 단계;
로컬 연결을 사용하여, 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계; 및
제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정에 응답하여, 로컬 연결을 통해 제2 전자 장치로, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계를 위한 명령어를 포함하고,
로컬 연결은 인터넷 연결과 독립적이다.
일부 실시예에서, 비일시적 컴퓨터 판독가능한 저장 매체는 제1 전자 장치의 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램은:
메모리에 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 저장하는 단계;
제2 전자 장치와 로컬 연결을 확립하는 단계;
로컬 연결을 사용하여, 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계; 및
제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정에 응답하여, 로컬 연결을 통해 제2 전자 장치로, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계를 위한 명령어를 포함하고,
로컬 연결은 인터넷 연결과 독립적이다.
일부 실시예로, 하나 이상의 컴퓨터-판독가능한 비-일시적 저장 매체는 위에서 언급된 실시예들 중 어느 하나에 따른 방법을 수행하도록 실행시 동작하는 소프트웨어를 포함한다.
일부 실시예로, 시스템은: 하나 이상의 프로세서; 및 프로세서에 연결되고 프로세서에 의해 실행가능한 명령어를 포함하는 적어도 하나의 메모리를 포함하고, 상기 프로세서는 위에서 언급된 실시예들 중 어느 하나에 따른 방법을 수행하는 명령어를 실행할 때 동작한다.
일부 실시예로, 바람직하게는 컴퓨터-판독가능한 비-일시적 저장 매체를 포함하는 컴퓨터 프로그램 제품은, 데이터 프로세싱 시스템 상에서 실행될 때, 위에서 언급된 실시예들 중 어느 하나에 따른 방법을 수행하도록 동작한다.
본 발명의 내용 중에 포함되어 있다.
서술된 다양한 실시예의 보다 나은 이해를 위하여, 이하의 도면과 관련하여 아래의 실시예의 설명이 참조되어야 한다. 유사한 참조번호는 도면 및 설명에 걸쳐서 대응되는 부분을 참조한다.
도 1a-1c는 일부 실시예에 따른 네트워크 아키텍처의 예시를 도시하는 블록도이다.
도 2는 일부 실시예에 따른 소셜 네트워크 시스템의 예시를 도시하는 블록도이다.
도 3은 일부 실시예에 따른 클라이언트 장치의 예시를 도시하는 블록도이다.
도 4a-4b는 일부 실시예에 따른 애플리케이션 설치 및 사용자 연관 요청을 가능하게 하는 클라이언트 장치 상의 그래픽 사용자 인터페이스의 예시를 도시한다.
도 5a-5b는 일부 실시예에 따른 로컬 연결을 사용하여 애플리케이션 버전을 설치하는 방법을 도시하는 흐름도이다.
이제 첨부 도면들에 그 예가 도시되는 실시예들을 참조한다. 이하의 설명에서, 다수의 구체적인 세부사항은 다양하게 기술된 실시예의 이해를 제공하기 위해 기재된다. 하지만, 다양한 기술된 실시예가 이러한 구체적인 세부사항 없이 실시될 수 있음은 당업자에게 자명할 것이다. 다른 예에서, 잘 알려진 방법, 절차, 컴포넌트, 회로 및 네트워크는 불필요하게 실시예의 양태를 불분명하게 만들지 않기 위해 구체적으로 기술되지는 않았다.
제1의, 제2의 등의 용어는, 일부 예에서 다양한 요소를 본 명세서에서 기술하는데 사용되지만, 이러한 요소들이 이러한 용어에 의해 제한되는 것이 아님이 또한, 이해될 것이다. 이러한 용어들은 오로지 하나의 요소를 다른 요소로부터 구별하는데 사용된다. 예를 들어, 제1 버전이 제2 버전으로 지칭될 수 있고, 유사하게 서술된 다양한 실시예의 범위에서 벗어남 없이 제2 버전이 제1 버전으로 지칭될 수 있다. 제1 버전 및 제2 버전 모두 버전이나, 동일한 버전은 아니다.
본 명세서에 서술되는 다양한 실시예의 설명에서 사용되는 용어는 특정한 실시예를 설명하기 위한 것일 뿐 제한의 의도는 아니다. 다양한 기술된 실시예 및 첨부되는 청구범위에서의 설명에서 사용되는 것처럼 단수형 "a", "an" 및 "the"는 문맥이 명확하게 달리 나타내지 않는다면 복수형을 또한 포함하는 것으로 의도된다. 본 명세서에서 사용되는 용어 "및/또는"은 하나 이상의 연관되는 리스팅된 아이템의 임의의 그리고 모든 가능한 조합을 지칭하는 것임이 또한, 이해될 것이다. 용어들 "포함한다(includes)", "포함하는(including)", "포함한다(comprises)" 및/또는 "포함하는(comprising)"은, 본 명세서에서 사용되는 경우 명시된 특징, 정수, 단계, 동작, 요소 및/또는 컴포넌트의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트 및/또는 이들의 그룹의 존재나 추가를 배제하지 않는다는 것이 또한, 이해될 것이다.
본 명세서에서 사용되는 것처럼, 용어 "if"는 선택적으로 문맥에 따라 "when" 또는 "upon" 또는 "결정에 응답하여" 또는 "감지에 응답하여" 또는 "결정에 따라"를 의미하는 것으로 해석된다. 유사하게, 구절 "if it is determined" 또는 "if [a stated condition or event] is detected"는 문맥에 따라 선택적으로 "결정하면" 또는 "결정에 응답하여" 또는 "[the stated condition or event]를 감지하면" 또는 "[the stated condition or event]의 감지에 응답하여" 또는 "[a stated condition or event]가 감지된다는 결정에 따라"를 의미하는 것으로 해석된다.
본 명세서에 사용되는 바와 같이, 용어 “예시적인”은 예시, 사례 또는 설명으로서의 역할을 하는”의 의미이며, “그 종류의 최선을 대표하는”의 의미가 아니다.
도 1a-1c는 일부 실시예에 따른 네트워크 아키텍처의 예시를 도시하는 블록도이다.
도 1a는 일부 실시예에 따른 소셜 네트워크의 네트워크 아키텍처(100A)의 예시를 도시하는 블록도이다. 네트워크 아키텍처(100A)는 다수의 클라이언트 장치(“클라이언트 시스템”, “클라이언트 컴퓨터” 또는 “클라이언트”로도 불림)(104-1, 104-2, ... 104-n)는 하나 이상의 네트워크(106)로 전자 소셜 네트워크 시스템(108)과 통신 가능하게 연결된다. 일부 실시예에서, 하나 이상의 네트워크(106)는 공공 통신 네트워크(예컨대, 인터넷 및/또는 셀룰러 데이터 네트워크), 사설 통신 네트워크(예컨대, 사설 LAN 또는 임대 회선) 또는 이러한 통신 네트워크의 조합을 포함한다.
네트워크 아키텍처(100A)는 하나 이상의 클라이언트 장치를 함께(예컨대, 104-1 및 104-3, 104-4, 104-5, ... 104-p) 통신 가능하게 연결하기 위한 로컬 연결(112)을 포함한다. 일부 실시예에서, 복수의 클라이언트 장치(104)는 무선 통신 프로토콜(예컨대, IEEE 802. 15. 4, Wi-Fi, ZigBee, 6LoWPAN, Thread, Z-Wave, Bluetooth, ISA100. 11a, WirelessHART, MiWi, NFC 등)을 사용하여 로컬 연결(112)을 통해 상호 연결된다. 예를 들어, 클라이언트 장치(104-1 및 104-3, 104-4, 104-5, ... 104-p)는 PAN(personal-area network)(예컨대, Bluetooth 또는 ZigBee를 사용하여 구현) 또는 P2P(peer-to-peer) 네트워크(예컨대, WiFi Direct를 사용하여 구현)를 구성한다. 일부 실시예에서, 모든 클라이언트 장치(104)는 서로의 무선 통신 범위 내에서 로컬 연결(112)을 통해 연결된다. 일부 실시예에서, 모든 클라이언트 장치(104-3, 104-4, 104-5, ... 104-p)는 클라이언트 장치(104-1)의 무선 통신 범위 내에 있지만 반드시 서로는 아니다.
클라이언트 장치(104-3, 104-4, 104-5, ... 104-p)는 하나 이상의 네트워크(106)를 통해 소셜 네트워크 시스템(108)에 직접 연결하지 못할 수 있다(예컨대, 네트워크 혼잡, 열악한 셀룰러 수신, 연관된 사용자가 네트워크 서비스를 구독하지 않는 등으로 인하여). 대신, 로컬 연결(112)을 사용하여, 이들 클라이언트 장치는 하나 이상의 네트워크(106)를 통해 소셜 네트워크 시스템(108)에 연결된 클라이언트 장치(104-1)를 통하여 소셜 네트워크 시스템(108)에 간접적으로 접근할 수 있다. 따라서 클라이언트 장치(104-1)는 클라이언트 장치(104-3, 104-4, 104-5, ... 104-p)(때때로 “수신” 장치로 지칭)이 그를 통해 네트워크(106) 상의 데이터(예컨대, 소셜 네트워크 시스템(108)이 제공하는 애플리케이션을 위한 설치 파일)를 송신 및 검색할 수 있는 중간 장치(때때로 “호스트” 또는 “송신” 장치로 지칭)로 작동한다. 따라서, 일부 구현에서, 클라이언트 장치(104-1)는 로컬 연결(112)을 사용하여 다른 클라이언트 장치가 요청한 데이터(예컨대, 설치 파일)를 검색 및 공유한다. (대안적으로, 클라이언트 장치(104-1)는 수신 장치로부터 요청을 수신하기 전에 미리 다운로드한 파일을 공유한다. )
일부 실시예에서, 클라이언트 장치(104)는 스마트 워치, 개인용 정보 단말기(personal digital assistants), 휴대용 미디어 플레이어, 스마트폰, 태블릿 컴퓨터, 2D 게이밍 장치, 3D(예컨대, 가상 현실) 게이밍 장치, 랩탑 컴퓨터, 데스크탑 컴퓨터, 하나 이상의 프로세서가 내장되거나 연결된 텔레비전, 차량 내 정보 시스템(예컨대, 내비게이션, 엔터테인먼트 및/또는 다른 정보를 제공하는 자동차 내 컴퓨터 시스템) 및/또는 소셜 네트워크 시스템(108)과 통신하는데 사용될 수 있는 다른 적절한 컴퓨팅 장치와 같은 컴퓨팅 장치이다. 일부 실시예에서, 소셜 네트워크 시스템(108)은 컴퓨터 서버와 같은 단일 컴퓨팅 장치일 수 있는 반면, 다른 실시예에서는 소셜 네트워크 시스템(108)은 함께 작업하여 서버 시스템의 동작을 수행하는 복수의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅)로 구현된다.
일부 실시예에서, 클라이언트 장치(104)는 클라이언트 장치(104)를 사용하여 소셜 네트워크 시스템(108)에 접속하고 소셜 네트워크 시스템(108)에 의해 제공되는 대응하는 소셜 네트워킹 서비스에 참여하는 사용자(미도시)와 연관된다. 예를 들어, 하나 이상의 클라이언트 장치(104)는 소셜 네트워킹 서비스에 접근하는데 사용될 수 있는 웹 브라우저 애플리케이션을 실행한다. 다른 예로서, 하나 이상의 클라이언트 장치(104)는 소셜 네트워킹 서비스 고유의 소프트웨어 애플리케이션(예컨대, iPhone, Android 또는 Windows 스마트폰이나 태블릿 상에서 실행되는 Facebook 소셜 네트워킹 애플리케이션과 같은 스마트폰이나 태블릿 상에서 실행되는 소셜 네트워킹 “앱”)을 실행한다.
클라이언트 장치(104)와 상호작용하는 사용자는 텍스트 코멘트(예컨대, 업데이트, 발표, 답글), 디지털 사진, 비디오, 오디오 파일, 링크 및/또는 다른 전자 컨텐츠와 같은 정보를 게시함으로써 소셜 네트워킹 시스템(108)이 제공하는 소셜 네트워킹 서비스에 참여할 수 있다. 소셜 네트워킹 서비스의 사용자는 소셜 네트워킹 서비스의 다른 사용자에 의해 게시된 정보에 주석을 달 수도 있다(예컨대, 다른 사용자의 게시물을 추천 또는 “좋아요”하거나 다른 사용자에 의한 게시물에 코멘트). 일부 실시예에서, 정보는 소셜 네트워크 시스템(108) 외부의 시스템 및/또는 서비스에 의해 사용자를 대신하여 게시될 수 있다. 예를 들어, 사용자는 영화 리뷰 웹사이트에 영화의 리뷰를 게시할 수 있고, 적절한 권한으로 웹사이트가 사용자를 대신하여 소셜 네트워크 시스템(108)에 리뷰를 크로스-게시할 수 있다. 다른 실시예에서, 모바일 클라이언트 장치 상에서 실행되는 소프트웨어 애플리케이션은 적절한 권한으로 GPS(global positioning system) 또는 다른 지리적 위치 기능(예컨대, Wi-Fi 또는 하이브리드 위치 시스템)을 사용하여 사용자의 위치를 결정하고 소셜 네트워크 시스템(108)에 사용자의 위치(예컨대, “집에서”, “직장에서” 또는 “San Francisco, CA에서”)를 업데이트하고 및/또는 사용자의 위치로부터 도출되거나 사용자의 위치에 기반한 정보로 소셜 네트워크 시스템(108)을 업데이트할 수 있다. 클라이언트 장치(104)와 상호작용하는 사용자는 또한 소셜 네트워크 시스템(108)에 의해 제공되는 소셜 네트워킹 서비스를 사용하여 사용자의 그룹을 정의할 수 있다. 클라이언트 장치(104)와 상호작용하는 사용자는 또한 소셜 네트워크 시스템(108)에 의해 제공되는 소셜 네트워킹 서비스를 사용하여 서로 통신 및 협력할 수 있다.
일부 실시예에서, 네트워크 아키텍처(100)는 제3자 서버(110-1, 110-2, ... 110-m)도 포함한다. 일부 실시예에서, 주어진 제3자 서버(110)는 직접 또는 소셜 네트워크 시스템(108)과 함께 웹 페이지를 클라이언트 장치(104)에 제공하는 제3자 웹사이트를 호스팅하는데 사용된다. 일부 실시예에서, 소셜 네트워크 시스템(108)은 인라인 프레임(“아이프레임”)을 사용하여 사용자의 소셜 네트워크 세션 내에서 독립적인 웹사이트를 네스팅한다. 일부 실시예에서, 주어진 제3자 서버는 직접 또는 소셜 네트워크 시스템(108)과 함께 클라이언트 장치(104)에 의해 사용되는 제3자 애플리케이션을 호스팅하는데 사용된다. 일부 실시예에서, 소셜 네트워크 시스템(108)은 아이프레임을 사용하여 제3자 개발자가 제3자 서버(110)에 의해 개별적으로 호스팅되지만 사용자의 소셜 네트워킹 세션 내에서 동작하고 소셜 네트워크 시스템(108)의 사용자의 프로필을 통해 접속하는 애플리케이션을 생성할 수 있게 한다. 예시적인 제3자 애플리케이션은 책, 비즈니스, 통신, 콘테스트, 교육, 오락, 패션, 금융, 음식과 음료, 게임, 건강과 운동, 라이프스타일, 지역 정보, 영화, 텔레비전, 음악과 오디오, 뉴스, 사진, 비디오, 생산성, 참조 자료, 보안, 쇼핑, 스포츠, 여행, 유틸리티 등을 위한 애플리케이션을 포함한다. 일부 실시예에서, 주어진 제3자 서버(110)는 직접 또는 소셜 네트워크 시스템(108)과 함께 클라이언트 장치(104)에 의해 사용되는 기업 시스템을 호스팅하는데 사용된다. 일부 실시예에서, 주어진 제3자 서버(110)는 제3자 컨텐츠(예컨대, 뉴스 기사, 리뷰, 메시지 피드 등)을 제공하는데 사용된다.
일부 실시예에서, 주어진 제3자 서버(110)는 단일 컴퓨팅 장치인 반면, 다른 실시예에서, 주어진 제3자 서버(110)는 함께 작업하여 서버 시스템의 동작을 수행하는 복수의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅)로 구현된다.
도 1b는 일부 실시예에 따른 소셜 네트워크의 네트워크 아키텍처(100B)의 예시를 도시하는 블록도이다. 네트워크 아키텍처(100A)(도 1a)와는 달리, 클라이언트 장치(104-2)가 하나 이상의 네트워크(106)에 직접 연결된다. 클라이언트 장치(104-2)는 하나 이상의 네트워크(106)을 통해 직접 및/또는 로컬 연결(112)을 사용하여 클라이언트 장치(104-1)을 통해 간접적으로 데이터에 접근, 전송 및/또는 소셜 네트워크 시스템(108)(또는 네트워크(106)와 연결된 임의의 장치, 시스템 또는 서버)가 제공하는 컨텐츠(예컨대, 애플리케이션을 위한 설치 파일)를 검색할 수 있다. 네트워크 아키텍처(100B)는, 예컨대 클라이언트 장치(104-2)의 하나 이상의 네트워크(106)로의 직접 연결이 느리거나(예컨대, 낮은 밴드폭을 가짐), 혼잡하거나 다르게 실용적이지 않거나 이용 불가능한 상황에서 유리하다.
도 1c는 일부 실시예에 따른 장치들이 로컬 연결(112)을 통해 상호 연결된 네트워크 아키텍처(100C)를 도시한다. 도시된 바와 같이, 클라이언트 장치(예컨대, 104-1 및 104-3 내지 104-p)가 로컬 연결(112)(예컨대, Bluetooth 무선 인터페이스를 사용하거나, PAN을 형성하거나, 무선 P2P 프로토콜을 사용하여 연결됨)을 통해 서로 통신 가능하게 연결된다. 네트워크 아키텍처(100C)에서, 클라이언트 장치(104-1)는 소셜 네트워크 시스템(108)에 연결되지 않는다(예컨대, 하나 이상의 네트워크(106)로의 연결을 잃어버렸기 때문에).
클라이언트 장치(104)는 다양한 네트워크 토폴로지에 기반하여 상호 연결될 수 있다. 예를 들어, 일부 실시예에서, 각 클라이언트 장치(예컨대, 104-1 및 104-3 내지 104-p)는 로컬 연결(112)을 통해 다른 클라이언트 장치 각각과 연결된다. 다른 실시예에서, 클라이언트 장치는 네트워크 아키텍처 내의 다른 클라이언트 중 일부와만 연결된다(예컨대, 클라이언트 장치(104-1)는 클라이언트 장치(104-3)와만 연결되고, 클라이언트 장치(104-3)는 클라이언트 장치(104-1 및 104-4)와만 연결된다). 일부 실시예에서, 한 클라이언트 장치는 다른 모든 클라이언트 장치가 로컬 연결(112)을 통해 연결되는(예컨대, 클라이언트 장치(104-3, 104-4, 104-5, ... 104-p) 각각은 클라이언트 장치(104-1)와 연결되지만, 다른 임의의 클라이언트 장치와는 연결되지 않음), 컨텐츠가 검색되고(예컨대, 설치 파일) 컨텐츠가 전송될 수 있는(예컨대, 소셜 미디어 게시물) 호스트 장치로 작동한다. 일부 실시예에서, 복수의 클라이언트 장치는 함께 하나 이상의 클라이언트 장치가 컨텐츠를 검색할 수 있는 호스트 장치로 동작한다(예컨대, 클라이언트 장치(104-1 및 104-3)는 클라이언트 장치(104-4)로 설치 파일의 상이한 부분을 송신한다).
클라이언트 장치(104)는 복수의 통신 프로토콜 및 인터페이스를 사용하여 로컬 연결(112)을 통해 상호 연결될 수 있다. 예를 들어, 일 구현에서, 클라이언트 장치(104-1)는 Bluetooth 무선 인터페이스를 사용하여 클라이언트 장치(104-3)와 페어링되며, 동시에 클라이언트 장치(104-1)는 NFC 무선 인터페이스를 사용하여 클라이언트 장치(104-4)에 연결될 수 있다.
도 2는 일부 실시예에 따른 소셜 네트워크 시스템(108)의 예시를 도시하는 블록도이다. 소셜 네트워킹 시스템(108)은 일반적으로 하나 이상의 프로세싱 유닛(프로세서 또는 코어)(202), 하나 이상의 네트워크 또는 다른 통신 인터페이스(204), 메모리(206) 및 하나 이상의 이들 컴포넌트를 상호연결하기 위한 통신 버스(208)를 포함한다. 통신 버스(208)는 선택적으로 시스템 컴포넌트간 상호연결하고 통신을 제어하는 회로(때때로 칩셋으로 부른다)를 포함한다. 소셜 네트워크 시스템(108)은 선택적으로 사용자 인터페이스(도시되지 않음)를 포함한다. 사용자 인터페이스는 만약 제공되는 경우, 디스플레이 장치를 포함할 수 있고 선택적으로 키보드, 마우스, 트랙패드 및/또는 입력 버튼과 같은 입력을 포함한다. 대안적으로 또는 추가로, 디스플레이 장치는 디스플레이가 터치-감응 디스플레이인 경우 터치 감응 표면을 포함한다.
메모리(206)는 DRAM, SRAM, DDR RAM이나 다른 랜덤 액세스 솔리드 스테이트 메모리 장치와 같은 고속 랜덤 액세스 메모리를 포함하고; 하나 이상의 자기 디스크 저장 장치, 광학 디스크 저장 장치, 플래시 메모리 장치 및/또는 다른 비휘발성 솔리드 스테이트 저장 장치와 같은 비휘발성 메모리를 포함할 수 있다. 메모리(206)는 선택적으로 프로세서(들)(202)로부터 원격으로 위치한 하나 이상의 저장 장치를 포함할 수 있다. 메모리(206), 또는 대안적으로 메모리(206) 내의 비휘발성 메모리 장치(들)는 비일시적 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 실시예에서, 메모리(206) 또는 메모리(206)의 컴퓨터 판독가능한 저장 매체는 다음 프로그램, 모듈 및 데이터 구조, 또는 그 서브셋 또는 슈퍼셋을 저장한다.
● 다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 작업을 수행하기 위한 프로시저를 포함하는 운영체제(210);
● 하나 이상의 통신 네트워크 인터페이스(204)(유선 또는 무선) 및 하나 이상의 통신 네트워크(예컨대, 하나 이상의 네트워크(106))을 통해 소셜 네트워크 시스템(108)을 다른 컴퓨터로 연결하기 위해 사용되는 네트워크 통신 모듈(212);
● 예컨대 다음과 같은 소셜 네트워크와 연관된 데이터를 저장하기 위한 소셜 네트워크 데이터베이스(214):
o 사용자 정보(218)와 같은 엔티티 정보(216);
o 연결 정보(220); 및
o 사용자 컨텐츠(224) 및/또는 뉴스 기사(226)와 같은 컨텐츠(222);
● 다음을 포함하는 소셜 네트워킹 서비스 및 관련 특징을 제공하기 위한 소셜 네트워크 서버 모듈(228)(예컨대, 클라이언트 장치(104) 상의 브라우저 모듈(338) 또는 소셜 네트워크 클라이언트 모듈(340)(도 3)과 함께):
o 클라이언트 장치(104)의 사용자를 소셜 네트워크 시스템(108)에 로그인시키기 위한 로그인 모듈(230); 및
o 다음을 포함하는 디스플레이하기 위해 클라이언트 장치(104)로 전송될 컨텐츠를 제공하기 위한 컨텐츠 피드 관리자(232):
■ 이미지, 비디오, 오디오 파일, 코멘트, 상태 메시지, 링크, 애플리케이션 및/또는 다른 엔티티 정보(216), 연결 정보(220) 또는 컨텐츠(222)와 같은 객체를 소셜 네트워크 데이터베이스(214)에 추가하기 위한 컨텐츠 생성자 모듈(234); 및
■ 디스플레이하기 위하여 클라이언트 장치(104)로 전송될 정보/컨텐츠를 선택하기 위한 컨텐츠 선택자 모듈(236);
● 소셜 네트워크 시스템의 사용자가 소셜 네트워크의 컨텐츠 및 다른 사용자를 검색할 수 있게 하기 위한 검색 모듈(238); 및
● 다음을 포함하는 애플리케이션의 설치 파일을 저장하기 위한(예컨대, 클라이언트 장치(104)(도 1a-1b) 상에 다운로드받고 설치하기 위한) 설치 파일 데이터베이스(240):
o 각 애플리케이션의 복수의 버전을 위한 설치 파일을 포함할 수 있는, 애플리케이션(예컨대, 소셜 네트워크 클라이언트 모듈(340), 선택적인 클라이언트 애플리케이션 모듈(344)(도 3) 등)을 설치하기 위한 애플리케이션 설치 파일(242); 및
o 장치 상의 각 애플리케이션의 설치 및/또는 업데이트를 가능하게 하는 애플리케이션을 설치하기 위한 소프트웨어 업데이터 애플리케이션 설치 파일(244)(예컨대, 소프트웨어 업데이터 애플리케이션 모듈(348)(도 3).
소셜 네트워크 데이터베이스(214)는 그래프, 차원형, 플랫, 계층형, 네트워크, 객체 지향, 관계형 및/또는 XML 데이터베이스와 같은 하나 이상의 타입의 데이터베이스에 소셜 네트워크와 연관된 데이터를 저장한다.
일부 실시예에서, 소셜 네트워크 데이터베이스(214)는 그래프 데이터베이스에서 에지로 표현되는 엔티티 정보(216) 및 그래프 데이터베이스에서 노드로 표현되는 연결 정보(220)를 가지는 그래프 데이터베이스를 포함한다. 그래프 데이터베이스는 복수의 노드뿐만 아니라 대응하는 노드 간의 연결을 정의하는 복수의 에지를 포함한다. 일부 실시예에서, 노드 및/또는 에지 자체가 대응하는 엔티티에 대한 식별자, 속성 및 정보를 포함하는 데이터 객체이고, 일부는 클라이언트 장치(104)에서 대응하는 프로필 페이지나 소셜 네트워킹 서비스의 다른 페이지 상에 렌더링된다. 일부 실시예에서, 노드도 클라이언트 장치(104)에서 각 노드에 대응하는 페이지의 렌더링과 관련하여 컨텐츠를 렌더링하기 위하여 다른 객체, 데이터 구조 또는 리소스로의 포인터나 참조를 포함한다.
엔티티 정보(216)는 사용자 프로필, 로그인 정보, 사생활 및 다른 설정, 전기적(biographical) 데이터 등과 같은 사용자 정보(218)를 포함한다. 일부 실시예에서, 주어진 사용자에 대하여, 사용자 정보(218)는 사용자의 이름, 프로필 사진, 연락처 정보, 생일, 성별, 혼인 상태, 가족 상태, 직장, 학력, 기호, 관심사 및/또는 다른 인구통계적 정보를 포함한다.
일부 실시예에서, 엔티티 정보(216)는 물리적 위치(예컨대, 레스토랑, 극장, 랜드마크, 도시, 주 또는 나라), 실제 또는 기적 재산(예컨대, 조각, 그림, 영화, 게임, 노래, 아이디어/컨셉, 사진 또는 서면 작업), 비즈니스, 사람들의 그룹 및/또는 비즈니스의 그룹에 대한 정보를 포함한다. 일부 실시예에서, 엔티티 정보(216)는 오디오 파일, 비디오 파일, 디지털 사진, 텍스트 파일, 구조화된 문서(예컨대, 웹 페이지) 또는 애플리케이션과 같은 리소스에 대한 정보를 포함한다. 일부 실시예에서, 리소스는 소셜 네트워크 시스템(108)(예컨대, 컨텐츠(222))에 또는 제3자 서버(110)와 같은 외부 서버 상에 존재한다.
일부 실시예에서, 연결 정보(220)는 소셜 네트워크 데이터베이스(214) 내의 엔티티 간의 관계에 대한 정보를 포함한다. 일부 실시예에서, 연결 정보(220)는 그래프 데이터베이스의 노드 쌍을 연결하는 에지에 관한 정보를 포함한다. 일부 실시예에서, 노드 쌍을 연결하는 에지는 노드 쌍 간의 관계를 나타낸다.
일부 실시예에서, 에지는 노드 쌍 간의 관계에 대응하는 하나 이상의 데이터 객체 또는 속성을 포함하거나 나타낸다. 예를 들어, 제2 사용자가 제1 사용자의 “친구”임을 제1 사용자가 표시할 때, 소셜 네트워크 시스템(108)은 제2 사용자에게 “친구 요청”을 전송한다. 만약 제2 사용자가 “친구 요청”을 확인하면, 소셜 네트워크 시스템(108)은 그래프 데이터베이스의제1 사용자의 노드와 제2 사용자의 노드를 연결하는 에지를 제1 사용자와 제2 사용자가 친구임을 표시하는 연결 정보(220)로서 생성하고 저장한다. 일부 실시예에서, 연결 정보(220)는 친구관계, 가족관계, 비즈니스나 직장 관계, 팬 관계, 팔로워 관계, 방문자 관계, 구독자 관계, 상위/하위 관계, 호혜 관계, 비-상호 관계, 다른 적절한 타입의 관계 또는 둘 이상의 이러한 관계를 나타낸다.
일부 실시예에서, 사용자 노드와 다른 엔티티 노드 간의 에지는 사용자 노드의 사용자에 의해 다른 엔티티 노드에 대해 수행된 특정 행위 또는 활동에 대한 연결 정보를 나타낸다. 예를 들어, 사용자는 다른 노드의 엔티티를 “좋아요”하거나 “참석”, “재생”, “청취”, “요리”, “근무” 또는 “시청”할 수 있다. 다른 노드의 엔티티에 대응하는 소셜 네트워킹 페이지의 페이지는 예컨대 선택가능한 “좋아요”, “체크인” 또는 “즐겨찾기에 추가” 아이콘을 포함할 수 있다. 사용자가 이들 아이콘 중 하나를 클릭한 후, 소셜 네트워크 시스템(108)은 대응하는 사용자 행위에 응답하여 “좋아요” 에지, “체크인” 에지 또는 “즐겨찾기” 에지를 생성할 수 있다. 다른 예로, 사용자는 특정한 애플리케이션(예컨대, 온라인 음악 애플리케이션)을 사용하여 특정 곡을 들을 수 있다. 이 경우, 소셜 네트워크 시스템(108)은 사용자에 대응하는 사용자 노드와 곡 및 애플리케이션에 대응하는 엔티티 노드 사이에 “청취했음” 에지 및 “사용했음” 에지를 각각 생성하여 사용자가 곡을 청취했고 애플리케이션을 사용했음을 표시할 수 있다. 나아가, 소셜 네트워크 시스템(108)은 곡 및 애플리케이션에 대응하는 엔티티 노드 간에 “재생했음” 에지를 생성하여 특정 곡이 특정 애플리케이션에 의해 재생됐음을 표시할 수 있다.
일부 실시예에서, 컨텐츠(222)는 텍스트(예컨대, ASCII, SGML, HTML), 이미지(예컨대, jpeg, tif 및 gif), 그래픽(예컨대, 벡터 기반 또는 비트맵), 오디오, 비디오(예컨대, mpeg), 다른 멀티미디어 및/또는 그 조합을 포함한다. 일부 실시예에서, 컨텐츠(222)는 실행가능한 코드(예컨대, 브라우저 윈도우 또는 프레임 내에서 실행가능한 게임), 포드캐스트, 링크 등을 포함한다.
일부 실시예에서, 소셜 네트워크 서버 모듈(228)은 웹이나 HTTP(hypertext Transfer Protocol) 서버, FTP(File Transfer Protocol) 서버뿐만 아니라 CGI(Common Gateway Interface) 스크립트, PHP(PHP Hyper-text Preprocessor), ASP(Active Server Pages), HTML(Hyper Text Markup Language), XML(Extensible Markup Language), Java, JavaScript, AJAX(Asynchronous JavaScript and XML), XHP, Javelin, WURFL(Wireless Universal Resource File) 등을 이용해 구현되는 웹 페이지와 애플리케이션을 포함한다.
도 3은 일부 실시예에 따른 클라이언트 장치(104)의 예시를 도시하는 블록도이다. 클라이언트 장치(104)는 일반적으로 하나 이상의 프로세싱 유닛(프로세서 또는 코어)(302), 하나 이상의 네트워크나 다른 통신 인터페이스(304), 메모리(306) 및 이들 컴포넌트를 상호연결하기 위한 하나 이상의 통신 버스(308)를 포함한다. 통신 버스(308)는 선택적으로 시스템 컴포넌트간 상호연결하고 통신을 제어하는 회로(때때로 칩셋으로 부른다)를 포함한다. 통신 인터페이스(304)는 무선 인터페이스(예컨대, Ethernet, USB(Universal Serial Bus), Firewire 등) 및/또는 무선 통신 프로토콜(예컨대, IEEE 802. 15. 4, Wi-Fi, ZigBee, 6LoWPAN, Thread, Z-Wave, Bluetooth, ISA100. 11a, WirelessHART, MiWi, NFC 등)을 포함한다. 클라이언트 장치(104)는 사용자 인터페이스(310)를 포함한다. 사용자 인터페이스(310)는 일반적으로 디스플레이 장치(312)를 포함한다. 일부 실시예에서, 클라이언트 장치(104)는 키보드, 마우스 및/또는 다른 입력 버튼(316)과 같은 입력을 포함한다. 대안으로 또는 추가로, 일부 실시예에서 디스플레이 장치(312)는 터치-감응형 표면(314)을 포함하고, 이 경우 디스플레이 장치(312)는 터치-감응형 디스플레이이다. 터치-감응형 디스플레이(312)를 갖는 전자 장치에서, 물리적인 키보드는 선택적이다(예컨대, 소프트 키보드는 키보드 엔트리가 필요할 때 디스플레이될 수 있다). 사용자 인터페이스(310)는 또한, 오디오 출력 장치(318), 가령 스피커, 이어폰 또는 헤드폰에 연결된 오디오 출력 연결이나 스피커를 포함한다. 추가로, 일부 클라이언트 장치(104)는 키보드를 보충 또는 대체하기 위해 마이크로폰 및 음성 인식을 사용한다. 선택적으로, 클라이언트 장치(104)는 오디오(예컨대, 사용자로부터의 음성)을 캡처하기 위한 오디오 입력 장치(320)(예컨대, 마이크로폰)를 포함한다. 선택적으로, 클라이언트 장치(104)는 클라이언트 장치(104)의 위치를 결정하기 위한 위치 검출 장치(322), 예컨대 GPS(global positioning satellite)나 다른 지리적 위치 수신기를 포함한다. 클라이언트 장치(104)는 또한 선택적으로 카메라나 웹캠과 같은 이미지/비디오 캡처 장치(324)를 포함한다.
메모리(306)는 고속 랜덤 액세스 메모리, 가령 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 장치를 포함하며; 비-휘발성 메모리, 가령 하나 이상의 자기 디스크 저장 장치, 광 디스크 저장 장치, 플래시 메모리 장치, 또는 다른 비-휘발성 솔리드 스테이트 저장 장치를 포함할 수 있다. 메모리(306)는 선택적으로 프로세서(들)(302)로부터 원격으로 위치한 하나 이상의 저장 장치를 포함할 수 있다. 메모리(306) 또는 대안으로 메모리(306) 내의 비-휘발성 메모리 장치(들)는 비-일시적 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 실시예로, 메모리(306) 또는 메모리(306)의 컴퓨터 판독가능한 저장 매체는 이하의 프로그램, 모듈 및 데이터 구조, 또는 이들의 서브세트나 슈퍼세트를 저장한다:
● 다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 작업을 수행하기 위한 프로시저를 포함하는 운영체제(326);
● 하나 이상의 통신 네트워크 인터페이스(304)(유선 또는 무선) 및 인터넷, 셀룰러 전화 네트워크, 모바일 데이터 네트워크, 다른 광역 네트워크, 근거리 네트워크, 대도시 네트워크 등과 같은 하나 이상의 통신 네트워크를 통해 클라이언트 장치(104)를 다른 컴퓨터로 연결하기 위해 사용되는 네트워크 통신 모듈(328);
● 이미지/비디오 캡처 장치(324)에 의해 캡처된 각 이미지나 비디오를 처리하기 위한 이미지/비디오 캡처 모듈(330)(예컨대, 카메라 모듈)로서, 각 이미지나 비디오는 소셜 네트워크 시스템(108)으로 송신 또는 스트리밍될 수 있음(예컨대, 클라이언트 애플리케이션 모듈(336)에 의해);
● 오디오 입력 장치(320)에 의해 캡처된 오디오를 처리하기 위한 오디오 입력 모듈(332)(예컨대, 마이크로폰 모듈)로서, 각 오디오는 소셜 네트워크 시스템(108)으로 송신 또는 스트리밍될 수 있음(클라이언트 애플리케이션 모듈(336)에 의해);
● 클라이언트 장치(104)의 위치를 결정하고(예컨대, 위치 검출 장치(322)를 이용하여) 이 위치 정보를 다양한 애플리케이션(예컨대, 소셜 네트워크 클라이언트 모듈(340))에서 사용하기 위해 제공하기 위한 위치 검출 모듈(334)(예컨대, GPS, Wi-Fi 또는 하이브리드 위치 모듈); 및
● 다음 모듈(또는 명령어의 세트), 또는 그 서브셋이나 슈퍼셋을 포함하는 하나 이상의 클라이언트 애플리케이션 모듈(336):
o 웹 사이트(예컨대, 소셜 네트워크 시스템(108)에 의해 제공되는 소셜 네트워킹 웹 사이트)에 접속하고, 열람하고, 상호작용하기 위한 웹 브라우저 모듈(338)(예컨대, Microsoft의 Internet Explorer, Mozilla의 Firefox, Apple의 Safari 또는 Google의 Chrome),
o 소셜 네트워킹 서비스(예컨대, 소셜 네트워킹 시스템(108)이 제공하는 소셜 네트워킹 서비스)에 소셜 네트워크 모듈(340)의 하나 이상의 버전에 대응하는 설치 파일(342)(예컨대, 애플리케이션 설치 파일(242)(도 2))을 포함하는, 인터페이스 및 관련 특징을 제공하기 위한 소셜 네트워크 모듈(340);
o 각 선택적인 클라이언트 애플리케이션 모듈(344)의 하나 이상의 버전에 대응하는 설치 파일(346)(예컨대, 애플리케이션 설치 파일(242)(도 2))을 포함할 수 있는, 다른 선택적 클라이언트 애플리케이션 모듈(344), 가령 워드 프로세싱, 캘린더 작업, 맵핑, 날씨, 증권, 시간 관리, 가상 디지털 비서, 프레젠테이션, 숫자 입력(스프레드시트), 그림, 인스턴트 메시징, 이메일, 전화, 비디오 회의, 사진 관리, 비디오 관리, 디지털 음악 플레이어, 디지털 비디오 플레이어, 2D 게임, 3D(예컨대, 가상 현실) 게임, 전자책 리더, 및/또는 워크아웃 지원을 위한 애플리케이션; 및/또는
o 각 전자 장치를 위한 애플리케이션의 호환 버전을 결정하기 위한 호환성 검사 수행을 포함하는, 장치 상의 애플리케이션(예컨대, 소셜 네트워크 모듈(340))의 하나 이상의 버전의 설치 및/또는 업데이트를 가능하게 하기 위한 소프트웨어 업데이터 애플리케이션 모듈(348)으로서, 소프트웨어 업데이터 애플리케이션 모듈(348)은 소프트웨어 업데이터 애플리케이션 모듈(348)을 설치하기 위한 설치 파일(350)(예컨대, 소프트웨어 업데이터 애플리케이션 설치 파일(244)(도 2))을 포함함.
상기 모듈 및 애플리케이션 각각은 상술한 및/또는 본 출원에 서술된 방법(예컨대, 본 명세서에 서술되는 컴퓨터 구현 방법 및 다른 정보 처리 방법)의 하나 이상의 기능을 수행하기 위한 실행가능한 명령어의 세트에 대응한다. 이들 모듈(즉, 명령어들의 세트)은 분리된 소프트웨어 프로그램, 절차 또는 모듈로 구현될 필요는 없고, 따라서 이러한 모듈의 다양한 서브세트는 다양한 실시예에서 선택적으로 또는 조합되거나 아니면 재배치된다. 일부 실시예에서, 메모리(206 및/또는 306)은 상기 식별된 모듈 및 데이터 구조의 서브셋을 저장한다. 나아가, 메모리(206 및/또는 306)는 선택적으로 상술되지 않은 추가 모듈 및 데이터 구조를 저장한다.
이제 클라이언트 장치(예컨대, 도 3의 클라이언트 장치(104))에서 구현될 수 있는 GUI(graphical user interface)의 실시예 및 연관된 프로세스의 실시예에 주목한다.
도 4a-4b는 일부 실시예에 따른 애플리케이션 설치 및 사용자 연관 요청을 가능하게 하기 위한 클라이언트 장치(104) 상의 GUI의 예시를 도시한다. GUI는 웹 브라우저(예컨대, 도 3의 웹 브라우저 모듈(338)), 소셜 네트워킹 서비스(예컨대, 소셜 네트워크 모듈(340))를 위한 애플리케이션, 제3자 애플리케이션(예컨대, 클라이언트 애플리케이션 모듈(344)) 및/또는 소프트웨어 업데이터 애플리케이션(예컨대, 소프트웨어 업데이터 애플리케이션 모듈(348))이 제공할 수 있다. 도 4a-4b가 GUI의 예시를 도시하지만, 다른 실시예에서 GUI는 도 4a-4b의 실시예와는 다른 배열로 사용자 인터페이스 요소를 디스플레이한다.
도 4a는 애플리케이션의 버전의 설치를 가능하게 하기 위한 상이한 전자 장치(예컨대, 클라이언트 장치(104-3)(도 1a) 상의 보안 설정을 업데이트하기 위한 명령을 포함하는 전자 장치(예컨대, 클라이언트 장치(104-1)(도 1a) 상에 디스플레이되는 메시지(400-1)를 도시한다. 일부 실시예에서, 명령은 외부 소스(예컨대, 소셜 네트워크 클라이언트 모듈(340) 및/또는 소프트웨어 업데이터 애플리케이션 모듈(348)(도 3)과 같은 로컬 연결(112)을 통한 다른 장치로부터 검색된 설치 파일)로부터의 애플리케이션의 설치를 가능하게 하기 위한 보안 설정을 업데이트하기 위한 명령이다.
도 4b는 계정을 생성하는 요청을 송신한 후 전자 장치와 연관된 사용자에게 소셜 네트워킹 서비스 상의 다른 전자 장치의 상이한 사용자(예컨대, 클라이언트 장치(104-3)(도 1a)와 연관된 사용자)와 연관시키도록(친구 또는 지인이 되도록) 유도하는, 전자 장치(예컨대, 클라이언트 장치(104-1)(도 1a)에 디스플레이되는 메시지(400-2)를 도시한다. 도시된 바와 같이, 도 4b의 GUI는 클라이언트 장치(104-1)의 사용자가 요청을 송신하거나 송신을 거절할 수 있게 하는 선택적 사용자 인터페이스 요소를 포함한다.
도 4a 및 4b에 도시된 메시지의 디스플레이는 방법(500)과 관련하여 더 자세히 서술된다.
도 5a-5b는 일부 실시예에 따른 로컬 연결(예컨대, 로컬 연결(112)(도 1a-1c)을 사용하여 애플리케이션 버전을 설치하는 방법(500)을 도시하는 흐름도이다. 방법(500)은 소셜 네트워크 시스템(108)(또는 다른 서버 시스템), 제1 전자 장치(502-1)(예컨대, 클라이언트 장치(104-1)(도 1a-1c 및 3)), 제2 전자 장치(502-2)(예컨대, 클라이언트 장치(104-3)(도 1a-1c 및 3)) 상에서 수행된다. 도 5a-5b에서 수행되는 동작은 컴퓨터 메모리(예컨대, 도 3의 클라이언트 장치(104)의 메모리(306))나 다른 컴퓨터 판독가능한 저장 매체에 저장된 명령어에 대응한다.
일부 실시예에서, 소셜 네트워크 시스템(108)(예컨대, 도 1a 및 2)은 애플리케이션의 제1 버전을 위한 설치 파일을, 소셜 네트워크 시스템(108)으로부터 설치 파일(예컨대, 도 3의 소셜 네트워크 클라이언트 모듈(340)의 설치 파일(342)에 대응하는 도 2의 애플리케이션 설치 파일(242))을 수신하는 제1 전자 장치(502-1)로 송신한다(504). 일부 실시예에서, 애플리케이션의 제1 버전은 애플리케이션의 가장 최근 및 최신 버전(예컨대, 소셜 네트워크 클라이언트 모듈(340)의 가장 최근 버전)이다. 선택적으로, 일부 실시예에서, 소셜 네트워크 시스템(108)은 소프트웨어 업데이터 애플리케이션을 위한 설치 파일(예컨대, 도 3의 소프트웨어 업데이터 애플리케이션 모듈(348)의 설치 파일(350)에 대응하는 도 2의 소프트웨어 업데이터 애플리케이션 설치 파일(244))을, 소셜 네트워크 시스템(108)으로부터 설치 파일을 수신하는 제1 전자 장치(502-1)(예컨대, 클라이언트 장치(104-1)(도 1a-1c))로 송신한다. 설치 파일은, 예컨대 하나 이상의 네트워크(106)(도 1a-1b)를 통해 송신된다.
제1 전자 장치(502-1)는 소셜 네트워크 시스템(108)으로부터 수신한 애플리케이션의 제1 버전을 위한 설치 파일을 저장하고(506)(예컨대, 메모리(306)(도 3)에), 선택적으로 애플리케이션의 제1 버전을 설치한다(508). 일부 실시예에서, 제1 전자 장치(502-1)는 소프트웨어 업데이터 애플리케이션을 위한 설치 파일도 저장하고(예컨대, 메모리(306)(도 3)에), 선택적으로 소프트웨어 업데이터 애플리케이션을 설치한다.
제1 전자 장치(502-1)(예컨대, 클라이언트 장치(104-1)(도 1a-1c)는 로컬 연결(예컨대, 로컬 연결(112)(도 1a-1b))을, 이로써 제1 전자 장치와 로컬 연결을 확립하는 제2 전자 장치(502-2)와 확립한다(510). 로컬 연결은 인터넷 연결과 독립적이다(예컨대, 클라이언트 장치(104-1)의 하나 이상의 네트워크(106)와의 임의의 연결과 독립적이다). 일부 실시예에서, 로컬 연결 확립은 무선 통신 프로토콜(예컨대, Bluetooth)를 사용하여 제1 전자 장치(502-1)를 제2 전자 장치(502-2)와 페어링시키는 것을 포함한다. 일부 실시예에서, 로컬 연결 확립은 PAN을 통해 제2 전자 장치(502-2)에 연결하는 것을 포함한다. 일부 실시예에서, 로컬 연결 확립은 P2P 네트워크를 통해 제2 전자 장치(502-2)에 연결하는 것을 포함한다.
일부 실시예에서, 로컬 연결 확립은 인터넷 연결에 대한 임계 혼잡을 충족시킨다는 결정에 응답하여 수행된다. (설치 파일 송신(518)과 같은 후속 동작도 적어도 부분적으로 이 결정에 응답하여 수행될 수 있다). 임계 혼잡은 기정의된 최소 가용 네트워크 밴드폭(예컨대, 초당 비트), 데이터 속도, 네트워크 지연 또는 전자 장치가 인터넷에 접속하는 네트워크 연결의 다른 성능 척도(네트워크(106)(도 1a)를 통한 측정된 네트워크 밴드폭)를 포함할 수 있다. 예로서, 만약 기정의된 최소 네트워크 밴드폭이 100Mbits/sec이고, 제2 전자 장치(502-2)가 네트워크(106)(도 1)를 통해 90Mbits/sec의 네트워크 밴드폭을 측정했다면, 임계 혼잡은 충족되고 로컬 연결(예컨대, Bluetooth)이 근접한 다른 전자 장치와 확립된다. 일부 실시예에서, 로컬 연결 확립은 로컬 연결의 측정된 성능 척도(예컨대, Bluetooth 데이터 속도)가 제1 전자 장치(502-1) 및/또는 제2 전자 장치(502-2)가 인터넷에 접속하는 네트워크 연결의 측정된 성능 척도(예컨대, Wi-Fi를 통해 달성된 네트워크 밴드폭)를 초과한다는 결정에 응답하여 수행된다. 일부 실시예에서, 로컬 연결 확립은 제2 전자 장치(502-2)가 인터넷 연결을 확립하지 못한다는 결정(예컨대, 셀룰러 데이터 및/또는 Wi-Fi를 통한 네트워크(106)로의 연결이 사용 불가능함)에 응답하여 수행된다.
로컬 연결을 사용하여, 제1 전자 장치(502-1)(또는 제2 전자 장치(502-2))가 애플리케이션의 제1 버전이 제2 전자 장치(502-2) 상에 설치되어 있는지 여부를 결정한다. 일부 실시예에서, 결정(512)은 제1 전자 장치(502-1) 또는 제2 전자 장치(502-2)가 임의의 버전의 애플리케이션이 제2 전자 장치에 설치되어 있는지 여부를 결정하는 것을 포함한다. 예를 들어, 제1 전자 장치(502-1)는 제2 전자 장치(502-2)에게 애플리케이션의 버전이 제1 전자 장치 상에 설치되어 있다고 또는 애플리케이션의 버전을 위한 설치 파일이 제1 전자 장치 상에서 사용 가능하다고 표시할 수 있다. 이 표시에 기반하여, 제2 전자 장치(502-2)는 동일한 애플리케이션의 임의의 버전이 제2 전자 장치(502-2) 상에 설치되어 있는지 여부를 결정한다. 대안적으로, 제2 전자 장치(502-2)는 제1 전자 장치(502-1)에게 (예컨대, 모든 설치된 애플리케이션의 목록을 제공함으로써) 애플리케이션의 버전이 제2 전자 장치(502-2) 상에 설치되어 있다고 표시할 수 있다.
일부 실시예에서, 결정(512)은 제1 전자 장치(502-1) 또는 제2 전자 장치(502-2)가 애플리케이션의 제1 버전보다 앞선(predate) 애플리케이션의 제2 버전이 제2 전자 장치에 설치되어 있는지 여부를 결정하는 것(예컨대, 제2 전자 장치 상의 버전이 구식 버전이라고 결정하기 위한 애플리케이션 또는 제1 및 제2 전자 장치 상에 저장된 대응하는 설치 파일의 버전 비교)을 포함한다. 예를 들어, 제1 전자 장치(502-1)는 제2 전자 장치(502-2)에게 애플리케이션의 제1 버전이 제1 전자 장치(502-1) 상에 설치되어 있다고 표시할 수 있다. 이 표시에 기반하여, 그 후 제2 전자 장치(502-2)는 제2 전자 장치(502-2) 상에 설치된 애플리케이션의 버전을 제1 버전과 비교하여 제2 전자 장치(502-2)에 설치된 버전이 구식인지 여부를 결정한다. 비교는 제2 전자 장치(502-2)에 설치된 버전이 구식 버전, 동일 버전 또는 더 최신 버전이라는 결정을 도출한다. 대안적으로, 제2 전자 장치(502-2)는 제1 전자 장치(502-1)에게 애플리케이션의 제2 버전이 제2 전자 장치(502-2) 상에 설치되어 있다고 표시할 수 있다. 이 표시에 기반하여, 그 후 제1 전자 장치(502-1)는 제1 전자 장치(502-1)에 설치된 애플리케이션의 제1 버전을 제2 버전과 비교하여 제2 전자 장치(502-2)에 설치된 버전이 구식인지 여부를 결정한다.
일부 실시예에서, 결정(512)은 제2 전자 장치(502-2) 상의 설치를 위해 로컬 연결을 통해 제2 전자 장치(502-2)에게 소프트웨어 업데이터 애플리케이션을 제공하는 것(예컨대, 소프트웨어 업데이터 애플리케이션 모듈(348)(도 3)의 설치 파일(350)을 전송하는 것)을 포함하는데, 제2 전자 장치(502-2)는 로컬 연결을 통해 소프트웨어 업데이터 애플리케이션을 수신한다. 소프트웨어 업데이터 애플리케이션은 그 후 제2 전자 장치(502-2) 상에 설치된다. 일부 실시예에서, 소프트웨어 업데이터 애플리케이션(예컨대, 소프트웨어 업데이터 애플리케이션 모듈(348))은 애플리케이션(예컨대, 소셜 네트워크 클라이언트 모듈(340)(도 3))의 버전이 제2 전자 장치(502-2) 상에 설치되어 있는지 여부 및 어떤 버전인지를 결정하기 위한 명령을 포함한다. 이어서, 로컬 통신을 통하여, 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부(예컨대, 애플리케이션의 임의의 버전이 설치되어 있는지 여부 및/또는 애플리케이션의 제1 버전이 설치되어 있는지 여부)의 표시를 제2 전자 장치(502-2) 상의 소프트웨어 업데이터 애플리케이션이 송신하고 제1 전자 장치(502-1)은 수신한다.
일부 실시예에서, 로컬 연결을 확립한(510) 후, 제1 전자 장치(502-1)는 주기적으로(또는 계속하여) 배포가 허가된 제1 전자 장치(502-1) 상에 저장된 애플리케이션(또는 그 각 버전)의 목록을 로컬 연결을 통하여 전송(예컨대, 방송)한다. 제1 전자 장치(502-1)로부터의 전송(예컨대, 방송)에 기반하여, 로컬 연결을 통하여 제1 전자 장치와 연결된 전자 장치는 로컬 연결을 통하여 제1 전자 장치(502-1)로부터 획득할 수 있는 애플리케이션의 사용 가능한 버전을 식별할 수 있다.
일부 실시예에서, 제1 전자 장치(502-1) 또는 제2 전자 장치(502-2)는 애플리케이션의 제1 버전이 제2 전자 장치(502-2)와 호환되는지 여부를 결정한다(514). 애플리케이션의 제1 버전의 호환성을 결정하는 것은 제2 전자 장치(502-2)(및 선택적으로 제1 전자 장치(502-1))의 하나 이상의 하드웨어(예컨대, 프로세서 타입, 장치 제조자, 칩셋 등) 및/또는 소프트웨어(예컨대, 운영체제) 사양을 식별하는 것 및 애플리케이션의 제1 버전이 식별된 사양과 호환되는지 여부를 결정하는 것을 포함할 수 있다. 일부 실시예에서, 애플리케이션의 제1 버전의 호환성을 결정하는 것은 애플리케이션의 상이한 버전을 위한 호환되는 장치 사양의 목록을 저장하는 테이블(예컨대, “APK(Android application package)” 매트릭스)의 항목을 참조하는 것을 포함한다. 일부 실시예에서, 호환성 검사(514)는 소프트웨어 업데이터 애플리케이션(예컨대, 소프트웨어 업데이터 애플리케이션 모듈(348)(도 3))에 의해 수행된다(512).
애플리케이션의 제1 버전이 제2 전자 장치(502-2)에 설치되지 않았다는(또한, 일부 실시예에서, 제1 버전이 제2 전자 장치의 하드웨어 및/또는 소프트웨어(예컨대, 운영체제)와 호환된다는) 결정에 응답하여, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일(예컨대, 소셜 네트워크 클라이언트 모듈(340)(도 3)을 위한 설치 파일(342))을 로컬 연결을 통하여 제1 전자 장치(502-1)는 제2 전자 장치로 전송하고(518) 제2 전자 장치(502-2)는 제1 전자 장지로부터 수신한다. 예를 들어, 만약 소셜 네트워크 클라이언트 모듈(340)(예컨대, 소셜 네트워킹 서비스를 위한 인터페이스를 제공하는 애플리케이션)의 최근(즉, 최신) 버전이 제1 전자 장치(502-1)에 저장되어 있으나 제2 전자 장치(502-2)에 설치되어 있지 않다면(예컨대, 제2 전자 장치(502-2) 상에 설치된 애플리케이션의 버전이 구식), 제1 전자 장치(502-1)는 최근 버전을 위한 설치 파일(342)을 제2 전자 장치(502-2)로 별개의 인터넷 기반 네트워크 인터페이스가 아닌, 확립된 로컬 연결(예컨대, Bluetooth 연결)을 통해 송신한다. 그러므로 제2 전자 장치(502-2)는 로컬 연결(112)보다 넓은 임의의 네트워크로의 인터넷 접속과 독립적으로(예컨대, 네트워크(106)(도 1a)을 통해 소셜 네트워크 시스템(108)과 연결하지 않고) 설치 파일을 수신한다.
일부 실시예에서, 결정(512)은 애플리케이션의 제2 버전이 제2 전자 장치(502-2) 상에 설치되어 있다는(즉, 제1 전자 장치(502-1) 상에 저장된 제1 버전보다 앞선 버전) 결정이고, 하나 이상의 설치 파일은 제2 버전에서 제1 버전으로 제2 전자 장치(502-2) 상의 애플리케이션을 업데이트하기 위한 업데이트를 포함한다. 따라서, 일부 구현에서, 만약 수신 장치가 애플리케이션의 구식 버전을 저장하고 있다면, 전체 애플리케이션을 위한 설치 패키지가 아닌 애플리케이션 업데이트를 위한 파일만이 송신된다.
일부 실시예에서, 결정(512)은 애플리케이션의 버전이 제2 전자 장치에 설치되어 있지 않다는 결정이고, 하나 이상의 설치 파일은 애플리케이션의 이전 버전을 업데이트하기 위한 설치 파일만이 아니라 애플리케이션의 제1 버전 전체를 설치하기 위한 하나 이상의 파일을 포함한다.
일부 실시예에서, 하나 이상의 설치 파일을 송신하기(518) 전에, 애플리케이션의 제1 버전의 설치를 가능하게 하기 위하여 제2 전자 장치(502-2) 상의 보안 설정을 업데이트하기 위한 명령과 함께 메시지가 제1 전자 장치(502-1) 상에 디스플레이된다(516). 메시지의 예시는 도 4a에 도시되고 이와 관련하여 서술되어 있다.
일부 실시예에서, 제1 전자 장치(502-1)는 제2 전자 장치(502-2)가 로컬 연결을 통해 통신할 수 있는 복수의 전자 장치 중 하나(예컨대, 제2 전자 장치(502-2)의 무선 통신 범위 내의 복수의 전자 장치 중 하나)이고, 복수의 전자 장치 중 다른 전자 장치 상의 각 버전이 애플리케이션의 제1 버전보다 앞선다는 결정에 따라 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 제1 전자 장치(502-1)는 송신하고(518) 제2 전자 장치(502-2)는 수신한다. 예로서, 도 1c를 참조하면, 클라이언트 장치(104-1, 104-4 및 104-5)는 소셜 네트워크 클라이언트 모듈(340)의 상이한 버전을 저장하고(및/또는 상이한 버전을 위한 설치 파일을 가짐), 이들이 클라이언트 장치(104-3)의 무선 통신 범위 내에 있는 전부이다. 만약 클라이언트 장치(104-1)가 소셜 네트워크 클라이언트 모듈(340)의 가장 최근(예컨대, 현재) 버전(다른 근처 클라이언트 장치 상에 저장된 각 버전에 비하여)을 저장한다면, 클라이언트 장치(104-1)만이 클라이언트 장치(104-3)로 가장 최근 버전을 위한 설치 파일(342)을 송신할 것이다. 일부 실시예에서, 애플리케이션의 각 버전을 저장하는 다수의 근처 전자 장치가 서로 간에 중재하여 애플리케이션의 가장 최신(예컨대, 현재) 버전을 가지는 하나 이상의 전자 장치를 식별한다. 일부 구현에서, 애플리케이션의 가장 최신 버전을 가지는 하나 이상의 전자 장치를 식별한 후, 구식 버전을 가지는 다른 전자 장치는 로컬 연결로부터 접속을 끊고 및/또는 다른 근처 장치로의 방송을 중단한다(예컨대, 애플리케이션의 버전이 전송 가능하다고 다른 장치에 방송하는 것을 정지한다). 일부 실시예에서, 제2 전자 장치(502-2)(“수신 장치”)는 무선 통신 범위 내의 다수의 전자 장치로부터 각 전자 장치 상에 저장된 애플리케이션의 각 버전을 식별하는 표시를 수신한다. 일부 실시예에서, 이들 표시에 기반하여 애플리케이션의 가장 최신 버전을 가지는 하나 이상의 전자 장치를 식별하면, 제2 전자 장치(502-2)는 가장 최신 버전을 가지는 하나 이상의 전자 장치와 연결을 유지하고 설치 파일을 수신하는 한편 로컬 연결을 통해 연결된 다른 모든 전자 장치로부터 접속을 끊는다. 대안적으로, 제2 전자 장치(502-2)는 다른 전자 장치와 연결을 유지하지만 그들로부터 설치 파일을 다운로드하지 않는다.
일부 실시예에서, 애플리케이션은 제1 전자 장치(502-1) 및/또는 제2 전자 장치(502-2) 상에 저장된 복수의 애플리케이션 중 제1 애플리케이션이다(예컨대, 클라이언트 장치(104-1)는 브라우저 모듈(338), 소셜 네트워크 클라이언트 모듈(340) 및 클라이언트 애플리케이션 모듈(344)을 메모리(306)에 저장한다). 제1 애플리케이션의 우선 순위가 제2 전자 장치(502-2) 상의 제2 애플리케이션의 우선 순위를 대체한다는(supersede) 결정에 따라 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 제1 전자 장치(502-1)는 송신하고(518) 제2 전자 장치(502-2)는 수신한다. 예를 들어, 만약 소셜 네트워크 클라이언트 모듈(340)은 클라이언트 애플리케이션 모듈(344)의 기정의된 우선 순위를 대체하는 기정의된 우선 순위를 가지고(예컨대, 수치 인덱스 값으로 표현), 업데이트가 양 모듈에 대해 사용 가능하다면, 제1 전자 장치(502-1)는 클라이언트 애플리케이션 모듈(344)을 위한 설치 파일이 있더라도 그 전에 소셜 네트워크 클라이언트 모듈(340)을 위한 설치 파일을 송신할 것이다. 일부 실시예에서, 애플리케이션의 상이한 버전이 각 우선 순위를 가진다. 예를 들어, 제1의, 더 최근 버전의 소셜 네트워크 클라이언트 모듈(340)은 제2의, 오래된 버전보다 더 높은 우선 순위를 가질 수 있다. 이 예시에서, 클라이언트 애플리케이션 모듈(344)의 제1 버전은 소셜 네트워크 클라이언트 모듈(340)의 제2 버전을 대체할 수 있는 한편 소셜 네트워크 클라이언트 모듈(340)의 제1 버전은 클라이언트 애플리케이션 모듈(344)의 제1 버전을 대체할 수 있다.
이제 도 5b를 참조하면, 제1 전자 장치(502-1)는 설치 파일의 일부를 제2 전자 장치(502-2)로 송신하는데(518), 그 전부 또는 일부를 수신한다. 예를 들어, 제1 전자 장치(502-1)는 로컬 연결을 통해 제2 전자 장치로 제1 복수의 패킷을 송신하고, 제2 전자 장치(502-2)는 로컬 연결을 통해 제1 전자 장치(502-1)로부터 제1 복수의 패킷 중 일부나 전부를 수신한다. 설치 파일이 송수신되는 도중(예컨대, 대응 패킷의 형태로), 모든 설치 파일이 전송되기 전에 제2 전자 장치의 로컬 연결의 손실이 감지된다(520). 어느 정도 후(예컨대, 접속 해제 후 몇 분, 몇 시간 또는 몇 일 후), 제2 전자 장치와의 로컬 연결이 재확립된다(522)(예컨대, Bluetooth 연결의 재-페어링). 일부 실시예에서, 동일한 로컬 연결이 재확립되는 반면(예컨대, 만약 원래의 로컬 연결이 Bluetooth를 통한 것이었다면, 재확립되는 로컬 연결도 Bluetooth를 통함), 다른 실시예에서는, 재확립되는 로컬 연결은 상이한 통신 프로토콜에 기반한다(예컨대, 원래의 로컬 연결은 Bluetooth를 통한 것이었고 재확립되는 로컬 연결은 Wi-Fi Direct를 통함). 로컬 연결 재확립(522) 후, 제1 전자 장치(502-1)는 로컬 연결을 통해 설치 파일의 나머지를 제2 전자 장치(502-2)로 송신하고(524), 제2 전자 장치(502-2)는 이를 수신한다. 예를 들어, 제1 전자 장치(502-1)는 로컬 연결을 통해 제2 전자 장치로 제1 복수의 패킷을 송신하고, 제2 전자 장치(502-2)는 로컬 연결을 통해 제1 전자 장치(502-1)로부터 제1 복수의 패킷 중 일부나 전부를 수신한다. 제2 복수의 패킷은 로컬 연결의 손실(520)의 결과로 성공적으로 전송되지 않은 설치 파일의 나머지 부분에 대응한다. 일부 실시예에서, 제2 복수의 패킷은 제2 전자 장치(502-2) 및 하나 이상의 제1 전자 장치(502-1)과는 별개의 다른 전자 장치 간의 로컬 연결을 통해 수신된다(즉, 제2 전자 장치(502-2)는 설치 파일의 상이한 부분을 다수의 전자 장치로부터 수신한다). 이들 실시예에서, 제2 전자 장치 및 하나 이상의 다른 전자 장치 간에 확립된 각 로컬 연결은 동일하거나 별개의 통신 프로토콜을 사용할 수 있다(예컨대, 제2 전자 장치(502-2)는 한 전자 장치와 Bluetooth를 통해, 다른 전자 장치와 Wi-Fi Direct를 통해 연결한다).
일부 실시예에서, 애플리케이션은 소셜 네트워킹 서비스에 접속하기 위한 애플리케이션(예컨대, 소셜 네트워크 시스템(108)이 제공하는 서비스에 접속하기 위한 소셜 네트워크 클라이언트 모듈(340)(도 1 및 3))이고, 제1 전자 장치(502-1)와 연관된 제1 사용자는 소셜 네트워킹 서비스의 사용자이다. 애플리케이션의 제1 버전이 제2 전자 장치에 설치된 후, 로컬 연결을 통하여, 제2 전자 장치와 연관된 제2 사용자를 위한 소셜 네트워킹 서비스의 계정을 생성하기 위한 요청을 제2 전자 장치(502-2)는 제1 전자 장치(502-1)에 송신하고(526), 제1 전자 장치(502-1)는 제2 전자 장치(502-2)로부터 수신한다(526). 이 요청은 제2 전자 장치(502-2) 상의 소셜 네트워크 클라이언트 모듈(340)의 설치에 응답하여 자동으로 생성되거나, 사용자 입력에 응답하여 생성될 수 있다. 제1 전자 장치(502-1)는 그 후 요청을 원격 서버에 로컬 연결과는 별개의 통신 채널을 통하여 송신한다(528)(예컨대, 제1 전자 장치(502-1)는 제2 전자 장치(502-2)로부터 수신한 계정 생성 요청을 Wi-Fi 또는 셀룰러 연결을 통하여 하나 이상의 네트워크(106) 상의 소셜 네트워크 시스템(108)으로 송신한다). 따라서 제2 전자 장치(502-2)를 위한 직접 인터넷 연결이 없는 경우에도 제1 전자 장치(502-1)는 소셜 네트워크 시스템(108)이 제공하는 서비스를 위한 계정을 생성하기 위한 중개자로 사용될 수 있다.
일부 실시예에서, 애플리케이션의 제1 버전을 위한 설치 파일이 제2 전자 장치(502-2)로 송신되고 수신된(518) 후, 제1 전자 장치(502-1) 및/또는 제2 전자 장치(502-2) 상에 제1 사용자가 소셜 네트워킹 서비스 상에서 제2 사용자를 연관시키도록 유도하는(또는 제2 사용자가 제1 사용자를 연관시키도록 유도하는) 메시지가 디스플레이된다(530). 메시지의 예시는 도 4b에 도시되고 이와 관련하여 서술되어 있다. 일부 실시예에서, 연관 요청은 제2 전자 장치(502-2)로의 설치 파일의 송신, 제2 전자 장치(502-2) 상의 애플리케이션의 설치 및/또는 제2 사용자를 위한 계정 생성에 응답하여 자동으로 생성된다. 일부 실시예에서, 메시지는 설치 파일 전체가 전송되는지 여부와 상관 없이, 제1 전자 장치(502-1)가 설치 파일을 송신(518)을 시작하고 제2 전자 장치(502-2)가 수신을 시작한 후(이에 응답하여) 디스플레이된다(530). 일부 실시예에서, 설치 파일이 송신(518) 및 수신된 후(또는 대안적으로, 제1 전자 장치(502-1)가 설치 파일 송신을 시작하고 제2 전자 장치(502-2)가 수신을 시작한 후) 제1 사용자 및 제2 사용자는 서로 자동으로 소셜 네트워킹 서비스 상에서 연관된다(즉, 연관 요청과 관련된 명령/데이터는 자동으로 소셜 네트워크 시스템(108)에 송신된다). 일부 실시예에서, 신호가 자동으로 소셜 네트워크 시스템(108)에 제공되고 기정의된 연관 알고리즘(예컨대, PYMK(“People You May Know”; 알 수도 있는 사람), 친구 요청 알고리즘 등)에 입력된다.
제1 및 제2 사용자(각각 제1 전자 장치(502-1) 및 제2 전자 장치(502-2)와 연관)가 소셜 네트워킹 서비스의 사용자인 일부 실시예에서, 로컬 연결과 별개의 통신 채널을 통하여(예컨대, 하나 이상의 네트워크(106)를 통하여), 제2 사용자를 위한 컨텐츠를 제1 전자 장치(502-1)는 소셜 네트워킹 서비스로부터 수신하고(532) 소셜 네트워크 시스템(108)은 제1 전자 장치(502-1)로 송신한다. 컨텐츠는 소셜 네트워킹 시스템 상에서 사용자가 접근 가능한 임의의 컨텐츠(예컨대, 피드 컨텐츠, 게시물, 메시지, 오디오/시각 데이터, 링크 등)를 포함할 수 있다. 제2 전자 장치 상에 디스플레이하기 위하여, 로컬 연결(예컨대, 로컬 연결(112))을 통하여 소셜 네트워킹 서비스로부터의 컨텐츠를 제1 전자 장치(502-1)는 제2 전자 장치(502-2)로 송신하고(534), 제2 전자 장치(502-2)는 제1 전자 장치(502-1)로부터 수신한다. 따라서, 소셜 네트워크 시스템(108)이 제공하는 컨텐츠는 인터넷 연결이 제한되거나 없는, 하지만 로컬 연결이 확립될 수 있는 다른 인터넷 연결된 장치와 근접한 전자 장치에 의해 접근될 수 있다. 일부 실시예에서, 소셜 네트워킹 서비스로부터의 컨텐츠의 송신(534) 및 수신은 제2 전자 장치(502-2)가 인터넷 연결이 없다는 결정에 따라 수행된다. 일부 실시예에서, 소셜 네트워킹 서비스로부터 수신한(532) 컨텐츠는 나중의 전송을 위하여 제1 전자 장치(502-1)의 메모리에 캐시되어, 제1 전자 장치(502-1)는 송신시 인터넷 연결이 없더라도 제2 전자 장치(502-2)로 컨텐츠를 송신할 수 있다.
일부 실시예에서, 제1 전자 장치(502-1)는 제2 전자 장치(502-2)로부터 컨텐츠(예컨대, 게시물)를 수신하고, 로컬 연결과는 별개의 통신 채널을 통해 수신된 컨텐츠를 소셜 네트워킹 서비스로 송신한다(예컨대, 인터넷 연결을 확립할 수 없는 전자 장치의 사용자가 로컬 연결이 확립된 인터넷 연결된 전자 장치를 통해 소셜 네트워킹 서비스에 컨텐츠를 게시할 수 있다).
일부 실시예에서, 도 5a-5b의 방법(500)(또는 동작의 서브셋)은 인터넷 연결의 임계 혼잡이 충족됐다는(예컨대, 네트워크 밴드폭이 기정의된 값 미만 또는 이하) 결정 또는 제2 전자 장치(502-2)가 인터넷 연결을 확립할 수 없다는(예컨대, 열악한 셀룰러 데이터 커버리지 또는 인터넷 구독이 없음) 결정에 응답하여 수행된다.
도 5a-5b의 방법(500)이 제1 전자 장치(502-1)로부터 데이터(컨텐츠, 설치 파일 등)를 수신하는 제2 전자 장치(502-2)와 관련하여 서술되지만, 일부 실시예에서, 제2 전자 장치(502-2)는 복수의 별개의 전자 장치로부터 데이터를 수신하고, 복수의 별개의 전자 장치가 제2 전자 장치(502-2)로 데이터를 송신한다. 복수의 별개의 전자 장치로부터 수신되고 이에 의해 송신된 데이터는 상이한 컨텐츠 아이템에 대한 데이터를 포함할 수 있거나(예컨대, 한 전자 장치는 애플리케이션을 위한 설치 파일을 송신하는 한편, 상이한 전자 장치는 소셜 네트워크 시스템(108)으로부터 검색된 소셜 미디어 컨텐츠(예컨대, 게시물)를 송신), 동일한 컨텐츠 아이템의 일부를 포함할 수 있다(예컨대, 상이한 전자 장치가 동일한 애플리케이션을 위한 설치 파일의 상이한 부분을 전송).
상술한 시스템이 사용자에 대한 정보를 수집하는 상황에서, 사용자는 개인 정보(예컨대, 사용자의 선호에 대한 정보나 사용자의 소셜 컨텐츠 제공자에 대한 기여)를 수집할 수 있는 프로그램 또는 특징에 참여하거나 하지 않을 기회가 제공될 수 있다. 나아가, 일부 실시예에서, 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 익명화될 수 있어, 개인적으로 식별 가능한 정보는 제거된다. 예를 들어, 사용자의 신원은 익명화되어 개인적으로 식별 가능한 정보는 사용자에 대해 결정되거나 사용자와 연관될 수 없고, 따라서 사용자 선호나 사용자 상호작용은 특정 사용자와 연관되지 않고 일반화된다(예를 들어, 사용자 인구통계에 기반하여 일반화).
다양한 도면 중 일부는 특정 순서로 다수의 논리 단계를 도시하지만, 순서에 의존하지 않는 단계들이 다시 순서화될 수 있고, 다른 단계들이 조합될 수 있거나 세분화될 수 있다. 일부 재순서화 또는 다른 그룹화가 구체적으로 언급될 수 있는 한편, 다른 것들이 당업자에게 자명해질 수 있고, 따라서 본 명세서에 제시된 순서화 및 그룹화는 대안들의 완전한 목록이 아니다. 또한, 단계들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있음이 인식되어야 한다.
설명의 목적으로, 전술된 설명은 구체적인 실시예를 참조하여 기술되었다. 하지만, 위의 예시적인 논의는 개시된 정확한 형태로 본 청구범위의 범위를 제한하거나 완전한 것으로 의도된 것이 아니다. 전술한 교시내용에 비추어 다수의 수정 및 변형이 가능하다. 실시예들은 청구범위의 기초가 되는 원리 및 그들의 실제 응용을 가장 최선으로 설명하기 위해 선택되었고, 따라서 당업자가 고려되는 특정 사용에 적절하게 다양한 수정사항으로 실시예를 최선으로 사용하게 할 수 있다.

Claims (34)

  1. 하나 이상의 프로세서 및, 하나 이상의 프로세서에 의한 실행을 위한 명령어를 저장하는 메모리를 가지는 제1 전자 장치에서:
    메모리에 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 저장하는 단계;
    제2 전자 장치와 로컬 연결을 확립하는 단계;
    로컬 연결을 사용하여, 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계; 및
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정에 응답하여, 로컬 연결을 통해 제2 전자 장치로, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계를 포함하고,
    로컬 연결은 인터넷 연결과 독립적인 방법.
  2. 청구항 1에 있어서,
    로컬 연결을 확립하는 단계는 무선 통신 프로토콜을 사용하여 제1 전자 장치를 제2 전자 장치와 페어링시키는 단계를 포함하는 방법.
  3. 청구항 1에 있어서,
    로컬 연결을 확립하는 단계는 PAN(personal-area network)를 통하여 제2 전자 장치와 연결하는 단계를 포함하는 방법.
  4. 청구항 1에 있어서,
    로컬 연결을 확립하는 단계는 P2P(peer-to-peer) 네트워크를 통하여 제2 전자 장치와 연결하는 단계를 포함하는 방법.
  5. 청구항 1에 있어서,
    로컬 연결을 확립하는 단계는 인터넷 연결에 대한 임계 혼잡이 충족됐다는 결정에 응답하여 수행되는 방법.
  6. 청구항 1에 있어서,
    로컬 연결을 확립하는 단계는 제2 장치가 인터넷 연결을 확립하지 못한다는 결정에 응답하여 수행되는 방법.
  7. 청구항 1에 있어서,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계는 애플리케이션의 제1 버전보다 앞서는 애플리케이션의 제2 버전이 제2 전자 장치 상에 설치되어 있는지 여부를 결정하는 단계를 포함하고,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정은 애플리케이션의 제2 버전이 제2 전자 장치 상에 설치되어 있다는 결정이고, 및
    애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일은 제2 버전에서 제1 버전으로 제2 전자 장치 상의 애플리케이션을 업데이트하기 위한 업데이트를 포함하는 방법.
  8. 청구항 1에 있어서,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계는 애플리케이션의 임의의 버전이 제2 전자 장치 상에 설치되어 있는지 여부를 결정하는 단계를 포함하고,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정은 애플리케이션의 버전이 제2 전자 장치 상에 설치되어 있지 않다는 결정이고, 및
    애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일은 애플리케이션의 제1 버전을 전체로 설치하기 위한 하나 이상의 파일을 포함하는 방법.
  9. 청구항 1에 있어서,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계는:
    로컬 연결을 통하여, 제2 전자 장치 상의 설치를 위한 소프트웨어 업데이터 애플리케이션을 제2 전자 장치로 제공하는 단계; 및
    제2 전자 장치 상의 소프트웨어 업데이터 애플리케이션으로부터, 로컬 연결을 통하여, 애플리케이션의 제1 버전이 제2 전자 장치 상에 설치되어 있는지 여부의 표시를 수신하는 단계를 포함하는 방법.
  10. 청구항 1에 있어서,
    하나 이상의 설치 파일을 송신하기 전에, 애플리케이션의 제1 버전의 설치를 가능하게 하기 위하여 제2 전자 장치 상의 보안 설정을 업데이트하기 위한 명령을 가지는 메시지를 제1 전자 장치에 디스플레이하는 단계를 더 포함하는 방법.
  11. 청구항 1에 있어서,
    애플리케이션은 소셜 네트워킹 서비스에 접속하기 위한 애플리케이션이고, 제1 전자 장치와 연관된 제1 사용자는 소셜 네트워킹 서비스의 사용자이고, 방법은, 제1 전자 장치에서:
    애플리케이션의 제1 버전이 제2 전자 장치 상에 설치된 후:
    제2 전자 장치로부터 로컬 연결을 통하여, 제2 전자 장치와 연관된 제2 사용자를 위하여 소셜 네트워킹 서비스의 계정을 생성하기 위한 요청을 수신하는 단계; 및
    로컬 연결과 별개의 통신 채널을 통하여 원격 서버로 요청을 송신하는 단계를 더 포함하는 방법.
  12. 청구항 11에 있어서,
    원격 서버로 계정을 생성하기 위한 요청을 송신한 후 제1 전자 장치 상에 제1 사용자가 소셜 네트워킹 서비스 상에서 제2 사용자와 연관시키도록 유도하는 메시지를 자동으로 디스플레이하는 단계를 더 포함하는 방법.
  13. 청구항 1에 있어서,
    애플리케이션은 소셜 네트워킹 서비스에 접속하기 위한 애플리케이션이고, 제1 전자 장치와 연관된 제1 사용자 및 제2 전자 장치와 연관된 제2 사용자는 소셜 네트워킹 서비스의 사용자이고, 방법은, 제1 전자 장치에서:
    로컬 연결과 별개의 통신 채널을 통하여 소셜 네트워킹 서비스로부터, 제2 사용자를 위한 컨텐츠를 수신하는 단계; 및
    로컬 연결을 통하여 제2 전자 장치로, 제2 전자 장치 상에 디스플레이하기 위하여 소셜 네트워킹 서비스로부터의 컨텐츠를 송신하는 단계를 더 포함하는 방법.
  14. 청구항 13에 있어서,
    소셜 네트워킹 서비스로부터의 컨텐츠를 송신하는 단계는 제2 전자 장치가 인터넷 연결이 없다는 결정에 따라 수행되는 방법.
  15. 청구항 1에 있어서,
    애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계는:
    로컬 연결을 통하여 제2 전자 장치로 제1 복수의 패킷을 송신하는 단계;
    제1 복수의 패킷을 송신한 후, 제2 전자 장치와의 로컬 연결의 손실을 감지하는 단계;
    제2 전자 장치와의 로컬 연결을 재확립하는 단계; 및
    로컬 연결을 재확립한 후, 로컬 연결을 통하여 제2 전자 장치로 제2 복수의 패킷을 송신하는 단계를 포함하는 방법.
  16. 청구항 1에 있어서,
    제1 전자 장치는 제2 전자 장치의 무선 통신 범위 내의 복수의 전자 장치 중 하나이고; 및
    복수의 전자 장치 중 다른 전자 장치 상의 애플리케이션의 각 버전이 애플리케이션의 제1 버전보다 앞선다는 결정에 따라 제1 전자 장치는 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 방법.
  17. 청구항 1에 있어서,
    애플리케이션은 제1 애플리케이션이고; 및
    제1 애플리케이션의 우선 순위가 제2 전자 장치 상의 제2 애플리케이션의 우선 순위를 대체한다는 결정에 따라 제1 전자 장치는 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 방법.
  18. 청구항 1에 있어서,
    애플리케이션의 제1 버전이 제2 전자 장치와 호환되는지 여부를 결정하는 단계를 더 포함하고;
    로컬 연결을 통해 제2 전자 장치로 하나 이상의 설치 파일을 송신하는 단계는 애플리케이션의 제1 버전이 제2 전자 장치와 호환된다는 결정에 더 응답하여 수행되는 방법.
  19. 하나 이상의 프로세서; 및
    하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 포함하는 전자 장치로서, 하나 이상의 프로그램은:
    메모리에 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 저장하는 단계;
    제2 전자 장치와 로컬 연결을 확립하는 단계;
    로컬 연결을 사용하여, 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계; 및
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정에 응답하여, 로컬 연결을 통해 제2 전자 장치로, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계를 위한 명령어를 포함하고,
    로컬 연결은 인터넷 연결과 독립적인 전자 장치.
  20. 제1 전자 장치의 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 비일시적 컴퓨터 판독가능한 저장 매체로서, 하나 이상의 프로그램은:
    메모리에 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 저장하는 단계;
    제2 전자 장치와 로컬 연결을 확립하는 단계;
    로컬 연결을 사용하여, 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계; 및
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정에 응답하여, 로컬 연결을 통해 제2 전자 장치로, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계를 위한 명령어를 포함하고,
    로컬 연결은 인터넷 연결과 독립적인 비일시적 컴퓨터 판독가능한 저장 매체.
  21. 하나 이상의 프로세서 및, 하나 이상의 프로세서에 의한 실행을 위한 명령어를 저장하는 메모리를 가지는 제1 전자 장치에서:
    메모리에 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 저장하는 단계;
    제2 전자 장치와 로컬 연결을 확립하는 단계;
    로컬 연결을 사용하여, 제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계; 및
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정에 응답하여, 로컬 연결을 통해 제2 전자 장치로, 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계를 포함하고,
    로컬 연결은 인터넷 연결과 독립적인 방법.
  22. 청구항 21에 있어서,
    로컬 연결을 확립하는 단계는:
    무선 통신 프로토콜을 사용하여 제1 전자 장치를 제2 전자 장치와 페어링시키는 단계; 및/또는
    PAN(personal-area network)를 통하여 제2 전자 장치와 연결하는 단계; 및/또는
    P2P(peer-to-peer) 네트워크를 통하여 제2 전자 장치와 연결하는 단계를 포함하는 방법.
  23. 청구항 21 또는 청구항 22에 있어서,
    로컬 연결을 확립하는 단계는:
    인터넷 연결에 대한 임계 혼잡이 충족됐다는 결정; 및/또는
    제2 장치가 인터넷 연결을 확립하지 못한다는 결정에 응답하여 수행되는 방법.
  24. 청구항 21 내지 청구항 23 중 어느 하나의 항에 있어서,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계는 애플리케이션의 제1 버전보다 앞서는 애플리케이션의 제2 버전이 제2 전자 장치 상에 설치되어 있는지 여부를 결정하는 단계를 포함하고,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정은 애플리케이션의 제2 버전이 제2 전자 장치 상에 설치되어 있다는 결정이고, 및
    애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일은 제2 버전에서 제1 버전으로 제2 전자 장치 상의 애플리케이션을 업데이트하기 위한 업데이트를 포함하는 방법.
  25. 청구항 21 내지 청구항 24 중 어느 하나의 항에 있어서,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계는 애플리케이션의 임의의 버전이 제2 전자 장치 상에 설치되어 있는지 여부를 결정하는 단계를 포함하고,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있지 않다는 결정은 애플리케이션의 버전이 제2 전자 장치 상에 설치되어 있지 않다는 결정이고, 및
    애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일은 애플리케이션의 제1 버전을 전체로 설치하기 위한 하나 이상의 파일을 포함하는 방법.
  26. 청구항 21 내지 청구항 25 중 어느 하나의 항에 있어서,
    제2 전자 장치 상에 애플리케이션의 제1 버전이 설치되어 있는지 여부를 결정하는 단계는:
    로컬 연결을 통하여, 제2 전자 장치 상의 설치를 위한 소프트웨어 업데이터 애플리케이션을 제2 전자 장치로 제공하는 단계; 및
    제2 전자 장치 상의 소프트웨어 업데이터 애플리케이션으로부터, 로컬 연결을 통하여, 애플리케이션의 제1 버전이 제2 전자 장치 상에 설치되어 있는지 여부의 표시를 수신하는 단계를 포함하는 방법.
  27. 청구항 21 내지 청구항 26 중 어느 하나의 항에 있어서,
    하나 이상의 설치 파일을 송신하기 전에, 애플리케이션의 제1 버전의 설치를 가능하게 하기 위하여 제2 전자 장치 상의 보안 설정을 업데이트하기 위한 명령을 가지는 메시지를 제1 전자 장치에 디스플레이하는 단계를 더 포함하는 방법.
  28. 청구항 21 내지 청구항 27 중 어느 하나의 항에 있어서,
    애플리케이션은 소셜 네트워킹 서비스에 접속하기 위한 애플리케이션이고, 제1 전자 장치와 연관된 제1 사용자는 소셜 네트워킹 서비스의 사용자이고, 방법은, 제1 전자 장치에서:
    애플리케이션의 제1 버전이 제2 전자 장치 상에 설치된 후:
    제2 전자 장치로부터 로컬 연결을 통하여, 제2 전자 장치와 연관된 제2 사용자를 위하여 소셜 네트워킹 서비스의 계정을 생성하기 위한 요청을 수신하는 단계; 및
    로컬 연결과 별개의 통신 채널을 통하여 원격 서버로 요청을 송신하는 단계를 더 포함하고;
    바람직하게는 원격 서버로 계정을 생성하기 위한 요청을 송신한 후 제1 전자 장치 상에 제1 사용자가 소셜 네트워킹 서비스 상에서 제2 사용자와 연관시키도록 유도하는 메시지를 자동으로 디스플레이하는 단계를 더 포함하는 방법.
  29. 청구항 21 내지 청구항 28 중 어느 하나의 항에 있어서,
    애플리케이션은 소셜 네트워킹 서비스에 접속하기 위한 애플리케이션이고, 제1 전자 장치와 연관된 제1 사용자 및 제2 전자 장치와 연관된 제2 사용자는 소셜 네트워킹 서비스의 사용자이고, 방법은, 제1 전자 장치에서:
    로컬 연결과 별개의 통신 채널을 통하여 소셜 네트워킹 서비스로부터, 제2 사용자를 위한 컨텐츠를 수신하는 단계; 및
    로컬 연결을 통하여 제2 전자 장치로, 제2 전자 장치 상에 디스플레이하기 위하여 소셜 네트워킹 서비스로부터의 컨텐츠를 송신하는 단계를 더 포함하고;
    바람직하게는 소셜 네트워킹 서비스로부터의 컨텐츠를 송신하는 단계는 제2 전자 장치가 인터넷 연결이 없다는 결정에 따라 수행되는 방법.
  30. 청구항 21 내지 청구항 29 중 어느 하나의 항에 있어서,
    애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 단계는:
    로컬 연결을 통하여 제2 전자 장치로 제1 복수의 패킷을 송신하는 단계;
    제1 복수의 패킷을 송신한 후, 제2 전자 장치와의 로컬 연결의 손실을 감지하는 단계;
    제2 전자 장치와의 로컬 연결을 재확립하는 단계; 및
    로컬 연결을 재확립한 후, 로컬 연결을 통하여 제2 전자 장치로 제2 복수의 패킷을 송신하는 단계를 포함하는 방법.
  31. 청구항 21 내지 청구항 30 중 어느 하나의 항에 있어서,
    제1 전자 장치는 제2 전자 장치의 무선 통신 범위 내의 복수의 전자 장치 중 하나이고; 및
    복수의 전자 장치 중 다른 전자 장치 상의 애플리케이션의 각 버전이 애플리케이션의 제1 버전보다 앞선다는 결정에 따라 제1 전자 장치는 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 방법.
  32. 청구항 21 내지 청구항 31 중 어느 하나의 항에 있어서,
    애플리케이션은 제1 애플리케이션이고; 및
    제1 애플리케이션의 우선 순위가 제2 전자 장치 상의 제2 애플리케이션의 우선 순위를 대체한다는 결정에 따라 제1 전자 장치는 애플리케이션의 제1 버전을 위한 하나 이상의 설치 파일을 송신하는 방법.
  33. 청구항 21 내지 청구항 32 중 어느 하나의 항에 있어서,
    애플리케이션의 제1 버전이 제2 전자 장치와 호환되는지 여부를 결정하는 단계를 더 포함하고;
    로컬 연결을 통해 제2 전자 장치로 하나 이상의 설치 파일을 송신하는 단계는 애플리케이션의 제1 버전이 제2 전자 장치와 호환된다는 결정에 더 응답하여 수행되는 방법.
  34. 하나 이상의 프로세서; 및 프로세서에 연결되고 프로세서에 의해 실행 가능한 명령어를 포함하는 적어도 하나의 메모리를 포함하는 시스템으로서, 프로세서는 청구항 21 내지 청구항 33 중 어느 하나의 항에 따른 방법을 수행하기 위한 명령어를 실행할 때 동작 가능한 시스템.
KR1020187002452A 2015-06-29 2015-06-30 근거리 통신을 통한 애플리케이션 버전 설치 방법 및 시스템 KR20180022867A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/754,247 2015-06-29
US14/754,247 US20160378455A1 (en) 2015-06-29 2015-06-29 Methods and Systems for Installing an Application Version via Close-Range Communications
PCT/US2015/038647 WO2017003467A1 (en) 2015-06-29 2015-06-30 Methods and systems for installing an application version via close range communications

Publications (1)

Publication Number Publication Date
KR20180022867A true KR20180022867A (ko) 2018-03-06

Family

ID=57601165

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187002452A KR20180022867A (ko) 2015-06-29 2015-06-30 근거리 통신을 통한 애플리케이션 버전 설치 방법 및 시스템

Country Status (10)

Country Link
US (1) US20160378455A1 (ko)
JP (1) JP6676080B2 (ko)
KR (1) KR20180022867A (ko)
CN (1) CN108028768A (ko)
AU (1) AU2015400351A1 (ko)
BR (1) BR112017028567A2 (ko)
CA (1) CA2991026A1 (ko)
IL (1) IL256641A (ko)
MX (1) MX2018000246A (ko)
WO (1) WO2017003467A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918779B2 (en) * 2009-08-27 2014-12-23 Microsoft Corporation Logical migration of applications and data
US10572213B2 (en) * 2016-04-04 2020-02-25 Microsoft Technology Licensing, Llc Universal application pinning
KR102249599B1 (ko) * 2017-03-21 2021-05-07 현대자동차 주식회사 차량 모듈의 소프트웨어 업데이트 정보 제공 서버 및 방법
CN107454154B (zh) * 2017-07-24 2021-03-30 北京京东尚科信息技术有限公司 一种数据处理方法及***
US10310842B1 (en) * 2017-12-01 2019-06-04 International Business Machines Corporation Recommendation system for software updates
EP3514679B1 (en) * 2018-01-22 2023-06-07 Top Victory Investments Limited Method and system for updating a software program installed in an electronic device
CN108563468B (zh) * 2018-03-30 2021-09-21 深圳市冠旭电子股份有限公司 一种蓝牙音箱数据处理的方法、装置及蓝牙音箱
US10552136B2 (en) 2018-06-29 2020-02-04 Alibaba Group Holding Limited One click application asset distribution
CN111443936A (zh) * 2020-04-15 2020-07-24 赞同科技股份有限公司 一种用于对客户端软件进行更新的方法及***
US11749284B2 (en) * 2020-11-13 2023-09-05 Google Llc Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests
CN117492958B (zh) * 2023-11-14 2024-07-19 北京智芯微电子科技有限公司 线程信息调整方法、装置和电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1134704A (en) * 1913-12-12 1915-04-06 Thomas Cornelius Sheehan Display-stand.
JPH09282170A (ja) * 1996-04-17 1997-10-31 Ricoh Co Ltd ファクシミリ装置
JP3671759B2 (ja) * 1999-08-26 2005-07-13 株式会社日立製作所 ソフトウェア配布方法およびシステム
JP4953531B2 (ja) * 2001-08-30 2012-06-13 シャープ株式会社 端末装置
JP2003308222A (ja) * 2002-04-16 2003-10-31 Murata Mach Ltd 携帯端末による電子機器のプログラム書換方法
JP4576130B2 (ja) * 2004-02-12 2010-11-04 パイオニア株式会社 通信系アプリケーションプログラムのバージョン更新方法及びそのプログラム
JP2008027269A (ja) * 2006-07-24 2008-02-07 Matsushita Electric Ind Co Ltd 通信機器およびプログラム更新方法
JP2008136134A (ja) * 2006-11-29 2008-06-12 Toshiba Corp 無線通信装置及び無線通信装置の消費電力制御方法。
US8509754B2 (en) * 2006-12-29 2013-08-13 United States Cellular Corporation Distributing mobile-device applications
US20090234912A1 (en) * 2008-03-17 2009-09-17 Sony Computer Entertainment America Inc. File transfer via local server
US7506025B1 (en) * 2008-03-27 2009-03-17 International Business Machines Corporation Using a proxy to redirect downloads
US20100162374A1 (en) * 2008-12-19 2010-06-24 Nair Jiji U Cost effective updating of mobile computing devices and communicating with mobile computing devices
US20110072421A1 (en) * 2009-09-18 2011-03-24 Research In Motion Limited Method, apparatus and system for updating a software bundle installed on a mobile electronic device
TW201116002A (en) * 2009-10-30 2011-05-01 Askey Computer Corp System and method for data transmission via special line
JP2011118884A (ja) * 2009-11-04 2011-06-16 Fujitsu Ltd 通信端末装置、ソフトウェア取得方法及びソフトウェア取得プログラム
JP5051668B2 (ja) * 2009-11-18 2012-10-17 Necアクセステクニカ株式会社 移動通信装置、プログラム更新方法およびプログラム更新サービスプログラム
JP2012098906A (ja) * 2010-11-02 2012-05-24 Buffalo Inc 無線lan装置、無線lan装置の制御方法、および、コンピュータプログラム
US8804527B2 (en) * 2011-04-21 2014-08-12 Empire Technology Development Llc Locative social networking using a mobile device
EP2595423B1 (en) * 2011-11-21 2018-01-03 Swisscom AG Application security evaluation system and method
US9420065B2 (en) * 2013-01-18 2016-08-16 Google Inc. Peer-to-peer software updates
US20150072662A1 (en) * 2013-09-09 2015-03-12 Nvidia Corporation Resumption of data connectivity between mobile devices via switching application
US9762562B2 (en) * 2013-09-13 2017-09-12 Facebook, Inc. Techniques for multi-standard peer-to-peer connection
JP6722198B2 (ja) * 2015-05-14 2020-07-15 エアビクティ インコーポレイテッド モバイル支援型自動車ソフトウェア・アップデート及び車両データ分析の集中管理システム

Also Published As

Publication number Publication date
WO2017003467A1 (en) 2017-01-05
JP6676080B2 (ja) 2020-04-08
MX2018000246A (es) 2018-03-08
CN108028768A (zh) 2018-05-11
US20160378455A1 (en) 2016-12-29
IL256641A (en) 2018-02-28
BR112017028567A2 (pt) 2018-09-04
CA2991026A1 (en) 2017-01-05
JP2018528507A (ja) 2018-09-27
AU2015400351A1 (en) 2018-02-01

Similar Documents

Publication Publication Date Title
JP6676080B2 (ja) 近距離通信を介してアプリケーションバージョンをインストールする方法およびシステム
US9977911B2 (en) Methods and systems for managing permissions to access mobile device resources
US10430039B2 (en) Methods and systems for providing user feedback
US10798139B2 (en) Methods and systems for accessing relevant content
US20160188671A1 (en) Methods and Systems for Recommending Applications
US10200268B2 (en) Methods and systems for congestion-based content delivery
US10635716B2 (en) Methods and systems for secured end-to-end data communication
US20180013848A1 (en) Methods and Systems for Rewriting Scripts to Direct Requests
US10972528B2 (en) Methods and systems for accessing third-party services within applications
US10158548B2 (en) Methods and systems for signing resource identifiers
US10630800B2 (en) Methods and systems for handling requests regarding zero-rating
US11044222B2 (en) Automated connection of electronic messaging and social networking services method and apparatus
US10924469B2 (en) Single sign-on (SSO) for internet of things (IoT) applications
EP3040899B1 (en) Methods and systems for managing permissions to access mobile device resources
US10511454B2 (en) Methods and systems for implementing differential pricing configurations
EP3121713A2 (en) Methods and systems for installing an application version via close-range communications
JP6659700B2 (ja) コール・トゥ・アクションを作成し、選択し、提示し、実行するためのシステムおよび方法
EP3282416A1 (en) Methods and systems for accessing third-party services within applications
US10225355B2 (en) Methods and systems for abuse detection of zero-rated data

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application