KR101554398B1 - 도메인 네임 서버 프리페칭 수행의 시스템 및 방법 - Google Patents

도메인 네임 서버 프리페칭 수행의 시스템 및 방법 Download PDF

Info

Publication number
KR101554398B1
KR101554398B1 KR1020137011481A KR20137011481A KR101554398B1 KR 101554398 B1 KR101554398 B1 KR 101554398B1 KR 1020137011481 A KR1020137011481 A KR 1020137011481A KR 20137011481 A KR20137011481 A KR 20137011481A KR 101554398 B1 KR101554398 B1 KR 101554398B1
Authority
KR
South Korea
Prior art keywords
computing device
portable computing
content
change operation
dns
Prior art date
Application number
KR1020137011481A
Other languages
English (en)
Other versions
KR20130106849A (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 KR20130106849A publication Critical patent/KR20130106849A/ko
Application granted granted Critical
Publication of KR101554398B1 publication Critical patent/KR101554398B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephone Function (AREA)

Abstract

휴대형 컴퓨팅 디바이스 (PCD) 용의 DNS (domain name service) 프리페칭, 컨텐츠 프리페칭, 또는 이들의 조합을 수행하는 방법 및 시스템이 개시된다. 상기 시스템 및 방법은 PCD의 디스플레이 화면 상에 웹페이지를 렌더링하고 것 및 웹페이지 내의 임의의 가시적 링크들에 대한 DNS 프리페치를 수행하는 것을 포함할 수도 있다. 또한, 상기 방법은 화면 변경 동작 (즉, 스크롤링 동작) 이 수행되고 있는지의 여부를 결정하는 단계 및 화면 변경 동작이 수행될 때 디스플레이 화면 상에 디스플레이되는 각 링크에 대한 하나 이상의 DNS 프리페치 작업들을 큐에 배치시키는 단계를 포함할 수도 있다. 상기 방법 및 시스템은 무선 PCD가 그 디스플레이 화면 상에 웹페이지들을 렌더링할 때 무선 PCD에 대한 대기 시간을 감소시킬 수도 있다.

Description

도메인 네임 서버 프리페칭 수행의 시스템 및 방법{SYSTEM AND METHOD OF PERFORMING DOMAIN NAME SERVER PRE-FETCHING}
관련 기술의 설명
휴대형 컴퓨팅 디바이스들 (PCDs) 은 어디에서나 볼 수 있다 (ubiquitous). 이들 디바이스들은 셀룰러 폰들, PDAs (Portable Digital Assistants), 휴대형 게임 콘솔, 팜탑 컴퓨터들, 및 다른 휴대형 전자 디바이스들을 포함할 수도 있다. 많은 이들 휴대형 컴퓨팅 디바이스들은, 유저가 인터넷에 액세스하여 컨텐츠를 다운로드하거나 컨텐츠를 보는 것 등을 가능하게 할 수도 있는 웹브라우저를 포함한다. 통상, 유저가 웹브라우저에 URL (uniform resource locator) 을 입력하면, 그 URL에 대해 DNS 룩업이 수행되고 TCP (Transmission control protocol) 접속이 확립될 수도 있다. 그 후, 그 URL에 대한 메인 HTML 파일, 또는 메인 리소스가 호스트 서버로부터 수신될 수도 있다. 메인 HTML 파일은, 하나 이상의 서브 리소스들을 요구하거나 획득하기 위해, 웹브라우저에게 하나 이상의 부가적인 호스트 서버들을 가리킬 수도 있다. 부가적인 호스트 서버들에 대한 DNS 룩업들을 수행하고 TCP 접속들을 확립하기 위한 프로세스는 실질적으로 느릴 수도 있고 상당량의 오버헤드를 필요로 할 수도 있다.
따라서, DNS 프리페칭 (DNS pre-fetching), 컨텐츠 프리페칭 (content pre-fetching), 또는 이들의 조합을 수행하는 향상된 시스템 및 방법들이 요구된다.
도면들에서, 특정되지 않는 한 유사한 도면 부호들은 도면 전체에 걸쳐 유사한 부분들을 가리킨다.
도 1은 닫힌 위치에 있는 휴대형 컴퓨팅 디바이스 (PCD) 의 제 1의 양태의 정면도;
도 2는 열린 위치의 PCD의 제 1의 양태의 정면도;
도 3a는 PCD의 제 1의 양태의 블록도;
도 3b는 무선 휴대형 컴퓨팅 디바이스에 대한 정보를 프리페치하는 시스템에 대한 소프트웨어 아키텍쳐의 제 1의 양태의 도면;
도 4는 DNS 프리페칭을 수행하는 방법을 설명하는 순서도;
도 5는 웹페이지의 제 1의 부분을 나타내는 PCD 디스플레이의 도면;
도 6은 웹페이지의 제 2의 부분을 나타내는 PCD 디스플레이의 도면;
도 7은 컨텐츠 프리페칭을 수행하는 방법의 제 1의 양태를 나타내는 순서도의 제 1의 부분;
도 8은 컨텐츠 프리페칭을 수행하는 방법의 제 1의 양태를 나타내는 순서도의 제 2의 부분;
도 9는 컨텐츠 프리페칭을 수행하는 방법의 제 2의 양태를 나타내는 순서도;
도 10은 컨텐츠 프리페칭을 수행하는 방법의 제 3의 양태를 나타내는 순서도;
도 11은 컨텐츠 프리페칭을 수행하는 방법의 제 4의 양태를 나타내는 순서도의 제 1의 부분;
도 12은 컨텐츠 프리페칭을 수행하는 방법의 제 4의 양태를 나타내는 순서도의 제 2의 부분;
도 13은 컨텐츠 프리페칭을 수행하는 방법의 제 5의 양태를 나타내는 순서도.
단어 "예시적인"은 본원에서 "실시형태인, 예시인 또는 예증인" 것을 의미하기 위해 사용된다. 본원에서 설명된 "예시적인" 임의의 구체예는 다른 구체예들에 비해 더 선호되거나 또는 더 유익한 것으로 해석될 필요는 없다.
본 설명에서, 용어 "어플리케이션"은 실행 가능한 컨텐츠, 예컨대: 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 랭기지 파일들, 및 패치들을 구비하는 파일들을 또한 포함할 수도 있다. 또한, 본원에서 참조된 "어플리케이션"은, 오픈 (open) 되어야 할 필요가 있는 다큐먼트들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이, 사실상 실행 불가능한 파일들을 또한 포함할 수도 있다.
용어 "컨텐츠"는 실행 가능한 컨텐츠, 예컨대: 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 랭기지 파일들, 및 패치들을 구비하는 파일들을 또한 포함할 수도 있다. 또한, 본원에서 참조된 "컨텐츠"는, 오픈되어야 할 필요가 있는 다큐먼트들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이, 사실상 실행 불가능한 파일들을 또한 포함할 수도 있다.
본원에서 사용된 바와 같이, 용어 "컴포넌트", "데이터베이스", "모듈", "시스템" 등은 컴퓨터 관련 엔티티, 즉 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어 중 하나를 가리키는 것으로 의도된다. 예를 들면, 컴포넌트는 프로세서 상에서 작동하는 프로세스, 프로세서, 오브젝트, 실행가능성, 실행의 스레드, 프로그램, 및/또는 컴퓨터일 수도 있지만, 이들에 제한되는 것은 아니다. 예로서, 컴퓨팅 디바이스 상에서 작동하는 어플리케이션 및 컴퓨팅 디바이스 양자는 컴포넌트일 수도 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행의 스레드 내에 있을 수도 있고, 컴포넌트는 하나의 컴퓨터 및/또는 두 개 이상의 컴퓨터들 사이에 분산되어 로컬라이징될 수도 있다. 또한, 이들 컴포넌트들은 여러 데이터 구조들이 저장된 여러 컴퓨터 판독 가능한 매체로부터 실행될 수도 있다. 컴포넌트들은 하나 이상의 데이터 패킷들 (예를 들면, 로컬 시스템의 다른 컴포넌트, 분산 시스템 및/또는 인터넷과 같은 네트워크를 통해 신호를 통해 다른 시스템들과 상호작용하는 하나의 컴포넌트로부터의 데이터) 을 구비하는 신호에 따르는 것과 같이 로컬 및/또는 원격 프로세스들을 통해 통신할 수도 있다.
먼저, 도 1 및 도 2를 참조하면, 예시적인 휴대형 컴퓨팅 디바이스 (PCD) 가 도시되어 있고 일반적으로 100으로 나타낸다. 도시된 바와 같이, PCD (100) 는 하우징 (102) 을 포함할 수도 있다. 하우징 (102) 은 상부 하우징부 (104) 및 하부 하우징부 (106) 를 포함할 수도 있다. 도 1은 상부 하우징부 (104) 가 디스플레이 (108) 를 포함할 수도 있음을 나타낸다. 특별한 양태에서, 디스플레이 (108) 는 터치스크린 디스플레이일 수도 있다. 상부 하우징부 (104) 는 트랙볼 입력 디바이스 (110) 를 또한 포함할 수도 있다. 또한, 도 1에 도시된 바와 같이, 상부 하우징부 (104) 는 파워 온 버튼 (112) 및 파워 오프 버튼 (114) 을 포함할 수도 있다. 도 1에 도시된 바와 같이, PCD (100) 의 상부 하우징부 (104) 는 복수의 지시 라이트들 (indicator lights; 116) 및 스피커 (118) 를 포함할 수도 있다. 각각의 지시 라이트 (116) 는 발광 다이오드 (LED) 일 수도 있다.
특별한 양태에서, 도 2에 도시된 바와 같이, 상부 하우징부 (104) 은 하부 하우징부 (106) 에 대해 이동 가능하다. 특히, 상부 하우징부 (104) 는 하부 하우징부 (106) 에 대해 슬라이드 가능할 수도 있다. 도 2에 도시된 바와 같이, 하부 하우징부 (106) 는 복수 버튼의 키보드 (120) 를 포함할 수도 있다. 특별한 양태에서, 복수 버튼의 키보드 (120) 는 표준 쿼티 키보드일 수도 있다. 복수 버튼의 키보드 (120) 는, 상부 하우징부 (104) 가 하부 하우징부 (106) 에 대해 이동되면 드러날 수도 있다. 도 2는, PCD (100) 가 하부 하우징부 (106) 상에 리셋 버튼 (122) 을 포함할 수도 있음을 또한 나타낸다.
도 3a를 참조하면, 예시적이고 비제한적인 양태의 휴대형 컴퓨팅 디바이스 (PCD) 가 도시되는데, 일반적으로 100으로 나타낸다. 도시된 바와 같이, PCD (100) 는, 서로 커플링된 디지털 신호 프로세서 (324) 및 아날로그 신호 프로세서 (326) 를 포함하는 온칩 시스템 (322) 을 포함한다. 디지털 신호 프로세서 (324) 는 싱글 프로세서 또는 복수의 프로세서들을 포함할 수도 있다. 디지털 신호 프로세서 (324) 는 당업자에 의해 이해될 수 있는 바와 같이 멀티코어 프로세서를 또한 포함할 수도 있다.
온칩 시스템 (322) 은 두 개보다 많은 프로세서들을 포함할 수도 있다. 예를 들면, 온칩 시스템 (322) 은 하기에 설명되는 바와 같이 디지털 신호 프로세서 (DSP; 324) 를 형성하는 복수의 코어 프로세서들을 포함할 수도 있다. 도 3a에 도시된 바와 같이, 디스플레이 컨트롤러 (328) 및 터치스크린 컨트롤러 (330) 는 디지털 신호 프로세서 (DSP; 324) 에 커플링된다. 또한, 온칩 시스템 (322) 외부의 터치스크린 디스플레이 (108) 가 디스플레이 컨트롤러 (328) 및 터치스크린 컨트롤러 (330) 에 커플링된다.
도 3a는, 비디오 인코더 (334), 예를 들면, PAL (phase alternating line) 인코더, SECAM (sequential couleur a memoire) 인코더, 또는 NTSC (national television system(s) committee) 인코더가 디지털 신호 프로세서 (324) 에 커플링되어 있는 것을 또한 나타낸다. 또한, 비디오 증폭기 (336) 가 비디오 인코더 (334) 와 터치스크린 디스플레이 (108) 에 커플링된다. 또한, 비디오 포트 (338) 가 비디오 증폭기 (336) 에 커플링된다. 도 3a에 도시된 바와 같이, USB (universal serial bus) 컨트롤러 (340) 가 디지털 신호 프로세서 (324) 에 커플링된다. 또한, USB 포트 (342) 가 USB 컨트롤러 (340) 에 커플링된다. 메모리 리소스 (119) 및 SIM (subscriber identity module) 카드 (346) 가 디지털 신호 프로세서 (324) 에 또한 커플링될 수도 있다. 또한, 도 3a에 도시된 바와 같이, 디지털 카메라 (348) 가 디지털 신호 프로세서 (324) 에 커플링될 수도 있다. 예시적인 양태에서, 디지털 카메라 (348) 는 CCD (charge-coupled device) 카메라 또는 CMOS (complementary metal-oxide semiconductor) 카메라이다.
도 3a에 또한 도시된 바와 같이, 스테레오 오디오 코덱 (350) 이 아날로그 신호 프로세서 (326) 에 커플링될 수도 있다. 또한, 오디오 증폭기 (352) 가 스테레오 오디오 코덱 (350) 에 커플링될 수도 있다. 예시적인 양태에서, 제 1의 스테레오 스피커 (354) 및 제 2의 스테레오 스피커 (356) 는 오디오 증폭기 (352) 에 커플링된다. 도 3a는, 마이크 증폭기 (358) 가 스테레오 오디오 코덱 (350) 에 또한 커플링될 수도 있음을 나타낸다. 또한, 마이크 (360) 는 마이크 증폭기 (358) 에 커플링될 수도 있다. 특별한 양태에서, FM (frequency modulation) 라디오 튜너 (362) 가 스테레오 오디오 코덱 (350) 에 커플링될 수도 있다. 또한, FM 안테나 (364) 가 FM 라디오 튜너 (362) 에 커플링된다. 또한, 스테레오 헤드폰 (366) 이 스테레오 오디오 코덱 (350) 에 커플링될 수도 있다.
도 3a는, 무선 주파수 (RF) 트랜스시버 (368) 가 아날로그 신호 프로세서 (326) 에 커플링될 수도 있음을 또한 나타낸다. RF 스위치 (370) 는 RF 트랜스시버 (368) 와 RF 안테나 (372) 에 커플링될 수도 있다. 도 3a에 도시된 바와 같이, 키패드 (374) 는 아날로그 신호 프로세서 (326) 에 커플링될 수도 있다. 또한, 마이크 (376) 를 구비한 모노 헤드셋이 아날로그 신호 프로세서 (326) 에 커플링될 수도 있다. 또한, 바이브레이터 디바이스 (378) 가 아날로그 신호 프로세서 (326) 에 커플링될 수도 있다. 도 3a는, 전원 (power supply; 380) 이 온칩 시스템 (322) 에 결합될 수도 있음을 나타낸다. 특별한 양태에서, 전원 (380) 은 전력을 필요로 하는 PCD (100) 의 여러 컴포넌트들로 전력을 제공하는 직류 (DC) 전원이다. 또한, 특별한 양태에서, 전원은 AC (교류) 전원에 연결된 AC-DC 변압기로부터 유도되는 DC 전원 또는 재충전 가능한 DC 배터리이다.
또한, 도 3a는, 데이터 네트워크, 예를 들면, LAN, PAN (personal area network), 또는 임의의 다른 네트워크에 액세스하기 위해 사용될 수도 있는 네트워크 카드 (388) 를 PCD (100) 가 또한 포함할 수도 있음을 나타낸다. 네트워크 카드 (388) 는 블루투스 네트워크 카드, 와이파이 네트워크 카드, PAN 카드, PeANUT (personal area network ultra-low-power technology) 네트워크 카드, 또는 종래기술에서 공지된 임의의 다른 네트워크 카드일 수도 있다. 또한, 네트워크 카드 (388) 는 칩에 통합될 수도 있고, 즉, 네트워크 카드 (388) 는 칩 내의 풀 솔루션 (full solution) 일 수도 있고, 개별적인 네트워크 카드 (388) 가 아닐 수도 있다.
도 3a는, 메모리 리소스 (119) 내에 저장될 수도 있는 웹브라우저 어플리케이션 (382) 을 PCD (100) 가 또한 포함할 수도 있음을 나타낸다. 웹브라우저 어플리케이션 (382) 은 인터넷을 검색하거나, 온라인 컨텐츠를 액세스하거나, 영화들을 다운로드하거나, 음악을 다운로드하거나, 영화를 보거나, 또는 이들의 조합을 행하기 위해 사용될 수도 있다. 또한, 웹브라우저 어플리케이션 (382) 은, 예를 들면, 플러그인으로서 프리페치 모듈 (P/M; 384) 을 포함할 수도 있다. 또한, 본원에서 설명되는 바와 같이 프리페치 모듈 (384) 은 웹브라우저 (382) 와 상호작용하는 개별적인 어플리케이션일 수도 있음을 알 수도 있을 것이다.
도 3a에 도시된 바와 같이, 터치스크린 디스플레이 (108), 비디오 포트 (338), USB 포트 (342), 카메라 (348), 제 1의 스테레오 스피커 (354), 제 2의 스테레오 스피커 (356), 마이크 (360), FM 안테나 (364), 스테레오 헤드폰 (366), RF 스위치 (370), RF 안테나 (372), 키패드 (374), 모노 헤드셋 (376), 바이브레이터 (378), 및 전원 (380) 은 온칩 시스템 (322) 의 외부에 있다.
특별한 양태에서, 본원에서 설명된 하나 이상의 방법 단계들은, 컴퓨터 프로그램 명령들로서, 예를 들면, 웹브라우저 어플리케이션 (382), 프리페치 모듈 (384), 또는 이들의 조합의 일부로서, 메모리 리소스 (119) 에 저장될 수도 있다. 이들 명령들은 본원에서 설명된 방법들을 수행하기 위해 프로세서 (324, 326) 에 의해 실행될 수도 있다. 또한, 프로세서들 (324, 326), 메모리 리소스 (119), 웹브라우저 어플리케이션 (382), 프리페치 모듈 (384), 또는 이들의 조합은, DNS (domain name server) 프리페치, 컨텐츠 프리페치, 또는 이들의 조합을 수행하기 위해 본원에서 설명된 하나 이상의 방법 단계들을 실행하기 위한 수단으로서 기능할 수도 있다.
도 3b는 무선 휴대형 컴퓨팅 디바이스 (100) 에 대한 정보를 프리페치하는 시스템 (103) 에 대한 소프트웨어 아키텍쳐의 제 1의 양태의 도면이다. 어플리케이션 서브시스템 (103) 은, 프리페치 모듈 (384) 에 의해 렌더링되는 웹페이지를 지지할 수도 있고 중앙 처리 유닛 (324) (도 3a 참조) 에 의해 실행되는 모바일 웹브라우저 어플리케이션 (382) 을 포함할 수도 있다.
모바일 웹브라우저 어플리케이션 또는 모듈 (382) 은, 당업자에 의해 이해될 수 있고 하기에 설명되는 바와 같이, 인터넷 프로토콜 ("IP") 레이어 (129) 위에 있는 TCP (transfer communication protocol) 모듈 (127) 과 통신할 수도 있다.
IP 레이어 (129) 는 당업자가 이해할 수 있는 바와 같이 네트워크 버퍼 레이어 (131) 와 통신한다. IP 레이어 (129) 는 모뎀 서브시스템 (133) 과 통신하며, 이것은 제 2의 중앙 처리 유닛 (326) (도 3 참조) 에 의해 실행된다.
모바일 웹브라우저 모듈 (382) 은 프리페치 모듈 (384), HTTP 스택 (111), 웹브라우저 모니터 (107), 시스템 모니터 (109), 및 도메인 네임 서버 모듈 (113) 을 포함한다. 웹브라우저 모듈 (382) 내에 포함된 것으로 도시되었지만, 또 다른 대안의 예시적인 구체예 (도시되지 않음) 에서, 프리페치 모듈 (384) 은 웹브라우저 (382) 에 대한 개별적인 모듈로서 존재할 수도 있다.
웹브라우저 모니터 (107) 는 웹브라우징 히스토리를 유지할 수도 있다. 웹브라우징 히스토리는 유저가 본 모든 페이지들에 관한 데이터, 유저가 각 페이지를 본 시간, 유저가 본 각 페이지의 데이터, 또는 이들의 조합을 포함할 수도 있다.
시스템 모니터 (109) 는 CPU/버스 부하, 즉 현재 프로세서 부하를 결정할 수도 있다. CPU/버스 부하는 프로세서 속도, 예를 들면, 프로세서 주파수로서 표현될 수도 있다. 시스템 모니터는, 배터리와 같은 전원 (380) 의 상태와 같이, 전원 컨디션들의 상태를 또한 점검할 수도 있다.
모바일 웹브라우저 모듈 (382) 은 메모리 리소스 (119) 에 커플링될 수도 있다. 메모리 리소스 (119) 는 캐시, RAM (random access memory), 플래시 메모리, SD (Secure Digital) 메모리 카드, 및 이들의 임의의 조합을 포함할 수도 있지만, 이들에 제한되는 것은 아니다. 또한, 메모리 리소스 (119) 는 당업자에 의해 이해될 수 있는 LIFO (last-in first-out) 큐를 포함할 수도 있다.
프리페치 모듈 (384) 은, 휴대형 컴퓨팅 디바이스 (100) 에 대한 최적의 비디오 재생 품질을 보장하기 위해, 휴대형 컴퓨팅 디바이스 (100) 에 어떤 파일 세그먼트들, 예컨대, 어떤 웹페이지들이 다음에 다운로드되어야 하는지에 관해, 웹브라우저 (382) 를 제어하거나 명령하는 것을 책임질 수도 있다. 모뎀 서브시스템 (133) 뿐만 아니라 어플리케이션 서브시스템 (103) 의 엘리먼트들을 계속적으로 모니터할 수도 있다는 점에서 프리페치 모듈 (384) 은 동적일 수도 있다. 또한, 프리페치 모듈 (384) 은 어플리케이션 서브시스템 (103) 및 모뎀 서브시스템 (133) 내의 엘리먼트들로부터 메시지들을 또한 수신할 수도 있다.
웹브라우저 (382) 의 DNS 모듈 (113) 은 당업자에 의해 이해될 수 있는 바와 같이 텍스트 기반의 도메인 네임들을 숫자적인 인터넷 프로토콜 (IP) 어드레스로 변환하는 것을 책임질 수도 있다. DNS 모듈 (113) 은 IP 어드레스를 다시 HTTP 스택 (111) 으로 전달하고 상기 HTTP 스택 (111) 은 그 후 IP 어드레스를 TCP 접속 모듈 (127) 로 전달한다.
HTTP 스택 (111) 이 TCP 접속 모듈 (127) 로부터 웹페이지와 같은 메타-오브젝트를 반환하면, HTTP 스택 (111) 은 이 메타-오브젝트를 프리페치 모듈 (384) 로 전달한다. HTTP 스택 모듈 (111) 은 클라이언트 프리페치 모듈 (384) 에 어떤 상태 정보를 또한 제공할 수도 있다. 상태 정보는: HS-SCCH (high speed-schedule control channel) 유효 상태; HS-TBS (high speed transport block size); L1 BLER (layer one block error rates); RLC PDU (radio link control protocol data unit) 사이즈; RLC DL SDU (radio link control down link service data unit) 수신 (Rx) 바이트; HSDPA (high speed downlink packet access) 유저 설비 ("UE") 카테고리; MAC UL BSR (media access control uplink buffer status report); EUL TTI (enhanced uplink transmission time interval); ETFCI (enhanced transport format combination index) 테이블 인덱스; ETCFI; 새로운 송신들 (Tx) 의 수; RLC UL SDU (radio link control uplink service data unit) 바이트 송신 ("Tx"); DTX/DRX (diversity transmission / diversity reception) 모드; EUL UE (enhanced uplink user equipment) 카테고리; MAC TL TBS (media access control transmission layer transport block size); PDCP DL SDU (packet data convergence protocol downlink service data unit) 바이트 수신 ("Rx"); MAC UL TBS (media access control uplink transport block size); PDCP UL SDU (packet data convergence protocol uplink service data unit) 바이트 송신 ("Tx"); 및 유저 설비 카테고리 ("UE Category") 를 포함할 수도 있지만, 이들에 제한되는 것은 아니다.
프리페치 모듈 (384) 은 웹페이지 (500) 와 같은 메타 오브젝트와 그 관련 하이퍼텍스트 링크들 (502, 504, 602, 604) 을 파싱하고/하거나 리뷰하는 것, 및 휴대형 컴퓨팅 디바이스 (100) 의 동작 환경 및 현재 네트워크 컨디션들을 액세스한 이후 다음 다운로드에 어느 링크들 (502, 504, 602, 604) 이 적합한지를 결정하는 것을 책임질 수도 있다.
TCP (Transport Control Protocol) 접속 모듈 (127) 은, 당업자에 의해 이해될 수 있는 바와 같이, 일반 네트워킹의 OSI (Open Systems Interconnection) 모델의 전송 레이어에서 동작한다. TCP 접속 모듈 (127) 은 어플리케이션 데이터 블록들을, 목적지 호스트로의 전송을 위한 네트워크 인프라스트럭쳐로의 전송에 적합한 데이터 유닛들 (데이트그램들, 세그먼트들) 로 캡슐화 (encapsulating) 하거나, 또는 네트워크 데이터그램들 및 그들의 페이로드를 모바일 웹브라우저 (382) 로 요약하는 것에 의해 리버스 트랜잭션을 관리하는 것을 책임질 수도 있다.
TCP 접속 모듈 (127) 은: RTO (re-transmission time out); Rx Window (advertised receiver window); Tx/Rx 스루풋 (transmission-receiver throughput); 패킷 통계; TCP 접속의 총 수; 추정된 왕복 시간 (estimated round-trip time; "RTT"); 수신된 바이트들의 수; 일련의 패킷들의 수; 및 TCP 전송 윈도우 사이즈를 포함할 수도 있지만, 이들에 제한되는 것은 아니다.
IP (Internet Protocol) 모듈 (129) 은 TCP 접속 모듈 (127) 및 네트워크 버퍼 레이어 (131) 와 통신한다. IP 모듈 (129) 은 모바일 웹브라우저로부터의 구별된 프로토콜 데이터그램들을 그들의 어드레스들에 기초하여 서버에 전달하는 작업을 갖는다. IP 모듈 (129) 은 데이터그램 캡슐화를 위한 어드레싱 방법들 및 구조들을 정의한다. IP 모듈 (129) 은 IPv4 (Internet Protocol Version 4) 뿐만 아니라 현재 활발히 채용되고 있는 IPv6 (Internet Protocol Version 6) 을 활용할 수도 있다. 그러나, 아직 개발되지 않은 미래의 버전들을 포함하여, 인터넷 프로토콜의 다른 버전들은 본 발명의 범위 내에 포함된다.
네트워크 버퍼 레이어 (131) 는 IP 모듈 (129) 및 모뎀 서브시스템 (133) 과 통신한다. 네트워크 버퍼 레이어 (131) 는 모든 하드웨어 특정 인터페이스 방법들, 예컨대, 이더넷 및 다른 IEEE 802 캡슐화 스킴들을 포함할 수도 있다. 네트워크 버퍼 레이어 (131) 는 로컬 네트워크, 예컨대 통신 네트워크 (206) 의 토폴로지를 조사할 수도 있다. 그것은 라우터 및 이웃하는 호스트들을 발견할 수도 있고, 링크 상의 다른 노드들의 발견을 책임질 수도 있다. 네트워크 버퍼 레이어 (131) 는 다른 노드들의 링크 레이어 어드레스들을 결정하고, 이용 가능한 라우터들을 발견하고, 다른 액티브한 이웃 노드들로의 경로들에 관한 도달 가능성 정보 (reachability information) 를 유지할 수도 있다.
프리페치 모듈 (384) 은 HTTP 스택 (111) 뿐만 아니라 TCP 모듈들 (127) 과 통신할 수도 있다. 또한, 프리페치 모듈 (384) 은 하나 이상의 센서들 (125) 과도 통신한다. 센서들 (125) 은 계보기 (pedometer; 125A), 가속도계 (125B), 근접 센서 (125C), 콤파스 (125D), 및 주변광 센서 (125E) 를 포함할 수도 있지만, 이들에 제한되는 것은 아니다. 계보기 (125A) 는 휴대형 컴퓨팅 디바이스 (100) 가 걷고 있는 사람에 의해 이용되고 있다는 것을 나타내는 신호들을 제공할 수도 있다.
가속도계 (125B) 는 휴대형 컴퓨팅 디바이스 (100) 가 자동차와 같은 모터 구동 차량 내에 위치되어 있다는 것을 나타내는 신호들을 제공할 수도 있다. 근접 센서 (125C) 는, 전화를 걸고 있는 사람의 얼굴 바로 옆에 휴대형 디바이스 (100) 가 위치되어 있는지를 나타낼 수도 있다. 콤파스 (125D) 는 휴대형 컴퓨팅 디바이스 (100) 가 이동하고 있는 특정 방향을 나타내는 신호들을 제공할 수도 있다. 그리고 주변광 센서 (125E) 는, 휴대형 컴퓨팅 디바이스 (100) 가 밝은 환경 또는 어두운 환경에서 사용되고 있는지를 나타내는 신호들을 제공할 수도 있는데, 이것은 컴퓨팅 디바이스 (200) 상에서 비디오들이 어떻게 디스플레이 되어야 하는지에 영향을 끼친다.
모뎀 서브시스템 (133) 은 RLC (radio link control) 레이어 (135), MAC (media access control) 레이어 (139), PHY (physical) 레이어 (141), RRC (radio-relay control) 모듈 (137), GPS (global positioning system) (143) 을 포함할 수도 있다. 모뎀 서브시스템 (133) 의 이들 엘리먼트들은 도 2에 도시된 바와 같이 RF 트랜스시버 (368) 와 같은 통신 하드웨어와 통신하는 것을 책임질 수도 있다.
모뎀 서브시스템 (133) 의 엘리먼트들 각각은 프리페치 모듈 (384) 로 질의들을 수신하거나 메시지를 전송할 수도 있다. 예를 들면, RRC 모듈 (137) 은 HSDPA (high speed downlink packet access) 카테고리 정보, EUL (enhanced uplink layer) 카테고리 정보, 및 DRX/DTX (discontinuous reception/transmission) 구성 (Config) 정보와 같은 통신 정보를 포함할 수도 있지만, 이들에 제한되는 것은 아니다.
RLC 모듈 (135) 은 스루풋 뿐만 아니라 RCL 프로토콜 데이터 유닛 (PDU) 사이즈를 프리페치 모듈 (384) 로 전달할 수도 있다. MAC 레이어 (139) 는 BSR (buffer status report; 버퍼 상태 리포트) 정보 및 EDCH (enhanced dedicated channel; 향상된 전용 채널) 전송 포맷 ("TF") 정보와 같은 업링크 ("UL") 정보를 포함할 수도 있지만, 이들에 제한되는 것은 아니다. 물리적 레이어 (141) 는, 고속 전송 블록 ("HS-TBS"), 변조, 채널 품질 표시 ("CQI"), 블록 에러율 ("BLER") 측정, 복수-입력/복수-출력 ("MIMO"), 수신기 ("Rx") 자동 게인 제어 ("AGC") 뿐만 아니라 등화기 집적 회로 ("EQ/IC") 수신기 ("Rx") 다이버시티 ("D") 와 같은 다운링크 ("DL") 정보를 전달할 수도 있지만, 이들에 제한되는 것은 아니다. 또한, 물리적 레이어 (141) 는 BLER, 변조, 및 송신기 ("Tx") 자동 게인 제어 ("AGC") 와 같은 업링크 ("UL") 정보를 전달할 수도 있지만, 이들에 제한되는 것은 아니다.
RRC 모듈 (137), RLC 모듈 (135), MAC 모듈 (139), 및 PHY 모듈 (141) 은, 당업자에 의해 이해될 수 있는 바와 같이 진화된 고속 패킷 액세스 시스템 (177) ("HSPA") 을 형성할 수도 있다. 한편, GPS 모듈 (143) 은 휴대형 컴퓨팅 디바이스 (100) 의 로케이션, 및 속력 또는 속도와 같은 정보를 프리페치 모듈 (384) 에 제공할 수도 있지만, 이들에 제한되는 것은 아니다.
어플리케이션 서브시스템 (103) 및 모뎀 서브시스템 (133) 의 엘리먼트들을 모니터링함으로써, 프리페치 모듈 (384) 은, 무선 네트워크 컨디션들뿐만 아니라 휴대형 컴퓨팅 디바이스 (200) 자체의 컨디션들을 모니터링하는 것에 의해 PCD (100) 의 조작자가 볼 것 같은 웹페이지들을 무선 휴대형 컴퓨팅 디바이스 (200) 가 인텔리전트하게 선택하게 할 수도 있다. 프리페치 모듈 (384) 은, 서버로부터 웹페이지가 다운로드되기에 적절한 비트율이 무엇인지를 결정하기 위해 모니터링된 컨디션들을 사용하는 것에 의해 프리페치 모듈 (384) 이 로딩해야할 웹페이지들의 사이즈와 타입을 결정할 수도 있다.
어플리케이션 서브시스템 (103) 및 모뎀 서브시스템 (133) 에 의해 제공된 데이터에 기초한 모니터링된 컨디션들의 몇몇은: 현재의 버퍼의 사이즈와 버퍼의 성장이 컴퓨팅 디바이스 (200) 에 의해 소비되고 있는 비율을 포함하는, 메모리 컨디션들; 현재 및 히스토리적 WWAN 대역폭; 현재 및 히스토리적 WWAN 신호 세기; 이용 가능한 IP 소켓 데이터 접속들의 수; 전체 비디오 클립 길이의 추정치 및 그 후 신호대잡음비 히스토리/히스토그램 및 로케이션 기반 서비스 ("LBS") 에 기초하여 웹페이지에 대한 각 파일 세그먼트에 대한 각각의 URL (uniform resource locator) 다운로드 시간을 추정하는 것; GPS 모듈 (143) 과 같은 위치 기반 기술들의 사용을 통한 셀 타워 식별 삼각측량 또는 정확한 위도경도 중 어느 하나에 의해 계산된 휴대형 컴퓨팅 디바이스 (100) 의 속력 비율 (rate of speed); 및 가속도계 및/또는 LBS를 사용한 휴대형 컴퓨팅 디바이스 (100) 의 이동 방향을 포함하지만, 이들에 제한되는 것은 아니다.
프리페치 모듈 (384) 은, 신호대잡음비가 하이에 머무르고/머무르거나 BLER이 계속해서 로우에 머물 때까지 프리페치 모듈 (384) 이 더 낮은 비트율을 유지하거나 또는 사용해야만 하는 미리 결정된 기간을 계산할 수도 있다. 낮은 비트율을 사용하거나 또는 프리페치 모듈 (384) 이 유지되어야만 미리 결정된 기간을 계산하거나 또는 신호대잡음비가 하이에 머무르고/머무르거나 BLER이 로우로 머물 때까지 낮은 비트율을 사용할 수도 있다. 또한, 프리페치 모듈 (384) 은, 휴대형 컴퓨팅 디바이스 (100) 가 움직이지 않거나, 또는 사용자가 컴퓨팅 디바이스 (100) 를 가지고 걸을 때와 같이, 휴대형 컴퓨팅 디바이스 (100) 가 상대적으로 느린 속력 컨디션들 하에서 동작하고 있을 때와 같이, 이상적인 네트워크 상황들 동안 전력을 최소화하기 위해, 모뎀 서브시스템 (133) 에서의 임의의 형태의 수신 다이버시티 기능 (들) 을 턴"온" 또는 턴"오프"할 수도 있다.
시스템 및 방법 개관
특별한 양태에서, DNS 프리페치는 유저가 도메인 네임에 대한 요구를 생성하기 이전에 도메인 네임을 식별하고 취출하는 프리페치 모듈 (384) 을 포함할 수도 있지만, 이에 제한되는 것은 아니다. DNS 프리페치는, 브라우저 (382) 의 유저에 의해 이루어진 선택에 응답하여 웹브라우저 (382) 에 의해 생성된 HTTP (hyper text transfer protocol; 하이퍼 텍스트 전송 프로토콜) 요구 이전과 같이, HTTP 요구가 발하여지기 전에 호스트 서버에 대한, 하나 이상의 TCP (transmission control protocol) 소켓들, 또는 접속들을 여는 것을 더 포함할 수도 있다. 컨텐츠 프리페치는, 유저가 페이지, 조건적 컨텐츠, 다른 컨텐츠 등을 실제 요구하기 이전에 상기 페이지, 조건적 컨텐츠, 다른 컨텐츠, 또는 이들의 조합을 다운르드하는 프리페치 모듈 (384) 를 포함할 수도 있지만, 이에 제한되는 것은 아니다.
유선 네트워크 내에서 동작하는 데스크탑들과 비교하여, 모바일 디바이스, 예를 들면, PCD (100) 상에서, 무선 네트워크 레이턴시들이 통상 더 강조된다. 또한, PCDs (100) 에 대한 CPU 리소스들은 데스크탑, 또는 랩탑 컴퓨터의 것들보다 통상 더 제한된다. 몇몇 무선 WWAN 커버리지 영역들에서, 업링크 리소스들은, 예를 들면, 단순한 실시형태로서, 4kbps 정도의 낮은 속도로 실제 제한될 수도 있다. 무선 네트워크 환경들에서 사용된 PCDs (100) 의 이들 제한들은 본원에서 개시된 프리페치 모듈 (384) 을 구비하는 웹브라우저에 의해 해결되는 문제들 중 일부이다.
도 4를 참조하면, DNS 프리페칭을 수행하는 방법이 도시되며 일반적으로 400으로 나타낸다. 블록 (404) 에서 시작하여, 웹브라우저 어플리케이션 (382) 은 렌더링된 페이지 상에서 링크들을 검출할 수도 있다. 또한, 블록 (406) 에서, 웹브라우저 어플리케이션 (382) 은 페이지 이동을 검출할 수도 있다.
결정 블록 (408) 으로 이동하여, 프리페칭 모듈 (382) 은 임의의 링크들이 페이지 내에서 보이는지의 여부를 결정할 수도 있다. 만약 그렇다면, 상기 방법 (400) 은 블록 (410) 으로 진행하고 프리페칭 모듈 (382) 은 그 웹페이지 상의 임의의 가시적인 링크에 대한 DNS 프리페치를 수행할 수도 있다. 그 후, 상기 방법 (400) 은 결정 블록 (412) 으로 진행할 수도 있다.
결정 블록 (408) 으로 되돌아가서, 렌더링된 페이지 상에 임의의 가시적인 링크들이 없다고 프리페칭 모듈 (382) 이 결정하면, 상기 방법 (400) 은 결정 블록 (412) 으로 바로 진행할 수도 있다. 결정 블록 (412) 에서, 프리페칭 모듈 (382) 은, 유저가 화면 컨텐츠를 변경하고 있는지, 즉, 스크롤링, 패닝, 및/또는 주밍 동작이 수행되고 있는지의 여부를 결정할 수도 있다. 만약 그렇지 않다면, 상기 방법 (400) 은 결정 블록 (414) 으로 이동하고 프리페칭 모듈 (382) 은 웹브라우저 어플리케이션이 닫혔는지의 여부를 결정할 수도 있다. 웹브라우저 어플리케이션이 닫혔다면, 상기 방법 (400) 은 종료할 수도 있다. 그렇지 않고, 만약 웹브라우저 어플리케이션이 닫히지 않았다면, 즉, 계속 실행중이거나 동작중이라면, 상기 방법 (400) 은 블록 (404) 로 되돌아가서 상기 방법 (400) 은 본원에서 설명된 바와 같이 계속 진행할 수도 있다.
결정 블록 (412) 로 돌아가서, 만약 유저가 화면 컨텐츠를 변경하고 있다면 (예컨대, 스크롤링), 상기 방법 (400) 은 결정 블록 (416) 으로 돌아가고 프리페칭 모듈 (382) 은 임의의 링크들이 화면으로 들어 왔는지의 여부를 결정할 수도 있다. 그렇지 않다면, 상기 방법 (400) 은 결정 블록 (414) 으로 계속 진행하고 상기 방법 (400) 은 그 후 본원에서 설명된 바와 같이 계속 진행할 수도 있다. 만약 링크들이 화면, 즉, 디스플레이의 보여지는 영역으로 들어갔다면, 상기 방법 (400) 은 블록 (418) 으로 진행하고 프리페칭 모듈 (382) 은 LIFO (last in first out) 큐 (119) 에 DNS 프리페치 작업을 배치시킬 수도 있다. 그 후, 상기 방법 (400) 은 결정 블록 (420) 으로 진행하고, 프리페칭 모듈 (382) 은 화면 변경 동작이 중지되었는지의 여부를 결정할 수도 있다. 화면 변경 동작이 중지되지 않았다면, 상기 방법 (400) 은 결정 블록 (416) 으로 되돌아가서 상기 방법 (400) 은 본원에서 설명된 바와 같이 계속 진행할 수도 있다. 그렇지 않고, 화면 변경 동작이 중지되었다면, 상기 방법 (400) 은 블록 (422) 으로 진행하고 프리페칭 모듈 (382) 은 디스플레이 (108) 내의 각각의 가시적인 링크에 대한 각각의 DNS 프리페치 작업을 실행할 수도 있다. 그 후, 상기 방법 (400) 은 결정 블록 (412) 으로 되돌아 가고 상기 방법 (400) 은 상술된 바와 같이 계속 진행할 수도 있다.
도 4에 도시된 상기 방법 (400) 은 즉시 클릭될 것 같은 또는 즉시 렌더링된 페이지 내에 떨어지는 링크들에 대해서만 프리페치를 제한할 수도 있다. 유저가 페이지를 스크롤하면, 보이게 되는 링크들에 대한 새로운 DNS 프리페치 요구들이 프리페칭 모듈 (382) 에 의해 생성될 수 있다.
도 5 및 도 6은 예시적인 웹페이지를 나타내며, 500으로 도시한다. 도 5에서, 웹페이지 (500) 는 제 1의 더 많은 커버리지 링크 (502) 와 제 2의 더 많은 커버리지 링크 (504) 를 포함한다. 웹페이지 (500) 가 최초 렌더링되면, DNS 프리페칭이 "더 많은 커버리지" 링크들 (502, 504) 양자에 대해 수행될 수도 있다. 따라서, 유저가 "더 많은 커버리지" 링크 (502, 504) 중 하나를 클릭하면,"더 많은 커버리지" 링크 (502, 504) 와 관련된 컨텐츠 또는 페이지가 짧은 시간 안에 유저에게 디스플레이될 수도 있다. 또한, 유저가 웹페이지를 스크롤 다운하면, 도 6에 도시된 바와 같이, 제 3의 "더 많은 커버리지" 링크 (602) 및 제 4의 "더 많은 커버리지" 링크 (604) 가 유저에게 디스플레이될 수도 있다. 또한, 일단 "더 많은 커버리지" 링크들 (602, 604) 이 보이게 되면, DNS 프리페칭이 수행될 수도 있고 유저가 "더 많은 커버리지" 링크들 (602, 604) 중 하나를 클릭하면, 유저가 디스플레이 (108) 내에 보이는 "더 많은 커버리지" 링크들 (602, 604) 중 임의의 링크를 클릭하기 이전에 프리페치 모듈 (384) 이 하나 이상의 TCP 소켓들, 또는 접속들을 호스트 서버에 대해 열기 때문에 "더 많은 커버리지" 링크들 (602, 604) 과 관련된 컨텐츠, 또는 페이지가 아주 짧은 시간 내에 유저에게 디스플레이될 수도 있다.
또한, 유저가 한 페이지를 위에서 아래로 재빨리 패닝하거나 스크롤하는 것이 가능하기 때문에, 아주 많은 수의 DNS 프리페치 작업들이 프리페치 모듈 (384) 에 의해 LIFO 큐 (119) 내에 쉽게 큐잉되고 저장될 수 있으며, 유저가 화면 변경 동작을 중지하면, 임의의 가시적인 링크들에 대한 DNS 프리페치 작업들이 프리페치 모듈 (384) 에 의해 수행될 수도 있다. 모바일 디바이스의 특성, 예를 들면, 데스크탑 컴퓨터 또는 랩탑 컴퓨터와 비교하여 상대적으로 긴 레이턴시들과 제한된 CPU 리소스들을 고려하면, 몇몇 DNS 프리페치들이 규잉되었었고 여전히 LIFO 큐 (119) 에 존재하는 뷰 영역을 지나서 유저가 스크롤하면, 프리페치 모듈 (384) 이 보이는 영역 내에서 이들 오래된 엘리먼트들 대 새로운 엘리먼트들에 대해 다시 우선순위를 매기는 것이 유익할 수도 있다.
CPU 리소스들, 네트워크 리소스들, 또는 이들의 조합이 약간 이용 가능하면, LIFO 큐 (119) 에서 엘리먼트들을 전부 제거하는 것이 적절할 수도 있다. 고해상도의 작은 화면의 핸드헬드형 디스플레이 (108) 에서, 유저는 통상 그들이 보기를 원하는 웹페이지의 일부를 주밍, 패닝 및 스크롤링할 것이다. LIFO 큐 (119) 를 사용하는 것에 의해, 프리페치 모듈 (384) 에 의해 실행되는 DNS 큐잉 작업 우선순위가, 유저에 의해 활성화된 피쳐들인 주밍, 패닝 및 스크롤링과 동기하여 더 정확하게 유지될 수도 있다. LIFO 큐 (119) 에 저장된 현재의 DNS 프리페치들에 유저가 관심이 없다는 것을 프리페치 모듈 (384) 이 결정하면, LIFO 큐 (119) 는 비워지거나 또는 자신의 컨텐츠로 버릴 수도 있다. 프리페치 모듈은, 유저의 활동들, 예컨대, LIFO 큐 (119) 에 로딩되었던 동일한 웹페이지 상의 링크들에 대해 아주 멀리 떨어져 유저가 스크롤링 하는 것에 기초하여, 이 결정을 할 수도 있다. 유저가 다른 웹페이지를 둘러보면 (navigate), 프리페치 모듈 (384) 에 의해 검출된 이 컨디션에 의해, 프리페치 모듈 (384) 은 LIFO 큐 (119) 의 컨텐츠를 또한 제거할 수도 있다.
도 7 및 도 8은 컨텐츠 프리페칭을 수행하는 방법의 제 1의 양태가 도시되며 일반적으로 700으로 나타내어진 것을 나타낸다. 단계 (702) 에서 시작하여, 웹브라우저 모니터 (107) 는 웹브라우징 히스토리를 유지할 수도 있다. 웹브라우징 히스토리는 유저가 본 모든 페이지들에 관한 데이터, 유저가 각 페이지를 본 시간, 유저가 본 각 페이지의 데이터, 또는 이들의 조합을 포함할 수도 있다. 그 후, 상기 방법 (700) 은 도 8의 블록 (802) 으로 진행할 수도 있다.
단계 (706) 로 이동하여, 시스템 모니터 (109) 는 CPU/버스 부하, 즉, 현재의 프로세서 부하를 결정할 수도 있다. CPU/버스 부하는 프로세서 속도, 예를 들면, 프로세서 주파수로서 표현될 수도 있다. 그 후, 상기 방법 (700) 은 도 8의 블록 (802) 으로 진행할 수도 있다. 단계 (708) 에서, 시스템 모니터 (109) 는 배터리 상태를 결정할 수도 있다. 배터리 상태는 남아 있는 배터리 수명, 남아 있는 전하, 또는 이들의 조합을 나타낼 수도 있다. 배터리 상태가 결정된 이후, 상기 방법 (700) 은 도 8의 블록 (802) 으로 계속될 수도 있다.
단계 (712) 에서, 도 3b와 관련하여 상기 설명된, HSPA (high speed packet access) 시스템 (177) 은 채널 (즉, 채널이 이용 가능하다면) 의 존재뿐만 아니라 채널 품질 인디케이터 (CQI) 를 결정할 수도 있다. 특별한 양태에서, CQI는 무선 채널의 통신 품질의 측정치일 수도 있다. CQI는 주어진 무선 채널에 대한 채널 품질의 측정치를 나타내는 값일 수도 있다. 상대적으로 높은 값을 갖는 CQI는, 특정 채널이 상대적으로 높은 품질을 갖는다는 것을 나타낼 수도 있다. 역으로, 상대적으로 낮은 값을 갖는 CQI는, 특정 채널이 상대적으로 낮은 품질을 갖는다는 것을 나타낼 수도 있다.
채널에 대한 CQI는 성능 메트릭, 예컨대, 신호대잡음비 (SNR), 신호대간섭 플러스 잡음비 (SINR; signal-to-interference plus noise ratio), 신호대잡음 플러스 왜곡비 (SNDR; signal-to-noise plus distortion ratio), 또는 이들의 조합을 사용하여 계산될 수도 있다. 이들 값들은 측정 채널에 대해서 측정되고, 그 후 채널에 대한 CQI를 계산하기 위해 사용될 수도 있다. 그 후, 각 채널에대한 CQI를 평균내어 CQIAVG 값을 결정한다. CQI의 결정에 후속하여, 상기 방법 (700) 은 도 8의 블록 (802) 으로 진행할 수도 있다.
단계 (716) 로 이동하여, HSPA 시스템 (177) 은 공통 파일럿 채널 신호대잡음비 (CPICH SNR; common pilot channel signal-to-noise ratio) 를 결정할 수도 있다. CPICH는 일정한 전력으로 브로드캐스팅할 수도 있으며 공지의 비트 시퀀스를 구비할 수도 있는 PCD (100) 의 다운링크임을 알 수도 있을 것이다. CPICH SNR이 결정된 이후 상기 방법 (700) 은 도 8의 블록 (802) 으로 진행할 수도 있다.
단계 (718) 에서, GPS (143) 는 휴대형 컴퓨팅 디바이스 (PCD; 100) 와 관련된 수직 속력을 모니터링 또는 결정할 수도 있다. 단계 (722) 에서, GPS (143) 는 PCD (100) 와 관련된 수평 속력을 결정할 수도 있다. 그 후, 단계 (724) 에서, GPS (143) 는 수직 속력을 웹브라우저 (382) 로 출력할 수도 있다. 또한, 단계 (728) 에서, GPS (143) 는 GPS 수평 속력을 웹브라우저 어플리케이션 (382) 으로 출력할 수도 있다.
블록 (730) 에 계속해서, 웹브라우저 어플리케이션 (726) 은 모바일 속력을 결정할 수도 있다. 모바일 속력은 하기의 식을 사용하여 결정될 수도 있다:
모바일 속력=
Figure 112013039047506-pct00001
여기서, vertspeed는 단계 (718) 에서 GPS (143) 에 의해 결정된 수직 속력이고 horzspeed는 단계 (722) 에서 GPS (143) 에 의해 결정된 수평 속력이다. 블록 (703) 으로부터, 상기 방법 (700) 은 도 8의 블록 (802) 으로 진행할 수도 있다.
도 8의 블록 (802) 에서, 현재 시간이 결정될 수도 있다. 결정 블록 (804) 에서, 프리페치 모듈 (384) 은, 미리 결정된 시간, 예를 들면, 상기 현재 시간으로부터 10분 내에 통상적으로 액세스된 임의의 공통의 웹사이트들이 존재하는지의 여부를 결정할 수도 있다. 이렇게 함에 있어서, 프리페치 모듈 (384) 은 PCD (100) 의 조작자에 기초하여 사용 패턴을 결정할 수도 있다. 프리페치 모듈 (384) 은, 상기 설명된 단계 (702) 에서 웹브라우저 모니터 (107) 에 의해 유지되고 모니터링된 웹브라우저 히스토리에 기초하여 이 결정을 수행할 수도 있다. 상기 현재 시간으로부터 10분 동안 통상적으로 액세스된 임의의 공통 웹사이트들이 존재하지 않으면, 상기 방법 (700) 은 블록 (806) 으로 진행하고 프리페치 모듈 (384) 과 협력하여 작동하는 브라우저 어플리케이션 (382) 에 의해 프리페치 루틴을 빠져 나올 수도 있다. 한편, 상기 현재 시간으로부터 10분 동안 통상적으로 액세스된 공통의 웹사이트들이 존재하면, 프리페치 모듈 (384) 은 결정 블록 (808) 으로 진행할 수도 있다.
결정 블록 (808) 에서, 프리페치 모듈 (384) 은 시스템 모니터 (109) 에 의해 단계 (706) 에서 상기 결정된 CPU/버스 부하가 CPU/버스 부하 컨디션을 만족하는지의 여부를 결정할 수도 있다. 예를 들면, CPU/버스 부하 컨디션은 주파수값 임계치일 수도 있고 CPU/버스 부하가 주파수값 임계치보다 작으면, CPU/버스 부하는 CPU/버스 부하 컨디션을 만족할 수도 있다. CPU/버스 부하가 주파수값 임계치보다 작지 않으면, 프리페치 모듈 (384) 에 의해 실행되는 상기 방법 (700) 은 블록 (806) 으로 진행하고 웹브라우저 어플리케이션 (382) 은 프리페치 모듈 (384) 에 의해 실행되는 프리페치 루틴 (700) 을 빠져나올 수도 있다.
역으로, 결정 블록 (808) 에서, CPU/버스 부하가 주파수값 임계치보다 작으면, 상기 방법 (700) 은 결정 블록 (810) 으로 진행할 수도 있고 프리페치 모듈 (384) 은 PCD (100) 가 충전기에 연결되어 있는지의 여부를 결정할 수도 있다. PCD (100) 가 충전기에 연결되어 있지 않다면, 상기 방법 (700) 은 결정 블록 (812) 으로 진행할 수도 있고 프리페치 모듈 (384) 은, 시스템 모니터 (109) 에 의해 단계 (710) 에서 결정된 배터리 상태가 배터리 컨디션을 만족하는지의 여부를 결정할 수도 있다. 특별한 양태에서, 배터리 상태는 배터리 수명이며 배터리 컨디션은 배터리 수명 임계치일 수도 있다. 배터리 수명이 배터리 컨디션을 만족할 수도 있다는 것은 배터리 수명이 배터리 수명 임계치보다 더 크다는 것이다.
배터리 수명이 임계치보다 작으면, 상기 방법 (700) 은 블록 (806) 으로 진행할 수도 있고 웹브라우저 어플리케이션은 프리페치 루틴을 빠져나올 수도 있다. 배터리 수명이 임계치보다 더 크면, 상기 방법 (700) 은 결정 블록 (814) 으로 진행할 수도 있다. 결정 블록 (810) 으로 되돌아가서, PCD (100) 가 충전기에 연결되면, 상기 방법 (700) 은 결정 블록 (814) 으로 또한 계속될 수도 있다.
결정 블록 (814) 에서, 프리페치 모듈 (384) 은, HSPA 시스템 (177) 에 의해 단계 (712) 에서 결정된 평균 CQI가 CQI 컨디션을 만족하는지의 여부 또는 HSPA 시스템 (177) 에 의해 단계 (716) 에서 결정된 CPICH SNR이 CPICH SNR 컨디션을 만족하는지의 여부를 결정할 수도 있다. 대안으로 또는 부가적으로, 이 블록 (814) 에서, 프리페치 모듈 (384) 은, 채널이 존재하는지 또는 이용 가능한지의 여부를 또한 결정할 수도 있다.
CQI 컨디션은 임계값일 수도 있으며 평균 CQI가 이 임계값보다 더 크면 평균 CQI는 CQI 컨디션을 만족할 수도 있다. 특별한 양태에서, 임계값은 약 20일 수도 있다. 이 값의 CQI는 초당 수메가비트들 정도의 데이터율을 적어도 달성하는 것을 보장할 수도 있다. CPICH SNR 컨디션은 또한 임계값일 수도 있고, CPICH SNR이 임계값보다 더 크면 CPICH SNR은 컨디션을 만족할 수도 있다. 예를 들면, CPICH SNR이 -10데시벨 이상이면, 이 컨디션은 무선 PCD (100) 에 대해 프리페칭이 어렵지 않게 발생하도록 할 수도 있다.
결정 블록 (814) 에서, 평균 CQI가 임계값보다 크지 않거나 CPICH SNR이 임계값보다 크지 않으면, 상기 방법 (700) 은 블록 (806) 으로 진행하고 웹브라우저 어플리케이션 (382) 은 프리페치 모듈 (384) 에 의해 실행되는 프리페치 루틴을 빠져나갈 수도 있다. 결정 블록 (814) 에서, 평균 CQI가 임계값보다 더 크거나 또는 CPICH SNR이 임계값보다 더 크면, 상기 방법 (700) 은 결정 블록 (816) 으로 진행할 수도 있다.
결정 블록 (816) 에서, 프리페치 모듈 (384) 은, 단계 (730) 에서 결정된 모바일 속력이 속력 컨디션을 만족하는지의 여부를 결정할 수도 있다. 예를 들면, 속력 컨디션은 속력 임계치일 수도 있고, 모바일 속력이 속력 임계치보다 작으면 모바일 속력은 컨디션을 만족할 수도 있다. 속력 임계치는 어떤 값일 수도 있고, 이 어떤 값 이하에서는 무선 신호가 상대적으로 안정적이라고 가정될 수도 있으며, 예를 들면, 속력 임계치는 시간당 3마일 (3mph) 일 수도 있다.
결정 블록 (816) 에서, 모바일 속력이 속력 임계치보다 작지 않으면, 상기 방법 (700) 은 블록 (806) 으로 이동할 수도 있고 웹브라우저 어플리케이션 (382) 은 프리페치 모듈 (384) 에 의해 실행되는 프리페치 루틴을 빠져나올 수도 있다. 다르게는, 모바일 속력이 속력 임계치보다 아래이면, 상기 방법 (700) 은 블록 (818) 으로 계속될 수도 있고 프리페치 모듈 (384) 은 컨텐츠 프리페칭을 수행할 수도 있다. 그 후, 상기 방법 (700) 은 종료할 수도 있다.
이제 도 9를 참조하면, 프리페치 모듈 (384) 에 의해 컨텐츠 프리페칭을 수행하는 방법의 제 2의 양태가 도시되며 일반적으로 900으로 나타낸다. 블록 (904) 에서 시작하여, 프리페치 모듈 (384) 은 웹브라우저 어플리케이션 (382) 에 의해 로딩된 현재 페이지와 관련된 페이지 컨텐츠를 모니터링할 수도 있다. 블록 (906) 에서, 프리페치 모듈 (384) 은 페이지 이동을 모니터링할 수도 있다.
결정 블록 (908) 으로 이동하여, 프리페치 모듈 (384) 은, 현재 페이지 컨텐츠가 텍스트와 이미지들을 넘는 임의의 대안적인 컨텐츠, 예컨대 비디오들 및 오디오와 같은 멀티미디어 파일들을 포함하는지의 여부를 결정할 수도 있다. 현재 페이지 컨텐츠가 대안적인 컨텐츠를 포함하면, 상기 방법 (900) 은 블록 (910) 으로 진행할 수도 있고 프리페치 모듈 (384) 은 대안적인 컨텐츠를 프리페치할 수도 있다. 이러한 경우, 대안적인 컨텐츠 프리페치에 의해, 유저가 대안적인 컨텐츠를 클릭하면, 대안적인 컨텐츠, 예컨대 비디오 또는 오디오 파일이 상대적으로 짧은 지연을 가지고 디스플레이/플레이 될 수도 있고, 무선 환경 내에서 컨텐츠의 보통의 페칭과 관련된 대기 시간을 줄임으로써 유저 경험 (user experience) 을 향상시킬 수도 있다. 블록 (910) 으로부터, 상기 방법 (900) 은 결정 블록 (912) 으로 진행할 수도 있다. 결정 블록 (908) 으로 되돌아가서, 현재 페이지가 임의의 대안적인 컨텐츠를 포함하지 않으면, 상기 방법 (900) 은 결정 블록 (912) 으로 바로 진행할 수도 있다.
결정 블록 (912) 에서, 프리페치 모듈 (384) 은 현재 웹페이지에 대한 화면 컨텐츠를 변경하고 있는지의 여부를 결정할 수도 있다. 그렇지 않다면, 상기 방법 (900) 은 결정 블록 (914) 으로 진행할 수도 있고 웹브라우저 어플리케이션 (382) 이 닫혔는지의 여부를 결정할 수도 있다. 만약 그렇다면, 상기 방법 (900) 은 종료할 수도 있다. 한편, 웹브라우저 어플리케이션 (382) 이 닫히지 않았다면, 상기 방법 (900) 은 블록 (904) 으로 되돌아갈 수도 있고 상기 방법 (900) 은 본원에서 설명된 바와 같이 계속될 수도 있다.
결정 블록 (912) 으로 되돌아가서, 유저가 화면 컨텐츠를 변경하고 있다면, 상기 방법 (900) 은 블록 (916) 으로 계속될 수도 있고 프리페치 모듈 (384) 은 스크롤 방향을 결정할 수도 있다. 그 후, 결정 블록 (918) 에서, 프리페치 모듈 (384) 은, 링크가 스크롤 방향의 표시 화면에 막 들어가려고 하는지의 여부를 결정할 수도 있다. 표시 화면으로 막 들어가려고 하는 링크가 없다면, 상기 방법 (900) 은 결정 블록 (914) 으로 진행할 수도 있고 상기 방법 (900) 은 본원에서 설명된 바와 같이 계속될 수도 있다.
결정 블록 (918) 에서, 하나 이상의 링크들이 스크롤 방향의 화면 (108) 에 막 들어가려고 하면, 상기 방법 (900) 은 블록 (920) 으로 진행할 수도 있고 프리페치 모듈 (384) 은 각각의 들어오는 링크와 관련된 컨텐츠를 프리페치할 수도 있다. 따라서, 유저가 새롭게 들어온 링크를 클릭하면, 그 링크와 관련된 컨텐츠가 지체 없이 또는 무선 네트워크 내에서의 보통의 페칭과 비교하여 실질적으로 대기 시간이 감소되어 유저에게 보이게 될 수도 있다. 블록 (920) 으로부터, 상기 방법 (900) 은 결정 블록 (914) 으로 진행할 수도 있다. 그 후, 상기 방법 (900) 은 상술한 바와 같이 계속될 수도 있다.
도 10은 컨텐츠 프리페칭을 수행하는 제 3의 양태를 도시하며, 1000으로 나타낸다. 블록 (1004) 에서 시작하여, 프리페치 모듈 (384) 은 타이밍 알람이 설정되었는지의 여부를 결정할 수도 있다. 타이밍 알람이 설정되었다면, 상기 방법 (1000) 은 블록 (1006) 으로 진행할 수도 있고 프리페치 모듈 (384) 은 시간을 모니터링할 수도 있다. 그 후, 결정 블록 (1008) 에서, 프리페치 모듈 (384) 은, 현재 시간이 타임 컨디션을 만족하는지의 여부를 결정할수도 있다. 예를 들면, 시간 컨디션은 알람 시간에서 미리 결정된 시간양, 예를 들면 5분, 10분, 15분 등을 뺀 시간일 수도 있다. 시간이 알람 시간에서 미리 결정된 시간양을 뺀 시간과 동일하면, 현재 시간은 시간 컨디션을 만족할 수도 있다.
시간이 알람 시간에서 미리 결정된 시간양을 뺀 시간과 동일하지 않으면, 상기 방법 (1000) 은 블록 (1006) 으로 되돌아 갈 수도 있고 상기 방법 (1000) 은 본원에서 설명된 바와 같이 계속될 수도 있다. 다르게는, 시간이 알람 시간에서 미리 결정된 시간양을 뺀 시간과 동일하면, 상기 방법 (1000) 은 블록 (1010) 으로 진행할 수도 있다.
블록 (1010) 에서, 웹브라우저 (382) 의 프리페치 모듈 (384) 은 하나 이상의 페이지들을 프리페치할 수도 있다. 그 페이지들은, 웹브라우저 히스토리, 북마크들, 또는 이들의 조합에 기초한 유저 선택에 기초하여 결정될 수도 있다. 따라서, 유저가 디바이스 알람을 오전 8시로 설정하면, 오전 7시 45분에, 프리페치 모듈 (384) 은 컨텐츠 프리페칭, DNS 프리페칭, 또는 이들의 조합의 수행을 시작할 수도 있다. 그러면, 알람이 울린 후, 유저는 깨어나서,디바이스를 쥐게 되고, 컨텐츠를 즉시 볼 수 있게 될 수도 있다.
블록 (1010) 으로부터, 상기 방법 (1000) 은 결정 블록 (1012) 으로 진행할 수도 있다. 블록 (1004) 으로 되돌아가서, 디바이스 알람이 설정되지 않으면, 상기 방법 (1000) 은 결정 블록 (1012) 으로 또한 이동할 수도 있다. 결정 블록 (1012) 에서, 프리페치 모듈 (384) 은, 프리페치 시간이 특정되는지, 예를 들면, 유저가 시간을 결정했는지, 또는 시스템이 (예를 들면, 히스토리에 기초하여) 시간을 결정했는지, 또는 이들의 조합에 의해 결정되었는지의 여부를 결정할 수도 있다. 프리페치 시간은, 웹브라우저 어프리케이션이 컨텐츠 프리페칭, DNS 프리페칭, 또는 이들의 조합의 수행을 시작할 수도 있는 특정 시간일 수도 있다.
프리페치 시간이 특정되면, 상기 방법 (1000) 은 블록 (1014) 으로 진행할 수도 있고, 웹브라우저 어플리케이션은 시간을 모니터링 할 수도 있다. 그 후, 결정 블록 (1016) 에서, 프리페치 모듈 (384) 은, 시간이 컨디션을 만족하는지의 여부를 결정할 수도 있다. 컨디션은 특정된 프리페치 시간일 수도 있고 시간이 특정된 프리페치 시간과 동일하면 시간은 컨디션을 만족할 수도 있다. 특정된 프리페치 시간과 시간이 동일하지 않으면, 상기 방법 (1000) 은 블록 (1014) 으로 되돌아 갈 수도 있고 상기 방법 (1000) 은 상술된 바와 같이 계속될 수도 있다. 다르게는, 상기 방법 (1000) 은 블록 (1018) 으로 진행할 수도 있고 웹브라우저 어플리케이션은 컨텐츠를 프리페칭할 수도 있다. 그 후, 상기 방법 (1000) 은 결정 블록 (1020) 으로 진행할 수도 있다.
블록 (1012) 로 되돌아가서, 프리페치 시간이 특정되지 않으면, 상기 방법 (1000) 은 또한 결정 블록 (1020) 으로 진행할 수도 있다. 결정 블록 (1020) 에서, 프리페치 모듈 (384) 은, PCD 사용이 디바이스 사용 컨디션을 만족하는지의 여부를 결정할 수도 있다. 디바이스 사용 컨디션은 사용 임계치일 수도 있고 PCD 사용이 이 임계치 아래로 떨어지면, 컨디션은 만족될 수도 있다. 디바이스 사용이 사용 임계치 아래로 떨어지지 않으면, 상기 방법 (1000) 은 종료할 수도 있다. 다르게는, 디바이스 사용이 사용 임계치보다 더 작으면, 상기 방법 (1000) 은 블록 (1022) 으로 진행할 수도 있고 프리페치 모듈 (384) 은 컨텐츠를 프리페치할 수도 있다. 따라서, PCD (100) 가 저사용 모드에 있으면, 즉 유저가 잠을 자는 동안의 밤과 유저가 PCD (100) 상에 디스플레이될 수 있는 소망의 웹페이지로 가기를 원하기 이전이면, 프리페치 모듈 (384) 은 DNS 프리페칭, 컨텐츠 프리페칭, 또는 이들의 조합을 수행할 수도 있다. 블록 (1022) 이후, 상기 방법 (1000) 은 종료할 수도 있다.
도 11 및 도 12는 컨텐츠 프리페칭을 수행하는 제 4의 양태를 도시하면, 일반적으로 1100으로 나타낸다. 블록 (1104) 에서 시작하여, 웹브라우저 어플리케이션 (382) 을 구비하는 PCD (100) 가 기동되면, 프리페치 모듈 (384) 은 웹브라우저 히스토리를 리뷰할 수도 있다. 블록 (1106) 에서, 프리페치 모듈 (384) 은, 임의의 페이지 뷰들, 즉, 임의의 페이지에 대한 다수의 뷰들이 페이지 뷰 컨디션을 만족하는지의 여부를 결정할 수도 있다. 페이지 뷰 컨디션은 페이지 뷰들의 유저 특정, 또는 시스템 특정의 페이지 뷰들의 수일 수도 있고, 페이지 뷰들이 페이지 뷰들의 수보다 더 크면, 페이지 뷰들은 페이지 뷰 컨디션을 만족할 수도 있다. 예를 들면, 특정 페이지에 대한 페이지 뷰들이 10보다 더 크면, 컨디션은 만족될 수도 있다.
페이지 뷰들이 페이지 뷰 컨디션을 만족하면, 상기 방법 (1100) 은 블록 (1108) 으로 진행할 수도 있고, 프리페치 모듈 (384) 은 페이지 뷰 컨디션을 만족하는 페이지 뷰들을 갖는 임의의 페이지들을 프리페치할 수도 있다. 그 후, 상기 방법 (1100) 은 결정 블록 (1110) 으로 진행할 수도 있다. 결정 블록 (1106) 으로 되돌아가서, 페이지 뷰들이 페이지 뷰 컨디션을 만족하지 못하면, 상기 방법 (1100) 은 결정 블록 (1110) 으로 또한 진행할 수도 있다.
결정 블록 (1110) 에서, 프리페치 모듈 (384) 은 임의의 웹페이지 컨텐츠가 스코어링되는 (scored) 지의 여부를 결정할 수도 있다. 컨텐츠는 컨텐츠의 호스트, 컨텐츠의 생성자, 목표 스코어링 바디, 또는 이들의 조합에 의해 스코어링될 수도 있다. 컨텐츠와 관련된 스코어는, 컨텐츠가 프리페치되어야 함을 나타낼 수도 있다. 임의의 컨텐츠가 스코어링되면, 상기 방법 (1100) 은 결정 블록 (1112) 으로 진행할 수도 있고, 프리페치 모듈 (384) 은, 임의의 컨텐츠 스코어가 스코어 컨디션을 만족하는지의 여부를 결정할 수도 있다. 컨텐츠 스코어는 유저 선택 스코어일 수도 있고, 컨텐츠 스코어가 유저 선택 스코어보다 더 크면 컨텐츠 스코어는 컨디션을 만족할 수도 있다. 예를 들면, 유저는 7 또는 그 이상의 스코어를 갖는 모든 컨텐츠가 프리페치 모듈 (384) 에 의해 프리페치되어야 한다고 명시할 수도 있다.
결정 블록 (1112) 에서, 임의의 컨텐츠의 스코어가 임계치보다 더 크면, 상기 방법 (1100) 은 블록 (1114) 으로 진행할 수도 있고 프리페치 모듈 (384) 은 임계치보다 더 큰 스코어를 갖는 임의의 컨텐츠를 프리페치할 수도 있다. 그 후, 상기 방법은 결정 블록 (1116) 으로 진행할 수도 있다. 결정 블록 (1110) 으로 되돌아가서, 어떤 컨텐츠도 스코어링되지 않으면, 상기 방법 (1100) 은 결정 블록 (1116) 으로 또한 진행할 수도 있다. 또한, 결정 블록 (1112) 에서, 어떤 스코어도 컨디션을 만족하지 않으면, 상기 방법 (1100) 은 결정 블록 (1116) 으로 이동할 수도 있다.
결정 블록 (1116) 에서, 프리페치 모듈 (384) 은, 임의의 링크들이 화면 상에 있는지의 여부를 결정할 수도 있다. 만약 그렇다면, 프리페치 모듈 (384) 은 화면 상의 링크들과 관련된 컨텐츠를 프리페치할 수도 있다. 그 후, 상기 방법은 도 12의 결정 블록 (1202) 으로 진행할 수도 있다. 결정 블록 (1116) 으로 되돌아가서, 화면 상에 어떠한 링크도 없다면, 상기 방법 (1200) 은 도 12의 결정 블록 (1202) 으로 또한 진행할 수도 있다.
도 12의 결정 블록 (1202) 에서, 프리페치 모듈 (384) 은, 현재 웹페이지 상의 임의의 컨텐츠 타입이 컨텐츠 타입 컨디션을 만족하는지의 여부를 결정할 수도 있다. 예를 들면, 컨텐츠 타입 컨디션은 .jpg, .mpeg, .mp3, .wav, .avi, .wmv, .mov, 등일 수도 있고, 컨텐츠 타입이 컨텐츠 타입 컨디션의 것과 동일하면, 컨텐츠 타입은 컨디션을 만족할 수도 있다. 따라서, 통상 파일 사이즈가 크지 않은 어떤 타입들의 컨텐츠는 프리페치될 수도 있다. 상대적으로 큰 다른 타입들의 컨텐츠, 예를 들면 스트리밍 컨텐츠, .pdf 등은 그들과 관련된 큰 오버헤드로 인해 프리페치되지 않을 수도 있다.
결정 블록 (1202) 에서, 컨텐츠 타입이 컨텐츠 타입 컨디션을 만족하면, 상기 방법 (1100) 은 블록 (1204) 으로 진행할 수도 있고 프리페치 모듈 (384) 은 컨텐츠 타입 컨디션을 만족하는 컨텐츠를 프리페치할 수도 있다. 그 후, 상기 방법 (1100) 은 결정 블록 (1206) 으로 진행할 수도 있다. 결정 블록 (1202) 으로 되돌아가서, 컨텐츠 타입이 컨텐츠 타입 컨디션을 만족하지 못하면, 상기 방법 (1100) 은 결정 블록 (1206) 으로 또한 진행할 수도 있다.
결정 블록 (1206) 에서, 프리페치 모듈 (384) 은, 추정된 다운로드 시간이 어떤 컨디션과 동일한지의 여부를 결정할 수도 있다. 특별한 양태에서, 프리페칭을 위한 파일 사이즈 임계치는 파일 사이즈의 함수일 수도 있고 최대 이용 가능한 데이터율일 수도 있다. 예를 들면, 결정 블록 (1206) 에서, 바람직한 컨디션은, 미리 결정된 시간양, 예컨대 수초 내에 완료될 수도 있는 컨텐츠를 프리페칭하는 것을 포함할 수도 있다. 따라서, 최대 이용 가능한 데이터율이 초당 28.8메가비트 (Mbps) 이면, 결정 블록 (1206) 에 대한 컨디션 또는 임계치는 다음과 같이 설정될 수도 있다: 28.2 (최대 이용 가능한 데이터율) × 1초 (시간) × 75% (가중 상수/인자) =2.7메가바이트 (프리페치 모듈 (384) 에 의해 다운로드하는 최대 파일 사이즈).
결정 블록 (1206) 에서, 현재 웹페이지 상의 임의의 컨텐츠 사이즈가 다운로드 시간 컨디션을 만족하면, 상기 방법 (1100) 은 블록 (1208) 으로 진행할 수도 있고 컨텐츠 사이즈 컨디션을 만족하는 컨텐츠는 웹브라우저 어플리케이션에 의해 프리페치될 수도 있다. 그 후, 상기 방법 (1100) 은 종료할 수도 있다. 결정 블록 (1206) 으로 되돌아가서, 어떠한 컨텐츠도 컨텐츠 사이즈 컨디션과 동일하지 않으면, 상기 방법 (1100) 은 종료할 수도 있다.
도 13을 참조하면, 컨텐츠 프리페칭을 수행하는 제 5의 양태가 도시되며 일반적으로 1300으로 나타낸다. 블록 (1304) 에서 시작하여, PCD (100) 가 기동되면, 하기의 단계들이 수행될 수도 있다. 특별한 양태에서, PCD (100) 는 그 내부에 복수의 프로세서들 (324) 을 구비할 수도 있거나 또는 PCD (100) 는 내부에 멀티코어 프로세서 (324) 를 구비할 수도 있다. 블록 (1304) 에서, 프리페치 모듈 (384) 은 PCD (100) 의 복수의 프로세서들,또는 코어들을 모니터링할 수도 있다. 결정 블록 (1306) 에서, 웹브라우저 어플리케이션 (382) 의 프리페치 모듈 (384) 은, DSP의 모든 프로세서들, 또는 코어들 (324) 이 아이들 상태 또는 슬립 모드에 있는지의 여부를 결정할 수도 있다. 프로세서들 또는 코어들이 슬립 상태에 있다면, 상기 방법 (1300) 은 "예" 분기를 따라 블록 (1308) 로 진행할 수도 있고, 웹브라우저 어플리케이션 (382) 의 프리페치 모듈 (384) 은 컨텐츠 프리페칭을 인에이블할 수도 있다.
결정 블록 (1310) 으로 이동하여, 프리페치 모듈 (384) 은, 프리페치 컨디션이 존재하는지의 여부를 결정할 수도 있다, 즉, 프리페칭 후보인 임의의 컨텐츠를 현재 웹페이지가 포함하는지, 현재 시간이 컨텐츠 프리페칭의 성능을 보장하는지, 현재 시간이 DNS 프리페칭의 성능을 보장하는지, 또는 이들의 조합을 보장하는지의 여부를 결정할 수도 있다. 프리페치 컨디션이 존재하면, 상기 방법 (1300) 은 블록 (1312) 으로 진행할 수도 있고, 예를 들면, DSP의 아이들 프로세서, 또는 코어 (324) 를 에너자이징 하기 위한 요구를 시스템 모니터 (109) 에 전송함으로써, 프리페치 모듈 (384) 은 DSP의 아이들 프로세서, 또는 코어 (324) 를 에너자이징 할 수도 있다.
다음에, 블록 (1314) 에서, 프리페치 모듈 (384) 은 DSP의 아이들 프로세서, 또는 코어 (324) 를 사용하여 프리페칭 동작을 수행할 수도 있다. 상기 방법은 그 후 블록 (1316) 으로 진행할 수도 있다. 결정 블록 (1310) 으로 되돌아가서, 프리페치 컨디션이 존재하지 않으면, 상기 방법 (1300) 은 블록 (1316) 으로 바로 진행할 수도 있다. 블록 (1316) 에서, 프리페치 모듈 (384) 은 CPU 주파수에서의 추정된 변경을 결정할 수도 있다. 특별한 양태에서, 웹브라우저 어플리케이션 (382) 의 프리페치 모듈 (384) 은, 하나 이상의 구동 큐들 (run queues) 로부터 수신된 정보를 모니터링하거나 또는 스케줄러를 포함할 수도 있는 시스템 모니터 (109) 로부터 또는 이들의 조합으로부터 수신된 정보에 기초하여 CPU에서의 추정된 변경을 결정할 수도 있다.
결정 블록 (1318) 으로 이동하여, 프리페치 모듈 (384) 은, CPU 주파수에서의 추정된 변경이 CPU 주파수 컨디션과 동일한지의 여부를 결정할 수도 있다. 예를 들면, CPU 주파수 컨디션은 CPU 주파수 임계치일 수도 있고, CPU 주파수에서의 추정된 변경이 CPU 주파수 임계치보다 더 크면, CPU 주파수는 CPU 주파수 컨디션을 만족할 수도 있다. CPU 주파수에서의 추정된 변경이 CPU 주파수 컨디션을 만족하면, 상기 방법 (1300) 은 블록 (1320) 으로 진행할 수도 있고 프리페치 모듈 (384) 은 프리페치를 디스에이블할 수도 있다. 프리페치 모듈 (384) 은, 프로세서들, 또는 코어들이 프리페칭 작업들, 또는 동작들을 수행하기에는 너무 바쁘게 될 수도 있다고 예상하여, 프리페칭을 디스에이블할 수도 있다.
블록 (1320) 으로부터, 상기 방법 (1300) 은 결정 블록 (1322) 으로 진행할 수도 있다. 결정 블록 (1318) 으로 되돌아가서, CPU 주파수에서의 추정된 변경이 CPU 주파수 컨디션을 만족하지 못하면, 상기 방법 (1300) 은 결정 블록 (1322) 으로 또한 진행할 수도 있다. 결정 블록 (1322) 에서, 프리페치 모듈 (384) 은, 휴대형 컴퓨팅 디바이스 (100) 의 전원이 오프되는지의 여부를 결정할 수도 있다. 만약 그렇다면, 상기 방법 (1300) 은 종료할 수도 있다. 그렇지 않다면, 휴대형 컴퓨팅 디바이스 (100) 의 전원이 오프되지 않았고 온 상태로 유지되어 동작 중이면, 상기 방법 (1300) 은 블록 (1304) 으로 진행할 수도 있고, 상기 방법 (1300) 은 본원에서 설명된 바와 같이 계속될 수도 있다.
결정 블록 (1306) 으로 되돌아가서, 모든 프로세서들이 온 상태이고 아이들 상태에 있지 않다고 프리페치 모듈 (384) 이 결정하면, 상기 방법 (1300) 은 "아니오" 분기를 따라 블록 (1324) 로 진행할 수도 있다. 블록 (1324) 에서, 프리페치 모듈 (384) 은 현재의 CPU 부하, 예를 들면, 각 프로세서, 각 코어 또는 이들의 조합에 대한 부하를 결정할 수도 있다. 현재의 CPU 부하는 시스템 모니터 (109) 로부터 수신된 정보에 기초하여 결정될 수도 있다. 그 정보는 현재의 동작 주파수를 포함할 수도 있다. 백분율 값을 결정하기 위해, 각 프로세서, 또는 코어에 대한 최대 동작 주파수에 의해 현재 동작 주파수를 제산함으로써 부하가 결정될 수도 있다.
결정 블록 (1326) 으로 이동하여, 프리페치 모듈 (384) 은, CPU 부하가 CPU 부하 컨디션을 만족하는지의 여부를 결정할 수도 있다. 예를 들면, CPU 부하 컨디션은 어떤 백분율의 사용 값일 수도 있고, CPU 부하가 그 백분율의 사용 값보다 더 크면, CPU 부하는 CPU 부하 컨디션을 만족할 수도 있다. 결정 블록 (1326) 에서, CPU 부하가 CPU 부하 컨디션을 만족하면, 상기 방법 (1300) 은 블록 (1328) 으로 계속되어 프리페칭이 디스에이블될 수도 있다. 따라서, 웹브라우저 어플리케이션은 CPU 부하가 프리페칭 동작들 또는 작업들을 수행하기에 너무 크게 되면 프리페칭을 디스에이블할 수도 있다. 프리페칭을 디스에이블하기 위한 트리거로서 CPU 부하를 사용하는 대신, 프리페치 모듈 (384) 은 각 프로세서, 또는 코어에 대한 온도 정보를 수신할 수도 있고, 그 온도 데이터가 고온 컨디션을 나타내면, 프리페치 모듈 (384) 은 프리페칭을 또한 디스에이블할 수도 있음을 알 수도 있을 것이다.
블록 (1328) 으로부터, 상기 방법 (1300) 은 블록 (1316) 으로 진행할 수도 있고, 그 후, 상기 방법 (1300) 은 본원에서 설명된 바와 같이 계속될 수도 있다. 또한, 결정 블록 (1326) 으로부터, CPU 부하가 CPU 부하 컨디션을 만족하지 못하면, 상기 방법 (1300) 은 블록 (1316) 으로 또한 진행하여 설명된 바와 같이 계속될 수도 있다.
본원에서 설명된 방법 단계들이 설명된 순서대로 반드시 수행될 필요는 없음이 이해되어야만 한다. 또한, "그 후", "그 다음", "다음에" 등과 같은 단어들은 단계들의 순서를 제한하려는 의도는 아니다. 이들 단어들은, 단순히, 독자들을 인도하여 본 방법 단계들의 설명을 이해시키기 위해 사용된다. 또한, 본원에서 설명된 방법들은 휴대형 컴퓨팅 디바이스 (PCD) 상에서 실행 가능한 것으로서 설명된다. PCD는 이동전화 디바이스, PDA (portable digital assistant) 디바이스, WWAN 접속을 갖는 스마트북 컴퓨팅 디바이스, WWAN 접속을 갖는 넷북 컴퓨팅 디바이스, WWAN 접속을 갖는 랩탑 컴퓨팅 디바이스, WWAN 접속을 갖는 데스크탑 컴퓨팅 디바이스, 또는 이들의 조합일 수도 있다. 또한, 본원에서 설명되지 않은 새로운 방법들을 창출하기 위해, 여러 방법 단계들이 임의의 순서로 결합될 수도 있다.
본원에서 설명된 구성에 의해, 본원의 시스템들 및 방법들은 DNS 프리페칭, 컨텐츠 프리페칭, 또는 이들의 조합을 수행하도록 사용될 수도 있다. DNS 프리페칭이 모바일 통신 네트워크에 상당한 부하를 줄 수도 있기 때문에, DNS 프리페칭은, 유저가 디바이스를 사용하지 않을 때, 예를 들면, 유저가 (기록된 사용 히스토리에 기초하여) 통상적으로 디바이스를 사용하기 이전, 알람이 설정되기 직전, 프리페치 알람이 트리거될 때, 디바이스가 저사용 모드에 있을 때, 또는 이들의 조합적인 상황에 있을 때, 때때로 도 10을 참조로 상기 설명된 바와 같이 수행될 수도 있다.
또한, 컨텐츠 프리페칭은 사용되지 않은, 또는 사용하에 있는 네트워크 리소스들, 렌더링 리소스들, 또는 이들의 조합을 사용하여 수행될 수도 있다. 컨텐츠를 프리페칭하는 것은 더 나은 품질의 서비스를 제공할 수도 있고, 유저에 의해 컨텐츠가 실제 요구되기 이전에 유저가 미리보기를 원할 수도 있는 컨텐츠를 취출하는 것에 의해 유저 경험을 실질적으로 향상시킬 수도 있다. 예를 들면, 시스템은, 도 11과 연계하여 상기 설명된 바와 같이, 빈번하게 방문된 페이지들, (스코어 등에 기초하여) 유저에 의해 가장 클릭되기 쉬운 링크들, 이들의 조합을 프리페치할 수도 있다.
시스템은 조건적 컨텐츠, 예약된 컨텐츠, 예측된 컨텐츠, 또는 이들의 조합을 사용할 수도 있다. 예를 들면, 조건적 컨텐츠는, 유저 입력 또는 시각과 같은 어떤 이벤트에 기초하여 조건적으로 선택될 수도 있는 컨텐츠를 프리로딩 (preloading), 즉, 프리페칭하는 것을 포함할 수도 있다. 예약된 컨텐츠는, 도 10과 연계하여 상기 설명된 바와 같이, 매일 이른 아침과 같은 시각에 기초하여 컨텐츠를 프리로딩, 또는 프리페칭하는 것을 포함할 수도 있다. 이것은, 컨텐츠가 유저에 의해 요구되기 직전에 컨텐츠가 이용 가능하게 되도록 할 수도 있다. 예측된 컨텐츠는, 도 4 및 도 9에서 상기 설명된 바와 같이, 유저 요구에 앞서 컨텐츠를 예측하고 프리로딩하는 것을 포함할 수도 있다. 이것은 더 나은 응답성을 제공하는 것에 의해 유저 경험을 향상시킬 수도 있다.
도 4 및 도 9를 참조하여 설명된 바와 같이, 유저 히스토리, 서버 리소스 메트릭들, 특별한 URL에 대한 뷰 및 마우스 근접, 및 컨텐츠 타입을 포함하여, 어떤 컨텐츠가 프리로딩에 대한 후보들이 되어야 하는지를 결정하기 위해 여러 표준들이 사용될 수도 있음을 알 수도 있을 것이다. 또한, 어떤 리소스 가용성이 결정될 수도 있다. 이러한 리소스들은 하나 이상의 파워 메트릭들, 하나 이상의 무선 링크 메트릭들, 하나 이상의 CPU/버스 메트릭들, 또는 이들의 조합을 사용하여 결정될 수도 있다. 파워 메트릭들은, 도 8과 연계하여 상기 설명된 바와 같이 디바이스가 충전되고 있는지의 여부를 결정하는 것을 포함할 수도 있다. 이것은 디바이스 전력 소비에 대한 영향 및 도 13과 연계하여 상기 설명된 바와 같이 디바이스가 자신의 열적 한계 근처에 있는지의 여부에 기초하여 프리페칭이 인에이블되거나 또는 디스에이블되는 것을 허용할 수도 있다. 무선 링크 메트릭들은, 도 8과 연계하여 상기 설명된 바와 같이, 블록 에러율 (BLER), 신호대잡음비 (SNR), 달성되는 스루풋 (TP), 왕복 시간 (RTT), 또는 이들의 조합을 포함할 수도 있다.
BLER은 잘못 전송된 데이터 패킷들의 수를 전송된 패킷들의 수로 나눈 것일 수도 있음을 알 수도 있을 것이다. SNR은 신호를 오염시킬 수도 있는 잡음 전력 (noise power) 에 대한 신호 전력의 비율일 수도 있다. 스루풋은 통신 채널을 통한 성공적인 메시지 전달의 평균 비율일 수도 있다. 스루풋은 초당 비트들 (bit/s 또는 bps) 로 측정될 수도 있다. RTT는 신호 펄스에 요구되는 시간 또는 패킷이 특정 소스에서 특정 목적지로 그리고 다시 그 반대로 여행하는데 요구되는 시간일 수도 있다. 무선 메트릭들은 하나 이상의 채널들의 전체적인 품질 및 용량을 결정하기 위해 사용될 수도 있다. 리소스에 대한 가까운 장래의 클라이언트 요구를 결정하기 위해, 보이스 트래픽과 같은 다른 큐잉된 네트워크 작업들이 사용될 수 있다.
CPU/버스 메트릭들은 현재의 CPU 부하를 포함할 수도 있다. 현재의 CPU 부하는 주파수값으로서 표현될 수도 있다. 다르게는, 현재의 CPU 부하는 백분율 값, 예를 들면, 현재 주파수를 최대 주파수로 나눈 값으로 표현될 수도 있다. 컨디션으로서 CPU/버스 메트릭들을 사용하는 것에 의해, 도 13과 연계하여 상기 설명된 바와 같이 프리페칭이 시스템 성능에 악영향을 끼칠 때 프리페칭이 디스에이블되는 것을 허용할 수도 있다.
하나 이상의 예시적인 양태들에서, 상술된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 상기 기능들은 머신 판독 가능한 매체, 즉, 컴퓨터 판독 가능한 매체와 같은 컴퓨터 프로그램 제품의 하나 이상의 명령들 또는 코드로서 저장되거나 또는 전송될 수도 있다. 컴퓨터 판독 가능한 매체는 컴퓨터 프로그램의 한 장소에서 다른 장소로의 전송을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 매체 및통신 매체 양자를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독 가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 요구되는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독 가능한 매체를 적절히 칭한다. 예를 들면, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 본원에서 사용된 바와 같이, 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 디스크 (disk) 는 데이터를 자기적으로 재생하고, 디스크 (disc) 는 데이터를 광학적으로 재생한다. 상기의 조합들도 컴퓨터 판독 가능한 매체의 범위 내에 또한 포함되어야만 한다.
선택된 양태들이 도해되고 상세히 설명되었지만, 하기의 특허청구범위에 의해 정의되는 본 발명의 취지와 범위로부터 벗어나지 않으면서 여러 대체예들 및 수정예들이 이루어질 수도 있음을 이해해야만 할 것이다.

Claims (35)

  1. 삭제
  2. 휴대형 컴퓨팅 디바이스용 정보의 프리페칭 수행 방법으로서,
    상기 휴대형 컴퓨팅 디바이스의 디스플레이 화면 상에 웹페이지를 렌더링하는 단계;
    상기 웹페이지 내의 임의의 링크들에 대한 DNS 프리페치를 수행하는 단계;
    화면 변경 동작이 수행되고 있는지의 여부를 결정하는 단계;
    상기 화면 변경 동작이 수행되면 상기 디스플레이 화면 상에 디스플레이되는 각 링크에 대한 하나 이상의 DNS 프리페치 작업들을 상기 휴대형 컴퓨팅 디바이스 내의 큐에 배치시키는 단계;
    상기 화면 변경 동작이 중지되는지를 결정하는 단계; 및
    상기 화면 변경 동작이 중지되면, 상기 웹페이지 내의 가시적인 링크들에 대한 DNS 프리페치 작업을 실행하는 단계를 포함하는, 휴대형 컴퓨팅 디바이스용 정보의 프리페칭 수행 방법.
  3. 제 2항에 있어서,
    상기 큐는 후입선출 (last-in first-out) 큐인, 휴대형 컴퓨팅 디바이스용 정보의 프리페칭 수행 방법.
  4. 삭제
  5. 제 2항에 있어서,
    유저 습관들을 모니터링하고 상기 습관들을 현재 시간과 비교함으로써 하나 이상의 웹사이트들을 유저가 다운로드할 가능성을 결정하는 단계; 및
    상기 현재 시간으로부터 미리 결정된 시간 내에 루틴하게 액세스되는 웹사이트들에 관한 패턴을 결정하는 단계를 더 포함하는, 휴대형 컴퓨팅 디바이스용 정보의 프리페칭 수행 방법.
  6. 제 5항에 있어서,
    리소스 매니저로 웹컨텐츠의 프로세싱을 지원하기 위해, CPU, 메모리 및 버스 대역폭을 포함하는 프로세싱 리소스들이 이용 가능한지의 여부를 결정하는 단계를 더 포함하는, 휴대형 컴퓨팅 디바이스용 정보의 프리페칭 수행 방법.
  7. 제 6항에 있어서,
    상기 휴대형 컴퓨팅 디바이스가 충전기에 연결되는지의 여부 또는 배터리 충전량이 미리 결정된 임계치보다 큰지, 및, 상기 프로세싱 리소스들이 웹컨텐츠를 프로세싱할 수 있는지를 결정하는 단계를 더 포함하는, 휴대형 컴퓨팅 디바이스용 정보의 프리페칭 수행 방법.
  8. 제 7항에 있어서,
    평균 무선 채널 품질이 컨디션을 만족하는지의 여부, 상기 휴대형 컴퓨팅 디바이스가 충전기에 연결되는지 또는 미리 결정된 상기 임계치보다 큰 배터리 충전량을 갖는지를 결정하는 단계; 및
    상기 평균 무선 채널 품질이 상기 컨디션을 만족하면 컨텐츠 또는 DNS 프리페칭을 수행하는 단계를 더 포함하는, 휴대형 컴퓨팅 디바이스용 정보의 프리페칭 수행 방법.
  9. 제 2항에 있어서,
    무선 채널이 존재하는지를 결정하는 단계를 더 포함하는, 휴대형 컴퓨팅 디바이스용 정보의 프리페칭 수행 방법.
  10. 제 3항에 있어서,
    유저가 상기 웹페이지로부터 벗어나는 것에 응답하여 상기 큐를 지우는 (clearing) 단계를 더 포함하는, 휴대형 컴퓨팅 디바이스용 정보의 프리페칭 수행 방법.
  11. 삭제
  12. 휴대형 컴퓨팅 디바이스로서,
    상기 휴대형 컴퓨팅 디바이스의 디스플레이 화면 상에 웹페이지를 렌더링하는 수단;
    상기 웹페이지 내의 임의의 링크들에 대한 DNS 프리페치를 수행하는 수단;
    화면 변경 동작이 수행되는지의 여부를 결정하는 수단;
    상기 화면 변경 동작이 수행되면 상기 디스플레이 화면 상에 디스플레이되는 각 링크에 대한 하나 이상의 DNS 프리페치 작업들을 큐에 배치시키는 수단;
    상기 화면 변경 동작이 중지되는지를 결정하는 수단; 및
    상기 화면 변경 동작이 중지되면, 상기 웹페이지 내의 각각의 가시적인 링크에 대한 DNS 프리페치 작업을 실행하는 수단을 포함하는, 휴대형 컴퓨팅 디바이스.
  13. 제 12항에 있어서,
    상기 큐는 후입선출 큐인, 휴대형 컴퓨팅 디바이스.
  14. 삭제
  15. 제 12항에 있어서,
    유저 습관들을 모니터링하고 상기 습관들을 현재 시간과 비교함으로써 하나 이상의 웹사이트들을 유저가 다운로드할 가능성을 결정하는 수단; 및
    상기 현재 시간으로부터 미리 결정된 시간 내에 루틴하게 액세스되는 웹사이트들에 관한 패턴을 결정하는 수단을 더 포함하는, 휴대형 컴퓨팅 디바이스.
  16. 제 15항에 있어서,
    리소스 매니저로 웹컨텐츠의 프로세싱을 지원하기 위해, CPU, 메모리 및 버스 대역폭을 포함하는 프로세싱 리소스들이 이용 가능한지의 여부를 결정하는 수단을 더 포함하는, 휴대형 컴퓨팅 디바이스.
  17. 제 16항에 있어서,
    상기 휴대형 컴퓨팅 디바이스가 충전기에 연결되는지의 여부 또는 배터리 충전량이 미리 결정된 임계치보다 큰지, 및, 상기 프로세싱 리소스들이 웹컨텐츠를 프로세싱할 수 있는지를 결정하는 수단을 더 포함하는, 휴대형 컴퓨팅 디바이스.
  18. 제 12항에 있어서,
    무선 채널이 존재하는지를 결정하는 수단을 더 포함하는, 휴대형 컴퓨팅 디바이스.
  19. 제 13항에 있어서,
    유저가 상기 웹페이지로부터 벗어나는 것에 응답하여 상기 큐를 지우는 (clearing) 수단을 더 포함하는, 휴대형 컴퓨팅 디바이스.
  20. 삭제
  21. 휴대형 컴퓨팅 디바이스로서,
    메모리; 및
    상기 메모리에 액세스 가능한 프로세서를 포함하고
    상기 프로세서는:
    상기 휴대형 컴퓨팅 디바이스의 디스플레이 화면 상에 웹페이지를 렌더링하고;
    상기 웹페이지 내의 임의의 가시적인 링크들에 대한 DNS 프리페치를 수행하고;
    화면 변경 동작이 수행되고 있는지의 여부를 결정하고;
    상기 화면 변경 동작이 수행되면 상기 디스플레이 화면 상에 디스플레이되는 각 링크에 대한 하나 이상의 DNS 프리페치 작업들을 상기 휴대형 컴퓨팅 디바이스 내의 큐에 배치시키고;
    상기 화면 변경 동작이 중지되는지를 결정하고; 그리고
    상기 화면 변경 동작이 중지되면, 상기 웹페이지 내의 각각의 가시적인 링크에 대한 DNS 프리페치 작업을 실행하도록 동작 가능한, 휴대형 컴퓨팅 디바이스.
  22. 제 21항에 있어서,
    상기 큐는 후입선출 큐인, 휴대형 컴퓨팅 디바이스.
  23. 삭제
  24. 제 21항에 있어서,
    상기 프로세서는:
    유저 습관들을 모니터링하고 상기 습관들을 현재 시간과 비교함으로써 하나 이상의 웹사이트들을 유저가 다운로드할 가능성을 결정하고; 그리고
    상기 현재 시간으로부터 미리 결정된 시간 내에 루틴하게 액세스되는 웹사이트들에 관한 패턴을 결정하도록 더 동작 가능한, 휴대형 컴퓨팅 디바이스.
  25. 제 24항에 있어서,
    상기 프로세서는:
    리소스 매니저로 웹컨텐츠의 프로세싱을 지원하기 위해, CPU, 메모리 및 버스 대역폭을 포함하는 프로세싱 리소스들이 이용 가능한지의 여부를 결정하도록 더 동작 가능한, 휴대형 컴퓨팅 디바이스.
  26. 제 25항에 있어서,
    상기 프로세서는:
    상기 휴대형 컴퓨팅 디바이스가 충전기에 연결되는지의 여부 또는 배터리 충전량이 미리 결정된 임계치보다 큰지, 및, 상기 프로세싱 리소스들이 웹컨텐츠를 프로세싱할 수 있는지를 결정하도록 더 동작 가능한, 휴대형 컴퓨팅 디바이스.
  27. 제 26항에 있어서,
    상기 프로세서는:
    평균 무선 채널 품질이 컨디션을 만족하는지의 여부, 상기 휴대형 컴퓨팅 디바이스가 충전기에 연결되는지 또는 미리 결정된 상기 임계치보다 큰 배터리 충전량을 갖는지를 결정하고; 그리고
    상기 평균 무선 채널 품질이 상기 컨디션을 만족하면 컨텐츠 또는 DNS 프리페칭을 수행하도록 더 동작 가능한, 휴대형 컴퓨팅 디바이스.
  28. 삭제
  29. 소프트웨어 명령들이 저장된 비일시적 컴퓨터 판독 가능한 저장 매체로서,
    상기 소프트웨어 명령들은 휴대형 컴퓨팅 디바이스의 프로세서로 하여금:
    상기 휴대형 컴퓨팅 디바이스의 디스플레이 화면 상에 웹페이지를 렌더링하고;
    상기 웹페이지 내의 임의의 가시적인 링크들에 대한 DNS 프리페치를 수행하고;
    화면 변경 동작이 수행되는지의 여부를 결정하며;
    상기 화면 변경 동작이 수행되면 상기 디스플레이 화면 상에 디스플레이되는 각 링크에 대한 하나 이상의 DNS 프리페치 작업들을 상기 휴대형 컴퓨팅 디바이스 내의 큐에 배치시키고,
    상기 화면 변경 동작이 중지되는지를 결정하고; 그리고
    상기 화면 변경 동작이 중지되면, 상기 웹페이지 내의 각각의 가시적인 링크에 대한 DNS 프리페치 작업을 실행하는 동작들을 수행하게 하도록 구성된, 비일시적 컴퓨터 판독 가능한 저장 매체.
  30. 제 29항에 있어서,
    상기 큐는 후입선출 큐인, 비일시적 컴퓨터 판독 가능한 저장 매체.
  31. 삭제
  32. 제 29항에 있어서,
    상기 저장된 소프트웨어 명령들은 상기 휴대형 컴퓨팅 디바이스의 상기 프로세서로 하여금:
    유저 습관들을 모니터링하고 상기 습관들을 현재 시간과 비교함으로써 하나 이상의 웹사이트들을 유저가 다운로드할 가능성을 결정하고; 그리고
    상기 현재 시간으로부터 미리 결정된 시간 내에 루틴하게 액세스되는 웹사이트들에 관한 패턴을 결정하는 것을 더 포함하는 동작들을 수행하게 하도록 구성된, 비일시적 컴퓨터 판독 가능한 저장 매체.
  33. 제 32항에 있어서,
    상기 저장된 소프트웨어 명령들은 상기 휴대형 컴퓨팅 디바이스의 상기 프로세서로 하여금:
    리소스 매니저로 웹컨텐츠의 프로세싱을 지원하기 위해, CPU, 메모리 및 버스 대역폭을 포함하는 프로세싱 리소스들이 이용 가능한지의 여부를 결정하는 것을 더 포함하는 동작들을 수행하게 하도록 구성된, 비일시적 컴퓨터 판독 가능한 저장 매체.
  34. 제 33항에 있어서,
    상기 저장된 소프트웨어 명령들은 상기 휴대형 컴퓨팅 디바이스의 상기 프로세서로 하여금:
    상기 휴대형 컴퓨팅 디바이스가 충전기에 연결되는지의 여부 또는 배터리 충전량이 미리 결정된 임계치보다 큰지, 및, 상기 프로세싱 리소스들이 웹컨텐츠를 프로세싱할 수 있는지를 결정하는 것을 더 포함하는 동작들을 수행하게 하도록 구성된, 비일시적 컴퓨터 판독 가능한 저장 매체.
  35. 제 34항에 있어서,
    상기 저장된 소프트웨어 명령들은 상기 휴대형 컴퓨팅 디바이스의 상기 프로세서로 하여금:
    평균 무선 채널 품질이 컨디션을 만족하는지의 여부, 상기 휴대형 컴퓨팅 디바이스가 충전기에 연결되는지 또는 미리 결정된 상기 임계치보다 큰 배터리 충전량을 갖는지를 결정하고; 그리고
    상기 평균 무선 채널 품질이 상기 컨디션을 만족하면 컨텐츠 또는 DNS 프리페칭을 수행하는 것을 더 포함하는 동작들을 수행하게 하도록 구성된, 비일시적 컴퓨터 판독 가능한 저장 매체.
KR1020137011481A 2010-10-04 2011-08-31 도메인 네임 서버 프리페칭 수행의 시스템 및 방법 KR101554398B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/897,553 2010-10-04
US12/897,553 US8601052B2 (en) 2010-10-04 2010-10-04 System and method of performing domain name server pre-fetching
PCT/US2011/049843 WO2012047421A1 (en) 2010-10-04 2011-08-31 System and method of performing domain name server pre-fetching

Publications (2)

Publication Number Publication Date
KR20130106849A KR20130106849A (ko) 2013-09-30
KR101554398B1 true KR101554398B1 (ko) 2015-09-18

Family

ID=44645227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137011481A KR101554398B1 (ko) 2010-10-04 2011-08-31 도메인 네임 서버 프리페칭 수행의 시스템 및 방법

Country Status (6)

Country Link
US (2) US8601052B2 (ko)
EP (2) EP2625631B1 (ko)
JP (1) JP5667303B2 (ko)
KR (1) KR101554398B1 (ko)
CN (1) CN103201735B (ko)
WO (1) WO2012047421A1 (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601052B2 (en) * 2010-10-04 2013-12-03 Qualcomm Incorporated System and method of performing domain name server pre-fetching
US9529866B2 (en) * 2010-12-20 2016-12-27 Sybase, Inc. Efficiently handling large data sets on mobile devices
US20120167122A1 (en) * 2010-12-27 2012-06-28 Nokia Corporation Method and apparatus for pre-initializing application rendering processes
US9439226B2 (en) * 2011-03-15 2016-09-06 Nokia Technologies Oy Method and apparatus for initiating radio connections
US8645501B2 (en) 2011-05-05 2014-02-04 Qualcomm Innovation Center, Inc. Adaptive DNS pre-fetching
CN102222086B (zh) * 2011-05-18 2014-11-26 广州市动景计算机科技有限公司 基于移动终端的网页阅读方法、网页阅读装置及移动终端
US8812658B1 (en) * 2011-05-20 2014-08-19 Amazon Technologies, Inc. Pre-fetching of network page content
US9253278B2 (en) 2012-01-30 2016-02-02 International Business Machines Corporation Using entity tags (ETags) in a hierarchical HTTP proxy cache to reduce network traffic
US8879518B2 (en) 2012-02-08 2014-11-04 Acer Incorporated Method of timing reference management
KR20130106519A (ko) * 2012-03-20 2013-09-30 삼성전자주식회사 웹 브라우저의 히스토리 관리 방법 및 장치
US9131516B2 (en) 2012-03-30 2015-09-08 Acer Incorporated Method of preventing random access response collision
US20130279383A1 (en) * 2012-04-20 2013-10-24 Acer Incorporated Method of Managing Discontinuous Reception Functionality
US8892638B2 (en) * 2012-05-10 2014-11-18 Microsoft Corporation Predicting and retrieving data for preloading on client device
US20130324075A1 (en) * 2012-06-05 2013-12-05 Nokia Siemens Networks Oy Data Loading Control
US9055118B2 (en) * 2012-07-13 2015-06-09 International Business Machines Corporation Edge caching using HTTP headers
US9348936B2 (en) * 2012-07-25 2016-05-24 Oracle International Corporation Heuristic caching to personalize applications
US10261938B1 (en) * 2012-08-31 2019-04-16 Amazon Technologies, Inc. Content preloading using predictive models
CN103685381B (zh) * 2012-09-12 2015-07-15 腾讯科技(深圳)有限公司 一种网页资源下载方法、系统和装置
US9357546B1 (en) * 2013-07-19 2016-05-31 Sprint Spectrum L.P. Methods and systems for controlling TTI bundling
US9143921B2 (en) * 2013-09-06 2015-09-22 Qualcomm Incorporated Communicating physical layer wireless parameters over an application programming interface
US9489104B2 (en) 2013-11-14 2016-11-08 Apple Inc. Viewable frame identification
US9582160B2 (en) 2013-11-14 2017-02-28 Apple Inc. Semi-automatic organic layout for media streams
WO2015095065A1 (en) * 2013-12-22 2015-06-25 Interdigital Patent Holdings, Inc. Web application acceleration with personalized cache or prerendering
US20150254806A1 (en) * 2014-03-07 2015-09-10 Apple Inc. Efficient Progressive Loading Of Media Items
US11489941B2 (en) 2014-07-16 2022-11-01 Tensera Networks Ltd. Pre-loading of user applications including skipping of selected launch actions
US11095743B2 (en) 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US9979796B1 (en) 2014-07-16 2018-05-22 Tensera Networks Ltd. Efficient pre-fetching notifications
CN106664592B (zh) 2014-07-16 2020-08-18 腾赛拉网络有限公司 用于内容分发的方法和系统及相应的计算机可读介质
US10432748B2 (en) * 2014-07-16 2019-10-01 Tensera Networks Ltd. Efficient content delivery over wireless networks using guaranteed prefetching at selected times-of-day
US11483415B2 (en) 2014-07-16 2022-10-25 Tensera Networks Ltd. Background pre-rendering of user applications
US10506027B2 (en) 2014-08-27 2019-12-10 Tensera Networks Ltd. Selecting a content delivery network
CN104361067B (zh) * 2014-11-05 2018-07-20 百纳(武汉)信息技术有限公司 一种浏览器网页信息的智能加载方法及系统
CN106161669A (zh) * 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种快速域名解析方法和系统、及其终端和服务器
US9723470B1 (en) 2015-04-30 2017-08-01 Tensera Networks Ltd. Selective enabling of data services to roaming wireless terminals
CN104796502A (zh) * 2015-05-08 2015-07-22 上海斐讯数据通信技术有限公司 一种dns系统及方法
KR20180069806A (ko) 2015-10-15 2018-06-25 텐세라 네트워크스 리미티드 통신 단말기에서의 콘텐츠의 신선도 인식 프리젠테이션
US10726021B2 (en) 2015-12-14 2020-07-28 Microsoft Technology Licensing, Llc Optimized mobile search
CN106095489B (zh) * 2016-05-31 2017-11-07 广东欧珀移动通信有限公司 一种应用控制方法及移动终端
KR102482220B1 (ko) 2016-08-11 2022-12-28 삼성전자주식회사 인터넷에 접속하기 위한 전자 장치 및 방법
US10749894B2 (en) * 2017-02-15 2020-08-18 Cisco Technology, Inc. Prefetch intrusion detection system
US11290487B2 (en) * 2017-04-07 2022-03-29 Samsung Electronics Co., Ltd. Method and apparatus for reducing latency of network protocols
WO2018234967A1 (en) 2017-06-19 2018-12-27 Tensera Networks Ltd. SILENT CONTENT UPDATE IN USER DEVICES
CN107273031B (zh) * 2017-06-23 2020-10-16 阿里巴巴(中国)有限公司 信息流页面加载方法及装置
US20220179668A1 (en) * 2018-03-05 2022-06-09 Tensera Networks Ltd. Robust Application Preloading with Accurate User Experience
US11915012B2 (en) 2018-03-05 2024-02-27 Tensera Networks Ltd. Application preloading in the presence of user actions
US11922187B2 (en) 2018-03-05 2024-03-05 Tensera Networks Ltd. Robust application preloading with accurate user experience
US10929062B2 (en) * 2018-11-07 2021-02-23 International Business Machines Corporation Gradually throttling memory due to dynamic thermal conditions
US11824956B2 (en) 2019-07-30 2023-11-21 Tensera Networks Ltd. Pre-rendering of application user-interfaces in user devices using off-line pre-render mode
US20220060771A1 (en) * 2020-08-24 2022-02-24 Netflix, Inc. Techniques for bypassing the domain name system
WO2022118131A1 (en) 2020-12-03 2022-06-09 Tensera Networks Preloading of applications having an existing task
CN112364279B (zh) * 2021-01-14 2021-04-27 北京小米移动软件有限公司 图片加载方法、装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080228864A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for prefetching non-cacheable content for compression history
US20100049872A1 (en) * 2008-08-25 2010-02-25 Google Inc. Parallel, Side-Effect Based DNS Pre-Caching

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10004A (en) * 1853-09-06 Improvement in iron car-brakes
US8022A (en) * 1851-04-08 Sawing-machine
WO1998024027A1 (fr) * 1996-11-25 1998-06-04 Hitachi, Ltd. Dispositif de memoire cache web et appareil client utilisant ce dispositif
JP4235300B2 (ja) * 1999-01-14 2009-03-11 キヤノン株式会社 通信システム
US7574494B1 (en) 1999-10-15 2009-08-11 Thomson Licensing User interface for a bi-directional communication system
MXPA02003711A (es) 1999-10-15 2002-08-30 Thomson Licensing Sa Un sistema para procesar hombres de dominio y direcciones de internet.
WO2002056132A2 (en) * 2000-11-01 2002-07-18 Snapnames Com Inc Domain name acquisition and management system and method
US20020073124A1 (en) 2000-12-11 2002-06-13 Takahiro Masuda Network browser
JP2002251315A (ja) * 2000-12-11 2002-09-06 Fujitsu Ltd ネットワークブラウザ
JP2003036219A (ja) * 2001-07-25 2003-02-07 Sony Corp コンテンツ配信システム、コンテンツ予約管理装置、コンテンツ予約管理方法、コンテンツ予約管理プログラム及びコンテンツ予約管理プログラム格納媒体
JP2003330789A (ja) * 2002-05-17 2003-11-21 Hitachi Software Eng Co Ltd Webページ再表示システム及びプログラム
JP4135876B2 (ja) * 2002-06-19 2008-08-20 日本電信電話株式会社 コンテンツ先読み装置およびコンテンツ先読みプログラム
JP4093478B2 (ja) * 2003-09-10 2008-06-04 日本電信電話株式会社 リンク先コンテンツの先読み装置及び先読み方法
US20050138143A1 (en) * 2003-12-23 2005-06-23 Thompson Blake A. Pre-fetching linked content
US8195761B2 (en) * 2004-01-13 2012-06-05 International Business Machines Corporation Prefetching web resources based on proxy triggers
JP2005341004A (ja) * 2004-05-25 2005-12-08 Sony Corp コンテンツ再生装置,コンテンツ再生方法,コンテンツ再生システムおよびそのコンピュータプログラム
US20060069618A1 (en) * 2004-09-27 2006-03-30 Scott Milener Method and apparatus for enhanced browsing
US7840911B2 (en) * 2004-09-27 2010-11-23 Scott Milener Method and apparatus for enhanced browsing
US8327440B2 (en) * 2004-11-08 2012-12-04 Bt Web Solutions, Llc Method and apparatus for enhanced browsing with security scanning
JP2006178513A (ja) * 2004-12-20 2006-07-06 Matsushita Electric Ind Co Ltd データ受信装置およびデータ受信プログラム
US20060294223A1 (en) 2005-06-24 2006-12-28 Microsoft Corporation Pre-fetching and DNS resolution of hyperlinked content
US9041744B2 (en) * 2005-07-14 2015-05-26 Telecommunication Systems, Inc. Tiled map display on a wireless device
US7933635B2 (en) * 2006-03-09 2011-04-26 Lg Electronics Inc. Adjustment of parameters based upon battery status
JP5129478B2 (ja) * 2006-03-24 2013-01-30 株式会社デンソーアイティーラボラトリ 画面表示装置
US8929959B2 (en) * 2007-04-24 2015-01-06 Telefonaktiebolaget L M Ericsson (Publ) Method and a device for receiving data in a mobile communication device in a broadcast system
JP2007287175A (ja) * 2007-07-05 2007-11-01 Fujitsu Ltd 図面表示処理装置,図面表示処理プログラムおよびそのプログラムの記録媒体
US20120007876A1 (en) * 2010-07-09 2012-01-12 Research In Motion Limited Electronic device and method of tracking displayed information
WO2012012334A2 (en) 2010-07-19 2012-01-26 Movik Networks Content pre-fetching and cdn assist methods in a wireless mobile network
US8601052B2 (en) * 2010-10-04 2013-12-03 Qualcomm Incorporated System and method of performing domain name server pre-fetching
US8645501B2 (en) 2011-05-05 2014-02-04 Qualcomm Innovation Center, Inc. Adaptive DNS pre-fetching

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080228864A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for prefetching non-cacheable content for compression history
US20100049872A1 (en) * 2008-08-25 2010-02-25 Google Inc. Parallel, Side-Effect Based DNS Pre-Caching

Also Published As

Publication number Publication date
CN103201735A (zh) 2013-07-10
EP2902928B1 (en) 2017-12-06
US20140068402A1 (en) 2014-03-06
US20120084343A1 (en) 2012-04-05
WO2012047421A1 (en) 2012-04-12
EP2902928A1 (en) 2015-08-05
EP2625631B1 (en) 2015-05-06
US9465777B2 (en) 2016-10-11
JP5667303B2 (ja) 2015-02-12
KR20130106849A (ko) 2013-09-30
EP2625631A1 (en) 2013-08-14
CN103201735B (zh) 2016-05-04
JP2013541772A (ja) 2013-11-14
US8601052B2 (en) 2013-12-03

Similar Documents

Publication Publication Date Title
KR101554398B1 (ko) 도메인 네임 서버 프리페칭 수행의 시스템 및 방법
JP5878614B2 (ja) ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するためのシステムおよび方法
JP5662582B2 (ja) 伝送制御プロトコル接続を確立するシステムおよび方法
US9794977B2 (en) Method and system for facilitating wireless communication via alternate communication pathway
US8117299B2 (en) Method and apparatus for scheduling wireless LAN traffic
US9144014B2 (en) Method for operating portable terminal to reduce power during support of communication service and portable terminal supporting the same
US20140112329A1 (en) Method and System for Facilitating Wireless Communication Via Alternate Communication Pathway
WO2018055506A1 (en) An optimized content-delivery network (cdn) for the wireless last mile
WO2022022429A1 (zh) 一种缓冲区管理方法及相关装置
Armstrong Efficient and transparent dynamic content updates for mobile clients.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 5