KR100194180B1 - 쥬크 박스를 적용한 주문형 비디오 서버 및 제어방법 - Google Patents

쥬크 박스를 적용한 주문형 비디오 서버 및 제어방법 Download PDF

Info

Publication number
KR100194180B1
KR100194180B1 KR1019960011923A KR19960011923A KR100194180B1 KR 100194180 B1 KR100194180 B1 KR 100194180B1 KR 1019960011923 A KR1019960011923 A KR 1019960011923A KR 19960011923 A KR19960011923 A KR 19960011923A KR 100194180 B1 KR100194180 B1 KR 100194180B1
Authority
KR
South Korea
Prior art keywords
block
disk
subscriber
data
loading
Prior art date
Application number
KR1019960011923A
Other languages
English (en)
Other versions
KR970073108A (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 이계철
Priority to KR1019960011923A priority Critical patent/KR100194180B1/ko
Publication of KR970073108A publication Critical patent/KR970073108A/ko
Application granted granted Critical
Publication of KR100194180B1 publication Critical patent/KR100194180B1/ko

Links

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 다수의 가입자들에게 대량의 자료를 실시간으로 제공하여야 하는 비디오 서버의 보다 효율적이고 안정적인 형태를 제공하기 위한 쥬크 박스를 적용한 주문형 비디오 서버 및 제어 방법에 관한 것으로, 광 디스크 및 쥬크 박스를 사용해 서버를 구축하고, 이에 따른 제어 방법으로 쥬크 박스에서의 데이타 저장방법과, 공유 디스크부에서의 데이타 저장방법과, 쥬크 박스의 사용으로 인한 광 디스크 교환에 소요되는 시간들을 은폐시키는 방법 및 가입자의 요구에 따른 반응 시간을 최소화시키는 방법들을 제안하므로써, 현재 급부상하고 있는 주문형 비디오 서버의 구축 비용을 절감시킴과 동시에 데이타 저장의 신뢰성을 향상시키는 잇점이 있다.

Description

쥬크 박스를 적용한 주문형 비디오 서버 및 제어 방법
제1도는 종래 하드 디스크를 사용한 주문형 비디오 서버의 개략블럭도.
제2도는 본 발명에 의한 주문형 비디오 서버의 개략 블럭도.
제3도는 본 발명에 의한 디스크 교환 시간을 은폐하는 방식을 설명하는 설명도.
제4도는 임시접근제어요구에 따른 서비스를 위한 데이타 저장방식을 나타내는 일부 확대도.
제5도 (a)는 데이타 로딩시 생산자 프로세서 측의 제어 과정을 나타내는 순서도.
제5도 (b)는 생산자 프로세서 측의 연결 리스트 구조를 나타낸 설명도.
제5도 (c)는 제5도 (a) 과정 중 디스크 로딩 블럭을 결정하는 과정을 나타내는 순서도.
제5도 (d)는 제5도 (a) 과정 중 디스크 블럭 로딩 후, 공유 디스크에 저장하는 과정을 나타내는 순서도.
제6도 (a)는 데이타 로딩시 소비자 프로세서 측의 제어 과정을 나타내는 순서도.
제6도 (b)는 소비자 프로세서 측의 연결 리스트 구조를 나타낸 설명도.
제6도 (c)는 제6도 (a) 과정 중 메모리 로딩 블럭을 결정하는 과정을 나타내는 순서도.
제6도 (d)는 제6도 (a) 과정 중 메모리 로딩 과정을 나타내는 순서도.
* 도면의 주요부분에 대한 부호의 설명
2 : 운영 센터 10 : 쥬크 박스
20 : 생산자 프로세서 30 : 공유 디스크부
40 : 소비자 프로세서 a, c : 중앙처리장치
b, d : 메모리
본 발명은 쥬크 박스를 적용한 주문형 비디오 서버 및 제어 방법에 관한 것으로, 다수의 가입자들에게 대량의 자료를 실시간으로 제공하고 방대한 정보를 경제적으로 관리함과 동시에 데이타 저장의 신뢰성을 향상시킬 수 있도록 광 디스크 및 쥬크 박스를 적용한 주문형 비디오 서버 및 제어방법에 관한 것이다.
최근 컴퓨터 및 통신 기술의 발전으로 고속망을 통해 원하는 가입자에게 비디오 데이타를 제공해주는 주문형 비디오(Video On Demand : 이하 VOD라 칭한다) 서비스가 가능하게 되었는데, 이러한 VOD 시스템은 일반적으로 크게 다음과 같이 분류할 수 있다.
가입자의 요구에 따라 저장된 비디오 데이타를 검색 및 송출하는 비디오 서버(video server)와, 비디오 및 컨트롤 데이타를 전송하는 네트워크 부분과, 비디오 디코딩을 통해 전송된 비디오 데이타를 디스플레이하는 가입자 장치(Set Top Box : 이하 STB 라 칭한다)로 구성된다.
또한 부가적 구성 요소로서 가입자 등록, 요금 청구 등의 가입자 데이타 관리와 비디오 프로그램 관리 및 가입자 어드미션(admission) 조절과 같은 전체 VOD 시스템 관리를 수행하는 운영 센터가 비디오 서버의 일부분 혹은 독립적인 요소로 구성될 수 있다.
이러한 VOD 시스템 중 비디오 서버에 저장되는 비디오 데이타는 텍스트나 수치적 타입의 기존 데이타와는 다른 특성을 지니는데, 이는 압축된 경우라도 그 크기가 매우 크다.
예를 들어 압축률이 1:25 이상이고 1.5Mbps의 데이타 전송률을 지원하는 엠펙-1(MPEG-1)을 기준으로 할 때 2시간 길이의 영화 한편에 대한 데이타를 저장하기 위해서는 약 1.3GB의 용량이 필요하다.
또한 서비스시 네트워크를 거치는 비디오 데이타는 끊어지지 않고 이어지는 스트림(stream) 형태로 발생해야 하고, 미디어 형태에 따라 요구되는 대역폭에 맞게 실시간(real-time)으로 검색 및 재생이 이루어져야 하며, 요구 즉시형(on demand)이므로 동시에 여러 가입자들을 지원할 때 새로운 스트림에 대하여 어떤 특정한 한계 내의 시작 지연(start-up latency)시간이 보장되어야 한다.
아울러 가입자측에서 비디오 데이타의 재생은 갱신이 필요없기 때문에 읽기 전용의 성격을 지니며 빨리감기, 되감기, 멈춤 등과 같은 기능의 제공이 요구된다.
이러한 비디오 데이타의 특성으로 인해 비디오 서버는 방대한 크기의 비디오 데이타베이스를 저장하기 위한 대용량 저장장치와 많은 수의 가입자를 동시에 지원하기 위해 요구되는 입출력 처리량 및 중앙처리장치 처리능력을 가져야 한다.
상기와 같은 특징을 가지는 비디오 데이타를 저장하는 종래의 비디오서버는 제1도에 도시된 바와 같이, 비디오 데이타를 영구 저장하는 하드 디스크부(1)와; 가입자에 대한 정보 및 상기 하드 디스크부(1)에 대한 정보를 저장/관리하는 운영 센터(2) 및; 여러 가입자로부터 요구된 자료를 실시간으로 전송하고 되도록 짧은 시간 내에 응답할 수 있도록 요구 및 자료 전송에 대한 스케줄링을 수행하는 스케줄러(3)로 구성된다.
상기와 같이 구성된 비디오 서버측으로 가입자의 서비스 요구가 있게되면 스케줄러(3)의 작동에 따라 하드 디스크부(1)에 저장되어 있는 비디오 데이타를 가입자에게 전송해 준다.
그러나 현재 사용되고 있는 하드 디스크로 방대한 비디오 데이타를 저장하기 위해서는 많은 수량의 하드 디스크를 사용해야 하기 때문에 서버 구성에 드는 비용이 높은 점이 있다.
또한 하드 디스크의 비교적 잦은 에러에 대한 대비와 높은 입출력 처리량을 얻기 위하여 RAIDs(Redundant Arrays of Inexpensive Disks) 기법을 이용할 경우 에러에 대한 복구 시간이 비교적 길며, 복구 처리시 시스템의 프로세싱 능력에 많은 영향을 줄 수 있어 실시간 처리를 완벽하게 보장할 수 없다.
따라서 실시간 처리를 보장하기 위해서는 중앙처리장치의 처리 능력 중 복구를 위한 능력을 항상 예약해 두어야할 뿐만 아니라, 디스크의 짧은 오류간 평균 시간(Mean Time Between Failure: MTBF)에 따른 불안정성으로 인해 유지 보수 측면에서 볼때 불필요한 오버헤드가 증가되는 문제점이 있다.
따라서 본 발명은 상기에 언급한 바와 같은 종래 문제점들을 감안하여, 하드 디스크 보다 저렴한 가격으로 많은 비디오 데이타를 저장할 수 있음은 물론 긴 오류간 평균 시간(MTBF)을 가지는 광 디스크를 비디오 데이타 저장 매체로 사용한 주문형 비디오 서버와, 이에 따른 데이타 처리방법을 제안하는데 그 목적이 있다.
이와 같은 목적을 달성하기 위해 본 발명에서는 주문형 비디오 서버로 다수개의 광 디스크 중 가입자가 서비스 받고자 하는 부분의 데이타가 저장되어 있는 광 디스크를 광 디스크 드라이브에 자동 교환 시켜주는 수 개의 쥬크 박스와; 상기 쥬크 박스에서 메모리로의 로딩(쥬크 박스-메모리 로딩)과, 상기 메모리에서 공유 디스크부로의 로딩(메모리-공유디스크 로딩)을 수행하는 생산자 프로세서와; 상기 생산자 프로세서를 통해 입력되는 비디오 데이타를 저장하는 공유디 스크부와; 상기 공유 디스크부에 저장된 비디오 데이타 및 소비자 디스크부에 저장된 비디오 데이타를 로딩하여 가입자에게 전송하는 소비자 프로세서와; 상기 소비자 프로세서 제어하에 쥬크 박스 내의 광 디스크에 저장되어 있는 모든 비디오 데이타의 일정 부분을 상주시키기 위한 있는 소비자 디스크부; 및 가입자에 대한 정보 및 상기 쥬크 박스에 대한 정보를 저장/관리하는 운영 센터를 포함하는 서버를 제공한다.
또한 상기 서버를 제어하기 위해, 쥬크 박스에 원 소스 데이타를 저장하는 과정과, 상기 쥬크 박스에 저장된 데이타를 로딩한 후, 공유 디스크부에 저장하는 과정 ; 및 상기 공유 디스크부에 저장된 데이타를 로딩하여 네트워크 상으로 전송하는 과정을 포함하는 제어방법을 제공한다.
이하 본 발명에서 사용하려 하는 광 디스크와 이를 광 디스크 드라이브로 자동 교환해주는 쥬크 박스에 대해 설명하면 다음과 같다.
상기에서 언급한 바와 같은 장점을 가지는 광 디스크는 하드 디스크와 비교할 때 접근시간(access time)이 비교적 크고, 많은 광 디스크를 사용할 때 자동적으로 광 디스크를 광 디스크 드라이브에 교체 삽입시켜 주는 쥬크 박스를 이용해야만 한다.
이 때 쥬크 박스는 광 디스크 교환 시간이 약 8초∼12초(최대 12초)로 매우 크다는 단점이 있으나, 본 발명에서는 이 단점을 보완하는 방식 또한 제안하기 때문에 물론 문제는 되지 않으며 상기 보완 방식은 다음 부분에서 상세히 설명하기로 한다.
이하 본 발명의 일실시예를 첨부된 도면을 참조하여 상세히 설명하며, 종래와 같은 구성은 동일부호를 부여하여 설명한다.
본 발명에서 제안하는 광 디스크를 저장매체로 한 주문형 비디오 서버의 구조는 제2도와 같이 개략적으로 도시할 수 있는 바, 이는 원 소스(source)의 비디오 데이타를 저장한 다수개의 광 디스크(도면에는 도시하지 않음)와, 상기 다수개의 광 디스크를 포함하고 있으며, 상기 광 디스크중 가입자가 서비스 받고자 하는 부분의 데이타가 저장되어 있는 광 디스크를 광 디스크 드라이브에 자동 교환 시켜주는 수 개의 쥬크 박스(10)와; 상기 쥬크 박스(10)에서 로딩된 데이타를 저장하면서 쥬크 박스에서 메모리로의 로딩(쥬크 박스-메모리 로딩)과, 상기 메모리에서 공유 디스크부로의 로딩(메모리-공유디스크 로딩)을 수행하는 생산자 프로세서(20)와; 상기 생산자 프로세서(20)를 통해 입력되는 비디오 데이타를 저장하는 공유 디스크부(30)와; 상기 공유 디스크부(30)에 저장된 비디오 데이타 및 소비자 디스크부(50)에 저장된 비디오 데이타를 로딩하여 가입자에게 전송하는 소비자 프로세서(40)와; 상기 소비자 프로세서(40) 제어하에 쥬크 박스(10) 내의 광 디스크에 저장되어 있는 모든 비디오 데이타의 일정 부분을 상주시키기 위한 소비자 디스크부(50); 및 가입자에 대한 정보 및 상기 쥬크 박스(10)에 대한 정보를 저장/관리하는 운영 센터(2)를 포함한다.
이 때 상기 생산자 프로세서(20)와, 소비자 프로세서(40)는 중앙처리장치(CPU)(a, c)와, 메모리(b, d)를 포함하고, 소비자 프로세서(40)는 필요에 따라 소비자 디스크부(50)인 자신의 고유 하드 디스크를 가질 수도 있고 가지지 않을 수도 있다.
그리고 기존 구성과 비교해 볼 때 상기 각 프로세서(20, 40)들은 기존 스케줄러(3)가 수행하던 일을 세분화하여 수행하는 것과 일맥 상통하고, 하드 디스크부(1)는 쥬크 박스(10)로 대체한 것이며, 운영 센터(2) 역시 비디오 서버의 구성에 포함할 수도 있고 포함하지 않을 수도 있다.
상기와 같이 구성된 주문형 비디오 서버의 동작을 간략히 보면, 서비스 진행 및 가입자의 요구가 있을 시 이에 대한 서비스 제공은 먼저 생산자 프로세서(20)에 의해 가입자가 원하는 부분의 데이타가 쥬크 박스(10)에서 로딩되며, 이 비디오 데이타는 다시 생산자 프로세서(20)의 제어하에 메모리 블럭으로 나뉘어져 공유 디스크부(30)에 저장된다.
상기 공유 디스크부(20)에 저장된 비디오 데이타는 다시 소비자 프로세서(40)에 의해 메모리 로딩되어 데이타를 요구한 가입자에게로 전송된다.
상기와 같은 과정을 거쳐 가입자에게 전송되는 비디오 데이타는 딜레이 됨이 없이 1.5Mbps가 보장되어야 만 하는데, 본 발명 시스템의 성능은 쥬크 박스에서의 광 디스크 교환 시간에 크게 영향을 받는다.
평균적으로 어떤 특정한 화일을 접근하기 위해 광 디스크 오토체인저가 알맞는 디스크를 교환하는데 걸리는 시간은 약 10초가 소요되며, 이는 실시간 시스템에서 새로운 가입자 요구에 대한 서비스를 시작하는데 큰 제한이 된다.
따라서 이 교환 시간을 은폐하기 위한 해결책으로 하나의 쥬크 박스 내에 복수개의 광 디스크 드라이브를 장착하여 하나의 드라이브가 비디오 데이타를 전송하는 동안 다른 드라이브는 또다른 광 디스크를 교환하도록 하므로써, 데이타의 로딩과 광 디스크 교환을 동시에 독립적으로 수행할 수 있게 한다.
즉, 이는 쥬크 박스의 긴 광 디스크 교환 시간을 감추는 효과를 얻을 수 있어 결과적으로 생산자는 유휴시간(idle time)없이 데이타를 로딩할 수 있게 된다.
참고로 디스크에서 데이타를 로딩하는 방식을 설명하면 이는 쥬크 박스(10)의 광 디스크에서 생산자 프로세서(20) 내의 메모리(b) 버퍼로의 전송인 쥬크 박스-메모리 로딩과, 생산자 프로세서(20)의 메모리(b) 버퍼에서 공유 디스크부(30)로의 전송인 메모리-공유 디스크 로딩인데, 생산자 프로세서(20)는 쥬크 박스-메모리 로딩 및 메모리-공유 디스크 로딩을 수행(두 로딩 과정을 합하여 디스크 로딩이라 정의 한다)하고, 쥬크 박스(10)의 드라이브는 쥬크 박스-메모리 로딩과 광 디스크 교환을 수행하므로, 생산자 프로세서(20)와 쥬크 박스(10)의 드라이브가 동시에 관계되는 부분은 쥬크 박스 메모리 로딩 시간이다.
따라서 상기에서도 언급한 바와 같이 가장 효율적으로 디스크를 로딩하는 형태는 디스크 로딩과 디스크 교환을 각각 독립적으로 수행하는 것으로써, 쥬크 박스 대수 J와 드라이브 수 Jd대해 가장 효율적인 디스크 로딩 수행 형태를 제3도를 참조하여 상세히 설명하면 하기와 같다.
쥬크 박스 대수 J와 드라이브 수 Jd인 시스템의 전체 드라이브 갯수는 J×Jd가 되며, 이 드라이브들은 도면에 나타난 바와 같이 각기 정해진 시간 단위에서 차례로 디스크 로딩(Djm+ Dmd= DL)을 수행한다.
이 때 도면에서 실선은 쥬크 박스-메모리 로딩(Djm)과 광자기 디스크 교환을 번갈아 수행하는 쥬크 박스의 광자기 디스크 드라이브의 동작(Js)을 나타내고, 점선은 쥬크 박스-메모리 로딩과 메모리-공유 디스크 로딩을 번갈아 수행(DL)하는 생산자 프로세서의 동작을 나타낸다.
생산자 프로세서는 각 드라이브에 대해 차례로 쥬크 박스-메모리 로딩을 수행하고 각 드라이브들은 동일한 쥬크 박스내 혹은 다른 쥬크 박스 내 다른 라이브에 대한 로딩 혹은, 디스크 교환이 일어날 때 자신의 광자기 디스크교환을 수행하므로써 교환 시간을 은폐시키는 효과를 가져온다.
즉, 도면에 나타난 바와 같이 드라이브1 ∼ 드라이브 J × Jd간 디스크 로딩(DL)은 연속적으로 수행되는 것이다.
이렇게 각 쥬크 박스 드라이브와 생산자 프로세서가 유휴시간 없이 로딩을 수행할 때 Djm+ Js시간 동안 J × Jd번의 다스크 로딩(DL)이 수행되므로 다음과 같은 식 이 성립된다.
그리고 최대 서비스 가능 가입자수를 nmax, nmax가입자 수에 대한 디스크 로딩에 걸리는 시간을 로딩 주기 T라 정의하면, 로딩 주기 T동안 T/DL번의 디스크 로딩이 일어나므로 T는 T/DL개의 슬롯으로 나뉘고, 이 각각의 슬롯을 로딩 슬롯이라 일컬는다.
따라서 전체 로딩 슬롯의 갯수가 바로 최대 서비스 가능 가입자 수가 되므로 아래와 같은 식이 성립된다.
이상과 같은 방식으로 광 디스크 교환 및 로딩을 독립적으로 수행하게 되면 쥬크 박스(10)를 사용하므로 인해 야기되는 딜레이는 극복할 수 있다.
아울러 쥬크 박스(10)를 본 서버에 적용하기 위해 쥬크 박스에서의 가장 효율적인 저장 방식을 설명하면, 비분산 저장방법과 분산 저장방법을 들수 있는데, 비분산 저장방법은 하나의 비디오 데이타가 한 쥬크 박스 안에 있는 동일한 광자기 디스크 상에 연속적으로 저장되는 방식이고, 분산 방식은 하나의 비디오 데이타를 여러개의 블럭으로 나누어 각각 다른 쥬크 박스 안의 여러 광자기 디스크 상에 분산하여 저장하는 방식이다.
이들은 각기 장.단점을 가지는데, 비분산 방식은 분산 방식과 비교할 때 한 비디오 데이타의 블럭들이 물리적으로 연속되어 저장되므로, 하나의 비디오 데이타의 블럭들이 해당 쥬크 박스의 하나의 드라이브에 의해 계속 로딩되기 때문에, 가입자의 서비스 요구에 대한 어드미션이 저장 장소에 따라 제한을 받는다는 단점이 있는 반면, 비디오 데이타에 대한 삽입/삭제, 연산과 관리 측면에서 용이한 장점이 있다.
분산 방식은 비분산 방식과 비교할 때 비디오 데이타가 물리적으로 연속적이지 않고 산별적이기 때문에, 별도의 처리가 되지 않는 한 서비스 시작 지연이라는 단점이 있지만, 가입자 요구의 수용이 요구의 패턴에 의존적이지 않는다는 장점이 있다.
그리고 상기 서비스 시작 지연은 소비자 디스크부(50)에 시작 블럭을 미리 저장하여 서비스하므로써 보상 가능한 방식이 있는 바, 이 또한 하기에서 상세히 설명하겠다.
이상과 같은 각 저장방식을 비디오 서버 시스템 설계자가 자신의 시스템 상태를 판별하여 가장 적합한 방식을 선택해 사용하면 된다.
또한 공유 디스크부(30)에서의 효율적인 저장방법을 보면, 본 발명에서 공유 디스크로 사용되는 하드 디스크는 생산자 프로세서(20)가 디스크 로딩시 광 디스크로부터 전송한 데이타 블럭들을 임시 저장하는데 쓰이는 바, 이 데이타 블럭들은 광 디스크와 하드 디스크의 각기 다른 성능과 실시간 서비스의 조건을 만족시키기 위해 다시 여러개의 작은 블럭들(메모리 블럭)로 나뉘어 소비자 프로세서(40) 내의 메모리로 로딩된다.
이 때 상기 소비자 프로세서(40) 측으로 메모리 로딩시 디스크 헤더의 움직임을 최소화하는 방법으로 생산자 프로세서(20)가 공유 디스크부(30)에 데이타 블럭들을 저장시키는 것이 바람직한데, 이는 소비자 프로세서(40)내의 메모리 블럭 로딩 순서에 맞추어 생산자 프로세서(20)가 공유 디스크부(30)에 각 비디오의 메모리 블럭들을 머징시키면 된다.
이상과 같이 소비자 프로세서(40)가 공유 디스크부(30)의 데이타 탐색시간을 줄일 수 있도록 하는 공유 디스크부(30) 내의 저장 방법은 오프라인(off-line)머징과, 온라인(on-line)머징과, 하이브리드(hybrid)머징의 세 가지 방식으로 구현할 수 있으며, 이 방법 또한 상기 쥬크 박스에서의 저장 방식처럼 사용자가 자신의 시스템에 적합하다고 생각되는 방식을 적용하면 된다.
각 방식을 설명하면 첫째, 오프라인 머징 방식은 서버에서 동시에 수용 가능한 최대 가입자 수에 대한 모든 디스크 블럭들을 광자기 디스크에서 생산자 프로세서(20) 내의 메모리 버퍼로 전송한 후, 이 디스크 블럭들을 메모리 블럭으로 나누어 미리 결정된 소비자 프로세서(40) 내의 메모리 로딩 순서에 맞게 차례로 공유 디스크부(30)에 머징시키므로써 소비자 프로세서(40)로 하여금 디스크 탐색 작업 없이 순차적으로 메모리 블럭들을 로딩할 수 있도록 하는 방법이다.
이와 같은 오프라인 머징 방법은 생산자의 메모리 입/출력 버퍼 크기가 매우 많이 요구되어야 하는 점은 있지만 메모리 로딩 시 디스크 탐색을 제거한 만큼 시스템 성능에 기여하는 잇점이 있다.
둘째, 온라인 머징 방법은 하나의 디스크 블럭을 광 디스크로부터 생산자 프로세서(20) 메모리 버퍼에 올린 후, 이 디스크 블럭을 메모리 블럭으로 나누어 공유 디스크부(30)에 로딩하는 방법이다.
이 방식은 상기의 오프라인 머징 방법과는 달리 메모리-공유 디스크 로딩시 공유 디스크부(30) 상의 알맞는 위치를 찾기 위한 디스크 탐색 시간이 필요하게 되므로 오프라인 머징 방법보다 성능 저하는 있지만, 생산자 프로세서(20) 내의 메모리 버퍼에 디스크 블럭 하나만을 올린 후, 공유 디스크부(30)에 바로 로딩하기 때문에 디스크 블럭 크기 만큼의 메모리 버퍼만 있으면 되는 잇점이 있다.
세째, 하이브리드 머징 방법은 상기 오프라인 머징 방법과 온라인 머징 방법의 절충 형태로써, 이 방식에서는 전체 디스크 블럭들을 한번에 로딩할 디스크 블럭 크기의 여러개 소그룹으로 나누고, 상기 나눈 소그룹을 생산자 프로세서(20)에서 메모리 버퍼로 전송한 다음, 상기 전송된 소그룹을 메모리 블럭 단위로 나누어 공유 디스크부(30)로 로딩하는 방법이다.
따라서 이는 오프라인 방법보다는 적고 온라인 방법보다는 많은 메모리 요구량을 가지면서 온라인 방법보다 적은 디스크 탐색으로 시스템 성능 향상을 가지는 잇점 이 있다.
아울러 본 서버에 적용된 쥬크 박스에 비디오 데이타를 저장하므로 인해 광 디스크 교환 시간 및 로딩시간으로 인한 가입자 반응 시간이 길어질 수도 있는 점을 보상하기 위한 방법으로 제시된 시작 블럭 저장방법을 설명하며, 이 방법은 상기 분산저장 방법에서의 지연 해소를 위한 방법으로 언급한 바 있다.
본 발명에 따른 주문형 비디오 서버 시스템에서 가입자가 새로운 요구를 한 후 이에 대한 서비스가 시작되기까지의 반응 시간은 생산자 프로세서(20)가 쥬크 박스(10) 안에 있는 해당 광자기 디스크를 광자기 디스크 드라이브에 교체 삽입하고, 상기 교체 삽입된 디스크의 디스크 로딩을 통해 소비자 프로세서(40)에게 넘겨준 후, 소비자 프로세서(40)가 메모리 로딩, 네크워크 로딩을 하는 과정 동안의 시간이 된다(여기서 메모리 로딩은 공유 디스크부(30)에서 소비자 프로세서(40) 내의 메모리로 데이타를 로딩함을 의미하고, 네트워크 로딩은 상기 메모리의 데이타를 네트워크 어댑터를 통해 가입자에게로 전송하는 것을 의미한다).
이와 같은 반응시간은 다른 가입자를 위하여 생산자와 소비자가 서비스하고 있을 때에는 이 초기 반응 시간이 더욱 길어질 수 있으며 이중 가장 긴 시간을 차지하는 것은 쥬크 박스 내 광자기 디스크 교환 시간이다.
이를 보완하기 위한 방법으로 쥬크 박스(10)에 저장된 모든 비디오 데이타에 대한 적정한 양의 시작 블럭을 소비자 디스크부(50)에 저장하여 소비자의 요구에 대해 보다 빠른 시간 내에 반응할 수 있도록 한다.
이는 즉, 가입자 요구시 쥬크 박스(10)에서 데이타를 로딩하는 것이 아니라, 곧바로 소비자 디스크부(50)를 통해 서비스를 받을 수 있도록 하는 것이다.
이 때 시작 블럭의 크기는 시작 블럭의 서비스 시간 동안 쥬크 박스(10)에 저장된 다음 블럭을 정상적으로 서비스 할수 있는 상태를 보장하기 위한 최소한의 데이타 양으로 결정한다.
시작 블럭을 서비스하는 시간은 다음 블럭이 다른 가입자를 위한 서비스를 수행 중인 프로세서의 블럭들과 함께 스케줄링되어 계속적으로 서비스 가능한 상태가 되기까지의 시간보다 길거나 같은 조건을 만족해야 한다.
그러므로 새로운 가입자의 요구가 발생하면 이 가입자에 대하여 서비스가 가능한 슬롯이 있는지를 체크하여 해당 슬롯이 없으면 이 가입자의 요구를 거부하고, 만약 해당 슬롯이 있으면 생산자 프로세서(20)는 그 가입자에 대한 서비스를 준비하고(해당 광자기 디스크를 쥬크 박스의 광자기 디스크 드라이브로 옮기는 작업을 의미함), 그동안 소비자 프로세서(40)는 소비자 디스크부(50) 내의 시작 블럭을 가지고 서비스를 시작한다.
또한 상기와 같이 소비자 디스크부(50)에 시작 블럭을 저장하여 가입자 요구에 따른 반응시간을 최소화시키는 것과 유사하게 쥬크 박스(10) 내에 저장된 모든 비디오 데이타의 일정부분을 블럭 단위로 소비자 디스크부(50)에 저장하여, 가입자의 임시접근제어요구(Temporal Access Control : TAC)에 대한 빠른 반응 시간을 보장해 줄 수가 있는데, 이 때 상기 모든 비디오 데이타의 일정부분을 블럭단위로 저장하는 방식을 상세히 설명하면 다음과 같다.
비디오 서버에 '영화1'이 저장되어 있다면, '영화1'의 어떤 블럭들은 광자기 디스크에 저장되며, 나머지 블럭들은 소비자 디스크에 저장된다.
이를 도면으로 나타내보면 제4도와 같이 도시 할 수 있는 바, 빗금친 부분은 소비자 디스크에 상주될 블럭을 표시한 것이고, 나머지 부분은 광 자기 디스크에 저장되면서 생산자 프로세서의 디스크 로딩을 통하여 공유 디스크로 옮겨져야할 블럭들을 표시한 것이다.
'영화1'은 '블럭1' 부터 '블럭m'('영화1'의 마지막 블럭) 까지 저장될 것이며 제4도는 이중 일부분만을 확대하여 도시한 것이다.
임시 접근 제어 요구가 발생하지 않은 경우에도 생산자 프로세서는 빗금치지 않은 블럭들만을 공유 디스크로 로딩하고, 소비자 프로세서는 현재 로딩할 블럭이 공유 디스크부에 있는지 아니면 소비자 디스크부에 있는지를 판단하여 데이타 블럭을 메모리 로딩한다.
임시 접근 제어 요구가 발생한 경우에는 생산자 프로세서와 소비자 프로세서의 데이타 로딩 제어방식에 변화가 생기는데, 이를 보다 상세히 설명하면 하기와 같다.
'영화1'을 시청하고 있는 '사용자A'로부터 임시 접근 제어 요구가 발생하면 소비자 프로세서는 건너뛸 위치(소비자 디스크부에 상주된 블럭, 즉 빗금친 블럭들 중 하나)를 결정하여 상기 소비자 디스크내에 상주된 블럭으로 서비스를 한다.
만약 건너뛸 위치가 '블럭K'라면 생산자 프로세서는 같은 로딩주기에 '영화1'의 '블럭K+1'을 공유 디스크로 디스크 로딩하여 다음 주기에서 '사용자A'의 데이타가 끊어짐 없이 제공되어 질 수 있도록 한다.
이렇게 하므로써 임시접근제어요구에 따른 디스크 로딩에 소요되는 시간을 소비자 디스크부에 저장되어 있는 블럭으로 대체하여 빠른 반응을 할 수 있게 한다.
그리고 상기 일정부분의 블럭단위의 크기는 일정부분 블럭의 서비스 시간 동안 쥬크 박스(10)에 저장된 다음 블럭을 정상적으로 서비스 할수 있는 상태를 보장하기 위한 최소한의 데이타 양으로 결정한다.
상기 방식은 임시 접근 제어 요구가 없는 경우와 임시 접근 제어가 있는 경우 각 공유 디스크부(30)로 로딩하는 방법이 약간 다르다.
임시 접근 제어 요구가 없는 경우에는 일련의 비디오 데이타에 대한 시퀀스가 유지되기 때문에 생산자 프로세서(20)는 소비자 디스크부(30)에 저장되어 있지 않는 데이타 블럭을 생산하게 된다.
그러므로 생산자 프로세서(20)는 해당 데이타 블럭이 소비자 디스크부(50)에 없는 경우에는 그 블럭을 쥬크 박스(10)에서 부터 공유 디스크부(30)로 로딩하고, 만약 해당 블럭이 소비자 디스크부(50)에 있는 경우에는 그 다음 블럭을 쥬크 박스(10)에서 공유 디스크부(30)로 로딩한다.
소비자 프로세서(40)는 공유 디스크부(30)로부터 데이타를 로딩하다가 소비자 디스크부(50)에 있는 데이타 블럭을 네트워크를 통해 전송해야할 때에는 소비자 디스크부(50)를 접근하고 다음 블럭은 공유 디스크부(30)로부터 가져오게 된다.
임시 접근 제어 요구가 발생한 경우에는 공유 디스크부(30)에 연속되어 저장된 데이타 대신에 소비자 디스크부(50)로 접근을 시도해야 하며 이 때 건너뛸 블럭은 소비자 디스크부(50)내의 데이타 블럭 중 가입자가 요구한 데이타에 시간적으로 가장 근접한 데이타 블럭이 되어야 한다.
물론 소비자 프로세서(40)가 소비자 디스크부(50) 내의 상주 데이타 블럭을 소비하는 동안에 생산자 프로세서(20)는 이후에 필요한 데이타 블럭을 쥬크 박스(10)에서 공유 디스크부(30)로 로딩해야 하며, 소비자는 소비자 디스크내의 상주 블럭을 모두 소비한 후에는 다시 공유 디스크로부터 데이타를 로딩해야 한다.
이를 제5도와, 제6도에 도시된 순서도를 보면서 상세히 설명하며, 본 순서도에서 설명을 용이하게 하기 위해 사용한 변수들의 정의를 표 1에 기재하였다.
(주) 상기 액티브(Active)한 가입자 : 서버의 어드미션 컨트롤을 통해 슬롯을 할당받은 가입자를 의미함.
제5도(a)는 생산자 프로세서(20)에서 데이타를 로딩하는 과정을 나타내는 순서도로, 메모리(c)(이 때 메모리 부분 억세스는 메시지 큐의 억세스를 의미함)를 억세스하여 새로이 어드미션을 요구한 가입자 및 임시접근제어요구를 요청한 가입자가 존재하는가의 여부를 물어 존재하면 상기 각 작업을 요청한 가입자에 대해 어드미션 작업 및 임시접근제어요구(TAC) 체크를 수행하는 제1단계(S1)와; 상기 작업이 완료되면 이에 대한 어드미션 결과 및 임시접근제어요구 체크 결과를 가입자 장치(STB)와 소비자 프로세서 측으로 전달하는 제2단계(S2)와; 상기 제1단계(S1)에서 판단 결과 메모리(c)에 새로이 작업을 요청한 가입자가 존재하지 않으면 서버에서 액티브(Active)한 각각의 가입자에 대해 디스크 로딩할 블럭을 결정하는 제3단계(S3); 및 로딩할 블럭이 결정되었으면 서버에서 액티브한 각각의 가입자에 대해 디스크 블럭을 로딩하여 공유 디스크에 저장한 후, 상기 각 가입자에 대한 모든 수행이 완료되면 상기 제1단계(S1)로 점프하여 반복 수행하는 제4단계(S4)를 포함한다.
이 때 상기 제1단계(S1)의 메모리(c)는 서비스를 요구하는 가입자에 대한 정보를 순서대로 저장하는데 사용되는 메시지 큐(Queue) 및 이를 어떤 규칙에 따라 저장해 놓는 연결 리스트(Linked Lists)로 일부 이용되는데, 생산자 프로세서는 서비스 제공을 위한 작업을 수행하다가 현재 서비스 제공중인 가입자에 대한 처리가 완료되면 큐 메모리를 억세스하여 새로운 가입자가 작업 요청을 하였는지를 조사한다.
따라서 상기 제1단계(S1)와, 제2단계(S2)를 생산자 프로세서의 비주기적 작업이라 일컫으며, 제3단계(S3)와, 제4단계(S4)는 가입자에 대한 서비스 제공으로써 항상 주기적으로 수행해야만 하는 작업이므로 주기적 작업이라 일컫는다.
참고로 상기 가입자에 대한 정보를 저장하는 연결 리스트(Linked Lists) 구조를 보면 이는 제5도(b)에 도시된 바와 같이, 항상 링크의 첫번째 노드를 가리키는 헤더 노드(60)와; 상기 헤더 노드(60)에 연결되어 실제가입자 정보를 저장하는 일반 노드(70)로 구성되며, 이는 포인터를 통해 연속적으로 연결되어 있다.
이 때 노드들은 실제데이타를 저장하는 데이타 저장 영역(61, 71)과, 다음 노드를 가리키는 포인터 값이 저장된 'next영역'(62, 72)으로 구분되며, 일반적으로 상기 헤드 노드의 'next영역'(62)은 실제리스트의 첫번째 노드를 가리키지만 데이타 저장 영역(61)에 있는 값은 무의미한 더미(dummy)값이고, 마지막 노드(노드 N)의 'next 영역'에는 널(NULL)값이 저장되어 링크의 마지막임을 나타낸다.
그리고 본 발명에 적용되는 연결 리스트에 저장되는 데이타로는 가입자의 슬롯 넘버(user), 생산자가 로딩할 블럭을 가리키는 값(sd), 임시접근제어요구에 관한 플래그값(tac)등이 있다.
또한 상기 각각의 가입자에 대하여 디스크 로딩할 블럭을 결정하는 제3단계(S3)의 상세 과정을 보면 이는 제5도(c)에 도시된 바와 같이, 링크의 헤드(head) 값을 노드를 가리키는 포인터(X)값으로 대입(X = head) 한 후, 다음 노드를 리딩할 수 있도록 포인터를 이동(X = X - next)시킨다.
이는 상기에서도 언급한 바와 같이 실제정보는 헤드 노드의 다음 노드부터 저장되어 있기 때문에 항상 다음 노드부터 리딩하도록 하기 위해서이다 ---- 제1단계(T1); 상기와 같은 상태에서 가입자에 의한 임시접근제어요구가 발생하였는가(X.= y ?)의 여부를 판별 한후 ---- 제2단계(T2); 상기 단계(T2)에서 임시접근제어요구가 발생하였으면 건너뛸 블럭을 결정(k = hop(X))하고, 상기 결정된 값(k)에 1을 더하여(k+1) 생산자 프로세서(20)가 쥬크 박스(10) 내의 비디오 데이타를 공유 디스크부(30)로 로딩(쥬크박-메모리 로딩 + 메모리-공유 디스크부 로딩 = 디스크 로딩)할 시 다음 블럭을 로딩할 수 있도록 한다(X.= k+1) ---- 제3단계(T3); 상기 단계(T2)에서 판단결과 임시접근제어요구가 발생하지 않았으면 현재 생산자 프로세서가 로딩할 블럭(X.+ 1)이 소비자 디스크부(50) 내에 저장되어 있는가(Where(X.+ 1) == CD ?)의 여부를 판단한 후, 저장되어 있지 않으면 상기 로딩할 블럭을 가리키는 값(X.+ 1)(상수값임)을 로딩할 블럭값((X.)변수임)으로 대입하고(X.= X.+ 1) ---- 제4단계(T4); 상기 단계(T4)에서 판단결과 로딩할 블럭(X.+ 1)이 소비자 디스크부(50)에 저장되어 있는 경우에는 상기 로딩할 블럭 값에 다시 1을 더하여 재 치환(X.= X.+ 2)한다.
이는 생산자 프로세서(20)가 쥬크 박스(10) 측으로부터 비디오 데이타를 로딩할 시 소비자 디스크부(50)에 저장되어 있는 블럭의 다음 블럭을 로딩할 수 있도록 하기 위함이다‥‥‥ 제5단계(T5); 상기 각 단계(T3, T4, T5)에서 어느 한 단계를 완료하면 이 때의 가입자 슬롯 넘버를 찾아 서버에서 수용가능한 최대 사용자 수와 일치하는 가(X.== n)의 여부를 물어, 일치하면 디스크 로딩할 블럭의 결정이 모두 완료되었으므로 다음 작업을 수행할 수 있도록 점프(②번 위치)하고, 일치하지 않으면 일치할 때까지 상기 각 단계들을 반복 수행한다 ---- 제6단계(T6); 상기와 같은 과정을 거쳐 로딩할 블럭이 결정되었으면 각각의 가입자에 대한 디스크 블럭을 로딩하여 공유 디스크에 저장하는 제4단계(S4)를 수행하는 바, 이 과정을 제5도(d)에 도시된 순서도를 참조하여 설명하면, 링크의 헤드(head) 값을 노드를 가리키는 포인터(X)값으로 대입(X =head)하는 제1단계(E1)와; 이어 다음 노드를 리딩할 수 있도록 포인터를 이동(X = X - next)시키는 제2단계(E2)와; 상기 포인터가 가리키는 해당 메모리를 리딩하여 생산자 프로세서가 로딩할 블럭을 찾아 쥬크 박스-메모리 로딩을 수행한 후, 공유 디스크부에 저장(디스크 로딩)하는 제3단계(E3); 및 상기 단계(E3)를 완료한 다음 이 때의 가입자 슬롯 넘버를 찾아 서버에서 수용가능한 최대 사용자 수와 일치하는 가(X.= n)의 여부를 물어, 일치하면 각각의 가입자에 대한 로딩이 완료되었으므로 제1단계(S1)의 ①위치로 점프하는 제4단계(E4)를 포함한다.
이상과 같은 과정을 서비스를 요청한 가입자에 대해 연속적으로 반복 수행하면서 비디오 데이타들을 로딩해 공유 디스크부(30)에 저장한다.
제6도 (a)는 소비자 프로세서(40)에서 데이타를 로딩하는 과정을 나타내는 순서도로, 메모리(d)(이 때 메모리 부분 억세스는 메시지 큐의 억세스를 의미함)를 억세스하여 상기 생산자 프로세서(20) 측에서 입력된 어드미션 결과 및 임시접근제어요구 체크에 대한 결과가 저장되어 있는가의 여부를 판단하는 제1단계(L1)와; 상기 판단결과 저장된 데이타가 존재하면 연결 리스트에 상기 정보를 갱신하는 제2단계(L2)와; 저장된 데이타가 존재하지 않으면 기존에 작업을 요청한 각각의 가입자에 대해 메모리 로딩할 블럭을 결정하는 제3단계(L3)와; 로딩할 블럭이 결정되었으면 각각의 가입자에 대한 디스크 블럭을 공유 디스크로부터 메모리 로딩하는 제4단계(L4); 및 상기 메모리 로딩된 블럭을 가입자에게 전송하는 네트워크 로딩을 수행한 후, 상기 각 가입자에 대한 모든 수행이 완료되면 상기 제1단계(L1)로 점프하여 반복 수행하는 제5단계(L5)를 포함한다.
이 때 상기 제2단계(L2)의 연결 리스트는 생산자 프로세서가 어드미션에 대한 결과를 전달하여 기록할 때 그 값을 저장하는 메모리로, 그 구조는 상기 제6도(a)를 설명할 때 언급하였기에 설명을 생략하며, 데이타 저장 영역에 저장되는 내용을 살펴보면, 가입자의 슬롯 넘버(user), 소비자 프로세서가 로딩할 블럭을 가리키는 값(c), 임시접근제어요구에 관한 플래그값(tac)등이 있다.
그리고 생산자 프로세서가 행하는 바와 같이 소비자 프로세서에서도 상기 제1단계(L1)와, 제2단계(L2)는 비주기적 작업이라 일컫으며, 제3단계(L3) ∼ 제5단계(S5)는 주기적 작업이라 일컫는다.
또한 상기 각각의 가입자에 대하여 메모리 로딩할 블럭을 결정하는 제3단계(L3)의 상세 과정을 보면 이는 제6도(c)에 도시된 바와 같이, 링크의 헤드(head) 값을 노드를 가리키는 포인터(X)값으로 대입(X = head) 한후, 다음 노드를 리딩할 수 있도록 포인터를 이동(X = X - next)시킨다.
이는 상기에서도 언급한 바와 같이 실제정보는 헤드 노드의 다음 노드부터 저장되어 있기 때문에 항상 다음 노드부터 리딩하도록 하기 위해서이다 ---- 제1단계(M1); 상기와 같은 상태에서 가입자에 의한 임시접근제어요구가 발생하였는가(X.= y)의 여부를 판별 한후 ---- 제2단계(M2); 상기 단계(M2)에서 임시접근제어요구가 발생하였으면 건너뛸 블럭을 결정(k = hop(X)) 하고, 소비자 프로세서(40)가 비디오 데이타를 로딩할 수 있도록 상기 결정한 값(k)을 로딩할 블럭 값(X.)으로 치환(X.= k)한다 ---- 제3단계(M3); 상기 단계(M2)에서 임시접근제어요구가 발생하지 않았으면 소비자 프로세서가 다음 블럭을 리딩할 수 있도록 현재 로딩할 블럭 값(X.)에 1을 더하여 재 치환(X.= X.+ 1) 한다 ‥‥‥제4단계(M4); 상기 각 단계(M3, M4)에서 어느 한 단계를 완료하면 이 때의 가입자 슬롯 넘버를 찾아 서버에서 수용가능한 최대 사용자 수와 일치하는 가(X.= n)의 여부를 물어, 일치하면 디스크 로딩할 블럭의 결정이 모두 완료되었으므로 다음 작업을 수행할 수 있도록 점프(④번 위치)하고, 일치하지 않으면 일치할 때까지 상기 각 단계들을 반복 수행한다 ---- 제5단계(M5); 상기와 같은 과정을 거쳐 로딩할 블럭이 결정되었으면 각각의 가입자에 대한 디스크 블럭을 공유 디스크로부터 메모리 로딩하는 제4단계(L4)를 수행하는 바, 이 과정을 제6도(d)에 도시된 순서도를 참조하여 설명하면, 링크의 헤드(head) 값을 노드를 가리키는 포인터(X)값으로 대입(X = head)하는 제1단계(P1)와; 이어 다음 노드를 리딩할 수 있도록 포인터를 이동(X = X - nest)시키는 제2단계(P2)와; 상기 단계(P2)에 이어 해당 노드를 리딩한 후, 소비자 프로세서(40)가 로딩할 블럭(X.)이 소비자 디스크부(50) 내에 저장되어 있는가(Where(X.+ 1) == CD ?)의 여부를 판단한 후, 저장되어 있으면 소비자 디스크부로 접근하고, 그렇지 않으면 공유 디스크부로 접근하는 제3단계(P3)와, 상기 단계(P3)에서 디스크 접근이 완료되면 현재 로딩할 블럭(X.)을 디크로부터 로딩하여 메모리에 저장하는 제4단계(P4); 및 메모리 로딩이 완료되면 이 때의 가입자 슬롯 넘버를 찾아 서버에서 수용가능한 최대 사용자 수와 일치하는 가.(X.== n ?)의 여부를 물어, 일치하면 각각의 가입자에 대한 메모리 로딩이 완료되었으므로 제1단계(L1)의 ③위치로 점프하는 제5단계(P5)를 포함한다.
이상과 같은 과정을 서비스를 요청한 가입자에 대해 연속적으로 반복 수행하면 비디오 데이타들을 로딩해 네트워크 어댑터를 통하여 가입자에게 전송한다.
상기와 같은 방식으로 모든 임시접근제어요구에 따른 처리를 제어하며, 이러한 임시접근제어요구에 관한 대체 방식이 가능한 이유는 임시접근제어를 요구한 가입자도 자신이 원한 곳의 절대위치를 알지 못하고 엠펙과 같은 방식을 사용하는 비디오 데이타에서는 비디오 프레임간 데이타의 압축률이 각기 다르므로 정확한 위치를 제대로 찾기 어렵기 때문이다.
이상에서 상세히 설명한 바와 같이 본 발명은 방대한 비디오 데이타를 저장하기에는 적합하지 않는 하드 디스크의 단점을 보완하기 위해 광 디스크를 비디오 데이타의 저장 매체로 사용하고, 이 광 디스크를 사용하므로 인해 야기되는 광 디스크 교환 시간을 은폐시키는 방법 및 쥬크 박스와 공유 디스크부에 비디오 데이타를 저장시 가장 효율적인 저장이 될 수 있도록 각 저장 방법을 제안하므로써, 현재 급부상하고 있는 주문형 비디오 시스템의 서버구축 비용을 절감시키면서, 데이타의 안정성을 고려하여 전체적인 시스템 성능을 향상시키는 잇점이 있다.

Claims (21)

  1. 원 소스의 비디오 데이타를 저장한 다수개의 광 디스크를 실장하며, 상기 광 디스크 중 가입자가 서비스 받고자 하는 부분의 데이타가 저장되어 있는 광 디스크를 광 디스크 드라이브에 자동 교환 시켜주는 수 개의 쥬크 박스(10)와; 상기 쥬크 박스(10)에서 로딩된 데이타를 저장하면서 쥬크 박스에서 메모리로의 로딩(쥬크 박스-메모리 로딩)과, 상기 메모리에서 공유 디스크부로의 로딩(메모리-공유디스크 로딩)을 수행하는 생산자 프로세서(20)와, 상기 생산자 프로세서(20)를 통해 입력되는 비디오 데이타를 저장하는 공유 디스크부(30)와; 상기 공유 디스크부(30)에 저장된 비디오 데이타 및 소비자 디스크부(50)에 저장된 비디오 데이타를 로딩하여 가입자에게 전송하는 소비자 프로세서(40)와; 상기 소비자 프로세서(40) 제어하에 쥬크 박스(10) 내의 광 디스크에 저장되어 있는 모든 비디오 데이타의 일정 부분을 상주시키기 위한 소비자 디스크부(50) 및; 가입자에 대한 정보 및 상기 쥬크 박스(10)에 대한 정보를 저장/관리하는 운영 센터(2)를 포함하는 것을 특징으로 하는 주문형 비디오 서버.
  2. 제1항에 있어서, 상기 쥬크 박스(10)는 데이타의 로딩과 광 디스크 교환을 독립적으로 수행할 수 있도록, 하나의 쥬크 박스(10) 내에 복수개의 광 디스크 드라이브를 포함하는 것을 특징으로 하는 주문형 비디오 서버.
  3. 주문형 비디오 서버의 제어 방법에 있어서, 쥬크 박스에 원 소스 데이타를 저장하는 과정과; 상기 저장된 데이타를 로딩한 후, 공유 디스크부에 저장하는 과정 및; 상기 공유 디스크부에 저장된 데이타를 로딩하여 네트워크 상으로 전송하는 과정을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  4. 제3항에 있어서, 상기 쥬크 박스에 데이타를 저장하는 방법은, 비디오 데이타에 대한 삽입/삭제, 연산과 관리를 용이하게 할수 있도록, 하나의 비디오 데이타를 한 쥬크 박스 내에 실장된 동일한 광자기 디스크 상에 연속적으로 저장하는 비분산 방법을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  5. 제3항에 있어서, 상기 쥬크 박스에 데이타를 저장하는 방법은, 가입자의 서비스 요구에 대한 어드미션이 저장 장소에 따라 제한을 받지 않도록, 하나의 비디오 데이타를 여러개의 디스크 블럭으로 나누어 각각 다른 쥬크 박스 내에 저장하는 분산 방법을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  6. 제3항에 있어서, 상기 쥬크 박스에 저장된 데이타를 로딩하는 방법은, 서비스 시작시 가입자 반응 시간을 최소화 할수 있도록, 쥬크 박스(10)에 저장된 모든 비디오 데이타의 시작 블럭을 소비자 디스크부(50)에 저장하는 과정과; 가입자의 요구가 있을 시 상기 소비자 디스크부(50)에 저장되어 있는 데이타를 전송해 서비스를 시작하는 과정을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  7. 제6항에 있어서, 상기 시작블럭의 크기는, 시작 블럭의 서비스 시간 동안 쥬크 박스(10)에 저장된 다음 블럭을 정상적으로 서비스 할수 있는 상태를 보장하기 위한 최소한의 데이타 양으로 결정하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  8. 제6항에 있어서, 상기 시작 블럭을 서비스하는 시간은, 다음 블럭이 타 가입자를 위한 서비스를 수행 중인 프로세서의 블럭들과 함께 스케줄링되어 계속적으로 서비스 가능한 상태가 되기까지의 시간보다 길거나 같은 조건이어야 하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  9. 제3항에 있어서, 상기 쥬크 박스에 저장된 데이타를 로딩하는 과정 중 가입자의 임시 접근제어 요구가 발생하였을 시 로딩하는 방법은, 임시접근제어요구에 대한 빠른 반응 시간을 보장 할수 있도록, 쥬크 박스(10) 내에 저장된 모든 비디오 데이타의 일정 부분을 블럭 단위로 소비자 디스크부(50)에 저장하는 과정과, 임시접근 제어요구 발생 유/무에 따라 상기 소비자 디스크부(50)에 저장된 블럭을 이용해 서비스를 시작하는 과정을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  10. 제9항에 있어서, 상기 일정부분의 블럭단위의 크기는, 일정부분 블럭의 서비스 시간 동안 쥬크 박스(10)에 저장된 다음 블럭을 정상적으로 서비스 할수 있는 상태를 보장하기 위한 최소한의 데이타 양으로 결정하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  11. 제3항에 있어서, 상기 쥬크 박스에 저장된 데이타를 로딩하는 과정 중 생산자 프로세서 측에서 데이타를 로딩하는 과정은, 메모리를 억세스하여 새로이 어드미션을 요구한 가입자 및 임시접근제어요구를 요청한 가입자 존재 여부에 따라 작업을 요청한 가입자에 대해 어드미션 작업 및 임시접근제어요구(TAC) 체크를 수행하는 과정(S1)과; 상기 작업이 완료되면 이에 대한 어드미션 결과 및 임시접근제어요구 체크 결과를 가입자 장치(STB)와 소비자 프로세서 측으로 전달하는 과정(S2)과; 상기 과정(S1)에서 판단 결과 메모리에 새로이 작업을 요청한 가입자가 존재하지 않으면 서버에서 액티브한 각각의 가입자에 대해 디스크 로딩할 블럭을 결정하는 과정(S3); 및 로딩할 블럭이 결정되었으면 서버에서 액티브한 각각의 가입자에 대한 디스크 블럭을 로딩하여 공유 디스크에 저장한 후, 상기 각 가입자에 대한 모든 수행이 완료되면 상기 과정(S1)을 반복 수행하는 과정(S4)을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  12. 제11항에 있어서, 상기 각각의 가입자에 대해 디스크 로딩할 블럭을 결정하는 과정(S3)은, 링크의 헤드 값을 노드를 가리키는 포인터 값으로 대입한 후, 다음 노드를 리딩할 수 있도록 하는 과정(T1)과, 상기와 같은 상태에서 가입자에 의한 임시접근제어요구가 발생하였는가의 여부를 판별하는 과정(T2)과; 상기에서 임시접근제어요구가 발생하였을 경우 건너뛸 블럭을 결정하고, 상기 결정된 값을 이용해 생산자 프로세서가 쥬크 박스 내의 비디오 데이타를 공유 디스크부로 로딩(디스크 로딩)할 시 다음 블럭을 로딩할 수 있도록 하는 과정(T3)과; 상기에서 임시접근제어요구가 발생하지 않았을 경우 현재 생산자 프로세서가 로딩할 블럭이 소비자 디스크부 내에 저장되어 있는가의 여부를 판단한 후, 저장되어 있지 않으면 상기 로딩할 블럭을 가리키는 값을 그대로 로딩할 블럭값으로 대입하는 과정(T4)과; 상기 과정(T4)에서 로딩할 블럭이 소비자 디스크부에 저장되어 있는 경우 생산자 프로세서가 쥬크 박스 측으로부터 비디오 데이타를 로딩할 시 상기 소비자 디스크부에 저장되어 있는 블럭의 다음 블럭을 로딩할 수 있도록 하는 과정(T5); 및 상기 각 과정(T3, T4, T5)에서 어느 한 단계를 완료하면 이 때의 가입자 슬롯 넘버를 찾아 서버에서 수용가능한 최대 사용자 수와 일치하는 가의 여부를 물어, 일치하면 다음 과정인 디스크 블럭을 로딩할 수 있도록 하고, 일치하지 않으면 일치할 때까지 상기 각 과정들을 반복 수행하는 과정(T6)을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  13. 제11항에 있어서, 상기 각각의 가입자에 대한 디스크 블럭을 로딩하여 공유 디스크에 저장하는 과정(S4)은, 링크의 헤드 값을 노드를 가리키는 포인터 값으로 대입하는 과정(E1)과; 이어 다음 노드를 리딩할 수 있도록 하는 과정(E2)과; 해당 메모리를 리딩하여 생산자 프로세서가 로딩할 블럭을 찾아 쥬크 박스-메모리 로딩을 수행한 후, 공유 디스크부에 저장(디스크 로딩)하는 과정(E3); 및 상기 단계(E3)후 이 때의 가입자 슬롯 넘버를 찾아 서버에서 수용가능한 최대 사용자 수와 일치하는 가의 여부를 물어, 일치하면 새로운 가입자에 대한 서비스 시작을 위한 과정(S1)으로 점프하는 과정(E4)을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  14. 제3항에 있어서, 상기 쥬크 박스에 저장된 데이타를 로딩하는 과정 중 생산자 프로세서 측에서 데이타를 로딩하는 과정은, 메모리를 억세스하여 생산자 프로세서 측에서 입력된 어드미션 결과 및 임시접근제어요구 체크에 대한 결과가 저장되어 있는가의 여부를 판단하는 과정(L1)과; 상기 저장된 데이타가 존재하면 연결 리스트에 상기 정보를 갱신하는 과정(L2)과; 저장된 데이타가 존재하지 않으면 기존에 작업을 요청한 각각의 가입자에 대해 메모리 로딩할 블럭을 결정하는 과정(L3)과; 로딩할 블럭이 결정되었으면 각각의 가입자에 대한 디스크 블럭을 공유 디스크로부터 메모리 로딩하는 과정(L4); 및 상기 메모리 로딩된 블럭을 가입자에게 전송하는 네트워크 로딩을 수행한 후, 상기 각 가입자에 대한 모든 수행이 완료되면 상기 과정(L1)을 반복 수행하는 과정(L4)을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  15. 제14항에 있어서, 상기 각각의 가입자에 대해 메모리 로딩할 블럭을 결정하는 과정(L3)은, 링크의 헤드 값을 노드를 가리키는 포인터 값으로 대입한 후, 다음 노드를 리딩할 수 있도록 하는 과정(M1)과; 상기와 같은 상태에서 가입자에 의한 임시접근제어요구가 발생하였는가의 여부를 판별하는 과정(M2)과; 상기에서 임시접근제어요구가 발생하였을 경우 건너뛸 블럭을 결정하고, 소비자 프로세서가 비디오 데이타를 로딩할 수 있도록 상기 결정한 값을 로딩할 블럭 값으로 치환하는 과정(M3)과; 상기에서 임시접근제어요구가 발생하지 않았을 경우 소비자 프로세서가 다음 블럭을 리딩할 수 있도록 하는 과정(M4)과; 상기 각 과정(M3, M4)에서 어느 한 단계를 완료하면 이 때의 가입자 슬롯 넘버를 찾아 서버에서 수용가능한 최대 사용자 수와 일치하는 가의 여부를 물어, 일치하면 다음 과정인 메모리 로딩을 수행할 수 있도록 하고, 일치하지 않으면 일치할 때까지 상기 각 과정들을 반복 수행하는 과정(M5)을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  16. 제14항에 있어서, 각각의 가입자에 대한 디스크 블럭을 공유 디스크로부터 메모리 로딩하는 과정(L4)은, 링크의 헤드 값을 노드를 가리키는 포인터 값으로 대입하는 과정(P1)과, 이어 다음 노드를 리딩할 수 있도록 하는 과정(P2)과; 해당 노드를 리딩한 후, 소비자 프로세서가 로딩할 블럭이 소비자 디스크부 내에 저장되어 있는가의 여부를 판단한 후, 저장되어 있으면 소비자 디스크부로 접근하고, 그렇지 않으면 공유 디스크부로 접근하는 과정(P3)과; 디스크 접근이 완료되면 현재 로딩할 블럭을 디스크로부터 로딩하여 메모리에 저장하는 과정(P4); 및 메모리 로딩이 완료되면 이 때의 가입자 슬롯 넘버를 찾아 서버에서 수용가능한 최대 사용자 수와 일치하는 가의 여부를 물어, 일치하면 새로운 가입자에 대한 서비스 시작을 위한 과정(L1)으로 점프하는 과정(P5)을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  17. 제12항 또는 제15항에 있어서, 상기 임시접근제어 요구 발생시 건너뛰는 블럭은 소비자 디스크부내의 데이타 블럭 중 가입자가 요구한 데이타에 시간적으로 가장 근접한 데이타 블럭이어야 하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  18. 제6항 또는 제9항에 있어서, 상기 소비자 디스크부(50)에 저장된 비디오 데이타들의 시작블럭과, 일정부분의 블럭을 이용하여 소비자 프로세서(40)가 데이타를 소비하는 동안에, 생산자 프로세서(27)는 상기 소비되는 데이타 이후에 필요한 데이타 블럭을 쥬크 박스(10)에서 공유 디스크부(30)로 로딩하도록 하고, 소비자 프로세서(40)는 소비자 디스크부(50)에 상주된 블럭을 모두 소비한 후에는 다시 상기 공유 디스크부(30)에 로딩된 데이타를 리딩하여 서비스하는 관계를 유지하도록 하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  19. 제3항에 있어서, 상기 쥬크 박스(10)로부터 로딩한 데이타를 공유 디스크부(50)에 저장하는 방법은, 소비자 프로세서(40) 측에서 상기 공유 디스크부(30) 로딩시 디스크 탐색 시간을 제거할 수 있도록, 현재 서비스 가입자 수에 대한 모든 디스크 블럭들을 광자기 디스크에서 생산자 프로세서(20) 내의 메모리 버퍼로 전송한 후, 상기 전송된 디스크 블럭들을 메모리 블럭으로 나누어 미리 결정된 소비자 프로세서(40) 내의 메모리 로딩 순서에 맞게 순차적으로 공유 디스크부(30)에 머징시키는 오프라인 머징 방법을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  20. 제3항에 있어서, 상기 쥬크 박스(10)로부터 로딩한 데이타를 공유 디스크부(50)에 저장하는 방법은, 생산자 프로세서(20)에 필요로 되는 메모리 크기를 상기 디스크 블럭의 크기만큼으로 최소화시킬 수 있도록, 하나의 디스크 블럭을 광 디스크로부터 생산자 프로세서(20) 메모리 버퍼에 전송한 후, 상기 전송된 디스크 블럭을 메모리 블럭으로 나누어 공유 디스크부(30)에 로딩하는 온라인 머징 방법을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
  21. 제3항에 있어서, 상기 쥬크 박스(10)로부터 로딩한 데이타를 공유 디스크부(50)에 저장하는 방법은, 오프라인 방법보다는 적고 온라인 방법보다는 많은 메모리 요구량을 가지면서 온라인 방법보다 적은 디스크 탐색 시간을 가질 수 있도록, 전체 디스크 블럭들을 한번에 로딩할 디스크 블럭 크기의 여러개 소그룹으로 나누고, 상기 나눈 소그룹을 생산자 프로세서(20)에서 메모리 버퍼로 전송한 다음, 상기 전송된 소그룹을 메모리 블럭 단위로 나누어 공유 디스크부(30)로 로딩하는 하이브리드 머징 방법을 포함하는 것을 특징으로 하는 주문형 비디오 서버 제어방법.
KR1019960011923A 1996-04-19 1996-04-19 쥬크 박스를 적용한 주문형 비디오 서버 및 제어방법 KR100194180B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960011923A KR100194180B1 (ko) 1996-04-19 1996-04-19 쥬크 박스를 적용한 주문형 비디오 서버 및 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960011923A KR100194180B1 (ko) 1996-04-19 1996-04-19 쥬크 박스를 적용한 주문형 비디오 서버 및 제어방법

Publications (2)

Publication Number Publication Date
KR970073108A KR970073108A (ko) 1997-11-07
KR100194180B1 true KR100194180B1 (ko) 1999-06-15

Family

ID=66222854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960011923A KR100194180B1 (ko) 1996-04-19 1996-04-19 쥬크 박스를 적용한 주문형 비디오 서버 및 제어방법

Country Status (1)

Country Link
KR (1) KR100194180B1 (ko)

Also Published As

Publication number Publication date
KR970073108A (ko) 1997-11-07

Similar Documents

Publication Publication Date Title
US5938734A (en) Real time stream server for handling a plurality of real time stream data with different data rates
KR0152486B1 (ko) 중지-재개 지원 방법 및 시스템
US7644136B2 (en) Virtual file system
US7039784B1 (en) Video distribution system using dynamic disk load balancing with variable sub-segmenting
KR100334000B1 (ko) 영상축적배송장치및영상축적배송시스템
US6021464A (en) Real time disk array which guarantees write deadlines by selecting an alternate disk
US6925499B1 (en) Video distribution system using disk load balancing by file copying
KR0149211B1 (ko) 완전 이동 비디오 화일 분배 시스템 및 방법
EP0739136A2 (en) Multi-node media server with efficient work scheduling
US20020157113A1 (en) System and method for retrieving and storing multimedia data
JPH0855137A (ja) メモリバッファ管理方法及びシステム
JPH09163353A (ja) ノードを選択する方法および分散ビデオ・サーバー・システム
JPH10162507A (ja) 同時リード−ライト要求用ビデオサーバスケジューリング
US5799174A (en) Staggered striping in multimedia information systems
Ghandeharizadeh et al. Design and implementation of scalable continuous media servers
US5956488A (en) Multimedia server with efficient multimedia data access scheme
US6643083B2 (en) Method and system for retrieving blocks of data from a storage medium
US20090100188A1 (en) Method and system for cluster-wide predictive and selective caching in scalable iptv systems
KR100194180B1 (ko) 쥬크 박스를 적용한 주문형 비디오 서버 및 제어방법
KR19980033151A (ko) 라이브러리내 화일의 관리 방법 및 라이브러리용 서버 장치
JPH0981491A (ja) ネットワークビデオサーバ、クライアント装置及びマルチメディア情報提供方法
US7421726B1 (en) Method of seamlessly replacing disc-based video streams with memory-based video streams in a video-on-demand system
US6292875B1 (en) Control device for storage device and method of accessing the storage device
Candan et al. An event-based model for continuous media data on heterogeneous disk servers
Cho et al. Scheduling video streams in a large-scale video-on-demand server

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130201

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 17

EXPY Expiration of term