[go: up one dir, main page]

KR20100066454A - Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives - Google Patents

Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives Download PDF

Info

Publication number
KR20100066454A
KR20100066454A KR1020107004123A KR20107004123A KR20100066454A KR 20100066454 A KR20100066454 A KR 20100066454A KR 1020107004123 A KR1020107004123 A KR 1020107004123A KR 20107004123 A KR20107004123 A KR 20107004123A KR 20100066454 A KR20100066454 A KR 20100066454A
Authority
KR
South Korea
Prior art keywords
web page
archive
archives
browser
objects
Prior art date
Application number
KR1020107004123A
Other languages
Korean (ko)
Inventor
롱 쳉
캐서린 디에프
동 준 란
쉥 루
루이스 오스티디에크
칭 보 왕
멩 예
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/847,287 external-priority patent/US7937478B2/en
Priority claimed from US11/847,299 external-priority patent/US20090063622A1/en
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20100066454A publication Critical patent/KR20100066454A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

웹 페이지의 로딩 시간을 감소시키기 위한 장치, 시스템, 및 방법이 개시된다. 일 실시예에서, 상기 장치, 시스템, 및 방법은 웹 서버로부터 웹 페이지를 요청하는 것을 포함하고, 웹 서버로부터 웹 페이지를 요청하는 것은 다시 브라우저 파라미터를 웹 서버에 전송하는 것을 포함하는데, 브라우저 파라미터는 브라우저가 아카이브를 수신할 수 있다는 것을 표시하는 표시자를 포함한다. 본 발명은 더 나아가 웹 서버로부터 하나 이상의 아카이브를 수신하는 것을 포함할 수 있는데, 하나 이상의 아카이브 각각은 웹 페이지로부터 참조되는 복수의 보관 가능한 객체를 포함하고 하나 이상의 아카이브로부터의 복수의 보관 가능한 객체를 이용하여 웹 페이지를 렌더링하는 것을 포함할 수 있다.An apparatus, system, and method are disclosed for reducing the loading time of a web page. In one embodiment, the apparatus, system, and method include requesting a web page from a web server, and requesting the web page from the web server again includes sending browser parameters to the web server, wherein the browser parameter is It includes an indicator that indicates that the browser can receive the archive. The invention may further comprise receiving one or more archives from a web server, each of the one or more archives comprising a plurality of archivable objects referenced from a web page and utilizing a plurality of archivable objects from one or more archives. To render the web page.

Description

브라우저와 서버 간의 협력을 통해 하나 또는 그 이상의 아카이브에 작은 객체를 패키징하기 위한 장치, 시스템, 및 방법{APPARATUS, SYSTEM, AND METHOD FOR COOPERATION BETWEEN A BROWSER AND A SERVER TO PACKAGE SMALL OBJECTS IN ONE OR MORE ARCHIVES}APPARATUS, SYSTEM, AND METHOD FOR COOPERATION BETWEEN A BROWSER AND A SERVER TO PACKAGE SMALL OBJECTS IN ONE OR MORE ARCHIVES}

[관련 출원에 대한 상호참조]CROSS REFERENCE TO RELATED APPLICATIONS

본 출원은 2007년 8월 29일에 출원되고, 대리인 도켓 번호(attorney docket number)가 SVL920060134US2이며, Long Cheng, Catherine C. Diep, Dong Jun Lan, Sheng S. Lu, Luis J. Ostidiek Ostidiek, Qing Bo Wang, Meng Ye에게 권리가 있고 발명의 명칭이 "브라우저와 서버 간의 협력을 통해 하나 또는 그 이상의 아카이브에 작은 객체를 패키징하기 위한 장치, 시스템, 및 방법"인 미국 특허 출원 제11/847,299호, 및 2007년 7월 20일에 출원되고, 대리인 도켓 번호가 SVL920060136US1이며, Catherine C. Diep, Xing X. Fang, Dong Jun Lan, Sheng Lu, Luis J. Ostidiek, Qing Bo Wang, Meng Ye에게 권리가 있고, 발명의 명칭이 "웹 페이지의 로딩 시간을 개선하기 위해 작은 객체를 아카이빙하는 장치, 시스템, 및 방법"인 미국 특허 출원 제11/781,066호와 관련이 있다.This application is filed on August 29, 2007, with an agent docket number of SVL920060134US2, Long Cheng, Catherine C. Diep, Dong Jun Lan, Sheng S. Lu, Luis J. Ostidiek Ostidiek, Qing Bo U.S. Patent Application No. 11 / 847,299 entitled Wang, Meng Ye and entitled "The Apparatus, System, and Method for Packaging Small Objects in One or More Archives Through Collaboration Between Browser and Server," and Filed July 20, 2007, Agent Dock No. SVL920060136US1, with rights to Catherine C. Diep, Xing X. Fang, Dong Jun Lan, Sheng Lu, Luis J. Ostidiek, Qing Bo Wang, Meng Ye, The invention is related to US patent application Ser. No. 11 / 781,066 entitled "A device, system, and method for archiving small objects to improve loading time of web pages."

본 발명은 웹 페이지에 관한 것으로 더 구체적으로는 웹 페이지를 로딩하는데 소요되는 시간을 개선하기 위한 방법에 관한 것이다.The present invention relates to a web page and more particularly to a method for improving the time taken to load a web page.

인터넷은 비즈니스와 개인의 응용 프로그램 개발을 위한 기본 플랫폼으로 자리 잡았다. 인터넷을 통한 응용 프로그램에 대해 더 많은 유용한 기능을 개발했으면 하는 요청은 멀티미디어 기술의 채택을 확대하여 더 나은 사용자 경험을 만드는데 기여했다. 그 결과 일반적인 웹 페이지는 보통 다수의 이미지 리소스, 실행 가능 스크립트, 스타일 정의(style definition)로 이루어진다. 이러한 리소스의 파일 사이즈는 작은데, 보통 1K 이하이다. 이러한 작은 리소스들이 웹 서버에 배치될 때 통상적으로 높은 오버헤드 요구조건을 가지며 그 결과 상대적으로 높은 네트워크 대역폭과 서버 부하를 요청하게 된다.The Internet has become the foundational platform for business and personal application development. The request to develop more useful features for applications over the Internet has contributed to the adoption of multimedia technologies to create a better user experience. As a result, a typical web page usually consists of many image resources, executable scripts, and style definitions. The file size of these resources is small, usually less than 1K. When these small resources are deployed on a web server, they typically have high overhead requirements, resulting in relatively high network bandwidth and server load.

리소스의 네트워크 오버헤드 요구조건에는 프로토콜 헤더, HTTP 헤더, TCP 헤더, IP 헤더가 포함되어 있다. 단일한 HTTP 요청 또는 응답에 대해 평균적인 HTTP 헤더의 경우는 300 바이트 보다 크며, 그래서 하나의 요청/응답의 상호작용에서 600내지 700 바이트 보다 큰 HTTP 헤더가 사용된다. 위에서 언급한 것처럼, 많은 웹페이지에 있는 여러 객체의 사이즈는 이미 상당히 작은 크기이므로 불필요한 HTTP 헤더에 대하여 상당한 비용이 발생한다. 객체가 작을수록 오버헤드 비율은 증가하게 된다. 각 요청에 대해 헤더가 오버헤드 요구조건에 기여하는 부분은 현재의 인터넷 구조상에서는 기본적인 부분을 차지하므로 이를 감소시키기 위해서 할 수 있는 것이 많지 않다.Resource network overhead requirements include protocol headers, HTTP headers, TCP headers, and IP headers. The average HTTP header for a single HTTP request or response is larger than 300 bytes, so in one request / response interaction an HTTP header larger than 600 to 700 bytes is used. As mentioned above, the size of the various objects in many web pages is already quite small, which incurs significant costs for unnecessary HTTP headers. The smaller the object, the higher the overhead ratio. For each request, the contribution that the header contributes to the overhead requirements is a fundamental part of the current Internet architecture, so there is not much you can do to reduce it.

오버헤드로 인한 지연에서 더 나아가, 웹 페이지가 브라우저에 의해 액세스될 때, 브라우저는 웹 페이지에 있는 각 객체들에 대한 요청을 보내고 각 객체에 대해 응답을 기다린다. 이것은 "왕복 시간" 지연을 발생하게 하는데, 이는 헤더 등이 발생시키는 오버헤드 지연을 구성하게 된다. 웹 페이지가 수 많은 작은 객체들로 구성될 때는, 객체들을 위한 대기 시간이 축적되고 이는 로딩을 더 지연시키게 된다.In addition to the delay due to overhead, when a web page is accessed by a browser, the browser sends a request for each object in the web page and waits for a response for each object. This causes a "round time" delay, which constitutes the overhead delay caused by headers and the like. When a web page is made up of many small objects, the wait time for the objects accumulates, which further delays loading.

전술한 설명으로부터, 웹 페이지의 로딩 시간을 줄이기 위한 장치, 시스템, 및 방법에 대판 필요성이 명백히 존재하는 것을 알 수 있다. 유용하게도 상기의 장치, 시스템, 및 방법은 양호하게는 브라우저와 웹 서버가 웹 페이지에서의 로딩 시간을 줄이기 위해 협동하는 것과 관련된다.From the foregoing description, it will be apparent that there is a clear need for apparatus, systems, and methods for reducing the loading time of web pages. Advantageously, the apparatus, system, and method are preferably associated with a browser and a web server working together to reduce loading time on a web page.

본 발명은 현재의 기술에 대한 대안으로 개발되었으며, 더 구체적으로는 현재의 웹 페이지 전송 기술이 충분히 해결할 수 없었던 문제점과 기술 개선의 필요성을 해결하기 위해 개발되었다. 따라서, 웹 페이지의 로딩 시간을 감소시키기 위한 장치, 시스템, 및 방법에 관한 본 발명은 상기에서 언급된 현재의 기술에서 해결하지 못하는 많은 또는 대부분의 문제점들에 대해 대안을 제시할 수 있다.The present invention was developed as an alternative to the current technology, and more specifically, to solve the problem that the current web page transmission technology could not sufficiently solve and the need for technical improvement. Accordingly, the present invention regarding apparatus, system, and method for reducing the loading time of a web page may provide an alternative to many or most of the problems not addressed by the current technology mentioned above.

본 발명의 시스템은 웹 페이지의 로딩 시간을 감소시키기 위해 제공된다. 이 시스템은 웹 브라우저, 웹 서버, 및 아카이버에 의해 구현될 수 있다. 특히, 일 실시예에서, 시스템은 웹 브라우저를 포함하는데, 웹 브라우저는 웹 서버로부터 웹 페이지를 요청하고, 웹 페이지에서 참조되는 하나 이상의 보관 가능한 객체들(one or more archivable objects referenced in the web page)을 포함하는 하나 이상의 아카이브를 수신하며, 하나 이상의 아카이브로부터의 보관 가능한 객체들을 사용하여 웹 페이지를 렌더링할 수 있도록 구성된다. 웹 서버는 브라우저로부터 웹 페이지를 요청하는 요청을 수신하고 하나 이상의 아카이브를 전달하도록 구성될 수 있으며, 하나 이상의 아카이브들은 웹 페이지 내에서 참조되는 복수의 보관 가능한 객체들을 포함한다. 아카이브는 웹 페이지를 위한 하나 이상의 아카이브에 대해 보관 가능한 객체들의 선택을 최적화하고 보관 가능한 객체의 최적화된 선택들로부터 하나 이상의 아카이브를 생성하도록 구성될 수 있다.The system of the present invention is provided to reduce the loading time of a web page. This system can be implemented by a web browser, a web server, and an archiver. In particular, in one embodiment, the system includes a web browser, where the web browser requests a web page from a web server, and one or more archivable objects referenced in the web page. Receive one or more archives that include and are configured to render a web page using the archivable objects from the one or more archives. The web server may be configured to receive a request for a web page from a browser and deliver one or more archives, the one or more archives comprising a plurality of archivable objects referenced within the web page. The archive may be configured to optimize the selection of archivable objects for one or more archives for the web page and to generate one or more archives from the optimized selection of archivable objects.

시스템에서의 브라우저는, 브라우저가 하나 이상의 아카이브를 수신하도록 구성되었다는 것을 표시하는 표시자를 포함하는 브라우저 파라미터를 전송하도록 구성될 수 있다. 또 다른 실시예에서, 브라우저는, 브라우저에 대하여 가능한 최대한의 접속 수를 수신하도록 브라우저가 구성되었다는 것을 표시하는 표시자를 포함하는 브라우저 파라미터를 전송한다.The browser in the system may be configured to send browser parameters including an indicator indicating that the browser is configured to receive one or more archives. In yet another embodiment, the browser sends a browser parameter that includes an indicator that indicates that the browser is configured to receive the maximum possible number of connections to the browser.

시스템의 특정 실시예에서, 아카이버는 하나 이상의 아카이브를 전달하는데 사용되는 최적의 접속 수(optimal number of connections)를 결정함으로써, 브라우저의 능력(capabilities)과 호환 가능한 아카이브 응답 파라미터를 결정하도록 더 구성될 수 있다. 추가적인 실시예에서, 아카이버는 하나 이상의 아카이브를 전달하는데 사용되는 최적의 접속 수로 결정된 것과 동일한 갯수의 아카이브를 생성한다. 또 다른 실시예에서, 아카이버는 아카이브 응답 파라미터를 브라우저에 전송함으로써 브라우저의 능력과 호환 가능한 응답 파라미터를 결정하며, 아카이브 응답 파라미터는 아카이버가 웹 서버에 대해 하나 이상의 아카이브와 가능한 접속을 생성하고 하나 이상의 아카이브를 전달하는데 사용되는 최대한의 접속 수를 결정하도록 구성되었다는 것을 표시하는 표시자를 포함할 수 있다.In a particular embodiment of the system, the archiver may be further configured to determine an archive response parameter that is compatible with the browser's capabilities by determining an optimal number of connections used to deliver one or more archives. have. In a further embodiment, the archiver creates the same number of archives as determined by the optimal number of connections used to deliver one or more archives. In another embodiment, the archiver determines response parameters that are compatible with the browser's capabilities by sending the archive response parameters to the browser, where the archive response parameters create one or more archives and possible connections to the web server and the one or more archives. It may include an indicator indicating that it is configured to determine the maximum number of connections used to deliver.

시스템의 일 실시예에서, 브라우저는 브라우저 파라미터를 웹 서버에 전송하는 것으로 더 구성될 수 있는데, 브라우저 캐시에 이전의 웹 서버 및 웹 페이지와 연관된 프리-캐시된 객체들 사이의 상호작용으로 브라우저에 제공된 프리-캐시된 객체들의 리스트를 전송하는 것으로 구성될 수 있다. 또 다른 실시예에서, 아카이버는, 웹 페이지에서 참조되는 보관 가능한 객체들과 브라우저 캐시에 존재하는 프리-캐시된 객체들의 리스트를 비교하고, 프리-캐시된 객체의 리스트로부터 누락된 보관 가능한 객체들을 결정하며, 하나 이상의 아카이브에 대해 브라우저 캐시로부터 누락된 보관 가능한 객체들을 선택하여, 아카이브 응답 파라미터가 브라우저의 능력과 호환 가능한지를 결정한다.In one embodiment of the system, the browser may further be configured to send browser parameters to a web server, the browser cache being provided to the browser as an interaction between the pre-cached objects associated with the previous web server and the web page. It may consist of sending a list of pre-cached objects. In another embodiment, the archiver compares the list of pre-cached objects present in the browser cache with the archivable objects referenced in the web page and determines missing archived objects from the list of pre-cached objects. Select missing archived objects from the browser cache for one or more archives to determine whether the archive response parameter is compatible with the browser's capabilities.

웹 페이지의 로딩 시간을 감소시키기 위해 프로그래밍된 컴퓨터 이용가능 프로그램 코드를 갖는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다. 일 실시예에서, 컴퓨터 프로그램 제품은 브라우저가 하나 이상의 아카이브 및 상기 브라우저에 대해 이용가능한 접속을 수신하도록 구성되었다는 것을 나타내는 표시자를 포함하는 브라우저 파라미터를 수신하는 동작을 하는데 필요한 명령어를 포함한다. 컴퓨터 프로그램 제품은 더 나아가 하나 이상의 아카이브를 전달하기 위해 사용하는 접속 수를 판단하고 웹 페이지에 대한 하나 이상의 아카이브에 대해 보관 가능한 객체의 선택을 최적화하는 동작을 하는데 필요한 명령어를 포함할 수 있다.A computer program product is provided that includes a computer readable medium having computer usable program code programmed to reduce loading time of a web page. In one embodiment, the computer program product includes instructions necessary to operate to receive browser parameters including an indicator indicating that the browser is configured to receive one or more archives and a connection available to the browser. The computer program product may further comprise instructions necessary for determining the number of connections used to deliver one or more archives and for optimizing the selection of archivable objects for one or more archives for a web page.

특정 실시예에서, 컴퓨터 프로그램 제품은 보관 가능한 객체의 최적화된 선택을 포함하는 상기 하나 이상의 아카이브를 전달하기 위해 사용하는 상기 접속 수와 동일한 수의 아카이브를 생성하는 명령어를 포함할 수 있다. 다른 일 실시예에서, 컴퓨터 프로그램 제품은 각각 웹 페이지 내에서 참조되는 복수의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 전달하는 명령어를 포함할 수 있다. 컴퓨터 프로그램 제품의 일 실시예에서, 보관 가능한 객체의 최적화된 선택은 아카이버에 의해서 생성된 하나 이상의 아카이브에 포함(inclusion)시키기 위해 보관 가능한 객체를 선택하고, 아카이버의 내용은 객체 우선순위화(object prioritization)에 따라 웹 페이지로부터의 하나 이상의 보관 가능한 객체를 포함하게 할 수 있다.In a particular embodiment, the computer program product may include instructions for creating the same number of archives as the number of connections used to deliver the one or more archives including an optimized selection of archivable objects. In another embodiment, a computer program product may include instructions for delivering one or more archives, each containing a plurality of archivable objects referenced within a web page. In one embodiment of a computer program product, the optimized selection of archival objects selects archival objects for inclusion in one or more archives generated by the archiver, and the contents of the archiver are object prioritization. ) Can include one or more archiving objects from a web page.

컴퓨터 프로그램 제품의 일 실시예에서, 보관 가능한 객체의 최적화된 선택은 웹 페이지 내에서 참조되는 객체를 결정하기 위해 웹 페이지의 구조를 표시하는 문서 객체 모델(document object model; DOM) 트리의 스캔을 더 포함할 수 있다. 컴퓨터 프로그램 제품의 다른 실시예에서, 보관 가능한 객체의 최적화된 선택은 하나 이상의 우선순위화 기준(prioritization criteria)에 따라 보관 가능한 객체에 우선순위를 할당하는 단계를 더 포함할 수 있다. 우선순위화 기준은 DOM 트리에서의 객체의 하향 객체 수(a number of descendent objects of the object in the DOM tree)를 포함할 수 있다. 우선순위화 기준은 문서 객체 마스터(document object master; DOM) 트리에서의 계층적 단계(hierarchical level)를 포함할 수 있다.In one embodiment of a computer program product, the optimized selection of archivable objects further scans a document object model (DOM) tree that represents the structure of the web page to determine the objects referenced within the web page. It may include. In another embodiment of a computer program product, the optimized selection of archivable objects may further include assigning priorities to the archivable objects according to one or more prioritization criteria. The prioritization criterion may include a number of descendent objects of the object in the DOM tree. Prioritization criteria may include hierarchical levels in a document object master (DOM) tree.

컴퓨터 프로그램 제품의 일 실시예에서, 하나 이상의 아카이브에 포함시키기 위해 보관 가능한 객체를 선택하는 것은, 객체의 사이즈가 임계 사이즈 보다 작다는 판단에 응답하여 하나 이상의 아카이브에 포함시키기 위해 보관 가능한 객체를 선택하는 것을 포함할 수 있다. 다른 실시예에서, 웹 서버와의 이전의 상호작용으로부터 브라우저 캐시에 존재하는 보관 가능한 객체가 프리-캐시된 리스트에서 누락되었다는 판단에 응답하여 하나 이상의 아카이브에 포함시키기 위해 보관 가능한 객체를 선택하는 단계를 포함한다.In one embodiment of a computer program product, selecting an archiveable object for inclusion in one or more archives selects an archiveable object for inclusion in one or more archives in response to determining that the size of the object is less than a threshold size. It may include. In another embodiment, selecting an archiveable object for inclusion in one or more archives in response to determining from the previous interaction with the web server that the archiveable object present in the browser cache is missing from the pre-cached list. Include.

컴퓨터 프로그램 제품의 일 실시예에서, 아카이브를 생성하는 것은 높은 우선순위를 갖는 보관 가능한 객체가 낮은 우선순위를 갖는 보관 가능한 객체보다 상기 아카이브의 시작 부분에 더 가깝게 위치하도록, 하나 이상의 아카이브에서의 우선 순위에 따라 보관 가능한 객체를 정렬하는 것을 더 포함할 수 있다. 수개의 아카이브를 생성하는 것은 우선 순위에 따라 선택된 보관 가능한 객체를 정렬하고, 각각의 아카이브를 위해 빈(a bin)을 생성하며, 및 빈에 남아있는 총 객체의 사이즈가 타겟 사이즈 보다 작은 경우 정렬에 의해서 각각의 빈에 보관 가능한 객체를 추가하는 과정을 포함한다. 일 실시예에서, 아카이브를 생성하는 것은 하나 이상의 아카이브를 압축하는 단계를 더 포함한다.In one embodiment of a computer program product, creating an archive is prioritized in one or more archives such that a archival object having a higher priority is located closer to the beginning of the archive than a archival object having a lower priority. The method may further include sorting the archivable objects according to the present invention. Creating several archives sorts the selectable archiveable objects in order of priority, creates a bin for each archive, and sorts if the total size of objects remaining in the bin is less than the target size. By adding an object that can be stored in each bean. In one embodiment, creating the archive further includes compressing the one or more archives.

본 발명의 방법은 컴퓨팅 인프라스트럭쳐(computing infrastructure)를 배치하기 위해서도 제공되는데, 이는 컴퓨터 판독 가능 코드를 컴퓨팅 시스템에 통합하는 것을 포함하며 상기 컴퓨팅 시스템과 코드가 조합된 것은 웹 서버로부터 웹 페이지를 요청하는 것이 가능하고, 상기 웹 서버에서 웹 페이지를 요청하는 과정은 웹 서버를 표시하는 표시자가 포함된 브라우저 파라미터를 전송하는 것을 포함하며, 상기 표시자는 브라우저가 아카이브를 수신하는 것이 가능하다는 것을 표시하는 것을 포함한다. 일 실시예에서, 컴퓨터 시스템과 조합되어 있는 코드는 웹 페이지에서 참조되는 복수의 보관 가능한 객체(a plurality of archivable objects)를 포함하는 하나 이상의 아카이브를 웹 서버로부터 수신하도록 되어 있다. 다른 실시예는 컴퓨터 시스템과 조합되어 있는 코드는 하나 이상의 아카이브로부터의 복수의 보관 가능한 객체를 이용하여 웹 페이지를 렌더링할 수 있다.The method of the present invention also provides for deploying a computing infrastructure, which includes incorporating computer readable code into a computing system, the combination of computing system and code requesting a web page from a web server. It is possible that the requesting of the web page at the web server includes sending a browser parameter containing an indicator indicating the web server, the indicator including indicating that the browser is capable of receiving an archive. do. In one embodiment, the code in combination with the computer system is adapted to receive one or more archives from the web server that include a plurality of archivable objects referenced in the web page. Another embodiment is that code in combination with a computer system may render a web page using a plurality of archivable objects from one or more archives.

또 다른 실시예에서, 컴퓨터 시스템과 조합되어 있는 코드는 웹 서버가 아카이브를 전달할 수 있다는 것을 표시하는 표시자를 포함하는 아카이브 응답 파라미터를 웹 서버로부터 수신하는 것이 가능하다. 일 실시예에서, 컴퓨터와 조합되어 있는 코드는 웹 페이지를 수신하기 위해 브라우저가 사용하는 이용가능한 접속 수를 결정할 수 있다. 또 다른 실시예에서, 컴퓨터 시스템과 조합되어 있는 코드는 웹 페이지의 부분(portions)을 수신하기 위하여 브라우저의 이용 가능한 접속 수를 표시하는 접속 표시자(connections indicator)를 포함하는 브라우저 파라미터를 전송할 수 있다.In another embodiment, the code in combination with the computer system is capable of receiving an archive response parameter from the web server that includes an indicator that indicates that the web server can deliver the archive. In one embodiment, the code in combination with the computer may determine the number of available connections that the browser uses to receive the web page. In another embodiment, the code in combination with the computer system may send a browser parameter that includes a connections indicator indicating the number of available connections of the browser to receive portions of the web page. .

이 방법은 더 나아가 웹 서버로부터의 아카이브 응답 파라미터 및 브라우저의 이용을 위해 사용 가능한 접속 수에 따라 웹 서버와의 접속을 설정하는 방법을 더 포함할 수 있다. 또 다른 실시예에서, 이 방법은 웹 서버와의 이전의 상호작용으로부터 캐시에 브라우저에 의해 보유된 보관 가능한 객체의 리스트를 전송하는 방법도 포함되어 있다. 이 방법은 더 나아가 하나 이상의 아카이브로부터 보관 가능한 객체를 추출하는 것을 더 포함할 수 있다.The method may further comprise a method of establishing a connection with the web server according to the archive response parameter from the web server and the number of connections available for use of the browser. In another embodiment, the method also includes a method of sending a list of archival objects held by the browser to the cache from a previous interaction with the web server. The method may further comprise extracting the archivable object from one or more archives.

특정 실시예에서, 웹 페이지를 렌더링하는 것은 보관 가능한 객체를 캐시에 저장하는 것을 더 포함한다. 다른 실시예에서, 웹 페이지를 렌더링하는 것은 디스플레이 장치에 보관 가능한 객체를 디스플레이하는 것을 더 포함한다. 추가적인 실시예에서, 웹 페이지를 렌더링하는 것은 압축된 아카이브의 압축을 푸는 것도 포함한다.In a particular embodiment, rendering the web page further includes storing the archivable object in a cache. In another embodiment, rendering the web page further includes displaying an object that can be stored on the display device. In a further embodiment, rendering the web page also includes decompressing the compressed archive.

웹 페이지의 로딩 시간을 감소시키기 위한 방법도 제시되어 있다. 본 실시예에 따른 방법은 위에서 설명한 장치 및 시스템의 기능이 실행되게 하기 위한 단계들을 실질적으로 포함하고 있다. 일 실시예에서, 상기 방법은 브라우저가 웹 페이지를 수신하기 위해 사용하는 이용가능한 접속의 수를 결정하는 방법을 포함한다. 상기 방법은 웹 서버로부터 웹 페이지를 요청하는 단계도 포함할 수 있다. 웹 서버로부터 웹 페이지를 요청하는 것은 브라우저가 아카이브를 수신하는 것이 가능하다는 것을 표시하는 표시자 및 브라우저가 웹 페이지의 부분들을 수신하기 위해 사용하는 이용가능한 접속의 수를 표시하는 표시자를 포함하는 브라우저 파라미터를 전송하는 단계를 포함할 수 있다.A method for reducing the loading time of a web page is also presented. The method according to the present embodiment substantially includes the steps for causing the functions of the apparatus and system described above to be executed. In one embodiment, the method includes a method of determining the number of available connections that a browser uses to receive a web page. The method may also include requesting a web page from a web server. Requesting a web page from a web server is a browser parameter that includes an indicator indicating that the browser is capable of receiving an archive and an indicator indicating the number of available connections the browser uses to receive portions of the web page. It may include the step of transmitting.

일 실시예로서, 방법은 웹 서버가 하나 이상의 아카이브를 전달하는 것이 가능하다는 것을 표시하는 표시자를 포함하는 아카이브 응답 파라미터를 웹 서버로부터 수신하는 단계를 포함할 수 있다. 방법은 웹 서버로부터의 아카이브 응답 파라미터 및 브라우저 파라미터에 따라 웹 서버와의 하나 이상의 접속을 설정하는 단계를 더 포함할 수 있다. 일 실시예에서, 방법은 각각 웹 페이지와 연관된 복수의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 웹 서버로부터 수신하는 단계를 포함한다. 방법은 더 나아가 하나 이상의 아카이브로부터의 복수의 보관 가능한 객체를 이용하여 웹 페이지를 렌더링하는 단계도 포함할 수 있다.As one embodiment, the method may include receiving an archive response parameter from the web server that includes an indicator indicating that the web server is capable of delivering one or more archives. The method may further comprise establishing one or more connections with the web server according to the archive response parameter and the browser parameter from the web server. In one embodiment, the method includes receiving one or more archives from the web server, each of the plurality of archiveable objects associated with the web page. The method may further comprise rendering the web page using a plurality of archivable objects from one or more archives.

웹 페이지의 로딩 시간을 감소시키기 위해 컴퓨터가 이용할 수 있는 프로그램 코드가 프로그래밍된 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품 또한 제공된다. 일 실시예에서, 컴퓨터 프로그램 제품의 동작은 생성할 아카이브의 수를 결정하고, 아카이버에 의해서 생성되는 하나 이상의 아카이브에 포함시키기 위해 보관 가능한 객체를 선택하는 것을 포함하는데, 선택된 보관 가능한 객체는 객체 우선순위화에 따라 웹 페이지와 연관된 하나 이상의 보관 가능한 객체를 포함하고, 보관 가능한 객체는 보관 가능한 객체가 임계값 보다 작은 사이즈를 갖는다고 판단될 경우 선택된다. 일실시예에서, 컴퓨터 프로그램 제품의 동작은 웹 페이지에 대한 하나 이상의 아카이브에 대해 선택된 보관 가능한 객체를 최적화하는 단계를 포함한다. 컴퓨터 프로그램 제품의 동작은 보관 가능한 객체의 최적화된 선택을 포함하고, 결정된 아카이브의 수와 동일한 수의 아카이브를 생성시키는 것을 포함할 수 있다.A computer program product is also provided that includes a computer readable medium having programmed thereon program code that can be used by a computer to reduce loading time of a web page. In one embodiment, the operation of the computer program product includes determining the number of archives to create and selecting the archiveable objects for inclusion in one or more archives generated by the archiver, wherein the selected archiveable objects are object priorities. In some cases, one or more archivable objects associated with the web page may be included, and the archivable object is selected when it is determined that the archivable object has a size smaller than a threshold. In one embodiment, the operation of the computer program product includes optimizing the selected archivable object for one or more archives for the web page. The operation of the computer program product includes an optimized selection of archivable objects and may include generating the same number of archives as the number of archives determined.

본 명세서에서 언급되는 특징, 장점, 또는 이와 유사한 표현은 반드시 본 발명을 통해 구현될 수 있는 특징이나 장점들이 본 발명의 단일 실시예에 국한되는 것을 의미하는 것은 아니다. 오히려, 특징이나 장점에 대해 언급하는 표현은 실시예와 연관되어 기술된 특정 특징, 장점, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것으로 보아야 한다. 그러므로, 본 명세서에서의 특징, 장점, 및 이와 유사한 표현에 대한 논의는, 반드시 그래야 하는 것은 아니지만, 동일한 실시예에 대해서 언급한다.Features, advantages, or similar expressions mentioned herein do not necessarily mean that features or advantages that can be implemented through the present invention are limited to a single embodiment of the present invention. Rather, expressions referring to features or advantages should be considered to include certain features, advantages, or characteristics described in connection with the embodiments in at least one embodiment of the invention. Therefore, discussions of features, advantages, and similar language herein refer to the same embodiment, although not necessarily.

더 나아가, 기술된 발명의 특징, 장점, 및 특성은 하나 이상의 실시예에서 적절한 방식으로 결합될 수 있다. 본 기술분야의 당업자는 특정 실시예의 하나 이상의 특정 특징이나 장점이 없이도 본 발명을 실시할 수 있음을 인식할 수 있다. 다른 경우에 있어서는, 본 발명의 모든 실시예에 존재하지는 않지만 특정 실시예에서 추가적인 특징이나 장점이 인식될 수 있다.Furthermore, the features, advantages, and characteristics of the described invention can be combined in any suitable manner in one or more embodiments. Those skilled in the art will appreciate that the present invention may be practiced without one or more specific features or advantages of a particular embodiment. In other instances, additional features or advantages may be recognized in certain embodiments that are not present in all embodiments of the invention.

본 발명의 특징이나 장점들은 앞으로 기재될 상세한 설명, 첨부된 특허청구의 범위, 발명의 실시를 위한 실시예에 의해 더 명확해 질 것이다.The features and advantages of the present invention will become more apparent from the following detailed description, the appended claims, and the embodiments for carrying out the invention.

이하에서는 도면을 참조하여 본 발명의 실시예가 예시의 목적으로 설명될 것이다.
도 1은 본 발명에 따라 웹 페이지의 다운로드 시간을 개선할 수 있는 시스템의 실시예를 도시하는 블록 개략도.
도 2는 본 발명에 따른 아카이버의 실시예를 도시하는 블록 개략도.
도 3은 본 발명에 따른 선택 모듈의 실시예를 도시하는 블록 개략도.
도 4는 본 발명에 따른 문서 객체 모델(DOM) 트리 및 정렬된 보관 가능 객체의 실시예를 도시하는 블록 개략도.
도 5는 본 발명에 따른 아카이브 생성기 모듈의 실시예를 도시하는 블록 개략도.
도 6은 본 발명에 따른 아카이브 이용가능 브라우저의 일 실시예를 도시하는 블록 개략도.
도 7은 본 발명에 따른 웹 서버의 일 실시예를 도시하는 블록 개략도.
도 8은 본 발명에 따른 웹 페이지의 다운로드 시간을 개선하기 위한 방법의 실시예를 도시하는 개략적인 흐름도.
도 9는 본 발명에 따른 웹 브라우저에서 웹 페이지의 다운로드 시간을 개선하기 위한 방법의 실시예를 도시하는 개략적인 흐름도.
도 10은 본 발명에 따른 웹 서버에서 웹 페이지의 다운로드 시간을 개선하기 위한 방법의 실시예를 도시하는 개략적인 흐름도.
Hereinafter, embodiments of the present invention will be described for the purpose of illustration with reference to the drawings.
1 is a block schematic diagram illustrating an embodiment of a system capable of improving download time of a web page in accordance with the present invention;
2 is a block schematic diagram showing an embodiment of an archiver according to the present invention;
3 is a block schematic diagram illustrating an embodiment of a selection module according to the present invention.
4 is a block schematic diagram illustrating an embodiment of a Document Object Model (DOM) tree and an ordered archivable object in accordance with the present invention.
5 is a block schematic diagram illustrating an embodiment of an archive generator module according to the present invention.
6 is a block schematic diagram illustrating one embodiment of an archive enabled browser in accordance with the present invention.
7 is a block schematic diagram illustrating one embodiment of a web server according to the present invention;
8 is a schematic flowchart illustrating an embodiment of a method for improving the download time of a web page according to the present invention.
9 is a schematic flowchart illustrating an embodiment of a method for improving download time of a web page in a web browser according to the present invention.
10 is a schematic flowchart illustrating an embodiment of a method for improving download time of a web page in a web server according to the present invention.

본 명세서에서 설명된 많은 기능적 단위는 특히 독립적 구현을 강조하기 위해서 모듈로서 표시되었다. 예를 들어, 모듈은 커스텀 VLSI 회로 또는 게이트 어레이, 논리 칩, 트랜지스터, 또는 다른 개별 구성요소과 같이 바로 사용할 수 있는 반도체를 포함하는 하드웨어 회로로 구현될 수 있다. 모듈은 또한 필드 프로그램 가능 게이트 어레이, 프로그램 가능 어레이 논리, 프로그램 가능 논리 장치 등의 프로그램 가능 하드웨어 장치에 의해 구현될 수도 있다.Many of the functional units described in this specification have been labeled as modules, particularly to emphasize independent implementations. For example, the module may be implemented as a hardware circuit including a custom VLSI circuit or a semiconductor that can be used immediately, such as a gate array, logic chip, transistor, or other discrete component. Modules may also be implemented by programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, and the like.

모듈은 상이한 형태의 메모리와 통신하는 다양한 종류의 프로세서에 의해 실행되도록 소프트웨어로 구현될 수도 있다. 예를 들어, 실행가능 코드의 식별된 모듈은 컴퓨터 명령어의 하나 이상의 물리적 또는 논리적 블록으로 구성될 수 있으며, 이는 예를 들어 객체, 절차, 또는 기능으로서 다시 조직화될 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행가능 요소들은 물리적으로 가까이 근접해 있을 필요는 없지만 상이한 위치에 저장되어 있는 이격 명령어들(disparate instructions)을 포함할 수 있고, 이들은 논리적으로 결합되는 경우 모듈을 구성하고 모듈의 지정된 목적을 달성한다.The module may be implemented in software to be executed by various kinds of processors in communication with different types of memory. For example, an identified module of executable code may consist of one or more physical or logical blocks of computer instructions, which may, for example, be reorganized as an object, procedure, or function. Nevertheless, the executable elements of the identified modules do not need to be in close physical proximity, but may contain disparate instructions stored in different locations, which, when logically combined, constitute the module and Achieve the specified purpose.

실행가능 코드의 모듈은 단일 명령어 또는 복수의 명령어일 수 있고, 여러 메모리 장치나 다른 프로그램, 몇몇의 서로 다른 코드 세그먼트들 등에 넓게 분산되어 있을 수 있다. 유사하게, 동작 데이터는 모듈 내에서 식별되고 표시될 수 있고, 또 소정의 적절한 형태로 구현되고 적절한 형식의 데이터 구조 내에서 조직화될 수 있다. 동작 데이터는 단일한 데이터 세트로 수집될 수 있거나 또는 서로 다른 저장 장치를 포함하는 다른 위치에 널리 분산되어 있을 수 있고, 적어도 부분적으로는 시스템 또는 네트워크 상에서 단지 전자 신호로서 존재할 수 있다.The module of executable code may be a single instruction or a plurality of instructions, and may be widely distributed in various memory devices or other programs, several different code segments, and the like. Similarly, operational data may be identified and displayed within the module, and may be implemented in any suitable form and organized within a suitable formatted data structure. Operational data may be collected into a single data set or may be widely distributed in other locations including different storage devices, and may exist, at least in part, as just an electronic signal on a system or network.

명세서에서 언급된 "일 실시예," "실시예," 또는 이와 유사한 표현은 실시예와 연관되어 기술된 본 발명의 특정한 특징, 구조, 또는 특성이 본 발명의 실시예 중 적어도 어느 하나에 포함되어 있다는 것을 의미한다. 그래서, 명세서에서 사용된 "일 실시예에서," "실시예에 있어서," 및 이와 유사한 표현은 모두 같은 실시예를 언급하는 것일 수도 있지만 반드시 그런 것은 아니다.The phrase “one embodiment,” “an embodiment,” or the like, as referred to in the specification, includes a specific feature, structure, or characteristic of the present invention described in connection with the embodiment in at least one of the embodiments of the present invention. It means that there is. Thus, the expressions "in one embodiment," "in an embodiment," and the like, as used herein, may all refer to the same embodiment, but not necessarily.

신호 보유 매체(signal bearing medium)로 언급되는 것은 신호를 생성하고, 신호를 생성하도록 하며, 디지털 처리 장치에서 기계-판독가능 명령어의 프로그램을 실행하도록 하는 것이 가능한 어떠한 형태의 것도 될 수 있다. 신호 보유 매체는 전송 라인, 콤팩트 디스크, 디지털-비디오 디스크, 자기 테이프, 베르누이 드라이브, 자기 디스크, 펀치 카드, 플래시 메모리, 집적 회로, 또는 다른 디지털 처리 장치 메모리 장치로 구현될 수 있다.What is referred to as a signal bearing medium can be of any form that is capable of generating a signal, generating a signal, and allowing a digital processing device to execute a program of machine-readable instructions. The signal bearing medium may be embodied as a transmission line, compact disk, digital-video disk, magnetic tape, Bernoulli drive, magnetic disk, punch card, flash memory, integrated circuit, or other digital processing device memory device.

또한, 기술된 본 발명의 특징, 구조, 또는 특성은 하나 이상의 실시예에서 적절한 방법으로 결합될 수도 있다. 이하의 기재에서, 본 발명의 실시예에 대한 철저한 이해를 제공하기 위해 프로그래밍, 소프트웨어 모듈, 사용자 선택, 네트워크 거래, 데이터 베이스 쿼리들, 데이터 베이스 구조, 하드웨어 모듈, 하드웨어 회로, 하드웨어 칩 등에 대한 다양한 상세 예시가 제시되어 있다. 그러나, 관련 기술의 당업자는 본 발명이 하나 이상의 특정 상세 정보 없이도 실시될 수 있고 다른 방법, 구성요소, 재료 등에 의해서 실시될 수도 있다는 점을 이해할 것이다. 다른 경우에 있어서, 이미 잘 알려진 구조, 재료, 동작 등은 본 발명의 내용을 불명확하게 하는 것을 방지하기 위해 설명을 하지 않았다.In addition, the described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, various details of programming, software modules, user selection, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, and the like, are provided to provide a thorough understanding of embodiments of the present invention. An example is given. However, one skilled in the relevant art will appreciate that the invention may be practiced without one or more specific details and may be practiced by other methods, components, materials, and the like. In other instances, well known structures, materials, operations and the like have not been described in order to avoid obscuring the subject matter of the present invention.

도 1은 웹 페이지의 다운로드 시간을 향상시키기 위한 시스템(100)의 일 실시예를 도시하고 있다. 시스템(100)은 웹 서버 어플리케이션(104), 아카이버(106), 및 데이터 저장소(108)를 포함하는 웹 호스트(102)를 포함할 수 있다. 시스템(100)은 또한 네트워크(110)와, CPU(114), 메모리(116), 및 아카이브 이용가능 브라우저(118)를 포함하는 웹 클라이언트(112)를 더 포함할 수 있다. 시스템(100)은 다운로드 시간을 향상시키기 위하여 아카이브 이용가능 브라우저(archive enabled browser; 118)에 의해 판독가능한 웹 페이지 및 웹 페이지와 연관된 아카이브를 생성한다.1 illustrates one embodiment of a system 100 for improving download time of a web page. The system 100 may include a web host 102 that includes a web server application 104, an archiver 106, and a data store 108. The system 100 may also further include a web client 112 that includes a network 110, a CPU 114, a memory 116, and an archive enabled browser 118. System 100 generates a web page and an archive associated with the web page readable by an archive enabled browser 118 to improve download time.

일 실시예에서 웹 호스트(102)는 웹 클라이언트(112)에 웹 페이지를 제공하기 위한 하드웨어 및 소프트웨어 구성요소를 포함한다. 웹 호스트(102)는 웹 서버 어플리케이션(104), 아카이버(106) 및 데이터 저장소(108)를 포함할 수 있다. 웹 호스트(102)는 네트워크(110)를 통해 액세스할 수 있다.In one embodiment, web host 102 includes hardware and software components for presenting web pages to web client 112. The web host 102 may include a web server application 104, an archiver 106, and a data store 108. Web host 102 can be accessed via network 110.

일 실시예에서 웹 호스트(102)는 웹 서버 어플리케이션(104)을 포함한다. 웹 서버 어플리케이션(104)은 네트워크를 통해 웹 페이지를 전달하기 위해 구성된 소프트웨어를 포함한다. 웹 서버 어플리케이션(104)은 HTML 파일과 같이 승인된 표준을 따르는 웹 페이지를 전달하도록 구성될 수 있다. 표준을 따르는 다른 예는 XHTML, PHP, W3C 등을 포함한다. 웹 서버 어플리케이션에는 아파치 HTTP 서버, 마이크로소프트 인터넷 정보 서버, IBM HTTP 서버 등이 포함된다.In one embodiment, the web host 102 includes a web server application 104. Web server application 104 includes software configured to deliver web pages over a network. The web server application 104 may be configured to deliver web pages that conform to approved standards, such as HTML files. Other examples that follow the standard include XHTML, PHP, and W3C. Web server applications include Apache HTTP Server, Microsoft Internet Information Server, and IBM HTTP Server.

일 실시예에서 웹 서버 어플리케이션(104)은 웹 페이지와 연관된 아카이브를 전달하도록 더 구성될 수 있다. 일 실시예에서, 이러한 아카이브들은 웹 페이지를 렌더링하기 위해 필요한 객체를 포함한다. 아카이브는 이하에서 아카이버(106)와 관련해 더 상세하게 기술된다.In one embodiment, the web server application 104 may be further configured to deliver an archive associated with the web page. In one embodiment, these archives contain the objects needed to render the web page. The archive is described in more detail below with respect to archiver 106.

일 실시예에서, 아카이버(106)는 다운로드 시간을 향상시키기 위해 최적화된 웹 페이지를 생성한다. 아카이버(106)는 웹 페이지에서 참조되는 객체로부터 하나 이상의 아카이브를 생성할 수 있다. 아카이브는 웹 페이지에서 참조되는 복수의 객체로 각각 구성된다. 본 명세서 내에서 사용되는 "아카이브"라는 용어는 단일 전송을 위해 하나의 파일로 정렬된 또는 정렬되지 않은 상태로 패킹되는 복수의 데이터 객체들의 선택(selection)을 의미한다. 아카이브가 웹 클라이언트(112)로 전송될 때 단일 헤더를 포함할 수 있다. 반면, 각 객체를 개별적으로 전송하는 것은 각 객체에 대한 개별적인 헤더와 관련된다. 하나 이상의 아카이브 각각은 복수의 객체를 포함하고 아카이브는 아카이브 내의 각 객체에 대해 복수의 헤더들 대신에 하나의 헤더를 사용하여 전송될 수 있으므로, 전체적으로 필요한 헤더의 크기는 감소된다. 다른 실시예에서, 아카이브는 각 객체에 대해 복수의 헤더들을 포함할 수 있지만 이 헤더들은 전체 헤더의 크기를 감소시키기 위해 간소화된다.In one embodiment, the archiver 106 generates web pages that are optimized to improve download time. The archiver 106 may generate one or more archives from the objects referenced in the web page. The archive consists of a plurality of objects each referenced in a web page. As used herein, the term "archive" refers to the selection of a plurality of data objects that are either aligned or unpacked into one file for a single transfer. When the archive is sent to the web client 112 it may include a single header. On the other hand, sending each object individually involves a separate header for each object. Since each of the one or more archives contains a plurality of objects and the archive can be sent using one header instead of a plurality of headers for each object in the archive, the overall required header size is reduced. In another embodiment, the archive may include a plurality of headers for each object but these headers are simplified to reduce the size of the entire header.

웹 서버 어플리케이션(104)은 웹 페이지에서 참조되는 개별 객체 각각을 대신해서 단일 아카이브를 전달할 수 있다. 아카이브의 각 객체는 단순한 헤더만을 요청하거나 또는 개별 헤더를 더 이상 요청하지 않으므로, 각 개별 객체와 관련된 별도의 대기 시간이 없게 되어, 전체적으로 웹 페이지를 위한 다운로드 시간은 감소하게 된다.The web server application 104 may deliver a single archive on behalf of each individual object referenced in the web page. Since each object in the archive only requests a simple header or no longer requires an individual header, there is no separate latency associated with each individual object, reducing the download time for the web page as a whole.

일 실시예에서, 아카이버(106)에 의해서 생성되는 웹 페이지는 아카이브 이용가능 브라우저(118)에 의해 렌더링되는 것이 가능하다. 아카이브 이용가능 브라우저(118)는 웹 페이지와 연관된 아카이브를 수신하고 아카이브로부터 패키지가 풀린 객체(objects unpackaged from the archive)를 이용해 웹 페이지를 렌더링하는 것이 가능하다. 생성된 웹 페이지는 렌더링을 위해 아카이브 이용가능 브라우저(118)를 요청하는 특정 포맷으로 되어 있을 수 있다. 예를 들어, 생성된 웹 페이지는 HTML 파일 및 하나 이상의 관련된 아카이브를 포함할 수 있다. 아카이브 이용가능 브라우저(118)는 웹 페이지를 렌더링하기 위해 HTML 파일 및 하나 이상의 아카이브를 처리할 수 있다. 일 실시예에서, 아카이브 이용가능 브라우저(118)는 웹 페이지의 HTML 파일의 태그 및 하나 이상의 아카이브에서의 헤더를 처리하여 아카이브에서의 객체의 적절한 위치를 결정한다. 아카이브 이용가능 브라우저(118)가 어떻게 아카이브를 처리하는지는 도 6과 관련해 아래에 기술되어 있다.In one embodiment, the web page generated by the archiver 106 is capable of being rendered by the archive enabled browser 118. The archive enabled browser 118 is capable of receiving an archive associated with the web page and rendering the web page using objects unpackaged from the archive. The generated web page may be in a specific format that requests the archive enabled browser 118 for rendering. For example, the generated web page may include an HTML file and one or more associated archives. The archive enabled browser 118 may process the HTML file and one or more archives to render the web page. In one embodiment, the archive enabled browser 118 processes the tags of the HTML file of the web page and the headers in one or more archives to determine the appropriate location of the object in the archive. How the archive enabled browser 118 processes the archive is described below with respect to FIG.

일 실시예에서, 아카이버(106)는, 정적 웹 페이지(a static web page)로부터, 웹 페이지에서 참조되는 객체의 아카이브를 사용하기 위하여 최적화된 웹 페이지(이하에서는 "아카이브 최적화 웹 페이지")를 생성할 수 있다. 정적 웹 페이지는, 웹 페이지와 연관된 파라미터에 응답하여 변하지 않은 내용을 갖는 웹 페이지를 말한다. 아카이버(106)는 정적 웹 페이지와 연관된 객체를 이용해 하나 이상의 아카이브를 생성할 수 있다. 일 실시예에서, 아카이버(106)는 웹 클라이언트(112)에 의한 웹 페이지의 요청에 응답하여 정적 웹 페이지에 대한 아카이브 최적화 웹 페이지(an archive optimized web page)를 생성할 수 있다.In one embodiment, the archiver 106 generates, from a static web page, a web page (hereinafter referred to as an "archive optimized web page") that is optimized for using an archive of objects referenced in the web page. can do. A static web page refers to a web page with content that has not changed in response to a parameter associated with the web page. The archiver 106 may create one or more archives using objects associated with static web pages. In one embodiment, the archiver 106 may generate an archive optimized web page for the static web page in response to the request of the web page by the web client 112.

다른 실시예에서, 아카이버(106)는 정적 웹 페이지에 대한 아카이브 최적화 웹 페이지를 웹 클라이언(112)의 웹 페이지 요청에 따라 비동기식으로 생성할 수 있다. 다른 실시예에서, 아카이버(106)는 일단(a batch)의 정적 웹 페이지에 대하여 일단의 아카이브 최적화 웹 페이지를 생성할 수 있다. 아카이버(106)는 아카이브 최적화 웹 페이지에 대한 하나 이상의 아카이브를 생성할 수 있다. 생성된 아카이브 최적화 웹 페이지와 아카이브 최적화 웹 페이지에 대한 하나 이상의 아카이브는 웹 호스트(102)의 액세스를 위해 저장될 수 있다. 정적 웹 페이지에 대한 요청은 이전의 웹 페이지로부터의 요청을 수신하여 생성된 아카이브와 생성된 아카이브 최적화 웹 페이지의 전달이라는 결과로 이어질 수 있다. 이 실시예에서, 아카이버(106)는 웹 호스트(102)에 과중한 로드가 걸리지 않는 동안 아카이브 최적화 웹 페이지 및 아카이브를 생성할 수 있다.In another embodiment, the archiver 106 may asynchronously generate an archive optimized web page for a static web page in response to a web page request from the web client 112. In another embodiment, the archiver 106 may generate a set of archive optimized web pages for a batch of static web pages. The archiver 106 may generate one or more archives for the archive optimized web page. The generated archive optimized web page and one or more archives for the archive optimized web page may be stored for access by the web host 102. Requests for static web pages may result in the delivery of archives generated and archive optimized web pages generated by receiving requests from previous web pages. In this embodiment, the archiver 106 may generate archive optimized web pages and archives while not overloading the web host 102.

다른 실시예에서, 아카이버(106)는 동적 웹 페이지에 대한 아카이브 최적화 웹 페이지 및 아카이브를 생성할 수 있다. 동적 웹 페이지는 웹 페이지 요청에 응답하여 생성되는 웹 페이지를 의미한다. 요청 이전에는, 동적 웹 페이지가 존재하지 않을 수 있다. 이 실시예에서, 아카이버(106)는 웹 클라이언트(112)의 동적 웹 페이지에 대한 요청에 응답하여 아카이브 최적화 웹 페이지 및 아카이브를 생성할 수 있다. 예를 들어, 웹 클라이언트(112)는 데이터 저장소(108)로부터의 데이터를 포함하고 요청에 응답하여 생성되는 웹 호스트(102)로부터의 웹 페이지를 요청할 수 있다. 아카이버(106)는 데이터 저장소(108)로부터 데이터를 수신할 수 있고 웹 페이지에 대하여 아카이브 및 아카이브 최적화 웹 페이지를 생성할 수 있다. 생성된 웹 페이지와 아카이브는 이어서 웹 서버 어플리케이션(104)에 의해 웹 클라이언트(112)로 전달될 수 있다.In another embodiment, the archiver 106 may generate archive optimized web pages and archives for dynamic web pages. Dynamic web page refers to a web page generated in response to a web page request. Prior to the request, the dynamic web page may not exist. In this embodiment, the archiver 106 may generate archive optimized web pages and archives in response to requests for dynamic web pages of the web client 112. For example, web client 112 may request a web page from web host 102 that includes data from data store 108 and is generated in response to the request. The archiver 106 may receive data from the data store 108 and generate archive and archive optimized web pages for the web pages. The generated web page and archive may then be delivered by the web server application 104 to the web client 112.

다른 선택적인 실시예에서, 아카이버(106)는 웹 페이지를 렌더링하기 위해 아카이브 이용가능 브라우저(118)에 의해 요청되는 모든 파일을 포함하는 아카이브를 생성한다. 예를 들어, 아카이버(106)는 요청한 웹 페이지의 요청된 내용을 모두 포함하는 하나 이상의 아카이브를 생성하고 렌더링을 위해 아카이브 이용가능 브라우저 (118)에 하나 이상의 아카이브를 전달할 수 있다.In another alternative embodiment, the archiver 106 creates an archive that includes all of the files requested by the archive enabled browser 118 to render the web page. For example, the archiver 106 may create one or more archives containing all of the requested contents of the requested web page and deliver one or more archives to the archive enabled browser 118 for rendering.

일 실시예에서, 데이터 저장소(108)가 웹 호스트(102)에 포함될 수 있다. 데이터 저장소(108)의 데이터는 완성된 웹 페이지, 웹 페이지를 생성하기 위해 사용된 데이터, 사전 정의된 아카이브, 및 웹 페이지를 렌더링하기 위한 객체들을 포함할 수 있다. 예를 들어, 데이터 저장소(108)는 데이터 파일을 포함하는 하나 이상의 하드 디스크 드라이브를 포함할 수 있다. 다른 실시예에서, 데이터 저장소(108)는 데이터베이스를 포함한다. 또 다른 실시예에서, 데이터 저장소(108)는 플래시 메모리 장치를 포함한다.In one embodiment, data store 108 may be included in web host 102. The data in data store 108 may include a completed web page, data used to generate the web page, a predefined archive, and objects for rendering the web page. For example, data store 108 may include one or more hard disk drives that contain data files. In another embodiment, data store 108 includes a database. In yet another embodiment, the data store 108 includes a flash memory device.

일 실시예에서, 네트워크(110)는 웹 클라이언트(112)와 웹 호스트(102) 간의 데이터 전송을 위한 매체를 제공한다. 네트워크(110)는 웹 클라이언트(112)에서 웹 호스트(102)로 요청을 전송할 수 있다. 네트워크(110)는 또한 생성된 웹 페이지와 아카이브를 웹 호스트(102)에서 웹 클라이언트(112)로 전송할 수 있다. 네트워크(110)는 이러한 데이터를 전송할 수 있는 어떠한 네트워크도 될 수 있으며 이러한 예로는 인터넷이 있다. 네트워크(110)의 다른 예로는 인트라넷, 직접 네트워크 접속과 같은 것을 들 수 있다. 일 실시예에서 웹 클라이언트(112)는 표시를 위해 생성된 웹 페이지를 렌더링한다. 웹 클라이언트(112)는 CPU(114), 메모리(116), 및 아카이브 이용가능 브라우저(118)를 포함할 수 있다. 일 실시예에서, 웹 클라이언트(112)는 아카이브로부터의 객체를 이용하며, 생성된 웹 페이지를 렌더링한다.In one embodiment, network 110 provides a medium for data transmission between web client 112 and web host 102. The network 110 may send a request from the web client 112 to the web host 102. The network 110 may also send the generated web pages and archives from the web host 102 to the web client 112. Network 110 may be any network capable of transmitting such data, such as the Internet. Other examples of network 110 include intranets, direct network connections, and the like. In one embodiment, the web client 112 renders the generated web page for display. Web client 112 may include a CPU 114, a memory 116, and an archive enabled browser 118. In one embodiment, the web client 112 uses the object from the archive and renders the generated web page.

일 실시예에서, 아카이브 이용가능 브라우저(118)는 아카이브 최적화 웹 페이지와 연관된 아카이브 포함 객체를 처리하는 것이 가능한 웹 브라우저이다. 객체의 예로는 jpeg, gif, bmp 등과 같은 이미지 파일을 들 수 있고, 웹 페이지의 스크립트 파일, 웹 페이지에 이용되는 다른 객체 등을 들 수도 있다.In one embodiment, the archive enabled browser 118 is a web browser capable of processing archive containing objects associated with archive optimized web pages. Examples of the object may be an image file such as jpeg, gif, bmp, or the like, or may be a script file of a web page or another object used for a web page.

일 실시예에서, 아카이버 이용가능 브라우저(118)는 웹 호스트(102)로부터 웹 페이지를 요청한다. 웹 페이지는 아카이브에 포함될 수 있는 하나 이상의 객체들의 참조를 포함하는데, 이들을 이하에서는 보관 가능한 객체(archivable objects)로 언급하겠다. 웹 호스트(102)는, 아카이브를 참조하는 생성된 웹 페이지(즉, 아카이브 최적화 웹 페이지)를 아카이브 이용가능 브라우저(118)에 전달할 수 있다. 아카이버 이용가능 브라우저(118)는, 웹 호스트(102)로부터 아카이브를 회수하기 위해 아카이버 이용가능 브라우저(118)에 포함된 소프트웨어 명령(원래의 객체 코드 또는 부가된 플러그인 또는 확장)을 실행시킬 수 있다. 추가적으로, 아카이브 이용가능 브라우저(118)에 포함된 실행가능한 코드(원래의 객체 코드 또는 부가된 플러그인 또는 확장)는 아카이버 이용가능 브라우저(118)에 의해 실행되어, 아카이브로부터 보관 가능한 객체의 패키지를 풀고 보관 가능한 객체를 이용하여 웹 페이지를 렌더링한다.In one embodiment, the archiver enabled browser 118 requests a web page from the web host 102. Web pages contain references to one or more objects that can be included in an archive, which will be referred to as archiveable objects below. The web host 102 can deliver the generated web page (ie, archive optimized web page) that references the archive to the archive enabled browser 118. The archiver-enabled browser 118 may execute software instructions (original object code or added plug-ins or extensions) included in the archiver-enabled browser 118 to retrieve the archive from the web host 102. Additionally, executable code (original object code or added plug-ins or extensions) contained in the archive enabled browser 118 is executed by the archiver enabled browser 118 to unpack and store the archiveable objects from the archive. Render the web page using the available objects.

도 2는 아카이버(106)의 일 실시예를 도시하고 있다. 아카이버(106)는 아카이브 비용/편익 모듈(an archive cost/benefit module; 202), 선택 모듈(204), 아카이브 생성 모듈(206)을 포함할 수 있다. 아카이버(106)는 아카이브 및 개선된 다운로드 시간을 갖는 연관 웹 페이지를 생성한다.2 illustrates one embodiment of an archiver 106. The archiver 106 may include an archive cost / benefit module 202, a selection module 204, and an archive creation module 206. The archiver 106 creates an associated web page with an archive and improved download time.

일 실시예에서, 아카이브 비용/편익 모듈(202)은 아카이브 및 아카이브 최적화 웹 페이지를 생성하는데 관련된 계산 비용(computational cost)이 웹 페이지에 대한 향상된 다운로드 시간의 편익 보다 더 큰지를 결정한다. 만일 예측되는 다운로드 시간의 향상이 웹 페이지 및 아카이브를 생성시키는데 연관된 오버헤드 비용보다 더 크다면, 아카이브 비용/편익 모듈(202)은 아카이브(106)에게 아카이브 최적화 웹 페이지 및 그와 연관된 아카이브를 생성하도록 지시할 수 있다.In one embodiment, the archive cost / benefit module 202 determines whether the computational cost associated with generating the archive and archive optimized web page is greater than the benefit of improved download time for the web page. If the expected improvement in download time is greater than the overhead cost associated with generating the web page and the archive, the archive cost / benefit module 202 causes the archive 106 to generate the archive optimized web page and its associated archive. Can be directed.

특정 실시예에서, 아카이브 비용/편익 모듈(202)은 아카이브 최적화 웹 페이지 및 아카이브가 생성되어야 하는지를 결정하기 위해 휴리스틱 함수(a heuristic function)를 이용할 수 있다. 예를 들어, 아카이브 비용/편익 모듈(202)은 아카이브 최적화 웹 페이지 및 아카이브를 생성하는데 드는 계산 비용을 예측할 수 있다. 만일 예측되는 계산 비용이 임계치 보다 낮은 경우, 비용/편익 모듈(202)은 아카이버(106)에 지시하여 아카이브 최적화 웹 페이지 및 아카이브를 생성하도록 할 수 있다. 다른 실시예에서, 아카이브 비용/편익 모듈(202)은 아카이브 및 아카이브 최적화 웹 페이지와 관련된 개선된 다운로드 시간과 관련된 값을 예측할 수 있다. 아카이브 비용/편익 모듈(202)은, 예측되는 계산 비용과 예측되는 편익의 비율이 임계값 보다 작은 경우에 아카이브 최적화 웹 페이지 및 아카이브가 생성되도록 지시할 수 있다.In a particular embodiment, the archive cost / benefit module 202 may use a heuristic function to determine whether the archive optimized web page and the archive should be generated. For example, the archive cost / benefit module 202 can estimate the computational cost of creating an archive optimized web page and archive. If the predicted computational cost is lower than the threshold, the cost / benefit module 202 may instruct the archiver 106 to generate an archive optimized web page and archive. In another embodiment, the archive cost / benefit module 202 can predict values associated with improved download times associated with archives and archive optimized web pages. The archive cost / benefit module 202 may instruct an archive optimized web page and archive to be generated if the ratio of the predicted compute cost to the predicted benefit is less than a threshold.

예를 들어, 아카이브 비용/편익 모듈(202)은 생성될 아카이브의 갯수, 웹 페이지 내의 보관 가능한 객체의 수, 및 웹 페이지의 사이즈를 포함하는 입력을 가지는 모델에 기초하여 비용 값을 도출할 수 있다. 아카이브 비용/편익 모듈(202)은 더 나아가 수정되지 않은 웹 페이지를 전달하는데 요청되는 시간에 비해 아카이브를 이용하여 웹 페이지를 전달할 경우 감소되는 시간을 추산하는 편익 값(a benefit value)을 도출할 수 있다. 편익 값은, 생성될 아카이브의 갯수, 웹 페이지 내의 보관 가능한 객체의 수, 및 웹 페이지의 사이즈를 포함하는 입력을 이용하여 모델화될 수 있다. 이 예에서, 아카이브 비용/편익 모듈(202)은 비용 값과 편익 값 사이의 비율을 생성한다. 비율에 대한 임계값은 다른 시험이나 모델에 기초하여 미리 계산되거나 임의로 선택될 수 있고, 그 임계값에 따라 아카이브 최적화 웹 페이지를 생성할지 여부가 결정된다.For example, the archive cost / benefit module 202 may derive the cost value based on a model having inputs including the number of archives to be created, the number of archiveable objects in the web page, and the size of the web page. . The archive cost / benefit module 202 may further derive a benefit value that estimates the time reduced when delivering a web page using the archive compared to the time required to deliver the unmodified web page. have. The benefit value can be modeled using input including the number of archives to be created, the number of archiving objects in the web page, and the size of the web page. In this example, the archive cost / benefit module 202 generates a ratio between the cost value and the benefit value. The threshold for the ratio may be precomputed or arbitrarily selected based on other tests or models, and the threshold determines whether to generate an archive optimized web page.

일 실시예에서, 아카이브 비용/편익 모듈(202)에 의해 행해지는 결정은 페이지에 대한 요청에 응답하여 생성되어야 하는 아카이브 최적화 웹 페이지의 경우와 비동기식으로 생성되는 아카이브 최적화 웹 페이지의 경우에 대해 서로 다를 수 있다. 예를 들어, 아카이브 비용/편익 모듈(202)은 웹 호스트(102)에 낮은 부하가 걸리는 동안 정적 웹 페이지를 평가하고 웹 페이지에 아카이브가 생성되어야 한다고 결정할 수 있다. 아카이브를 생성한 후, 웹 페이지에 대한 요청은 비동기식으로 생성된 아카이브 및 아카이브 최적화 웹 페이지의 전달을 야기할 것이다. 그러나, 만일 아카이브가 생성되기 전에 웹 페이지에 대한 요청을 수신하게 되면, 요청하는 브라우저가 아카이브를 기다리는 동안에 아카이브가 생성되어야 하기 때문에 아카이브 비용/편익 모듈(202)은 다른 결론에 도달할 것이다. 동일한 아카이브 최적화 웹 페이지도, 웹 호스트(102)의 부하가 상대적으로 높은 경우이거나 웹 페이지의 요청에 응답하여 아카이브 최적화 웹 페이지를 생성하는 경우에는, 생성하기에 너무 비용이 많이 발생되는 것으로 아카이브 비용/편익 모듈(202)에 의해 결정될 수 있다.In one embodiment, the decisions made by the archive cost / benefit module 202 are different for archive optimized web pages that must be generated in response to requests for pages and for archive optimized web pages that are generated asynchronously. Can be. For example, the archive cost / benefit module 202 may evaluate a static web page during the low load on the web host 102 and determine that an archive should be created in the web page. After creating an archive, a request for a web page will result in the delivery of an asynchronously generated archive and an archive optimized web page. However, if a request for a web page is received before the archive is created, the archive cost / benefit module 202 will come to another conclusion because the archive must be created while the requesting browser is waiting for the archive. The same archive-optimized web page may be too expensive to generate if the load on the web host 102 is relatively high or if the archive-optimized web page is generated in response to a request from the web page. It may be determined by the benefit module 202.

일 실시예에서, 선택 모듈(204)은 아카이브에 포함시키기 위해 아카이브 최적화 웹 페이지에서 참조되는 객체들을 선택한다. 선택 모듈(204)은 객체가 아카이브에 포함되어야 하는지 아니면 웹 클라이언트(112)에 개별적으로 전달되어야 하는지를 선택 기준에 따라 결정한다. 선택 기준의 한 예는 객체의 사이즈인데, 예를 들어, 작은 사이즈의 객체는 큰 사이즈의 객체보다 아카이브에 포함될 경우 편익을 누릴 가능성이 더 클 수 있다. 일 실시예에서, 선택 모듈(204)은 임계값 보다 작은 사이즈를 갖는 객체를 선택할 수 있다. 예를 들어, 임계값은 3 킬로 바이트일 수 있고, 선택 모듈은 3 킬로 바이트 이하의 사이즈를 갖는 객체를 선택할 수 있다.In one embodiment, the selection module 204 selects the objects referenced in the archive optimization web page for inclusion in the archive. The selection module 204 determines according to the selection criteria whether the object should be included in the archive or delivered separately to the web client 112. One example of a selection criterion is the size of an object, for example, a smaller object may be more likely to benefit when included in an archive than a larger object. In one embodiment, the selection module 204 may select an object with a size less than the threshold. For example, the threshold may be 3 kilobytes, and the selection module may select an object having a size of 3 kilobytes or less.

일 실시예에서, 아카이브 생성 모듈(206)은 아카이브 최적화 웹 페이지와 연관된 하나 이상의 아카이브를 생성한다. 아카이브 생성 모듈(206)은 선택 모듈(204)에서 선택된 객체를 이용하여 하나 이상의 아카이브를 형성한다. 아카이브 이용가능 브라우저(118)의 실행가능 코드를 실행한 후 웹 클라이언트(112)의 요청에 응답하여 하나 이상의 아카이브가 웹 클라이언트(112)에게 전달된다.In one embodiment, the archive creation module 206 generates one or more archives associated with the archive optimization web page. The archive creation module 206 forms one or more archives using the objects selected in the selection module 204. After executing the executable code of the archive enabled browser 118, one or more archives are delivered to the web client 112 in response to the request of the web client 112.

도 3은 선택 모듈(204)의 실시예를 도시한다. 선택 모듈(204)은 문서 객체 모델(a document object model; DOM) 트리 스캐너 모듈(302), 선택 기준 모듈(304), 아카이브 사이즈 모듈(306), 객체 우선순위화 모듈(an object prioritization module; 308), 객체 우선순위화 기준 모듈(310)을 포함할 수 있다. 선택 모듈(204)은 하나 이상의 아카이브의 포함을 위해 웹 페이지의 보관 가능한 객체를 선택한다.3 illustrates an embodiment of the selection module 204. The selection module 204 includes a document object model (DOM) tree scanner module 302, a selection criteria module 304, an archive size module 306, an object prioritization module 308. ), And may include an object prioritization criteria module 310. The selection module 204 selects an archiveable object of the web page for inclusion of one or more archives.

일 실시예에서, 문서 객체 모델(DOM) 트리 스캐너 모듈(302)은 웹 페이지의 DOM 트리를 스캔한다. DOM 트리는 웹 페이지의 논리적 구조를 규정한다. 웹 페이지의 객체들은 DOM 트리의 계측적 구조에 의해서 배치되어 있는데 어떤 객체들은 다른 객체에 의존하기도 하고 모든 객체는 루트 객체에 의존한다. 문서 객체 모델(DOM) 트리 스캐너 모듈(302)로 DOM 트리를 스캔하면, 선택 모듈(204)은 어떤 객체들이 웹 페이지에 의해 참조되는지, 웹 페이지에 참조되는 객체의 종류, 객체의 사이즈, 웹 페이지에서 참조되는 객체들간의 상대적 의존도 등 웹 페이지에서의 객체에 대한 정보를 결정한다.In one embodiment, the document object model (DOM) tree scanner module 302 scans the DOM tree of the web page. The DOM tree defines the logical structure of a web page. The objects in a web page are arranged by the instrumentation of the DOM tree, some of which depend on other objects and all on the root object. When scanning the DOM tree with the Document Object Model (DOM) tree scanner module 302, the selection module 204 determines which objects are referenced by the web page, the type of object referenced in the web page, the size of the object, the web page Determines information about the objects in the web page, such as their relative dependencies between the objects referenced in the.

일 실시예에서, 선택 기준 모듈(304)은 객체가 보관 가능한 객체인지를 결정하는 하나 이상의 선택 기준을 포함한다. 보관 가능한 객체는 아카이브에 포함되어야 하는 (또는 포함되어야 하는 것으로 이미 결정된) 객체이다. 웹 페이지에 참조되는 객체들이 보관 가능한 객체들인지 선택 기준에 의해 판정된다. 선택 기준의 예에는 객체의 최대 사이즈와 객체의 종류가 포함된다. 예를 들어, 선택 기준 모듈(304)은 보관 가능한 객체가 3 킬로 바이트보다 작아야 한다는 기준을 포함할 수 있다. 다른 기준은 보관 가능한 객체는 이미지 파일이어야 한다는 것이다.In one embodiment, the selection criteria module 304 includes one or more selection criteria to determine if the object is an archiveable object. Archivable objects are objects that must be included (or already determined to be included) in the archive. It is determined by the selection criteria whether the objects referenced in the web page are archivalable objects. Examples of selection criteria include the maximum size of an object and the type of object. For example, the selection criteria module 304 may include a criterion that the archivable object should be less than 3 kilobytes. Another criterion is that the archivable object must be an image file.

일 실시예에서, 아카이브 사이즈 모듈(306)은 아카이브를 위해 타겟 사이즈를 결정한다. 아카이브 사이즈 모듈(306)은 웹 페이지의 사이즈에 대한 판단을 통해 아카이브의 타겟 사이즈를 결정할 수 있다. 일 실시예에서, 웹 페이지의 사이즈는 웹 페이지에서 참조되는 객체의 사이즈의 합을 포함한다. 다른 실시예에서, 웹 페이지의 사이즈는 웹 페이지에서 참조되는 객체들의 사이즈의 합에 웹 페이지의 HTML 파일의 사이즈를 더한 것을 포함한다.In one embodiment, archive size module 306 determines the target size for archiving. The archive size module 306 may determine the target size of the archive by determining the size of the web page. In one embodiment, the size of the web page includes the sum of the sizes of the objects referenced in the web page. In another embodiment, the size of the web page includes the sum of the sizes of the objects referenced in the web page plus the size of the HTML file of the web page.

일 실시예에서, 아카이브 사이즈 모듈(306)은 아카이브에 대한 타겟 사이즈(target size)를 웹 페이지의 작은 부분(fraction of the size of the web page)으로 정한다. 일 실시예에서, 타겟 사이즈는 웹 페이지의 사이즈의 4분의 1이다. 대부분의 통상적인 웹 브라우저는 웹 서버에 동시에 네 개까지의 접속을 열 수 있도록 설정되어 있다. 그 결과, 웹 페이지의 4분의 1 사이즈 보다 큰 아카이브의 경우, 아카이브를 생성함으로써 생기는 성능 편익(performance benefit)이 감소하는 결과를 가져 오게 된다. 다른 실시예에서, 타겟 사이즈는 웹 페이지에서 참조되는 객체의 전체적인 사이즈의 백분율로 나타낼 수 있다. 또 다른 실시예에서, 타겟 사이즈는 웹 페이지의 사이즈의 부분이고 그 부분은 비율, 백분율, 또는 생성된 아카이브의 사이즈가 웹 페이지의 사이즈 보다 작게하는 다른 형태의 측정 수단을 포함할 수 있다.In one embodiment, the archive size module 306 determines the target size for the archive as a fraction of the size of the web page. In one embodiment, the target size is one quarter of the size of the web page. Most conventional web browsers are set up to open up to four connections to the web server at the same time. As a result, for archives larger than one quarter the size of a web page, the performance benefits of creating the archive are reduced. In another embodiment, the target size may be expressed as a percentage of the overall size of the object referenced in the web page. In another embodiment, the target size is a portion of the size of the web page and the portion may comprise a ratio, percentage, or other form of measuring means such that the size of the generated archive is smaller than the size of the web page.

일 실시예에서, 객체 우선순위화 모듈(308)은 웹 페이지에서 참조되는 보관 가능한 객체의 우선순위를 결정한다. 객체의 우선순위는 객체 우선순위화 기준 모듈(210)의 객체 우선순위화 기준에 따라 결정될 수 있다. 우선순위는 객체 우선순위화 모듈(308)이 아카이브에서의 보관 가능한 객체의 순서를 결정한다. 높은 우선순위를 갖는 보관 가능한 객체들은 낮은 우선순위를 갖는 것 보다 앞선 순서를 갖는다. 예를 들어, 웹 페이지의 테이블을 규정하는 보관 가능한 객체는 테이블의 이미지를 구성하는 보관 가능한 객체보다 높은 우선순위가 배정될 수 있다. 테이블을 규정하는 보관 가능한 객체는 이미지 보다 높은 우선순위를 가지며, 테이블을 규정하는 보관 가능한 객체는 이미지 보다 앞선 순위를 갖게 된다. 보관 가능한 객체를 우선순위화하고 순서를 매기는 경우, 아카이브 최적화 웹 페이지는 패키지가 풀리지 않은 보관 가능한 객체들의 경우 패키지가 풀리지 않은 상태로 둠에 따라 더 효율적으로 렌더링될 수 있다. In one embodiment, object prioritization module 308 determines the priority of the archivable object referenced in the web page. The priority of the object may be determined according to the object prioritization criteria of the object prioritization criteria module 210. The priority determines the order of objects that can be archived by the object prioritization module 308 in the archive. Archivable objects with higher priorities have a precedence than those with lower priorities. For example, archiveable objects that define a table of a web page may be assigned a higher priority than archiveable objects that make up an image of the table. Archivable objects that define a table have a higher priority than images, and archivable objects that define a table have a higher priority than images. In order to prioritize and order archiveable objects, archive-optimized web pages can be rendered more efficiently as unpackaged archiveable objects can be left unpacked.

일 실시예에서, 객체 우선순위화 기준 모듈(310)은 아카이브 최적화 웹 페이지에서 참조되는 객체의 우선순위를 결정하는 하나 이상의 객체 우선순위화 기준을 포함한다. 객체 우선순위화 기준은 아카이브 최적화 웹 페이지에서 참조되는 보관 가능한 객체의 특성과 관련되어 있다. 예를 들어, DOM 트리에서 높은 순위를 갖는 객체를 DOM 트리에서 낮은 순위를 갖는 객체보다 먼저 오게 하는 경우 페이지를 렌더링하는 것을 향상시킬 수 있는데, 아카이브에서 제거된 객체는 그것이 의존하고 있는 객체가 이용가능해지기 전까지는 렌더링될 수 없기 때문이다. 그러므로, 일 실시예에서 보관 가능한 객체의 DOM 트리의 계층적 단계는 객체 우선순위화의 기준이 된다. 예를 들어, 상대적으로 높은 계층적 단계를 갖고 있는 보관 가능한 객체는, DOM 트리의 루트에서 상대적으로 몇 단계 떨어지지 않았다는 것을 의미하는데, 이는 상대적으로 낮은 계층적 단계를 갖고 있는 보관 가능한 객체보다 높은 우선순위를 가질 수 있다는 뜻이고, 상대적으로 낮은 계층적 단계를 갖고 있다는 것은 상대적으로 DOM 트리의 루트부터 더 많은 단계가 떨어져 있다는 의미이다. 결론적으로, 높은 우선순위를 갖는 보관 가능한 객체의 경우 아카이브 내에서 정렬되어 패키지가 더 빨리 풀리고 렌더링도 더 일찍된다.In one embodiment, object prioritization criteria module 310 includes one or more object prioritization criteria that determine the priority of objects referenced in the archive optimization web page. Object prioritization criteria relate to the characteristics of the archivable objects referenced in the Archive Optimization Web page. For example, if a higher-ranking object in the DOM tree comes before a lower-ranking object in the DOM tree, you can improve the rendering of the page, because the object removed from the archive is available to the object it depends on. It can't be rendered until it's lost. Therefore, in one embodiment the hierarchical level of the DOM tree of the archivable object is the basis of object prioritization. For example, an archiveable object with a relatively high hierarchical level means that it is relatively few steps away from the root of the DOM tree, which is higher priority than an archiveable object with a relatively low hierarchical level. In other words, having a relatively low hierarchical level means that there are more steps away from the root of the DOM tree. As a result, archival objects with higher priorities are sorted within the archive, so that packages are unpacked faster and render earlier.

다른 실시예에서, 같은 이유로 인하여 객체 우선순위화 기준은 DOM 트리의 복수의 하향 객체(descendent objects)를 포함할 수 있다. 예를 들어, 상대적으로 많은 수의 하향 객체를 가진 보관 가능한 객체의 경우 상대적으로 적은 수의 하향 객체를 가진 보관 가능한 객체보다 높은 우선순위가 할당될 수 있다. 이러한 기준으로 인한 결과는 보관 가능한 하향 객체가 아카이브로부터 제거되기 전에 전제조건이 되는 보관 가능한 객체가 이용가능하게 될 가능성이 향상된다는 것이다.In another embodiment, for the same reason, the object prioritization criterion may include a plurality of descendant objects of the DOM tree. For example, a archival object with a relatively large number of down objects may be assigned a higher priority than a archiving object with a relatively small number of down objects. The result of this criterion is that there is an increased likelihood that preservable objects become available before they can be removed from the archive.

가장 작은 객체들이 아카이브된 경우에 성능의 향상이 가장 크게 두드러진다. 따라서, 일 실시예에서, 보관 가능한 객체의 사이즈는 객체 우선순위화의 기준이다. 예를 들어, 보관 가능한 객체의 전체 사이즈가 아카이브 사이즈 모듈(306)에서 결정한 아카이브의 사이즈를 초과하는 경우 더 작은 보관 가능한 객체가 상대적으로 크기가 큰 보관 가능한 객체들 보다 높은 우선순위를 할당 받을 수 있다. 그 결과로 인하여, 보다 작은 크기의 보관 가능한 객체가 아카이브에 포함되어 아카이브의 성능을 향상시키는데 이용된다. 상대적으로 큰 크기의 보관 가능한 객체의 경우 아카이브에 위치되지 않을 수 있는데 이는 사이즈의 제약으로 인한 것이다.The performance gain is most noticeable when the smallest objects are archived. Thus, in one embodiment, the size of the archivable object is a criterion of object prioritization. For example, if the total size of the archivable object exceeds the size of the archive determined by the archive size module 306, the smaller archivable object may be assigned a higher priority than the relatively large archivable objects. . As a result, smaller archiveable objects are included in the archive and used to improve the performance of the archive. Retainable objects of relatively large size may not be placed in the archive due to size constraints.

도 4는 아카이브 최적화 웹 페이지 및 아카이브에 대한 정렬된 보관 가능한 객체(404)에 대한 DOM 트리(402)의 일 실시예를 도시하고 있다. DOM 트리(402)는 계층적 단계(406-410)에 배치된 복수의 객체들(412-422)을 포함할 수 있다. DOM 트리(402)는 아카이브 최적화 웹 페이지에 있는 객체들(412-422)간의 관계를 표현한 것이다. 단계 2(408)에 있는 객체는 단계 1(406)에 있는 객체에 의존하고 단계 3(410)은 전제조건이 되는 단계 2(408)의 객체에 의존하게 된다. 예를 들어, 단계 3(410)에 있는 객체 2(416)는 단계 2(408)에 있는 객체 1(414)에 의존하게 된다.4 illustrates one embodiment of a DOM tree 402 for an archived optimized object 404 for archive optimized web pages and archives. The DOM tree 402 may include a plurality of objects 412-422 disposed in the hierarchical steps 406-410. The DOM tree 402 represents the relationship between the objects 412-422 in the archive optimized web page. The object in step 2 408 depends on the object in step 1 406 and step 3 410 depends on the object of step 2 408, which is a prerequisite. For example, object 2 416 in step 3 410 will depend on object 1 414 in step 2 408.

일 실시예에서, 낮은 단계에 있는 객체는 전제조건이 되는 객체가 아카이브 최적화 웹 페이지에서 렌더링되기 전까지는 아카이브 최적화 웹 페이지에서 제대로 렌더링될 수 없다. 예를 들어, 객체 1(414)은 아카이브 최적화 웹 페이지에서 테이블일 수 있고 객체 2(416)는 객체 1(414)의 테이블의 이미지를 나타낼 수 있다. 객체 2(416)의 이미지는 객체 1(414)의 테이블에 있도록 규정된 것이므로, 테이블이 렌더링되기 전에 아카이브 최적화 웹 페이지에서 렌더링될 수 없다.In one embodiment, an object at a lower level may not render properly in an archive optimized web page until the prerequisite object is rendered in an archive optimized web page. For example, object 1 414 may be a table in an archive optimized web page and object 2 416 may represent an image of the table of object 1 414. Since the image of object 2 416 is defined to be in the table of object 1 414, it cannot be rendered in the archive optimized web page before the table is rendered.

이러한 의존 관계와 기타 고려사항으로 인하여, 선택 모듈(204)로부터 선택된 보관 가능한 객체는 정렬된 보관 가능한 객체(404)의 경우처럼 객체 우선순위화 모듈(308)에 의해 우선순위화되고 순서가 정해지게 된다. 예를 들어, 객체 선택 모듈(204)은 객체 1(414), 객체 3(418), 객체 4(420), 객체 5가 선택 기준 세트의 요건을 만족시키는지 결정하고 이들 객체를 보관 가능한 객체로 지정할 수 있다. 객체 선택 모듈(204)은 객체 2(416)가 선택 기준 세트의 요건을 만족시키지 않는다고 결정할 수 있는데, 가령 객체 2(416)는 임계값보다 높은 사이즈를 갖기 때문에 요건을 만족하지 않는 것이라고 결정할 수 있다.Due to these dependencies and other considerations, the archivalable objects selected from the selection module 204 are prioritized and ordered by the object prioritization module 308 as in the case of sorted archivalable objects 404. do. For example, the object selection module 204 determines whether object 1 414, object 3 418, object 4 420, and object 5 meet the requirements of the set of selection criteria and convert these objects into archival objects. Can be specified. The object selection module 204 can determine that object 2 416 does not meet the requirements of the selection criteria set, such as object 2 416 can determine that it does not meet the requirements because it has a size above the threshold. .

선택 모듈(204)은 보관 가능한 객체들을 더 정렬하여 정렬된 보관 가능한 객체(404)로 할 수 있다. 객체 우선순위화 모듈(308)은 객체 우선순위화 기준에 따라 보관 가능한 객체의 순서를 정할 수 있다. 예를 들어, 객체 1(414)과 객체 4(420)는 상대적으로 높은 우선순위가 할당될 수 있는데 그 이유는 상대적으로 DOM 트리(402)의 단계 2(408)의 높은 위치에 있기 때문이다. 객체 1(414)은 객체 4(420) 보다 높은 우선순위가 할당될 수 있는데 그 이유는 객체 1(414)은 객체 4(420) 보다 의존하는 객체들이 더 많기 때문이다. 그 결과, 객체 1(414)은 정렬된 보관 가능한 객체(404)에서 객체 4(420)보다 앞선 순서를 가질 수 있다.The selection module 204 can further arrange the archivable objects into an ordered archivable object 404. The object prioritization module 308 may order the storable objects in accordance with object prioritization criteria. For example, object 1 414 and object 4 420 may be assigned a relatively high priority because they are at a relatively high position in step 2 408 of DOM tree 402. Object 1 414 may be assigned a higher priority than object 4 420 because object 1 414 has more objects that depend on object 4 420. As a result, object 1 414 may have an order prior to object 4 420 in the sorted archivable object 404.

도 5는 아카이브 생성 모듈(206)의 일 실시예를 도시하고 있다. 아카이브 생성 모듈(206)은 객체 정렬 모듈(502), 아카이브 압축 모듈(504), 압축 휴리스틱 모듈(506)을 포함할 수 있다. 아카이브 생성 모듈(206)은 선택 모듈(204)에 의해 선택된 보관 가능한 객체들을 이용해 아카이브 파일을 생성한다. 5 illustrates one embodiment of an archive creation module 206. The archive generation module 206 may include an object alignment module 502, an archive compression module 504, and a compression heuristic module 506. The archive creation module 206 generates an archive file using the archivable objects selected by the selection module 204.

일 실시예에서, 객체 정렬 모듈(502)은 보관 가능한 객체의 우선순위에 따라 보관 가능한 객체들의 순서를 정한다. 보관 가능한 객체의 우선순위는 객체 우선순위화 기준에 따라 객체 우선순위화 모듈(308)에 의해 결정될 수 있다. 객체 정렬 모듈(502)은 생성된 아카이브에서 상대적으로 높은 우선순위를 갖는 보관 가능한 객체가 상대적으로 낮은 보관 가능한 객체 보다 앞선 순서로 정렬되도록 보관 가능한 객체를 정렬한다.In one embodiment, the object sorting module 502 orders the archivable objects according to the priority of the archivable objects. The priority of the archivable object may be determined by the object prioritization module 308 in accordance with object prioritization criteria. The object sorting module 502 sorts the archivable objects such that the relatively high priority archivable objects in the created archive are sorted in order of precedence over the relatively low archivable objects.

일 실시예에서, 아카이브 압축 모듈(504)은 생성된 아카이브를 압축시킨다. 파일 압축 모듈(504)는 생성된 아카이브를 아무 데이터 압축 방법에 의해서 압축할 수 있다. 데이터 압축 방법의 예로는 gzip, zip, LZX, 산술 코딩 등과 같은 방법을 들 수 있다.In one embodiment, archive compression module 504 compresses the created archive. The file compression module 504 can compress the created archive by any data compression method. Examples of data compression methods include methods such as gzip, zip, LZX, arithmetic coding, and the like.

아카이브 생성 모듈(206)은 생성된 아카이브가 압축되어야 하는지 여부에 대해 압축 휴리스틱 모듈(506)에 의존할 수 있다. 특정 환경 하에서, 아카이브를 압축하는 것은 비효율적일 수 있다. 예를 들어, jpeg 파일과 같은 이미지 파일의 대부분의 경우는 미리 압축된다. 만약에 아카이브를 이루는 보관 가능한 객체가 미리 압축된 이미지 파일의 높은 부분을 포함한다면, 추가적인 압축기로 아카이브를 처리하는 것은 계산 비용의 증가로 이어지며 아카이브의 사이즈의 개선은 상대적으로 크지 않은 결과를 가져올 수 있다.The archive generation module 206 may rely on the compression heuristic module 506 as to whether the generated archive should be compressed. Under certain circumstances, compressing an archive can be inefficient. For example, most cases of image files such as jpeg files are precompressed. If the archived objects that make up the archive contain a high portion of the precompressed image file, processing the archive with additional compressors leads to an increase in computational cost and an improvement in the size of the archive can result in relatively insignificant results. have.

생성된 아카이브가 압축되지 않을 수 있는 또 하나의 환경의 예는 동적 웹 페이지의 아카이브 생성 도중에 일어난다. 동적 아카이브 최적화 웹 페이지에 대한 아카이브가 생성되는 경우, 웹 호스트(102)에 서버 로드가 과중할 수 있다. 요청을 하는 웹 클라이언트(112)가 대기하는 동안 아카이브를 압축하는데 필요한 계산 비용과 시간은 아카이브 사이즈의 감소 보다 더 많을 수 있다.Another example of an environment where a created archive may not be compressed occurs during archive creation of dynamic web pages. If an archive is generated for a dynamic archive optimized web page, the server load on the web host 102 may be heavy. The computational cost and time required to compress the archive while the web client 112 making the request waits may be more than a reduction in the archive size.

압축의 비용이 아카이브의 사이즈의 감소의 편익을 능가하는 경우에 생성된 아카이브의 압축을 시도하는 것을 피하기 위해, 일 실시예에서 압축 휴리스틱 모듈(506)은 아카이브가 압축되어야 하는지를 결정한다. 예를 들어, 압축 휴리스틱 모듈(506)은 아카이브에서 이미지가 차지하는 비율을 결정할 수 있다. 아카이브의 이미지 파일이 차지하는 부분이 임계값보다 아래인 경우, 압축 휴리스틱 모듈(506)은 아카이브가 압축되어야 한다는 결정을 내릴 수 있다.In order to avoid attempting to compress the created archive if the cost of compression exceeds the benefit of a reduction in the size of the archive, in one embodiment the compression heuristic module 506 determines whether the archive should be compressed. For example, the compression heuristic module 506 can determine the proportion of the image in the archive. If the portion of the archive occupied by the image file is below the threshold, the compression heuristic module 506 may determine that the archive should be compressed.

도 6은 아카이브 이용가능 브라우저(118)의 일 실시예를 도시한 것이다. 아카이브 이용가능 브라우저(118)는 브라우저 파라미터 전송 모듈(602), 아카이브 응답 수신 모듈(604), 히스토리 전송 모듈(606), 접속 모듈(608), 아카이브 회수 모듈(610), 아카이브 언패키징 모듈(612), 및 페이지 렌더링 모듈(614)을 포함할 수 있다. 아카이브 이용 가능 브라우저(118)는 아카이브를 이용하는 아카이브 최적화 웹 페이지의 회수 및 렌더링을 행한다.6 illustrates one embodiment of an archive enabled browser 118. The archive enabled browser 118 includes a browser parameter transfer module 602, an archive response receiving module 604, a history transfer module 606, a connection module 608, an archive retrieval module 610, an archive unpacking module 612. ), And page rendering module 614. The archive enabled browser 118 retrieves and renders the archive optimized web page using the archive.

일 실시예에서, 아카이브 이용가능 브라우저(118)에 의해 회수되고 렌더링 된 아카이브 최적화 웹 페이지가 웹 페이지의 첫 사례일 수 있다. 예를 들어, 아카이브 최적화 웹 페이지는 웹 클라이언트(112)의 요청에 응답하여 동적으로 생성될 수 있다. 다른 예에서, 아카이브 이용가능 브라우저(118)에 의해 회수되고 렌더링된 아카이브 최적화 웹 페이지는 웹 디자이너의 웹 페이지 디자인에 응답하여 생성될 수 있다. 이 예에서는 아카이버(106)는 웹 디자인 소프트웨어에 의해 연결되거나 통합될 수 있다.In one embodiment, the archive optimized web page retrieved and rendered by the archive enabled browser 118 may be the first instance of a web page. For example, the archive optimized web page can be dynamically generated in response to a request of the web client 112. In another example, an archive optimized web page retrieved and rendered by the archive enabled browser 118 may be generated in response to the web designer's web page design. In this example, the archiver 106 may be connected or integrated by web design software.

다른 일 실시예에서, 아카이브 이용가능 브라우저(118)에 의해 회수되고 렌더링된 웹 페이지는 아카이브로의 참조를 포함하지 않는 기존의 웹 페이지(an existing web page)일 수 있다. 이 실시예에서, 기존의 웹 페이지는 아카이브로의 참조를 포함하기 위해 다시 작성될 수 있다. 예를 들어, 아카이브 생성 모듈(206)은 보관 가능한 객체와 연관된 아카이브 최적화 웹 페이지를 이용하여 정적 웹 페이지에 접근해서 아카이브를 생성할 수 있다. 다른 예에서는, 아카이브 생성 모듈(206)은 아카이브로 참조되지 않는 동적으로 생성된 웹 페이지 상에서 동작할 수 있다. 예를 들어, 동적으로 생성된 웹 페이지는 아카이브 최적화 웹 페이지를 생성하기 위해 재작성되는데 이 웹 페이지는 아카이브로부터의 보관 가능한 객체를 이용하여 렌더링될 수 있다.In another embodiment, the web page retrieved and rendered by the archive enabled browser 118 may be an existing web page that does not include a reference to the archive. In this embodiment, the existing web page can be rewritten to include a reference to the archive. For example, the archive creation module 206 can access the static web page and generate the archive using an archive optimized web page associated with the archiving object. In another example, archive generation module 206 may operate on a dynamically generated web page that is not referenced by an archive. For example, a dynamically generated web page is rewritten to generate an archive optimized web page that can be rendered using archival objects from the archive.

아카이브 최적화 웹 페이지는 아카이브에 HTML 태그가 연결된 보관 가능한 객체를 포함할 수 있다. 예를 들어, 만약에 아카이브의 이름이 "html.archive"이고 아카이브의 보관 가능한 객체의 이름이 "obj1"이라면 HTML 태그에 있는 URI(uniform resource identifier)는 "html.archive/obj1"일 수 있다.An archive optimization web page can contain archiveable objects with HTML tags attached to the archive. For example, if the name of the archive is "html.archive" and the name of the archived object of the archive is "obj1", then the uniform resource identifier (URI) in the HTML tag may be "html.archive / obj1".

일 실시예에서, 브라우저 파라미터 전송 모듈(602)은 아카이브 이용가능 브라우저의 능력과 관련된 하나 이상의 브라우저 파라미터를 웹 서버(104)에 전송한다. 하나 이상의 브라우저 파라미터는 표시자를 포함할 수 있다. 일 실시예에서, 브라우저 파라미터 전송 모듈(602)은 아카이브 이용가능 브라우저(118)가 아카이브를 포함하는 아카이브 최적화 웹 페이지를 수신하고/하거나 렌더링할 수 있음을 지시하는 표시자를 포함하는 브라우저 파라미터를 전송한다. 예를 들어, 브라우저 파라미터 전송 모듈(602)은 아카이브 이용가능 브라우저(118)가 아카이브를 이용해 페이지를 렌더링하는 것이 가능하다는 것을 명시적으로 표시하는 표시자를 전송할 수 있다. 다른 예를 들면, 브라우저 파라미터 전송 모듈(602)은 아카이브 이용가능 브라우저(118)의 버전 번호를 전송할 수 있다. 웹 서버(104)는 아카이브를 포함하는 아카이브 최적화 웹 페이지를 렌더링하는 것이 가능한 것으로 알려진 브라우저의 리스트를 상기 버전 번호와 비교하고 그 비교의 결과로 아카이브 이용가능 브라우저의 능력을 결정할 수 있다.In one embodiment, the browser parameter transfer module 602 sends one or more browser parameters related to the capabilities of the archive enabled browser to the web server 104. One or more browser parameters may include an indicator. In one embodiment, the browser parameter transfer module 602 sends a browser parameter that includes an indicator indicating that the archive enabled browser 118 can receive and / or render an archive optimized web page that includes the archive. . For example, the browser parameter transfer module 602 may send an indicator that explicitly indicates that the archive enabled browser 118 is able to render the page using the archive. For another example, the browser parameter transfer module 602 may send the version number of the archive enabled browser 118. The web server 104 may compare the list of browsers known to be capable of rendering an archive optimized web page including the archive with the version number and determine the capabilities of the archive enabled browser as a result of the comparison.

다른 일 실시예에서, 브라우저 파라미터 전송 모듈(602)은 표시자를 포함하는 브라우저 파라미터를 전송하는데, 이 표시자는 아카이브 이용가능 브라우저(118)에 의해 이용 가능한 접속의 수를 지시한다. 일 실시예를 예로 들면, 아카이브 이용가능 브라우저(118)는 호스트 컴퓨터 및/또는 운영 체제가 명령으로 정한 이용 가능 접속의 수를 갖고 있다. 아카이브 이용가능 브라우저(118)는 한 예에서 최대한 네 개의 접속 수를 갖는 것이 허용될 수 있다. 브라우저 파라미터 전송 모듈(602)은 웹 서버(104)에 아카이브 이용 가능 브라우저(118)가 네 개의 접속 수가 이용 가능하다고 지시하는 브라우저 파라미터를 전송할 수 있다.In another embodiment, browser parameter transfer module 602 sends a browser parameter comprising an indicator, the indicator indicating the number of connections available by the archive enabled browser 118. As an example, the archive-enabled browser 118 has a number of available connections as commanded by the host computer and / or operating system. The archive enabled browser 118 may be allowed to have a maximum of four connections in one example. The browser parameter transfer module 602 may send a browser parameter to the web server 104 indicating that the archive enabled browser 118 indicates that four connections are available.

일 실시예에서, 아카이브 응답 수신 모듈(604)은 웹 서버(104)로부터 아카이브 응답 파라미터를 수신한다. 일 실시예에서, 아카이브 응답 파라미터는 표시자를 포함한다. 표시자는 웹 서버(104)가 아카이브를 전달하는 것이 가능하다는 것을 표시할 수 있다. 일 실시예에서, 웹 서버(104)는 아카이브 이용가능 브라우저(118)가 아카이브를 수신하는 것이 가능하다는 결정에 응답하여 아카이브 응답 파라미터를 전송한다. 다른 일 실시예에서, 웹 서버(104)는 웹 페이지를 요청하는 웹 브라우저의 종류와 관계없이 아카이브 응답 파라미터를 전송한다.In one embodiment, the archive response receiving module 604 receives an archive response parameter from the web server 104. In one embodiment, the archive response parameter includes an indicator. The indicator may indicate that web server 104 is capable of delivering the archive. In one embodiment, the web server 104 sends the archive response parameter in response to determining that the archive enabled browser 118 is capable of receiving the archive. In another embodiment, web server 104 transmits an archive response parameter regardless of the type of web browser requesting the web page.

일 실시예에서, 히스토리 전송 모듈(606)은 웹 서버(104)에 아카이브 이용 가능 웹 브라우저(118)의 히스토리를 전송한다. 일 실시예에서, 히스토리는 아카이브 이용 가능 브라우저가 웹 서버(104) 및/또는 다른 웹 서버들과의 이전 거래를 통해 보유하고 있는 객체들의 리스트를 포함한다. 보유된 객체는 메모리 같은 휘발성 저장소 캐시 또는 하드 디스크 드라이브 같은 비휘발성 저장소 캐시에 저장될 수 있다. 일 실시예에서, 히스토리 전송 모듈(606)은 웹 서버(104)가 아카이브를 전달하는 것이 가능하다는 것을 표시하는 아카이브 응답 파라미터를 수신하는 것에 응답하여 히스토리를 전송한다.In one embodiment, history transfer module 606 sends a history of archive enabled web browser 118 to web server 104. In one embodiment, the history includes a list of objects that the archive enabled browser holds through previous transactions with the web server 104 and / or other web servers. The retained object may be stored in a volatile storage cache such as memory or a nonvolatile storage cache such as a hard disk drive. In one embodiment, history transfer module 606 transmits the history in response to receiving the archive response parameter indicating that web server 104 is capable of delivering the archive.

일 실시예에서, 웹 서버(104)는 히스토리를 이용하여 요청된 웹 페이지에 대한 캐시된 버전의 객체들을 이용하는 아카이브 최적화 웹 페이지 및 아카이브를 생성한다. 예를 들어, 히스토리는 아카이브 최적화 웹 페이지에 의해 요청된 여러 개의 객체들이 이미 아카이브 이용가능 브라우저(118)의 캐시에 존재하는 것을 표시할 수 있다. 아카이버(106)는 캐시된 객체를 포함하지 않는 아카이브를 생성할 수 있다. 웹 서버(104)는 아카이브 이용가능 브라우저(118)의 캐시의 객체를 이용하여 아카이브 최적화 웹 페이지를 렌더링하도록 아카이브 이용가능 브라우저(118)에 지시하는 아카이브 최적화 웹 페이지를 전송할 수 있다.In one embodiment, web server 104 uses history to generate archive optimized web pages and archives that utilize cached versions of objects for the requested web page. For example, the history may indicate that several objects requested by the archive optimization web page already exist in the cache of the archive enabled browser 118. The archiver 106 may create an archive that does not contain cached objects. The web server 104 may send an archive optimized web page that instructs the archive enabled browser 118 to render the archive optimized web page using an object in the cache of the archive enabled browser 118.

일 실시예에서, 접속 모듈(608)은 아카이브 이용가능 브라우저(118)와 웹 서버(104) 사이에 하나 이상의 접속을 오픈한다(open). 일 실시예에서, 접속 모듈(608)은 아카이브 이용 가능 브라우저(118)가 이용가능한 접속의 수와 동일한 수의 접속을 오픈한다. 다른 실시예에서, 접속 모듈(608)은 웹 서버(104)에서 사용하기 위해 이용가능한 접속의 수와 동일한 수의 접속을 오픈한다. 다른 실시예에서, 접속 모듈(608)은 웹 서버(104)와 아카이브 이용가능 브라우저(118) 사이에서 협의된 수의 접속을 오픈한다.In one embodiment, the connection module 608 opens one or more connections between the archive enabled browser 118 and the web server 104. In one embodiment, the connection module 608 opens the same number of connections as the number of connections available for the archive enabled browser 118. In another embodiment, the connection module 608 opens the same number of connections as the number of connections available for use in the web server 104. In another embodiment, the connection module 608 opens a negotiated number of connections between the web server 104 and the archive enabled browser 118.

예를 들어, 요청된 아카이브 최적화 웹 페이지에는 아카이브 이용가능 브라우저(118)와 웹 서버(104)가 이용가능한 접속의 수 보다 작은 수의 아카이브가 포함될 수 있다. 이 예에서 접속 모듈(608)은 아카이브의 수와 동일한 수의 접속 수를 설정할 수 있다.For example, the requested archive optimized web page may include a smaller number of archives than the number of connections available to the archive enabled browser 118 and web server 104. In this example, the connection module 608 may set the same number of connections as the number of archives.

일 실시예에서, 아카이브 회수 모듈(610)은 아카이브를 이용 가능한 하나의 접속으로부터 회수한다. 아카이브 회수 모듈(610)은 웹 클라이언트(112)로 하여금 웹 호스트(102)로부터의 아카이브 최적화 웹 페이지에 대한 아카이브를 회수하도록 하게 할 수 있다. 일단 회수되면, 웹 클라이언트(112)는 아카이브를 클라이언트 장치의 일시적인 또는 지속적인 메모리에 저장한다.In one embodiment, archive retrieval module 610 retrieves an archive from one available connection. The archive retrieval module 610 can cause the web client 112 to retrieve an archive for an archive optimized web page from the web host 102. Once retrieved, the web client 112 stores the archive in temporary or persistent memory on the client device.

일 실시예에서, 아카이브 언패키징 모듈(612)은 아카이브의 패키지를 푼다. 아카이브 언패키징 모듈(612)은 웹 클라이언트(112)가 회수된 아카이브의 위치를 찾아내고 패키지를 풀게끔 하는 명령을 포함할 수 있다. 일 실시예에서, 아카이브의 패키지를 푸는 것은 아카이브에서 보관 가능한 객체를 추출하는 것을 포함한다. 아카이브 언패키징 모듈(612)은 보관 가능한 객체를 일시적인 또는 지속적인 메모리에 저장한다.In one embodiment, the archive unpackaging module 612 unpacks the archive. The archive unpackaging module 612 may include instructions to cause the web client 112 to locate the retrieved archive and unpack the package. In one embodiment, unpacking the archive includes extracting archivalable objects from the archive. The archive unpackaging module 612 stores the archivable object in temporary or persistent memory.

보관 가능한 객체는 순서에 따라서 추출될 수 있는데, 이는 보관 가능한 객체가 객체 우선순위화 모듈(308)에 의해서 결정된 순서에 의해서 추출되거나 객체 정렬 모듈(502)에서 결정된 순서에 따라 추출됨을 의미한다. 일 실시예에서, 아카이브는 아카이브 생성 모듈(206)에 의해서 압축된다. 아카이브 언패키징 모듈(612)은 아카이브에 있는 아카이브나 객체의 압축을 풀 수 있다. Archivable objects may be extracted in an order, which means that the archivable objects are extracted in the order determined by the object prioritization module 308 or in the order determined in the object sorting module 502. In one embodiment, the archive is compressed by the archive creation module 206. The archive unpackaging module 612 can decompress an archive or object in the archive.

일 실시예에서, 페이지 렌더링 모듈(614)은 아카이브로부터 추출된 보관 가능한 객체를 이용하여 아카이브 최적화 웹 페이지를 렌더링한다. 페이지 렌더링 모듈(614)은 아카이브 이용가능 브라우저(118)로 하여금 아카이브로부터 추출한 보관 가능한 객체를 이용해 아카이브 최적화 웹 페이지를 렌더링하도록 하는 명령을 포함할 수 있다.In one embodiment, page rendering module 614 renders an archive optimized web page using the archivable objects extracted from the archive. The page rendering module 614 may include instructions to cause the archive enabled browser 118 to render an archive optimized web page using the archiveable objects extracted from the archive.

도 7은 본 발명에 따른 웹 서버(104)의 일 실시예를 도시한다. 웹 서버(104)는 브라우저 파라미터 수신 모듈(702), 아카이브 응답 전송 모듈(704), 히스토리 수신 모듈(706), 접속 모듈(708), 아카이브 전달 모듈(710)을 포함할 수 있다. 웹 서버(104)는 웹 페이지에 대한 요청을 수신하며 하나 이상의 아카이브를 이용해 웹 페이지를 전달한다.7 illustrates one embodiment of a web server 104 in accordance with the present invention. The web server 104 may include a browser parameter receiving module 702, an archive response sending module 704, a history receiving module 706, a connection module 708, an archive delivery module 710. The web server 104 receives a request for a web page and delivers the web page using one or more archives.

일 실시예에서, 브라우저 파라미터 수신 모듈(702)은 아카이브 이용가능 브라우저(118)로부터 브라우저 파라미터를 수신하는데 그 브라우저 파라미터는 아카이브 이용가능 브라우저(118)의 능력을 표시한다. 브라우저 파라미터 수신 모듈(702)로부터 수신한 브라우저 파라미터의 특성은 도 6에서 브라우저 파라미터 전송 모듈(602)와 관련하여 설명한 브라우저 파라미터와 실질적으로 동일하다. 브라우저 파라미터를 수신한 것은 아카이버 이용가능 브라우저(118)가 아카이브를 수신하는 것이 가능하다는 것을 표시하고/표시하거나 아카이브 이용가능 브라우저(118)가 이용가능한 접속의 수를 표시하는 것이 가능하다는 것을 표시할 수 있다.In one embodiment, the browser parameter receiving module 702 receives browser parameters from an archive enabled browser 118 that indicates the capabilities of the archive enabled browser 118. The characteristics of the browser parameters received from the browser parameter receiving module 702 are substantially the same as the browser parameters described with respect to the browser parameter sending module 602 in FIG. 6. Receiving a browser parameter may indicate that the archive enabled browser 118 is capable of receiving an archive and / or may indicate that it is possible for the archive enabled browser 118 to indicate the number of available connections. have.

일 실시예에서, 아카이브 응답 전송 모듈(704)은 아카이브 이용가능 브라우저(118)로 아카이브 응답을 전송한다. 아카이브 응답 파라미터는 웹 서버(104)가 아카이브를 전달할 수 있음을 표시하는 표시자를 포함한다. 일 실시예에서, 아카이브 응답 파라미터는 웹 서버(104)가 이용 가능한 접속의 수를 표시하는 표시자를 포함할 수 있다. 일 실시예에서, 웹 서버(104)는 아카이브 이용가능 브라우저(118)가 아카이브를 수신하는 것이 가능하다고 결정하는 것에 응답하여 아카이브 응답 파라미터를 전송한다. 또 다른 일 실시예에서, 웹 서버(104)는 웹 페이지를 요청하는 웹 브라우저의 종류에 상관 없이 아카이브 응답 파라미터를 전송한다.In one embodiment, the archive response sending module 704 sends the archive response to the archive enabled browser 118. The archive response parameter includes an indicator that indicates that the web server 104 can deliver the archive. In one embodiment, the archive response parameter may include an indicator indicating the number of connections available to the web server 104. In one embodiment, the web server 104 sends the archive response parameter in response to determining that the archive enabled browser 118 is capable of receiving the archive. In another embodiment, the web server 104 sends the archive response parameter regardless of the type of web browser requesting the web page.

일 실시예에서, 히스토리 수신 모듈(706)은 아카이브 이용가능 브라우저(118)로부터 히스토리를 수신한다. 일 실시예에서, 히스토리는 도 6과 관련하여 실질적으로 상기에 설명되어 있다. 웹 서버(104)는 히스토리를 이용해 어떤 객체들이 아카이브 이용가능 브라우저(118)로 전송되어야 하고 어떤 객체들이 아카이브 이용가능 브라우저(118)의 캐시로부터 참조되는 것인지를 결정할 수 있다. 예를 들어, 아카이브(106)는 히스토리를 이용해 하나의 아카이브를 생성하거나 또는 히스토리에 있는 하나 이상의 객체를 배제하는 아카이브를 생성할 수 있는데, 이로 인하여 아카이브 이용가능 브라우저(118)로 전송되는 전체 객체의 사이즈를 감소시킬 수 있고 이는 웹 페이지의 로딩 시간을 감소시키는 결과를 낳는다.In one embodiment, history receiving module 706 receives history from archive enabled browser 118. In one embodiment, the history is substantially described above with respect to FIG. 6. The web server 104 can use history to determine which objects should be sent to the archive enabled browser 118 and which objects are referenced from the cache of the archive enabled browser 118. For example, the archive 106 can use history to create one archive or archive to exclude one or more objects in the history, thereby creating an archive of the entire object sent to the archive enabled browser 118. The size can be reduced, which results in reducing the loading time of the web page.

일 실시예에서, 접속 모듈(708)은 아카이브 이용가능 브라우저(118)와 웹 서버(104) 사이에 하나 이상의 접속을 오픈한다. 일 실시예에서, 접속 모듈(708)은 아카이브 이용가능 브라우저(118)가 이용가능한 접속 수와 동일한 수의 접속을 오픈한다. 다른 실시예에서, 접속 모듈(708)은 웹 서버(104)가 이용 가능한 접속의 수와 동일한 수의 접속 수를 오픈한다. 다른 실시예에서, 접속 모듈(708)은 웹 서버(104)와 아카이브 이용가능 브라우저(118) 사이에서 협의된 수의 접속을 오픈한다. 예를 들어, 요청된 웹 페이지는 웹 서버(104)와 아카이브 이용가능 브라우저(118)가 이용가능한 접속의 수 보다 작은 아카이브의 수를 포함할 수 있다. 이 예에서, 접속 모듈(708)은 아카이브의 수와 동일한 수의 접속 수를 설정할 수 있다.In one embodiment, the connection module 708 opens one or more connections between the archive enabled browser 118 and the web server 104. In one embodiment, the connection module 708 opens the same number of connections as the archive enabled browser 118 is available. In another embodiment, the connection module 708 opens the same number of connections as the number of connections available to the web server 104. In another embodiment, the connection module 708 opens a negotiated number of connections between the web server 104 and the archive enabled browser 118. For example, the requested web page may include a number of archives less than the number of connections available to web server 104 and archive-enabled browser 118. In this example, the connection module 708 can set the same number of connections as the number of archives.

일 실시예에서, 아카이브 전달 모듈(710)은 하나의 이용가능 접속을 통해 아카이브를 전송한다. 아카이브 전달 모듈(710)은 웹 서버(104)가 아카이브 최적화 웹 페이지에 대한 아카이브를 아카이브 이용가능 브라우저(118)로 전송하게 할 수 있다.In one embodiment, the archive delivery module 710 transmits the archive via one available connection. The archive delivery module 710 can cause the web server 104 to send an archive for the archive optimized web page to the archive enabled browser 118.

후술될 개략적인 흐름도는 일반적으로 논리 흐름도로서 도시되어 있다. 설명된 순서와 표시된(labeled) 단계들은 본 방법의 일 실시예를 나타낸다. 예시된 방법의 하나 이상의 단계 또는 부분과 동일한 기능, 논리, 또는 효과를 갖는 다른 단계와 방법도 생각할 수 있다. 추가적으로, 방법의 논리적 단계를 설명하기 위해 제공된 포맷과 심볼은 방법의 범위를 제한하기 위한 것이 아니다. 비록 다양한 화살표 종류와 선 종류가 흐름도에서 사용되긴 하였지만, 그에 상응하는 방법의 범위를 제한하기 위한 것은 아니다. 실제로, 어떤 화살표 또는 다른 연결자(connectors)는 방법의 논리적 흐름을 지시하기 위해서만 사용될 수 있다. 예를 들어, 화살표는 묘사된 방법의 열거된 단계 사이의 대기 또는 명시되지 않은 모니터링 주기의 지속 시간을 표시할 수도 있다. 추가적으로, 특정 방법이 행해지는 순서는 도시된 대응 단계의 순서를 반드시 엄격하게 지킬 수도 있고 안 지킬 수도 있다.A schematic flow diagram to be described below is shown generally as a logic flow diagram. The described order and labeled steps represent one embodiment of the method. Other steps and methods may be envisioned that have the same function, logic, or effect as one or more steps or portions of the illustrated method. In addition, the formats and symbols provided to describe the logical steps of the method are not intended to limit the scope of the method. Although various arrow types and line types are used in the flowcharts, they are not intended to limit the scope of the corresponding methods. In practice, some arrows or other connectors can only be used to indicate the logical flow of the method. For example, an arrow may indicate the duration of waiting or unspecified monitoring cycles between the listed steps of the depicted method. In addition, the order in which the particular methods are performed may or may not strictly follow the order of the corresponding steps shown.

도 8은 웹 페이지의 다운로드 시간을 개선하기 위한 방법(800)의 여러 단계를 도시하는 흐름도이다. 특정 일 실시예에서, 방법(800)은 도 1-7의 시스템과 장치에서 사용된 방법과 동일하며, 도면을 참조하여 논의될 것이다. 그럼에도 불구하고, 상기의 방법(800)은 독립적으로 수행될 수 있으며 위의 도면과 관련된 실시예들에만 국한되어 상기 방법이 제한되게 하는 의도는 아니다.8 is a flow diagram illustrating various steps of a method 800 for improving download time of a web page. In one particular embodiment, the method 800 is the same as the method used in the systems and apparatus of FIGS. 1-7 and will be discussed with reference to the drawings. Nevertheless, the method 800 above may be performed independently and is not intended to be limited to the embodiments related to the above figures and to limit the method.

도 8에서 도시된 바와 같이, 상기 방법(800)은 웹 페이지에 대한 아카이브를 생성하는데 관련된 계산 비용을 계산한다(802). 일 실시예에서, 계산 비용은 아카이브 내에 있는 보관 가능한 객체에 접근할 수 있도록 설정된 아카이브 최적화 웹 페이지와 아카이브를 생성시키기 위해 요청되는 리소스들의 측정이다. 선택적인 실시예에서, 계산된(802) 계산 비용은 아카이브와 아카이브 최적화 웹 페이지를 생성해내기 위해서 요청되는 리소스의 측정과 아카이브를 이용해 웹 페이지를 다운로드하는 시간의 향상의 측정 사이의 비율일 수 있다. 다른 실시예에서, 계산된(802) 계산 비용은 웹 호스트(102)에 있는 부하, 웹 클라이언트(112)에 이미 웹 페이지를 요청하였는지에 따라, 웹 페이지가 정적 웹 페이지인가의 파라미터에 응답하여 변할 수 있다.As shown in FIG. 8, the method 800 calculates 802 a computational cost associated with creating an archive for a web page. In one embodiment, the computational cost is a measure of the archive optimized web pages and resources required to create the archive, which are configured to access archiveable objects in the archive. In an alternative embodiment, the calculated 802 computational cost may be a ratio between the measurement of the resource required to generate the archive and the archive optimized web page and the measurement of the improvement in the time to download the web page using the archive. . In another embodiment, the calculated 802 computational cost may vary in response to the load on the web host 102, whether the web client 112 has already requested the web page, and the parameter that the web page is a static web page. have.

아카이브 비용/편익 모듈(202)은 일 실시예에서 웹 페이지를 위해 아카이브를 생성하는 것이 그럴 만한 가치가 있는지 결정한다(804). 결정(804)은 계산 비용과 임계값에 근거해 계산할 수 있다(802). 예를 들어, 아카이브 비용/편익 모듈(202)은 계산 비용과 성능 편익의 비율이 임계값보다 낮은 경우에 아카이브를 생성하는 것이 가치가 있다고 결정할 수 있다.The archive cost / benefit module 202 determines 804 whether creating an archive for a web page is worth it in one embodiment. Decision 804 may calculate 802 based on the computational cost and the threshold. For example, the archive cost / benefit module 202 may determine that it is worth creating an archive if the ratio of computational cost to performance benefit is below the threshold.

상기 방법(800)은 결정(804)한 값이 부정적일 경우 일반적인 웹 페이지를 선택한다(806). 일반적인 웹 페이지는 아카이브로의 참조가 없는 웹 페이지를 말한다. 일 실시예에서, 상기 방법(800)은 일반적인 웹 페이지를 생성할 수 있다. 선택적인 실시예에서, 상기 방법(800)은 기존의 일반적인 웹 페이지를 선택할 수 있다(806).The method 800 selects 806 a general web page if the value determined 804 is negative. A typical web page is a web page without a reference to the archive. In one embodiment, the method 800 may generate a generic web page. In an alternative embodiment, the method 800 may select an existing general web page (806).

그 다음에, 선택 모듈(204)은 웹 페이지를 나타내는 DOM 트리를 스캔해서(808) 아카이브 비용/ 편익 모듈(202)이 아카이브를 생성해야 하는지를 결정한다(804). DOM 트리는 어떠한 객체들이 웹 페이지에 있는지를 결정하기 위해 스캔되며(808) 그 밖에 다른 객체에 대한 파라미터, 가령 객체의 사이즈, 객체의 계층적 단계, 및 객체간의 의존도도 스캔된다.The selection module 204 then scans 808 the DOM tree representing the web page to determine if the archive cost / benefit module 202 should generate the archive (804). The DOM tree is scanned to determine which objects are in the web page (808) and other parameters for other objects, such as the size of the object, the hierarchical levels of the objects, and the dependencies between the objects are also scanned.

그 다음에 선택 모듈(204)은 객체를 보관 가능한 객체로 선택한다(810). 객체의 사이즈나 종류 같은 객체 선택 기준을 충족시키는 경우 그에 응답하여 보관 가능한 객체로서 선택된다(810). 예를 들어, 선택 모듈(204)은 객체의 사이즈가 3 키로바이트 보다 작은 경우에 보관 가능한 객체로서 객체를 선택한다(810).The selection module 204 then selects 810 the object as an archivable object. If the object selection criteria such as the size or type of the object is satisfied, the object is selected as a archival object in response (810). For example, the selection module 204 selects the object as an object that can be stored if the size of the object is less than 3 kilobytes (810).

객체 우선순위화 모듈(308)은 선택 모듈(204)에 의해 선택된(810) 보관 가능한 객체의 우선순위를 정한다(812). 보관 가능한 객체의 우선순위화(812)는 DOM 트리에서의 상대적 깊이, 의존적인 객체의 수 등 객체 우선순위화 기준에 기초한다. 예를 들어, 한 객체는 다른 객체보다 높은 우선순위를 가질 수 있는데 그것은 DOM 트리에서 의존적인 객체를 더 많이 갖고 있기 때문이다.The object prioritization module 308 prioritizes 812 the archivable object selected 810 by the selection module 204. Archivable object prioritization 812 is based on object prioritization criteria, such as the relative depth in the DOM tree, the number of dependent objects, and the like. For example, one object can have a higher priority than another because it has more dependent objects in the DOM tree.

그 다음에 아카이브 생성 모듈(206)은 보관 가능한 객체를 이용하여 아카이브를 생성한다(814). 생성된(814) 아카이브에 있는 보관 가능한 객체들은 우선순위화(812) 과정에서 할당된 객체의 우선순위에 따라 생성된 아카이브 내에서 정렬될 수 있다. 그 결과, 높은 우선순위를 갖는 보관 가능한 객체는 낮은 우선순위를 갖는 보관 가능한 객체 보다 이전에 아카이브에서 나타날 것이다.The archive creation module 206 then generates 814 an archive using the archivable object. Archivable objects in the created 814 archive may be sorted in the created archive according to the priority of the objects assigned in the prioritization 812. As a result, archival objects with higher priorities will appear in the archives earlier than archival objects with lower priorities.

압축 휴리스틱 모듈(506)은 일 실시예에서 아카이브를 위해 압축하는 것이 가치가 있는지를 결정할 수 있다(815). 아카이브에 있는 파일의 종류, 아카이브에 있는 파일의 수, 아카이브의 사이즈, 그리고 다른 요소들은 도 5와 관련해 설명된 것과 같은 결정(815)에 영향을 줄 수 있다. 방법(800)은 아카이브를 위해 압축하는 것이 가치가 없다고 결정되는(815) 경우에 압축되지 않은 아카이브를 선택한다(818).The compression heuristic module 506 may, in one embodiment, determine whether it is worth compressing for the archive. The type of files in the archive, the number of files in the archive, the size of the archive, and other factors can affect the decision 815 as described with respect to FIG. 5. The method 800 selects 818 the uncompressed archive if it is determined 815 that it is not worth compressing for the archive.

일 실시예에서, 아카이브 압축 모듈(504)은 아카이브를 위해 압축하는 것이 가치가 있다고 결정하는(815) 것에 응답하여 생성된 아카이브를 압축한다(816). 아카이브의 압축(816)은 gzip, zip, LZX, 산술 코딩, 또는 이와 유사한 임의의 종류의 압축 방법을 사용할 수 있다. 아카이브의 압축(814)은 파일이 압축으로 인하여 편익을 얻을 것이라는 결정에 응답하여 행하여질 수 있다. 예를 들어, 방법(800)은 보관 가능한 객체가 이미 높은 비율의 압축된 이미지 파일을 포함하고 있고, 따라서 아카이브가 압축되지 않아야 한다고 결정할 수 있다.In one embodiment, the archive compression module 504 compresses 816 the generated archive in response to determining 815 that it is worth compressing for the archive. Compression 816 of the archive may use gzip, zip, LZX, arithmetic coding, or any similar type of compression method. Compression 814 of the archive may be done in response to determining that the file will benefit from compression. For example, the method 800 may determine that the archivable object already contains a high percentage of compressed image files, and therefore the archive should not be compressed.

도 9는 아카이브 이용가능 웹 브라우저(118)에 있는 웹 페이지의 다운로드 시간을 개선하기 위한 방법(900)의 여러 단계를 나타내는 흐름도이다. 일 실시예에서, 방법(900)은 도 1-7의 시스템과 장치에서 사용된 방법이며, 이들 도면과 관련하여 참조될 것이다. 그럼에도 불구하고, 방법(900)은 그 방법이 독립적으로 수행될 수 있으며 상기 도면과 관련하여 설명된 실시예에 반드시 국한되는 것은 아니다.9 is a flow diagram illustrating various steps of a method 900 for improving download time of a web page in an archive enabled web browser 118. In one embodiment, the method 900 is a method used in the systems and apparatus of FIGS. 1-7 and will be referenced in connection with these figures. Nevertheless, the method 900 may be performed independently and is not necessarily limited to the embodiments described with reference to the drawings.

도 9에서 도시된 바와 같이, 방법(900)은 아카이브 이용가능 브라우저(118)가 이용가능한 접속의 수를 결정한다(902). 이용가능한 접속의 수는 아카이브 이용가능 브라우저(118), 웹 클라이언트(112), 네트워크(110), 그리고 다른 고려사항에 의존할 수 있다.As shown in FIG. 9, the method 900 determines 902 the number of connections available for the archive enabled browser 118. The number of available connections may depend on the archive enabled browser 118, the web client 112, the network 110, and other considerations.

아카이브 이용가능 브라우저(118)는 웹 페이지를 요청한다(904). 일 실시예에서, 웹 페이지를 요청하는(904) 것은 네트워크(110)를 통해 웹 호스트(102)에 요청을 전송하는 것을 포함한다. 예를 들어, 아카이브 이용가능 브라우저(118)는 웹 페이지를 요청하기(904) 위해 TCP/IP 네트워크를 통해 HTTP 요청을 전송할 수 있다.The archive enabled browser 118 requests 904 a web page. In one embodiment, requesting 904 a web page includes sending a request to web host 102 over network 110. For example, the archive enabled browser 118 may send an HTTP request over a TCP / IP network to request 904 a web page.

일 실시예에서, 브라우저 파라미터 전송 모듈(602)은 웹 서버(104)에 브라우저 파라미터를 전송한다(906). 웹 서버(104)로 전송된(906) 브라우저 파라미터는 아카이브 이용가능 브라우저(118)가 아카이브를 수신하는 것이 가능하고, 아카이브 이용가능 브라우저(118)가 이용가능한 접속의 수, 또는 다른 표시자를 표시하는 하나 이상의 표시자를 포함할 수 있다.In one embodiment, the browser parameter transfer module 602 sends 906 the browser parameter to the web server 104. The browser parameters sent to the web server 104 (906) indicate that the archive enabled browser 118 is capable of receiving an archive, and that the archive enabled browser 118 indicates the number of connections available, or other indicators. It can include one or more indicators.

그 다음에, 아카이브 응답 수신 모듈(604)은 아카이브 응답 파라미터를 수신한다(908). 아카이브 응답 파라미터는 웹 서버(104)가 아카이브를 전달하는 것이 가능하다는 것을 표시할 수 있다. 아카이브 응답 파라미터는 더 나아가 웹 서버(104)가 이용가능한 접속의 수를 표시하거나 다른 표시자를 표시할 수 있다. The archive response receiving module 604 then receives 908 an archive response parameter. The archive response parameter may indicate that web server 104 is capable of delivering the archive. The archive response parameter may further indicate the number of connections available to the web server 104 or indicate other indicators.

그 다음에 아카이브 이용가능 브라우저(118)는 아카이브가 지원되는지를 결정한다(910). 일 실시예에서, 아카이브 응답 파라미터를 수신하는(908) 것에 응답하여 결정한다(910). 만일 아카이브 이용가능 브라우저(118)가 아카이브가 지원되지 않는다고 결정하면(910), 방법(900)은 아카이브가 없는 일반적인 웹 페이지를 사용한다(912). 만일 아카이브 이용가능 브라우저(118)가 아카이브가 지원되고 있다고 결정하는(910) 경우는 방법(900)은 그대로 계속된다.The archive enabled browser 118 then determines 910 whether the archive is supported. In one embodiment, the determination is made in response to receiving 908 an archive response parameter. If the archive enabled browser 118 determines that archiving is not supported (910), the method 900 uses a generic web page without an archive (912). If the archive enabled browser 118 determines 910 that the archive is being supported, the method 900 continues.

접속 모듈(608)은 웹 서버(104)와의 하나 이상의 접속을 설정한다(914). 일 실시예에서, 브라우저 파라미터, 아카이브 응답 파라미터, 또는 도 6-7과 관련하여 설명된 다른 고려사항을 고려한 것에 응답하여 접속 수를 설정한다(914). 설정된(914) 접속들은 아카이브, 웹 페이지, 히스토리 정보, 파라미터, 및 기타 다른 데이터의 전송을 위해 사용된다.The connection module 608 establishes 914 one or more connections with the web server 104. In one embodiment, the number of connections is set 914 in response to taking into account browser parameters, archive response parameters, or other considerations described with respect to FIGS. 6-7. The established 914 connections are used for the transfer of archives, web pages, history information, parameters, and other data.

히스토리 전송 모듈(606)은 아카이브 이용가능 브라우저(118)의 히스토리 정보를 웹 서버(104)에 전송할(916) 수 있다. 일 실시예에서, 전송된(916) 히스토리는 아카이브 이용가능 브라우저가 이전의 웹 서버(104) 및/또는 다른 웹 서버와의 거래를 통해 보유한 리스트의 객체를 포함한다. 일 실시예에서, 히스토리 전송 모듈(606)은 웹 서버(104)가 아카이브를 전달하는 것이 가능하다는 것을 표시하는 아카이브 응답 파라미터의 수신에 응답하여 히스토리를 전송한다(916).The history transfer module 606 may send 916 historical information of the archive enabled browser 118 to the web server 104. In one embodiment, the transmitted 916 history includes objects in the list held by the archive-enabled browser through transactions with previous web servers 104 and / or other web servers. In one embodiment, history transfer module 606 sends 916 in response to receipt of an archive response parameter indicating that web server 104 is capable of delivering the archive.

아카이브 회수 모듈(610)은 웹 서버(104)로부터 아카이브를 수신한다(918). 회수된 아카이브는 상기에서 설명된 하나 이상의 보관 가능한 객체를 포함할 수 있다. 일 실시예에서, 아카이브 파일은 웹 페이지에 대한 요청(904)에 응답하여 수신된다(918).The archive retrieval module 610 receives 918 an archive from the web server 104. The retrieved archive may include one or more archivable objects described above. In one embodiment, the archive file is received 918 in response to a request 904 for a web page.

아카이브 언패키징 모듈(612)은 일 실시예에서 전달된 아카이브가 압축되는 것에 응답하여 아카이브의 압축을 풀 수 있다(919). 압축을 푸는 것(919)은 압축 모듈(504)에서 사용된 압축 방법을 이용해 아카이브의 압축을 푸는 것을 포함할 수 있다.The archive unpackaging module 612 may decompress an archive in 919 in response to the delivered archive being compressed. Decompression 919 may include decompression of the archive using the compression method used in compression module 504.

일 실시예에서, 페이지 렌더링 모듈(614)은 수신된(918) 아카이브로부터 추출된 보관 가능한 객체를 이용하여 웹 페이지를 렌더링한다(920). 페이지 렌더링 모듈(614)은 아카이브 이용 가능 브라우저(118)가 아카이브로부터 추출된 보관 가능한 객체를 이용해 아카이브 최적화 웹 페이지를 렌더링하도록(920) 하는 소프트웨어 명령을 포함할 수 있다. 아카이브 최적화 웹 페이지를 렌더링하는(920) 것은 아카이브 최적화 웹 페이지를 위해 규정된 위치에 보관 가능한 객체를 디스플레이하는 것을 포함할 수 있다.In one embodiment, page rendering module 614 renders 920 the web page using the archivable object extracted from the received 918 archive. The page rendering module 614 may include software instructions that cause the archive enabled browser 118 to render 920 an archive optimized web page using the archiveable object extracted from the archive. Rendering 920 an archive optimized web page may include displaying an archiveable object at a location defined for the archive optimized web page.

도 10은 웹 서버(104)에 있는 웹 페이지의 다운로드 시간을 개선하기 위한 방법(1000)의 여러 단계를 흐름도를 통해 도시한 것이다. 특정한 일 실시예에서, 방법(1000)은 도 1-7의 시스템과 장치에서 사용된 방법이며, 이들 도면과 관련하여 참조될 것이다. 그럼에도 불구하고, 방법(1000)은 그 방법이 독립적으로 수행될 수 있으며 상기 도면과 관련하여 설명된 실시예에 반드시 국한되는 것은 아니다.10 shows, in flow diagram, various steps of a method 1000 for improving the download time of a web page in a web server 104. In one particular embodiment, the method 1000 is a method used in the systems and apparatus of FIGS. 1-7 and will be referenced in connection with these figures. Nevertheless, the method 1000 may be performed independently and is not necessarily limited to the embodiments described in connection with the drawings.

도 10에서 도시된 바와 같이, 방법(1000)은 브라우저 파라미터 수신 모듈(702)을 통해 브라우저 파라미터를 수신하는(1002) 것을 포함한다. 브라우저 파라미터는 아카이브 이용가능 브라우저(118)로부터 수신할(1002) 수 있고 브라우저의 능력을 표시하는 하나 이상의 표시자를 포함할 수 있다. 표시자는 아카이브를 이용해 아카이브 최적화 웹 페이지를 렌더링할 수 있는 아카이브 이용가능 브라우저(118)의 능력을 표시할 수 있다. 표시자는 아카이브 이용가능 브라우저(118)가 이용가능한 접속의 수를 표시할 수 있다.As shown in FIG. 10, the method 1000 includes receiving 1002 browser parameters via a browser parameter receiving module 702. The browser parameter may receive 1002 from the archive enabled browser 118 and may include one or more indicators that indicate the browser's capabilities. The indicator can indicate the ability of the archive enabled browser 118 to render the archive optimized web page using the archive. The indicator may indicate the number of connections available for the archive enabled browser 118.

웹 서버(104)는 하나 이상의 아카이브와 아카이브 최적화 웹 페이지를 전달하는데 이용되는 접속의 수를 결정할 수 있다(1004). 일 실시예에서, 웹 서버(104)는 아카이브 이용가능 브라우저(118)가 이용할 수 있는 접속 수를 표시하는 하나 이상의 브라우저 파라미터, 웹 서버(104)가 이용할 수 있는 접속 수, 성능 고려사항, 또는 다른 유사한 것들에 응답하여 접속 수를 결정할 수 있다(1004).Web server 104 may determine the number of connections used to deliver one or more archives and archive optimized web pages (1004). In one embodiment, web server 104 may include one or more browser parameters that indicate the number of connections available to archive-enabled browser 118, the number of connections available to web server 104, performance considerations, or other. The number of connections can be determined in response to similar ones (1004).

아카이버(106)는 보관 가능한 객체의 선택을 최적화할 수 있다(1006). 일 실시예에서, 아카이버(106)는 하나 이상의 보관 가능한 객체의 사이즈, DOM 트리에서 보관 가능한 객체의 상대적 높이, 보관 가능한 객체간의 의존도, 생성된 아카이브의 수, 또는 다른 고려사항 등에 응답하여 선택을 최적화한다(1006). 일 실시예에서, 보관 가능한 객체는 도 2-5와 관련해 설명된 것과 같이 최적화된다(1006).The archiver 106 may optimize the selection of archivable objects (1006). In one embodiment, the archiver 106 optimizes the selection in response to the size of one or more archivable objects, the relative height of the archivable objects in the DOM tree, dependencies between the archivable objects, the number of archives created, or other considerations. (1006). In one embodiment, the archivable object is optimized 1006 as described with respect to FIGS. 2-5.

아카이버(106)는 하나 이상의 아카이브를 생성할 수 있다(1008). 하나 이상의 아카이브가 보관 가능한 객체의 선택의 최적화를(1006)를 이용해 생성될 수 있다(1008). 생성된 아카이브의 수는 이전에 결정된(1004) 접속 수와 관련되어 있을 수 있다. 다른 실시예에서, 생성된(1008) 아카이브의 수는 이용할 수 있는 접속의 수의 결정(1004)에 영향을 줄 수 있다.The archiver 106 may generate 1008 one or more archives. One or more archives may be generated 1008 using optimization of the selection of archivable objects 1006. The number of archives created may be related to the number of connections previously determined 1004. In another embodiment, the number of created 1008 archives may affect the determination of the number of available connections 1004.

방법(1000)의 일 실시예에서, 아카이브 전달 모듈(710)은 아카이브 이용가능 브라우저(118)에 하나 이상의 아카이브를 전달한다(1010). 일 실시예에서, 아카이브 전달 모듈(710)은 가령 TCP/IP 네트워크와 같은 네트워크(110)를 이용하여 하나 이상의 아카이브를 전달한다(1010).In one embodiment of the method 1000, the archive delivery module 710 delivers 1010 one or more archives to an archive enabled browser 118. In one embodiment, the archive delivery module 710 delivers 1010 one or more archives using a network 110 such as, for example, a TCP / IP network.

본 발명은 사상과 본질적 특성에서 벗어나지 않는 다른 특정 형태로 구현될 수도 있다. 설명된 실시예는 모든 경우에 있어서 하나의 예시로서만 고려되어야 하고 이들 실시예에 의해 제한되지 않는다. 그러므로, 발명의 범위는 첨부된 특허 청구 범위에 의해 정해지는 것이지 앞서 말한 발명의 설명에 의해서 범위가 정해지는 것은 아니다. 청구 범위와 균등한 범위 내에서의 모든 변화는 발명의 범위 안에 포함된다고 보아야 한다.The invention may be embodied in other specific forms without departing from the spirit and essential characteristics thereof. The described embodiments are to be considered in all cases as only one example and are not limited by these embodiments. Therefore, the scope of the invention is defined by the appended claims, not by the description of the invention described above. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (10)

웹 페이지의 로딩 시간을 감소시키기 위한 시스템으로서,
브라우저,
웹 서버, 및
아카이버
를 포함하고,
상기 브라우저는,
상기 웹 서버로부터 웹 페이지를 요청하고,
상기 웹 페이지에서 참조되는 하나 이상의 보관 가능한 객체(archivable objects)를 포함하는 하나 이상의 아카이브를 수신하며,
상기 하나 이상의 아카이브로부터의 보관 가능한 객체를 이용하여 상기 웹 페이지를 렌더링하도록 구성되고,
상기 웹 서버는,
상기 브라우저로부터 웹 페이지에 대한 요청을 수신하고,
각각 상기 웹 페이지 내에서 참조되는 복수의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 전달하도록 구성되고,
상기 아카이버는,
상기 웹 페이지에 대한 하나 이상의 아카이브에 대해 보관 가능한 객체의 선택(a selection of archivable objects)을 최적화하고,
상기 보관 가능한 객체의 최적화된 선택으로부터 하나 이상의 아카이브를 생성하도록 구성되는,
시스템.
A system for reducing the loading time of a web page,
browser,
A web server, and
Archiver
Including,
The browser,
Request a web page from the web server,
Receive one or more archives containing one or more archiveable objects referenced in the web page,
Render the web page using archivable objects from the one or more archives,
The web server,
Receive a request for a web page from the browser,
Is configured to deliver one or more archives, each containing a plurality of archivable objects referenced within the web page,
The archiver,
Optimize a selection of archivable objects for one or more archives of the web page,
Configured to generate one or more archives from the optimized selection of archiving objects,
system.
제1항에 있어서, 상기 브라우저는, 상기 브라우저가 하나 이상의 아카이브를 수신하도록 구성되었다는 것을 나타내는 표시자(an indicator)를 포함하는 브라우저 파라미터를 전송하도록 더 구성되는, 시스템.The system of claim 1, wherein the browser is further configured to send a browser parameter that includes an indicator that the browser is configured to receive one or more archives. 제1항에 있어서, 상기 아카이버는,
상기 아카이버가 상기 웹 서버에 대해 하나 이상의 아카이브 및 이용가능한 접속(available connections)을 생성하도록 구성되었다는 것을 표시하는 표시자를 포함하는 아카이브 응답 파라미터를 상기 브라우저로 전송하고,
상기 하나 이상의 아카이브를 전달하기 위해 사용하는 최대의 접속 수를 판단하여,
응답 파라미터가 상기 브라우저의 능력과 호환 가능한지를 판단하는,
시스템.
The method of claim 1, wherein the archiver,
Send an archive response parameter to the browser including an indicator indicating that the archiver is configured to create one or more archives and available connections for the web server,
Determining the maximum number of connections used to deliver the one or more archives,
Determining whether a response parameter is compatible with the browser's capabilities,
system.
제1항에 있어서, 상기 브라우저는, 상기 웹 서버와의 이전의 상호작용(previous interactions)으로부터의 브라우저 캐시에 존재하고, 상기 웹 페이지와 연관된 프리-캐시된 객체(pre-cached objects)의 리스트를 전송하여, 상기 웹 서버로 브라우저 파라미터를 전송하도록 더 구성되는, 시스템.The browser of claim 1, wherein the browser resides in a browser cache from previous interactions with the web server, and lists a list of pre-cached objects associated with the web page. Send, the browser parameter to the web server. 웹 페이지의 로딩 시간을 감소시키기 위한 방법으로서,
상기 방법은,
웹 서버로부터 웹 페이지를 요청하는 단계;
상기 웹 페이지에서 참조되는 하나 이상의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 수신하는 단계;
상기 하나 이상의 아카이브로부터의 보관 가능한 객체를 이용하여 상기 웹 페이지를 렌더링하는 단계;
브라우저로부터 웹 페이지에 대한 요청을 수신하는 단계;
각각 상기 웹 페이지 내에서 참조되는 복수의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 전달하는 단계;
상기 웹 페이지에 대한 하나 이상의 아카이브에 대해 보관 가능한 객체의 선택을 최적화하는 단계; 및
상기 보관 가능한 객체의 최적화된 선택으로부터 하나 이상의 아카이브를 생성하는 단계
를 포함하는, 방법.
A method for reducing the loading time of a web page,
The method comprises:
Requesting a web page from a web server;
Receiving one or more archives comprising one or more archivable objects referenced in the web page;
Rendering the web page using an archivable object from the one or more archives;
Receiving a request for a web page from a browser;
Delivering one or more archives each comprising a plurality of archivable objects referenced within the web page;
Optimizing a selection of archivable objects for one or more archives for the web page; And
Creating one or more archives from the optimized selection of archiving objects
Including, the method.
웹 페이지의 로딩 시간을 감소시키기 위한 방법으로서,
브라우저가 하나 이상의 아카이브 및 상기 브라우저에 대해 이용가능한 접속을 수신하도록 구성되었다는 것을 나타내는 표시자를 포함하는 브라우저 파라미터를 수신하는 단계;
상기 하나 이상의 아카이브를 전달하기 위해 사용하는 접속 수를 판단하는 단계;
상기 웹 페이지에 대한 하나 이상의 아카이브에 대해 보관 가능한 객체의 선택을 최적화하는 단계;
상기 보관 가능한 객체의 최적화된 선택을 포함하는 상기 하나 이상의 아카이브를 전달하기 위해 사용하는 상기 접속 수와 동일한 수의 아카이브를 생성하는 단계; 및
각각 상기 웹 페이지 내에서 참조되는 복수의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 전달하는 단계
를 포함하는, 방법.
A method for reducing the loading time of a web page,
Receiving a browser parameter comprising an indicator indicating that the browser is configured to receive one or more archives and a connection available to the browser;
Determining the number of connections used to deliver the one or more archives;
Optimizing a selection of archivable objects for one or more archives for the web page;
Creating the same number of archives as the number of connections used to deliver the one or more archives including the optimized selection of the archivable objects; And
Delivering one or more archives each comprising a plurality of archivable objects referenced within the web page
Including, the method.
웹 페이지의 로딩 시간을 감소시키기 위한 방법으로서,
웹 서버로부터 웹 페이지를 요청하는 단계;
상기 웹 페이지에서 참조되는 복수의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 상기 웹 서버로부터 수신하는 단계; 및
상기 하나 이상의 아카이브로부터의 상기 복수의 보관 가능한 객체를 이용하여 상기 웹 페이지를 렌더링하는 단계
를 포함하는, 방법.
A method for reducing the loading time of a web page,
Requesting a web page from a web server;
Receiving one or more archives from the web server, the one or more archives comprising a plurality of archivable objects referenced in the web page; And
Rendering the web page using the plurality of archivable objects from the one or more archives
Including, the method.
웹 페이지의 로딩 시간을 감소시키기 위한 방법으로서,
브라우저가 웹 페이지를 수신하기 위해 사용하는 이용가능한 접속의 수를 결정하는 단계, 및
웹 서버로부터 웹 페이지를 요청하는 단계
를 포함하고,
상기 웹 서버로부터 웹 페이지를 요청하는 단계는,
상기 브라우저가 아카이브를 수신하는 것이 가능하다는 것을 표시하는 표시자 및 상기 브라우저가 상기 웹 페이지의 부분들을 수신하기 위해 사용하는 상기 이용가능한 접속의 수를 표시하는 표시자를 포함하는 브라우저 파라미터를 전송하는 단계;
상기 웹 서버가 하나 이상의 아카이브를 전달하는 것이 가능하다는 것을 표시하는 표시자를 포함하는 아카이브 응답 파라미터를 상기 웹 서버로부터 수신하는 단계;
상기 웹 서버로부터의 상기 아카이브 응답 파라미터 및 상기 브라우저 파라미터에 따라 상기 웹 서버와의 하나 이상의 접속을 설정하는 단계;
각각 상기 웹 페이지와 연관된 복수의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 상기 웹 서버로부터 수신하는 단계; 및
상기 하나 이상의 아카이브로부터의 상기 복수의 보관 가능한 객체를 이용하여 상기 웹 페이지를 렌더링하는 단계
를 포함하는, 방법.
A method for reducing the loading time of a web page,
Determining the number of available connections that the browser uses to receive the web page, and
Requesting a Web Page from a Web Server
Including,
Requesting a web page from the web server,
Sending a browser parameter comprising an indicator indicating that the browser is capable of receiving an archive and an indicator indicating the number of available connections the browser uses to receive portions of the web page;
Receiving an archive response parameter from the web server including an indicator indicating that the web server is capable of delivering one or more archives;
Establishing at least one connection with the web server in accordance with the archive response parameter and the browser parameter from the web server;
Receiving one or more archives from the web server each comprising a plurality of archivable objects associated with the web page; And
Rendering the web page using the plurality of archivable objects from the one or more archives
Including, the method.
웹 페이지의 로딩 시간을 감소시키기 위한 방법으로서,
생성할 아카이브의 수를 결정하는 단계;
아카이버에 의해서 생성되는 하나 이상의 아카이브에 포함시키기 위해 보관 가능한 객체를 선택하는 단계 - 상기 선택된 보관 가능한 객체는 객체 우선순위화에 따라 상기 웹 페이지와 연관된 하나 이상의 보관 가능한 객체를 포함하고,
상기 보관 가능한 객체는 그 보관 가능한 객체가 임계값보다 작은 사이즈를 갖는다고 판단될 경우에 선택됨 - ;
웹 페이지의 하나 이상의 아카이브에 대해 상기 선택된 보관 가능한 객체를 최적화하는 단계; 및
보관 가능한 객체의 최적화된 선택을 포함하고, 상기 결정된 아카이브의 수와 동일한 수의 아카이브를 생성하는 단계
를 포함하는, 방법.
A method for reducing the loading time of a web page,
Determining a number of archives to create;
Selecting an archiveable object for inclusion in the one or more archives generated by the archiver, wherein the selected archiveable object includes one or more archiveable objects associated with the web page according to object prioritization,
The archivable object is selected if it is determined that the archivable object has a size smaller than a threshold;
Optimizing the selected archivable object for one or more archives of a web page; And
Generating an archive with an optimized number of archiveable objects, the number of archives being equal to the determined number of archives
Including, the method.
컴퓨터 프로그램으로서, 상기 프로그램이 컴퓨터에서 실행될 때 제5항 내지 제9항의 모든 단계를 수행하도록 구성된 프로그램 코드를 포함하는, 컴퓨터 프로그램.A computer program comprising program code configured to perform all the steps of claims 5 to 9 when the program is run on a computer.
KR1020107004123A 2007-08-29 2008-08-18 Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives KR20100066454A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/847,287 US7937478B2 (en) 2007-08-29 2007-08-29 Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives
US11/847,287 2007-08-29
US11/847,299 2007-08-29
US11/847,299 US20090063622A1 (en) 2007-08-29 2007-08-29 Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives

Publications (1)

Publication Number Publication Date
KR20100066454A true KR20100066454A (en) 2010-06-17

Family

ID=39938295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107004123A KR20100066454A (en) 2007-08-29 2008-08-18 Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives

Country Status (5)

Country Link
JP (1) JP5187980B2 (en)
KR (1) KR20100066454A (en)
CN (1) CN101785005A (en)
TW (1) TW200928980A (en)
WO (1) WO2009027256A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130064696A (en) * 2011-12-08 2013-06-18 캐논 가부시끼가이샤 Information processing apparatus, information processing method, and storage medium storing program

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407340B2 (en) * 2010-04-09 2013-03-26 Microsoft Corporation Page load performance analysis
US9582392B2 (en) 2010-09-14 2017-02-28 Microsoft Technology Licensing, Llc Add-on performance advisor
JP5511609B2 (en) 2010-09-27 2014-06-04 インターナショナル・ビジネス・マシーンズ・コーポレーション Web page creation system, method and program
CN102163206B (en) * 2011-01-30 2013-05-01 青岛海信传媒网络技术有限公司 Method and system for loading pages
CN102214237B (en) * 2011-06-30 2013-11-27 北京新媒传信科技有限公司 Method and device for webpage making
TWI630551B (en) * 2013-05-31 2018-07-21 博世尼克資訊股份有限公司 Method of downloading program
JP6294475B2 (en) 2013-06-20 2018-03-14 博世尼克資訊股▲ふん▼有限公司 How to download the program
JP5740026B1 (en) * 2014-03-25 2015-06-24 株式会社 ディー・エヌ・エー Server and method for displaying display screen
CN104978325B (en) * 2014-04-03 2019-06-25 腾讯科技(深圳)有限公司 A kind of web page processing method, device and user terminal
TWI634483B (en) * 2017-09-14 2018-09-01 和碩聯合科技股份有限公司 File combination and recovery methods and electronic devices using the same

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11242640A (en) * 1998-02-25 1999-09-07 Kdd Corp File transfer method
JP2000020415A (en) * 1998-07-07 2000-01-21 Hitachi Ltd WWW server proxy, WWW browser proxy and WWW system
US20020065800A1 (en) * 2000-11-30 2002-05-30 Morlitz David M. HTTP archive file
JP2004206172A (en) * 2002-12-20 2004-07-22 Sanyo Electric Co Ltd Method and apparatus for controlling communication
JP4241920B2 (en) * 2004-03-22 2009-03-18 ベーステクノロジー株式会社 Data communication method
JP2006133846A (en) * 2004-11-02 2006-05-25 Hitachi Ltd Data transfer method and proxy server

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130064696A (en) * 2011-12-08 2013-06-18 캐논 가부시끼가이샤 Information processing apparatus, information processing method, and storage medium storing program

Also Published As

Publication number Publication date
JP2010537337A (en) 2010-12-02
WO2009027256A1 (en) 2009-03-05
CN101785005A (en) 2010-07-21
TW200928980A (en) 2009-07-01
JP5187980B2 (en) 2013-04-24

Similar Documents

Publication Publication Date Title
US8117315B2 (en) Apparatus, system, and method for archiving small objects to improve the loading time of a web page
KR20100066454A (en) Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives
US7937478B2 (en) Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives
US20090063622A1 (en) Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives
US8707310B2 (en) Batch processing of jobs on multiprocessors based on estimated job processing time
US6510469B1 (en) Method and apparatus for providing accelerated content delivery over a network
US7945698B2 (en) System and method for partial data compression and data transfer
US6578073B1 (en) Accelerated content delivery over a network using reduced size objects
KR101035302B1 (en) How to compress and transfer files in the cloud system and cloud system
US6199107B1 (en) Partial file caching and read range resume system and method
US20130339472A1 (en) Methods and systems for notifying a server with cache information and for serving resources based on it
US10262074B2 (en) Method and device for offline webpage browsing, and computer storage medium
NO325628B1 (en) Procedure, computer program, transcoding server and computer system to modify a digital document
US8271582B2 (en) Relay device, relay method, and computer program product
US20060047677A1 (en) System and method of pipeline data access to remote data
US9934081B2 (en) Conditional saving of input data
GB2519516A (en) A method, apparatus and computer program for modifying messages in a communications network
CN112035405A (en) Document transcoding method and device, scheduling server and storage medium
CN106406923B (en) Method and device for processing dynamic library file
KR20070009557A (en) Devices and methods for storing and accessing objects
US20040249793A1 (en) Efficient document storage and retrieval for content servers
CN110430279B (en) File downloading control method and device
US7467379B2 (en) System and method for incrementally executing a client/server application
US7398534B2 (en) System and method for assessing component capabilities
CN118444941A (en) Method, device, equipment, medium and product for reducing volume of client installation volume

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20100224

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20100726

Comment text: Request for Examination of Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20111027

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20120131

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20111027

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I