KR101617057B1 - 시간 제안을 사용한 데이터 전달의 조정 - Google Patents

시간 제안을 사용한 데이터 전달의 조정 Download PDF

Info

Publication number
KR101617057B1
KR101617057B1 KR1020117006262A KR20117006262A KR101617057B1 KR 101617057 B1 KR101617057 B1 KR 101617057B1 KR 1020117006262 A KR1020117006262 A KR 1020117006262A KR 20117006262 A KR20117006262 A KR 20117006262A KR 101617057 B1 KR101617057 B1 KR 101617057B1
Authority
KR
South Korea
Prior art keywords
time
computing device
delivery time
delivery
activation times
Prior art date
Application number
KR1020117006262A
Other languages
English (en)
Other versions
KR20110061578A (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 KR20110061578A publication Critical patent/KR20110061578A/ko
Application granted granted Critical
Publication of KR101617057B1 publication Critical patent/KR101617057B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/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/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling

Abstract

제1 컴퓨팅 장치와 연관된 리소스의 알려진 전원 시간에 기초하여 복수의 제2 컴퓨팅 장치로부터 제1 컴퓨팅 장치로의 데이터 전달을 조정하는 것에 대해 기술되어 있다. 제2 컴퓨팅 장치들 중 하나가 데이터 전달을 위한 시간 간격을 요청한다. 제1 컴퓨팅 장치는 요청된 시간 간격을 알려진 전원 시간과 비교하여 전달 시간을 결정한다. 예를 들어, 요청된 시간 간격이 리소스를 사용하는 반복적인 스케줄의 활성화 시간 및 이전에 결정된 전달 시간과 비교된다. 제2 컴퓨팅 장치는, 리소스를 절감하기 위해, 결정된 전달 시간에 데이터를 전달한다. 일부 실시예에서, 처리 지연 및 네트워크 대기시간에 대해 전달 시간이 조정된다.

Description

시간 제안을 사용한 데이터 전달의 조정{COORDINATING DATA DELIVERY USING TIME SUGGESTIONS}
휴대폰 및 PDA(personal digital assistant) 등의 모바일 컴퓨팅 장치가 최근에 점점 더 보편화되었다. 장치가 계속하여 더 작아짐에 따라, 메모리, 저장소, 대역폭 및 배터리-전원 등의 리소스가 점점 더 제한되고 있다. 그에 부가하여, 보다 많은 응용 프로그램이 현재 이러한 리소스를 점점 더 많이 사용한다. 예를 들어, 많은 응용 프로그램은 빈번한 무선기 사용을 필요로 하는 서버와의 동기화 등의 반복적인 작업을 실행한다. 모바일 컴퓨팅 장치 상의 무선기가 데이터를 전송하기 위해 켜진 후에, 무선기가 꺼지는 데 몇초가 걸린다(예를 들어, 2.5G 네트워크에서는 약 3초 그리고 3G 네트워크에서의 약 20초). 모바일 컴퓨팅 장치에서 이러한 무선기 "테일"(radio tail)은 전력을 소비하고 배터리 수명을 단축시킨다. 게다가, 무선기를 기동시키고 무선기를 종료시키는 데 있어서 기타 전원 비효율이 있다.
실시간 데이터 푸시(data push) 또는 업데이트와 연결된 응용 프로그램이 모바일 사용자에 의해 널리 채택되고 있다. 응용 프로그램은 전자 메일, 개인 정보 관리, 현재 상태 정보, 및 기타 웹 응용 프로그램을 포함한다. 서버는 비조정된 방식으로 데이터를 푸시하며, 그로써 모바일 컴퓨팅 장치의 배터리 수명이 열화되고 사용자 경험에 부정적 영향을 미친다.
<발명의 개요>
본 발명의 실시예는 복수의 제2 컴퓨팅 장치로부터 적어도 하나의 제1 컴퓨팅 장치로의 데이터의 전달을 조정한다. 제2 컴퓨팅 장치들 중 하나가 데이터 전달을 위한 시간 간격을 요청한다. 제1 컴퓨팅 장치는 요청된 시간 간격을 제1 컴퓨팅 장치와 연관된 통신 리소스의 복수의 알려진 전원 시간과 비교한다. 전달 시간이 결정되고 제2 컴퓨팅 장치에게 제공된다. 데이터 전달을 조정하는 것은 제1 컴퓨팅 장치 상의 통신 리소스를 절감시킨다. 일부 실시예에서, 처리 지연 및 네트워크 대기시간에 대해, 결정된 전달 시간이 조정된다.
이 요약은 이하에서 상세한 설명에 더 기술되는 일련의 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징 또는 필수적인 특징을 확인하기 위한 것이 아니며, 청구된 발명 대상의 범위를 정하는 데 보조 수단으로 사용되기 위한 것도 아니다.
도 1은 제1 컴퓨팅 장치가 복수의 제2 컴퓨팅 장치로부터 데이터를 수신하는 것을 나타낸 예시적인 블록도.
도 2는 본 발명의 측면을 구현하는, 컴퓨팅 장치가 리소스 및 컴퓨터-실행가능 구성요소의 알려진 전원 시간을 저장하는 것을 나타낸 예시적인 블록도.
도 3은 요청된 시간 간격을 반복적인 스케줄의 활성화 시간 및 이전에 제안된 전달 시간과 비교하여 서버에 제안할 전달 시간을 결정하는 것을 나타낸 예시적인 플로우차트.
도 4는 데이터 전달 시간을 결정하는 것 및 결정된 전달 시간을 처리 지연 및 네트워크 대기시간에 기초하여 조정하는 것을 나타낸 예시적인 플로우차트.
도 5는 모바일 컴퓨팅 장치와 연관된 통신 리소스의 알려진 전원 시간에 기초하여 데이터 전달 시간을 결정하는 것을 나타낸 예시적인 플로우차트.
도 6은 2개의 서버로부터 모바일 컴퓨팅 장치로의 데이터 전달을 스케줄링하는 것을 나타낸 예시적인 순서도.
대응하는 참조 문자는 도면 전체에 걸쳐 대응하는 부분을 나타낸다.
도면을 참조하면, 본 발명의 실시예는 복수의 제2 컴퓨팅 장치(104)로부터 적어도 하나의 제1 컴퓨팅 장치(102)로의 데이터 전달을 조정하여, 제1 컴퓨팅 장치(102) 상의 통신 리소스의 사용을 감소시킨다. 일부 실시예에서, 복수의 제2 컴퓨팅 장치(104)가 동시에 또는 거의 동시에 제1 컴퓨팅 장치(102)로 데이터를 전송하도록, 제1 컴퓨팅 장치(102)는 전달 시간(예를 들어, 최적의 전달 시간)의 암시, 제안, 추천, 또는 할당을 제2 컴퓨팅 장치(104)에게 제공한다. 제1 컴퓨팅 장치(102)가 모바일 컴퓨팅 장치(602)인 일례에서, 조정된 데이터 전달은 모바일 컴퓨팅 장치(602)의 배터리 수명을 유지하기 위해 하나 이상의 셀룰러 무선기의 알려진 전원 시간(예를 들어, 무선기 기동)을 이용한다. 그렇지만, 다른 일례에서, 본 발명의 측면은 제1 컴퓨팅 장치(102) 상의 임의의 리소스를 절감하거나, 그 리소스의 사용을 감소시키거나, 그 리소스의 수명을 연장시키거나, 그 리소스를 최적화시키도록 동작할 수 있다.
일부 실시예에서, 모바일 컴퓨팅 장치(602)는, 그 다음의 스케줄링된 무선기 시간을 식별하고 네트워크 대기시간(214)을 고려한 다음에 이 무선기 시간을 관심있는 응용 프로그램 또는 서버에게 공표(publish)하기 위해, 알려진 스케줄링 데이터를 사용한다. 일례에서, 서버 통신 및 장치 스케줄 둘다가 동일한 무선기 기동(radio spin up)을 이용하도록, 공표된 시간은 그 다음의 스케줄링된 무선기 시간보다 약간 이전이다. 예를 들어, 장치 스케줄은 오전 9시에 활성화되는 것이고, 공표된 시간은 오전 8시 59분 45초이다. 그러면, 서버 통신은 무선기를 깨우는 오전 8시 59분 45초에 행해진다.
"퍼지(fuzz)" 또는 허용 범위 인자가 각각의 스케줄(208)과 연관되어 있는 실시예에서, 허용 범위 인자는 제2 컴퓨팅 장치(104)가 제1 컴퓨팅 장치(102)와 접촉할 시간을 정하고 조정하기 위한 더 큰 시간 창(time window)을 제공한다. 10분 간격 스케줄이 50%의 허용 범위 인자를 가지는 일례에서, 제2 컴퓨팅 장치(104)는 무선기 기동을 이용하기 위해 시각 5 내지 시각 10 사이의 어느 때라도 제1 컴퓨팅 장치(102)와 접촉할 수 있다. 허용 범위 인자는 무선기 기동이 이용될 가능성을 증가시킨다.
다시 도 1을 참조하면, 예시적인 블록도는 제1 컴퓨팅 장치(102)가 복수의 제2 컴퓨팅 장치(104)(예를 들어, 제2 컴퓨팅 장치 #1 내지 제2 컴퓨팅 장치 #N, 단 N은 양의 정수임)로부터 데이터를 수신하는 것을 나타내고 있다. 제2 컴퓨팅 장치(104)는 네트워크(106)(예를 들어, 인터넷 등)를 통해 제1 컴퓨팅 장치(102)에 연결된다. 일부 실시예에서, 도 3, 도 4 및 도 5에 예시된 것과 같은 동작은 스케줄러(108), 또는 기타 구성요소, 명령어 또는 논리에 의해 제1 컴퓨팅 장치(102) 상에서 수행된다.
제2 컴퓨팅 장치(104)는 데이터를 제1 컴퓨팅 장치(102)로 주기적으로(예를 들어, 정기적으로 또는 간헐적으로) 전송하기 위해 서비스를 실행한다. 일부 실시예에서, 제2 컴퓨팅 장치(104)는 실시간 콘텐츠 업데이트를 제1 컴퓨팅 장치(102)에게 제공한다(예를 들어, 메일, 일정, 연락처, 인스턴트 메시징 및 소셜 네트워크 데이터를 푸시한다). 제2 컴퓨팅 장치(104)는 또한 제2 컴퓨팅 장치(104)와 제1 컴퓨팅 장치(102) 사이의 연결을 열어두기 위해 하트비트 ping(heartbeat ping)을 전송 또는 수신할 수 있다.
제2 컴퓨팅 장치(104)는 데이터를 서버, 프록시 서버, 엔터프라이즈 서버, 또는 제1 컴퓨팅 장치(102)로 전송하는 임의의 다른 장치를 포함하지만, 이들로 제한되지 않는다. 게다가, 일부 실시예에서 모바일 컴퓨팅 장치(602)를 비롯한 제1 컴퓨팅 장치(102)를 참조하여 기술되어 있지만, 본 발명의 측면은 랩톱 컴퓨터, 게임 콘솔, 핸드헬드 내비게이션 장치, 또는 제2 컴퓨팅 장치(104)와 통신하는 임의의 다른 장치 등의 기타 장치에서 동작할 수 있다. 그에 부가하여, 본 발명의 실시예는 서버가 데이터를 모바일 컴퓨팅 장치(602)로 전송하는 것을 참조하여 기술되고 있지만, 본 발명의 측면은 제1 컴퓨팅 장치(102)와 제2 컴퓨팅 장치(104) 간의 피어-투-피어 연결 등의 기타 환경에서 동작할 수 있다.
그 다음에 도 2를 참조하면, 예시적인 블록도는 본 발명의 측면을 구현하는, 제1 컴퓨팅 장치(102) 등의 컴퓨팅 장치(202)가 리소스 및 컴퓨터-실행가능 구성요소의 알려진 전원 시간을 저장하는 것을 나타낸 것이다. 컴퓨팅 장치(202)는 프로세서(204) 및 메모리 영역(206) 또는 기타 컴퓨터-판독가능 매체를 포함한다. 메모리 영역(206)은 스케줄 #1 내지 스케줄 #M(단, M은 양의 정수임) 등의 복수의 스케줄(208)을 저장한다. 데이터를 컴퓨팅 장치(202)로 전송하기 위해 스케줄(208)이 제2 컴퓨팅 장치(104)와 연관되고 그에 의해 제공된다. 응용 프로그램은 연관된 제2 컴퓨팅 장치(104) 등의 장치로/로부터 데이터를 전송/수신하기 위해 각자의 스케줄(208)을 실행하고, 이로 인해 컴퓨팅 장치(202) 상의 셀룰러 무선기 등의 통신 인터페이스가 켜지게 된다. 예를 들어, 응용 프로그램은 컴퓨팅 장치(202)에 의해 호스팅된다. 각각의 스케줄(208)은 활성화 시간(210)을 가지며, 각각의 스케줄(208)은 적어도 하나의 제2 컴퓨팅 장치(104)와 연관되어 있다. 일부 실시예에서, 스케줄(208)은 반복적인 활성화 시간(210)을 가진다.
스케줄(208)의 실행은 활성화 시간(210)에 스케줄(208)과 연관된 하나 이상의 동작을 수행 또는 실행하는 것을 포함한다. 예를 들어, 활성화 시간(210)은 연관된 제2 컴퓨팅 장치(104)가 데이터를 컴퓨팅 장치(202)로 전송하게 될 시간을 절대 시간 또는 오프셋으로 나타낸다. 데이터의 전송은 컴퓨팅 장치(202) 상의 전력-소비 리소스(예를 들어, 하나 이상의 셀룰러 무선기 등의 통신 리소스 또는 무선기 리소스)를 사용한다. 스케줄(208)이 통신 리소스가 사용될 알려진 장래의 시간을 나타내고 있지만, 메모리 영역(206)은 다른 대안으로서 또는 그에 부가하여 통신 리소스의 하나 이상의 알려진 전원 시간을 명확히 저장하고 있을 수 있다.
일부 실시예에서, 메모리 영역(206)에 저장된 스케줄(208)은 조건부 스케줄(208), 무조건부(unconditional) 스케줄(208), 통신 리소스를 사용하는 스케줄(208), 및 통신 리소스(또는 최적화될 기타 리소스)를 사용하지 않는 스케줄(208)을 포함한다. 이러한 실시예에서, 컴퓨팅 장치(202)는 전달 시간을 결정할 때 스케줄(208)의 부분집합을 필터링하거나, 검색하거나, 다른 방식으로 발생한다. 예를 들어, 무조건부 스케줄(208)은 조건부 스케줄(208)보다 실행될 가능성이 더 많고(예를 들어, 실행 확률이 가장 높고), 그에 따라, 무조건부 스케줄(208)과 연관된 활성화 시간(210)은 전달 시간을 결정할 때 조건부 스케줄(208)과 연관된 활성화 시간(210)보다 우선순위 또는 선호도를 부여받는다.
다른 실시예에서, 스케줄(208)은 사전-정렬되거나, 사전-필터링되거나, 또는 다른 방식으로 그룹화된다. 예를 들어, 메모리 영역은, 전달 시간의 결정을 빠르게 하기 위해, 조건부, 무조건부, 리소스-사용 및 비리소스-사용 스케줄(208)의 개별적인 그룹을 저장할 수 있다.
메모리 영역(206)은 또한 처리 지연(212) 및 네트워크 대기시간(214)를 저장하고 있다. 처리 지연(212)은 컴퓨팅 장치(202) 상에서의 처리로 인한 지연을 나타낸다. 네트워크 대기시간(214)은 네트워크(106)가 데이터를 컴퓨팅 장치(202)로 전송하는 것으로 인한 지연을 나타낸다. 일부 실시예에서, 처리 지연(212) 및 네트워크 대기시간(214) 중 어느 하나 또는 둘다가 오프셋으로 표현된다. 처리 지연(212) 및 네트워크 대기시간(214)은 컴퓨팅 장치(202)에서 보다 정확한 전달 시간을 제공하는 데 사용된다. 일부 실시예에서, 처리 지연(212) 및 네트워크 대기시간(214)은 컴퓨팅 장치(202)에 의해 결정된다(예를 들어, 처리 또는 네트워크 전송 동안의 시간 차를 측정함). 다른 실시예에서, 네트워크 대기시간(214)은 [예를 들어, 데이터를 컴퓨팅 장치(202)로 전송하는 장치에 의해] 컴퓨팅 장치(202)에게 제공된다.
메모리 영역(206)은 또한 하나 이상의 이전에 결정된 전달 시간(216)을 저장하고 있다. 이전에 결정된 전달 시간(216)은 데이터를 컴퓨팅 장치(202)로 전달하기 위한 암시된 또는 제안된 시간을 나타낸다. 이전에 결정된 전달 시간(216)은 장래에 일어날 시간을 나타낸다. 현재 시간이 오후 12시 30분인 일례에서, 컴퓨팅 장치(202)는 오후 12시 40분의 전달 시간을 결정하여 제1 응용 프로그램에게 제공한다. 제2 응용 프로그램으로부터 전달 시간의 요청을 수신할 시에, 컴퓨팅 장치(202)는 오후 12시 40분의 이전에 결정된 전달 시간을 알고 있으며, 도 3을 참조하여 이하에서 더 상세히 기술하는 바와 같이, 컴퓨팅 장치(202) 상의 통신 리소스의 사용을 조정하기 위해, 이 시간을 제2 컴퓨팅 장치(104)에게 제공하는 것을 고려할 수 있다.
메모리 영역(206)은 또한 인터페이스 구성요소(218), 캐시 구성요소(220), 암시 구성요소(222) 및 공표 구성요소(224) 등의 하나 이상의 컴퓨터-실행가능 구성요소를 저장하고 있다. 이들 구성요소의 동작에 대해서는 도 5를 참조하여 이하에서 기술한다.
그 다음에, 도 3을 참조하면, 예시적인 플로우차트는 요청된 시간 간격을 스케줄(208)의 활성화 시간(210) 및 이전에 제안된 전달 시간(216)과 비교하여 서버에 제안할 전달 시간을 결정하는 것을 나타내고 있다. 302에서, 제1 컴퓨팅 장치(102) 등의 컴퓨팅 장치는 다른 컴퓨팅 장치[서버 또는 제2 컴퓨팅 장치(104) 등]로부터 요청된 시간 값을 수신한다. 시간 값은, 일부 실시예에서, 최소 시간 값 및 최대 시간 값을 지정하는 시간 값 또는 범위를 포함한다. 시간 값은 절대 시간 또는 현재 시간[예를 들어, 제1 컴퓨팅 장치(102)에 의한 수신 시간]으로부터의 오프셋일 수 있다. 시간 간격을 지정하는 예시적인 수단은 부록 A에 나타내어져 있다.
요청된 시간 값을 수신할 시에, 304에서, 제1 컴퓨팅 장치(102)는 스케줄(208)과 연관된 하나 이상의 다가오는 활성화 시간(210)을 식별한다. 예를 들어, 제1 컴퓨팅 장치(102)는 통신 리소스(또는 최적화될 다른 리소스)를 사용하는 스케줄(208)과 연관된 활성화 시간(210)을 식별한다. 제1 컴퓨팅 장치(102)는 이어서 무조건부 스케줄(208)과 연관되어 있는 활성화 시간(210)을 식별한다. 이러한 스케줄(208)이 이용가능하지 않은 경우, 제1 컴퓨팅 장치(102)는 조건부 스케줄(208)과 연관된 활성화 시간(210)을 식별한다.
304에서, 제1 컴퓨팅 장치(102)는 또한 하나 이상의 이전에 결정된 전달 시간(216)을 식별한다. 예를 들어, 제1 컴퓨팅 장치(102)는 메모리 영역(206)에 저장된 이전에 결정된 전달 시간(216)에 액세스한다. 306에서, 요청된 시간 값은 식별된 활성화 시간(210) 및 이전에 결정된 전달 시간(216)과 비교된다. 이 비교에 기초하여, 역시 306에서, 제1 컴퓨팅 장치(102)는 전달 시간을 결정한다. 요청된 시간 값이 간격인 일례에서, 결정된 전달 시간은 그 간격 내의 시간을 나타낸다. 다른 대안으로서 또는 그에 부가하여, 결정된 전달 시간은 다가오는 활성화 시간들(210) 중 하나 또는 이전에 결정된 전달 시간들(216) 중 하나에 대응하는 시간을 나타낸다. 이러한 실시예에서, 통신 리소스의 사용이 최적화되는 이유는 다수의 서버가 통신 리소스가 켜져 있는 동안에 통신 리소스를 사용할 것이기 때문이다.
308에서, 결정된 전달 시간이 서버에게 제공된다. 서버는, 제공된 전달 시간에, 데이터를 제1 컴퓨팅 장치(102)로 전송한다. 일부 실시예에서, 요청된 시간 값은 제1 컴퓨팅 장치(102) 상에서 실행되지만 서버와 연관된 응용 프로그램으로부터 수신된다. 이러한 실시예에서, 결정된 전달 시간은 응용 프로그램에게 제공된다. 응용 프로그램은 결정된 전달 시간을 서버에게 전달하고, 서버는, 결정된 전달 시간에, 이 데이터를 제1 컴퓨팅 장치(102)로 전송한다.
복수의 서버가 데이터를 제1 컴퓨팅 장치(102)로 전송하고자 하는 실시예에서, 각각의 서버는 그와 연관된 우선순위를 가진다. 제1 컴퓨팅 장치(102)는 전달 시간을 결정할 때 할당된 우선순위를 사용한다. 예를 들어, 특정의 시간 간격에 대해 통신 리소스가 이용가능한 경우, 전달 시간을 요청하는 우선순위가 높은 서버는 특정의 시간 간격에서 보다 이른 결정된 전달 시간을 수신할 것이다. 우선순위가 낮은 서버는 특정의 시간 간격 내에서 보다 늦은 결정된 전달 시간을 수신할 것이다.
그 다음에 도 4를 참조하면, 예시적인 플로우차트는 데이터 전달 시간을 결정하는 것 및 결정된 전달 시간을 처리 지연(212) 및 네트워크 대기시간(214)에 기초하여 조정하는 것을 나타낸다. 402에서, [예를 들어, 제1 컴퓨팅 장치(102)가] 서버 또는 다른 제2 컴퓨팅 장치(104)에 의해 요청된 시간 간격에 액세스한다. 요청된 시간 간격은 서버가 데이터를 제1 컴퓨팅 장치(102)로 전송하고자 하는 시간 범위를 나타낸다. 404에서, 요청된 시간 간격 내에 있는 활성화 시간(210)의 부분집합을 식별하기 위해 활성화 시간(210)[그리고, 일부 실시예에서, 이전에 결정된 전달 시간(216)]이 검색된다. 406에서, 통신 리소스의 사용을 조정하기 위해, 활성화 시간(210)의 식별된 부분집합에 기초하여 전달 시간이 결정된다. 408에서, 처리 지연(212) 및/또는 네트워크 대기시간(214)에 대응하는 오프셋에 기초하여, 결정된 전달 시간이 조정된다. 410에서, 결정된 전달 시간이 서버에 공표된다.
전달 시간을 결정하는 예시적인 명령어 또는 동작이 부록 B에 기술되어 있다.
그 다음에 도 5를 참조하면, 예시적인 플로우차트는 모바일 컴퓨팅 장치(602)와 연관된 통신 리소스의 알려진 전원 시간에 기초하여 데이터 전달 시간을 결정하는 것을 나타낸다. 도 5의 일례에서, 인터페이스 구성요소(218), 캐시 구성요소(220), 암시 구성요소(222) 또는 공표 구성요소(224)는 모바일 컴퓨팅 장치(602) 상에서 실행된다. 502에서, 인터페이스 구성요소(218)는 요청된 시간 간격 또는 값을 수신하거나 그에 액세스한다. 시간 간격은 서버로부터 모바일 컴퓨팅 장치(602)로의 예상된 데이터 전송과 연관되어 있다. 504에서, 캐시 구성요소(220)는 모바일 컴퓨팅 장치(602) 상의 통신 리소스의 하나 이상의 예상된 전원 시간을 식별한다. 예상된 전원 시간은, 예를 들어, 통신 리소스 또는 이전에 결정된 전달 시간(216)을 사용하는, 모바일 컴퓨팅 장치(602) 상에서 실행되는 스케줄(208)에 대한 다가오는 활성화 시간(210)을 나타낸다.
506에서, 암시 구성요소(222)는, 인터페이스 구성요소(218)에 의해 수신되는 요청된 시간 간격과 캐시 구성요소(220)에 의해 식별되는 예상된 전원 시간의 비교에 기초하여, 전달 시간을 결정한다. 예를 들어, 암시 구성요소(222)는 전달 시간을, 예상된 전원 시간들 중 하나에 대응하는 시간 간격의 시작으로 설정한다. 일부 실시예에서, 인터페이스 구성요소(218)에 의해 수신되는 요청은 예상된 데이터 전송의 크기를 나타내는 페이로드 값을 포함한다. 이러한 실시예에서, 암시 구성요소(222)는 모바일 컴퓨팅 장치(602)에서의 대역폭을 관리하기 위해[예를 들어, 통신 리소스의 스래싱(thrashing)을 피하기 위해] 수신된 페이로드 값에 기초하여 전달 시간을 결정한다. 예를 들어, 작은 페이로드를 갖는 데이터 패킷이 먼저 전송되고 이어서 큰 페이로드를 갖는 데이터 패킷이 오도록 우선순위가 부여된다. 페이로드 크기에 대한 다른 대안으로서 또는 그에 부가하여, 인터페이스들 중 일부를 통과하는 페이로드가 우선순위를 부여받고 우선순위 내림차순으로 전송된다.
508에서, 공표 구성요소(224)는 암시 구성요소(222)에 의해 결정된 전달 시간을 서버에게 제공한다. 서버는, 제공된 전달 시간에, 데이터를 모바일 컴퓨팅 장치(602)로 전송한다.
일부 실시예에서, 모바일 컴퓨팅 장치(602)는 복수의 셀룰러 무선기를 가진다. 이러한 실시예에서, 인터페이스 구성요소(218)에 의해 수신되는 요청은 셀룰러 무선기들 중 하나의 셀룰러 무선기의 ID를 포함한다. 다른 실시예에서, 모바일 컴퓨팅 장치(602)는 요청을 셀룰러 무선기들 중 하나에 할당한다. 또 다른 실시예에서, 지속된 연결을 가지는 각각의 스케줄(208)에 의해 사용되는 무선기가 추적된다. 식별된 셀룰러 무선기는 암시 구성요소(222)에서 전달 시간을 결정하는 데 사용되는 또 하나의 변수가 된다. 이러한 실시예에서, 메모리 영역(206)에 저장된 각각의 이전에 결정된 전달 시간(216)은 연관된 셀룰러 무선기의 ID를 포함한다. 암시 구성요소(222)는, 전달 시간을 결정할 때, 동일한 식별된 셀룰러 무선기를 가지는 스케줄(208)에 우선순위를 부여한다.
그 다음에 도 6을 참조하면, 예시적인 순서도는 2개의 서버로부터 모바일 컴퓨팅 장치(602)로의 데이터 전달을 스케줄링하는 것을 나타낸다. 모바일 장치 상에서 실행되는 2개의 응용 프로그램(604, 606)은 모바일 컴퓨팅 장치(602)에게 데이터 전달을 위한 암시를 요청한다. 스케줄러(108)로부터 암시를 수신할 시에, 응용 프로그램(604, 606)은 이 암시를 연관된 서버(610, 612)에게 제공한다. 이어서, 서버(610, 612)는, 암시된 시간에, 데이터를 모바일 컴퓨팅 장치(602)로 전송하려고 시도한다.
도 6의 일례에서, 알려진 전원 시간[예를 들어, 다가오는 활성화 시간(210) 또는 이전에 결정된 전달 시간(216)]의 목록을 ServerSendTime의 목록이라고 한다. ServerSendTime의 목록은 스케줄러(108) 또는 다른 서비스의 시작 동안에 생성되고, 스케줄러(108)가 처리를 종료할 때 소거된다. ServerSendTime의 목록은 캐시로서 취급되며, 따라서 캐시 항목이 요청된 시간 간격 내에 속하는 경우, 캐시 항목은 다른 전달 시간을 결정할 때 후보로서 간주된다. 일부 실시예에서, 캐시는 <key, value> = <ServerSendTime, frequency>를 가지는 해시 맵으로서 표현된다. <ServerSendTime, frequency>의 맵은 key (ServerSendTime)에 따라 정렬된다. 이러한 일례에서, 맵은 종료 시간에 가장 가까운 ServerSendTime의 식별을 빠르게 해준다.
일부 실시예에서, 각각의 스케줄(208)에 대한 활성화 시간(210)은 활성화 시간(210)에 따라 (예를 들어, 오름차순으로) 정렬된 캐시로서 저장된다. 캐시는 모든 활성 스케줄(208)의 활성화 시간(210)을 저장한다. 전달 데이터에 대한 서버로부터의 각각의 수신된 요청으로 캐시가 생성되거나 업데이트된다. 일부 실시예에서, 스케줄러(108)는, 서버가 적절한 전달 시간을 선택할 수 있게 해주기 위해, 단순히 이 캐시를 제공하거나 공표한다.
도 6의 일례에서, 요청된 시간 간격을 수신할 때, 스케줄러(108)는 캐시에 걸쳐 반복하여, 만료된[예를 들어, 현재 시간보다 작은 활성화 시간(210)을 가지는] 모든 항목을 삭제한다. 스케줄러(108)는 스케줄(208)에 걸쳐 반복하여, 모바일 컴퓨팅 장치(602) 상의 통신 리소스를 사용하는 활성인 반복적인 스케줄(208)의 부분집합을 식별한다. 스케줄(208)의 부분집합 내의 각각의 스케줄(208)의 그 다음 활성화 시간(210)이 계산된다. 스케줄(208)의 이 부분집합으로부터, 스케줄러(108)는 서버에 의해 요청된 시간 간격 내에 속하는 활성화 시간(210)을 식별한다. 스케줄러(108)는 실행 확실성(certainty of execution)이 높은 스케줄(208)과 연관된 활성화 시간(210)에 선호도를 부여한다. 예를 들어, 실행을 위한 조건을 가지지 않는 스케줄(208)은 실행 확실성이 높다. 스케줄러(108)는 스케줄(208)의 식별된 부부집합에 기초하여 활성화 시간(210)의 캐시를 업데이트한다.
스케줄러(108)는 활성화 시간(210)의 캐시 및 ServerSendTime의 목록에 기초하여 전달 시간 또는 기타 암시 시간을 결정한다. 활성화 시간들(210) 중 하나가 요청된 시간 간격 내에 속하는 경우, 활성화 시간(210)이 ServerSendTime의 목록에 추가되고, 빈도수(frequency)가 1로 설정된다. 활성화 시간(210)의 캐시에 만족시키는 활성화 시간(210)이 없는 경우, 스케줄러(108)는 ServerSendTime의 목록을 스캔한다. ServerSendTime들 중 하나가 요청된 시간 간격 내에 속하는 경우, 그 ServerSendTime이 요청측 서버에게 제공되고, 목록에서 그 ServerSendTime의 빈도수가 증가된다. 2개 이상의 ServerSendTime이 간격 내에 속하는 경우, 최고 빈도수를 가지는 ServerSendTime이 선택된다. 어떤 ServerSendTime도 요청된 시간 간격 내에 속하지 않는 경우, (예를 들어, 정의된 허용 범위 또는 델타 영역에 기초하여) 가장 가까운 ServerSendTime이 선택된다. 전달 시간은 가장 가까운 ServerSendTime의 시작으로 설정된다. 어떤 ServerSendTime도 시간 간격 내에 속하지 않는 경우, 요청된 시간 간격의 종료 시간이 ServerSendTime으로 설정된다. 이어서, 종료 시간이 빈도수 1을 가지고서 ServerSendTime의 목록에 들어간다.
도 6의 일례가 예시적인 전달 시간 결정을 나타내고 있지만, 다른 선택 방법이 본 발명의 측면의 범위 내에 속한다. 게다가, 선택 방법이 동적으로 변경될 수 있다.
일부 실시예에서, 최소 시간 값은 현재 시간이고, 최대 시간 값은 최대 하트비트 간격(heartbeat interval)[예를 들어, 모바일 컴퓨팅 장치(602) 및 서버가 데이터를 전송하지 않으면서 여전히 연결을 유지할 수 있는 최장 기간]을 나타낸다.
일 실시예(도시 생략)에서, 서버는 하나 이상의 서버로부터의 데이터를 스테이징(staging)하는 프록시 서버이다. 프록시 서버는, 데이터를 모바일 컴퓨팅 장치(602)로 전송하기 전에, 데이터를 스테이징한다. 프록시 서버는 데이터 패킷에(또는 서버에) 우선순위를 할당한다. 우선순위는 (예를 들어, 패킷을 지연시키는 허용 범위에 대해) 모바일 컴퓨팅 장치(602)에 대한 데이터 패킷을 받을 긴급성을 나타낸다. 프록시 서버는 데이터를 전송하기 전에 기다릴 의향(예를 들어, 단위: 분)으로 우선순위를 정량화한다. 모바일 컴퓨팅 장치(602)에서, 응용 프로그램은 데이터 패킷을 발신하는 서버가 데이터 전달을 지연시킬 의향이 있는 기간과 동일한 최소 시간(예를 들어, 현재 시간) 및 최대 시간을 제공한다. 모바일 컴퓨팅 장치(602) 응용 프로그램이 하트비트 ping을 서버로 전송할 때, 하트비트 ping은 결정된 전달 시간 또는 서버가 데이터를 전송하기에 가장 최적인 장래의 시간에 대한 암시를 포함한다.
ServerSendTime은 서버가 데이터를 전송하는 시작 시간을 나타낸다. ServerSendTime(예를 들어, 셀룰러 무선기 테일) 이후의 어떤 기간에 리소스가 이용가능한 것으로 알려져 있는 실시예에서, 이 기간이 스케줄러(108)에 의해 고려된다. 예를 들어, 알려진 셀룰러 무선기 테일에 기초하여 허용 범위 또는 델타 영역이 설정된다.
일례에서, 메일 서버는 암시를 요청하고 최소 시간 및 최대 시간으로서 12시와 12시 20분을 제공한다. 스케줄러(108)는 10분 간격의 기간 스케줄로 12시 20분에 활성 연결을 갖는 활성 스케줄을 가지고 있다. 스케줄러(108)는 활성 스케줄을 식별하고, 네트워크 대기시간(214) 및/또는 처리 지연(212)(예를 들어, 30초)을 고려하기 위해 전달 시간을 조정하며, 12시 19분 30초의 전달 시간을 결정하고, 결정된 전달 시간을 서버에게 제공한다.
직전의 일례의 변형에서, 어떤 활성화 시간(210)도 요청된 시간 간격 내에 속하지 않는다. 이 일례에서, 스케줄러(108)는 12시 20분의 최대 시간을 결정된 전달 시간(예를 들어, ServerSendTime)으로서 설정한다.
계속하여 직전의 일례에서, 또 하나의 서버는 12시 15분 및 12시 30분을 최소 시간 및 최대 시간으로서 제공한다. ServerSendTime은 요청된 시간 간격 내에 속하는 12시 20분이다. 네트워크 대기시간(214)을 조정한 후에, 스케줄러(108)는 12시 19분 30초를 결정된 전달 시간으로서 제공한다.
예시적인 운영 환경
제한이 아닌 예로서, 컴퓨터-판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함한다. 컴퓨터 저장 매체는 컴퓨터-판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등의 정보를 저장한다. 통신 매체는 일반적으로 컴퓨터-판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 반송파 또는 기타 전송 메커니즘 등의 피변조 데이터 신호(modulated data signal)에 구현하고 모든 정보 전달 매체를 포함한다. 상기한 것들의 임의의 것의 조합도 역시 컴퓨터-판독가능 매체의 범위 내에 포함된다.
예시적인 컴퓨팅 시스템 환경과 관련하여 기술되어 있지만, 본 발명의 실시예는 다수의 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경 또는 구성에서 동작한다. 본 발명의 측면에서 사용하기에 적합할 수 있는 공지의 컴퓨팅 시스템, 환경 및/또는 구성의 일례로는 모바일 컴퓨팅 장치, 개인용 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩톱 장치, 멀티프로세서 시스템, 게임 콘솔, 마이크로프로세서-기반 시스템, 셋톱 박스, 프로그램가능 가전 제품, 휴대폰, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들 또는 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만, 이들로 제한되지 않는다.
본 발명의 실시예는 일반적으로 하나 이상의 컴퓨터 또는 기타 장치에 의해 실행되는, 프로그램 모듈 등의 컴퓨터-실행가능 명령어와 관련하여 기술될 수 있다. 컴퓨터-실행가능 명령어는 하나 이상의 컴퓨터-실행가능 구성요소 또는 모듈로 구성될 수 있다. 일반적으로, 프로그램 모듈은 특정의 작업을 수행하거나 특정의 추상 데이터 형식을 구현하는 루틴, 프로그램, 개체, 구성요소, 및 데이터 구조를 포함하지만, 이들로 제한되지 않는다. 본 발명의 측면은 임의의 수 및 구성의 이러한 구성요소 또는 모듈로 구현될 수 있다. 예를 들어, 본 발명의 측면이 도면에 예시되고 본 명세서에 기술된 특정의 컴퓨터-실행가능 명령어 또는 특정의 구성요소나 모듈로 제한되지 않는다. 본 발명의 다른 실시예는 본 명세서에 예시되고 기술된 것보다 더 많거나 더 적은 기능을 갖는 상이한 컴퓨터-실행가능 명령어 또는 구성요소를 포함할 수 있다.
본 명세서에 예시되고 기술된 실시예는 물론 본 명세서에 구체적으로 기술되어 있지는 않지만 본 발명의 측면의 범위 내에 속하는 실시예가 요청된 시간 간격 내의 무선기 리소스의 알려진 전원 시간에 기초하여 전달 시간을 결정하는 예시적인 수단과, 처리 지연(212) 및 대기시간에 기초하여 전달 시간을 조정하는 예시적인 수단을 포함한다.
달리 언급하지 않는 한, 본 명세서에 예시되고 기술된 본 발명의 실시예에서의 동작의 실행 또는 수행 순서가 필수적인 것은 아니다. 즉, 달리 언급하지 않는 한, 동작이 임의의 순서로 수행될 수 있고, 본 발명의 실시예가 본 명세서에 개시된 것보다 더 많은 또는 더 적은 수의 동작을 포함할 수 있다. 예를 들어, 특정의 동작을 다른 동작보다 이전에, 그와 동시에 또는 그 이후에 실행하거나 수행하는 것이 본 발명의 측면의 범위 내에 속하는 것으로 생각된다.
본 발명의 측면 또는 본 발명의 실시예의 구성요소를 소개할 때, "한", "어떤", "그" 및 "상기"와 같은 표현은 하나 이상의 구성요소가 있다는 것을 의미하기 위한 것이다. "포함하는", "구비하는" 및 "갖는"과 같은 용어는 포함적이고 또 열거된 구성요소 이외의 부가의 구성요소가 있을 수 있다는 것을 의미하기 위한 것이다.
본 발명의 측면에 대해 상세히 기술하였지만, 첨부된 특허청구범위에 한정되어 있는 본 발명의 측면의 범위를 벗어나지 않고 여러 수정 및 변형이 가능하다는 것이 명백할 것이다. 본 발명의 측면의 범위를 벗어나지 않고 상기한 구조, 제품 및 방법에 다양한 변경이 행해질 수 있기 때문에, 이상의 설명에 포함되고 첨부 도면에 도시된 모든 내용이 제한적인 의미가 아니라 예시적인 것으로 해석되어야 한다.
부록 A
이하에 나타낸 응용 프로그래밍 인터페이스(API)는 응용 프로그램이 최소 시간 및 최대 시간 간격을 제공할 수 있게 해준다. 제1 컴퓨팅 장치 상에서 실행되는 스케줄러는 2개의 간격 사이에 속하는 암시(hint)를 (예를 들어, 세계 표준시 코드 형식으로) 반환한다. API 서명이 이하에 주어져 있다.
Figure 112011019795995-pct00001
이 API는 서버가 startTime과 endTime 사이에서 데이터를 장치로 전송할 암시 시간(hint time)을 가져온다.
매개변수
startTime
[입력] 간격의 시작 시간
endTime
[입력] 간격의 종료 시간
serverSendTime
[출력] 서버가 데이터를 장치로 전송해야 하는 암시 시간
반환값
S_OK
성공하는 경우에 반환되는 값
E_INVALIDARG
임의의 전제 조건이 실패하는 경우에 또는 유효하지 않은 인수에 대해 반환되는 값
E_FAIL
성공하지 않는 경우에 반환되는 값
TaskSchedulerGetBestNetworkTimeInRange ()에 의해 이전에 반환된 암시를 취소하는 예시적인 API가 이하에 주어져 있다. 이 API는 암시를 사용하지 않게 되버리는 임의의 요청자에 의해 사용된다. 이 API는, 적어도 암시된 시간이 공표될 때 더 높게 가중되기 때문에, 본 발명의 측면의 정확도 및 유효성을 향상시킨다. 이 API 함수 호출에 의해, 스케줄러는 암시 시간 값의 사용을 면밀하게 추적하고, 그 후에 암시 시간을 배분할 때 스케줄러에 의해 내부적으로 사용되는 추론을 향상시킨다. 이하의 일례에서, TaskSchedulerCancelBestNetworkTime을 사용하여 기존의 암시를 취소하는 호출자(계정)는 TaskSchedulerGetBestNetworkTimeInRange를 사용하여 암시를 가져온 바로 그 호출자(계정)이다.
HRESULT TaskSchedulerCancelBestNetworkTime (__in const FILETIME *serverSendTime);
매개변수
serverSendTime
[입력] TaskSchedulerGetBestNetworkTimeInRange에 의해 이전에 반환된 암시 시간.
반환값
S_OK
암시 시간의 발표가 추적되었다.
S_FALSE
암시 시간이 인식되지 않았다(그 값이 "만료"되었거나 TaskSchedulerGetBestNetworkTimeInRange에 의해 이전에 반환되지 않았다).
E__*
요청을 처리하는 동안 만나게 되는 다른 실패.
부록 B
전달 시간을 결정하는 예시적인 명령어 또는 동작이 이하에 주어져 있다.
ServerSendTime의 목록이 서비스 시작 동안에 생성되고 서비스가 종료될 때 소거된다. 이 목록은 캐시로서 취급되며, 그로써 캐시 항목이 간격 내에 속하는 경우, 모든 스케줄에 걸쳐 반복하여 ServerSendTime을 다시 계산할 필요없이 캐시 항목이 ServerSendTime에 대한 후보로서 간주될 수 있다. 캐시가 내부적으로 <key, value> =<ServerSendTime, mapAcctIdtoFreq>를 가지는 해시 맵으로서 표현될 수 있으며, 여기서 mapAcctIdtoFreq는 소유자 계정 id의 해시 맵이고, 다음과 같이 정의될 수 있다:
map<ACCTID, DWORD> mapAcctIdtoFreq;
<ServerSendTime mapAcctIdtoFreq>의 맵은 key (ServerSendTime)에 따라 정렬된다.
NRT (nextruntime)에 따라 정렬된 <NRT>의 목록도 역시 유지된다. 이 목록은 API가 호출될 때마다 생성된다. 이 목록은 모든 활성 스케줄의 NRT를 저장한다.
그 다음에, 전달 시간을 결정하는 예시적인 알고리즘에 대해 기술한다.
1. 캐시에 걸쳐 반복하여, 만료된(예를 들어, NRT < CurrentTime인) 모든 항목을 삭제한다.
2. starttime==endTime일 때, 존재하지 않는 경우, 그 값을 캐시 <ServerSendTime, mapAcctIdtoFreq >에 추가하고, ServerSendTime이 캐시에 이미 존재하는 경우, mapAcctIdtoFreq에서의 빈도수를 다른 방식으로 부가/증가시킨다.
3. ShrinkFactor가 레지스트리에 정의되어 있는 경우, 축소 인자(shrink factor)에 기초하여 (starttime-endTime) 간격을 감소시킨다. Starttime이 newStartTime에 푸시되고, 간격은 (newStartTime-endTime)으로 된다.
정의되지 않은 경우, newStartTime= starttime이다.
hinttime을 항상 종료 시간에 가깝도록 위해 이것이 행해진다.
4. 그룹 모음에 걸쳐 반복한다.
5. 각각의 그룹 내의 모든 스케줄에 걸쳐 반복한다.
6. 하기의 조건을 만족시키는 스케줄만을 고려한다.
a) 반복 != BOOTUP
b) 네트워크 연결 = TRUE (SendServerTime에 대해 네트워크 연결을 갖지 않는 스케줄이 고려되지 않는 이유는 이들이 무선기 기동을 감소시키는 데 도움을 줄 수도 주지 않을 수도 있기 때문이다)
c) IsCellularPreferred = 1인 경우, CELLULAR=ON을 갖는 스케줄만을 고려한다. IsCellularPreferred=0인 경우, CELLULAR 조건을 고려하지 않는다.
d) 활성 = TRUE. 고려된 스케줄은 현재 활성이고 newStartTime - endtime 및 MaxRuncounts 조건이 만족되는 경우 장래에 활성으로 있게 될 스케줄을 포함한다.
7. 다음에 기술되는 바와 같이 단계 6에서 생성된 목록으로부터 ServerSendTime이 생성된다. (예를 들어, 단계 6에서 생성된) 목록에서 선택된 각각의 스케줄에 대해, N번째 RunTime을 계산한다. N번째 RunTime은 수식을 사용하여 계산된다.
반복 평균에 대해
NRT (N) = NRT (N-1) + CurrentIntervalDuration
반복 간격에 대해
NRT (N) = NRT (N-1)+ CurrentIntervalDuration
여기서 NRT (0) = 그룹 활성 스케줄 그 다음 런타임. 하기의 2개의 카테고리에 속하는 스케줄만을 고려한다.
a) 조건을 갖지 않는 스케줄이 그룹 내의 유일한 스케줄이다.
b) 조건을 갖지 않는 스케줄 및 그룹 내의 모든 다른 스케줄도 조건을 갖지 않는다.
그룹 내의 적어도 하나의 스케줄이 어떤 조건을 가지는 경우, 그 그룹은 ServerSendTime에 대해 고려되지 않는다.
8. 이 결과, <NRT>의 목록 및 <ServerSendTimes, mapAcctIdtoFreq >의 캐시가 얻어진다. 그 다음에, 간격 <newStartTime,endTime> 내의 "최상의" 암시 시간이 선택된다. 레지스트리 설정 IsPreferredCache에 기초하여, 적어도 2개의 순열이 가능하다.
a) IsPreferredCache=1인 경우, 먼저 캐시 <ServerSendTimes, mapAcctIdtoFreq >에서 ServerSendTime를 찾는다.
단지 하나의 ServerSendTime이 발견되는 경우, 단계 10으로 간다.
다수의 ServerSendTime 값이 발견되는 경우, 최대 빈도수를 가지는 ServerSendTime를 찾고 단계 10으로 간다.
다수의 ServerSendTime 값이 발견되고 2개 이상의 ServerSendTime이 동일한 최대값을 가지는 경우, UseEndtime 레지스트리 값에 기초하여 하나를 선택한다.
UseEndTime= 1인 경우,
종료 간격에 가까운 값을 선택한다.
UseEndTime= 1인 경우,
시작 간격에 가까운 값을 선택한다.
그렇지 않고 캐시에서 발견되지 않는 경우, 목록 <NRT>를 조사한다.
b) IsPreferredCache=0인 경우, 먼저 목록 <NRT>에서 ServerSendTime를 찾는다. ServerSendTime이 발견되는 경우, 단계 10으로 간다.
다수의 NRTS가 발견되는 경우, UseEndTime 레지스트리 값에 기초하여 하나를 선택한다.
UseEndTime= 1인 경우,
종료 간격에 가까운 값을 선택한다.
UseEndTime= 1인 경우,
시작 간격에 가까운 값을 선택한다.
그렇지 않고 목록 <NRT>에서 발견되지 않는 경우, 캐시 <ServerSendTime,mapAcctIdToFreq>를 조사한다.
9. 단계 8로부터 ServerSendTime이 발견되지 않는 경우,
ShrinkFactor=0이면,
델타 영역을 계산하고, 캐시 <ServerSendTime, mapAcctIdtoFreq>로부터 델타 영역 내의 ServerSendTime을 찾는다. 델타 영역이 Starttime-delta부터 Starttime까지로 간주될 수 있다.
델타 영역에서도 ServerSendTime이 발견되지 않는 경우, UsedEndTime 레지스트리 값에 기초하여 ServerSendTime을 할당한다.
UseEndTime =1인 경우,
ServerSendTime= Endtime
UsedEndTime=0인 경우,
ServerSendTime=StartTime
ShrinkFactor=1이면,
이 경우에 델타 영역이 검사될 수 없는데, 그 이유는 starttime이 이미 새로운 값으로 푸시되기 때문이다.
ServerSendTime을 EndTime에 할당한다.
ServerSendTime= EndTime
10. 단계 8로부터 ServerSendTime이 발견되는 경우,
a. NetworkLatencyAdjustment ServerSendTime= ServerSendTime-NetworkLatencyAdjustment로 ServerSendTime을 조정한다.
새로운 ServerSendTime > StartTime인지를 검사한다. (ShrinkFactor를 적용하지 않은 StartTime)
아니오인 경우, ServersendTime= StartTime를 할당한다. (ShrinkFactor를 적용하지 않은 StartTime)
11. 이제 ServerSendTime이 계산되고, 캐시 <ServerSendTimes, mapAcctIdtoFreq >에서 이 ServerSendTime 값을 찾는다.
a. 캐시에서 발견되지 않는 경우, 소유자 계정 id 및 빈도수=1과 함께 이 값을 추가한다.
b. 캐시에서 발견되는 경우, 계정 id를 찾는다. 계정 id도 존재하는 경우, 빈도수를 증가시킨다. 계정 Id가 존재하지 않는 경우, 빈도수=1과 함께 계정 id를 추가한다.
12. 어떤 시간 값으로 TaskSchedulerCancelBestNetworkTime이 호출되는 경우, 캐시 <ServerSendTimes, mapAcctIdtoFreq >에서 그 값을 검색할 것이다. 그 값이 캐시에서 발견되는 경우, 소유자 계정 id에 대한 대응하는 mapAcctIdtoFreq가 검색된다. mapAcctIdtoFreq에서 어떤 값이 발견되는 경우, 빈도수가 감소된다. 빈도수=0일 때, mapAcctIdtoFreq로부터 항목을 제거한다. 또한, mapAcctIdtoFreq이 비어 있는 경우, 캐시 <ServerSendTimes, mapAcctIdtoFreq>로부터 ServerSendTime 값을 제거한다.
유의할 점:
1) NetworkLatencyAdjustment는 네트워크 대기시간 및 처리 지연을 사용하여 결정되는 값이다. 이것은 네트워크 대기시간을 고려하는 구성가능 레지스트리 항목이다. ServerSendTime이 반환될 때마다, 이는 NetworkLatencyAdjustment만큼 오프셋되어야 한다.
2) 장치의 절대 시간이 변하는 경우, 캐시 <ServerSendTime,frequency> 내의 시간 값이 시간 변화에 기초하여 조정되어야 한다. 이것은 timechange 이벤트의 통지로 등록함으로써 행해질 수 있다.
3) 시작/종료 시간이 장래에 너무 세밀한 상태에서(예를 들어, 나중에 간격이 10년임) API가 호출되는 시나리오가 있을 수 있다. 이러한 경우에, NRT<N>를 계산하는 대신에, API에서 경계 검사가 수행된다(예를 들어, 간격이 현재 시간으로부터 24시간 이내에 있음).
4) StarttimePreferred/EndtimePreferred 및 FrequencyPreferred를 포함하는 레지스트리 값은 구성가능 레지스트리 항목이다. 이들 레지스트리 값에 기초하여, 선택 알고리즘이 동적으로 변경될 수 있다.

Claims (20)

  1. 네트워크를 통해 서버로부터 모바일 컴퓨팅 장치로 데이터를 전송하는 시간을 제안(suggest)하는 시스템으로서,
    복수의 활성화 시간을 저장하는 메모리 영역으로서, 상기 활성화 시간은 복수의 스케줄과 연관되어 있고, 상기 복수의 스케줄의 활성화는 상기 모바일 컴퓨팅 장치 상의 무선기 리소스(radio resource)를 소비하며, 상기 메모리 영역은 또한 상기 모바일 컴퓨팅 장치 상에서의 처리 지연 및 상기 네트워크와 연관된 대기시간(latency)을 나타내는 오프셋을 저장하는, 상기 메모리 영역; 및
    프로세서를 포함하고,
    상기 프로세서는
    데이터를 상기 모바일 컴퓨팅 장치로 전송하기 위해 상기 서버에 의해 요청된 시간 간격을 액세스하고,
    상기 복수의 활성화 시간의 부분집합(subset)을 식별하기 위해, 상기 요청된 시간 간격에 기초하여, 저장된 상기 복수의 활성화 시간을 검색하며,
    상기 복수의 활성화 시간의 식별된 부분집합에 기초하여, 전달(delivery) 시간을 결정하고,
    상기 메모리 영역에 저장된 상기 오프셋에 기초하여, 결정된 상기 전달 시간을 조정하며,
    조정된 상기 전달 시간을 공표(publish)하도록 프로그램되어 있으며,
    상기 서버는, 공표된 상기 조정된 전달 시간에 기초하여, 상기 데이터를 상기 모바일 컴퓨팅 장치로 전송하는 것인 시스템.
  2. 제1항에 있어서,
    상기 결정된 전달 시간은, 현재 시간으로부터의 오프셋을 포함하는 것인 시스템.
  3. 제1항에 있어서,
    상기 프로세서는, 또한 상기 모바일 컴퓨팅 장치 상에서 실행되는 서버-관련 응용 프로그램으로부터 상기 시간 간격을 수신하도록 프로그램되어 있는 것인 시스템.
  4. 제1항에 있어서,
    상기 서버는, 공표된 활성화 시간에, 상기 데이터를 상기 모바일 컴퓨팅 장치로 전송하는 것인 시스템.
  5. 제1항에 있어서,
    상기 프로세서는, 또한 실행 확률이 가장 높은(greatest likelihood of execution) 스케줄을 식별함으로써 상기 부분집합 중 하나를 선택하도록 프로그램되어 있는 것인 시스템.
  6. 제1항에 있어서,
    상기 모바일 컴퓨팅 장치는 복수의 무선기들(radios)을 포함하고, 상기 프로세서는 상기 서버로부터 상기 시간 간격에 대한 요청 - 상기 요청이 상기 무선기들 중 하나를 식별함 - 을 수신하도록 프로그램되어 있으며 , 상기 프로세서는, 상기 요청된 시간 간격 및 식별된 상기 무선기에 기초하여, 상기 저장된 복수의 활성화 시간을 검색하도록 프로그램되어 있는 것인 시스템.
  7. 제1항에 있어서,
    상기 요청된 시간 간격 내에서 상기 무선기 리소스에 대한 알려진 전원 시간에 기초하여 상기 전달 시간을 결정하기 위한 수단; 및
    상기 처리 지연 및 상기 대기시간에 기초하여 상기 전달 시간을 조정하기 위한 수단을 더 포함하는 시스템.
  8. 방법에 있어서,
    요청된 시간 값을, 네트워크를 통해 제1 컴퓨팅 장치에 의해, 제2 컴퓨팅 장치로부터 수신하는 단계;
    복수의 스케줄과 연관된 복수의 활성화 시간을 식별하는 단계로서, 상기 복수의 스케줄의 활성화는, 상기 제1 컴퓨팅 장치 상의 리소스를 소비하는, 상기 복수의 활성화 시간을 식별하는 단계;
    하나 이상의 이전에 결정된 전달 시간을 식별하는 단계;
    상기 요청된 시간 값을 식별된 상기 복수의 활성화 시간 및 식별된 상기 이전에 결정된 전달 시간과 비교하여 상기 식별된 복수의 활성화 시간의 부분집합 및 상기 식별된 이전에 결정된 전달 시간의 부분집합을 식별하는 단계;
    상기 식별된 복수의 활성화 시간의 상기 식별된 부분집합과 상기 식별된 이전에 결정된 전달 시간의 상기 식별된 부분집합에 기초하여 전달 시간을 결정하는 단계;
    상기 제1 컴퓨팅 장치 상의 처리 지연 및 상기 네트워크와 연관된 대기시간을 나타내는 오프셋에 기초하여 상기 결정된 전달 시간을 조정하는 단계; 및
    상기 조정된 전달 시간을 상기 제2 컴퓨팅 장치에 제공하는 단계를 포함하며,
    상기 제2 컴퓨팅 장치는, 제공된 상기 조정된 전달 시간에, 데이터를 상기 제1 컴퓨팅 장치로 전송하는 것인 방법.
  9. 제8항에 있어서,
    상기 요청된 시간 값을 수신하는 단계는, 최소 시간 값 및 최대 시간 값을 수신하는 단계를 포함하는 것인 방법.
  10. 제8항에 있어서,
    상기 요청된 시간 값을 수신하는 단계는, 상기 요청된 시간 값을 상기 제2 컴퓨팅 장치와 연관된 응용 프로그램으로부터 수신하는 단계를 포함하고, 상기 제1 컴퓨팅 장치가 상기 응용 프로그램의 실행을 호스팅하고, 상기 방법은 제2 컴퓨팅 장치로 전달하기 위해, 상기 결정된 전달 시간을 상기 응용 프로그램에게 제공하는 단계를 더 포함하는 방법.
  11. 제8항에 있어서,
    상기 제2 컴퓨팅 장치는, 복수의 컴퓨팅 장치 중 하나이고, 상기 복수의 컴퓨팅 장치의 각각은 그와 연관된 우선순위를 가지며, 상기 전달 시간을 결정하는 단계는 상기 제2 컴퓨팅 장치와 연관된 상기 우선순위에 기초하여 상기 전달 시간을 결정하는 단계를 포함하는 것인 방법.
  12. 제8항에 있어서,
    상기 복수의 활성화 시간을 식별하는 단계는, 무조건부(unconditional) 스케줄과 연관된 복수의 활성화 시간을 식별하는 단계를 포함하는 것인 방법.
  13. 제8항에 있어서,
    상기 시간 값은 시간 간격을 포함하고,
    상기 전달 시간을 결정하는 단계는, 상기 이전에 결정된 전달 시간 중 하나에 대응하는, 상기 시간 간격 내의 전달 시간을 결정하는 단계를 포함하는 것인 방법.
  14. 제8항에 있어서,
    상기 시간 값은 시간 간격을 포함하고,
    상기 전달 시간을 결정하는 단계는, 상기 복수의 활성화 시간 중 하나에 대응하는, 상기 시간 간격 내의 전달 시간을 결정하는 단계를 포함하는 것인 방법.
  15. 제8항에 있어서,
    상기 시간 값은 시간 간격을 포함하고,
    상기 전달 시간을 결정하는 단계는, 상기 시간 간격 내의 전달 시간을 결정하는 단계를 포함하고, 결정된 상기 전달 시간은 상기 복수의 활성화 시간 중 하나보다 이른 것인 방법.
  16. 제8항에 있어서, 상기 제1 컴퓨팅 장치와 연관되는 처리 지연을 결정하는 단계를 더 포함하는 방법.
  17. 제1 컴퓨팅 장치로의 데이터 전달을 관리하기 위한 컴퓨터-실행가능 구성요소들(components)을 갖는 하나 이상의 컴퓨터-판독가능 저장 매체에 있어서,
    상기 구성요소들은,
    요청된 시간 간격 - 상기 요청된 시간 간격은, 네트워크를 통한 제2 컴퓨팅 장치로부터 상기 제1 컴퓨팅 장치로의 예상된 데이터 전송과 연관되어 있음 - 을 수신하기 위한 인터페이스 구성요소;
    상기 제1 컴퓨팅 장치 상의 통신 리소스와 연관된 복수의 예상된 활성화 시간을 식별하기 위한 캐시 구성요소;
    상기 복수의 예상된 활성화 시간의 부분집합에 기초하여 전달 시간을 결정하기 위한 암시(hint) 구성요소로서, 상기 부분집합은, 상기 인터페이스 구성요소에 의해 수신된 상기 시간 간격과 상기 캐시 구성요소에 의해 식별된 상기 복수의 예상된 활성화 시간과의 비교로부터 생성되며, 결정된 상기 전달 시간은 상기 제1 컴퓨팅 장치 상의 처리 지연 및 상기 네트워크와 연관된 대기시간을 나타내는 오프셋에 기초하여 조정되는, 상기 암시 구성요소; 및
    상기 암시 구성요소에 의해 결정된 상기 조정된 전달 시간을 상기 제2 컴퓨팅 장치에 제공하기 위한 공표(publication) 구성요소를 구비하며,
    상기 제2 컴퓨팅 장치는, 제공된 상기 조정된 전달 시간에, 데이터를 상기 제1 컴퓨팅 장치로 전송하는 것인 하나 이상의 컴퓨터-판독가능 저장 매체.
  18. 제17항에 있어서, 상기 인터페이스 구성요소, 캐시 구성요소, 암시 구성요소, 및 공표 구성요소는 상기 제1 컴퓨팅 장치 상에서 실행되는 것인 하나 이상의 컴퓨터-판독가능 저장 매체.
  19. 제17항에 있어서, 상기 통신 리소스는 셀룰러 무선기를 포함하며, 상기 암시 구성요소는, 상기 전달 시간을, 상기 요청된 시간 간격 내의 상기 셀룰러 무선기의 상기 예상된 활성화 시간 중 하나의 시작으로 설정함으로써 상기 전달 시간을 결정하는 것인 하나 이상의 컴퓨터-판독가능 저장 매체.
  20. 제17항에 있어서, 상기 인터페이스 구성요소는, 또한 상기 예상된 데이터 전송의 예상된 크기를 나타내는 페이로드 값을 수신하고, 상기 암시 구성요소는 상기 제1 컴퓨팅 장치 상의 대역폭을 관리하기 위하여 상기 수신된 페이로드 값에 기초하여 전달 시간을 결정하는 것인 하나 이상의 컴퓨터-판독가능 저장 매체.
KR1020117006262A 2008-09-25 2009-09-24 시간 제안을 사용한 데이터 전달의 조정 KR101617057B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/237,797 2008-09-25
US12/237,797 US7966410B2 (en) 2008-09-25 2008-09-25 Coordinating data delivery using time suggestions

Publications (2)

Publication Number Publication Date
KR20110061578A KR20110061578A (ko) 2011-06-09
KR101617057B1 true KR101617057B1 (ko) 2016-04-29

Family

ID=42038744

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117006262A KR101617057B1 (ko) 2008-09-25 2009-09-24 시간 제안을 사용한 데이터 전달의 조정

Country Status (6)

Country Link
US (1) US7966410B2 (ko)
EP (1) EP2340673B1 (ko)
JP (1) JP5592380B2 (ko)
KR (1) KR101617057B1 (ko)
CN (1) CN102165818B (ko)
WO (1) WO2010036768A2 (ko)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058483A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Connection architecture for a mobile network
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US8468126B2 (en) * 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
WO2006045102A2 (en) 2004-10-20 2006-04-27 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US8010082B2 (en) * 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (fi) 2004-12-03 2006-06-30 Seven Networks Internat Oy Sähköpostiasetusten käyttöönotto matkaviestimelle
US7877703B1 (en) 2005-03-14 2011-01-25 Seven Networks, Inc. Intelligent rendering of information in a limited display environment
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US8793305B2 (en) * 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
CN102365395B (zh) * 2009-04-07 2015-04-29 巴斯夫欧洲公司 包含抑制剂的无空隙亚微米结构填充用金属电镀组合物
US8166203B1 (en) * 2009-05-29 2012-04-24 Google Inc. Server selection based upon time and query dependent hashing
GB2495066B (en) 2010-07-26 2013-12-18 Seven Networks Inc Mobile application traffic optimization
JP5620578B2 (ja) 2010-07-26 2014-11-05 セブン ネットワークス インコーポレイテッド 複数のアプリケーションにわたるモバイルネットワークトラフィック調整
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
GB2495877B (en) 2010-07-26 2013-10-02 Seven Networks Inc Distributed implementation of dynamic wireless traffic policy
US9118611B2 (en) * 2010-08-20 2015-08-25 Mosys, Inc. Data synchronization for circuit resources without using a resource buffer
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
WO2012060997A2 (en) 2010-11-01 2012-05-10 Michael Luna Application and network-based long poll request detection and cacheability assessment therefor
WO2012060996A2 (en) 2010-11-01 2012-05-10 Michael Luna Caching adapted for mobile application behavior and network conditions
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
WO2012061437A1 (en) 2010-11-01 2012-05-10 Michael Luna Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
GB2495463B (en) 2010-11-22 2013-10-09 Seven Networks Inc Aligning data transfer to optimize connections established for transmission over a wireless network
EP2636268B1 (en) 2010-11-22 2019-02-27 Seven Networks, LLC Optimization of resource polling intervals to satisfy mobile device requests
WO2012094675A2 (en) 2011-01-07 2012-07-12 Seven Networks, Inc. System and method for reduction of mobile network traffic used for domain name system (dns) queries
US9084105B2 (en) 2011-04-19 2015-07-14 Seven Networks, Inc. Device resources sharing for network resource conservation
EP2702827A4 (en) 2011-04-27 2014-10-22 Seven Networks Inc MOBILE DEVICE DISCHARGING REQUESTS MOBILE APPLICATION TO REMOTE ENTITY TO KEEP MOBILE DEVICE RESOURCES AND NETWORK RESOURCES AND RELATED METHODS
WO2012149434A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
WO2013015995A1 (en) 2011-07-27 2013-01-31 Seven Networks, Inc. Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
US8977755B2 (en) 2011-12-06 2015-03-10 Seven Networks, Inc. Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
EP2788889A4 (en) 2011-12-07 2015-08-12 Seven Networks Inc FLEXIBLE AND DYNAMIC INTEGRATION SCHEMES OF A TRAFFIC MANAGEMENT SYSTEM WITH VARIOUS NETWORK OPERATORS TO REDUCE NETWORK TRAFFIC
WO2013086447A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9380110B2 (en) 2011-12-09 2016-06-28 Google Technology Holdings LLC Adaptive data synchronization based on data plan or network usage
WO2013090821A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
WO2013090212A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
US8909202B2 (en) 2012-01-05 2014-12-09 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
WO2013116856A1 (en) 2012-02-02 2013-08-08 Seven Networks, Inc. Dynamic categorization of applications for network access in a mobile network
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
WO2013155208A1 (en) 2012-04-10 2013-10-17 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
US9736222B1 (en) * 2013-04-28 2017-08-15 Amdocs Software Systems Limited System, method, and computer program for automatically exposing application programming interfaces (APIS) associated with an application server to one or more client devices
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
CN103647727B (zh) * 2013-11-29 2017-01-18 福建星网锐捷网络有限公司 音视频传输控制方法和装置
US9906977B2 (en) 2014-04-18 2018-02-27 Apple Inc. Deterministic RRC connections
US9497771B2 (en) 2014-04-18 2016-11-15 Apple Inc. Deterministic RRC connections
US10375646B2 (en) * 2014-04-18 2019-08-06 Apple Inc. Coordination between application and baseband layer operation
US20150341280A1 (en) * 2014-05-22 2015-11-26 Toshiba Tec Kabushiki Kaisha Method to diffuse cloud peak load by dynamically adjusting communication schedules
US20160150006A1 (en) * 2014-11-21 2016-05-26 At&T Intellectual Property I, L.P. Device data transfer via a wireless interface
US10383055B2 (en) 2015-01-26 2019-08-13 Hewlett Packard Enterprise Development Lp Regulating a power consumption state of a cellular radio

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694146B1 (en) 1995-09-25 2004-02-17 Pacific Comm Sciences Inc Method for reducing time required to receive and decode a temporary equipment identifier message
US20040264397A1 (en) 2002-12-16 2004-12-30 Mathilde Benveniste Power-saving mechanism for periodic traffic streams in wireless local-area networks
US20050122233A1 (en) 2003-10-31 2005-06-09 Nec Corporation Power saving wireless telemetering system
US20070161352A1 (en) 2006-01-11 2007-07-12 Fisher-Rosemount Systems, Inc. Selective activation of field devices in low power wireless mesh networks

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924783B1 (en) * 1994-05-06 2011-04-12 Broadcom Corporation Hierarchical communications system
US5867657A (en) * 1996-06-06 1999-02-02 Microsoft Corporation Distributed scheduling in a multiple data server system
US7209949B2 (en) * 1998-05-29 2007-04-24 Research In Motion Limited System and method for synchronizing information between a host system and a mobile data communication device
US7305475B2 (en) * 1999-10-12 2007-12-04 Webmd Health System and method for enabling a client application to operate offline from a server
JP2004501523A (ja) * 1999-12-21 2004-01-15 クゥアルコム・インコーポレイテッド 時間同期セルラーネットワーク装置
US7155487B2 (en) * 2000-11-30 2006-12-26 Intel Corporation Method, system and article of manufacture for data distribution over a network
FI20012256A0 (fi) * 2001-11-20 2001-11-20 Nokia Corp Matkaviestintäverkot ja digitaaliset yleislähetyspalvelut
US7299304B2 (en) * 2001-11-20 2007-11-20 Intel Corporation Method and architecture to support interaction between a host computer and remote devices
JP2003162470A (ja) * 2001-11-27 2003-06-06 Fujitsu Ltd 配信制御プログラムおよび方法
JP2003230121A (ja) * 2001-11-30 2003-08-15 Fujitsu Ltd コンテンツ配信方法、コンテンツ視聴方法、サーバ装置、および端末装置
JP2003223385A (ja) * 2002-01-31 2003-08-08 Matsushita Electric Ind Co Ltd データ配信システム及びにデータ配信方法
US7130313B2 (en) * 2002-02-14 2006-10-31 Nokia Corporation Time-slice signaling for broadband digital broadcasting
KR100721298B1 (ko) * 2002-03-11 2007-05-28 리서치 인 모션 리미티드 모바일 장치에 데이터를 푸시하는 시스템 및 방법
US7110783B2 (en) * 2002-04-17 2006-09-19 Microsoft Corporation Power efficient channel scheduling in a wireless network
US8271971B2 (en) * 2002-11-26 2012-09-18 Hewlett-Packard Development Company, L.P. System and method for automated program updating in a remote appliance
CN1324858C (zh) * 2003-01-13 2007-07-04 三星电子株式会社 利用节能轮询表来减少功耗的设备和方法
US20040225525A1 (en) * 2003-05-05 2004-11-11 Weitzman Vernon L. Automatic contacts replication system and software
CA2524789C (en) * 2003-05-06 2010-09-28 Research In Motion Limited System and method of wireless device activity messaging
US7286845B2 (en) * 2003-06-30 2007-10-23 Nokia Corporation System, and associated method, for scheduling weighted transmissions from multiple antennas
US7069303B2 (en) * 2003-08-21 2006-06-27 Par3 Communications, Inc. Method and system for regulating the dispatching of messages for requestors
KR101015642B1 (ko) * 2003-09-19 2011-02-22 삼성전자주식회사 헤테로지니어스 네트워크를 통한 데이터 푸쉬 서비스시스템 및 방법
US20050071419A1 (en) * 2003-09-26 2005-03-31 Lewontin Stephen Paul System, apparatus, and method for providing Web services using wireless push
US7324474B2 (en) * 2003-10-21 2008-01-29 Qualcomm Incorporated Methods and apparatus for Network Initiated Data Services
GB2415335B (en) * 2004-06-15 2007-09-26 Toshiba Res Europ Ltd Wireless terminal dynamically programmable proxies
US20060248197A1 (en) * 2005-04-27 2006-11-02 Evans Scott C Adaptive connectionless scheduling protocol
EP1715656B1 (en) 2005-04-18 2008-05-14 Research In Motion Limited Offering a push service to a wireless device using a push proxy which monitors the coverage state of the device
CA2604897C (en) * 2005-04-18 2013-05-28 Research In Motion Limited System and method for enabling asynchronous push-based applications on a wireless device
WO2007007330A2 (en) 2005-07-11 2007-01-18 Yossi Glazer System and method for scheduling and receiving reminder messages
CN1794708A (zh) * 2005-07-29 2006-06-28 华为技术有限公司 呈现业务系统及发布呈现信息的方法
US8600336B2 (en) * 2005-09-12 2013-12-03 Qualcomm Incorporated Scheduling with reverse direction grant in wireless communication systems
US20070074217A1 (en) * 2005-09-26 2007-03-29 Ryan Rakvic Scheduling optimizations for user-level threads
FR2893476B1 (fr) * 2005-11-14 2008-01-25 Radiotelephone Sfr Procede et systeme de simulation et de gestion des ressources d'un reseau de telephonie mobile.
US7647037B2 (en) * 2006-01-31 2010-01-12 International Business Machines Corporation Location aware, on demand, media delivery to remote devices
JP4699279B2 (ja) * 2006-05-18 2011-06-08 株式会社エヌ・ティ・ティ・ドコモ 移動通信端末、配信サーバ、更新通知配信システム及び更新通知制御方法
US20080113656A1 (en) * 2006-11-15 2008-05-15 Lg Telecom Ltd. System and method for updating contents
US20080126751A1 (en) * 2006-11-27 2008-05-29 Shay Mizrachi Scheduler hint method and system to improve network interface controller (nic) receive (rx) processing cache performance
US7944868B2 (en) * 2006-12-04 2011-05-17 Nec Laboratories America, Inc. Method and system for dynamic power management in wireless local area networks
US20080170526A1 (en) * 2007-01-12 2008-07-17 Qualcomm Incorporated Method and apparatus for extending standby battery life of a wireless device
US8230436B2 (en) * 2008-01-10 2012-07-24 Microsoft Corporation Aggregating recurrent schedules to optimize resource consumption
US20090182802A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Mobile device management scheduling
US8166145B2 (en) * 2008-01-10 2012-04-24 Microsoft Corporation Managing event-based conditional recurrent schedules
US8020025B2 (en) * 2008-06-04 2011-09-13 Sony Ericsson Mobile Communications Ab Power saving scheduler for timed events
US8090826B2 (en) * 2008-06-27 2012-01-03 Microsoft Corporation Scheduling data delivery to manage device resources
US8112475B2 (en) * 2008-06-27 2012-02-07 Microsoft Corporation Managing data delivery based on device state
US7945206B2 (en) * 2009-02-04 2011-05-17 Telefonaktiebolaget L M Ericsson (Publ) Data packet transmission scheduling in a mobile communication system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694146B1 (en) 1995-09-25 2004-02-17 Pacific Comm Sciences Inc Method for reducing time required to receive and decode a temporary equipment identifier message
US20040264397A1 (en) 2002-12-16 2004-12-30 Mathilde Benveniste Power-saving mechanism for periodic traffic streams in wireless local-area networks
US20050122233A1 (en) 2003-10-31 2005-06-09 Nec Corporation Power saving wireless telemetering system
US20070161352A1 (en) 2006-01-11 2007-07-12 Fisher-Rosemount Systems, Inc. Selective activation of field devices in low power wireless mesh networks

Also Published As

Publication number Publication date
EP2340673B1 (en) 2017-04-26
KR20110061578A (ko) 2011-06-09
JP2012503952A (ja) 2012-02-09
US7966410B2 (en) 2011-06-21
JP5592380B2 (ja) 2014-09-17
CN102165818B (zh) 2014-12-31
US20100077083A1 (en) 2010-03-25
CN102165818A (zh) 2011-08-24
EP2340673A2 (en) 2011-07-06
WO2010036768A2 (en) 2010-04-01
WO2010036768A3 (en) 2010-06-17
EP2340673A4 (en) 2014-07-23

Similar Documents

Publication Publication Date Title
KR101617057B1 (ko) 시간 제안을 사용한 데이터 전달의 조정
US8090826B2 (en) Scheduling data delivery to manage device resources
KR101800902B1 (ko) 예측성 배경에 기초한 푸시된 컨텐츠 전달의 구성
RU2502116C2 (ru) Агрегирование повторяющихся планов для оптимизации потребления ресурсов
US9871756B1 (en) Methods for displaying notifications
CN110808922B (zh) 一种消息处理方法、装置、存储介质及电子设备
US8139596B2 (en) Communicating prioritized messages to a destination queue from multiple source queues using source-queue-specific priority values
US20080168130A1 (en) Method and system for determining whether to send a synchronous or asynchronous resource request
WO2015183514A1 (en) Dynamic adjustment of mobile device based on thermal conditions
US9979609B2 (en) Cloud process management
CN110609738A (zh) 自适应数据同步
CN111221638B (zh) 并发任务的调度处理方法、装置、设备和介质
US9588983B2 (en) Data classification for adaptive synchronization
KR20140063688A (ko) 이벤트 데이터 획득을 위한 스케일 아웃 시스템
US9137331B2 (en) Adaptive replication
US20230336510A1 (en) Efficiently adding capabilities across multiple bridged message brokers
GB2504673A (en) Publish and subscribe messaging system wherein transmission from broker to subscribers is phased over time
CN112399470B (zh) LoRa通信方法、LoRa网关、LoRa系统、计算机可读存储介质
US8473957B2 (en) Architecture for providing on-demand and background processing
CN111324438A (zh) 请求的调度方法、装置、存储介质及电子设备
WO2023200510A1 (en) Efficiently adding capabilities across multiple bridged message brokers
CN116132367A (zh) 一种消息处理方法、装置及电子设备
CN117331686A (zh) 请求的处理方法及装置、存储介质及电子装置
Cao et al. Dual face phased array radar scheduling with multiple constraints
Chantem et al. An Online Holistic Scheduling Framework for Energy-Constrained Wireless Real-Time Systems

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 4