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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000004044 response Effects 0.000 claims description 64
- 238000012913 prioritisation Methods 0.000 claims description 27
- 238000009877 rendering Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 15
- 230000003993 interaction Effects 0.000 claims description 5
- 230000008901 benefit Effects 0.000 description 37
- 238000007906 compression Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 17
- 238000012546 transfer Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000003068 static effect Effects 0.000 description 10
- 238000005457 optimization Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing 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
[관련 출원에 대한 상호참조]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
일 실시예에서 웹 호스트(102)는 웹 클라이언트(112)에 웹 페이지를 제공하기 위한 하드웨어 및 소프트웨어 구성요소를 포함한다. 웹 호스트(102)는 웹 서버 어플리케이션(104), 아카이버(106) 및 데이터 저장소(108)를 포함할 수 있다. 웹 호스트(102)는 네트워크(110)를 통해 액세스할 수 있다.In one embodiment,
일 실시예에서 웹 호스트(102)는 웹 서버 어플리케이션(104)을 포함한다. 웹 서버 어플리케이션(104)은 네트워크를 통해 웹 페이지를 전달하기 위해 구성된 소프트웨어를 포함한다. 웹 서버 어플리케이션(104)은 HTML 파일과 같이 승인된 표준을 따르는 웹 페이지를 전달하도록 구성될 수 있다. 표준을 따르는 다른 예는 XHTML, PHP, W3C 등을 포함한다. 웹 서버 어플리케이션에는 아파치 HTTP 서버, 마이크로소프트 인터넷 정보 서버, IBM HTTP 서버 등이 포함된다.In one embodiment, the
일 실시예에서 웹 서버 어플리케이션(104)은 웹 페이지와 연관된 아카이브를 전달하도록 더 구성될 수 있다. 일 실시예에서, 이러한 아카이브들은 웹 페이지를 렌더링하기 위해 필요한 객체를 포함한다. 아카이브는 이하에서 아카이버(106)와 관련해 더 상세하게 기술된다.In one embodiment, the
일 실시예에서, 아카이버(106)는 다운로드 시간을 향상시키기 위해 최적화된 웹 페이지를 생성한다. 아카이버(106)는 웹 페이지에서 참조되는 객체로부터 하나 이상의 아카이브를 생성할 수 있다. 아카이브는 웹 페이지에서 참조되는 복수의 객체로 각각 구성된다. 본 명세서 내에서 사용되는 "아카이브"라는 용어는 단일 전송을 위해 하나의 파일로 정렬된 또는 정렬되지 않은 상태로 패킹되는 복수의 데이터 객체들의 선택(selection)을 의미한다. 아카이브가 웹 클라이언트(112)로 전송될 때 단일 헤더를 포함할 수 있다. 반면, 각 객체를 개별적으로 전송하는 것은 각 객체에 대한 개별적인 헤더와 관련된다. 하나 이상의 아카이브 각각은 복수의 객체를 포함하고 아카이브는 아카이브 내의 각 객체에 대해 복수의 헤더들 대신에 하나의 헤더를 사용하여 전송될 수 있으므로, 전체적으로 필요한 헤더의 크기는 감소된다. 다른 실시예에서, 아카이브는 각 객체에 대해 복수의 헤더들을 포함할 수 있지만 이 헤더들은 전체 헤더의 크기를 감소시키기 위해 간소화된다.In one embodiment, the
웹 서버 어플리케이션(104)은 웹 페이지에서 참조되는 개별 객체 각각을 대신해서 단일 아카이브를 전달할 수 있다. 아카이브의 각 객체는 단순한 헤더만을 요청하거나 또는 개별 헤더를 더 이상 요청하지 않으므로, 각 개별 객체와 관련된 별도의 대기 시간이 없게 되어, 전체적으로 웹 페이지를 위한 다운로드 시간은 감소하게 된다.The
일 실시예에서, 아카이버(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
일 실시예에서, 아카이버(106)는, 정적 웹 페이지(a static web page)로부터, 웹 페이지에서 참조되는 객체의 아카이브를 사용하기 위하여 최적화된 웹 페이지(이하에서는 "아카이브 최적화 웹 페이지")를 생성할 수 있다. 정적 웹 페이지는, 웹 페이지와 연관된 파라미터에 응답하여 변하지 않은 내용을 갖는 웹 페이지를 말한다. 아카이버(106)는 정적 웹 페이지와 연관된 객체를 이용해 하나 이상의 아카이브를 생성할 수 있다. 일 실시예에서, 아카이버(106)는 웹 클라이언트(112)에 의한 웹 페이지의 요청에 응답하여 정적 웹 페이지에 대한 아카이브 최적화 웹 페이지(an archive optimized web page)를 생성할 수 있다.In one embodiment, the
다른 실시예에서, 아카이버(106)는 정적 웹 페이지에 대한 아카이브 최적화 웹 페이지를 웹 클라이언(112)의 웹 페이지 요청에 따라 비동기식으로 생성할 수 있다. 다른 실시예에서, 아카이버(106)는 일단(a batch)의 정적 웹 페이지에 대하여 일단의 아카이브 최적화 웹 페이지를 생성할 수 있다. 아카이버(106)는 아카이브 최적화 웹 페이지에 대한 하나 이상의 아카이브를 생성할 수 있다. 생성된 아카이브 최적화 웹 페이지와 아카이브 최적화 웹 페이지에 대한 하나 이상의 아카이브는 웹 호스트(102)의 액세스를 위해 저장될 수 있다. 정적 웹 페이지에 대한 요청은 이전의 웹 페이지로부터의 요청을 수신하여 생성된 아카이브와 생성된 아카이브 최적화 웹 페이지의 전달이라는 결과로 이어질 수 있다. 이 실시예에서, 아카이버(106)는 웹 호스트(102)에 과중한 로드가 걸리지 않는 동안 아카이브 최적화 웹 페이지 및 아카이브를 생성할 수 있다.In another embodiment, the
다른 실시예에서, 아카이버(106)는 동적 웹 페이지에 대한 아카이브 최적화 웹 페이지 및 아카이브를 생성할 수 있다. 동적 웹 페이지는 웹 페이지 요청에 응답하여 생성되는 웹 페이지를 의미한다. 요청 이전에는, 동적 웹 페이지가 존재하지 않을 수 있다. 이 실시예에서, 아카이버(106)는 웹 클라이언트(112)의 동적 웹 페이지에 대한 요청에 응답하여 아카이브 최적화 웹 페이지 및 아카이브를 생성할 수 있다. 예를 들어, 웹 클라이언트(112)는 데이터 저장소(108)로부터의 데이터를 포함하고 요청에 응답하여 생성되는 웹 호스트(102)로부터의 웹 페이지를 요청할 수 있다. 아카이버(106)는 데이터 저장소(108)로부터 데이터를 수신할 수 있고 웹 페이지에 대하여 아카이브 및 아카이브 최적화 웹 페이지를 생성할 수 있다. 생성된 웹 페이지와 아카이브는 이어서 웹 서버 어플리케이션(104)에 의해 웹 클라이언트(112)로 전달될 수 있다.In another embodiment, the
다른 선택적인 실시예에서, 아카이버(106)는 웹 페이지를 렌더링하기 위해 아카이브 이용가능 브라우저(118)에 의해 요청되는 모든 파일을 포함하는 아카이브를 생성한다. 예를 들어, 아카이버(106)는 요청한 웹 페이지의 요청된 내용을 모두 포함하는 하나 이상의 아카이브를 생성하고 렌더링을 위해 아카이브 이용가능 브라우저 (118)에 하나 이상의 아카이브를 전달할 수 있다.In another alternative embodiment, the
일 실시예에서, 데이터 저장소(108)가 웹 호스트(102)에 포함될 수 있다. 데이터 저장소(108)의 데이터는 완성된 웹 페이지, 웹 페이지를 생성하기 위해 사용된 데이터, 사전 정의된 아카이브, 및 웹 페이지를 렌더링하기 위한 객체들을 포함할 수 있다. 예를 들어, 데이터 저장소(108)는 데이터 파일을 포함하는 하나 이상의 하드 디스크 드라이브를 포함할 수 있다. 다른 실시예에서, 데이터 저장소(108)는 데이터베이스를 포함한다. 또 다른 실시예에서, 데이터 저장소(108)는 플래시 메모리 장치를 포함한다.In one embodiment,
일 실시예에서, 네트워크(110)는 웹 클라이언트(112)와 웹 호스트(102) 간의 데이터 전송을 위한 매체를 제공한다. 네트워크(110)는 웹 클라이언트(112)에서 웹 호스트(102)로 요청을 전송할 수 있다. 네트워크(110)는 또한 생성된 웹 페이지와 아카이브를 웹 호스트(102)에서 웹 클라이언트(112)로 전송할 수 있다. 네트워크(110)는 이러한 데이터를 전송할 수 있는 어떠한 네트워크도 될 수 있으며 이러한 예로는 인터넷이 있다. 네트워크(110)의 다른 예로는 인트라넷, 직접 네트워크 접속과 같은 것을 들 수 있다. 일 실시예에서 웹 클라이언트(112)는 표시를 위해 생성된 웹 페이지를 렌더링한다. 웹 클라이언트(112)는 CPU(114), 메모리(116), 및 아카이브 이용가능 브라우저(118)를 포함할 수 있다. 일 실시예에서, 웹 클라이언트(112)는 아카이브로부터의 객체를 이용하며, 생성된 웹 페이지를 렌더링한다.In one embodiment,
일 실시예에서, 아카이브 이용가능 브라우저(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
도 2는 아카이버(106)의 일 실시예를 도시하고 있다. 아카이버(106)는 아카이브 비용/편익 모듈(an archive cost/benefit module; 202), 선택 모듈(204), 아카이브 생성 모듈(206)을 포함할 수 있다. 아카이버(106)는 아카이브 및 개선된 다운로드 시간을 갖는 연관 웹 페이지를 생성한다.2 illustrates one embodiment of an
일 실시예에서, 아카이브 비용/편익 모듈(202)은 아카이브 및 아카이브 최적화 웹 페이지를 생성하는데 관련된 계산 비용(computational cost)이 웹 페이지에 대한 향상된 다운로드 시간의 편익 보다 더 큰지를 결정한다. 만일 예측되는 다운로드 시간의 향상이 웹 페이지 및 아카이브를 생성시키는데 연관된 오버헤드 비용보다 더 크다면, 아카이브 비용/편익 모듈(202)은 아카이브(106)에게 아카이브 최적화 웹 페이지 및 그와 연관된 아카이브를 생성하도록 지시할 수 있다.In one embodiment, the archive cost /
특정 실시예에서, 아카이브 비용/편익 모듈(202)은 아카이브 최적화 웹 페이지 및 아카이브가 생성되어야 하는지를 결정하기 위해 휴리스틱 함수(a heuristic function)를 이용할 수 있다. 예를 들어, 아카이브 비용/편익 모듈(202)은 아카이브 최적화 웹 페이지 및 아카이브를 생성하는데 드는 계산 비용을 예측할 수 있다. 만일 예측되는 계산 비용이 임계치 보다 낮은 경우, 비용/편익 모듈(202)은 아카이버(106)에 지시하여 아카이브 최적화 웹 페이지 및 아카이브를 생성하도록 할 수 있다. 다른 실시예에서, 아카이브 비용/편익 모듈(202)은 아카이브 및 아카이브 최적화 웹 페이지와 관련된 개선된 다운로드 시간과 관련된 값을 예측할 수 있다. 아카이브 비용/편익 모듈(202)은, 예측되는 계산 비용과 예측되는 편익의 비율이 임계값 보다 작은 경우에 아카이브 최적화 웹 페이지 및 아카이브가 생성되도록 지시할 수 있다.In a particular embodiment, the archive cost /
예를 들어, 아카이브 비용/편익 모듈(202)은 생성될 아카이브의 갯수, 웹 페이지 내의 보관 가능한 객체의 수, 및 웹 페이지의 사이즈를 포함하는 입력을 가지는 모델에 기초하여 비용 값을 도출할 수 있다. 아카이브 비용/편익 모듈(202)은 더 나아가 수정되지 않은 웹 페이지를 전달하는데 요청되는 시간에 비해 아카이브를 이용하여 웹 페이지를 전달할 경우 감소되는 시간을 추산하는 편익 값(a benefit value)을 도출할 수 있다. 편익 값은, 생성될 아카이브의 갯수, 웹 페이지 내의 보관 가능한 객체의 수, 및 웹 페이지의 사이즈를 포함하는 입력을 이용하여 모델화될 수 있다. 이 예에서, 아카이브 비용/편익 모듈(202)은 비용 값과 편익 값 사이의 비율을 생성한다. 비율에 대한 임계값은 다른 시험이나 모델에 기초하여 미리 계산되거나 임의로 선택될 수 있고, 그 임계값에 따라 아카이브 최적화 웹 페이지를 생성할지 여부가 결정된다.For example, the archive cost /
일 실시예에서, 아카이브 비용/편익 모듈(202)에 의해 행해지는 결정은 페이지에 대한 요청에 응답하여 생성되어야 하는 아카이브 최적화 웹 페이지의 경우와 비동기식으로 생성되는 아카이브 최적화 웹 페이지의 경우에 대해 서로 다를 수 있다. 예를 들어, 아카이브 비용/편익 모듈(202)은 웹 호스트(102)에 낮은 부하가 걸리는 동안 정적 웹 페이지를 평가하고 웹 페이지에 아카이브가 생성되어야 한다고 결정할 수 있다. 아카이브를 생성한 후, 웹 페이지에 대한 요청은 비동기식으로 생성된 아카이브 및 아카이브 최적화 웹 페이지의 전달을 야기할 것이다. 그러나, 만일 아카이브가 생성되기 전에 웹 페이지에 대한 요청을 수신하게 되면, 요청하는 브라우저가 아카이브를 기다리는 동안에 아카이브가 생성되어야 하기 때문에 아카이브 비용/편익 모듈(202)은 다른 결론에 도달할 것이다. 동일한 아카이브 최적화 웹 페이지도, 웹 호스트(102)의 부하가 상대적으로 높은 경우이거나 웹 페이지의 요청에 응답하여 아카이브 최적화 웹 페이지를 생성하는 경우에는, 생성하기에 너무 비용이 많이 발생되는 것으로 아카이브 비용/편익 모듈(202)에 의해 결정될 수 있다.In one embodiment, the decisions made by the archive cost /
일 실시예에서, 선택 모듈(204)은 아카이브에 포함시키기 위해 아카이브 최적화 웹 페이지에서 참조되는 객체들을 선택한다. 선택 모듈(204)은 객체가 아카이브에 포함되어야 하는지 아니면 웹 클라이언트(112)에 개별적으로 전달되어야 하는지를 선택 기준에 따라 결정한다. 선택 기준의 한 예는 객체의 사이즈인데, 예를 들어, 작은 사이즈의 객체는 큰 사이즈의 객체보다 아카이브에 포함될 경우 편익을 누릴 가능성이 더 클 수 있다. 일 실시예에서, 선택 모듈(204)은 임계값 보다 작은 사이즈를 갖는 객체를 선택할 수 있다. 예를 들어, 임계값은 3 킬로 바이트일 수 있고, 선택 모듈은 3 킬로 바이트 이하의 사이즈를 갖는 객체를 선택할 수 있다.In one embodiment, the
일 실시예에서, 아카이브 생성 모듈(206)은 아카이브 최적화 웹 페이지와 연관된 하나 이상의 아카이브를 생성한다. 아카이브 생성 모듈(206)은 선택 모듈(204)에서 선택된 객체를 이용하여 하나 이상의 아카이브를 형성한다. 아카이브 이용가능 브라우저(118)의 실행가능 코드를 실행한 후 웹 클라이언트(112)의 요청에 응답하여 하나 이상의 아카이브가 웹 클라이언트(112)에게 전달된다.In one embodiment, the
도 3은 선택 모듈(204)의 실시예를 도시한다. 선택 모듈(204)은 문서 객체 모델(a document object model; DOM) 트리 스캐너 모듈(302), 선택 기준 모듈(304), 아카이브 사이즈 모듈(306), 객체 우선순위화 모듈(an object prioritization module; 308), 객체 우선순위화 기준 모듈(310)을 포함할 수 있다. 선택 모듈(204)은 하나 이상의 아카이브의 포함을 위해 웹 페이지의 보관 가능한 객체를 선택한다.3 illustrates an embodiment of the
일 실시예에서, 문서 객체 모델(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
일 실시예에서, 선택 기준 모듈(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
일 실시예에서, 낮은 단계에 있는 객체는 전제조건이 되는 객체가 아카이브 최적화 웹 페이지에서 렌더링되기 전까지는 아카이브 최적화 웹 페이지에서 제대로 렌더링될 수 없다. 예를 들어, 객체 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
선택 모듈(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
도 5는 아카이브 생성 모듈(206)의 일 실시예를 도시하고 있다. 아카이브 생성 모듈(206)은 객체 정렬 모듈(502), 아카이브 압축 모듈(504), 압축 휴리스틱 모듈(506)을 포함할 수 있다. 아카이브 생성 모듈(206)은 선택 모듈(204)에 의해 선택된 보관 가능한 객체들을 이용해 아카이브 파일을 생성한다. 5 illustrates one embodiment of an
일 실시예에서, 객체 정렬 모듈(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
생성된 아카이브가 압축되지 않을 수 있는 또 하나의 환경의 예는 동적 웹 페이지의 아카이브 생성 도중에 일어난다. 동적 아카이브 최적화 웹 페이지에 대한 아카이브가 생성되는 경우, 웹 호스트(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
압축의 비용이 아카이브의 사이즈의 감소의 편익을 능가하는 경우에 생성된 아카이브의 압축을 시도하는 것을 피하기 위해, 일 실시예에서 압축 휴리스틱 모듈(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
일 실시예에서, 아카이브 이용가능 브라우저(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
다른 일 실시예에서, 아카이브 이용가능 브라우저(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
아카이브 최적화 웹 페이지는 아카이브에 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
다른 일 실시예에서, 브라우저 파라미터 전송 모듈(602)은 표시자를 포함하는 브라우저 파라미터를 전송하는데, 이 표시자는 아카이브 이용가능 브라우저(118)에 의해 이용 가능한 접속의 수를 지시한다. 일 실시예를 예로 들면, 아카이브 이용가능 브라우저(118)는 호스트 컴퓨터 및/또는 운영 체제가 명령으로 정한 이용 가능 접속의 수를 갖고 있다. 아카이브 이용가능 브라우저(118)는 한 예에서 최대한 네 개의 접속 수를 갖는 것이 허용될 수 있다. 브라우저 파라미터 전송 모듈(602)은 웹 서버(104)에 아카이브 이용 가능 브라우저(118)가 네 개의 접속 수가 이용 가능하다고 지시하는 브라우저 파라미터를 전송할 수 있다.In another embodiment, browser
일 실시예에서, 아카이브 응답 수신 모듈(604)은 웹 서버(104)로부터 아카이브 응답 파라미터를 수신한다. 일 실시예에서, 아카이브 응답 파라미터는 표시자를 포함한다. 표시자는 웹 서버(104)가 아카이브를 전달하는 것이 가능하다는 것을 표시할 수 있다. 일 실시예에서, 웹 서버(104)는 아카이브 이용가능 브라우저(118)가 아카이브를 수신하는 것이 가능하다는 결정에 응답하여 아카이브 응답 파라미터를 전송한다. 다른 일 실시예에서, 웹 서버(104)는 웹 페이지를 요청하는 웹 브라우저의 종류와 관계없이 아카이브 응답 파라미터를 전송한다.In one embodiment, the archive
일 실시예에서, 히스토리 전송 모듈(606)은 웹 서버(104)에 아카이브 이용 가능 웹 브라우저(118)의 히스토리를 전송한다. 일 실시예에서, 히스토리는 아카이브 이용 가능 브라우저가 웹 서버(104) 및/또는 다른 웹 서버들과의 이전 거래를 통해 보유하고 있는 객체들의 리스트를 포함한다. 보유된 객체는 메모리 같은 휘발성 저장소 캐시 또는 하드 디스크 드라이브 같은 비휘발성 저장소 캐시에 저장될 수 있다. 일 실시예에서, 히스토리 전송 모듈(606)은 웹 서버(104)가 아카이브를 전달하는 것이 가능하다는 것을 표시하는 아카이브 응답 파라미터를 수신하는 것에 응답하여 히스토리를 전송한다.In one embodiment,
일 실시예에서, 웹 서버(104)는 히스토리를 이용하여 요청된 웹 페이지에 대한 캐시된 버전의 객체들을 이용하는 아카이브 최적화 웹 페이지 및 아카이브를 생성한다. 예를 들어, 히스토리는 아카이브 최적화 웹 페이지에 의해 요청된 여러 개의 객체들이 이미 아카이브 이용가능 브라우저(118)의 캐시에 존재하는 것을 표시할 수 있다. 아카이버(106)는 캐시된 객체를 포함하지 않는 아카이브를 생성할 수 있다. 웹 서버(104)는 아카이브 이용가능 브라우저(118)의 캐시의 객체를 이용하여 아카이브 최적화 웹 페이지를 렌더링하도록 아카이브 이용가능 브라우저(118)에 지시하는 아카이브 최적화 웹 페이지를 전송할 수 있다.In one embodiment,
일 실시예에서, 접속 모듈(608)은 아카이브 이용가능 브라우저(118)와 웹 서버(104) 사이에 하나 이상의 접속을 오픈한다(open). 일 실시예에서, 접속 모듈(608)은 아카이브 이용 가능 브라우저(118)가 이용가능한 접속의 수와 동일한 수의 접속을 오픈한다. 다른 실시예에서, 접속 모듈(608)은 웹 서버(104)에서 사용하기 위해 이용가능한 접속의 수와 동일한 수의 접속을 오픈한다. 다른 실시예에서, 접속 모듈(608)은 웹 서버(104)와 아카이브 이용가능 브라우저(118) 사이에서 협의된 수의 접속을 오픈한다.In one embodiment, the
예를 들어, 요청된 아카이브 최적화 웹 페이지에는 아카이브 이용가능 브라우저(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
일 실시예에서, 아카이브 회수 모듈(610)은 아카이브를 이용 가능한 하나의 접속으로부터 회수한다. 아카이브 회수 모듈(610)은 웹 클라이언트(112)로 하여금 웹 호스트(102)로부터의 아카이브 최적화 웹 페이지에 대한 아카이브를 회수하도록 하게 할 수 있다. 일단 회수되면, 웹 클라이언트(112)는 아카이브를 클라이언트 장치의 일시적인 또는 지속적인 메모리에 저장한다.In one embodiment,
일 실시예에서, 아카이브 언패키징 모듈(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
보관 가능한 객체는 순서에 따라서 추출될 수 있는데, 이는 보관 가능한 객체가 객체 우선순위화 모듈(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
일 실시예에서, 페이지 렌더링 모듈(614)은 아카이브로부터 추출된 보관 가능한 객체를 이용하여 아카이브 최적화 웹 페이지를 렌더링한다. 페이지 렌더링 모듈(614)은 아카이브 이용가능 브라우저(118)로 하여금 아카이브로부터 추출한 보관 가능한 객체를 이용해 아카이브 최적화 웹 페이지를 렌더링하도록 하는 명령을 포함할 수 있다.In one embodiment,
도 7은 본 발명에 따른 웹 서버(104)의 일 실시예를 도시한다. 웹 서버(104)는 브라우저 파라미터 수신 모듈(702), 아카이브 응답 전송 모듈(704), 히스토리 수신 모듈(706), 접속 모듈(708), 아카이브 전달 모듈(710)을 포함할 수 있다. 웹 서버(104)는 웹 페이지에 대한 요청을 수신하며 하나 이상의 아카이브를 이용해 웹 페이지를 전달한다.7 illustrates one embodiment of a
일 실시예에서, 브라우저 파라미터 수신 모듈(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
일 실시예에서, 아카이브 응답 전송 모듈(704)은 아카이브 이용가능 브라우저(118)로 아카이브 응답을 전송한다. 아카이브 응답 파라미터는 웹 서버(104)가 아카이브를 전달할 수 있음을 표시하는 표시자를 포함한다. 일 실시예에서, 아카이브 응답 파라미터는 웹 서버(104)가 이용 가능한 접속의 수를 표시하는 표시자를 포함할 수 있다. 일 실시예에서, 웹 서버(104)는 아카이브 이용가능 브라우저(118)가 아카이브를 수신하는 것이 가능하다고 결정하는 것에 응답하여 아카이브 응답 파라미터를 전송한다. 또 다른 일 실시예에서, 웹 서버(104)는 웹 페이지를 요청하는 웹 브라우저의 종류에 상관 없이 아카이브 응답 파라미터를 전송한다.In one embodiment, the archive
일 실시예에서, 히스토리 수신 모듈(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
일 실시예에서, 접속 모듈(708)은 아카이브 이용가능 브라우저(118)와 웹 서버(104) 사이에 하나 이상의 접속을 오픈한다. 일 실시예에서, 접속 모듈(708)은 아카이브 이용가능 브라우저(118)가 이용가능한 접속 수와 동일한 수의 접속을 오픈한다. 다른 실시예에서, 접속 모듈(708)은 웹 서버(104)가 이용 가능한 접속의 수와 동일한 수의 접속 수를 오픈한다. 다른 실시예에서, 접속 모듈(708)은 웹 서버(104)와 아카이브 이용가능 브라우저(118) 사이에서 협의된 수의 접속을 오픈한다. 예를 들어, 요청된 웹 페이지는 웹 서버(104)와 아카이브 이용가능 브라우저(118)가 이용가능한 접속의 수 보다 작은 아카이브의 수를 포함할 수 있다. 이 예에서, 접속 모듈(708)은 아카이브의 수와 동일한 수의 접속 수를 설정할 수 있다.In one embodiment, the
일 실시예에서, 아카이브 전달 모듈(710)은 하나의 이용가능 접속을 통해 아카이브를 전송한다. 아카이브 전달 모듈(710)은 웹 서버(104)가 아카이브 최적화 웹 페이지에 대한 아카이브를 아카이브 이용가능 브라우저(118)로 전송하게 할 수 있다.In one embodiment, the
후술될 개략적인 흐름도는 일반적으로 논리 흐름도로서 도시되어 있다. 설명된 순서와 표시된(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
도 8에서 도시된 바와 같이, 상기 방법(800)은 웹 페이지에 대한 아카이브를 생성하는데 관련된 계산 비용을 계산한다(802). 일 실시예에서, 계산 비용은 아카이브 내에 있는 보관 가능한 객체에 접근할 수 있도록 설정된 아카이브 최적화 웹 페이지와 아카이브를 생성시키기 위해 요청되는 리소스들의 측정이다. 선택적인 실시예에서, 계산된(802) 계산 비용은 아카이브와 아카이브 최적화 웹 페이지를 생성해내기 위해서 요청되는 리소스의 측정과 아카이브를 이용해 웹 페이지를 다운로드하는 시간의 향상의 측정 사이의 비율일 수 있다. 다른 실시예에서, 계산된(802) 계산 비용은 웹 호스트(102)에 있는 부하, 웹 클라이언트(112)에 이미 웹 페이지를 요청하였는지에 따라, 웹 페이지가 정적 웹 페이지인가의 파라미터에 응답하여 변할 수 있다.As shown in FIG. 8, the
아카이브 비용/편익 모듈(202)은 일 실시예에서 웹 페이지를 위해 아카이브를 생성하는 것이 그럴 만한 가치가 있는지 결정한다(804). 결정(804)은 계산 비용과 임계값에 근거해 계산할 수 있다(802). 예를 들어, 아카이브 비용/편익 모듈(202)은 계산 비용과 성능 편익의 비율이 임계값보다 낮은 경우에 아카이브를 생성하는 것이 가치가 있다고 결정할 수 있다.The archive cost /
상기 방법(800)은 결정(804)한 값이 부정적일 경우 일반적인 웹 페이지를 선택한다(806). 일반적인 웹 페이지는 아카이브로의 참조가 없는 웹 페이지를 말한다. 일 실시예에서, 상기 방법(800)은 일반적인 웹 페이지를 생성할 수 있다. 선택적인 실시예에서, 상기 방법(800)은 기존의 일반적인 웹 페이지를 선택할 수 있다(806).The
그 다음에, 선택 모듈(204)은 웹 페이지를 나타내는 DOM 트리를 스캔해서(808) 아카이브 비용/ 편익 모듈(202)이 아카이브를 생성해야 하는지를 결정한다(804). DOM 트리는 어떠한 객체들이 웹 페이지에 있는지를 결정하기 위해 스캔되며(808) 그 밖에 다른 객체에 대한 파라미터, 가령 객체의 사이즈, 객체의 계층적 단계, 및 객체간의 의존도도 스캔된다.The
그 다음에 선택 모듈(204)은 객체를 보관 가능한 객체로 선택한다(810). 객체의 사이즈나 종류 같은 객체 선택 기준을 충족시키는 경우 그에 응답하여 보관 가능한 객체로서 선택된다(810). 예를 들어, 선택 모듈(204)은 객체의 사이즈가 3 키로바이트 보다 작은 경우에 보관 가능한 객체로서 객체를 선택한다(810).The
객체 우선순위화 모듈(308)은 선택 모듈(204)에 의해 선택된(810) 보관 가능한 객체의 우선순위를 정한다(812). 보관 가능한 객체의 우선순위화(812)는 DOM 트리에서의 상대적 깊이, 의존적인 객체의 수 등 객체 우선순위화 기준에 기초한다. 예를 들어, 한 객체는 다른 객체보다 높은 우선순위를 가질 수 있는데 그것은 DOM 트리에서 의존적인 객체를 더 많이 갖고 있기 때문이다.The object prioritization module 308 prioritizes 812 the archivable object selected 810 by the
그 다음에 아카이브 생성 모듈(206)은 보관 가능한 객체를 이용하여 아카이브를 생성한다(814). 생성된(814) 아카이브에 있는 보관 가능한 객체들은 우선순위화(812) 과정에서 할당된 객체의 우선순위에 따라 생성된 아카이브 내에서 정렬될 수 있다. 그 결과, 높은 우선순위를 갖는 보관 가능한 객체는 낮은 우선순위를 갖는 보관 가능한 객체 보다 이전에 아카이브에서 나타날 것이다.The
압축 휴리스틱 모듈(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
일 실시예에서, 아카이브 압축 모듈(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.
도 9는 아카이브 이용가능 웹 브라우저(118)에 있는 웹 페이지의 다운로드 시간을 개선하기 위한 방법(900)의 여러 단계를 나타내는 흐름도이다. 일 실시예에서, 방법(900)은 도 1-7의 시스템과 장치에서 사용된 방법이며, 이들 도면과 관련하여 참조될 것이다. 그럼에도 불구하고, 방법(900)은 그 방법이 독립적으로 수행될 수 있으며 상기 도면과 관련하여 설명된 실시예에 반드시 국한되는 것은 아니다.9 is a flow diagram illustrating various steps of a
도 9에서 도시된 바와 같이, 방법(900)은 아카이브 이용가능 브라우저(118)가 이용가능한 접속의 수를 결정한다(902). 이용가능한 접속의 수는 아카이브 이용가능 브라우저(118), 웹 클라이언트(112), 네트워크(110), 그리고 다른 고려사항에 의존할 수 있다.As shown in FIG. 9, the
아카이브 이용가능 브라우저(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
일 실시예에서, 브라우저 파라미터 전송 모듈(602)은 웹 서버(104)에 브라우저 파라미터를 전송한다(906). 웹 서버(104)로 전송된(906) 브라우저 파라미터는 아카이브 이용가능 브라우저(118)가 아카이브를 수신하는 것이 가능하고, 아카이브 이용가능 브라우저(118)가 이용가능한 접속의 수, 또는 다른 표시자를 표시하는 하나 이상의 표시자를 포함할 수 있다.In one embodiment, the browser
그 다음에, 아카이브 응답 수신 모듈(604)은 아카이브 응답 파라미터를 수신한다(908). 아카이브 응답 파라미터는 웹 서버(104)가 아카이브를 전달하는 것이 가능하다는 것을 표시할 수 있다. 아카이브 응답 파라미터는 더 나아가 웹 서버(104)가 이용가능한 접속의 수를 표시하거나 다른 표시자를 표시할 수 있다. The archive
그 다음에 아카이브 이용가능 브라우저(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
접속 모듈(608)은 웹 서버(104)와의 하나 이상의 접속을 설정한다(914). 일 실시예에서, 브라우저 파라미터, 아카이브 응답 파라미터, 또는 도 6-7과 관련하여 설명된 다른 고려사항을 고려한 것에 응답하여 접속 수를 설정한다(914). 설정된(914) 접속들은 아카이브, 웹 페이지, 히스토리 정보, 파라미터, 및 기타 다른 데이터의 전송을 위해 사용된다.The
히스토리 전송 모듈(606)은 아카이브 이용가능 브라우저(118)의 히스토리 정보를 웹 서버(104)에 전송할(916) 수 있다. 일 실시예에서, 전송된(916) 히스토리는 아카이브 이용가능 브라우저가 이전의 웹 서버(104) 및/또는 다른 웹 서버와의 거래를 통해 보유한 리스트의 객체를 포함한다. 일 실시예에서, 히스토리 전송 모듈(606)은 웹 서버(104)가 아카이브를 전달하는 것이 가능하다는 것을 표시하는 아카이브 응답 파라미터의 수신에 응답하여 히스토리를 전송한다(916).The
아카이브 회수 모듈(610)은 웹 서버(104)로부터 아카이브를 수신한다(918). 회수된 아카이브는 상기에서 설명된 하나 이상의 보관 가능한 객체를 포함할 수 있다. 일 실시예에서, 아카이브 파일은 웹 페이지에 대한 요청(904)에 응답하여 수신된다(918).The
아카이브 언패키징 모듈(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,
도 10은 웹 서버(104)에 있는 웹 페이지의 다운로드 시간을 개선하기 위한 방법(1000)의 여러 단계를 흐름도를 통해 도시한 것이다. 특정한 일 실시예에서, 방법(1000)은 도 1-7의 시스템과 장치에서 사용된 방법이며, 이들 도면과 관련하여 참조될 것이다. 그럼에도 불구하고, 방법(1000)은 그 방법이 독립적으로 수행될 수 있으며 상기 도면과 관련하여 설명된 실시예에 반드시 국한되는 것은 아니다.10 shows, in flow diagram, various steps of a
도 10에서 도시된 바와 같이, 방법(1000)은 브라우저 파라미터 수신 모듈(702)을 통해 브라우저 파라미터를 수신하는(1002) 것을 포함한다. 브라우저 파라미터는 아카이브 이용가능 브라우저(118)로부터 수신할(1002) 수 있고 브라우저의 능력을 표시하는 하나 이상의 표시자를 포함할 수 있다. 표시자는 아카이브를 이용해 아카이브 최적화 웹 페이지를 렌더링할 수 있는 아카이브 이용가능 브라우저(118)의 능력을 표시할 수 있다. 표시자는 아카이브 이용가능 브라우저(118)가 이용가능한 접속의 수를 표시할 수 있다.As shown in FIG. 10, the
웹 서버(104)는 하나 이상의 아카이브와 아카이브 최적화 웹 페이지를 전달하는데 이용되는 접속의 수를 결정할 수 있다(1004). 일 실시예에서, 웹 서버(104)는 아카이브 이용가능 브라우저(118)가 이용할 수 있는 접속 수를 표시하는 하나 이상의 브라우저 파라미터, 웹 서버(104)가 이용할 수 있는 접속 수, 성능 고려사항, 또는 다른 유사한 것들에 응답하여 접속 수를 결정할 수 있다(1004).
아카이버(106)는 보관 가능한 객체의 선택을 최적화할 수 있다(1006). 일 실시예에서, 아카이버(106)는 하나 이상의 보관 가능한 객체의 사이즈, DOM 트리에서 보관 가능한 객체의 상대적 높이, 보관 가능한 객체간의 의존도, 생성된 아카이브의 수, 또는 다른 고려사항 등에 응답하여 선택을 최적화한다(1006). 일 실시예에서, 보관 가능한 객체는 도 2-5와 관련해 설명된 것과 같이 최적화된다(1006).The
아카이버(106)는 하나 이상의 아카이브를 생성할 수 있다(1008). 하나 이상의 아카이브가 보관 가능한 객체의 선택의 최적화를(1006)를 이용해 생성될 수 있다(1008). 생성된 아카이브의 수는 이전에 결정된(1004) 접속 수와 관련되어 있을 수 있다. 다른 실시예에서, 생성된(1008) 아카이브의 수는 이용할 수 있는 접속의 수의 결정(1004)에 영향을 줄 수 있다.The
방법(1000)의 일 실시예에서, 아카이브 전달 모듈(710)은 아카이브 이용가능 브라우저(118)에 하나 이상의 아카이브를 전달한다(1010). 일 실시예에서, 아카이브 전달 모듈(710)은 가령 TCP/IP 네트워크와 같은 네트워크(110)를 이용하여 하나 이상의 아카이브를 전달한다(1010).In one embodiment of the
본 발명은 사상과 본질적 특성에서 벗어나지 않는 다른 특정 형태로 구현될 수도 있다. 설명된 실시예는 모든 경우에 있어서 하나의 예시로서만 고려되어야 하고 이들 실시예에 의해 제한되지 않는다. 그러므로, 발명의 범위는 첨부된 특허 청구 범위에 의해 정해지는 것이지 앞서 말한 발명의 설명에 의해서 범위가 정해지는 것은 아니다. 청구 범위와 균등한 범위 내에서의 모든 변화는 발명의 범위 안에 포함된다고 보아야 한다.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.
상기 아카이버가 상기 웹 서버에 대해 하나 이상의 아카이브 및 이용가능한 접속(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.
상기 방법은,
웹 서버로부터 웹 페이지를 요청하는 단계;
상기 웹 페이지에서 참조되는 하나 이상의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 수신하는 단계;
상기 하나 이상의 아카이브로부터의 보관 가능한 객체를 이용하여 상기 웹 페이지를 렌더링하는 단계;
브라우저로부터 웹 페이지에 대한 요청을 수신하는 단계;
각각 상기 웹 페이지 내에서 참조되는 복수의 보관 가능한 객체를 포함하는 하나 이상의 아카이브를 전달하는 단계;
상기 웹 페이지에 대한 하나 이상의 아카이브에 대해 보관 가능한 객체의 선택을 최적화하는 단계; 및
상기 보관 가능한 객체의 최적화된 선택으로부터 하나 이상의 아카이브를 생성하는 단계
를 포함하는, 방법.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.
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)
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)
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)
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 |
-
2008
- 2008-08-18 CN CN200880104106A patent/CN101785005A/en active Pending
- 2008-08-18 JP JP2010522311A patent/JP5187980B2/en not_active Expired - Fee Related
- 2008-08-18 KR KR1020107004123A patent/KR20100066454A/en not_active Application Discontinuation
- 2008-08-18 WO PCT/EP2008/060792 patent/WO2009027256A1/en active Application Filing
- 2008-08-26 TW TW097132563A patent/TW200928980A/en unknown
Cited By (1)
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 |