KR100715143B1 - 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템과 파일 분할, 병합 및 재생 방법 - Google Patents
스트리밍 기반의 컨텐츠 분산형 네트워크 시스템과 파일 분할, 병합 및 재생 방법 Download PDFInfo
- Publication number
- KR100715143B1 KR100715143B1 KR1020057020418A KR20057020418A KR100715143B1 KR 100715143 B1 KR100715143 B1 KR 100715143B1 KR 1020057020418 A KR1020057020418 A KR 1020057020418A KR 20057020418 A KR20057020418 A KR 20057020418A KR 100715143 B1 KR100715143 B1 KR 100715143B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- server
- content
- files
- source
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5603—Access techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
멀티미디어 파일을 분할 전송하여 재생하는 방법은, 파일을 분할 또는 병합하여 어드민 서버(Admin Server)로 업로드하고, 컨텐츠를 동기화하고, 클라이언트가 웹 서버에 접속해서 컨텐츠를 선택하고 인증절차를 거친 뒤, 최적의 컨텐츠 서버로부터 원하는 파일을 다운로드 받아 임시 파일로 컴퓨터 하드디스크 공간에 저장한 뒤 전용 플레이어로 상기 다운로드 받은 데이터를 재생하고 상기 재생 종료와 함께 상기 임시 파일을 삭제하는 단계들을 구비하여 이루어진다.
Description
본 발명은 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템에 대한 것이다. 보다 자세하게는 본 발명은 동영상 데이터를 포함한 대용량의 멀티미디어 컨텐츠를 안정적으로 다운로드 받을 수 있도록 컨텐츠를 다수의 작은 파일로 분할 전송하여 사용자가 대용량의 컨텐츠를 안정적으로 다운로드 받을 수 있어서 파일을 다운로드 받으면서 동시에 멀티미디어 데이터를 고품질로 재생시킬 수 있도록 해주는 기술에 관한 것이다.
종래에는 음성(voice), 사진(pictures), 동영상(moving pictures), 애니메이션(animation) 파일과 같이 대용량의 멀티미디어 컨텐츠 파일을 인터넷을 통해 송수신함에 있어서 해당 파일을 하드디스크(hard disk)에 다운로드 받은 후 재생하는 방식이 이용되었으나, 멀티미디어 컨텐츠와 같은 대용량 파일의 경우 다운로드에 장시간이 소요되는 불편함이 있었다. 또 일반적으로 파일을 재생할 때 버퍼(buffer)의 용량이 작아서 재생 도중에 접속이 끊어지는 경우가 자주 발생하였으며, 이 경우에는 다시 처음부터 다운로드 해야 하는 문제점이 있었다.
도 20의 종래 스트리밍 서비스와 현재의 스트리밍 서비스의 구성을 보여준다. 도 20의 종래 스트리밍 서비스는 컨텐츠 제공자 서버(Contents Provider Server)(10)는 상호 연결된 다수의 인터넷 서비스 제공자(Internet Service Provider:ISP, Edge라고도 함)(40)를 통해 사용자(20)에게 컨텐츠를 제공한다. 즉 종래의 스트리밍 서비스는 사용자(20)가 컨텐츠 제공자 서버(Contents Provider Server)(10)에 접속하기 위해 물리적으로 여러 개의 인터넷 서비스 제공자 (Internet Service Provider:ISP)(40)를 경유한다.
기존의 스트리밍 방식은 서버-클라이언트 구조에서 한대의 중앙 관리 서버에서 다수의 클라이언트들로 컨텐츠 전송 시 서버 부하를 줄 수 있으며, 네트워크 대역폭의 병목 현상 등의 발생으로 높은 품질의 멀티미디어 스트리밍 서비스를 제공하지 못하는 단점을 가지고 있다.
또한 기존 스트리밍 방식은 클라이언트의 멀티미디어 요청에 대해서 컨텐츠 전체를 하나의 세션을 열고 파일을 다운로드 함으로써 다수의 클라이언트에서의 요청을 처리할 경우 서버의 부하를 가중시킨다.
뿐만 아니라 클라이언트 컴퓨터의 멀티미디어 플레이어에서 컨텐츠 재생시 서버로부터 컨텐츠를 다시 로컬의 클라이언트 컴퓨터로 버퍼링을 시작하기 때문에 전체를 재전송 받아야 하는 수고 및 원하는 부분에서의 재생이 불가능하다.
기존의 스트리밍 서비스는 낮은 품질의 멀티미디어 스트리밍 서비스, 높은 스토리지 비용, 많은 대역폭(Large Bandwidth)요구의 비효율성 등의 단점을 가지고 있고 또한 클라이언트의 데이터 수신 속도가 빠르지 않으면 화면 끊김 현상과 같이 데이터가 원활하게 동작되지 않는 문제가 발생하고 있다. 따라서 투자 비용에 비해 수용 용량이 너무 낮고 인터넷 미들 마일(Middle-Mile)의 병목 현상이 생기며, 순간적인 접속 폭주 현상이 발생하고, 서버 부하와 트래픽의 집중 및 장애의 도미노 현상이 발생하고, 서버 부하와 트래픽의 집중 및 장애의 도미노 현상이 발생하면 급변하는 트래픽 관리가 어렵다는 문제점이 있다.
스트리밍 기반의 컨텐츠 분산형 네트워크 시스템(Streaming Contents Distribution Network, SCDN)은 사용자의 도메인 네임 서버(Domain Name Server:DNS)설정에 관계없이 항상 정확한 네트워크 거리 정보를 바탕으로 광역 인터넷 트래픽 관리(Global Internet Traffic Management)를 수행할 수 있어야 하고, 에지 서버(Edge Server)들의 기종 및 설치 환경에 관계없이 심층적인 서버의 상태 검사를 이용하여 정확한 로컬 인터넷 트래픽 관리(Local Internet Traffic Management)를 수행할 수 있어야 한다. 예로서 서버의 CPU, 메모리, 포트별 세션(Session) 수 등에 대한 세밀한 검사가 필요하다.
한편 순간 접속 요구량의 증가에 이은 순간 트래픽 폭주를 감당하기 위해서는 각 에지(Edge)의 네트워크의 구조를 단순화 할 수 있는 스탠드 어사이드(Stand-aside) 방식의 인터넷 트래픽 관리(Internet Traffic Management:ITM) 솔루션이 유리하다. ITM 솔루션이 도메인 네임 서버에 종속되어 동작될 경우, 서비스 품질의 저하는 물론 심각한 장애 사태 발생시에도 관리자가 대처할 방법이 없으므로 도메인 네임 서버의 영향을 받지 않는 솔루션이 필요하다.
계속 증가하는 트래픽과 에지 서버(Edge) 부하 문제를 해결하기 위해 네트워크를 피라미드 형태로 구축하는 방법은 필연적으로 비용의 상승을 야기한다. 따라서 이를 해결할 수 있는 새로운 방식의 ITM 솔루션이 필요하게 되었다. 그리고 인터넷 상에 다수의 컨텐츠 원본 서버(Contents Origin Server)와 에지 서버(Edge Server)가 분산되어 있는 경우에도 효율적으로 컨텐츠를 상호 분배하고 동기화 할 수 있는 기술이 필요하다.
그리고 기존의 스트리밍 서비스는 사용자의 변화에 능동적으로 대응하고 있지 못하다. 즉 기존에는 320×240, 100∼300 Kbps급 서비스면 충분하였으나 현재는 512×384, 1Mbps이상급(DVD급) 서비스가 요구되고 있으나 이에 대한 대책이 충분하지 못한 형편이다. 그리고 기존의 방식은 능동형 다운로딩(Downloading) 방식을 채택하지 못하고 있다.
도 20의 종래 스트리밍 서비스와 현재의 스트리밍 서비스의 구성을 보여준다. 도 20의 종래 스트리밍 서비스는 컨텐츠 제공자 서버(Contents Provider Server)(10)는 상호 연결된 다수의 인터넷 서비스 제공자(Internet Service Provider:ISP, Edge라고도 함)(40)를 통해 사용자(20)에게 컨텐츠를 제공한다. 즉 종래의 스트리밍 서비스는 사용자(20)가 컨텐츠 제공자 서버(Contents Provider Server)(10)에 접속하기 위해 물리적으로 여러 개의 인터넷 서비스 제공자 (Internet Service Provider:ISP)(40)를 경유한다.
기존의 스트리밍 방식은 서버-클라이언트 구조에서 한대의 중앙 관리 서버에서 다수의 클라이언트들로 컨텐츠 전송 시 서버 부하를 줄 수 있으며, 네트워크 대역폭의 병목 현상 등의 발생으로 높은 품질의 멀티미디어 스트리밍 서비스를 제공하지 못하는 단점을 가지고 있다.
또한 기존 스트리밍 방식은 클라이언트의 멀티미디어 요청에 대해서 컨텐츠 전체를 하나의 세션을 열고 파일을 다운로드 함으로써 다수의 클라이언트에서의 요청을 처리할 경우 서버의 부하를 가중시킨다.
뿐만 아니라 클라이언트 컴퓨터의 멀티미디어 플레이어에서 컨텐츠 재생시 서버로부터 컨텐츠를 다시 로컬의 클라이언트 컴퓨터로 버퍼링을 시작하기 때문에 전체를 재전송 받아야 하는 수고 및 원하는 부분에서의 재생이 불가능하다.
기존의 스트리밍 서비스는 낮은 품질의 멀티미디어 스트리밍 서비스, 높은 스토리지 비용, 많은 대역폭(Large Bandwidth)요구의 비효율성 등의 단점을 가지고 있고 또한 클라이언트의 데이터 수신 속도가 빠르지 않으면 화면 끊김 현상과 같이 데이터가 원활하게 동작되지 않는 문제가 발생하고 있다. 따라서 투자 비용에 비해 수용 용량이 너무 낮고 인터넷 미들 마일(Middle-Mile)의 병목 현상이 생기며, 순간적인 접속 폭주 현상이 발생하고, 서버 부하와 트래픽의 집중 및 장애의 도미노 현상이 발생하고, 서버 부하와 트래픽의 집중 및 장애의 도미노 현상이 발생하면 급변하는 트래픽 관리가 어렵다는 문제점이 있다.
스트리밍 기반의 컨텐츠 분산형 네트워크 시스템(Streaming Contents Distribution Network, SCDN)은 사용자의 도메인 네임 서버(Domain Name Server:DNS)설정에 관계없이 항상 정확한 네트워크 거리 정보를 바탕으로 광역 인터넷 트래픽 관리(Global Internet Traffic Management)를 수행할 수 있어야 하고, 에지 서버(Edge Server)들의 기종 및 설치 환경에 관계없이 심층적인 서버의 상태 검사를 이용하여 정확한 로컬 인터넷 트래픽 관리(Local Internet Traffic Management)를 수행할 수 있어야 한다. 예로서 서버의 CPU, 메모리, 포트별 세션(Session) 수 등에 대한 세밀한 검사가 필요하다.
한편 순간 접속 요구량의 증가에 이은 순간 트래픽 폭주를 감당하기 위해서는 각 에지(Edge)의 네트워크의 구조를 단순화 할 수 있는 스탠드 어사이드(Stand-aside) 방식의 인터넷 트래픽 관리(Internet Traffic Management:ITM) 솔루션이 유리하다. ITM 솔루션이 도메인 네임 서버에 종속되어 동작될 경우, 서비스 품질의 저하는 물론 심각한 장애 사태 발생시에도 관리자가 대처할 방법이 없으므로 도메인 네임 서버의 영향을 받지 않는 솔루션이 필요하다.
계속 증가하는 트래픽과 에지 서버(Edge) 부하 문제를 해결하기 위해 네트워크를 피라미드 형태로 구축하는 방법은 필연적으로 비용의 상승을 야기한다. 따라서 이를 해결할 수 있는 새로운 방식의 ITM 솔루션이 필요하게 되었다. 그리고 인터넷 상에 다수의 컨텐츠 원본 서버(Contents Origin Server)와 에지 서버(Edge Server)가 분산되어 있는 경우에도 효율적으로 컨텐츠를 상호 분배하고 동기화 할 수 있는 기술이 필요하다.
그리고 기존의 스트리밍 서비스는 사용자의 변화에 능동적으로 대응하고 있지 못하다. 즉 기존에는 320×240, 100∼300 Kbps급 서비스면 충분하였으나 현재는 512×384, 1Mbps이상급(DVD급) 서비스가 요구되고 있으나 이에 대한 대책이 충분하지 못한 형편이다. 그리고 기존의 방식은 능동형 다운로딩(Downloading) 방식을 채택하지 못하고 있다.
도 1은 본 발명에 따른 SCDN(Streaming Contents Distribution Network) 시스템의 바람직한 일 실시예의 구성도;
도 2, 3, 4, 5는 본 발명에 따른 SCDN 시스템의 동작방법의 바람직한 일 실시예의 흐름도;
도 6, 7, 8, 9는 본 발명에 따른 SCDN 시스템을 위한 파일 분할, 파일 병합 및 미디어 재생 시스템의 블록다이어 그램;
도 10, 11, 12, 13은 본 발명에 따른 컨텐츠 파일 분할과정의 일 실시예;
도 14는 본 발명에 따른 서비스 이용형태의 예시도;
도 15는 본 발명에 따른 스트리밍 콘텐트 딜리버리 네트워크(SCDN)의 구성 예시도;
도 16은 본 발명에 따른 Stand-aside 방식의 ITM 솔루션의 예시도;
도 17은 본 발명에 따른 헤더파일 구조도;
도 18, 19는 본 발명에 따른 인증절차의 흐름도; 및
도 20은 종래 스트리밍 서비스의 개념도이다.
기술적 과제
1. SCDN 시스템 구성
본 발명에 따른 SCDN(Streaming Contents Distribution Network) 시스템의 바람직한 일 실시예의 구성은 도 1에 도시 되어 있다. 본 발명에서 제공하는 서비스 형태는 다음과 같다:
첫째, 본 발명에서 제공 가능한 서비스 형태의 하나는 스트리밍 서비스(Streaming Service)다. 대화형 플레이어 (Interactive Player)에 의한 검색 기능, 시간 제약 기능 등의 사용자 인터페이스(User Interface, UI) 기능이 제공되며, 이 서비스는 교육용 컨텐츠 제공 및 다양한 형태로 응용할 수 있다.
둘째, 본 발명에서 제공 가능한 다른 서비스 형태는 다운로드 서비스이다. 다운로드 서비스는 클라이언트 컴퓨터에 분할된 파일을 저장하고, 재생 횟수, 재생 시간을 제한한다.
셋째, 본 발명에서 제공하는 또 다른 서비스는 광역 로드 밸런싱(Global Load Balancing)과 서버 로드 밸런싱(Server Load Balancing)(IPMaster가 담당), 컨텐츠 분산 배포 (Contents Distribution)(CDMaster가 담당), 무정지 서비스이다. 무정지 서비스는 컨텐츠 서버 가운데 일부가 장애인 경우 다른 서버로 자동적으로 연결하여 서비스를 계속하는 것을 뜻한다. 그리고 이 서비스는 다양한 멀티미디어 파일 형식을 지원한다. 예로써 MPEG1, AVI, ASF계열(WMT)을 지원한다. 그리고 코덱(Codec)과 독립적인 구조를 가지고 있어서 추후에 발생할 코덱별 업그레이드를 고려할 필요가 없다. 또한 대화형 재생 방식을 사용하므로 시청한 부분에 대한 실시간 검색이 가능하며 버퍼링이 필요 없다.
도 14는 본 발명에 따른 서비스 이용 형태의 예시도 이다. 도면 상부에는 클라이언트 컴퓨터에 설치된 전용 플레이어를 이용하는 화면을 보여주고 있고, 하부에는 웹(Web)과 액티브엑스 컨트롤(Active X Control)이 결합된 플레이어를 이용하는 화면을 보여준다. 본 발명은 전용 플레이어를 사용하는 경우 이엔네트워크(ENNetwork)가 HTTP(HyperText Transfer Protocol)를 이용하여 컴퓨터의 지정된 하드 디스크 공간에 헤더 파일(Header File) 및 분할된 컨텐츠 파일은 다운로드한다. 그러나 웹과 액티브엑스 컨트롤을 이용하는 경우에는 새로운 창을 열어서 새 페이지로 헤더 URL(Uniform Resource Locator)을 전달한다. 이후 이엔네트워크(ENNetwork)가 HTTP를 이용하여 헤더 파일과 분할된 컨텐츠 파일을 컴퓨터의 지정된 하드 디스크 공간에 다운로드 받는다.
이제 본 발명 시스템의 구성에 대하여 설명한다. 본 발명의 시스템은 네트워크를 이용한 멀티미디어 파일 재생을 구현하는 것을 목표로 한다. 이를 위해서 본 발명의 시스템은 어드민 클라이언트(Admin Client), CMS(Contents Monitoring System) 서버를 탑재한 어드민 서버(Admin Server), 사용자측 인증 서버를 구비한 컨텐츠 웹 서버, 인증 프록시 서버(Authentication Proxy Server), 주 인증 게이트웨이 서버(Primary Authentication Gateway Server), 부 인증 게이트웨이 서버(Secondary Authentication Gateway Server), CAS(Contents Agent System), SM(Server Monitoring) 에이전트(Agent)를 구비한 컨텐츠 서버, 파일 재생을 위한 플레이어를 구비하고 있다. 또한 본 발명의 시스템은 컨텐츠 보호를 위한 디지털 저작권 관리 (Digital Rights Management: DRM) 솔루션, ITM을 구현한 아이피마스터(IPMaster), 컨텐츠 파일 동기화를 구현한 시디마스터(CDMaster)와의 통합 시스템도 구비하고 있다.
1-1. 어드민 클라이언트(Admin Client)
어드민 클라이언트는 이엔스플리터(ENSplitter) 프로그램의 파일 분할 기능을 이용하여 대용량 멀티미디어 컨텐츠를 분할하여 다수의 파일(600) 및 헤더 파일(Header File)을 생성한다.
즉, 멀티미디어 파일을 지정된 파일 크기의 목적 파일로 분할 저장하는 기능을 지원한다.
또한 이엔스플리터(ENSplitter) 프로그램의 병합기(Merger)를 이용하여 분할된 멀티미디어 파일을 원래의 파일 상태로 병합(Merge)할 수 있다.
상기 어드민 클라이언트는 윈도우즈 기반의 간단한 그래픽 사용자 인터페이스 (Graphic User Interface: GUI)를 지원하며 분할/병합(Split/Merge) 기능 구현 과정 및 결과를 확인할 수 있다.
분할된 멀티미디어 파일에 대해서 DRM을 적용한다. 분할된 각각의 파일은 정보 보호를 위해 암호화(encryption)할 수 있다. DRM 기능은 멀티미디어 파일 보호 정책상 필요에 따라 부분적으로 적용될 수 있다.
1-2. 어드민 서버(Admin Server)
어드민 서버는 크게 사용자 세션 리스트, 사용자 세션 추가/삭제, 인증 프록시 서버에서 요청하는 사용자 세션 요청의 유효성 검사, 인증 게이트웨이 서버의 설정 파일 변경, 컨텐츠 서버에서 전송한 컨텐츠 접속 로그 저장 관리 기능, 실시간 모니터링 기능, 통계 기능 등을 제공한다.
CMS 서버(200)의 실시간 데이터 감시기능은 어드민 서버로부터 업로드 또는 삭제 등 데이터의 생성, 수정, 삭제 상황을 실시간으로 인식한다.
생성, 수정, 삭제 등 파일 변경이 감지된 각각의 분할된 파일은 각각의 CAS 서버 기능을 포함한 컨텐츠 서버로 전송된다.
CMS 서버는 원본의 컨텐츠 파일의 동기화를 수행한다.
1-3. 인증 프록시 서버(Authentication Proxy Server)
사용자측 인증 서버의 인증키(Key) 요청에 대하여 응답하는 기능을 제공한다. 인증정보 인증 ID, 컨텐츠, 컨텐츠 종료시간, 인증키 등에 대한 정보들은 주 인증 게이트웨이 서버와 공유한다.
1-4. 주 인증 게이트웨이 서버, 부 인증 게이트웨이 서버(Primary,Secondary Authentication Gateway Server)
주 인증 게이트웨이 서버 및 부 인증 게이트웨이 서버는 각각의 컨텐츠 서버에 저장되어 있는 컨텐츠 접근에 대한 허락 여부를 결정하는 권한을 가지고 사용자를 인증하는 역할을 수행한다.
1-5. 컨텐츠 서버
컨텐츠를 보유한 파일 서버 역할을 수행하는 컨텐츠 서버는 크게 CAS 서버(300)와 SM 에이전트 서버로 구성된다. CAS 서버(300)는 분할된 원본의 컨텐츠 및 헤더 파일 등을 분산 저장하는 컨텐츠 서버로서 컨텐츠 동기화 기능을 수행한다. 각 CAS 서버(300)는 CMS 서버(200)로부터 분할된 파일을 복제하여 서버의 하드디스크 공간(320)에 저장하고 서버의 하드디스크 공간 (320)에는 UUID(Universal Unique Identifier) 파일 리스트(322)가 있다. 각각의 컨텐츠 서버들의 컨텐츠는 실시간으로 동기화 된다. 따라서 다수개의 CAS 서버(300) 가운데 특정 CAS 서버(300)에 문제가 생겨도 다른 CAS 서버(300)로부터 같은 내용의 컨텐츠를 제공할 수 있어서 본 발명의 시스템은 기존 시스템에 비해 결함 허용(fault tolerance) 능력이 우수하다.
CAS 서버(300)는 CMS 서버(200)의 지시에 따라 관리자에 의해 지정된 폴더 내의 분할된 컨텐츠 및 헤더 파일 데이터를 다른 CAS 서버(300)로 전송하거나, 또는 다른 CAS 서버(300)를 통해 데이터를 수신한다.
SM 에이전트는 컨텐츠 서버의 실시간 모니터링 기능을 수행한다.
SM 에이전트는 지정된 시간을 주기로 컨텐츠 서버의 CPU, 메모리, 세션에 대한 정보를 수집하여 서버 로드 밸런싱 정보로 제공한다.
1-6. 아이피마스터(IPMaster)
아이피마스터 서버는 각각의 컨텐츠 서버에 설치된 SM 에이전트로부터 특정 시간을 주기로 서버의 CPU, 메모리, 세션 정보를 실시간으로 전송 받는다. 수집된 서버 정보는 클라이언트가 분산된 컨텐츠를 보유한 컨텐츠 서버 중 최적의 컨텐츠 서버를 선택하기 위한 필요 조건이다.
아이피마스터(400)는 모든 CAS 서버(300)를 탑재한 컨텐츠 서버의 CPU, 메모리, 세션 정보들을 실시간으로 모니터링함으로써 인증된 플레이어(500)의 요청이 있을 경우 해당 플레이어(500)에게 가장 최적의 컨텐츠 서버를 선정하여 해당 컨텐츠 서버로부터 클라이언트가 원하는 컨텐츠(600)를 제공받을 수 있도록 해준다.
1-7. 플레이어(Player)
플레이어(500)는 컨텐츠에 대한 인증이 정상적으로 처리된 경우 헤더 파일을 컴퓨터 하드 디스크 공간(510)에 다운로드 하고 헤더 파일의 정보를 구문 분석(Parsing)하며 다운로드를 위한 스케줄링을 담당한다. 그리고 다운로드된 컴퓨터 하드 디스크 공간(510) 내에는 일정한 크기로 분할된 파일의 리스트를 기록하고 있는 UUID 파일 리스트(514)와 재생될 데이터 정보를 기록하고 있는 임시 파일 리스트(Tempory File List)(516)가 있다.
그리고 플레이어(500) 내에는 로컬 파일 관리자 및 DRM 복호화기(518)가 있다.
플레이어(500)는 분할된 파일을 여러 개의 쓰레드(Thread)에 의해 분할된 파일을 병렬적으로 다운로드 받을 수 있다. 윈도우즈 계열 기반의 플레이어(500)는 멀티태스킹(multi-tasking)이 가능해 분할된 파일에 대한 병렬 다운로드가 가능하므로 시스템이 더욱 안정적이고 고속으로 재생 및 파일 다운로드가 이루어진다. 이 경우 플레이어(500)는 헤더 파일 내의 분할된 파일의 구성정보를 읽어서 재생된다. 이 경우 일정한 스케줄링 정보에 의해 재생 순서가 정해져 있으므로 재생시 별다른 문제가 없다.
플레이어(500)는 로컬 파일 관리자 및 DRM 복호화기(518)를 이용하여 다운로드 받은 분할된 다수의 파일을 하나의 하드 디스크(Hard Disk)상의 파일처럼 재생한다. 이것을 위해 도 17에 도시된 것과 같은 헤더파일의 헤더 정보가 이용된다. 그리고 재생과 동시에 앞으로 재생할 파일을 CAS 서버(300)로부터 다운로드 받는다. 따라서 파일이 끊어짐이 없이 재생할 수 있어서 재생 품질이 높아진다. 그리고 분할된 파일의 크기가 작으므로 버퍼의 용량이 작더라도 버퍼링에 특별한 문제점이 없다. 또한 플레이어(500)는 암호화된 파일을 DRM 해석기능을 이용해 복호화 한다. 본 발명에서 사용하는 플레이어(500)는 본 발명 전용 플레이어다.
2. SCDN 시스템 동작
본 발명에 따른 SCDN 시스템의 동작방법의 바람직한 일 실시예의 흐름은 도 2 내지 도 5에 도시되어 있다. 도 2는 서버 측 절차를 크게 세단계로 구분하여 나타내고 있다.
첫번째 단계에서는 어드민 클라이언트의 원본 멀티미디어 파일은 이엔스플리터를 이용하여 지정된 파일 크기(Size)로 분할한다. 이 결과 지정된 파일 크기로 분할된 파일과 분할 정보를 포함한 헤더 파일이 생성된다. 필요에 따라 컨텐츠의 보호를 위해 DRM 기술을 이용하여 암호화 한다. 암호화된 컨텐츠는 플레이어(500)에서 재생되는 시점에 복호화 된다.
두 번째 단계에서는 시디마스터(CDMaster) 솔루션을 이용하여 컨텐츠를 동기화 한다. 즉 어드민 서버내의 CMS 서버의 실시간 파일 감시 기능을 이용하여 생성, 수정, 삭제되는 헤더 파일과 분할된 파일들을 다수개의 CAS 서버를 내장한 컨텐츠 서버로 동기화를 수행한다.
세 번째 단계에서는 인증 게이트웨이 서버로 사용자에 대한 인증을 실시한다. 자세한 인증절차는 도 18, 19에 도시되어 있다. 클라이언트가 사용자측 인증 서버로부터 다운로드한 인증 키에 대해 컨텐츠 서버로 인증요청을 수행하고, 인증정보를 가진 주 인증 게이트웨이 서버는 인증여부를 판단한다.
실제 인증을 수행하는 인증 서버는 인증 프록시 서버와 주 인증 게이트웨이 서버로 구성되며, 주 인증 게이트웨이의 장애 시에는 대체 경로에 있는 부 인증 게이트웨이 서버가 인증을 수행한다.
도 3은 고객측에서 발생하는 컨텐츠 파일의 재생 절차를 나타낸다. 플레이어(500)는 기능상 네트워크 관리자(Network Manager), 로컬 파일 관리자(Local File Manager), DRM 복호화기(Decryption Manager)(518)로 구성된다.
플레이어(500)가 컨텐츠 재생을 위해 필요한 데이터를 컨텐츠 서버에 요청한다. 이 요구에 따라 컨텐츠 서버는 UUID 리스트(322)를 참조하여 서버의 하드디스크 공간(320)에 있는 해당 파일을 찾아서 네트워크 관리자(410)에게 헤더 파일을 제공하고 이를 플레이어(500)에게 전해주면 이를 구문 분석(Parsing)후 그 결과를 네트워크 관리자(410)에게 보내고 이에 따라 네트워크 관리자(410)가 컨텐츠 서버에게 파일을 요구하면 해당 파일을 네트워크 관리자(410)에게 보낸다. 네트워크 관리자(410)는 이 파일을 컴퓨터 하드디스크 공간(510)에 저장하고 플레이어(500)가 데이터를 요구하면 로컬 파일 관리자 및 DRM 복호화기(518)가 컴퓨터 하드디스크 공간 (510)에서 해당 파일을 불러서 플레이어(500)에게 전송하면 이를 재생한다.
도 4는 본 발명의 서비스 절차에 대한 예시이다. 서비스 절차는 크게 플레이어(500)에서 재생을 위해 컨텐츠를 요청하는 단계, 인증 수행 단계, 정상적인 인증을 완료한 경우 헤더 파일 및 인증 키를 다운로드 하는 단계, 최적의 컨텐츠 서버를 선택하기 위해 아이피마스터 서버로 도메인 쿼리(query) 요청 단계, 인증 게이트웨이 서버로부터 인증여부 확인 단계, 스케줄 및 컨텐츠 다운로드 단계, 플레이어(500)에 의해 재생하는 단계로 이루어진다.
도 5는 본 발명에 따른 서비스 절차의 상세예이다. 플레이어(500)가 웹 서버에 접속해서 컨텐츠를 선택하고, 사용자측 인증서버에서 사용자 ID, 컨텐츠, 컨텐츠 종료시간 등에 대한 인증을 수행하고, 인증된 사용자에 대해 과금 서버에 과금 처리 요청을 수행하고, 사용자측 인증서버는 인증 프록시 서버에 인증 정보를 요청하고, 인증 프록시 서버는 인증정보를 사용자측 인증서버에 전달한다. 사용자측의 인증서버는 인증 완료 후 컨텐츠에 대한 인증 키, 헤더 파일을 플레이어(500)로 다운로드 한다. 인증 키를 부여 받은 플레이어(500)는 아이피마스터(400)에게 도메인 쿼리를 요청하면(1), 아이피마스터(400)에 의해 지정된 컨텐츠 서버로 플레이어(500)가 컨텐츠 서버로 인증 키와 함께 컨텐츠 파일을 요구하고, 이에 컨텐츠 서버가 주 인증 게이트웨이 서버(100)에 인증여부 확인을 요청하며 인증을 받으면 스케줄 및 컨텐츠 파일을 다운로드 한다. 그리고 플레이어(500)가 데이터를 재생한다(5). 이때 관리 모듈은 사용자 지정 장소에 인증 키와 함께 다운로드 받은 자료를 저장하고, 재생 종료와 함께 임시 파일을 삭제한다.
3. SCDN 시스템을 위한 파일 분할/병합 및 미디어 재생 시스템
도 6 내지 도 9는 본 발명에 따른 SCDN 시스템을 위한 파일 분할, 파일 병합 및 미디어 재생 시스템의 블록 다이어그램을 도시하고 있다. 도 6에서 보듯이 이 시스템은 크게 이엔스플리터(ENSplitter)(210), 이엔네트워크(ENNetwork)(230) 및 이엔소스(ENSource)(310)의 세 개의 콤포넌트로 구성되며, 이들 각각은 다음과 같은 역할을 담당하고 있다.
3-1. 이엔스플리터(ENSplitter)
이엔스플리터(210)는 컨텐츠 서버의 원본 멀티미디어 파일을 분할하여 여러 개의 UUID 파일(620)로 분할하고, 분할 정보의 연결정보를 담고 있는 헤더 파일을 생성하는 역할을 한다. 헤더 파일은 마이크로소프트(Microsoft)에서 이용하는 UUID(Universally unique identifier)라는 데이터 타입을 이용한다.
이 데이터는 6B29FC40-CA47-1067-B31D-00DD010662DA 의 형태를 가지며, 생성시 중복되는 데이터가 생기지 않는 것을 보장한다.
이때 분할 파일 이름에 UUID를 사용한 이유는 다른 분할된 파일 이름과 중복될 가능성이 없고, 일반인에게 공개되었을 때 순서를 구분할 수 없어 재조합 할 수 없도록 하기 위함이다. 또한 컨텐츠 제공자 입장에서 원본 멀티미디어 파일을 복원하고자 할 경우 파일 병합 역할도 함께 수행한다. 이엔소스(310)의 IENSource 인터페이스와 연동하여 헤더 파일(610)을 생성하고 분석하고, UUID 파일(620)을 암호화하고 복호화 한다.
3-2. 이엔네트워크(ENNetwork)
이엔네트워크(230)는 각각의 컨텐츠 서버내의 하드디스크 공간(220)에 존재하는 여러 개의 UUID 파일(620)을 클라이언트 컴퓨터의 하드디스크(510)로 다운로드하고, 클라이언트 컴퓨터의 하드 디스크에 임시파일(Temporary File)(512)형태로 저장하고 관리한다. 그리고 동시에 이엔소스(310)가 특정 UUID 파일(620)을 요청하면 이를 해당하는 다운로드 또는 검색하여 그 파일 핸들(헤더 파일)을 이엔소스(310)에게 전송한다. 그리고 이엔네트워크(230)는 테이블(232)을 구비하고 있고, 이 테이블은 UUID파일(620) 목록과 이에 해당하는 임시 파일(512) 목록을 저장하고 있다.
3-3. 이엔소스(ENSource)
이엔소스(310)는 파일 분할/병합 과정과 미디어 재생 과정에 모두 참여하며, 두 과정에 대해 다르게 동작한다. 이엔소스(310)는 실제로 미디어 파일을 분할/병합하여 그에 따른 헤더 파일(610)을 생성/분석하는 역할을 하며, 이때 UUID파일(620)을 암호화/복호화 하는 역할도 수행한다. 또한 이엔소스(310)는 정규 다이렉트쇼 소스 필터(Direct Show Source Filter)로 동작하여 필터 그래프(Filter Graph)(520)의 데이터 요청에 따라 미디어 데이터를 전송하고, 아울러 윈도우 미디어 파일을 재생할 경우 소스 플러그인(source plug-in) 동적 연결 라이브러리(Dynamic Linking Library:DLL)로도 동작한다.
이엔소스(310)는 UUID파일(620)과 이 파일의 위치와 크기 정보를 담고있는 테이블(312)을 구비하고 있다.
3-4. 플레이어(Player)
플레이어는 도6에는 도시 되어 있지 않지만 다이렉트쇼 애플리케이션으로서 실제 필터 그래프(520)의 역할을 수행한다. 플레이어는 필터 그래프 매니저(Filter Graph Manager)를 통해, 이엔소스(310)에게 위치와 크기를 명시하여 데이터를 요청하고 전달 받은 데이터를 처리하여 미디어를 재생한다. 플레이어 외에 윈도우 미디어 플레이어 컨트롤처럼 다이렉트쇼 애플리케이션은 모두 현재 시스템을 통해 미디어를 재생할 수 있다. 필터 그래프(520)는 플레이어 내부에 있고, 동영상 재생 기능이 있다.
3-5. 파일 분할 방법
도 7을 참조하여 설명하면 미디어 파일을 분할할 경우 이엔스플리터(210)가 주 시작점이 된다. 본 발명에 따른 파일 분할 과정은 다음과 같다: 이엔스플리터(210)가 소스 파일(211)의 경로를 이엔소스(310)의 인터페이스를 통해 전달한다. 이엔스플리터(210)는 필터 그래프 매니저를 가동시켜 이엔소스(310)가 필터 그래프(520) 연결에 참여하도록 한다. 이 과정에서 구문 분석 필터(Parser Filter)(도시 되어 있지 않음)가 이엔소스(310)에서 데이터를 요청한다. 이엔소스(310)는 필터 그래프(520) 내 구문 분석 필터가 요청한 데이터를 전달하고, 그 내역을 기록해 둔다.
이엔스플리터(210)가 이엔소스(310)의 인터페이스를 통해 분할 명령을 내리면, 이엔소스(310)는 연결 정보와 분할 크기 정보를 바탕으로 미디어 파일을 분할한다. 분할에 필요한 UUID 파일(620)은 동적으로 할당한다. 그리고 이때 암호화(encryption) 과정이 포함될 수 있다. 이엔소스(310)는 파일 분할이 끝난 후 UUID 파일(620)과 이의 위치, 크기 테이블(312)을 정리하여 헤더 파일(610)을 생성한다.
<파일 분할 실시예>
이엔스플리터(210)는 소스 파일, 목적 파일, 분할하고자 하는 파일의 크기, 기능선택 수단, 파일 형식 선택 수단 및 창을 구비하고 있다. 기능 선택 수단은 분할버튼 및 병합버튼을 구비하고 있고, 파일 형식 선택 수단은 AVI, MPEG 및 윈도우 미디어(Windows Media) 버튼을 구비하고 있다. 본 발명에서 기능선택 수단을 보면 기본적으로 분할 버튼이 선택되어 있다. 여기서 소스 파일을 선택하면 된다.
한편 소스 파일을 지정하면 목적 파일 경로는 확장자를 *.enp로 변경한 형태로 자동 지정된다. 이것은 필요에 따라 변경할 수 있다. 분할 크기는 멀티미디어 파일의 전체 크기 및 CMS, CAS 서버의 성능을 고려하여 관리자가 임의로 지정할 수 있다.
다음으로 해야 할 일은 파일 형식 선택 수단에서 소스 파일의 형식을 지정하는 것이다. 이엔스플리터는 멀티미디어 파일 속성을 분석하여 잘못된 파일 형식을 분할 하려고 시도하면 파일 형식이 잘못되었다는 분할 실패 오류 메시지를 출력한다. 이후 파일 형식을 올바르게 지정하고 시작 버튼을 누르면 파일 분할 작업 과정이 수행된다. 이후 '헤더 파일을 복사하였습니다' 라는 메시지가 창에 나타나면 정상적으로 파일 분할을 완료한 것이다.
이엔스플리터는 하나의 멀티미디어 파일을 지정된 파일 크기로 분할하며, 헤더 파일 정보를 생성함을 확인할 수 있다. 파일 분할 후 텍스트 영역(Text Area)의 데이터들은 해당 소스 파일이 필터 그래프(520) 구성에 필요한 연결 정보를 의미한다. 필터 그래프(520)를 구성해야만 재생 여부를 판별할 수 있으므로 이 정보는 파일 분할시 중요한 초기 데이터가 된다. 텍스트 영역(Text Area)의 데이터 표현의 (x, y)에서 x, y는 각각 파일 내의 위치 즉 헤더 정보를 의미한다. 0이 시작점이다. 도 10은 본 발명에 따른 컨텐츠 파일 분할시 정보 분석의 일 예를 보여준다.
그리고 연결 정보를 바탕으로 그대로 파일을 분할한다면 작은 파일 조각이 많이 발생하므로 이를 정리하는 과정이 필요하다. 함께 이을 수 있는 정보를 정리하면 도 11의 (0, 2114) 파일과 (28798033, 28798133) 파일과 같이 2개 파일로 간략화 될 수 있다.
이후 정리된 연결 정보와 함께 지정된 분할 크기에 따라 최종적으로 분할될 파일 정보를 나타낸다. 이때 연결 정보가 중요하므로 2114, 10487874, 20973634, 28798133과 같은 연결 정보를 헤더 정보의 선두에 위치시키고, 10487874, 20973634, 28798033, 28804137과 같은 나머지 데이터를 서로 겹쳐지지 않도록 설정된 분할 크기(213)에 따라 파일 크기가 10MB씩 되게 분할한다. 도 12에 최종 분할 정보가 예시되어 있다.
도 13은 분석한 정보를 바탕으로 실제 파일 분할을 수행하고 헤더 파일을 복사하는 과정을 나타낸다. 분할된 파일 이름은 도면에서 보는 것과 같이 GUID(Globally Unique Identifier) 형태로 나타난다.
여기서 이엔스플리터에 기본 지정된 확장자(현재: *.enp)는 확장자 이상의 의미가 없다. 따라서 기본 확장자를 변경하려면 ENSplitterDlg.h 헤더 파일에 정의된 ENEXTENSION을 변경하면 된다. 그리고 OnFileOpen() 함수에 형식에 따라 구문 분석 필터를 추가하는 부분이 있으므로, 지원하는 파일 형식이 추가되면 여기에 함께 추가해야 한다. 그것은 파일 형식 검증 및 성능 향상에 필요하기 때문이다.
한편 윈도우 미디어 파일 형식을 사용할 경우, 이엔소스(310)에서 지정한 프로토콜을 사용한다. 따라서 파일 형식이 변경되면 프로토콜도 함께 변경해야 한다. 그리고 주의해야 할 점은, WM(Windows Media) 리더(Reader) 필터는 윈도우 미디어 파일 형식 SDK(Software Development Kit)를 사용하는 필터로서 리더 객체를 제공하고, 9.0 버전부터 정상적으로 소스 플러그인을 지원하며, 이때 윈도우 미디어 플레이어 9.0과 함께 설치된다. 새 버전의 윈도우 미디어 파일을 지원하기 위해서는 윈도우 미디어 기술(Windows Media Technology) 9.0의 파일 형식 SDK를 통해 새 동적 연결 라이브러리(Dynamic Linking Library:DLL)을 얻어야 한다. 아울러 마이크로소프트의 윈도우 미디어 파일 형식을 사용하려면 소정의 라이선스 계약을 맺어야 하며 그것은 본 발명의 내용과는 별개의 문제이다.
3-6. 파일 병합 방법
이엔스플리터에 의해 분할된 멀티미디어 파일을 원래의 파일 상태로 복원하고자 할 때 이엔스플리터의 병합(Merge) 기능을 이용한다. 파일 병합 방법에 대하여 도 8을 참조하여 설명하면 UUID 파일(620)을 병합할 경우 이엔스플리터(210)가 병합기(Merger)로 동작하여 파일 병합을 수행하는 일의 시작점이 된다. 본 발명에 따른 파일 병합 과정은 다음과 같다: 이엔스플리터(210)는 이엔소스(310)의 인터페이스를 통해 이엔소스로 헤더 파일(610) 경로를 전달한다. 이엔소스(310)는 헤더 파일(610)을 분석하여 UUID 파일(620)과 파일의 위치, 크기 테이블(312)을 복원한다. 이엔소스(310)는 헤더 파일(610)에 기록된 정보에 따라 UUID 파일(620)을 이엔네트워크(230)의 인터페이스를 통해 요청한다. 이엔네트워크(230)는 이엔소스(310)가 요청한 UUID 파일(620)을 복사 또는 다운로드하여 컴퓨터 하드 디스크 공간(510)에 저장하고, 그 파일 핸들을 이엔소스(310)에게 전달한다. 이엔소스(310)는 이엔네트워크(230)가 전달한 파일 핸들을 통해 데이터를 읽어 파일 병합을 수행하여 원본 파일(630)을 만들어 낸다. 이때 암호화된 파일인 경우 복호화(decryption) 과정을 거친 뒤 병합을 수행한다.
<파일 병합 실시예>
이제 파일 병합의 실시 예에 대하여 설명한다. 이 기능은 분할된 파일이 올바르게 복원되는지 확인하기 위한 기능이다. 기능 선택 수단에서 병합을 선택하면 이엔스플리터(210)가 병합을 수행한다. 이후 소스 파일에서 확장자가 *.enp인 목적 파일(header file)을 지정한다. 그러면 지정된 소스 파일의 파일 형식을 분석하여 출력창에 표시한다. 동시에 파일 형식 선택 수단의 형식이 자동으로 결정된다. 따라서 파일 병합 과정에서는 파일 형식을 지정할 필요가 없다.
만약 소스 파일이 인식할 수 없는 파일 헤더이면 '인식할 수 없는 파일입니다'라는 에러 메시지 상자가 나타난다.
시작 버튼을 누르면 파일 병합 작업을 수행하고 '파일 병합이 끝났습니다'라는 메시지가 창에 나타나면 병합이 정상적으로 완료된 것이다.
3-7. 미디어 재생 방법
도 9를 참조하여 설명하면 미디어를 재생할 경우 다이렉트쇼 애플리케이션이 주 시작점이 된다. 따라서 본 시스템 입장에서는 필터 그래프(520)의 요청으로 동작하게 된다. 본 발명에 따른 미디어 재생 과정은 다음과 같다: 다이렉트쇼 애플리케이션이 지정한 헤더 파일 경로가 필터 그래프 매니저를 통해 이엔소스(310)의 인터페이스로 전달된다. 이엔소스(310)는 헤더 파일(610)을 분석하여 UUID 파일(620)과 그 위치, 크기 테이블(312)을 복원한다. 필터 그래프(520)는 연결과 재생에 필요한 데이터를 이엔소스(310)에서 순차적으로 요청한다. 이때 원하는 데이터의 위치와 크기를 명시하여 전달한다. 이엔소스(310)는 필터 그래프(520)가 요청한 데이터에 대해, 헤더 파일(610)에 기록된 정보에 따라 UUID 파일(620)을 찾고 그 파일을 이엔네트워크(230)의 인터페이스를 통해 요청한다. 이엔네트워크(230)는 이엔소스(310)가 요청한 UUID 파일(620)을 복사 또는 다운로드하여 임시 장소컴퓨터 하드디스크 공간에 보관하고, 그 파일 핸들을 이엔소스(310)에게 전달한다. 이엔소스(310)는 이엔네트워크(230)가 전달한 파일 핸들을 통해 데이터를 읽어 필터 그래프(520)에 전달한다. 이때 암호화된 파일인 경우 복호화(decryption) 과정을 수행한다.
3-8. 미디어 스케줄링 방법(다운로드 방법)
이엔스플리터에 의해 분할된 멀티미디어 파일은 재생에 필요한 연결 정보를 담고있는 미디어 헤더(media-header)부 파일 리스트, 재생되는 화면과 사운드 정보를 담는 데이터부 파일 리스트의 두 가지로 나누어질 수 있다.
플레이어(500)는 다운로드 되어진 헤더 파일을 분석하고 필요한 파일 리스트를 다운로드 시작한다.
프로그램 실행시 우선 재생에 필요한 미디어 헤더부를 다운로드 시작하면서 그 동안 프로그램은 블로킹(blocking)이 되어진다. 이때 여러 개의 쓰레드(thread)를 이용하여 동시에 여러 개의 파일이 다운로드 되어지며, 사용자가 지정한 크기보다 큰 파일이 있을 경우 이는 다시 여러 개의 쓰레드로 나뉘어 신속하게 파일을 다운로드 한 후 합치는 과정을 반복한다.
미디어 헤더가 다 받아지면 프로그램은 미디어 헤더 정보를 재구성 하며 데이터부 파일을 다운로드 한다. 적당한 수의 소켓을 이용하여 동시에 여러 개의 데이터 파일을 받게 되며, 프로그램은 활성화 되고 데이터 파일을 재생하기 시작한다.
이때 지속적이고 신속한 데이터 저장을 위하여 적당한 수의 소켓(쓰레드)을 이용하여 동시에 여러 개의 파일을 다운로드 하게 된다. 이때 헤더 정보에 의하여 앞으로 필요로 되어 지는 파일 리스트의 다운로드에 필요한 작업을 미리 마치고 앞의 파일들의 다운로드가 종료되며 준비된 파일들의 다운로드 과정을 반복하게 된다.
재생부를 이동하였을 경우 (검색 기능) 기존의 다운로드 중인 작업이 끝나기를 기다리고, 이동되어진 부분의 위치 값을 해석하여 파일 리스트의 필요 부위를 알아낸다. 그 후 필요부위의 파일로부터 적당한 수의 쓰레드를 이용하여 동시에 파일을 다운로드 시작하며 재생을 시작한다.
또한 기본적으로 5개의 소켓(쓰레드당 1개 소켓)을 통하여 컨텐츠를 다운로드할 수 있다. 사용자의 네트워크 상태 등을 고려하여 동시 소켓의 수 등을 산출할 수 있으며, 사용자의 네트워크 상태가 제공되는 컨텐츠 재생에 부적합할 정도로 느릴 경우, 예약보기 등의 기능으로 일정 파일 리스트가 다운로드 완료된 후 재생이 가능하도록 설정이 가능하다.
이때 재생 시점은 끝가지 재생하는데 필요한 시간과 전체 파일의 다운로드 시간을 고려하여 산출된다.
유리한 효과
상술한 본 발명으로부터 기대되는 효과들은 다음과 같다. 비즈니스 비디오 온 디멘드(Business Video on Demand)가 기업 경쟁력의 주요 이슈로 부상하여 본 발명에 의한 고속 스트리밍 기술이 적용 가능하다.
본 발명은 고속 스트리밍 기술이 적용이 가능하고 인터넷 미들 마일(Middle-Mile)의 병목 현상을 해결할 수 있고, 순간적인 접속 폭주, 서버 부하와 트래픽의 집중, 장애의 도미노 현상에 신속하게 대응 가능하다.
아울러 본 발명의 실시로 인해 급변하는 트래픽 관리도 용이하다. 그리고 스트리밍 서비스의 투자 수익률(ROI) 문제를 해결할 수 있다. 그것은 본 발명이 1:N의 송신이 가능한 멀티캐스팅 기술을 제공하기 때문이다. 도 15는 본 발명에 따른 SCDN의 구성 예를 나타낸다. 컨텐츠 서버가 제공하는 멀티미디어 데이터를 기업 사용자와 개인 사용자가 이용할 수 있다. 기업 사용자는 직접 랜을 통해 컨텐츠 서버로부터 데이터를 제공 받고, 개인 사용자는 ISP의 에지 미디어(Edge Media)를 통해 제공받는다. 도 15의 SCDN이 종래 투자 수익률(ROI)의 문제를 해결할 수 있다.
본 발명에 따르면 장비구축비용, 네트워크 비용, 인건비용 기준으로 최소 11% 이상의 비용 절감효과와 새로운 비즈니스 기회가 창출될 수 있다. 즉 데이터 전송용 인프라를 한번만 구축하면 되므로 하드웨어 비용이 줄어들고, 집중 및 원격에 의한 분산 시스템 관리로 관리비용이 줄어들며, 통합된 컨텐츠 네트워킹 시스템으로 대역폭(bandwidth) 비용을 줄일 수 있다.
이처럼 본 발명은 관리에 있어 유연성(flexibility), 중앙 집중 관리(Centralized Management), 중앙 집중 모니터링(Centralized Monitoring)가 가능하고, 성능(Performance)면에서는 광역 로드 밸런싱(Global Load Balancing), 로컬 서버 로드 밸런싱 및 네트워크 아키텍처의 성능이 우수하다. 따라서 본 발명의 SCDN에 의해 사용자의 도메인 네임 서버 설정에 관계없이 항상 정확한 네트워크 거리 정보를 바탕으로 광역 인터넷 트래픽 관리(Global Internet Traffic Management)를 수행할 수 있다. 즉 정확한 근접성(Accurate Proximity)이 얻어진다. 또한 에지 서버들의 기종 및 설치 환경에 관계없이 하드웨어 부하, 프로세스 상태, 컨텐츠 상태 같은 심층적인 서버 상태 검사를 통해 정확한 로컬 인터넷 트래픽 관리(Local Internet Traffic Management)를 수행할 수 있다.
그리고 각 에지의 네트워크의 구조를 단순화 할 수 있도록 스탠드 어사이드(Stand-aside) 방식의 ITM 솔루션을 사용하므로 순간 접속 요구량이 증가하여도 순간 트래픽 폭주를 감당할 수 있다. 즉 도메인 네임 질의(Query)가 있으면, 트래픽 관리 차원에서 최적의 서버 IP 주소로 응답하고 서비스 요청에 따라 응답하고 서비스를 제공한다. 도 16은 본 발명에 따른 스탠드 어사이드(Stand-aside) 방식의 ITM 솔루션의 예를 보여준다. 이러한 방식의 ITM 솔루션은 트래픽이 계속적으로 증가하여도 에지 서버의 부하 증가 문제를 해결할 수 있다.
본 발명에 따른 ITM 솔루션은 도메인 네임 서버에 독립적이어서 서비스 품질의 저하는 물론 심각한 장애 사태 발생시에도 관리자가 용이하게 대처할 수 있다.
본 발명에서는 광역 인터넷 브로드캐스팅 서비스와 같이 인터넷 상에 다수의 컨텐츠 원본 서버와 에지 서버가 분산되어 있는 경우에도 효율적으로 컨텐츠를 상호 분배하고 동기화 할 수 있다.
그리고 본 발명에 따르면 광역 네트워크 상에서 수행되는 트래픽 관리, 컨텐츠 동기화, 클러스터링, 컨텐츠 배포 등과 같은 모든 작업에 대해 단일 관리 포인트를 제공할 수 있어서 관리 비용이 절감되는 효과가 있다.
또한 본 발명은 분할된 파일에 대한 DRM 기술을 적용하거나 분할된 파일의 식별 번호를 구분하여 파일교환 프로그램의 광범위한 사용으로 인한 온라인 프라이버시 및 파일에 대한 보호가 가능하다.
1. SCDN 시스템 구성
본 발명에 따른 SCDN(Streaming Contents Distribution Network) 시스템의 바람직한 일 실시예의 구성은 도 1에 도시 되어 있다. 본 발명에서 제공하는 서비스 형태는 다음과 같다:
첫째, 본 발명에서 제공 가능한 서비스 형태의 하나는 스트리밍 서비스(Streaming Service)다. 대화형 플레이어 (Interactive Player)에 의한 검색 기능, 시간 제약 기능 등의 사용자 인터페이스(User Interface, UI) 기능이 제공되며, 이 서비스는 교육용 컨텐츠 제공 및 다양한 형태로 응용할 수 있다.
둘째, 본 발명에서 제공 가능한 다른 서비스 형태는 다운로드 서비스이다. 다운로드 서비스는 클라이언트 컴퓨터에 분할된 파일을 저장하고, 재생 횟수, 재생 시간을 제한한다.
셋째, 본 발명에서 제공하는 또 다른 서비스는 광역 로드 밸런싱(Global Load Balancing)과 서버 로드 밸런싱(Server Load Balancing)(IPMaster가 담당), 컨텐츠 분산 배포 (Contents Distribution)(CDMaster가 담당), 무정지 서비스이다. 무정지 서비스는 컨텐츠 서버 가운데 일부가 장애인 경우 다른 서버로 자동적으로 연결하여 서비스를 계속하는 것을 뜻한다. 그리고 이 서비스는 다양한 멀티미디어 파일 형식을 지원한다. 예로써 MPEG1, AVI, ASF계열(WMT)을 지원한다. 그리고 코덱(Codec)과 독립적인 구조를 가지고 있어서 추후에 발생할 코덱별 업그레이드를 고려할 필요가 없다. 또한 대화형 재생 방식을 사용하므로 시청한 부분에 대한 실시간 검색이 가능하며 버퍼링이 필요 없다.
도 14는 본 발명에 따른 서비스 이용 형태의 예시도 이다. 도면 상부에는 클라이언트 컴퓨터에 설치된 전용 플레이어를 이용하는 화면을 보여주고 있고, 하부에는 웹(Web)과 액티브엑스 컨트롤(Active X Control)이 결합된 플레이어를 이용하는 화면을 보여준다. 본 발명은 전용 플레이어를 사용하는 경우 이엔네트워크(ENNetwork)가 HTTP(HyperText Transfer Protocol)를 이용하여 컴퓨터의 지정된 하드 디스크 공간에 헤더 파일(Header File) 및 분할된 컨텐츠 파일은 다운로드한다. 그러나 웹과 액티브엑스 컨트롤을 이용하는 경우에는 새로운 창을 열어서 새 페이지로 헤더 URL(Uniform Resource Locator)을 전달한다. 이후 이엔네트워크(ENNetwork)가 HTTP를 이용하여 헤더 파일과 분할된 컨텐츠 파일을 컴퓨터의 지정된 하드 디스크 공간에 다운로드 받는다.
이제 본 발명 시스템의 구성에 대하여 설명한다. 본 발명의 시스템은 네트워크를 이용한 멀티미디어 파일 재생을 구현하는 것을 목표로 한다. 이를 위해서 본 발명의 시스템은 어드민 클라이언트(Admin Client), CMS(Contents Monitoring System) 서버를 탑재한 어드민 서버(Admin Server), 사용자측 인증 서버를 구비한 컨텐츠 웹 서버, 인증 프록시 서버(Authentication Proxy Server), 주 인증 게이트웨이 서버(Primary Authentication Gateway Server), 부 인증 게이트웨이 서버(Secondary Authentication Gateway Server), CAS(Contents Agent System), SM(Server Monitoring) 에이전트(Agent)를 구비한 컨텐츠 서버, 파일 재생을 위한 플레이어를 구비하고 있다. 또한 본 발명의 시스템은 컨텐츠 보호를 위한 디지털 저작권 관리 (Digital Rights Management: DRM) 솔루션, ITM을 구현한 아이피마스터(IPMaster), 컨텐츠 파일 동기화를 구현한 시디마스터(CDMaster)와의 통합 시스템도 구비하고 있다.
1-1. 어드민 클라이언트(Admin Client)
어드민 클라이언트는 이엔스플리터(ENSplitter) 프로그램의 파일 분할 기능을 이용하여 대용량 멀티미디어 컨텐츠를 분할하여 다수의 파일(600) 및 헤더 파일(Header File)을 생성한다.
즉, 멀티미디어 파일을 지정된 파일 크기의 목적 파일로 분할 저장하는 기능을 지원한다.
또한 이엔스플리터(ENSplitter) 프로그램의 병합기(Merger)를 이용하여 분할된 멀티미디어 파일을 원래의 파일 상태로 병합(Merge)할 수 있다.
상기 어드민 클라이언트는 윈도우즈 기반의 간단한 그래픽 사용자 인터페이스 (Graphic User Interface: GUI)를 지원하며 분할/병합(Split/Merge) 기능 구현 과정 및 결과를 확인할 수 있다.
분할된 멀티미디어 파일에 대해서 DRM을 적용한다. 분할된 각각의 파일은 정보 보호를 위해 암호화(encryption)할 수 있다. DRM 기능은 멀티미디어 파일 보호 정책상 필요에 따라 부분적으로 적용될 수 있다.
1-2. 어드민 서버(Admin Server)
어드민 서버는 크게 사용자 세션 리스트, 사용자 세션 추가/삭제, 인증 프록시 서버에서 요청하는 사용자 세션 요청의 유효성 검사, 인증 게이트웨이 서버의 설정 파일 변경, 컨텐츠 서버에서 전송한 컨텐츠 접속 로그 저장 관리 기능, 실시간 모니터링 기능, 통계 기능 등을 제공한다.
CMS 서버(200)의 실시간 데이터 감시기능은 어드민 서버로부터 업로드 또는 삭제 등 데이터의 생성, 수정, 삭제 상황을 실시간으로 인식한다.
생성, 수정, 삭제 등 파일 변경이 감지된 각각의 분할된 파일은 각각의 CAS 서버 기능을 포함한 컨텐츠 서버로 전송된다.
CMS 서버는 원본의 컨텐츠 파일의 동기화를 수행한다.
1-3. 인증 프록시 서버(Authentication Proxy Server)
사용자측 인증 서버의 인증키(Key) 요청에 대하여 응답하는 기능을 제공한다. 인증정보 인증 ID, 컨텐츠, 컨텐츠 종료시간, 인증키 등에 대한 정보들은 주 인증 게이트웨이 서버와 공유한다.
1-4. 주 인증 게이트웨이 서버, 부 인증 게이트웨이 서버(Primary,Secondary Authentication Gateway Server)
주 인증 게이트웨이 서버 및 부 인증 게이트웨이 서버는 각각의 컨텐츠 서버에 저장되어 있는 컨텐츠 접근에 대한 허락 여부를 결정하는 권한을 가지고 사용자를 인증하는 역할을 수행한다.
1-5. 컨텐츠 서버
컨텐츠를 보유한 파일 서버 역할을 수행하는 컨텐츠 서버는 크게 CAS 서버(300)와 SM 에이전트 서버로 구성된다. CAS 서버(300)는 분할된 원본의 컨텐츠 및 헤더 파일 등을 분산 저장하는 컨텐츠 서버로서 컨텐츠 동기화 기능을 수행한다. 각 CAS 서버(300)는 CMS 서버(200)로부터 분할된 파일을 복제하여 서버의 하드디스크 공간(320)에 저장하고 서버의 하드디스크 공간 (320)에는 UUID(Universal Unique Identifier) 파일 리스트(322)가 있다. 각각의 컨텐츠 서버들의 컨텐츠는 실시간으로 동기화 된다. 따라서 다수개의 CAS 서버(300) 가운데 특정 CAS 서버(300)에 문제가 생겨도 다른 CAS 서버(300)로부터 같은 내용의 컨텐츠를 제공할 수 있어서 본 발명의 시스템은 기존 시스템에 비해 결함 허용(fault tolerance) 능력이 우수하다.
CAS 서버(300)는 CMS 서버(200)의 지시에 따라 관리자에 의해 지정된 폴더 내의 분할된 컨텐츠 및 헤더 파일 데이터를 다른 CAS 서버(300)로 전송하거나, 또는 다른 CAS 서버(300)를 통해 데이터를 수신한다.
SM 에이전트는 컨텐츠 서버의 실시간 모니터링 기능을 수행한다.
SM 에이전트는 지정된 시간을 주기로 컨텐츠 서버의 CPU, 메모리, 세션에 대한 정보를 수집하여 서버 로드 밸런싱 정보로 제공한다.
1-6. 아이피마스터(IPMaster)
아이피마스터 서버는 각각의 컨텐츠 서버에 설치된 SM 에이전트로부터 특정 시간을 주기로 서버의 CPU, 메모리, 세션 정보를 실시간으로 전송 받는다. 수집된 서버 정보는 클라이언트가 분산된 컨텐츠를 보유한 컨텐츠 서버 중 최적의 컨텐츠 서버를 선택하기 위한 필요 조건이다.
아이피마스터(400)는 모든 CAS 서버(300)를 탑재한 컨텐츠 서버의 CPU, 메모리, 세션 정보들을 실시간으로 모니터링함으로써 인증된 플레이어(500)의 요청이 있을 경우 해당 플레이어(500)에게 가장 최적의 컨텐츠 서버를 선정하여 해당 컨텐츠 서버로부터 클라이언트가 원하는 컨텐츠(600)를 제공받을 수 있도록 해준다.
1-7. 플레이어(Player)
플레이어(500)는 컨텐츠에 대한 인증이 정상적으로 처리된 경우 헤더 파일을 컴퓨터 하드 디스크 공간(510)에 다운로드 하고 헤더 파일의 정보를 구문 분석(Parsing)하며 다운로드를 위한 스케줄링을 담당한다. 그리고 다운로드된 컴퓨터 하드 디스크 공간(510) 내에는 일정한 크기로 분할된 파일의 리스트를 기록하고 있는 UUID 파일 리스트(514)와 재생될 데이터 정보를 기록하고 있는 임시 파일 리스트(Tempory File List)(516)가 있다.
그리고 플레이어(500) 내에는 로컬 파일 관리자 및 DRM 복호화기(518)가 있다.
플레이어(500)는 분할된 파일을 여러 개의 쓰레드(Thread)에 의해 분할된 파일을 병렬적으로 다운로드 받을 수 있다. 윈도우즈 계열 기반의 플레이어(500)는 멀티태스킹(multi-tasking)이 가능해 분할된 파일에 대한 병렬 다운로드가 가능하므로 시스템이 더욱 안정적이고 고속으로 재생 및 파일 다운로드가 이루어진다. 이 경우 플레이어(500)는 헤더 파일 내의 분할된 파일의 구성정보를 읽어서 재생된다. 이 경우 일정한 스케줄링 정보에 의해 재생 순서가 정해져 있으므로 재생시 별다른 문제가 없다.
플레이어(500)는 로컬 파일 관리자 및 DRM 복호화기(518)를 이용하여 다운로드 받은 분할된 다수의 파일을 하나의 하드 디스크(Hard Disk)상의 파일처럼 재생한다. 이것을 위해 도 17에 도시된 것과 같은 헤더파일의 헤더 정보가 이용된다. 그리고 재생과 동시에 앞으로 재생할 파일을 CAS 서버(300)로부터 다운로드 받는다. 따라서 파일이 끊어짐이 없이 재생할 수 있어서 재생 품질이 높아진다. 그리고 분할된 파일의 크기가 작으므로 버퍼의 용량이 작더라도 버퍼링에 특별한 문제점이 없다. 또한 플레이어(500)는 암호화된 파일을 DRM 해석기능을 이용해 복호화 한다. 본 발명에서 사용하는 플레이어(500)는 본 발명 전용 플레이어다.
2. SCDN 시스템 동작
본 발명에 따른 SCDN 시스템의 동작방법의 바람직한 일 실시예의 흐름은 도 2 내지 도 5에 도시되어 있다. 도 2는 서버 측 절차를 크게 세단계로 구분하여 나타내고 있다.
첫번째 단계에서는 어드민 클라이언트의 원본 멀티미디어 파일은 이엔스플리터를 이용하여 지정된 파일 크기(Size)로 분할한다. 이 결과 지정된 파일 크기로 분할된 파일과 분할 정보를 포함한 헤더 파일이 생성된다. 필요에 따라 컨텐츠의 보호를 위해 DRM 기술을 이용하여 암호화 한다. 암호화된 컨텐츠는 플레이어(500)에서 재생되는 시점에 복호화 된다.
두 번째 단계에서는 시디마스터(CDMaster) 솔루션을 이용하여 컨텐츠를 동기화 한다. 즉 어드민 서버내의 CMS 서버의 실시간 파일 감시 기능을 이용하여 생성, 수정, 삭제되는 헤더 파일과 분할된 파일들을 다수개의 CAS 서버를 내장한 컨텐츠 서버로 동기화를 수행한다.
세 번째 단계에서는 인증 게이트웨이 서버로 사용자에 대한 인증을 실시한다. 자세한 인증절차는 도 18, 19에 도시되어 있다. 클라이언트가 사용자측 인증 서버로부터 다운로드한 인증 키에 대해 컨텐츠 서버로 인증요청을 수행하고, 인증정보를 가진 주 인증 게이트웨이 서버는 인증여부를 판단한다.
실제 인증을 수행하는 인증 서버는 인증 프록시 서버와 주 인증 게이트웨이 서버로 구성되며, 주 인증 게이트웨이의 장애 시에는 대체 경로에 있는 부 인증 게이트웨이 서버가 인증을 수행한다.
도 3은 고객측에서 발생하는 컨텐츠 파일의 재생 절차를 나타낸다. 플레이어(500)는 기능상 네트워크 관리자(Network Manager), 로컬 파일 관리자(Local File Manager), DRM 복호화기(Decryption Manager)(518)로 구성된다.
플레이어(500)가 컨텐츠 재생을 위해 필요한 데이터를 컨텐츠 서버에 요청한다. 이 요구에 따라 컨텐츠 서버는 UUID 리스트(322)를 참조하여 서버의 하드디스크 공간(320)에 있는 해당 파일을 찾아서 네트워크 관리자(410)에게 헤더 파일을 제공하고 이를 플레이어(500)에게 전해주면 이를 구문 분석(Parsing)후 그 결과를 네트워크 관리자(410)에게 보내고 이에 따라 네트워크 관리자(410)가 컨텐츠 서버에게 파일을 요구하면 해당 파일을 네트워크 관리자(410)에게 보낸다. 네트워크 관리자(410)는 이 파일을 컴퓨터 하드디스크 공간(510)에 저장하고 플레이어(500)가 데이터를 요구하면 로컬 파일 관리자 및 DRM 복호화기(518)가 컴퓨터 하드디스크 공간 (510)에서 해당 파일을 불러서 플레이어(500)에게 전송하면 이를 재생한다.
도 4는 본 발명의 서비스 절차에 대한 예시이다. 서비스 절차는 크게 플레이어(500)에서 재생을 위해 컨텐츠를 요청하는 단계, 인증 수행 단계, 정상적인 인증을 완료한 경우 헤더 파일 및 인증 키를 다운로드 하는 단계, 최적의 컨텐츠 서버를 선택하기 위해 아이피마스터 서버로 도메인 쿼리(query) 요청 단계, 인증 게이트웨이 서버로부터 인증여부 확인 단계, 스케줄 및 컨텐츠 다운로드 단계, 플레이어(500)에 의해 재생하는 단계로 이루어진다.
도 5는 본 발명에 따른 서비스 절차의 상세예이다. 플레이어(500)가 웹 서버에 접속해서 컨텐츠를 선택하고, 사용자측 인증서버에서 사용자 ID, 컨텐츠, 컨텐츠 종료시간 등에 대한 인증을 수행하고, 인증된 사용자에 대해 과금 서버에 과금 처리 요청을 수행하고, 사용자측 인증서버는 인증 프록시 서버에 인증 정보를 요청하고, 인증 프록시 서버는 인증정보를 사용자측 인증서버에 전달한다. 사용자측의 인증서버는 인증 완료 후 컨텐츠에 대한 인증 키, 헤더 파일을 플레이어(500)로 다운로드 한다. 인증 키를 부여 받은 플레이어(500)는 아이피마스터(400)에게 도메인 쿼리를 요청하면(1), 아이피마스터(400)에 의해 지정된 컨텐츠 서버로 플레이어(500)가 컨텐츠 서버로 인증 키와 함께 컨텐츠 파일을 요구하고, 이에 컨텐츠 서버가 주 인증 게이트웨이 서버(100)에 인증여부 확인을 요청하며 인증을 받으면 스케줄 및 컨텐츠 파일을 다운로드 한다. 그리고 플레이어(500)가 데이터를 재생한다(5). 이때 관리 모듈은 사용자 지정 장소에 인증 키와 함께 다운로드 받은 자료를 저장하고, 재생 종료와 함께 임시 파일을 삭제한다.
3. SCDN 시스템을 위한 파일 분할/병합 및 미디어 재생 시스템
도 6 내지 도 9는 본 발명에 따른 SCDN 시스템을 위한 파일 분할, 파일 병합 및 미디어 재생 시스템의 블록 다이어그램을 도시하고 있다. 도 6에서 보듯이 이 시스템은 크게 이엔스플리터(ENSplitter)(210), 이엔네트워크(ENNetwork)(230) 및 이엔소스(ENSource)(310)의 세 개의 콤포넌트로 구성되며, 이들 각각은 다음과 같은 역할을 담당하고 있다.
3-1. 이엔스플리터(ENSplitter)
이엔스플리터(210)는 컨텐츠 서버의 원본 멀티미디어 파일을 분할하여 여러 개의 UUID 파일(620)로 분할하고, 분할 정보의 연결정보를 담고 있는 헤더 파일을 생성하는 역할을 한다. 헤더 파일은 마이크로소프트(Microsoft)에서 이용하는 UUID(Universally unique identifier)라는 데이터 타입을 이용한다.
이 데이터는 6B29FC40-CA47-1067-B31D-00DD010662DA 의 형태를 가지며, 생성시 중복되는 데이터가 생기지 않는 것을 보장한다.
이때 분할 파일 이름에 UUID를 사용한 이유는 다른 분할된 파일 이름과 중복될 가능성이 없고, 일반인에게 공개되었을 때 순서를 구분할 수 없어 재조합 할 수 없도록 하기 위함이다. 또한 컨텐츠 제공자 입장에서 원본 멀티미디어 파일을 복원하고자 할 경우 파일 병합 역할도 함께 수행한다. 이엔소스(310)의 IENSource 인터페이스와 연동하여 헤더 파일(610)을 생성하고 분석하고, UUID 파일(620)을 암호화하고 복호화 한다.
3-2. 이엔네트워크(ENNetwork)
이엔네트워크(230)는 각각의 컨텐츠 서버내의 하드디스크 공간(220)에 존재하는 여러 개의 UUID 파일(620)을 클라이언트 컴퓨터의 하드디스크(510)로 다운로드하고, 클라이언트 컴퓨터의 하드 디스크에 임시파일(Temporary File)(512)형태로 저장하고 관리한다. 그리고 동시에 이엔소스(310)가 특정 UUID 파일(620)을 요청하면 이를 해당하는 다운로드 또는 검색하여 그 파일 핸들(헤더 파일)을 이엔소스(310)에게 전송한다. 그리고 이엔네트워크(230)는 테이블(232)을 구비하고 있고, 이 테이블은 UUID파일(620) 목록과 이에 해당하는 임시 파일(512) 목록을 저장하고 있다.
3-3. 이엔소스(ENSource)
이엔소스(310)는 파일 분할/병합 과정과 미디어 재생 과정에 모두 참여하며, 두 과정에 대해 다르게 동작한다. 이엔소스(310)는 실제로 미디어 파일을 분할/병합하여 그에 따른 헤더 파일(610)을 생성/분석하는 역할을 하며, 이때 UUID파일(620)을 암호화/복호화 하는 역할도 수행한다. 또한 이엔소스(310)는 정규 다이렉트쇼 소스 필터(Direct Show Source Filter)로 동작하여 필터 그래프(Filter Graph)(520)의 데이터 요청에 따라 미디어 데이터를 전송하고, 아울러 윈도우 미디어 파일을 재생할 경우 소스 플러그인(source plug-in) 동적 연결 라이브러리(Dynamic Linking Library:DLL)로도 동작한다.
이엔소스(310)는 UUID파일(620)과 이 파일의 위치와 크기 정보를 담고있는 테이블(312)을 구비하고 있다.
3-4. 플레이어(Player)
플레이어는 도6에는 도시 되어 있지 않지만 다이렉트쇼 애플리케이션으로서 실제 필터 그래프(520)의 역할을 수행한다. 플레이어는 필터 그래프 매니저(Filter Graph Manager)를 통해, 이엔소스(310)에게 위치와 크기를 명시하여 데이터를 요청하고 전달 받은 데이터를 처리하여 미디어를 재생한다. 플레이어 외에 윈도우 미디어 플레이어 컨트롤처럼 다이렉트쇼 애플리케이션은 모두 현재 시스템을 통해 미디어를 재생할 수 있다. 필터 그래프(520)는 플레이어 내부에 있고, 동영상 재생 기능이 있다.
3-5. 파일 분할 방법
도 7을 참조하여 설명하면 미디어 파일을 분할할 경우 이엔스플리터(210)가 주 시작점이 된다. 본 발명에 따른 파일 분할 과정은 다음과 같다: 이엔스플리터(210)가 소스 파일(211)의 경로를 이엔소스(310)의 인터페이스를 통해 전달한다. 이엔스플리터(210)는 필터 그래프 매니저를 가동시켜 이엔소스(310)가 필터 그래프(520) 연결에 참여하도록 한다. 이 과정에서 구문 분석 필터(Parser Filter)(도시 되어 있지 않음)가 이엔소스(310)에서 데이터를 요청한다. 이엔소스(310)는 필터 그래프(520) 내 구문 분석 필터가 요청한 데이터를 전달하고, 그 내역을 기록해 둔다.
이엔스플리터(210)가 이엔소스(310)의 인터페이스를 통해 분할 명령을 내리면, 이엔소스(310)는 연결 정보와 분할 크기 정보를 바탕으로 미디어 파일을 분할한다. 분할에 필요한 UUID 파일(620)은 동적으로 할당한다. 그리고 이때 암호화(encryption) 과정이 포함될 수 있다. 이엔소스(310)는 파일 분할이 끝난 후 UUID 파일(620)과 이의 위치, 크기 테이블(312)을 정리하여 헤더 파일(610)을 생성한다.
<파일 분할 실시예>
이엔스플리터(210)는 소스 파일, 목적 파일, 분할하고자 하는 파일의 크기, 기능선택 수단, 파일 형식 선택 수단 및 창을 구비하고 있다. 기능 선택 수단은 분할버튼 및 병합버튼을 구비하고 있고, 파일 형식 선택 수단은 AVI, MPEG 및 윈도우 미디어(Windows Media) 버튼을 구비하고 있다. 본 발명에서 기능선택 수단을 보면 기본적으로 분할 버튼이 선택되어 있다. 여기서 소스 파일을 선택하면 된다.
한편 소스 파일을 지정하면 목적 파일 경로는 확장자를 *.enp로 변경한 형태로 자동 지정된다. 이것은 필요에 따라 변경할 수 있다. 분할 크기는 멀티미디어 파일의 전체 크기 및 CMS, CAS 서버의 성능을 고려하여 관리자가 임의로 지정할 수 있다.
다음으로 해야 할 일은 파일 형식 선택 수단에서 소스 파일의 형식을 지정하는 것이다. 이엔스플리터는 멀티미디어 파일 속성을 분석하여 잘못된 파일 형식을 분할 하려고 시도하면 파일 형식이 잘못되었다는 분할 실패 오류 메시지를 출력한다. 이후 파일 형식을 올바르게 지정하고 시작 버튼을 누르면 파일 분할 작업 과정이 수행된다. 이후 '헤더 파일을 복사하였습니다' 라는 메시지가 창에 나타나면 정상적으로 파일 분할을 완료한 것이다.
이엔스플리터는 하나의 멀티미디어 파일을 지정된 파일 크기로 분할하며, 헤더 파일 정보를 생성함을 확인할 수 있다. 파일 분할 후 텍스트 영역(Text Area)의 데이터들은 해당 소스 파일이 필터 그래프(520) 구성에 필요한 연결 정보를 의미한다. 필터 그래프(520)를 구성해야만 재생 여부를 판별할 수 있으므로 이 정보는 파일 분할시 중요한 초기 데이터가 된다. 텍스트 영역(Text Area)의 데이터 표현의 (x, y)에서 x, y는 각각 파일 내의 위치 즉 헤더 정보를 의미한다. 0이 시작점이다. 도 10은 본 발명에 따른 컨텐츠 파일 분할시 정보 분석의 일 예를 보여준다.
그리고 연결 정보를 바탕으로 그대로 파일을 분할한다면 작은 파일 조각이 많이 발생하므로 이를 정리하는 과정이 필요하다. 함께 이을 수 있는 정보를 정리하면 도 11의 (0, 2114) 파일과 (28798033, 28798133) 파일과 같이 2개 파일로 간략화 될 수 있다.
이후 정리된 연결 정보와 함께 지정된 분할 크기에 따라 최종적으로 분할될 파일 정보를 나타낸다. 이때 연결 정보가 중요하므로 2114, 10487874, 20973634, 28798133과 같은 연결 정보를 헤더 정보의 선두에 위치시키고, 10487874, 20973634, 28798033, 28804137과 같은 나머지 데이터를 서로 겹쳐지지 않도록 설정된 분할 크기(213)에 따라 파일 크기가 10MB씩 되게 분할한다. 도 12에 최종 분할 정보가 예시되어 있다.
도 13은 분석한 정보를 바탕으로 실제 파일 분할을 수행하고 헤더 파일을 복사하는 과정을 나타낸다. 분할된 파일 이름은 도면에서 보는 것과 같이 GUID(Globally Unique Identifier) 형태로 나타난다.
여기서 이엔스플리터에 기본 지정된 확장자(현재: *.enp)는 확장자 이상의 의미가 없다. 따라서 기본 확장자를 변경하려면 ENSplitterDlg.h 헤더 파일에 정의된 ENEXTENSION을 변경하면 된다. 그리고 OnFileOpen() 함수에 형식에 따라 구문 분석 필터를 추가하는 부분이 있으므로, 지원하는 파일 형식이 추가되면 여기에 함께 추가해야 한다. 그것은 파일 형식 검증 및 성능 향상에 필요하기 때문이다.
한편 윈도우 미디어 파일 형식을 사용할 경우, 이엔소스(310)에서 지정한 프로토콜을 사용한다. 따라서 파일 형식이 변경되면 프로토콜도 함께 변경해야 한다. 그리고 주의해야 할 점은, WM(Windows Media) 리더(Reader) 필터는 윈도우 미디어 파일 형식 SDK(Software Development Kit)를 사용하는 필터로서 리더 객체를 제공하고, 9.0 버전부터 정상적으로 소스 플러그인을 지원하며, 이때 윈도우 미디어 플레이어 9.0과 함께 설치된다. 새 버전의 윈도우 미디어 파일을 지원하기 위해서는 윈도우 미디어 기술(Windows Media Technology) 9.0의 파일 형식 SDK를 통해 새 동적 연결 라이브러리(Dynamic Linking Library:DLL)을 얻어야 한다. 아울러 마이크로소프트의 윈도우 미디어 파일 형식을 사용하려면 소정의 라이선스 계약을 맺어야 하며 그것은 본 발명의 내용과는 별개의 문제이다.
3-6. 파일 병합 방법
이엔스플리터에 의해 분할된 멀티미디어 파일을 원래의 파일 상태로 복원하고자 할 때 이엔스플리터의 병합(Merge) 기능을 이용한다. 파일 병합 방법에 대하여 도 8을 참조하여 설명하면 UUID 파일(620)을 병합할 경우 이엔스플리터(210)가 병합기(Merger)로 동작하여 파일 병합을 수행하는 일의 시작점이 된다. 본 발명에 따른 파일 병합 과정은 다음과 같다: 이엔스플리터(210)는 이엔소스(310)의 인터페이스를 통해 이엔소스로 헤더 파일(610) 경로를 전달한다. 이엔소스(310)는 헤더 파일(610)을 분석하여 UUID 파일(620)과 파일의 위치, 크기 테이블(312)을 복원한다. 이엔소스(310)는 헤더 파일(610)에 기록된 정보에 따라 UUID 파일(620)을 이엔네트워크(230)의 인터페이스를 통해 요청한다. 이엔네트워크(230)는 이엔소스(310)가 요청한 UUID 파일(620)을 복사 또는 다운로드하여 컴퓨터 하드 디스크 공간(510)에 저장하고, 그 파일 핸들을 이엔소스(310)에게 전달한다. 이엔소스(310)는 이엔네트워크(230)가 전달한 파일 핸들을 통해 데이터를 읽어 파일 병합을 수행하여 원본 파일(630)을 만들어 낸다. 이때 암호화된 파일인 경우 복호화(decryption) 과정을 거친 뒤 병합을 수행한다.
<파일 병합 실시예>
이제 파일 병합의 실시 예에 대하여 설명한다. 이 기능은 분할된 파일이 올바르게 복원되는지 확인하기 위한 기능이다. 기능 선택 수단에서 병합을 선택하면 이엔스플리터(210)가 병합을 수행한다. 이후 소스 파일에서 확장자가 *.enp인 목적 파일(header file)을 지정한다. 그러면 지정된 소스 파일의 파일 형식을 분석하여 출력창에 표시한다. 동시에 파일 형식 선택 수단의 형식이 자동으로 결정된다. 따라서 파일 병합 과정에서는 파일 형식을 지정할 필요가 없다.
만약 소스 파일이 인식할 수 없는 파일 헤더이면 '인식할 수 없는 파일입니다'라는 에러 메시지 상자가 나타난다.
시작 버튼을 누르면 파일 병합 작업을 수행하고 '파일 병합이 끝났습니다'라는 메시지가 창에 나타나면 병합이 정상적으로 완료된 것이다.
3-7. 미디어 재생 방법
도 9를 참조하여 설명하면 미디어를 재생할 경우 다이렉트쇼 애플리케이션이 주 시작점이 된다. 따라서 본 시스템 입장에서는 필터 그래프(520)의 요청으로 동작하게 된다. 본 발명에 따른 미디어 재생 과정은 다음과 같다: 다이렉트쇼 애플리케이션이 지정한 헤더 파일 경로가 필터 그래프 매니저를 통해 이엔소스(310)의 인터페이스로 전달된다. 이엔소스(310)는 헤더 파일(610)을 분석하여 UUID 파일(620)과 그 위치, 크기 테이블(312)을 복원한다. 필터 그래프(520)는 연결과 재생에 필요한 데이터를 이엔소스(310)에서 순차적으로 요청한다. 이때 원하는 데이터의 위치와 크기를 명시하여 전달한다. 이엔소스(310)는 필터 그래프(520)가 요청한 데이터에 대해, 헤더 파일(610)에 기록된 정보에 따라 UUID 파일(620)을 찾고 그 파일을 이엔네트워크(230)의 인터페이스를 통해 요청한다. 이엔네트워크(230)는 이엔소스(310)가 요청한 UUID 파일(620)을 복사 또는 다운로드하여 임시 장소컴퓨터 하드디스크 공간에 보관하고, 그 파일 핸들을 이엔소스(310)에게 전달한다. 이엔소스(310)는 이엔네트워크(230)가 전달한 파일 핸들을 통해 데이터를 읽어 필터 그래프(520)에 전달한다. 이때 암호화된 파일인 경우 복호화(decryption) 과정을 수행한다.
3-8. 미디어 스케줄링 방법(다운로드 방법)
이엔스플리터에 의해 분할된 멀티미디어 파일은 재생에 필요한 연결 정보를 담고있는 미디어 헤더(media-header)부 파일 리스트, 재생되는 화면과 사운드 정보를 담는 데이터부 파일 리스트의 두 가지로 나누어질 수 있다.
플레이어(500)는 다운로드 되어진 헤더 파일을 분석하고 필요한 파일 리스트를 다운로드 시작한다.
프로그램 실행시 우선 재생에 필요한 미디어 헤더부를 다운로드 시작하면서 그 동안 프로그램은 블로킹(blocking)이 되어진다. 이때 여러 개의 쓰레드(thread)를 이용하여 동시에 여러 개의 파일이 다운로드 되어지며, 사용자가 지정한 크기보다 큰 파일이 있을 경우 이는 다시 여러 개의 쓰레드로 나뉘어 신속하게 파일을 다운로드 한 후 합치는 과정을 반복한다.
미디어 헤더가 다 받아지면 프로그램은 미디어 헤더 정보를 재구성 하며 데이터부 파일을 다운로드 한다. 적당한 수의 소켓을 이용하여 동시에 여러 개의 데이터 파일을 받게 되며, 프로그램은 활성화 되고 데이터 파일을 재생하기 시작한다.
이때 지속적이고 신속한 데이터 저장을 위하여 적당한 수의 소켓(쓰레드)을 이용하여 동시에 여러 개의 파일을 다운로드 하게 된다. 이때 헤더 정보에 의하여 앞으로 필요로 되어 지는 파일 리스트의 다운로드에 필요한 작업을 미리 마치고 앞의 파일들의 다운로드가 종료되며 준비된 파일들의 다운로드 과정을 반복하게 된다.
재생부를 이동하였을 경우 (검색 기능) 기존의 다운로드 중인 작업이 끝나기를 기다리고, 이동되어진 부분의 위치 값을 해석하여 파일 리스트의 필요 부위를 알아낸다. 그 후 필요부위의 파일로부터 적당한 수의 쓰레드를 이용하여 동시에 파일을 다운로드 시작하며 재생을 시작한다.
또한 기본적으로 5개의 소켓(쓰레드당 1개 소켓)을 통하여 컨텐츠를 다운로드할 수 있다. 사용자의 네트워크 상태 등을 고려하여 동시 소켓의 수 등을 산출할 수 있으며, 사용자의 네트워크 상태가 제공되는 컨텐츠 재생에 부적합할 정도로 느릴 경우, 예약보기 등의 기능으로 일정 파일 리스트가 다운로드 완료된 후 재생이 가능하도록 설정이 가능하다.
이때 재생 시점은 끝가지 재생하는데 필요한 시간과 전체 파일의 다운로드 시간을 고려하여 산출된다.
유리한 효과
상술한 본 발명으로부터 기대되는 효과들은 다음과 같다. 비즈니스 비디오 온 디멘드(Business Video on Demand)가 기업 경쟁력의 주요 이슈로 부상하여 본 발명에 의한 고속 스트리밍 기술이 적용 가능하다.
본 발명은 고속 스트리밍 기술이 적용이 가능하고 인터넷 미들 마일(Middle-Mile)의 병목 현상을 해결할 수 있고, 순간적인 접속 폭주, 서버 부하와 트래픽의 집중, 장애의 도미노 현상에 신속하게 대응 가능하다.
아울러 본 발명의 실시로 인해 급변하는 트래픽 관리도 용이하다. 그리고 스트리밍 서비스의 투자 수익률(ROI) 문제를 해결할 수 있다. 그것은 본 발명이 1:N의 송신이 가능한 멀티캐스팅 기술을 제공하기 때문이다. 도 15는 본 발명에 따른 SCDN의 구성 예를 나타낸다. 컨텐츠 서버가 제공하는 멀티미디어 데이터를 기업 사용자와 개인 사용자가 이용할 수 있다. 기업 사용자는 직접 랜을 통해 컨텐츠 서버로부터 데이터를 제공 받고, 개인 사용자는 ISP의 에지 미디어(Edge Media)를 통해 제공받는다. 도 15의 SCDN이 종래 투자 수익률(ROI)의 문제를 해결할 수 있다.
본 발명에 따르면 장비구축비용, 네트워크 비용, 인건비용 기준으로 최소 11% 이상의 비용 절감효과와 새로운 비즈니스 기회가 창출될 수 있다. 즉 데이터 전송용 인프라를 한번만 구축하면 되므로 하드웨어 비용이 줄어들고, 집중 및 원격에 의한 분산 시스템 관리로 관리비용이 줄어들며, 통합된 컨텐츠 네트워킹 시스템으로 대역폭(bandwidth) 비용을 줄일 수 있다.
이처럼 본 발명은 관리에 있어 유연성(flexibility), 중앙 집중 관리(Centralized Management), 중앙 집중 모니터링(Centralized Monitoring)가 가능하고, 성능(Performance)면에서는 광역 로드 밸런싱(Global Load Balancing), 로컬 서버 로드 밸런싱 및 네트워크 아키텍처의 성능이 우수하다. 따라서 본 발명의 SCDN에 의해 사용자의 도메인 네임 서버 설정에 관계없이 항상 정확한 네트워크 거리 정보를 바탕으로 광역 인터넷 트래픽 관리(Global Internet Traffic Management)를 수행할 수 있다. 즉 정확한 근접성(Accurate Proximity)이 얻어진다. 또한 에지 서버들의 기종 및 설치 환경에 관계없이 하드웨어 부하, 프로세스 상태, 컨텐츠 상태 같은 심층적인 서버 상태 검사를 통해 정확한 로컬 인터넷 트래픽 관리(Local Internet Traffic Management)를 수행할 수 있다.
그리고 각 에지의 네트워크의 구조를 단순화 할 수 있도록 스탠드 어사이드(Stand-aside) 방식의 ITM 솔루션을 사용하므로 순간 접속 요구량이 증가하여도 순간 트래픽 폭주를 감당할 수 있다. 즉 도메인 네임 질의(Query)가 있으면, 트래픽 관리 차원에서 최적의 서버 IP 주소로 응답하고 서비스 요청에 따라 응답하고 서비스를 제공한다. 도 16은 본 발명에 따른 스탠드 어사이드(Stand-aside) 방식의 ITM 솔루션의 예를 보여준다. 이러한 방식의 ITM 솔루션은 트래픽이 계속적으로 증가하여도 에지 서버의 부하 증가 문제를 해결할 수 있다.
본 발명에 따른 ITM 솔루션은 도메인 네임 서버에 독립적이어서 서비스 품질의 저하는 물론 심각한 장애 사태 발생시에도 관리자가 용이하게 대처할 수 있다.
본 발명에서는 광역 인터넷 브로드캐스팅 서비스와 같이 인터넷 상에 다수의 컨텐츠 원본 서버와 에지 서버가 분산되어 있는 경우에도 효율적으로 컨텐츠를 상호 분배하고 동기화 할 수 있다.
그리고 본 발명에 따르면 광역 네트워크 상에서 수행되는 트래픽 관리, 컨텐츠 동기화, 클러스터링, 컨텐츠 배포 등과 같은 모든 작업에 대해 단일 관리 포인트를 제공할 수 있어서 관리 비용이 절감되는 효과가 있다.
또한 본 발명은 분할된 파일에 대한 DRM 기술을 적용하거나 분할된 파일의 식별 번호를 구분하여 파일교환 프로그램의 광범위한 사용으로 인한 온라인 프라이버시 및 파일에 대한 보호가 가능하다.
Claims (17)
- 네트워크를 이용한 멀티미디어 파일 재생을 구현하기 위한 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템(Streaming Contents Distribution Network)에 있어서,대용량 멀티미디어 파일을 분할하여 다수의 UUID(Universally unique identifier) 타입의 파일 리스트 및 헤더 파일을 생성하는 이엔스플리터(ENSplitter);필요시 상기 이엔스플리터에 의해 분할된 멀티미디어 파일을 원래의 파일 상태로 복원하는 이엔스플리터의 병합기(Merger);상기 이엔스플리터와 병합기(Merger)의 기능을 포함한 어드민 클라이언트(Admin Client);상기 어드민 클라이언트(Admin Client)로부터 분할된 파일을 전송 받아 서버 내부의 하드 디스크 공간에 저장하는 컨텐츠 원본 서버;상기 컨텐츠 원본 서버 내에 있고 실시간으로 데이터의 생성, 수정, 삭제를 감지하는 CMS 서버;상기 이엔스플리터에 의해 분할된 동일한 내용의 원본 파일의 컨텐츠 및 헤더 파일을 상기 컨텐츠 원본 서버로부터 전송 받아 각각 저장하고 상기 CMS 서버에 의해 상기 저장하고 있는 파일들이 각각 동기화 되는 다수의 CAS 서버;상기 SCDN 시스템의 인터넷 트래픽을 관리하는 아이피마스터(IPMaster) 서버;상기 컨텐츠 원본 서버의 하드 디스크 공간에 저장된 컨텐츠 파일 및 헤더 파일을 상기 각 CAS 서버로 동기화 하는 시디마스터(CDMaster) 서버;상기 각 CAS 서버내에 설치되어 해당 CAS 서버의 CPU, 메모리(Memory), 세션(Session) 정보를 실시간으로 상기 아이피마스터 서버에게 전송하여, 상기 아이피마스터 서버가 클라이언트의 요청이 있을 경우 해당 클라이언트에게 가장 최적인 CAS 서버를 선정하고 해당 CAS 서버로부터 해당 클라이언트가 원하는 컨텐츠를 제공하는 다수의 SM 에이전트(Server Monitoring Agent);각기 상기 CAS 서버 및 SM 에이전트 쌍으로 이루어지는 다수의 컨텐츠 서버;사용자가 로그인 시 인증을 수행하는 사용자 측 인증서버;상기 사용자측 인증서버에 의해 인증 받은 클라이언트가 인터넷 상에 구성된 웹 사이트로 접속하여 다양한 컨텐츠를 접근할 수 있도록 해주는 웹 서버;사용자가 상기 각각의 컨텐츠 서버에 저장되어 있는 컨텐츠에 접근할 수 있도록 허락하는 권한을 가지고 있으며 상기 분할된 컨텐츠 파일 각각에 대해 다운로드 가능여부를 확인하는 주 인증 게이트웨이 서버;상기 주 인증 게이트웨이 서버의 장애시에 인증에 대한 우회경로를 제공함으로써 무중단 서비스를 실현하기 위한 부 인증 게이트웨이 서버;상기 주 인증 게이트웨이 서버 및 부 인증 게이트웨이 서버 내부에 각각 위치하고 상기 사용자측 인증서버와 상기 주/부 게이트웨이 서버 사이의 인증 정보를 공유하고 상기 주/부 인증 게이트웨이 서버와 사용자측 인증서버 간의 인증정보를 전달하는 역할을 수행하는 인증 프록시 서버; 및다운로드 받고 싶은 컨텐츠가 있을 경우 상기 주 인증 게이트웨이 서버에게 인증을 요청하여 인증을 받고 난 다음 원하는 컨텐츠 정보를 상기 아이피마스터 서버에게 요청하여 상기 아이피마스터 서버가 선정해주는 최적의 컨텐츠 서버로부터 원하는 컨텐츠를 다운로드 받아서 내부의 컴퓨터 하드 디스크 공간에 저장하고 상기 분할된 파일이 전부 상기 컴퓨터 하드 디스크 공간에 저장되어 있지 않아도 저장되어 있는 파일들만을 소정의 스케줄링에 따라 재생하고 상기 재생이 이루어지는 동안에 나머지 분할된 파일들을 다운로드 받아 상기 컴퓨터 하드 디스크 공간에 저장하여 이미 다운로드 받은 파일들에 이어 끊임없이 연속적으로 재생이 이루어지도록 재생하는 상기 시스템 전용의 플레이어를 구비하여 이루어지는 것이 특징인, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템.
- 제 1 항에 있어서, 상기 이엔스플리터에 의해 분할된 멀티미디어 파일 각각에 대해서 암호화를 하고 상기 병합된 파일에 대해서 복호화를 할 때 상기 분할 및 병합되는 멀티미디어 컨텐츠의 저작권 보호 및 관리를 담당하는 DRM(Digital Rights Management) 암호화/복호화 모듈(Encryption/Decryption Module)을 더 구비하는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템.
- 제 1 항에 있어서, 상기 분할하고자 하는 파일에 대해서 관리자가 네트워크 트래픽 및 상태, 시스템의 성능 등의 환경을 고려하여 분할하고자 하는 파일을 원하는 형태의 크기로 분할이 가능하도록 하여 정체가 없이 가장 빠른 방법으로 데이터의 전송이 가능하도록 하는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템.
- 제 1 항에 있어서, 상기 플레이어는 다운로드 받은 파일의 재생과 동시에 앞으로 재생할 파일을 상기 동일한 컨텐츠를 갖고 있는 여러 대의 컨텐츠 서버로부터 멀티 쓰레드(Multi Thread)를 이용하여 병렬로 다운로드 받는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템.
- 제 1 항에 있어서, 상기 플레이어는 멀티 쓰레드를 이용하여 분할된 파일에 대한 병렬 다운로드가 가능한 멀티 태스킹(multi-tasking) 시스템이고 여러 대의 컨텐츠 서버중 일부 서버의 장애시에도 정상적으로 운영되는 서버를 통해 멀티미디어 헤더 파일의 파일 리스트를 비교하여 파일을 계속적으로 받을 수 있는 스탠드 어사이드(Stand-aside) 방식의 ITM 솔루션을 사용하는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템.
- 컨텐츠 원본 서버와 컨텐츠 원본 서버의 데이터를 복사하여 저장하고 있는 다수의 컨텐츠 서버를 갖추고 있는 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템(Streaming Contents Distribution Network)에 있어서,멀티미디어 파일을 분할하여 여러 개의UUID(Universally unique identifier) 타입의 파일로 분할하고 헤더 파일을 생성하여 컨텐츠 원본 서버 내의 하드 디스크 공간에 저장하고, 파일 병합도 함께 수행하며, UUID 파일을 암호화하고 복호화 하는 이엔스플리터(ENSplitter);파일 분할 및 병합 과정과 미디어 재생 과정에 모두 참여하며, 두 과정에 대해 다르게 동작하며, 실제로 미디어 파일을 분할 및 병합하여 그에 따른 헤더 파일을 생성, 구문 분석하는 역할을 하며, 이때 UUID 파일을 암호화 및복호화 하는 역할을 수행하고, 정규 다이렉트 쇼 소스 필터(Direct Show Source Filter)로 동작하여 필터 그래프(Filter Graph)의 데이터 요청에 따라 미디어 데이터를 전송하고, 아울러 윈도우 미디어 파일을 재생할 경우 소스 플러그인(source plug-in) 동적 연결 라이브러리(Dynamic Linking Library:DLL)로도 동작하며 UUID파일과 이 파일의 위치와 크기 정보를 담고있는 테이블을 구비하고 있는 이엔소스(ENSource);동일한 컨텐츠를 저장하고 있는 다수의 컨텐츠 서버 각각의 하드 디스크 공간에 저장된 여러 개의 UUID 파일을 클라이언트 컴퓨터의 하드 디스크 공간으로 다운로드하고 클라이언트의 하드 디스크에 임시파일(Temporary File) 형태로 저장하여 관리하며, 이와 동시에 상기 이엔소스가 특정 UUID 파일을 요청하면 이를 다운로드 또는 검색하여 해당 파일 핸들(헤더 파일)을 상기 이엔소스에게 전송하고, UUID파일 목록과 이에 해당하는 임시 파일 목록을 저장하고 있는 테이블을 구비하고 있는 이엔네트워크(ENNetwork); 및다이렉트쇼 애플리케이션으로서 실제 필터 그래프의 역할을 수행하고, 필터 그래프 매니저(Filter Graph Manager)를 통해 상기 이엔소스에게 데이터의 위치와 크기를 명시하여 데이터를 요청하고 전달 받은 데이터를 처리하여 미디어를 재생하며, 필터 그래프를 내부에 구비하고 있고 동영상 플레이 기능이 있는 플레이어를 포함하여 이루어지는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템.
- 제 6 항에 있어서, 상기 이엔스플리터는 소스 파일, 목적 파일, 분할하고자 하는 파일의 크기, 기능 선택 수단, 파일 형식 선택 수단 및 창을 구비하고 있고, 상기 기능 선택 수단은 분할 버튼 및 병합 버튼을 구비하고 있고, 상기 파일 형식 선택 수단은 AVI, MPEG 및 윈도우 미디어(Windows Media) 버튼을 구비하고 있으며, 상기 시스템은 스탠드 어사이드(Stand-aside) 방식의 ITM 솔루션을 사용하는 것이 특징인, 스트리밍 기반의 컨텐츠 분산형 네트위크 시스템.
- 제 6 항 또는 제 7 항에 있어서, 상기 분할된 파일에 대해서 암호화를 하고 상기 병합된 파일에 대해서 복호화를 할 때 상기 분할 및 병합되는 멀티미디어 컨텐츠의 저작권 보호 및 관리를 담당하는 DRM(Digital Rights Management) 암호화/복호화 모듈(Encryption/Decryption Module)을 더 구비하는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템.
- 네트워크를 이용한 멀티미디어 파일 재생을 구현하기 위해 원본 컨텐츠를 저장하고 있는 컨텐츠 원본 서버와 상기 원본 컨텐츠를 복사하여 저장하고 있는 다수의 컨텐츠 서버를 갖추고 있는 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템에서 멀티미디어 파일을 분할 전송하여 재생하는 방법에 있어서,이엔스플리터를 통해 멀티미디어 파일을 분할 또는 병합하는 단계;상기 분할 또는 병합된 멀티미디어 파일을 어드민 서버(Admin Server)로 업로드(upload) 하는 단계;어드민 서버를 사용하여 상기 분할된 컨텐츠 파일 및 헤더 파일을 다수의 컨텐츠 서버의 하드 디스크 공간으로 복사하여 컨텐츠를 동기화 하는 단계;클라이언트가 웹 서버에 접속해서 컨텐츠를 선택하고, 사용자측 인증서버에서 사용자 ID, 컨텐츠, 컨텐츠 종료시간에 대한 인증을 수행하고, 인증된 사용자에 대해 과금 서버에 과금 처리를 요청하고, 사용자측 인증서버가 인증 프록시 서버에게 인증정보를 요청하고, 인증 프록시 서버는 인증 정보를 사용자측 인증서버에게 전달하는 단계;클라이언트로 인증키 및 헤더 파일을 다운로드 하는 단계;클라이언트가 아이피마스터에게 컨텐츠를 다운로드 받기 위한 최적의 컨텐츠 서버를 요청하는 단계;상기 요청에 의해 아이피마스터가 최적의 컨텐츠 서버를 선택하여 알려주면 클라이언트가 해당 컨텐츠 서버에게 소정의 인증 키와 함께 컨텐츠 파일을 요구하고, 이에 컨텐츠 서버가 주 인증 게이트웨이 서버로 인증 확인을 요청하는 단계;상기 주 인증 게이트웨이 서버에 의해 인증 확인이 완료되면 요청된 파일을 다운로드 하는 단계;클라이언트가 스케줄링에 따라 데이터 파일을 다운로드 받아 임시 파일로 컴퓨터 하드 디스크 저장 장소에 저장하는 단계;전용 플레이어로 상기 다운로드 받은 데이터를 재생하는 단계; 및상기 재생 종료와 함께 상기 컴퓨터 하드 디스크 저장 공간에 저장된 임시 파일을 삭제하는 단계를 구비하여 이루어지는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템 상의 파일 분할 전송 및 재생 방법.
- 제 9 항에 있어서, 상기 파일 분할시 분할된 파일을 DRM(Digital Rights Management) 암호화/복호화 모듈(Encryption/Decryption Module)을 사용하여 암호화 하고, 상기 시스템은 스탠드 어사이드(Stand-aside) 방식의 ITM 솔루션을 사용하는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템 상의 파일 분할 전송 및 재생 방법.
- 네트워크를 이용한 멀티미디어 파일 재생을 구현하기 위해 원본 컨텐츠를 저장하고 있는 컨텐츠 원본 서버와 상기 원본 컨텐츠를 복사하여 저장하고 있는 다수의 컨텐츠 서버를 갖추고 있는 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템에서 멀티미디어 파일을 분할하는 방법에 있어서,파일 분할기인 이엔스플리터가 소스 파일의 경로를 이엔소스의 인터페이스를 통해 전달하는 단계;이엔스플리터가 필터 그래프 매니저를 가동시켜 이엔소스가 필터 그래프 연결에 참여하도록 하는 단계;상기 참여 과정에서 구문 분석 필터(Parser Filter)가 이엔소스에게 데이터를 요청하면, 이엔소스가 필터 그래프 내 구문 분석 필터가 요청한 데이터를 전달하고, 그 내역을 기록하는 단계;이엔스플리터가 이엔소스 인터페이스를 통해 파일 분할 명령을 내리면,이엔소스가 연결 정보와 분할 크기 정보를 바탕으로 미디어 파일을 분할하는 단계; 및상기 파일 분할에 필요한 UUID(Universally unique identifier) 타입의 파일을 동적으로 할당하고, 필요시 암호화(encryption)를 수행하며, 이엔소스는 파일 분할이 끝난 뒤 UUID 파일과 이의 위치, 크기 테이블을 정리하여 헤더 파일을 생성하는 단계를 구비하여 이루어지는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템 상의 파일 분할 방법.
- 제 11 항에 있어서, 상기 파일 분할시 분할된 파일을 DRM(Digital Rights Management) 암호화/복호화 모듈(Encryption/Decryption Module)을 사용하여 암호화 하고, 상기 시스템은 스탠드 어사이드(Stand-aside) 방식의 ITM 솔루션을 사용하는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템 상의 파일 분할 방법.
- 제 11 항에 있어서, 상기 이엔스플리터에 의해 파일 분할 후 생성된 헤더 파일은 해당 소스 파일이 필터 그래프 구성에 필요한 연결 정보이며, 파일 분할을 완전하게 마무리하기 위해서 상기 정보 분석을 수행하는 단계를 더 구비하며, 이때 텍스트 영역(Text Area)의 데이터 표현의 (x, y)에서 x, y는 각각 파일 내의 위치인 헤더 정보를 의미하며 헤더 정보를 검색하기 위한 인덱스이며 위치정보 0은 헤더파일의 시작점인 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템 상의 파일 분할 방법.
- 제 13 항에 있어서, 상기 연결 정보를 바탕으로 그대로 파일을 분할할 시 발생하는 많은 작은 파일 조각을 정리하는 단계를 더 구비하는 것이 특징인, 스트리 밍 기반의 컨텐츠 분산형 네트워크 시스템 상의 파일 분할 방법.
- 제 11 항에 있어서, 파일 형식 검증 및 성능 향상을 위해 파일 형식에 따라 구문 분석(Parser) 필터를 추가하고 파일 형식에 따라 프로토콜을 변경하는 단계를 더 구비하는 것이 특징인, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템 상의 파일 분할 방법.
- 네트워크를 이용한 멀티미디어 파일 재생을 구현하기 위해 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템(Streaming Contents Distribution Network)에서 분할되어 전송된 멀티미디어 파일이 올바르게 복원되는지 확인하기 위한 파일 병합 방법에 있어서,UUID(Universally unique identifier) 타입의 파일을 병합할 경우 이엔스플리터가 병합기(Merger)로 동작하여 파일 병합을 수행하는 일의 시작점이 되고 이때 이엔스플리터는 이엔소스의 인터페이스를 통해 이엔소스로 헤더 파일 경로를 전달하는 단계;이엔소스는 헤더 파일을 분석하여 UUID 파일과 파일의 위치, 크기 테이블을 복원하는 단계;이엔소스는 헤더 파일에 기록된 정보에 따라 UUID 파일을 이엔네트워크의 인터페이스를 통해 요청하는 단계;이엔네트워크는 이엔소스가 요청한 UUID 파일을 복사 또는 다운로드하여 컴퓨터의 하드 디스크 공간에 저장하고, 해당 파일 핸들을 이엔소스에게 전달하는 단계; 및이엔소스는 이엔네트워크가 전달한 파일 핸들을 통해 데이터를 읽어 파일 병합을 수행하여 원본 파일을 만들어 내며, 이때 암호화된 파일인 경우 복호화(decryption) 과정을 거친 뒤 병합을 수행하는 단계를 구비하여 이루어지는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템 상의 파일 병합 방법.
- 네트워크를 이용한 멀티미디어 파일 재생을 구현하기 위해 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템(Streaming Contents Distribution Network)에서 분할되어 전송된 멀티미디어 파일을 재생하는 방법에 있어서,멀티미디어 파일을 재생할 경우 다이렉트쇼 애플리케이션을 주 시작점으로 하여 필터 그래프의 요청으로 동작하며, 다이렉트쇼 애플리케이션이 지정한 헤더 파일 경로가 필터 그래프 매니저를 통해 이엔소스의 인터페이스로 전달되는 단계;이엔소스가 헤더 파일을 분석하여 UUID 파일과 그 위치, 크기 테이블을 복원하는 단계;필터 그래프가 연결과 재생에 필요한 데이터를 이엔소스에서 순차적으로 요청하며, 이때 원하는 데이터의 위치와 크기를 명시하여 전달하는 단계;이엔소스가 필터 그래프가 요청한 데이터에 대해, 헤더 파일에 기록된 정보에 따라 UUID 파일을 찾고 해당 파일을 이엔네트워크의 인터페이스를 통해 요청하는 단계;이엔네트워크가 이엔소스가 요청한 UUID 파일을 복사 또는 다운로드하여 컴퓨터 하드디스크 공간에 보관하고, 해당 파일 핸들을 이엔소스에게 전달하는 단계; 및이엔소스가 이엔네트워크가 전달한 파일 핸들을 통해 데이터를 읽어 필터 그래프에게 전달하며, 이때 암호화된 파일인 경우 복호화(decryption)를 수행하는 단계를 구비하여 이루어지는 것을 특징으로 하는, 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템 상에서 분할 전송된 파일의 재생 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020057020418A KR100715143B1 (ko) | 2005-10-27 | 2004-03-22 | 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템과 파일 분할, 병합 및 재생 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020057020418A KR100715143B1 (ko) | 2005-10-27 | 2004-03-22 | 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템과 파일 분할, 병합 및 재생 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060038361A KR20060038361A (ko) | 2006-05-03 |
KR100715143B1 true KR100715143B1 (ko) | 2007-05-10 |
Family
ID=37145959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057020418A KR100715143B1 (ko) | 2005-10-27 | 2004-03-22 | 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템과 파일 분할, 병합 및 재생 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100715143B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110084288A (ko) * | 2008-11-04 | 2011-07-21 | 아마데우스 에스.에이.에스. | 정보를 검색하고 저장하는 방법 및 시스템 |
KR101669186B1 (ko) * | 2015-11-16 | 2016-11-09 | 주식회사 지유비 | 보안화된 컨텐츠 제공시스템 및 그 제공방법 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100779985B1 (ko) * | 2006-04-27 | 2007-11-27 | 김동학 | 콘텐츠 보호 방법 및 시스템 |
WO2008049092A2 (en) * | 2006-10-18 | 2008-04-24 | Google Inc. | Generic online ranking system and method suitable for syndication |
KR100848836B1 (ko) * | 2007-02-13 | 2008-07-28 | 주식회사 타오네트웍스 | 플래시 무비 컨텐츠 보호 시스템 및 방법 |
KR100860076B1 (ko) * | 2007-02-22 | 2008-09-24 | 한국전자통신연구원 | 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시교체 장치 및 그 방법 |
KR100938183B1 (ko) * | 2007-10-19 | 2010-01-21 | 한국과학기술정보연구원 | 병렬화를 이용한 스크래치 디스크의 파일 삭제 장치 및이를 이용한 파일 삭제 방법과 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 |
KR101140636B1 (ko) * | 2009-02-02 | 2012-05-03 | 에스케이플래닛 주식회사 | 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버 |
KR101374533B1 (ko) * | 2013-04-17 | 2014-03-14 | 주식회사 엔써티 | 대용량 데이터에 대한 고성능 복제 및 백업 시스템과, 고성능 복제 방법 |
KR102294040B1 (ko) | 2015-01-19 | 2021-08-26 | 삼성전자 주식회사 | 데이터 송수신 방법 및 장치 |
KR102050491B1 (ko) * | 2018-10-11 | 2019-11-29 | 주식회사 비즈모델라인 | 요청 응답 방식의 적응형 컨텐츠 재생 방법 |
KR102363226B1 (ko) * | 2020-04-24 | 2022-02-15 | 주식회사 잼픽 | 인공지능형 분산 스토리지 시스템 |
CN113034194B (zh) * | 2021-04-02 | 2024-05-17 | 深圳市英特飞电子有限公司 | 智慧灯杆广告管理方法、装置、计算机设备及存储介质 |
KR102433640B1 (ko) * | 2021-11-30 | 2022-08-18 | 주식회사 시옷 | 대용량 데이터의 보안 처리 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010068479A (ko) * | 2000-01-06 | 2001-07-23 | 복성해 | 고정화된 레반슈크라제 또는 유기용매 처리된 균체를이용한 저분자량 레반의 제조방법 |
EP1134922A2 (en) * | 2000-03-17 | 2001-09-19 | Lucent Technologies Inc. | Method and apparatus for signaling path restoration information in a mesh network |
JP2002032282A (ja) * | 2000-05-11 | 2002-01-31 | Fujitsu Ltd | ネット上におけるコンテンツ配信システム、配信方法およびそのプログラム製品 |
KR20020029441A (ko) * | 2000-08-21 | 2002-04-19 | 김영민 | 분산 서버 시스템 및 이를 이용한 데이터 제공 방법 |
-
2004
- 2004-03-22 KR KR1020057020418A patent/KR100715143B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010068479A (ko) * | 2000-01-06 | 2001-07-23 | 복성해 | 고정화된 레반슈크라제 또는 유기용매 처리된 균체를이용한 저분자량 레반의 제조방법 |
EP1134922A2 (en) * | 2000-03-17 | 2001-09-19 | Lucent Technologies Inc. | Method and apparatus for signaling path restoration information in a mesh network |
JP2002032282A (ja) * | 2000-05-11 | 2002-01-31 | Fujitsu Ltd | ネット上におけるコンテンツ配信システム、配信方法およびそのプログラム製品 |
KR20020029441A (ko) * | 2000-08-21 | 2002-04-19 | 김영민 | 분산 서버 시스템 및 이를 이용한 데이터 제공 방법 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110084288A (ko) * | 2008-11-04 | 2011-07-21 | 아마데우스 에스.에이.에스. | 정보를 검색하고 저장하는 방법 및 시스템 |
KR101643787B1 (ko) | 2008-11-04 | 2016-08-10 | 아마데우스 에스.에이.에스. | 정보를 검색하고 저장하는 방법 및 시스템 |
KR101669186B1 (ko) * | 2015-11-16 | 2016-11-09 | 주식회사 지유비 | 보안화된 컨텐츠 제공시스템 및 그 제공방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20060038361A (ko) | 2006-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006526215A (ja) | ストリーミング基盤のコンテンツ分散形ネットワークシステムとファイル分割、併合及び再生方法 | |
US8190683B2 (en) | Synchronizing multiple user remote content playback | |
US8775546B2 (en) | Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data | |
EP3706424B1 (en) | Video live broadcast method and apparatus | |
KR100715143B1 (ko) | 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템과 파일 분할, 병합 및 재생 방법 | |
US7324555B1 (en) | Streaming while fetching broadband video objects using heterogeneous and dynamic optimized segmentation size | |
DK2323333T3 (en) | Method for multi casting and device thereof | |
US7143433B1 (en) | Video distribution system using dynamic segmenting of video data files | |
KR101854919B1 (ko) | Drm 서비스 제공 방법 및 장치 | |
US20030158928A1 (en) | Systems and methods for supporting the delivery of streamed content | |
US20060053253A1 (en) | Caching control for streaming media | |
US20060190576A1 (en) | Scheduling method of advertisement/broadcasting and management system and method | |
AU2015259417A1 (en) | Distributed secure data storage and transmission of streaming media content | |
WO2009120301A2 (en) | System and method for simultaneous media presentation | |
JP2004133877A (ja) | コンテンツ提供方法及びシステム | |
JP5529177B2 (ja) | P2p基盤のストリーミングサービスでバッファリングを行うシステムおよび方法、並びにクライアントでバッファリングを処理するアプリケーションを配布するシステム | |
CN106656593A (zh) | 流媒体直播录制冗余热备的方法及系统 | |
US20060136487A1 (en) | Clustering apparatus and method for content delivery system by content classification | |
JP4637602B2 (ja) | コンテンツ配信システム、コンテンツ配信方法、およびプログラム | |
US20070294423A1 (en) | Multi-Client Single-Session Media Streaming | |
KR100660850B1 (ko) | Vod 시스템 및 vod 시스템 재구성 방법 | |
KR20020057837A (ko) | 스트리밍 서비스 방법 및 장치 | |
US7020709B1 (en) | System and method for fault tolerant stream splitting | |
JP2004104704A (ja) | 映像再生装置、映像再生方法、プログラム | |
JP2004054448A (ja) | ポータルサーバによるストリームサーバ・コンテンツ選択方法,ストリーム配信のためのポータルサーバおよびそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120430 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20130529 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |