KR20090001571A - 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는컨텐츠 배포 시스템 및 방법 - Google Patents

컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는컨텐츠 배포 시스템 및 방법 Download PDF

Info

Publication number
KR20090001571A
KR20090001571A KR1020070041391A KR20070041391A KR20090001571A KR 20090001571 A KR20090001571 A KR 20090001571A KR 1020070041391 A KR1020070041391 A KR 1020070041391A KR 20070041391 A KR20070041391 A KR 20070041391A KR 20090001571 A KR20090001571 A KR 20090001571A
Authority
KR
South Korea
Prior art keywords
content
block
peer
computer
grid
Prior art date
Application number
KR1020070041391A
Other languages
English (en)
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 주식회사 나우콤
Priority to KR1020070041391A priority Critical patent/KR20090001571A/ko
Publication of KR20090001571A publication Critical patent/KR20090001571A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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
    • G06F15/163Interprocessor communication
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템 및 방법이 제공된다.
상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템은, 하나 이상의 블록 단위로 분할하여 업로드된 컨텐츠 블록을 복수의 파일 서버에 실시간으로 복제하는 블록 이중화 서버; 상기 컨텐츠 블록의 배포를 요청하는 복수의 피어 컴퓨터에게 배포할 수 있도록 상기 컨텐츠 블록을 복수의 그리드 컴퓨터에 미리 저장하는 그리드 관리 서버; 및 상기 복수의 파일 서버 및 상기 복수의 그리드 컴퓨터로부터 상기 복수의 피어 컴퓨터에게 상기 컨텐츠 블록을 병렬적이고 랜덤하게 배포하고, 상기 복수의 피어 컴퓨터 상호 간에도 상기 컨텐츠 블록을 병렬적이고 랜덤하게 주고 받을 수 있도록 제어하는 피어 관리 서버를 포함한다.
Figure P1020070041391
컨텐츠 블럭, 그리드 컴퓨터, 피어 컴퓨터, 파일 서버

Description

컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템 및 방법{Contents delivery system and method for randomly delivering contents blocks in parallel}
도 1a 및 1b는 종래 기술에 따른 컨텐츠 배포 시스템을 나타내는 논리적 구성도이다.
도 2는 본 발명의 일 실시예에 따른 컨텐츠 배포 시스템의 논리적 구성도이다.
도 3은 본 발명의 일 실시예에 따른 컨텐츠 배포 방법을 나타내는 전체 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 그리드 관리 서버의 그리드 컴퓨터 등록 및 유지 과정을 나타내는 흐름도이다.
도 5는 상기 도 4의 그리드 관리 서버가 그리드 컴퓨터에 컨텐츠 블록을 할당하는 과정을 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 피어 컴퓨터의 컨텐츠 블록 다운로드의 개념도이다.
도 7a는 본 발명의 일 실시예에 따른 그리드 컴퓨터에 컨텐츠 블록이 할당된 상태를 나타내는 도면이다.
도 7b는 본 발명의 일 실시예에 따른 피어 컴퓨터의 상태 정보를 예시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 그리드 컴퓨터의 상태 정보의 데이터 구조를 예시하는 도면이다.
본 발명은 컨텐츠를 유무선 네트워크 상에서 배포하는 기술에 관한 것으로서, 더욱 상세하게는, 피어투피어(P2P) 기술과 컨텐츠 전송 네트워크(CDN) 기술을 이용하여 컨텐츠를 쪼개어 병렬적이고 랜덤하게 배포하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템 및 방법에 관한 것이다.
종래의 컨텐츠 배포 시스템은 대용량의 고속 서버 시스템과 폭넓은 네트워크 대역폭을 사전에 충분히 구비함으로써, 컨텐츠 공급자가 자신의 컨텐츠를 필요로 하는 유저들에게 빠르고 안정적으로 컨텐츠를 배포할 수 있도록 하는 서비스를 제공한다. 이러한 종래의 컨텐츠 배포 시스템을 도 1a 및 1b를 참조하여 설명하기로 한다.
첫째, 모든 컨텐츠 배포 시스템을 하나의 물리적 인터넷 데이터 센터(Internet Data Center: IDC)에 구성하는 중앙 집중형 컨텐츠 배포 시스템이 존재한다(도 1a). 둘째, 각각의 컨텐츠 배포 시스템을 각각의 인터넷 데이터 센터에 분산하여 구성하는 IDC별 분산형 컨텐츠 배포 시스템이 존재한다(도 1b). 셋째, 도 1a 및 1b에는 도시하지 않았지만, 컨텐츠를 블럭별로 분할하여 미리 저장하고 있는 그리드(Grid)로부터 병렬적으로 다운로드 받는 컨텐츠 배포 시스템이 존재할 수도 있다.
그러나, 상기 첫번째의 방식은 중앙 집중형이기에 서버의 가용성을 높일 수는 있으나, 각각의 인터넷 데이터 센터를 연결하는 백본망을 안정적으로 유지하기 위해 많은 네트워크 유지 비용이 발생하게 된다. 상기 두번째의 방식은 하나의 인터넷 데이터 센터에 트래픽이 집중될 경우, 상기 첫번째의 방식에 비해 유연하게 대처할 수 없다는 문제가 발생한다. 또한, 각각의 인터넷 데이터 센터 별로 컨텐츠 배포 시스템을 구성해야 하므로, 상대적으로 트래픽이 없는 인터넷 데이터 센터에 구성된 컨텐츠 배포 시스템의 장비 운용성이 저하된다는 문제가 있다. 상기 세번째의 방식은 파일을 구성하는 블럭들을 순차적으로 다운로드 받기 때문에 병목 현상이 순차적이고 지속적으로 발생할 수 밖에 없다는 한계를 가진다.
따라서, 네트워크 유지 비용 및 시스템 유지 비용을 절감하면서도 좀더 안정적이고 가용성이 높은 컨텐츠 배포 시스템이 요구된다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창안된 것으로서, 본 발명이 이루고자 하는 기술적 과제는, 컨텐츠 공급자에 의해 제공된 컨텐츠를 분할하여 생성한 컨텐츠 블럭들을 미리 준비되어 세팅된 그리드 컴퓨터 시스템에 저장함으로써 개별의 피어 컴퓨터의 요청에 따라 컨텐츠 블럭들을 병렬적이고 랜덤하게 다운로드 받을 수 있는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템 및 방법을 제공하는 것이다.
또한, 본 발명이 이루고자 하는 또 다른 기술적 과제는, 각각의 피어 컴퓨터들이 가지고 있는 컨텐츠 블럭들을 서로 주고 받는 방식을 이용하여 컨텐츠 배포 시스템 자체의 부하는 줄이면서 급격한 트래픽 증가에도 유연하게 대응할 수 있는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템 및 방법을 제공하는 것이다.
또한, 본 발명이 이루고자 하는 또 다른 기술적 과제는, 각각의 피어 컴퓨터들이 다운로드 받고자 하는 컨텐츠 블럭에 대한 정보의 요청 조차도 피어투피어(P2P) 방식으로 처리하여 그물망처럼 구성함으로써, 서버의 부담을 줄이고 피어투피어 방식의 효율을 극대화하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템 및 방법을 제공하는 것이다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템은, 하나 이상의 블록 단위로 분할하여 업로드된 컨텐츠 블록을 복수의 파일 서버에 실시간으로 복제하는 블록 이중화 서버; 상기 컨텐츠 블록의 배포를 요청하는 복수의 피어 컴퓨터에게 배포할 수 있도록 상기 컨텐츠 블록을 복수의 그리드 컴퓨터에 미리 저장하는 그리드 관리 서버; 및 상기 복수의 파일 서버 및 상기 복수의 그리드 컴퓨터로부터 상기 복수의 피어 컴퓨터에게 상기 컨텐츠 블록을 병렬적이고 랜덤하게 배포하고, 상기 복수의 피어 컴퓨터 상호 간에도 상기 컨텐츠 블록을 병렬적이고 랜덤하게 주고 받을 수 있도록 제어하는 피어 관리 서버를 포함한다.
또한, 상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법은, 블록 이중화 서버가 하나 이상의 블록 단위로 분할하여 업로드된 컨텐츠 블록을 복수의 파일 서버에 실시간으로 복제하는 단계; 그리드 관리 서버가 상기 컨텐츠 블록을 복수의 그리드 컴퓨터에 저장하는 단계; 및 피어 관리 서버가 상기 컨텐츠 블록을 배포해 줄 것을 요청하는 복수의 피어 컴퓨터에게 상기 컨텐츠 블록을 병렬적이고 랜덤하게 배포하고, 상기 복수의 피어 컴퓨터 상호 간에도 상기 컨텐츠 블록을 병렬적이고 랜덤하게 주고 받을 수 있도록 제어하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 컨텐츠 배포 시스템의 논리적 구성도이다. 상기 도 2를 살펴보면, 컨텐츠 배포 시스템(200)은 블럭 이중화 서버(210), 피어 관리 서버(220), 그리드 관리 서버(230) 및 컨텐츠 배포 메인 서버(240)를 포함하고 있다. 블럭 이중화 서버(210)에는 컨텐츠를 분할하여 업로드하는 컨텐츠 분할 및 업로드 서버(100)가 연결될 수 있으며, 또한 컨텐츠 분할 및 업로드 서버(100)에 의해 업로드 된 컨텐츠 블럭을 분산하여 저장하는 파일 서버(210_1 내지 210_n)가 연결될 수 있다. 피어 관리 서버(220)에는 다운로드 하고자 하는 사용자들의 컴퓨터의 집합인 피어 컴퓨터 시스템(221)이 연결될 수 있으며, 그리드 관리 서버(230)에는 블럭 단위로 분할된 컨텐츠 블럭을 파일 서버(210_1 내지 210_n)로부터 할당받아 피어 컴퓨터 시스템(221)의 구성원에게 다운로드 해주는 그리드 컴퓨터 시스템(231)이 연결될 수 있다.
먼저, 컨텐츠 분할 및 업로드 서버(100)는 컨텐츠 공급자(Contents Provider; CP)에 의하여 제공된 컨텐츠를 하나 이상의 블록 단위로 분할하고, 분할된 블럭 단위(이하, '컨텐츠 블럭'이라 함)를 상기 블럭 이중화 서버(210)에 업로드하는 역할을 한다.
또한, 컨텐츠 분할 및 업로드 서버(100)는 이와 같은 컨텐츠 블럭을 업로드 하면서, 이와 함께 상기 컨텐츠에 대한 정보를 블록 이중화 서버(210)에 전달한다. 여기서, 컨텐츠에 대한 정보란 컨텐츠의 파일명, 컨텐츠의 크기, 컨텐츠 블록의 크 기 및 하나의 컨텐츠를 구성하는 컨텐츠 블록의 총 개수 등 전달하고자 하는 컨텐츠에 대한 모든 정보를 포함하는 의미이다. 여기서, 컨텐츠의 분할 단위는 컨텐츠 파일의 크기나 후술할 세트 구성 정책 등에 따라 유연하게 설정할 수 있다.
블럭 이중화 서버(210)는 컨텐츠 분할 및 업로드 서버(100)에 의해 업로드된 컨텐츠 블록을 복수의 파일 서버(210_1 내지 210_n)에 실시간으로 복제하는 역할을 한다. 파일 서버(210_1 내지 210_n)는 컨텐츠 공급자(CP)에 의해 제공된 컨텐츠를 분할한 컨텐츠 블럭을 저장해 놓는 곳으로서, 컨텐츠 블록의 원본을 저장하는 마스터 파일 서버(210_1)와 마스터 파일 서버(210_1)를 미러링(Mirroring) 방식에 의해 복제된 복제 컨텐츠 블록을 저장하는 서브 파일 서버(210_2 내지 210_n)로 구성된다.
또한, 블럭 이중화 서버(210)는 컨텐츠 분할 및 업로드 서버(100)로부터 전달받은 상기 컨텐츠에 대한 정보를 저장하고, 이를 다시 후술할 컨텐츠 배포 메인 서버(240)에 전달한다.
그리드 관리 서버(230)는 컨텐츠 블록의 배포를 요청하는 피어 컴퓨터 시스템(221)의 각 구성원(221_1 내지 221_n)에게 배포할 수 있도록, 컨텐츠 블럭을 그리드 컴퓨터 시스템(231)의 각 구성원인 복수의 그리드 컴퓨터(231_1 내지 231_n)에 미리 저장하게 하는 역할을 한다. 또한, 그리드 관리 서버(230)는 그리드 컴퓨터(231_1 내지 231_n)의 네트워크 상태 및 시스템의 유휴 상태에 대한 정보를 확인하여, 확인한 정보에 근거하여 소정 개수의 그리드 컴퓨터로 구성된 그리드 컴퓨터 세트(set)를 생성하고 이와 동시에 실시간으로 관리한다. 이러한 세트 구성은 후술 할 컨텐츠 배포 메인 서버(240)에 의해 관리되는 세트 구성 정책 저장소에 기록된 세트 구성 정책에 따라 이루어지는데, 상기 세트 구성의 일 실시예가 상기 도 2의 하단에 그리드 컴퓨터 세트 구성 테이블(233)로 나타나 있다. 상기 테이블을 살펴보면, 3개의 세트마다 마지막 세트 구성 시각 및 세트를 구성하는 그리드 컴퓨터의 인덱스 번호가 표시되고 있음을 알 수 있다.
피어 관리 서버(220)는 파일 서버(210_1 내지 210_n)나 그리드 컴퓨터(231_1 내지 231_n)에 저장되어 있는 컨텐츠 블럭들을 피어 컴퓨터 시스템(221)의 각 구성원인 피어 컴퓨터(221_1 내지 221_n)에게 랜덤(random)하고 병렬적으로 배포할 수 있도록 제어하며, 또한 피어 컴퓨터(221_1 내지 221_n) 상호 간에도 컨텐츠 블록을 랜덤하고 병렬적으로 주고 받을 수 있도록 제어하는 역할을 한다.
여기서, 랜덤하게 배포한다는 의미는 컨텐츠를 구성하는 컨텐츠 블럭의 물리적인 순서(컨텐츠가 분할될 때의 블럭 순서)나 논리적인 순서(컨텐츠 배포 시스템에서 컨텐츠 블럭에 대한 정보를 피어 컴퓨터들에게 알려줄 때의 블럭 순서)와 무관하게 컨텐츠 블럭을 배포한다는 의미이며, 병렬적으로 배포한다는 의미는 특정의 피어 컴퓨터가 또 다른 피어 컴퓨터, 그리드 컴퓨터(231_1 내지 231_n) 및 파일 서버(210_1 내지 210_n)로부터 개별적으로 배포받는 것이 아니라 이들 중의 하나 이상으로부터 함께 배포받을 수 있다는 의미이다. 이와 같이, 피어 컴퓨터가 컨텐츠 블럭들을 랜덤하고 병렬적으로 다운로드 받게 됨으로써, 순차적이고 개별적으로 다운로드 받을 경우의 지속적 병목 현상을 방지할 수 있게 된다.
컨텐츠 배포 메인 서버(240)는 블록 이중화 서버(210), 그리드 관리 서 버(230) 및 피어 관리 서버(220)와 각각 연결되어 이들을 제어하고, 이들이 각각 관리하는 블럭 이중화 정보, 피어 컴퓨터(221_1 내지 221_n)의 상태 정보 및 그리드 컴퓨터의 상태 정보 및 그리드 컴퓨터 세트 구성 정보를 종합하여, 실시간 세트 구성 정책을 관리하고 업데이트하는 등의 기능을 수행한다.
또한, 컨텐츠 배포 메인 서버(240)는 상기 컨텐츠 블록의 배포 방식에 대한 우선 순위를 설정하는 역할을 한다. 즉, 본 발명의 일 실시예에서는, 피어 컴퓨터(221_1 내지 221_n) 상호 간의 컨텐츠 블록의 배포를 제1 순위로, 그리드 컴퓨터(231_1 내지 231_n)에서 피어 컴퓨터(221_1 내지 221_n)로의 컨텐츠 블록의 배포를 제2 순위로, 파일 서버(210_1 내지 210_n)에서 피어 컴퓨터(221_1 내지 221_n)로의 컨텐츠 블록의 배포를 제3 순위로 설정하는 것이 바람직하다.
피어 관리 서버(220)는 상기 피어 컴퓨터(221_1)의 다운로드 요청이 있을 경우, 상기 요청한 피어 컴퓨터(221_1)를 제외한 나머지 피어 컴퓨터(221_2 내지 221_n)와 그리드 컴퓨터(231_1 내지 231_n)와 파일 서버(210_1 내지 210_n)의 상태 정보를 컨텐츠 배포 메인 서버(240)로부터 가져 와서 피어 컴퓨터(221_1)에게 제공하고, 피어 컴퓨터(221_1)의 요청에 가장 적합한 컨텐츠 블럭이 어디에 존재하는지에 대한 정보도 피어 컴퓨터(221_1)에 제공하게 된다.
또한, 피어 컴퓨터(221_1)는 상기 컨텐츠 블럭을 다운로드 받는 도중에, 현재 자신의 다운로드 상태 및 네트워크 상태 정보를 주기적으로 피어 관리 서버(220)에게 전송하고, 나머지 피어 컴퓨터(221_2 내지 221_n)와 그리드 컴퓨터(231_1 내지 231_n)와 파일 서버(210_1 내지 210_n)의 상태 정보를 피어 관리 서 버(220)로부터 수신한다. 수신한 상태 정보를 이용하여 피어 컴퓨터(221_1)는 아직 다운로드가 완료되지 못한 컨텐츠 블록을 나머지 피어 컴퓨터(221_2 내지 221_n), 그리드 컴퓨터(231_1 내지 231_n) 및 파일 서버(210_1 내지 210_n) 중 하나로부터 또는 이들의 조합으로부터 병렬적으로 다운로드 받게 되는 것이다. 그리고, 피어 컴퓨터 간에는 서로가 이미 보유하고 있는 컨텐츠 블럭의 정보 및 자기가 알고 있는 그리드 컴퓨터의 정보를 실시간으로 주고 받는다.
다운로드가 완료되는 경우에는, 피어 컴퓨터(221_1)는 피어 관리 서버(220)에게 다운로드 완료 통지를 하고, 피어 관리 서버(220)는 피어 컴퓨터(221_1)의 상태 정보를 완료 상태로 저장하게 된다.
이제, 본 발명의 일 실시예에 따른 컨텐츠 배포 방법을 나타내는 전체 흐름도인 도 3을 참조하여, 컨텐츠 배포 방법의 순서를 시계열적으로 설명하기로 한다.
먼저, 컨텐츠 분할 및 업로드 서버(100)가 복수의 컨텐츠 블럭을 블록 이중화 서버(210)에 업로드한다(S102). 이때, 컨텐츠 블록의 업로드와 함께 컨텐츠에 대한 정보를 블록 이중화 서버(210)에 전달하게 된다. 여기서, 상기 컨텐츠에 대한 정보는 상기 컨텐츠의 파일명, 상기 컨텐츠의 크기, 상기 컨텐츠 블록의 크기 및 상기 컨텐츠 블록의 총 개수 등 컨텐츠에 대한 관련 정보를 모두 포함한다.
블럭 이중화 서버(210)는 상기 업로드 된 컨텐츠 블록을 복수의 파일 서버(210_1 내지 210_n)에 실시간으로 복제하여 저장하게 한다(S104). 이 과정에서, 상기 컨텐츠 블럭들은 계속하여 블럭 이중화 서버(210)에 업로드 되어 파일 서버(210_1 내지 210_n)에 저장되고 있으며, 블럭 이중화 서버(210)로부터 컨텐츠 분 할 및 업로드 서버(100)에게 컨텐츠가 등록되는 링크 정보가 전달된다.
이와 동시에, 그리드 관리 서버(230)는 파일 서버(210_1 내지 210_n)에 저장되어 있는 복수의 컨텐츠 블럭을 복수의 그리드 컴퓨터(231_1 내지 231_n)에 할당하여 저장한다(S106). 이 과정에서, 컨텐츠 배포 메인 서버(240)는 세트 구성 정책을 저장하고 있는 실시간 세트 구성 정책 저장소에 상기 컨텐츠에 대한 정보를 추가하고, 상기 실시간 세트 구성 정책을 업데이트한다. 새로운 컨텐츠 블럭이 그리드 컴퓨터 세트에 저장되었으므로, 이를 반영하고, 이에 따라 새로운 세트를 더 준비하거나 불필요한 세트 구성원을 제거하는 등 실시간 세트 구성 정책을 변경할 필요가 있기 때문이다.
업데이트된 실시간 세트 구성 정보에 기초하여, 그리드 관리 서버(230)는 컨텐츠 블럭들을 미리 세팅되어 있는 그리드 컴퓨터 세트의 구성원인 그리드 컴퓨터에게 다시 배포하는데, 이러한 그리드 컴퓨터에 컨텐츠 블럭이 할당된 상태를 예시한 테이블이 도 7a에 도시되어 있다. 상기 도 7a를 참조하면, 그리드 컴퓨터로 구성된 3 개의 그리드 컴퓨터 세트마다, 할당된 컨텐츠의 인덱스, 그리드 세트의 등급, 및 그리드 컴퓨터 세트를 구성하는 그리드 컴퓨터의 인덱스가 표시되어 있음을 알 수 있다.
한편, 그리드 컴퓨터(231_1 내지 231_n)에 컨텐츠 블럭이 할당되는 과정과 피어 컴퓨터(221_1 내지 221_n)에 컨텐츠 블럭이 배포되는 과정에는 약간의 차이가 존재한다. 전자의 경우에는, 이미 구성되어 있는 다양한 종류의 컨텐츠 및 다양한 블럭 개수로 구성된 컨텐츠를 저장할 수 있도록 다양한 종류로 준비된 그리드 컴퓨 터 세트들 중 하나의 그리드 컴퓨터 세트에 포함된 그리드 컴퓨터(예를 들어, 231_1)에게 컨텐츠 블럭을 할당하게 된다. 반면에, 후자의 경우에는, 피어 컴퓨터(예를 들어, 221_1)가, 컨텐츠 공급자(CP)가 컨텐츠 분할 및 업로드 서버(100)를 통해 획득한 컨텐츠 블럭의 다운로드 링크 정보를 이용하여 피어 관리 서버(220)에 최초 접속하여 컨텐츠 블럭을 요구하면, 피어 관리 서버(220)는 피어 컴퓨터(221_2 내지 221_n), 그리드 컴퓨터(231_1 내지 231_n) 및 파일 서버(210_1 내지 210_n) 중 해당되는 컨텐츠 블럭을 하나 또는 그 이상 보유한 장치를 검색하여, 그 결과를 피어 컴퓨터(221_1)에게 제공한다. 이러한 후자의 과정은 주기적으로 반복되어 수행된다.
즉, 피어 컴퓨터(221_1)는 컨텐츠 블럭의 배포를 요청하는 순간부터 피어 관리 서버(220)에 등록되어 관리되지만, 그리드 컴퓨터 시스템(231)의 그리드 컴퓨터(231_1 내지 231_n)는 사전에 미리 준비된 그리드 컴퓨터 세트에 등록된 후에 필요에 따라 컨텐츠 블럭을 할당받아 보관하게 된다.
상기 S106 단계를 수행한 이후에, 피어 컴퓨터(221_1)는 컨텐츠 배포 메인 서버(240)로부터 공지된 컨텐츠의 다운로드 링크 정보를 이용하여 피어 관리 서버(220)에게 컨텐츠 블록의 다운로드를 요청하게 된다(S108).
상기 다운로드의 요청이 발생하면, 컨텐츠 배포 메인 서버(240)는 컨텐츠 블록의 배포 방식에 대한 우선 순위를 설정하게 된다(S110). 즉, 상기 우선 순위를 정하는 것은 전술한 바와 같이, 피어 컴퓨터(221_1 내지 221_n) 상호 간의 컨텐츠 블록의 배포를 제1 순위로, 그리드 컴퓨터(231_1 내지 231_n)에서 피어 컴퓨 터(221_1 내지 221_n)로의 컨텐츠 블록의 배포를 제2 순위로, 파일 서버(210_1 내지 210_n)에서 피어 컴퓨터(221_1 내지 221_n)로의 컨텐츠 블록의 배포를 제3 순위로 설정하는 것이 바람직하다. 그러나, 이는 하나의 바람직한 실시예일뿐, 그 순위를 바꾸어 설정할 수도 있음은 물론이다.
특정 피어 컴퓨터(221_1)의 다운로드 요청 이후에, 피어 관리 서버(220)는 피어 컴퓨터(221_1)에 다운로드 해주기 가장 적합한 컨텐츠 블럭을 나머지 피어 컴퓨터(221_2 내지 221_n), 그리드 컴퓨터(231_1 내지 231_n) 및 파일 서버(210_1 내지 210_n)의 순서대로 검색하고, 해당 컨텐츠 블럭을 가지고 있는 장소의 위치 정보를 제공하게 된다(S112).
한편, 피어 컴퓨터(221_1)는 컨텐츠 블록을 다운로드 받는 도중에라도 현재 자신의 다운로드 상태 및 네트워크 상태 정보를 주기적으로 피어 관리 서버(220)에게 전송하게 되며, 피어 관리 서버(220)도 나머지 피어 컴퓨터(221_2 내지 221_n), 그리드 컴퓨터(231_1 내지 231_n) 및 파일 서버(210_1 내지 210_n)에 대한 상태 정보 및 세트 구성 정책 저장소의 세트 구성 정보를 피어 컴퓨터(221_1)에게 전송할 수 있다. 그러면, 이러한 상태 정보 및 상기 세트 구성 정보를 이용하여, 피어 컴퓨터(221_1)는 아직 다운로드 받지 못한 컨텐츠 블럭을 나머지 피어 컴퓨터(221_2 내지 221_n), 그리드 컴퓨터(231_1 내지 231_n) 및 파일 서버(210_1 내지 210_n) 중 적어도 하나로부터 병렬적으로 다운로드 받게 된다(S114).
또한, 피어 관리 서버(220)는 피어 컴퓨터(221_1)가 현재 다운로드 하려고 하는 컨텐츠 블럭을 가지고 있으며 네트워크 상태 및 시스템 상태가 양호한 또 다 른 피어 컴퓨터의 상태 정보를 지속적으로 피어 컴퓨터(221_1)에게 전송할 수 있다. 피어 컴퓨터(221_1)는 상기 전송받은 또 다른 피어 컴퓨터의 상태 정보와 현재 다운로드 받고 있는 컨텐츠 블럭을 제공해주는 소스 장치(즉, 나머지 피어 컴퓨터, 그리드 컴퓨터 또는 파일 서버 중의 하나의 장치)의 상태 정보를 비교하여, 다운로드를 더 빨리 받을 수 있는 장치를 선택하여 다운로드 받는다. 만약, 상기 또 다른 피어 컴퓨터로부터 컨텐츠 블럭을 다운로드 받는 것이 더 빠르다고 판단되면, 피어 컴퓨터(221_1)는 기존의 다운로딩을 중지하고, 새롭게 연결된 상기 또 다른 피어 컴퓨터로부터 나머지 컨텐츠 블럭을 다운로드 받게 된다.
다운로드가 완료되면, 피어 컴퓨터(221_1)는 피어 관리 서버(220)에게 다운로드 완료 통지를 하고, 피어 관리 서버(220)는 다운로드 받은 피어 컴퓨터(221_1)의 상태 정보를 완료 상태로 저장함으로써, 나머지 피어 컴퓨터(221_2 내지 221_n)에게 상기 상태 정보를 더 이상 전송하지 않는다(S116). 물론, 상기 다운로드가 완료되어도 일정 시간 동안 피어 관리 서버(220)와 연결을 유지하면서, 상기 상태 정보를 피어 관리 서버(220)와 제3의 피어 컴퓨터에게 제공함으로써, 제3의 피어 컴퓨터는 피어 컴퓨터(221_1)로부터 계속하여 컨텐츠 블럭을 다운로드 받을 수 있다.
도 4는 본 발명의 일 실시예에 따른 그리드 관리 서버의 그리드 컴퓨터 등록 및 유지 과정을 나타내는 흐름도이다.
상기 도 4를 참조하면, 그리드 관리 서버(230)는 기존에 연결되어 있거나 새롭게 연결된 그리드 컴퓨터에게 일정 시간마다 메모리 사용량과 같은 시스템 정보 및 네트워크 상태 정보를 요청하면(S402), 상기 그리드 컴퓨터는 이러한 시스템 정 보 및 네트워크 상태 정보를 통지한다(S404). 상기 메모리 사용량 등은 그리드 컴퓨터 시스템(231)의 운영 체제에서 제공하는 개별 시스템 콜을 이용하여 확보될 수 있으며, 네트워크 상태의 체크는 별도의 응용 프로토콜을 이용한 요청과 응답을 통해 이루어 질 수 있다. 상기 네트워크 상태 체크를 위한 업/다운로드 속도나 응답 시간의 측정은 ICMP를 이용한 Ping(핑)을 사용할 수도 있고, 의미없는 패킷을 주고 받는 방식을 사용할 수도 있는 바, 본 발명의 실시예에서는 특정의 방식으로 한정되지 않는다.
이러한 방식으로 확보한 시스템 정보 및 네트워크 상태 정보가 소정 기준 이상인지를 판단하고(S406), 상기 기준 이상인 경우에는(S406의 예), 상기 시스템 정보 및 네트워크 상태 정보를 개별 그리드 컴퓨터의 상태 정보 테이블(도 2의 232)에 저장하게 된다(S408). 만약, 상기 그리드 컴퓨터가 이미 세팅되어 있는 그리드 컴퓨터 세트의 구성원인 경우에는 세트 정보도 함께 갱신한다(S410). 여기서, 상기 기준 이상인지를 판단하는 예로서는, 업로드 대역폭이 50KB/sec 이상인지 여부 또는 방화벽을 사용하고 있는지 여부 등이 될 수 있다. 상기 개별 그리드 컴퓨터 상태 정보 테이블(도 2의 232)에는 모두 3개의 그리드 컴퓨터 상태 정보가 저장되어 있음을 알 수 있는 바, 각 그리드 인덱스마다 최종 점검 시간과 업로드 속도와 시스템 등급이 표시되고 있다. 또한, 개별 그리드 컴퓨터 상태 정보 테이블의 또 다른 예시가 도 8에 도시되어 있는데, 상기 도 8에서는 n 개의 그리드 컴퓨터마다 유휴 메모리, 업로드 속도 및 시스템 등급이 표시되고 있음을 알 수 있다.
한편, S406 단계에서 상기 시스템 정보 및 네트워크 상태 정보가 소정 기준 이상이 아닌 경우(S406의 아니오)이거나, S410 단계를 수행한 이후에는 상태 정보의 갱신을 완료하게 되며(S412), 다시 전술한 과정들을 지속적으로 반복하게 된다.
도 5는 상기 도 4의 그리드 관리 서버(230)가 실시간 그리드 세트 구성 정책에 의해 미리 세팅된 그리드 컴퓨터 세트에 컨텐츠 블록을 할당하는 과정을 나타내는 도면이다. 그리드 관리 서버(230)가 먼저 실시간 세트 구성 정책 저장소에 저장된 세트 구성 정책을 확인한다(S502). 미리 세팅되어 있는 그리드 컴퓨터 세트 중에서 할당하려는 컨텐츠 블럭에 적합한 그리드 컴퓨터 세트를 확보한다(S504). 상기 컨텐츠 블럭을 상기 확보된 그리드 컴퓨터 세트에 전송한다(S506). 개별의 컨텐츠 블럭이 전송될 때마다 지속적으로 그리드 컴퓨터 세트의 구성 정보를 갱신하고, 컨텐츠 블럭의 전송이 완료되면, 컨텐츠 블럭의 정보와 함께 그리드 컴퓨터 세트의 구성 정보를 다시 갱신하게 된다(S508). 즉, 각각의 컨텐츠 블럭이 전송될 때마다 세트 구성 정보를 갱신할 뿐 아니라 전송이 모두 완료되는 경우에도 갱신해야 하는데, 이는 실시간으로 피어 컴퓨터에게 컨텐츠 블럭을 배포하기 위해서이다.
한편, 그리드 관리 서버(230)는 상기 도 5에서 설명한 과정을 수행하는 것 외에도 그리드 컴퓨터 세트를 등록하고 유지하는 기능도 수행한다. 계속적으로 반복 수행되는 이러한 과정은, 실시간 세트 구성 정책 저장소에서 모든 세트 구성 정책을 콘텐츠의 크기, 제공 예정 콘텐츠의 구성, 유휴 그리드 컴퓨터 시스템(231)의 구성비, 현재 생성된 세트의 개수 및 세트의 사용율을 종합적으로 검토함으로써 동적인 세트 구성 정책이 구성될 수 있는 것이다.
결정된 세트 구성 정책에 따라, 신규로 등록되어야 할 그리드 컴퓨터 세트가 있다면 추가될 그리드 컴퓨터 세트에 구성된 그리드 컴퓨터의 개수 등을 실시간 세트 구성 정책 저장소로부터 확인하고, 개별 그리드 컴퓨터의 상태 정보에 근거하여 그리드 컴퓨터들을 각각의 세트에 등록한다. 또한, 결정된 세트 구성 정책에 따라, 유지해야 할 그리드 컴퓨터 세트의 세트 구성 정보를 확인하여 그리드 컴퓨터의 상태 정보를 검사하고, 그 결과에 따라 새로운 그리드 컴퓨터가 필요할 경우, 그리드 컴퓨터 세트에 새로운 구성원을 포함시켜 컨텐츠 블럭을 할당하게 된다.
상기 도 4 및 도 5를 참조한 실시예는 그리드 관리 서버(230)의 경우를 예로 들어 설명하였지만, 이는 피어 관리 서버(220)에도 유사하게 적용될 수 있다. 단, 피어 컴퓨터(221_1 내지 221_n)가 피어 관리 서버(220)에 미리 연결하여 상태 정보를 제공하거나 세트를 구성하는 방식이 아니라, 피어 관리 서버(220)에 접속하는 순간 자신의 상태 정보 및 다운로드 받고자 하는 컨텐츠 블럭의 정보를 제공한다는 점에서 차이가 존재한다.
도 6은 본 발명의 일 실시예에 따른 피어 컴퓨터의 컨텐츠 블록 다운로드의 개념도이다. 설명의 편의를 위해, 동시에 접속하여 다운로드를 수행하는 피어 컴퓨터의 개수 및 컨텐츠 블럭을 제공하는 제3의 피어 컴퓨터의 개수, 컨텐츠 블럭의 크기, 해당 콘텐츠 블럭의 배포를 위해 할당된 그리드 컴퓨터의 개수, 컨텐츠의 크기 등 가변적 변수들은 상황에 따라 변할 수 있다고 가정한다. 설명의 편의를 위해 불필요한 필드 요소들과 복잡한 인덱스는 표시하지 않았다.
상기 도 6을 참조하면, 먼저 제1 피어 컴퓨터(221_1)가 피어 관리 서버(220)에 접속하여 자신의 실제 메모리 크기와 IP 정보 등의 정적인 정보를 피어 관리 서 버(220)에 제공한다(S601). 제1 피어 컴퓨터(221_1)는 컨텐츠 블럭을 업로드하거나 다운로드하기 위한 속도 체크를 피어 관리 서버(220)와 수행하고(S602), 피어 관리 서버(220)에게 다운로드 받고자 하는 컨텐츠에 대한 정보를 요청한다(S603). 피어 관리 서버(220)는 제1 피어 컴퓨터(221_1)가 필요로 하는 컨텐츠에 대한 정보나 제1 피어 컴퓨터(221_1)의 다운로드 속도 등과 같은 정보를 컨텐츠 배포 메인 서버(240)를 통해 확인하여, 그에 적합한 세트 구성 정보를 제1 피어 컴퓨터(221_1)에게 전송한다(S604). 상기 세트 구성 정보를 수신한 제1 피어 컴퓨터(221_1)는 해당되는 그리드 컴퓨터 또는 피어 컴퓨터 또는 파일 서버들 중 하나 이상을 랜덤하게 선정하여 동시 접속을 하고, 컨텐츠 블럭을 병렬로 다운로드 받는다(S605). 상기 다운로드를 수행하는 도중에 제1 피어 컴퓨터(221_1)는 자신이 현재 다운로드 받은 컨텐츠 블럭의 정보를 피어 관리 서버(220)에게 전달한다(S606). 피어 관리 서버(220)는 여러 개의 피어 컴퓨터(여기서는 제1 피어 컴퓨터(221_1)와 제2 피어 컴퓨터(221_2))로부터 수신한 상기 컨텐츠 블럭의 정보를 취합하여, 다운로드 받은 블럭의 중복율이 가장 낮은 피어 컴퓨터가 어느 것인지에 대한 정보를 제1 피어 컴퓨터(221_1)와 제2 피어 컴퓨터(221_2)에게 전달한다(S607).
제1 피어 컴퓨터(221_1) 또는 제2 피어 컴퓨터(221_2)가 서로에게 접속 요청을 하고, 서로 보유하고 있는 컨텐츠 블럭의 정보를 교환하고, 또한, 서로가 알고 있는 그리드 컴퓨터 및 또 다른 제3의 피어 컴퓨터에 대한 정보도 교환한다(S608). 교환한 정보를 통해 각 피어 컴퓨터는 서로 그물망처럼 연결되어 보유하고 있는 콘텐츠 블록을 교환하게 되는 것이다.
다음으로, 제1 피어 컴퓨터(221_1)는 제2 피어 컴퓨터(221_2)의 컨텐츠 블럭의 보유 정보 및 그리드 컴퓨터와 제3의 피어 컴퓨터에 대한 정보를 관리하며, 제2 피어 컴퓨터(221_2)의 컨텐츠 블럭 요청이 있을 경우, 해당 컨텐츠 블럭을 제공하고, 자신은 그리드 컴퓨터 및 제2 피어 컴퓨터(221_2)로부터 필요한 블록에 대하여 랜덤하게 병렬적으로 블럭을 전송받을 수 있다(S609). 본 발명의 일 실시예에 따른 피어 컴퓨터의 상태 정보를 예시하고 있는 도 7b를 참조하면, 각 피어 컴퓨터는 자신이 알고 있는 다른 피어 컴퓨터가 다운로드 하고 있는 컨텐츠의 종류, 등급 및 다운로드가 완료된 블럭의 번호를 알 수 있다.
상기 S606 과정부터 S609 과정까지는 제1 피어 컴퓨터(221_1) 및 제2 피어 컴퓨터(221_2)가 완성된 콘텐츠를 보유할 때까지 지속적으로 반복되는 과정이다.
제1 피어 컴퓨터(221_1)가 컨텐츠 블럭의 다운로드를 완성하면, 피어 관리 서버(220)에게 통지하고, 피어 관리 서버(220)와 연결을 종료한다(S610). 제1 피어 컴퓨터(221_1)는 현재 다른 피어 컴퓨터에게 전송 중인 블록이 있을 경우는 그것까지만 전송을 완료하고 연결을 모두 종료한다. 피어 관리 서버(220)는 제1 피어 컴퓨터(221_1)로부터 완료 통보를 받으면, 더 이상 제1 피어 컴퓨터(221_1)의 상태 정보를 다른 피어 컴퓨터에게 제공하지 않는다. 물론, 제1 피어 컴퓨터(221_1)는 피어 관리 서버(220)와의 연결을 바로 종료하지 않으면서 제3의 피어 컴퓨터에게 블록을 계속 배포할 수도 있다.
한편, 본 발명의 실시예에 따른 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법의 권리 범위는 상기와 같은 방법을 컴퓨터에서 실행하기 위한 프로 그램 코드를 기록한 컴퓨터로 읽을 수 있는 기록 매체에도 미침은 당업자에게 자명하다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
상기한 바와 같은 본 발명의 실시예에 따르면, 다음과 같은 효과가 하나 이상 존재한다.
컨텐츠를 블럭 단위로 랜덤하고 병렬적으로 다운로드 받기 때문에, 기존의 병렬적 다운로드 방식이 가지는 순차적인 병목 현상을 방지하고, 긴급을 요하는 컨텐츠 배포를 빠르게 수행할 수 있다.
또한, 그리드 컴퓨터 세트를 미리 준비하여 실시간으로 관리함으로써, 컨텐츠 블럭을 실시간으로 업로드하고 이와 동시에 배포할 수 있으며, 하나의 컨텐츠의 업로드가 완료되기 전이라도 피어 컴퓨터들은 실시간으로 컨텐츠 블럭을 배포받을 수 있다.
또한, 거미줄과 같은 연결 관계가 유지되는 둘 이상의 피어 컴퓨터끼리의 다운로드를 최우선으로 하기 때문에, 특정의 피어 컴퓨터에 장애가 발생해도 상호 보완을 통해 안정적인 배포 시스템이 구성될 수 있다.
또한, 그리드 컴퓨터와 파일 서버로부터의 다운로드를 차순위로 설정함으로써, 어느 하나의 컨텐츠 블럭 제공 시스템에 갑자기 트래픽이 몰리더라도 자체 시스템의 물리적 한계를 극복하여 안정적으로 컨텐츠 블럭을 제공할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.

Claims (23)

  1. 하나 이상의 블록 단위로 분할하여 업로드된 컨텐츠 블록을 복수의 파일 서버에 실시간으로 복제하는 블록 이중화 서버;
    상기 컨텐츠 블록의 배포를 요청하는 복수의 피어 컴퓨터에게 배포할 수 있도록 상기 컨텐츠 블록을 복수의 그리드 컴퓨터에 미리 저장하는 그리드 관리 서버; 및
    상기 복수의 파일 서버 및 상기 복수의 그리드 컴퓨터로부터 상기 복수의 피어 컴퓨터에게 상기 컨텐츠 블록을 병렬적이고 랜덤하게 배포하고, 상기 복수의 피어 컴퓨터 상호 간에도 상기 컨텐츠 블록을 병렬적이고 랜덤하게 주고 받을 수 있도록 제어하는 피어 관리 서버를 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  2. 제 1 항에 있어서,
    상기 블록 이중화 서버, 상기 그리드 관리 서버 및 상기 피어 관리 서버와 각각 연결되어 이들을 제어하며, 상기 컨텐츠 블록의 배포 방식에 대한 우선 순위를 설정하는 컨텐츠 배포 메인 서버를 더 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  3. 제 2 항에 있어서,
    상기 컨텐츠 배포 메인 서버는,
    상기 피어 컴퓨터 상호 간의 컨텐츠 블록의 배포를 제1 순위로, 상기 그리드 컴퓨터에서 상기 피어 컴퓨터로의 컨텐츠 블록의 배포를 제2 순위로, 상기 파일 서버에서 상기 피어 컴퓨터로의 컨텐츠 블록의 배포를 제3 순위로 설정하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  4. 제 1 항에 있어서,
    하나 이상의 블록 단위로 상기 컨텐츠를 분할하고 분할한 결과 생성된 컨텐츠 블록을 상기 블록 이중화 서버에 업로드하는 컨텐츠 분할 및 업로드 서버를 더 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  5. 제 4 항에 있어서,
    상기 컨텐츠 분할 및 업로드 서버는,
    상기 컨텐츠 블록의 업로드와 함께 상기 컨텐츠에 대한 정보를 상기 블록 이중화 서버에 전달하며,
    상기 컨텐츠에 대한 정보는, 상기 컨텐츠의 파일명, 상기 컨텐츠의 크기, 상기 컨텐츠 블록의 크기 및 상기 컨텐츠 블록의 총 개수를 포함하는 정보인, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  6. 제 1 항에 있어서,
    상기 그리드 관리 서버는,
    상기 그리드 컴퓨터의 네트워크 및 시스템의 유휴 상태에 대한 정보를 확인하여, 상기 정보에 따라 모든 그리드 컴퓨터를 관리하고, 소정 개수의 그리드 컴퓨터로 구성된 하나 이상의 그리드 컴퓨터 세트를 생성하고 관리하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  7. 제 6 항에 있어서,
    상기 그리드 관리 서버는,
    상기 컨텐츠 블럭을 상기 그리드 컴퓨터 세트를 구성하는 그리드 컴퓨터들에게 배포하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  8. 제 1 항에 있어서,
    상기 피어 컴퓨터는,
    상기 컨텐츠 블록의 다운로드 링크 정보를 이용하여 상기 피어 관리 서버에 접속하여 상기 컨텐츠 블록의 정보를 요청하며, 상기 컨텐츠 블럭의 정보는 상기 컨텐츠 블럭이 존재하는 위치 정보를 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  9. 제 8 항에 있어서,
    상기 피어 관리 서버는,
    상기 피어 컴퓨터의 요청에 따라, 상기 피어 컴퓨터를 제외한 나머지 피어 컴퓨터, 상기 그리드 컴퓨터 및 상기 파일 서버로부터 상기 피어 컴퓨터의 요청에 가장 적합한 상기 컨텐츠 블럭의 정보를 검색하여 상기 피어 컴퓨터에 제공하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  10. 제 9 항에 있어서,
    상기 피어 컴퓨터는,
    상기 그리드 컴퓨터로부터 상기 컨텐츠 블록을 다운로드 받는 도중에, 현재 자신의 다운로드 상태 및 네트워크 상태 정보를 주기적으로 상기 피어 관리 서버에게 전송하고, 자신을 제외한 나머지 피어 컴퓨터, 상기 그리드 컴퓨터 및 상기 파일 서버에 대한 상태 정보를 상기 피어 관리 서버로부터 수신하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  11. 제 10 항에 있어서,
    상기 피어 컴퓨터는,
    상기 수신한 상태 정보를 이용하여 아직 다운로드 받지 못한 컨텐츠 블록을 상기 나머지 피어 컴퓨터, 상기 그리드 컴퓨터 및 상기 파일 서버 중 적어도 하나로부터 병렬적으로 다운로드하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포 하는 컨텐츠 배포 시스템.
  12. 제 11 항에 있어서,
    상기 피어 컴퓨터는,
    상기 다운로드가 완료되는 경우에는 상기 피어 관리 서버에게 완료 통지를 하고, 상기 피어 관리 서버는 상기 피어 컴퓨터의 상태 정보를 완료 상태로 저장하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  13. 제 1 항에 있어서,
    상기 파일 서버는,
    상기 컨텐츠 블록의 원본을 저장하는 마스터 파일 서버 및 상기 마스터 파일 서버로부터 복제된 복제 컨텐츠 블록을 저장하는 서브 파일 서버를 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 컨텐츠 배포 시스템.
  14. 블록 이중화 서버가 하나 이상의 블록 단위로 분할하여 업로드된 컨텐츠 블록을 복수의 파일 서버에 실시간으로 복제하는 단계;
    그리드 관리 서버가 상기 컨텐츠 블록을 복수의 그리드 컴퓨터에 저장하는 단계; 및
    피어 관리 서버가 상기 컨텐츠 블록을 배포해 줄 것을 요청하는 복수의 피어 컴퓨터에게 상기 컨텐츠 블록을 병렬적이고 랜덤하게 배포하고, 상기 복수의 피어 컴퓨터 상호 간에도 상기 컨텐츠 블록을 병렬적이고 랜덤하게 주고 받을 수 있도록 제어하는 단계를 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법.
  15. 제 14 항에 있어서,
    상기 블록 이중화 서버, 상기 그리드 관리 서버 및 상기 피어 관리 서버와 각각 연결되어 이들을 제어하는 컨텐츠 배포 메인 서버가 상기 컨텐츠 블록의 배포 방식에 대한 우선 순위를 설정하는 단계를 더 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법.
  16. 제 15 항에 있어서,
    상기 우선 순위를 설정하는 단계는,
    상기 피어 컴퓨터 상호 간의 컨텐츠 블록의 배포를 제1 순위로, 상기 그리드 컴퓨터에서 상기 피어 컴퓨터로의 컨텐츠 블록의 배포를 제2 순위로, 상기 파일 서버에서 상기 피어 컴퓨터로의 컨텐츠 블록의 배포를 제3 순위로 설정하는 단계를 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법.
  17. 제 14 항에 있어서,
    상기 복제하는 단계 이전에,
    컨텐츠 분할 및 업로드 서버가 하나 이상의 블록 단위로 상기 컨텐츠를 분할 한 컨텐츠 블록을 상기 블록 이중화 서버에 업로드하는 단계를 더 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법.
  18. 제 17 항에 있어서,
    상기 블록 이중화 서버에 업로드하는 단계는,
    상기 컨텐츠 블록의 업로드와 함께 상기 컨텐츠에 대한 정보를 상기 블록 이중화 서버에 전달하는 단계를 포함하며,
    상기 컨텐츠에 대한 정보는, 상기 컨텐츠의 파일명, 상기 컨텐츠의 크기, 상기 컨텐츠 블록의 크기 및 상기 컨텐츠 블록의 총 개수를 포함하는 정보인, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법.
  19. 제 14 항에 있어서,
    상기 그리드 관리 서버는,
    상기 그리드 컴퓨터의 네트워크 및 시스템의 유휴 상태에 대한 정보를 확인하여, 상기 정보에 따라 모든 그리드 컴퓨터를 관리하고, 소정 개수의 그리드 컴퓨터로 구성된 하나 이상의 그리드 컴퓨터 세트를 생성하고 관리하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법.
  20. 제 14 항에 있어서,
    상기 피어 컴퓨터가 상기 컨텐츠 블록의 다운로드 링크 정보를 이용하여 상 기 피어 관리 서버에 접속하여 상기 컨텐츠 블록의 정보를 요청하는 단계를 더 포함하며, 상기 컨텐츠 블럭의 정보는 상기 컨텐츠 블럭이 존재하는 위치 정보를 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법.
  21. 제 20 항에 있어서,
    상기 제어하는 단계는,
    상기 피어 컴퓨터의 요청에 따라, 상기 피어 관리 서버가 상기 피어 컴퓨터를 제외한 나머지 피어 컴퓨터, 상기 그리드 컴퓨터 및 상기 파일 서버로부터 상기 피어 컴퓨터의 요청에 가장 적합한 상기 컨텐츠 블럭의 정보를 검색하여 상기 피어 컴퓨터에 제공하는 단계; 및
    상기 피어 컴퓨터는 상기 컨텐츠 블럭의 정보를 이용하여 상기 나머지 피어 컴퓨터, 상기 그리드 컴퓨터 및 상기 파일 서버 중 적어도 하나로부터 상기 컨텐츠 블럭을 병렬적으로 다운로드 하는 단계를 포함하는, 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법.
  22. 제 21 항에 있어서,
    상기 제어하는 단계는,
    상기 다운로드가 완료되는 경우에, 상기 피어 컴퓨터가 상기 피어 관리 서버에게 다운로드 완료 통지를 하고, 상기 피어 관리 서버는 상기 피어 컴퓨터의 상태 정보를 완료 상태로 저장하는 단계를 더 포함하는, 컨텐츠를 블록 단위로 병렬적이 고 랜덤하게 배포하는 방법.
  23. 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는 방법을 실행하기 위하여 컴퓨터에 의하여 실행되는 프로그램 코드를 포함하는 컴퓨터로 판독 가능한 기록 매체로서, 상기 방법은,
    블록 이중화 서버가 하나 이상의 블록 단위로 분할하여 업로드된 컨텐츠 블록을 복수의 파일 서버에 실시간으로 복제하는 단계;
    그리드 관리 서버가 상기 컨텐츠 블록을 복수의 그리드 컴퓨터에 저장하는 단계; 및
    피어 관리 서버가 상기 컨텐츠 블록을 배포해 줄 것을 요청하는 복수의 피어 컴퓨터에게 상기 컨텐츠 블록을 병렬적이고 랜덤하게 배포하고, 상기 복수의 피어 컴퓨터 상호 간에도 상기 컨텐츠 블록을 병렬적이고 랜덤하게 주고 받을 수 있도록 제어하는 단계를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
KR1020070041391A 2007-04-27 2007-04-27 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는컨텐츠 배포 시스템 및 방법 KR20090001571A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070041391A KR20090001571A (ko) 2007-04-27 2007-04-27 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는컨텐츠 배포 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070041391A KR20090001571A (ko) 2007-04-27 2007-04-27 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는컨텐츠 배포 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20090001571A true KR20090001571A (ko) 2009-01-09

Family

ID=40484638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070041391A KR20090001571A (ko) 2007-04-27 2007-04-27 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는컨텐츠 배포 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20090001571A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101006539B1 (ko) * 2009-02-06 2011-01-07 (주)씨디네트웍스 파일 병렬 다운로드에서의 최대 빈도 블록 우선 선택 방법,이를 이용한 파일 병렬 다운로드 방법 및 이를 구현하기 위한 프로그램을 기록한 기록매체
CN103702234A (zh) * 2013-12-24 2014-04-02 乐视网信息技术(北京)股份有限公司 可抵抗不稳定带宽的内容传送网络的处理方法与系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101006539B1 (ko) * 2009-02-06 2011-01-07 (주)씨디네트웍스 파일 병렬 다운로드에서의 최대 빈도 블록 우선 선택 방법,이를 이용한 파일 병렬 다운로드 방법 및 이를 구현하기 위한 프로그램을 기록한 기록매체
CN103702234A (zh) * 2013-12-24 2014-04-02 乐视网信息技术(北京)股份有限公司 可抵抗不稳定带宽的内容传送网络的处理方法与系统

Similar Documents

Publication Publication Date Title
US9635107B2 (en) System and method for managing data delivery in a peer-to-peer network
EP2701363B1 (en) Content processing method, device and system
US9300729B1 (en) Distributing information over a network
US7433934B2 (en) Network storage virtualization method and system
US8606846B2 (en) Accelerating peer-to-peer content distribution
KR101485610B1 (ko) 네트워크 구조를 고려한 분산형 컨텐트 전달 시스템 및 그 방법
EP3439239B1 (en) Data transmission method and system based on peer-to-peer network
WO2018076765A1 (zh) 云计算系统的内容分发方法及装置、计算节点及系统
KR101980129B1 (ko) 관리 기능이 부여된 피투피 네트워크 시스템
CN100588172C (zh) 一种实现网络预订存储的系统和方法
Confais et al. Performance analysis of object store systems in a fog and edge computing infrastructure
US20110213879A1 (en) Multi-level Decision Support in a Content Delivery Network
US20100235409A1 (en) System and method for managing data stored in a data network
US20190037015A1 (en) Peer-to-peer network prioritizing propagation of objects through the network
CN102420863B (zh) 一种快速分发文件系统和方法及装置
KR20190116565A (ko) 분산 파일 시스템의 복수의 클러스터의 관리
EP2828749A1 (en) Method and apparatus for a distributed file system in a cloud network using file chunking and replication
CN110324406A (zh) 一种获取业务数据的方法和云服务系统
JP2004199578A (ja) コンテンツ配信方法及び装置並びにプログラム及び記録媒体
US9544371B1 (en) Method to discover multiple paths to disk devices cluster wide
US8566681B1 (en) Distributed data distribution
KR20090001571A (ko) 컨텐츠를 블록 단위로 병렬적이고 랜덤하게 배포하는컨텐츠 배포 시스템 및 방법
KR102338265B1 (ko) Ipfs 분산 스토리지 환경에서의 우주 기상 관측 데이터 모니터링 시스템 및 방법
CN102017568A (zh) 用于递送自主播放的内容的系统
WO2013047207A1 (ja) キャッシュシステム、キャッシュ方法、及びキャッシュサーバ

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E601 Decision to refuse application