KR101804198B1 - 편의적 네트워크 업데이트 - Google Patents
편의적 네트워크 업데이트 Download PDFInfo
- Publication number
- KR101804198B1 KR101804198B1 KR1020137026641A KR20137026641A KR101804198B1 KR 101804198 B1 KR101804198 B1 KR 101804198B1 KR 1020137026641 A KR1020137026641 A KR 1020137026641A KR 20137026641 A KR20137026641 A KR 20137026641A KR 101804198 B1 KR101804198 B1 KR 101804198B1
- Authority
- KR
- South Korea
- Prior art keywords
- requests
- established
- determining
- request
- network connection
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
편의적 네트워크 업데이트를 위한, 방법, 시스템, 및 장치, 그리고 컴퓨터 저장 매체에 인코드된 컴퓨터 프로그램에 관한 발명. 일 측면에 따른 방법에는, 네트워크 인터페이스를 통해 데이터를 업로드하거나 다운로드하라는 하나 이상의 요청을 실행할지를, 네트워크 인터페이스를 갖는 모바일 장치의 대기열 관리자가 결정하고; 요청을 실행할 것으로 결정되면, 대기열 관리자가, 하나 이상의 규칙을 적용하여 각 요청을 실행해야 할 요청 또는 실행하지 않아야 할 요청으로 분류하는 것이 포함된다. 이 방법에는 또한, 대기열 관리자가, 실행할 것으로 분류된 요청은 실행되도록 하고, 실행하지 않을 것으로 분류된 요청은 실행되지 않도록 하는 것이 포함된다.
Description
<관련 출원에 대한 상호 참조>
본 출원은 미국 특허출원 제61/451,885호(2011년 3월 11일 출원), 미국 특허출원 제13/216,478호(2011년 8월 24일 출원), 미국 특허출원 제13/249,305(2011년 9월 30일 출원)의 이익을 주장한다. 이들 문헌을 참고자료로서 본 명세서에 포함시킨다.
무선 네트워크 환경에서, 네트워크 연결은 그 구축상 고가의 컴퓨팅 비용이 들며, 네트워크를 불필요하게 계속 열어둘 경우에는 많은 문제점이 발생한다. 예를 들어, 소량의 데이터를 전송하는 경우에도 모바일 장치는 자신의 무선장치를 오랜시간동안 켜놓게 될 수 있으며, 이에, 중요치 않은 데이터에 대해서 정당화할 수 없는 정도로 배터리를 소모하게 된다.
하나의 전반적인 구현형태에 따르면, 모바일 장치가, 전송 대기중인 데이터를 전송할지 전송하지 않을지 여부를 결정하는 것을 지원하기 위해 애플리케이션에 특정된 규칙을 수립할 수 있다. 규칙은, 예컨대, 중복 요청, 중요하지 않거나 중대하지 않은 정보의 요청, 또는 나중에(네트워크 연결이 이미 수립된 때) 충족될 수 있는 요청 등의 특정 데이터를 전송하지 않아야 할 것으로, 또는 즉시 전송하지 않아야 할 것으로 지정할 수 있다. 모바일 장치는 규칙이 전송해야 할 것으로 지시한 데이터를 전송하고, 전송하지 않아야 할 것으로 지시한 데이터에 대해서는 다른 작업(예를 들면, 지연, 삭제, 통합, 무시)을 수행한다.
전반적으로, 본 명세서에 설명된 주제의 또 다른 측면은, 네트워크 연결이 수립되었는지를 판단한 다음에, 데이터 전송 대기열에 저장되어 있는 데이터를 네트워크 연결을 통해서 통신하기 위한 다수 요청들이 동일한 형식의 요청을 나타내는지 판단하고, 다수 요청들 중에서 하나를 선택하는 행위를 포함하는 방법으로서 구현될 수 있다. 이 행위에는 또한, 다수 요청들 중에서 선택된 요청만을 네트워크 연결을 통해 전송하는 행위가 포함된다.
전반적으로, 본 명세서에 설명된 주제의 또 다른 측면은, 다수의 데이터 업로드 또는 다운로드 요청들과, 이 요청들을 필터링하는 규칙들을 저장하도록 구성된 컴퓨터가 판독가능한 저장매체와; 네트워크 연결을 수립하도록 구성된 네트워크 인터페이스가 포함되는 시스템에서 구현될 수 있다. 이 시스템에는 또한, 규칙을 사용하여 다수의 데이터 업로드 또는 다운로드 요청을 평가하고, 규칙을 사용하여 다수의 데이터 업로드 또는 다운로드 요청을 평가함에 의해, 특정의 데이터 업로드 또는 다운로드 요청이 순환 요청인 것을 확인하고, 상기 순환 요청 하위 집합을 선택하도록 구성된 규칙 엔진이 포함된다. 이 규칙 엔진은 또한, 상기 순환 요청 하위 집합을 삭제하고, 하위 집합의 일부로서 선택되지 않은 순환 요청을 네트워크 연결을 통해서 통신하도록 구성된다.
전반적으로, 본 명세서에 설명된 주제의 또 다른 측면은, 네트워크 인터페이스를 통해 데이터를 업로드하거나 다운로드하라는 하나 이상의 요청을 실행할지를, 네트워크 인터페이스를 갖는 모바일 장치의 대기열 관리자가 결정하고; 요청을 실행할 것으로 결정되면, 대기열 관리자가, 하나 이상의 규칙을 적용하여 각 요청을 실행해야 할 요청 또는 실행하지 않아야 할 요청으로 분류하는 행위를 포함하는 방법으로 구현될 수 있다. 이 방법은 또한, 대기열 관리자가, 실행할 것으로 분류된 요청은 실행되도록 하고, 실행하지 않을 것으로 분류된 요청은 실행되지 않도록 하는 행위를 포함한다.
그 밖의 측면들에는, 컴퓨터 저장 장치에 인코딩된 상기 방법의 행위들을 수행하도록 구성되는, 해당 시스템, 장치, 컴퓨터 프로그램이 포함된다.
이들 구현형태 및 그 밖의 구현형태들은 각각, 다음과 같은 하나 이상의 특징(feature)들을 선택사항으로서 포함할 수 있다. 하나 이상의 요청을 실행할지 결정하는 것에는, 데이터를 업로드하거나 다운로드하라는 이전 요청이 실행된 이후에 소정의(사전에 정해진) 시간이 경과된 것을 판단하는 것이 추가로 포함된다. 하나 이상의 요청을 실행할지 결정하는 것에는, 요청들 중의 하나 이상과 연관된 특성을 판단하고, 상기 특성과 연관된 소정의 시간을 판단하고, 데이터를 업로드하거나 다운로드하라는 이전 요청이 실행된 이후에 상기 소정의 시간이 경과된 것을 판단하는 것이 추가로 포함된다. 상기 특성에는 요청의 우선순위가 포함된다.
일부 구현형태에서, 실행하지 않을 것으로 분류된 요청이 실행되지 않도록 하는 것에는, 실행하지 않을 것으로 분류된 요청을 삭제하는 것이 포함된다. 각 요청을 실행해야 할 요청 또는 실행하지 않아야 할 요청으로 분류하는 것에는, 요청을 제출한 애플리케이션을 나타내는, 각 요청에 연관된 정보를 식별하는 것이 추가로 포함된다. 각 요청을 실행해야 할 요청 또는 실행하지 않아야 할 요청으로 분류하는 것에는, 해당 요청이 순환 요청인지 또는 비순환 요청인지 결정하는 것이 추가로 포함된다.
일부 구현형태에서, 상기 행위들에는, 대기열 관리자가, 하나 이상의 규칙을 등록하기 위하여 애플리케이션으로부터의 요청을 수신하고, 대기열 관리자가, 하나 이상의 규칙을 등록하라는 요청을 수신하면 이 하나 이상의 규칙을 등록하는 것이 추가로 포함된다. 하나 이상의 규칙은, 특정 애플리케이션이 제출한 하나 이상의 새로운 요청이 대기처리될 때에, 이 새로운 요청이 실행되도록 지정하고 특정 애플리케이션이 제출한 하나 이상의 과거 요청이 실행되지 않도록 지정한다. 하나 이상의 규칙은, 둘 이상의 요청이 동시에 실행되도록 지정한다. 하나 이상의 규칙은, 둘 이상의 요청이 일괄 실행되도록 지정한다. 하나 이상의 규칙은, 소정의 이벤트가 발생할 때까지 하나 이상의 요청이 실행되지 않도록 지정한다.
일부 구현형태에서, 상기 소정의 이벤트에는 소정 시간의 경과가 포함된다. 다수 요청이 동일한 형식의 요청을 나타내는지 판단하는 것에는, 다수 요청이 순환 요청인지를 판단하는 것이 포함된다. 다수 요청이 순환 요청인지를 판단하는 것에는, 다수 요청이 업데이트된 위치 정보에 대한 주기적인 요청인지 판단하는 것이 포함된다. 하나 이상의 요청에는 모바일 장치와 서버 간의 데이터 동기화를 위한 요청이 포함된다. 상기 행위에는 선택되지 않은 다수 요청을 필터링하는 기능이 추가로 포함된다. 다수 요청이 동일한 형식의 요청을 나타내는지 판단하는 것에는, 다수 요청이 동일한 우선순위를 갖는지 판단하는 것이 포함된다.
본 명세서에서 설명한 기술 주제에 대한 하나 이상의 구현형태의 세부적 사항은 첨부 도면과 이하의 상세한 설명에서 기술하고자 한다. 본 기술 주제의 다른 잠재적인 특징, 측면, 그리고 장점은 상세한 설명, 도면, 및 청구범위를 통해 명확해질 것이다.
도 1은 예시 모바일 장치의 구성도이다.
도 2는 데이터를 전송 및 수신하는 데 사용할 수 있는 예시 시스템의 구성도이다.
도 3은 예시 프로세스의 흐름도이다.
도 4는 예시 대기열과 예시 규칙 데이터베이스를 보여준다.
도 5는 예시 프로세스의 시스템 처리절차도이다.
명세서 전체에서 동일한 참조 번호는 동일한 구성요소를 나타낸다.
도 2는 데이터를 전송 및 수신하는 데 사용할 수 있는 예시 시스템의 구성도이다.
도 3은 예시 프로세스의 흐름도이다.
도 4는 예시 대기열과 예시 규칙 데이터베이스를 보여준다.
도 5는 예시 프로세스의 시스템 처리절차도이다.
명세서 전체에서 동일한 참조 번호는 동일한 구성요소를 나타낸다.
도 1은, 데이터가 업로드 또는 다운로드되는 통로인 네트워크 인터페이스와, 애플리케이션(102)을 저장하는 컴퓨터가 판독가능한 기록매체를 포함하는 예시적 모바일 장치(100)의 구성도이다. 애플리케이션(102)은, 가령 이 애플리케이션의 설치(102) 중에, 하나 이상의 규칙(rule)을 규칙 데이터베이스(104)에 등록한다.
애플리케이션(102)은 시간을 두고 네트워크 인터페이스를 통해 데이터를 업로드하거나 다운로드하라는 요청(106)을 개시한다. 이 요청(106)은 즉시 수행되지 않고 대기열(queue)(108)에서 대기할 수 있다. 대기열 관리자(110)는 높은 우선순위의 요청에 대한 응답으로서, 네트워크 연결이 설정되었다는 통지에 대한 응답으로서, 모바일 장치(100)의 통신 속도가 임계 속도보다 크다는 통지에 대한 응답으로서, 또는 그 밖의 다른 이벤트에 대한 응답으로서 대기열(108)을 처리할 수 있다.
각 요청에 대해서 대기열 매니저(110)는 해당 요청에 적용되는 하나 이상의 규칙을 규칙 데이터베이스(104)에서 찾을 수 있으며, 이 하나 이상의 규칙을 요청에 적용함으로써, 요청을 실행해야 할 요청 또는 실행하지 않아야 할 요청으로 분류할 수 있다. 실행해야 할 요청은 트랜시버(112)를 사용하여 처리할 수 있다.
이러한 구성에 의해서 모바일 장치(100)는 다수의 데이터 전달(tranfer) 요청들이 대기될 때까지 데이터의 전송(transmit) 또는 수신을 지연시킬 수 있다. 개별 요청을 즉시 전송하는 것에 비해 다수의 대기 요청을 전송하면 배터리 사용량이 줄어들 수 있다. 또한, 데이터를 전달하기 전에 모바일 장치(100)는 데이터 전달 요청을 필터링하여 다른 요청과 기능상으로 중복되는 요청을 제거할 수 있다. 예를 들면, 지리적 위치 정보에 대한 다수의 대기 요청들을 걸러내어(필터링) 최종 요청 또는 최종적인 몇 개의 요청들만을 전송하도록 하여 오래된 정보가 전달되는 것을 방지할 수 있다.
더 구체적으로, 도 2는 데이터를 전송 및 수신하는 데 사용할 수 있는 예시적 시스템(200)의 구성도이다. 이 시스템(200)은 네트워크(206)를 통해 서버(204)와 통신하는 모바일 장치(202)를 포함한다. 네트워크(206)는 인트라넷과 같은 사설 네트워크, 인터넷과 같은 공공 네트워크, 또는 이들의 조합일 수 있다. 모바일 장치(202)는 하나 또는 그 이상의 프로세서(208), 트랜시버(209), 컴퓨터가 판독가능한 기록매체(210)를 포함한다. 컴퓨터가 판독가능한 기록매체(210)에는 하나 이상의 애플리케이션(212), 대기열 관리자(214), 규칙 데이터베이스(216), 그리고 대기열(218)이 포함된다.
애플리케이션(212)은 예를 들어 애플리케이션 220을 포함할 수 있다(예컨대, 애플리케이션 "123"). 단계 "A"에서, 애플리케이션(220)은 요청(222)을 규칙 데이터베이스(223)에 보내어(send) 규칙(224)을 등록하도록 한다. 애플리케이션(220)은, 예를 들어 애플리케이션(220)의 설치 작업의 일부로서 요청(222)을 보낼 수 있다. 규칙(224)과 함께, 요청(222)에는 애플리케이션(220)의 식별자(226)가 포함되어 있다.
규칙(224)은 대기 요청들을 처리할 때에 데이터를 업로드하거나 다운로드하라는 최근의 요청만이 전송되도록 지정한다. 규칙의 다른 예로서, 최근의 다섯 개 요청을 전송하거나, 모바일 장치(202)의 통신 속도가 임계 속도보다 클 경우에 요청을 전송하는 것을 들 수 있다. 규칙에 대해서는 아래에서 자세히 설명한다. 단계 "B"에서, 규칙 224는 식별자(226)와 연관된 규칙 228로서 규칙 데이터베이스(223)에 저장된다.
단계 "C"에서, 애플리케이션(220)은, 시간을 두고 다수 요청(예를 들면, 요청 230, 232, 234)을 대기열(235)로 보내는데, 여기서 각 요청(230, 232, 234)은 모바일 장치(202)로 데이터를 업로드하거나 이로부터 데이터를 다운로드하라는 애플리케이션(220)으로부터의 요청이다. 각 요청(230, 232, 234)은, 예를 들면, 애플리케이션(220)의 식별자와 타임스탬프(timestamp)를 포함할 수 있다.
요청(230, 232, 또는 234)이 데이터 다운로드 요청인 경우에, 이 요청(230, 232, 또는 234)은 예를 들면, 다운로드할 데이터에 대한 설명 또는 이에 대한 링크를 포함할 수 있다. 요청(230, 232, 또는 234)이 데이터 업로드 요청인 경우에, 이 요청(230, 232, 또는 234)은 업로드할 데이터 또는 업로드할 데이터에 대한 링크를 포함할 수 있다. 단계 "D"에서, 요청(230, 232, 234)은 각각 대기열 항목(236, 238, 240)으로서 대기열(235)에 저장된다. 시간이 지남에, 다른 애플리케이션(212)의 요청도 또한 대기열(235)에서 대기할 수 있다.
단계 "E" 에서, 트랜시버(241)가 켜지고 트랜시버(241)가 켜졌음을 알리는 신호(242)가 대기열 관리자(243)로 보내진다. 트랜시버(241)는, 예를 들면, 소정 시간 간격의 경과에 대한 응답으로서 켜질 수 있다. 예를 들면, 모바일 장치(202)를 1시간에 한 번 트랜시버를 켜도록 구성할 수 있다. 또 다른 예로서, 트랜시버(241)는 임계 속도보다 통신 속도가 큰 것을 모바일 장치(202)가 감지하면 이에 대한 응답으로서 켜질 수 있다.
단계 "F" 에서, 대기열 매니저(243)는 어느 애플리케이션이 대기열(235)에 대기열 항목을 갖고 있는지를 결정하기 위한 요청(244)을 대기열(235) 로 보낸다. 단계 "G"에서, 대기열(235)에 대기열 항목을 가지고 있는 애플리케이션(예를 들면, 애플리케이션 "123")을 나타내는 메시지(246)를 대기열 관리자(243)로 보낸다.
일부 실시예에서는 대기열(235)에 메모리와 처리 로직이 포함되지만, 다른 실시예에서는 대기열(235)에 메모리가 포함되지만 처리 로직은 포함되지 않는다. 대기열(235)에 처리 로직이 포함되는 구현방식에 있어서, 대기열 관리자(243)는 도 2에 나타낸 것과 같이, 대기열(235)이 어느 애플리케이션이 대기열(235) 내에 대기열 항목을 갖는지를 결정하도록 요청할 수 있다. 대기열(235)에 처리 로직이 포함되지 않는 구현방식에서는, 대기열 관리자(243)가 어느 애플리케이션이 대기열(235) 내에 대기열 항목을 갖는지를 결정할 수 있다.
단계 "H"에서, 대기열 매니저(243)는 대기열(235) 내에 항목들이 포함되어 있는 애플리케이션(예를 들면, 애플리케이션 220)에 연관된 규칙(있는 경우)을 찾으라는(식별하라는) 요청(248)을 규칙 데이터베이스(223)로 보낸다. 단계 "I" 에서, 애플리케이션(220)에 연관된, 규칙 데이터베이스(223) 내의 규칙(예를 들면, 규칙 228)이 식별되고 이 규칙(228)에 대응되거나 이를 식별하는 규칙 250이 대기열 관리자(243)로 보내진다.
단계 "J"에서, 대기열 매니저(243)는 규칙(250)에 해당되는 대기열(235)에 명령을 보낸다. 예를 들면, 규칙(250)은 애플리케이션(220)으로부터 데이터를 업로드하거나 여기에 데이터를 다운로드하라는 최종 요청만이 전송되도록 지정하고 있기 때문에, 대기열 매니저(243)는 최근의 대기열 항목 이외에 애플리케이션과 연관된 모든 대기열 항목을 삭제하거나 유지(예를 들면, 항목 236과 238을 삭제또는 유지)하도록 대기열 매니저(235)로 명령어(252)를 보낼 수 있다. 대기열 관리자(235)는 또한, 대기열(235)로 애플리케이션(220)에 연관된 최근 대기 항목(가령, 대기열 항목 240)이 전송됨을 나타내는 명령어(254)를 보낼 수 있다.
단계 "K" 에서, 대기열은 명령어(252 및 254)에 따라 처리된다. 예를 들면, 대기열 항목(236 및 238)을 삭제할 수 있다. 명령어 252를 처리할 때에 대기열 항목(예를 들어 대기열 항목(236 또는 238))을 삭제하지 않고 유지해야 할 경우에는, 대기열 항목(236 또는 238)을 이에 맞게 표시할 수 있다(예를 들면, 대기열 항목(236 및 238)의 옆에 "×"를 표시하여). 또 다른 예로서, 명령어 254에 대한 응답으로서는, 대기열 항목(240)을 전송할 것으로 표시할 수 있다(예를 들면, 대기열 항목(240) 옆에 체크 표시를 하여서).
단계 "L"에서, 실행해야 할 것으로 분류된 데이터 업로드 또는 다운로드 요청이 실행된다. 예를 들면, 대기열(243)에 남아있는 모든 대기열 항목과 관련된 요청이 실행될 수 있고, 또는, 전송할 것으로 표시된 대기열 항목에 해당되는 요청이 실행될 수 있다. 예를 들면, 트랜시버(241)는 대기열 항목(240)에 관련된 업로드 또는 다운로드 요청(256)을 수행할 수 있다. 예를 들면, 단계 "M"에 추가로 나타낸 것과 같이, 모바일 장치(202)는 서버(204)로, 네트워크(206)를 통해서, 데이터를 다운로드하는 요청(258)을 보낼 수 있다. 단계 "N" 에서 서버(204)는 모바일 장치(202)로 응답(260)(예컨대 요청받은 데이터가 포함됨)을 보낸다.
도 3은 예시적 프로세스(300)의 흐름도이다. 간단히 설명하면, 이 프로세스(300)는, 모바일 장치의 대기열 관리자가 데이터를 업로드하거나 다운로드하라는 하나 이상의 요청을 실행할 것을 결정하는 과정; 그리고, 요청을 실행할 것으로 결정되면, 대기열 관리자가 하나 이상의 규칙을 요청에 적용하여 각 요청을 실행되어야 할 요청인지 실행되지 않아야 할 요청인지 분류하는 것을 포함한다. 이 프로세스(300)는 또한, 대기열 관리자로 하여금, 실행되어야 할 것으로 분류된 요청은 실행하고 실행되지 않아야 할 것으로 분류된 요청은 실행하지 않도록 하는 것이 포함된다.
더 구체적으로, 프로세스(300)가 시작되면(301), 모바일 장치의 대기열 관리자는 데이터를 업로드하거나 다운로드하라는 하나 이상의 요청을 실행할 것을 결정한다(302). 데이터 업로드 또는 다운로드 요청은, 예를 들어 대기열 관리자가 관리하는 대기열에 저장될 수 있다. 대기열 관리자는 하나 이상의 조건이나 이벤트에 따라, 요청들 중 하나 이상을 실행할지를 결정할 수 있다. 예를 들면, 대기열 관리자는 모바일 장치의 통신 속도가 임계 속도보다 크다는 것을 통지받을 수 있다.
통지 이전에, 모바일 장치의 통신 속도가 임계 속도보다 낮거나 모바일 장치가 전송 불능일 수도 있다. 모바일 장치는, 모바일 장치의 통신 속도가 임계 속도보다 클 때까지 데이터 업로드 또는 다운로드 요청을 대기열에 저장하고, 모바일 장치의 통신 속도가 임계값보다 커진 것을 통지받은 때에 대기 요청을 보내도록 구성할 수 있다. 만약에 예를 들어 모바일 장치가 더 강한 무선 신호가 존재하는 위치로 이동하는 경우 또는 모바일 장치를 정착상태에서 유선으로 연결하는 경우에, 모바일 장치의 통신 속도는 임계 속도 이상으로 증가할 수 있다.
또 다른 예로서, 모바일 장치의 연결 속도에 관계없이 데이터 업로드 또는 다운로드 요청을 대기시키도록 의도적으로 구성할 수 있으며, 대기열 관리자는 예를 들어 이벤트 또는 조건에 대한 응답으로서 대기 요청을 처리하라는 통지를 수신할 수 있다. 예를 들면, 모바일 장치가 특정 시간 주기로 연결 확립되는 회수를 줄이기 위해서 다수의 대기 요청을 전송할 수 있다.
연결 회수를 줄임에 의해 모바일 장치에서의 전력 소모가 감소될 수 있다. 연결 수립시에 일반적으로 많은 양의 전력이 사용되며 소정의 배터리 충전량으로는 제한된 회수의 연결만이 지원될 뿐이다. 소정의 연결을 통해 다수의 대기 요청을 전송하여서 연결 회수를 줄이면, 매번의 요청마다 연결 확립되는 것에 비교하여 모바일 장치를 소정의 배터리 충전양에 대해서 더 오랜 시간 동안 사용할 수 있다.
일부 실시예에서는 모바일 장치를 정기적으로 대기 요청을 처리하도록 구성할 수 있다. 대기열 관리자는 데이터를 업로드하거나 다운로드하라는 이전의 요청이 실행된 후 일정 시간이 경과하였다는 통지를 받거나, 또는 판단할 수 있다. 예를 들면, 대기열 관리자는 시간별로 대기열을 처리하도록 구성할 수 있다.
아래에 자세히 설명하겠지만, 대기열을 처리할 때 대기열 관리자는 하나 이상의 규칙을 적용할 수 있다. 또한 규칙은 대기열 관리자가 대기열을 언제처리할지에 영향을 미칠 수 있다. 예를 들면, 규칙은 특정 애플리케이션 또는 애플리케이션의 특정 형식에 대한 요청이 최소한 주기적으로 실행되도록 지정할 수 있다. 예를 들면, 규칙은 전자메일 메시지를 최소한 30분마다 보내도록, 또한 특정 우선순위의 요청을 최소한 5분마다 전송하도록 지정할 수 있다.
대기열 관리자는 하나 이상의 이러한 규칙이 등록되었음을, 그리고 적어도 하나의 규칙에 적용되는 하나 이상의 요청이 대기열에 있는지를 판단할 수 있다. 대기열 관리자는 요청과 관련된 소정 시간을 정할 수 있으며, 규칙에 관한 이전 요청이 실행된 후 일정 시간이 경과되었음을 판단함으로써 이를 바탕으로, 요청을 실행할 것을 결정할 수 있다. 예를 들면, 대기열은 전자메일 메시지가 최소한 시간당 1회 보내지도록 지정하는 규칙이 등록되었음을, 그리고 마지막 전자메일 메시지가 보내지고 나서 한 시간이 되었음을 판단할 수 있다.
대기열 관리자는 특정 우선순위의 요청이 대기열에 수신되었음을 통지받을 때에 요청을 실행할 것을 결정할 수 있다. 예를 들면, 대기열 관리자는 이러한 요청이 수신되자마자 특정의 또는 더 높은 우선순위를 갖는 요청을 실행하도록 구성할 수 있다. 또 다른 예를 들면, 규칙은, 특정 애플리케이션 또는 애플리케이션의 특정 유형으로부터 온 특정의 또는 더 높은 우선순위를 갖는 요청이 수신되자마자 이들을 실행할 것을 지정할 수 있다.
대기열 관리자가 특정 우선순위를 갖는 요청을 실행할 것으로 결정하면, 대기열 관리자는 또한 특정 우선순위를 갖는 요청을 실행한 후에 다른 대기 요청들의 일부 또는 전부를 실행할 것을 결정할 수 있다. 다른 대기 요청을 실행하는 동안에 이들 대기 요청보다 더 높은 우선순위의 새로운 요청을 받으면, 상기 대기 요청의 일부 또는 전부를 실행하기 전에 이 새로운 요청을 실행할 수 있다.
대기열 관리자는 다른 조건이나 이벤트를 기반으로 요청을 실행할 것을 결정할 수 있다. 예를 들면, 대기열 관리자는 소정 개수의 요청(예를 들면, 20개 요청)이 대기열에 삽입된 후에 요청을 실행하도록 구성할 수 있다. 또 다른 예를 들면, 대기열 관리자는 특정 애플리케이션 또는 애플리케이션의 특정 형식에 대해서 소정 개수의 요청이 대기열에 삽입된 후에 요청을 실행하도록 구성할 수 있다. 예를 들면, 음악 애플리케이션에서 10개 이상의 대기 음악 다운로드 요청이 대기열에 삽입된 후에 음악 다운로드 요청을 실행할 것을 지정하는 규칙을 등록할 수 있다.
요청을 실행한다는 결정에 대한 응답으로서, 대기열 관리자는 요청에 하나 이상의 규칙을 적용하여 실행할 요청과 실행하지 않을 요청을 분류한다(304). 대기열 관리자는 예를 들어 대기열 내의 요청에 표시를 함으로써(예를 들면, 실행해야 할지 또는 실행하지 않아야 할지) 요청을 분류할 수 있다. 또 다른 예로서, 실행할 것으로 분류된 요청은 다른 대기열로 복사 또는 이동될 수 있다. 실행하지 않을 것으로 분류된 일부 또는 모든 요청은, 예를 들면, 대기열에서 삭제될 수 있다.
대기열 관리자는 각 요청에 연관된, 요청을 보낸 애플리케이션을 가리키는 정보를 식별할 수 있고, 각 애플리케이션에 연관된 하나 이상의 규칙을 (예를 들면, 규칙 데이터베이스에서) 찾을 수 있다. 규칙은 모든 요청에 대해, 특정 애플리케이션이 보낸 요청에 대해, 또는 특정 유형의 애플리케이션이 보낸 요청에 대해 적용할 수 있다.
예를 들면, 규칙은 소셜 애플리케이션으로부터의 또는 미디어 애플리케이션으로부터의 요청에 적용가능하다. 규칙은, 가령 애플리케이션 설치시에 애플리케이션을 통해 등록될 수 있다. 또 다른 예를 들면, 규칙은 사용자 입력에 기반할 수 있으며, 애플리케이션이 설치된 후에 사용자 입력에 기반하여 규칙을 추가하거나 업데이트할 수 있다.
몇몇 규칙은 순환 요청(recurring request), 가령, 시간 경과에 따라 반복될 수 있는 요청에 관할 것일 수도 있다. 순환 요청의 예로는 GPS 위치 업데이트 정보를 보내는 것 또는 소셜 애플리케이션에서 상태 업데이트 정보를 보내는 것을 들 수 있다. 규칙은, 일부 또는 전부의 기능이 중복되는 요청을 필터링할 것을 지정할 수 있는데, 이는 예컨대, 일부 또는 전부의 기능 중복 요청은 부적절하고, 오래되어 낡고, 잉여적이고, 상대적으로 중요하지 않은 것으로 간주할 수 있기 때문이다. 처리되지 않은 요청은 삭제하거나 나중의 실행을 고려하여 유지할 수 있다(예를 들면, 대기열에 보관). 일정 시간보다 더 오래 유지된 요청은 자동으로 삭제할 수 있다.
순환 요청의 경우, 규칙은 마지막 요청만을 실행하고 마지막 요청이 아닌 요청은 실행하지 말것을 지정할 수 있다. 예를 들면, 위치 기반 애플리케이션에서, 마지막 GPS 위치 업데이트 정보만 보내도록 지정하는 규칙을 등록할 수 있다. 또 다른 예로서, 순환 요청에 대해서, 규칙은 마지막 소정 개수의 요청만을(예를 들면, 5개), 첫 번째 요청만을, 처음 소정 개수의 요청만을(예를 들어 10개), 또는 소정의 요청 간격에 합치되는 요청(예를 들면, 매 5번째 요청마다)을 보낼 것을 지정할 수 있다.
일부 애플리케이션에 있어서는, 그러나, 순환 요청이 중요한 것으로 간주될 수 있으며, 규칙은 요청의 일부 또는 전부가 순환 요청이라 하더라도 모든 요청을 실행할 것을 지정할 수 있다. 예를 들면, 사용자의 하이킹여행을 추적하는 하이킹 애플리케이션에서는 모든 GPS 위치 업데이트 요청을 실행할 것을 지정하는 규칙을 등록할 수 있다.
규칙은 소정의 이벤트가 발생할 때까지 요청이 실행되지 않도록 지정할 수 있다. 예를 들면, 위에서 설명한 것처럼, 요청을 소정 기간이 경과된 후에 실행할 수 있다. 또 다른 예를 들면, 규칙은 특정 우선순위를 갖는 다른 요청이 대기열에 삽입될 때까지 요청을 무기한 유지하고 다른 요청이 실행될 때 이 요청을 실행할 것을 지정할 수 있다. 또 다른 예를 들면, 규칙은 특정 통신 속도 이상을 모바일 장치가 감지하는 경우에 요청을 실행하도록 지정할 수 있다.
규칙을 지정하는 데 다른 조건들을 사용할 수 있다. 위에서 언급한 바와 같이, 규칙은 요청을 즉시 실행하도록 지정할 수 있다. 또 다른 예를 들면, 규칙은 높은 우선순위의 요청을 우선순위가 낮은 요청보다 먼저 실행하도록 지정할 수 있다. 또 다른 예로서, 일부 규칙은 FIFO(선입선출) 방식으로 지정할 수 있고, 또 일부 규칙은 LIFO(후입 선출) 방식으로 지정할 수 있다.
예를 들면, GPS 업데이트를 위한 규칙은 최근의 요청을 먼저 실행하도록 지정할 수 있고, 미디어 다운로드를 위한 규칙은 최초의 요청을 먼저 실행하도록 지정할 수 있다. 규칙은 요청에 연관된 데이터의 양에 관련되어 있다. 예를 들면, 미디어 다운로드를 위한 규칙은, 다운로드 크기가 작은 요청을 먼저 실행하고 큰 요청을 나중에 실행하도록 다운로드 크기의 순서로 지정할 수 있다. 규칙은 네트워크 연결의 신뢰도 등의 다른 특성에도 관련되어 있다. 예를 들어, 규칙은 연결의 신뢰도가 특정 임계값에 있거나 그 이상일 때에만 요청을 전송할 것을 지정할 수 있다. 여기서 연결의 신뢰도는 예를 들어 연결의 지속시간으로 정할 수 있다.
규칙은 다중 조건에 기반할 수 있다. 예를 들면, 통신 속도에 관한 규칙은, 통신 속도가 4G인 경우에는 모든 요청을 실행하고 통신 속도가 3G인 경우에는 매 다섯 번째 요청을 실행하고 통신 속도가 1G 또는 2G인 경우에는 마지막 요청만을 처리하도록 지정할 수 있다. 또 다른 예를 들면, 규칙은, 연결 속도와 대기열에 있는 요청 수(예를 들어, 요청의 총 수 또는 특정 애플리케이션에 대한 요청의 수) 모두에 기반할 수 있다.
예를 들면, 규칙은, 연결 속도가 4G인 경우이거나 애플리케이션마다 대기열에 10개 이하의 요청이 있는 경우, 또는 연결 속도가 3G인 경우이거나 애플리케이션마다 대기열에 5개 이하의 요청이 있는 경우에, 모든 요청을 애플리케이션에 대해서 실행할 것을 지정할 수 있다. 다중 조건의 또 다른 예로서, 소셜 애플리케이션에 대한 규칙은 텍스트를 포함하는 모든 상태 업데이트 정보를 실행하도록(단, 소정 개수의 그 밖의 업데이트정보(예컨대, 사용자가 행한 지정사항(가령, "likes", "pokes")까지만) 지정할 수 있다. 일반적으로, 조건은 예를 들어 임의 수의 부울 연산자 또는 그 조합을 사용하여 지정할 수 있다.
대기열 관리자는 등록된 모든 규칙의 분석 및 각 애플리케이션 또는 애플리케이션 유형의 대기열에 있는 요청의 수에 따라, 그리고 각 요청의 하나 이상의 특성에 따라 어느 요청을 실행해야 할지를 결정할 수 있다. 예를 들면, 하나 이상의 애플리케이션에 대한 여러 규칙이 요청의 우선순위를 기반으로 하는 경우에, 그리고 대기열에 서로 다른 애플리케이션으로부터의 요청이 있는 경우에, 대기열 관리자는 모든 요청의 전체적인 우선 순위를 결정할 수 있으며, 이 전체 우선 순위에 따라 일부 또는 전부의 요청을 실행할 것을 결정할 수 있다.
하나 이상의 기본(디폴트) 규칙을 정의할 수 있다. 기본 규칙은, 예를 들어, 애플리케이션에서 정의된 규칙이 아닌 시스템에서 정의된 규칙일 수 있다. 기본 규칙은 애플리케이션 유형에 기반할 수 있다. 예를 들어, 기본 규칙을 전자메일 관련 요청에 대해 정의할 수 있으며, 전자메일 애플리케이션에 의해 애플리케이션에 의한 규칙이 등록되지 않은 경우, 이 기본 규칙을 전자메일 요청에 사용할 수 있다. 일반적으로, 대기열 관리자는 하나 이상의 규칙에 대한 요청의 적용가능성 및/또는 유사성에 따라, 요청에 사용할 하나 이상의 규칙을 결정할 수 있다.
도 3에서 계속 설명하면, 대기열 관리자는 실행해야 할 것으로 분류 된 요청이 실행되도록 하고, 실행하지 않을 것으로 분류된 요청이 실행되지 않도록 한다(306). 이로써 프로세스(300)가 종료한다(307). 예를 들어, 대기열 관리자는 다른 구성부(예를 들면, 모바일 장치의 트랜시버와 관련된 통신부)에, 실행할 것으로 대기열에 표시한 요청을 실행하거나 다른 대기열로 복사 또는 이동된 요청을 실행할 것을 통지할 수 있다. 요청이 실행되면, 요청을 제출한 애플리케이션으로 통지를 보낼 수 있다.
앞서 언급한 바와 같이 실행하지 않는 요청은 삭제할 수 있다. 실행하지 않는 요청은 분류시에 삭제되었을 수도 있고, 실행하지 않는 요청은 대기열 관리자 또는 다른 구성부에 의해서 나중에 삭제될 수도 있다. 언급한 바와 같이 실행하지 않는 요청은 향후의 실행을 고려해 대기열 내에 유지시킬 수도 있다.
도 4는, 대기열(402) 및 규칙 데이터베이스(404)의 예를 보여준다. 대기열(402) 및 규칙 데이터베이스(404)는 예를 들어 모바일 장치의 컴퓨터 판독가능 매체에 포함될 수 있다. 대기열(402)에는 요청(406~416)이 들어 있다. 각 요청(406~416)은, 예를 들면, 모바일 장치로의 데이터 업로드 또는 이로부터의 데이터 다운로드 요청일 수 있다. 요청(406~416)은 대기열(402)에 삽입된 시간에 따라 순서대로 왼쪽에서 오른쪽으로 대기열(404) 내에 들어간다. 예를 들면, 요청 406은 요청 408보다 먼저 대기열(402)에 삽입된 것이다.
대기열(402)에는 여러 애플리케이션에 연관된 정보가 포함되어 있다. 예를 들어, 요청 406 및 416은 애플리케이션 "123"과 연관된 것들이며, 각각 "현재 정보를 취득하라"는 요청을 나타낸다. 애플리케이션 "123"은 예를 들면, 일기 예보 애플리케이션 또는 주식 시세 애플리케이션일 수 있다. 요청 408 및 414는 애플리케이션 "456"과 연관된 것들이며, 각각 "상위 10개 게재물을 다운로드하라"는 요청을 나타낸다. 애플리케이션 "456"은 예를 들면, 뉴스보기 애플리케이션일 수 있다. "Fred"에게 전자메일을 보내라는 요청을 나타내는 요청 410과 "Bob"에게 전자메일을 보내라는 요청을 나타내는 요청 412는 각각, 전자메일 애플리케이션인 애플리케이션 "789"에 연관된 것들이다.
규칙 데이터베이스(404)는 규칙(420, 422, 및 424)에 대한 정보를 저장한다. 각 규칙(420, 422, 및 424)에 대해서, 규칙 데이터베이스(404)는 연관된 애플리케이션의 식별자를 저장한다. 예를 들면, 규칙(420, 422, 및 424)은 각각 애플리케이션 "123", "456", "789"에 연관되어 있다. 규칙 420은 모바일 장치로부터 데이터를 업로드하거나 모바일 장치로 데이터를 다운로드하는 데 있어서 애플리케이션 "123"에 의해 이루어진 최종 요청만을 보내도록 지정한다.
규칙 422는 모바일 장치의 연결 속도가 임계 속도보다 큰 경우 이외의 경우에는, 애플리케이션 "456"에 의해 이루어진 데이터 업로드 또는 다운로드의 최종 요청만을 보내도록 지정한다. 모바일 장치의 연결 속도가 임계 속도보다 큰 경우에는, 규칙 422는 애플리케이션 "456"에 의해 이루어진 모든 데이터 업로드 또는 다운로드 요청을 보내도록 지정한다. 규칙 424는 애플리케이션 "789"에 의해 이루어진 모든 데이터 업로드 또는 다운로드 요청을 보내도록 지정한다.
모바일 장치가 (예를 들어, 타이머 이벤트에 대한 응답으로서, 또는 임계 속도보다 큰 연결 속도 감지에 대한 응답으로서) 데이터 업로드 및 데이터 다운로드 요청을 보낸다는 통지를 받으면, 규칙 데이터베이스(404)에 있는 규칙들이 대기열(402)에 적용되어 각 대기열 항목(406~416)을 실행할 것과 실행하지 않을 것으로 분류할 수 있다. 예를 들면, 규칙 424를 애플리케이션 "789"와 연관된 요청(410 및 412)에 적용할 수 있다. 규칙 424는 애플리케이션 "789"에 의한 모든 요청을 실행하도록 지정하는 것이기 때문에, 요청 410 및 412는 실행해야 할 것으로 분류될 수 있다. 이를 각각 지시란 426, 428에 나타내었다.
또 다른 예로서, 규칙 420을 애플리케이션 "123"과 연관된 요청(406 및 416)에 적용할 수 있다. 요청 416은 애플리케이션 "123"에 의한 마지막(예컨대, 최신) 요청으로서 식별할 수 있고, 규칙 420에 따라 요청 416은 실행해야 할 요청으로 분류할 수 있다(예를 들어, 지시란 430에 표시되어 있음). 그리고 애플리케이션 "123"에 의한 마지막 요청이 아닌 것으로 인식된 요청 406은 실행하지 않는 요청으로 분류할 수 있다(예를 들어, 지시란 432에 표시되어 있음).
또 다른 예로서, 규칙 422를 애플리케이션 "456"과 연관된 요청(408 및 414)에 적용할 수 있다. 현재의 연결 속도가 규칙(420)에 들어 있는 임계 속도보다 크지 않다고 가정하면, 규칙 422는 규칙 420과 사실상 동일하게 처리되어, 애플리케이션 "456"에 의한 마지막 요청만을 실행할 것으로 분류한다.
예를 들어, 요청 414는 애플리케이션 "456"에 의해 이루어진 마지막(최신) 요청으로 인식될 수 있고, 그리고 규칙(422)에 따라, 요청 414는 실행해야 할 요청으로 분류될 수 있다(예를 들어서 지시란 434로 나타내었다). 그리고 애플리케이션 "456"에 의해 이루어진 마지막 요청이 아닌 것으로 인식될 수 있는 요청 408은 실행하지 않는 요청으로 분류될 수 있다(예를 들어서 지시란 436으로 나타내었다).
도 5는 예시 프로세스(500)의 시스템 처리절차도이다. 화살표 504로 나타낸 것과 같이, 모바일 장치에서 실행되는 애플리케이션(502)은 하나 이상의 규칙을 등록하기 위하여 규칙 데이터베이스(506)에 요청을 보낸다. 규칙이 등록되어 규칙 데이터베이스(506)에 저장될 수 있다. 화살표 508로 나타낸 것과 같이, 대기열 관리자(510)는 무선장치(512)가 아직 전송 준비가 되지 않았다는 통지를 무선장치(512)로부터 받는다. 이는, 예를 들어, 신호 강도가 전송에 충분한 정도가 아니거나, 무선장치(512)가 프로그램적으로 꺼져 있는(예컨대, 배터리 전력 절약을 위해) 경우이다.
화살표 514와 같이, 애플리케이션(502)은 데이터를 업로드 또는 다운로드하라는 첫 번째 요청을 생성하고 이 요청을 대기열(516)로 보낸다. 대기열(516)은 화살표 518과 같이 대기열 관리자(510)로 새 대기열 항목의 통지를 보낸다. 이 통지에는 새로 추가된 대기열 항목에 연관된 애플리케이션을 나타낼 수 있다.
화살표 520과 같이, 대기열 관리자(510)는 애플리케이션(502)(예를 들어, 새로 추가된 대기 항목에 연관된 애플리케이션)에 연관된 규칙이 있는지 여부를 결정하는 요청을 규칙 데이터베이스(506)에 보낸다. 규칙 데이터베이스(506)는 애플리케이션(502)에 연관된 규칙임을 나타내는 응답, 또는 애플리케이션(502)에 연관된 규칙이 없음을 나타내는 응답을 보낸다(화살표 522).
일부 실시예에서, 대기열 관리자(512)는 대기열 관리자(512)가 알지 못하는 애플리케이션에 연관된 대기열(516)로부터 통지를 수신할 때마다 규칙 데이터베이스(506)로부터 규칙에 관한 정보를 제공할 것을 요청한다. 또 다른 예로서, 일부 실시예에서, 대기열 관리자(512)는 무선장치(512)가 전송 준비가 되었음을 나타내는 통지를 (무선장치(512)로부터) 수신할 때마다 규칙에 관한 정보를 요청한다.
화살표 524와 같이, 애플리케이션(502)은 데이터를 업로드 또는 다운로드하는 두 번째 요청을 생성하고 이를 대기열(516)에 보낸다. 이에, 대기열(516)은 화살표 526으로 나타낸 것과 같이 대기열 관리자(510)로 이 두 번째 요청의 통지를 보낸다. 마찬가지로, 애플리케이션(502)은 화살표 528로 도시한 것과 같이, 데이터를 업로드 하거나 다운로드하라는 세 번째 요청을 생성하고 대기열(516)로 이 세 번째 요청을 보낸다. 화살표 530으로 나타낸 것과 같이, 대기열(516)은 대기열 관리자(510)에게 세 번째 요청의 통지를 보낸다.
화살표 532에서, 대기열 관리자(510)는 무선장치(512)로부터 무선장치의 전송 준비가 되었음을 나타내는 통지를 받는다. 무선장치(512)는, 예를 들어, 임계 속도보다 통신 속도가 크다는 것을 감지한 것에 대한 응답으로, 또는 타이머 이벤트의 촉발에 응답하여 전송 준비를 할 수 있다. 무선장치(512)가 전송 준비가되었음을 통지 받으면, 화살표 534와 같이, 대기열 매니저(510)는 대기열(516)로 하나 이상의 규칙에 해당하는 명령어를 보낸다. 예를 들면, 대기열 관리자는 애플리케이션(502)에 대한 규칙에 해당하는 명령어들을 보낼 수 있다.
화살표 536에서, 대기열 관리자(510)는 수신한 명령어에 따라 대기열(536)에 대한 연산을 수행한다. 예를 들면, 하나 이상의 대기열 항목을 삭제할 수 있고, 유지하라는(예컨대, 실행하지 않는다는) 표시를 할 수 있고, 또는 실행하라는 표시를 할 수 있다. 화살표 538과 같이, 실행되어야 할 요청에 연관된 대기열 항목의 표시가 대기열 관리자(510)로 전송된다. 화살표 540에서, 각 실행해야 할 요청은 무선장치(512)에 의해 실행된다. 이로써 각 요청은, 예를 들어 서버로 데이터를 업로드하거나 서버에서 데이터를 다운로드하기 위하여 무선장치(512)에 의해 보내질 요청이 될 수 있다.
이상에서 다양한 실시예를 설명하였다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 변형을 할 수 있음을 이해하게 될 것이다. 예를 들면, 상술한 절차 흐름의 단계 순서를 재배열, 추가, 생략하여 다양한 형태로 실시할 수 있다.
본 명세서에서 설명한 측면들 및 모든 기능적 동작들은 디지털 전자 회로에서 또는 컴퓨터 소프트웨어, 펌웨어, 하드웨어에서, 본 명세서에서 개시한 구성 및 그 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함하여 실시할 수 있다. 본 발명의 측면들은 하나 이상의 컴퓨터 프로그램 제품으로서, 즉, 데이터 처리 장치에 의한 실행 또는 이 장치의 동작 제어를 위하여 컴퓨터 판독가능 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터가 판독가능한 매체는 기계가 판독가능한 저장 장치, 기계가 판독가능한 저장 회로, 메모리 장치, 기계가 판독가능한 전달 신호를 발생시키는 복합물, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예를 들어 프로그래머블 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하는 모든 기구, 장치, 및 기계를 총칭한다. 데이터 처리 장치에는 하드웨어 뿐만 아니라, 해당 컴퓨터 프로그램을 위한 실행 환경을 만들어 주는 코드, 가령, 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영체제, 또는 이들 중 하나 이상의 조합이 포함될 수 있다. 전달 신호는 인공적으로 생성된 신호로서, 예를 들면, 수신 장치에 적합하게 전송하기 위해 정보를 부호화하기 위해 생성되는, 기계가 만들어낸 전기적, 광학적, 또는 전자기적 신호를 말한다.
컴퓨터 프로그램(또는, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 함)은 임의 형식의 프로그래밍 언어(컴파일 또는 해독된 언어를 포함)로 작성될 수 있으며, 그것은 독립 실행형 프로그램, 또는 모듈, 컴포넌트, 서브루틴, 또는 기타 컴퓨팅 환경에서 사용하기에 적합한 형태를 포함하는 임의의 형태로 설치될 수 있다. 컴퓨터 프로그램이 반드시 파일 시스템의 파일과 일치하는 것은 아니다. 프로그램은, 다른 프로그램 또는 데이터를 갖고 있는 파일의 일부(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)에, 해당 프로그램에 전속한 하나의 파일에, 또는 다수의 조합된 파일(예를 들면, 하나 이상의 모듈, 서브 프로그램, 또는 코드의 일부가 저장된 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터에서 실행되도록, 또는 한 장소에 위치하는 다수의 컴퓨터에서 또는 여러 장소에 분산되어 통신 네트워크로 서로 연결된 다수의 컴퓨터에서 실행되도록 설치할 수 있다.
본 명세서에서 설명한 프로세스와 로직 흐름은, 입력 데이터를 연산하여 출력을 생성하는 기능을 수행하는 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래머블 프로세서에 의해 수행될 수 있다. 또한 이 프로세스 및 로직 흐름은 특수 목적의 로직 회로, 예를 들면, FPGA(전계 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적회로)에 의해 수행될 수 있으며, 또한 이로써 장치가 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서의 예를 들면, 범용 및 특수 목적 마이크로프로세서와, 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 들 수 있다. 일반적으로, 프로세서는 읽기 전용 메모리(ROM) 또는 랜덤 액세스 메모리(RAM) 또는 이들 모두로부터의 명령어와 데이터를 수신한다. 컴퓨터의 필수 구성요소는 명령을 수행하는 프로세서와 명령어와 데이터를 저장하는 하나 이상의 메모리 장치이다. 또한 일반적으로 컴퓨터는 데이터를 저장하는 하나 이상의 대용량 저장 장치(예를 들어, 자기식, 광 자기식, 또는 광학식 디스크)를 포함하거나, 데이터를 받고 전달하기 위해 기능적으로 연결되거나, 또는 둘 다 해당될 것이다. 그러나 컴퓨터가 이러한 대용량 저장 장치를 가질 필요는 없다. 또한, 컴퓨터는 다른 장치, 가령 몇 가지 예를 들면, 태블릿 컴퓨터, 휴대 전화, 개인 디지털 보조기(PDA), 휴대형 오디오 플레이어, 글로벌 포지셔닝 시스템(GPS) 수신기 등에 내장될 수도 있다. 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체에는 모든 형태의 비휘발성 메모리, 미디어, 및 메모리 장치(예를 들어, 반도체 메모리 소자(EPROM, EEPROM, 플래시 메모리 소자 등), 자기 디스크(내장 하드 디스크 또는 탈착식 디스크), 광자기 디스크, 그리고 CD ROM과 DVD-ROM 디스크 등)이 포함된다. 프로세서와 메모리에는 특수 목적의 로직 회로가 구비될 수 있고, 또는, 이 회로 안에 프로세서와 메모리가 통합될 수 있다.
컴퓨터와 사용자와의 인터랙션을 위해 컴퓨터에 구현되는 특징으로서, 사용자에게 정보를 표시해주는 디스플레이 장치(CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터)와 사용자가 컴퓨터에 입력할 수 있는 키보드 및 포인팅 장치(예를 들면, 마우스 또는 트랙볼)가 있다. 사용자와의 인터랙션을 위한 다른 형태의 장치들도 또한 구비될 수 있다. 예를 들면, 사용자에게 전달되는 피드백은 임의 형태의 감각 피드백(예컨대, 시각 피드백, 청각 피드백, 또는 촉각 피드백)일 수 있고, 사용자의 입력 형태도 음향, 음성, 접촉 등 임의의 형태일 수 있다.
컴퓨터 시스템에 여러 측면들을 구현할 수 있는데, 이들 특징에는 백엔드 구성부(예를 들어 데이터 서버), 미들웨어 구성부(예를 들어 애플리케이션 서버), 프런트엔드 구성부(예를 들어 사용자가 본 발명의 실시예와 인터랙션할 수 있는 그래픽 사용자 인터페이스 또는 웹브라우저가 있는 클라이언트 컴퓨터), 또는 상기 하나 이상의 백엔드, 미들웨어, 프런트엔드 구성부의 임의의 조합이 포함된다. 시스템의 구성부들은 임의의 형식으로 또는 디지털 데이터 통신 매체(예컨대, 통신 네트워크)에 의해서 상호 연결할 수 있다. 통신 네트워크의 예로는, 로컬 영역 네트워크(LAN)와 광역 네트워크(WAN)(예를 들어, 인터넷)가 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 원격지에 떨어져 있으며 보통은 통신 네트워크를 통해 인터랙트한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터에서 실행되고 서로 간에 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 이루어진다.
본 명세서에 많은 세부 사항들이 기재되어 있지만, 이들은 본 발명의 범위 또는 청구사항에 대해 제한을 하는 것으로 해석하면 안 되고, 특정 측면을 구체화한 특징을 설명한 것으로 해석해야 한다. 본 명세서에서 개별적 측면으로서 설명한 특정 특징들을 조합하여 하나의 측면으로 구현할 수도 있고, 반대로, 하나의 측면으로서 설명한 다양한 특징들을 별도의 다중 측면으로 또는 임의의 적절한 하위 조합으로 구현할 수도 있다. 덧붙여, 위에서는 특징들을 특정 조합에서 작용하는 것으로 그리고 심지어는 그렇게 최초로 청구된 것으로 설명할 수 있지만, 어느 경우에는, 청구된 조합으로부터 하나 이상의 특징을 이 조합으로부터 떼어낼 수 있고, 청구된 조합으로부터 하위 조합 또는 하위 조합의 변형을 도출할 수도 있다.
마찬가지로, 동작을 특정 순서로 도면에 도시하였지만, 원하는 결과를 얻기 위하여 동작들이 도시된 특정 순서대로 또는 순차로 수행되어야 하는 것으로 이해하거나 모든 도시된 동작이 실행되어야 하는 것으로 이해해서는 안된다. 특정 상황에서는 멀티태스킹과 병렬처리가 유리할 수 있다. 또한, 위에서 설명한 측면에서의 각종 시스템 구성부를 분리하는 것이 모든 실시예에서 이러한 분리를 필요로 한다고 이해해서는 안되며, 설명한 프로그램 구성부와 시스템은 일반적으로, 단일의 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품으로 패키지화될 수 있음을 이해해야 한다.
HTML 파일이 언급된 각 경우에, 이와 다른 파일 유형이나 형식으로도 대체할 수 있다. 예를 들어, HTML 파일을 XML, JSON, 일반 텍스트, 또는 기타 형식의 파일로 대체할 수 있다. 또한, 테이블 또는 해시 테이블이 언급된 경우라도, 다른 데이터 구조(예컨대, 스프레드 시트, 관계형 데이터베이스, 또는 구조화된 파일 등)를 사용할 수 있다.
지금까지 발명의 특정 실시예를 설명하였다. 다른 실시예들도 이하의 특허청구범위 내에 포함된다. 예를 들어, 청구범위에서 인용한 동작은 다른 순서로 수행될 수도 있고 여전히 바람직한 결과를 얻을 수 있다.
Claims (41)
- 컴퓨터에 의해 구현되는 방법으로서,
네트워크 인터페이스를 갖는 모바일 장치의 대기열 관리자(queue manager)에 의해, 상기 네트워크 인터페이스를 통해 네트워크 연결이 수립(establish)되었거나 수립될 것임을 결정하는 단계와;
상기 네트워크 연결이 수립되었거나 수립될 것이라는 결정에 응답하여, 상기 대기열 관리자에 의해, 특정 애플리케이션에 의해 개시되어 상기 네트워크 인터페이스를 통해 이전의 네트워크 연결이 수립된 이후로 대기해온 하나 이상의 요청들에 하나 이상의 규칙들을 적용하여, 상기 특정 애플리케이션에 의해 개시되어 상기 이전의 네트워크 연결이 수립된 이후로 대기해온 모든 요청들보다 적은 수의 요청들을 실행해야 할 요청들로서 분류하는 단계와, 상기 분류는 복수의 애플리케이션들 각각을 복수의 규칙들 중 하나 이상과 연관시키는 규칙 데이터베이스에 기초하며; 그리고
상기 대기열 관리자에 의해, 상기 특정 애플리케이션에 의해 개시되어 상기 이전의 네트워크 연결이 수립된 이후로 대기해온 모든 요청들보다 적은 수의 상기 요청들이 실행되도록 하는 단계를 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 1에 있어서,
상기 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 단계는 데이터를 업로드하거나 다운로드하라는 이전의 요청이 실행된 이후로 기결정된 시간이 경과하였음을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 청구항 1에 있어서,
상기 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 단계는
상기 요청들 중 하나 이상의 요청과 연관된 요청의 형식을 결정하는 것과;
상기 요청의 형식과 연관된 기결정된 시간을 결정하는 것과; 그리고
데이터를 업로드하거나 다운로드하라는 이전의 요청이 실행된 이후로 상기 기결정된 시간이 경과하였음을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 청구항 1에 있어서,
상기 특정 애플리케이션에 의해 개시되어 상기 이전의 네트워크 연결이 수립된 이후로 대기해온 모든 요청들 보다 적은 수의 상기 요청들이 실행되도록 하는 단계는 상기 특정 애플리케이션에 의해 개시되어 상기 이전의 네트워크 연결이 수립된 이후로 대기해온 특정 요청들을 삭제하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 청구항 1에 있어서,
상기 하나 이상의 요청들을 제출한 애플리케이션을 가르키는 각각의 요청과 연관된 정보를 식별하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 청구항 1에 있어서,
특정 요청이 순환 요청(recurring request)임을 결정하는 단계와, 상기 특정 요청이 순환 요청임을 결정함에 기초하여 상기 특정 요청을 삭제하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 청구항 1에 있어서,
상기 대기열 관리자에 의해, 상기 특정 애플리케이션에 의해 개시되어 대기해온 요청들을 분류하기 위한 상기 규칙들 중 하나 이상을 등록하라는 요청을 상기 특정 애플리케이션으로부터 수신하는 단계와; 그리고
상기 규칙들 중 하나 이상을 등록하라는 상기 요청을 수신함에 기초하여, 상기 대기열 관리자에 의해, 상기 하나 이상의 규칙들을 등록하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 시스템으로서,
이전의 데이터 업로드 또는 다운로드 요청들이 실행된 이후로 대기해온 하나 이상의 데이터 업로드 또는 다운로드 요청들과, 상기 요청들을 필터링하기 위한 규칙들을 저장하도록 구성된 컴퓨터-판독가능한 저장 디바이스와;
네트워크 연결을 수립하도록 구성된 네트워크 인터페이스와; 그리고
규칙 엔진을 포함하여 구성되며,
상기 규칙 엔진은:
복수의 애플리케이션들 각각을 복수의 규칙들 중 하나 이상과 연관시키는 규칙 데이터베이스에 액세스(access)하고,
상기 규칙들을 사용하여 상기 하나 이상의 데이터 업로드 또는 다운로드 요청들을 평가하고,
상기 규칙들을 사용하여 상기 하나 이상의 데이터 업로드 또는 다운로드 요청들을 평가하는 것에 기초하여, 특정 데이터 업로드 또는 다운로드 요청들이 동일한 애플리케이션에 의해 개시되었던 동일한 형식의 순환 요청들임을 수립하고,
상기 동일한 애플리케이션에 의해 개시되었던 상기 동일한 형식의 순환 요청들의 하위 집합(subset)을 선택하고,
상기 동일한 애플리케이션에 의해 개시되었던 상기 동일한 형식의 순환 요청들의 상기 하위 집합을 삭제하고, 그리고
상기 네트워크 연결을 통해, 상기 하위 집합의 일부로서 선택되지 않은 상기 동일한 형식의 순환 요청들 중 임의의 요청을 전달(communicate)하도록 구성된 것을 특징으로 하는 시스템. - 청구항 8에 있어서,
상기 규칙들 중 하나 이상은, 특정 애플리케이션에 의해 제출된 하나 이상의 새로운 요청들이 대기될 때, 오직 상기 새로운 요청들만이 실행되도록 지정하고, 상기 특정 애플리케이션에 의해 제출된 하나 이상의 과거 요청들은 삭제되도록 지정하는 것을 특징으로 하는 시스템. - 청구항 8에 있어서,
상기 규칙들 중 하나 이상은 상기 요청들 중 2개 이상이 서로에 대해 특정 타이밍(particular timing)으로 수행되도록 지정하는 것을 특징으로 하는 시스템. - 청구항 8에 있어서,
상기 규칙들 중 하나 이상은 다른 요청이 네트워크 연결로 하여금 수립되도록 한때, 상기 요청들 중 2개 이상이 일괄 실행되도록 지정하는 것을 특징으로 하는 시스템. - 청구항 8에 있어서,
상기 규칙들 중 하나 이상은 기결정된 이벤트가 발생할 때까지 상기 요청들 중 하나 이상이 실행되지 않도록 지정하고, 상기 요청들 중 하나 이상이 절대 수행되지 않도록 지정하는 것을 특징으로 하는 시스템. - 청구항 12에 있어서,
상기 기결정된 이벤트는 기결정된 시간의 경과를 포함하는 것을 특징으로 하는 시스템. - 컴퓨터에 의해 구현되는 방법으로서,
네트워크 인터페이스를 갖는 모바일 장치의 대기열 관리자에 의해, 상기 네트워크 인터페이스를 통해 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 단계와;
상기 네트워크 연결이 수립되었거나 수립될 것이라는 결정에 응답하여, 업데이트된 위치 정보에 대한 특정 애플리케이션으로부터의 다수의 요청들이 네트워크 연결이 마지막으로 수립된 이후로 데이터 전송 대기열에서 대기해 왔음을 결정하는 단계와;
상기 업데이트된 위치 정보에 대한 다수의 요청들 중 특정한 하나의 요청을 선택하고, 상기 업데이트된 위치 정보에 대한 다수의 요청들 중 나머지 요청들을 상기 데이터 전송 대기열로부터 삭제하는 단계와; 그리고
상기 수립된 네트워크 연결을 통해, 상기 업데이트된 위치 정보에 대한 다수의 요청들 중 상기 선택된 하나의 요청만을 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 14에 있어서,
상기 다수의 요청들이 순환 요청들임을 결정하는 단계를 더 포함하고, 상기 다수의 요청들 중 특정한 하나의 요청을 선택하는 단계는 상기 순환 요청들 중 마지막 순환 요청만을 선택하는 것을 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 15에 있어서,
상기 다수의 요청들이 순환 요청들임을 결정하는 단계는 상기 다수의 요청들이 업데이트된 위치 정보에 대한 동일한 형식의 요청들임을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 삭제
- 청구항 14에 있어서,
대기해 왔지만 선택되지 않은 요청들을 모두 삭제하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 14에 있어서,
상기 다수의 요청들은 동일한 우선순위를 가지며 상기 특정 애플리케이션에 의해 개시되었음을 결정하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 시스템으로서,
다수의 데이터 업로드 또는 다운로드 요청들을 저장하도록 구성된 컴퓨터-판독가능한 저장 매체와;
네트워크 연결을 수립하도록 구성된 네트워크 인터페이스와; 그리고
대기열 관리자를 포함하여 구성되며,
상기 대기열 관리자는:
상기 네트워크 인터페이스를 통해 네트워크 연결이 수립되었거나 수립될 것임을 결정하고;
업데이트된 위치 정보에 대한 특정 애플리케이션으로부터의 다수의 요청들이 네트워크 연결이 마지막으로 수립된 이후로 데이터 전송 대기열에서 대기해 왔음을 결정하고;
상기 업데이트된 위치 정보에 대한 다수의 요청들 중 특정한 하나의 요청을 선택하고, 상기 업데이트된 위치 정보에 대한 다수의 요청들 중 나머지 요청들을 상기 데이터 전송 대기열로부터 삭제하고; 그리고
상기 수립된 네트워크 연결을 통해, 상기 업데이트된 위치 정보에 대한 다수의 요청들 중 상기 선택된 하나의 요청만을 전송하도록 구성된 것을 특징으로 하는 시스템. - 청구항 20에 있어서,
상기 다수의 요청들이 순환 요청들임을 결정하는 것을 더 포함하고,
상기 다수의 요청들 중 특정한 하나의 요청을 선택하는 것은 상기 순환 요청들 중 마지막 순환 요청만을 선택하는 것을 포함하는 것을 특징으로 하는 시스템. - 청구항 21에 있어서,
상기 다수의 요청들이 순환 요청들임을 결정하는 것은 상기 다수의 요청들이 업데이트된 위치 정보에 대한 동일한 형식의 요청들임을 결정하는 것을 포함하는 것을 특징으로 하는 시스템. - 삭제
- 청구항 20에 있어서,
대기해 왔지만 선택되지 않은 요청들을 모두 삭제하는 것을 더 포함하는 것을 특징으로 하는 시스템. - 청구항 20에 있어서,
상기 다수의 요청들은 동일한 우선순위를 가지며 상기 특정 애플리케이션에 의해 개시되었음을 결정하는 것을 더 포함하는 것을 특징으로 하는 시스템. - 컴퓨터 프로그램으로 인코딩된 컴퓨터 판독가능한 저장 디바이스로서, 상기 프로그램은 명령어들을 포함하고, 상기 명령어들은 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 동작들을 수행하도록 하며, 상기 동작들은:
네트워크 연결이 수립되었거나 수립될 것임을 결정하고, 업데이트된 위치 정보에 대한 특정 애플리케이션으로부터의 다수의 요청들이 네트워크 연결이 마지막으로 수립된 이후로 데이터 전송 대기열에서 대기해 왔음을 결정하는 동작과;
상기 업데이트된 위치 정보에 대한 다수의 요청들 중 특정한 하나의 요청을 선택하고, 상기 업데이트된 위치 정보에 대한 다수의 요청들 중 나머지 요청들을 상기 데이터 전송 대기열로부터 삭제하는 동작과; 그리고
상기 수립된 네트워크 연결을 통해, 상기 업데이트된 위치 정보에 대한 다수의 요청들 중 상기 선택된 하나의 요청만을 전송하는 동작을 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 저장 디바이스. - 청구항 26에 있어서,
상기 다수의 요청들이 순환 요청들임을 결정하는 동작을 더 포함하고, 상기 다수의 요청들 중 특정한 하나의 요청을 선택하는 동작은 상기 순환 요청들 중 마지막 순환 요청만을 선택하는 것을 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 저장 디바이스. - 청구항 27에 있어서,
상기 다수의 요청들이 순환 요청들임을 결정하는 동작은 상기 다수의 요청들이 업데이트된 위치 정보에 대한 동일한 형식의 요청들임을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 저장 디바이스. - 삭제
- 청구항 26에 있어서,
대기해 왔지만 선택되지 않은 요청들을 모두 삭제하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 저장 디바이스. - 청구항 26에 있어서,
상기 다수의 요청들은 동일한 우선순위를 가지며 상기 특정 애플리케이션에 의해 개시되었음을 결정하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 저장 디바이스. - 청구항 14에 있어서,
상기 업데이트된 위치 정보에 대한 다수의 요청들 중 나머지 요청들을 상기 데이터 전송 대기열로부터 삭제하는 단계는 상기 업데이트된 위치 정보에 대한 다수의 요청들 중 나머지 요청들이 절대 전송되지 않도록, 상기 업데이트된 위치 정보에 대한 다수의 요청들 중 나머지 요청들을 상기 데이터 전송 대기열로부터 영구적으로 삭제하는 것을 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 14에 있어서,
상기 모바일 장치의 대기열 관리자에 의해, 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 단계는 네트워크 연결이 검출됨을 결정하거나, 상기 모바일 장치가 켜졌음(powered on)을 결정하거나, 상기 모바일 장치가 슬립 모드(sleep mode)에서 빠져나왔음을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 1에 있어서,
상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 단계는 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었음을 결정하는 것을 포함하고, 그리고
상기 특정 애플리케이션에 의해 개시되어 상기 네트워크 인터페이스를 통해 상기 이전의 네트워크 연결이 수립된 이후로 대기해온 상기 하나 이상의 요청들에 상기 하나 이상의 규칙들을 적용하는 것은 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었음을 결정하는 것에 응답하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 1에 있어서,
상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 단계는 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립될 것임을 결정하는 것을 포함하고, 그리고
상기 특정 애플리케이션에 의해 개시되어 상기 네트워크 인터페이스를 통해 상기 이전의 네트워크 연결이 수립된 이후로 대기해온 상기 하나 이상의 요청들에 상기 하나 이상의 규칙들을 적용하는 것은 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립될 것임을 결정하는 것에 응답하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 14에 있어서,
상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 단계는 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었음을 결정하는 것을 포함하고, 그리고
상기 업데이트된 위치 정보에 대한 특정 애플리케이션으로부터의 상기 다수의 요청들이 상기 네트워크 연결이 마지막으로 수립된 이후로 상기 데이터 전송 대기열에서 대기해 왔음을 결정하는 단계는 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었음을 결정하는 것에 응답하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 14에 있어서,
상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 단계는 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립될 것임을 결정하는 것을 포함하고, 그리고
상기 업데이트된 위치 정보에 대한 특정 애플리케이션으로부터의 상기 다수의 요청들이 상기 네트워크 연결이 마지막으로 수립된 이후로 상기 데이터 전송 대기열에서 대기해 왔음을 결정하는 단계는 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립될 것임을 결정하는 것에 응답하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법. - 청구항 20에 있어서,
상기 대기열 관리자는 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립될 것임을 결정하도록 구성된 것을 특징으로 하는 시스템. - 청구항 20에 있어서,
상기 대기열 관리자는 상기 네트워크 인터페이스를 통해 상기 네트워크 연결이 수립되었음을 결정하도록 구성된 것을 특징으로 하는 시스템. - 청구항 26에 있어서,
상기 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 동작은 상기 네트워크 연결이 수립되었음을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 저장 디바이스. - 청구항 26에 있어서,
상기 네트워크 연결이 수립되었거나 수립될 것임을 결정하는 동작은 상기 네트워크 연결이 수립될 것임을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 저장 디바이스.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161451885P | 2011-03-11 | 2011-03-11 | |
US61/451,885 | 2011-03-11 | ||
US13/216,478 | 2011-08-24 | ||
US13/216,478 US8856364B2 (en) | 2011-03-11 | 2011-08-24 | Conducting opportunistic network updates on a mobile device |
US13/249,305 US8572265B2 (en) | 2011-03-11 | 2011-09-30 | Opportunistic network updates |
US13/249,305 | 2011-09-30 | ||
PCT/US2012/028766 WO2012125556A1 (en) | 2011-03-11 | 2012-03-12 | Opportunistic network updates |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177034259A Division KR101960007B1 (ko) | 2011-03-11 | 2012-03-12 | 편의적 네트워크 업데이트 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140026398A KR20140026398A (ko) | 2014-03-05 |
KR101804198B1 true KR101804198B1 (ko) | 2017-12-06 |
Family
ID=46797078
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177034259A KR101960007B1 (ko) | 2011-03-11 | 2012-03-12 | 편의적 네트워크 업데이트 |
KR1020137026641A KR101804198B1 (ko) | 2011-03-11 | 2012-03-12 | 편의적 네트워크 업데이트 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177034259A KR101960007B1 (ko) | 2011-03-11 | 2012-03-12 | 편의적 네트워크 업데이트 |
Country Status (5)
Country | Link |
---|---|
US (3) | US8856364B2 (ko) |
EP (1) | EP2684340B1 (ko) |
KR (2) | KR101960007B1 (ko) |
CN (2) | CN108337326A (ko) |
WO (1) | WO2012125556A1 (ko) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10200325B2 (en) * | 2010-04-30 | 2019-02-05 | Shazzle Llc | System and method of delivering confidential electronic files |
US8856364B2 (en) | 2011-03-11 | 2014-10-07 | Google Inc. | Conducting opportunistic network updates on a mobile device |
CA2857539C (en) | 2011-11-29 | 2021-08-03 | Neurophage Pharmaceuticals, Inc. | Bacteriophage gene 3 protein compositions and use as amyloid binding agents |
JP5812915B2 (ja) * | 2012-03-28 | 2015-11-17 | 京セラ株式会社 | 携帯端末、データ管理方法およびデータ管理プログラム |
TWI487331B (zh) * | 2012-12-18 | 2015-06-01 | Wistron Corp | 管理網路傳輸順序之方法及其非揮發性電腦可讀媒體 |
US9792627B1 (en) * | 2013-01-05 | 2017-10-17 | Sprint Communications Company L.P. | Platform-aware commercial content resolution |
CA2819539C (en) * | 2013-06-21 | 2021-01-12 | Ibm Canada Limited - Ibm Canada Limitee | Dynamic management of integration protocols |
US9569481B1 (en) | 2013-12-10 | 2017-02-14 | Google Inc. | Efficient locking of large data collections |
US9935999B1 (en) * | 2015-09-28 | 2018-04-03 | Snap Inc. | File download manager |
US10706368B2 (en) * | 2015-12-30 | 2020-07-07 | Veritas Technologies Llc | Systems and methods for efficiently classifying data objects |
CN105704651B (zh) * | 2016-01-22 | 2019-02-26 | 南京邮电大学 | 一种无线自组织代理捎带网络soap消息传递方法 |
US10728164B2 (en) * | 2016-02-12 | 2020-07-28 | Microsoft Technology Licensing, Llc | Power-aware network communication |
CN106302763A (zh) * | 2016-08-19 | 2017-01-04 | 北京拓盛智联技术有限公司 | 一种编制任务分轮下载方法及系统 |
EP3596605B1 (en) * | 2017-03-16 | 2022-04-06 | Google LLC | Systems and methods for micro-scheduler testing framework |
CN108337301A (zh) * | 2018-01-24 | 2018-07-27 | 深圳乐信软件技术有限公司 | 应用程序的网络请求处理方法、装置、服务器及存储介质 |
CN111813586A (zh) * | 2020-05-21 | 2020-10-23 | 长沙知了信息科技有限公司 | 一种请求发送方法、装置、电子设备以及存储介质 |
CN114666319B (zh) * | 2022-03-02 | 2024-03-22 | 北京百度网讯科技有限公司 | 数据下载方法、装置、电子设备和可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060047775A1 (en) | 2004-08-27 | 2006-03-02 | Timo Bruck | Method and apparatus for downloading content |
US20070005728A1 (en) | 2005-06-30 | 2007-01-04 | Ian Elbury | System and method of queued web services |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI109169B (fi) * | 1999-07-02 | 2002-05-31 | Nokia Corp | Kontrollisignalointien järjestäminen tietoliikennejärjestelmässä |
US6556817B1 (en) | 1999-12-13 | 2003-04-29 | Motorola, Inc. | Method and apparatus for selectively communicating in a wireless communication system based on varying time incremental costs of communication |
US7099926B1 (en) * | 2000-07-06 | 2006-08-29 | International Business Machines Corporation | Object caching and update queuing technique to improve performance and resource utilization |
FI20002370A (fi) * | 2000-10-27 | 2002-04-28 | Nokia Corp | Palvelun käyttäminen matkaviestinjärjestelmässä |
US7207041B2 (en) | 2001-06-28 | 2007-04-17 | Tranzeo Wireless Technologies, Inc. | Open platform architecture for shared resource access management |
JP3828444B2 (ja) | 2002-03-26 | 2006-10-04 | 株式会社日立製作所 | データ通信中継装置及びシステム |
FR2849568B1 (fr) | 2002-12-26 | 2005-04-29 | Orange France | Systeme et procede de gestion de ressources dans un terminal relie a un reseau de communication |
GB0323549D0 (en) * | 2003-10-08 | 2003-11-12 | Intuwave Ltd | A method of enabling a wireless information device to access customer support services |
US7571195B2 (en) * | 2004-05-28 | 2009-08-04 | Ebay Inc. | Publication of informational messages to software applications in a computing environment |
US7076237B2 (en) | 2004-08-05 | 2006-07-11 | International Business Machines Corporation | Traffic shaping of cellular service consumption through delaying of service completion according to geographical-based pricing advantages |
US7502843B2 (en) * | 2004-12-30 | 2009-03-10 | Microsoft Corporation | Server queuing system and method |
US8171138B2 (en) * | 2005-02-15 | 2012-05-01 | Microsoft Corporation | System and method for applying flexible attributes to execute asynchronous network requests |
EP1929729A1 (en) * | 2005-09-29 | 2008-06-11 | Teamon Systems, Inc. | Email server performing email job processing for a given user and related methods |
US9497292B2 (en) * | 2005-11-18 | 2016-11-15 | Adobe Systems Incorporated | Facilitating the operation of a client/server application while a client is offline or online |
US7711707B2 (en) * | 2005-12-14 | 2010-05-04 | International Business Machines Corporation | Method for synchronizing and updating bookmarks on multiple computer devices |
FI20060044A0 (fi) * | 2006-01-19 | 2006-01-19 | Markku Matias Rautiola | Langattomien piirikytkentäisten yhteyksien käyttö pakettikytkentäisten multimedia-palvelujen reaaliaikaisuutta vaativan informaation siirtoon |
US8295275B2 (en) * | 2006-03-20 | 2012-10-23 | Intel Corporation | Tagging network I/O transactions in a virtual machine run-time environment |
US8464275B2 (en) * | 2006-05-10 | 2013-06-11 | Oracle International Corporation | Method of using a plurality of subscriber types in managing a message queue of a database management system |
US7894509B2 (en) | 2006-05-18 | 2011-02-22 | Harris Corporation | Method and system for functional redundancy based quality of service |
US20080208806A1 (en) * | 2007-02-28 | 2008-08-28 | Microsoft Corporation | Techniques for a web services data access layer |
US8433292B2 (en) * | 2007-06-29 | 2013-04-30 | Alcatel Lucent | Network based mobile user proxy and agent |
ATE513384T1 (de) | 2007-10-02 | 2011-07-15 | Research In Motion Ltd | Verfahren für selektive downloads auf eine mobile kommunikationsvorrichtung |
CN101459627B (zh) * | 2008-04-07 | 2012-09-05 | 中兴通讯股份有限公司 | 消息管理方法 |
US8560696B2 (en) | 2009-04-28 | 2013-10-15 | Intel Corporation | Transmission of advanced-MAP information elements in mobile networks |
US8631109B2 (en) | 2009-05-12 | 2014-01-14 | Hewlett-Packard Development Company, L.P. | System and method for dynamic control of network management traffic loads |
US8682342B2 (en) | 2009-05-13 | 2014-03-25 | Microsoft Corporation | Constraint-based scheduling for delivery of location information |
US20100319034A1 (en) * | 2009-06-16 | 2010-12-16 | Echostar Technologies Llc | Systems and devices for presenting social networking events via a television receiver |
US7984161B2 (en) | 2009-06-16 | 2011-07-19 | Microsoft Corporation | Optimizing mobile device synchronization with multiple data sources |
US8639772B2 (en) | 2010-02-16 | 2014-01-28 | Iboard Incorporated | Centralized application resource manager |
US20120149352A1 (en) * | 2010-07-26 | 2012-06-14 | Ari Backholm | Context aware traffic management for resource conservation in a wireless network |
CN102413583B (zh) * | 2010-09-20 | 2015-06-17 | 华为终端有限公司 | 一种天线通信方法及装置 |
US20120079008A1 (en) * | 2010-09-27 | 2012-03-29 | Research In Motion Limited | Method, apparatus and system for providing event notifications across a plurality of computers |
US20120079063A1 (en) * | 2010-09-27 | 2012-03-29 | Research In Motion Limited | Method, apparatus and system for providing event notifications across a plurality of computers |
US8996662B2 (en) * | 2011-01-12 | 2015-03-31 | Blackberry Limited | Methods and system for providing content to a mobile communication device |
US8856364B2 (en) | 2011-03-11 | 2014-10-07 | Google Inc. | Conducting opportunistic network updates on a mobile device |
-
2011
- 2011-08-24 US US13/216,478 patent/US8856364B2/en active Active
- 2011-09-30 US US13/249,305 patent/US8572265B2/en active Active
-
2012
- 2012-03-12 EP EP12711077.3A patent/EP2684340B1/en active Active
- 2012-03-12 CN CN201810305716.0A patent/CN108337326A/zh active Pending
- 2012-03-12 KR KR1020177034259A patent/KR101960007B1/ko active IP Right Grant
- 2012-03-12 KR KR1020137026641A patent/KR101804198B1/ko active IP Right Grant
- 2012-03-12 CN CN201280020314.7A patent/CN103518361A/zh active Pending
- 2012-03-12 WO PCT/US2012/028766 patent/WO2012125556A1/en active Application Filing
-
2013
- 2013-10-02 US US14/044,128 patent/US10103994B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060047775A1 (en) | 2004-08-27 | 2006-03-02 | Timo Bruck | Method and apparatus for downloading content |
US20070005728A1 (en) | 2005-06-30 | 2007-01-04 | Ian Elbury | System and method of queued web services |
Also Published As
Publication number | Publication date |
---|---|
US20140040501A1 (en) | 2014-02-06 |
KR101960007B1 (ko) | 2019-03-20 |
CN103518361A (zh) | 2014-01-15 |
US8572265B2 (en) | 2013-10-29 |
US10103994B2 (en) | 2018-10-16 |
KR20170137210A (ko) | 2017-12-12 |
US20120233342A1 (en) | 2012-09-13 |
EP2684340B1 (en) | 2017-06-28 |
WO2012125556A1 (en) | 2012-09-20 |
US8856364B2 (en) | 2014-10-07 |
EP2684340A1 (en) | 2014-01-15 |
CN108337326A (zh) | 2018-07-27 |
US20120233287A1 (en) | 2012-09-13 |
KR20140026398A (ko) | 2014-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101804198B1 (ko) | 편의적 네트워크 업데이트 | |
US10650026B2 (en) | Automatic mode switching in a synchronous replication environment | |
KR102180995B1 (ko) | 미래 액션들을 위한 사용자 인터페이스 데이터 캐싱 최적화 | |
US9652538B2 (en) | Web crawler optimization system | |
EP3230901B1 (en) | Context-driven multi-user communication | |
US20130226837A1 (en) | Content Pre-fetching for Computing Devices | |
US10754830B2 (en) | Activity information schema discovery and schema change detection and notification | |
US20110225116A1 (en) | Systems and methods for policy based execution of time critical data warehouse triggers | |
US20150207691A1 (en) | Preloading content based on network connection behavior | |
CN113760982B (zh) | 一种数据处理方法和装置 | |
JP5272428B2 (ja) | アクセス頻度の高い情報を事前にキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム | |
CN105991407B (zh) | 一种消息处理方法、装置及处理服务器 | |
CN113961743B (zh) | 数据更新方法、装置、电子设备及存储介质 | |
US9740587B2 (en) | Distributing power usage data for low-level components of a computing device to subscribing programs | |
CN112181733A (zh) | 一种服务请求的处理方法、装置、设备及存储介质 | |
US20240040402A1 (en) | Selection and optimization of prediction algorithms for 3gpp network data analytics function (nwdaf) | |
US9369331B1 (en) | Application message management | |
US20220043880A1 (en) | Systems and methods for predictive caching | |
CN114925304A (zh) | 一种信息访问方法、装置和系统 | |
CN113703993A (zh) | 服务消息处理方法、装置及设备 | |
CN112995243A (zh) | 一种基于大数据的政策信息推送方法和系统 | |
US11438426B1 (en) | Systems and methods for intelligent session recording | |
US20240095228A1 (en) | Computer-based systems configured for automatically updating a database based on an initiation of a dynamic machine-learning verification and methods of use thereof | |
CN116226148A (zh) | 一种信息更新方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |