Apparatus for downloading high-volume data and method therefor
The described method and apparatus address the inefficiency of browser-based downloads by transferring large-capacity data download requests to a download agent, allowing the browser to be used for other tasks during the download process.
Patent Information
- Application Number
- JP2024089906
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-11
- Filing Date
- 2024-06-03
- Publication Date
- 2025-06-23
- Estimated Expiration
- 2044-06-03
AI Technical Summary
Existing download technologies, particularly when using browsers, are inefficient as they require continuous Alive signals to maintain the download thread, preventing the browser from being used for other tasks during the download process.
A method and apparatus that utilize a browser module to determine if a download request meets specific event conditions, such as data capacity, download speed, or required time, and if so, transfers the request to a download agent that allocates a thread for socket-based downloads, allowing the browser to be used for other tasks.
This solution enables simultaneous downloads of large-capacity data without hindering browser functionality, allowing users to perform other tasks while downloads are in progress.
Smart Images

Figure 2025093275000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a download technology, and more particularly, to an apparatus and a method for downloading large-capacity data.
Background Art
[0002] When downloading data via a browser, a request must be sent from the web and the response must be awaited. In order to maintain the download thread, an Alive signal must be continuously transferred, so the browser cannot be used for other tasks during the download time.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] An object of the present invention is to provide an apparatus and a method for downloading large-capacity data.
Means for Solving the Problems
[0005] A method for downloading large-capacity data according to the present invention includes the steps of: a browser module receiving a download request for data; the browser module determining whether the download request meets a predetermined event condition; if the determination result is that the download request meets the predetermined event condition, the browser module transmitting the download request to a download agent by providing download information corresponding to the download request to the download agent; and the download agent downloading the data according to the download information.
[0006] The method further includes the step of: when the download is completed, an export module processing the data according to a predetermined file format and exporting the downloaded data.
[0007] The step of downloading the data is characterized in that: each time the download agent receives the transmission of the download request, a thread is allocated, and the download process is performed in a socket manner through the allocated thread.
[0008] The event condition includes a case where the capacity of the data corresponding to the download request is equal to or greater than a predetermined capacity.
[0009] The event condition includes a case where the download speed at the time of the download request is less than a predetermined speed.
[0010] The event condition includes a case where the download time required based on the capacity of the data corresponding to the download request and the download speed at the time of the download request is equal to or greater than a predetermined time.
[0011] The method for downloading large-capacity data according to the present invention includes the steps of: a browser module receiving a download request for data; the browser module determining whether the download request meets a predetermined event condition; if the determination result is that the download request meets the predetermined event condition, the browser module transmitting the download request to a download agent by providing download information corresponding to the download request to the download agent; the download agent allocating a thread in response to the download request and performing a download in a socket manner via the allocated thread; and the download agent downloading the data according to the download information.
[0012] The apparatus for downloading large-capacity data according to the present invention includes: a browser module that, when receiving a download request for data, determines whether the download request meets a predetermined event condition, and if the determination result is that the download request meets the predetermined event condition, transmits the download request to a download agent by providing download information corresponding to the download request to the download agent; and the download agent that downloads the data according to the download information.
[0013] The apparatus further includes an export module that, when the download is completed, processes the data according to a predetermined file format and exports the downloaded data.
[0014] The download agent is characterized in that, each time the download request is transmitted, a thread is allocated and a download process is performed in a socket manner via the allocated thread.
[0015] The event condition includes a case where the capacity of the data corresponding to the download request is equal to or greater than a predetermined capacity.
[0016] The event condition includes a case where the download speed at the time of the download request is less than a predetermined speed.
[0017] The event condition includes a case where the download time required based on the capacity of the data corresponding to the download request and the download speed at the time of the download request is equal to or more than a predetermined time.
[0018] When the apparatus for downloading large-capacity data according to the present invention receives a download request for data, it determines whether or not the download request meets a predetermined event condition. As a result of the determination, when the download request meets the predetermined event condition, the browser module transmits the download request to the download agent by providing download information corresponding to the download request to the download agent. The download agent allocates a thread in response to the download request and performs a download process according to the download information in a socket manner via the allocated thread. When the download is completed, the export module further includes an export module that processes the data according to a predetermined file format and exports the downloaded data.
Advantages of the Invention
[0019] When downloading via a browser, the browser cannot be used for other tasks during the download time. However, in the case of the present invention, since the download is performed using local resources via an agent instead of the browser and export is performed, the user can use the browser without waiting for the download to complete after the download request.
Brief Description of the Drawings
[0020]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Embodiments for Carrying Out the Invention
[0021] In the following description, it should be noted that only the parts necessary for understanding the embodiments of the present invention are described, and the descriptions of other parts are omitted within the scope not departing from the gist of the present invention.
[0022] The terms and words used in the present specification and claims described below should not be construed as being limited to their ordinary or dictionary meanings. Based on the principle that the inventor can appropriately define the concept of the terms in order to explain his invention in the best way, they should be construed as meanings and concepts that conform to the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are only preferred embodiments of the present invention and do not describe all of the technical ideas of the present invention. It should be understood that there can be various equivalents and modifications that can replace them at the time of this application.
[0023] Hereinafter, embodiments of the present invention will be described in more detail with reference to the accompanying drawings. First, a system for downloading large-capacity data according to an embodiment of the present invention will be described. FIG. 1 is a diagram for explaining a system for downloading large-capacity data according to an embodiment of the present invention. FIG. 2 is a diagram for explaining the configuration of a terminal device for downloading large-capacity data according to an embodiment of the present invention.
[0024] Referring to FIG. 1, a system for downloading large-capacity data according to an embodiment of the present invention includes a server device 100 and a terminal device 200.
[0025] The server device 100 is basically one entity existing on the network, stores data having information necessary for the terminal device 200, and provides corresponding data in response to a request from the terminal device 200.
[0026] The terminal device 200 is basically a device used by a user. The terminal device 200 can typically exemplify a personal computer, a notebook computer, etc. The terminal device 200 can connect to the server device 100 via a network and download data corresponding to a user input.
[0027] According to an embodiment of the present invention, when the terminal device 200 receives a download request via a browser, it transmits the download request to an agent, generates a new thread via the agent, and can perform a download in a socket manner from the generated thread. Thereby, the user can use the browser for other tasks.
[0028] On the other hand, referring to FIG. 2, the terminal device 200 includes a terminal communication module 210, a browser module 220, a download agent 230, and an export module 240.
[0029] The browser module 220 is a module for controlling a browser handle, a browser interface, and a browser process. The browser module 220 can receive a download request for data by a user input (for example, link selection for download data). Thereby, the browser module 220 determines whether the download request meets a predetermined event condition.
[0030] According to one embodiment, the event condition may be that the capacity of the data corresponding to the download request is equal to or greater than a predetermined capacity. That is, the browser module 220 can obtain the data capacity corresponding to the download request, and if the obtained data capacity is equal to or greater than the predetermined capacity, it can be determined that the condition is met.
[0031] According to another embodiment, the event condition may be that the download speed at the time of the download request is less than a predetermined speed. The browser module 220 can estimate the download speed, and if the estimated download speed is less than the predetermined speed, it can be determined that the condition is met.
[0032] According to still another embodiment, the event condition may be that the download time required based on the capacity of the data corresponding to the download request and the download speed at the time of the download request is equal to or greater than a predetermined time. The browser module 220 can derive the capacity of the data to be downloaded and the download speed, estimate the download time required from the derived data capacity and download speed, and if the estimated download time required is equal to or greater than the predetermined time, it can be determined that the condition is met.
[0033] If the download request does not meet the predetermined event condition, the browser module 220 performs the download for the data. The browser module 220 performs the download in the HTTP manner. On the other hand, if the download request meets the predetermined event condition, the browser module 220 transmits the download request to the download agent 230. At this time, the browser module 220 can transmit the download request to the download agent 230 by providing the download agent 230 with the download information corresponding to the download request. Here, the download information includes a link, a data name, a file format for export, and the like.
[0034] The download agent 230 is for performing downloads in the socket method. Each time a download request is transmitted from the browser module 220, it assigns a thread corresponding to the download request. Also, it performs the download process in the socket method via the assigned thread. In this way, each time a download request is transmitted, the download agent 230 assigns a thread and performs the download process in the socket method via the assigned thread, so that, as shown in FIG. 5, a plurality of data can be downloaded simultaneously.
[0035] The export module 250 is for processing the downloaded data into a predetermined file format and exporting it. Such a file format can be selected from any one of various types such as HTML, JSON, CSV, Excel, Hangul, MS-word, PPT, etc.
[0036] Next, a method for downloading large-capacity data according to an embodiment of the present invention will be described. FIG. 3 is a flowchart for explaining a method for downloading large-capacity data according to an embodiment of the present invention. FIGS. 4 and 5 are example screens for explaining a method for downloading large-capacity data according to an embodiment of the present invention.
[0037] Referring to FIG. 3, in step S110, the browser module 220 can receive a download request for data by a user's input. At such input, the user can select the file format of the file for exporting the downloaded data, as shown in FIG. 4.
[0038] Thereby, in step S120, the browser module 220 determines whether the previously (S110) received download request meets the predetermined event conditions.
[0039] According to one embodiment, the event condition may be that the capacity of the data corresponding to the download request is equal to or greater than a predetermined capacity. That is, after adding the attribute "Range: bytes = 0-1" to the HTTP header, the browser module 220 uses the HTTP GET method to obtain the data capacity corresponding to the download request, and if the obtained data capacity is equal to or greater than the predetermined capacity, it can be determined that the condition is met.
[0040] According to another embodiment, the event condition may be that the download speed at the time of the download request is less than a predetermined speed. After transferring the beacon signal to an arbitrary test server (not shown) for testing, the browser module 220 can receive a response signal from the server and estimate the download speed. That is, the download speed can be estimated based on the RTT (Round Trip Time) of the beacon signal and the response signal. Thereby, when the estimated download speed is less than the predetermined speed, the browser module 220 can determine that the condition is met.
[0041] According to still another embodiment, the event condition may be that the download time required based on the capacity of the data corresponding to the download request and the download speed at the time of the download request is equal to or greater than a predetermined time. After deriving the capacity of the data to be downloaded and the download speed in the method described above, the browser module 220 can estimate the download time required from the derived data capacity and download speed. Also, when the estimated download time required is equal to or greater than the predetermined time, the browser module 220 can determine that the condition is met.
[0042] As a result of the determination in step S120, if the download request does not meet the predetermined event condition, the browser module 220 performs the download for the data in step S160. In such step S160, the browser module 220 performs the download in the HTTP manner.
[0043] On the one hand, if, as a result of the determination in the S120 stage, the download request meets the predefined event conditions, the browser module 220 transmits the download request to the download agent 230 in the S130 stage. At this time, the browser module 220 can transmit the download request to the download agent 230 by providing the download information corresponding to the download request to the download agent 230.
[0044] The download agent 230 that has been transmitted the download request can download the data according to the download information.
[0045] For this purpose, the download agent 230 allocates a thread each time a download request is transmitted in the S140 stage. Then, in the S150 stage, the download agent 230 performs the download process in a socket manner via the allocated thread.
[0046] In this way, each time a download request is transmitted, the download agent 230 allocates a thread and performs the download process in a socket manner via the allocated thread, so that, as shown in FIG. 5, a plurality of data can be downloaded simultaneously (51).
[0047] When the download is completed, the export module 250 processes the data according to a predefined file format in the S170 stage (preceding, S110) and exports (Export) the downloaded data. For example, as shown in FIG. 5, the export module 250 can process the data into an Excel-formatted file and export it (53).
[0048] The method according to the above-described embodiments of the present invention can be realized in a program form readable via various computer means and can be recorded on a computer-readable recording medium. Here, the recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the recording medium may be those specially designed and configured for the present invention, or may be those known and usable by those skilled in the field of computer software. For example, the recording medium includes magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program instructions such as ROMs, RAMs, and flash memories. Examples of program instructions may include not only machine language codes created by compilers but also high-level language codes that can be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules for performing the operations of the present invention, and vice versa.
[0049] As described above, the present invention has been described using several preferred embodiments, but these embodiments are exemplary and not limiting. Thus, those having ordinary knowledge in the technical field to which the present invention pertains can understand that various changes and modifications can be made by the doctrine of equivalents without departing from the spirit of the present invention and the scope of rights presented in the appended claims.
Explanation of Reference Numerals
[0050] 100: Server device 200: Terminal device 210: Terminal communication module 220: Browser module 230: Download agent 240: Export Module
Claims
1. A method for downloading large amounts of data, comprising: receiving a download request for data by a browser module; The browser module determining whether the download request matches a predefined event condition; If the download request matches a predetermined event condition as a result of the determination, the browser module transmits the download request to the download agent by providing download information corresponding to the download request to the download agent; the download agent downloading the data according to the download information; 23. A method for downloading comprising:
2. When the download is complete, 2. The method for downloading according to claim 1, further comprising the step of: an export module processing the data according to a predetermined file format and exporting the downloaded data.
3. The step of downloading the data includes:
2. The method of claim 1, wherein the download agent allocates a thread whenever the download request is received, and performs a download process in a socket manner through the allocated thread.
4. The method of claim 1 , wherein the event condition includes a case where a volume of data corresponding to the download request is equal to or larger than a predetermined volume.
5. The method of claim 1 , wherein the event condition includes a case where a download speed at the time of the download request is less than a predetermined speed.
6. 2. The method of claim 1, wherein the event condition includes a case where a download time required based on a data volume corresponding to the download request and a download speed at the time of the download request is equal to or exceeds a predetermined time.
7. An apparatus for downloading large amounts of data, comprising: When you receive a request to download your data, determining whether the download request meets a predetermined event condition; a browser module for transmitting the download request to a download agent by providing download information corresponding to the download request to the download agent when the download request matches a predetermined event condition as a result of the determination; the download agent downloading the data according to the download information; 13. An apparatus for downloading comprising:
8. The apparatus for downloading according to claim 7, further comprising an export module for processing data according to a predetermined file format and exporting the downloaded data when the download is completed.
9. The download agent includes:
8. The apparatus of claim 7, further comprising: a thread allocated whenever the download request is received; and a download process is performed in a socket manner through the allocated thread.
10. The apparatus of claim 7 , wherein the event condition includes a case where a volume of data corresponding to the download request is equal to or larger than a predetermined volume.
11. The apparatus of claim 7, wherein the event condition includes a case where a download speed at the time of the download request is less than a predetermined speed.
12. 8. The apparatus of claim 7, wherein the event condition includes a case where a download time required based on a data volume corresponding to the download request and a download speed at the time of the download request is equal to or exceeds a predetermined time.
Citation Information
Patent Citations
KR2011-0025055