WO2021086087A1 - Large file distribution system, method and computer program, and system - Google Patents

Large file distribution system, method and computer program, and system Download PDF

Info

Publication number
WO2021086087A1
WO2021086087A1 PCT/KR2020/014968 KR2020014968W WO2021086087A1 WO 2021086087 A1 WO2021086087 A1 WO 2021086087A1 KR 2020014968 W KR2020014968 W KR 2020014968W WO 2021086087 A1 WO2021086087 A1 WO 2021086087A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
blocks
client
clients
server
Prior art date
Application number
PCT/KR2020/014968
Other languages
French (fr)
Korean (ko)
Inventor
박성원
성윤한
Original Assignee
데이터비즈 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 데이터비즈 주식회사 filed Critical 데이터비즈 주식회사
Publication of WO2021086087A1 publication Critical patent/WO2021086087A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Definitions

  • the present invention relates to a system, a method, and a computer program for distributing files, and more particularly, to a file distribution system, a method, and a computer program through which a server can rapidly distribute a large file to a plurality of clients.
  • the capacity and data traffic of files transmitted through the wired/wireless communication network are rapidly increasing, and with the conventional technology alone, the system performance may be degraded or even the system may be stopped due to the overload caused by the file transmission. .
  • the present invention was invented to solve the problems of the prior art as described above, and an object of the present invention is to provide a file distribution system, method, and computer program capable of distributing a large file at high speed in a limited communication network environment.
  • an object of the present invention is to provide a file distribution system, method, and computer program capable of more efficiently transmitting a large-capacity file by reducing data traffic distributed from a server to a plurality of clients.
  • a file distribution system for solving the above problem is a file distribution system for distributing a first file from a server to a plurality of clients belonging to a first group, comprising: a server; And a plurality of clients including a first client, wherein the server divides the first file into a plurality of blocks, divides the plurality of blocks into the plurality of clients, and transmits the plurality of Among clients, the first client receives some blocks from the plurality of blocks, receives the remaining blocks from the plurality of blocks from one or more other clients belonging to the first group, and then receives the first from the plurality of blocks. It is characterized by restoring files.
  • the first client may provide the partial block received by the first client to the other client, and may receive the remaining blocks from the other client.
  • the server designates some of the clients as the first group, and at least one of information on clients belonging to the first group, information on the first file, and information on the plurality of blocks Distribution policy data including a can be provided.
  • the first client may inform the other client of the existence of the new distribution policy data.
  • the first client may request distribution policy data from the server at every predetermined period.
  • the server may divide the first file into the plurality of blocks according to the number of the plurality of clients and transmit the first file to each of the plurality of clients.
  • the server may divide the second file into a plurality of blocks and distribute the second file to a plurality of clients belonging to the second group.
  • another client among the plurality of clients may receive the block and provide it to a client belonging to the first group.
  • a second client belonging to the first group may transmit a request for the remaining block transmitted from the first client to a third client connected to it and transmit the request to all of the plurality of clients belonging to the first group. have.
  • a file distribution method is a method in which a server distributes a first file to a plurality of clients belonging to a first group, wherein the server divides the first file to be transmitted into a plurality of blocks.
  • a file distribution method is a method in which a plurality of clients belonging to a first group distribute a first file from a server, wherein a first client among the plurality of clients receives the first file from the server.
  • a computer program according to another aspect of the present invention is characterized in that it is a computer program stored in a computer-readable medium for executing each step of the file distribution method described above on a computer.
  • a file to be transmitted by a server is divided into a plurality of blocks and transmitted to a plurality of clients, and the plurality of blocks are separated from each other by the plurality of clients.
  • a large file can be distributed at high speed, and further, data traffic distributed from a server to a plurality of clients can be reduced, so that a large file can be transmitted more efficiently.
  • FIG. 1 is a configuration diagram of a file distribution system according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating an operation of a file distribution system according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a specific operation of the file distribution system according to an embodiment of the present invention.
  • FIG. 4 is a block diagram showing a specific configuration of a file distribution system according to an embodiment of the present invention.
  • FIG. 5 is a flowchart of a method for distributing files from a server perspective according to an embodiment of the present invention.
  • FIG. 6 is a flowchart of a method for distributing a file from a client perspective according to an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating a specific operation of a file distribution method according to an embodiment of the present invention.
  • FIG. 8 is a diagram illustrating data sharing between clients in a file distribution system according to an embodiment of the present invention.
  • first and second may be used to describe various components, but the components are not limited by the terms, and the terms are used to distinguish one component from other components. Is only used.
  • FIG. 1 shows a configuration diagram of a file distribution system 100 according to an embodiment of the present invention.
  • the file distribution system 100 includes a first file 210 from the server 120 to a plurality of clients 110 belonging to the first group 150a.
  • a file distribution system 100 that distributes, a server 120, a plurality of clients 110 including a first client 110a, and a network 130 connecting the server 120 and the client 110 It can be configured to include.
  • the server 120 divides the first file 210 into a plurality of blocks 220 and transmits the plurality of blocks 220 by dividing the plurality of blocks 220 into the plurality of clients 110. Accordingly, the first client 110a among the plurality of clients 110 receives some blocks 220 of the plurality of blocks 220, and one or more other clients belonging to the first group 150a After receiving the remaining block 220 of the plurality of blocks 220 from 110, the first file 210 is restored from the plurality of blocks 220.
  • a portable terminal such as a smart phone, a tablet PC, a PDA, or a mobile phone may be used, or a personal information processing device such as a personal computer (PC) or a notebook PC may be used, and further, a gateway, a router, etc.
  • PC personal computer
  • a gateway a router
  • the network 130 connecting the terminal 110 and the server 120 may include a wired network and a wireless network, and specifically, a local area network (LAN), a metropolitan area network (MAN: Metropolitan Area Network) and a wide area network (WAN).
  • the network 130 may include a known World Wide Web (WWW).
  • WWW World Wide Web
  • the network 130 according to the present invention is not limited to the networks listed above, and may include at least a part of a known wireless data network, a known telephone network, or a known wired/wireless television network.
  • FIG. 2 describes the operation of the file distribution system 100 according to an embodiment of the present invention in more detail.
  • the server 120 is a first file to be distributed to a plurality of clients 110 belonging to the first group 150a. (210) is divided into a plurality of blocks 220, and the plurality of blocks 220 is divided into the plurality of clients 110 and transmitted.
  • the server 120 when the server 120 wants to distribute the first file 210 to the first clients 110a and the second clients 110b belonging to the first group 150a, the server 120 ) Divides the first file 120 into a plurality of blocks (for example, a first block 220a and a second block 220b), and then divides the first block 220a, which is a part of the plurality of blocks. It may transmit to the first client 110a and transmit the second block 220b to the second client 11b.
  • a plurality of blocks for example, a first block 220a and a second block 220b
  • the first client 110a of the plurality of clients 110 receives some blocks 220 of the plurality of blocks 220, and one or more other clients 110 belonging to the first group 150a After receiving the remaining block 220 from among the plurality of blocks 220, the first file 210 is restored from the plurality of blocks 220.
  • the first client 110a receives the first block 220a, which is a part of the plurality of blocks 220, and receives the first block 220a from the second client 110b belonging to the first group 150a. After receiving the remaining second block 220b of the plurality of blocks 220, the first file 210 may be restored from the first block 220a and the second block 220b.
  • the second client 110b also receives the second block 220b, which is a part of the plurality of blocks 220, and the plurality of blocks ( After receiving the remaining first block 220a of 220), the first file 210 may be restored from the first block 220a and the second block 220b.
  • the first client 110a provides the partial block 220 received by itself to the other client 110 and receives the remaining block 220 from the other client 110 (I.e., through block sharing), while receiving only some blocks 220 from the server 120, the first file 210 can be restored by receiving the remaining blocks 220 from other clients 110 do.
  • the server 120 in addition to the first group 150a, the second file 230 ) May be divided into a plurality of blocks 220 and distributed to a plurality of clients 110 belonging to the second group 150b.
  • the second file 230 may be a file different from the first file 210, but the present invention is not necessarily limited thereto, and the second file 230 is the first file 210 It may be the same file as.
  • the server 120 divides the first file 210 to be distributed into a plurality of blocks 220 (for example, as illustrated in FIG. 3, the first block (220a), divided into a second block 220b and a third block 220c).
  • the server 120 may divide the first file 210 according to a predetermined block size, but the present invention is not necessarily limited thereto, and the server 120 is the first file 210
  • the first file 210 may be divided in consideration of the number of the plurality of clients 110, and in addition, the first file 210 may be divided in various ways according to the application environment.
  • the server 120 may compress the divided blocks 220 to reduce data traffic to be transmitted through the network 130.
  • the algorithm used to compress the block 220 may be selected from various compression algorithms according to the type of data to be transmitted.
  • the server 120 divides the plurality of compressed blocks 220 and transmits them to each client 110 at high speed.
  • the server 120 may transmit the plurality of compressed blocks 220 using socket communication with each of the clients 110.
  • the server 120 creates a socket, and then, when the client 110 requests a connection, the server 120 accepts it and a socket connection is formed. , The server 120 transmits the compressed block 220 to the client 110.
  • the server 120 transmits the compressed first block 220a to the first client 110a, and transfers the compressed second block 220b to the second client 110b. Then, the compressed third block 220c is transmitted to the third client 110c.
  • the first client 110a restores the first block 220a by decompressing the compressed first block 220a.
  • the first client 110a may verify a transmission error by performing an error verification operation (Cyclical Redundancy Check, CRC) on the restored first block 220a.
  • CRC Cyclical Redundancy Check
  • the second and third clients 110b and 110c decompress the second and third blocks 220b and 220c to form the second and third blocks 220b and 220c. Restore.
  • the second client 110b and the third client 110c may also perform an error verification operation (CRC) on the restored second block 220b and third block 220c.
  • CRC error verification operation
  • the plurality of clients 220 exchange blocks 220 each of them.
  • the first client (110a) holding the first block (220a) is the second block (220b) and the third block from the second client (110b) and the third client (110c) (220c) is received.
  • the first client 110a holds all of the first block 220a, the second block 220b, and the third block 220c.
  • the first block 220a and the second block The first file 210 is restored from 220b and the third block 220c.
  • the first client 110a may perform an error verification operation (CRC) on the restored first file 210.
  • CRC error verification operation
  • the second client 110b and the third client 110c also collect all of the first block 220a, the second block 220b, and the third block 220c, from which the first file ( 210) can be restored.
  • the second client 110b and the third client 110c may also perform an error verification operation (CRC) on the restored first file 210.
  • CRC error verification operation
  • FIG. 4 illustrates a block diagram showing a specific configuration of the file distribution system 100 according to an embodiment of the present invention.
  • the file distribution system 100 may include a server 120 and a plurality of clients 110.
  • the server 120 may include a web server 121, a file transfer server 122, and a database 123.
  • the client 110 may include an application 111, a file receiving client 112, and a file sharing server 113.
  • the server 120 may perform a control function by interlocking with the application 111 of the client 110 through the HTTP protocol of the web server 121 or the like.
  • the file transmission server 122 of the server 120 transfers the plurality of blocks 220 divided from the first file 210 to the file receiving client 112 of the client 110 using a TCP protocol. Can be transmitted.
  • the server 120 is provided with a database 123 to store and manage data such as distribution policies necessary for management of the plurality of clients 110 and file distribution.
  • the plurality of clients 110 are provided with a file sharing server 113 to exchange the plurality of blocks 220 between the plurality of clients 110 belonging to the same first group 150a or to exchange new distribution policy data It can be used to exchange group information data to share information such as the presence or absence of a child.
  • FIG. 5 shows a flow chart of a file distribution method from the perspective of the server 120 according to an embodiment of the present invention.
  • the server 120 includes a plurality of clients 110 belonging to the first group 150a.
  • the file dividing step (S110) of dividing the first file 210 to be transmitted by the server 120 into a plurality of blocks 220_ and the server 120 A block transmission step (S120) of dividing and transmitting the block 220 of the first group 150a into a plurality of clients 220 belonging to the first group 150a.
  • the first client 220a of the plurality of clients 220 receives some blocks of the plurality of blocks 220 (for example, the first block 220a), and the first group 150a ) After receiving the remaining blocks from among the plurality of blocks from one or more other clients belonging to (e.g., the second block 220b and the third block 220c from the second client 110b and the third client 110c) ), and the first file 210 is restored from the plurality of blocks 220.
  • FIG. 6 shows a flow chart of a file distribution method from the perspective of the client 110 according to an embodiment of the present invention.
  • a plurality of clients 110 belonging to the first group 150a In the method of distributing a file 210, a first client 110a among the plurality of clients 110 is selected from among a plurality of blocks 220 divided in the first file 210 from the server 120 A first block receiving step (S210) of receiving some blocks (for example, the first block 220a), the first client 110a is one or more other clients 110 belonging to the first group 150a Receiving the remaining block 220 of the plurality of blocks 220 from (e.g., receiving the second block 220b and the third block 220c from the second client 110b and the third client 110c) ) A second block receiving step (S220) and a file restoring step (S230) of restoring the first file 210 from the plurality of blocks 220 of the first client 110a.
  • S210 receives the remaining block 220 of the plurality of blocks 220 from (e.g., receiving the second block 220b and the third block 220c from the second client 110b and the third client 110c)
  • FIG. 7 is a flowchart illustrating a specific operation of a method for distributing a file according to an embodiment of the present invention.
  • the first client 110a requests whether there is a new distribution policy to the server 120 (a in FIG. 7 ).
  • the server 120 when there is no file to be newly distributed, the server 120 returns a file to be newly distributed to the first client 110a and that there is no new distribution policy accordingly.
  • the first client 110a periodically checks the presence or absence of a new distribution policy through polling according to a predetermined period (b in FIG. 7 ).
  • the second client 110b and the third client 110c belonging to the same first group as the first client 110a also transmit a new distribution policy to the server 120 through periodic polling. Check the presence or absence periodically.
  • the server 120 is assigned a new distribution policy. Data is transmitted to the first client 110a (c of FIG. 7).
  • the distribution policy data includes identification information such as IP addresses of the plurality of clients 110 belonging to the first group 150a, and information on the first file 210 to be distributed (for example, the first File size and error verification information (CRC) of the file 210, and information on the plurality of blocks 220 divided in the first file 210 (e.g., blocks of the plurality of blocks 220) Size and error verification information (CRC), etc.) may be included.
  • identification information such as IP addresses of the plurality of clients 110 belonging to the first group 150a
  • information on the first file 210 to be distributed for example, the first File size and error verification information (CRC) of the file 210, and information on the plurality of blocks 220 divided in the first file 210 (e.g., blocks of the plurality of blocks 220) Size and error verification information (CRC), etc.
  • the first client 110a receives the transmission of the first block 220a from the server 120 according to the distribution policy data (d in FIG. 7 ).
  • the first client 110a confirms that the server 120 has new distribution policy data
  • group information with other clients 110 belonging to the same first group 150a (segment information in FIG. 7) ) It is notified that there is the new distribution policy data to the other client 110 through the exchange (2 in FIG. 7).
  • the second client 110b and the third client 110c also request and receive distribution policy data from the server 120 (e and f in FIG. 7 ).
  • the second block 220b and the third block 220c are transmitted from the server 120 according to the distribution policy data (g in FIG. 7 ).
  • the plurality of clients 110 belonging to the first group 150a share information on each block 220 received from the server 120, and the remaining blocks 220 required for each client 110 ) Can be received from another client (110).
  • the first client 110a downloads the first block (220a) from the server (120)
  • the second client (110b) and the third client (110c) due to an error, etc. If the block 220b and the third block 220c cannot be provided, the first client 110a may download the second block 220b and the third block 220c from the server 120. have.
  • FIG. 8 illustrates data sharing between clients 110 in a file distribution system according to an embodiment of the present invention.
  • a plurality of clients 110 belonging to the same first group 150a exchanges a plurality of blocks 220 between the plurality of clients 110 or provides new distribution policy data.
  • a data sharing algorithm can be used to exchange group information data to share information such as the presence or absence of a person.
  • the second client 110b belonging to the first group 150a transmits the request for the remaining block 220 transmitted from the first client 110a to the third client 110c connected to it. As a result, it is transmitted to all of the plurality of clients 110 belonging to the first group 150a.
  • the second client 110b checks whether it has the second block 220b. After checking, the message is transmitted to the third client 110c and the fourth client 111d connected to itself (b and c of FIG. 8).
  • the third client 110c indicates that the second client 110b holds the second block 220b.
  • the message is returned (d in FIG. 8 ), and the second client 110b transmits the message to the first client 110a (e in FIG. 8 ).
  • information such as the presence or absence of new distribution policy data is exchanged between a plurality of clients 110 belonging to the same group in this manner.
  • Group information data for sharing can be exchanged.
  • the computer program according to another aspect of the present invention is characterized in that it is a computer program stored in a computer-readable medium in order to execute each step of the salpin file distribution method on a computer.
  • the computer program may be a computer program including not only a computer program including machine code generated by a compiler, but also a computer program including a high-level language code that can be executed on a computer using an interpreter or the like.
  • the computer is not limited to a personal computer (PC) or a notebook computer, and is equipped with a central processing unit (CPU) such as a server, a smart phone, a tablet PC, a PDA, and a mobile phone to execute a computer program. Including the device.
  • the computer-readable medium includes an electronic recording medium (e.g., ROM, flash memory, etc.), a magnetic storage medium (e.g., a floppy disk, a hard disk, etc.), and an optical reading medium (e.g., Includes all storage media that can be read by a computer, such as CD-ROM, DVD, etc.).
  • an electronic recording medium e.g., ROM, flash memory, etc.
  • a magnetic storage medium e.g., a floppy disk, a hard disk, etc.
  • an optical reading medium e.g., Includes all storage media that can be read by a computer, such as CD-ROM, DVD, etc.
  • a file to be transmitted by a server is divided into a plurality of blocks and transmitted by dividing it into a plurality of clients, and the plurality of clients
  • a large file can be distributed at high speed, and further, data traffic distributed from a server to a plurality of clients can be reduced, so that a large file can be transmitted more efficiently.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present invention relates to a file distribution system, method and computer program, and more specifically, to a file distribution system, method and computer program, whereby a server can distribute a large file, at high speed, to a plurality of clients. Disclosed is a file distribution system whereby a server distributes a first file to a plurality of clients belonging to a first group, the file distribution system comprising: a server; and a plurality of clients including a first client, wherein the server segments a first file into a plurality of blocks, and dividedly sends the plurality of blocks to the plurality of clients, and the first client, among the plurality of clients, receives some blocks among the plurality of blocks, and receives the rest of the blocks, of the plurality of blocks, from one or more other clients belonging to a first group, and then reconstructs the first file from the plurality of blocks.

Description

대용량 파일 배포 시스템, 방법 및 컴퓨터 프로그램 및 시스템Large file distribution system, method and computer program and system
본 발명은 파일을 배포하는 시스템, 방법 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 서버가 대용량의 파일을 복수의 클라이언트로 고속 배포할 수 있는 파일 배포 시스템, 방법 및 컴퓨터 프로그램에 관한 것이다.The present invention relates to a system, a method, and a computer program for distributing files, and more particularly, to a file distribution system, a method, and a computer program through which a server can rapidly distribute a large file to a plurality of clients.
정보통신 기술의 발달과 함께 스마트폰이나 개인용 컴퓨터(PC) 등 다양한 단말을 이용한 멀티미디어 정보 등의 활용이 빠르게 증가하고 있다. With the development of information and communication technology, the use of multimedia information using various terminals such as smartphones and personal computers (PC) is rapidly increasing.
특히, 종래에는 정보의 유통을 위하여 주로 텍스트를 포함하는 문서 등이 주로 사용되었으나, 근래 들어서는 사용자가 동영상 등을 활용하는 경우가 빠르게 늘어나고 있으며, 이는 백문불여일견이라는 말처럼 텍스트 만으로 정보를 습득하는 것보다는 동영상이나 이미지 등을 보는 것이 효율적인 경우가 많기 때문이다. In particular, in the past, documents containing text were mainly used for information distribution, but in recent years, users use videos, etc. This is because viewing videos or images is often more efficient.
이에 따라, 유무선 통신 네트워크를 통해 전송되는 파일의 용량 및 데이터 트래픽이 빠르게 증대되고 있는바, 종래의 기술 만으로는 파일 전송에 의해 과부하가 유발되면서 시스템 성능이 저하되거나 나아가 시스템이 정지되는 문제까지 발생할 수 있었다.Accordingly, the capacity and data traffic of files transmitted through the wired/wireless communication network are rapidly increasing, and with the conventional technology alone, the system performance may be degraded or even the system may be stopped due to the overload caused by the file transmission. .
나아가, 대용량의 파일을 전송하기 위해서는 보다 많은 전송 시간이 소요될 수 있으며, 이에 따라 사용자가 제공받는 서비스의 품질이 저하되는 문제도 따를 수 있었다.Furthermore, it may take a longer transmission time to transmit a large file, and accordingly, there may be a problem in that the quality of a service provided to a user is deteriorated.
이에 따라, 제한된 통신 네트워크 환경에서 대용량의 파일을 보다 효율적으로 고속 배포할 수 있는 방안이 지속적으로 요구되고 있는 실정이다.Accordingly, there is a continuous demand for a method for more efficiently and high-speed distribution of large-capacity files in a limited communication network environment.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 창안된 것으로, 제한된 통신 네트워크 환경에서 대용량의 파일을 고속으로 배포할 수 있는 파일 배포 시스템, 방법 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.The present invention was invented to solve the problems of the prior art as described above, and an object of the present invention is to provide a file distribution system, method, and computer program capable of distributing a large file at high speed in a limited communication network environment.
나아가, 본 발명은 서버에서 복수의 클라이언트로 배포하는 데이터 트래픽을 줄여 대용량의 파일을 보다 효율적으로 전송할 수 있는 파일 배포 시스템, 방법 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.Further, an object of the present invention is to provide a file distribution system, method, and computer program capable of more efficiently transmitting a large-capacity file by reducing data traffic distributed from a server to a plurality of clients.
상기 과제를 해결하기 위한 본 발명의 한 측면에 따른 파일 배포 시스템은, 서버에서 제1 그룹에 속하는 복수의 클라이언트로 제1 파일을 배포하는 파일 배포 시스템에 있어서, 서버; 및 제1 클라이언트를 포함하는 복수의 클라이언트;를 포함하여 구성되며, 상기 서버는, 상기 제1 파일을 복수의 블록으로 분할하고, 상기 복수의 블록을 상기 복수의 클라이언트로 나누어 전송하며, 상기 복수의 클라이언트 중 상기 제1 클라이언트는, 상기 복수의 블록 중 일부 블록을 수신하고, 상기 제1 그룹에 속하는 하나 이상의 다른 클라이언트로부터 상기 복수의 블록 중 나머지 블록을 수신한 후, 상기 복수의 블록으로부터 상기 제1 파일을 복원하는 것을 특징으로 한다.A file distribution system according to an aspect of the present invention for solving the above problem is a file distribution system for distributing a first file from a server to a plurality of clients belonging to a first group, comprising: a server; And a plurality of clients including a first client, wherein the server divides the first file into a plurality of blocks, divides the plurality of blocks into the plurality of clients, and transmits the plurality of Among clients, the first client receives some blocks from the plurality of blocks, receives the remaining blocks from the plurality of blocks from one or more other clients belonging to the first group, and then receives the first from the plurality of blocks. It is characterized by restoring files.
이때, 상기 제1 클라이언트는, 자신이 수신한 상기 일부 블록을 상기 다른 클라이언트에게 제공하고, 상기 다른 클라이언트로부터 상기 나머지 블록을 제공받을 수 있다.In this case, the first client may provide the partial block received by the first client to the other client, and may receive the remaining blocks from the other client.
또한, 상기 서버는, 전체 클라이언트 중 일부의 클라이언트를 상기 제1 그룹으로 지정하고, 상기 제1 그룹에 속하는 클라이언트에 대한 정보, 상기 제1 파일에 대한 정보, 상기 복수의 블록에 대한 정보 중 하나 이상을 포함하는 배포 정책 데이터를 제공할 수 있다.In addition, the server designates some of the clients as the first group, and at least one of information on clients belonging to the first group, information on the first file, and information on the plurality of blocks Distribution policy data including a can be provided.
이때, 상기 제1 클라이언트는, 상기 서버에 새로운 배포 정책 데이터가 있음을 확인하면, 상기 다른 클라이언트에게 상기 새로운 배포 정책 데이터가 있음을 알릴 수 있다.In this case, when the first client confirms that there is new distribution policy data in the server, the first client may inform the other client of the existence of the new distribution policy data.
나아가, 상기 제1 클라이언트는, 미리 정해진 주기마다 상기 서버로 배포 정책 데이터를 요청할 수 있다.Furthermore, the first client may request distribution policy data from the server at every predetermined period.
또한, 상기 서버는, 상기 제1 파일을 상기 복수의 클라이언트의 숫자에 따라 상기 복수의 블록으로 분할하여 상기 각 복수의 클라이언트로 전송할 수 있다.In addition, the server may divide the first file into the plurality of blocks according to the number of the plurality of clients and transmit the first file to each of the plurality of clients.
또한, 상기 서버는, 상기 제1 그룹에 더하여, 제2 파일을 복수의 블록으로 분할하여 제2 그룹에 속하는 복수의 클라이언트로 나누어 배포할 수 있다.In addition to the first group, the server may divide the second file into a plurality of blocks and distribute the second file to a plurality of clients belonging to the second group.
또한, 상기 제1 그룹에 속하는 복수의 클라이언트 중 일부 클라이언트가 서버로부터 블록을 수신하지 못하는 경우에는, 상기 복수의 클라이언트 중 다른 클라이언트가 상기 블록을 수신하여 상기 제1 그룹에 속하는 클라이언트로 제공할 수 있다.In addition, when some of the plurality of clients belonging to the first group do not receive a block from the server, another client among the plurality of clients may receive the block and provide it to a client belonging to the first group. .
또한, 상기 제1 그룹에 속하는 제2 클라이언트는, 상기 제1 클라이언트로부터 전송된 상기 나머지 블록에 대한 요청을 자신과 연결된 제3 클라이언트로 전송하여 상기 제1 그룹에 속하는 복수의 클라이언트 전체로 전달시킬 수 있다.In addition, a second client belonging to the first group may transmit a request for the remaining block transmitted from the first client to a third client connected to it and transmit the request to all of the plurality of clients belonging to the first group. have.
또한, 본 발명의 다른 측면에 따른 파일 배포 방법은, 서버가 제1 그룹에 속하는 복수의 클라이언트로 제1 파일을 배포하는 방법에 있어서, 서버가 전송하고자 하는 제1 파일을 복수의 블록으로 분할하는 파일 분할 단계; 및 상기 서버가 상기 복수의 블록을 상기 제1 그룹에 속하는 복수의 클라이언트로 나누어 전송하는 블록 전송 단계;를 포함하며, 상기 복수의 클라이언트 중 제1 클라이언트는, 상기 복수의 블록 중 일부 블록을 수신하고, 상기 제1 그룹에 속하는 하나 이상의 다른 클라이언트로부터 상기 복수의 블록 중 나머지 블록을 수신한 후, 상기 복수의 블록으로부터 상기 제1 파일을 복원하는 것을 특징으로 한다.In addition, a file distribution method according to another aspect of the present invention is a method in which a server distributes a first file to a plurality of clients belonging to a first group, wherein the server divides the first file to be transmitted into a plurality of blocks. File dividing step; And a block transmission step of the server dividing the plurality of blocks into a plurality of clients belonging to the first group and transmitting the blocks, wherein the first client of the plurality of clients receives some blocks of the plurality of blocks, and , After receiving the remaining blocks from among the plurality of blocks from one or more other clients belonging to the first group, the first file is restored from the plurality of blocks.
또한, 본 발명의 또 다른 측면에 따른 파일 배포 방법은, 제1 그룹에 속하는 복수의 클라이언트가 서버로부터 제1 파일을 배포 받는 방법에 있어서, 상기 복수의 클라이언트 중 제1 클라이언트가, 상기 서버로부터 상기 제1 파일에서 분할된 복수의 블록 중 일부 블록을 수신하는 제1 블록 수신 단계; 상기 제1 클라이언트가 상기 제1 그룹에 속하는 하나 이상의 다른 클라이언트로부터 상기 복수의 블록 중 나머지 블록을 수신하는 제2 블록 수신 단계; 및 상기 제1 클라이언트가 상기 복수의 블록으로부터 상기 제1 파일을 복원하는 파일 복원 단계;를 포함하는 것을 특징으로 한다.In addition, a file distribution method according to another aspect of the present invention is a method in which a plurality of clients belonging to a first group distribute a first file from a server, wherein a first client among the plurality of clients receives the first file from the server. A first block receiving step of receiving some blocks among a plurality of blocks divided from a first file; A second block receiving step of receiving, by the first client, the remaining blocks among the plurality of blocks from one or more other clients belonging to the first group; And a file restoration step of restoring, by the first client, the first file from the plurality of blocks.
본 발명의 또 다른 측면에 따른 컴퓨터 프로그램은 상기 기재된 파일 배포 방법의 각 단계를 컴퓨터에서 실행시키기 위한 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램인 것을 특징으로 한다.A computer program according to another aspect of the present invention is characterized in that it is a computer program stored in a computer-readable medium for executing each step of the file distribution method described above on a computer.
본 발명의 일 실시예에 따른 파일 배포 시스템, 방법 및 컴퓨터 프로그램에서는, 서버가 전송하고자 하는 파일을 복수의 블록으로 분할하여 복수의 클라이언트로 나누어 전송하고, 상기 복수의 클라이언트에서 상기 복수의 블록을 서로 공유함으로써, 대용량의 파일을 고속으로 배포할 수 있으며, 나아가 서버에서 복수의 클라이언트로 배포하는 데이터 트래픽을 줄여 대용량의 파일을 보다 효율적으로 전송할 수 있게 된다.In the file distribution system, method, and computer program according to an embodiment of the present invention, a file to be transmitted by a server is divided into a plurality of blocks and transmitted to a plurality of clients, and the plurality of blocks are separated from each other by the plurality of clients. By sharing, a large file can be distributed at high speed, and further, data traffic distributed from a server to a plurality of clients can be reduced, so that a large file can be transmitted more efficiently.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.The accompanying drawings, which are included as part of the detailed description to aid in understanding of the present invention, provide embodiments for the present invention, and describe the technical spirit of the present invention together with the detailed description.
도 1은 본 발명의 일 실시예에 따른 파일 배포 시스템의 구성도이다.1 is a configuration diagram of a file distribution system according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 파일 배포 시스템의 동작을 설명하는 도면이다.2 is a diagram illustrating an operation of a file distribution system according to an embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 파일 배포 시스템의 구체적인 동작을 설명하는 도면이다.3 is a diagram illustrating a specific operation of the file distribution system according to an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 파일 배포 시스템의 구체적인 구성을 도시하는 블록도이다.4 is a block diagram showing a specific configuration of a file distribution system according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 서버 관점의 파일 배포 방법의 순서도이다.5 is a flowchart of a method for distributing files from a server perspective according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 클라이언트 관점의 파일 배포 방법의 순서도이다.6 is a flowchart of a method for distributing a file from a client perspective according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 파일 배포 방법의 구체적인 동작을 예시하는 흐름도이다.7 is a flowchart illustrating a specific operation of a file distribution method according to an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 파일 배포 시스템에서 클라이언트 간의 데이터 공유를 설명하는 도면이다.8 is a diagram illustrating data sharing between clients in a file distribution system according to an embodiment of the present invention.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 이하에서는 특정 실시예들을 첨부된 도면을 기초로 상세히 설명하고자 한다.The present invention may apply various transformations and may have various embodiments. Hereinafter, specific embodiments will be described in detail based on the accompanying drawings.
이하의 실시예는 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.The following examples are provided to aid in a comprehensive understanding of the methods, apparatus and/or systems described herein. However, this is only an example and the present invention is not limited thereto.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시 예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다. In describing the embodiments of the present invention, when it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to the intention or custom of users or operators. Therefore, the definition should be made based on the contents throughout the present specification. The terms used in the detailed description are only for describing the embodiments of the present invention, and should not be limiting. Unless explicitly used otherwise, expressions in the singular form include the meaning of the plural form. In the present description, expressions such as "comprising" or "feature" are intended to refer to certain features, numbers, steps, actions, elements, some or combination thereof, and one or more It should not be construed to exclude the presence or possibility of other features, numbers, steps, actions, elements, any part or combination thereof.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되는 것은 아니며, 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.In addition, terms such as first and second may be used to describe various components, but the components are not limited by the terms, and the terms are used to distinguish one component from other components. Is only used.
이하, 본 발명에 따른 파일 배포 시스템, 방법 및 컴퓨터 프로그램의 예시적인 실시형태들을 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of a file distribution system, method, and computer program according to the present invention will be described in detail with reference to the accompanying drawings.
먼저, 도 1에서는 본 발명의 일 실시예에 따른 파일 배포 시스템(100)의 구성도를 보여주고 있다. 도 1에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 파일 배포 시스템 (100)은, 서버(120)에서 제1 그룹(150a)에 속하는 복수의 클라이언트(110)로 제1 파일(210)을 배포하는 파일 배포 시스템(100)으로서, 서버(120), 제1 클라이언트(110a)를 포함하는 복수의 클라이언트(110) 및 상기 서버(120)와 클라이언트(110)를 연결하는 네트워크(130)를 포함하여 구성될 수 있다.First, FIG. 1 shows a configuration diagram of a file distribution system 100 according to an embodiment of the present invention. As can be seen in FIG. 1, the file distribution system 100 according to an embodiment of the present invention includes a first file 210 from the server 120 to a plurality of clients 110 belonging to the first group 150a. ) As a file distribution system 100 that distributes, a server 120, a plurality of clients 110 including a first client 110a, and a network 130 connecting the server 120 and the client 110 It can be configured to include.
이때, 상기 서버(120)는, 상기 제1 파일(210)을 복수의 블록(220)으로 분할하고, 상기 복수의 블록(220)을 상기 복수의 클라이언트(110)로 나누어 전송하게 된다. 이에 따라, 상기 복수의 클라이언트(110) 중 상기 제1 클라이언트(110a)는, 상기 복수의 블록(220) 중 일부 블록(220)을 수신하고, 상기 제1 그룹(150a)에 속하는 하나 이상의 다른 클라이언트(110)로부터 상기 복수의 블록(220) 중 나머지 블록(220)을 수신한 후, 상기 복수의 블록(220)으로부터 상기 제1 파일(210)을 복원하게 된다.In this case, the server 120 divides the first file 210 into a plurality of blocks 220 and transmits the plurality of blocks 220 by dividing the plurality of blocks 220 into the plurality of clients 110. Accordingly, the first client 110a among the plurality of clients 110 receives some blocks 220 of the plurality of blocks 220, and one or more other clients belonging to the first group 150a After receiving the remaining block 220 of the plurality of blocks 220 from 110, the first file 210 is restored from the plurality of blocks 220.
여기서, 상기 클라이언트(110)로서 스마트폰, 태블릿 PC, PDA, 휴대전화 등 휴대 단말기가 사용될 수 있고, 또는 퍼스널 컴퓨터(PC), 노트북 PC 등 개인용 정보 처리 장치가 사용될 수도 있으며, 나아가 게이트웨이, 라우터 등의 통신용 장비 등 데이터 통신에 이용되는 다양한 장치가 사용될 수도 있다.Here, as the client 110, a portable terminal such as a smart phone, a tablet PC, a PDA, or a mobile phone may be used, or a personal information processing device such as a personal computer (PC) or a notebook PC may be used, and further, a gateway, a router, etc. A variety of devices used for data communication, such as communication equipment, may be used.
또한, 상기 단말(110)과 서버(120)를 연결하는 네트워크(130)로서는 유선 네트워크와 무선 네트워크를 포함할 수 있으며, 구체적으로, 근거리 통신망 (LAN: Local Area Network), 도시권 통신망 (MAN: Metropolitan Area Network), 광역 통신망 (WAN: Wide Area Network) 등의 다양한 통신망을 포함할 수 있다. 또한, 상기 네트워크(130)는 공지의 월드 와이드 웹(WWW: World Wide Web)을 포함할 수도 있다. 그러나, 본 발명에 따른 네트워크(130)는 상기 열거된 네트워크에 국한되지 않고, 공지의 무선 데이터 네트워크나 공지의 전화 네트워크 또는 공지의 유무선 텔레비전 네트워크를 적어도 일부로 포함할 수도 있다.In addition, the network 130 connecting the terminal 110 and the server 120 may include a wired network and a wireless network, and specifically, a local area network (LAN), a metropolitan area network (MAN: Metropolitan Area Network) and a wide area network (WAN). In addition, the network 130 may include a known World Wide Web (WWW). However, the network 130 according to the present invention is not limited to the networks listed above, and may include at least a part of a known wireless data network, a known telephone network, or a known wired/wireless television network.
보다 구체적으로, 도 2에서는 본 발명의 일 실시예에 따른 파일 배포 시스템(100)의 동작을 보다 구체적으로 설명하고 있다. 도 2를 참조하여 살펴보면, 본 발명의 일 실시예에 따른 파일 배포 시스템(100)에서, 상기 서버(120)는 제1 그룹(150a)에 속하는 복수의 클라이언트(110)로 배포하고자 하는 제1 파일(210)을 복수의 블록(220)으로 분할하고, 상기 복수의 블록(220)을 상기 복수의 클라이언트(110)로 나누어 전송하게 된다.More specifically, FIG. 2 describes the operation of the file distribution system 100 according to an embodiment of the present invention in more detail. Referring to FIG. 2, in the file distribution system 100 according to an embodiment of the present invention, the server 120 is a first file to be distributed to a plurality of clients 110 belonging to the first group 150a. (210) is divided into a plurality of blocks 220, and the plurality of blocks 220 is divided into the plurality of clients 110 and transmitted.
보다 구체적인 예를 들어, 상기 서버(120)가 제1 파일(210)을 제1 그룹(150a)에 속하는 제1 클라이언트(110a) 및 제2 클라이언트(110b)로 배포하고자 하는 경우, 상기 서버(120)는 상기 제1 파일(120)을 복수의 블록(예를 들어, 제1 블록(220a) 및 제2 블록(220b))로 분할한 후, 상기 복수의 블록 중 일부인 제1 블록(220a)을 상기 제1 클라이언트(110a)로 전송하고 제2 블록(220b)를 상기 제2 클라이언트(11b)로 전송할 수 있다.For a more specific example, when the server 120 wants to distribute the first file 210 to the first clients 110a and the second clients 110b belonging to the first group 150a, the server 120 ) Divides the first file 120 into a plurality of blocks (for example, a first block 220a and a second block 220b), and then divides the first block 220a, which is a part of the plurality of blocks. It may transmit to the first client 110a and transmit the second block 220b to the second client 11b.
이어서, 상기 복수의 클라이언트(110) 중 제1 클라이언트(110a)는 상기 복수의 블록(220) 중 일부 블록(220)을 수신하고, 상기 제1 그룹(150a)에 속하는 하나 이상의 다른 클라이언트(110)로부터 상기 복수의 블록(220) 중 나머지 블록(220)을 수신한 후, 상기 복수의 블록(220)으로부터 상기 제1 파일(210)을 복원하게 된다.Subsequently, the first client 110a of the plurality of clients 110 receives some blocks 220 of the plurality of blocks 220, and one or more other clients 110 belonging to the first group 150a After receiving the remaining block 220 from among the plurality of blocks 220, the first file 210 is restored from the plurality of blocks 220.
보다 구체적인 예를 들어, 상기 제1 클라이언트(110a)는 상기 복수의 블록(220) 중 일부인 제1 블록(220a)을 수신하고, 상기 제1 그룹(150a)에 속하는 제2 클라이언트(110b)로부터 상기 복수의 블록(220) 중 나머지 제2 블록(220b)을 수신한 후, 상기 제1 블록(220a) 및 제2 블록(220b)으로부터 상기 제1 파일(210)을 복원할 수 있다.For a more specific example, the first client 110a receives the first block 220a, which is a part of the plurality of blocks 220, and receives the first block 220a from the second client 110b belonging to the first group 150a. After receiving the remaining second block 220b of the plurality of blocks 220, the first file 210 may be restored from the first block 220a and the second block 220b.
나아가, 상기 제2 클라이언트(110b)도 상기 복수의 블록(220) 중 일부인 제2 블록(220b)을 수신하고, 상기 제1 그룹(150a)에 속하는 제1 클라이언트(110a)로부터 상기 복수의 블록(220) 중 나머지 제1 블록(220a)을 수신한 후, 상기 제1 블록(220a) 및 제2 블록(220b)으로부터 상기 제1 파일(210)을 복원할 수 있다.Furthermore, the second client 110b also receives the second block 220b, which is a part of the plurality of blocks 220, and the plurality of blocks ( After receiving the remaining first block 220a of 220), the first file 210 may be restored from the first block 220a and the second block 220b.
이와 같이, 상기 제1 클라이언트(110a)는, 자신이 수신한 상기 일부 블록(220)을 상기 다른 클라이언트(110)에게 제공하고, 상기 다른 클라이언트(110)로부터 상기 나머지 블록(220)을 제공받는 과정(즉, 블록의 공유)을 통해, 상기 서버(120)로부터 일부 블록(220) 만을 전송 받으면서도 나머지 블록(220)을 다른 클라이언트(110)로부터 공유 받아 상기 제1 파일(210)을 복원할 수 있게 된다.In this way, the first client 110a provides the partial block 220 received by itself to the other client 110 and receives the remaining block 220 from the other client 110 (I.e., through block sharing), while receiving only some blocks 220 from the server 120, the first file 210 can be restored by receiving the remaining blocks 220 from other clients 110 do.
또한, 도 2에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 파일 배포 시스템, 방법 및 컴퓨터 프로그램에서, 상기 서버(120)는 상기 제1 그룹(150a)에 더하여, 제2 파일(230)을 복수의 블록(220)으로 분할하여 제2 그룹(150b)에 속하는 복수의 클라이언트(110)로 나누어 배포할 수 있다.In addition, as can be seen in Figure 2, in the file distribution system, method, and computer program according to an embodiment of the present invention, the server 120 in addition to the first group 150a, the second file 230 ) May be divided into a plurality of blocks 220 and distributed to a plurality of clients 110 belonging to the second group 150b.
이때, 상기 제2 파일(230)은 상기 제1 파일(210)과 상이한 파일일 수 있겠으나, 본 발명이 반드시 이에 한정되는 것은 아니며, 상기 제2 파일(230)이 상기 제1 파일(210)과 동일한 파일일 수도 있다.In this case, the second file 230 may be a file different from the first file 210, but the present invention is not necessarily limited thereto, and the second file 230 is the first file 210 It may be the same file as.
보다 구체적으로, 도 3에서는 본 발명의 일 실시예에 따른 파일 배포 시스템(100)의 구체적인 동작을 설명하고 있다. 도 3에서 볼 수 있는 바와 같이, 먼저 서버(120)는 배포하고자 하는 제1 파일(210)을 복수의 블록(220)으로 분할하게 된다(예를 들어, 도 3에 예시된 바와 같이 제1 블록(220a), 제2 블록(220b) 및 제3 블록(220c)으로 분할).More specifically, in FIG. 3, a detailed operation of the file distribution system 100 according to an embodiment of the present invention is described. As can be seen in FIG. 3, first, the server 120 divides the first file 210 to be distributed into a plurality of blocks 220 (for example, as illustrated in FIG. 3, the first block (220a), divided into a second block 220b and a third block 220c).
이때, 상기 서버(120)는 미리 정해진 블록 사이즈에 따라 상기 제1 파일(210)을 분할할 수 있으나, 본 발명이 반드시 이에 한정되는 것은 아니며, 상기 서버(120)는 상기 제1 파일(210)을 상기 복수의 클라이언트(110)의 숫자를 고려하여 분할하는 것도 가능하며, 이외에도 적용 환경에 따라 다양한 방법으로 상기 제1 파일(210)을 분할하는 것도 가능하다.In this case, the server 120 may divide the first file 210 according to a predetermined block size, but the present invention is not necessarily limited thereto, and the server 120 is the first file 210 The first file 210 may be divided in consideration of the number of the plurality of clients 110, and in addition, the first file 210 may be divided in various ways according to the application environment.
이어서, 상기 서버(120)는 상기 분할된 블록(220)을 압축(compress)하여 네트워크(130)를 통해 전송될 데이터 트래픽을 줄일 수 있다. 이때, 상기 블록(220)을 압축하기 위하여 사용되는 알고리즘은 전송하고자 하는 데이터의 종류에 따라 다양한 압축 알고리즘 중에서 선택될 수 있다.Subsequently, the server 120 may compress the divided blocks 220 to reduce data traffic to be transmitted through the network 130. In this case, the algorithm used to compress the block 220 may be selected from various compression algorithms according to the type of data to be transmitted.
이어서, 서버(120)는 상기 압축된 복수의 블록(220)을 나누어 각 클라이언트(110)로 고속 전송하게 된다.Subsequently, the server 120 divides the plurality of compressed blocks 220 and transmits them to each client 110 at high speed.
이때, 상기 서버(120)는 상기 각 클라이언트(110)와 소켓 통신(socket communication)을 이용하여 상기 압축된 복수의 블록(220)을 전송할 수 있다. In this case, the server 120 may transmit the plurality of compressed blocks 220 using socket communication with each of the clients 110.
보다 구체적으로, 먼저 상기 서버(120)가 소켓(socket)을 생성하게 되고, 이어서 상기 클라이언트(110)가 연결을 요청(connection request)하면, 상기 서버(120)가 이를 수락하여 소켓 연결이 형성되고, 상기 서버(120)가 상기 압축된 블록(220)을 상기 클라이언트(110)로 전송하게 된다.More specifically, first, the server 120 creates a socket, and then, when the client 110 requests a connection, the server 120 accepts it and a socket connection is formed. , The server 120 transmits the compressed block 220 to the client 110.
이러한 과정을 통해, 상기 서버(120)는 상기 압축된 제1 블록(220a)을 상기 제1 클라이언트(110a)로 전송하고, 상기 압축된 제2 블록(220b)을 상기 제2 클라이언트(110b)로 전송하며, 상기 압축된 제3 블록(220c)을 상기 제3 클라이언트(110c)로 전송하게 된다.Through this process, the server 120 transmits the compressed first block 220a to the first client 110a, and transfers the compressed second block 220b to the second client 110b. Then, the compressed third block 220c is transmitted to the third client 110c.
이에 따라, 상기 제1 클라이언트(110a)는 상기 압축된 제1 블록(220a)의 압축을 풀어(decompress) 상기 제1 블록(220a)을 복원한다. 이때, 상기 제1 클라이언트(110a)는 상기 복원된 제1 블록(220a)에 대하여 오류 검증 작업(Cyclical Redundancy Check, CRC)을 수행하여 전송상의 오류를 검증할 수도 있다.Accordingly, the first client 110a restores the first block 220a by decompressing the compressed first block 220a. In this case, the first client 110a may verify a transmission error by performing an error verification operation (Cyclical Redundancy Check, CRC) on the restored first block 220a.
마찬가지로 상기 제2 클라이언트(110b)와 상기 제3 클라이언트(110c)도 상기 제2 블록(220b)와 제3 블록(220c)의 압축을 풀어 상기 제2 블록(220b)와 상기 제3 블록(220c)을 복원한다. 또한, 상기 제2 클라이언트(110b)와 제3 클라이언트(110c)도 상기 복원된 제2 블록(220b) 및 제3 블록(220c)에 대하여 오류 검증 작업(CRC)을 수행할 수 있다.Likewise, the second and third clients 110b and 110c decompress the second and third blocks 220b and 220c to form the second and third blocks 220b and 220c. Restore. In addition, the second client 110b and the third client 110c may also perform an error verification operation (CRC) on the restored second block 220b and third block 220c.
이어서, 상기 복수의 클라이언트(220)는 각자 보유하고 있는 블록(220)을 교환하게 된다.Subsequently, the plurality of clients 220 exchange blocks 220 each of them.
보다 구체적으로, 상기 제1 블록(220a)을 보유하고 있는 상기 제1 클라이언트(110a)는 상기 제2 클라이언트(110b)와 상기 제3 클라이언트(110c)로부터 상기 제2 블록(220b)와 제3 블록(220c)를 수신하게 된다.More specifically, the first client (110a) holding the first block (220a) is the second block (220b) and the third block from the second client (110b) and the third client (110c) (220c) is received.
이에 따라, 상기 제1 클라이언트(110a)는 상기 제1 블록(220a), 제2 블록(220b) 및 제3 블록(220c)을 모두 보유하게 되는 바, 상기 제1 블록(220a), 제2 블록(220b) 및 제3 블록(220c)으로부터 상기 제1 파일(210)을 복원하게 된다. 이때, 상기 제1 클라이언트(110a)는 상기 복원된 제1 파일(210)에 대하여 오류 검증 작업(CRC)을 수행할 수도 있다.Accordingly, the first client 110a holds all of the first block 220a, the second block 220b, and the third block 220c. The first block 220a and the second block The first file 210 is restored from 220b and the third block 220c. In this case, the first client 110a may perform an error verification operation (CRC) on the restored first file 210.
마찬가지로, 상기 제2 클라이언트(110b)와 상기 제3 클라이언트(110c)도 상기 제1 블록(220a), 제2 블록(220b) 및 제3 블록(220c)을 모두 수집하고 이로부터 상기 제1 파일(210)을 복원할 수 있게 된다. 또한, 상기 제2 클라이언트(110b)와 제3 클라이언트(110c)도 상기 복원된 제1 파일(210)에 대하여 오류 검증 작업(CRC)을 수행할 수 있다.Similarly, the second client 110b and the third client 110c also collect all of the first block 220a, the second block 220b, and the third block 220c, from which the first file ( 210) can be restored. In addition, the second client 110b and the third client 110c may also perform an error verification operation (CRC) on the restored first file 210.
또한, 도 4에서는 본 발명의 일 실시예에 따른 파일 배포 시스템(100)의 구체적인 구성을 도시하는 블록도를 예시하고 있다. 도 4에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 파일 배포 시스템(100)은, 서버(120) 및 복수의 클라이언트(110)를 포함하여 구성될 수 있다.In addition, FIG. 4 illustrates a block diagram showing a specific configuration of the file distribution system 100 according to an embodiment of the present invention. As can be seen in FIG. 4, the file distribution system 100 according to an embodiment of the present invention may include a server 120 and a plurality of clients 110.
이때, 상기 서버(120)는 웹서버(121), 파일 전송 서버(122) 및 데이터베이스(123)를 포함할 수 있다.In this case, the server 120 may include a web server 121, a file transfer server 122, and a database 123.
또한, 상기 클라이언트(110)는 어플리케이션(111), 파일 수신 클라이언트(112) 및 파일 공유 서버(113)를 포함할 수 있다.In addition, the client 110 may include an application 111, a file receiving client 112, and a file sharing server 113.
이때, 상기 서버(120)는 상기 웹서버(121)의 HTTP 프로토콜 등을 통해 상기 클라이언트(110)의 어플리케이션(111)과 연동되어 제어 기능을 수행할 수 있다.In this case, the server 120 may perform a control function by interlocking with the application 111 of the client 110 through the HTTP protocol of the web server 121 or the like.
또한, 상기 서버(120)의 파일 전송 서버(122)는 TCP 프로토콜을 이용하여 상기 제1 파일(210)에서 분할된 복수의 블록(220)을 상기 클라이언트(110)의 파일 수신 클라이언트(112)로 전송할 수 있다.In addition, the file transmission server 122 of the server 120 transfers the plurality of blocks 220 divided from the first file 210 to the file receiving client 112 of the client 110 using a TCP protocol. Can be transmitted.
또한, 상기 서버(120)에는 데이터베이스(123)가 구비되어 상기 복수의 클라이언트(110)에 대한 관리, 파일 배포 등에 필요한 배포 정책 등의 데이터를 저장하고 관리할 수 있다.In addition, the server 120 is provided with a database 123 to store and manage data such as distribution policies necessary for management of the plurality of clients 110 and file distribution.
또한, 상기 복수의 클라이언트(110)에는 파일 공유 서버(113)가 구비되어 상기 동일한 제1 그룹(150a)에 속하는 복수의 클라이언트(110) 간에 상기 복수의 블록(220)을 교환하거나 신규 배포 정책 데이터의 유무 등의 정보를 공유하기 위한 그룹 정보 데이터 등을 교환하는데 사용될 수 있다.In addition, the plurality of clients 110 are provided with a file sharing server 113 to exchange the plurality of blocks 220 between the plurality of clients 110 belonging to the same first group 150a or to exchange new distribution policy data It can be used to exchange group information data to share information such as the presence or absence of a child.
또한, 도 5에서는 본 발명의 일 실시예에 따른 서버(120) 관점의 파일 배포 방법의 순서도를 도시하고 있다. In addition, FIG. 5 shows a flow chart of a file distribution method from the perspective of the server 120 according to an embodiment of the present invention.
도 5에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 서버(120) 관점의 파일 배포 방법은, 서버가(120) 제1 그룹(150a)에 속하는 복수의 클라이언트(110)로 제1 파일(210)을 배포하는 방법에 있어서, 서버(120)가 전송하고자 하는 제1 파일(210)을 복수의 블록(220_으로 분할하는 파일 분할 단계(S110) 및 상기 서버(120)가 상기 복수의 블록(220)을 상기 제1 그룹(150a)에 속하는 복수의 클라이언트(220)로 나누어 전송하는 블록 전송 단계(S120)를 포함하게 된다.As can be seen in FIG. 5, in the method of distributing files from the viewpoint of the server 120 according to an embodiment of the present invention, the server 120 includes a plurality of clients 110 belonging to the first group 150a. In the method of distributing the file 210, the file dividing step (S110) of dividing the first file 210 to be transmitted by the server 120 into a plurality of blocks 220_ and the server 120 A block transmission step (S120) of dividing and transmitting the block 220 of the first group 150a into a plurality of clients 220 belonging to the first group 150a.
이때, 상기 복수의 클라이언트(220) 중 제1 클라이언트(220a)는, 상기 복수의 블록(220) 중 일부 블록을 수신하고(예를 들어, 제1 블록(220a)), 상기 제1 그룹(150a)에 속하는 하나 이상의 다른 클라이언트로부터 상기 복수의 블록 중 나머지 블록을 수신한 후(예를 들어, 제2 클라이언트(110b)와 제3 클라이언트(110c)으로부터 제2 블록(220b)과 제3 블록(220c)을 수신), 상기 복수의 블록(220)으로부터 상기 제1 파일(210)을 복원하는 것을 특징으로 한다.In this case, the first client 220a of the plurality of clients 220 receives some blocks of the plurality of blocks 220 (for example, the first block 220a), and the first group 150a ) After receiving the remaining blocks from among the plurality of blocks from one or more other clients belonging to (e.g., the second block 220b and the third block 220c from the second client 110b and the third client 110c) ), and the first file 210 is restored from the plurality of blocks 220.
또한, 도 6에서는 본 발명의 일 실시예에 따른 클라이언트(110) 관점의 파일 배포 방법의 순서도를 도시하고 있다. In addition, FIG. 6 shows a flow chart of a file distribution method from the perspective of the client 110 according to an embodiment of the present invention.
도 6에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 클라이언트(110) 관점의 파일 배포 방법은, 제1 그룹(150a)에 속하는 복수의 클라이언트(110)가 서버(120)로부터 제1 파일(210)을 배포 받는 방법에 있어서, 상기 복수의 클라이언트(110) 중 제1 클라이언트(110a)가, 상기 서버(120)로부터 상기 제1 파일(210)에서 분할된 복수의 블록(220) 중 일부 블록을 수신(예를 들어, 제1 블록(220a))하는 제1 블록 수신 단계(S210), 상기 제1 클라이언트(110a)가 상기 제1 그룹(150a)에 속하는 하나 이상의 다른 클라이언트(110)로부터 상기 복수의 블록(220) 중 나머지 블록(220)을 수신(예를 들어, 제2 클라이언트(110b)와 제3 클라이언트(110c)으로부터 제2 블록(220b)과 제3 블록(220c)을 수신)하는 제2 블록 수신 단계(S220) 및 상기 제1 클라이언트(110a)상기 복수의 블록(220)으로부터 상기 제1 파일(210)을 복원하는 파일 복원 단계(S230)를 포함하게 된다.As can be seen in FIG. 6, in the file distribution method from the perspective of the client 110 according to an embodiment of the present invention, a plurality of clients 110 belonging to the first group 150a In the method of distributing a file 210, a first client 110a among the plurality of clients 110 is selected from among a plurality of blocks 220 divided in the first file 210 from the server 120 A first block receiving step (S210) of receiving some blocks (for example, the first block 220a), the first client 110a is one or more other clients 110 belonging to the first group 150a Receiving the remaining block 220 of the plurality of blocks 220 from (e.g., receiving the second block 220b and the third block 220c from the second client 110b and the third client 110c) ) A second block receiving step (S220) and a file restoring step (S230) of restoring the first file 210 from the plurality of blocks 220 of the first client 110a.
보다 구체적으로, 도 7에서는 본 발명의 일 실시예에 따른 파일 배포 방법의 구체적인 동작을 예시하는 흐름도를 도시하고 있다. More specifically, FIG. 7 is a flowchart illustrating a specific operation of a method for distributing a file according to an embodiment of the present invention.
이하, 도 7을 참조하여 본 발명의 일 실시예에 따른 파일 배포 방법을 보다 자세하게 설명한다.Hereinafter, a file distribution method according to an embodiment of the present invention will be described in more detail with reference to FIG. 7.
먼저, 상기 제1 클라이언트(110a)는 상기 서버(120)로 새로운 배포 정책이 있는지 요청하게 된다(도 7의 ⓐ).First, the first client 110a requests whether there is a new distribution policy to the server 120 (ⓐ in FIG. 7 ).
이때, 새롭게 배포할 파일이 없는 경우, 상기 서버(120)는 상기 제1 클라이언트(110a)로 새롭게 배포할 파일 및 그에 따른 새로운 배포 정책이 없음을 회신하게 된다.In this case, when there is no file to be newly distributed, the server 120 returns a file to be newly distributed to the first client 110a and that there is no new distribution policy accordingly.
이에 대하여, 상기 제1 클라이언트(110a)는 미리 정해진 주기에 따른 폴링(polling)을 통해 새로운 배포 정책의 유무를 주기적으로 확인하게 된다(도 7의 ⓑ).In contrast, the first client 110a periodically checks the presence or absence of a new distribution policy through polling according to a predetermined period (b in FIG. 7 ).
이와 유사하게, 상기 제1 클라이언트(110a)와 동일한 제1 그룹에 속하는 제2 클라이언트(110b)와 제3 클라이언트(110c)도 주기적인 폴링(polling)을 통해 상기 서버(120)로 새로운 배포 정책의 유무를 주기적으로 확인한다.Similarly, the second client 110b and the third client 110c belonging to the same first group as the first client 110a also transmit a new distribution policy to the server 120 through periodic polling. Check the presence or absence periodically.
이어서, 상기 서버(120)에 새롭게 배포할 제1 파일(210)이 준비된 경우, 상기 제1 클라이언트(110a)의 배포 정책 요청에 대하여(도 7의 ①), 상기 서버(120)는 새로운 배포 정책 데이터를 상기 제1 클라이언트(110a)로 전송하게 된다(도 7의 ⓒ).Subsequently, when the first file 210 to be newly distributed to the server 120 is prepared, in response to the request for the distribution policy of the first client 110a (1 in Fig. 7), the server 120 is assigned a new distribution policy. Data is transmitted to the first client 110a (ⓒ of FIG. 7).
이때, 상기 배포 정책 데이터에는 상기 제1 그룹(150a)에 속하는 복수의 클라이언트(110)의 IP 주소 등 식별 정보, 상기 배포하고자 하는 제1 파일(210)에 대한 정보(예를 들어, 상기 제1 파일(210)의 파일 사이즈와 오류 검증 정보(CRC) 등), 상기 제1 파일(210)에서 분할된 복수의 블록(220)에 대한 정보(예를 들어, 상기 복수의 블록(220)의 블록 사이즈와 오류 검증 정보(CRC) 등)이 포함될 수 있다.In this case, the distribution policy data includes identification information such as IP addresses of the plurality of clients 110 belonging to the first group 150a, and information on the first file 210 to be distributed (for example, the first File size and error verification information (CRC) of the file 210, and information on the plurality of blocks 220 divided in the first file 210 (e.g., blocks of the plurality of blocks 220) Size and error verification information (CRC), etc.) may be included.
이에 따라, 상기 제1 클라이언트(110a)는 상기 배포 정책 데이터에 따라 상기 서버(120)로부터 상기 제1 블록(220a)을 전송 받게 된다(도 7의 ⓓ).Accordingly, the first client 110a receives the transmission of the first block 220a from the server 120 according to the distribution policy data (ⓓ in FIG. 7 ).
또한, 상기 제1 클라이언트(110a)는, 상기 서버(120)에 새로운 배포 정책 데이터가 있음을 확인하면, 동일한 제1 그룹(150a)에 속하는 다른 클라이언트(110)와의 그룹 정보(도 7의 세그먼트 정보) 교환을 통해 다른 클라이언트(110)에게 상기 새로운 배포 정책 데이터가 있음을 알리게 된다(도 7의 ②).In addition, when the first client 110a confirms that the server 120 has new distribution policy data, group information with other clients 110 belonging to the same first group 150a (segment information in FIG. 7) ) It is notified that there is the new distribution policy data to the other client 110 through the exchange (2 in FIG. 7).
이에 따라, 상기 제2 클라이언트(110b)와 상기 제3 클라이언트(110c)에서도 상기 서버(120)로 배포 정책 데이터를 요청하여 수신하고(도 7의 ⓔ 및 ⓕ). 상기 배포 정책 데이터에 따라 상기 서버(120)로부터 상기 제2 블록(220b) 및 제3 블록(220c)을 전송 받게 된다(도 7의 ⓖ).Accordingly, the second client 110b and the third client 110c also request and receive distribution policy data from the server 120 (ⓔ and ⓕ in FIG. 7 ). The second block 220b and the third block 220c are transmitted from the server 120 according to the distribution policy data (ⓖ in FIG. 7 ).
나아가, 상기 동일한 제1 그룹(150a)에 속하는 복수의 클라이언트(110)들은 상기 그룹 정보 교환을 통해, 상기 제1 그룹(150a)에 속하는 복수의 클라이언트(110) 중에서 동작 오류 등의 원인으로 상기 서버(120)로부터 블록(220)을 수신하지 못하는 클라이언트(110)가 존재하는지 확인하고, 이러한 경우 상기 복수의 클라이언트(110) 중 다른 클라이언트(110)가 상기 블록(220)을 수신하여 상기 제1 그룹(150a)에 속하는 클라이언트(110)로 제공할 수 있다.Further, a plurality of clients 110 belonging to the same first group 150a, among the plurality of clients 110 belonging to the first group 150a, through the group information exchange, It is checked whether a client 110 that cannot receive the block 220 from 120 exists, and in this case, another client 110 among the plurality of clients 110 receives the block 220 and the first group It can be provided to the client 110 belonging to (150a).
이에 따라, 상기 제1 그룹(150a)에 속하는 복수의 클라이언트(110)는 상기 서버(120)로부터 수신한 각 블록(220)에 대한 정보를 공유하고, 각 클라이언트(110)가 필요한 나머지 블록(220)을 다른 클라이언트(110)로부터 수신할 수 있게 된다.Accordingly, the plurality of clients 110 belonging to the first group 150a share information on each block 220 received from the server 120, and the remaining blocks 220 required for each client 110 ) Can be received from another client (110).
나아가, 상기 제1 클라이언트(110a)가 상기 서버(120)로부터 상기 제1 블록(220a)을 다운로드한 후, 오류 등으로 인하여 상기 제2 클라이언트(110b) 및 제3 클라이언트(110c)로부터 상기 제2 블록(220b) 및 제3 블록(220c)를 제공받을 수 없는 경우, 상기 제1 클라이언트(110a)는 상기 서버(120)로부터 상기 제2 블록(220b) 및 제3 블록(220c)를 다운로드 받을 수도 있다.Further, after the first client (110a) downloads the first block (220a) from the server (120), the second client (110b) and the third client (110c) due to an error, etc. If the block 220b and the third block 220c cannot be provided, the first client 110a may download the second block 220b and the third block 220c from the server 120. have.
또한, 도 8에서는 본 발명의 일 실시예에 따른 파일 배포 시스템에서 클라이언트(110) 간의 데이터 공유를 설명하고 있다.In addition, FIG. 8 illustrates data sharing between clients 110 in a file distribution system according to an embodiment of the present invention.
도 8에서 볼 수 있는 바와 같이, 본 발명에서 동일한 제1 그룹(150a)에 속하는 복수의 클라이언트(110)는, 상기 복수의 클라이언트(110) 간에 복수의 블록(220)을 교환하거나 신규 배포 정책 데이터의 유무 등의 정보를 공유하기 위한 그룹 정보 데이터 등을 교환하기 위하여 데이터 공유 알고리즘을 사용할 수 있다.As can be seen in FIG. 8, in the present invention, a plurality of clients 110 belonging to the same first group 150a exchanges a plurality of blocks 220 between the plurality of clients 110 or provides new distribution policy data. A data sharing algorithm can be used to exchange group information data to share information such as the presence or absence of a person.
이때, 상기 제1 그룹(150a)에 속하는 제2 클라이언트(110b)는, 상기 제1 클라이언트(110a)로부터 전송된 상기 나머지 블록(220)에 대한 요청을 자신과 연결된 제3 클라이언트(110c)로 전송하여 상기 제1 그룹(150a)에 속하는 복수의 클라이언트(110) 전체로 전달시키게 된다.At this time, the second client 110b belonging to the first group 150a transmits the request for the remaining block 220 transmitted from the first client 110a to the third client 110c connected to it. As a result, it is transmitted to all of the plurality of clients 110 belonging to the first group 150a.
보다 구체적으로, 도 8에서 볼 수 있는 바와 같이, 상기 제1 그룹에 속하는 제1 클라이언트(110a)가 자신이 수신한 제1 블록(220a) 이외의 제2 블록(220b)를 제공 받기 위하여 자신과 연결된 제2 클라이언트(110b)로 상기 제2 블록(220b)을 요청하는 메시지를 전송하면(도 8의 ⓐ), 상기 제2 클라이언트(110b)는 자신이 상기 제2 블록(220b)을 보유하고 있는지 확인하고, 상기 메시지를 자신과 연결된 제3 클라이언트(110c)와 제4 클라이언트(111d)로 전송하게 된다(도 8의 ⓑ 및 ⓒ).More specifically, as can be seen in FIG. 8, in order to receive a second block 220b other than the first block 220a received by the first client 110a belonging to the first group, When a message requesting the second block 220b is transmitted to the connected second client 110b (ⓐ in FIG. 8), the second client 110b checks whether it has the second block 220b. After checking, the message is transmitted to the third client 110c and the fourth client 111d connected to itself (b and ⓒ of FIG. 8).
이어서, 상기 제3 클라이언트(110c)가 상기 제2 블록(220b)을 보유하고 있는 경우, 상기 제3 클라이언트(110c)는 상기 제2 클라이언트(110b)로 상기 제2 블록(220b)을 보유하고 있다는 메시지를 회신하고 되고(도 8의 ⓓ), 상기 제2 클라이언트(110b)는 상기 제1 클라이언트(110a)로 상기 메시지를 전달하게 된다(도 8의 ⓔ).Subsequently, when the third client 110c holds the second block 220b, the third client 110c indicates that the second client 110b holds the second block 220b. The message is returned (ⓓ in FIG. 8 ), and the second client 110b transmits the message to the first client 110a (ⓔ in FIG. 8 ).
본 발명의 일 실시예에 따른 파일 배포 시스템, 방법 및 컴퓨터 프로그램에서는 이러한 방식으로 동일한 그룹에 속하는 복수의 클라이언트(110) 간에 복수의 블록(220)을 교환하거나 신규 배포 정책 데이터의 유무 등의 정보를 공유하기 위한 그룹 정보 데이터 등을 교환할 수 있게 된다.In the file distribution system, method, and computer program according to an embodiment of the present invention, information such as the presence or absence of new distribution policy data is exchanged between a plurality of clients 110 belonging to the same group in this manner. Group information data for sharing can be exchanged.
또한, 본 발명의 또 다른 측면에 따른 컴퓨터 프로그램은 앞서 살핀 파일 배포 방법의 각 단계를 컴퓨터에서 실행시키기 위하여 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램인 것을 특징으로 한다. 상기 컴퓨터 프로그램은 컴파일러에 의해 만들어지는 기계어 코드를 포함하는 컴퓨터 프로그램뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에서 실행될 수 있는 고급 언어 코드를 포함하는 컴퓨터 프로그램일 수도 있다. 이때, 상기 컴퓨터로서는 퍼스널 컴퓨터(PC)나 노트북 컴퓨터 등에 한정되지 아니하며, 서버, 스마트폰, 태블릿 PC, PDA, 휴대전화 등 중앙처리장치(CPU)를 구비하여 컴퓨터 프로그램을 실행할 수 있는 일체의 정보처리 장치를 포함한다. 또한, 상기 상기 컴퓨터로 판독 가능한 매체는 전자적 기록 매체(예를 들면, 롬, 플래시 메모리, 등), 마그네틱 저장매체(예를 들면, 플로피 디스크, 하드디스크 등) 및 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같이 컴퓨터로 판독이 가능한 일체의 저장매체를 포함한다.In addition, the computer program according to another aspect of the present invention is characterized in that it is a computer program stored in a computer-readable medium in order to execute each step of the salpin file distribution method on a computer. The computer program may be a computer program including not only a computer program including machine code generated by a compiler, but also a computer program including a high-level language code that can be executed on a computer using an interpreter or the like. In this case, the computer is not limited to a personal computer (PC) or a notebook computer, and is equipped with a central processing unit (CPU) such as a server, a smart phone, a tablet PC, a PDA, and a mobile phone to execute a computer program. Including the device. In addition, the computer-readable medium includes an electronic recording medium (e.g., ROM, flash memory, etc.), a magnetic storage medium (e.g., a floppy disk, a hard disk, etc.), and an optical reading medium (e.g., Includes all storage media that can be read by a computer, such as CD-ROM, DVD, etc.).
이에 따라, 본 발명의 일 실시예에 따른 파일 배포 시스템, 방법 및 컴퓨터 프로그램에서는, 서버가 전송하고자 하는 파일을 복수의 블록으로 분할하여 복수의 클라이언트로 나누어 전송하고, 상기 복수의 클라이언트에서 상기 복수의 블록을 서로 공유함으로써, 대용량의 파일을 고속으로 배포할 수 있으며, 나아가 서버에서 복수의 클라이언트로 배포하는 데이터 트래픽을 줄여 대용량의 파일을 보다 효율적으로 전송할 수 있게 된다.Accordingly, in the file distribution system, method, and computer program according to an embodiment of the present invention, a file to be transmitted by a server is divided into a plurality of blocks and transmitted by dividing it into a plurality of clients, and the plurality of clients By sharing blocks with each other, a large file can be distributed at high speed, and further, data traffic distributed from a server to a plurality of clients can be reduced, so that a large file can be transmitted more efficiently.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명에 기재된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의해서 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those of ordinary skill in the art to which the present invention pertains will be able to make various modifications and variations without departing from the essential characteristics of the present invention. Therefore, the embodiments described in the present invention are not intended to limit the technical idea of the present invention, but to explain it, and are not limited to these embodiments. The scope of protection of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

Claims (12)

  1. 서버에서 제1 그룹에 속하는 복수의 클라이언트로 제1 파일을 배포하는 파일 배포 시스템에 있어서,A file distribution system for distributing a first file from a server to a plurality of clients belonging to a first group,
    서버; 및server; And
    제1 클라이언트를 포함하는 복수의 클라이언트;를 포함하여 구성되며,It is configured to include; a plurality of clients including the first client,
    상기 서버는, The server,
    상기 제1 파일을 복수의 블록으로 분할하고, Dividing the first file into a plurality of blocks,
    상기 복수의 블록을 상기 복수의 클라이언트로 나누어 전송하며,The plurality of blocks are divided and transmitted to the plurality of clients,
    상기 복수의 클라이언트 중 상기 제1 클라이언트는,The first client among the plurality of clients,
    상기 복수의 블록 중 일부 블록을 수신하고,Receive some blocks of the plurality of blocks,
    상기 제1 그룹에 속하는 하나 이상의 다른 클라이언트로부터 상기 복수의 블록 중 나머지 블록을 수신한 후,After receiving the remaining blocks from among the plurality of blocks from one or more other clients belonging to the first group,
    상기 복수의 블록으로부터 상기 제1 파일을 복원하는 것을 특징으로 하는 파일 배포 시스템.And restoring the first file from the plurality of blocks.
  2. 제1항에 있어서,The method of claim 1,
    상기 제1 클라이언트는,The first client,
    자신이 수신한 상기 일부 블록을 상기 다른 클라이언트에게 제공하고,Provides the some block received by itself to the other client,
    상기 다른 클라이언트로부터 상기 나머지 블록을 제공받는 것을 특징으로 하는 파일 배포 시스템.File distribution system, characterized in that receiving the remaining blocks from the other client.
  3. 제1항에 있어서,The method of claim 1,
    상기 서버는,The server,
    전체 클라이언트 중 일부의 클라이언트를 상기 제1 그룹으로 지정하고,Some clients of all clients are designated as the first group,
    상기 제1 그룹에 속하는 클라이언트에 대한 정보, 상기 제1 파일에 대한 정보, 상기 복수의 블록에 대한 정보 중 하나 이상을 포함하는 배포 정책 데이터를 제공하는 것을 특징으로 하는 파일 배포 시스템. And providing distribution policy data including at least one of information on clients belonging to the first group, information on the first file, and information on the plurality of blocks.
  4. 제3항에 있어서,The method of claim 3,
    상기 제1 클라이언트는,The first client,
    상기 서버에 새로운 배포 정책 데이터가 있음을 확인하면,When it is confirmed that there is new distribution policy data in the server,
    상기 다른 클라이언트에게 상기 새로운 배포 정책 데이터가 있음을 알리는 것을 특징으로 하는 파일 배포 시스템.File distribution system, characterized in that notifying the presence of the new distribution policy data to the other client.
  5. 제3항에 있어서,The method of claim 3,
    상기 제1 클라이언트는,The first client,
    미리 정해진 주기마다 상기 서버로 배포 정책 데이터를 요청하는 것을 특징으로 하는 파일 배포 시스템.A file distribution system, comprising requesting distribution policy data to the server every predetermined period.
  6. 제1항에 있어서,The method of claim 1,
    상기 서버는,The server,
    상기 제1 파일을 상기 복수의 클라이언트의 숫자에 따라 상기 복수의 블록으로 분할하여 상기 각 복수의 클라이언트로 전송하는 것을 특징으로 하는 파일 배포 시스템.And transmitting the first file to each of the plurality of clients by dividing the first file into the plurality of blocks according to the number of the plurality of clients.
  7. 제1항에 있어서,The method of claim 1,
    상기 서버는,The server,
    상기 제1 그룹에 더하여,In addition to the first group,
    제2 파일을 복수의 블록으로 분할하여 제2 그룹에 속하는 복수의 클라이언트로 나누어 배포하는 것을 특징으로 하는 파일 배포 시스템.A file distribution system, characterized in that the second file is divided into a plurality of blocks and distributed to a plurality of clients belonging to the second group.
  8. 제1항에 있어서,The method of claim 1,
    상기 제1 그룹에 속하는 복수의 클라이언트 중 일부 클라이언트가 서버로부터 블록을 수신하지 못하는 경우에는,If some of the plurality of clients belonging to the first group cannot receive the block from the server,
    상기 복수의 클라이언트 중 다른 클라이언트가 상기 블록을 수신하여 상기 제1 그룹에 속하는 클라이언트로 제공하는 것을 특징으로 하는 파일 배포 시스템.A file distribution system, characterized in that another client among the plurality of clients receives the block and provides the block to a client belonging to the first group.
  9. 제1항에 있어서,The method of claim 1,
    상기 제1 그룹에 속하는 제2 클라이언트는,A second client belonging to the first group,
    상기 제1 클라이언트로부터 전송된 상기 나머지 블록에 대한 요청을 자신과 연결된 제3 클라이언트로 전송하여 상기 제1 그룹에 속하는 복수의 클라이언트 전체로 전달시키는 것을 특징으로 하는 파일 배포 시스템.And transmitting the request for the remaining block transmitted from the first client to a third client connected to the first client and transmitting the request to all of the plurality of clients belonging to the first group.
  10. 서버가 제1 그룹에 속하는 복수의 클라이언트로 제1 파일을 배포하는 방법에 있어서,In a method for a server to distribute a first file to a plurality of clients belonging to a first group,
    서버가 전송하고자 하는 제1 파일을 복수의 블록으로 분할하는 파일 분할 단계; 및A file dividing step of dividing the first file to be transmitted by the server into a plurality of blocks; And
    상기 서버가 상기 복수의 블록을 상기 제1 그룹에 속하는 복수의 클라이언트로 나누어 전송하는 블록 전송 단계;를 포함하며,A block transmission step of the server dividing the plurality of blocks into a plurality of clients belonging to the first group and transmitting the same;
    상기 복수의 클라이언트 중 제1 클라이언트는,A first client among the plurality of clients,
    상기 복수의 블록 중 일부 블록을 수신하고,Receive some blocks of the plurality of blocks,
    상기 제1 그룹에 속하는 하나 이상의 다른 클라이언트로부터 상기 복수의 블록 중 나머지 블록을 수신한 후,After receiving the remaining blocks from among the plurality of blocks from one or more other clients belonging to the first group,
    상기 복수의 블록으로부터 상기 제1 파일을 복원하는 것을 특징으로 하는 파일 배포 방법.And restoring the first file from the plurality of blocks.
  11. 제1 그룹에 속하는 복수의 클라이언트가 서버로부터 제1 파일을 배포 받는 방법에 있어서,In the method for receiving distribution of a first file from a server by a plurality of clients belonging to a first group,
    상기 복수의 클라이언트 중 제1 클라이언트가, 상기 서버로부터 상기 제1 파일에서 분할된 복수의 블록 중 일부 블록을 수신하는 제1 블록 수신 단계;A first block receiving step of receiving, by a first client among the plurality of clients, some blocks of the plurality of blocks divided from the first file from the server;
    상기 제1 클라이언트가 상기 제1 그룹에 속하는 하나 이상의 다른 클라이언트로부터 상기 복수의 블록 중 나머지 블록을 수신하는 제2 블록 수신 단계; 및A second block receiving step of receiving, by the first client, the remaining blocks among the plurality of blocks from one or more other clients belonging to the first group; And
    상기 제1 클라이언트가 상기 복수의 블록으로부터 상기 제1 파일을 복원하는 파일 복원 단계;A file restoration step of restoring, by the first client, the first file from the plurality of blocks;
    를 포함하는 것을 특징으로 하는 파일 배포 방법.File distribution method comprising a.
  12. 컴퓨터에서 제10항 내지 제11항 중 어느 한 항에 기재된 파일 배포 방법의 각 단계를 실행시키기 위한 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램 .A computer program stored in a computer-readable medium for executing each step of the file distribution method according to any one of claims 10 to 11 on a computer.
PCT/KR2020/014968 2019-10-29 2020-10-29 Large file distribution system, method and computer program, and system WO2021086087A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190135265A KR102221638B1 (en) 2019-10-29 2019-10-29 System, method and computer program for distributing large file
KR10-2019-0135265 2019-10-29

Publications (1)

Publication Number Publication Date
WO2021086087A1 true WO2021086087A1 (en) 2021-05-06

Family

ID=75174822

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/014968 WO2021086087A1 (en) 2019-10-29 2020-10-29 Large file distribution system, method and computer program, and system

Country Status (2)

Country Link
KR (1) KR102221638B1 (en)
WO (1) WO2021086087A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213508A (en) * 2003-01-08 2004-07-29 Hitachi Software Eng Co Ltd File download method and system using peer to peer technique
JP2009031894A (en) * 2007-07-25 2009-02-12 Himacs Ltd Content distribution system, content distribution program for management server, and content distribution program for client
KR20090036955A (en) * 2007-10-10 2009-04-15 주식회사 버츄얼스톰 Method for file transmission
KR20120038346A (en) * 2010-10-13 2012-04-23 한국전자통신연구원 System and method for transmitting high server data using hybrid peer to peer protocol
JP2016006671A (en) * 2011-11-10 2016-01-14 株式会社スクウェア・エニックス Data transmission/reception system and data transmission/reception method
KR20160150231A (en) * 2015-06-19 2016-12-29 중앙대학교 산학협력단 User device and server for distributing contents

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101583493B1 (en) 2013-06-03 2016-01-08 양진호 Apparatus and method for downloading massive file

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213508A (en) * 2003-01-08 2004-07-29 Hitachi Software Eng Co Ltd File download method and system using peer to peer technique
JP2009031894A (en) * 2007-07-25 2009-02-12 Himacs Ltd Content distribution system, content distribution program for management server, and content distribution program for client
KR20090036955A (en) * 2007-10-10 2009-04-15 주식회사 버츄얼스톰 Method for file transmission
KR20120038346A (en) * 2010-10-13 2012-04-23 한국전자통신연구원 System and method for transmitting high server data using hybrid peer to peer protocol
JP2016006671A (en) * 2011-11-10 2016-01-14 株式会社スクウェア・エニックス Data transmission/reception system and data transmission/reception method
KR20160150231A (en) * 2015-06-19 2016-12-29 중앙대학교 산학협력단 User device and server for distributing contents

Also Published As

Publication number Publication date
KR102221638B1 (en) 2021-03-04

Similar Documents

Publication Publication Date Title
WO2012057581A4 (en) Cloud computing system and data synchronization method therefor
US7804851B2 (en) Discovery technique for physical media interface aggregation
WO2012157940A2 (en) System and method for providing push service using feedback message
WO2012050293A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
CN103312605A (en) Gateway device identity setting method and management gateway device
WO2011074880A2 (en) System and method of multi-media conferencing between universal plug and play (upnp) enabled telephony devices and wireless area network (wan) devices
WO2016013718A1 (en) System and method for providing web-based advertisement by using wi-fi network
WO2015056833A1 (en) Web-based real time data pushing method and system thereof
WO2013176431A1 (en) System and method for allocating server to server and for efficient messaging
WO2021086087A1 (en) Large file distribution system, method and computer program, and system
WO2021060598A1 (en) System and method for dual internet access of mobile communication network and broadband network, and customer premises equipment therefor
WO2016111407A1 (en) Network communication method having function of recovering terminal session
WO2024005565A1 (en) Method, system, and non-transitory computer-readable recording medium for providing messenger service
WO2018182065A1 (en) Multi-resource subscription association method in m2m system
WO2022265398A1 (en) Video service system in poor wireless internet environment, method for processing same system, computer program stored in computer-readable storage medium storing program for realizing same method for processing same system, and computer-readable storage medium storing same computer program
WO2019066101A1 (en) Node distribution method and management server for performing same
WO2013122359A1 (en) Wireless terminal device having network load reducing function, method for reducing network load in wireless terminal device, and recording medium
WO2018010304A1 (en) Message processing method and device
US7016883B2 (en) Reverse caching for residential end-users to reduce usage of access links to a core communication network
WO2015174644A1 (en) System for providing advertisement to user terminal through wireless router and advertisement service providing server
WO2016127317A1 (en) Resource sharing method and apparatus for private cloud system
JP2000112852A (en) Mechanism for limiting the number of terminals to be simultaneously used in communication system
WO2010021518A2 (en) Apparatus and method for using contents information in digital rights management
WO2023182591A1 (en) Hybrid monitoring solution system and server monitoring using same
WO2022080706A1 (en) Communication network system and method for controlling same

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20880895

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 08/09/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20880895

Country of ref document: EP

Kind code of ref document: A1