KR101825536B1 - 효율적인 애플리케이션 동기화를 트리거링하기 위한 방법들 및 시스템들 - Google Patents

효율적인 애플리케이션 동기화를 트리거링하기 위한 방법들 및 시스템들 Download PDF

Info

Publication number
KR101825536B1
KR101825536B1 KR1020177001603A KR20177001603A KR101825536B1 KR 101825536 B1 KR101825536 B1 KR 101825536B1 KR 1020177001603 A KR1020177001603 A KR 1020177001603A KR 20177001603 A KR20177001603 A KR 20177001603A KR 101825536 B1 KR101825536 B1 KR 101825536B1
Authority
KR
South Korea
Prior art keywords
network
opportunity
application data
mobile device
synchronizing
Prior art date
Application number
KR1020177001603A
Other languages
English (en)
Other versions
KR20170037606A (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 KR20170037606A publication Critical patent/KR20170037606A/ko
Application granted granted Critical
Publication of KR101825536B1 publication Critical patent/KR101825536B1/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • H04L67/32
    • 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
    • H04W4/001
    • H04W4/003
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/183Processing at user equipment or user record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/30Network data restoration; Network data reliability; Network data fault tolerance

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephone Function (AREA)

Abstract

모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 예시적인 방법은, 하나 이상의 네트워크들의 각각의 네트워크에 대해, 각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터를 수집하는 단계를 포함한다. 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함한다. 상기 방법은 또한 모바일 디바이스에서, 현재 네트워크에 대한 현재 연결을 검출하는 단계를 포함한다. 상기 방법은 애플리케이션 데이터를 동기화하기 위해 하나 이상의 기회 스코어들(opportunity scores)을 비교하는 단계를 더 포함한다. 하나 이상의 기회 스코어들은 현재 네트워크에 대한 기회 스코어를 포함한다. 각각의 기회 스코어는 특정 네트워크와 연관된다. 상기 방법은 또한, 비교하는 단계에 기초하여, 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위해 양호한 기회 네트워크인지를 결정하는 단계를 포함한다.

Description

효율적인 애플리케이션 동기화를 트리거링하기 위한 방법들 및 시스템들{METHODS AND SYSTEMS FOR TRIGGERING EFFICIENT APPLICATION SYNCHRONIZATION}
발명자들: Priyanka Tembey, Saumitra Das, Dilma Da Silva, 및 Vrajesh Bhavsar
관련 출원들에 대한 교차 참조
[0001] 본 출원은 2014년 7월 25일에 출원된 미국 가특허 출원 일련 번호 제 62/029,278 호의 이점을 주장하는, 2014년 8월 21일에 출원된 미국 특허 출원 일련 번호 제 14/465,693 호의 이점을 주장하고, 상기 출원들 둘 모두는 전체 내용이 인용에 의해 본원에 통합된다.
[0002] 본 개시는 일반적으로 네트워크를 통한 데이터 송신에 관한 것이며, 더 상세하게는 컴퓨팅 디바이스들 사이에서 애플리케이션 데이터를 동기화하는 것에 관한 것이다.
[0003] 모바일 디바이스들은 어디에나 있고(ubiquitous), 스마트폰, 태블릿, PDA(portable digital assistant), 휴대용 게임 콘솔, 팜탑 컴퓨터 및 다른 휴대용 전자 디바이스들을 포함할 수 있다. 이들 디바이스들의 주요 기능 이외에, 많은 디바이스들은 주변 기능들을 포함한다. 예를 들면, 스마트폰은 전화 통화를 하는 주요 기능 및 게임의 플레이, 스틸 카메라, 비디오 카메라, GPS(global positioning system) 내비게이션, 웹 브라우징 및 이메일들의 전송 및 수신의 주변 기능들을 포함할 수 있다.
[0004] 이들 주변 기능들을 제공하기 위한 애플리케이션들이 모바일 디바이스 상에 설치될 수 있다. 예에서, 애플리케이션은 제 3 자에 의해 제공되고, 사용자는 애플리케이션을 모바일 디바이스 상에 다운로딩할 수 있다. 다른 예에서, 사용자는 모바일 디바이스 상에 이미 설치된 애플리케이션을 갖는 모바일 디바이스를 수용한다. 모바일 애플리케이션은 데이터를 원격 서버로 송신하고 및/또는 원격 서버로부터 데이터를 수신함으로써 원격 서버와 동기화할 수 있다. 예를 들면, 사용자는 모바일 애플리케이션을 사용하여 사진들 또는 비디오를 원격 서버로 업로딩할 수 있다. 그러한 예에서, 수백 또는 수천 메가바이트들의 데이터가 백엔드 서비스로 송신될 수 있다. 데이터 송신이 백그라운드에서 수행될 수 있을지라도, 데이터 송신은 데이터를 많이 쓰고(heavy) 시간 소비형일 수 있다. 부가적으로, 모바일 애플리케이션을 동기화하는데 걸리는 시간이 증가함에 따라, 그러한 기능을 지원하도록 요구된 프로세싱 전력이 또한 증가한다.
[0005] 본 개시는 네트워크를 통한 데이터 송신에 관한 것이다. 애플리케이션 데이터를 동기화하기 위한 방법들, 시스템들 및 기술들이 제공된다.
[0006] 일부 실시예들에 따라, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 예시적인 방법은, 하나 이상의 네트워크들의 각각의 네트워크에 대해, 각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터를 수집하는 단계를 포함한다. 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함한다. 상기 방법은 또한 모바일 디바이스에서, 현재 네트워크에 대한 현재 연결을 검출하는 단계를 포함한다. 상기 방법은 애플리케이션 데이터를 동기화하기 위해 하나 이상의 기회 스코어들(opportunity scores)을 비교하는 단계를 더 포함한다. 하나 이상의 기회 스코어들은 현재 네트워크에 대한 기회 스코어를 포함한다. 각각의 기회 스코어는 특정 네트워크와 연관된다. 상기 방법은 또한, 비교하는 단계에 기초하여, 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위해 양호한 기회 네트워크인지를 결정하는 단계를 포함한다.
[0007] 일부 실시예들에 따라, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템은, 모바일 디바이스와 현재 네트워크 사이의 현재 연결을 검출하고, 하나 이상의 네트워크들의 각각의 네트워크에 대해, 각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터를 수집하는 네트워크 메트릭 로거(network metrics logger)를 포함한다. 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함한다. 상기 시스템은 또한 애플리케이션 데이터를 동기화하기 위해 하나 이상의 기회 스코어들을 비교하고, 비교하는 것에 기초하여, 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위해 양호한 기회 네트워크인지를 결정하는 기회 학습 엔진(opportunity learning engine)을 포함한다. 하나 이상의 기회 스코어들은 현재 네트워크에 대한 기회 스코어를 포함한다. 각각의 기회 스코어는 특정 네트워크와 연관된다.
[0008] 일부 실시예들에 따라, 컴퓨터-판독 가능 매체는 동작들을 수행하기 위한 컴퓨터-실행 가능 명령들을 저장하고, 상기 동작들은, 하나 이상의 네트워크들의 각각의 네트워크에 대해, 각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터를 수집하는 동작 ― 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함함 ― , 모바일 디바이스에서, 현재 네트워크에 대한 현재 연결을 검출하는 동작, 애플리케이션 데이터를 동기화하기 위한 하나 이상의 기회 스코어들을 비교하는 동작 ― 하나 이상의 기회 스코어들은 현재 네트워크에 대한 기회 스코어를 포함하고, 각각의 기회 스코어는 특정 네트워크와 연관됨 ― , 및 비교하는 것에 기초하여, 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위해 양호한 기회 네트워크인지를 결정하는 동작을 포함한다.
[0009] 일부 실시예들에 따라, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 장치는, 하나 이상의 네트워크들의 각각의 네트워크에 대해, 각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터를 수집하기 위한 수단을 포함하고, 여기서 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함한다. 상기 장치는 또한, 모바일 디바이스에서, 현재 네트워크에 대한 현재 연결을 검출하기 위한 수단을 포함한다. 상기 장치는 애플리케이션 데이터를 동기화하기 위해 하나 이상의 기회 스코어들을 비교하기 위한 수단을 더 포함하고, 하나 이상의 기회 스코어들은 현재 네트워크에 대한 기회 스코어를 포함하고, 각각의 기회 스코어는 특정 네트워크와 연관된다. 상기 장치는 또한, 비교하는 것에 기초하여, 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위해 양호한 기회 네트워크인지를 결정하기 위한 수단을 포함한다.
[0010] 일부 실시예들에 따라, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법은 제 1 네트워크에 대한 모바일 디바이스의 현재 연결을 통해 애플리케이션 데이터를 동기화할지를 결정하는 단계를 포함한다. 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함한다. 상기 방법은 또한 제 1 네트워크에 대한 기회 스코어 및 제 2 네트워크에 대한 기회 스코어를 포함하는 복수의 기회 스코어들을 비교하는 단계를 포함한다. 모바일 디바이스는 제 2 네트워크에 이전에 연결되었다. 각각의 기회 스코어는 특정 네트워크와 연관되고, 특정 네트워크의 하나 이상의 특징 세트들에 기초한다. 상기 방법은, 복수의 기회 스코어들의 비교에 기초하여, 모바일 애플리케이션 데이터 동기화를 스케줄링할지를 결정하는 단계를 더 포함한다.
[0011] 예에서, 제 1 네트워크는 제 1 타입이고, 제 2 네트워크는 제 1 타입과 상이한 제 2 타입이다. 그러한 예에서, 제 1 타입의 제 1 네트워크와 연관된 제 1 기회 스코어 및 제 2 타입의 제 2 네트워크와 연관된 제 2 기회 스코어가 비교될 수 있다. 따라서, 상이한 네트워크 타입들과 연관된 기회 스코어들이 비교될 수 있다. 다른 예에서, 제 1 네트워크 및 제 2 네트워크는 공통 네트워크 타입이고, 특징 세트에 대해 상이한 특징 세트 값들을 갖는다. 그러한 예에서, 공통 네트워크 타입과 연관된 제 1 기회 스코어 및 제 2 기회 스코어가 비교된다. 따라서, 동일한 네트워크 타입과 연관된 기회 스코어들이 비교될 수 있다.
[0012] 일부 실시예들에 따라, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템은 제 1 네트워크에 대한 모바일 디바이스의 현재 연결을 통해 애플리케이션 데이터를 동기화할지를 결정하는 동기화 관리기를 포함한다. 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함한다. 동기화 관리기는 제 1 네트워크에 대한 기회 스코어 및 제 2 네트워크에 대한 기회 스코어를 포함하는 복수의 기회 스코어들을 비교한다. 모바일 디바이스는 제 2 네트워크에 이전에 연결되었다. 각각의 기회 스코어는 특정 네트워크와 연관되고, 특정 네트워크의 하나 이상의 특징 세트들에 기초한다. 동기화 관리기는, 복수의 기회 스코어들의 비교에 기초하여, 모바일 디바이스 애플리케이션 데이터 동기화를 스케줄링할지를 결정한다.
[0013] 명세서의 부분을 형성하는 첨부된 도면들은 본 발명의 실시예들을 예시하고, 설명과 함께, 또한 실시예들의 원리들을 설명하도록 기능한다. 도면들에서, 동일한 참조 번호들은 동일하거나 기능적으로 유사한 엘리먼트들을 표시할 수 있다. 엘리먼트가 처음 등장하는 도면은 일반적으로 대응하는 참조 번호에서 최좌측 숫자에 의해 표시된다.
[0014] 도 1은 일부 실시예들에 따른, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템을 예시한 블록도이다.
[0015] 도 2는 상이한 Wi-Fi-기반 연결에 대한 픽처 업로드 완료 시간들의 예시적인 막대 그래프이다.
[0016] 도 3은 일부 실시예들에 따른, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법을 예시한 흐름도이다.
[0017] 도 4는 일부 실시예들에 따른, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법을 예시한 흐름도이다.
[0018] 도 5는 본 개시의 하나 이상의 실시예들을 구현하기에 적합한 컴퓨터 시스템의 블록도이다.
I. 개요
II. 예시적인 시스템 아키텍처
A. 네트워크 데이터 수집
B. 연결 이력을 통한 학습
1. 기회 스코어 계산
2. 양호한 기회 네트워크들을 식별하기 위해 기회 스코어들을 비교
III. 모바일 애플리케이션을 동기화할지를 결정
A. 모바일 애플리케이션을 동기화하지 않음
B. 모바일 애플리케이션을 동기화
IV. 사용자 입력들
V. 예시적인 방법들
VI. 예시적인 컴퓨팅 시스템
I. 개요
[0019] 다음의 개시가 본 개시의 상이한 특징들을 구현하기 위한 많은 상이한 실시예들 또는 예들을 제공한다는 것이 이해된다. 일부 실시예들은 이들 특정 세부사항들 중 일부 또는 전부 없이 실시될 수 있다. 본 개시를 간단하게 하기 위해 컴포넌트들, 모듈들 및 어레인지먼트들의 특정 예들이 후술된다. 이들은, 물론, 단지 예들이고 제한하도록 의도되지 않는다.
[0020] 클라우드에 연결된 모바일 애플리케이션들은 점점 더 흔한 일이다. 모바일 디바이스는 모바일 디바이스 상에 설치된 모바일 애플리케이션들을 원격 서버들과 동기화(sync)하는 동기화 관리기를 포함할 수 있다. 현재 동기화 스케줄들은 주로 네트워크 중립적(network agnostic)이고, 모바일 디바이스가 Wi-Fi 또는 셀룰러 네트워크에 연결되는지만을 체크한다. Wi-Fi 네트워크 및 셀룰러 네트워크는 상이한 타입들의 네트워크들이다.
[0021] 동기화 관리기는, 예를 들면, 모바일 디바이스가 Wi-Fi® 네트워크에 연결될 때, 하나 이상의 모바일 애플리케이션들을 동기화할 수 있다. 상표들은 그들 각각의 소유자들의 재산들이다. 동기화 관리기는 또한 셀룰러 네트워크보다는 Wi-Fi를 통해 모바일 애플리케이션들을 동기화하기 위한 옵션을 사용자에게 제공할 수 있다. 모바일 애플리케이션을 동기화하기 위해 Wi-Fi를 사용함으로써, 사용자는 그의 데이터 계획을 절감할 수 있다. 동기화 관리기는 전형적으로 Wi-Fi(예를 들면, Wi-Fi 링크의 타입) 또는 셀룰러 네트워크 연결의 특정 특징들을 고려하지 않고, 이들 특징들은 애플리케이션 데이터를 동기화하기 위한 양호한 시간인지를 결정하는데 도움을 줄 수 있다.
[0022] 애플리케이션 데이터 송신은 Wi-Fi 및 셀룰러 연결들에 대해 시간에 걸쳐 모바일 디바이스의 연결 상태에 관하여 학습함으로써 개선될 수 있다. 예를 들면, 모바일 디바이스가 연결되는 네트워크들을 특징화하고, 네트워크를 통해 모바일 애플리케이션을 동기화할지 또는 애플리케이션이 다른 네트워크에 연결될 때까지 동기화를 지연시킬지를 결정하기 위해 네트워크(예를 들면, Wi-Fi 또는 셀룰러 네트워크)의 특정 특징들을 고려하는 것이 바람직할 수 있다. 예를 들면, 모바일 애플리케이션을 동기화할지를 결정할 때, Wi-Fi 링크 타입, Wi-Fi 백홀 특성들, 셀룰러 링크 타입, 및 데이터 계획 등을 고려하는 것이 이로울 수 있다.
[0023] 부가적으로, 일부 데이터 송신들(예를 들면, 애플리케이션 데이터 동기화들)이 실시간으로 이루어질 필요가 없을 수 있다. 그러한 데이터 송신들은 지연을 허용하고(예를 들면, 웹사이트로의 사진들의 업로딩), 나중 시점에서 수행될 수 있다. 양호한 네트워크 연결의 적절한 시간들에서 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 모바일 애플리케이션 동기화들을 스케줄링하는 것이 바람직할 수 있다. 이러한 방식으로, 성능이 개선될 수 있다. 부가적으로, 모바일 애플리케이션 동기화들을 수행하는데 소비되는 모바일 디바이스 전력이 최적화될 수 있다. 이로써, 모바일 애플리케이션들이 양호한 네트워크 조건들을 레버리지(leverage)하는 것을 돕는 것은 데이터 송신의 전력 및 성능에 대해 이로울 수 있다.
[0024] 본 개시는 시간에 걸쳐 모바일 디바이스의 네트워크 연결 상태에 관하여 학습함으로써 모바일 애플리케이션 데이터 송신을 개선하기 위한 기술들을 제공한다. 단지 현재 네트워크 연결에 기초하여 모바일 애플리케이션을 동기화할지를 결정하는 것보다는, 이러한 결정을 하기 위해 일정 시간 기간에 걸쳐 수집된 "장기간" 네트워크 데이터가 사용될 수 있다. 양호한 네트워크 연결의 적절한 시간들에서 동기화들을 스케줄링하는 것은 모바일 디바이스의 성능을 개선하는 것을 돕고, 전력을 최적화하고, 따라서 동기화를 수행하는데 있어서 지출(expenditure)을 감소시킨다.
II. 예시적인 시스템 아키텍처
[0025] 도 1은 일부 실시예들에 따른, 모바일 디바이스와 하나 이상의 원격 컴퓨팅 디바이스들 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템을 예시한 블록도(100)이다. 도 1은 클라이언트 애플리케이션을 실행하고 애플리케이션 데이터를 저장할 수 있는 모바일 디바이스(102)를 포함한다. 모바일 디바이스는 비-정지 컴퓨팅 디바이스를 지칭할 수 있다. 모바일 디바이스(102)는, 예를 들면, 스마트폰, 태블릿, 랩탑, 또는 개인 휴대 정보 단말(personal digital assistant)일 수 있다. 예에서, 모바일 디바이스(102)는 Android® 모바일 운영 시스템에 설치된 Android® 디바이스이다.
[0026] 모바일 디바이스(102)는 애플리케이션 데이터를 포함할 수 있는 하나 이상의 모바일 애플리케이션들을 포함할 수 있다. 모바일 디바이스(102)의 사용자는 서비스 제공자에 의해 제공된 하나 이상의 모바일 애플리케이션들을 그 또는 그녀의 모바일 디바이스에 다운로딩할 수 있다. 모바일 애플리케이션은 모바일 디바이스를 통해 직접적으로 다운로딩 및 액세스될 수 있는 소프트웨어 프로그램이다. 모바일 애플리케이션은 모바일 디바이스(102)의 디스플레이 상의 아이콘에 의해 표현될 수 있고, 사용자는 모바일 애플리케이션을 액세스하고 이와 상호작용하기 위해 아이콘을 터치(예를 들면, 아이콘을 더블 탭핑)함으로써 모바일 애플리케이션을 선택할 수 있다. 모바일 디바이스(102)는, 이러한 예에서, 모바일 애플리케이션(104) 및 모바일 애플리케이션(106)을 포함한다.
[0027] 모바일 애플리케이션들(104 및 106)은 모바일 디바이스(102) 상에서 실행되는 클라이언트 애플리케이션들일 수 있다. 모바일 디바이스(102)는 네트워크(108)를 통해 서버(114) 및 서버(116)에 커플링된다. 서버들(114 및 116)은 모바일 디바이스(102)로부터 원격에 있다. 모바일 애플리케이션이 그의 연관된 서버에 대한 일정한 연결을 요구하는 것이 불필요할 수 있다. 예를 들면, 사용자는 모바일 디바이스(102)가 서버(114)에 연결되지 않는 경우 모바일 애플리케이션(104)과 상호작용할 수 있고, 사용자는 모바일 디바이스(102)가 서버(116)에 연결되지 않은 경우 모바일 애플리케이션(106)과 상호작용할 수 있다. 애플리케이션은 서버로 전개되고, 이어서 모바일 디바이스로 다운로딩하기 위해 이용 가능할 수 있다. 예에서, 모바일 애플리케이션(104)은 모바일 디바이스(102)의 작은, 로컬 데이터베이스를 사용하고, 그의 콘텐츠는 서버(114)에 저장된 데이터의 서브세트이고, 모바일 애플리케이션(106)은 모바일 디바이스(102) 상의 작은, 로컬 데이터베이스를 사용하고, 그의 콘텐츠는 서버(116)에 저장된 데이터의 서브세트이다.
[0028] 모바일 애플리케이션은 네트워크를 통해 서버로 데이터를 송신하고 그리고/또는 서버로부터 데이터를 수신함으로써 그의 연관된 서버와 동기화할 수 있다. 모바일 디바이스(102)는 모바일 애플리케이션들의 동기화를 관리 및 중재하는 동기화 관리기(120)를 포함한다. 동기화 관리기(120)는 시스템 계층에 있고, 모바일 애플리케이션들로부터 동기화 요청들을 수집할 수 있다. 이어서 동기화 관리기(120)는 모바일 애플리케이션 동기화들을 스케줄링할 수 있다.
[0029] 다음은 모바일 애플리케이션(104)이 서버(114)와 상호작용할 때 모바일 디바이스에 대한 설명이다. 이러한 설명은 모바일 애플리케이션(106) 및 서버(116)에 물론 적용된다. 모바일 애플리케이션(104)은 임의의 모바일 애플리케이션일 수 있다. 예에서, 모바일 애플리케이션(104)은 Facebook® 모바일 애플리케이션이고, 사용자는 사진들을 Facebook®에 업로딩하기를 원할 수 있다. 다른 예에서, 모바일 애플리케이션(104)은 음악 스트리밍 애플리케이션이고, 사용자는 플레이리스트를 동기화하기를 원할 수 있다. 다른 예에서, 모바일 애플리케이션(104)은 캘린더 애플리케이션이고, 사용자는 캘린더를 동기화하기를 원할 수 있다. 다른 예에서, 모바일 애플리케이션(104)은 뉴스 애플리케이션이고, 사용자는 최근의 뉴스 피드 업데이트들을 리트리브(retrieve)하기를 원할 수 있다.
[0030] 동기화 관리기(120)는 모바일 디바이스(102) 및 모바일 애플리케이션 데이터와 연관된 서버 사이의 모바일 애플리케이션 데이터 동기화들을 스케줄링할 수 있다. 예를 들면, 모바일 애플리케이션(104)은 네트워크(108)를 통해 서버(114)로 데이터를 송신하고 서버(114)로부터 데이터를 수신할 수 있다. 예에서, 서버(114)에서 서버 데이터 변화에 응답하여, 동기화 관리기(120)는, 모바일 애플리케이션(104)의 애플리케이션 데이터가 서버(114)에서의 서버 데이터와 동기화되도록 모바일 애플리케이션(104)과 서버(114) 사이의 동기화를 스케줄링한다. 그러한 예에서, 모바일 애플리케이션(104)은 저장을 위해 네트워크(108)를 통해 모바일 애플리케이션 데이터를 서버(114)로 전송할 수 있다.
[0031] 다른 예에서, 모바일 애플리케이션(104)에 대한 애플리케이션 데이터에 대한 변화들에 응답하여, 동기화 관리기(120)는, 서버(114)에서의 서버 데이터가 모바일 애플리케이션(104)의 애플리케이션 데이터와 동기화하도록 모바일 애플리케이션(104)과 서버(114) 사이의 동기화를 스케줄링한다. 그러한 예에서, 서버(114)는 저장을 위해 네트워크(108)를 통해 애플리케이션 데이터를 모바일 애플리케이션(104)으로 전송할 수 있다. 다른 예에서, 모바일 디바이스(102)가 TCP(Transmission Control Protocol)/IP(Internet Protocol) 연결을 살려두기(keep alive) 위한 네트워크 메시지를 전송하는 것에 응답하여, 동기화 관리기(120)는 모바일 애플리케이션(104)과 서버(114) 사이의 동기화를 스케줄링한다. 그러한 예에서, 동기화는 TCP/IP 연결 상에서 피기-배킹될(piggy-backed) 수 있다. 다른 예에서, 동기화 관리기(120)는 모바일 애플리케이션(104)과 서버(114) 사이의 동기화를 주기적으로(예를 들면, 시간 기간이 경과된 것에 응답하여) 스케줄링한다. 다른 예에서, 동기화 관리기(120)는 모바일 애플리케이션을 수동적으로 동기화하기 위한 사용자 요청에 응답하여 모바일 애플리케이션(104)과 서버(114) 사이의 동기화를 스케줄링한다.
A. 네트워크 데이터 수집
[0032] 모바일 디바이스(102)는 모바일 디바이스(102)와 연관된 네트워크 데이터를 로깅(log)하는 네트워크 메트릭 로거(logger)(122)를 포함한다. 네트워크 메트릭 로거(122)는 모바일 디바이스(102)의 저장소에 네트워크 데이터베이스(128)를 생성할 수 있다. 네트워크 데이터베이스(128)는 모바일 디바이스(102)에 대해 로컬이고, 모바일 디바이스(102)의 네트워크 연결들의 이력 및 그들의 상태를 저장할 수 있다.
[0033] 네트워크 메트릭 로거(122)는 모바일 디바이스(102)의 현재 네트워크 연결에 관한 데이터를 수집하고, 네트워크 데이터를 네트워크 데이터베이스(128)에 저장할 수 있다. 예에서, 모바일 디바이스(102)가 연결하는 하나 이상의 네트워크들에 대해, 네트워크 메트릭 로거(122)는 네트워크에 대한 현재 연결을 검출하고, 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 대한 네트워크 데이터를 수집한다. 네트워크 메트릭 로거(122)는 네트워크 데이터를 수집하기 위해 API(an application programming interface)를 인보크(invoke)할 수 있다. 예에서, 네트워크 메트릭 로거(122)는 네트워크 데이터를 수집하기 위해 주기적으로(예를 들면, 1, 5, 10 또는 그 초과의 초마다) 인보크한다.
[0034] 수집된 네트워크 데이터는 하나 이상의 특징들을 포함할 수 있다. 특징은 네트워크를 특징화하는데 사용되는 네트워크 메트릭일 수 있다. 특징 세트는 네트워크를 분류하는데 사용될 수 있는 상이한 특징들의 콜렉션이다. 특징 세트는 네트워크를 특징화하는 하나 이상의 메트릭들을 포함할 수 있다. 특징 세트는, 네트워크가 "양호한 기회" 네트워크인지 또는 "불량한 기회" 네트워크인지를 표시하는 기회 스코어(opportunity score)를 계산하는데 사용될 수 있다. 양호한 기회 네트워크는, 일 예에서, 네트워크가 고속이기 때문에, 네트워크를 통해 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회를 제공할 수 있는 네트워크이다. 불량한 기회 네트워크는, 다른 예에서, 네트워크가 느리거나 다른 네트워크가 더 빠른 데이터 송신을 제공하는 것으로 알려지고 임계 시간 기간 내에서(예를 들면, 3 시간 내에서) 모바일 디바이스에 연결될 가능성이 더 높기 때문에, 네트워크를 통해 모바일 애플리케이션을 동기화하기 위한 불량한 기회를 제공할 수 있는 네트워크이다. 기회 스코어는 네트워크와 연관될 수 있고, 스코어는 기회 스코어가 할당된 네트워크를 통해 애플리케이션 데이터를 동기화할지를 표시한다. 기회 스코어는 특정 네트워크의 하나 이상의 특징 세트들에 기초할 수 있다.
[0035] 특징 세트는, 상이한 네트워크들이 서로에 비교될 수 있도록 네트워크 타입(예를 들면, Wi-Fi 네트워크 또는 셀룰러 네트워크) 및 하나의 메트릭(예를 들면, 기회 스코어)으로 정규화되는 그들의 동기화 기회들을 추출(abstract)할 수 있다. 이로써, 모바일 디바이스(102)가 상이한 네트워크 메트릭들을 갖는 상이한 네트워크들에 연결될 수 있을지라도, 모바일 애플리케이션 데이터를 동기화하기 위해 하나의 네트워크가 다른 것보다 더 양호할지를 결정하기 위해 기회 스코어가 사용될 수 있다.
[0036] 간결함 및 간단함을 위해, 2 개의 "레벨들"의 기회 스코어들(예를 들면, 양호한 기회 네트워크 및 불량한 기회 네트워크)이 설명된다. 이것은 제한하는 것으로 의도되지 않고, 다른 실시예들은 2 개보다 더 많은 레벨들의 기회 스코어들을 가질 수 있다. 예를 들면, 다른 실시예에서, 네트워크에는 3 개 레벨들의 기회 스코어들 중 하나가 할당될 수 있다. 그러한 예에서, 제 1 레벨 네트워크는 "양호한 기회" 네트워크일 수 있고, 제 2 레벨 네트워크는 "중간 기회" 네트워크일 수 있고, 제 3 레벨 네트워크는 "불량한 기회" 네트워크일 수 있다. 기회 스코어들이 아래에 추가로 논의된다.
[0037] 예에서, 네트워크(108)는 Wi-Fi 네트워크이고, 네트워크 메트릭 로거(122)는 Wi-Fi 네트워크에 대한 현재 네트워크 연결을 검출한다. Wi-Fi 네트워크의 예시적인 특징들은 Wi-Fi 네트워크의 신호 세기, Wi-Fi 네트워크의 SSID(service set identifier), MAC(media access control) 어드레스 및 모바일 디바이스가 Wi-Fi 네트워크에 연결되도록 허용하는 액세스 포인트의 링크 속도이다. 예에서, Wi-Fi 네트워크들에 대한 네트워크 데이터는 Wi-Fi 네트워크의 SSID 및 액세스 포인트의 MAC 어드레스에 기초하여 정렬될 수 있다. 다수의 액세스 포인트들이 단일 SSID 내에서 존재할 수 있다. 모바일 디바이스(102)가 Wi-Fi 네트워크에 연결된 동안에, 네트워크 메트릭 로거(122)는 네트워크의 SSID 및 신호 세기 및 모바일 디바이스(102)가 네트워크 데이터베이스(128)에 대한 Wi-Fi 네트워크에 연결하도록 허용하는 액세스 포인트 디바이스의 링크 속도 및 MAC 어드레스를 로깅할 수 있다. 예에서, 정해진 MAC 어드레스 및 SSID를 갖는 액세스 포인트를 분류하는 특징 세트는 정해진 액세스 포인트의 MAC 어드레스, 신호 세기, SSID, 및 Wi-Fi 네트워크의 주파수 대역, 및 모바일 디바이스(102)가 Wi-Fi 네트워크에 연결하도록 허용하는 액세스 포인트의 링크 속도 및 신호 레벨을 포함한다. 이것은 단지 예이고, 다른 특징 세트들은 Wi-Fi 네트워크를 분류할 수 있다.
[0038] 다른 예에서, 네트워크(108)는 셀룰러 네트워크이고, 네트워크 메트릭 로거(122)는 셀룰러 네트워크에 대한 현재 네트워크 연결을 검출한다. 셀룰러 네트워크의 예시적인 특징들은 셀룰러 네트워크의 신호 세기, 네트워크 타입(예를 들면, LTE(Long-Term Evolution), 3G(Third generation), 4G(Fourth generation), 및 EVDO(Evolution-Data Optimized)), 및 네트워크 네임(예를 들면, Verizon®, Sprint®, 및 AT&T®)이다. 예에서, 셀룰러 네트워크들에 대한 네트워크 데이터는 네트워크의 타입 및 신호 세기에 기초하여 정렬될 수 있다. 모바일 디바이스(102)가 셀룰러 네트워크에 연결되는 동안에, 네트워크 메트릭 로거(122)는 신호 세기, 네트워크 타입, 및 네트워크 데이터베이스(128)에 대한 셀룰러 네트워크의 네트워크 네임을 로깅할 수 있다. 예에서, 정해진 지리적 위치 및 셀룰러 네트워크를 분류하는 특징 세트는 연결 시에 모바일 디바이스의 지리적 위치, 셀룰러 신호 세기, 네트워크 네임 및 네트워크 타입을 포함한다. 이것은 단지 예이고, 다른 특징 세트들은 셀룰러 네트워크를 분류할 수 있다.
[0039] 네트워크 메트릭 로거(122)는 또한 (예를 들면, Wi-Fi 또는 셀룰러 네트워크에 대한) 모바일 디바이스의 현재 네트워크 연결에 대한 시간적인 데이터 및 공간적인 데이터를 로깅할 수 있다. 모바일 디바이스(102)는 상이한 지리적 영역들에서 상이한 신호 세기들을 가질 수 있다. 예에서, 네트워크 메트릭 로거(122)는 신호 세기를 정규화한다. 다른 예에서, 네트워크 메트릭 로거(122)는 시간 및 공간에 걸쳐 액세스 포인트들을 및 셀룰러 네트워크 연결들을 구별하기 위해 모바일 디바이스(102)의 지리적 위치 및 로그의 시간을 로깅한다. 예에서, 네트워크 메트릭 로거(122)는 액세스 포인트에 대한 모바일 디바이스(102)의 근접성을 고려한다. 예를 들면, 모바일 디바이스(102)가 액세스 포인트에 가깝다면, 네트워크 메트릭 로거(122)는 신호 세기 메트릭에 의해 캡처된 강한 신호 세기를 인식할 수 있다. 신호 세기 및 신호 범위는 상이한 액세스 포인트들에 걸쳐 변할 수 있고, 네트워크 메트릭 로거(122)는 시간에 걸쳐 신호 세기의 상태를 캡처할 수 있다. 그러한 예에서, 사용자는 액세스 포인트 주위에서 로밍(roam)할 수 있고, 네트워크 메트릭 로거(122)는 그 특정 액세스 포인트에 연결될 수 있는 범위 신호 세기 메트릭을 이해하기 위해 네트워크 데이터를 계속해서 수집할 수 있다.
[0040] 논의된 바와 같이, 기회들은 네트워크들 내에서 걸쳐 상당히 변동할 수 있다. 예를 들면, 액세스 포인트들은 상이한 주파수 대역들을 가질 수 있고, 상이한 기회들로 변환될 수 있다. 예에서, 2.4 GHz(gigahertz) 주파수 대역은 상대적으로 5.8 GHz 주파수 대역과 비교하여 어떠한 대역폭도 갖지 않는다. 도 2는 상이한 Wi-Fi-기반 연결들에 대한 픽처 업로드 완료 시간들의 예시적인 막대 그래프(200)이다. 막대 그래프(200)는 사진을 백엔드 서버에 업로딩하는데 걸리는 시간의 양을 도시한다. 막대 그래프(200)의 x-축은 픽처를 업로딩하는데 걸리는 시간의 양(초 단위)을 나타내고, 막대 그래프(200)의 y-축은 상이한 타입들의 Wi-Fi 네트워크들을 나타낸다.
[0041] 막대들은 상이한 기회들을 도시하고, 액세스 포인트가 상이한 주파수 대역들에 걸쳐 구성되는 상이한 Wi-Fi 표준들(예를 들면, AC, N-1 및 N-2)을 나타낼 수 있다. 막대 그래프(200)의 좌측 클러스터는, 모바일 디바이스(102)가 액세스 포인트에 가깝게 있을 때 모바일 디바이스와 연관된 기회들을 예시하고, 막대 그래프(200)의 우측 클러스터는, 모바일 디바이스(102)가 액세스 포인트로부터 멀리 있을 때 모바일 디바이스와 연관된 기회들을 예시한다. 데이터 송신이 감소되면, 데이터 송신을 수행하는데 소비되는 총 에너지는 대략 동일하게 감소된다. 예를 들면, 막대 그래프(200)에서, AC(80 MHz) Wi-Fi 인터페이스는, 모바일 디바이스(102)가 액세스 포인트로부터 멀리 있을 때와 비교하여 모바일 디바이스(102)가 액세스 포인트에 가깝게 있을 때 거의 50 퍼센트 더 빠르게 픽처 업로드를 완료한다. 그러한 예에서, 모바일 디바이스(102)는, 모바일 디바이스(102)가 액세스 포인트로부터 멀리 있을 때와 비교하여 모바일 디바이스(102)가 액세스 포인트에 가깝게 있을 때 모바일 애플리케이션을 동기화하는 에너지를 거의 50 퍼센트 덜 소비할 수 있다.
[0042] 부가적으로, 네트워크 메트릭 로거(122)는 현재 네트워크 상태의 대역폭을 추정하기 위해 (예를 들면, 패킷 쌍 또는 몇몇의 다른 루틴들을 사용하여) 작은 측정들을 프로세싱할 수 있거나, 네트워크 대역폭을 추정하기 위해 링크 상의 기존의 데이터 송신을 스누핑(snoop)할 수 있다. 네트워크 메트릭 로거(122)는 기회 학습 엔진(124)이 분석하기 위해 수집된 네트워크 데이터를 네트워크 데이터베이스(128)에 저장한다.
B. 연결 이력을 통한 학습
[0043] 일부 실시예들에서, 기회 학습 엔진(124)은 모바일 디바이스(102)에 연결되었거나 모바일 디바이스(102)가 현재 연결된 하나 이상의 네트워크들을 특징화하고, 로깅된 네트워크 데이터로부터 모바일 디바이스(102)의 연결 거동을 학습한다.
1. 기회 스코어 계산
[0044] 모바일 디바이스(102)가 연결된 하나 이상의 네트워크들에 대해, 기회 학습 엔진(124)은 네트워크에 따라 특징 세트를 식별하고, 네트워크에 대한 기회 스코어를 계산할 수 있다. 예에서, 기회 학습 엔진(124)은, 네트워크를 분류하는 식별된 특징 세트에 대한 수집된 네트워크 데이터에 기초하여, 네트워크에 대한 기회 스코어를 계산한다. 기회 학습 엔진(124)은, 네트워크 연결이 드롭된 후의 네트워크에 모바일 디바이스(102)가 연결된 동안에, 네트워크에 대한 기회 스코어를 계산할 수 있다. 기회 스코어들은 시간 기간(예를 들면, 한 주 또는 한 달)에 걸쳐 수집된 네트워크 데이터에 기초하여 계산될 수 있고, 시간 기간에 걸쳐 모바일 디바이스의 네트워크 연결을 반영하도록 계속해서 업데이트될 수 있다. 기회 학습 엔진(124)은 기회 스코어들을 네트워크 데이터베이스(128)에 저장하고, 네트워크 데이터베이스(128)는 모바일 디바이스(102)의 네트워크 연결들의 이력 및 그들의 상태를 저장한다.
[0045] 예에서, 정해진 Wi-Fi 네트워크를 분류하는 특징 세트는 액세스 포인트의 MAC 어드레스, 신호 세기, SSID 및 Wi-Fi 네트워크의 주파수 대역, 및 모바일 디바이스(102)가 Wi-Fi 네트워크에 연결하도록 허용하는 액세스 포인트의 링크 속도 및 신호 레벨이다. 그러한 예에서, 기회 학습 엔진(124)은 정해진 Wi-Fi 네트워크에 대한 기회 스코어를 계산하기 위해 이러한 특징 세트를 분석할 수 있다. 다른 예에서, 셀룰러 네트워크를 분류하는 특징 세트는 셀룰러 네트워크에 대한 연결 시에 모바일 디바이스의 지리적 위치, 셀룰러 신호 세기, 네트워크 네임, 및 네트워크 타입을 포함한다. 그러한 예에서, 기회 학습 엔진(124)은 정해진 셀룰러 네트워크에 대한 기회 스코어를 계산하기 위해 이러한 특징 세트를 분석할 수 있다.
[0046] 일부 실시예들에서, 기회 학습 엔진(124)은 기회 스코어를 계산하기 위해 회귀(regression) 분석을 사용한다. 예에서, 기회 스코어의 계산은 그 시간에서 수집된 네트워크 특징 세트들의 함수 및 또한 모바일 디바이스가 네트워크에 연결된 위치의 함수로서 네트워크 내의 하나 이상의 애플리케이션들에 의해 관측된 스루풋 및 레이턴시에 대한 모델을 도출하는 것을 포함할 수 있다. 다른 예에서, 기회 스코어는 클러스터링(clustering) 및 임계-기반 기술들을 통해 도출될 수 있고, 여기서 예를 들면, 정해진 신호 세기에서 특정 주파수 대역(예를 들면, 5 GHz 주파수 대역)에서 Wi-Fi-액세스 포인트들은 그들이 제공하는 상이한 스루풋들로 인해 더 낮은 주파수 대역(예를 들면, 2.4 GHz 주파수 대역) 액세스 포인트보다 더 양호한 기회 스코어를 가질 것이다.
2. 양호한 기회 네트워크들을 식별하기 위해 기회 스코어들을 비교
[0047] 모바일 디바이스(102)가 네트워크에 연결되는 동안에, 기회 학습 엔진(124)은 현재 연결된 네트워크가 양호한 기회 네트워크인지를 결정하기 위해 하나 이상의 기회 스코어들을 비교할 수 있다. 기회 학습 엔진(124)은 수집된 네트워크 데이터로부터 양호한 또는 불량한 기회들을 결정하기 위해 자신의 지능을 도출한다.
[0048] 네트워크 메트릭 로거(122)는 모바일 디바이스(102)가 현재 네트워크에 연결된 것을 검출할 수 있다. 예에서, 기회 학습 엔진(124)은 현재 연결된 네트워크의 SSID를 식별하고, SSID에 대해 네트워크 데이터베이스(128)를 탐색한다. 기회 학습 엔진(124)은 SSID에 의해 식별된 현재 연결된 네트워크에 대한 기회 스코어와, 모바일 디바이스(102)가 이전에 연결된 하나 이상의 다른 네트워크들에 대한 기회 스코어들을 비교한다. 그러한 예에서, 기회 학습 엔진(124)은, 현재 연결된 네트워크가 양호한 기회 네트워크인지를 결정하기 위해, 모바일 디바이스(102)가 현재 연결된 네트워크에 대한 기회 스코어와, 다른 네트워크들에 대한 기회 스코어를 비교할 수 있다.
[0049] 예에서, 비교된 하나 이상의 기회 스코어들은 현재 네트워크 연결에 대한 기회 스코어 및 모바일 디바이스(102)가 이전에 연결된 하나 이상의 다른 네트워크들에 대한 기회 스코어를 포함할 수 있다. 본질적으로, 기회 학습 엔진(124)은, 현재 네트워크 연결을 통해 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 또는 불량한 기회가 존재하는지를 결정하기 위한 메커니즘으로서 상이한 네트워크들에 대한 기회 스코어들을 사용함으로써 모바일 디바이스(102)가 연결된 상이한 네트워크들을 분류하는 특징 세트들의 상이한 값들을 비교한다. 모바일 디바이스(102)가 연결된 네트워크들에 대해 수집된 특징 세트의 값들로부터, 기회 학습 엔진(124)은 모바일 디바이스(102)가 모바일 애플리케이션 데이터를 동기화하는데 사용할 수 있거나 사용할 수 없는 양호한 그리고 불량한 기회 네트워크들에 대해 학습한다.
[0050] 기회 학습 엔진(124)은, 하나 이상의 기회 스코어들의 비교에 기초하여, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크인지를 결정할 수 있다. 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크이라고 결정한 것에 응답하여, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송할 수 있다. 기회 학습 엔진(124)은, 동기화 관리기(120)가 데이터 송신을 스케줄링 또는 수행(예를 들면, 애플리케이션 데이터를 동기화)하기 위한 양호한 네트워크 조건들을 레버리지할 수 있도록 통지를 동기화 관리기(120)로 전송할 수 있다.
[0051] 이와 대조적으로, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크가 아니라고 결정하는 것에 응답하여, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송하지 않도록 결정할 수 있다. 다른 예에서, 기회 학습 엔진(124)은, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크가 아니라는 통지를 동기화 관리기(120)로 전송할 수 있다. 이로써, 동기화 관리기(120)는 현재 네트워크 연결을 통해 모바일 애플리케이션 데이터를 동기화하지 않기로 결정할 수 있고, 현재 네트워크 연결을 통해 임의의 모바일 애플리케이션 동기화들을 지연시킬 수 있다.
[0052] 양호한 기회는, 예를 들면, 양호한 또는 이용 가능한 액세스 포인트/셀룰러 네트워크 상태의 즉각적인 분류에 기초할 수 있다. 예를 들면, 기회 학습 엔진(124)은 최대 수신된 신호 세기 표시(RSSI) 및 임계치를 만족시키는 액세스 포인트에 대한 링크 속도에 의존할 수 있다. 그러한 예에서, 기회 학습 엔진(124)이 모바일 디바이스(102)의 연결 이력에 의존하는 것이 불필요할 수 있고, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송할 수 있다.
[0053] 예에서, 기회 학습 엔진(124)은 현재 네트워크 연결에 대한 기회 스코어를 포함하는 하나 이상의 기회 스코어들과 임계 기회 스코어를 비교한다. 현재 네트워크 연결에 대한 기회 스코어가 임계 기회 스코어를 만족시키면, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송할 수 있다. 현재 네트워크 연결에 대한 기회 스코어가 임계 기회 스코어를 만족시키지 않는다면, 기회 학습 엔진(124)은 현재 네트워크 연결을 통한 데이터의 송신을 지연시키고, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송하지 않기를 원할 수 있다.
[0054] 양호한 기회는 네트워크 인터페이스가 실제 사용되는 때를 로깅하는 것 및 획득된 성능을 특징화하는 것 또는 시간(예를 들면, 하루)에 걸쳐 관측된 시간 기간에서 이전 기회들과 비교하여 상대적으로 더 양호한 기회를 식별하는 것에 기초할 수 있다. 예에서, 양호한 기회는 이전에 저장된 네트워크 상태들의 이력들로부터 "알려진" 양호한 기회 액세스 포인트 및 셀룰러 연결들의 지식에 기초할 수 있다. 예를 들면, 기회 학습 엔진(124)은 양호한 액세스 포인트의 이전의 지식을 레버리지할 수 있다. 예에서, 모바일 디바이스(102)의 사용자는 홈 Wi-Fi 네트워크와 컴파니 Wi-Fi 네트워크 사이에서 시프팅할 수 있다. 컴파니 Wi-Fi 네트워크는 홈 Wi-Fi 네트워크보다 더 빠를 수 있다. 데이터 송신은 컴파니 Wi-Fi 네트워크를 통해 더 빠를 수 있고, 따라서 또한 애플리케이션 데이터를 동기화하기 위해 홈 Wi-Fi 네트워크를 사용하는 것과 비교하여 모바일 디바이스(102)로부터 에너지를 덜 소비할 수 있다.
[0055] 그러한 예에서, 컴파니 Wi-Fi 네트워크에 대한 제 1 기회 스코어는, 이것이 양호한 기회 네트워크인 것을 표시할 수 있고, 홈 Wi-Fi 네트워크에 대한 제 2 기회 스코어는 이것이 불량한 기회 네트워크인 것을 표시할 수 있다. 다른 예에서, 컴파니 Wi-Fi 네트워크에 대한 제 1 기회 스코어 및 홈 Wi-Fi 네트워크에 대한 제 2 기회 스코어는 컴파니 및 홈 Wi-Fi 네트워크들 둘 모두가 양호한 기회 네트워크들이지만 컴파니 Wi-Fi 네트워크가 홈 Wi-Fi 네트워크와 비교하여 더 양호한 기회 네트워크인 것을 표시할 수 있다. 예에서, 컴파니 Wi-Fi 네트워크에 대한 기회 스코어는, 모바일 디바이스(102)를 컴파니 Wi-Fi 네트워크에 연결하는 액세스 포인트가 홈 Wi-Fi 네트워크에 대한 기회 스코어와 비교하여 더 양호한 기회 네트워크(예를 들면, 더 빠른 네트워크)인 것을 표시할 수 있다.
[0056] 네트워크 메트릭 로거(122)는 컴파니 Wi-Fi 네트워크에 대한 모바일 디바이스(102)의 연결에 기초한 제 1 네트워크 데이터를 저장할 수 있고, 홈 Wi-Fi 네트워크에 대한 모바일 디바이스(102)의 연결에 기초한 제 2 네트워크 데이터를 저장할 수 있다. 기회 학습 엔진(124)은 컴파니 Wi-Fi 네트워크 및 홈 Wi-Fi 네트워크 각각에 대한 기회 스코어를 계산할 수 있다. 그러한 예에서, 기회 학습 엔진(124)은 액세스 포인트들에 걸쳐 네트워크 이력 지식을 레버리지한다.
[0057] 기회 학습 엔진(124)은 하나 이상의 기회 스코어들을 비교하고, 더 양호한 기회 스코어를 갖는 네트워크가 미래에 모바일 디바이스(102)에 연결될 것인지를 추측(speculate)할 수 있다. 예에서, 기회 학습 엔진(124)은 복수의 기회 스코어들을 비교한다. 기회 학습 엔진(124)은 모바일 디바이스(102)가 특정 네트워크들에 연결되는 빈도를 고려할 수 있다. 예에서, 기회 학습 엔진(124)은 애플리케이션 데이터를 동기화하기 위한 더 양호한 네트워크가 가까운 미래에 보여질 높은 가능성이 존재하는지를 결정한다. 기회 학습 엔진(124)은 모바일 디바이스(102)가 임계량의 시간 내에 특정 네트워크에 연결할 높은 가능성이 존재한다고 결정할 수 있고, 따라서 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송하지 않기로 결정할 수 있고 그리고/또는 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크가 아니라는 통지를 동기화 관리기(120)로 전송할 수 있다. 기회 학습 엔진(124)은, 모바일 디바이스(102)가 특정 네트워크에 연결될 때까지, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송하는 것을 지연시킬 수 있다.
[0058] 예에서, 기회 학습 엔진(124)은 평일(예를 들면, 월요일, 화요일, 수요일, 목요일 및 금요일)의 업무 시간 동안에 모바일 디바이스(102)가 전형적으로 컴파니 Wi-Fi 네트워크에 연결되고, 주말(예를 들면, 토요일 및 일요일)에 홈 Wi-Fi 네트워크에 연결된다는 로깅된 네트워크 데이터로부터 학습할 수 있다. 예에서, 모바일 디바이스(102)가 화요일 아침 오전 7:00 시에 사용자의 홈에 있다면, 모바일 디바이스(102)는 홈 Wi-Fi 네트워크에 연결될 수 있다. 기회 학습 엔진(124)은 홈 Wi-Fi 네트워크에 대한 기회 스코어와 다른 네트워크들에 대한 다른 기회 스코어들을 비교하고, 데이터 송신을 위해 작업 Wi-Fi 네트워크를 사용하는 더 양호한 기회가 존재하고 모바일 디바이스(102)가 화요일 오전 9:00 시에 2 시간 동안 컴파니 Wi-Fi 네트워크에 연결될 높은 가능성이 존재한다는 것을 인지할 수 있다. 그러한 시나리오에서, 기회 학습 엔진(124)은 현재 네트워크 연결을 통한 데이터의 송신을 지연시키고, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송하지 않기를 원할 수 있다.
[0059] 따라서, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송하지 않기로 결정할 수 있고 그리고/또는 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크가 아니라는 통지를 동기화 관리기(120)로 전송할 수 있다. 나중 시점에서, 기회 학습 엔진(124)은 모바일 디바이스(102)가 현재 컴파니 Wi-Fi 네트워크에 연결된다고 인지하고, 비교된 기회 스코어들에 기초하여, 현재 연결된 네트워크가 양호한 기회 네트워크라고 결정할 수 있다. 따라서, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송할 수 있다.
[0060] 네트워크에 대한 기회 스코어는, 모바일 디바이스(102)가 임계량의 시간 내에서(예를 들면, 4 시간 내에서) 특정 네트워크에 연결될 가능성을 고려할 수 있고, 여기서 특정 네트워크는 양호한 기회 네트워크이다.
[0061] 기회 학습 엔진(124)은 데이터 업로드와 데이터 다운로드 사이를 구별할 수 있다. 데이터 업로드는 모바일 디바이스(102)로부터 원격 컴퓨팅 디바이스로 전송되는 데이터를 지칭할 수 있다. 데이터 다운로드는 원격 컴퓨팅 디바이스로부터 모바일 디바이스(102)로 전송되는 데이터를 지칭할 수 있다. 기회 학습 엔진(124)은, 업로드 대역폭이 캡핑(capped)되거나 다운로드 대역폭보다 더 낮기 때문에, 동기화 관리기(120)에 대한 이들 2 개의 데이터 송신들을 구별할 수 있다. 이로써, 기회들은 데이터 업로드 및 데이터 다운로드에 대해 상이할 수 있다. 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송할지를 결정하기 위해, 기회 학습 엔진(124)은 모바일 디바이스(102)가 모바일 애플리케이션을 동기화하기 위한 데이터를 업로딩 또는 다운로딩할 것인지를 고려할 수 있다.
[0062] 기회 학습 엔진(124)은 또한 모바일 디바이스(102)의 상태를 고려할 수 있다. 예에서, 모바일 디바이스(102)가 충전중이면, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)로 전송할 수 있다. 기회 학습 엔진(124)은 네트워크가 모바일 애플리케이션 데이터를 업로딩하기 위한 불량한 기회 네트워크로서 식별될지라도 통지를 전송할 수 있다. 예를 들면, 모바일 디바이스(102)가 네트워크에 연결되면, 네트워크는 모바일 애플리케이션 데이터를 다운로딩하기 위한 양호한 기회 네트워크이지만 모바일 애플리케이션 데이터를 업로딩하기 위한 불량한 기회 네트워크일 수 있다. 기회 학습 엔진(124)은 모바일 애플리케이션을 동기화하기 위한 제로 기회 비용을 결정할 수 있다.
[0063] 다른 예에서, 모바일 디바이스(102)의 배터리 수명이 임계 배터리 수명 미만이면, 기회 학습 엔진(124)은 (현재 네트워크 연결이 양호한 기회 네트워크로서 식별될지라도) 배터리 전력을 절약하기 위해 현재 네트워크 연결을 통한 데이터의 송신을 지연시키기를 원할 수 있다. 그러한 예에서, 기회 학습 엔진(124)은 현재 네트워크 연결을 통해 모바일 애플리케이션들을 동기화하기 않기 위한 통지를 동기화 관리기(120)로 전송하고 그리고/또는 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크가 아니라는 통지를 동기화 관리기(120)로 전송할 수 있다. 이러한 방식으로, 기회 학습 엔진(124)은 모바일 디바이스(102)가 더 많은 전력을 소비하는 것을 회피할 수 있다.
[0064] 기회 학습 엔진(124)이 통지를 동기화 관리기(120)로 전송하는 것으로 설명되었지만, 기회 학습 엔진(124)이 통지를 모바일 디바이스(102) 상에 설치된 하나 이상의 모바일 애플리케이션들로 전송할 수 있다는 것이 또한 이해되어야 한다. 기회 학습 엔진(124)은, 예를 들면, 통지를 단지 동기화 관리기(120)로, 모바일 디바이스(102) 상에 설치된 단지 하나 이상의 모바일 애플리케이션들로 또는 동기화 관리기(120) 및 모바일 디바이스(102) 상에 설치된 단지 하나 이상의 모바일 애플리케이션들 둘 모두로 전송할 수 있다.
III. 모바일 애플리케이션을 동기화할지를 결정
[0065] 동기화 관리기(120)는 기회 학습 엔진(124)으로부터 통지를 수신하고, 모바일 애플리케이션 데이터를 동기화할지를 결정할 수 있다. 통지는 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크 또는 불량한 기회 네트워크인 것을 표시할 수 있다. 동기화 관리기(120)는 운영 시스템에서 고레벨 데이터 서비스들을 또는 애플리케이션들을 제안할 수 있다.
[0066] 기회 학습 엔진(124)은 통지를 다양한 방식들로 동기화 관리기(120)로 전송할 수 있다. 예에서, 기회 학습 엔진(124)은 브로드캐스트 메시지들을 통해 양호한 기회 네트워크들을 동기화 관리기(120)에 통지한다. 동기화 관리기(120)는 네트워크 힌트 브로드캐스트들을 수신하기 위해 등록할 수 있다. 예에서, 모바일 디바이스(102)는 Android® 운영 시스템을 실행하고, Android® 서비스들을 통지하기 위해 Android®의 "sendBroadcast(Intent Networkopportunity)" 호(call)를 사용한다. 그러한 예에서, Android® 서비스들은 "registerReceiver(BroadcastReceiver, IntentFilter)"를 사용하여 브로드캐스트 의향(intent)을 수신하기 위해 등록할 수 있다. 브로드캐스트 메시지를 수신할 때, 동기화 관리기(120)와 같은 서비스들은 양호한 네트워크 조건들을 레버리지하기 위해 펜딩 동기화 및/또는 다른 데이터 송신 활동을 개시하기로 선택할 수 있다.
[0067] 조건이 만족되는 것에 응답하여, 동기화 관리기(120)는 모바일 애플리케이션 데이터를 동기화할지를 결정할 수 있다. 예에서, 통지가 수신될 때, 조건이 만족된다. 동기화 관리기(120)는, 예를 들면, 기회 학습 엔진(124)으로부터 통지를 수신한 것에 응답하여 모바일 애플리케이션 데이터를 동기화할지를 결정할 수 있다. 다른 예에서, 시간 기간이 경과되었을 때, 조건이 만족된다. 동기화 관리기(120)는 모바일 애플리케이션 데이터를 동기화할지를 주기적으로 결정할 수 있다.
A. 모바일 애플리케이션을 동기화하지 않음
[0068] 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 수신한 후에, 동기화 관리기(120)는 모바일 애플리케이션 데이터를 동기화하지 않기로 결정할 수 있다. 모바일 애플리케이션 데이터를 동기화하지 않기로 결정한 것에 응답하여, 동기화 관리기(120)는 추가로 어떠한 것도 하지 않을 수 있다.
[0069] 동기화 관리기(120)는, 예를 들면, 모바일 애플리케이션이 이미 스케줄링된 동기화를 갖는다면, 모바일 애플리케이션의 애플리케이션 데이터를 동기화하지 않기로 결정할 수 있다. 다른 예에서, 모바일 애플리케이션이 이미 스케줄링된 동기화를 갖는다면, 동기화 관리기(120)는 모바일 애플리케이션 데이터를 동기화하기로 결정하고, 곧 수행될 동기화를 재스케줄링할 수 있다.
B. 모바일 애플리케이션 동기화
[0070] 모바일 애플리케이션 데이터를 동기화하기로 결정한 것에 응답하여, 동기화 관리기(120)는 모바일 애플리케이션과 연관된 서버로 메시지를 전송할 수 있거나, 모바일 애플리케이션 데이터 동기화를 개시하기 위한 메시지를 모바일 디바이스(102) 상에 설치된 모바일 애플리케이션으로 전송할 수 있다. 모바일 애플리케이션(104) 또는 동기화 관리기(120)는 모바일 애플리케이션 데이터 동기화를 개시하기 위한 메시지를 서버(114)로 전송할 수 있다.
[0071] 동기화 관리기(120)는 모바일 디바이스(102) 상에 설치된 모바일 애플리케이션들의 동기화를 스케줄링할 수 있다. 일부 실시예들에서, 애플리케이션들로부터의 데이터 송신들이 지연되고 배칭된다(batched). 동기화 관리기(120)는 애플리케이션 데이터 동기화 요청들을 수집할 수 있다. 예에서, 동기화 관리기(120)는 총괄적으로 모바일 애플리케이션 데이터를 동기화한다. 동기화 관리기(120)는 모바일 애플리케이션 데이터 동기화를 개시하기 위한 브로드캐스트 통지를 동기화될 하나 이상의 모바일 애플리케이션들 및/또는 동기화될 하나 이상의 모바일 애플리케이션들과 연관된 서버로 전송할 수 있다. 예에서, 통지는 모바일 디바이스(102) 상에 설치된 모바일 애플리케이션 모두로 브로드캐스팅되지는 않는다. 그러한 예에서, 통지는 일부 우선적인 거동에 기초하여 특정 모바일 애플리케이션들로 전송될 수 있다.
[0072] 일부 실시예들에서, 동기화 관리기(120)는 우선순위에 기초하여 모바일 애플리케이션들의 동기화를 스케줄링한다. 도 1을 참조하면, 동기화 관리기(120)는 다른 것 전에 어떠한 모바일 애플리케이션을 동기화할지를 결정하기 위해 모바일 애플리케이션(104)의 우선순위 및 모바일 애플리케이션(106)의 우선순위를 사용할 수 있다. 예를 들면, 모바일 애플리케이션(104)이 모바일 애플리케이션(106)보다 동기화하기 위한 더 높은 우선순위를 갖는다면, 동기화 관리기(120)는 모바일 애플리케이션(106)과 서버(116)의 동기화 전에 모바일 애플리케이션(104)과 서버(114)의 동기화를 스케줄링할 수 있다.
[0073] 우선순위는 다양한 방식들로 모바일 애플리케이션에 할당될 수 있다. 예에서, 모바일 디바이스(102)의 사용자는 우선순위를 모바일 애플리케이션에 할당할 수 있다. 그러한 예에서, 동기화 관리기(120)는 모바일 디바이스(102) 상에 설치된 하나 이상의 다른 모바일 애플리케이션들과 비교하여 어떠한 모바일 애플리케이션들이 동기화하기 위한 더 높은 우선순위를 갖는지를 표시하도록 사용자에게 요청하는 프롬프트를 사용자에게 제공할 수 있다. 다른 예에서, 동기화 관리기(120)는, 모바일 디바이스(102)의 사용자가 모바일 애플리케이션들(104 및 106)과 맞물리는 방식을 모니터링하고, 모니터링에 기초하여 우선순위들을 모바일 애플리케이션들에 할당한다. 동기화 관리기(120)는, 예를 들면, 어떠한 모바일 애플리케이션들이 가장 빈번하게 사용되는지, 모바일 애플리케이션 동기화 동안에 평균적으로 얼마나 많은 데이터가 서버와 연관된 모바일 애플리케이션들로 송신되었는지, 또는 모바일 애플리케이션이 가장 최근에 사용된 모바일 애플리케이션인지에 기초하여 우선순위를 모바일 애플리케이션에 할당할 수 있다.
[0074] 일부 실시예들에서, 동기화 관리기(120)는 시간 기간이 경과된 것에 기초하여 모바일 애플리케이션들의 동기화를 스케줄링한다. 동기화 관리기(120)는 모바일 애플리케이션이 주기적으로 동기화되는 애플리케이션인 것으로 식별할 수 있다. 그러한 예에서, 모바일 애플리케이션(104)의 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 동기화 관리기(120)가 수신하지 않을지라도, 그럼에도 불구하고 동기화 관리기(120)는 모바일 애플리케이션(104)의 동기화를 스케줄링할 수 있다.
[0075] 일부 실시예들에서, 동기화 관리기(120)는 동기화가 업로드에 대한 것인지 또는 다운로드에 대한 것인지를 인식하고, 이에 따라 기회 통지들을 발행할 수 있다. 이어서, 동기화 관리기(120)는 동기화 통지에 기초하여 데이터 업로드 또는 데이터 다운로드를 스케줄링할 수 있다. 예에서, 이들 통지들은 기회 학습 엔진(124) 및 브로드캐스트 통지에 가입한 모든 서비스 프로세스들 사이의 공유된 메모리 채널들 상에서 전송되는 브로드캐스트 메시지들이다. 통지는, 예를 들면, 기회 학습 엔진(124)이 (이전에 보여진 기회들에 기초하여) 네트워크에 대한 "최상의" 기회 스코어를 보고, 이러한 지식을 동기화 관리기들로 전달하기를 원할 때, 트리거링될 수 있다.
IV. 사용자 입력들
[0076] 일부 실시예들에서, 기회 학습 엔진(124)에 의해 이루어진 결정을 무효화하기 위한 사용자 옵션이 기회 학습 엔진(124)에 부가될 수 있다. 예에서, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크라는 통지를 기회 학습 엔진(124)이 전송하기로 결정하면, 기회 학습 엔진(124)은 이러한 결정을 무효화하기 위한 옵션을 사용자에게 제공할 수 있다. 사용자가 결정을 무효화하면, 기회 학습 엔진(124)은 통지를 전송하지 않기로 결정할 수 있다.
[0077] 다른 예에서, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크 연결이 양호한 기회 네트워크라는 통지를 기회 학습 엔진(124)이 전송하지 않기로 결정하면, 기회 학습 엔진(124)은 이러한 결정을 무효화하기 위한 옵션을 사용자에게 제공할 수 있다. 사용자가 결정을 무효화하면, 기회 학습 엔진(124)은 통지를 전송할 수 있다. 다른 예에서, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크가 아니라는 통지를 기회 학습 엔진(124)이 전송하기로 결정하면, 기회 학습 엔진(124)은 이러한 결정을 무효화하기 위한 옵션을 사용자에게 제공할 수 있다. 사용자가 결정을 무효화하면, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크라는 통지를 전송할 수 있거나, 어떠한 통지도 전송되지 않아야 한다고 결정할 수 있다.
[0078] 예에서, 기회 학습 엔진(124)은 모바일 디바이스(102)의 디스플레이 상에 프롬프트를 제공할 수 있다. 프롬프트는, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크인지의 결정을 모바일 디바이스(102)의 사용자가 무효화하기를 원하는지를 요청할 수 있다. 결정은, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가, 예를 들면, 양호한 기회 네트워크이거나 양호한 기호 네트워크가 아니라는 것일 수 있다.
[0079] 예에서, 기회 학습 엔진(124)은 프롬프트에 응답하여 사용자 입력을 수신할 수 있고, 사용자 입력은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크라는 결정을 사용자가 무효화하기를 원한다는 것을 표시한다. 그러한 예에서, 사용자 입력에 응답하여, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크라는 통지를 전송하지 않기로 결정할 수 있다. 다른 예에서, 기회 학습 엔진(124)은 프롬프트에 응답하여 사용자 입력을 수신하고, 사용자 입력은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크라는 결정을 사용자가 무효화하기를 원하지 않는다는 것을 표시한다. 그러한 예에서, 사용자 입력에 응답하여, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크라는 통지를 전송할 수 있다.
[0080] 다른 예에서, 기회 학습 엔진(124)은 프롬프트에 응답하여 사용자 입력을 수신할 수 있고, 사용자 입력은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크가 아니라는 결정을 사용자가 무효화하기를 원한다는 것을 표시한다. 그러한 예에서, 사용자 입력에 응답하여 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크라는 통지를 전송할 수 있다. 다른 예에서, 기회 학습 엔진(124)은 프롬프트에 응답하여 사용자 입력을 수신할 수 있고, 사용자 입력은, 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크가 아니라는 결정을 사용자가 무효화하기를 원하지 않는다는 것을 표시한다. 그러한 예에서, 사용자 입력에 응답하여, 기회 학습 엔진(124)은 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크라는 통지를 전송하지 않기로 결정할 수 있다.
[0081] 기회 학습 엔진(124)은 사용자가 원하는 것에 대해 학습하기 위해 사용자의 무효화들을 모니터링할 수 있다. 예에서, 사용자의 무효화들은, 기회 학습 엔진(124)이, 예를 들면, 토요일 및 일요일에 컴파니 Wi-Fi 네트워크를 대기하지 않는 것으로 인지하도록 하는 기회 학습 엔진(124)으로의 입력일 수 있다.
[0082] 일부 실시예들에서, 동기화 관리기(120)에 의해 이루어진 결정을 무효화하기 위한 사용자 옵션이 동기화 관리기(120)에 부가될 수 있다. 예에서, 모바일 애플리케이션 데이터 동기화가 스케줄링되어야 한다고 동기화 관리기(120)가 결정하면, 동기화 관리기(120)가 모바일 애플리케이션 데이터 동기화를 실제로 스케줄링하기 전에, 모바일 애플리케이션 데이터 동기화를 무효화하기 위한 옵션이 사용자에게 제공될 수 있다. 사용자가 결정을 무효화하면, 동기화 관리기(120)는 모바일 애플리케이션 데이터 동기화를 스케줄링하지 않기로 결정할 수 있다.
[0083] 다른 예에서, 모바일 애플리케이션 데이터 동기화가 스케줄링되지 않아야 한다고 동기화 관리기(120)가 결정하면, 동기화 관리기(120)가 모바일 애플리케이션 데이터 동기화를 스케줄링하지 않기로 결정하기 전에, 동기화 관리기(120)의 이러한 결정을 무효화하기 위한 옵션이 사용자에게 제공될 수 있다. 예를 들면, 모바일 디바이스(102)는 배터리가 부족(low)할 수 있고, 동기화 관리기(120)는 배터리 전력을 절약하기를 원할 수 있고, 따라서 모바일 애플리케이션 데이터 동기화가 발생하지 않아야 한다고 결정할 수 있다. 사용자는 모바일 애플리케이션 데이터 동기화를 스케줄링하지 않기 위해 동기화 관리기(120)의 결정을 무효화하고, 모바일 애플리케이션 데이터 동기화를 스케줄링하도록 동기화 관리기(120)에 지시할 수 있다.
[0084] 앞서 논의되고, 여기서 추가로 강조되는 바와 같이, 도 1-2는 청구항들의 범위를 과도하게 제한하지 않아야 하는 단지 예들이다. 예를 들면, 모바일 디바이스(102)가 모바일 디바이스인 것으로 설명되지만, 다른 실시예에서, 모바일 디바이스(102)가 정지 디바이스일 수 있다는 것이 또한 이해되어야 한다.
V. 예시적인 방법들
[0085] 도 3은 일부 실시예들에 따른, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이의 애플리케이션 데이터를 동기화하는 방법(300)을 예시한 흐름도이다. 방법(300)은 제한적인 적으로 의도되지 않고, 다른 애플리케이션들에서 사용될 수 있다.
[0086] 방법(300)은 블록들(302-308)을 포함한다. 블록(302)에서, 하나 이상의 네트워크들의 각각의 네트워크에 대해, 각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터가 수집되고, 여기서 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함한다. 예에서, 하나 이상의 네트워크들의 각각의 네트워크에 대해, 네트워크 메트릭 로거(122)는 각각의 네트워크에 대한 모바일 디바이스(102)의 현재 연결 상태에 관한 네트워크 데이터를 수집하고, 여기서 모바일 디바이스(102)는 모바일 애플리케이션들(104 및 106)을 포함하고, 각각의 모바일 애플리케이션은 애플리케이션 데이터를 포함한다.
[0087] 블록(304)에서, 현재 네트워크에 대한 현재 연결이 모바일 디바이스에서 검출된다. 예에서, 네트워크 메트릭 로거(122)는 모바일 디바이스(102)에서 네트워크(108)에 대한 현재 연결을 검출한다.
[0088] 블록(306)에서, 애플리케이션 데이터를 동기화하기 위해 하나 이상의 기회 스코어들이 비교되고, 하나 이상의 기회 스코어들은 현재 네트워크에 대한 기회 스코어를 포함하고, 여기서 각각의 기회 스코어는 특정 네트워크와 연관된다. 예에서, 기회 학습 엔진(124)은 애플리케이션 데이터를 동기화하기 위해 하나 이상의 기회 스코어들을 비교하고, 하나 이상의 기회 스코어들은 현재 네트워크에 대한 기회 스코어를 포함하고, 여기서 각각의 기회 스코어는 특정 네트워크와 연관된다.
[0089] 예에서, 현재 네트워크 및 제 2 네트워크(모바일 디바이스에 이전에 연결됨)는 공통 네트워크 타입이고, 특징 세트에 대한 상이한 특징 세트 값들을 갖는다. 기회 학습 엔진(124)은 공통 네트워크 타입(예를 들면, 셀룰러 네트워크, Wi-Fi 네트워크 등)과 연관된 기회 스코어들을 비교할 수 있다. 예에서, 하나 이상의 기회 스코어들은 공통 네트워크 타입과 연관된 제 1 기회 스코어 및 제 2 기회 스코어를 포함하고, 기회 학습 엔진(124)은 제 1 및 제 2 기회 스코어들을 서로에 비교한다.
[0090] 다른 예에서, 현재 네트워크는 제 1 타입이고, 제 2 네트워크(모바일 디바이스에 이전에 연결됨)는 제 1 타입과 상이한 제 2 타입이다. 기회 학습 엔진(124)은 제 1 타입의 현재 네트워크 및 제 2 타입의 제 2 네트워크와 연관된 기회 스코어들을 비교할 수 있다. 예에서, 하나 이상의 기회 스코어들은 제 1 기회 스코어 및 제 2 기회 스코어를 포함하고, 여기서 제 1 기회 스코어는 제 1 타입(예를 들면, 셀룰러 네트워크)의 현재 네트워크와 연관되고, 기회 스코어는 제 2 타입(예를 들면, Wi-Fi 네트워크)의 제 2 네트워크와 연관된다. 그러한 예에서, 기회 학습 엔진(124)은 상이한 네트워크 타입들과 연관된 기회 스코어들을 비교한다.
[0091] 블록(308)에서, 하나 이상의 기회 스코어들의 비교에 기초하여, 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크인지가 결정된다. 예에서, 기회 학습 엔진(124)은, 하나 이상의 기회 스코어들의 비교에 기초하여, 네트워크(108)가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크인지를 결정한다.
[0092] 앞서 논의된 블록들(302-308) 전에, 동안에 또는 후에 부가적인 프로세스들이 수행될 수 있다는 것이 또한 이해된다. 본원에 설명된 방법(300)의 블록들 중 하나 이상이 요구될 때 생략, 결합 또는 상이한 시퀀스로 수행될 수 있다는 것이 또한 이해된다.
[0093] 도 4는 일부 실시예들에 따라, 모바일 디바이스와 원격 컴퓨팅 디바이스 사이의 애플리케이션 데이터를 동기화하는 방법(400)을 예시한 흐름도이다. 방법(400)은 제한적인 것으로 의도되지 않고, 다른 애플리케이션들에서 사용될 수 있다.
[0094] 방법(400)은 블록들(402-406)을 포함한다. 블록(402)에서, 제 1 네트워크에 대한 모바일 디바이스의 현재 연결을 통해 애플리케이션 데이터를 동기화할지가 결정되고, 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함한다. 예에서, 동기화 관리기(120)는 제 1 네트워크에 대한 모바일 디바이스(102)의 현재 연결을 통해 애플리케이션 데이터를 동기화할지를 결정하고, 모바일 디바이스(102)는 모바일 애플리케이션들(104 및 106)을 포함하고, 각각의 모바일 애플리케이션은 애플리케이션 데이터를 포함한다.
[0095] 블록(404)에서, 제 1 네트워크에 대한 기회 스코어 및 제 2 네트워크에 대한 기회 스코어를 포함하는 복수의 기회 스코어들이 비교되고, 모바일 디바이스는 제 2 네트워크에 이전에 연결되었고, 각각의 기회 스코어는 특정 네트워크와 연관되고, 특정 네트워크의 하나 이상의 특징 세트들에 기초한다. 예에서, 동기화 관리기(120)는 제 1 네트워크에 대한 기회 스코어 및 제 2 네트워크에 대한 기회 스코어를 포함하는 복수의 기회 스코어들을 비교하고, 모바일 디바이스(104)는 제 2 네트워크에 이전에 연결되었고, 각각의 기회 스코어는 특정 네트워크와 연관되고, 특정 네트워크의 하나 이상의 특징 세트들에 기초한다.
[0096] 예에서, 제 1 네트워크는 제 1 타입이고, 제 2 네트워크는 제 1 타입과 상이한 제 2 타입이다. 그러한 예에서, 제 1 타입의 제 1 네트워크와 연관된 제 1 기회 스코어 및 제 2 타입의 제 2 네트워크와 연관된 제 2 기회 스코어가 비교될 수 있다. 따라서, 상이한 네트워크 타입들과 연관된 기회 스코어들이 비교될 수 있다. 다른 예에서, 제 1 네트워크 및 제 2 네트워크는 공통 네트워크 타입이고, 특징 세트에 대한 상이한 특징 세트 값들을 갖는다. 그러한 예에서, 공통 네트워크 타입과 연관된 제 1 기회 스코어 및 제 2 기회 스코어가 비교된다. 따라서, 동일한 네트워크 타입과 연관된 기회 스코어들이 비교될 수 있다.
[0097] 블록(406)에서, 복수의 기회 스코어들의 비교에 기초하여, 모바일 애플리케이션 데이터 동기화를 스케줄링할지가 결정된다. 예에서, 동기화 관리기(120)는, 복수의 기회 스코어들의 비교에 기초하여, 모바일 애플리케이션 데이터 동기화를 스케줄링할지를 결정한다.
[0098] 앞서 논의된 블록들(402-406) 전에, 동안에 또는 후에 부가적인 프로세스들이 수행될 수 있다는 것이 또한 이해된다. 본원에 설명된 방법(400)의 블록들 중 하나 이상이 요구될 때 생략, 결합 또는 상이한 시퀀스로 수행될 수 있다는 것이 또한 이해된다.
VI. 예시적인 컴퓨팅 시스템
[0099] 도 5는 본원에 개시된 실시예들 중 임의의 것을 구현하기에 적합한 예시적인 컴퓨터 시스템(500)의 블록도이다. 다양한 구현들에서, 컴퓨터 시스템(500)은 모바일 디바이스(102), 서버(114) 또는 서버(116)일 수 있다. 도 5에서, 컴퓨터 시스템(500)은 입력/출력(I/O) 컴포넌트(504)에 커플링된 제어 유닛(501)을 포함한다.
[00100] 컴퓨터 시스템(500)은 하나 이상의 프로세서들을 포함할 수 있다. 컴퓨터 시스템(500)은 플로피 디스크, 가요성 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 및/또는 프로세서 또는 컴퓨터가 판독하도록 적응되는 임의의 다른 매체를 포함하는 그룹으로부터 각각 선택된 하나 이상의 저장 디바이스들을 부가적으로 포함할 수 있다. 하나 이상의 저장 디바이스들은 컴퓨터 네트워크(미도시)를 사용하여 클라이언트 또는 서버에 커플링된 하나 이상의 컴퓨팅 디바이스들 및/또는 컴퓨터 프로그램들(예를 들면, 클라이언트들)에게 이용 가능하게 될 수 있는 저장된 정보를 포함할 수 있다. 컴퓨터 네트워크는 LAN, WAN, 인트라넷, 인터넷, 클라우드, 및/또는 시스템 내의 컴퓨팅 디바이스들 및/또는 컴퓨터 프로그램들을 상호연결할 수 있는 이들 네트워크들의 임의의 조합을 포함하는 임의의 타입의 네트워크일 수 있다.
[00101] 컴퓨터 시스템(500)은 컴퓨터 시스템(500)의 다양한 컴포넌트들 사이에서 정보 데이터, 신호들 및 정보를 통신하기 위한 버스(502) 또는 다른 통신 메커니즘을 포함한다. 컴포넌트들은 키패드/키보드로부터의 키들을 선택하는 것 또는 하나 이상의 버튼들 또는 링크들을 선택하는 것 등과 같이 사용자 동작들을 프로세싱하기 위한 I/O 컴포넌트(504)를 포함하고, 대응하는 신호를 버스(502)로 전송한다. 예에서, 사용자 동작은 기회 학습 엔진(124) 및/또는 동기화 관리기(120)에 의해 이루어진 결정을 무효화하는 사용자 입력일 수 있다.
[00102] I/O 컴포넌트(504)는 또한 디스플레이(511)와 같은 출력 컴포넌트, 및 커서 제어부(513)(가령, 키보드, 키패드, 마우스 등)와 같은 입력 제어부를 포함할 수 있다. 예에서, 디스플레이(511)는 디스플레이(511) 상에 프롬프트를 디스플레이하고, 프롬프트는 모바일 애플리케이션 데이터를 동기화하기 위해 현재 네트워크가 양호한 기회 네트워크인지의 결정을 모바일 디바이스(102)의 사용자가 무효화하기를 원하는지를 요청한다.
[00103] 오디오 신호들을 정보 신호들로 변환함으로써 사용자가 정보를 입력하기 위해 음성을 사용하도록 허용하는 오디오 I/O 컴포넌트(505)가 또한 포함될 수 있다. 오디오 I/O 컴포넌트(505)는 사용자가 오디오를 듣도록 허용할 수 있다. 트랜시버 또는 네트워크 인터페이스(506)는 통신 링크(518)를 통해 컴퓨터 시스템(500)과 다른 디바이스들 사이에서 네트워크로 신호들을 송신 및 수신한다. 일부 실시예들에서, 송신은 무선이지만, 다른 송신 매체들 및 방법들이 또한 적합할 수 있다.
[00104] 마이크로-제어기, DSP(digital signal processor) 또는 다른 프로세싱 컴포넌트일 수 있는 프로세서(512)는 컴퓨터 시스템(500)의 디스플레이(511) 상의 디스플레이 또는 통신 링크(518)를 통한 다른 디바이스들로의 송신과 같이 이들 다양한 신호들을 프로세싱한다. 네트워크 메트릭 로거(122), 기회 학습 엔진(124) 및 동기화 관리기(120)는 프로세서(512)에서 실행될 수 있다. 프로세서(512)는 또한 쿠키들 또는 IP 어드레스들과 같은 정보의 다른 디바이스들로의 송신을 제어할 수 있다.
[00105] 컴퓨터 시스템(500)의 컴포넌트들은 또한 시스템 메모리 컴포넌트(514)(예를 들면, RAM), 정적 저장 컴포넌트(516)(예를 들면, ROM) 및/또는 컴퓨터 판독 가능 매체(517)를 포함한다. 컴퓨터 시스템(500)은 시스템 메모리 컴포넌트들(514)에 포함된 명령들의 하나 이상의 시퀀스들을 실행함으로써 프로세서(512) 및 다른 컴포넌트들에 의해 특정 동작들을 수행한다. 예에서, 프로세서(512)는 도 3에 따른 명령들(302-308)을 프로세싱하고 그리고/또는 도 4에 따른 명령들(402-406)을 프로세싱한다.
[00106] 로직은 실행을 위해 명령들을 프로세서(512)에 제공하는데 참여하는 임의의 매체를 지칭할 수 있는 컴퓨터 판독 가능 매체(517)에 인코딩될 수 있다. 그러한 매체는, 이에 제한되지 않지만, 비휘발성 매체, 휘발성 매체 및 송신 매체를 포함하는 많은 형태들을 취할 수 있다. 다양한 구현들에서, 비휘발성 매체는 광학 또는 자기 디스크들 또는 고체-상태 드라이브들을 포함하고, 휘발성 매체는 시스템 메모리 컴포넌트(514)와 같은 동적 메모리를 포함하고, 송신 매체는 버스(502)를 포함하는 와이어들을 비롯하여, 동축 케이블들, 구리 와이어, 및 광섬유들을 포함한다. 일부 실시예들에서, 로직은 컴퓨터 판독 가능 매체(517)에 인코딩된다. 컴퓨터 판독 가능 매체(517)는 프로세서(512)에 의해 또는 프로세서(512)와 관련하여 사용되는 명령들을 포함, 저장, 통신, 전파 또는 송신할 수 있는 임의의 장치일 수 있다. 컴퓨터 판독 가능 매체(517)는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 디바이스 또는 전파 매체, 또는 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 판독하도록 적응되는 임의의 다른 매체일 수 있다. 또한, 송신 매체는 라디오파, 광학 및 적외선 데이터 통신들 동안에 생성되는 것과 같이 음향 또는 광파들의 형태를 취할 수 있다.
[00107] 본 개시의 다양한 실시예들에서, 본 개시를 실시하기 위한 명령 시퀀스들의 실행은 컴퓨터 시스템(500)에 의해 수행될 수 있다. 본 개시의 다양한 다른 실시예들에서, 통신 링크(518)에 의해 네트워크(예를 들면, 가령, LAN, WLAN, PTSN, 및/또는 원격통신들, 모바일 및 셀룰러 폰 네트워크들을 포함하는 다양한 다른 유선 또는 무선 네트워크들)에 커플링된 복수의 컴퓨터 시스템들(500)은 서로 합동으로 본 개시를 실시하기 위해 명령 시퀀스들을 수행할 수 있다.
[00108] 적용 가능한 경우에, 본 개시에 의해 제공된 다양한 실시예들은 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 결합들을 사용하여 구현될 수 있다. 또한 적용 가능한 경우에, 본원에 제시된 다양한 하드웨어 컴포넌트들 및/또는 소프트웨어 컴포넌트들은 본 개시의 사상으로부터 벗어나지 않고서 소프트웨어, 하드웨어 및/또는 둘 모두를 포함하는 합성 컴포넌트들로 결합될 수 있다. 적용 가능한 경우에, 본원에 제시된 다양한 하드웨어 컴포넌트들 및/또는 소프트웨어 컴포넌트들은 본 개시의 사상으로부터 벗어나지 않고서 소프트웨어, 하드웨어 및/또는 둘 모두를 포함하는 서브-컴포넌트들로 분리될 수 있다. 또한, 적용 가능한 경우에, 소프트웨어 컴포넌트들이 하드웨어 컴포넌트들로서 구현될 수 있고, 그 역도 가능하다는 것이 고려된다.
[00109] 본 개시에 따른 애플리케이션 소프트웨어는 하나 이상의 컴퓨터 판독 가능 매체들 상에 저장될 수 있다. 본원에 식별된 애플리케이션 소프트웨어가 하나 이상의 범용 또는 특수 목적 컴퓨터들 및/또는 컴퓨터 시스템들을 사용하여 구현되거나, 네트워킹되거나 기타 등등일 수 있다는 것이 또한 고려된다. 적용 가능한 경우에, 본원에 설명된 다양한 단계들의 순서는 변경되고, 합성 단계들로 결합되고 그리고/또는 서브-단계들로 분리되어 본원에 설명된 특징들을 제공할 수 있다.
[00110] 상술된 개시는 개시된 특정 사용 분야 또는 정확한 형태들로 본 개시를 제한하도록 의도되지 않는다. 이로써, 본원에 명시적으로 설명되든지 또는 암시되든지 간에, 본 개시에 대한 다양한 대안적인 실시예들 및/또는 수정들이 본 개시를 고려하여 가능하다는 것이 고려된다. 본 개시의 범위에서 벗어나지 않고서 형태 및 세부사항에서 변화들이 이루어질 수 있다. 따라서, 본 개시는 청구항들에 의해서만 제한된다.

Claims (30)

  1. 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법으로서,
    하나 이상의 네트워크들의 각각의 네트워크에 대해,
    각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터를 수집하는 단계 ― 상기 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함함 ―, 및
    상기 네트워크 데이터에 기초하여, 각각의 네트워크에 대한 기회 스코어(opportunity score)를 계산하는 단계;
    상기 모바일 디바이스에서, 현재 네트워크에 대한 현재 연결을 검출하는 단계;
    애플리케이션 데이터를 동기화하기 위해 하나 이상의 기회 스코어들을 비교하는 단계 ― 상기 하나 이상의 기회 스코어들은 상기 현재 네트워크에 대한 제 1 기회 스코어 및 상기 모바일 디바이스에 이전에 연결된 제 2 네트워크에 대한 제 2 기회 스코어를 포함하고, 각각의 기회 스코어는 특정 네트워크와 연관됨 ―;
    상기 비교하는 단계에 기초하여, 상기 현재 네트워크가 모바일 데이터를 동기화하기 위한 양호한 기회 네트워크인지를 결정하는 단계; 및
    상기 현재 네트워크가 양호한 기회 네트워크라고 결정하는 것에 응답하여, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 통지를 전송하는 단계를 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  2. 제 1 항에 있어서,
    상기 수집하는 단계는, 상기 하나 이상의 네트워크들의 각각의 네트워크에 대해:
    상기 모바일 디바이스에서, 각각의 네트워크에 대한 현재 연결을 검출하는 단계; 및
    각각의 네트워크에 따른 특징 세트(feature set)를 식별하는 단계를 포함하고,
    상기 특징 세트는 각각의 네트워크를 특징화하는 하나 이상의 메트릭들(metrics)을 포함하고,
    상기 계산하는 단계는, 상기 식별된 특징 세트에 대한 수집된 네트워크 데이터에 기초하여, 각각의 네트워크에 대한 기회 스코어를 계산하는 단계를 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  3. 제 2 항에 있어서,
    상기 계산하는 단계는 식별된 특징 세트에 대해 회귀 분석(regression analysis)을 수행하는 단계를 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  4. 제 1 항에 있어서,
    상기 네트워크 데이터를 수집하는 단계는 상기 모바일 디바이스의 현재 연결에 관한 시간적 데이터 및 공간적 데이터를 로깅(logging)하는 단계를 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  5. 제 1 항에 있어서,
    상기 하나 이상의 네트워크들의 각각의 네트워크에 대해, 각각의 네트워크에 대한 기회 스코어를 상기 모바일 디바이스에 저장하는 단계를 더 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  6. 제 1 항에 있어서,
    상기 통지를 전송하는 단계는, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 상기 통지를 동기화 관리기(synchronization manager)로 전송하는 단계를 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  7. 제 6 항에 있어서,
    조건이 만족되는 것에 응답하여,
    상기 현재 네트워크를 통해 상기 하나 이상의 모바일 애플리케이션들의 애플리케이션 데이터가 동기화되어야 한다고 결정하는 단계; 및
    상기 현재 네트워크를 통해 상기 하나 이상의 모바일 애플리케이션들의 애플리케이션 데이터를 동기화하는 단계를 더 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  8. 제 7 항에 있어서,
    상기 통지가 수신될 때, 상기 조건이 만족되는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  9. 제 7 항에 있어서,
    시간 기간이 경과되었을 때, 상기 조건이 만족되는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  10. 제 1 항에 있어서,
    상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크인지의 결정을 무효화(override)할지에 관하여 상기 모바일 디바이스의 사용자를 프롬프트(prompt)하는 단계를 더 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  11. 제 10 항에 있어서,
    상기 프롬프트에 응답하여 사용자 입력을 수신하는 단계 ― 상기 사용자 입력은 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 결정을 무효화하기 위한 요구를 표시함 ―; 및
    상기 사용자 입력에 응답하여, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 상기 통지를 무시(discard)하기 위한 메시지를 동기화 관리기에 전송하는 단계를 더 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  12. 제 10 항에 있어서,
    상기 프롬프트에 응답하여 사용자 입력을 수신하는 단계를 더 포함하고,
    상기 사용자 입력은 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 결정을 무효화하지 않기 위한 요구를 표시하고,
    상기 통지를 전송하는 단계는, 상기 사용자 입력을 수신하는 것에 응답하여, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 상기 통지를 전송하는 단계를 더 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  13. 제 10 항에 있어서,
    상기 프롬프트에 응답하여 사용자 입력을 수신하는 단계 ― 상기 사용자 입력은 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크가 아니라는 결정을 무효화하기 위한 요구를 표시함 ―; 및
    상기 사용자 입력에 응답하여, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 상기 통지를 전송하는 단계를 더 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  14. 제 10 항에 있어서,
    상기 프롬프트에 응답하여 사용자 입력을 수신하는 단계 ― 상기 사용자 입력은 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크가 아니라는 결정을 무효화하지 않기 위한 요구를 표시함 ― 를 더 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  15. 제 1 항에 있어서,
    상기 하나 이상의 기회 스코어들 중 상기 제 1 기회 스코어 및 상기 제 2 기회 스코어는 공통 네트워크 타입과 연관되고, 그리고
    상기 비교하는 단계는 상기 제 1 기회 스코어 및 상기 제 2 기회 스코어를 비교하는 단계를 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
  16. 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템으로서,
    모바일 디바이스와 현재 네트워크 사이의 현재 연결을 검출하는 네트워크 메트릭 로거(network metrics logger) ― 하나 이상의 네트워크들의 각각의 네트워크에 대해, 상기 네트워크 메트릭 로거는 각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터를 수집하고 그리고 상기 네트워크 데이터에 기초하여 각각의 네트워크에 대한 기회 스코어를 계산하고, 그리고 상기 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함함 ―; 및
    애플리케이션 데이터를 동기화하기 위해 하나 이상의 기회 스코어들을 비교하고, 그리고 상기 비교하는 것에 기초하여, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크인지를 결정하는 기회 학습 엔진(opportunity learning engine)을 포함하고,
    상기 하나 이상의 기회 스코어들은 상기 현재 네트워크에 대한 제 1 기회 스코어 및 상기 모바일 디바이스에 이전에 연결된 제 2 네트워크에 대한 제 2 기회 스코어를 포함하고, 그리고 각각의 기회 스코어는 특정 네트워크와 연관되고, 그리고 상기 현재 네트워크가 양호한 기회 네트워크라고 결정하는 것에 응답하여, 상기 기회 학습 엔진은 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 통지를 전송하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템.
  17. 제 16 항에 있어서,
    상기 현재 네트워크는 제 1 타입이고, 그리고 상기 제 2 네트워크는 상기 제 1 타입과 상이한 제 2 타입이고, 그리고
    상기 기회 학습 엔진은 상기 제 1 타입의 현재 네트워크와 연관된 상기 제 1 기회 스코어와, 상기 제 2 타입의 제 2 네트워크와 연관된 상기 제 2 기회 스코어를 비교하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템.
  18. 제 16 항에 있어서,
    상기 현재 네트워크 및 상기 제 2 네트워크는 공통 네트워크 타입이고 그리고 특징 세트에 대해 상이한 특징 세트 값들을 갖고, 그리고
    상기 기회 학습 엔진은 상기 공통 네트워크 타입과 연관된 기회 스코어들을 비교하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템.
  19. 제 16 항에 있어서,
    상기 하나 이상의 네트워크들의 각각의 네트워크에 대해, 상기 네트워크 메트릭 로거는 각각의 네트워크에 대한 기회 스코어를 상기 모바일 디바이스에 저장하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템.
  20. 제 16 항에 있어서,
    상기 하나 이상의 네트워크들의 각각의 네트워크에 대해, 상기 네트워크 메트릭 로거는, 상기 모바일 디바이스에서, 각각의 네트워크에 대한 현재 연결을 검출하고, 그리고 각각의 네트워크에 따른 특징 세트를 식별하고, 그리고 식별된 특징 세트에 대한 수집된 네트워크 데이터에 기초하여, 각각의 네트워크에 대한 기회 스코어를 계산하고,
    상기 특징 세트는 각각의 네트워크를 특징화하는 하나 이상의 메트릭들을 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템.
  21. 제 20 항에 있어서,
    상기 네트워크 메트릭 로거는 상기 모바일 디바이스의 현재 연결에 대한 시간적 데이터 및 공간적 데이터를 로깅하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템.
  22. 제 16 항에 있어서,
    상기 기회 학습 엔진은 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 상기 통지를 동기화 관리기로 전송하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템.
  23. 동작들을 수행하기 위한 컴퓨터-실행 가능 명령들이 저장된 비-일시적 컴퓨터-판독가능 저장 매체로서, 상기 동작들은,
    하나 이상의 네트워크들의 각각의 네트워크에 대해,
    각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터를 수집하는 동작 ― 상기 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함함 ―, 및
    상기 네트워크 데이터에 기초하여, 각각의 네트워크에 대한 기회 스코어를 계산하는 동작;
    상기 모바일 디바이스에서, 현재 네트워크에 대한 현재 연결을 검출하는 동작;
    애플리케이션 데이터를 동기화하기 위한 하나 이상의 기회 스코어들을 비교하는 동작 ― 상기 하나 이상의 기회 스코어들은 상기 현재 네트워크에 대한 제 1 기회 스코어 및 상기 모바일 디바이스에 이전에 연결된 제 2 네트워크에 대한 제 2 기회 스코어를 포함하고, 각각의 기회 스코어는 특정 네트워크와 연관됨 ―;
    상기 비교하는 것에 기초하여, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크인지를 결정하는 동작; 및
    상기 현재 네트워크가 양호한 기회 네트워크라고 결정하는 것에 응답하여, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 통지를 전송하는 동작을 포함하는,
    컴퓨터-판독가능 저장 매체.
  24. 제 23 항에 있어서,
    상기 하나 이상의 기회 스코어들의 각각의 기회 스코어는 상기 특정 네트워크의 하나 이상의 특징 세트들에 기초하는,
    컴퓨터-판독가능 저장 매체.
  25. 제 23 항에 있어서,
    상기 통지를 전송하는 동작은, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 상기 통지를 동기화 관리기로 전송하는 동작을 포함하는,
    컴퓨터-판독가능 저장 매체.
  26. 제 23 항에 있어서,
    상기 네트워크 데이터를 수집하는 동작은 상기 모바일 디바이스의 현재 연결에 대한 시간적 데이터 및 공간적 데이터를 로깅하는 동작을 포함하는,
    컴퓨터-판독가능 저장 매체.
  27. 모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 장치로서,
    하나 이상의 네트워크들의 각각의 네트워크에 대해, 각각의 네트워크에 대한 모바일 디바이스의 현재 연결 상태에 관한 네트워크 데이터를 수집하기 위한 수단 ― 상기 모바일 디바이스는 애플리케이션 데이터를 포함하는 하나 이상의 모바일 애플리케이션들을 포함함 ―;
    상기 하나 이상의 네트워크들의 각각 네트워크에 대해, 각각의 네트워크에 대한 기회 스코어를 계산하기 위한 수단 ― 상기 기회 스코어는 상기 네트워크 데이터에 기초함 ―;
    상기 모바일 디바이스에서, 현재 네트워크에 대한 네트워크 연결을 검출하기 위한 수단;
    애플리케이션 데이터를 동기화하기 위해 하나 이상의 기회 스코어들을 비교하기 위한 수단 ― 상기 하나 이상의 기회 스코어들은 상기 현재 네트워크에 대한 제 1 기회 스코어 및 상기 모바일 디바이스에 이전에 연결된 제 2 네트워크에 대한 제 2 기회 스코어를 포함하고, 각각의 기회 스코어는 특정 네트워크와 연관됨 ―;
    상기 비교하는 것에 기초하여, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크인지를 결정하기 위한 수단; 및
    상기 현재 네트워크가 양호한 기회 네트워크라고 결정하는 것에 응답하여, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 통지를 전송하기 위한 수단을 포함하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 장치.
  28. 제 27 항에 있어서,
    상기 하나 이상의 기회 스코어들의 각각의 기회 스코어는, 상기 특정 네트워크의 하나 이상의 특징 세트들에 기초하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 장치.
  29. 제 16 항에 있어서,
    상기 기회 학습 엔진은, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크인지의 결정을 무효화할지에 관하여 상기 모바일 디바이스의 사용자를 프롬프트하고 그리고 상기 프롬프트에 응답하여 사용자 입력을 수신하고,
    상기 사용자 입력이, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 결정을 무효화하기 위한 요구를 표시하는 경우, 상기 기회 학습 엔진은 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 상기 통지를 무시하기 위한 메시지를 동기화 관리기에 전송하고, 그리고
    상기 사용자 입력이, 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 결정을 무효화하지 않기 위한 요구를 표시하는 경우, 상기 기회 학습 엔진은 상기 현재 네트워크가 모바일 애플리케이션 데이터를 동기화하기 위한 양호한 기회 네트워크라는 상기 통지를 상기 동기화 관리기에 전송하는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하기 위한 시스템.
  30. 제 2 항에 있어서,
    상기 특징 세트는 하나 이상의 네트워크 타입들을 추출(abstract)하고, 그리고 상기 제 1 기회 스코어 및 상기 제 2 기회 스코어는 단일 메트릭으로 정규화되는,
    모바일 디바이스와 원격 컴퓨팅 디바이스 사이에서 애플리케이션 데이터를 동기화하는 방법.
KR1020177001603A 2014-07-25 2015-06-26 효율적인 애플리케이션 동기화를 트리거링하기 위한 방법들 및 시스템들 KR101825536B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462029278P 2014-07-25 2014-07-25
US62/029,278 2014-07-25
US14/465,693 US9661440B2 (en) 2014-07-25 2014-08-21 Methods and systems for triggering efficient application synchronization
US14/465,693 2014-08-21
PCT/US2015/038081 WO2016014214A1 (en) 2014-07-25 2015-06-26 Methods and systems for triggering efficient application synchronization

Publications (2)

Publication Number Publication Date
KR20170037606A KR20170037606A (ko) 2017-04-04
KR101825536B1 true KR101825536B1 (ko) 2018-02-05

Family

ID=53546263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177001603A KR101825536B1 (ko) 2014-07-25 2015-06-26 효율적인 애플리케이션 동기화를 트리거링하기 위한 방법들 및 시스템들

Country Status (7)

Country Link
US (1) US9661440B2 (ko)
EP (1) EP3172888B1 (ko)
JP (1) JP6293969B2 (ko)
KR (1) KR101825536B1 (ko)
CN (1) CN106537883A (ko)
BR (1) BR112017000698A2 (ko)
WO (1) WO2016014214A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572513B2 (en) 2009-03-16 2013-10-29 Apple Inc. Device, method, and graphical user interface for moving a current position in content at a variable scrubbing rate
WO2016036510A1 (en) 2014-09-02 2016-03-10 Apple Inc. Music user interface
US10852912B2 (en) 2016-06-12 2020-12-01 Apple Inc. Image creation app in messaging app
US10595169B2 (en) 2016-06-12 2020-03-17 Apple Inc. Message extension app store
US10785175B2 (en) * 2016-06-12 2020-09-22 Apple Inc. Polling extension application for interacting with a messaging application
US11431836B2 (en) 2017-05-02 2022-08-30 Apple Inc. Methods and interfaces for initiating media playback
US10992795B2 (en) 2017-05-16 2021-04-27 Apple Inc. Methods and interfaces for home media control
US20220279063A1 (en) 2017-05-16 2022-09-01 Apple Inc. Methods and interfaces for home media control
CN111343060B (zh) 2017-05-16 2022-02-11 苹果公司 用于家庭媒体控制的方法和界面
CN107465737A (zh) * 2017-07-31 2017-12-12 广东欧珀移动通信有限公司 数据同步方法、装置、存储介质以及电子设备
US10972358B2 (en) 2017-08-30 2021-04-06 Citrix Systems, Inc. Inferring congestion and signal quality
CN108259566A (zh) * 2017-12-22 2018-07-06 浪潮通用软件有限公司 一种应用的数据同步方法及装置
KR102582483B1 (ko) * 2018-08-23 2023-09-26 삼성전자주식회사 무선 통신 방법 및 이를 지원하는 전자 장치
KR102582479B1 (ko) * 2019-01-03 2023-09-25 삼성전자주식회사 무선 주파수 신호를 처리하는 모듈을 조절하기 위한 전자 장치
US11620103B2 (en) 2019-05-31 2023-04-04 Apple Inc. User interfaces for audio media control
DK201970533A1 (en) 2019-05-31 2021-02-15 Apple Inc Methods and user interfaces for sharing audio
US10996917B2 (en) 2019-05-31 2021-05-04 Apple Inc. User interfaces for audio media control
CN110365694B (zh) * 2019-07-23 2022-07-05 中国工商银行股份有限公司 虚拟主机与真实主机间数据同步处理的系统及方法
US11079913B1 (en) 2020-05-11 2021-08-03 Apple Inc. User interface for status indicators
US11392291B2 (en) 2020-09-25 2022-07-19 Apple Inc. Methods and interfaces for media control with dynamic feedback
US20230224794A1 (en) * 2022-01-10 2023-07-13 Motional Ad Llc Proactive Transceiver and Carrier Automated Arbitration
CN118075920B (zh) * 2024-04-18 2024-07-02 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 蓝牙设备入网方法、系统、蓝牙网关及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080081605A1 (en) 2006-09-29 2008-04-03 Cole Terry L Connection manager with location learning
US20120196644A1 (en) 2007-02-05 2012-08-02 Wefi, Inc. Dynamic Network Connection System and Method
WO2013187892A1 (en) 2012-06-13 2013-12-19 Nokia Corporation Cloud services in mobile heterogeneous networks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024214B2 (en) * 2002-02-26 2006-04-04 Microsoft Corporation Synchronizing over a number of synchronization mechanisms using flexible rules
US7417624B2 (en) * 2003-02-14 2008-08-26 Duff Michael J Zero-force key activation keyboard with dynamic individual key illumination
JP2005198082A (ja) * 2004-01-08 2005-07-21 Hitachi Kokusai Electric Inc 移動通信端末
US7526768B2 (en) 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
US8571005B1 (en) 2005-10-11 2013-10-29 Atmel Corporation Method and apparatus for synchronization of a master timebase with one or more slave timebases using indirect signalling of timing information
US20080080458A1 (en) * 2006-09-29 2008-04-03 Cole Terry L Connection manager with deferred configuration
US7987471B2 (en) 2007-01-26 2011-07-26 Microsoft Corporation Mobile device management proxy system
US8626141B2 (en) * 2009-07-30 2014-01-07 Qualcomm Incorporated Method and apparatus for customizing a user interface menu
GB2481254B (en) * 2010-06-18 2017-07-12 Skype Determining network quality
US8626906B1 (en) 2010-08-10 2014-01-07 Google Inc. Scheduling data pushes to a mobile device based on usage and applications thereof
JP2013128237A (ja) * 2011-12-19 2013-06-27 Nec Casio Mobile Communications Ltd 通信システム、及び携帯端末装置の通信回線選択方法
TWI571166B (zh) 2012-01-13 2017-02-11 蘋果公司 在點對點網路環境中同步站台之選擇
US8976695B2 (en) 2012-08-23 2015-03-10 Harris Corporation Wireless communications system having selective wireless communications network and related methods
US9807653B2 (en) 2014-05-30 2017-10-31 Apple Inc. Device and method for basic service set transition management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080081605A1 (en) 2006-09-29 2008-04-03 Cole Terry L Connection manager with location learning
US20120196644A1 (en) 2007-02-05 2012-08-02 Wefi, Inc. Dynamic Network Connection System and Method
WO2013187892A1 (en) 2012-06-13 2013-12-19 Nokia Corporation Cloud services in mobile heterogeneous networks

Also Published As

Publication number Publication date
KR20170037606A (ko) 2017-04-04
JP6293969B2 (ja) 2018-03-14
JP2017525295A (ja) 2017-08-31
CN106537883A (zh) 2017-03-22
US20160029146A1 (en) 2016-01-28
EP3172888B1 (en) 2020-10-21
EP3172888A1 (en) 2017-05-31
WO2016014214A1 (en) 2016-01-28
BR112017000698A2 (pt) 2017-11-14
US9661440B2 (en) 2017-05-23

Similar Documents

Publication Publication Date Title
KR101825536B1 (ko) 효율적인 애플리케이션 동기화를 트리거링하기 위한 방법들 및 시스템들
US11758014B2 (en) Scheduling of application preloading in user devices
US10972372B2 (en) Scheduling processing tasks based on predicted context
US11489941B2 (en) Pre-loading of user applications including skipping of selected launch actions
US10554786B2 (en) Dynamic adjustment of mobile device based on peer event data
US11483415B2 (en) Background pre-rendering of user applications
US20190065993A1 (en) Method for automating actions for an electronic device
US20200380984A1 (en) Synchronization of remote context data
US9465679B2 (en) Dynamic adjustment of mobile device based on adaptive prediction of system events
KR101723203B1 (ko) 통신 네트워크 내의 모바일 디바이스로의 애플리케이션 데이터의 전송 제어를 위한 장치 및 방법
WO2018055506A1 (en) An optimized content-delivery network (cdn) for the wireless last mile
US20150351033A1 (en) Dynamic Adjustment of Mobile Device Based on Voter Feedback
US20220124483A1 (en) Nomination of a primary cell phone from a pool of cell phones
US10582508B2 (en) Facilitation of network resources
US20150140973A1 (en) System and method for ensuring a call is made from within a call application
Kaisar Smartphone traffic characteristics and context dependencies
US11722443B1 (en) Techniques for media item display configuration
US20170013137A1 (en) Techniques to detect video transfer from network usage

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right