KR101609483B1 - 클라우드 컴퓨팅에 의해 향상된 웹 브라우징 - Google Patents
클라우드 컴퓨팅에 의해 향상된 웹 브라우징 Download PDFInfo
- Publication number
- KR101609483B1 KR101609483B1 KR1020147004887A KR20147004887A KR101609483B1 KR 101609483 B1 KR101609483 B1 KR 101609483B1 KR 1020147004887 A KR1020147004887 A KR 1020147004887A KR 20147004887 A KR20147004887 A KR 20147004887A KR 101609483 B1 KR101609483 B1 KR 101609483B1
- Authority
- KR
- South Korea
- Prior art keywords
- metadata
- computing device
- web page
- server
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 311
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000009877 rendering Methods 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 claims description 63
- 238000012544 monitoring process Methods 0.000 claims description 29
- 238000003860 storage Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 25
- 230000002776 aggregation Effects 0.000 claims description 14
- 238000004220 aggregation Methods 0.000 claims description 14
- 230000000694 effects Effects 0.000 claims description 12
- 238000013515 script Methods 0.000 claims description 11
- 230000010267 cellular communication Effects 0.000 claims description 8
- 238000013519 translation Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000002123 temporal effect Effects 0.000 claims description 3
- 230000000737 periodic effect Effects 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 claims 2
- 230000002596 correlated effect Effects 0.000 claims 1
- 238000010295 mobile communication Methods 0.000 description 156
- 230000008569 process Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 14
- 230000009471 action Effects 0.000 description 10
- 238000012552 review Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000002354 daily effect Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000012358 sourcing Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
- G06F16/94—Hypermedia
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
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)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
방법들 및 디바이스들은 서버 및 적어도 2개의 상이한 컴퓨팅 디바이스들 상에서 동작가능한 적어도 2개의 웹 브라우저들을 포함한다. 각각의 브라우저는 웹페이지들의 프로세싱 및 렌더링의 결과들을 서버에 보고한다. 서버는 데이터를 집합한다. 서버는 그 집합된 브라우저들로부터 메타데이터를 발생시킨다. 서버는 그 발생된 메타데이터를 적어도 하나의 컴퓨팅 디바이스로 송신한다. 컴퓨팅 디바이스는 그 제공된 메타데이터의 적어도 일 부분을 이용하여 웹페이지를 렌더링한다. 메타데이터는 병렬로 프로세싱될 수 있는 JavaScript 의 부분들을 식별할 수도 있다. 메타데이터는 로드될 필요가 없는 라이브러리 부분을 식별할 수도 있다. 메타데이터는 웹페이지의 제 2 부분에 앞서 먼저 렌더링될 수도 있는 웹페이지의 부분을 식별할 수도 있다. 메타데이터를 컴퓨팅 디바이스로 리턴하는 것은 컴퓨팅 디바이스가 웹페이지에 대한 요청을 파싱하거나, 분석하거나 또는 실행하는 것을 도울 수 있다.
Description
본 발명은 일반적으로 컴퓨팅 디바이스들에 관한 것이다. 좀더 자세하게는, 본 발명은 컴퓨팅 디바이스 상의 리소스를 절약하기 위해 힌트들을 웹 브라우저에 제공하고 웹 브라우저의 다음 액션을 예상하는 방법들에 관한 것이다.
점점 더, 사람은 미디어를 소비하기 위해 모바일 컴퓨팅 디바이스들을 이용하고 있다. 일반적으로, 모바일 컴퓨팅 디바이스들에서는, 배터리 수명이 제한된다. 일단 배터리가 고갈되면, 모바일 디바이스는 정지할 것이며, 전원 콘센트가 발견될 수 있을 때까지 또는 새로운 배터리가 제공될 때까지 재시동될 수 없다. 이것은 배터리가 다 소모된 동안에는 모바일 디바이스를 사용할 수 없기 때문에 사용자에게 매우 실망감을 줄 수 있다. 게다가, 모바일 디바이스가 비효율적인 시기들이 있다. 모바일 디바이스는 사용자의 인식 없이 모바일 대역폭, 프로세싱 및 배터리 리소스들을 낭비할 것이다. 예를 들어, 모바일 디바이스 브라우저는 단지 라이브러리의 일부만이 요구될 때에도 라이브러리와 같은 매우 큰 파일을 다운로드할 수도 있다. 게다가, 사용자들은 웹페이지들을 다운로드하는데 긴 대기 시간들을 좋아하지 않으며, 웹사이트 또는 미디어 소스가 곧바로 디스플레이되지 않을 때 실망하게 된다.
일부 사용자들은 일반적으로 그들의 모바일 컴퓨팅 시스템들의 어떤 일상적인 브라우징 루틴들 또는 습관들을 따른다. 예를 들어, 사용자는 웹페이지의 부분 (예컨대, 주식 시세들 또는 스포츠 스코어들) 을 다른 부분들보다 더 빈번하게 액세스할 수도 있다. 많은 사용자들은 미디어를 소비하는데 어떤 일상적인 습관들을 따른다. 예를 들어, 최근에 일어난 뉴스거리가 되는 이벤트가 있으면, 많은 사용자들은 동일한 웹페이지에 액세스하여 뉴스거리가 되는 콘텐츠를 찾으려고 할 것이다.
방법들 및 디바이스들은 컴퓨팅 디바이스 상에서 향상된 웹 브라우징을 가능하게 한다. 본 방법은 컴퓨팅 디바이스로부터 웹페이지에 대한 요청을 송신하는 프로세서를 포함한다. 프로세서는 컴퓨팅 디바이스로부터의 요청을 브라우저 어시스턴트 (browser assistant) 로 송신한다. 브라우저 어시스턴트는 메타데이터를 컴퓨팅 디바이스로 리턴한다. 메타데이터는 컴퓨팅 디바이스가 웹페이지에 대한 요청을 파싱하거나, 분석하거나 또는 실행하는 것을 돕는다.
또 다른 양태에서, 시스템은 서버 및 적어도 2개의 상이한 컴퓨팅 디바이스들 상에서 동작가능한 적어도 2개의 웹 브라우저들을 포함한다. 각각의 웹 브라우저는 웹페이지들의 프로세싱 및 렌더링 결과들을 서버에 보고한다. 서버는 데이터를 집합하고, 서버는 그 집합된 웹 브라우저 데이터로부터 메타데이터를 발생시킨다. 서버는 그 메타데이터를 적어도 하나의 컴퓨팅 디바이스로 송신한다. 컴퓨팅 디바이스는 그 메타데이터의 적어도 일 부분을 이용하여 웹페이지를 렌더링한다.
본 출원의 양태는 컴퓨팅 디바이스로부터 웹페이지에 대한 요청을 송신하는 단계, 브라우저 어시스턴트에 대해 컴퓨팅 디바이스로부터의 요청을 송신하는 단계, 및 컴퓨팅 디바이스가 웹페이지에 대한 요청을 파싱하거나, 분석하거나, 또는 실행하는 것을 돕기 위해 메타데이터를 컴퓨팅 디바이스로 리턴하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법을 포함한다. 일 양태에서, 컴퓨팅 디바이스에 리턴되는 메타데이터는 JavaScript 함수 실행 확률들, 데이터를 파싱하기 위한 AST 데이터, 스크립트 토큰 데이터, 렉싱 (lexing) 정보, 컴퓨팅 디바이스를 돕기 위해 서버에서 프로세싱된 데이터로부터의 리턴된 2진 코드, 컴퓨팅 디바이스에서 CSS 웹페이지 데이터를 프로세싱하는 것을 돕기 위한 CSS 메타데이터, 컴퓨팅 디바이스에서 JavaScript 웹페이지 데이터를 프로세싱하는 것을 돕기 위한 JavaScript 메타데이터, 컴퓨팅 디바이스에서 HTML 웹페이지 데이터를 보조하기 위한 HTML 메타데이터, 및 이들의 조합들 중 임의의 하나일 수도 있는 데이터를 포함할 수도 있다. 일 양태에서, 컴퓨팅 디바이스로 리턴된 메타데이터는 복수의 관찰된 사용자들 브라우징 통계치들을 포함할 수도 있으며, 이 방법은 다른 부분들에 앞서 컴퓨팅 디바이스에서 웹페이지의 부분들을 로드하는 것을 돕기 위해 복수의 관찰된 브라우징 통계치들을 이용하는 것을 더 포함할 수도 있다. 일 양태에서, 컴퓨팅 디바이스로 리턴된 메타데이터는 미리 결정된 실행의 확률을 갖는 코드의 부분에 관한 통계치들을 포함할 수도 있다. 일 양태에서, 컴퓨팅 디바이스로 리턴된 메타데이터는 서버 상에서 실행되는 JavaScript 코드로부터 기인하는 변환된 2진 코드를 포함할 수도 있으며, 이 방법은 서버에서 프로세싱을 최대화하고 컴퓨팅 디바이스에서 프로세싱을 최소화하기 위해 그 2진 코드를 컴퓨팅 디바이스로 송신하는 단계를 더 포함할 수도 있다.
일 양태에서, 본 방법은 인기 있는 웹페이지의 부분들에 상관있는 분석론 (analytics) 을, 컴퓨팅 디바이스 상의 웹 브라우저가 인기 있는 부분들을 먼저 로딩할 수 있도록, 전송하는 단계를 더 포함할 수도 있다. 양태 방법들은 컴퓨팅 디바이스의 사용자의 습관들을 모으는 단계, 및 사용자에 의해 빈번하게 액세스된 웹페이지 엘리먼트들을 메모리에 사전 로드하는 단계를 더 포함할 수도 있다. 양태 방법들은 서버에서, 복수의 웹 사용자들의 인기 있는 데이터에 대응하는 복수의 사용자들로부터의 사용 정보를 모으는 단계, 및 그 사용 정보 및 복수의 웹 사용자들의 습관들의 분석에 기초하여, 메타데이터를 발생시키는 단계를 더 포함할 수도 있다. 양태 방법들은 메타데이터를 로칼 네트워크 컴퓨터로부터 컴퓨팅 디바이스로 전송하는 단계, 다른 웹 사용자들의 인기 있는 데이터에 대응하는 복수의 사용자들로부터의 사용 정보를 모으는 단계, 및 로칼 네트워크 컴퓨터를 이용하여 메타데이터를 발생시키는 단계를 더 포함할 수도 있다. 양태 방법들은 사용자들이 웹 브라우저를 이용함에 따라 복수의 사용자들에 기초하여 브라우징 습관들에 대한 집합 정보를 모으는 단계, 브라우징 습관들을 발생시키기 위해, 도구화된 웹 브라우저를 이용하여 복수의 사용자들을 모니터링하는 단계, 및 복수의 사용자들의 브라우징 습관들에 기초하여 메타데이터를 발생시키는 단계를 더 포함할 수도 있다.
양태 방법들은 라이브러리가 빈번하게 다운로드된다는 것을 나타내는 메타데이터를 발생시키는 단계, 라이브러리가 관찰된 통계적 정보에 기초하여 실행을 위해 다른 부분들에 앞서 통계적으로 요구될 가능성이 있는 부분을 갖는다고 그 메타데이터에 기술하는 단계, 및 그 메타데이터에 기초하여 먼저 라이브러리의 일부를 다운로드하는 단계를 더 포함할 수도 있다. 일 양태에서, 본 방법은 통계적 데이터에 기초하여, 라이브러리가 실행가능할 가능성이 가장 많은 라이브러리 부분을 갖는다고 결정하는 단계, 및 라이브러리의 다른 부분들에 앞서 실행가능할 가능성이 가장 많은 라이브러리 부분을 먼저 다운로드하는 단계를 더 포함할 수도 있다.
양태 방법들은 브라우징 동안 복수의 사용자들을 모니터링하는 단계, 사용자들의 통계적 퍼센티지가 다른 부분들에 앞서 웹페이지의 제 1 부분을 볼 가능성이 있는 것을 나타내는 메타데이터를 발생시키는 단계, 및 웹페이지의 다른 부분들에 앞서 그 제 1 부분을 컴퓨팅 디바이스로 송신하는 단계를 더 포함할 수도 있다. 일 양태에서, 메타데이터는 컴퓨팅 디바이스의 사용자에 대한 프로파일을 포함할 수도 있으며, 이 방법은 그 프로파일에 기초하여, 사용자가 다른 부분들에 앞서 웹페이지의 제 1 부분을 볼 가능성이 있는 통계적 퍼센티지를 나타내는 메타데이터를 발생시키는 단계, 사용자가 웹페이지의 제 2 부분을 보지 않을 가능성이 있는 통계적 퍼센티지를 나타내는 메타데이터를 발생시키는 단계, 웹페이지의 다른 부분들에 앞서 제 1 부분을 먼저 컴퓨팅 디바이스로 다운로드하는 단계, 및 제 1 부분 이후 시간 기간에서 제 2 부분을 다운로드하는 단계를 더 포함할 수도 있다. 양태 방법들은 다른 사용자들 브라우징의 습관들을 나타내는 메타데이터를 발생시키는 단계, 그 메타데이터에 기초하여, 어느 웹페이지들의 부분들이 웹페이지의 다른 부분들에 앞서 통계적으로 액세스될 가능성이 있는지를 결정하는 단계, 제 2 부분이 빈번하게 액세스되지 않을 가능성이 있는 것을 결정하는 단계, 제 2 부분이 빈번하게 액세스되지 않고 통계적으로 액세스될 가능성이 있는 부분들보다 더 낮은 우선순위로 다운로드되는 것을 메타데이터에서 통신하는 단계를 더 포함할 수도 있다.
양태 방법들은 무선 네트워크를 통해서 서버에 링크하는 단계, 브라우저를 서버와 연관시키는 단계, 및 브라우저로부터 컴퓨팅 디바이스에 의한 사용을 위한 정보를 수집하는 단계를 더 포함할 수도 있다.
양태 방법들은 JavaScript 를 포함할 수도 있는 요청을 파싱하거나, 분석하거나 또는 실행하기 위해 웹 브라우저에 대한 메타데이터를 이용하여 힌트들을 제공하는 단계, JavaScript 가 컴퓨팅 디바이스에서 프로세싱하는데 비효율적인 것을 결정하는 단계, 및 JavaScript 의 2진 사전-컴파일된 변환을 송신하는 단계를 더 포함할 수도 있다.
양태 방법들은 복수의 웹 사용자들 브라우징 습관들 웹페이지에 관련된 통계치들을 집합하는 단계, 그 통계치들을 메타데이터로 전달하는 단계, 그 웹페이지들이 컴퓨팅 디바이스에서 요청되기 전에 통계적으로 인기 있는 웹페이지들을 사전 로드함으로써 모바일 리소스들을 절약하기 위해 그 통계치들을 이용하는 단계, 인기 있는 웹페이지의 부분들을 다운로드하는 단계, 및 모바일 리소스들을 절약하기 위해 인기 없는 웹페이지의 제 2 부분들을 다운로드하는 것을 생략하는 단계를 더 포함할 수도 있다. 양태 방법들은 인터넷 브라우저로부터 브라우징 데이터를 서버로 전송하는 단계, 및 서버에서 브라우저 데이터로부터 메타데이터를 발생시키는 단계를 더 포함할 수도 있다. 양태 방법들은 데이터를 도구가 되는 브라우저로부터 서버로 전송하는 단계, 및 그 데이터로부터 메타데이터를 발생시키는 단계를 더 포함할 수도 있다. 일 양태에서, 컴퓨팅 디바이스로 리턴된 메타데이터는 컴퓨팅 디바이스 상의 웹 브라우저가 인기 있는 부분들을 먼저 로딩할 수 있도록, 메타데이터를 피어 디바이스로부터 피어 디바이스에 접속된 컴퓨팅 디바이스들에게 인기 있는 웹페이지의 부분들에 상관있는 컴퓨팅 디바이스로 리턴하는 단계를 포함할 수도 있다.
양태 방법들은 제 2 컴퓨팅 디바이스의 브라우징 습관들의 클라이언트 측 모니터링 시스템을 제공하는 단계, 브라우징 습관들을 서버로 전송하는 단계, 및 제 2 컴퓨팅 디바이스의 브라우징 습관들의 클라이언트 측 모니터링 시스템에 기초하여, 메타데이터를 서버로부터 컴퓨팅 디바이스로 전송하는 단계를 더 포함할 수도 있다. 양태 방법들은 요청들 및 요청들에 대한 응답들을 포함하는 브라우징 습관들로부터 메타데이터를 발생시키는 단계, 및 그 메타데이터를 컴퓨팅 디바이스의 피어인 피어 디바이스에 제공하는 단계를 더 포함할 수도 있다.
양태 방법들은 복수의 사용자들의 브라우징 습관들을 모니터링하는 단계, 브라우징 습관들을 서버로 전송하는 단계, 모니터링된 브라우징 습관들에 기초하여, 복수의 사용자들의 복수의 관찰된 프로파일들을 체계화하는 단계, 컴퓨팅 디바이스 사용자의 브라우징 습관들을 모니터링하는 단계, 및 컴퓨팅 디바이스 사용자 브라우징 습관들에 매칭하는 적어도 하나의 관찰된 프로파일에 기초하여, 메타데이터를 서버로부터 컴퓨팅 디바이스로 리턴하는 단계를 더 포함할 수도 있다.
양태 방법들은 코드의 제 1 부분이 제 2 부분보다 더 자주 분석되거나, 다운로드되거나, 파싱되거나, 또는 실행된다는 것을 메타데이터에 기술하는 단계, 및 라이브러리의 제 1 부분을 제 2 부분에 앞서 재정렬하고 다운로드하는 단계를 더 포함할 수도 있다. 양태 방법들은 라이브러리가 실행될 가능성이 가장 높은 것으로 결정된 부분을 포함한다고 메타데이터에 기술하는 단계, 및 라이브러리의 다른 부분들에 앞서 실행될 가능성이 가장 높은 라이브러리 부분을 다운로드하는 단계를 더 포함할 수도 있다.
양태 방법들은 서버 상에 로케이트된 브라우저 어시스턴트에 대한 요청을 송신하는 단계, 웹 사이트가 컴퓨팅 디바이스에 의해 빈번하게 액세스된다고 결정하는 단계, 및 업데이트된 웹 사이트 데이터를 컴퓨팅 디바이스에 업로드하는 단계를 더 포함할 수도 있다. 양태 방법들은 메타데이터에 포함된 통계적 브라우징 습관들에 기초하여, 컴퓨팅 디바이스를 이용하여 제 2 부분들에 앞서 웹페이지들의 제 1 부분들을 다운로드하는 단계를 더 포함할 수도 있다. 양태 방법들은 컴퓨팅 디바이스를 이용하여 웹페이지들의 부분들을 사전 로드함과 동시에, 메타데이터에 포함된 통계적 브라우징 습관들을 이용하여 사전 로드된 부분들이 식별하는 단계를 더 포함할 수도 있다.
양태 방법들은 복수의 사용자들로부터의 브라우징 습관들을 모니터링하는 단계, 웹페이지 엘리먼트들을 포함하는 웹페이지가 빈번하게 액세스된다고 결정하는 단계, 웹페이지 엘리먼트들이 컴퓨팅 디바이스 상에서 삭제되는 것을 방지하기 위해 브라우징 습관들에 기초하여 웹페이지 엘리먼트들을 캐시 상에 저장하는 단계, 및 예상된 요청에 앞서 캐시로부터 웹페이지 엘리먼트들을 다운로드하는 단계를 더 포함할 수도 있다. 일 양태에서, 본 방법은 단일 사용자의 브라우징 습관들로부터 유도되는 브라우징 습관들을 모니터링하는 단계, 캐시 상에 저장된 웹페이지를 업데이트하는 단계, 요청 없이, 캐시 상의 엘리먼트들을 컴퓨팅 디바이스로 주기적인 간격들로 푸시하는 단계, 캐시 상에 저장된 웹페이지를 업데이트하는 단계, 및 엘리먼트들을 캐시로부터 컴퓨팅 디바이스로 전달하는 단계를 더 포함할 수도 있다. 양태 방법들은 컴퓨팅 디바이스가 요청된 웹페이지를 파싱하거나, 분석하거나, 또는 실행하는 것을 돕기 위해 메타데이터를 사전-캐시함으로써 메타데이터를 컴퓨팅 디바이스로 미리 리턴하는 단계를 더 포함할 수도 있다.
양태 방법들은 컴퓨팅 디바이스로 하여금, 필수 부분들을 실행하고 전체 웹페이지를 실행하는 것을 무시함으로써, 웹페이지를 좀더 효율적인 방법으로 실행가능하게 하는 메타데이터를 리턴하는 단계를 더 포함할 수도 있다.
여러 양태들에서, 브라우저 어시스턴트는 웹페이지에 대한 요청에 응답하는 동일한 서버인 서버 상에, 피어 컴퓨터 디바이스 상에, 또는 또 다른 네트워크 디바이스 상에 로케이트될 수도 있다.
양태 방법들은 웹페이지에 대한 요청을 송신하는 단계로서, 상기 웹페이지는 부분들을 포함하는, 상기 송신하는 단계; 네이티브 코드를 초래하기 위해 그 부분들을 브라우저 어시스턴트를 이용하여 프로세싱하는 단계; 및 그 네이티브 코드를 컴퓨팅 디바이스로 리턴하는 단계로서, 상기 부분들은 JavaScript 를 포함하는, 상기 리턴하는 단계를 더 포함할 수도 있다.
양태 방법들은 데이터에 대한 요청을 송신하는 단계, 요청을 제 1 디바이스로 송신하는 단계, 메타데이터를 제 2 디바이스로 리턴하는 단계, 및 요청들 및 요청들에 대한 응답들의 모니터링된 경험적 데이터에 기초하여, 가능성 있는 통계적 실행의 가능성을 갖는 웹페이지의 부분들을 메타데이터에 기술하는 단계를 더 포함할 수도 있다.
여러 양태들은 위에서 설명한 양태 방법들의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서를 갖는 컴퓨팅 디바이스를 더 포함한다. 여러 양태들은 위에서 설명한 양태 방법들의 기능들을 수행하는 수단을 포함하는 컴퓨팅 디바이스를 더 포함할 수도 있다. 여러 양태들은 컴퓨팅 디바이스 프로세서들로 하여금 위에서 설명한 양태 방법들의 동작들을 수행시키도록 구성된 프로세서 실행가능 명령들을 안에 저장하고 있는 비일시성 프로세서 판독가능 저장 매체들을 더 포함할 수도 있다.
여러 양태들은 위에서 설명한 양태 방법들의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 서버 프로세서를 갖는 서버를 더 포함한다. 여러 양태들은 위에서 설명한 양태 방법들의 기능들을 수행하는 수단을 포함하는 서버를 더 포함할 수도 있다. 여러 양태들은 서버 프로세서들로 하여금 위에서 설명한 양태 방법들의 동작들을 수행시키도록 구성된 프로세서 실행가능 명령들을 안에 저장하고 있는 비일시성 프로세서 판독가능 저장 매체들을 더 포함할 수도 있다.
여러 양태들은 서버, 셀룰러 통신 네트워크 및 셀룰러 통신 네트워크를 통해서 서버와 통신하는 컴퓨팅 디바이스 (예컨대, 모바일 폰) 를 포함하는 시스템을 더 포함하며, 여기서, 서버 및 컴퓨팅 디바이스는 위에서 설명한 양태 방법들의 동작들을 수행하도록 구성된다.
본원에 포함되어 본 명세서의 부분을 구성하는, 첨부 도면들은, 본 발명의 예시적인 양태들을 예시하며, 그리고 위에서 주어진 일반적인 설명 및 아래에 주어지는 상세한 설명과 함께, 본 발명의 특징들을 설명하는 것을 돕는다.
도 1 은 모바일 컴퓨팅 디바이스와 통신하기 위한 시스템의 통신 시스템 블록도이다.
도 2 는 웹 브라우저의 성능을 향상시키기 위해 분석론을 이용하는 양태 방법의 프로세스 흐름도이다.
도 3 은 브라우저 지원 서버와 통신하는 컴퓨팅 디바이스를 예시한다.
도 4 는 어떻게 코드의 어떤 미리 결정된 부분이 다른 부분들에 앞서 다운로드될 수도 있는 높은 실행의 확률을 갖는지를 예시한다.
도 5a 는 브라우저 어시스턴트 서버로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 5b 는 도구화된 브라우저로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 5c 는 웹 브라우저로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 6 은 피어 디바이스로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 7 은 모바일 통신 디바이스에 지원을 제공하기 위해 모바일 통신 디바이스에 링크된 홈 네트워크 컴퓨터로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 8 은 힌트들을 웹페이지를 렌더링하기 위한 모바일 통신 디바이스로 전송하는 서버의 통신 시스템 블록도를 예시한다.
도 9 는 다수의 상이한 사용자들의 브라우징 습관들로부터 데이터를 수집하고, 웹페이지를 렌더링하는데 힌트들을 제공하기 위해 컴퓨팅 디바이스로 푸시되는 메타데이터를 생성하는 양태 방법의 프로세스 흐름도이다.
도 10 은 다수의 상이한 사용자들의 브라우징 습관들로부터 데이터를 수집하고, 힌트들을 제공하기 위해 컴퓨팅 디바이스로부터 가져와지는 메타데이터를 생성하는 양태 방법의 프로세스 흐름도이다.
도 11 은 서버 상의 분석 모듈을 이용하여 메타데이터를 생성하는 양태 방법의 프로세스 흐름도이다.
도 12 는 모바일 통신 디바이스를 위해 타게팅된 서비스들을 제공하고 모바일 통신 디바이스를 위해 인기 있는 데이터를 서버 상에 캐시하는 양태 방법의 프로세스 흐름도이다.
도 13 은 모바일 통신 디바이스에 힌트들을 제공하기 위해 다수의 사용자들로부터 JavaScript 실행 프로파일들의 메타데이터를 생성하는 양태 방법의 프로세스 흐름도이다.
도 14 는 모바일 통신 디바이스를 위해 타게팅된 서비스들을 제공하고 모바일 통신 디바이스를 위해 인기 있는 데이터를 캐시하여 빈번하게 액세스된 캐시된 데이터를 유지하는 양태 방법의 프로세스 흐름도이다.
도 15 는 서버 상에 인기 있는 데이터를 캐시하고 그 캐시된 데이터를 증대하기 위해, 모바일 통신 디바이스를 위해 타게팅된 서비스들을 제공하는 양태 방법의 프로세스 흐름도이다.
도 16 은 빈번하게 사용되는 캐시 데이터를 모바일 통신 디바이스에 제공하는 브라우저 지원 서버를 예시한다.
도 17 은 JavaScript 를 파싱하기 위한 힌트들을 갖는 메타데이터를 발생시키는 양태 방법의 프로세스 흐름도이다.
도 18 은 JavaScript 데이터를 프로세싱하는 것을 피하기 위해, 데이터를 프로세싱하여 그 프로세싱된 JavaScript 데이터의 사전 컴파일된 2진 파일을 모바일 통신 디바이스로 전송하는 서버를 예시한다.
도 19 는 데이터를 로칼로 프로세싱하는 것을 피하기 위해, 데이터를 서버에서 프로세싱하여, 그 프로세싱된 데이터의 사전 컴파일된 2진 파일을 모바일 통신 디바이스에 제공하는 양태 방법의 프로세스 흐름도이다.
도 20 은 모바일 통신 디바이스가 전체 소프트웨어 라이브러리를 다운로드함이 없이, 가장 빈번하게 사용되는 라이브러리 부분을 다운로드할 수 있도록, 가장 빈번하게 사용되는 라이브러리 부분을 식별하는 메타데이터를 제공하는 양태 방법의 프로세스 흐름도이다.
도 21 은 모바일 통신 디바이스가 또 다른 부분에 앞서 가장 많이 본 부분을 다운로드할 수 있도록, 가장 많이 본 웹페이지 부분의 메타데이터를 제공하는 양태 방법의 프로세스 흐름도이다.
도 22 는 여러 양태들과 함께 사용하는데 적합한 모바일 컴퓨팅 디바이스의 구성요소 블록도이다.
도 23 은 서버 컴퓨팅 디바이스의 구성요소 블록도이다.
도 24 는 노트북 컴퓨팅 디바이스의 구성요소 블록도이다.
도 1 은 모바일 컴퓨팅 디바이스와 통신하기 위한 시스템의 통신 시스템 블록도이다.
도 2 는 웹 브라우저의 성능을 향상시키기 위해 분석론을 이용하는 양태 방법의 프로세스 흐름도이다.
도 3 은 브라우저 지원 서버와 통신하는 컴퓨팅 디바이스를 예시한다.
도 4 는 어떻게 코드의 어떤 미리 결정된 부분이 다른 부분들에 앞서 다운로드될 수도 있는 높은 실행의 확률을 갖는지를 예시한다.
도 5a 는 브라우저 어시스턴트 서버로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 5b 는 도구화된 브라우저로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 5c 는 웹 브라우저로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 6 은 피어 디바이스로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 7 은 모바일 통신 디바이스에 지원을 제공하기 위해 모바일 통신 디바이스에 링크된 홈 네트워크 컴퓨터로부터 웹페이지에 관한 메타데이터를 요청하는 양태 방법의 프로세스 흐름도이다.
도 8 은 힌트들을 웹페이지를 렌더링하기 위한 모바일 통신 디바이스로 전송하는 서버의 통신 시스템 블록도를 예시한다.
도 9 는 다수의 상이한 사용자들의 브라우징 습관들로부터 데이터를 수집하고, 웹페이지를 렌더링하는데 힌트들을 제공하기 위해 컴퓨팅 디바이스로 푸시되는 메타데이터를 생성하는 양태 방법의 프로세스 흐름도이다.
도 10 은 다수의 상이한 사용자들의 브라우징 습관들로부터 데이터를 수집하고, 힌트들을 제공하기 위해 컴퓨팅 디바이스로부터 가져와지는 메타데이터를 생성하는 양태 방법의 프로세스 흐름도이다.
도 11 은 서버 상의 분석 모듈을 이용하여 메타데이터를 생성하는 양태 방법의 프로세스 흐름도이다.
도 12 는 모바일 통신 디바이스를 위해 타게팅된 서비스들을 제공하고 모바일 통신 디바이스를 위해 인기 있는 데이터를 서버 상에 캐시하는 양태 방법의 프로세스 흐름도이다.
도 13 은 모바일 통신 디바이스에 힌트들을 제공하기 위해 다수의 사용자들로부터 JavaScript 실행 프로파일들의 메타데이터를 생성하는 양태 방법의 프로세스 흐름도이다.
도 14 는 모바일 통신 디바이스를 위해 타게팅된 서비스들을 제공하고 모바일 통신 디바이스를 위해 인기 있는 데이터를 캐시하여 빈번하게 액세스된 캐시된 데이터를 유지하는 양태 방법의 프로세스 흐름도이다.
도 15 는 서버 상에 인기 있는 데이터를 캐시하고 그 캐시된 데이터를 증대하기 위해, 모바일 통신 디바이스를 위해 타게팅된 서비스들을 제공하는 양태 방법의 프로세스 흐름도이다.
도 16 은 빈번하게 사용되는 캐시 데이터를 모바일 통신 디바이스에 제공하는 브라우저 지원 서버를 예시한다.
도 17 은 JavaScript 를 파싱하기 위한 힌트들을 갖는 메타데이터를 발생시키는 양태 방법의 프로세스 흐름도이다.
도 18 은 JavaScript 데이터를 프로세싱하는 것을 피하기 위해, 데이터를 프로세싱하여 그 프로세싱된 JavaScript 데이터의 사전 컴파일된 2진 파일을 모바일 통신 디바이스로 전송하는 서버를 예시한다.
도 19 는 데이터를 로칼로 프로세싱하는 것을 피하기 위해, 데이터를 서버에서 프로세싱하여, 그 프로세싱된 데이터의 사전 컴파일된 2진 파일을 모바일 통신 디바이스에 제공하는 양태 방법의 프로세스 흐름도이다.
도 20 은 모바일 통신 디바이스가 전체 소프트웨어 라이브러리를 다운로드함이 없이, 가장 빈번하게 사용되는 라이브러리 부분을 다운로드할 수 있도록, 가장 빈번하게 사용되는 라이브러리 부분을 식별하는 메타데이터를 제공하는 양태 방법의 프로세스 흐름도이다.
도 21 은 모바일 통신 디바이스가 또 다른 부분에 앞서 가장 많이 본 부분을 다운로드할 수 있도록, 가장 많이 본 웹페이지 부분의 메타데이터를 제공하는 양태 방법의 프로세스 흐름도이다.
도 22 는 여러 양태들과 함께 사용하는데 적합한 모바일 컴퓨팅 디바이스의 구성요소 블록도이다.
도 23 은 서버 컴퓨팅 디바이스의 구성요소 블록도이다.
도 24 는 노트북 컴퓨팅 디바이스의 구성요소 블록도이다.
여러 양태들을 첨부 도면들을 참조하여 자세히 설명한다. 가능한 경우에는 언제나, 동일한 또는 유사한 부재들을 지칭하기 위해서 동일한 참조 번호들이 도면들에 걸쳐서 사용된다. 특정의 예들 및 구현예들에 대한 참조들은 예시적인 목적들을 위한 것이며, 본 발명 또는 청구항들의 범위에 한정하려고 의도되지 않는다.
단어 "예시적인" 은 "일 예, 사례, 또는 예시로서 기능하는 것" 을 의미하도록 본원에서 사용된다. 본원에서 "예시적인" 으로서 설명하는 임의의 구현예는 다른 구현예들보다 유리한 것으로 반드시 해석되지 않아야 한다.
본원에서 사용될 때, 용어들 "컴퓨팅 디바이스", "모바일 디바이스", "모바일 통신 디바이스", 및 "휴대형 디바이스" 는 셀룰러 전화기들, 개인 휴대 정보단말들 (PDA's), 팜탑 컴퓨터들, 무선 전자 메일 수신기들, 멀티미디어 인터넷 이용가능한 셀룰러 전화기들, 글로벌 측위 시스템 (GPS) 수신기들, 무선 게이밍 제어기들, 태블릿 컴퓨터들, 노트북 컴퓨터들, 넷북 컴퓨터들, 무선 이메일 디바이스들, 및 프로그래밍가능 프로세서 및 메모리를 포함하고 통신 네트워크와 통신하도록 구성된 유사한 개인 전자 디바이스들 중 임의의 하나 또는 모두를 지칭한다.
본원에서 사용될 때, 용어들 "컴퓨터", "개인용 컴퓨터" 및 "컴퓨팅 디바이스" 는 알려져 있거나 미래에 개발될 임의의 프로그래밍가능 컴퓨터 시스템을 지칭한다. 일 양태에서, 컴퓨터는 본원에서 설명하는 바와 같은 네트워크에 커플링될 것이다. 컴퓨터 시스템은 본원에서 설명되는 프로세스들 및 동작들을 수행하는 소프트웨어 명령들로 구성될 수도 있다.
본원에서 사용될 때, 용어들 "구성요소", "모듈", "시스템" 등은 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중 소프트웨어 (software in execution) 중 어느 것이든, 컴퓨터-관련 엔터티를 지칭하기 위해 의도된다. 예를 들어, 구성요소는 프로세서 상에서 실행하는 프로세스, 프로세서, 오브젝트, 실행가능한 것, 실행 쓰레드, 프로그램, 및/또는 컴퓨터일 수도 있지만 이에 한정되지 않는다. 실 예로서, 서버 상에서 실행하는 애플리케이션 및 서버 양자는 구성요소일 수 있다. 하나 이상의 구성요소들은 프로세스 및/또는 실행 쓰레드 내에 상주할 수도 있으며, 구성요소는 하나의 컴퓨터 상에 로컬라이즈되거나 및/또는 2개 이상의 컴퓨터들 사이에 분산될 수도 있다.
여러 본원에서 설명하는 양태들은 컴퓨팅 디바이스들, 예컨대 모바일 디바이스들 상에서 미디어 렌더링, 특히 웹페이지 렌더링을 향상시키기 위해 기계 학습 기술을 이용하는 방법들 및 시스템들을 제공한다. 일 양태에서, 클라우드 서비스 분산 네트워크는 브라우저의 다음 액션을 예상하고 그리고 힌트들을 모바일 디바이스에 제공하기 위해 메타데이터를 모바일 디바이스로 제공함으로써 브라우저 경험을 향상시킨다. 모바일 디바이스는 제한된 및 한정된 리소스들을 갖는다. 모바일 디바이스는 상대적으로 더 작은 메모리를 가지며, 다운로드되는 데이터는 규칙적으로 소거되거나 덮어서 기록된다. 게다가, 모바일 디바이스는 유한한 양의 배터리 전력을 갖는다. 일반적으로, 배터리 전력은 추론 작업들에 낭비될 수 없으며, 성능을 향상시키고 즉각적인 정보 (immediate information) 를 사용자에게 제공하는데 사용될 수도 있다. 사용자 습관들은 모바일 리소스들을 절약하거나 또는 즉각적인 액세스를 위해 미디어를 사전대책적으로 (proactively) 준비하는데 좀더 효율적으로 작용가능하도록 브라우저에 의해 사용될 수도 있다. 예를 들어, 웹 브라우저는 사용자의 브라우징 습관들에 기초하여 콘텐츠를 효율적으로 다운로드하여 프로세싱할 수도 있으며, 이것은 로드 시간들이 더 빠를 수 있고 배터리 수명이 확장될 수 있기 때문에 유리하다.
브라우저 어시스턴트는 사용자의 브라우징 습관들을 모니터링함으로써 캐시 동작을 향상시킬 수도 있거나 또는 다수의 상이한 사용자들의 브라우징 습관들을 모니터링할 수도 있다. 브라우저 어시스턴트는 힌트들을 모바일 디바이스에 제공할 수도 있으며 캐시 동작을 향상시킬 수도 있다. 예를 들어, 서버는 방문한 사전 프로세싱된 웹페이지들을 모바일 디바이스로 규칙적으로 푸시할 수도 있다.
또 다른 양태에서, 모바일 디바이스는 빈번하게 사용되거나 또는 액세스되는 어떤 브라우징 데이터가 메모리 제약들로 인해 막 삭제하려고 하는 때를 검출할 수도 있다. 이 경우, 모바일 디바이스는 서버로부터 타게팅된 서비스들을 요청하고, 모바일 디바이스에 의한 추후 사용을 위해, 빈번하게 액세스된 데이터를 서버로 업로드할 수도 있다. 서버는 업로드된 정보를 마크하여, 데이터를 모바일 디바이스로 추후 일자/시간에 리턴할 수도 있다. 또 다른 양태에서, 서버는 데이터를 최적화하고 그 최적화된 데이터를 모바일 디바이스로 리턴할 수도 있다.
또 다른 양태에서, 시스템은 인터넷에 동작가능하게 접속된 모바일 디바이스 및 브라우저 지원 서버를 포함할 수도 있다. 브라우저 지원 서버는 또한 인터넷 및 모바일 디바이스에 동작가능하게 접속될 수도 있다. 브라우저 지원 서버는 웹사이트들에 관련된 메타데이터를 모바일 디바이스로 전달할 수도 있다. 이 메타데이터는 모바일 디바이스가 어떻게 모바일 디바이스로부터 전송된 웹페이지에 대한 요청을 효율적으로 처리할 지에 관한 힌트들을 제공할 수도 있다. 예를 들어, 메타데이터는 모바일 디바이스로 하여금 사용자의 다음 브라우징 활동을 예상가능하게 하는 정보를 포함할 수도 있다.
메타데이터는 모바일 디바이스 또는 서버로 하여금 브라우저의 요청들을 더 좋게 파싱하거나, 실행하거나 또는 분석가능하게 하는 임의의 정보일 수도 있다. 예를 들어, 메타데이터는 XML, Ajax, 또는 jSAW 코드일 수도 있다. 일 양태에서, 모바일 디바이스는 웹페이지를 렌더링할 때 브라우저 지원 서버로부터의 메타데이터를 검토할 수도 있다. 메타데이터는 웹페이지들의 최적화된 브라우저 실행을 위한 방식을 제공할 수도 있다. 브라우저는 요청된 웹페이지를 좀더 효율적으로 처리하기 위해 메타데이터를 이용할 수도 있다. 이것은 더 빠른 실행 시간들 및 더 낮은 전력 사용을 초래할 수도 있다. 예를 들어, 메타데이터는 어떤 데이터가 빈번하게 액세스되거나 또는 사용자들 간에 인기 있다는 정보를 제공할 수도 있다. 예를 들어, 푸시/풀 프레임워크를 이용하여, 인기 있거나 또는 빈번하게 사용되는, 통상 소거되었던 데이터가 모바일 디바이스로부터 서버 상에 로케이트된 캐시 메모리에 업로드될 수 있다. 이 데이터는 동적으로 캐시될 수 있으며, 요구될 때 모바일 디바이스에 의해 읽혀질 수도 있다.
일 양태에서, 메타데이터는 JavaScript 메타데이터를 포함할 수도 있다. 메타데이터는 어떤 어구들의 JavaScript 함수 확률들, 스크립트 토큰들, 렉싱 정보, AST 파싱 정보, 이미 컴파일된 2진 데이터, 적기 (just in time) 데이터, 또는 모바일 디바이스에서 JavaScript 요청들을 프로세싱할 때에 시간을 절약하기 위한 다른 힌트들을 포함한 유용한 정보를 제공할 수도 있다. 예를 들어, 메타데이터는 단순화된 또는 최적화된 선택기들, 병합 스타일들, 또는 CSS 웹페이지 데이터를 프로세싱하거나, 파싱하거나, 실행하거나, 또는 렌더링하기 위한 임의의 다른 정보와 같은 정보를 포함하는 CSS 메타데이터를 포함할 수도 있다. 또 다른 양태에서, 메타데이터는 DOM 트리를 병렬 방식으로 프로세싱하는 방법에 관한 힌트들을 포함할 수도 있다.
일 양태에서, 메타데이터는 파티셔닝된 코드 힌트들을 가진 HTML 메타데이터를 포함할 수도 있다. 힌트들은 모바일 디바이스에게 인코딩된 페이지들을, 직렬 대신, 병렬로 프로세싱하도록 명령할 수도 있다. 일 양태에서, 메타데이터는 다수의 다른 사용자들로부터의 데이터를 포함할 수도 있으며, 관측하는 다른 사용자의 브라우징 습관들로부터 수신된 분석론 또는 패턴들을 기술할 수도 있다.
일 양태에서, 분석론 (analytics) 은 어떤 웹페이지 엘리먼트가 높은 실행의 확률을 갖거나 또는 다른 사용자들에게 아주 인기 있을 수도 있다는 것을 나타낼 수도 있다. 모바일 디바이스는 사용자가 웹페이지 엘리먼트를 어떤 지점에서 다운로드할 수도 있다는 추론에 기초하여, 그들 웹페이지 엘리먼트들을 다운로드할 수도 있다. 예를 들어, 분석론을 이용하여, 메타데이터는 라이브러리가 높은 실행의 확률을 갖는 제 1 부분을 포함한다는 것을 나타낼 수도 있다. 메타데이터는 라이브러리 제 1 부분이 라이브러리의 다른 부분들과 비교될 때 높은 실행의 확률을 가지므로 즉시 송신되거나 또는 액세스되어야 한다는 것을 나타낼 수도 있다. 또 다른 제 2 부분은 통계적 정보에 기초하여 낮은 실행의 확률을 나타낼 수도 있다. 메타데이터는 제 2 라이브러리가 낮은 실행 확률을 갖는다고 메타데이터가 나타내므로 제 2 라이브러리 부분이 나중까지 다운로드될 필요가 없다는 것을 나타낼 수도 있다.
일 양태에서, 분석론을 이용하는 브라우저 지원 서버는 메타데이터를 발생할 수도 있다. 브라우저 지원 서버는 대중의 습관들로부터 관계들을 관찰할 수도 있다. 메타데이터는 어떤 웹페이지가 빈번하게 액세스된다는 것을 나타낼 수도 있다. 메타데이터는 어떤 웹페이지 엘리먼트, 예를 들어, 빈번하게 액세스된 웹페이지 상에 로케이트된 텍스트가 웹페이지에의 방문자들의 90 퍼센트에 의해 보여지고 있다는 것을 나타낼 수도 있다. 습관 정보는 또한 다수의 사용자들의 관찰된 브라우징 습관들에 기초하여, 브라우저 지원 서버에 의해 컴파일될 수도 있다.
여전히, 또 다른 양태에서, 메타데이터는 모바일 통신 디바이스 상에서 사전-캐시될 수 있으며, 따라서 모바일 통신 디바이스에 미리 제공될 수도 있다. 예를 들어, 메타데이터는 네트워크 사용이 낮은 저녁 또는 이른 아침 시간 동안과 같은, 사용자가 그 정보를 요구할 때보다 앞서서, 가입하고 있는 (subscribing) 모바일 디바이스들로 미리 결정된 시간 기간에 송신될 수도 있다. 이의 대안으로, 메타데이터는 예컨대, 사용자들의 액세스를 모니터링한 상위 100 웹사이트들 또는 모바일 통신 디바이스의 사용자가 액세스하는 상위 100 웹사이트들에 대한, 동기화 프로시저의 일부로서 송신될 수도 있다. 일부 양태들에서, 메타데이터는 요구 시에 언제든지 제공되지 않을 수도 있으며, 웹페이지에 대한 요청 이전, 요청 동안 또는 요청 이후에 제공될 수도 있다. 일 양태에서, 메타데이터는 웹 콘텐츠보다 더 느린 변화율을 가질 수도 있으며, 따라서 미리 결정된 간격들에서 사용자의 컴퓨터 또는 모바일 디바이스로 사전-캐시될 수도 있다. 예를 들어, 메타데이터는 비-피크 시간에, 예컨대 밤늦게, 또는 주기적으로, 예컨대 1주 단위로 제공될 수도 있다.
뉴스거리가 되는 이벤트가 발생할 때, 사용자들의 웹 브라우징이 모니터링될 수도 있다. 사용자들의 웹 브라우징 습관들은 사용자들이 특정의 텍스트 스토리 및 사진 이미지들을 보기 위해서, 요청들을 웹 브라우저들로부터 뉴스 웹사이트로 전송하고 있다는 것을 나타낼 수도 있다. 웹페이지 엘리먼트들은 모바일 디바이스 사용자가 또한 모바일 디바이스 사용자의 자신의 브라우징 습관들에 기초하여 웹페이지 엘리먼트를 볼 수도 있는 높은 확률을 가질 수도 있다. 브라우저 지원 서버로부터의 메타데이터는 사용자가 텍스트 및 웹페이지를 언젠가 다운로드할 것이라는 추론에 기초하여 모바일 디바이스로 하여금 콘텐츠를 다운로드가능하게 할 수도 있다.
또 다른 양태에서, 브라우저 지원 서버는 특정의 웹페이지들의 다수의 사용자들에 의해 통계적으로 실행된 기능들에 관한 정보를 수집할 수도 있다. 이에 응답하여, 브라우저 지원 서버는 통계적 정보의 인덱스를 생성할 수도 있다. 브라우저 지원 서버는 그들의 사용자들의 웹 브라우징 경험들을 향상시키기 위해, 이 통계적 정보를 이용하여, 메타데이터를 다수의 모바일 디바이스들로 전달할 수도 있다.
일 양태에서, HTML 코드, CSS, 제 1 JavaScript 함수 및 제 2 JavaScript 함수 및 다른 코드를 포함한, 코드가 발생될 수도 있다. 브라우저 지원 서버는 제 1 및 제 2 JavaScript 함수들이 많은 사용자들에 의해 웹페이지들 상의 다른 함수들보다 더 많이 실행되었다고 관찰할 수도 있다. 브라우저 지원 서버는 제 1 및 제 2 JavaScript 함수들의 실행의 빈도 또는 확률에 관련된 통계적 정보를 포함한 메타데이터를 모바일 디바이스에 제공할 수도 있다. 메타데이터는 모바일 디바이스로 하여금 메타데이터를 이용하여 웹 브라우저의 성능을 최적화가능하게 할 수도 있다.
또 다른 양태에서, 모바일 디바이스는 브라우저 지원 서버로부터 분석 정보를 요청할 수도 있다. 분석 정보는 특정의 요청된 웹페이지에 대한 것일 수도 있다. 브라우저 지원 서버에 대한 요청은 컨텍스트 정보, 사용자 프로파일 정보, 통신 정보, 모바일 디바이스 정보, 및/또는 웹 브라우저 정보를 포함할 수도 있다. 이 요청은 브라우저 지원 서버로 하여금 사용자에 관련된 메타데이터를 리턴가능하게 할 수도 있다.
또 다른 양태에서, 모바일 디바이스에는 타게팅된 서비스들이 제공될 수도 있다. 모바일 통신 디바이스는 브라우저 지원 서버 상에 캐시를 가질 수도 있으며, 모바일 디바이스는 데이터를 캐시 상에 저장할 수도 있다. 캐시는 그 데이터에 대한 미래의 요청들이 더 빠르게 제공될 수 있도록 데이터를 그대로 저장하는 서버의 구성요소일 수도 있다. 캐시 내에 저장된 데이터는 이전에 계산된 적이 있는 값들 또는 다른 어딘가에 저장된 원래 값들의 복사본들일 수도 있다. 요청된 데이터가 캐시에 포함되어 있으면 ("캐시 히트"), 이 요청은 캐시를 읽음으로써 제공될 수도 있는데, 모바일 디바이스보다 비교적 더 빠르다. 그렇지 않으면, 데이터는 모바일 통신 디바이스에 재계산되거나 또는 그의 원래 스토리지 로케이션으로부터 페치되어야 하는데, 비교적 더 느리다. 그러므로, 캐시로부터 모바일 통신 디바이스로 제공될 수 있는 요청들이 더 많을수록, 전체 시스템 성능이 더 빨라질 수 있다.
일 양태에서, 브라우저 지원 서버는 다수의 모바일 디바이스들에 타게팅된 서비스를 제공할 수도 있다. 예를 들어, 모바일 디바이스는 캐시된 JavaScript 또는 캐시된 라이브러리를 포함하는 브라우저 지원 서버 상에 미래의 사용을 위해 캐시하도록 기록할 수도 있다. 이것은 프로세싱 시간 및 배터리 수명을 절약할 수도 있다. 예를 들어, 모바일 디바이스 또는 브라우저 지원 서버는 사용자의 브라우징 습관들에 기초하여, 모바일 디바이스 상에서 막 소거시키려고 하는 데이터가 사용자와 관련된다고 결정하고, 서버와 연관된 캐시에 데이터를 저장할 수도 있다.
또 다른 양태에서, 서버는 그 캐시된 데이터를 최적화할 수도 있다. 예를 들어, 사용자의 프로파일은 브라우저 지원 서버에 저장될 수도 있다. 예를 들어, 브라우저 지원 서버는 사용자가 동일한 웹사이트들을 매일 오전 8:00시에 다운로드한다고 검출할 수도 있다. 예를 들어, 모바일 디바이스는 그날은 더 늦게 메모리 한계에 부닥칠 수도 있다. 모바일 디바이스는 또한 어떤 웹페이지 엘리먼트들이 그 다음날 오전 8:00시에 사용될 것이라고 검출할 수도 있다. 모바일 디바이스는 웹페이지 엘리먼트들을 L2 캐시로서 브라우저 지원 서버와 연관되는 캐시에 기록할 수도 있다. 모바일 디바이스는 그 다음날 캐시로부터의 웹페이지 엘리먼트들에 액세스할 수도 있다.
또 다른 양태에서, 브라우저 지원 서버는 미리 JavaScript 를 직접 분석하여 컴파일할 수도 있다. JavaScript 는 모바일 통신 디바이스 상에서 프로세싱될 필요가 없을 수도 있다. 이 데이터는 또한 미리 결정된 아키텍처를 위해 컴파일될 수도 있다. 브라우저 지원 서버는 프로세싱된 JavaScript 로부터 렌더링된 2진 데이터를 제공할 수 있다. 2진 데이터는 모바일 디바이스가 JavaScript 를 로칼로 컴파일하는 것을 피할 수 있도록, 모바일 디바이스로 송신될 수 있다. 모바일 디바이스 프로세서는 JavaScript 실행 경로의 어구들을 파싱하고, 실행하고, 그리고 즉시화 (just-in-timing) 하는 것을 피하고, 엘리먼트들을 더 빨리 렌더링할 수도 있다.
도 1 은 개인 미디어 콘텐츠에 원격 액세스하여 제어하기 위한 그래픽 사용자 인터페이스 (GUI) 를 제공하는 디스플레이 (110) 를 포함할 수도 있는 모바일 디바이스 (100) 를 포함하는 통신 시스템을 나타낸다. 이런 GUI 는 디스플레이 (110) 아래에 제공될 수도 있는 키패드에서 물리적인 키들을 누름으로써, 또는 디스플레이가 터치스크린 능력을 가질 경우 디스플레이 자체를 누름으로써, 선택될 수도 있는 기능들과 연관된 아이콘들 및 형태들을 포함할 수도 있다. GUI 디스플레이 (110) 는 도면부호 115 로 나타낸 아이콘들을 포함할 수도 있다.
모바일 디바이스 (100) 에 대한 네트워크 및 디바이스 액세스를 제어하는 것을 가능하게 하는 통신 시스템의 구성요소들의 일부가 도 1 에 예시된다. 모바일 디바이스 (100) 가 인터넷 (114), 및 등록 서버 (142) 에 액세스가능하도록 하기 위해서, 모바일 디바이스 (100) 는 무선 네트워크 (130), 예컨대 셀룰러 통신 네트워크와 통신할 수도 있다. 무선 네트워크 (130) 는 인터넷, 보안 LAN, WAN, 또는 다른 네트워크와 같은, 데이터 링크 (330) 를 거쳐 캐리어 네트워크 (326) 를 통해서, 인터넷 (114) 과 통신할 수도 있다. 캐리어 네트워크 (326) 는 모바일 스위칭 센터 (MSC) (332) 로 전송되는 메시지들 (일반적으로, 데이터 패킷들을 포함함) 을 제어한다. 캐리어 네트워크 (326) 는 MSC (332) 과 통신한다. 이 통신은 전송 데이터 및 보이스 정보를 전송하는 것일 수도 있다. MSC (332) 는 또 다른 네트워크 (336), 예컨대 데이터 네트워크 및/또는 데이터 전송을 위한 인터넷 부분 및 보이스 정보를 위한 POTS 부분에 의해 다수의 기지국들 (BTS) (132) 에 접속될 수도 있다. BTS (132) 는 미리 결정되는 보이스 및/또는 데이터 패킷 서비스들, 예컨대 코드분할 다중접속 (CDMA), 단문 메시징 서비스 (SMS), 또는 임의의 다른 오버-디-에어 방법들을 이용하여, 모바일 디바이스들 (100) 로, 메시지들을 무선으로 브로드캐스트하고, 모바일 디바이스들 (100) 로부터 메시지들을 수신할 수도 있다.
모바일 디바이스들 (100) 은 예컨대, 임의의 상주 애플리케이션들과 상호작용을 가능하게 하는 애플리케이션 프로그래밍 인터페이스 (API) (135) (예컨대, 도 1 에 나타낸 등록 서버 (142) 에 의해 통신된 정보와 협동적으로 동작하는 "미디어" 인터페이스 (140)) 를 통해서, 프로세서 (131) 와 통신하는 메모리 (125) 를 갖는 컴퓨터 플랫폼 (120) 을 포함하도록 구성될 수도 있다.
플랫폼 (120) 은 또한 게이트웨이 인터페이스 (145) 를 포함할 수도 있다. 게이트웨이 인터페이스 (145) 는 어떻게 웹 서버 소프트웨어가 웹페이지들의 발생을 독립형 애플리케이션에 실행가능한 파일로 위임할 수 있는지를 정의하는 표준일 수도 있다. 게이트웨이 인터페이스 (145) 는 임의의 프로그래밍 언어 또는 임의의 스크립팅 언어로 기록된 CGI 스크립트들을 포함할 수도 있다. 게이트웨이 인터페이스 (145) 는, 게이트웨이 인터페이스가 데이터를 사용자에게 포워딩할 수 있도록, 서버 (142) 가 웹 사용자의 요청을 애플리케이션 프로그램으로 전달하고 데이터를 되수신하도록 하는 프로그램 명령들을 갖는다.
사용자가 (예를 들어, 하이라이트된 단어를 클릭하거나 또는 웹 사이트 어드레스를 기입함으로써) 웹페이지를 요청할 때, 서버 (142) 는 요청된 페이지를 송신할 수도 있다. 그러나, 사용자가 웹페이지 상의 폼 (form) 을 채워서 그 폼을 송신할 때, 그 폼은 대개 애플리케이션 프로그램에 의해 프로세싱되어야 한다. 서버 (142) 는 그 폼 정보를 데이터를 프로세싱하는 작은 애플리케이션 프로그램으로 송신할 수도 있으며, 수신확인 메시지를 게이트웨이 인터페이스 (145) 를 이용하여 되송신할 수도 있다.
브라우저 지원 서버 (150) 가 또한 제공될 수도 있다. 일 양태에서, 브라우저 지원 서버 (150) 는 서버 (142) 와 동일한 서버, 또는 상이한 서버일 수 있다. 또 다른 양태에서, 브라우저 어시스턴트는 다수의 상이한 컴퓨터들 상에 상주하는 소프트웨어일 수도 있다.
브라우저 지원 서버 (150) 는 메타데이터를 인터넷 (114) 에 동작가능하게 접속된 모바일 디바이스 (100) 에 제공할 수도 있다. 게이트웨이 인터페이스 (145) 는, 브라우저 지원 서버 (150) 가 웹 사용자의 요청을 애플리케이션 프로그램으로 전달하도록 하고 서버 (150) 가 메타데이터를 사용자로 송신하도록 하는 프로그램 명령들을 갖는다. 일 양태에서, 메타데이터는 그 요청된 브라우징 데이터의 헤더에 내장될 수도 있다. 또 다른 양태에서, 메타데이터는 그 요청된 브라우징 데이터로부터 별개로 송신될 수도 있다.
사용자가 (예를 들어, 하이라이트된 단어를 클릭하거나 또는 웹 사이트 어드레스를 기입함으로써) 웹페이지를 요청할 때, 제 2 요청은 또한 서버 (150) 가 그 요청된 메타데이터를 송신하도록 브라우저 지원 서버 (150) 에 제공될 수도 있다. 또 다른 양태에서, 브라우저 지원 서버 (150) 는 또한 서버 (142) 로의 웹페이지에 대한 요청 데이터를 수신하고 이에 응답하여 별개의 또는 제 2 요청을 수신함이 없이 메타데이터를 모바일 디바이스 (100) 로 전송할 수 있다. 또 다른 양태에서, 메타데이터는 임의의 요청 없이 주기적으로 전송될 수도 있다. 예를 들어, 메타데이터는 주기적으로, 예컨대 매 15분 마다 한번 전달될 수도 있다.
도 2 는 성능을 향상시키기 위해 모바일 통신 디바이스 (100) 에서 분석론을 이용하는 양태 방법 (200) 의 예시를 나타낸다. 분석론은 모바일 디바이스로 하여금 성능을 향상시키는 것을 가능하게 할 수도 있는 임의의 관찰된 또는 계산된 논리적 분석을 포함할 수도 있다. 예를 들어, 분석론은, 어떤 어구들이 다른 어구들보다 더 높은 실행의 우도를 갖고 있어 모바일 디바이스가 다른 어구들보다 더 빨리 그들 어구들을 다운로드할 수 있다는 것을 나타낼 수도 있다.
방법 (200) 은 방법 (200) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서 (131) 를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (200) 에서, 모바일 통신 디바이스 (1) 의 프로세서는 웹 브라우저 애플리케이션에 액세스함으로써 블록 (205) 에서 동작을 개시할 수도 있다. 웹 브라우저는 월드 와이드 웹 상에서 정보 리소스들을 취출하고, 제시하고, 그리고 트래버싱 (traversing) 하기 위한 프로그램 명령들을 가지는 임의의 웹 브라우저일 수도 있다. 정보 리소스는 URI (Uniform Resource Identifier) 에 의해 식별되며, 웹페이지, 이미지, 비디오, 또는 다른 데이터 콘텐츠일 수도 있다. 웹 콘텐츠에 존재하는 하이퍼링크들은 사용자들로 하여금 브라우저를 관련된 리소스로 용이하게 네비게이션가능하게 한다.
웹 브라우저는 정보 리소스들을 모바일 통신 디바이스 (100) 의 사용자로 가져올 수도 있다. 사용자는 URI (Uniform Resource Identifier) 를 브라우저에 입력할 수도 있거나, 또는 링크를 클릭할 수도 있다. 수신된 HTML 스크립트들은 브라우저의 레이아웃 엔진으로 전달되고 마크업 문서로부터 상호작용 문서로 변환될 수도 있다. 웹 브라우저들은 일반적으로 웹페이지의 일부일 수 있는 임의 종류의 콘텐츠를 디스플레이할 수도 있다. 데이터는 이미지, 오디오, 비디오, 및 XML 파일, 플래시 애플리케이션들, 및 Java 애플릿들을 포함할 수도 있다. 웹페이지에서의 상호작용은 JavaScript 에 의해 제공될 수도 있다. JavaScript 는 Ajax 프로그래밍 언어를 통해서 웹페이지의 서버와의 라이브 (live) 상호작용을 가능하도록 하기 위해 다른 기술들과 함께 사용될 수도 있다. JavaScript 프로그램들은 API 를 이용하여 상호작용 (interactive) 2D 그래픽들을 발생할 수도 있으며, 3D 그래픽들을 렌더링할 수도 있다.
블록 (210) 에서, 프로세서는 분석론을 서버 (150) 로부터 모바일 통신 디바이스 (100) 로 전송할 수도 있다. 예를 들어, 분석론은 메타데이터 내에서 전달될 수도 있으며, 그러나 또한 분석론은 다른 포맷들로 전달될 수도 있다. 용어 메타데이터는 데이터에 관한 임의의 데이터를 지칭하며, 브라우저 성능을 예상하거나, 또는 웹 브라우저 또는 모바일 통신 디바이스가 성능을 향상시키는 것을 돕기 위해 힌트들을 제공하는 정보를 포함할 수 있다.
메타데이터는 데이터 구조들의 설계 및 사양에 관한 데이터를 포함할 수도 있다. 메타데이터는 또한 애플리케이션 데이터 또는 데이터 콘텐츠를 포함하는 서술적인 메타데이터 (descriptive metadata) 를 포함할 수도 있다. 메타데이터는 또한 통계적 정보를 포함할 수도 있으며, 원본 데이터 또는 파일들의 품질이 크게 증가되도록 콘텐츠의 임의의 설명 및 데이터 파일들의 컨텍스트일 수 있다. 예를 들어, 메타데이터는 좀더 효율적으로 조작하여 디바이스의 수명을 증가시키기 위해 모바일 통신 디바이스를 도움으로써 사용자의 경험을 향상시킬 수도 있다.
블록 (215) 에서, 모바일 통신 디바이스 (100) 와 연관된 제 2 프로세서는 분석론을 수신할 수도 있다. 이것은 서버 (150) 로부터 직접 또는 매개자로부터 메타데이터를 다운로드하는 모바일 통신 디바이스에 의해 달성될 수도 있다. 또 다른 양태에서, 메타데이터는 데이터 콘텐츠 내에 내장될 수도 있다. 또 다른 양태에서, 메타데이터는 피어 디바이스로 다운로드될 수도 있거나 또는 홈 네트워크 디바이스로부터 다운로드될 수도 있다. 블록 (220) 에서, 모바일 통신 디바이스 프로세서는 성능을 향상시키기 위해 분석론을 이용한다. 예를 들어, 메타데이터는 인기 있는 웹 콘텐츠 부분들 또는 실행될 높은 통계적 우도를 갖는 콘텐츠를 식별할 수도 있다.
도 3 은 인터넷 (114) 에 접속된 모바일 통신 디바이스 (100) 및 브라우저 지원 서버 (150) 의 하이 레벨 개략도를 나타낸다. 웹페이지에 대한 요청 (1a) 은 모바일 통신 디바이스 (100) 로부터 인터넷 (114) 으로 송신될 수도 있다. 요청 (1a) 은 웹페이지에 대한 것일 수도 있으며, 웹 URL 을 포함할 수도 있다. 요청 (1a) 은 HTML, XML, JavaScript, 캐스케이딩 스타일 시트들, XHTML, 및 데이터 오브젝트들을 리턴할 수도 있다.
모바일 통신 디바이스 (100A) 는 제 2 요청 (1b) 을 브라우저 지원 서버 (150) 로 송신할 수도 있다. 제 2 요청 (1b) 은 메타데이터를 리턴한다. 메타데이터는 모바일 통신 디바이스 (100) 상에서의 브라우저의 다음 액션을 예상하는 힌트들을 포함할 수도 있다. 메타데이터는 모바일 통신 디바이스로 하여금 웹 브라우저의 요청 (1a) 을 더 좋게 파싱하거나, 분석하거나, 및/또는 실행가능하게 하는 정보를 포함한다. 메타데이터는 Ajax, XML, 또는 J-SAW 에 있을 수도 있다.
화살표 2 로 나타낸 바와 같이, 모바일 통신 디바이스 (100) 는 메타데이터를 이용하여 요청된 웹페이지를 좀더 효율적으로 처리할 수 있으며, 이것은 더 빠른 실행 시간들, 더 낮은 전력 사용, 또는 더 적은 프로세싱 시간을 초래할 수 있다. 예를 들어, 모바일 통신 디바이스 (100) 상에서 동작가능한 제 1 브라우저를 이용하여, 사용자는 하이퍼링크를 선택할 수도 있다. 웹페이지에 대한 요청 (1a) 은 HTML, XML, JavaScript, 캐스케이딩 스타일 시트들, XHTML, 및 데이터 오브젝트들에 액세스하기 위해 전달될 수도 있다. 제 1 브라우저는 사용자에게 알려져 있지 않고 브라우징 경험을 혼란시키지 않는 제 2 요청 (1b) 을 추가로 전송할 수도 있다.
브라우저 지원 서버 (150) 는 제 2 요청 (1b) 을 수신할 수도 있다. 브라우저 지원 서버 (150) 는 막 렌더링되려는 웹페이지에서 JavaScript 가 존재한다고 검출함으로써 성능을 향상시킬 수도 있다. 브라우저 지원 서버 (150) 는 그 JavaScript 를 이미 컴파일하였을 수도 있거나, 또는 그 코드를 즉시 컴파일할 수도 있다. 브라우저 지원 서버 (150) 는 2진 파일 (또는, 또 다른 네이티브 포맷) 로 컴파일된 JavaScript 를 모바일 통신 디바이스 (100) 브라우저로 전달할 수도 있다. 컴파일된 JavaScript 2진 파일은 그 코드를 모바일 통신 디바이스 상의 프로세서 상에서 컴파일하는 부담을 제거하여, 렌더링 시간 및 프로세싱 리소스들을 절약한다. 사전 컴파일된 JavaScript 는 모바일 통신 디바이스 상에서 렌더링된다.
또 다른 양태에서, 브라우저 지원 서버 (150) 는 요청들 (1a 및 1b) 양자를 수신하고 메타데이터 및 웹 콘텐츠를 제공할 수도 있다. 또 다른 양태에서, 브라우저 지원 서버 (150) 는 그의 자신의 운영 시스템을 각각 실행하는 상이한 머신들 사이의 하부의 물리적인 머신 리소스들의 공유를 가능하게 하기 위해 모바일 통신 디바이스 (100) 상에 가상 머신을 제공할 수도 있다. 이것은 모바일 디바이스 프로세서 상에서 프로세싱 부담을 감소시킬 수도 있다.
도 4 는 요청을 형성하고 메타데이터를 공유하며 인터넷 (114) 에 접속된 모바일 통신 디바이스 (100), 및 브라우저 지원 서버 (150) 를 예시한다. 웹페이지에 대한 요청은 모바일 통신 디바이스 (100) 로부터 인터넷 (114) 상의 서버로 전송될 수도 있다. 웹페이지에 대한 요청은 웹 URL (web uniform resource identifier) 을 포함할 수도 있다. 인터넷 서버는 HTML, XML, JavaScript, 캐스케이딩 스타일 시트들, XHTML, 및 데이터 오브젝트들을 리턴할 수도 있다. 제 2 요청 (1) 은 또한 모바일 통신 디바이스 (100) 로부터 브라우저 지원 서버 (150) 로 전송될 수도 있다.
요청 (1) 은 모바일 통신 디바이스의 브라우저에 대한 힌트들을 포함하는 메타데이터 (3) 를 리턴할 수도 있다. 힌트들은 모바일 통신 디바이스 (100) 상에서의 브라우저의 다음 액션을 예상할 수도 있다. 메타데이터는 모바일 통신 디바이스 (100) 로 하여금 웹 브라우저의 요청 (1) 을 더 좋게 파싱하거나, 분석하거나, 및/또는 실행가능하게 하는 정보를 포함할 수도 있다. 브라우저 지원 서버 (150) 는 또한 요청 (1) 을 프로세싱할 수도 있다. 브라우저 지원 서버 (150) 는 통계적인 관찰된 브라우징 패턴들에 기초하여, 높은 실행의 확률을 갖는 웹페이지 내 JavaScript 부분들, 및 낮은 실행의 확률을 갖는 다른 제 2 부분들이 존재한다고 검출함으로써, 성능을 향상시킬 수도 있다. 통계적인 관찰된 브라우징 패턴들은 여러 소스들에 기인할 수도 있다. 예를 들어, 통계적인 관찰된 브라우징 패턴들은 다수의 모니터링된 웹 브라우저들로부터 모니터링될 수도 있다. 브라우저 지원 서버 (150) 는 경험적 데이터를 획득하고 그 경험적 데이터를 인덱스로 저장할 수도 있다. 이의 대안으로, 통계적인 관찰된 브라우징 패턴들은 모바일 통신 디바이스 (100) 로부터 모니터링될 수도 있다. 이의 대안으로, 제 3 컴퓨팅 디바이스는 브라우징 습관들을 관찰하고, 그 브라우징 습관들을 저장 매체에 인덱스로 저장하여 그 인덱스를 브라우저 지원 서버 (150) 에 업로드할 수도 있다.
이의 대안으로, 통계적인 관찰된 브라우징 패턴들은 다수의 피어 디바이스들로부터 관찰될 수도 있다. BAS 서버 (150) 는 피어 디바이스들의 브라우저 데이터를 조사하고, 그 경험적 데이터를 인덱스로 저장할 수도 있다.
대안적인 양태에서, 프로그래머는 표시를 모바일 디바이스 (100) 에 제공하기 위해, 일부 부분들이 높은 실행의 확률을 갖지만 그 밖의 부분들은 낮은 실행의 확률을 갖는다는 것을 나타내는 데이터를 실제 코드 내에 포함시킬 수도 있다. 브라우저 지원 서버 (150) 는 JavaScript 를 사전 컴파일하여, 2진 또는 네이티브 포맷으로 사전 컴파일된 JavaScript 의 높은 실행의 확률 부분을 송신할 수도 있다.
브라우저 지원 서버 (150) 는 화살표 3 으로 나타낸 바와 같이 데이터 또는 메타데이터를 모바일 통신 디바이스 (100) 로 전달할 수도 있다. 메타데이터는 제 1 높은 확률의 실행 부분을 다운로드하지만 제 2 낮은 확률 실행 부분을 다운로드하지 않기 위한 힌트들을 포함할 수도 있다. 이의 대안으로, 메타데이터는 제 1 (높은 실행의 확률) 부분을 다운로드하지만 나중에 제 2 (낮은 확률 실행 부분) 을 다운로드해야 한다는 힌트들을 포함할 수도 있다.
도 5a 는 모바일 디바이스 (100) 에서 전력을 절약하기 위해 메타데이터를 브라우저 지원 서버 (150) 로부터 모바일 통신 디바이스로 리턴하는 양태 방법 (500) 을 예시한다. 방법 (500) 은 방법 (500) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서 (131) 를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다.
방법 (500) 에서, 프로세서 (131) 는 웹페이지 콘텐츠에 관한 통계적 정보를 결정하기 위해 다수의 다른 사용자들로부터 데이터를 수집함으로써 블록 (502) 에서 동작을 개시할 수도 있다. 예를 들어, 통계적 정보는 어떤 웹 콘텐츠 엘리먼트들이 그 수집된 데이터에 기초하여 보여 지거나 또는 실행될 높은 확률을 갖는다는 것을 나타내는 습관 데이터를 포함할 수도 있다. 그러나, 이 데이터는 모바일 디바이스 (100) 의 좀더 효율적인 동작을 초래할 임의의 다른 정보를 포함할 수도 있다.
블록 (504) 에서, 프로세서는 브라우저 지원 서버로부터의 웹페이지에 관한 메타데이터를 요청할 수도 있다. 블록 (506) 에서, 프로세서는 웹페이지에 대한 모바일 디바이스로부터의 요청을 전송할 수도 있다. 결정 블록 (508) 에서, 프로세서는 다른 사용자들로부터 수집된 데이터 및 요청을 이용하여, 브라우저 지원 서버가 그 요청을 더 좋게 파싱하거나, 분석하거나 또는 실행하기 위한 정보를 갖고 있는지 여부를 결정할 수도 있다.
예를 들어, 브라우저 지원 서버는 관찰된 통계치들에 기초하여 어떤 JavaScript 가 높은 실행의 확률을 갖는 부분을 포함한다고 결정할 수도 있다. 만약 그렇다면 (즉, 결정 블록 508= "예"), 서버 (150) 에서의 프로세서에 의해 그 요청을 더 좋게 파싱하거나, 분석하거나, 또는 실행하기 위해 존재한다는 것을 나타내며, 블록 (512) 에서 프로세서는 메타데이터를 모바일 디바이스로 리턴할 수도 있다. 한편, BAS (150) 가 모바일 디바이스 (100) 에 대한 요청을 더 좋게 파싱하거나, 검출하거나 또는 분석하기 위한 정보를 갖고 있지 않으면 (즉, 결정 블록 508= "아니오"), 블록 (510) 에서 프로세서는 어떤 리턴할 메타데이터도 갖고 있지 않을 수도 있다. 모바일 통신 디바이스는 블록 (516) 에서 웹페이지 코드를 실행할 수도 있다.
블록 (512) 에서, 브라우저 지원 서버의 프로세서는 메타데이터를 모바일 디바이스로 리턴할 수도 있다. 예를 들어, 메타데이터는 라이브러리의 일부가 웹 브라우저에 의해 이용될 희박한 가능성을 갖는다는 것을 암시할 수도 있으며, 즉시 다운로드되지 않을 수도 있다. 또 다른 양태에서, 메타데이터는 컴파일된 JavaScript 에 대응하는 2진 파일 (또는, 네이티브 언어 파일) 을 포함할 수도 있다. 이 정보는, 모바일 디바이스가 JavaScript 를 파싱하거나, 분석하거나, 또는 실행할 필요가 없을 수도 있기 때문에, 브라우저 동작들을 향상시키는 것을 가능하게 할 수도 있다.
블록 (514) 에서, 모바일 디바이스의 프로세서는 웹 프로세싱을 용이하게 하기 위해 메타데이터를 이용할 수 있다. 예를 들어, 모바일 프로세서는 웹페이지들에 포함된 HTML 이 직렬로 프로세싱되기 보다는, 병렬로 프로세싱될 수 있는 섹션들을 갖는다고 (메타데이터를 이용하여) 결정할 수도 있다. 모바일 프로세서는 메타데이터에 기초하여, 웹페이지 엘리먼트들을 병렬로 프로세싱할 수도 있다. 예를 들어, 메타데이터는 JavaScript 함수 확률들, 스크립트 토큰들, 또는 렉싱 정보를 포함할 수도 있으며, 모바일 프로세서는 높은 실행의 확률을 갖는 JavaScript 를 실행하면서 그후에 다른 부분들을 실행함으로써, 메타데이터를 이용하여 웹페이지를 렌더링할 수도 있다. 블록 (516) 에서, 모바일 디바이스를 위한 프로세서는 웹페이지 코드를 실행할 수도 있으며, 메타데이터 힌트들이 제공되지 않는 경우보다 더 빠른 방법으로 웹페이지를 렌더링할 수도 있다.
도 5b 는 모바일 디바이스 (100) 에서 모바일 리소스들을 절약하기 위해 다수의 사용자들로부터 데이터를 수집하고 그리고 메타데이터를 모바일 통신 디바이스로 리턴하는 도구화된 브라우저와 함께 사용하기 위한 양태 방법 (550) 을 예시한다. 도구화된 브라우저는 웹 브라우저에 대한 적어도 하나의 애드온 모듈을 포함할 수도 있다. 애드온 (add on) 모듈은 사용자의 활동을 모니터링할 수도 있다. 다수의 사용자들의 도구화된 브라우저는 많은 디바이스들의 습관 데이터를 모을 수도 있다. 예를 들어, 도구화된 브라우저는 키스트로크들을 로그 (log) 할 수도 있거나 또는 사용자 상호작용의 세부 사항들이 모니터링되고, 수집되고, 그리고 기록될 수 있게 사용자의 입력들을 로그할 수도 있다. 습관 정보는 사용자(들)의 습관들에 관련된 경험적 분석 데이터 및 모바일 디바이스 성능을 향상시키는데 사용될 수 있는 논리적 관계들을 포함할 수도 있다.
방법 (550) 은 방법 (550) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서 (131) 를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (550) 에서, 프로세서 (131) 는 블록 (518) 에서 웹페이지 콘텐츠에 관한 통계적 정보를 결정하기 위해, 다수의 다른 웹 사용자들로부터 데이터를 수집하는 도구화된 브라우저와 연관된 프로세서에 의해 동작을 개시할 수도 있다. 통계적 정보는 어떤 웹 콘텐츠 엘리먼트들이 그 수집된 데이터에 기초하여 보여지거나 또는 실행될 높은 확률을 갖는 데이터를 포함할 수도 있다. 또 다른 양태에서, 이 데이터는 브라우저의 사용자에 특유할 수도 있다. 예를 들어, 브라우징 동안, 사용자는 다른 웹 엘리먼트들보다 특정의 파일들 또는 파일 유형들을 실행하는 습관을 가질 수도 있다. 예를 들어, 특정의 사용자는 매일 아침 오전 8:00시에 JavaScript 엘리먼트들이 실행되도록 요구하는 금융 사이트들에 액세스할 수도 있다.
블록 (520) 에서, 프로세서는 웹페이지에 관한 메타데이터를 요청할 수도 있다. 블록 (522) 에서, 프로세서는 웹페이지에 대한 모바일 디바이스로부터의 요청을 전송할 수도 있다. 결정 블록 (524) 에서, 프로세서는 도구화된 브라우저로부터 수집된 데이터를 이용하여, 그 요청을 더 좋게 파싱하거나, 분석하거나, 또는 실행할 수도 있다. 예를 들어, 도구화된 브라우저는 관찰된 통계치들에 기초하여 어떤 JavaScript 가 높은 실행의 확률을 갖는 부분을 포함한다고 결정할 수도 있다. 이의 대안으로, 도구화된 브라우저는, 사용자가 동일한 웹페이지를 매일 오전 9:00시에 검토하고 그 도구화된 브라우저가 웹페이지 엘리먼트들의 모두를 그 다음날 다운로드할 필요가 없도록 어떤 데이터가 그 다음날을 위해 캐시되었다고 결정할 수도 있다.
만약 그렇다면 (즉, 결정 블록 524= "예"), 도구화된 브라우저가 그 요청을 더 좋게 파싱하거나, 분석하거나 또는 실행하기 위한 정보를 갖는다는 것을 나타내며, 블록 (528) 에서 프로세서는 메타데이터를 모바일 디바이스로 리턴할 수도 있다. 예를 들어, 메타데이터는 라이브러리의 일부가 웹 브라우저에 의해 이용될 희박한 가능성을 갖는다는 것을 나타낼 수도 있으며, 다운로드되지 않을 수도 있다. 또 다른 양태에서, 메타데이터는 JavaScript 에 대응하는 사전 컴파일된 2진 (또는, 네이티브 언어) 파일을 포함할 수도 있으며, 따라서 모바일 디바이스가 도구화된 브라우저를 돕기 위해 JavaScript 를 파싱하거나, 분석하거나 또는 실행할 필요가 없다. 따라서, 도구화된 브라우저는 간단히 네이티브 언어를 이용하여, JavaScript 어구를 렌더링할 수 있다.
한편, 도구화된 브라우저가 모바일 디바이스 (100) 에 대한 요청을 더 좋게 파싱하거나, 검출하거나 또는 분석하기 위한 정보를 갖고 있지 않으면 (즉, 결정 블록 524= "아니오"), 프로세서는 블록 (526) 에서 어떤 리턴할 메타데이터도 갖지 않을 수도 있으며, 모바일 통신 디바이스는 블록 (532) 에서 웹페이지 코드를 실행할 수 있다. 블록 (530) 에서, 모바일 디바이스의 프로세서는 메타데이터를 이용하여 웹 프로세싱을 용이하게 할 수 있다. 블록 (532) 에서, 모바일 디바이스를 위한 프로세서는 웹페이지 코드를 실행하고 웹페이지를 좀더 효율적인 방법으로 렌더링한다.
도 5c 는 모바일 디바이스 (100) 에서 모바일 리소스들을 절약하기 위해 사용자로부터 데이터를 수집하고 메타데이터를 모바일 통신 디바이스로 리턴하는 웹 브라우저와 함께 사용하기 위한 양태 방법 (580) 을 예시한다. 브라우저는 사용자의 활동을 모니터링한다. 방법 (580) 은 방법 (580) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (580) 에서, 프로세서는 블록 (534) 에서 동작을 개시할 수도 있다. 웹 브라우저와 연관된 프로세서는 웹 브라우저 세션으로부터 데이터를 수집할 수도 있다. 이것은 웹페이지 콘텐츠를 보거나 또는 브라우징할 때 사용자의 습관들에 관한 통계적 정보를 결정하는데 사용될 수 있다. 예를 들어, 데이터는 브라우저의 사용자에 특유할 수도 있다. 예를 들어, 사용자는 다른 엘리먼트들보다 통계적으로 더 많이 특정의 파일들 또는 파일 유형들을 실행하는 습관을 갖는다.
블록 (536) 에서, 프로세서는 웹페이지에 관한 메타데이터에 대한 요청을 전송할 수도 있다. 블록 (538) 에서, 프로세서는 웹페이지에 대한 모바일 디바이스로부터의 요청을 전송할 수도 있다. 결정 블록 (540) 에서, 프로세서는 사용자의 웹 브라우징으로부터 수집된 데이터를 이용하여, 그 요청을 더 좋게 파싱하거나, 분석하거나 또는 실행할 수도 있다. 예를 들어, 브라우저는 관찰된 통계치들에 기초하여 어떤 JavaScript 어구들이 높은 실행의 확률을 갖는 부분을 포함한다고 결정할 수도 있다. 이의 대안으로, 브라우저는 사용자가 동일한 웹페이지를 매일 오전 9:00시에 검토하고 어떤 데이터가 그 다음날 캐시된다고 결정할 수도 있다. 따라서, 브라우저는 웹페이지 엘리먼트들의 모두를 그 다음날 다운로드할 필요가 없으며, 좀더 효율적으로 동작할 수도 있다.
만약 그렇다면 (즉, 결정 블록 540= "예"), 브라우저가 그 요청을 더 좋게 파싱하거나, 분석하거나 또는 실행하기 위한 정보를 갖고 있다는 것을 나타내며, 프로세서는 블록 (544) 에서 메타데이터를 모바일 디바이스로 리턴할 수도 있다. 한편, 브라우저가 모바일 디바이스 (100) 에 대한 요청을 더 좋게 파싱하거나, 검출하거나 또는 분석하기 위한 정보를 갖고 있지 않으면 (즉, 결정 블록 540= "아니오"), 프로세서는 블록 (542) 에서 리턴할 어떤 메타데이터도 갖지 않을 수도 있으며, 모바일 통신 디바이스는 블록 (548) 에서 웹페이지 코드를 실행할 수도 있다. 블록 (544) 에서, 웹 브라우저의 프로세서는 메타데이터를 모바일 디바이스로 리턴할 수도 있다. 블록 (546) 에서, 모바일 디바이스의 프로세서는 메타데이터를 이용하여 웹 프로세싱을 용이하게 할 수 있다. 블록 (548) 에서, 모바일 디바이스를 위한 프로세서는 웹페이지 코드를 실행하고 웹페이지를 메타데이터 힌트들이 제공되지 않는 경우보다 더 빠른 방법으로 렌더링한다.
도 6 은 모바일 디바이스 (100) 에서 모바일 리소스들을 효율적으로 사용하기 위해 사용자의 데이터를 수집하고 메타데이터를 모바일 통신 디바이스로 리턴하는 피어 디바이스와 함께 사용될 수도 있는 양태 방법 (600) 을 예시한다. 피어-투-피어 디바이스는 모바일 디바이스 및/또는 다른 디바이스들 (미도시) 과 통신하는, 또 다른 모바일 디바이스, 액세스 지점, 다른 디바이스 등일 수 있다. 일 예에서, 피어 디바이스는 기지국과 협력하여 또는 기지국에 대한 대안으로서 통신 서비스들을 제공하는 홈 또는 기업에서 독립적으로 급전되는 (powered) 디바이스일 수 있다. 게다가, 피어-투-피어 디바이스는 이웃하는 디바이스들을 식별할 수 있다. 일 예에서, 피어-투-피어 디바이스는 기지국으로부터 모바일 디바이스들로의 다운링크 할당들을 수신하거나 아니면 청취할 수 있다. 피어 디바이스는 또한 (예컨대, 업링크 송신들 내 정보에 기초하여) 모바일 디바이스들을 식별하기 위해 다운링크 할당들에서의 리소스들을 넘어서 모바일 디바이스들로부터의 업링크 송신들을 수신하거나 또는 아니면 청취할 수 있다. 피어 디바이스는 사용자의 활동을 모니터링하는 웹 브라우저를 동작시킬 수도 있다.
방법 (600) 은 방법 (600) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (600) 에서, 프로세서는 블록 (602) 에서 웹 브라우저 세션으로부터 데이터를 수집하는 피어 디바이스의 프로세서에 의해 동작을 개시할 수도 있다. 이것은 웹페이지 콘텐츠에 관한 통계적 정보를 결정하기 위해 수행될 수도 있다.
예를 들어, 통계적 정보는 어떤 웹 콘텐츠 엘리먼트들이 그 수집된 데이터에 기초하여 보여지거나 또는 실행될 높은 확률을 갖는 데이터를 포함할 수도 있다. 또 다른 양태에서, 이 데이터는 브라우저의 사용자에 특유할 수도 있다. 예를 들어, 사용자는 다른 엘리먼트들보다 통계적으로 더 많이 특정의 파일들 또는 파일 유형을 실행하는 습관을 가질 수도 있다. 피어 디바이스는 모바일 디바이스 상에서 관찰된 브라우징 습관들에 기초하여 브라우저의 다음 액션을 예상하기 위한 힌트들을 형성하도록 메타데이터를 발생할 수도 있다. 또 다른 양태에서, 피어 디바이스는 다른 피어 디바이스들로부터 메타데이터를 수신할 수도 있으며, 많은 사용자들의 브라우징 습관들에 관련된 데이터를 집합하여 힌트들을 형성할 수도 있다. 또 다른 양태에서, 피어 디바이스는 브라우저 지원 서버로부터 메타데이터를 수신할 수도 있으며, 그 메타데이터를 다른 피어 디바이스들과 공유할 수도 있다. 추가 양태에서, 피어 디바이스는 습관 데이터를 수집할 수도 있다.
블록 (604) 에서, 프로세서는 웹페이지에 관한 메타데이터를 요청할 수도 있다. 블록 (606) 에서, 프로세서는 웹페이지에 대한 모바일 디바이스로부터의 요청을 전송할 수도 있다. 결정 블록 (608) 에서, 프로세서는 피어 디바이스로부터 수집된 데이터가 그 요청을 더 좋게 파싱하거나, 분석하거나 또는 실행할 수 있는지 여부를 결정할 수도 있다.
만약 그렇다면 (즉, 결정 블록 608= "예"), 피어 디바이스가 그 요청을 더 좋게 파싱하거나, 분석하거나 또는 실행하기 위한 정보를 갖고 있다는 것을 나타내며, 프로세서는 블록 (612) 에서 메타데이터를 모바일 디바이스로 리턴할 수도 있다. 한편, 피어 디바이스가 모바일 디바이스 (100) 에 대한 요청을 더 좋게 파싱하거나, 검출하거나 또는 분석하기 위한 정보를 갖고 있지 않으면 (즉, 결정 블록 608= "아니오"), 프로세서는 블록 (610) 에서 리턴할 어떤 메타데이터도 갖지 않을 수도 있으며, 모바일 통신 디바이스는 블록 (616) 에서 웹페이지 코드를 실행할 수도 있다.
블록 (612) 에서, 피어 디바이스의 프로세서는 메타데이터를 모바일 디바이스로 리턴할 수도 있다. 예를 들어, 메타데이터는 모바일 디바이스의 동작들을 향상시킬 수 있으며, 메타데이터는 모바일 디바이스 브라우저에게 웹페이지들의 어떤 부분들이 높은 실행의 우도 또는 높은 보여질 우도를 갖고 있다고 지시할 수도 있으며, 피어 디바이스에 의해 집합된 데이터에 기초하여 (또는, 또 다른 소스로부터의, 피어 디바이스에 의해 학습된 데이터에 의해) 다운로드될 수도 있다. 예를 들어, 메타데이터는 라이브러리의 일부가 이용될 희박한 가능성을 갖는다는 것을 나타낼 수도 있다.
블록 (614) 에서, 모바일 디바이스의 프로세서는 웹 프로세싱을 용이하게 하기 위해, 피어 디바이스로부터의 메타데이터를 이용할 수 있다. 예를 들어, 모바일 프로세서는 메타데이터를 이용하여, 웹페이지들에 포함된 HTML 이 직렬로 프로세싱되기 보다는, 병렬로 프로세싱될 수 있는 부분을 갖는다고 결정할 수도 있다. 모바일 프로세서는 웹페이지 엘리먼트들을 피어 디바이스로부터 제공된 메타데이터에 기초하여 병렬로 프로세싱할 수도 있다. 블록 (616) 에서, 모바일 디바이스를 위한 프로세서는 웹페이지 코드를 실행하고 웹페이지를 렌더링한다.
도 7 은 디바이스로 하여금 그의 모바일 디바이스 리소스들을 효율적으로 사용가능하게 하기 위해 사용자의 데이터를 수집하고 메타데이터를 모바일 통신 디바이스 (100) 로 리턴하는 네트워크 디바이스와 함께 사용하기 위한 양태 방법 (700) 을 예시한다. 예를 들어, 본 양태에서, 모바일 통신 디바이스 (100) 는 홈 네트워크의 부분을 형성하며, 데이터를 홈 네트워크를 통해서 수신하고 송신할 수 있다. 예를 들어, 홈 네트워크는 컴퓨터에 접속되고 액세스 지점을 형성하는 게이트웨이를 포함할 수도 있다. 예를 들어, 모바일 디바이스 (100) 는 인터넷에 접속된 액세스 지점에 액세스하기 위한 무선 인터페이스를 포함할 수도 있다. 프로세서 및 메모리를 갖는 네트워크 컴퓨터는 또한 인터넷에 접속된 모뎀에 접속될 수도 있다.
네트워크 디바이스는 데스크탑 컴퓨터, 랩탑 컴퓨터, 모바일 디바이스, 태블릿 컴퓨터, 또는 모바일 디바이스 및/또는 다른 디바이스들 (미도시) 과 통신하는 다른 디바이스일 수도 있다. 네트워크 디바이스는 웹 브라우저 상에서의 사용자의 활동을 모니터링할 수도 있으며, 모바일 디바이스와 쌍을 이루어서 데이터를 모바일 디바이스에 제공할 수도 있다. 방법 (700) 은 방법 (700) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (700) 에서, 네트워크 디바이스와 연관된 프로세서는 블록 (702) 에서 웹페이지 콘텐츠에 관한 통계적 정보를 결정하기 위해 사용자에 의해 웹 브라우저 세션으로부터 데이터를 수집함으로써 동작을 개시할 수도 있다. 또 다른 양태에서, 네트워크 디바이스는 또한 인터넷 (114) 을 통해서 브라우저 지원 서버 (150) 와 통신할 수도 있다. 네트워크 디바이스는 또한 다른 사용자들의 웹 브라우징 습관들로부터의 데이터를 수신할 수도 있다. 네트워크 디바이스는 데이터를 이용하여, 웹 브라우저의 다음 액션을 예측할 수도 있다. 예를 들어, 네트워크 컴퓨터 디바이스는 모바일 디바이스 상에서 관찰된 브라우징 습관들에 기초하여 브라우저의 다음 액션을 예상하기 위한 힌트들을 형성하기 위해 메타데이터를 발생할 수도 있다.
블록 (704) 에서, 프로세서는 웹페이지에 관한 메타데이터를 요청할 수도 있다. 예를 들어, 메타데이터는 네트워크 디바이스, 피어 디바이스, 또는 브라우저 지원 서버 (150) 에서 발생될 수도 있다. 블록 (706) 에서, 프로세서는 웹페이지에 대한 모바일 디바이스로부터의 요청을 전송할 수도 있다.
결정 블록 (708) 에서, 네트워크 디바이스의 프로세서는 브라우저가 그 요청을 더 좋게 파싱하거나, 분석하거나 또는 실행할 수 있는 정보를 네트워크 디바이스가 갖고 있는지 여부를 결정할 수도 있다. 예를 들어, 네트워크 디바이스는 관찰된 통계치들에 기초하여 어떤 JavaScript 어구들이 높은 실행의 확률을 갖는 부분을 포함한다고 결정할 수도 있다. 네트워크 디바이스는 그 요청을 검토할 수도 있으며 메타데이터가 그 요청에 관련된다고 결정할 수도 있으며 모바일 디바이스 브라우저로 전송될 수도 있다.
만약 그렇다면 (즉, 결정 블록 708= "예"), 네트워크 디바이스가 그 요청을 더 좋게 파싱하거나, 분석하거나, 또는 실행하기 위한 정보를 갖고 있다는 것을 나타내며, 프로세서는 블록 (712) 에서 메타데이터를 모바일 디바이스로 리턴할 수도 있다. 한편, 네트워크 컴퓨터 디바이스가 모바일 디바이스 (100) 에 대한 요청을 더 좋게 파싱하거나, 검출하거나, 또는 분석하기 위한 정보를 갖고 있지 않으면 (즉, 결정 블록 708= "아니오"), 프로세서는 블록 (710) 에서 리턴할 어떤 메타데이터도 갖지 않을 수도 있으며, 모바일 통신 디바이스는 블록 (716) 에서 웹페이지 코드를 실행할 수도 있다.
블록 (712) 에서, 네트워크 디바이스의 프로세서는 메타데이터를 모바일 디바이스로 별개의 파일로서 또는 콘텐츠의 헤더에 내장되어 리턴될 수도 있다. 블록 (714) 에서, 모바일 디바이스의 프로세서는 웹 프로세싱을 용이하게 하기 위해 네트워크 디바이스로부터의 메타데이터를 이용할 수 있다. 예를 들어, 다수의 관찰된 사용자들에 기초하여, 메타데이터는 웹페이지의 부분이 통계적 정보에 기초하여 가장 많이 본 웹페이지 엘리먼트라는 것을 나타낼 수도 있다. 메타데이터는 가장 많이 본 웹페이지 엘리먼트가 다른 웹페이지 엘리먼트들에 앞서 먼저 다운로드될 수도 있다는 것을 나타낼 수도 있다. 이의 대안으로, 네트워크 디바이스는 라이브러리가 적어도 (1) 높은 확률 실행가능한 부분 또는 (2) 낮은 확률 실행 부분을 포함한다는 것을 나타내는 메타데이터를 통신할 수도 있다. 메타데이터는 프로세서가 또 다른 부분, 시퀀스 또는 스키마를 통하여 하나의 부분을 먼저 다운로드할 수도 있다는 것을 나타낼 수도 있다. 블록 (716) 에서, 모바일 디바이스를 위한 프로세서는 웹페이지 코드를 실행하고 웹페이지를 렌더링한다. 메타데이터 힌트들을 이용함으로써, 모바일 디바이스 리소스들이 절약된다.
도 8 은 메타데이터 또는 다른 패킷들 (802-814) 을 기지국 (1) 을 통해서 통신 네트워크로, 그리고, 모바일 통신 디바이스 (100) 로 전달하는 브라우저 지원 서버 (150) 의 하이 레벨 통신 다이어그램을 예시한다. 송신되는 메타데이터 또는 다른 데이터 패킷들 (802-814) 은 제한들을 형성하지 않으며, 일부 메타데이터는 다른 메타데이터가 전송되지 않는 동안 전송될 수도 있다. 예를 들어, 요청에 따라서, 일부 메타데이터는 적합할 수도 있지만, 다른 메타데이터는 적합하지 않을 수도 있다. 브라우저 지원 서버 (150) 로부터 송신된 예시적인 데이터는 블록 (802) 으로 나타낸 바와 같이 브라우징 습관들에 기초하여 푸시되는 데이터를 포함할 수도 있다. 모바일 통신 디바이스 (100) 에 의한 사용을 위해 네이티브 포맷으로 사전 프로세싱된 웹페이지들이 블록 (804) 으로 도시된다. 사용자 통계치 메타데이터 (806), 메타데이터 힌트들 (808), 파싱을 돕기 위한 메타데이터 (810), 실행을 돕기 위한 메타데이터 (812), 및 웹페이지 요청을 분석하는 것을 돕기 위한 메타데이터 (814) 가 또한 브라우저 지원 서버 (150) 로부터 모바일 통신 디바이스 (100) 로 전달될 수도 있다.
모바일 통신 디바이스 프로세서는 사용자가 모바일 통신 디바이스 상에서 동작가능한 웹 브라우저를 이용하여 제 1 웹페이지를 열려고 한다는 것을 나타내는 하이퍼링크를 사용자가 클릭한 입력을 수신할 수도 있다. 이에 응답하여, 모바일 통신 디바이스 (100) 는 블록 (816) 에서 웹페이지 콘텐츠에 대한 요청 (816) 을 전송할 수도 있다. 요청 (816) 은 모바일 통신 기지국 (1) 으로 송신된다. 예를 들어, 기지국 (1) 은 웹 콘텐츠를 획득하기 위해 그 요청을 서버 (142) (도 1) 로 전송할 수도 있다.
블록 (818) 에서 브라우저 지원 서버에 대한 요청이 기지국 (1) 으로 전송된다. 기지국 (1) 은 요청을 브라우저 지원 서버 (150) 로 통신한다. 이 요청에 응답하여, 브라우저 지원 서버 (150) 는 모바일 통신 디바이스 (100) 가 웹페이지를 프로세싱하는 것을 돕기 위해, 하나 이상의 메타데이터 블록들 (802-814), 데이터, 캐시된 데이터, 또는 다른 메타데이터를 전달할 수도 있다. 일부 데이터는 임의의 요청 (818) 을 수신함이 없이 모바일 통신 디바이스로 푸시될 수 있다.
예를 들어, 모바일 통신 디바이스 (100) 는 공간 제약들로 인해 메모리 및 데이터 콘텐츠를 주기적으로 소거할 수도 있다. 메타데이터는 일부 데이터 콘텐츠가 모바일 통신 디바이스 (100) 를 위해서 타게팅된 서비스들로서 서버 (150) 에 캐시될 수도 있다는 것을 나타낼 수도 있다. 이의 대안으로, 캐시된 데이터는 임의의 요청 없이 모바일 통신 디바이스를 어떤 차후의 간격 (future interval) 에서 푸시될 수도 있다. 이 메타데이터를 이용하여, 모바일 통신 디바이스 (100) 는 웹페이지 (820) 를 효율적인 방법으로 렌더링할 수도 있다. 모바일 통신 디바이스 (100) 는 또한 옵션적으로 블록 (822) 에서 사용자에게 웹 사이트의 이용가능성을 통지할 것이다. 모바일 통신 디바이스 (100) 는 또한 옵션적으로 블록 (824) 에서 브라우저 지원 서버 (150) 에 메타데이터의 서비스 품질의 피드백을 제공할 수도 있다.
도 9 는 다수의 사용자들의 다수의 브라우징 습관들에 기초하여 메타데이터를 컴퓨팅 디바이스로 푸시하는 브라우저 지원 서버 (150) 에 대한 양태 방법 (900) 을 예시한다. 예를 들어, 방법 (900) 은 "크라우드 소싱" 또는 대량의 웹 사용자들로부터 수집된 정보를 이용할 수도 있다. 예를 들어, 브라우저 지원 서버는 대량의 요청들 및 요청 응답들을 모니터링하고, 브라우저 요청과 응답 사이의 경험적 관계들을 추론할 수 있다. 브라우저 지원 서버 (150) 는 다수의 웹 사용자들로부터의 요청 및 응답으로부터 분석론을 유도할 수 있다. 예를 들어, 이들은 수백의 모바일 디바이스들에 대해 이루어진 다수의 측정치들에 기초하는 JavaScript 함수 확률들을 포함할 수도 있다. 예를 들어, 경험적 데이터는 실행되거나, 로드되거나, 보여지거나, 분석되거나, 파싱 등이 되는 JavaScript 어구들을 포함할 수도 있다.
방법 (900) 은 방법 (900) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (900) 에서, 프로세서는 블록 (902) 에서 다수의 사용자들의 브라우징 습관들에 관한 데이터를 수집하는 브라우저 지원 서버 (150) 에 의해 동작을 개시할 수도 있다.
블록 (904) 에서, 브라우저 지원 서버의 프로세서 (131) 는 다수의 사용자들로부터의 수집된 데이터에 기초하여 메타데이터를 생성한다. 메타데이터는 다수의 사용자들의 브라우징 습관들에 관한 구조화된 데이터를 포함할 수도 있다. 메타데이터 엘리먼트들은 페이지 설명, 키워드들, 및 헤드 엘리먼트들 및 속성들을 통해서 제공되지 않는 임의의 다른 메타데이터를 규정하는데 이용될 수 있다. 메타데이터 엘리먼트는 HTML 문서 내에 추가적인 메타데이터를 내장하기 위해 HTTP 응답 헤더의 사용을 에뮬레이트할 수도 있다. 이런 메타데이터 엘리먼트들은 HTML 또는 XHTML 문서의 헤드 섹션에 태그들로서 배치된다.
블록 (906) 에서, 프로세서 (131) 는, 메타데이터가 브라우저 지원 서버 (150) 로부터 컴퓨팅 디바이스로 푸시되도록, 프로그램 명령들을 출력한다. 또 다른 양태에서, 메타데이터는 브라우저 지원 서버로부터 컴퓨팅 디바이스로 가져올 수도 있다. 또 다른 양태에서, 메타데이터는 다른 데이터에 내장될 수도 있다. 또 다른 양태에서, 데이터는 피드 (feed) 로 연속적으로 제공될 수도 있다.
메타데이터를 수신하는 컴퓨터 디바이스의 프로세서는 블록 (908) 에서 메타데이터를 이용할 수도 있다. 블록 (910) 에서, 프로세서는 메타데이터를 이용하여 웹페이지를 렌더링할 수도 있다. 블록 (912) 에서, 프로세서는 피드백을 제공하기 위해 데이터를 렌더링하는 웹페이지로부터 브라우저 지원 서버 (150) 로 전송할 수도 있다.
도 10 은 브라우저 지원 서버 및 브라우저 지원 서버로부터의 메타데이터를 가져오는 (pull) 컴퓨터 디바이스에 대한 양태 방법 (1000) 을 예시한다. 메타데이터는 다수의 사용자들의 다수의 브라우징 습관들에 기초될 수도 있다. 예를 들어, 방법 (1000) 은 도 9 와 유사하게, "크라우드 소싱" 또는 대량의 웹 사용자들로부터 수집된 정보를 이용할 수도 있다. 예를 들어, 브라우저 지원 서버는 크라우드 소싱 또는 모니터 대량의 요청들 및 요청 응답들을 이용하고, 요청과 응답 사이의 경험적 관계들을 추론할 수 있다. 브라우저 지원 서버 (150) 는 다수의 웹 사용자들로부터의 요청 및 응답으로부터 분석론을 유도할 수 있다.
예를 들어, 이들은 수백의 모바일 디바이스들에 대해 이루어진 다수의 측정치들에 기초하는 JavaScript 함수 확률들을 포함할 수도 있다. 예를 들어, 경험적 데이터는 실행되거나, 로드되거나, 보여지거나, 분석되거나, 파싱 등이 되는 JavaScript 어구들을 포함할 수도 있다. 방법 (1000) 은 이 방법의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (1000) 에서, 프로세서는 블록 (1002) 에서 사용자들에 대한 브라우징 습관 데이터를 수집하는 브라우저 지원 서버 (150) 에 의해 동작을 개시할 수도 있다.
블록 (1004) 에서, 브라우저 지원 서버 (150) 의 프로세서는 다수의 사용자들로부터의 수집된 데이터에 기초하여 메타데이터를 생성할 수도 있다. 메타데이터는 생성되어 인덱스로 저장될 수도 있으며, 이 인덱스는 주기적으로 업데이트될 수 있다. 메타데이터는 HTML 엘리먼트들 또는 XHTML 엘리먼트들을 포함할 수도 있으며, 이들은 다수의 사용자들의 브라우징 습관들에 관한 구조화된 데이터를 제공하는데 사용될 수도 있다. 메타데이터 엘리먼트들은 페이지 설명, 키워드들, 및 관계들을 다른 헤드 엘리먼트들 및 속성들을 통해서 규정하는데 이용될 수 있다. 또 다른 양태에서, 메타데이터 엘리먼트들은 HTTP 응답 헤더의 사용을 에뮬레이트하거나 또는 추가적인 메타데이터를 HTML 문서에 내장할 수도 있다.
블록 (1006) 에서, 컴퓨팅 디바이스의 프로세서는 메타데이터가 브라우저 지원 서버 (150) 로부터 컴퓨팅 디바이스로 가져와지도록, 프로그램 명령들을 출력한다. 가져오기 기술은, 메타데이터에 대한 초기 요청이 클라이언트로부터 발생하고 브라우저 지원 서버 (150) 에 의해 응답되는 네트워크 통신을 포함한다. 또 다른 양태에서, 메타데이터는 임의의 요청 없이 브라우저 지원 서버 (150) 로부터 컴퓨팅 디바이스로 푸시될 수도 있다. 또 다른 양태에서, 메타데이터는 다른 데이터에 내장될 수도 있거나, 또는 피드로 제공될 수도 있다.
프로세서는 블록 (1008) 에서 메타데이터를 이용한다. 예를 들어, 메타데이터는, 라이브러리 엘리먼트가 매우 작은 실행의 가능성을 갖는 반면, 제 2 라이브러리 엘리먼트가 90 퍼센트 실행의 가능성을 갖는다는 것을 나타낼 수도 있다. 프로세서는 메타데이터를 이용하여, 제 2 엘리먼트를 즉시 다운로드하는 반면, 제 1 라이브러리 엘리먼트를 얼마 후까지 다운로드하지 않을 수 있다. 블록 (1010) 에서, 프로세서는 메타데이터를 이용하여 웹페이지를 렌더링할 수도 있다. 블록 (1012) 에서, 프로세서는 데이터를 렌더링하는 웹페이지로부터 브라우저 지원 서버 (150) 로 전송하여, 피드백을 옵션적으로 제공한다. 여전히, 또 다른 양태에서, 피드백 정보는 푸시된 피드 (feed) 로 컴퓨팅 디바이스의 브라우저에 제공될 수도 있다.
도 11 은 모바일 브라우저가 관찰된 관계들에 기초하여 스키마를 가진 웹 콘텐츠를 프로세싱하고, 실행하고 그리고 분석하는 것을 돕기 위한 스키마를 형성하는 분석 모듈을 포함하는 브라우저 지원 서버에 대한 양태 방법 (1100) 을 예시한다. 분석 모듈은 다수의 컴퓨터 디바이스들로부터 이루어진 측정치들을 모니터링한다. 모듈은 컴퓨팅 디바이스들 및 웹 서버에 의해 이루어진 요청들 및 요청들에 대한 응답들을 검토한다. 분석 모듈은 경험적 데이터를 발생시키고, 컴퓨터 디바이스의 동작을 향상시킬 수 있는, 컴퓨터 디바이스에 대한 힌트들을 생성한다.
이 데이터는 어떤 웹페이지 엘리먼트들이 파싱되거나, 실행되거나, 또는 분석되는 함수적 확률들 (functional probabilities) 을 포함할 수도 있다. 예를 들어, 분석 모듈은 수백의 모바일 디바이스들로부터 이루어진 측정치들에 기초하여 JavaScript 실행 기능 확률들을 결정할 수도 있다. 데이터는 파티션 코드 힌트들; 렉싱 정보; 스크립트 토큰들; 파싱하기 위한 AST 데이터; 병렬로 프로세싱될 수 있는 HTML 의 부분들 또는 직렬로 프로세싱될 수 있는 부분들; CSS 웹페이지 최적화 데이터; 캐시된 데이터; 또는 모바일 리소스들을 절약할 수 있는 임의의 다른 메타데이터를 포함할 수도 있다. 분석 모듈은 브라우저 지원 서버 (150) 와 연관될 수도 있거나, 또는 대안적으로는 컴퓨팅 디바이스 (100) 와 연관될 수도 있으며, 실행되고 컴파일될 수도 있는 JavaScript 코드의 관련 부분을 추론하는 알고리즘을 포함할 수도 있다. 또 다른 양태에서, 분석 모듈은 메타데이터를 컴퓨터 디바이스로 전달할 수 있는 중간 디바이스일 수도 있다. 분석 모듈은 사용자 습관들을 모니터링할 수 있고 그 관찰된 경험적 데이터에 기초하여 메타데이터 힌트들을 발생할 수 있는 알고리즘을 포함하는 소프트웨어 모듈일 수도 있다.
방법 (1100) 은 방법 (1100) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서 (131) 를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (1100) 에서, 프로세서 (131) 는 블록 (1102) 에서 다수의 사용자들에 대한 브라우징 습관들에 관련한 데이터를 수집하는 브라우저 지원 서버 (150) 에 의해 동작을 개시할 수도 있다.
블록 (1104) 에서, 브라우저 지원 서버의 프로세서는 데이터를 분석 모듈에 제공하여, 다수의 사용자들로부터의 수집된 데이터에 기초하여 메타데이터를 생성할 수도 있다. 분석 모듈은 메타데이터를 생성하고 그 메타데이터를 저장 매체에, 예컨대, 인덱스로 저장할 수도 있으며, 그 인덱스는 브라우징 습관들로부터의 새로운 정보에 기초하여 주기적으로 업데이트될 수 있다.
블록 (1106) 에서, 메타데이터가 사용자의 다음 브라우징 활동을 예상할 수도 있으며 다음 브라우징 활동에 관련된 정보를 미리 제공함으로써 브라우저를 도울 수 있도록, 메타데이터가 발생된다. 웹페이지는 다른 사용자들로부터 관찰된 경험적 데이터에 기초하여 높은 실행의 확률을 갖는 JavaScript 를 포함할 수도 있다. 분석 모듈은 브라우저의 다음 단계가 JavaScript 를 프로세싱하는 것일 수도 있다고 검출할 수도 있다. 분석 모듈은 JavaScript 를 사전 컴파일하라는 제어 명령들을 출력하고, 2진 코드 (또는, 다른 네이티브 코드) 를 형성하여 그 2진 코드를 컴퓨팅 디바이스에 제공할 수도 있다. 블록 (1108) 에서, 프로세서는 메타데이터가 분석 모듈로부터 컴퓨팅 디바이스로 전달되도록, 프로그램 명령들을 출력한다.
메타데이터를 수신하는 컴퓨터 디바이스의 프로세서 (131) 는 블록 (1110) 에서 메타데이터를 이용한다. 블록 (1112) 에서, 프로세서는 웹페이지를 렌더링한다. 블록 (1114) 에서, 프로세서는 옵션적으로 피드백을 제공하기 위해 데이터를 렌더링하는 웹페이지로부터 브라우저 지원 서버로 전송할 수도 있다.
도 12 는 모바일 통신 디바이스를 위해 타게팅된 서비스들을 제공하는 특성을 포함하는 브라우저 지원 서버 (150) 에 대한 양태 방법 (1200) 을 예시한다. 브라우저 지원 서버 (150) 는 모바일 통신 디바이스들로 하여금, 미리 결정된 웹사이트들에 관한 정보를 저장 매체 (예컨대, 브라우저 지원 서버 메모리) 상에 캐시가능하도록 한다.
예를 들어, 웹사이트는 모바일 통신 디바이스 (100) 에 의해, 예컨대 매일 오전 8:00시에 빈번하게 액세스될 수도 있다. 데이터는 모바일 디바이스 메모리에 기록될 수 있다. 그러나, 모바일 통신 디바이스의 저장 매체가 한정되기 때문에, 미리 결정된 시간 이후 저장 매체는 채워져 있을 수도 있으므로, 그 데이터를 새로운 데이터를 위해서 소거시키는 것을 필요로 할 수도 있다. 따라서, 그 다음날, 모바일 통신 디바이스 (100) 는 오전 8:00시에 미리 결정된 사이트에 방문하여, 동일한 웹 콘텐츠 엘리먼트들의 일부를 다시 다운로드할 필요가 있을 것이다.
브라우저 지원 서버 (150) 는 요청들 및 요청들에 대한 응답들을 포함하는 일상적인 웹 브라우징 활동에서의 패턴들을 비교함으로써 반복된 브라우징 행동을 검출할 수도 있다. 예를 들어, 미리 결정된 시퀀스로 동일한 웹페이지를 요청함으로써 반복된 행동이 검출될 때, 브라우저 지원 서버 (150) 는 타게팅된 서비스들을 모바일 통신 디바이스 (100) 에 제공할 수도 있다. 브라우저 지원 서버 (150) 는 그 모바일 통신 디바이스 (100) 가 데이터를 저장 매체 (예컨대, 캐시 메모리) 에 기록가능하게 할 수도 있다. 캐시 메모리는 브라우저 지원 서버 (150) 와 연관될 수도 있거나, 또는 상이한 저장 매체일 수도 있다.
예를 들어, 브라우저는 인기 있는 웹사이트에 오전 8:00시에 액세스할 수도 있으며, 데이터는 모바일 디바이스 메모리에 기록된다. 그러나, 미리 결정된 시간 이후 모바일 통신 디바이스의 메모리가 한정되므로, 메모리는 채워져 있을 수 있으며, 데이터는 추후 사용되는 웹사이트와 연관된 새로운 데이터를 위해서 소거되도록 지정된다. 데이터를 소거함으로써, 모바일 통신 디바이스는 웹 사이트 엘리먼트들을 포함하는 웹사이트와 연관된 데이터를 BAS 서버 (150) 에 로케이트된 캐시에 업로드할 수도 있다. 대안적으로, 브라우저 지원 서버 (150) 는 데이터를 웹사이트로부터 직접 획득하고 모바일 통신 디바이스가 데이터를 업로드할 필요가 없이 이를 캐시에 저장할 수도 있다. 그 다음날, 모바일 통신 디바이스는 오전 8:00시 이전 또는 오전 5:00시에 데이터를 BAS 서버 (150) 상의 캐시로부터 다운로드할 수도 있다. 오전 8:00시에, 사용자가 미리 결정된 인기 있는 웹 사이트에 방문하는 경우에, 매우 많은 웹 콘텐츠 엘리먼트들은 모바일 디바이스 메모리 상에 이미 로케이트되어 있을 것이며, 모바일 통신 디바이스는 그 웹사이트를 업데이트할 필요가 있을 것이다. 또 다른 양태에서, 캐시 메모리는 또 다른 로케이션, 예를 들어, 무선 하드 드라이브 또는 동글 (dongle) 에 로케이트될 수도 있다. 예를 들어, 인기 있는 웹사이트들의 사용자 프로파일은 모바일 통신 디바이스 상에 저장될 수도 있거나 또는 서버 상에 저장될 수도 있다.
방법 (1200) 은 이 방법의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (1200) 에서, 프로세서는 블록 (1202) 에서 다수의 사용자들에 대한 브라우징 습관들로부터 데이터를 수집하는 브라우저 지원 서버 (150) 에 의해 동작을 개시할 수도 있다.
블록 (1204) 에서, 브라우저 지원 서버 (150) 의 프로세서는 컴퓨팅 디바이스에 의해 사용된 인기 있는 웹페이지들을 식별할 수도 있다. 블록 (1206) 에서, 브라우저 지원 서버는 메타데이터가 사용자의 다음 브라우징 활동을 예상할 수 있도록 메타데이터를 발생할 수도 있다. 블록 (1208) 에서, 브라우저 지원 서버는 모바일 디바이스가 브라우저 지원 서버의 캐시 메모리를 이용할 수 있도록, 메타데이터를 모바일 디바이스로 전송하여 모바일 디바이스를 위해 타게팅된 서비스들을 제공할 수도 있다. 메타데이터를 수신하는 모바일 통신 디바이스의 프로세서는 블록 (1210) 에서 메타데이터를 이용하며, 빈번하게 액세스되어 저장을 위해 브라우저 지원 서버의 캐시로 송신되는 인기 있는 웹페이지들을 식별한다.
블록 (1212) 에서, 프로세서는 사용자의 습관들에 기초하여 웹페이지를 렌더링할 수도 있으며, 모바일 디바이스 프로세서는 캐시 데이터를 다운로드하여 그 요청을 실행할 수도 있다. 동일한 웹페이지는 렌더링되지 않으며, 일반적으로 일부 웹페이지 콘텐츠는 재사용될 수도 있지만 다른 웹페이지 콘텐츠는 아마도 업데이트될 수도 있다. 예를 들어, 신문 웹사이트의 이전 버전은 새로운 버전과 공통으로 일부 웹 콘텐츠 엘리먼트들을 가질 수도 있으며, 그러나, 일부 새로운 웹 콘텐츠 엘리먼트들, 텍스트 및 이미지들이 요구될 수도 있다. 또 다른 양태에서, 브라우저 지원 서버 (150) 는 또한 추가적인 사전-페칭 (fetching) 서비스들을 제공할 수도 있으며, 그 콘텐츠를 브라우저 지원 서버 (150) 에서 업데이트하고 그 업데이트된 콘텐츠를 캐시 데이터와 병합할 수도 있다. 또 다른 양태에서, 브라우저 지원 서버 (150) 는 브라우저가 웹페이지를 렌더링할 수 있도록, 캐시 콘텐츠를 사전 컴파일하여 2진 또는 네이티브 코드를 브라우저로 전달할 수도 있다.
도 13 은 메타데이터를 생성하는 브라우저 지원 서버에 대한 양태 방법 (1300) 을 예시한다. 메타데이터는 JavaScript 실행 프로파일들에 기초될 수도 있다. 프로파일들은 다수의 모바일 디바이스 사용자들로부터의 다수의 요청들 및 응답들로부터 관찰될 수도 있다. JavaScript 실행 프로파일들은 컴퓨터 디바이스의 동작을 향상시킬 수 있는, 컴퓨터 디바이스에 대한 힌트들을 생성한다. 데이터는 웹 엘리먼트들의 어떤 JavaScript 실행 프로파일들이 발생시키는 함수적 확률들 및 발생의 빈도를 포함할 수도 있다. 이것은, 희박한, 어구가 액세스될 가능성이 있으면 더 좋은 선택이 높은 실행의 확률을 가진 데이터에 액세스할 것이므로, 어떤 JavaScript 를 다운로드하여 실행할지 여부에 관한 결정에 기초하는 경험적 데이터를 제공한다.
방법 (1300) 은 방법 (1300) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서 (131) 를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (1300) 에서, 프로세서 (131) 는 블록 (1302) 에서 "대중" 또는 다수의 사용자들에 대한 브라우징 습관들의 데이터를 수집하는 브라우저 지원 서버 (150) 에 의해 동작을 개시할 수도 있다.
블록 (1304) 에서, 브라우저 지원 서버의 프로세서는 다수의 웹 사용자들로부터 JavaScript 실행 프로파일들에 관련한 데이터를 수신할 수도 있다. 예를 들어, 제 1 JavaScript 엘리먼트는 실행될 제 1 통계적 우도를 갖지만, 제 2 JavaScript 엘리먼트는 다수의 사용자들의 관찰된 프로파일에 기초하여 2 의 인자 (factor) 만큼 제 2 통계적 우도보다 더 적은, 실행될 제 2 통계적 우도를 가질 수도 있다. 예를 들어, 제 3 JavaScript 엘리먼트는 5 퍼센트 미만인, 실행될 제 3 통계적 우도를 가질 수도 있지만, 제 4 JavaScript 엘리먼트는 다수의 사용자들의 관찰된 프로파일에 기초하여, 거의 95 퍼센트보다 적은, 실행될 제 4 통계적 우도를 가질 수도 있다.
블록 (1306) 에서, 브라우저 지원 서버 (150) 는 제 1 내지 제 4 통계적 우도들을 검사할 수도 있다. 브라우저 지원 서버 (150) 는 그 데이터를 임계값과 비교할 수도 있다. 블록 (1308) 에서, 브라우저 지원 서버 (150) 는 메타데이터를 발생할 수도 있다. 메타데이터는 브라우저가 사용자의 다음 브라우징 활동을 예상하는 것을 도울 수도 있다. 메타데이터는 가능성있는 다음 활동에 관련된 정보를 미리 제공함으로써 브라우저를 도울 수도 있다.
블록 (1310) 에서, 프로세서는 브라우저 지원 서버 (150) 가 메타데이터를 컴퓨터 디바이스로 전송하여 컴퓨터 디바이스를 보조하고 브라우저의 다음 액션을 예상할 수 있도록, 프로그램 명령들을 출력한다. 예를 들어, 웹페이지는 다른 사용자들로부터 관찰된 경험적 데이터에 기초하여 높은 실행의 확률을 갖는 제 4 JavaScript 엘리먼트를 포함할 수도 있다. 프로세서는 브라우저의 다음 단계가 제 4 JavaScript 엘리먼트를 다운로드하여 프로세싱하는 것일 수도 있다고 검출할 수도 있다. 프로세서는, 제 3 JavaScript 엘리먼트가 실행되지 않을 가능성이 있으므로 제 3 JavaScript 엘리먼트가 송신되어 프로세싱되지 않을 수도 있지만, 이 결정을 확인할 수도 있다.
도 14 는 모바일 통신 디바이스를 위해 타게팅된 서비스들을 제공하는 특성을 포함하는 브라우저 지원 서버에 대한 양태 방법 (1400) 을 예시한다. 브라우저 지원 서버 (150) 는 모바일 통신 디바이스들이 미리 결정되는 웹사이트들에 관련된, 브라우저 지원 서버 캐시 메모리 상의 정보를 캐시가능하도록 하며, 사용자의 습관들에 기초하여 모바일 통신 디바이스 또는 BAS 서버 (150) 상의 그 캐시된 데이터를 퇴거하지 않도록 추가로 규정할 수도 있다. 이러한 방법으로, 데이터는 추가적인 액션에 대해 분석될 수도 있다. 예를 들어, 웹 사이트가 임계치 양과 비교해서 빈번하게 액세스되면, 브라우저 지원 서버 (150) 는 캐시가 미리 결정된 시간 기간 동안 겹쳐 기록되는 것을 방지할 수도 있다. 따라서, 브라우저 지원 서버 (150) 는 브라우저 지원 서버 (150) 에 로케이트된 다수의 상이한 캐시된 상태들을 포함할 수도 있다.
예를 들어, 웹사이트는 모바일 통신 디바이스에 의해 오전 8:00시에 빈번하게 액세스될 수도 있으며, 데이터는 모바일 디바이스 메모리에 기록된다. 그러나, 미리 결정된 시간 이후 모바일 통신 디바이스의 메모리는 한정되므로, 메모리는 채워져 있을 수 있으며, 데이터는 추후 사용되는 웹사이트와 연관된 새로운 데이터를 위해서 소거된다. 그 다음날, 모바일 통신 디바이스는 오전 8:00시에 미리 결정된 사이트를 방문하고 웹 콘텐츠 엘리먼트들을 다시 다운로드할 필요가 있을 것이다. 브라우저 지원 서버 (150) 는 이 행동을 검출하고, 모바일 통신 디바이스 (100) 에 타게팅된 서비스들을 제공하고 그 모바일 통신 디바이스 (100) 로 하여금 데이터를 브라우저 지원 서버 (150) 와 연관된 캐시 메모리에 기록가능하게 할 수도 있다.
예를 들어, 브라우저는 인기 있는 웹사이트를 오전 8:00시에 액세스할 수도 있으며, 데이터가 모바일 디바이스 메모리에 기록된다. 그러나, 미리 결정된 시간 이후 모바일 통신 디바이스의 메모리가 한정되므로, 메모리는 채워져 있을 수 있으며, 데이터는 추후 사용되는 웹사이트와 연관된 새로운 데이터를 위해서 소거되도록 지정된다. 데이터를 소거하기 전에, 모바일 통신 디바이스 (100) 는 웹 사이트 엘리먼트들을 포함하는 웹사이트와 연관된 데이터를 BAS 서버 (150) 의 캐시에 업로드할 것이다. 그 다음날, 모바일 통신 디바이스는 오전 8:00시 이전 오전 5:00시에 데이터를 캐시 서버로부터 다운로드할 것이다. 오전 8:00시에, 사용자가 미리 결정된 인기 있는 웹 사이트에 방문하는 경우에, 매우 많은 웹 콘텐츠 엘리먼트들이 모바일 디바이스 메모리 상에 로케이트될 수 있으며, 모바일 통신 디바이스는 웹사이트를 업데이트할 필요가 있을 것이다. 또, 이 사용자 행동이 규정된 시간 기간 동안 반복하면, 캐시 서버 상의 데이터가 덮어 기록되거나 소거되지 않을 것이다. 본 양태에서, 브라우저 지원 서버 (150) 는 사용자 습관들의 추가적인 분석을 위해 그 캐시된 데이터를 검토할 수 있다.
방법 (1400) 은 방법 (1400) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (1400) 에서, 프로세서는 블록 (1402) 에서 다수의 사용자들에 대한 브라우징 습관들로부터 데이터를 수집하는 브라우저 지원 서버 (150) 에 의해 동작을 개시할 수도 있다.
블록 (1404) 에서, 브라우저 지원 서버의 프로세서는 사용자 프로파일 및 사용자의 브라우징 습관들에 관한 정보를 수집할 수도 있다. 블록 (1406) 에서, 브라우저 지원 서버 (150) 는 타게팅된 서비스들을 제공할 수도 있다. 브라우저 지원 서버 (150) 는 컴퓨터 디바이스로 하여금 사용자의 브라우징 습관들에 기초하여 데이터를 캐시가능하게 할 수도 있다. 블록 (1408) 에서, 컴퓨터 디바이스는 브라우저 지원 서버 (150) 의 캐시 메모리를 이용하여, 데이터를 인기 있는 웹페이지 엘리먼트들의 캐시에 기록할 수도 있다. 블록 (1410) 에서, 빈번하게 액세스되는 인기 있는 웹페이지들 및 웹페이지 엘리먼트들이 저장을 위해 브라우저 지원 서버 (150) 의 캐시로 전송되며, BAS 는 캐시 데이터가 소거되지 않을 것이고 추가적인 분석을 위해 표시된다는 것을 나타낸다.
블록 (1412) 에서, 컴퓨팅 디바이스의 프로세서는 사용자의 습관들에 기초하여 웹페이지를 렌더링하기 위해 인기 있는 웹사이트에 대한 요청을 전송할 수도 있다. 블록 (1414) 에서, 모바일 디바이스 프로세서 (131) 는 그 요청을 실행하기 위해 브라우저 지원 서버로부터 캐시 데이터를 읽을 수도 있다. 또 다른 양태에서, 브라우저 지원 서버 (150) 는 또한 추가적인 사전-페칭 서비스들을 제공할 수도 있으며, 브라우저 지원 서버에서 그 콘텐츠를 업데이트하여 그 업데이트된 콘텐츠를 캐시 데이터와 병합할 수도 있다. 또 다른 양태에서, 브라우저 지원 서버 (150) 는 브라우저가 웹페이지를 렌더링할 수 있도록, 캐시 콘텐츠를 사전 컴파일하여 2진 또는 네이티브 코드를 브라우저로 전달할 수도 있다. 블록 (1414) 에서, 브라우저 지원 서버는 추가적인 최적화, 및 사전-페칭을 위해 캐시 상태들을 분석할 수도 있다. 본 양태에서, 다른 사용자에 대한 힌트들을 제공하는 메타데이터는 블록 (1414) 에서의 분석에 부분적으로 기초하여 발생될 수도 있다.
도 15 는 모바일 통신 디바이스 (100) 를 위해 타게팅된 서비스들을 제공하는 특성을 포함하는 브라우저 지원 서버 (150) 에 대한 양태 방법 (1500) 을 예시한다. 브라우저 지원 서버 (150) 는 모바일 통신 디바이스들 (100) 로 하여금, 미리 결정되는 웹사이트들 또는 미리 결정되는 웹 엘리먼트들에 관련된 정보를 캐시가능하도록 한다. 브라우저 지원 서버 (150) 는 힌트들을 모바일 통신 디바이스 (100) 에 제공하기 위해, 캐시 데이터를 추가로 증대하고 다른 데이터로 캐시를 보충할 수도 있다.
예를 들어, 제 1 웹사이트는 모바일 통신 디바이스에 의해 오전 8:00시에 빈번하게 액세스될 수도 있으며, 데이터는 모바일 디바이스 메모리에 기록될 수도 있다. 그러나, 미리 결정된 시간 이후, 모바일 통신 디바이스의 메모리가 한정될 수도 있으므로, 메모리는 채워져 있을 수도 있다. 데이터는 추후 사용되는 제 2 웹사이트와 연관된 새로운 데이터를 위해서 소거될 수도 있다. 그 다음날, 사용자는 모바일 통신 디바이스 상의 에 브라우저에게 오전 8:00시에 명령할 수도 있으며, 제 1 웹사이트를 방문할 수도 있으며 웹 콘텐츠 엘리먼트들을 다시 다운로드할 필요가 있을 수도 있다.
브라우저 지원 서버 (150) (또는, 모바일 통신 디바이스 (100)) 는 비효율적인 행동을 검출할 수도 있으며, 타게팅된 서비스들을 모바일 통신 디바이스 (100) 에 제공할 수도 있다. 브라우저 지원 서버 (150) 는 그 모바일 통신 디바이스 (100) 로 하여금 데이터를 브라우저 지원 서버 (150) 와 연관된 저장 매체 또는 캐시 메모리에 기록가능하게 할 수도 있다. 게다가, 브라우저 지원 서버 (150) 는 그 캐시된 데이터를 다른 학습된 정보 또는 힌트들로 증대하여 보충할 수도 있다. 예를 들어, 브라우저 지원 서버는 메타데이터 힌트들을 제공하여, 그 메타데이터 힌트들을 캐시된 데이터 내에 내장할 수도 있다. 예를 들어, 브라우저 지원 서버 (150) 는 캐시 데이터를 사전 컴파일하고 캐시된 데이터를 2진수 포맷 (또는, 네이티브 포맷) 으로 모바일 통신 디바이스 (100) 에 제공할 수도 있다.
예를 들어, 브라우저는 인기 있는 웹사이트를 오전 8:00시에 액세스할 수도 있으며, 데이터는 모바일 디바이스 메모리에 기록될 수도 있다. 그러나, 미리 결정된 시간 이후 모바일 통신 디바이스의 메모리가 한정되므로, 메모리는 채워져 있을 수 있으며, 데이터는 추후 사용되는 웹사이트와 연관된 새로운 데이터를 위해서 소거되도록 지정된다. 데이터를 소거하기 전에, 모바일 통신 디바이스 (100) 는 웹 사이트 엘리먼트들을 포함하는 웹사이트와 연관된 데이터를 BAS 서버 (150) 의 캐시에 업로드할 것이다. 브라우저 지원 서버 (150) 는 또한 캐시 데이터를 최적화하고, 캐시된 데이터에 메타데이터를 내장할 수도 있다. 브라우저 지원 서버 (150) 는 모바일 통신 디바이스 (100) 의 이익을 위해 메타데이터 힌트들을 캐시 데이터 내에 제공할 수도 있다.
그 다음날, 모바일 통신 디바이스 (100) 는 오전 8:00시 이전에 캐시 서버로부터 데이터를, 증대된 학습된 데이터와 함께 다운로드할 것이다. 오전 8:00시에, 사용자가 미리 결정된 인기 있는 웹 사이트에 방문하는 경우에, 매우 많은 웹 콘텐츠 엘리먼트들은 모바일 디바이스 메모리 상에 이미 로케이트될 것이며, 모바일 통신 디바이스 (100) 는 업데이트한 후 페이지를 렌더링할 수도 있다. 또, 모바일 통신 디바이스 (100) 는 제 2 새로운 웹사이트를 방문하고, 다운로드된 콘텐츠 내 내장된 메타데이터를 이용하여 새로운 웹 콘텐츠를 파싱하거나, 실행하거나 또는 분석할 수도 있다.
방법 (1500) 은 방법 (1500) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서 (131) 를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (1500) 에서, 프로세서 (131) 는 블록 (1502) 에서 동작을 개시할 수도 있으며, 여기서, 모바일 통신 디바이스 (100) 는 웹페이지에 대한 요청을 송신한다.
블록 (1504) 에서, 모바일 통신 디바이스의 프로세서는 사용자 프로파일에 관한 정보를 수집하고 사용자 프로파일을 브라우저 지원 서버 (150) 로 전송할 수도 있다. 블록 (1506) 에서, 브라우저 지원 서버 (150) 는 타게팅된 서비스들을 제공할 수도 있으며, 컴퓨터 디바이스로 하여금 사용자의 브라우징 습관들에 기초하여 데이터를 저장 매체로 캐시가능하게 할 수도 있다. 블록 (1508) 에서, 브라우저 지원 서버 (150) 는 캐시 데이터를 모바일 통신 디바이스를 돕도록 학습된 정보를 포함하는 메타데이터로 증대할 수도 있다. 블록 (1510) 에서, 컴퓨팅 디바이스의 프로세서는 사용자의 습관들에 기초하여 웹페이지를 렌더링하기 위해 인기 있는 웹사이트에 대한 요청을 전송할 수도 있다. 블록 (1512) 에서, 모바일 디바이스 프로세서는 그 요청을 실행하기 위해 브라우저 지원 서버 (150) 로부터 캐시 데이터를 다운로드할 수도 있으며, 또한 옵션적으로 현재의 또는 미래의 브라우저 힌트들로 브라우저를 돕기 위해 메타데이터를 다운로드할 수도 있다. 동일한 웹페이지는 렌더링되지 않을 수도 있으며, 일반적으로 일부 웹페이지 콘텐츠는 재사용될 수도 있지만 다른 웹페이지 콘텐츠는 아마도 업데이트될 수도 있다. 브라우저 지원 서버 (150) 는 또한 최적화를 겪은 캐시 데이터를 제공할 수도 있다.
도 16 은 사용자의 개인 프로파일에 기초하여 캐시 상태를 리로드하는 브라우저 지원 서버 (150) 의 하이 레벨 다이어그램을 나타낸다. 예를 들어, 1일차 오전 8:00시에, 모바일 통신 디바이스 (100) 를 이용하는 사용자는 캐시 상태 A (1602) 를 포함하는 빈번하게 액세스된 웹페이지를 다운로드할 수도 있다. 사용자는 웹 사이트를 미리 결정된 시간 기간 동안 검토할 수도 있으며, 여러 다른 하이퍼링크들을 관여시키고 그 웹페이지로부터 벗어날 수도 있다. 1일차 오후 3:00시에, 사용자는 상이한 웹 콘텐츠를 갖는 상이한 웹사이트를 검토할 수도 있으며, 캐시 상태 B (1604) 를 발생할 수도 있다. 일반적으로, 캐시 A (1602) 는 삭제되었을 것이다. 그러나, 모바일 통신 디바이스 (100) 및 브라우저 지원 서버 (150) 는 인터넷을 통해서 접속되며, 모바일 디바이스 (100) 는 서버 (150) 를 캐시 메모리로서 사용할 수도 있다. 브라우저 지원 서버 (150) 는 모바일 통신 디바이스 (100) 를 위해 타게팅된 서비스들을 제공할 수 있다. 브라우저 지원 서버 (150) 는 (캐시 상태 A (1602) 를 발생한) 웹사이트가 빈번하게 액세스된다고 검출할 수도 있다. 웹사이트는 거의 매일 오전 8:00시의 동일한 시간 간격으로 사용자에 의해 액세스된다.
브라우저 지원 서버 (150) 는 참조 화살표 1610 로 나타낸 바와 같이 캐시 상태 A (1602) 를 서버 (150) 상에 저장할 것이다. 모바일 통신 디바이스 (100) 는 상이한 웹페이지에 대한 요청을 전송하고 데이터 (1604) 를 다운로드할 수 있다. 브라우저 지원 서버 (150) 는 캐시 데이터 A (1606) 를 증대할 수도 있다. 브라우저 어시스턴트 서버 (150) 는 메타데이터를 내장하거나 또는 사용자의 브라우징 습관들로부터의 학습된 정보를 반영하는 데이터를 추가할 수 있다. 서버 (150) 는 다른 사용자들로부터의 데이터를 내장하여, 힌트들을 모바일 통신 디바이스 브라우저 (100) 에 제공할 수도 있다. 둘째 날, 2일차 오전 5:00시에, 브라우저 지원 서버 (150) 는 화살표 1612 로 나타낸 바와 같이 캐시 데이터 A (1608) 를 서버 (150) 로부터 모바일 통신 디바이스 (100) 로 (캐시 데이터 A (1608) 내에 포함되고 저장된 임의의 업데이트된 데이터와 함께) 푸시할 수도 있다. 예를 들어, 2일차 오전 8:00시에, 모바일 통신 디바이스 (100) 을 이용하는 사용자는 빈번하게 액세스된 웹페이지를 다운로드하라는 요청을 전송할 수도 있으며 캐시 데이터 A (1608) 내에 포함된 많은 웹 엘리먼트들을 포함할 수도 있으며, 그 웹 사이트를 업데이트할 수도 있다. 브라우저 지원 서버 (150) 는 디바이스 (100) 에 대한 L2 캐시로서 기능할 수도 있으며, 캐시 상태들의 세트를 유지할 수 있다.
도 17 은 JavaScript 를 효율적으로 파싱하고 실행하기 위해 메타데이터를 제공할 수도 있는 브라우저 지원 서버에 대한 양태 방법 (1700) 을 예시한다. 방법 (1700) 은 방법 (1700) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (1700) 에서, 프로세서는 블록 (1702) 에서 동작을 개시할 수도 있으며, 여기서 모바일 통신 디바이스는 웹페이지에 대한 요청을 송신한다.
블록 (1704) 에서, 브라우저 지원 서버 (150) 의 프로세서는 모바일 통신 디바이스가 JavaScript 를 효율적으로 파싱하고 실행하기 위한 힌트들을 체계화할 수도 있다. 예를 들어, 메타데이터는 그 스크립트의 통계적으로 관련된 부분을 식별할 수도 있다. 블록 (1706) 에서, 브라우저 지원 서버는 JavaScript 를 효율적으로 파싱하고 실행하기 위한 힌트들을 포함하는 메타데이터를 모바일 통신 디바이스로 전달할 수도 있다. 블록 (1708) 에서, 프로세서는 그 메타데이터를 이용하여 JavaScript 를 파싱할 수도 있다. 블록 (1710) 에서, 모바일 디바이스 프로세서는 힌트들을 이용하여 JavaScript 를 실행할 수도 있다. 블록 (1712) 에서, 모바일 디바이스는 브라우저 지원 서버로 피드백을 전송한다.
도 18 은 모바일 디바이스 프로세서가 과도한 양의 프로세싱을 겪게 할 수도 있는 웹페이지 엘리먼트를 웹페이지에 대한 요청이 포함할 수도 있다고 검출하는 브라우저 지원 서버 (150) 의 하이 레벨 다이어그램을 나타낸다. 이 요청은 웹페이지를 비효율적인 방법으로 렌더링하는 것을 야기할 수도 있다. 본 양태에서, 브라우저 지원 서버 (150) 는 어떤 웹페이지 엘리먼트들이 존재하고 있다고 검출할 수도 있으며, 웹페이지 엘리먼트들을 2진 또는 모바일 디바이스 (100) 의 네이티브 포맷으로 사전 컴파일될 수도 있다. 브라우저 지원 서버 (150) 는 웹페이지 엘리먼트에 대응하는 2진 파일을 발생할 수도 있다. 브라우저 지원 서버 (150) 는 더 빠른 로드 시간 동안 2진 파일을 모바일 통신 디바이스 (100) 로 송신할 수도 있다.
예를 들어, 오전 8:00시에, 모바일 통신 디바이스 (100) 를 이용하는 사용자는 요청 (1802) 을 인터넷 (114) 으로 전송함으로써 웹페이지를 다운로드하려고 할 수도 있다. 이 요청은 서버 (미도시) 에 의해 수신될 수도 있으며, 응답 요청은 HTML, JavaScript, CSS, 및 오브젝트들을 포함하는 데이터 (1804) 를 어쩌면 리턴할 수도 있다. 모바일 통신 디바이스 (100) 는 또한 요청 (1806) 을 브라우저 어시스턴트 서버 (150) 로 전송할 수도 있다. 요청 (1806) 은 브라우저 지원 서버 (150) 가 HTML, JavaScript, CSS 및 오브젝트들을 좀더 효율적으로 파싱하고 실행하기 위한 힌트들을 제공하는지 여부를 결정할 수도 있다.
이 힌트들에 더해서, 브라우저 지원 서버 (150) 는 또한 미리 결정된 아키텍처에 대해 JavaScript 를 직접 분석하고 사전 컴파일할 수 있다. 브라우저 지원 서버 (150) 는 JavaScript 를 프로세싱할 수도 있으며, 그 요청된 JavaScript 웹 엘리먼트들 (1810) 의 직접 2진 사전-컴파일된 변환을 발생할 수도 있다. 그 요청된 JavaScript 웹 엘리먼트들 (1810) 의 직접 2진 변환이 모바일 통신 디바이스 (100) 브라우저에 의한 즉시 사용을 위해, 화살표 1808 로 나타낸 바와 같이 모바일 통신 디바이스 (100) 로 송신될 수 있다. 사전 컴파일된 2진수 (1810) 는 모바일 통신 디바이스 (100) 로 하여금 JavaScript 실행 경로와 연관된 파싱, 분석 및 적기 프로세싱을 회피가능하게 한다. 모바일 디바이스 (100) 는 옵션적으로 피드백을 브라우저 지원 서버에 제공할 수도 있다. 대안적인 양태에서, 브라우저 지원 서버는 가상 모듈을 모바일 디바이스 (100) 상에 제공하고 데이터를 그 가상 모듈에 전달할 수도 있다.
도 19 는 JavaScript 엘리먼트들을 검출하고 그 요청된 JavaScript 웹 엘리먼트들의 직접 2진 변환 (direct binary translation) 을 제공하여 사전 컴파일된 2진 또는 네이티브 파일을 형성하는 브라우저 지원 서버에 대한 양태 방법 (1900) 을 예시한다. 직접 2진 변환이 모바일 통신 디바이스 브라우저에 의한 즉시 사용을 위해 모바일 통신 디바이스 (100) 로 송신된다. 방법 (1900) 은 방법 (1900) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서 (131) 를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (1900) 에서, 프로세서 (131) 는 블록 (1902) 에서 동작을 개시할 수도 있으며, 여기서, 모바일 통신 디바이스 (100) 는 웹페이지에 대한 요청을 송신한다.
블록 (1904) 에서, 모바일 통신 디바이스의 프로세서는 JavaScript 를 효율적으로 파싱하고 실행하기 위한 요청을 브라우저 지원 서버 (150) 로 전송할 수도 있다. 블록 (1906) 에서, 브라우저 지원 서버 (150) 는 그 요청을 분석하고 모바일 통신 디바이스 (100) 에 대한 웹페이지 JavaScript 를 사전 컴파일할 수도 있다. 블록 (1908) 에서, 브라우저 지원 서버 (150) 는 적어도 하나의 사전-컴파일된 2진 파일을 형성할 수도 있으며, 사전-컴파일된 2진 파일을 모바일 디바이스 프로세서 (131) 로 송신할 수도 있다. 직접 2진 변환은 모바일 통신 디바이스 브라우저에 의한 즉시 사용을 위해 모바일 통신 디바이스 (100) 로 송신될 수도 있다. 이의 대안으로, 이 변환은 모바일 통신 디바이스 브라우저와 연관된 또 다른 네이티브 언어일 수도 있다. 네이티브 언어는 모바일 통신 디바이스로 하여금 JavaScript 실행 경로의 파싱, 분석 및 적기 프로세싱을 회피가능하게 한다. 블록 (1910) 에서, 모바일 디바이스 프로세서 (131) 는 사전-컴파일된 데이터를 이용하여 웹페이지를 렌더링할 수도 있다. 블록 (1912) 에서, 모바일 디바이스는 옵션적으로 피드백을 브라우저 지원 서버로 전송할 수도 있다.
도 20 은 라이브러리가 요청된다고 검출하는 브라우저 지원 서버에 대한 양태 방법 (2000) 을 예시한다. 라이브러리는 YUI 라이브러리 또는 jQuery 라이브러리 또는 당업계에 알려져 있는 임의의 라이브러리일 수도 있다. YUI 는 DOM 스크립팅, DHTML, 및 Ajax 와 같은 기법들을 이용하여 풍부하게 상호작용하는 웹 애플리케이션들을 형성하기 위한 JavaScript 유틸리티들 및 컨트롤들의 라이브러리이다. jQuery 는 빠른 웹 개발을 위해 HTML 문서 트래버싱 (traversing), 이벤트 핸들링, 애니메이팅 및 Ajax 상호작용들을 단순화하는, CSS3 규격인, 빠르고 정확한 JavaScript 라이브러리이다.
브라우저 지원 서버 (150) 는 제 1 라이브러리 부분은 좀더 빈번하게 실행되지만 제 2 라이브러리 부분은 덜 빈번하게 실행된다는 메타데이터를 제공할 수도 있다. 이러한 방법으로, 프로세서 (131) 는 실행될 가능성이 없을 수도 있는 제 2 라이브러리 부분보다 더 높은 통계적 사용의 가능성을 갖는 제 1 라이브러리 부분을 다운로드할 수도 있다. 다른 양태에서, 이 가정들이 타당하지 않으면, 브라우저는 실행가능할 정도로 빠르게 전체 (fill) 라이브러리를 전송할 수도 있다. 방법 (2000) 은 방법 (2000) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서 (131) 를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (2000) 에서, 프로세서는 블록 (2002) 에서 동작을 개시할 수도 있으며, 여기서 모바일 통신 디바이스는 웹페이지에 대한 요청을 송신할 수도 있으며, 이 요청은 서버에 의해 수신된다.
블록 (2004) 에서, 모바일 통신 디바이스의 프로세서는 요청을 브라우저 지원 서버로 전송하여, 모바일 통신 디바이스에 대한 힌트들을 획득하고 그 요청을 프로세싱할 수도 있다. 브라우저 지원 서버는 그 요청을 분석할 수도 있으며, 블록 (2006) 에서, 프로세서는 라이브러리의 가장 빈번하게 사용되거나 또는 가장 빈번하게 실행되는 부분에 관련한 데이터를 모바일 통신 디바이스에 제공할 수도 있다. 브라우저 지원 서버는 또한 옵션적으로 최소 빈번하게 사용되거나 또는 최소 빈번하게 실행되는 라이브러리 부분들에 관한 정보를 제공할 수도 있다. 블록 (2008) 에서, 모바일 디바이스 프로세서는 가장 빈번하게 사용되는 (또는, 가장 빈번하게 실행되는 라이브러리 부분) 을 먼저 다운로드할 수도 있으며 그 이후에 다른 부분들을 다운로드할 수도 있다. 블록 (2010) 에서, 모바일 디바이스 프로세서는 그 부분을 실행할 수도 있으며, 라이브러리의 제 2 부분을 다운로드하더라도 나중에 다운로드할 수도 있다. 블록 (2012) 에서, 모바일 디바이스는 옵션적으로 피드백을 브라우저 지원 서버로 송신할 수도 있다.
도 21 은 경험적 데이터에 기초하여 웹페이지의 가장 많이 본 부분의 힌트들을 검출하여 제공할 수도 있는 브라우저 지원 서버 (150) 에 대한 양태 방법 (2100) 을 예시한다. 브라우저 지원 서버 (150) 는 모바일 통신 디바이스가 그 웹페이지를 좀더 효율적인 방법으로 프로세싱할 수 있도록, 메타데이터를 모바일 디바이스 프로세서 (131) 에 제공한다. 방법 (2100) 은 방법 (2100) 의 동작들을 수행하는 프로세서 실행가능 명령들로 구성된 프로세서 (131) 를 갖는 컴퓨팅 디바이스에서 구현될 수도 있다. 방법 (2100) 에서, 프로세서는 블록 (2102) 에서 동작을 개시할 수도 있으며, 여기서 모바일 통신 디바이스는 웹페이지에 대한 요청을 송신하며, 이 요청은 서버에 의해 수신된다.
블록 (2104) 에서, 모바일 통신 디바이스 (100) 의 프로세서 (131) 는 요청을 브라우저 지원 서버 (150) 로 전송하여, 모바일 통신 디바이스 (100) 에 대한 힌트들을 획득하고 그 요청을 프로세싱할 수도 있다. 이 힌트들은 서버 (150) 로부터 모바일 통신 디바이스 (100) 로 전송된 메타데이터에 포함된다. 브라우저 지원 서버 (150) 는 그 요청을 분석할 수도 있다. 블록 (2106) 에서, 프로세서 (131) 는 웹사이트에 대해 가장 빈번하게 본 웹페이지 부분에 관련한 데이터를 모바일 통신 디바이스 (100) 에 제공할 수도 있다.
브라우저 지원 서버 (150) 는 다수의 사용자들로부터 관찰된 경험 또는 통계치들로부터 이 정보를 유도할 수도 있다. 브라우저 지원 서버 (150) 는 또한 옵션적으로 웹사이트의 최소로 본 부분에 관한 정보를 제공할 수도 있다. 블록 (2108) 에서, 모바일 디바이스 프로세서 (131) 는 가장 빈번하게 본 웹사이트 부분을 먼저 다운로드할 수도 있으며, 블록 (2110) 에서 다른 부분들을 그 이후에 다운로드할 수도 있다. 블록 (2110) 에서, 모바일 디바이스 프로세서 (131) 는 그 부분을 실행하고 제 2 부분을 나중에 다운로드할 수도 있다. 블록 (2112) 에서, 모바일 디바이스 (100) 는 피드백을 브라우저 지원 서버 (150) 로 전송할 수도 있다.
도 22 는 양태들 중 임의의 양태와 함께 사용하기에 적합한 수신기 디바이스의 시스템 블록도이다. 대표적인 수신기 디바이스 (2230) 는 내부 메모리 (2232), 디스플레이 (2233), 및 스피커 (2254) 에 커플링된 프로세서 (2231) 를 포함할 수도 있다. 게다가, 수신기 디바이스는 무선 데이터 링크에 접속될 수도 있는 전자기 방사선을 전송하고 수신하는 안테나 (2234) 및/또는 프로세서 (2231) 에 커플링된 셀룰러 전화기 송수신기 (2235) 및 프로세서 (2331) 에 커플링된 모바일 멀티미디어 브로드캐스트 수신기 (2236) 를 포함할 수도 있다. 수신기 디바이스들 (2230) 은 일반적으로 또한 사용자 입력들을 수신하기 위한 메뉴 선택 버튼들 또는 로커 스위치들 (2238) 을 포함한다.
여러 양태들이 도 23 에 예시된 서버 (2300) 와 같은, 시중에서 입수가능한 다양한 서버 디바이스들 중 임의의 서버 디바이스 상에서 구현될 수도 있다. 이런 서버 (2300) 는 일반적으로 휘발성 메모리 (2302) 및 대용량 비휘발성 메모리, 예컨대 디스크 드라이브 (2303) 에 커플링된 프로세서 (2301) 를 포함한다. 서버 (2300) 는 또한 프로세서 (2301) 에 커플링된 플로피 디스크 드라이브, 컴팩트 디스크 (CD) 또는 DVD 디스크 드라이브 (2306) 를 포함할 수도 있다. 서버 (2300) 는 또한 다른 브로드캐스트 시스템 컴퓨터들 및 서버들에 커플링된 근거리 네트워크와 같은, 네트워크 (2305) 와 네트워크 인터페이스 접속들을 확립하기 위해 프로세서 (2301) 에 커플링된 네트워크 액세스 포트들 (2304) 을 포함할 수도 있다.
프로세서들 (2331, 2301) 은 위에서 설명한 여러 양태들의 기능들을 포함한 다양한 기능들을 수행하는 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수 있는, 임의의 프로그래밍가능 마이크로프로세서, 마이크로컴퓨터 또는 다수의 프로세서 칩 또는 칩들일 수도 있다. 일부 디바이스들에서, 다수의 프로세서들 (2331, 2301) 은 하나의 프로세서가 무선 통신 기능들을 담당하고 하나의 프로세서가 다른 애플리케이션들을 실행하는 것을 담당하는 것과 같이, 제공될 수도 있다. 일반적으로, 소프트웨어 애플리케이션들은 프로세서 (2331, 2301) 에 액세스되어 로드되기 전에, 내부 메모리 (2232, 2302, 및 2303) 에 저장될 수도 있다. 프로세서 (2331, 2301) 는 애플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 포함할 수도 있다. 많은 디바이스들에서, 내부 메모리는 휘발성 또는 비휘발성 메모리, 예컨대, 플래시 메모리, 또는 양자의 혼합물일 수도 있다. 이 설명의 목적을 위해, 메모리에 대한 전반적인 참조는 디바이스에 플러깅된 내부 메모리 또는 착탈식 메모리 및 프로세서 (2331, 2301) 자체 내 메모리를 포함한, 프로세서 (2331, 2301) 에 의해 액세스가능한 메모리를 지칭한다.
도 24 는 랩탑 컴퓨터 (2410) 를 나타낸다. 위에서 설명한 양태들은 또한 도 24 에 예시된 바와 같은 랩탑 컴퓨터 (2410) 와 같은 다양한 개인 컴퓨팅 디바이스들 내에서 구현될 수도 있다. 많은 랩탑 컴퓨터들은 컴퓨터의 포인팅 디바이스로서 기능하는 터치 패드 터치 표면 (2417) 을 포함하며, 따라서, 터치 스크린 디스플레이와 함께 탑재되며 위에서 설명된 모바일 컴퓨팅 디바이스들 상에서 구현되는 것들과 유사한 드래그, 스크롤, 및 플릭 제스쳐들을 수신할 수도 있다. 랩탑 컴퓨터 (2410) 는 일반적으로 휘발성 메모리 (2412) 및 대용량 비휘발성 메모리, 예컨대 플래시 메모리의 디스크 드라이브 (2413) 에 커플링된 프로세서 (2411) 를 포함할 것이다. 컴퓨터 (2410) 는 또한 프로세서 (2411) 에 커플링된 플로피 디스크 드라이브 (2414) 및 컴팩트 디스크 (CD) 드라이브 (2415) 를 포함할 수도 있다. 컴퓨터 디바이스 (2410) 는 또한 데이터 접속들을 확립하거나 또는 외부 메모리 디바이스들을 수신하기 위해 프로세서 (2411) 에 커플링된 다수의 커넥터 포트들, 예컨대 USB 또는 FireWire® 커넥터 소켓들, 또는 프로세서 (2411) 를 네트워크에 커플링하기 위한 다른 네트워크 접속 회로들을 포함할 수도 있다. 노트북 구성에서, 컴퓨터 하우징은 프로세서 (2411) 에 모두 커플링된 터치패드 (2417), 키보드 (2418), 및 디스플레이 (2419) 를 포함한다. 컴퓨팅 디바이스의 다른 구성들은 널리 공지되어 있는 바와 같이 (예컨대, USB 입력을 통해서) 프로세서에 커플링된 컴퓨터 마우스 또는 트랙볼을 포함할 수도 있으며, 이들은 또한 여러 양태들과 함께 사용될 수도 있다.
상기 방법 설명들 및 프로세스 흐름도들은 단지 예시적인 예들로서 제공되며 여러 양태들의 단계들이 제시된 순서로 수행되어야 한다는 것을 요구하거나 또는 암시하려고 의도된 것이 아니다. 당업자가 주지하고 있는 바와 같이 전술한 양태들에서 단계들의 순서는 임의의 순서로 수행될 수도 있다. "그후", "따라서", "다음" 등과 같은 단어들은 단계들의 순서를 한정하려고 의도되지 않으며; 이들 단어들은 방법들의 설명을 통해서 독자를 안내하기 위해서 단지 사용된다. 또, 단수형으로, 예를 들어, 한정사 "한 (a)", "하나 (an)" 또는 "그 (the)" 를 이용한, 청구항 엘리먼트들에 대한 임의의 참조는 그 엘리먼트를 단수에 한정하는 것으로 해석되어서는 안된다.
본원에서 개시한 양태들과 관련하여 설명한 여러가지 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자적 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로서 구현될 수도 있다. 이러한 하드웨어와 소프트웨어의 상호 교환가능성을 명확히 예시하기 위하여, 이상에서는, 여러 예시적인 구성요소들, 블록들, 모듈들, 회로들 및 단계들을 그들의 기능의 관점에서 일반적으로 설명되었다. 이런 기능이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정의 애플리케이션 및 전체 시스템에 부과되는 설계 제한 사항들에 의존한다. 당업자들은 각각의 특정의 애플리케이션 마다 설명한 기능을 여러가지 방법으로 구현할 수도 있으며, 그러나 이런 구현 결정들이 본 발명의 범위로부터 일탈을 초래하는 것으로 해석되어서는 안된다.
본원에서 개시한 양태들과 관련하여 설명한 여러 예시적인 로직들, 로직 블록들, 모듈들, 및 회로들을 구현하기 위해 사용되는 하드웨어는 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성요소들, 또는 본원에서 설명한 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있으며, 그러나, 대안적으로는, 프로세서 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예컨대, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이런 구성으로서 구현될 수도 있다. 이의 대안으로, 일부 단계들 또는 방법들은 주어진 기능에 특유한 회로에 의해 수행될 수도 있다.
하나 이상의 예시적인 양태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 비일시성 컴퓨터 판독가능 또는 프로세서 판독가능 저장 매체 상에 하나 이상의 명령들 또는 코드로서 저장될 수도 있다. 본원에서 개시한 방법 또는 알고리즘의 단계들은 비일시성 컴퓨터 판독가능 매체 상에 상주하여 실행될 수도 있는 프로세서-실행가능한 소프트웨어 모듈로 구현될 수도 있다. 비일시성 컴퓨터 판독가능 및 프로세서 매체들은 컴퓨터 또는 프로세서에 의해 액세스될 수도 있는 임의의 가용 저장 매체들을 포함한다. 일 예로서, 이에 한정하지 않고, 이런 비일시성 컴퓨터 판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 스토리지, 자기디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 전달하거나 또는 저장하는데 사용될 수도 있으며 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함할 수도 있다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용할 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크, 및 블루-레이를 포함하며, 디스크들 (disks) 은 데이터를 자기적으로 보통 재생하지만, 디스크들 (discs) 은 레이저로 데이터를 광학적으로 재생한다. 앞에서 언급한 것들의 조합들이 또한 비일시성 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다. 게다가, 방법 또는 알고리즘의 동작들은 컴퓨터 프로그램 제품에 포함될 수도 있는 비일시성 머신 판독가능 매체 및/또는 비일시성 컴퓨터 판독가능 매체 상에 코드들 및/또는 명령들 중 하나 또는 임의의 조합 또는 세트로 상주할 수도 있다.
개시된 양태들의 전술한 설명은 임의의 당업자가 본 발명을 실시하고 이용할 수 있도록 하기 위해서 제공된다. 이들 양태들에 대한 여러 변경들은 당업자들에게 명백할 것이며, 본원에서 정의하는 일반 원리들은 본 발명의 정신 또는 범주로부터 일탈함이 없이 다른 양태들에 적용될 수도 있다. 따라서, 본 발명은 본원에서 나타낸 양태들에 한정되지 않고, 다음 청구범위에 부합하는 최광의의 범위 및 본원에서 개시된 원리들 및 신규한 특징들을 부여받게 하려는 것이다.
Claims (134)
- 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법으로서,
상기 컴퓨팅 디바이스로부터 웹페이지에 대한 요청을 송신하는 단계;
브라우저 지원 서버 (browser assistance server) 에, 요청된 상기 웹페이지에 관한 메타데이터에 대한 상기 컴퓨팅 디바이스로부터의 요청을 송신하는 단계;
상기 웹페이지에 대한 요청을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕기 위해 상기 메타데이터를 상기 컴퓨팅 디바이스에서 상기 브라우저 지원 서버로부터 수신하는 단계로서, 상기 메타데이터는 실행될 가능성이 가장 높은 것으로 결정되는 상기 요청된 웹페이지의 부분을 기술하는, 상기 수신하는 단계;
상기 메타데이터에 기초하여 상기 요청된 웹페이지의 상기 부분을 다운로드하는 단계;
상기 요청된 웹페이지를 렌더링하기 위해 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지의 다운로드된 상기 부분을 실행하는 단계; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 요청된 웹페이지의 프로세싱 및 렌더링으로부터의 결과들을 상기 브라우저 지원 서버로 전송하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 컴퓨팅 디바이스에서 수신된 상기 메타데이터는,
JavaScript 함수 실행 확률들;
데이터를 파싱하기 위한 AST 데이터;
스크립트 토큰 데이터;
렉싱 정보;
상기 컴퓨팅 디바이스를 돕기 위해 서버에서 프로세싱된 데이터로부터 리턴된 2진 코드;
상기 컴퓨팅 디바이스에서 CSS 웹페이지 데이터를 프로세싱할 때에 돕기 위한 CSS 메타데이터;
상기 컴퓨팅 디바이스에서 JavaScript 웹페이지 데이터를 프로세싱할 때에 돕기 위한 JavaScript 메타데이터;
상기 컴퓨팅 디바이스에서 HTML 웹페이지 데이터를 프로세싱할 때에 돕기 위한 HTML 메타데이터; 및
이들의 조합들
로 이루어진 그룹으로부터 선택된 데이터를 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 컴퓨팅 디바이스에서 수신된 상기 메타데이터는 복수의 관찰된 사용자들 브라우징 통계치들을 포함하며,
상기 방법은 다른 부분들에 앞서 상기 컴퓨팅 디바이스에서 상기 웹페이지의 부분들을 로드할 때에 돕기 위해 상기 복수의 관찰된 브라우징 통계치들을 이용하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 컴퓨팅 디바이스에서 수신된 상기 메타데이터는 미리 결정된 실행의 확률을 갖는 코드의 부분에 관한 통계치들을 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 컴퓨팅 디바이스에서 수신된 상기 메타데이터는 서버 상에서 실행되는 JavaScript 코드로부터 기인하는 변환된 2진 코드를 포함하며,
상기 방법은 상기 서버에서의 프로세싱을 증가시키고 상기 컴퓨팅 디바이스에서의 프로세싱을 감소시키기 위해 상기 2진 코드를 상기 컴퓨팅 디바이스로 송신하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 컴퓨팅 디바이스 상의 웹 브라우저가 인기 있는 부분들을 먼저 로드하도록 상기 인기 있는 웹페이지의 부분들에 상관있는 분석론을 전송하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 컴퓨팅 디바이스의 사용자의 습관들을 모으는 단계; 및
상기 사용자에 의해 빈번하게 액세스된 웹페이지 엘리먼트들을 메모리에 사전 로드하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
서버에서 복수의 웹 사용자들의 인기 있는 데이터에 대응하는 복수의 사용자들로부터의 사용 정보를 모으는 단계; 및
상기 사용 정보 및 상기 복수의 웹 사용자들의 습관들의 분석에 기초하여 메타데이터를 발생시키는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
메타데이터를 로칼 네트워크 컴퓨터로부터 상기 컴퓨팅 디바이스로 전송하는 단계;
다른 웹 사용자들의 인기 있는 데이터에 대응하는 복수의 사용자들로부터의 사용 정보를 모으는 단계; 및
상기 로칼 네트워크 컴퓨터를 이용하여 메타데이터를 발생시키는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
사용자들이 웹 브라우저를 사용함에 따라, 복수의 사용자들에 기초하여 브라우징 습관들에 대한 집합 정보를 모으는 단계;
도구화된 (instrumented) 웹 브라우저를 이용하여 상기 브라우징 습관들을 발생시키기 위해 상기 복수의 사용자들을 모니터링하는 단계; 및
상기 복수의 사용자들의 상기 브라우징 습관들에 기초하여 메타데이터를 발생시키는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
라이브러리가 빈번하게 다운로드된다는 것을 나타내는 메타데이터를 발생시키는 단계;
상기 라이브러리가 관찰된 통계적 정보에 기초하여 실행을 위해 다른 부분들에 앞서 통계적으로 요구될 가능성이 있는 부분을 갖는다는 것을 상기 메타데이터에 기술하는 단계; 및
상기 메타데이터에 기초하여 상기 라이브러리의 상기 부분을 먼저 다운로드하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 11 항에 있어서,
통계적 데이터에 기초하여 상기 라이브러리가 실행가능할 가능성이 가장 많은 라이브러리 부분을 갖는다고 결정하는 단계; 및
상기 라이브러리의 다른 부분들에 앞서 상기 실행가능할 가능성이 가장 많은 라이브러리 부분을 먼저 다운로드하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
브라우징 동안 복수의 사용자들을 모니터링하는 단계;
사용자들의 통계적 퍼센티지가 다른 부분들에 앞서 웹페이지의 제 1 부분을 볼 가능성이 있는 것을 나타내는 메타데이터를 발생시키는 단계; 및
상기 웹페이지의 다른 부분들에 앞서 상기 컴퓨팅 디바이스로 상기 제 1 부분을 먼저 송신하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 메타데이터는 상기 컴퓨팅 디바이스의 사용자에 대한 프로파일을 포함하며,
상기 방법은,
상기 프로파일에 기초하여 상기 사용자가 다른 부분들에 앞서 웹페이지의 제 1 부분을 볼 가능성이 있다는 통계적 퍼센티지를 나타내는 메타데이터를 발생시키는 단계;
상기 사용자가 웹페이지의 제 2 부분을 볼 가능성이 없다는 통계적 퍼센티지를 나타내는 메타데이터를 발생시키는 단계;
상기 웹페이지의 다른 부분들에 앞서 상기 제 1 부분을 먼저 상기 컴퓨팅 디바이스로 다운로드하는 단계; 및
상기 제 2 부분을 상기 제 1 부분 이후 시간 기간에 다운로드하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
다른 사용자들 브라우징의 습관들을 나타내는 메타데이터를 발생시키는 단계;
상기 메타데이터에 기초하여 어느 웹페이지들의 부분들이 상기 웹페이지의 다른 부분들에 앞서 통계적으로 액세스될 가능성이 있는지를 결정하는 단계;
제 2 부분이 빈번하게 액세스되지 않을 가능성이 있는 것을 결정하는 단계; 및
상기 제 2 부분이 빈번하게 액세스되지 않고 통계적으로 액세스될 가능성이 있는 부분들보다 더 낮은 우선순위로 다운로드되는 것을 상기 메타데이터로 통신하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
무선 네트워크를 통해서 서버에 링크하는 단계;
브라우저를 상기 서버와 연관시키는 단계; 및
상기 컴퓨팅 디바이스에 의한 사용을 위한 정보를 상기 브라우저로부터 수집하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
JavaScript 를 포함하는 요청을 파싱하거나, 분석하거나, 또는 실행하기 위해 웹 브라우저에 대한 상기 메타데이터를 이용하여 힌트들을 제공하는 단계;
상기 JavaScript 가 상기 컴퓨팅 디바이스에서 프로세싱하는데 비효율적인 것을 결정하는 단계; 및
상기 JavaScript 의 2진 사전-컴파일된 변환을 송신하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
복수의 웹 사용자들 브라우징 습관들 및 웹페이지들을 보는 상기 웹 사용자들에 관련된 습관들에 관한 통계치들을 집합하는 단계;
상기 통계치들을 상기 메타데이터로 전달하는 단계;
상기 웹페이지들이 상기 컴퓨팅 디바이스에서 요청되기 전에 통계적으로 인기 있는 웹페이지들을 사전 로드함으로써 모바일 리소스들을 절약하기 위해 상기 통계치들을 이용하는 단계;
인기 있는 상기 웹페이지의 부분들을 다운로드하는 단계; 및
모바일 리소스들을 절약하기 위해, 인기 없는 상기 웹페이지의 제 2 부분들을 다운로드하는 것을 생략하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
인터넷 브라우저로부터 브라우징 데이터를 서버로 전송하는 단계; 및
상기 브라우징 데이터로부터 상기 메타데이터를 상기 서버에서 발생시키는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
도구가 되는 브라우저로부터 데이터를 서버로 전송하는 단계; 및
상기 데이터로부터 상기 메타데이터를 발생시키는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 컴퓨팅 디바이스에서 수신된 상기 메타데이터는,
상기 컴퓨팅 디바이스 상의 웹 브라우저가 인기 있는 부분들을 먼저 로드하도록 피어 디바이스에 접속된 컴퓨팅 디바이스들로 인기 있는 웹페이지의 부분들에 상관있는 피어 디바이스로부터 상기 컴퓨팅 디바이스로의 메타데이터를 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
제 2 컴퓨팅 디바이스의 브라우징 습관들의 클라이언트 측 모니터링 시스템을 제공하는 단계;
상기 브라우징 습관들을 서버로 전송하는 단계; 및
상기 제 2 컴퓨팅 디바이스의 상기 브라우징 습관들의 상기 클라이언트 측 모니터링 시스템에 기초하여 메타데이터를 상기 서버로부터 상기 컴퓨팅 디바이스로 전송하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
요청들 및 요청들에 대한 응답들을 포함하는 브라우징 습관들로부터 메타데이터를 발생시키는 단계; 및
상기 메타데이터를 상기 컴퓨팅 디바이스의 피어인 피어 디바이스에 제공하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
복수의 사용자들의 브라우징 습관들을 모니터링하는 단계;
상기 브라우징 습관들을 서버로 전송하는 단계;
모니터링된 상기 브라우징 습관들에 기초하여 상기 복수의 사용자들의 복수의 관찰된 프로파일들을 체계화하는 단계;
상기 컴퓨팅 디바이스 사용자의 브라우징 습관들을 모니터링하는 단계; 및
상기 모니터링된 브라우징 습관들에 기초하여 상기 컴퓨팅 디바이스 사용자에 매칭하는 적어도 하나의 관찰된 프로파일에 기초하여, 메타데이터를 상기 서버로부터 상기 컴퓨팅 디바이스로 송신하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
코드의 부분이 제 2 부분보다 더 자주 분석되거나, 다운로드되거나, 파싱되거나, 또는 실행되는 것 중 적어도 하나라는 것을 상기 메타 데이터에 기술하는 단계; 및
상기 제 2 부분에 앞서 코드의 상기 부분을 먼저 재정리하고 다운로드하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
라이브러리가 실행될 가능성이 가장 높은 것으로 결정된 부분을 포함한다는 것을 상기 메타데이터에 기술하는 단계; 및
상기 라이브러리의 다른 부분들에 앞서 실행될 가능성이 가장 높은 라이브러리 부분을 다운로드하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 브라우저 지원 서버 상에 로케이트된 브라우저 어시스턴트에 대한 상기 요청을 송신하는 단계;
웹 사이트가 상기 컴퓨팅 디바이스에 의해 빈번하게 액세스된다고 결정하는 단계; 및
업데이트된 웹 사이트 데이터를 상기 컴퓨팅 디바이스로 업로드하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 메타데이터에 포함된 통계적 브라우징 습관들에 기초하여, 제 2 부분들에 앞서 상기 컴퓨팅 디바이스를 이용하여 웹페이지들의 제 1 부분들을 다운로드하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 컴퓨팅 디바이스를 이용하여 웹페이지들의 부분들을 사전 로드하는 단계를 더 포함하며, 사전 로드된 상기 부분들은 상기 메타데이터에 포함된 통계적 브라우징 습관들을 이용하여 식별되는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
복수의 사용자들로부터의 브라우징 습관들을 모니터링하는 단계;
웹페이지 엘리먼트들을 포함하는 웹페이지가 빈번하게 액세스된다고 결정하는 단계;
상기 웹페이지 엘리먼트들이 상기 컴퓨팅 디바이스 상에서 삭제되는 것을 방지하기 위해 상기 브라우징 습관들에 기초하여 캐시 상에 웹페이지 엘리먼트들을 저장하는 단계; 및
예상된 요청에 앞서 상기 웹페이지 엘리먼트들을 상기 캐시로부터 다운로드하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 30 항에 있어서,
단일 사용자의 브라우징 습관들로부터 유도되는 브라우징 습관들을 모니터링하는 단계;
상기 캐시 상에 저장된 웹페이지를 업데이트하는 단계;
상기 요청 없이 상기 캐시 상의 엘리먼트들을 상기 컴퓨팅 디바이스로 주기적인 간격들로 푸시하는 단계;
상기 캐시 상에 저장된 웹페이지를 업데이트하는 단계; 및
상기 캐시 상의 엘리먼트들을 상기 컴퓨팅 디바이스로 가져오는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 컴퓨팅 디바이스로 하여금 필수 부분들을 실행함으로써 상기 웹페이지를 좀더 효율적인 방법으로 실행가능하게 하는 메타데이터를 상기 컴퓨팅 디바이스에서 수신하는 단계; 및
전체 웹페이지를 실행하는 것을 중지하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 브라우저 지원 서버가 상기 웹페이지에 대한 요청에 응답하는 서버와 동일한 서버인 서버 상에 로케이트되는 것을 제공하는 단계;
상기 브라우저 지원 서버가 피어 컴퓨터 디바이스 상에 로케이트되는 것을 제공하는 단계; 및
상기 브라우저 지원 서버가 네트워크 디바이스 상에 로케이트되는 것을 제공하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
웹페이지에 대한 요청을 송신하는 단계로서, 상기 웹페이지는 부분들을 포함하는, 상기 송신하는 단계;
네이티브 코드를 초래하기 위해 상기 브라우저 지원 서버를 이용하여 상기 부분들을 프로세싱하는 단계; 및
네이티브 코드를 상기 컴퓨팅 디바이스로 리턴하는 단계를 더 포함하며,
상기 부분들은 JavaScript 를 포함하고,
상기 브라우저 지원 서버는 서버, 네트워크 컴퓨터, 또는 피어 디바이스 중 하나 상에 로케이트되는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
데이터에 대한 요청을 송신하는 단계;
요청을 제 1 디바이스로 송신하는 단계;
메타데이터를 제 2 디바이스로 송신하는 단계; 및
요청들 및 요청들에 대한 응답들의 모니터링된 경험적 데이터에 기초하여 가능성있는 통계적 실행의 가능성을 갖는 상기 웹페이지의 부분들을 상기 메타데이터에 기술하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 제 1 항에 있어서,
상기 웹페이지에 대한 요청을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕기 위해 상기 메타데이터를 사전-캐시함으로써 메타데이터를 상기 컴퓨팅 디바이스에서 미리 수신하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 웹페이지를 렌더링하는 방법. - 컴퓨팅 디바이스로서,
디스플레이;
내부 메모리; 및
상기 디스플레이 및 상기 내부 메모리에 커플링된 프로세서를 포함하며,
상기 프로세서는,
웹페이지에 대한 요청을 송신하는 것;
브라우저 지원 서버 (browser assistance server) 에, 요청된 상기 웹페이지에 관한 메타데이터에 대한 요청을 송신하는 것;
상기 웹페이지에 대한 요청을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕기 위해 상기 브라우저 지원 서버로부터 상기 메타데이터를 수신하는 것으로서, 상기 메타데이터는 실행될 가능성이 가장 높은 것으로 결정되는 상기 요청된 웹페이지의 부분을 기술하는, 상기 수신하는 것;
상기 메타데이터에 기초하여 상기 요청된 웹페이지의 상기 부분을 다운로드하는 것;
상기 요청된 웹페이지를 렌더링하기 위해 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지의 다운로드된 상기 부분을 실행하는 것; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 요청된 웹페이지의 프로세싱 및 렌더링으로부터의 결과들을 상기 브라우저 지원 서버로 전송하는 것을 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는,
메타데이터를 수신하는 것이,
JavaScript 함수 실행 확률들;
데이터를 파싱하기 위한 AST 데이터;
스크립트 토큰 데이터;
렉싱 정보;
상기 컴퓨팅 디바이스를 돕기 위해 서버에서 프로세싱된 데이터로부터 리턴된 2진 코드;
상기 컴퓨팅 디바이스에서 CSS 웹페이지 데이터를 프로세싱할 때에 돕기 위한 CSS 메타데이터;
상기 컴퓨팅 디바이스에서 JavaScript 웹페이지 데이터를 프로세싱할 때에 돕기 위한 JavaScript 메타데이터;
상기 컴퓨팅 디바이스에서 HTML 웹페이지 데이터를 프로세싱할 때에 돕기 위한 HTML 메타데이터; 및
이들의 조합들
로 이루어진 그룹으로부터 선택된 데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는 메타데이터를 수신하는 것이 복수의 관찰된 사용자들 브라우징 통계치들을 수신하는 것을 포함하도록 하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되고,
상기 프로세서는 다른 부분들에 앞서 상기 웹페이지의 부분들을 로드할 때에 돕기 위해 상기 복수의 관찰된 브라우징 통계치들을 이용하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는 메타데이터를 수신하는 것이 미리 결정된 실행의 확률을 갖는 코드의 부분에 관한 통계치들을 수신하는 것을 포함하도록 하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는,
상기 서버에서의 프로세싱을 최대화하고 상기 컴퓨팅 디바이스에서의 프로세싱을 최소화하기 위해 서버 상에서 실행되는 JavaScript 코드로부터 기인하는 변환된 2진 코드를 포함하는 메타데이터를 수신하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는, 메타데이터를 수신하는 것이 상기 컴퓨팅 디바이스 상의 웹 브라우저가 인기 있는 부분들을 먼저 로드하도록 상기 인기 있는 웹페이지의 부분들에 상관있는 분석론 (analytics) 을 수신하는 것을 포함하도록 하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는,
상기 컴퓨팅 디바이스의 사용자의 웹 브라우징 습관들을 모니터링하는 것;
상기 사용자의 웹 브라우징 습관들에 관한 정보를 서버로 전송하는 것; 및
상기 사용자의 웹 브라우징 습관들에 부분적으로 기초하여 상기 서버로부터 메타데이터를 수신하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는,
상기 컴퓨팅 디바이스의 사용자의 웹 브라우징 습관들을 모니터링하는 것; 및
상기 사용자에 의해 빈번하게 액세스된 웹페이지 엘리먼트들을 메모리에 사전 로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는, 메타데이터를 수신하는 것이 라이브러리가 빈번하게 다운로드된다는 것을 나타내는 메타데이터를 수신하도록 하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되며,
상기 라이브러리가 관찰된 통계적 정보에 기초하여 실행을 위해 다른 부분들에 앞서 통계적으로 요구될 가능성이 있는 부분을 갖는다는 것이 상기 메타데이터에 기술되며;
상기 프로세서는 상기 메타데이터에 기초하여 상기 라이브러리의 상기 부분을 먼저 다운로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 45 항에 있어서,
상기 프로세서는,
통계적 데이터에 기초하여 상기 라이브러리가 실행가능할 가능성이 가장 많은 라이브러리 부분을 갖는다고 결정하는 것; 및
상기 라이브러리의 다른 부분들에 앞서 상기 실행가능할 가능성이 가장 많은 라이브러리 부분을 먼저 다운로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는, 메타데이터를 수신하는 것이 피어 디바이스에 접속된 컴퓨팅 디바이스들로 인기 있는 웹페이지의 부분들에 상관있는 피어 디바이스로부터 메타데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되며;
상기 프로세서는 상기 인기 있는 부분들을 웹 브라우저 상에 먼저 로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는,
요청들 및 요청들에 대한 응답들을 포함하는 브라우징 습관들로부터 메타데이터를 발생시키는 것; 및
상기 메타데이터를 상기 컴퓨팅 디바이스의 피어 디바이스에 제공하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는, 메타데이터를 수신하는 것이 코드의 제 1 부분이 제 2 부분보다 더 자주 분석되거나, 다운로드되거나, 파싱되거나, 또는 실행되는 것 중 적어도 하나라는 것을 나타내는 메타데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되고;
상기 프로세서는 상기 제 2 부분에 앞서 코드의 상기 제 1 부분을 재정리하고 다운로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는 메타데이터를 수신하는 것이 라이브러리가 실행될 가능성이 가장 높은 것으로 결정된 부분을 포함한다는 것을 나타내는 메타데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되고;
상기 프로세서는 상기 라이브러리의 다른 부분들에 앞서 실행될 가능성이 가장 높은 라이브러리 부분을 다운로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는,
수신된 상기 메타데이터에 포함된 통계적 브라우징 습관들에 기초하여 다른 부분들에 앞서 웹페이지들의 제 1 부분들을 다운로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는,
상기 메타데이터에 포함된 통계적 브라우징 습관들을 이용하여 식별된 웹페이지들의 부분들을 사전 로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는, 메타데이터를 수신하는 것이 상기 컴퓨팅 디바이스로 하여금 필수 부분들을 실행함으로써 상기 웹페이지를 좀더 효율적인 방법으로 실행가능하게 하는 메타데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되고;
상기 프로세서는 전체 웹페이지를 실행하는 것을 중지하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는,
상기 웹페이지에 대한 요청을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕기 위해, 수신된 상기 메타데이터를 사전-캐시하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 저장된 프로세서 실행가능 명령들을 갖는 비일시성 컴퓨터 판독가능 저장 매체로서,
상기 저장된 프로세서 실행가능 명령들은, 컴퓨팅 디바이스 프로세서로 하여금,
웹페이지에 대한 요청을 송신하는 것;
브라우저 지원 서버 (browser assistance server) 에, 요청된 상기 웹페이지에 관한 메타데이터에 대한 요청을 송신하는 것;
상기 웹페이지에 대한 요청을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스 프로세서를 돕기 위해 상기 브라우저 지원 서버로부터 상기 메타데이터를 수신하는 것으로서, 상기 메타데이터는 실행될 가능성이 가장 높은 것으로 결정되는 상기 요청된 웹페이지의 부분을 기술하는, 상기 수신하는 것;
상기 메타데이터에 기초하여 상기 요청된 웹페이지의 상기 부분을 다운로드하는 것;
상기 요청된 웹페이지를 렌더링하기 위해 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지의 다운로드된 상기 부분을 실행하는 것; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 요청된 웹페이지의 프로세싱 및 렌더링으로부터의 결과들을 상기 브라우저 지원 서버로 전송하는 것을 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금,
메타데이터를 수신하는 것이,
JavaScript 함수 실행 확률들;
데이터를 파싱하기 위한 AST 데이터;
스크립트 토큰 데이터;
렉싱 정보;
상기 컴퓨팅 디바이스를 돕기 위해 서버에서 프로세싱된 데이터로부터 리턴된 2진 코드;
상기 컴퓨팅 디바이스에서 CSS 웹페이지 데이터를 프로세싱할 때에 돕기 위한 CSS 메타데이터;
상기 컴퓨팅 디바이스에서 JavaScript 웹페이지 데이터를 프로세싱할 때에 돕기 위한 JavaScript 메타데이터;
상기 컴퓨팅 디바이스에서 HTML 웹페이지 데이터를 프로세싱할 때에 돕기 위한 HTML 메타데이터; 및
이들의 조합들
로 이루어진 그룹으로부터 선택된 데이터를 수신하는 것을 포함하도록 하는 동작들을 더 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 메타데이터를 수신하는 것이 복수의 관찰된 사용자들 브라우징 통계치들을 수신하는 것을 포함하도록 하는 동작들을 수행하게 하도록 구성되고;
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 다른 부분들에 앞서 상기 웹페이지의 부분들을 로드할 때에 돕기 위해 상기 복수의 관찰된 브라우징 통계치들을 이용하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 메타데이터를 수신하는 것이 미리 결정된 실행의 확률을 갖는 코드의 부분에 관한 통계치들을 수신하는 것을 포함하도록 하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금,
상기 서버에서의 프로세싱을 최대화하고 상기 컴퓨팅 디바이스에서의 프로세싱을 최소화하기 위해 서버 상에서 실행되는 JavaScript 코드로부터 기인하는 변환된 2진 코드를 포함하는 메타데이터를 수신하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 메타데이터를 수신하는 것이 상기 컴퓨팅 디바이스 상의 웹 브라우저가 인기 있는 부분들을 먼저 로드하도록 상기 인기 있는 웹페이지의 부분들에 상관있는 분석론을 수신하는 것을 포함하도록 하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금,
상기 컴퓨팅 디바이스의 사용자의 웹 브라우징 습관들을 모니터링하는 것;
상기 사용자의 웹 브라우징 습관들에 관한 정보를 서버로 전송하는 것; 및
상기 사용자의 웹 브라우징 습관들에 부분적으로 기초하여 상기 서버로부터 메타데이터를 수신하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금,
상기 컴퓨팅 디바이스의 사용자의 웹 브라우징 습관들을 모니터링하는 것; 및
상기 사용자에 의해 빈번하게 액세스된 웹페이지 엘리먼트들을 메모리에 사전 로드하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 메타데이터를 수신하는 것이 라이브러리가 빈번하게 다운로드된다는 것을 나타내는 메타데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하게 하도록 구성되며,
상기 라이브러리가 관찰된 통계적 정보에 기초하여 실행을 위해 다른 부분들에 앞서 통계적으로 요구될 가능성이 있는 부분을 갖는다는 것이 상기 메타데이터에 기술되고;
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 상기 메타데이터에 기초하여 상기 라이브러리의 상기 부분을 먼저 다운로드하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 63 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금,
통계적 데이터에 기초하여 상기 라이브러리가 실행가능할 가능성이 가장 많은 라이브러리 부분을 갖는다고 결정하는 것; 및
상기 라이브러리의 다른 부분들에 앞서 상기 실행가능할 가능성이 가장 많은 라이브러리 부분을 먼저 다운로드하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 메타데이터를 수신하는 것이 피어 디바이스에 접속된 컴퓨팅 디바이스들로 인기 있는 웹페이지의 부분들에 상관있는 피어 디바이스로부터 메타데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하게 하도록 구성되고;
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 상기 인기 있는 부분들을 웹 브라우저 상에 먼저 로드하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금,
요청들 및 요청들에 대한 응답들을 포함하는 브라우징 습관들로부터 메타데이터를 발생시키는 것; 및
상기 메타데이터를 상기 컴퓨팅 디바이스의 피어 디바이스에 제공하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 메타데이터를 수신하는 것이 코드의 제 1 부분이 제 2 부분보다 더 자주 분석되거나, 다운로드되거나, 파싱되거나, 또는 실행되는 것 중 적어도 하나라는 것을 나타내는 메타데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하게 하도록 구성되고;
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 상기 제 2 부분에 앞서 코드의 상기 제 1 부분을 재정리하고 다운로드하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 메타데이터를 수신하는 것이 라이브러리가 실행될 가능성이 가장 높은 것으로 결정된 부분을 포함한다는 것을 나타내는 메타데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하게 하도록 구성되고;
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 상기 라이브러리의 다른 부분들에 앞서 실행될 가능성이 가장 높은 라이브러리 부분을 다운로드하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금,
수신된 상기 메타데이터에 포함된 통계적 브라우징 습관들에 기초하여 제 2 부분들에 앞서 웹페이지들의 제 1 부분들을 다운로드하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금,
상기 메타데이터에 포함된 통계적 브라우징 습관들을 이용하여 식별된 웹페이지들의 부분들을 사전 로드하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 메타데이터를 수신하는 것이 상기 컴퓨팅 디바이스로 하여금 필수 부분들을 실행함으로써 상기 웹페이지를 좀더 효율적인 방법으로 실행가능하게 하는 메타데이터를 수신하는 것을 포함하도록 하는 동작들을 수행하게 하도록 구성되고;
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금, 전체 웹페이지를 실행하는 것을 중지하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 55 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 컴퓨팅 디바이스 프로세서로 하여금,
상기 웹페이지에 대한 요청을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕기 위해, 수신된 상기 메타데이터를 사전-캐시하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 컴퓨팅 디바이스로서,
웹페이지에 대한 요청을 송신하는 수단;
브라우저 지원 서버 (browser assistance server) 에, 요청된 상기 웹페이지에 관한 메타데이터에 대한 요청을 송신하는 수단;
상기 웹페이지에 대한 요청을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕기 위해 상기 브라우저 지원 서버로부터 상기 메타데이터를 수신하는 수단으로서, 상기 메타데이터는 실행될 가능성이 가장 높은 것으로 결정되는 상기 요청된 웹페이지의 부분을 기술하는, 상기 수신하는 수단;
상기 메타데이터에 기초하여 상기 요청된 웹페이지의 상기 부분을 다운로드하는 수단;
상기 요청된 웹페이지를 렌더링하기 위해 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지의 다운로드된 상기 부분을 실행하는 수단; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 요청된 웹페이지의 프로세싱 및 렌더링으로부터의 결과들을 상기 브라우저 지원 서버로 전송하는 수단을 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터를 수신하는 수단은,
JavaScript 함수 실행 확률들;
데이터를 파싱하기 위한 AST 데이터;
스크립트 토큰 데이터;
렉싱 정보;
상기 컴퓨팅 디바이스를 돕기 위해 서버에서 프로세싱된 데이터로부터 리턴된 2진 코드;
상기 컴퓨팅 디바이스에서 CSS 웹페이지 데이터를 프로세싱할 때에 돕기 위한 CSS 메타데이터;
상기 컴퓨팅 디바이스에서 JavaScript 웹페이지 데이터를 프로세싱할 때에 돕기 위한 JavaScript 메타데이터;
상기 컴퓨팅 디바이스에서 HTML 웹페이지 데이터를 프로세싱할 때에 돕기 위한 HTML 메타데이터; 및
이들의 조합들
로 이루어진 그룹으로부터 선택된 데이터를 수신하는 수단을 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터를 수신하는 수단은 복수의 관찰된 사용자들 브라우징 통계치들을 수신하는 수단을 포함하며,
상기 컴퓨팅 디바이스는 다른 부분들에 앞서 상기 웹페이지의 부분들을 로드할 때에 돕기 위해 상기 복수의 관찰된 브라우징 통계치들을 이용하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터를 수신하는 수단은 미리 결정된 실행의 확률을 갖는 코드의 부분에 관한 통계치들을 수신하는 수단을 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
서버에서의 프로세싱을 최대화하고 상기 컴퓨팅 디바이스에서의 프로세싱을 최소화하기 위해 서버 상에서 실행되는 JavaScript 코드로부터 기인하는 변환된 2진 코드를 포함하는 메타데이터를 수신하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터를 수신하는 수단은, 상기 컴퓨팅 디바이스 상의 웹 브라우저가 인기 있는 부분들을 먼저 로드하도록, 상기 인기 있는 웹페이지의 부분들에 상관있는 분석론을 수신하는 수단을 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 컴퓨팅 디바이스의 사용자의 웹 브라우징 습관들을 모니터링하는 수단;
상기 사용자의 웹 브라우징 습관들에 관한 정보를 서버로 전송하는 수단; 및
상기 사용자의 웹 브라우징 습관들에 부분적으로 기초하여 상기 서버로부터 메타데이터를 수신하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 컴퓨팅 디바이스의 사용자의 웹 브라우징 습관들을 모니터링하는 수단; 및
상기 사용자에 의해 빈번하게 액세스된 웹페이지 엘리먼트들을 메모리에 사전 로드하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터를 수신하는 수단은 라이브러리가 빈번하게 다운로드된다는 것을 나타내는 메타데이터를 수신하는 수단을 포함하며,
상기 라이브러리가 관찰된 통계적 정보에 기초하여 실행을 위해 다른 부분들에 앞서 통계적으로 요구될 가능성이 있는 부분을 갖는다는 것이 상기 메타데이터에 기술되고;
상기 컴퓨팅 디바이스는 상기 메타데이터에 기초하여 상기 라이브러리의 상기 부분을 먼저 다운로드하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 81 항에 있어서,
통계적 데이터에 기초하여 상기 라이브러리가 실행가능할 가능성이 가장 많은 라이브러리 부분을 갖는다고 결정하는 수단; 및
상기 라이브러리의 다른 부분들에 앞서 상기 실행가능할 가능성이 가장 많은 라이브러리 부분을 먼저 다운로드하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터를 수신하는 수단은 피어 디바이스에 접속된 컴퓨팅 디바이스들로 인기 있는 웹페이지의 부분들에 상관있는 피어 디바이스로부터 메타데이터를 수신하는 수단을 포함하고;
상기 컴퓨팅 디바이스는 상기 인기 있는 부분들을 웹 브라우저 상에 먼저 로드하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
요청들 및 요청들에 대한 응답들을 포함하는 브라우징 습관들로부터 메타데이터를 발생시키는 수단; 및
상기 메타데이터를 상기 컴퓨팅 디바이스의 피어 디바이스에 제공하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터를 수신하는 수단은 코드의 제 1 부분이 제 2 부분보다 더 자주 분석되거나, 다운로드되거나, 파싱되거나, 또는 실행되는 것 중 적어도 하나라는 것을 나타내는 메타데이터를 수신하는 수단을 포함하고;
상기 컴퓨팅 디바이스는 상기 제 2 부분에 앞서 코드의 상기 제 1 부분을 재정리하고 다운로드하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터를 수신하는 수단은 라이브러리가 실행될 가능성이 가장 높은 것으로 결정된 부분을 포함한다는 것을 나타내는 메타데이터를 수신하는 수단을 포함하고;
상기 컴퓨팅 디바이스는 상기 라이브러리의 다른 부분들에 앞서 실행될 가능성이 가장 높은 라이브러리 부분을 다운로드하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
수신된 상기 메타데이터에 포함된 통계적 브라우징 습관들에 기초하여 제 2 부분들에 앞서 웹페이지들의 제 1 부분들을 다운로드하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터에 포함된 통계적 브라우징 습관들을 이용하여 식별된 웹페이지들의 부분들을 사전 로드하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 메타데이터를 수신하는 수단은, 상기 컴퓨팅 디바이스로 하여금 필수 부분들을 실행함으로써 상기 웹페이지를 좀더 효율적인 방법으로 실행가능하게 하는 메타데이터를 수신하는 수단을 포함하고;
상기 컴퓨팅 디바이스는 전체 웹페이지를 실행하는 것을 중지하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 73 항에 있어서,
상기 웹페이지에 대한 요청을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕기 위해, 수신된 상기 메타데이터를 사전-캐시하는 수단을 더 포함하는, 컴퓨팅 디바이스. - 서버로서,
프로세서;
상기 프로세서에 커플링되며 상기 프로세서가 셀룰러 통신 네트워크와 통신할 수 있게 하도록 구성된 네트워크 인터페이스; 및
상기 프로세서에 커플링된 메모리를 포함하며,
상기 프로세서는,
컴퓨팅 디바이스로부터 웹페이지에 대한 요청을 수신하는 것;
브라우저 지원 서버 (browser assistance server) 에서, 요청된 상기 웹페이지에 관한 메타데이터에 대한 상기 컴퓨팅 디바이스로부터의 요청을 수신하는 것으로서, 상기 메타데이터는 실행될 가능성이 가장 높은 것으로 결정되는 상기 요청된 웹페이지의 부분을 기술하는, 상기 수신하는 것;
상기 요청된 웹페이지 플러스 상기 컴퓨팅 디바이스 상에서 수신된 상기 요청된 웹페이지의 상기 부분을 렌더링하기 위해 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지 코드를 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕도록 구성된 상기 메타데이터를 상기 컴퓨팅 디바이스로 송신하는 것; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 컴퓨팅 디바이스로부터 상기 요청된 웹페이지의 프로세싱 및 렌더링으로부터의 결과들을 수신하는 것을 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 서버. - 제 91 항에 있어서,
상기 프로세서는,
복수의 컴퓨팅 디바이스들로부터 상기 복수의 컴퓨팅 디바이스들의 사용자들의 웹 사용 습관들에 관련된 웹 사용 정보를 수신하는 것; 및
수신된 상기 사용 정보 및 상기 복수의 컴퓨팅 디바이스들의 상기 사용자들의 웹 사용 습관들의 분석에 기초하여 상기 메타데이터를 발생시키는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 서버. - 제 91 항에 있어서,
상기 프로세서는,
요청된 상기 웹페이지 내 JavaScript 의 2진 사전-컴파일된 변환을 상기 컴퓨팅 디바이스로 송신하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 서버. - 제 91 항에 있어서,
상기 프로세서는,
복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 집합 정보를 모으는 것; 및
상기 복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 집합 정보에 기초하여 상기 메타데이터를 발생시키는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되며,
상기 집합 정보는 상기 복수의 컴퓨팅 디바이스들 상에서 동작하는 도구화된 웹 브라우저들에 의해 제공되는, 서버. - 제 94 항에 있어서,
상기 프로세서는,
상기 복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 상기 집합 정보로부터, 사용자들이 다른 부분들에 앞서 웹페이지의 제 1 부분을 볼 가능성이 있는 때를 결정하는 것; 및
상기 웹페이지의 상기 제 1 부분을 상기 웹페이지의 다른 부분들에 앞서 상기 컴퓨팅 디바이스로 송신하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 서버. - 제 94 항에 있어서,
상기 프로세서는,
다른 사용자들의 브라우징 습관들을 나타내는 메타데이터를 발생시키는 것;
상기 메타데이터에 기초하여 어느 웹페이지들의 부분들이 상기 웹페이지의 다른 부분들에 앞서 통계적으로 액세스될 가능성이 있는지를 결정하는 것;
제 2 부분이 빈번하게 액세스되지 않을 가능성이 있는 것을 결정하는 것; 및
상기 제 2 부분이 빈번하게 액세스되지 않고 통계적으로 액세스될 가능성이 더 많은 부분들보다 우선순위에서 더 낮게 다운로드된다고 상기 메타데이터로 통신하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 서버. - 제 94 항에 있어서,
상기 프로세서는,
상기 복수의 컴퓨팅 디바이스들의 상기 사용자들의 복수의 관찰된 프로파일들을 체계화하는 것;
컴퓨팅 디바이스 사용자의 브라우징 습관들을 모니터링하는 것; 및
상기 모니터링된 브라우징 습관들에 기초하여 상기 컴퓨팅 디바이스 사용자에 매칭하는 적어도 하나의 관찰된 프로파일에 기초하여, 메타데이터를 상기 서버로부터 상기 컴퓨팅 디바이스로 송신하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 서버. - 저장된 프로세서 실행가능 명령들을 갖는 비일시성 컴퓨터 판독가능 저장 매체로서,
상기 저장된 프로세서 실행가능 명령들은, 서버 프로세서로 하여금,
컴퓨팅 디바이스로부터 웹페이지에 대한 요청을 수신하는 것;
브라우저 지원 서버 (browser assistance server) 에서, 요청된 상기 웹페이지에 관한 메타데이터에 대한 상기 컴퓨팅 디바이스로부터의 요청을 수신하는 것으로서, 상기 메타데이터는 실행될 가능성이 가장 높은 것으로 결정되는 상기 요청된 웹페이지의 부분을 기술하는, 상기 수신하는 것;
상기 요청된 웹페이지 플러스 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지를 렌더링하기 위해 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지의 상기 부분을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕도록 구성된 상기 메타데이터를 상기 컴퓨팅 디바이스로 송신하는 것; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 컴퓨팅 디바이스로부터 상기 요청된 웹페이지 데이터의 프로세싱 및 렌더링으로부터의 결과들을 수신하는 것을 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 98 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 서버 프로세서로 하여금,
복수의 컴퓨팅 디바이스들로부터 상기 복수의 컴퓨팅 디바이스들의 사용자들의 웹 사용 습관들에 관련된 웹 사용 정보를 수신하는 것; 및
수신된 상기 사용 정보 및 상기 복수의 컴퓨팅 디바이스들의 상기 사용자들의 웹 사용 습관들의 분석에 기초하여 상기 메타데이터를 발생시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 98 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 서버 프로세서로 하여금,
상기 요청된 웹페이지 내 JavaScript 의 2진 사전-컴파일된 변환을 상기 컴퓨팅 디바이스로 송신하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 98 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 서버 프로세서로 하여금,
복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 집합 정보를 모으는 것; 및
상기 복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 집합 정보에 기초하여 상기 메타데이터를 발생시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되며,
상기 집합 정보는 상기 복수의 컴퓨팅 디바이스들 상에서 동작하는 도구화된 웹 브라우저들에 의해 제공되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 101 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 서버 프로세서로 하여금,
상기 복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 상기 집합 정보로부터, 사용자들이 다른 부분들에 앞서 웹페이지의 제 1 부분을 볼 가능성이 있는 때를 결정하는 것; 및
상기 웹페이지의 상기 제 1 부분을 상기 웹페이지의 다른 부분들에 앞서 상기 컴퓨팅 디바이스로 송신하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 101 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 서버 프로세서로 하여금,
다른 사용자들의 브라우징 습관들을 나타내는 메타데이터를 발생시키는 것;
상기 메타데이터에 기초하여 어느 웹페이지들의 부분들이 상기 웹페이지의 다른 부분들에 앞서 통계적으로 액세스될 가능성이 있는지를 결정하는 것;
제 2 부분이 빈번하게 액세스되지 않을 가능성이 있는 것을 결정하는 것; 및
상기 제 2 부분이 빈번하게 액세스되지 않고 통계적으로 액세스될 가능성이 더 많은 부분들보다 우선순위에서 더 낮게 다운로드된다고 상기 메타데이터로 통신하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 제 101 항에 있어서,
상기 저장된 프로세서 실행가능 명령들은, 상기 서버 프로세서로 하여금,
상기 복수의 컴퓨팅 디바이스들의 상기 사용자들의 복수의 관찰된 프로파일들을 체계화하는 것;
컴퓨팅 디바이스 사용자의 브라우징 습관들을 모니터링하는 것; 및
모니터링된 상기 브라우징 습관들에 기초하여 상기 컴퓨팅 디바이스 사용자에 매칭하는 적어도 하나의 관찰된 프로파일에 기초하여, 메타데이터를 상기 서버로부터 상기 컴퓨팅 디바이스로 송신하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시성 컴퓨터 판독가능 저장 매체. - 컴퓨팅 디바이스로부터 웹페이지에 대한 요청을 수신하는 수단;
브라우저 지원 서버 (browser assistance server) 에서, 요청된 상기 웹페이지에 관한 메타데이터에 대한 상기 컴퓨팅 디바이스로부터의 요청을 수신하는 수단으로서, 상기 메타데이터는 실행될 가능성이 가장 높은 것으로 결정되는 상기 요청된 웹페이지의 부분을 기술하는, 상기 수신하는 수단;
상기 요청된 웹페이지 플러스 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지를 렌더링하기 위해 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지의 상기 부분을 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕도록 구성된 상기 메타데이터를 상기 컴퓨팅 디바이스로 송신하는 수단; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 컴퓨팅 디바이스로부터 상기 요청된 웹페이지 데이터의 프로세싱 및 렌더링으로부터의 결과들을 수신하는 수단을 포함하는, 서버. - 제 105 항에 있어서,
복수의 컴퓨팅 디바이스들로부터 상기 복수의 컴퓨팅 디바이스들의 사용자들의 웹 사용 습관들에 관련된 웹 사용 정보를 수신하는 수단; 및
수신된 상기 사용 정보 및 상기 복수의 컴퓨팅 디바이스들의 상기 사용자들의 웹 사용 습관들의 분석에 기초하여 상기 메타데이터를 발생시키는 수단을 더 포함하는, 서버. - 제 105 항에 있어서,
상기 요청된 웹페이지 내 JavaScript 의 2진 사전-컴파일된 변환을 상기 컴퓨팅 디바이스로 송신하는 수단을 더 포함하는, 서버. - 제 105 항에 있어서,
복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 집합 정보를 모으는 수단으로서, 상기 집합 정보는 상기 복수의 컴퓨팅 디바이스들 상에서 동작하는 도구화된 웹 브라우저들에 의해 제공되는, 상기 집합 정보를 모으는 수단; 및
상기 복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 집합 정보에 기초하여 상기 메타데이터를 발생시키는 수단을 더 포함하는, 서버. - 제 108 항에 있어서,
상기 복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 상기 집합 정보로부터, 사용자들이 다른 부분들에 앞서 웹페이지의 제 1 부분을 볼 가능성이 있는 때를 결정하는 수단; 및
상기 웹페이지의 상기 제 1 부분을 상기 웹페이지의 다른 부분들에 앞서 상기 컴퓨팅 디바이스로 송신하는 수단을 더 포함하는, 서버. - 제 108 항에 있어서,
다른 사용자들의 브라우징 습관들을 나타내는 메타데이터를 발생시키는 수단;
상기 메타데이터에 기초하여 어느 웹페이지들의 부분들이 상기 웹페이지의 다른 부분들에 앞서 통계적으로 액세스될 가능성이 있는지를 결정하는 수단;
제 2 부분이 빈번하게 액세스되지 않을 가능성이 있는 것을 결정하는 수단; 및
상기 제 2 부분이 빈번하게 액세스되지 않고 통계적으로 액세스될 가능성이 더 많은 부분들보다 우선순위에서 더 낮게 다운로드된다고 상기 메타데이터로 통신하는 수단을 더 포함하는, 서버. - 제 108 항에 있어서,
상기 복수의 컴퓨팅 디바이스들의 상기 사용자들의 복수의 관찰된 프로파일들을 체계화하는 수단;
컴퓨팅 디바이스 사용자의 브라우징 습관들을 모니터링하는 수단; 및
모니터링된 상기 브라우징 습관들에 기초하여 상기 컴퓨팅 디바이스 사용자에 매칭하는 적어도 하나의 관찰된 프로파일에 기초하여, 메타데이터를 상기 서버로부터 상기 컴퓨팅 디바이스로 송신하는 수단을 더 포함하는, 서버. - 시스템으로서,
서버;
셀룰러 통신 네트워크; 및
상기 셀룰러 통신 네트워크를 통해서 상기 서버에 상호접속된 컴퓨팅 디바이스를 포함하며,
상기 컴퓨팅 디바이스는,
디스플레이;
내부 메모리; 및
상기 디스플레이 및 상기 내부 메모리에 커플링된 프로세서를 포함하며,
상기 컴퓨팅 디바이스 프로세서는,
웹페이지에 대한 요청을 송신하는 것;
브라우저 지원 서버 (browser assistance server) 에, 요청된 상기 웹페이지에 관한 메타데이터에 대한 요청을 송신하는 것으로서, 상기 메타데이터는 실행될 가능성이 가장 높은 것으로 결정되는 상기 요청된 웹페이지의 부분을 기술하는, 상기 송신하는 것;
상기 메타데이터에 기초하여 상기 요청된 웹페이지의 상기 부분을 다운로드하는 것;
상기 메타데이터를 사용하여 상기 요청된 웹페이지를 렌더링하기 위해 상기 요청된 웹페이지의 다운로드된 상기 부분을 실행하는 것; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지의 프로세싱 및 렌더링으로부터의 결과들을 상기 브라우저 지원 서버로 전송하는 것을 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되며,
상기 서버는,
요청된 상기 웹페이지를 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕도록 구성된 상기 메타데이터를 상기 컴퓨팅 디바이스로 송신하는 것; 및
상기 컴퓨팅 디바이스로부터 상기 요청된 웹페이지 데이터의 프로세싱 및 렌더링으로부터의 상기 결과들을 수신하는 것을 포함하는 동작들을 수행하도록 구성되는, 시스템. - 제 112 항에 있어서,
상기 서버는,
라이브러리가 빈번하게 다운로드된다는 것을 나타내는 메타데이터를 발생시키는 것; 및
상기 라이브러리가 상기 요청된 웹페이지의 실행을 위해 다른 부분들에 앞서 요구될 가능성이 있는 제 1 부분을 갖는다고 상기 메타데이터에 나타내는 것을 더 포함하는 동작들을 수행하도록 구성되고,
상기 컴퓨팅 디바이스 프로세서는,
상기 메타데이터에 기초하여 상기 라이브러리의 다른 부분들에 앞서 상기 라이브러리의 상기 제 1 부분을 다운로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 시스템. - 제 112 항에 있어서,
상기 컴퓨팅 디바이스 프로세서는, 인터넷 브라우저로부터 브라우징 데이터를 상기 서버로 전송하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되고,
상기 서버는 상기 컴퓨팅 디바이스로부터 수신된 상기 브라우징 데이터로부터 상기 메타데이터를 발생시키는 것을 더 포함하는 동작들을 수행하도록 구성되는, 시스템. - 제 112 항에 있어서,
상기 서버는,
복수의 사용자들로부터의 브라우징 습관들을 모니터링하는 것;
특정의 웹페이지가 사용자들에 의해 빈번하게 액세스된다고 결정하는 것; 및
사용자들의 상기 브라우징 습관들에 기초하여 웹페이지 엘리먼트들을 캐시에 저장하는 것을 더 포함하는 동작들을 수행하도록 구성되고;
상기 컴퓨팅 디바이스 프로세서는, 상기 웹페이지에 대한 사용자에 의한 예상된 요청에 앞서 상기 캐시로부터 상기 웹페이지 엘리먼트들을 다운로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 시스템. - 제 112 항에 있어서,
상기 서버는,
네이티브 코드를 발생시키기 위해 상기 요청된 웹페이지의 JavaScript 부분을 프로세싱하는 것; 및
상기 웹페이지에 대한 상기 요청에 응답하여, 발생된 상기 네이티브 코드를 상기 컴퓨팅 디바이스로 리턴하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 시스템. - 제 112 항에 있어서,
상기 서버는,
복수의 웹 사용자들로부터 웹 사용 정보를 모으는 것; 및
모아진 상기 웹 사용 정보에 기초하여, 상기 메타데이터를 발생시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 시스템. - 제 117 항에 있어서,
상기 서버는 상기 컴퓨팅 디바이스의 사용자가 상기 사용자의 프로파일에 기초하여 다른 부분들에 앞서 상기 요청된 웹페이지의 제 1 부분을 볼 가능성이 있는 것을 결정하는 것을 더 포함하는 동작들을 수행하도록 구성되며,
상기 컴퓨팅 디바이스로 송신된 상기 메타데이터는, 상기 사용자가 상기 요청된 웹페이지의 상기 제 1 부분을 볼 가능성이 있는 것을 나타내며;
상기 컴퓨팅 디바이스 프로세서는, 상기 웹페이지의 다른 부분들에 앞서 상기 요청된 웹페이지의 상기 제 1 부분을 다운로드하는 것을 더 포함하는 동작들을 수행하는 프로세서 실행가능 명령들로 구성되는, 시스템. - 제 112 항에 있어서,
상기 서버는 상기 요청된 웹페이지를 호스트하지 않는, 시스템. - 시스템으로서,
서버;
셀룰러 통신 네트워크; 및
상기 셀룰러 통신 네트워크를 통해서 상기 서버에 상호접속된 컴퓨팅 디바이스를 포함하며,
상기 컴퓨팅 디바이스는,
웹페이지에 대한 요청을 송신하는 수단;
브라우저 지원 서버 (browser assistance server) 에, 요청된 상기 웹페이지에 관한 메타데이터에 대한 요청을 송신하는 수단으로서, 상기 메타데이터는 실행될 가능성이 가장 높은 것으로 결정되는 상기 요청된 웹페이지의 부분을 기술하는, 상기 송신하는 수단;
상기 메타데이터에 기초하여 상기 요청된 웹페이지의 상기 부분을 다운로드하는 수단;
상기 요청된 웹페이지를 렌더링하기 위해 상기 요청된 웹페이지의 다운로드된 상기 부분을 실행하는 수단; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 요청된 웹페이지의 프로세싱 및 렌더링으로부터의 결과들을 상기 브라우저 지원 서버로 전송하는 수단을 포함하고;
상기 서버는,
요청된 상기 웹페이지를 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕도록 구성된 상기 컴퓨팅 디바이스로 메타데이터를 송신하는 수단; 및
상기 컴퓨팅 디바이스로부터 상기 요청된 웹페이지 데이터의 프로세싱 및 렌더링으로부터의 상기 결과들을 수신하는 수단을 포함하는, 시스템. - 제 120 항에 있어서,
상기 서버는,
라이브러리가 빈번하게 다운로드된다는 것을 나타내는 메타데이터를 발생시키는 수단; 및
상기 라이브러리가 상기 요청된 웹페이지의 실행을 위해 다른 부분들에 앞서 요구될 가능성이 있는 제 1 부분을 갖는다고 상기 메타데이터에 나타내는 수단을 더 포함하고,
상기 컴퓨팅 디바이스는 상기 메타데이터에 기초하여 상기 라이브러리의 다른 부분들에 앞서 상기 라이브러리의 상기 제 1 부분을 다운로드하는 수단을 더 포함하는, 시스템. - 제 120 항에 있어서,
상기 컴퓨팅 디바이스는 인터넷 브라우저로부터 브라우징 데이터를 상기 서버로 전송하는 수단을 더 포함하고;
상기 서버는 상기 컴퓨팅 디바이스로부터 수신된 상기 브라우징 데이터로부터 상기 메타데이터를 발생시키는 수단을 더 포함하는, 시스템. - 제 120 항에 있어서,
상기 서버는,
복수의 사용자들로부터의 브라우징 습관들을 모니터링하는 수단;
특정의 웹페이지가 사용자들에 의해 빈번하게 액세스된다고 결정하는 수단; 및
사용자들의 상기 브라우징 습관들에 기초하여 웹페이지 엘리먼트들을 캐시에 저장하는 수단을 더 포함하고;
상기 컴퓨팅 디바이스는 상기 웹페이지에 대한 사용자에 의한 예상된 요청에 앞서 상기 캐시로부터 상기 웹페이지 엘리먼트들을 다운로드하는 수단을 더 포함하는, 시스템. - 제 120 항에 있어서,
상기 서버는,
네이티브 코드를 발생시키기 위해 상기 요청된 웹페이지의 JavaScript 부분을 프로세싱하는 수단; 및
상기 웹페이지에 대한 상기 요청에 응답하여, 발생된 상기 네이티브 코드를 상기 컴퓨팅 디바이스로 리턴하는 수단을 더 포함하는, 시스템. - 제 120 항에 있어서,
상기 서버는,
복수의 웹 사용자들로부터 웹 사용 정보를 모으는 수단; 및
모아진 상기 웹 사용 정보에 기초하여, 상기 메타데이터를 발생시키는 수단을 더 포함하는, 시스템. - 제 125 항에 있어서,
상기 서버는 상기 컴퓨팅 디바이스의 사용자가 상기 사용자의 프로파일에 기초하여 다른 부분들에 앞서 상기 요청된 웹페이지의 제 1 부분을 볼 가능성이 있는 것을 결정하는 수단을 더 포함하며,
상기 컴퓨팅 디바이스로 송신된 상기 메타데이터는 상기 사용자가 상기 요청된 웹페이지의 상기 제 1 부분을 볼 가능성이 있는 것을 나타내며;
상기 컴퓨팅 디바이스는 상기 웹페이지의 다른 부분들에 앞서 상기 요청된 웹페이지의 상기 제 1 부분을 다운로드하는 수단을 더 포함하는, 시스템. - 제 120 항에 있어서,
상기 서버는 상기 요청된 웹페이지를 호스트하지 않는, 시스템. - 원격 컴퓨팅 디바이스 상에서 웹페이지의 렌더링을 지원하는 (assist) 방법으로서,
컴퓨팅 디바이스로부터 웹페이지에 대한 요청을 수신하는 단계;
상기 컴퓨팅 디바이스로부터 요청된 웹페이지에 관한 메타데이터에 대한 요청을 브라우저 지원 서버 (browser assistance server) 에서 수신하는 단계로서, 상기 메타데이터는 상기 웹페이지가 실행될 가능성이 가장 높은 것으로 결정되는 부분을 포함하는 것을 기술하는, 상기 수신하는 단계;
상기 요청된 웹페이지, 상기 메타데이터, 및 상기 메타데이터에 기초하여 라이브러리의 다른 부분들 전에 실행될 가능성이 가장 높은 라이브러리 부분을, 상기 컴퓨팅 디바이스로 송신하는 단계로서, 상기 메타데이터는 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지를 렌더링하기 위해 상기 컴퓨팅 디바이스 상에서 상기 요청된 웹페이지 코드를 파싱하거나, 분석하거나, 또는 실행할 때에 상기 컴퓨팅 디바이스를 돕도록 구성된, 상기 송신하는 단계; 및
상기 메타데이터의 서비스 품질의 피드백을 제공하기 위해 상기 컴퓨팅 디바이스로부터 상기 요청된 웹페이지의 데이터의 프로세싱 및 렌더링으로부터의 결과들을 수신하는 단계를 포함하는, 원격 컴퓨팅 디바이스 상에서 웹페이지의 렌더링을 지원하는 방법. - 제 128 항에 있어서,
복수의 컴퓨팅 디바이스들로부터 상기 복수의 컴퓨팅 디바이스들의 사용자들의 웹 사용 습관들에 관련된 웹 사용 정보를 수신하는 단계; 및
수신된 상기 사용 정보 및 상기 복수의 컴퓨팅 디바이스들의 상기 사용자들의 웹 사용 습관들의 분석에 기초하여 상기 메타데이터를 발생시키는 단계를 더 포함하는, 원격 컴퓨팅 디바이스 상에서 웹페이지의 렌더링을 지원하는 방법. - 제 128 항에 있어서,
요청된 상기 웹페이지 내 JavaScript 의 2진 사전-컴파일된 변환을 상기 컴퓨팅 디바이스로 송신하는 단계를 더 포함하는, 원격 컴퓨팅 디바이스 상에서 웹페이지의 렌더링을 지원하는 방법. - 제 128 항에 있어서,
복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 집합 정보를 모으는 단계; 및
상기 복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 집합 정보에 기초하여 상기 메타데이터를 발생시키는 단계를 더 포함하고,
상기 집합 정보는 상기 복수의 컴퓨팅 디바이스들 상에서 동작하는 도구화된 웹 브라우저들에 의해 제공되는, 원격 컴퓨팅 디바이스 상에서 웹페이지의 렌더링을 지원하는 방법. - 제 131 항에 있어서,
상기 복수의 컴퓨팅 디바이스들의 사용자들의 브라우징 습관들에 관한 상기 집합 정보로부터, 사용자들이 다른 부분들에 앞서 웹페이지의 제 1 부분을 볼 가능성이 있는 때를 결정하는 단계; 및
상기 웹페이지의 상기 제 1 부분을 상기 웹페이지의 다른 부분들에 앞서 상기 컴퓨팅 디바이스로 송신하는 단계를 더 포함하는, 원격 컴퓨팅 디바이스 상에서 웹페이지의 렌더링을 지원하는 방법. - 제 131 항에 있어서,
다른 사용자들의 브라우징 습관들을 나타내는 메타데이터를 발생시키는 단계;
상기 메타데이터에 기초하여 웹페이지들의 어느 부분들이 상기 웹페이지의 다른 부분들에 앞서 통계적으로 액세스될 가능성이 있는지를 결정하는 단계;
제 2 부분이 빈번하게 액세스되지 않을 가능성이 있는 것을 결정하는 단계; 및
상기 제 2 부분이 빈번하게 액세스되지 않고 통계적으로 액세스될 가능성이 더 많은 부분들보다 우선순위에서 더 낮게 다운로드된다고 상기 메타데이터로 통신하는 단계를 더 포함하는, 원격 컴퓨팅 디바이스 상에서 웹페이지의 렌더링을 지원하는 방법. - 제 131 항에 있어서,
상기 복수의 컴퓨팅 디바이스들의 상기 사용자들의 복수의 관찰된 프로파일들을 체계화하는 단계;
컴퓨팅 디바이스 사용자의 브라우징 습관들을 모니터링하는 단계; 및
상기 모니터링된 브라우징 습관들에 기초하여 상기 컴퓨팅 디바이스 사용자에 매칭하는 적어도 하나의 관찰된 프로파일에 기초하여, 메타데이터를 상기 서버로부터 상기 컴퓨팅 디바이스로 송신하는 단계를 더 포함하는, 원격 컴퓨팅 디바이스 상에서 웹페이지의 렌더링을 지원하는 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/192,064 US9146909B2 (en) | 2011-07-27 | 2011-07-27 | Web browsing enhanced by cloud computing |
US13/192,064 | 2011-07-27 | ||
PCT/US2012/043081 WO2013015911A1 (en) | 2011-07-27 | 2012-06-19 | Web browsing enhanced by cloud computing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140051359A KR20140051359A (ko) | 2014-04-30 |
KR101609483B1 true KR101609483B1 (ko) | 2016-04-20 |
Family
ID=46506622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147004887A KR101609483B1 (ko) | 2011-07-27 | 2012-06-19 | 클라우드 컴퓨팅에 의해 향상된 웹 브라우징 |
Country Status (9)
Country | Link |
---|---|
US (2) | US9146909B2 (ko) |
EP (1) | EP2737414A1 (ko) |
JP (1) | JP5869124B2 (ko) |
KR (1) | KR101609483B1 (ko) |
CN (1) | CN103718177B (ko) |
BR (1) | BR112014001889A2 (ko) |
CA (1) | CA2842737C (ko) |
RU (1) | RU2577193C2 (ko) |
WO (1) | WO2013015911A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180100626A (ko) * | 2016-01-29 | 2018-09-11 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | Gpu 자원 재구성 방법, 사용자 디바이스, 시스템 및 저장 매체 |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9471704B2 (en) * | 2009-10-06 | 2016-10-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Shared script files in multi-tab browser |
US8984048B1 (en) | 2010-04-18 | 2015-03-17 | Viasat, Inc. | Selective prefetch scanning |
WO2012061841A1 (en) * | 2010-11-05 | 2012-05-10 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for stored content distribution and access |
US11983233B2 (en) | 2011-04-11 | 2024-05-14 | Viasat, Inc. | Browser based feedback for optimized web browsing |
US9912718B1 (en) | 2011-04-11 | 2018-03-06 | Viasat, Inc. | Progressive prefetching |
US9146909B2 (en) | 2011-07-27 | 2015-09-29 | Qualcomm Incorporated | Web browsing enhanced by cloud computing |
KR20130044571A (ko) * | 2011-10-24 | 2013-05-03 | 삼성전자주식회사 | 클라우드 서비스 제공 방법 및 장치 |
US20130185626A1 (en) * | 2012-01-13 | 2013-07-18 | Obigo Inc. | METHOD, TERMINAL AND COMPUTER-READABLE RECORDING MEDIUM FOR COMPILING JAVASCRIPT INCLUDED IN WEB APPLICATION USING Ahead-Of-Time (AOT) |
KR102039028B1 (ko) * | 2012-02-24 | 2019-10-31 | 삼성전자 주식회사 | 휴대단말기의 데이터 공유 장치 및 방법 |
US9460220B1 (en) * | 2012-03-26 | 2016-10-04 | Amazon Technologies, Inc. | Content selection based on target device characteristics |
US9239862B2 (en) | 2012-05-01 | 2016-01-19 | Qualcomm Incorporated | Web acceleration based on hints derived from crowd sourcing |
CN102882679A (zh) * | 2012-07-24 | 2013-01-16 | 中兴通讯股份有限公司 | 电子设备的解锁方法及解锁装置 |
FR2997522B1 (fr) * | 2012-10-26 | 2015-12-25 | Infovista Sa | Procede permettant a un systeme de surveillance du reseau d'evaluer de facon non intrusive le ressenti utilisateur lors du chargement d'une page web |
US9300760B2 (en) * | 2013-01-28 | 2016-03-29 | Google Inc. | Machine-specific instruction set translation |
JP5395967B1 (ja) * | 2013-02-19 | 2014-01-22 | 株式会社 ディー・エヌ・エー | データ処理システム、情報端末、データ処理方法およびデータ処理プログラム |
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 |
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 |
US9424074B1 (en) * | 2013-07-01 | 2016-08-23 | Google Inc. | Method for learning backup policies for large-scale distributed computing |
US9798827B2 (en) * | 2013-10-25 | 2017-10-24 | Uc Mobile Co., Ltd. | Methods and devices for preloading webpages |
US9990440B2 (en) * | 2013-12-30 | 2018-06-05 | Oath Inc. | Smart content pre-loading on client devices |
KR20150084307A (ko) * | 2014-01-13 | 2015-07-22 | 삼성전자주식회사 | 네트워크에서 웹 로딩 시간 제어 방법 및 장치 |
MX359824B (es) * | 2014-02-11 | 2018-10-11 | Wix Com Ltd | Sistema para la sincronizacion de cambios en sitios web editados y aplicaciones interactivas. |
US9965449B2 (en) * | 2014-03-17 | 2018-05-08 | Ca, Inc. | Providing product with integrated wiki module |
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 |
KR102086731B1 (ko) * | 2014-06-25 | 2020-04-14 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 제공 방법, 이를 위한 장치 및 시스템, 그리고 이를 위한 클라우드 스트리밍용 스크립트 코드를 기록한 컴퓨터 판독 가능한 기록매체 |
US10554682B2 (en) * | 2014-07-31 | 2020-02-04 | Namogoo Technologies Ltd. | Detecting and removing injected elements from content interfaces |
US11099839B2 (en) | 2014-08-06 | 2021-08-24 | International Business Machines Corporation | Adaptation of a web application for use by a mobile device |
US11176223B1 (en) * | 2014-10-21 | 2021-11-16 | Amazon Technologies, Inc. | Page rendering by an intermediary system that uses a truncated library |
WO2016061820A1 (en) | 2014-10-24 | 2016-04-28 | Google Inc. | Methods and systems for automated tagging based on software execution traces |
US9858191B2 (en) | 2014-12-31 | 2018-01-02 | Samsung Electronics Co., Ltd. | Electronic system with data management mechanism and method of operation thereof |
US9998521B2 (en) | 2015-01-08 | 2018-06-12 | Instart Logic, Inc. | HTML streaming |
US9448776B1 (en) * | 2015-01-08 | 2016-09-20 | AppNotch LLC | Method and apparatus for converting a website into a native mobile application |
WO2016112354A2 (en) * | 2015-01-08 | 2016-07-14 | Instart Logic, Inc. | Html streaming |
US10277703B2 (en) | 2015-07-22 | 2019-04-30 | International Business Machines Corporation | Optimizing bandwidth usage and improving performance for web page caching |
US10582001B2 (en) * | 2015-08-11 | 2020-03-03 | Oracle International Corporation | Asynchronous pre-caching of synchronously loaded resources |
US10419514B2 (en) | 2015-08-14 | 2019-09-17 | Oracle International Corporation | Discovery of federated logins |
US10091076B2 (en) | 2015-08-25 | 2018-10-02 | Google Llc | Systems and methods for configuring a resource for network traffic analysis |
US10803083B2 (en) * | 2015-08-27 | 2020-10-13 | Infosys Limited | System and method of generating platform-agnostic abstract syntax tree |
RU2632131C2 (ru) | 2015-08-28 | 2017-10-02 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и устройство для создания рекомендуемого списка содержимого |
CA2998320C (en) * | 2015-09-14 | 2023-01-03 | Viasat, Inc. | Machine-driven crowd-disambiguation of data resources |
US10296580B1 (en) | 2015-09-18 | 2019-05-21 | Amazon Technologies, Inc. | Delivering parsed content items |
US10127210B1 (en) | 2015-09-25 | 2018-11-13 | Amazon Technologies, Inc. | Content rendering |
US10601894B1 (en) | 2015-09-28 | 2020-03-24 | Amazon Technologies, Inc. | Vector-based encoding for content rendering |
US10691750B1 (en) | 2015-09-28 | 2020-06-23 | Amazon Technologies, Inc. | Browser configured to efficiently store browsing session state |
US10241983B1 (en) | 2015-09-28 | 2019-03-26 | Amazon Technologies, Inc. | Vector-based encoding for content rendering |
RU2632100C2 (ru) | 2015-09-28 | 2017-10-02 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и сервер создания рекомендованного набора элементов |
RU2629638C2 (ru) | 2015-09-28 | 2017-08-30 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и сервер создания рекомендуемого набора элементов для пользователя |
US10440140B2 (en) * | 2015-09-29 | 2019-10-08 | Apple Inc. | Browser cache management |
US10613713B2 (en) * | 2015-10-07 | 2020-04-07 | Google Llc | Integration of content in non-browser applications |
US10582012B2 (en) | 2015-10-16 | 2020-03-03 | Oracle International Corporation | Adaptive data transfer optimization |
EP3859567A1 (en) | 2015-10-20 | 2021-08-04 | ViaSat Inc. | Hint model updating using automated browsing clusters |
CN108780446B (zh) | 2015-10-28 | 2022-08-19 | 维尔塞特公司 | 时间依赖的机器生成的提示 |
AU2016364922B2 (en) | 2015-12-04 | 2019-10-10 | Viasat, Inc. | Accelerating connections to a host server |
US20170164290A1 (en) * | 2015-12-08 | 2017-06-08 | Qualcomm Incorporated | Reduced power consumption for browsing websites |
US10341345B1 (en) | 2015-12-15 | 2019-07-02 | Amazon Technologies, Inc. | Network browser configuration |
US10348797B1 (en) | 2015-12-15 | 2019-07-09 | Amazon Technologies, Inc. | Network browser configuration |
CN107229405A (zh) * | 2016-03-25 | 2017-10-03 | 广州市动景计算机科技有限公司 | 用于提供网页内容的方法、设备、浏览器及电子设备 |
RU2632144C1 (ru) | 2016-05-12 | 2017-10-02 | Общество С Ограниченной Ответственностью "Яндекс" | Компьютерный способ создания интерфейса рекомендации контента |
US9961139B2 (en) * | 2016-05-24 | 2018-05-01 | International Business Machines Corporation | Cooperative download among low-end devices under resource constrained environment |
US10367879B2 (en) * | 2016-06-10 | 2019-07-30 | Apple Inc. | Download prioritization |
RU2632132C1 (ru) | 2016-07-07 | 2017-10-02 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и устройство для создания рекомендаций содержимого в системе рекомендаций |
RU2636702C1 (ru) | 2016-07-07 | 2017-11-27 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и устройство для выбора сетевого ресурса в качестве источника содержимого для системы рекомендаций |
USD882600S1 (en) | 2017-01-13 | 2020-04-28 | Yandex Europe Ag | Display screen with graphical user interface |
US10567524B2 (en) * | 2017-02-27 | 2020-02-18 | International Business Machines Corporation | Dynamic cognitive optimization of web applications |
GB2563381A (en) * | 2017-06-06 | 2018-12-19 | Canon Kk | Method and apparatus for executing a scripting language |
CN110663039B (zh) * | 2017-08-16 | 2023-08-15 | 谷歌有限责任公司 | 动态内容加载选择的方法和*** |
US10664538B1 (en) | 2017-09-26 | 2020-05-26 | Amazon Technologies, Inc. | Data security and data access auditing for network accessible content |
US10726095B1 (en) | 2017-09-26 | 2020-07-28 | Amazon Technologies, Inc. | Network content layout using an intermediary system |
US10558426B2 (en) | 2017-12-08 | 2020-02-11 | Google Llc | Graphical user interface rendering management by voice-driven computing infrastructure |
RU2720899C2 (ru) | 2018-09-14 | 2020-05-14 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для определения зависящих от пользователя пропорций содержимого для рекомендации |
RU2720952C2 (ru) | 2018-09-14 | 2020-05-15 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для создания рекомендации цифрового содержимого |
RU2714594C1 (ru) | 2018-09-14 | 2020-02-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система определения параметра релевантность для элементов содержимого |
RU2725659C2 (ru) | 2018-10-08 | 2020-07-03 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для оценивания данных о взаимодействиях пользователь-элемент |
RU2731335C2 (ru) | 2018-10-09 | 2020-09-01 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для формирования рекомендаций цифрового контента |
US11184249B2 (en) * | 2019-04-30 | 2021-11-23 | Salesforce.Com, Inc. | Declarative and reactive data layer for component-based user interfaces |
US20210004481A1 (en) * | 2019-07-05 | 2021-01-07 | Google Llc | Systems and methods for privacy preserving determination of intersections of sets of user identifiers |
RU2757406C1 (ru) | 2019-09-09 | 2021-10-15 | Общество С Ограниченной Ответственностью «Яндекс» | Способ и система для обеспечения уровня сервиса при рекламе элемента контента |
KR102605640B1 (ko) * | 2019-11-14 | 2023-11-22 | 엘지전자 주식회사 | 디스플레이 장치 및 이의 제어 방법 |
US11308179B2 (en) * | 2020-05-14 | 2022-04-19 | Sap Se | Core data service-based compile time webpage generation |
JP2022041717A (ja) * | 2020-09-01 | 2022-03-11 | キヤノン株式会社 | 情報処理システム、情報処理システムの制御方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080200161A1 (en) | 2005-06-07 | 2008-08-21 | Yahoo! Inc. | Providing relevant non- requested content to a mobile device |
Family Cites Families (138)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887133A (en) * | 1997-01-15 | 1999-03-23 | Health Hero Network | System and method for modifying documents sent over a communications network |
US6182122B1 (en) | 1997-03-26 | 2001-01-30 | International Business Machines Corporation | Precaching data at an intermediate server based on historical data requests by users of the intermediate server |
US6282548B1 (en) * | 1997-06-21 | 2001-08-28 | Alexa Internet | Automatically generate and displaying metadata as supplemental information concurrently with the web page, there being no link between web page and metadata |
US6182133B1 (en) * | 1998-02-06 | 2001-01-30 | Microsoft Corporation | Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching |
US8418131B2 (en) * | 1998-11-25 | 2013-04-09 | Helmut Emmelmann | Interactive server side components |
JP3437933B2 (ja) * | 1999-01-21 | 2003-08-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ブラウザ共有方法及びシステム |
US6598054B2 (en) * | 1999-01-26 | 2003-07-22 | Xerox Corporation | System and method for clustering data objects in a collection |
US6466970B1 (en) * | 1999-01-27 | 2002-10-15 | International Business Machines Corporation | System and method for collecting and analyzing information about content requested in a network (World Wide Web) environment |
US7353246B1 (en) * | 1999-07-30 | 2008-04-01 | Miva Direct, Inc. | System and method for enabling information associations |
US7421432B1 (en) * | 1999-12-15 | 2008-09-02 | Google Inc. | Hypertext browser assistant |
US6691163B1 (en) * | 1999-12-23 | 2004-02-10 | Alexa Internet | Use of web usage trail data to identify related links |
US20040220791A1 (en) * | 2000-01-03 | 2004-11-04 | Interactual Technologies, Inc. A California Corpor | Personalization services for entities from multiple sources |
US6665659B1 (en) * | 2000-02-01 | 2003-12-16 | James D. Logan | Methods and apparatus for distributing and using metadata via the internet |
US7747782B2 (en) * | 2000-04-26 | 2010-06-29 | Novarra, Inc. | System and method for providing and displaying information content |
US7146416B1 (en) * | 2000-09-01 | 2006-12-05 | Yahoo! Inc. | Web site activity monitoring system with tracking by categories and terms |
US20020078165A1 (en) * | 2000-12-14 | 2002-06-20 | International Business Machines Corporation | System and method for prefetching portions of a web page based on learned preferences |
PT1356381E (pt) * | 2001-02-02 | 2016-02-22 | Opentv Inc | Método e aparelho para a compilação de uma linguagem interpretativa para televisão interactiva |
US6874019B2 (en) | 2001-03-08 | 2005-03-29 | International Business Machines Corporation | Predictive caching and highlighting of web pages |
US20020161824A1 (en) * | 2001-04-27 | 2002-10-31 | International Business Machines Corporation | Method for presentation of HTML image-map elements in non visual web browsers |
JP2003036217A (ja) * | 2001-07-24 | 2003-02-07 | Mitsubishi Denki Information Technology Corp | Javaアプレットバージョン管理装置 |
US20040205460A1 (en) * | 2001-11-08 | 2004-10-14 | Ibm Corporation | Notepad for web browser |
US20030163444A1 (en) * | 2002-02-27 | 2003-08-28 | Michael Kotzin | Method to optimize information downloading |
JPWO2003088665A1 (ja) * | 2002-04-12 | 2005-08-25 | 三菱電機株式会社 | メタデータ編集装置、メタデータ再生装置、メタデータ配信装置、メタデータ検索装置、メタデータ再生成条件設定装置、及びメタデータ配信方法 |
US7321887B2 (en) * | 2002-09-30 | 2008-01-22 | Sap Aktiengesellschaft | Enriching information streams with contextual content |
US7096423B2 (en) * | 2002-05-31 | 2006-08-22 | Adobe Systems Incorporated | Layout-based page capture |
US20040002993A1 (en) * | 2002-06-26 | 2004-01-01 | Microsoft Corporation | User feedback processing of metadata associated with digital media files |
US7167863B2 (en) * | 2002-07-30 | 2007-01-23 | United Services Automobile Association (Usaa) | System and method for building a distributed internet application |
US20040088375A1 (en) * | 2002-11-01 | 2004-05-06 | Sethi Bhupinder S. | Method for prefetching Web pages to improve response time networking |
GB0314782D0 (en) * | 2003-06-25 | 2003-07-30 | Ibm | A searchable personal browsing history |
JP2005115684A (ja) | 2003-10-08 | 2005-04-28 | Canon Inc | コンテンツ検索装置及びコンテンツ検索方法 |
US7246134B1 (en) * | 2004-03-04 | 2007-07-17 | Sun Microsystems, Inc. | System and methods for tag library generation |
US20050208930A1 (en) * | 2004-03-05 | 2005-09-22 | Robert Zmrzli | Method and apparatus for arranging network content on mobile devices |
US8224964B1 (en) * | 2004-06-30 | 2012-07-17 | Google Inc. | System and method of accessing a document efficiently through multi-tier web caching |
US8972856B2 (en) * | 2004-07-29 | 2015-03-03 | Yahoo! Inc. | Document modification by a client-side application |
US7840911B2 (en) | 2004-09-27 | 2010-11-23 | Scott Milener | Method and apparatus for enhanced browsing |
US8185514B1 (en) * | 2004-11-16 | 2012-05-22 | Topix Llc | User-interface feature and technique for providing users of a network site links that have been determined to be of interest to the user |
KR100636207B1 (ko) | 2004-12-13 | 2006-10-19 | 삼성전자주식회사 | 임베디드 메타데이터를 이용한 문서 처리방법 및 장치 |
US20060136391A1 (en) * | 2004-12-21 | 2006-06-22 | Morris Robert P | System and method for generating a search index and executing a context-sensitive search |
US7735062B2 (en) * | 2005-01-21 | 2010-06-08 | Outsystems—Software Em Rede, S.A. | Software development system and method |
US7536641B2 (en) * | 2005-04-29 | 2009-05-19 | Google Inc. | Web page authoring tool for structured documents |
US7844590B1 (en) | 2005-06-16 | 2010-11-30 | Eightfold Logic, Inc. | Collection and organization of actual search results data for particular destinations |
US20060293950A1 (en) * | 2005-06-28 | 2006-12-28 | Microsoft Corporation | Automatic ad placement |
US8117203B2 (en) * | 2005-07-15 | 2012-02-14 | Fetch Technologies, Inc. | Method and system for automatically extracting data from web sites |
CA2513018A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | Method for training a proxy server for content delivery based on communication of state information from a mobile device browser |
US7925973B2 (en) * | 2005-08-12 | 2011-04-12 | Brightcove, Inc. | Distribution of content |
US20070055964A1 (en) * | 2005-09-06 | 2007-03-08 | Morfik Technology Pty. Ltd. | System and method for synthesizing object-oriented high-level code into browser-side javascript |
US20090234861A1 (en) * | 2005-09-14 | 2009-09-17 | Jorey Ramer | Using mobile application data within a monetization platform |
US20070106685A1 (en) * | 2005-11-09 | 2007-05-10 | Podzinger Corp. | Method and apparatus for updating speech recognition databases and reindexing audio and video content using the same |
US8176468B2 (en) * | 2005-12-01 | 2012-05-08 | Cypress Semiconductor Corporation | Multivariable transfer functions |
US7797740B2 (en) * | 2006-01-06 | 2010-09-14 | Nokia Corporation | System and method for managing captured content |
US8701023B1 (en) * | 2006-02-16 | 2014-04-15 | Cypress Semiconductor Corporation | Global parameter management graphical user interface (GUI) for embedded application design |
US7765199B2 (en) * | 2006-03-17 | 2010-07-27 | Proquest Llc | Method and system to index captioned objects in published literature for information discovery tasks |
US20070256003A1 (en) * | 2006-04-24 | 2007-11-01 | Seth Wagoner | Platform for the interactive contextual augmentation of the web |
US20070255754A1 (en) * | 2006-04-28 | 2007-11-01 | James Gheel | Recording, generation, storage and visual presentation of user activity metadata for web page documents |
US9443022B2 (en) * | 2006-06-05 | 2016-09-13 | Google Inc. | Method, system, and graphical user interface for providing personalized recommendations of popular search queries |
US7954052B2 (en) * | 2006-07-07 | 2011-05-31 | International Business Machines Corporation | Method for processing a web page for display in a wiki environment |
US20080010387A1 (en) * | 2006-07-07 | 2008-01-10 | Bryce Allen Curtis | Method for defining a Wiki page layout using a Wiki page |
US10789323B2 (en) | 2006-10-02 | 2020-09-29 | Adobe Inc. | System and method for active browsing |
US20080109749A1 (en) * | 2006-11-06 | 2008-05-08 | Nokia Corporation | Providing information while rendering content |
US20080133569A1 (en) * | 2006-12-01 | 2008-06-05 | Amp'd Mobile, Inc. | System and method for content handling and bundling for mobile handset device |
US9524355B2 (en) * | 2007-01-22 | 2016-12-20 | Mozy, Inc. | Methods for delivering task-related digital content based on task-oriented user activity |
US20080222273A1 (en) * | 2007-03-07 | 2008-09-11 | Microsoft Corporation | Adaptive rendering of web pages on mobile devices using imaging technology |
US10382514B2 (en) * | 2007-03-20 | 2019-08-13 | Apple Inc. | Presentation of media in an application |
US20080244080A1 (en) * | 2007-03-29 | 2008-10-02 | James Thomas H | Prefetching Based on Streaming Hints |
US20080294974A1 (en) * | 2007-05-24 | 2008-11-27 | Nokia Corporation | Webpage history view |
GB2451435B (en) * | 2007-07-27 | 2012-06-20 | Hewlett Packard Development Co | A Method of enabling the downloading of content |
WO2009050345A2 (fr) * | 2007-07-27 | 2009-04-23 | Goojet | Procede et dispositif de creation d'applications informatiques |
US8429750B2 (en) * | 2007-08-29 | 2013-04-23 | Enpulz, L.L.C. | Search engine with webpage rating feedback based Internet search operation |
US20090100322A1 (en) * | 2007-10-11 | 2009-04-16 | International Business Machines Corporation | Retrieving data relating to a web page prior to initiating viewing of the web page |
US9654328B2 (en) * | 2007-10-15 | 2017-05-16 | Viasat, Inc. | Methods and systems for implementing a cache model in a prefetching system |
KR101653268B1 (ko) * | 2007-10-18 | 2016-09-01 | 삼성전자주식회사 | 태그 정보의 처리방법 및 이를 구현하는 클라이언트-서버시스템 |
US8677141B2 (en) * | 2007-11-23 | 2014-03-18 | Microsoft Corporation | Enhanced security and performance of web applications |
WO2009073682A1 (en) * | 2007-12-03 | 2009-06-11 | Vuzit, Llc | System and method for enabling viewing of documents not in html format |
US8806431B1 (en) * | 2007-12-03 | 2014-08-12 | Appecelerator, Inc. | Aspect oriented programming |
US20090171790A1 (en) * | 2008-01-01 | 2009-07-02 | Transaxtions Llc | Time based targeted advertising |
US8255396B2 (en) * | 2008-02-25 | 2012-08-28 | Atigeo Llc | Electronic profile development, storage, use, and systems therefor |
JP2009239479A (ja) * | 2008-03-26 | 2009-10-15 | Toshiba Corp | 情報表示装置、情報表示方法及びプログラム |
US8364664B2 (en) * | 2008-05-12 | 2013-01-29 | Enpulz, L.L.C. | Web browser accessible search engine that identifies search result maxima through user search flow and result content comparison |
US8250054B2 (en) * | 2008-05-13 | 2012-08-21 | Enpulz, L.L.C. | Network search engine utilizing client browser favorites |
US8229911B2 (en) * | 2008-05-13 | 2012-07-24 | Enpulz, Llc | Network search engine utilizing client browser activity information |
US8359237B2 (en) * | 2008-05-23 | 2013-01-22 | Ebay Inc. | System and method for context and community based customization for a user experience |
US8984395B2 (en) * | 2008-06-19 | 2015-03-17 | Opera Software Asa | Methods, systems and devices for transcoding and displaying electronic documents |
US9152722B2 (en) * | 2008-07-22 | 2015-10-06 | Yahoo! Inc. | Augmenting online content with additional content relevant to user interest |
FR2934388A1 (fr) * | 2008-07-25 | 2010-01-29 | Proviciel Mlstate | Procede de creation de programme informatique |
US20100180186A1 (en) * | 2008-09-16 | 2010-07-15 | James Skinner | System and Method for Storage and Distribution of Electronic Publications by Content Creators and Online Publishers with Referral-Based Commissions |
US9092538B2 (en) * | 2008-09-30 | 2015-07-28 | Disney Enterprises, Inc. | System and method for determining the data model used to create a web page |
US8452793B2 (en) * | 2008-09-30 | 2013-05-28 | Yahoo! Inc. | Query refinement based on user selections |
US8527883B2 (en) * | 2008-12-18 | 2013-09-03 | International Business Machines Corporation | Browser operation with sets of favorites |
US8386519B2 (en) * | 2008-12-30 | 2013-02-26 | Expanse Networks, Inc. | Pangenetic web item recommendation system |
US7962547B2 (en) * | 2009-01-08 | 2011-06-14 | International Business Machines Corporation | Method for server-side logging of client browser state through markup language |
US20100180192A1 (en) * | 2009-01-09 | 2010-07-15 | Cerner Innovation, Inc. | Dynamically configuring a presentation layer associated with a webpage delivered to a client device |
US9092047B2 (en) * | 2010-06-04 | 2015-07-28 | Broadcom Corporation | Method and system for content aggregation via a broadband gateway |
US8990289B2 (en) * | 2009-02-27 | 2015-03-24 | Oracle America, Inc. | Server based framework for improving Ajax performance |
US8533582B2 (en) * | 2009-03-20 | 2013-09-10 | Xerox Corporation | Trail-based data content discovery, organization, and processing |
US9436482B2 (en) * | 2009-03-25 | 2016-09-06 | Microsoft Technology Licensing, Llc | Input content to application via web browser |
US8712992B2 (en) * | 2009-03-28 | 2014-04-29 | Microsoft Corporation | Method and apparatus for web crawling |
US8200617B2 (en) * | 2009-04-15 | 2012-06-12 | Evri, Inc. | Automatic mapping of a location identifier pattern of an object to a semantic type using object metadata |
US10699235B2 (en) * | 2009-05-05 | 2020-06-30 | Oracle America, Inc. | System, method and computer readable medium for placing advertisements into web pages |
US20100325607A1 (en) * | 2009-06-17 | 2010-12-23 | Microsoft Corporation | Generating Code Meeting Approved Patterns |
US8812959B2 (en) * | 2009-06-30 | 2014-08-19 | International Business Machines Corporation | Method and system for delivering digital content |
US8458604B2 (en) * | 2009-07-06 | 2013-06-04 | Fairwinds Partners Llc | Methods and apparatus for determining website validity |
CA2698066A1 (en) * | 2009-07-31 | 2011-01-31 | Nitobi Software Inc. | System and method for remotely compiling multi-platform native applications for mobile devices |
US8849725B2 (en) * | 2009-08-10 | 2014-09-30 | Yahoo! Inc. | Automatic classification of segmented portions of web pages |
US20110060788A1 (en) * | 2009-09-04 | 2011-03-10 | ExactFactor, Ltd. | System and method for automatically providing metadata elements on a web page or web site |
JP2011070481A (ja) * | 2009-09-28 | 2011-04-07 | Fujifilm Corp | ウェブ・ブラウザ送信サーバおよびその動作制御方法 |
US8543907B1 (en) * | 2009-10-16 | 2013-09-24 | Google Inc. | Context-sensitive optimization level selection |
US10607235B2 (en) * | 2009-12-24 | 2020-03-31 | Outbrain Inc. | Systems and methods for curating content |
US9003380B2 (en) * | 2010-01-12 | 2015-04-07 | Qualcomm Incorporated | Execution of dynamic languages via metadata extraction |
US20110178890A1 (en) * | 2010-01-15 | 2011-07-21 | Endurance International Group, Inc. | Common services web hosting architecture with multiple branding |
US8413052B2 (en) * | 2010-02-17 | 2013-04-02 | Yahoo! Inc. | Bidded marketplace for applications |
US8280378B2 (en) * | 2010-03-08 | 2012-10-02 | Telcordia Technologies, Inc. | Method and system to support user-centric selection of point of attachment through momentary interactive multimedia experience conveyance and through correlation of web links to quality and experience metrics |
JP2011186913A (ja) * | 2010-03-10 | 2011-09-22 | Fujifilm Corp | ウェブサイト閲覧システム及びサーバ |
JP5464662B2 (ja) * | 2010-03-30 | 2014-04-09 | 株式会社Kddi研究所 | コンテンツ再生制御システムおよびそのプロキシサーバ |
US9262137B2 (en) * | 2010-05-27 | 2016-02-16 | Salesforce.Com, Inc. | Adding directives for versions of javascript files directly into source code in a multi-tenant database environment |
US8595216B2 (en) * | 2010-06-04 | 2013-11-26 | Joel R. Harris | Method of providing an interactive entertainment system |
US20110307561A1 (en) * | 2010-06-14 | 2011-12-15 | Qualcomm Incorporated | System and apparatus for power-efficiently delivering webpage contents in a broadcast network |
US20120096073A1 (en) * | 2010-10-18 | 2012-04-19 | Blabbelon, Inc. | Local polling method and system for real time updating of web-based services |
US8707184B2 (en) * | 2010-11-01 | 2014-04-22 | Google Inc. | Content sharing interface for sharing content in social networks |
US9311678B2 (en) * | 2010-12-15 | 2016-04-12 | Facebook, Inc. | Comment plug-in for third party system |
US9864611B2 (en) * | 2010-12-15 | 2018-01-09 | Microsoft Technology Licensing, Llc | Extensible template pipeline for web applications |
US9805009B2 (en) * | 2010-12-30 | 2017-10-31 | Opera Software As | Method and device for cascading style sheet (CSS) selector matching |
US9015230B2 (en) * | 2011-02-23 | 2015-04-21 | Broadcom Corporation | Gateway/set top box image merging for delivery to serviced client device |
US8713103B2 (en) * | 2011-03-10 | 2014-04-29 | Ebay Inc. | Managing delivery of application server content |
US8510237B2 (en) * | 2011-03-15 | 2013-08-13 | Qualcomm Incorporated | Machine learning method to identify independent tasks for parallel layout in web browsers |
US8997069B2 (en) * | 2011-04-13 | 2015-03-31 | Microsoft Technology Licensing, Llc | API descriptions |
US20120297429A1 (en) * | 2011-05-17 | 2012-11-22 | Cbs Interactive, Inc. | Emulating Television Viewing Experience In A Browser |
US9460224B2 (en) * | 2011-06-16 | 2016-10-04 | Microsoft Technology Licensing Llc. | Selection mapping between fetched files and source files |
US9146909B2 (en) | 2011-07-27 | 2015-09-29 | Qualcomm Incorporated | Web browsing enhanced by cloud computing |
US10467289B2 (en) * | 2011-08-02 | 2019-11-05 | Comcast Cable Communications, Llc | Segmentation of video according to narrative theme |
US8516360B2 (en) * | 2011-08-24 | 2013-08-20 | Qualcomm Innovation Center, Inc. | Controlled parallel compilation and execution of JavaScripts |
US9165308B2 (en) * | 2011-09-20 | 2015-10-20 | TagMan Inc. | System and method for loading of web page assets |
US8515902B2 (en) * | 2011-10-14 | 2013-08-20 | Box, Inc. | Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution |
US20130124301A1 (en) * | 2011-11-10 | 2013-05-16 | Google Inc. | System and method for dynamic user feedback for display and context advertisements |
WO2013102924A2 (en) * | 2011-11-30 | 2013-07-11 | Tata Consultancy Services Limited | A method and system for providing tourist assistance and guided navigation by metadata transmission |
US9307009B2 (en) * | 2012-02-15 | 2016-04-05 | Mobilespan Inc. | Presenting execution of a remote application in a mobile device native format |
US9325806B2 (en) * | 2012-02-24 | 2016-04-26 | Qualcomm Incorporated | Cooperative loading of webpages based on shared meta information |
US9239862B2 (en) | 2012-05-01 | 2016-01-19 | Qualcomm Incorporated | Web acceleration based on hints derived from crowd sourcing |
US8990190B2 (en) * | 2012-11-16 | 2015-03-24 | Apollo Education Group, Inc. | Contextual help article provider |
-
2011
- 2011-07-27 US US13/192,064 patent/US9146909B2/en not_active Expired - Fee Related
-
2012
- 2012-06-19 CA CA2842737A patent/CA2842737C/en not_active Expired - Fee Related
- 2012-06-19 BR BR112014001889A patent/BR112014001889A2/pt not_active Application Discontinuation
- 2012-06-19 WO PCT/US2012/043081 patent/WO2013015911A1/en unknown
- 2012-06-19 CN CN201280036754.1A patent/CN103718177B/zh not_active Expired - Fee Related
- 2012-06-19 KR KR1020147004887A patent/KR101609483B1/ko not_active IP Right Cessation
- 2012-06-19 JP JP2014522829A patent/JP5869124B2/ja not_active Expired - Fee Related
- 2012-06-19 RU RU2014107492/08A patent/RU2577193C2/ru active IP Right Revival
- 2012-06-19 EP EP12733821.8A patent/EP2737414A1/en not_active Withdrawn
-
2013
- 2013-04-18 US US13/865,474 patent/US20140149850A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080200161A1 (en) | 2005-06-07 | 2008-08-21 | Yahoo! Inc. | Providing relevant non- requested content to a mobile device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180100626A (ko) * | 2016-01-29 | 2018-09-11 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | Gpu 자원 재구성 방법, 사용자 디바이스, 시스템 및 저장 매체 |
KR102091961B1 (ko) | 2016-01-29 | 2020-03-20 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | Gpu 자원 재구성 방법, 사용자 디바이스, 시스템 및 저장 매체 |
Also Published As
Publication number | Publication date |
---|---|
CN103718177B (zh) | 2018-03-23 |
CA2842737A1 (en) | 2013-01-31 |
US20140149850A1 (en) | 2014-05-29 |
RU2014107492A (ru) | 2015-09-10 |
JP2014525103A (ja) | 2014-09-25 |
BR112014001889A2 (pt) | 2017-02-21 |
US20130031459A1 (en) | 2013-01-31 |
CA2842737C (en) | 2017-01-03 |
CN103718177A (zh) | 2014-04-09 |
JP5869124B2 (ja) | 2016-02-24 |
KR20140051359A (ko) | 2014-04-30 |
EP2737414A1 (en) | 2014-06-04 |
WO2013015911A1 (en) | 2013-01-31 |
US9146909B2 (en) | 2015-09-29 |
RU2577193C2 (ru) | 2016-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101609483B1 (ko) | 클라우드 컴퓨팅에 의해 향상된 웹 브라우징 | |
US10645143B1 (en) | Static tracker | |
US9749400B2 (en) | Cooperative loading of webpages based on shared meta information | |
EP2653987B1 (en) | Displaying web pages without downloading static files | |
US10291738B1 (en) | Speculative prefetch of resources across page loads | |
KR102294326B1 (ko) | 연결 해제의 기간을 위한 애플리케이션 데이터의 프리페치 | |
US9077681B2 (en) | Page loading optimization using page-maintained cache | |
US9531829B1 (en) | Smart hierarchical cache using HTML5 storage APIs | |
CN103714172A (zh) | 页面处理方法、装置及*** | |
US10616356B2 (en) | Optimization of asynchronous pushing of web resources | |
Dutta et al. | Caching to reduce mobile app energy consumption | |
US11176223B1 (en) | Page rendering by an intermediary system that uses a truncated library | |
US9830307B1 (en) | Ahead of time compilation of content pages | |
CN116846881A (zh) | 一种缓存库文件的更新方法及终端 | |
Ünlü | Energy efficient mobile web via scripts&stylesheets based transcoding | |
Liu et al. | Rethinking Client-Driven Resource Management for Mobile Web: Measurement, Deployment, and Runtime |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
LAPS | Lapse due to unpaid annual fee |