KR20140128446A - 공유 메타 정보에 기초한 웹페이지들의 협력형 로딩 - Google Patents

공유 메타 정보에 기초한 웹페이지들의 협력형 로딩 Download PDF

Info

Publication number
KR20140128446A
KR20140128446A KR1020147026463A KR20147026463A KR20140128446A KR 20140128446 A KR20140128446 A KR 20140128446A KR 1020147026463 A KR1020147026463 A KR 1020147026463A KR 20147026463 A KR20147026463 A KR 20147026463A KR 20140128446 A KR20140128446 A KR 20140128446A
Authority
KR
South Korea
Prior art keywords
mobile computing
server
computing device
web page
resources
Prior art date
Application number
KR1020147026463A
Other languages
English (en)
Other versions
KR101711528B1 (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 KR20140128446A publication Critical patent/KR20140128446A/ko
Application granted granted Critical
Publication of KR101711528B1 publication Critical patent/KR101711528B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • G06F16/3326Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은, 컴퓨팅 디바이스에 의한 웹페이지의 렌더링을 지원하기 위한 목록들을 생성 및 사용하기 위한 시스템 및 방법들 및 서버에 관한 것이다. 다수의 컴퓨팅 디바이스들은 웹페이지를 렌더링하고 메타 데이터를 생성할 수 있다. 서버는 목록을 생성하기 위해 메타 정보를 수집 및 사용할 수 있다. 목록은 웹페이지의 자원들을 로딩하기 위한 포맷들 및 우선 순위들을 기술하는 정보를 제공할 수 있다. 컴퓨팅 디바이스는 목록과의 비교를 위해 그리고 웹페이지의 자원들을 리트리브하기 위한 우선 순위들 및 포맷들을 결정하기 위해 정보를 서버로 전송할 수 있다. 서버는 목록 정보에 기초하여 웹페이지 자원들을 요청하고 이를 컴퓨팅 디바이스로 전송할 수 있고, 컴퓨팅 디바이스는 목록 정보에 대한 웹페이지를 렌더링할 수 있다. 서버는 웹페이지를 액세스하고, 목록을 생성하기 위해 메타 정보를 생성할 수 있다. 서버는 대안적으로 목록 정보를 컴퓨팅 디바이스로 전송할 수 있다.

Description

공유 메타 정보에 기초한 웹페이지들의 협력형 로딩{COOPERATIVE LOADING OF WEBPAGES BASED ON SHARED META INFORMATION}
본 출원은 2012년 2월 24일자로 출원된 "Cooperative Loading of Webpages Based on Crowd Sourced Meta Information"란 명칭의 미국 가특허 출원 제 61/602,777 호 및 2012년 4월 9일자로 출원된 "Cooperative Loading of Webpages Based on Crowd Sourced Meta Information"란 명칭의 미국 가특허 출원 제 61/621,629 호에 대한 우선권의 이점을 주장하고, 그로 인해 상기 출원들 둘 모두의 전체 내용은 인용에 의해 본원에 통합된다.
셀룰러 및 무선 통신 기술들은 지난 수 해에 걸쳐 급격하게 성장해 왔다. 이 성장은 더 우수한 통신 하드웨어들, 더 대형의 네트워크들 및 더 신뢰성있는 프로토콜에 의해 부채질되고 있다. 지금, 무선 서비스 제공자들은 자신들의 고객들에게 피쳐들 및 서비스들의 끝없이 확장하는 어레이를 제공할 수 있으며, 정보, 자원들, 및 통신들에 대한 전례없는 액세스 레벨들을 사용자들에게 제공할 수 있다. 이러한 서비스 개선들과 보조를 맞추기 위해, 모바일 전자 디바이스들(예를 들면, 셀룰러 폰들, 스마트 폰들, 태블릿들, 랩톱들 등)은 한층 더 빠르고 더 강력해지고 있다. 그러나, 이러한 개선들에도 불구하고, 모바일 디바이스들은 때때로 여전히 부진한 것처럼 보일 수 있다.
현대 모바일 전자기기에서 사용되는 모바일 디바이스 하드웨어(예를 들면, 프로세서들 및 무선 모뎀들)는 이제 인상적인 능력을 갖는다. 그러나, 웹-기반 소프트웨어 애플리케이션들(예를 들면, 웹-브라우저)은 이용 가능한 통신 대역폭의 상당한 부분을 소비하여, 전체 모바일 디바이스가 부진한 것처럼 보이게 한다. 이것은, 3G 또는 4G와 같은 원격 통신 네트워크를 통해 웹페이지를 로딩할 때 가장 명백하다. 이러한 느린 통신들은 디바이스 자원들을 묶어 두고, 사용자 경험에 부정적으로 영향을 준다. 따라서, 페이지-로드들, 웹 애플리케이션들 및 네트워크 통신들의 효율 및 속도를 개선하는 것은 모바일 디바이스 제조자들에게 중요한 설계 기준들이다.
다양한 양상들은 서버에 의해 제공된 웹페이지 목록에 기초하여 모바일 컴퓨팅 디바이스들에 의한 웹페이지들의 렌더링을 지원하기 위한 방법을 포함한다. 일 양상에서, 상기 방법은 웹페이지들을 프로세싱하는 것에 관련된 메타 정보를 다수의 모바일 컴퓨팅 디바이스들 상에서 생성하는 단계, 생성된 메타 정보를 다수의 모바일 컴퓨팅 디바이스들 각각으로부터 서버로 전송하는 단계 및 각각의 웹페이지를 프로세싱하는데 사용되는 사용자 에이전트를 식별하는 단계, 생성된 메타 정보를 서버에서 수신하는 단계, 다수의 모바일 컴퓨팅 디바이스들로부터 수신된 메타 정보에 기초하여 각각의 사용자 에이전트 및 웹페이지에 대한 목록(manifest)을 생성하는 단계, 모바일 컴퓨팅 디바이스 상에 사용자 에이전트를 통해 웹페이지를 로딩하는데 요구되는 자원들에 우선 순위들을 할당하기 위해 목록을 사용하는 단계, 자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 모바일 컴퓨팅 디바이스 상에서 자원들을 수신하는 단계, 및 모바일 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 단계를 포함할 수 있다. 일 양상에서, 상기 방법은 모바일 컴퓨팅 디바이스가 웹페이지의 렌더링 동안에 생성된 메타 정보를 서버로 전송하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 모바일 컴퓨팅 디바이스 상에서 구현된 사용자 에이전트 및 웹페이지를 식별하는 정보를 서버로 전송하는 단계, 모바일 컴퓨팅 디바이스 상에서 구현되는 사용자 에이전트 및 웹페이지에 대한 목록을 획득하는 단계, 획득된 목록을 모바일 컴퓨팅 디바이스로 전송하는 단계, 모바일 컴퓨팅 디바이스 상에 저장된 정보와 목록을 비교함으로써, 모바일 컴퓨팅 디바이스 상에서 웹페이지를 로딩하기 위해 요구된 자원들을 모바일 컴퓨팅 디바이스에서 식별하는 단계, 및 목록에 기초하여 모바일 컴퓨팅 디바이스에서 우선 순위들을 식별된 자원들에 할당하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 모바일 컴퓨팅 디바이스가 목록에 기초하여 모바일 컴퓨팅 디바이스에 의해 결정된 시퀀스로 제 2 서버로부터의 자원들의 다운로드를 요청하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 모바일 컴퓨팅 디바이스에 관련된 정보를 서버로 전송하는 단계, 모바일 컴퓨팅 디바이스 상에서 구현되는 사용자 에이전트 및 웹페이지에 대한 목록을 획득하는 단계, 획득된 목록과 모바일 컴퓨팅 디바이스에 관련된 정보를, 서버에서, 비교하는 단계, 모바일 컴퓨팅 디바이스 상에서 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을, 서버에서, 식별하는 단계, 및 모바일 컴퓨팅 디바이스 상에서 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 모바일 컴퓨팅 디바이스로 전송하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 서버가 목록에 기초하여 서버에 의해 결정된 시퀀스로 자원들을 모바일 컴퓨팅 디바이스로 푸싱하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 서버가 자원들을 모바일 컴퓨팅 디바이스에 대한 원하는 포맷으로 트랜스코딩하는 단계를 포함할 수 있다.
추가적인 양상에서, 모바일 컴퓨팅 디바이스들에 의한 웹페이지들의 렌더링을 지원하기 위한 방법은 다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 서버 상에서 생성하는 단계, 생성된 메타 정보에 기초하여 각각의 타입의 사용자 에이전트에 대해 웹페이지에 대한 목록을 생성하는 단계, 모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 목록을 사용하는 단계, 자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 모바일 컴퓨팅 디바이스 상에서 자원들을 수신하는 단계, 및 모바일 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 모바일 컴퓨팅 디바이스가 웹페이지의 렌더링 동안에 생성된 메타 정보를 서버로 전송하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 모바일 컴퓨팅 디바이스에 관련된 정보를 통한 평가를 위해 목록을 모바일 컴퓨팅 디바이스로 전송하는 단계, 모바일 컴퓨팅 디바이스 상에서 웹페이지를 로딩하는데 요구되는 자원들을 모바일 컴퓨팅 디바이스에서 식별하는 단계, 및 모바일 컴퓨팅 디바이스에서 우선 순위들을 식별된 자원들에 할당하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 모바일 컴퓨팅 디바이스가 목록에 기초하여 모바일 컴퓨팅 디바이스에 의해 결정된 시퀀스로 제 2 서버로부터 자원들의 다운로드를 요청하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 모바일 컴퓨팅 디바이스에 관련된 정보를 서버로 전송하는 단계, 모바일 컴퓨팅 디바이스 상에서 구현된 사용자 에이전트 및 웹페이지에 대한 목록을 획득하는 단계, 획득된 목록과 모바일 컴퓨팅 디바이스에 관련된 정보를, 서버에서, 비교하는 단계, 모바일 컴퓨팅 디바이스 상에서 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을, 서버에서, 식별하는 단계, 및 모바일 컴퓨팅 디바이스 상에서 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 모바일 컴퓨팅 디바이스로 전송하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 서버가 목록에 기초하여 서버에 의해 결정된 시퀀스로 자원들을 모바일 컴퓨팅 디바이스로 푸싱하는 단계를 포함할 수 있다. 추가적인 양상에서, 상기 방법은 서버가 자원들을 모바일 컴퓨팅 디바이스에 대한 원하는 포맷으로 트랜스코딩하는 단계를 포함할 수 있다.
다양한 양상들은 메모리 및 메모리에 연결된 프로세서를 갖는 모바일 컴퓨팅 디바이스를 포함할 수 있고, 여기서 프로세서는 모바일 컴퓨팅 디바이스 상에서 구현된 사용자 에이전트 및 웹페이지를 식별하는 정보를 서버로 전송하는 것, 모바일 컴퓨팅 디바이스 상에서 구현된 사용자 에이전트 및 웹페이지에 대한 목록을 서버로부터 수신하는 것, 모바일 컴퓨팅 디바이스 상에 저장된 정보와 목록을 비교함으로써 웹페이지를 로딩하는데 요구된 자원들을 식별하는 것, 목록에 기초하여 우선 순위들을 식별된 자원들에 할당하는 것, 자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 자원들을 수신하는 것, 및 웹페이지를 렌더링하는 것을 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성된다. 추가적인 양상에서, 모바일 컴퓨팅 디바이스 프로세서는 목록에 기초한 시퀀스로 제 2 서버로부터 자원들의 다운로드들을 요청하거나 및/또는 웹페이지의 렌더링 동안에 생성된 메타 정보를 서버로 전송하도록 프로세서-실행 가능 명령들로 구성될 수 있다.
다양한 양상들은 모바일 컴퓨팅 디바이스에서 달성되는 상술된 방법들의 기능들을 달성하기 위한 수단을 포함하는 모바일 컴퓨팅 디바이스를 포함할 수 있다. 다양한 양상들은 또한 프로세서로 하여금 모바일 컴퓨팅 디바이스에서 달성되는 상술된 방법들의 동작들을 수행하게 하도록 구성된 프로세서-실행 가능 소프트웨어 명령들이 저장된 비일시적인 프로세서-판독 가능 저장 매체를 포함할 수 있다.
다양한 양상들은 메모리 및 메모리에 연결된 서버 프로세서를 갖는 서버를 포함할 수 있고, 여기서 프로세서는 다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하는 것, 수집된 메타 정보에 기초하여 각각의 타입의 사용자 에이전트에 대해 웹페이지에 대한 목록을 생성하는 것, 모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 목록을 사용하는 것, 및 자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 자원들을 모바일 컴퓨팅 디바이스로 전송하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성된다. 추가적인 양상에서, 서버 프로세서는 모바일 컴퓨팅 디바이스에 관련된 정보를 통한 평가를 위해 목록을 모바일 컴퓨팅 디바이스로 전송하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성될 수 있다. 추가적인 양상에서, 서버 프로세서는 웹페이지의 렌더링 동안에 생성된 메타 정보를 모바일 컴퓨팅 디바이스로부터 수신하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성될 수 있다. 추가적인 양상에서, 서버 프로세서는 서버 상에서 다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 생성하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성될 수 있다. 추가적인 양상에서, 서버 프로세서는 다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 복수의 모바일 컴퓨팅 디바이스들로부터 수신하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성될 수 있다. 추가적인 양상에서, 서버 프로세서는 모바일 컴퓨팅 디바이스에 관련된 정보를 수신하는 것, 목록을 사용하여 수신된 정보를 평가하는 것, 모바일 컴퓨팅 디바이스 상에서 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을 식별하는 것, 및 모바일 컴퓨팅 디바이스 상에서 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 모바일 컴퓨팅 디바이스로 전송하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성될 수 있다. 추가적인 양상에서, 서버 프로세서는 목록에 기초한 시퀀스로 자원들을 모바일 컴퓨팅 디바이스로 푸싱하는 것을 포함하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성될 수 있다.
다양한 양상들은 서버에서 달성되는 상술된 방법들의 기능들을 달성하기 위한 수단을 포함하는 서버를 포함할 수 있다. 다양한 양상들은 서버 프로세서로 하여금 서버에서 달성되는 상술된 방법들의 동작들을 수행하게 하도록 구성된 서버 프로세서-실행 가능 명령들이 저장된 비일시적인 서버-판독 가능 저장 매체를 포함할 수 있다.
다양한 양상들은 또한 서버에서 달성되는 상술된 방법들의 동작들을 수행하도록 구성된 서버, 및 모바일 컴퓨팅 디바이스들에서 달성되는 상술된 방법들의 동작들을 수행하도록 구성된 복수의 모바일 컴퓨팅 디바이스들을 포함할 수 있는 통신 시스템을 포함할 수 있다.
본 명세서에 통합되어, 본 명세서의 일부를 구성하는 첨부된 도면들이 본 발명의 예시적인 양상들을 예시하고, 전술한 일반적인 설명과 함께 이하 주어진 상세한 설명은 본 발명의 특징들을 설명하도록 기능한다.
도 1은 다양한 양상들에서 사용하기에 적합한 모바일 멀티미디어 통신 시스템을 예시한 통신 시스템 블록도이다.
도 2는 일 양상에 따른, 웹페이지에 관한 목록의 예시적인 구조들을 예시한 구조도이다.
도 3은 일 양상에 따른, 단일 프록시 구성에서 예시적인 정보 흐름들을 예시한 네트워크도이다.
도 4a는 일 양상에 따른, 크라우드-소싱 서버 구성에서 예시적인 정보 흐름들을 예시한 네트워크도이다.
도 4b는 일 양상에 따른, 페이지 로드들을 가속하기 위해 목록들을 생성 및 사용하기 위한 크라우드-소싱 방법의 흐름도이다.
도 4c는 일 양상에 따른, 페이지 로드들을 가속하기 위해 목록들을 생성 및 사용하기 위한 크라우드-소싱 방법의 프로세스 흐름도이다.
도 5a는 일 양상에 따른, 서버-소싱 서버 구성에서 예시적인 정보 흐름들을 예시한 네트워크도이다.
도 5b는 일 양상에 따른, 페이징 로드들을 가속하기 위해 목록들을 생성 및 사용하기 위한 서버-소싱 방법의 프로세스 흐름도이다.
도 6은 페이지 로드들을 가속하기 위한 서버 중심 양상의 방법에서 정보 흐름들을 예시한 통신도이다.
도 7은 서버 중심 구성에서 페이지 로드들을 가속하기 위한 또 다른 양상의 방법에서 정보 흐름들을 예시한 통신도이다.
도 8은 서버 중심 구성에서 페이지 로드들을 가속하기 위한 또 다른 양상의 방법에서 정보 흐름들을 예시한 통신도이다.
도 9는 어떠한 콘텐츠를 다운로딩할지에 대한 결정, 및 오브젝트들이 다운로딩되는 시퀀스가 클라이언트에 의해 결정되는 클라이언트 중심 구성에서 페이지 로드들을 가속하기 위한 일 양상의 방법에서 정보 흐름들을 예시하는 통신도이다.
도 10은 클라이언트 중심 구성에서 페이지 로드들을 가속하기 위한 또 다른 양상의 방법에서 정보 흐름들을 예시한 통신도이다.
도 11a는 서버 중심 구현에서 페이지 로드들을 가속하기 위한 클라이언트 양상의 방법의 프로세스 흐름도이다.
도 11b는 서버 중심 구현에서 페이지 로드들을 가속하기 위한 서버 양상의 방법의 프로세스 흐름도이다.
도 12a는 클라이언트 중심 구현에서 페이지 로드들을 가속하기 위한 클라이언트 양상의 방법의 프로세스 흐름도이다.
도 12b는 클라이언트 중심 구현에서 페이지 로드들을 가속하기 위한 서버 양상의 방법의 프로세스 흐름도이다.
도 13은 다양한 양상들에서 사용하기에 적합한 모바일 컴퓨팅 디바이스의 컴포넌트 블록도이다.
도 14는 다양한 양상들에서 사용하기에 적합한 서버 컴퓨팅 디바이스의 컴포넌트 블록도이다.
도 15는 다양한 양상들에서 사용하기에 적합한 노트북 컴퓨팅 디바이스의 컴포넌트 블록도이다.
첨부된 도면들을 참조하여 다양한 양상들이 상세하게 설명될 것이다. 어디든 가능하면, 동일한 참조 번호들은 도면들 전체에 걸쳐 동일하거나 또는 유사한 부분들을 지칭하는데 이용될 것이다. 특정 예들 및 구현들에 대해 이루어진 참조들은, 예시 목적을 위한 것이며, 본 발명 또는 청구항들의 범위를 제한하도록 의도되지 않는다.
본원에서, 단어 "예시적인"은 "예, 예시, 또는 실례로서 기능하는 것"을 의미하는데 이용된다. "예시적인 것"으로서 본 명세서에 설명된 임의의 구현은 반드시 다른 구현들에 비해 유리한 것으로 해석되지 않는다.
본원에 사용된 바와 같이, 용어들 "컴퓨팅 디바이스", "모바일 컴퓨팅 디바이스" 및 "핸드헬드 디바이스"는 셀룰러 텔레폰들, 휴대정보 단말기들(PDA들), 팜-탑 컴퓨터들, 무선 전자 메일 수신기들, 스마트폰들, 글로벌 포지셔닝 시스템(GPS) 수신기들, 무선 게임 제어기들, 태블릿 컴퓨터들, 노트북 컴퓨터들, 넷북 컴퓨터들, 무선 이메일 디바이스들, 스마트 텔레비전들, 스마트 자동차 콘솔들 및 유사한 전자 디바이스들(프로그래밍 가능 프로세서 및 메모리를 포함하고, 통신 네트워크와 통신하기 위해 웹 브라우저로 구성됨) 중 어느 하나 또는 모두를 지칭한다.
본원에 이용된 바와 같이, 용어들 "컴퓨터", "개인용 컴퓨터" 및 "컴퓨팅 디바이스"는 알려져 있거나 또는 미래에 개발될 임의의 프로그래밍 가능 컴퓨터 시스템을 지칭한다. 일 양상에서, 컴퓨터는 본원에 설명되는 것과 같은 네트워크에 연결될 것이다. 컴퓨터 시스템은 본원에 설명된 프로세스들 및 동작들을 수행하기 위해 소프트웨어 명령들로 구성될 수 있다.
본원에 이용된 바와 같이, 용어들 "컴포넌트", "모듈", "플랫폼", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어를 지칭하도록 의도된다. 예를 들어, 컴포넌트는, 프로세서 상에서 실행되는 프로세스, 프로세서, 오브젝트, 실행 가능물, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이에 한정하지 않는다. 예시로서, 서버 상에서 실행되는 애플리케이션 및 서버 둘 모두는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 컴포넌트는 하나의 컴퓨터 상에서 로컬화될 수 있거나 및/또는 2 개 이상의 컴퓨터들 사이에서 분산될 수 있다.
다양한 양상들은 본원에서 클라이언트로 지칭되는 모바일 컴퓨팅 디바이스 상의 사용자 요청 동작과 콘텐츠의 렌더링 사이의 시간의 양을 감소시키는 개선된 웹 브라우징 방법들을 제공한다. 다양한 양상들은 웹페이지 기능을 변경 또는 제한하지 않고 네트워크 효율, 클라이언트 전력 효율 및 페이지 로드 속도들을 개선할 수 있다. 일부 양상들은 클라이언트들 및 서버들이 메타 정보를 수집 및 교환하는 것을 가능하게 할 수 있고, 메타 정보는 하나의 클라이언트가 (예를 들면, 서버 조정을 통해) 네트워크 상의 다른 클라이언트들의 통신 속도들을 개선하도록 허용하는 크라우드-소싱 및/또는 서버 힌팅(hinting)(분산 컴퓨팅의 형태들 둘 모두) 기술들을 채용하는데 사용될 수 있다. 다른 양상들에서, 서버들은 웹페이지들을 독립적으로 그리고 주기적으로 액세스함으로써(즉, "서버-소싱") 메타 정보를 수집하고, 네트워크 통신 성능을 개선하기 위한 정보를 클라이언트들에 제공할 수 있다.
3G/4G 네트워크들을 통해 웹페이지들을 로딩하는 것은 통상적으로 유선 및 로컬 영역 네트워크들을 통하는 것보다 더 느리다. 이것은 긴 왕복 시간들(예를 들면, 200ms 내지 500ms의 RTT), 특정 웹페이지에 대한 자원들의 반복적인 발견, 자원 의존성들, 제한되고 비대칭적인 대역폭, 다운링크들(DL들)보다 더 제약된 업링크들(UL들) 및 다양한 네트워크 조건들(신호 세기, 간섭들 및 다른 관련 요인들에서의 변화로 기인할 수 있음)에 부분적으로 기인한다.
일반적으로, 페이지 로드 동안에 브라우저 작동은 제한된 세트의 동작들의 반복된 수행을 수반한다. 그러한 반복적인 동작들은 콘텐츠 및 코드의 다운로딩, 코드의 컴파일링, 오브젝트들의 페칭(fetching) 및 실행, 및 실행을 위해 새로운 오브젝트들의 반복적인 발견을 포함할 수 있다. 이러한 동작들은 비효율적이고, 느린 원격 통신 네트워크 상에서 이러한 동작들을 반복적으로 수행하는 것은 긴 엔드-투-엔드 로드 시간들을 발생시켜서, 사용자 경험을 저하시킬 수 있다.
HTTP를 사용하는 서버로부터 하나씩 오브젝트들을 페칭하는 것은, 특히, 높은 RTT들을 갖는 3G/4G 네트워크들을 통하는 경우에 비효율적이다. 각각의 오브젝트를 페칭하는 것은 왕복 통신 지연을 요구할 수 있고, 웹페이지 내의 모든 오브젝트들을 다운로딩하는 것은 다수의 왕복 여행들을 수반할 수 있다. 또한, 요청들 사이에 의존성들이 존재할 수 있고, 전부가 아닌 오브젝트 요청들은 동시에 외부로 전송될 수 있다. 또한, 특정 오브젝트들을 프로세싱하는 것은 오리지널 HTML 페이지의 부분이 아닌 새로운 오브젝트들(예를 들면, 외부 자바스크립트들)을 생성할 수 있고, 브라우저는 부가적인 오브젝트들을 다운로딩하도록 강제될 수 있어서, 긴 페이지 로드 시간들 및/또는 왕복 시간들에 추가로 기여한다. DNS(domain name service) 분석 및 URL(uniform resource locator) 재지향과 같은 동작들은, 긴 페이지 로드 시간들 및/또는 왕복 시간들에 추가로 기여하는 오버헤드 지연들을 부가할 수 있다. 페이지 로드 속도들 및 브라우저 성능을 개선하기 위한 기존의 해결책들은 이러한 요인들을 해소하는데 실패하였거나, 비효율이거나 비효과적이거나 및/또는 그렇지 않다면 불만족스럽다. 다양한 양상들은 상술된 요인들의 영향을 제거 또는 감소시키고, 이로써 네트워크 효율 및 페이지 로드 속도들을 개선한다.
기존의 해결책들은 웹페이지를 렌더링하는데 있어서 클라이언트를 보조하는 방법을 모두 결정하기 위해 전체적으로 서버에 의존하거나, 일부 형태의 클라이언트 기반 캐싱(예를 들면, 디스크 캐싱)을 사용한다. 디스크 캐시들이 요청들의 총수를 감소시키는 것을 도울 수 있지만, 전부가 아닌 오브젝트들이 캐시에 있거나 심지어 캐싱 가능하도록 보장된다. 서비스 측으로부터 성능을 개선하기 위해, 웹사이트는 자원 전달을 위한 서버-푸시 기술을 사용할 수 있다. 그러나, 클라이언트 또는 네트워크 상태를 알지 못한 채, 서버 푸시를 수행하는 것은 최적의 성능을 발생시키지 않는데, 왜냐하면 이것은 클라이언트가 이미 메모리에 저장한 오브젝트들을 푸시할 수 있기 때문이다.
특정 웹 브라우저들(예를 들면, Opera® mini)은 더 빠른 페이지 다운로드들을 위해 서버 보조 접근법을 사용할 수 있다. 그러나, 이러한 브라우저들은 클라이언트 상에서 콘텐츠를 렌더링하기 위한 맞춤화된 마크 업 언어들 및 웹페이지 콘텐츠에 대한 변화들을 요구하고, 결과적으로, 웹페이지의 기능을 제한한다(예를 들면, 동적 자바스크립트®를 제한함). 다른 브라우저들(예를 들면, Amazon® Silk)은 더 빠른 웹사이트 프로세싱을 위해 클라우드 자원들을 사용한다. 그러나, 이러한 브라우저들은 네트워크 효율을 개선하지 않거나 및/또는 클라이언트 및 서버 둘 모두로부터 수집된 정보를 사용함으로써 웹페이지들의 협력형 클라이언트-서버 로딩을 지원하지 않는다.
다양한 양상들은, 클라이언트 및/또는 서버로부터 수집된 정보로부터 생성될 수 있는 공유 메타 정보에 기초하여 웹페이지들의 협력형 클라이언트-서버 로딩을 위한 프로토콜을 제공함으로써 기존의 해결책들의 이들 및 다른 한계들을 극복한다. 다양한 양상들은 또한 전체 페이지 로드 시간들을 감소시키기 위해, 클라이언트들 및 서버들 둘 모두로부터 구한 정보와 함께, 네트워크 조건들을 고려한다. 다양한 양상들은 웹페이지 기능을 변경 또는 제한하지 않고서 네트워크 효율, 모뎀 전력 효율 및 페이지 로드 속도들을 개선하는 것을 가능하게 한다. 다양한 양상들은 전체 웹페이지 및 웹 애플리케이션 로드 시간들을 감소시키기 위해 콘텐츠의 클라이언트의 네트워크 및 모바일 디바이스 지식 및 서버의 크라우드 인지를 레버리지(leverage)한다.
상술된 바와 같이, 페이지 로드 동작 동안에 디폴트 브라우저 작동은, 모바일 디바이스들이 부진한 것처럼 보이게 할 수 있는 긴 엔드-투-엔드 페이지 로드 시간들에 기여하는 제한된 세트의 동작들의 반복된 수행을 수반한다. 페이지 로드 동작들이 모바일 디바이스 상에서 수행된 후에, 브라우저는 페칭된 오브젝트들에 관한 정보에 대한 액세스를 가질 뿐만 아니라, 타입 정보, 크기 정보, 스타일들, 레이아웃들(예를 들면, 이미지들에 대한 스크린 상의 위치들), 상호 의존성들 및 다른 유사한 메타 정보를 포함하는 메타 정보에 대한 액세스를 갖는다. 이러한 정보는 동일한 디바이스 또는 다른 디바이스들 중 어느 하나로부터 동일한 페이지를 재차 로딩하는데 유용하다. 다양한 양상들은 콘텐츠를 다운로딩하고 웹페이지를 렌더링하는 개선된 방법들을 제공하기 위해 다른 모바일 디바이스들과 이러한 정보를 공유하는 것을 가능하게 하고, 개선된 방법들은 클라이언트 및 서버 둘 모두로부터 수집된 메타 정보뿐만 아니라 네트워크 조건들을 고려한다.
일 양상에서, 모바일 클라이언트(예를 들면, 모바일 디바이스 웹-브라우저)가 웹페이지를 렌더링한 후에, 모바일 클라이언트는 웹페이지에 관한 메타 정보를 수집한다. 이러한 메타 정보는 클라이언트의 사용자 에이전트(UA), 오브젝트 URL들(uniform resource locators)의 리스트들, 오브젝트 의존성들, 오브젝트 타입들, 크기들, 레이아웃 정보, 및 다른 유사한 정보를 포함할 수 있다. 클라이언트는 수집된 메타 정보를 서버에 제출할 수 있다. 서버는 많은 상이한 모바일 디바이스들로부터 및 다수의 웹사이트들에 대한 메타 정보를 수집하고, 메타 정보를 목록에 통합(예를 들면, 크라우드-소스, 서버 힌트 등)할 수 있다. 목록은 웹페이지를 렌더링, 액세싱 또는 다운로딩하는 프로세스에서 클라이언트에 유용한 임의의 그러한 메타 정보의 배열일 수 있다. 목록은 웹페이지를 효율적으로 디스플레이하는데 필요로 되는 자원들을 인식 및 우선 순위화하기 위해 서버 또는 다수의 클라이언트들에 의해 사용될 수 있다. 일 양상에서, 각각의 웹페이지에 대한 목록은 웹페이지를 액세스하는 클라이언트 컴퓨팅 디바이스에 의해 사용되는 사용자 에이전트(예를 들면, 브라우저 애플리케이션, 통신 소프트웨어)의 타입 또는 형태에 기초하는 상이한 메타 정보를 포함할 수 있다. 대안적으로, 각각의 타입 또는 형태의 사용자 에이전트에 대해 상이한 목록(즉, 사용자 에이전트-특정 목록들)이 생성될 수 있다. 서버는 다수의 웹페이지들, 클라이언트들, 클라이언트 타입들, 서버들 및 네트워크들에 관한 목록들의 데이터베이스를 업데이트 및 유지할 수 있고, 서버는, 가령, 서버가 사용자 에이전트-특정 목록들을 유지하거나 및/또는 웹페이지가 상이한 다양성들(예를 들면, 모바일 디바이스들에 대한 다양성)을 포함할 때, 개별적인 웹페이지에 대한 다수의 목록들을 유지할 수 있다. 예를 들면, 서버는, 각각이 사용자 에이전트 타입에 기초한 상이한 메타 정보를 포함하는 단일 웹페이지에 대해 몇몇의 별개의 목록들을 포함하는 데이터베이스를 유지할 수 있다. 일 양상에서, 서버는 데이터베이스 내에 저장된 목록들을 인덱싱하기 위해 웹페이지 식별 정보(예를 들면, 웹페이지 URL) 및/또는 사용자 에이전트 정보를 사용할 수 있다.
또 다른 양상에서, 서버는 각각의 웹페이지들의 콘텐츠를 직접적으로 수신 및 평가함으로써 클라이언트들로부터 독립적으로 웹페이지들에 대한 목록들을 결정할 수 있다. 그러한 양상들에서, 서버는 서버 상에서 실행되는 프록시 사용자 에이전트들을 사용할 수 있고, 프록시 사용자 에이전트들은 각각의 웹페이지를 액세스하고, 렌더링이 그 사용자 에이전트를 사용하여 클라이언트 상에서 달성되는 것처럼 각각의 타입의 사용자 에이전트에 유용한 메타 정보를 결정하기 위해 렌더링 프로세스들을 수행한다.
다양한 양상들에서, 서버는 다수의 클라이언트들로부터 수신되거나(크라우드-소싱) 서버 자체에 의해 생성되는(서버-소싱) 새로운 메타 정보에 기초하여 목록들을 주기적으로 업데이트할 수 있다. 클라이언트들 및/또는 서버는, 전체의 새로운 생성으로서, 또는 캐싱된 목록 데이터와 같이 로컬적으로 저장된 메타 정보와 렌더링 경험의 비교들을 통해, 웹페이지들을 액세스하고 페이지 로드 요건들을 재평가함으로써 새로운 메타 정보를 생성할 수 있다. 일 양상에서, 목록에 대한 업데이트들은 개별적인 웹페이지들에 대한 업데이트들 및/또는 변화들의 빈도에 의존하여 경우에 따라 서버에 의해 실시될 수 있다. 예를 들면, 서버는 하루에 한번 탐색 엔진 웹페이지에 대한 목록을 업데이트하고, 시간마다 여러 번 실시간으로 새로운 사이트에 대한 목록을 업데이트하지만, 일주일에 한번 기업 또는 정부 엔티티에 대한 목록을 업데이트할 수 있다.
모바일 클라이언트가 웹페이지를 액세스하려고 시도할 때, 클라이언트는 먼저 자신의 로컬 캐시 상태, 서버의 캐시 상태, 네트워크 조건들, 또는 이들의 임의의 조합을 체크할 수 있다. 네트워크 조건 정보는 네트워크에 관한 정보, 네트워크로부터 수집된 정보, 및/또는 정해진 요청에 대한 현재 네트워크 조건들을 레버리지하는데 사용될 수 있는 정보를 포함할 수 있다. 클라이언트 및 서버는 캐시 정보, 네트워크 조건들, 및 액세스되는 특정 웹페이지에 대한 서버에 의해 유지되는 메타 정보를 교환할 수 있다. 클라이언트, 서버 또는 둘 모두는 협력하여 클라이언트가 정보를 다운로딩해야 하는 최적의 시퀀스 또는 서버가 자원들을 클라이언트로 푸싱해야 하는 최적의 시퀀스를 결정할 수 있다. 일 양상에서, 페이지 로드 동작들이 완료한 후에, 모바일 클라이언트는 페이지를 렌더링하는 것으로부터 생성된 업데이트된 메타 정보를 수집하고, 추가적인 크라우드 소싱을 위해 업데이트된 정보를 서버로 전송할 수 있다. 상술된 프로세스는 네트워크의 성능을 계속해서 개선하기 위해, 필요로 될 때, 반복적으로 수행될 수 있다. 또 다른 양상에서, 클라이언트는, 일 양상이 서버-소싱을 가능하게 할 때조차 웹페이지 액세스에 기초하여 생성된 메타 정보를 서버로 전송할 수 있다. 따라서, 따라서, 서버는, 웹페이지 목록들을 생성할 때 크라우드-소싱 및 서버-소싱된 메타 정보 둘 모두로의 액세스를 가질 수 있다. 이것은 서버가 클라이언트들에 의한 피드백으로부터 이득을 얻는 것을 가능하게 할 수 있다.
이러한 방식으로, 다양한 양상들은 모바일 클라이언트들 및 서버가 페이지 다운로드들을 가속하는 것을 가능하게 하고, 크라우드 소싱된 페이지 메타 정보뿐만 아니라 네트워크 상태 정보를 교환함으로써 네트워크 효율을 개선한다. 다양한 양상들은, 콘텐츠를 모바일 디바이스로 전달하는 방법을 결정하기 위해, 클라이언트의 자원 및 네트워크 지식과 결합하여, 서버에 의해 누적된 웹페이지 콘텐츠 및 다수의 사용자 지식 둘 모두를 사용할 수 있다. 일 양상에서, 크라우드-소싱에 대해 클라이언트들이 메타데이터를 전송하는 대신에 또는 이에 부가하여, 서버는 콘텐츠에 기초하여 "즉각적으로(on the fly)" 메타데이터를 컴퓨팅할 수 있다. 메타데이터의 소스가 변할 때, 서버는 메타데이터를 계속해서 컴퓨팅할 수 있다. 이러한 양상들은 특정 클라이언트로부터 정보를 수집하는 것으로부터 발생할 수 있는 프라이버시 우려들을 회피한다.
다양한 양상들은 전송 전에 정해진 웹페이지, 클라이언트 또는 네트워크에 대해 요구된 자원들의 식별을 가능하게 한다. 요구된 자원들을 미리(upfront) 식별함으로써, 서버는 초기 웹페이지 액세스 요청에 응답하여 요구된 정보를 클라이언트에 푸싱할 수 있고, 이로써 긴 페이지 로드 시간들 및/또는 왕복 시간들을 거의 절반만큼 감소시킨다.
다양한 양상들은 다양한 무선 또는 모바일 통신 시스템들 내에서 구현될 수 있고, 이들의 예가 도 1에 예시된다. 도 1에 예시된 예시적인 통신 시스템(100)은 셀룰러 텔레폰 네트워크와 같은 모바일 브로드캐스트 네트워크(101) 및 유니캐스트 네트워크(111)를 포함한다. 통상적인 셀룰러 텔레폰 네트워크는, 가령 텔레폰 지상선들(예를 들면, POTS 네트워크, 도시되지 않음) 및 인터넷(107)을 통해 스마트 폰들(110A, 110B) 및 랩톱 컴퓨터(110C) 및 다른 네트워크 목적지들과 같은 모바일 컴퓨팅 디바이스들 사이에서 음성 및 데이터 호들을 접속하도록 동작하는 네트워크 운영 센터(114)에 연결된 복수의 셀룰러 기지국들(112)을 포함한다. 다른 양상들에서, 모바일 컴퓨팅 디바이스들은 또한 모바일 텔레비전 수신기들, 셀룰러 폰들, 개인 휴대 정보 단말들, 대화형 게임 디바이스들, 노트북들, 스마트북들, 울트라북들 또는 다른 그러한 전자 디바이스들과 같은 디바이스들을 포함할 수 있다. 모바일 컴퓨팅 디바이스들(110A-C)과 유니캐스트 네트워크(111) 사이의 통신들은 4G, 3G, CDMA, TDMA 및 다른 셀룰러 텔레폰 통신 기술들과 같이 양방향 무선 통신 링크들(113)을 통해 달성될 수 있다. 인터넷 데이터 통신들을 용이하게 하기 위해, 유니캐스트 네트워크(111)는 통상적으로 접속을 인터넷(107)에 제공하는 네트워크 운영 센터(114)에 연결되거나 네트워크 운영 센터(114) 내에 있는 하나 이상의 서버들(116)을 포함할 것이다.
모바일 컴퓨팅 디바이스들(110A-C)은 이용 가능할 때 유선 또는 WLAN(WiFi) 접속을 통해 인터넷(107)에 접속될 수 있고, 이러한 경우에 인터넷(107)은 유니캐스트 네트워크로서 역할을 한다. 모바일 컴퓨팅 디바이스들(110A-C)은 잘 알려진 종래의 인터넷 액세스 프로토콜들을 사용하여 유니캐스트 네트워크(111)를 통해 콘텐츠를 수신할 수 있다.
통신 시스템(100)은, 본원에서 브로드캐스트 운영 센터(104)(또는 도면들에서 "BOC")로 지칭되는 모바일 브로드캐스트 네트워크 제어 센터에 의해 제어되는 복수의 브로드캐스트 전송기들(102)을 통상적으로 포함하는 모바일 브로드캐스트 네트워크(101)를 또한 포함할 수 있다. 브로드캐스트 네트워크(101)는 모바일 컴퓨팅 디바이스들(110A-C)에 의한 수신을 위해 모바일 브로드캐스트 전송들(103)로서 브로드캐스트 전송기들(102)로부터 콘텐츠를 브로드캐스팅한다. 모바일 브로드캐스트 네트워크 내에서, 제어 센터(104)(또한 브로드캐스트 운영 센터 또는 "BOC"라 불림)는 통상적으로 실시간 콘텐츠 브로드캐스트들, 전자 서비스 가이드들의 생성 및 오버헤드 흐름을 통한 브로드캐스트를 위한 메타 정보 메시지들의 생성을 관리하기 위한 하나 이상의 서버들 및 시스템들일 것이다. 메타 정보는 주기적으로, 또는 클라이언트 요청들에 응답하여 콘텐츠 브로드캐스트들 전에 전송될 수 있다. 브로드캐스트 메타 정보는 모바일 컴퓨팅 디바이스들(110A-C)에 의해 수신 및 저장되고, 미래의 페이지 로드 동작들을 개선하는데 사용될 수 있다. 예를 들면, 메타 정보는 미래의 브로드캐스트들을 선택적으로 수신하거나, 모바일 디바이스 브라우저가 웹페이지로부터 요청해야 하는 자원들을 식별하기 위해 모바일에 의해 사용될 수 있다.
다양한 양상들에서, 클라이언트들 및 서버들은 메타 정보를 수집 및 교환할 수 있다. 이러한 메타 정보는 모바일 디바이스 또는 서버가 클라이언트, 서버, 네트워크 또는 웹사이트 요건들을 더 양호하게 이해하도록 허용하는 정보, 또는 모바일 디바이스 브라우저가 더 빠른 페이지 로드 동작들을 수행하게 하는 임의의 정보를 포함할 수 있다. 일 양상에서, 메타 정보는 XML, Ajax 또는 JSON 코드일 수 있다. 모바일 디바이스는 웹페이지를 렌더링할 때 서버로부터의 목록으로서 메타 정보를 검토할 수 있다. 목록은 웹페이지들의 개선된 브라우저 실행을 위한 방식을 제공할 수 있다. 브라우저는 웹페이지를 더 효율적으로 다운로딩 및/또는 프로세싱하기 위해 목록을 사용할 수 있어서, 더 빠른 실행 시간들 및 더 낮은 전력 사용을 유도한다. 예를 들면, 목록은 특정 데이터가 자주 액세스되거나 사용자들 중에서 인기있는 정보를 제공할 수 있다. 정상적으로 제거될 또는 자주 사용되는 데이터는 모바일 디바이스로부터 서버 상에 위치된 캐시 메모리로 업로딩될 수 있다.
일 양상에서, 목록은 자바스크립트 메타 정보를 포함할 수 있다. 목록은 특성 상들의 자바스크립트 함수 확률들, 스크립트 토큰들, 렉싱(lexing) 정보, AST 파싱 정보, 이미 컴파일링된 이진 데이터, 저스트 인 타임 데이터, 의존성 트리들, 또는 모바일 디바이스에서 자바스크립트 요청들을 프로세싱하는데 있어서 시간을 절약하기 위한 다른 정보를 포함하는 유용한 정보를 제공할 수 있다.
일 양상에서, 목록은 간략화된 또는 개선된 선택기들, 합병 스타일들, 또는 CSS 웹페이지 데이터를 프로세싱, 파싱, 실행 또는 렌더링하는 것을 보조하기 위한 임의의 다른 정보와 같은 정보를 포함하는 CSS 메타 정보를 포함할 수 있다. 일 양상에서, 목록은 DOM 트리를 프로세싱하는 방법에 대한 정보를 포함할 수 있다.
일 양상에서, 목록은 인코딩된 페이지들을 프로세싱하는 방법에 대해 모바일 디바이스에 지시하는 HTML 메타 정보를 포함할 수 있다. 일 양상에서, 목록은 네트워크 상의 다른 클라이언트들로부터 수집된 데이터를 포함할 수 있고, 다른 클라이언트의 브라우징 정보를 관찰하는 것으로부터 수신된 분석 또는 패턴들을 기술할 수 있다.
일 양상에서, 목록은 웹페이지의 렌더링, 다운로딩 또는 프로세싱 부분들에 관련된 확률들을 포함할 수 있다. 예를 들면, 목록은 특정 웹페이지 엘리먼트가 높은 실행 확률을 갖는다는 것을 나타낼 수 있거나, 특정 웹페이지 엘리먼트가 그 페이지를 액세스하는 것들 사이에서 매우 인기있을 수 있다는 것을 나타낼 수 있다. 특정 예는, 사용자가 특정 뉴스 웹사이트 상의 "스포츠" 링크를 클릭하는 것을 좋아한다는 것일 수 있다. 모바일 디바이스는 사용자가 미래의 일정 포인트에서 웹페이지 엘리먼트를 요청할 수 있다는 추측(speculation)에 기초하여 또는 전혀 기초하지 않고 그러한 웹페이지 엘리먼트들을 다운로딩할 수 있다. 예를 들면, 목록은 라이브러리가 높은 실행 확률을 갖는 제 1 부분을 포함한다는 것, 및 제 1 부분이 즉시 전송 또는 액세스되어야 한다는 것을 나타낼 수 있다. 마찬가지로, 목록은 제 2 부분(낮은 실행 확률을 가짐)이 다운로딩될 필요가 없다는 것 또는 제 1 부분 후에 다운로딩되어야 한다는 것을 나타낼 수 있다.
목록은, 웹페이지를 액세스하기 위한 요청 전에, 웹페이지가 미리 로딩되어 브라우저에 제공될 때 발생할 수 있는 것과 같이, 목록은 모바일 디바이스 상에서 미리 캐싱될 수 있다. 목록은, 사용자가 정보를 필요로 할 수 있는 때 전에, 가령, 네트워크 사용률이 낮은 저녁 또는 이른 아침 동안에, 미리 결정된 시간 기간에 가입 모바일 디바이스들로 전송될 수 있다. 대안적으로, 목록은, "상위 100" 웹사이트들의 리스트에 대한 것과 같이 동기화 절차의 부분으로서 또는 클라이언트의 사용자 습관들에 기초하여 전송될 수 있다. 일 양상에서, 목록은 웹 콘텐츠에 대해 더 느린 변화 레이트를 가질 수 있고, 따라서 미리 결정된 간격들로 사용자의 컴퓨터 또는 모바일 디바이스에 미리 캐싱될 수 있다. 통상적인 예는 웹페이지들의 스타일 및 레이아웃이고, 이것은, 페이지 상의 콘텐츠가 매일 변할지라도, 매우 드물게 변하는 경향이 있다. 일 양상에서, 목록은 비-피크 시간, 가령 늦은 밤에 모바일 디바이스에 제공될 수 있다. 일 양상에서, 목록은 매시간, 매일, 매주, 매달, 또는 매년과 같이 주기적으로 모바일 디바이스에 제공될 수 있다. 일 양상에서, 목록은 모바일 브로드캐스트 네트워크를 통해 모바일 디바이스들에 브로드캐스팅될 수 있다.
일반적으로, 페이지 로드 동작들이 모바일 디바이스 상에서 수행된 후에, 브라우저는 페칭된 오브젝트들에 관한 정보뿐만 아니라, 정보 타입, 파일 크기, 스타일들, 레이아웃들(예를 들면, 이미지들에 대한 스크린 상의 위치들), 상호 의존성들에 관한 정보, 및 페이지를 렌더링하는 것에 관련된 다른 유사한 메타 정보를 생성하였다. 이러한 정보는 동일한 디바이스 또는 다른 모바일 디바이스들 중 어느 하나 상에서 동일한 페이지를 재차 로딩하는데 유용할 수 있다. 다양한 양상들은 이러한 정보를 공유하는 것이 콘텐츠를 다운로딩하고 웹페이지를 렌더링하는 개선된 방법들을 제공하는 것을 가능하게 하고, 개선된 방법들은 클라이언트 및 서버 둘 모두로부터 수집된 메타 정보뿐만 아니라 네트워크 조건들을 고려할 수 있다. 다양한 양상들에서, 서버는 정해진 웹페이지에 대한 목록을 생성할 수 있어서(즉, 목록을 클라이언트로부터 수신하는 것과 반대로), 클라이언트들에 대한 의존성을 감소시키거나 및/또는 클라이언트 프라이버시 우려들을 완화한다. 일 양상에서, 서버는 클라이언트들로부터의 메타 정보의 부재가 연장될 때 목록을 생성하도록 구성될 수 있다. 예를 들면, 서버가 5분마다 특정 웹페이지를 업데이트 또는 "새로 고치(freshen)"도록 구성되면, 서버는 메타 정보를 추출하고, 서버가 지난 5 분에 하나 이상의 클라이언트들로부터 그러한 정보를 수신하지 않는다면, 페이지 자체에 대한 대응하는 목록을 생성할 수 있다.
다양한 양상들은 단일 프록시 구성(예를 들면, 모든 클라이언트 트래픽이 인터넷(107)에 도달하기 전에 모든 클라이언트 트래픽이 중앙 프록시 서버를 거치도록 함) 또는 전용화된 크라우드 소스 서버를 사용하는 구성(예를 들면, 클라이언트 트래픽이 인터넷(107)에 도달하기 전에, 클라이언트 트래픽이 전용화된 서버, 웹 서버, 또는 이들의 조합을 거치도록 함)으로 구현될 수 있다. 양상들은 또한 웹페이지 호스팅 서버들 중 일부 또는 전부가 자신들의 호스팅된 페이지들에 관련된 메타 정보를 수신 및 유지하는 분산 시스템에서 구현될 수 있다.
도 2는 일 양상에서 구현될 수 있는 목록(205)의 예시적인 구조를 예시하나. 상술된 바와 같이, 서버(208)는 웹페이지를 액세싱 및 디스플레이하는 것에 관련된 메타 정보를 평가함으로써 특정 사용자 에이전트 및 특정 웹페이지에 대한 목록(205)을 생성할 수 있다. 서버(208)는, 웹페이지의 콘텐츠를 독립적으로 리트리브(retrieve)할 때, 도 1을 참조하여 상술된 바와 같이, 메타 정보를 결정할 수 있다. 클라이언트 모바일 컴퓨팅 디바이스, 또는 클라이언트(110A)가 웹페이지를 다운로딩 또는 그렇지 않다면 액세싱하는 프로세스를 시작할 때, 클라이언트는 서버(208)로부터 목록(205)을 요청할 수 있다. 서버(208)는 웹페이지 아이덴티티(209)(예를 들면, 웹페이지에 대한 URL)의 고유한 정보, 사용자 에이전트 정보(210)(예를 들면, 목록이 마련되는 클라이언트(110A)의 소프트웨어 또는 다른 프로세싱 플랫폼에 관한 식별자 또는 세부 사항들), 웹페이지에 대한 타임스탬프(224)뿐만 아니라 웹페이지와 연관된 오브젝트들 또는 자원들(예를 들면, 이미지, HTML, 또는 스크립팅 파일들)의 설명들과 같은 메타 정보의 콜렉션을 포함할 수 있다. 목록은 또한 오브젝트 URL들(212)(예를 들면, 웹 서버 내의 파일 저장 위치들), 오브젝트 크기들(214), 오브젝트 타입들(216), 오브젝트들의 캐싱-능력(218)(예를 들면, 특정 오브젝트들이 반복 사용을 위해 클라이언트(110A)의 캐시 내에 저장될 수 있는지), 웹페이지의 오브젝트들 사이의 의존성들(220) 및 레이아웃 정보(222)(예를 들면, 웹페이지 내의 이미지의 상대적인 위치)에 관한 특정 데이터를 포함할 수 있다. 클라이언트(110A)는 목록을 수신하고, 웹페이지를 유지하는 웹 서버들로부터의 미래의 자원 요청들을 위해 필요로 되는 자원들의 우선 순위를 결정하기 위해 목록 정보와 클라이언트의 컴퓨팅 디바이스 내에 저장된 정보(예를 들면, 캐싱된 데이터, 네트워크 상태, 및 다른 "로컬" 정보)를 비교할 수 있다. 또 다른 양상에서, 목록 정보와 클라이언트(110A)에 관한 정보의 비교는 서버(208)에 의해 달성될 수 있다. 일 양상에서, 클라이언트(110A)가 웹페이지를 요청할 때, 서버(208)는, 클라이언트(110A)에 전송하기에 적절한 목록(205)을 결정하기 위해, 요청된 웹페이지의 웹페이지 아이덴티티(209)(예를 들면, 웹페이지 URL)와 클라이언트(110A)의 사용자 에이전트 정보(210)(예를 들면, 사용자 에이전트 타입)를 교차 참조할 수 있다.
도 3은 다양한 양상들에 따른, 단일 프록시 구성(300)에서 예시적인 정보 흐름들을 예시한 네트워크도이다. 예시된 단일 프록시 구성(300)에서, 모든 클라이언트 트래픽은, 모든 클라이언트 트래픽이 인터넷(107)에 도달하기 전에 중앙 프록시 또는 에지 서버(208)(예를 들면, 웹 프록시 서버, ISP 게이트웨이, 또는 CDN 서버 등)를 거칠 수 있다. 중앙 프록시 서버(208)는, 많은 모바일 클라이언트들로부터 메타 정보를 수집하고, 수집된 메타 정보를 크라우드 소스 메타 정보 제품 또는 목록으로 프로세싱하고, 목록을 모바일 디바이스들로 분배하는 크라우드-소스 서버를 포함할 수 있다. 대안적으로, 중앙 프록시 서버(208)는, 가령, 도 5a에 관련하여 후술되는 바와 같이, 적절한 데이터를 추출하기 위해 웹페이지를 직접적으로 프로세싱함으로써 크라우드 소싱 없이 동일한 메타 정보 데이터베이스를 생성할 수 있다.
모바일 컴퓨팅 디바이스들(110B)은 웹페이지에 관한 메타 정보를 중앙 프록시 서버(208)로 전송할 수 있다. 이러한 정보는 로컬 캐시 상태, 현재 네트워크 조건, 컨텍스트 정보, 사용자 프로파일 정보, 통신 정보, 네트워크 정보, 모바일 디바이스 정보, 웹 브라우저 정보 및/또는 페이지 로드 속도들을 개선하기 위해 서버에 의해 사용될 수 있는 클라이언트에 이용 가능한 임의의 다른 정보를 포함할 수 있다. 중앙 프록시 서버(208)는 정보를 수신하고, 모바일 컴퓨팅 디바이스들(110B)로부터 수신된 및/또는 상이한 웹페이지들에 대한 메타 정보와 그 정보를 결합(예를 들면, 크라우드 소싱 등)할 수 있다. 예를 들면, 상이한 메타 정보는 상이한 클라이언트 사용자 에이전트들(예를 들면, 데스크톱, iOS®, Android®)에 기초한 임의의 정해진 웹페이지에 대해 필요할 수 있다. 중앙 프록시 서버(208)는 또한 크라우드 소싱된 메타 정보에 따라 자원들을 캐싱할 수 있다.
또 다른 모바일 컴퓨팅 디바이스 또는 클라이언트(110A)는, 페이지를 로딩하도록 지시받을 때, 그가 페이지를 로딩하기 전에 먼저 자신의 로컬 캐시 상태 및 현재 네트워크 조건을 중앙 프록시 서버(208)로 전송하도록 구성될 수 있다. 클라이언트(110A)는 또한 특정 클라이언트, 모바일 디바이스 타입 또는 네트워크에 관한 정보를 서버(208)로 전송할 수 있거나, 및/또는 서버(208)로부터 그러한 정보를 요청할 수 있다. 모바일 컴퓨팅 디바이스(110B) 및 프록시 서버(208) 둘 모두로부터 획득된 메타 정보에 기초하여, 클라이언트(110A), 및 서버(208)는 어떠한 자원들이 클라이언트(110A)로 (상이한 우선 순위 순서들로) 다운로딩/푸시되어야 하는지를 협력하여 결정할 수 있다. 이러한 협력적인 의사 결정의 부분으로서, 시스템은 무선 데이터 링크의 사용을 개선하거나 및/또는 총 페이지 로드 시간을 감소시키는 자원들을 선택 및/또는 우선 순위화할 수 있다.
선택된 자원들(및/또는 관련 정보)이 리트리브되어 클라이언트(110A)로 푸싱될 수 있다. 클라이언트(110A)는 자원들/정보를 수신하고, 페이지를 렌더링(페이지 로드 동작들을 수행)할 수 있다. 이어서, 클라이언트(110A)는 웹페이지에 관한 업데이트된 메타 정보를 프록시 서버(208)로 전송할 수 있고, 상술된 프로세스가 반복될 수 있다.
일 양상에서, 클라이언트(110A)의 트래픽 패턴은 다른 클라이언트들 상의 페이지 렌더링 시간들을 개선하기 위해 평가될 수 있다. 일 양상에서, 클라우드 서비스 분산 네트워크는 브라우저의 동작들을 예상함으로써(예를 들면, 메타 정보를 모바일 디바이스에 제공함으로써) 페이지 로드 속도들을 개선하는데 사용될 수 있다. 일 양상에서, 모바일 컴퓨팅 디바이스는 자주 사용되는 정보를 식별하거나, 서버(208)로부터 타겟팅된 서비스들을 요청하거나 및/또는 나중의 사용을 위해 자주 사용된 정보를 서버로 업로딩할 수 있다.
도 4a는 다양한 양상들에 따른 크라우드-소싱 실시예 방법(400)에서 예시적인 정보 흐름들을 예시한다. 도 4a에 예시된 예에서, 메타 정보는 전용화된 크라우드-소싱 서버(208)에 의해 관리된다. 모바일 컴퓨팅 디바이스(110B)는 웹페이지에 관한 메타 정보를 전용화된 크라우드-소싱 서버(208)로 전송할 수 있고, 서버(208)는 메타 정보에 따라 페이지 로드 메타 정보, 상이한 클라이언트드로부터 수신된 상이한 웹페이지들에 대한 크라우드 소스 메타 정보, 및 캐시 자원들을 수집 및 분배할 수 있다. 클라이언트 모바일 컴퓨팅 디바이스(110A) 또는 클라이언트가 페이지를 요청할 때, 클라이언트(110A)는 먼저 자신의 로컬 캐시 상태 및 현재 네트워크 조건을 크라우드-소싱 서버(208)로 전송할 수 있다. 모바일 컴퓨팅 디바이스(110B) 및 크라우드-소싱 서버(208) 둘 모두로부터의 메타 정보에 기초하여, 당사자들(예를 들면, 클라이언트(110A) 및 크라우드-소싱 서버(208))은 어떠한 자원들을 요구할지를 협력하여 결정할 수 있다. 이러한 크라우드-소싱 서버(208)는 페이로드를 압축하는 것 또는 전송되는 오브젝트들의 순서를 변경하는 것과 같은 다양한 서버 동작들을 지원하도록 구성될 수 있다. 크라우드-소싱 서버(208)는 네트워크 사용을 개선하고 전체 페이지 로드 시간들을 감소시키는데 요구되는 자원들을 식별하는 리스트를 클라이언트(110A)로 전송할 수 있다. 클라이언트(110A)는 수신된 리스트에 기초하여 웹 서버(412)로부터 정보를 요청할 수 있다. 이어서, 클라이언트(110A)는 웹 서버(412)로부터 정보를 (예를 들면, 크라우드-소싱 서버(208)를 통해) 수신하고, 페이지를 렌더링할 수 있다. 웹페이지를 렌더링한 후에, 클라이언트(110A)는 업데이트된 메타 정보를 크라우드-소싱 서버(208)로 전송할 수 있고, 상술된 프로세스가 반복될 수 있다.
도 4b는 크라우드-소싱 웹페이지 목록을 생성 및 사용하기 위한 방법(450)을 예시한다. 블록(451)에서, 컴퓨팅 디바이스들 상에서 실행되는 다수의 클라이언트들은 웹페이지를 유지하는 웹 서버로부터 수신된 자원들(예를 들면, 오브젝트들, 스크립팅 파일들, HTML 코드)로 웹페이지를 로딩할 수 있다. 클라이언트들은 블록(452)에서 사용자 에이전트를 통해 웹페이지를 로딩 및 액세스하는 프로세스들의 부분에 기초하여 또는 프로세스들의 부분으로서 메타 정보를 결정할 수 있다. 메타 정보는 각각의 개별적인 웹페이지에 대해 상이할 수 있고, 웹페이지를 액세스하는데 사용되는 각각의 타입의 사용자 에이전트는, 다른 타입들의 사용자 에이전트들에 의해 생성되는 메타 정보 세트들과 상이한 메타 정보 세트를 생성할 수 있다. 블록(453)에서, 다수의 클라이언트들 각각은 저장 및 프로세싱을 위해 그들 각각의 메타 정보를 서버로 전송할 수 있다. 블록(454)에서, 서버는 웹페이지에 관한 수신된 메타 정보로부터 특정 웹페이지에 대한 목록을 생성할 수 있다. 일 양상에서, 서버는 웹페이지(예를 들면, 웹페이지의 글로벌 URL) 또는 사용자 에이전트 타입에 따라 조직화되거나 인덱싱된 목록을 기록하기 위해 데이터베이스를 사용할 수 있다. 그러한 조직화는 서버가 특정 타입의 사용자 에이전트로부터 특정 웹페이지에 대한 요청에 응답하여 데이터베이스로부터 적절한 웹페이지 목록을 회수하는 것을 가능하게 할 수 있다.
블록(455)에서, 서버는 웹페이지를 액세싱하려고 의도한 클라이언트로부터 특정 웹페이지의 목록에 대한 요청을 수신할 수 있다. 이러한 요청은 원하는 웹페이지 및 정보를 식별하는 클라이언트의 사용자 에이전트 둘 모두를 식별할 수 있다. 블록(456)은 데이터베이스 내에 적절한 목록을 위치시키기 위해 수신된 웹페이지 식별자 및 클라이언트 사용자 에이전트를 사용하고, 그 목록을 요청 클라이언트로 전송할 수 있다. 블록(457)에서, 요청 클라이언트는 전송된 목록을 수신하고, 캐싱된 웹페이지와 같이, 목록 정보와 현재 클라이언트 정보를 비교함으로써 웹페이지에 요구되는 자원들에 우선 순위들을 할당하기 위해 목록 내의 정보를 사용할 수 있다. 블록(457)에서 수행되는 동작들은 캐싱된 자원들 및 오브젝트들, 의존성들, 레이아웃 정보 등 및 현재 네트워크 상태(예를 들면, 대역폭, 지연 추정 등)와 목록을 비교하는 것을 포함할 수 있다. 클라이언트는 웹페이지를 로딩하는데 필요한 자원들(즉, 캐시에 저장되지 않은 목록에서 식별된 자원들)에 우선 순위들을 할당할 수 있다. 블록(458)에서, 클라이언트는 할당된 우선 순위들에 의해 결정된 시퀀스로 웹페이지를 로딩하는데 필요한 자원들에 대한 요청들을 수신하고, 요청된 자원들을 웹 서버로부터 수신할 수 있다. 선택적으로, 선택적인 블록(459)에서 클라이언트는 웹페이지를 렌더링하는 동작을 완료하는 것의 부분으로서 메타-정보를 생성하고, 그러한 메타-정보를 서버로 전송할 수 있다. 서버는 블록(453)에서 웹페이지에 관련된 목록을 업데이트할 수 있고, 프로세스는 임의의 수의 클라이언트들로부터 수신된 각각의 웹페이지 요청에 응답하여 계속해서 반복될 수 있다.
또 다른 양상에서, 서버는 자원들에 대한 우선 순위를 결정하고, 목록을 클라이언트로 전송하는 대신에 그러한 자원들을 요청 클라이언트에 푸싱할 수 있다. 이러한 실시예를 구현하는 예시적인 방법(460)이 도 4c에 예시된다. 상술된 방법(400)과 마찬가지로, 컴퓨팅 디바이스들 상에서 실행되는 다수의 클라이언트들은 블록(451)에서 웹페이지를 유지하는 웹 서버로부터 수신된 자원들(예를 들면, 오브젝트들, 스크립팅 파일들, HTML 코드)로 웹페이지를 로딩할 수 있다. 클라이언트들은 블록(452)에서 사용자 에이전트를 통해 웹페이지를 로딩 및 액세싱하는 프로세스들의 부분에 기초하여 또는 프로세스들의 부분으로서 메타 정보를 결정할 수 있다. 메타 정보는 각각의 개별적인 웹페이지에 대해 상이할 수 있고, 웹페이지를 액세싱하는데 사용되는 각각의 타입의 사용자 에이전트는 다른 타입들의 사용자 에이전트들에 의해 생성된 메타 정보 세트들과 상이한 메타 정보 세트를 생성할 수 있다. 블록(454)에서, 서버는 웹페이지에 관련된 수신된 메타 정보로부터 특정 웹페이지에 대한 목록을 생성할 수 있다. 일 양상에서, 서버는 웹페이지(예를 들면, 웹페이지의 글로벌 URL) 또는 사용자 에이전트 타입에 따라 조직화되거나 인덱싱된 목록을 기록하기 위해 데이터베이스를 사용할 수 있다. 그러한 조직화는 서버가 특정 타입의 사용자 에이전트로부터 특정 웹페이지에 대한 요청에 응답하여 데이터베이스로부터 적절한 웹페이지 목록을 회수하는 것을 가능하게 할 수 있다.
블록(462)에서, 서버는 특정 웹페이지를 액세싱하기 위한 요청을 클라이언트로부터 수신할 수 있다. 그 요청은 요청된 웹페이지의 식별자(예를 들면, URL), 사용자 에이전트의 식별자, 및 클라이언트의 현재 상태, 특히 메모리에 캐싱되고 클라이언트에 대해 로컬적으로 이용 가능한 웹페이지에 관련된 자원들에 관련된 정보를 포함할 수 있다. 이러한 정보는 서버가 요청 디바이스 상에 이미 존재하지 않는 대응하는 웹페이지 목록에서 식별된 오브젝트들 및 자원들을 결정하는 것을 가능하게 한다. 블록(464)에서, 서버는 요청된 웹페이지 및 클라이언트의 사용자 에이전트에 대한 적절한 목록을 액세싱할 수 있다. 앞서 논의된 바와 같이, 이것은 목록들의 데이터베이스를 액세싱하기 위한 인덱스 용어들로서 웹페이지 식별자 및 사용자 에이전트 정보를 사용함으로써 달성될 수 있다. 블록(466)에서, 서버는, 전송될 필요가 있는 자원들 및 오브젝트들 및 클라이언트로 전송될 필요가 있는 정보에 할당된 자원 우선 순위들을 식별하기 위해 블록(462)에서 수신된 클라이언트 정보와 목록을 비교할 수 있다. 이러한 정보를 사용하여, 블록(468)에서, 서버는 웹페이지를 요청한 클라이언트에 식별된 우선 순위들을 통지할 수 있어서, 클라이언트가 표시된 우선 순위 순서로 그러한 오브젝트들 및 자원들을 요청하는 것을 가능하게 한다. 대안적으로, 블록(468)에서, 서버는 식별된 우선 순위 시퀀스로 자원들 및 오브젝트들을 클라이언트에 간단히 푸싱할 수 있다. 이어서, 요청 클라이언트는 수신된 자원들 및 오브젝트들을 사용하여 웹페이지를 렌더링할 수 있다. 선택적으로, 클라이언트는 웹페이지를 렌더링하는 동작들을 완료하는 것의 부분으로서 메타 정보를 생성하고, 선택적인 블록(470)에서 그러한 메타 정보를 서버로 전송할 수 있다. 서버는 블록(453)에서 웹페이지에 관련한 목록을 업데이트할 수 있고, 프로세스는 임의의 수의 클라이언트들로부터 수신된 각각의 웹페이지 요청에 응답하여 계속해서 반복될 수 있다.
도 3을 참조하여 상술된 바와 같이, 복수의 사용자 클라이언트 모바일 컴퓨팅 디바이스들로부터 메타 정보를 수신하고, 웹페이지 목록의 크라우드-소싱된 세트를 개발하는 대신에, 서버는 다수의 프록시 사용자 에이전트들을 사용하여 웹페이지들을 렌더링함으로써 그러한 메타 정보 자체를 생성할 수 있다. 도 5a는 다양한 양상들에 따른, 서버-소싱 구현(500)에서의 예시적인 정보 흐름을 예시한다. 도 5a에 예시된 예에서, 메타 정보는 전용화된 서버(208)에 의해 생성될 수 있다. 크라우드-소싱 구현과 달리, 서버(208)는 웹 서버(412)로부터 직접적으로 웹페이지 정보(즉, HTML 코드, 스크립팅 콘텐츠, 스타일 시트들, 이미지들 등)를 요청할 수 있다. 서버(208)는 각각의 웹페이지를 렌더링하기 위해 다양한 타입들의 사용자 에이전트들(예를 들면, 데스크톱, iOS® 운영 시스템, Android® 운영 시스템)을 모방할 수 있고, 웹페이지가 각각의 모방된 사용자 에이전트 타입에 의해 프로세싱될 때 웹 서버(412)로부터 상이한 정보를 리트리브할 수 있다. 서버(208)는 웹페이지를 로딩하는데 요구된 자원들, 컴포넌트들 사이의 의존성들을 기술하는 페이지 로드 메타 정보, 및 클라이언트(110A)가 네트워크 사용을 개선하고 전체 페이지 로드 시간들을 감소시키는데 사용할 수 있는 다른 정보를 생성할 수 있다. 이러한 메타 정보로부터, 서버(208)는 서버(208)와 연관된 데이터베이스에 저장될 수 있는 목록을 생성할 수 있다.
클라이언트(110A)가 웹페이지를 렌더링하도록 임무를 맡을 때, 클라이언트(110A)는 서버(208)로부터 목록을 요청하고, 목록 정보와 현재 로컬 정보(예를 들면, 캐싱된 데이터, 현재 네트워크 상태 등)를 비교할 수 있다. 이러한 비교를 통해, 클라이언트(110A)는 웹페이지 자원 리트리벌(retrieval)을 우선 순위화 및 순위를 정할 수 있다. 이어서, 클라이언트(110A)는 요구된 웹페이지 엘리먼트들을 우선 순위들의 순서로 요청하고, 웹 서버(412)로부터 필요한 콘텐츠를 수신하고, 페이지를 렌더링할 수 있다. 일 양상에서, 클라이언트(110A)는 그 정보를 자신의 저장된 목록들에 통합할 수 있는 서버(208)에 메타 정보를 업로딩하거나, 자신의 프록시 사용자 에이전트들 또는 프로세스(이에 의해 목록들이 생성됨)를 미세 튜닝하기 위해 피드백을 사용할 수 있다. 일 양상에서, 서버(208)는 웹페이지 콘텐츠를 클라이언트(110A)에 푸싱할 수 있다. 또 다른 양상에서, 클라이언트(110A)는 자신의 현재 로컬 정보(예를 들면, 캐싱된 데이터, 현재 네트워크 상태 등)를 서버(208)로 전송할 수 있고, 서버(208)는 클라이언트(110A)에 대한 자원 리트리벌 시퀀스를 결정하기 위해 웹페이지의 목록과 현재 로컬 정보를 비교할 수 있다. 또 다른 양상에서, 웹페이지는 서버(208) 상에서 유지될 수 있다.
도 5b는 서버-생성 메타 정보를 사용하여 웹페이지 목록들을 생성하기 위해 서버에서 구현될 수 있는 예시적인 방법(550)을 예시한다. 방법(550)에서, 블록(552)에서, 서버는 프로세싱을 위해 특정 웹페이지를 선택할 수 있다. 이러한 선택은, 서버가 목록 서비스들을 클라이언트들에 제공하는 매우 많은 수의 웹페이지들 사이에서 이루어질 수 있다. 예를 들면, 서버는 웹페이지들의 인기에 기초하여 상위 1000 개의 웹페이지들에 대한 목록들을 생성하고, 블록(552)에서 프로세싱을 위해 그 리스트로부터 개별적인 웹페이지들을 선택하도록 구성될 수 있다. 대안적으로 또는 부가하여, 서버는 이전에 프로세싱되지 않은 특정 웹페이지에 대한 요청들을 주기적으로 수신할 수 있고, 이러한 경우에, 서버는 클라이언트 요청에 응답하여 블록(552)의 부분으로서 프로세싱을 위해 그 웹페이지를 선택할 수 있다. 이러한 방식으로, 서버는 필요할 때 또는 원할 때 온 디맨드로 목록들을 생성할 수 있다.
상술된 바와 같이, 각각의 타입의 사용자 에이전트에 대해 상이한 목록들이 생성될 수 있는데, 왜냐하면 사용자 에이전트들은 상이한 방식으로 웹페이지들을 프로세싱하고 따라서 상이한 우선 순위화 또는 메타 정보를 요구할 수 있기 때문이다. 그래서, 블록(554)에서, 서버는 액세싱된 웹페이지를 프로세싱하는데 사용하기 위한 제 1 프록시 사용자 에이전트를 선택할 수 있다. 블록(556)에서, 서버는 선택된 웹페이지를 로딩 또는 그렇지 않다면 프로세싱하기 위해 선택된 프록시 사용자 에이전트를 사용하고, 블록(558)에서 선택된 웹페이지를 렌더링하는 선택된 사용자 에이전트에 대한 메타 정보를 결정할 수 있다. 블록(560)에서, 서버는 블록(558)에서 생성된 메타 정보에 기초하여 목록을 생성하고, 목록을 목록들의 데이터베이스에 저장할 수 있다.
결정 블록(562)에서, 서버는 목록이 생성되어야 하는 또 다른 사용자 에이전트가 존재하는지를 결정할 수 있다. 프로세싱될 또 다른 사용자 에이전트가 존재할 때(즉, 결정 블록(562) = "예"), 서버는 프로세싱을 위한 다음 프록시 사용자 에이전트들을 선택하기 위해 블록(554)으로 복귀할 수 있다. 일단 선택된 웹페이지가 서버에 의해 사용되는 프록시 사용자 에이전트들 모두를 통해 프로세싱되면(즉, 결정 블록(562) = "아니오"), 서버는 결정 블록(564)에서 프로세싱될 또 다른 웹페이지가 존재하는지를 결정할 수 있다. 프로세싱될 또 다른 웹페이지가 존재하면(즉, 결정 블록(564) = "예"), 서버는 상술된 바와 같이 진행될 수 있는 프로세싱을 위한 다음 웹페이지를 선택하기 위해 블록(552)으로 복귀할 수 있다. 일단 웹페이지들 모두가 모든 프록시 사용자 에이전트들을 사용하여 프로세싱되면(즉, 결정 블록(564) = "아니오"), 서버는 도 4b를 참조하여 상술된 바와 같이 웹페이지 목록들에 대한 클라이언트 요청들을 프로세싱하고, 블록(566)에서 예견할 수 있다.
콘텐츠가 부가, 삭제 및 업데이트될 때, 웹페이지들이 자주 변하기 때문에, 서버는 웹페이지 목록들을 주기적으로 리프레싱거나 재생성하도록 구성될 수 있다. 웹페이지 목록 업데이트들에 대한 스케줄링은 각각의 웹페이지의 타입 또는 콘텐츠에 의존할 수 있다. 예를 들면, 뉴스 웹페이지들에 대한 목록들은 5 분 내지 10 분마다와 같이 매우 자주 업데이트될 수 있는데, 왜냐하면 그들의 콘텐츠는 빠르게 변하기 때문이며, 반면에 기업 웹페이지들에 대한 목록들은 그들의 콘텐츠의 변화 레이트와 일치하여 매주 또는 매달 업데이트될 수 있다. 웹페이지 목록 업데이트들의 그러한 스케줄링은 목록들을 업데이트하는 것으로부터 시간에 걸쳐 서버에 의해 학습되는 정보에 기초하는 것과 같이 웹페이지마다 결정될 수 있다. 예를 들면, 서버는 업데이트들 사이의 시간 동안에 목록이 변하는 정도를 결정하기 위해 새롭게 생성된 목록과 그의 이전 버전을 비교할 수 있다. 목록들이 업데이트되거나 재생성되는 것과 같이 목록들이 자주 변하지 않는다고 서버가 결정하면, 서버는 그 웹페이지들의 목록을 이에 따라 업데이트하기 위해 자신의 스케줄을 조절할 수 있다. 마찬가지로, 목록-대-목록 변화들이 상당하다고 서버가 결정하면, 서버는 그 특정 웹페이지에 대한 목록 업데이트들의 주기를 증가시킬 수 있다. 다른 실시예들에서, 서버는 매시간마다, 밤마다 또는 매주마다와 같이 간단한 업데이트 스케줄을 따를 수 있다.
그러한 업데이트 스케줄을 사용하여, 결정 블록(568)에서, 서버는 각각의 웹페이지에 대해 자신의 목록을 업데이트할 시간을 결정할 수 있다. 웹페이지가 업데이팅을 요구하지 않는 한(즉, 결정 블록 = "아니오"인 동안에), 서버는 블록(566)에서 웹페이지에 대한 목록들에 대한 클라이언트 요청들을 계속해서 지원할 수 있다. 특정 웹페이지 또는 웹페이지들의 그룹에 대한 목록을 업데이트할 시간이라고 서버가 결정할 때(즉, 결정 블록(568) = "예"), 서버는 업데이팅을 위한 웹페이지를 선택하기 위해 블록(522)으로 복귀할 수 있다. 상술된 방식으로 동작들을 반복함으로써, 서버는, 웹페이지들 또는 웹페이지 목록들에 대한 클라이언트들로부터의 요청들을 프로세싱하면서, 매우 많은 수의 웹페이지들에 대한 최신의 목록들을 유지할 수 있다.
도 6은, 서버(208)가 클라이언트(110A)로 전달될 콘텐츠를 식별 및 선택하고 선택된 콘텐츠가 전달되는 시퀀스를 결정하는 서버 중심 구현에서 페이지 로드들을 가속하기 위한 일 양상의 방법(600)에서 정보 흐름들을 예시한다. 도 6의 예시된 에에서, 클라이언트(110A)는 콜드 캐시(cold cache)로 시작되고, 네트워크 조건은 양호하다. 동작 1에서, 클라이언트(110A)는 로컬 메타 정보(예를 들면, 어떠한 자원들/오브젝트들이 캐시인지, 의존성들, 레이아웃 정보 등) 및 네트워크 조건(예를 들면, 업링크 및 다운링크, 대역폭, RTT 지연 추정 등)에 대해 자신의 로컬 캐시 상태를 검사할 수 있다. 동작 2에서, 클라이언트(110A)는 자신의 로컬 캐시 상태 및 네트워크 조건과 함께, 웹페이지에 대한 요청을 프록시 서버(208)로 전송할 수 있다. 동작 3에서, 요청된 웹페이지에 관련된 최근의 이용 가능한 목록에 기초하여, 프록시 서버(208)는, 어떠한 자원들이 클라이언트 측 상에서 분실되었는지를 결정하는 것, 의존성/레이아웃 정보에 기초하여 최적의 요청 시퀀스 또는 우선 순위를 결정하는 것, 다른 자원들을 차단하거나 및/또는 더 높은 우선 순위를 갖는 자원들이 존재하는지를 결정하는 것, 다른 이미지들/오브젝트들보다 더 높은 우선 순위를 가져야 하는 이미지들 또는 오브젝트들이 페이지의 상부 상에/뷰포트에 존재하는지를 결정하는 것, 및 다른 유사한 동작들을 포함할 수 있는 동작들을 수행함으로써 어떠한 자원들이 클라이언트(110A)에 의해 수신되어야 하는지를 결정할 수 있다. 동작 4a에서, 네트워크 조건 및 분실된 요청들의 캐시-능력에 기초하여, 서버(208)는 다음의 동작들, 즉, 모든 분실된 캐싱 가능한 자원들을 동작 3에서 정의된 순서로 클라이언트(110A)로 푸싱하는 것, 클라이언트(110A)가 프리로딩(힌팅을 프리로딩)하기 위해 분실된 오브젝트들의 리스트를 (예를 들면, 동작 3에 정의된 순서로) 다시 클라이언트(110A)로 전송(즉, 푸싱)하는 것, 자원 프로세싱 동작들을 수행하는 것(예를 들면, 클라이언트(110A)는 작은 스크린을 갖고, 더 낮은 품질 이미지들을 수신해야 함), 필요하면, 자원들을 상이한 포맷들(예를 들면, 더 낮은 품질 또는 클라이언트(110A)의 원하는 오브젝트 포맷 등)으로 트랜스코딩하는 것, 자원들을 압축하는 것, 클라이언트(110A)에 대한 URL 재지향 동작들을 수행하는 것, 클라이언트(110A)에 대한 필요한 자원들을 페칭하는 것, 및 다른 유사한 동작들 중 하나 이상을 수행하도록 결정할 수 있다. 동작 4b에서, 서버(208)는 모든 캐싱 불가한 오브젝트들의 리스트를 클라이언트(110A)로 전송할 수 있다. 동작 5에서, 클라이언트(110A)는 수신된 리스트에 따라 서버(208)에 의해 푸싱된 오브젝트들을 수신하거나 자원들을 요청할 수 있다. 동작 6에서, 클라이언트(110A)는 페이지를 로딩하는 것을 종료하고, 로컬 메타 정보를 업데이트할 수 있다. 선택적인 동작 7에서, 클라이언트(110A)는 웹페이지에 관련된 목록을 수정하는데 사용하기 위해 업데이트된 메타 정보를 서버(208)로 업로딩할 수 있다.
도 7은 서버 중심 구성에서 페이지 로드들을 가속하기 위한 또 다른 양상의 방법(700)에서 정보 흐름들을 예시한다. 도 7에 예시된 예에서, 클라이언트 캐시는 부분적으로 무효화되고(예를 들면, 만료되고, 축출됨 등), 어떠한 캐싱 불가한 자원들도 존재하지 않고, 네트워크 조건은 양호하다. 동작 1에서, 클라이언트(110A)는 로컬 메타 정보 및 네트워크 조건에 대해 로컬 캐시 상태를 검사할 수 있다. 동작 2에서, 클라이언트(110A)는 무효화된 및 유효한 캐시 및 네트워크 상태와 함께, 웹페이지에 대한 요청을 프록시 서버(208)로 전송할 수 있다. 동작 3에서, 가까이에 있는 최근의 목록 정보에 기초하여, 프록시 서버(208)는 어떠한 자원들이 클라이언트 측에서 분실되는지를 결정하고, (예를 들면, 의존성/레이아웃 정보에 기초하여) 최적의 요청 시퀀스/우선 순위 순서를 결정하고, 더 높은 우선 순위를 갖는 다른 자원들을 차단하는 자원들을 식별하고, 페이지의 상부 상에/뷰포트에 이미지들/오브젝트들에 더 높은 우선 순이가 제공되어야 하는지를 결정할 수 있고, 다른 유사한 동작들을 수행한다. 동작 4에서, 네트워크 조건에 기초하여, 서버(208)는 (필요하다면) 클라이언트(110A)에 대한 자원들을 페칭하고, 모든 분실된 캐싱 가능한 자원들을 동작 3에 정의된 순서로 클라이언트(110A)에 푸싱할 수 있다. 동작 5에서, 클라이언트(110A)는 페이지를 로딩하는 것을 종료하고, 로컬 메타 정보를 업데이트할 수 있다. 선택적인 동작 6에서, 클라이언트(110A)는 웹페이지에 관련된 목록을 수정하는데 사용하기 위해 업데이트된 메타 정보를 서버(208)로 업로딩할 수 있다.
도 8은 서버 중심 구성에서 페이지 로드들을 가속하기 위한 또 다른 양상의 방법(800)에서 정보 흐름들을 예시한다. 도 8에 예시된 예에서, 클라이언트 캐시는 부분적으로 무효화되고(예를 들면, 만료되고, 축출됨 등), 어떠한 캐싱 불가한 자원들도 존재하지 않고, 네트워크 조건은 양호하다. 동작 1에서, 클라이언트(110A)는 로컬 메타 정보 및 네트워크 조건들에 대해 로컬 캐시 상태를 검사할 수 있다. 동작 2에서, 클라이언트(110A)는 무효화된 및 유효한 캐시 및 네트워크 상태와 함께, 웹페이지에 대한 요청을 프록시 서버(208)로 전송할 수 있다. 동작 3a에서, 가까이에 있는 최근의 목록 정보에 기초하여, 프록시 서버(208)는 어떠한 자원들이 클라이언트 측에서 분실되는지를 결정하고, (예를 들면, 의존성/레이아웃 정보에 기초하여) 최적의 요청 시퀀스/우선 순위 순서를 결정하고, 더 높은 우선 순위를 갖는 다른 자원들을 차단하는 자원들을 식별하고, 페이지의 상부 상에/뷰포트에 이미지들/오브젝트들에 더 높은 우선 순이가 제공되어야 하는지를 결정할 수 있다. 동작 3b에서, 서버(208)는, 예를 들면, (예를 들면, 네트워크 조건이 불량하다는 것을 나타내는 메타 정보에 기초하여) 자원들을 더 낮은 품질(또는 상이한 오브젝트 포맷)으로 트랜스코딩하거나 자바스크립트, CSS 및 HTML 오브젝트들을 압축함으로써 전송할 페이로드의 크기를 감소시킬 수 있다. 동작 4에서, 서버(208)는 트랜스코딩된 분실된 오브젝트들을 동작 3에서 정의된 순서로 클라이언트(110A)로 푸싱할 수 있다. 동작 5에서, 클라이언트(110A)는 페이지를 로딩하는 것을 종료하고, 로컬 메타 정보를 업데이트할 수 있다. 선택적인 동작 6에서, 클라이언트(110A)는 웹페이지에 관련된 목록을 수정하는데 사용하기 위해 업데이트된 메타 정보를 서버(208)로 업로딩할 수 있다.
도 9는 어떠한 콘텐츠가 다운로딩되는지 및 오브젝트들이 다운로딩되는 시퀀스에 대한 결정이 클라이언트(110A)에 의해 이루어지는 클라이언트 중심 구성에서 페이지 로드들을 가속하기 위한 일 양상의 방법(900)에서 정보 흐름들을 예시한다. 도 9에 예시된 예에서, 클라이언트(110A)는 부분적으로 무효화된 캐시를 포함하고, 네트워크 조건들은 양호하고, 서버(208)는 그러한 동작들을 지원한다. 동작 1에서, 클라이언트(110A)는 프록시 서버(208)로부터 원하는 웹페이지에 관련된 목록을 페칭할 수 있다. 동작 2에서, 클라이언트(110A)는 로컬 캐시 상태(어떠한 오브젝트들이 캐시 내에 있는지의 결정, 오브젝트 의존성들, 등) 및 네트워크 조건(예를 들면, 대역폭, 지연 추정 등)을 검사할 수 있다. 동작 3에서, 목록에 기초하여, 클라이언트(110A)는 어떠한 자원들이 분실되었고 페칭되어야 하는지를 결정하고, (예를 들면, 의존성/레이아웃/네트워크 조건 정보에 기초하여) 최적의 요청 시퀀스/우선 순위 순서를 결정하고, 더 높은 우선 순위들을 갖는 다른 자원들을 차단하는 자원들을 식별하고, 더 높은 우선 순위가 제공되어야 하는 이미지들/오브젝트들이 페이지의 상부 상에/뷰포트에 존재하는지를 결정하고, 다른 유사한 동작들을 수행할 수 있다. 동작 4에서, 서버의 능력들(서버(208)로부터 수신된 메타 정보에 표시될 수 있음)에 따라, 클라이언트(110A)는 오브젝트들 및 그들의 우선 순위들의 리스트를 서버(208)로 전송할 수 있고, 서버(208)는 리스트를 수신하고, 요청된 오브젝트들을 요청된 순서로/그들의 우선 순위들에 따라 클라이언트(110A)로 푸싱할 수 있다. 동작 5에서, 클라이언트(110A)는 페이지를 로딩하는 것을 종료하고, 로컬 메타 정보를 업데이트할 수 있다. 선택적인 동작 6에서, 클라이언트(110A)는 웹페이지에 관련된 목록을 수정하는데 사용하기 위해 업데이트된 메타 정보를 서버(208)로 업로딩할 수 있다.
도 10은 클라이언트 중심 구성에서 페이지 로드들을 가속하기 위한 또 다른 양상의 방법(1000)에서 정보 흐름들을 예시한다. 도 10의 예시된 예에서, 클라이언트(110A)는 부분적으로 무효화된 캐시를 포함하고, 네트워크 조건들은 양호하지만, 도 9에 예시된 예와 달리, 서버(208)는 그러한 동작들을 지원하지 않는다. 이러한 구성에서, 모든 클라이언트 중심 구성들과 마찬가지로, 어떠한 콘텐츠가 다운로딩되는지, 및 오브젝트들이 다운로딩되는 시퀀스에 대한 결정이 클라이언트(110A)에 의해 결정될 수 있다.
동작 1에서, 클라이언트(110A)는 자신이 다운로딩하도록 지시받은 웹페이지에 관한 목록을 프록시 서버(208)로부터 페칭할 수 있다. 동작 2에서, 클라이언트(110A)는 로컬 캐시 상태(어떠한 것이 캐시 내에 있는지의 결정) 및 네트워크 조건(예를 들면, 대역폭, 지연 추정 등)을 검사할 수 있다. 동작 3에서, 이용 가능한 최근의 메타 정보에 기초하여, 클라이언트(110A)는 어떠한 자원들이 분실되었고 페칭되어야 하는지를 결정하고, (예를 들면, 의존성/레이아웃/네트워크 조건 정보에 기초하여) 최적의 요청 시퀀스/우선 순위 순서를 결정하고, 더 높은 우선 순위들을 갖는 다른 자원들을 차단하는 자원들을 식별하고, 더 높은 우선 순위가 제공되어야 하는 이미지들/오브젝트들이 페이지의 상부 상에/뷰포트에 존재하는지를 결정하고, 다른 유사한 동작들을 수행할 수 있다. 동작 4에서, 서버의 능력들(서버(208)로부터 수신된 메타 정보에 표시된 바와 같음)에 따라, 클라이언트(110A)는 분실된 오브젝트들을 동작 3에서 도출된 최적의 시퀀스로 수신하기 위해 일련의 요청들을 프록시/웹 서버로 전송할 수 있다. 서버(208)는 클라이언트(110A)로부터 오브젝트들에 대한 요청들을 수신하고, 요청된 오브젝트들을 최적의 순서로 클라이언트(110A)로 전송할 수 있고, 최적의 순서는 메타 정보를 사용하여 컴퓨팅될 수 있다. 동작 5에서, 클라이언트(110A)는 페이지를 로딩하는 것을 종료하고, 로컬 메타 정보를 업데이트할 수 있다. 선택적인 동작 6에서, 클라이언트(110A)는 웹페이지에 관련된 목록을 수정하는데 사용하기 위해 업데이트된 메타 정보를 서버(208)로 업로딩할 수 있다.
로컬 클라이언트 정보와 원하는 웹페이지에 관련된 목록을 비교함으로써, 다양한 양상들을 구현하는 클라이언트(110A) 또는 서버(208)는 시나리오(예를 들면, 네트워크 조건들), 구성(예를 들면, 클라이언트 주심, 서버 중심 등) 또는 이들의 임의의 조합에 기초하여 오브젝트 전달 순서(예를 들면, 우선 순위들)를 결정할 수 있다. 다양한 양상들은 클라이언트(110A)가 오브젝트 의존성들, 오브젝트 크기, 현재 네트워크 조건, 콜드 캐시, 디바이스 타입들 등과 같은 요인들을 고려함으로써 오브젝트 전달 순서를 개선하는 것을 가능하게 할 수 있다. 예를 들면, 디폴트 오브젝트 전달 순서(예를 들면, 브라우저에 의해 설정된 디폴트 순서 세트)가 CSS1, IMG1, JS1, IMG2, IMG3, JS3, IMG4이면, 다양한 양상들을 구현하는 클라이언트(110A)는 순서(CSS1, JS1, JS3, IMG2, IMG1, IMG3, IMG4)가 더 효율적이라고 결정하고, 이에 따라 전달 시퀀스를 변경할 수 있다. 부가적으로, 요청 순서 및 수신 순서는 요청 ID들을 통한 HTTP 파이프라이닝과 같은 네트워킹 능력들의 이용 가능성에 기초하여 상이할 수 있다.
일 양상에서, 서버(208)는 오브젝트들이 클라이언트 캐시에 상주하는지를 결정하고, 클라이언트(110A) 상에서 현재 캐싱되지 않은 오브젝트들만을 전달할 수 있다. 마찬가지로, 클라이언트(110A)는 서버(208)에 의해 전송될 비-캐싱된 아이템들만을 요청할 수 있다. 대안적으로, 클라이언트(110A) 디바이스가 3G로부터 WiFi로 가거나 도킹 스테이션을 통해 더 큰 디스플레이에 접속하는 것과 같이 자신의 자원 프로파일을 변경하면, 클라이언트(110A)는 이전 캐시 콘텐츠를 무시하고, 모든 새로운 웹 자원들을 다운로딩할 수 있다. 어느 경우에도, 자원들은 적절한 웹페이지 목록으로부터 결정된 자원들의 할당된 우선 순위들에 따른 시퀀스로 클라이언트(110A)로 전달될 수 있다.
도 11a는 서버가 클라이언트로 전달될 콘텐츠를 식별 및 선택하는 서버 중심 구현에서 페이지 로드들을 가속하기 위한 클라이언트 구현 방법(1100)을 예시한다. 도 11a에 예시된 예에서, 클라이언트는 콜드 캐시로 시작하고, 네트워크 조건은 양호하다. 블록(1102)에서, 클라이언트는 (예를 들면, 캐시 내에 있는 자원들/오브젝트들, 의존성들, 레이아웃 정보 등을 식별하기 위해) 로컬 메타 정보 및 네트워크 조건들(예를 들면, 대역폭, 지연 추정 등)에 대해 자신의 로컬 캐시 상태를 검사할 수 있다. 블록(1104)에서, 클라이언트는 자신의 로컬 캐시 상태 및 네트워크 조건과 함께, 웹페이지에 대한 요청을 프록시 서버로 전송할 수 있다. 블록(1106)에서, 클라이언트는 웹페이지에 대한 적절한 목록과 로컬 메타 정보의 비교들에 기초하여 정의된 순서/시퀀스로 모든 분실된 캐싱 가능 자원들을 수신할 수 있다. 블록(1108)에서, 클라이언트는 분실된 캐싱 가능 오브젝트들 및 우선 순위들의 리스트를 수신 또는 생성할 수 있다. 블록(1110)에서, 클라이언트는 모든 캐싱 불가 오브젝트들의 리스트를 수신할 수 있다. 블록(1112)에서, 클라이언트는 분실된 오브젝트들의 수신된 리스트에 기초하여 자원들을 요청하거나 및/또는 캐싱 불가 오브젝트들을 페칭할 수 있다. 블록(1114)에서, 클라이언트는 오브젝트들 각각의 우선 순위들에 따라 수신된 오브젝트들을 사용하여 페이지를 로딩하고, 자신의 로컬 메타 정보를 업데이트할 수 있다. 선택적인 블록(1116)에서, 클라이언트는 웹페이지에 관련된 목록을 수정하는데 사용하기 위해 메타 정보를 서버로 업로딩할 수 있다.
도 11b는 서버가 클라이언트로 전달될 콘텐츠를 식별 및 선택하는 서버 중심 구현에서 페이지 로드들을 가속하기 위한 서버 구현 방법(1150)을 예시한다. 도 11b의 예시된 예에서, 클라이언트는 콜드 캐시로 시작되고, 네트워크 조건은 양호하다. 블록(1152)에서, 서버는 메타 정보 및 네트워크 조건 정보와 함께 웹페이지 정보를 클라이언트로부터 수신할 수 있다. 블록(1154)에서, 서버는 웹페이지에 관련된 목록을 생성하기 위해 수신된 정보와 (이전의 방문들, 다른 클라이언트들, 다수의 웹사이트들 등으로부터) 이전에 수신된 정보를 결합(예를 들면, 크라우드 소싱)할 수 있다. 블록(1156)에서, 이용 가능한 최근의 목록에 기초하여 클라이언트로 전송되어야 하는 자원들을 결정할 수 있다. 블록(1156)의 부분으로서, 서버는 클라이언트 측 상에서 분실된 자원들을 결정하고, 그러한 오브젝트들을 클라이언트로 전달하기 위한 최적의 시퀀스를 결정하고, 더 높은 우선 순위를 갖는 다른 자원들을 차단하는 자원들이 존재하는지를 결정하고, 다른 유사한 동작들을 수행할 수 있다. 블록(1158)에서, 네트워크 조건들 및 분실된 요청들의 캐시-능력에 기초하여, 서버는 분실된 캐싱 가능 자원들을 페칭하고, 이들을 결정된 시퀀스로 클라이언트로 푸싱할 수 있다. 블록(1160)에서, 서버는 분실된 오브젝트들의 리스트를 클라이언트로 전송할 수 있다. 블록(1162)에서, 서버는 모든 캐싱 불가 오브젝트들의 리스트를 클라이언트로 전송할 수 있다. 블록(1164)에서, 서버는 캐싱 불가 오브젝트들을 페칭하고, 이들을 자신들의 결정된 우선 순위들에 따른 시퀀스로 클라이언트로 푸싱할 수 있다. 선택적인 블록(1166)에서, 서버는 클라이언트로부터 업데이트된 메타 정보를 수신하고, 웹페이지에 관련된 목록을 업데이트할 수 있다.
도 12a는 다운로딩될 콘텐츠 및 오브젝트들이 다운로딩되는 시퀀스에 대한 결정들이 클라이언트에 의해 이루어지는 클라이언트 중심 구현에서 페이지 로드들을 가속하기 위한 클라이언트 구현 방법(1200)을 예시한다. 도 12a에 예시된 예에서, 클라이언트는 부분적으로 무효화된 캐시를 포함하고, 네트워크 조건들은 양호하다. 블록(1202)에서, 클라이언트는 자신이 다운로딩하기 위해 요청한 웹페이지에 관한 메타 정보를 프록시 서버로부터 페칭할 수 있다. 블록(1204)에서, 클라이언트는 로컬 캐시 상태(예를 들면, 캐시에 존재하는 오브젝트들, 오브젝트 의존성들 등을 결정) 및 네트워크 조건들(예를 들면, 대역폭, 지연 추정 등)을 검사할 수 있다. 블록(1206)에서, 서버에 의해 유지되는 바와 같은 이용 가능한 최근의 목록에 기초하여, 클라이언트는 분실되어 페칭되어야 하는 자원들을 결정할 수 있다. 블록(1208)에서, 클라이언트는 오브젝트들을 수신하기 위한 최적의 시퀀스/우선 순위를 결정하고, 최적의 시퀀스/우선 순위는 메타 정보에 의해 식별된 서버의 능력들에 기초하여 결정될 수 있다. 블록(1210)에서, 요구된 오브젝트들 및 그들의 우선순위들의 리스트를 서버로 전송할 수 있다. 블록(1212)에서, 클라이언트는 요청된 오브젝트들을 그들의 결정된 우선 순위들에 따라, 요청된 시퀀스로 수신할 수 있다. 블록(1214)에서, 클라이언트는 페이지를 로딩하고, 자신의 로컬 메타 정보를 업데이트할 수 있다. 선택적인 블록(1216)에서, 클라이언트는 웹페이지에 관련된 목록을 수정하는데 사용하기 위해 업데이트된 메타 정보를 서버로 업로딩할 수 있다.
도 12b는 다운로딩될 콘텐츠 및 오브젝트들이 다운로딩되는 시퀀스에 대한 결정들이 클라이언트에 의해 이루어지는 클라이언트 중심 구현에서 페이지 로드들을 가속하기 위한 서버 구현 방법(1250)을 예시한다. 도 12b에 예시된 예에서, 클라이언트는 부분적으로 무효화된 캐시를 포함하고, 네트워크 조건들은 양호하고, 서버는 푸시 동작들을 지원한다. 블록(1252)에서, 서버는 클라이언트가 다운로딩하기 위해 요청한 웹페이지에 관련된 목록을 클라이언트로 전송할 수 있다. 클라이언트는 오브젝트들을 수신하기 위한 최적의 시퀀스/우선 순위를 결정하고, 일련의 우선 순위화된 오브젝트 요청들을 다시 서버로 전송할 수 있다. 블록(1254)에서, 서버는 오브젝트들 및 그들 각각의 우선 순위들의 리스트를 수신할 수 있다. 블록(1256)에서, 서버는 그들의 우선 순위들에 따른 시퀀스로 요청된 오브젝트들을 클라이언트로 푸싱할 수 있다. 선택적인 블록(1258)에서, 서버는 업데이트된 메타 정보를 클라이언트로부터 수신하고, 웹페이지에 관련된 목록을 업데이트할 수 있다.
도 13은 양사들 중 임의의 양상과 함께 사용하기에 적합한 모바일 컴퓨팅 디바이스의 시스템 블록도이다. 통상적인 모바일 컴퓨팅 디바이스(110A)는 내부 메모리(1332), 디스플레이(1333), 및 스피커(1354)에 연결된 프로세서(1331)를 포함할 수도 있다. 부가적으로, 모바일 컴퓨팅 디바이스는 무선 데이터 링크에 접속될 수도 있는 전자기 방사선을 전송 및 수신하기 위한 안테나(1334) 및/또는 프로세서(1331)에 연결된 셀룰러 텔레폰 트랜시버(1335) 및 프로세서에 연결된 모바일 멀티미디어 브로드캐스트 수신기(1336)를 포함할 수 있다. 모바일 컴퓨팅 디바이스들(110A)은 통상적으로 또한 사용자 입력들을 수신하기 위한 메뉴 선택 버튼들 또는 로커 스위치들을 포함한다.
여러 양상들이 도 14에 예시된 서버(208)와 같은, 상업적으로 입수 가능한 다양한 서버 디바이스들 중 임의의 서버 디바이스 상에서 구현될 수 있다. 이런 서버(208)는 프로세서(1401)를 포함하고, 다수의 프로세서 시스템들(1411, 1421, 1431)을 포함할 수 있고, 다수의 프로세서 시스템들 중 하나 이상은 멀티-코어 프로세서들일 수 있거나 이들을 포함할 수 있다. 프로세서(1401)는 휘발성 내부 메모리(1402) 및 대용량 비휘발성 메모리, 예컨대 디스크 드라이브(1403)에 연결될 수 있다. 서버(208)는 또한 프로세서(1401)에 연결된 플로피 디스크 드라이브, 컴팩트 디스크(CD) 또는 DVD 디스크 드라이브를 포함할 수 있다. 서버(28)는 또한 다른 브로드캐스트 시스템 컴퓨터들 및 서버들에 연결된 로컬 영역 네트워크와 같은 네트워크와 데이터 접속들을 설정하기 위해 프로세서(1401)에 연결된 네트워크 액세스 포트들(1404)을 포함할 수 있다.
상술된 양상들은 또한, 도 15에 예시된 바와 같은 랩톱 컴퓨터(110C)와 같은 다양한 개인용 컴퓨팅 디바이스들 내에서 구현될 수 있다. 많은 랩톱 컴퓨터들은 컴퓨터의 포인팅 디바이스로서 기능하는 터치 패드 터치 표면(1517)을 포함하며, 따라서, 터치 스크린 디스플레이가 장착되며 위에서 설명된 모바일 컴퓨팅 디바이스들 상에서 구현되는 것들과 유사한 드래그, 스크롤, 및 플릭 제스처들을 수신할 수 있다. 랩톱 컴퓨터(110C)는 통상적으로 휘발성 메모리(1512) 및 대용량 비휘발성 메모리, 예컨대 플래시 메모리의 디스크 드라이브(1513)에 연결된 프로세서(1511)를 포함할 것이다. 랩톱 컴퓨터(110C)는 또한 프로세서(1511)에 연결된 플로피 디스크 드라이브(1514) 및 컴팩트 디스크(CD) 드라이브(1515)를 포함할 수 있다. 랩톱 컴퓨터(110C)는 또한 데이터 접속들을 설정하거나 또는 외부 메모리 디바이스들을 수신하기 위해 프로세서(1511)에 연결된 다수의 커넥터 포트들, 예컨대 USB 또는 FireWire® 커넥터 소켓들, 또는 프로세서(1511)를 네트워크에 연결하기 위한 다른 네트워크 접속 회로들을 포함할 수 있다. 노트북 구성에서, 컴퓨터 하우징은 프로세서(1511)에 모두 연결된 터치패드(1517), 키보드(1518), 및 디스플레이(1519)를 포함한다. 컴퓨팅 디바이스의 다른 구성들은 널리 공지되어 있는 바와 같이 (예컨대, USB 입력을 통해서) 프로세서에 연결된 컴퓨터 마우스 또는 트랙볼을 포함할 수 있으며, 이들은 또한 여러 양상들과 함께 사용될 수 있다.
프로세서들(1331, 1401, 1411, 1421, 1431 및 1511)은 위에서 설명한 여러 양상들의 기능들을 포함한 다양한 기능들을 수행하도록 소프트웨어 명령들(애플리케이션들)에 의해 구성될 수 있는, 임의의 프로그래밍가능 마이크로프로세서, 마이크로컴퓨터 또는 다수의 프로세서 칩 또는 칩들일 수 있다. 일부 디바이스들에서, 다수의 프로세서들(1331, 1401, 1411, 1421, 1431 및 1511)은 하나의 프로세서가 무선 통신 기능들을 담당하고 하나의 프로세서가 다른 애플리케이션들을 실행하도록 전용화되는 것과 같이, 제공될 수 있다. 통상적으로, 소프트웨어 애플리케이션들은 프로세서(1331, 1401, 1411, 1421, 1431 및 1511)에 액세스되어 로딩되기 전에, 내부 메모리(1332, 4302, 및 1403)에 저장될 수 있다. 프로세서(1331, 1401, 1411, 1421, 1431 및 1511)는 애플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 포함할 수 있다. 많은 디바이스들에서, 내부 메모리는 휘발성 또는 비휘발성 메모리, 예컨대, 플래시 메모리, 또는 양자의 혼합물일 수도 있다. 이러한 설명의 목적으로, 메모리에 대한 일반적인 참조는 디바이스에 플러깅된 내부 메모리 또는 제거 가능 메모리 및 프로세서(1331, 1401, 1411, 1421, 1431 및 1511) 자체 내 메모리를 포함한, 프로세서(1331, 1401, 1411, 1421, 1431 및 1511)에 의해 액세스 가능한 메모리를 지칭한다.
전술한 방법 설명들 및 프로세스 흐름도들은 예시적인 예들로서만 제공되고, 다양한 양상들의 동작들이 제공된 순서로 수행되어야만 하는 것을 요구하거나 또는 암시하도록 의도되지 않는다. 당업자에 의해 인지될 바와 같이, 전술한 양상들의 동작들의 순서가 임의의 순서로 수행될 수 있다. "이후", "이어서", "다음" 등과 같은 단어들은 그 동작들의 순서를 한정하도록 의도되지 않고, 이들 단어들은 방법들의 설명을 통해서 독자를 안내하는데 간단하게 이용된다. 또한, 예를 들어, 단수 표현들을 이용하는 단수의 청구항 엘리먼트에 대한 임의의 참조가 엘리먼트를 단수로 한정하는 것으로서 해석되지 않는다.
본원에 개시된 양상들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합들로 구현할 수 있다. 하드웨어와 소프트웨어의 이러한 상호 교환 가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들은 일반적으로 그들의 기능의 관점에서 상술되었다. 그러한 기능이 하드웨어로 구현되는지 또는 소프트웨어로 구현될지는 전체 시스템에 부과된 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션에 대하여 다양한 방식으로 구현할 수 있지만, 그러한 구현의 결정들이 본 발명의 범위를 벗어나게 하는 것으로 해석하지는 않아야 한다.
본원에 개시된 양상들과 관련하여 설명된 다양한 예시적인 논리들, 논리 블록들, 모듈들 및 회로들을 구현하는데 사용되는 하드웨어는 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합으로 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 또한, 프로세서는 또한 컴퓨팅 디바이스들의 결합, 예를 들어, DSP 와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들 또는 임의의 다른 그러한 구성으로 구현될 수 있다. 대안적으로, 몇몇 단계들 또는 방법들이 주어진 기능에 대해 특정한 회로에 의해 수행될 수 있다.
하나 이상의 예시적인 양상들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어에서 구현되는 경우, 그 기능들은 비일시적인 컴퓨터-판독 가능 또는 프로세서-판독 가능 저장 매체 상에 하나 이상의 명령들 또는 코드로서 저장될 수 있다. 본원에 개시된 방법 또는 알고리즘의 단계들은, 비일시적인 컴퓨터-판독 가능 매체 상에 상주할 수 있는 실행된 프로세서-실행 가능 소프트웨어 모듈에서 구현될 수 있다. 비일시적인 컴퓨터-판독 가능 및 프로세서 매체들은 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체들을 포함한다. 한정이 아닌 예로서, 이러한 비일시적인 컴퓨터-판독 가능 및 프로세서 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 운반 또는 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 본 발명에 사용되는 것과 같은 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(CD; compact disc), 레이저 디스크(laser disc), 광학 디스크(optical disc), 디지털 다기능 디스크(DVD; digital versatile disc), 플로피 디스크(floppy disk) 및 블루레이 디스크(blue-lay disc)를 포함하고, 여기서 디스크(disk)들은 일반적으로 데이터를 자기적으로 재생하고, 반면에 디스크(disc)는 레이저들을 통해서 광학적으로 데이터를 재생한다. 전술한 것들의 조합들이 또한 비일시적인 컴퓨터-판독 가능 매체들의 범위 내에 포함되어야만 한다. 부가적으로, 방법 또는 알고리즘의 동작들은, 컴퓨터 프로그램 제품으로 통합될 수 있는 비일시적인 머신 판독 가능 매체 및/또는 비일시적인 컴퓨터-판독 가능 매체 상에 코드들 및/또는 명령들의 세트 또는 하나 또는 임의의 조합으로서 상주할 수 있다.
개시된 양상들의 이전의 설명은 임의의 당업자가 본 발명을 실시 또는 사용할 수 있도록 제공된다. 이들 양상들에 대한 다양한 변형들은 당업자들에게 용이하게 명백할 것이며, 여기에 정의된 일반적인 원리는 본 발명의 범위 또는 사상을 벗어나지 않고 다른 양상들에 적용될 수 있다. 따라서, 본 발명은 본원에 도시된 양상들로 제한하도록 의도되지 않고, 본원에 개시된 원리들 및 신규한 특성들 및 이하의 청구항에 부합되는 최광의 범위에 따른다.

Claims (61)

  1. 모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법으로서,
    상기 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 다수의 모바일 컴퓨팅 디바이스들 상에서 생성하는 단계,
    생성된 메타 정보를 상기 다수의 모바일 컴퓨팅 디바이스들 각각으로부터 서버로 전송하는 단계 및 상기 웹페이지를 프로세싱하는데 사용되는 사용자 에이전트를 식별하는 단계,
    생성된 메타 정보를 상기 서버에서 수신하는 단계,
    상기 다수의 모바일 컴퓨팅 디바이스들로부터 수신된 상기 메타 정보에 기초하여 각각의 사용자 에이전트에 대해 상기 웹페이지에 대한 목록(manifest)을 생성하는 단계,
    모바일 컴퓨팅 디바이스 상에 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구되는 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 단계,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 모바일 컴퓨팅 디바이스 상에서 상기 자원들을 수신하는 단계, 및
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 렌더링하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 모바일 컴퓨팅 디바이스가 상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 서버로 전송하는 단계를 더 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구되는 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 단계는,
    상기 모바일 컴퓨팅 디바이스 상에서 구현된 사용자 에이전트 및 상기 웹페이지를 식별하는 정보를 상기 서버로 전송하는 단계,
    상기 모바일 컴퓨팅 디바이스 상에서 구현되는 상기 사용자 에이전트 및 상기 웹페이지에 대한 목록을 획득하는 단계,
    획득된 목록을 상기 모바일 컴퓨팅 디바이스로 전송하는 단계,
    상기 모바일 컴퓨팅 디바이스 상에 저장된 정보와 상기 목록을 비교함으로써, 상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하기 위해 요구된 자원들을 상기 모바일 컴퓨팅 디바이스에서 식별하는 단계, 및
    상기 목록에 기초하여 상기 모바일 컴퓨팅 디바이스에서 우선 순위들을 식별된 자원들에 할당하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  4. 제 3 항에 있어서,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 모바일 컴퓨팅 디바이스 상에서 상기 자원들을 수신하는 단계는, 상기 모바일 컴퓨팅 디바이스가 상기 목록에 기초하여 상기 모바일 컴퓨팅 디바이스에 의해 결정된 시퀀스로 제 2 서버로부터의 상기 자원들의 다운로드를 요청하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  5. 제 1 항에 있어서,
    모바일 컴퓨팅 디바이스 상에 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구되는 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 단계는,
    상기 모바일 컴퓨팅 디바이스에 관련된 정보를 상기 서버로 전송하는 단계,
    상기 모바일 컴퓨팅 디바이스 상에서 구현되는 상기 사용자 에이전트 및 상기 웹페이지에 대한 목록을 획득하는 단계,
    획득된 목록과 상기 모바일 컴퓨팅 디바이스에 관련된 정보를, 상기 서버에서, 비교하는 단계,
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을, 상기 서버에서, 식별하는 단계, 및
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 상기 모바일 컴퓨팅 디바이스로 전송하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  6. 제 5 항에 있어서,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 모바일 컴퓨팅 디바이스 상에서 상기 자원들을 수신하는 단계는, 상기 서버가 상기 목록에 기초하여 상기 서버에 의해 결정된 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 푸싱하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  7. 제 6 항에 있어서,
    상기 서버가 자원들을 상기 모바일 컴퓨팅 디바이스에 대한 원하는 포맷으로 트랜스코딩하는 단계를 더 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  8. 모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법으로서,
    다양한 타입들의 사용자 에이전트들을 사용하여 상기 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 서버 상에서 생성하는 단계,
    생성된 메타 정보에 기초하여 각각의 타입의 사용자 에이전트에 대해 상기 웹페이지에 대한 목록을 생성하는 단계,
    모바일 컴퓨팅 디바이스 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 단계,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 모바일 컴퓨팅 디바이스 상에서 상기 자원들을 수신하는 단계, 및
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 렌더링하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 모바일 컴퓨팅 디바이스가 상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 서버로 전송하는 단계를 더 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  10. 제 8 항에 있어서,
    모바일 컴퓨팅 디바이스 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 단계는,
    상기 모바일 컴퓨팅 디바이스에 관련된 정보를 통한 평가를 위해 상기 목록을 상기 모바일 컴퓨팅 디바이스로 전송하는 단계,
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구되는 자원들을 상기 모바일 컴퓨팅 디바이스에서 식별하는 단계, 및
    상기 모바일 컴퓨팅 디바이스에서 우선 순위들을 식별된 자원들에 할당하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  11. 제 10 항에 있어서,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 모바일 컴퓨팅 디바이스 상에서 상기 자원들을 수신하는 단계는, 상기 모바일 컴퓨팅 디바이스가 상기 목록에 기초하여 상기 모바일 컴퓨팅 디바이스에 의해 결정된 시퀀스로 제 2 서버로부터 자원들의 다운로드를 요청하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  12. 제 8 항에 있어서,
    모바일 컴퓨팅 디바이스 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 단계는,
    상기 모바일 컴퓨팅 디바이스에 관련된 정보를 상기 서버로 전송하는 단계,
    상기 모바일 컴퓨팅 디바이스 상에서 구현된 상기 사용자 에이전트 및 상기 웹페이지에 대한 목록을 획득하는 단계,
    획득된 목록과 상기 모바일 컴퓨팅 디바이스에 관련된 정보를, 상기 서버에서, 비교하는 단계,
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을, 상기 서버에서, 식별하는 단계, 및
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 상기 모바일 컴퓨팅 디바이스로 전송하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  13. 제 12 항에 있어서,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 모바일 컴퓨팅 디바이스 상에서 상기 자원들을 수신하는 단계는, 상기 서버가 상기 목록에 기초하여 상기 서버에 의해 결정된 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 푸싱하는 단계를 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  14. 제 13 항에 있어서,
    상기 서버가 자원들을 상기 모바일 컴퓨팅 디바이스에 대한 원하는 포맷으로 트랜스코딩하는 단계를 더 포함하는,
    모바일 컴퓨팅 디바이스들에 의한 웹페이지의 렌더링을 지원하기 위한 방법.
  15. 모바일 컴퓨팅 디바이스로서,
    메모리, 및
    상기 메모리에 연결된 프로세서로서, 상기 프로세서는,
    상기 모바일 컴퓨팅 디바이스 상에서 구현된 사용자 에이전트 및 웹페이지를 식별하는 정보를 서버로 전송하는 것,
    상기 모바일 컴퓨팅 디바이스 상에서 구현된 상기 사용자 에이전트 및 상기 웹페이지에 대한 목록을 상기 서버로부터 수신하는 것,
    상기 모바일 컴퓨팅 디바이스 상에 저장된 정보와 상기 목록을 비교함으로써 상기 웹페이지를 로딩하는데 요구된 자원들을 식별하는 것,
    상기 목록에 기초하여 우선 순위들을 식별된 자원들에 할당하는 것,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 수신하는 것, 및
    상기 웹페이지를 렌더링하는 것을 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되는,
    모바일 컴퓨팅 디바이스.
  16. 제 15 항에 있어서,
    상기 프로세서는, 자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 수신하는 것이 상기 목록에 기초한 시퀀스로 제 2 서버로부터 상기 자원들의 다운로드를 요청하는 것을 포함하도록 프로세서-실행 가능 명령들로 구성되는,
    모바일 컴퓨팅 디바이스.
  17. 제 15 항에 있어서,
    상기 프로세서는, 상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 서버로 전송하는 것을 더 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되는,
    모바일 컴퓨팅 디바이스.
  18. 서버로서,
    메모리, 및
    상기 메모리에 연결된 서버 프로세서를 포함하고, 상기 서버 프로세서는,
    다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하는 것,
    수집된 메타 정보에 기초하여 각각의 타입의 사용자 에이전트에 대해 상기 웹페이지에 대한 목록을 생성하는 것,
    모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 것, 및
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 전송하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    서버.
  19. 제 18 항에 있어서,
    상기 서버 프로세서는, 모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 것이 상기 모바일 컴퓨팅 디바이스에 관련된 정보를 통한 평가를 위해 상기 목록을 상기 모바일 컴퓨팅 디바이스로 전송하는 것을 포함하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    서버.
  20. 제 18 항에 있어서,
    상기 서버 프로세서는, 상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 모바일 컴퓨팅 디바이스로부터 수신하는 것을 더 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    서버.
  21. 제 18 항에 있어서,
    상기 서버 프로세서는, 다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하는 것이 상기 서버 상에서 다양한 타입들의 사용자 에이전트들을 사용하여 상기 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 생성하는 것을 포함하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    서버.
  22. 제 18 항에 있어서,
    상기 서버 프로세서는, 다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하는 것이 다양한 타입들의 사용자 에이전트들을 사용하여 상기 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 복수의 모바일 컴퓨팅 디바이스들로부터 수신하는 것을 포함하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    서버.
  23. 제 18 항에 있어서,
    상기 서버 프로세서는, 모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 것이,
    상기 모바일 컴퓨팅 디바이스에 관련된 정보를 수신하는 것,
    상기 목록을 사용하여 수신된 정보를 평가하는 것,
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을 식별하는 것, 및
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 상기 모바일 컴퓨팅 디바이스로 전송하는 것을 포함하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    서버.
  24. 제 23 항에 있어서,
    상기 서버 프로세서는, 자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 전송하는 것이 상기 목록에 기초한 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 푸싱하는 것을 포함하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    서버.
  25. 제 24 항에 있어서,
    상기 서버 프로세서는, 자원들을 상기 모바일 컴퓨팅 디바이스에 대한 원하는 포맷으로 트랜스코딩하는 것을 더 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    서버.
  26. 모바일 컴퓨팅 디바이스로서,
    상기 모바일 컴퓨팅 디바이스 상에서 구현된 사용자 에이전트 및 웹페이지를 식별하는 정보를 서버로 전송하기 위한 수단,
    상기 모바일 컴퓨팅 디바이스 상에서 구현된 상기 사용자 에이전트 및 상기 웹페이지에 대한 목록을 상기 서버로부터 수신하기 위한 수단,
    상기 모바일 컴퓨팅 디바이스 상에 저장된 정보와 상기 목록을 비교함으로써 상기 웹페이지를 로딩하는데 요구된 자원들을 식별하기 위한 수단,
    상기 목록에 기초하여 우선 순위들을 식별된 자원들에 할당하기 위한 수단,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 수신하기 위한 수단, 및
    상기 웹페이지를 렌더링하기 위한 수단을 포함하는,
    모바일 컴퓨팅 디바이스.
  27. 제 26 항에 있어서,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 수신하기 위한 수단은, 상기 목록에 기초한 시퀀스로 제 2 서버로부터 상기 자원들의 다운로드를 요청하기 위한 수단을 포함하는,
    모바일 컴퓨팅 디바이스.
  28. 제 26 항에 있어서,
    상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 서버로 전송하기 위한 수단을 더 포함하는,
    모바일 컴퓨팅 디바이스.
  29. 서버로서,
    다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하기 위한 수단,
    수집된 메타 정보에 기초하여 각각의 타입의 사용자 에이전트에 대해 상기 웹페이지에 대한 목록을 생성하기 위한 수단,
    모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하기 위한 수단, 및
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 전송하기 위한 수단을 포함하는,
    서버.
  30. 제 29 항에 있어서,
    모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하기 위한 수단은, 상기 모바일 컴퓨팅 디바이스에 관련된 정보를 통한 평가를 위해 상기 목록을 상기 모바일 컴퓨팅 디바이스로 전송하기 위한 수단을 포함하는,
    서버.
  31. 제 29 항에 있어서,
    상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 모바일 컴퓨팅 디바이스로부터 수신하기 위한 수단을 더 포함하는,
    서버.
  32. 제 29 항에 있어서,
    다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하기 위한 수단은, 상기 서버 상에서 다양한 타입들의 사용자 에이전트들을 사용하여 상기 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 생성하기 위한 수단을 포함하는,
    서버.
  33. 제 29 항에 있어서,
    다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하기 위한 수단은, 다양한 타입들의 사용자 에이전트들을 사용하여 상기 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 복수의 모바일 컴퓨팅 디바이스들로부터 수신하기 위한 수단을 포함하는,
    서버.
  34. 제 29 항에 있어서,
    모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하기 위한 수단은,
    상기 모바일 컴퓨팅 디바이스에 관련된 정보를 수신하기 위한 수단,
    상기 목록을 사용하여 수신된 정보를 평가하기 위한 수단,
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을 식별하기 위한 수단, 및
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 상기 모바일 컴퓨팅 디바이스로 전송하기 위한 수단을 포함하는,
    서버.
  35. 제 34 항에 있어서,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 전송하기 위한 수단은, 상기 목록에 기초한 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 푸싱하기 위한 수단을 포함하는,
    서버.
  36. 제 35 항에 있어서,
    자원들을 상기 모바일 컴퓨팅 디바이스에 대한 원하는 포맷으로 트랜스코딩하기 위한 수단을 더 포함하는,
    서버.
  37. 프로세서-실행 가능 소프트웨어 명령들이 저장된 비일시적인 프로세서-판독 가능 저장 매체로서, 상기 프로세서-실행 가능 소프트웨어 명령들은 프로세서로 하여금,
    모바일 컴퓨팅 디바이스 상에서 구현된 사용자 에이전트 및 웹페이지를 식별하는 정보를 서버로 전송하는 것,
    상기 모바일 컴퓨팅 디바이스 상에서 구현된 상기 사용자 에이전트 및 상기 웹페이지에 대한 목록을 상기 서버로부터 수신하는 것,
    상기 모바일 컴퓨팅 디바이스 상에 저장된 정보와 상기 목록을 비교함으로써 상기 웹페이지를 로딩하는데 요구된 자원들을 식별하는 것,
    상기 목록에 기초하여 우선 순위들을 식별된 자원들에 할당하는 것,
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 수신하는 것, 및
    상기 웹페이지를 렌더링하는 것을 포함하는 동작들을 수행하게 하도록 구성되는,
    비일시적인 프로세서-판독 가능 저장 매체.
  38. 제 37 항에 있어서,
    저장된 프로세서-실행 가능 소프트웨어 명령들은, 자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 수신하는 것이 상기 목록에 기초한 시퀀스로 제 2 서버로부터 상기 자원들의 다운로드를 요청하는 것을 포함하도록 프로세서로 하여금 동작들을 수행하게 하도록 구성되는,
    비일시적인 프로세서-판독 가능 저장 매체.
  39. 제 37 항에 있어서,
    저장된 프로세서-실행 가능 소프트웨어 명령들은, 상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 서버로 전송하는 것을 더 포함하는 동작들을 프로세서로 하여금 수행하게 하도록 구성되는,
    비일시적인 프로세서-판독 가능 저장 매체.
  40. 서버 프로세서-실행 가능 명령들이 저장된 비일시적인 서버-판독 가능 저장 매체로서, 상기 서버 프로세서-실행 가능 명령들은 프로세서로 하여금,
    다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하는 것,
    수집된 메타 정보에 기초하여 각각의 타입의 사용자 에이전트에 대해 상기 웹페이지에 대한 목록을 생성하는 것,
    모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 것, 및
    자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 전송하는 것을 포함하는 동작들을 서버 프로세서로 하여금 수행하게 하도록 구성되는,
    비일시적인 서버-판독 가능 저장 매체.
  41. 제 40 항에 있어서,
    저장된 서버 프로세서-실행 가능 명령들은, 모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 것이 상기 모바일 컴퓨팅 디바이스에 관련된 정보를 통한 평가를 위해 상기 목록을 상기 모바일 컴퓨팅 디바이스로 전송하는 것을 포함하도록 서버 프로세서로 하여금 동작들을 수행하게 하도록 구성되는,
    비일시적인 서버-판독 가능 저장 매체.
  42. 제 40 항에 있어서,
    저장된 서버 프로세서-실행 가능 명령들은, 상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 모바일 컴퓨팅 디바이스로부터 수신하는 것을 더 포함하는 동작들을 서버 프로세서로 하여금 수행하게 하도록 구성되는,
    비일시적인 서버-판독 가능 저장 매체.
  43. 제 40 항에 있어서,
    저장된 서버 프로세서-실행 가능 명령들은, 다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하는 것이 상기 서버 상에서 다양한 타입들의 사용자 에이전트들을 사용하여 상기 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 생성하는 것을 포함하도록 서버 프로세서로 하여금 동작들을 수행하게 하도록 구성되는,
    비일시적인 서버-판독 가능 저장 매체.
  44. 제 40 항에 있어서,
    저장된 서버 프로세서-실행 가능 명령들은, 다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 수집하는 것이 다양한 타입들의 사용자 에이전트들을 사용하여 상기 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 복수의 모바일 컴퓨팅 디바이스들로부터 수신하는 것을 포함하도록 서버 프로세서로 하여금 동작들을 수행하게 하도록 구성되는,
    비일시적인 서버-판독 가능 저장 매체.
  45. 제 40 항에 있어서,
    저장된 서버 프로세서-실행 가능 명령들은, 모바일 컴퓨팅 디바이스 상에서 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위해 상기 목록을 사용하는 것이,
    상기 모바일 컴퓨팅 디바이스에 관련된 정보를 수신하는 것,
    상기 목록을 사용하여 수신된 정보를 평가하는 것,
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을 식별하는 것, 및
    상기 모바일 컴퓨팅 디바이스 상에서 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 상기 모바일 컴퓨팅 디바이스로 전송하는 것을 포함하도록 서버 프로세서로 하여금 동작들을 수행하게 하도록 구성되는,
    비일시적인 서버-판독 가능 저장 매체.
  46. 제 45 항에 있어서,
    저장된 서버 프로세서-실행 가능 명령들은, 자원들의 할당된 우선 순위들에 기초하여 결정된 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 전송하는 것이 상기 목록에 기초한 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 푸싱하는 것을 포함하도록 서버 프로세서로 하여금 동작들을 수행하게 하도록 구성되는,
    비일시적인 프로세서-판독 가능 저장 매체.
  47. 제 46 항에 있어서,
    저장된 서버 프로세서-실행 가능 명령들은, 자원들을 상기 모바일 컴퓨팅 디바이스에 대한 원하는 포맷으로 트랜스코딩하는 것을 더 포함하는 동작들을 서버 프로세서로 하여금 수행하게 하도록 구성되는,
    비일시적인 프로세서-판독 가능 저장 매체.
  48. 시스템으로서,
    서버, 및
    복수의 모바일 컴퓨팅 디바이스들을 포함하고,
    상기 복수의 모바일 컴퓨팅 디바이스 내의 각각의 모바일 컴퓨팅 디바이스는,
    메모리, 및
    상기 메모리에 연결된 프로세서를 포함하고, 상기 프로세서는,
    웹페이지를 프로세싱하는 것에 관련된 메타 정보를 생성하는 것,
    생성된 메타 정보를 상기 서버로 전송하는 것, 및
    상기 웹페이지를 프로세싱하는데 사용되는 사용자 에이전트를 식별하는 것을 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되고,
    상기 서버는,
    메모리, 및
    상기 메모리에 연결된 서버 프로세서를 포함하고, 상기 서버 프로세서는,
    다양한 사용자 에이전트들을 통해 웹페이지를 로딩하는 것에 기초한 메타 정보를 상기 복수의 모바일 컴퓨팅 디바이스들로부터 수신하는 것, 및
    상기 복수의 모바일 컴퓨팅 디바이스들로부터 수신된 메타 정보에 기초하여, 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위한 정보를 제공하도록 구성된 목록을 생성하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되고,
    각각의 모바일 컴퓨팅 디바이스의 프로세서는,
    상기 목록 내의 정보에 기초하여 결정된 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 수신하는 것, 및
    상기 웹페이지를 렌더링하는 것을 더 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  49. 제 48 항에 있어서,
    각각의 모바일 컴퓨팅 디바이스의 상기 프로세서는 상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 서버로 전송하는 것을 더 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  50. 제 48 항에 있어서,
    각각의 모바일 컴퓨팅 디바이스의 상기 프로세서는,
    상기 모바일 컴퓨팅 디바이스 상에서 구현되는 사용자 에이전트 및 웹페이지를 식별하는 정보를 상기 서버로 전송하는 것,
    상기 서버로부터 상기 목록을 수신하는 것,
    상기 모바일 컴퓨팅 디바이스 상에 저장된 정보와 상기 목록을 비교함으로써 상기 모바일 컴퓨팅 디바이스 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들을 식별하는 것, 및
    상기 목록에 기초하여 상기 모바일 컴퓨팅 디바이스에서 우선 순위들을 식별된 자원들에 할당하는 것을 더 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되고,
    각각의 모바일 컴퓨팅 디바이스의 상기 프로세서는, 상기 목록 내의 정보에 기초하여 결정된 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 수신하는 것이,
    상기 모바일 컴퓨팅 디바이스에 의해 할당된 우선 순위들에 기초한 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 요청하는 것, 및
    상기 자원들을 수신하는 것을 포함하도록 프로세서-실행 가능 명령들로 구성되고,
    상기 서버는,
    상기 복수의 모바일 컴퓨팅 디바이스들 중 하나 상에서 구현된 사용자 에이전트 및 웹페이지를 식별하는 정보를 수신하는 것,
    상기 복수의 모바일 컴퓨팅 디바이스들 중 하나 상에서 구현된 사용자 에이전트 및 웹페이지에 대한 목록을 획득하는 것, 및
    획득된 목록을 상기 복수의 모바일 컴퓨팅 디바이스들 중 하나로 전송하는 것을 더 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  51. 제 50 항에 있어서,
    각각의 모바일 컴퓨팅 디바이스의 상기 프로세서는, 상기 모바일 컴퓨팅 디바이스에 의해 할당된 우선 순위들에 기초한 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 요청하는 것이 상기 목록에 기초하여 상기 모바일 컴퓨팅 디바이스 프로세서에 의해 결정된 시퀀스로 제 2 서버로부터 상기 자원들의 다운로드를 요청하는 것을 포함하도록 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  52. 제 48 항에 있어서,
    각각의 모바일 컴퓨팅 디바이스의 상기 프로세서는, 상기 모바일 컴퓨팅 디바이스에 관련된 정보를 상기 서버로 전송하는 것을 더 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되고, 그리고,
    각각의 모바일 컴퓨팅 디바이스의 상기 프로세서는, 상기 목록 내의 정보에 기초하여 결정된 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 수신하는 것이,
    상기 서버에 의해 전송된 적절한 오브젝트 포맷들 및 우선 순위들에 기초한 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 요청하는 것, 및
    상기 자원들을 수신하는 것을 포함하도록 프로세서-실행 가능 명령들로 구성되고,
    상기 서버는,
    상기 복수의 모바일 컴퓨팅 디바이스들 중 하나에 관련된 정보를 수신하는 것,
    상기 복수의 모바일 컴퓨팅 디바이스들 중 하나 상에서 구현되는 상기 사용자 에이전트 및 상기 웹페이지에 대한 목록을 획득하는 것,
    상기 복수의 모바일 컴퓨팅 디바이스들 중 하나에 관련된 정보와 획득된 목록을 비교하는 것,
    상기 복수의 모바일 컴퓨팅 디바이스들 중 하나 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을 식별하는 것, 및
    상기 복수의 모바일 컴퓨팅 디바이스들 중 하나 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 선위들을 상기 복수의 모바일 컴퓨팅 디바이스들 중 하나로 전송하는 것을 더 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  53. 제 52 항에 있어서,
    상기 서버는, 상기 복수의 모바일 컴퓨팅 디바이스들 중 하나 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 상기 복수의 모바일 컴퓨팅 디바이스들 중 하나로 전송하는 것이, 상기 목록에 기초하여 상기 서버에 의해 결정된 시퀀스로 자원들을 상기 복수의 모바일 컴퓨팅 디바이스들 중 하나에 푸싱하는 것을 포함하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  54. 제 53 항에 있어서,
    상기 서버는, 자원들을 상기 복수의 모바일 컴퓨팅 디바이스들 중 하나에 대한 원하는 포맷으로 트랜스코딩하는 것을 더 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  55. 시스템으로서,
    서버, 및
    모바일 컴퓨팅 디바이스를 포함하고,
    상기 서버는,
    메모리, 및
    상기 메모리에 연결된 서버 프로세서를 포함하고, 상기 서버 프로세서는,
    다양한 타입들의 사용자 에이전트들을 사용하여 웹페이지를 프로세싱하는 것에 관련된 메타 정보를 생성하는 것, 및
    생성된 메타 정보에 기초하여, 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 우선 순위들을 할당하기 위한 정보를 제공하도록 구성된 목록을 생성하는 것을 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되고,
    상기 모바일 컴퓨팅 디바이스는,
    메모리, 및
    상기 메모리에 연결된 디바이스 프로세서를 포함하고, 상기 디바이스 프로세서는,
    상기 목록 내의 정보에 기초하여 결정된 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 수신하는 것, 및
    상기 웹페이지를 렌더링하는 것을 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  56. 제 55 항에 있어서,
    상기 디바이스 프로세서는, 상기 웹페이지의 렌더링 동안에 생성된 메타 정보를 상기 서버로 전송하는 것을 더 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  57. 제 55 항에 있어서,
    상기 디바이스 프로세서는,
    상기 모바일 컴퓨팅 디바이스 상에서 구현되는 상기 사용자 에이전트 및 상기 웹페이지를 식별하는 정보를 상기 서버로 전송하는 것,
    상기 서버로부터 상기 목록을 수신하는 것,
    상기 모바일 컴퓨팅 디바이스 상에 저장된 정보와 상기 목록을 비교함으로써 상기 모바일 컴퓨팅 디바이스 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들을 식별하는 것, 및
    상기 목록에 기초하여 상기 모바일 컴퓨팅 디바이스에서 우선 순위를 식별된 자원들에 할당하는 것을 더 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되고,
    상기 디바이스 프로세서는, 상기 목록 내의 정보에 기초하여 결정된 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 수신하는 것이,
    상기 모바일 컴퓨팅 디바이스에 의해 할당된 우선 순위들에 기초한 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 요청하는 것, 및
    상기 자원들을 수신하는 것을 포함하도록 프로세서-실행 가능 명령들로 구성되고,
    상기 서버 프로세서는,
    상기 모바일 컴퓨팅 디바이스 상에서 구현되는 상기 사용자 에이전트 및 상기 웹페이지를 식별하는 정보를 수신하는 것,
    상기 모바일 컴퓨팅 디바이스 상에서 구현된 상기 사용자 에이전트 및 상기 웹페이지에 대한 목록을 획득하는 것, 및
    획득된 목록을 상기 모바일 컴퓨팅 디바이스로 전송하는 것을 더 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  58. 제 57 항에 있어서,
    상기 디바이스 프로세서는, 상기 모바일 컴퓨팅 디바이스에 의해 할당된 우선 순위들에 기초한 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 요청하는 것이 상기 목록에 기초하여 상기 모바일 컴퓨팅 디바이스에 의해 결정된 시퀀스로 제 2 서버로부터 상기 자원들의 다운로드를 요청하는 것을 포함하도록 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  59. 제 55 항에 있어서,
    상기 디바이스 프로세서는 상기 모바일 컴퓨팅 디바이스에 관련된 정보를 상기 서버로 전송하는 것을 더 포함하는 동작들을 수행하도록 프로세서-실행 가능 명령들로 구성되고,
    상기 디바이스 프로세서는, 상기 목록 내의 정보에 기초하여 결정된 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 수신하는 것이,
    상기 서버에 의해 전송된 적절한 오브젝트 포맷들 및 우선 순위들에 기초한 시퀀스로 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하기 위한 자원들을 요청하는 것, 및
    상기 자원들을 수신하는 것을 포함하도록 프로세서-실행 가능 명령들로 구성되고,
    상기 서버 프로세서는,
    상기 모바일 컴퓨팅 디바이스에 관련된 정보를 수신하는 것,
    상기 모바일 컴퓨팅 디바이스 상에서 구현된 상기 사용자 에이전트 및 상기 웹페이지에 대한 목록을 획득하는 것,
    상기 모바일 컴퓨팅 디바이스에 관련된 정보와 획득된 목록을 비교하는 것,
    상기 모바일 컴퓨팅 디바이스 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 적절한 오브젝트 포맷들 및 우선 순위들을 식별하는 것, 및
    상기 모바일 컴퓨팅 디바이스 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 자원들에 대한 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 상기 모바일 컴퓨팅 디바이스로 전송하는 것을 더 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  60. 제 59 항에 있어서,
    상기 서버 프로세서는, 상기 모바일 컴퓨팅 디바이스 상에서 상기 사용자 에이전트를 통해 상기 웹페이지를 로딩하는데 요구된 식별된 적절한 오브젝트 포맷들 및 우선 순위들을 상기 모바일 컴퓨팅 디바이스로 전송하는 것이 상기 목록에 기초하여 상기 서버에 의해 결정된 시퀀스로 상기 자원들을 상기 모바일 컴퓨팅 디바이스로 푸싱하는 것을 포함하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    시스템.
  61. 제 60 항에 있어서,
    상기 서버 프로세서는, 자원들을 상기 모바일 컴퓨팅 디바이스에 대한 원하는 포맷으로 트랜스코딩하는 것을 더 포함하는 동작들을 수행하도록 서버 프로세서-실행 가능 명령들로 구성되는,
    시스템.
KR1020147026463A 2012-02-24 2013-02-20 공유 메타 정보에 기초한 웹페이지들의 협력형 로딩 KR101711528B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261602777P 2012-02-24 2012-02-24
US61/602,777 2012-02-24
US201261621629P 2012-04-09 2012-04-09
US61/621,629 2012-04-09
US13/468,016 2012-05-09
US13/468,016 US9325806B2 (en) 2012-02-24 2012-05-09 Cooperative loading of webpages based on shared meta information
PCT/US2013/026865 WO2013126408A1 (en) 2012-02-24 2013-02-20 Cooperative loading of webpages based on shared meta information

Publications (2)

Publication Number Publication Date
KR20140128446A true KR20140128446A (ko) 2014-11-05
KR101711528B1 KR101711528B1 (ko) 2017-03-13

Family

ID=49004458

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147026463A KR101711528B1 (ko) 2012-02-24 2013-02-20 공유 메타 정보에 기초한 웹페이지들의 협력형 로딩

Country Status (6)

Country Link
US (2) US9325806B2 (ko)
EP (1) EP2817742A1 (ko)
JP (1) JP6109202B2 (ko)
KR (1) KR101711528B1 (ko)
CN (1) CN104137104B (ko)
WO (1) WO2013126408A1 (ko)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10834590B2 (en) 2010-11-29 2020-11-10 Biocatch Ltd. Method, device, and system of differentiating between a cyber-attacker and a legitimate user
US10897482B2 (en) * 2010-11-29 2021-01-19 Biocatch Ltd. Method, device, and system of back-coloring, forward-coloring, and fraud detection
US10069837B2 (en) * 2015-07-09 2018-09-04 Biocatch Ltd. Detection of proxy server
US11210674B2 (en) 2010-11-29 2021-12-28 Biocatch Ltd. Method, device, and system of detecting mule accounts and accounts used for money laundering
US10917431B2 (en) 2010-11-29 2021-02-09 Biocatch Ltd. System, method, and device of authenticating a user based on selfie image or selfie video
US20190158535A1 (en) * 2017-11-21 2019-05-23 Biocatch Ltd. Device, System, and Method of Detecting Vishing Attacks
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US11983233B2 (en) 2011-04-11 2024-05-14 Viasat, Inc. Browser based feedback for optimized web browsing
US9146909B2 (en) * 2011-07-27 2015-09-29 Qualcomm Incorporated Web browsing enhanced by cloud computing
KR101844512B1 (ko) * 2011-11-18 2018-05-21 삼성전자주식회사 어플리케이션 이용 방법, 그를 이용한 게이트웨이, 그를 이용한 단말기, 및 그를 이용한 통신 시스템
US9325806B2 (en) 2012-02-24 2016-04-26 Qualcomm Incorporated Cooperative loading of webpages based on shared meta information
US9747386B1 (en) * 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
US8656265B1 (en) * 2012-09-11 2014-02-18 Google Inc. Low-latency transition into embedded web view
WO2014058842A1 (en) 2012-10-08 2014-04-17 Patrick Soon-Shiong Distributed storage systems and methods
WO2014063124A1 (en) * 2012-10-19 2014-04-24 Mcafee, Inc. Mobile application management
US8793573B2 (en) * 2012-10-29 2014-07-29 Dropbox, Inc. Continuous content item view enhanced through smart loading
US20140143648A1 (en) * 2012-11-16 2014-05-22 Vladimir Kolesnikov Bolt Shadow Workers
US10296562B2 (en) * 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US9516092B2 (en) * 2013-03-13 2016-12-06 Google Inc. Precompiling locally-stored instructions for a web application
US9298455B1 (en) 2013-03-15 2016-03-29 Instart Logic, Inc. Provisional execution of dynamic content component
US9363329B1 (en) 2013-03-15 2016-06-07 Instart Logic, Inc. Identifying correlated components of dynamic content
US20140337254A1 (en) * 2013-05-07 2014-11-13 International Business Machines Corporation Recommending actions for social media engagements
US10803232B2 (en) 2013-06-06 2020-10-13 International Business Machines Corporation Optimizing loading of web page based on aggregated user preferences for web page elements of web page
US20140380480A1 (en) * 2013-06-25 2014-12-25 Tencent Technology (Shenzhen) Company Limited Method, device and system for identifying harmful websites
JP2015052821A (ja) * 2013-09-05 2015-03-19 株式会社東芝 通信装置および通信方法
US9785452B2 (en) * 2013-10-09 2017-10-10 Cisco Technology, Inc. Framework for dependency management and automatic file load in a network environment
US8924850B1 (en) 2013-11-21 2014-12-30 Google Inc. Speeding up document loading
US10009439B1 (en) * 2013-12-05 2018-06-26 Instart Logic, Inc. Cache preloading
EP3084589B1 (en) * 2013-12-20 2018-07-25 Intel Corporation Crowd sourced online application cache management
KR102170520B1 (ko) * 2014-03-06 2020-10-27 삼성전자주식회사 로딩 타임을 개선하는 전자 장치 및 방법
US10021207B1 (en) * 2014-03-21 2018-07-10 Amazon Technologies, Inc. Architecture for proactively providing bundled content items to client devices
KR20150128283A (ko) * 2014-05-09 2015-11-18 한국전자통신연구원 고해상도 콘텐츠에서 공유영역을 활용하여 관심영역을 제공하는 다자간 콘텐츠 서비스 방법 및 시스템
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
US9992263B2 (en) * 2014-10-10 2018-06-05 Pulse Secure, Llc Predictive prioritized server push of resources
CN105760396B (zh) * 2014-12-17 2019-10-25 广州市动景计算机科技有限公司 一种网页加载方法及装置
WO2016107636A1 (en) * 2014-12-29 2016-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Technique for enhancing rendering of displayable content
WO2016107654A1 (en) * 2014-12-30 2016-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Technique for providing quality enhancements to an application residing on a user terminal
US9998521B2 (en) 2015-01-08 2018-06-12 Instart Logic, Inc. HTML streaming
JP6482330B2 (ja) * 2015-03-09 2019-03-13 キヤノン株式会社 通信装置、通信方法、及びプログラム
US10425453B2 (en) * 2015-04-17 2019-09-24 Telefonaktiebolaget Lm Ericsson (Publ) Dynamic packager network based ABR media distribution and delivery
US10033656B2 (en) * 2015-05-21 2018-07-24 Sap Portals Israel Ltd Critical rendering path optimization
US11843679B2 (en) * 2015-07-27 2023-12-12 Wp Company Llc Automated dependency management based on page components
US10789654B1 (en) * 2015-07-27 2020-09-29 Intuit Inc. Web browsing systems for acquiring tax data during electronic tax return preparation
US10417317B2 (en) * 2015-07-27 2019-09-17 Adp, Llc Web page profiler
US10084884B2 (en) * 2015-07-31 2018-09-25 At&T Intellectual Property I, L.P. Facilitation of efficient web site page loading
AU2015409179B2 (en) * 2015-09-14 2018-05-24 Viasat, Inc. Machine-driven crowd-disambiguation of data resources
US10613713B2 (en) * 2015-10-07 2020-04-07 Google Llc Integration of content in non-browser applications
CN106598966B (zh) * 2015-10-14 2020-09-01 阿里巴巴集团控股有限公司 一种网页处理方法和装置
WO2017069735A1 (en) 2015-10-20 2017-04-27 Viasat, Inc. Hint model updating using automated browsing clusters
EP3353678B1 (en) * 2015-10-28 2021-04-07 Viasat, Inc. Time-dependent machine-generated hinting
US9923993B2 (en) * 2015-11-02 2018-03-20 Rockwell Automation Technologies, Inc. Self-describing diagnostic data for presentation on mobile devices
EP4243381A3 (en) 2015-12-04 2023-11-15 ViaSat Inc. Accelerating connections to a host server
US10868881B1 (en) 2015-12-30 2020-12-15 Mingtai Chang Loading web resources using remote resource pushing
EP3371961A1 (en) * 2016-01-13 2018-09-12 Samsung Electronics Co., Ltd. Method and system to decrease page load time by leveraging network latency
WO2017135984A1 (en) * 2016-02-01 2017-08-10 Google Inc. Systems and methods for deploying countermeasures against unauthorized scripts interfering with the rendering of content elements on information resources
US10116497B2 (en) * 2016-05-20 2018-10-30 Moneygram International, Inc. Systems and methods for providing split control of multiple execution environments
GB2552032B (en) 2016-07-08 2019-05-22 Aimbrain Solutions Ltd Step-up authentication
US20180052809A1 (en) 2016-08-16 2018-02-22 Microsoft Technology Licensing, Llc Inferring user interaction with an iframe
KR20180081231A (ko) * 2017-01-06 2018-07-16 삼성전자주식회사 데이터를 공유하기 위한 방법 및 그 전자 장치
CN108287839B (zh) * 2017-01-09 2022-01-28 阿里巴巴集团控股有限公司 一种页面加载方法和设备
US10785116B1 (en) * 2017-01-12 2020-09-22 Electronic Arts Inc. Computer architecture for asset management and delivery
CN110574352B (zh) * 2017-03-29 2022-09-20 亚马逊技术有限公司 通过存储设备迁移信息
US20180336613A1 (en) * 2017-05-17 2018-11-22 Mz Ip Holdings, Llc System and method for managing limit orders
US11816622B2 (en) 2017-08-14 2023-11-14 ScoutZinc, LLC System and method for rating of personnel using crowdsourcing in combination with weighted evaluator ratings
US10684847B2 (en) * 2017-11-27 2020-06-16 Salesforce.Com, Inc. Content deployment system having a proxy for continuously providing selected content items to a content publishing engine for integration into a specific release and methods for implementing the same
CN108108400B (zh) * 2017-12-05 2020-12-11 厦门哨子科技有限公司 一种api基于本地数据增量的方法
CN108763297B (zh) * 2018-04-18 2021-08-17 Oppo广东移动通信有限公司 网页资源处理方法、装置以及移动终端
BR112020021766A2 (pt) * 2018-06-07 2021-01-26 Hewlett-Packard Development Company, L.P. servidores locais para gerenciar uma rede intermitente
CN109343862B (zh) * 2018-08-31 2022-05-06 北京三快在线科技有限公司 应用的资源数据的调度方法及装置
CN109558138A (zh) * 2018-11-20 2019-04-02 北京小米移动软件有限公司 后代选择器处理方法及装置
US10666528B1 (en) 2018-11-28 2020-05-26 Sap Portals Israel Ltd. Decoupling platform as a service providers using a service management platform
US11188450B2 (en) * 2020-04-02 2021-11-30 Sap Se Cloud application architecture using edge computing
CN111949330B (zh) * 2020-08-11 2022-06-24 深圳市前海手绘科技文化有限公司 一种手绘草稿加载方法
KR102533070B1 (ko) 2020-12-16 2023-05-15 고려대학교 산학협력단 웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치
CN112800362B (zh) * 2021-02-04 2024-05-17 百果园技术(新加坡)有限公司 一种界面视图延时加载方法及装置
US20230007067A1 (en) * 2021-06-30 2023-01-05 Tencent America LLC Bidirectional presentation datastream
US11606353B2 (en) 2021-07-22 2023-03-14 Biocatch Ltd. System, device, and method of generating and utilizing one-time passwords
CN115776598B (zh) * 2022-11-15 2024-05-03 聚好看科技股份有限公司 服务器、显示设备及视频播放组件的加载方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162474A (ja) * 2001-11-27 2003-06-06 Sharp Corp 情報の入手を支援する支援方法および支援サーバ
US20060294223A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Pre-fetching and DNS resolution of hyperlinked content
US20100228880A1 (en) * 2000-04-26 2010-09-09 Simon Hunt System and Method for Providing and Displaying Information Content

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826031A (en) * 1996-06-10 1998-10-20 Sun Microsystems, Inc. Method and system for prioritized downloading of embedded web objects
JP3534027B2 (ja) * 1999-12-01 2004-06-07 日本電気株式会社 コンテンツ提供装置及びプログラムを記録した機械読み取り可能な記録媒体
US6549896B1 (en) * 2000-04-07 2003-04-15 Nec Usa, Inc. System and method employing random walks for mining web page associations and usage to optimize user-oriented web page refresh and pre-fetch scheduling
US7000008B2 (en) * 2001-04-16 2006-02-14 Sun Microsystems, Inc. Method, system, and program for providing data updates to a page including multiple regions of dynamic content
US20030187806A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Calculating and displaying the cost of downloading web content
US7487185B2 (en) * 2003-02-24 2009-02-03 Microsoft Corporation Technique for changing views of web content
US8281037B2 (en) * 2005-01-03 2012-10-02 Orb Networks, Inc. System and method for delivering content to users on a network
US8073866B2 (en) 2005-03-17 2011-12-06 Claria Innovations, Llc Method for providing content to an internet user based on the user's demonstrated content preferences
US7694008B2 (en) * 2005-05-04 2010-04-06 Venturi Wireless Method and apparatus for increasing performance of HTTP over long-latency links
US20080222273A1 (en) * 2007-03-07 2008-09-11 Microsoft Corporation Adaptive rendering of web pages on mobile devices using imaging technology
US8150869B2 (en) * 2008-03-17 2012-04-03 Microsoft Corporation Combined web browsing and searching
US20090249188A1 (en) 2008-03-27 2009-10-01 International Business Machines Corporation Method for adaptive transcription of web pages
JP5022301B2 (ja) * 2008-05-19 2012-09-12 株式会社エヌ・ティ・ティ・ドコモ プロキシサーバおよび通信中継プログラム、並びに通信中継方法
KR101496327B1 (ko) 2008-07-25 2015-02-26 삼성전자주식회사 어플리케이션 실행 방법 및 장치
US9213780B2 (en) * 2009-06-26 2015-12-15 Microsoft Technology Licensing Llc Cache and index refreshing strategies for variably dynamic items and accesses
US8380786B2 (en) * 2009-09-22 2013-02-19 Thwapr, Inc. Subscribing to mobile media sharing
JP2012032943A (ja) 2010-07-29 2012-02-16 Fujifilm Corp ウェブサイト閲覧システム、サーバ、サーバ用プログラム及びウェブサイト閲覧支援方法
CN101930459A (zh) * 2010-08-19 2010-12-29 百度在线网络技术(北京)有限公司 一种辅助用户设备实现网页的块状浏览的方法和网络设备
US20120144288A1 (en) * 2010-12-02 2012-06-07 International Business Machines Corporation Web page content display priority and bandwidth management
CN102314486A (zh) * 2011-08-04 2012-01-11 百度在线网络技术(北京)有限公司 一种用于页面浏览的方法与设备
US9325806B2 (en) 2012-02-24 2016-04-26 Qualcomm Incorporated Cooperative loading of webpages based on shared meta information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100228880A1 (en) * 2000-04-26 2010-09-09 Simon Hunt System and Method for Providing and Displaying Information Content
JP2003162474A (ja) * 2001-11-27 2003-06-06 Sharp Corp 情報の入手を支援する支援方法および支援サーバ
US20060294223A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Pre-fetching and DNS resolution of hyperlinked content

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KAMBALAKATTA et al, Profile based caching to enhance data availability in push/pull mobile envirionments, MOBIQUIT OUS 2004. pp.74-83, (2004) *

Also Published As

Publication number Publication date
US9325806B2 (en) 2016-04-26
US20130226992A1 (en) 2013-08-29
US9749400B2 (en) 2017-08-29
JP6109202B2 (ja) 2017-04-05
KR101711528B1 (ko) 2017-03-13
US20160205177A1 (en) 2016-07-14
JP2015513144A (ja) 2015-04-30
CN104137104A (zh) 2014-11-05
CN104137104B (zh) 2018-01-23
EP2817742A1 (en) 2014-12-31
WO2013126408A1 (en) 2013-08-29

Similar Documents

Publication Publication Date Title
KR101711528B1 (ko) 공유 메타 정보에 기초한 웹페이지들의 협력형 로딩
US20200404068A1 (en) Managing mobile device user subscription and service preferences to predictively pre-fetch content
KR101609483B1 (ko) 클라우드 컴퓨팅에 의해 향상된 웹 브라우징
US8688771B2 (en) Method of providing content to a mobile web browsing device
US9407717B1 (en) Selective prefetch scanning
CN106664592B (zh) 用于内容分发的方法和系统及相应的计算机可读介质
EP2791815B1 (en) Application-driven cdn pre-caching
US10261938B1 (en) Content preloading using predictive models
US9058402B2 (en) Chronological-progression access prioritization
US20160306895A1 (en) Web application acceleration with personalized cache or prerendering
US8868638B2 (en) Methods for reducing latency in network connections using automatic redirects and systems thereof
Dutta et al. Caching to reduce mobile app energy consumption
CN107682281B (zh) 一种sdn交换机和sdn交换机的应用管理方法
US10313472B2 (en) Enabling efficient pre-loading of data for a network client
US10021207B1 (en) Architecture for proactively providing bundled content items to client devices
Sehati et al. WebPro: A proxy-based approach for low latency web browsing on mobile devices
CN115883657A (zh) 一种云盘服务加速调度的方法及系统
Armstrong Just-In-Time Push Prefetching: Accelerating the Mobile Web
EP2997489B1 (en) Method and device for efficient mobile data transmission
EP2552082B1 (en) Favourite web site acceleration method and system
CN116846881A (zh) 一种缓存库文件的更新方法及终端
WO2013181164A1 (en) Chronological-progression access prioritization
KR20030042658A (ko) 브라우저가 저장된 기록매체 및 이를 이용한 데이터다운로드 방법

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
GRNT Written decision to grant