상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 바람직한 일 실시예에 따르면, 방송 프로그램이 설치되어 있는 방송자 또는 청취자 클라이언트로부터 방송 서버 할당 요청 정보를 수신하여 접속할 방송 서버의 주소 정보를 방송자 또는 청취자 클라이언트에 제공하는 정보관리서버; 방송자 클라이언트 또는 청취자 클라이언트의 접속 요청 정보에 응답하여 커넥션을 설정하고, 방송자 클라이언트가 전송하는 방송 스트림 데이터를 해당 청취자 클라이언트에 전송하는 방송 서버; 방송자 클라이언트 또는 청취자 클라이언트가 방송 서버에 접속하거나 접속을 해제할 경우 상기 방송 서버로부터 상태 정보를 수신하여 저장하는 데이터베이스를 포함하되; 방송자 클라이언트에 설치된 방송 프로그램은 방송자의 영상 데이터 또는 로컬 클라이언트에 저장된 영상 데이터와 방송으로 출력하려는 오디오 데이터를 동기 식별자를 포함하는 프로토콜 패킷으로 변환하여 방송 서버에 전송하고, 청취자 클라이언트에 설치된 방송 프로그램은 상기 프로토콜 패킷으로부터 데이터 신호 및 동기 식별자 정보를 추출하여 오디오 신호 및 영상 신호의 동기를 일치시켜 출력하는 것을 특징으로 하는 개인 방송 시스템이 제공된다.
본 발명의 다른 실시예에 따르면, 방송자 스트림을 전송하는 방송자 클라이언트, 방송 스트림을 수신하는 청취자 클라이언트, 방송자 클라이언트와 청취자 클라이언트 사이에서 방송 스트림을 중계하는 방송 서버 및 정보관리서버로 이루어진 시스템에서 상기 방송자 클라이언트 및 청취자 클라이언트에 설치되는 개인 방송용 프로그램에 있어서, 상기 정보관리서버로부터 할당 받은 방송 서버의 주소 정보를 이용하여 해당 방송 서버로의 접속을 수행하는 접속 모듈; 방송될 오디오 신호 및 영상 신호에 동기 식별자를 부여하고, 상기 동기 식별자를 포함하는 미리 설정된 프로토콜 패킷을 생성하여 방송 서버에 전송하는 방송 송신 모듈; 상기 방송 서버를 통해 수신되는 상기 프로토콜 패킷들로부터 오디오 신호 및 영상 신호를 분리하고, 분리된 신호에서 데이터 신호와 동기 식별자 정보를 추출하여 동기 식별자 정보에 상응하여 오디오 신호 및 영상 신호가 출력되도록 동기화를 제어하는 방송 수신 모들을 포함하는 개인 방송용 프로그램이 제공된다.
이하에서, 첨부된 도면을 참조하여 본 발명에 의한 개인 방송 시스템의 바람직한 실시예를 상세하게 설명한다.
도 2는 본 발명의 바람직한 일 실시예에 따른 개인 방송 시스템의 구성을 도시한 도면이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 개인 방송 시스템은 방송 서버(200), 방송자 클라이언트(202), 상태 정보 데이터베이스(204), 정보관리서버(206) 및 청취자 클라이언트(208)를 포함할 수 있다.
도 2에서, 정보관리서버(206)는 방송자로부터 방송 요청 정보를 수신할 경우, 방송자가 접속할 수 있는 방송 서버를 상태 정보 데이터베이스(204)에서 검색하여 접속할 방송 서버의 주소 정보를 제공한다.
또한, 청취자로부터 방송 청취 요청 정보를 수신할 경우, 정보관리서버(206)는 상태 정보 데이터베이스를 검색하여 사용자가 요청한 방송이 제공되는 방송 서버의 주소 정보를 제공한다.
방송자 클라이언트는 정보관리서버(206)에 방송 요청 정보를 전송하여 접속할 방송 서버 주소 정보를 수신하며, 해당 방송 서버를 통해 방송 신호를 송출한다.
정보 관리 서버는 방송자 또는 청취자가 방송 서비스를 요청할 수 있는 웹페이지를 제공할 수도 있으며, 웹페이지는 다른 정보관리서버에 의해 제공될 수도 있다. 또한, 방송 요청을 위한 인터페이스는 웹페이지가 아닌 다른 형식으로, 예를 들어 전용 프로그램과 같은 형식으로 사용자에게 제공될 수도 있을 것이다. 웹페이지에는 방송을 요청하거나 방송의 청취를 요청할 수 있는 메뉴가 구비되며, 해당 메뉴를 통해 방송자 또는 청취자는 방송 서비스를 제공받을 수 있다.
방송자 클라이언트(202)에는 방송 데이터 송출을 위한 프로그램 및 방송 서버와 연동하기 위한 플러그인 프로그램이 설치된다.
종래에 있어서, 방송 프로그램으로 윈앰프가 사용되는 것이 일반적이었으나, 본 발명에서는 음성 및 영상을 동시에 전송할 수 있는 전용 방송 프로그램이 설치된다. 설치된 방송 프로그램은 음성 및 영상 신호에 대한 정보를 포함하는 패킷을 생성하여 방송 서버로 송출한다. 음성 및 영상 신호를 모두 방송 신호로 송출하므로, 방송 프로그램에서 생성하는 패킷 프로토콜 구조는 종래의 윈앰프의 패킷 프로토콜 구조와는 상이하며 이에 대해서는 별도의 도면을 통해 후술하기로 한다.
또한, 방송 프로그램은 음성 및 영상 신호에 동기 식별자를 부가하는 기능을 한다. 영상 및 음성 신호가 모두 방송 서버를 통해 청취자 클라이언트로 전송이 되더라도 양 신호의 동기가 맞지 않을 경우 영상과 음성이 일관성이 없게 출력된다. 따라서, 방송 프로그램은 동기 식별자를 영상 및 음성 신호에 각각 부가한다.
방송 서버(202)는 방송자 클라이언트로부터 제공되는 방송 스트림을 청취자 클라이언트에 제공하는 기능을 한다. 방송 서버는 방송자 클라이언트(200)와 청취자 클라이언트의 커넥션을 유지하고, 방송 스트림이 안정적으로 청취자 클라이언트에 제공될 수 있도록 한다.
방송 서버(202)에서 방송자와 청취자의 커넥션을 유지하고 스트림을 제공하는 방식은 종래와 다르지 않다. 그러나, 본 발명에 의한 방송 서버(202)는 음성 정보 외에 영상 정보를 함께 방송 스트림 정보로 제공하기 때문에, 종래의 샤우트캐스트 서버가 사용될 수는 없다. 본 발명에 의한 방송 서버는 방송자 클라이언트로부터 전용 프로토콜 방식으로 전송되는 패킷을 분석하여 청취자에게 제공할 수 있는 모듈을 구비하고 있다.
또한, 본 발명에 의한 방송 서버(200)는 현재의 상태 정보를 상태 정보 데이터베이스에 실시간으로 제공한다. 방송자로부터 방송 요청이 오거나, 청취자로부터 청취 요청 등이 있을 경우, 방송 서버(200)는 요청 정보를 처리함과 동시에 상태 정보 데이터베이스(204)에 상태 변경 정보를 제공한다.
종래의 샤우트캐스트 서버가 사용되는 방송 시스템 경우, 샤우트캐스트 서버는 상태 변경 정보를 자체적으로만 관리할 뿐 이를 다른 서버 등에 실시간으로 제공하지 못하였다. 따라서, 종래의 방송 시스템에서 방송 서버를 할당할 경우, 정보관리서버가 샤우트캐스트 서버와의 통신을 통해 상태 정보를 파싱(parsing)하여야 했다. 이와 같은 파싱 작업은 번거로운 절차일뿐만 아니라, 주기적으로 이루어지는 바, 실시간으로 방송 서버의 상태 정보를 파악할 수 없는 문제점이 있었다. 그러나, 본 발명에 의하면, 방송 서버(200)에서 상태 변경 정보를 실시간으로 데이터베이스(204)에 제공하므로 보다 효율적인 방송 서버 할당이 이루어질 수 있다.
상태 정보 데이터베이스(204)에는 관리하는 방송 서버 각각의 상태 정보가 저장된다. 본 발명의 바람직한 일 실시예에 따르면, 상태 정보 데이터베이스(204)는 각 방송 서버별로 개설된 방송국의 수, 각 방송국에 접속한 청취자의 수, 방송 서버에 접속한 총 청취자의 수, 방송자의 정보 등을 관리한다.
청취자 클라이언트(208)는 정보관리서버(206)와의 통신을 통해 원하는 방송자가 방송을 하는 방송 서버에 대한 정보를 수신하고, 해당 방송 서버에 접속하여 방송 스트림을 제공받는다.
방송자 클라이언트(202)의 경우와 같이, 청취자 클라이언트(208)에는 영상 및 음성을 수신하여 출력할 수 있는 전용 방송 프로그램이 설치된다. 청취자 클라이언트(208)에 설치된 전용 프로그램은 수신한 영상 및 음성 정보의 동기를 맞추어 출력한다.
도 3a는 본 발명의 바람직한 일 실시예에 따른 청취자 및 방송자 클라이언트에 설치되는 전용 프로그램의 모듈 구성을 도시한 도면이다.
본 발명의 일 실시예에 따른 전용 프로그램은 접속 모듈(300), 방송 송신 모듈(302) 및 방송 수신 모듈(304)을 포함할 수 있다.
도 3a에서, 접속 모듈(300)은 방송자 또는 청취자 클라이언트가 정보관리서버로부터 할당받은 방송 서버에 접속하는 기능을 한다.
본 발명의 일 실시예에 따르면, 정보관리서버는 방송 서버의 주소 정보로 방송 서버의 IP 주소 및 포트 번호 정보를 제공하며, 접속 모듈은 이 정보를 이용하여 방송 서버에 접속한다. 즉, 이 경우 방송 서버의 주소 식별 정보로 IP와 포트만이 사용된다.
본 발명의 다른 실시예에 따르면, 정보관리서버는 주소 정보로 방송 서버의 IP 주소, 포트 번호 및 MP(Mount Point) 정보를 제공하고, 접속 모듈은 이 정보를 이용하여 방송 서버에 접속한다. 방송 서버의 방송 모듈로 아이스캐스트 방식이 이용될 경우, 포트보다 하위의 식별 수단인 MP 정보가 주소 정보에 포함될 수 있을 것이다. MP 정보를 방송자의 아이디로 할 경우, 방송자의 아이디만으로 방송자가 방송을 하고 있는 주소 정보를 쉽게 알 수 있는 장점이 있다.
방송 송신 모듈(302)은 방송자가 방송하고자 하는 정보를 방송 스트림 정보로 변환하고 이를 접속한 방송 서버에 전송하는 기능을 하며, 방송 수신 모듈(304)은 방송 서버로부터 방송 스트림 정보를 수신하여 이를 재생하는 기능을 한다. 방송 전송 모듈(302) 및 방송 수신 모듈(304)의 보다 상세한 구성을 도 3b 및 도 3c를 참조하여 설명하면 다음과 같다.
도 3b는 본 발명의 바람직한 일 실시예에 따른 방송 송신 모듈의 구성을 도시한 블록도이다.
도 3b에 도시된 바와 같이, 본 발명의 바람직한 일 실시예에 따른 방송 송신 모듈은 외부 오디오 신호 변환 모듈(310), 내부 오디오 신호 변환 모듈(312), 오디오 신호 합성 모듈(314), 오디오 신호 변환 모듈(316), 영상 신호 수신 모듈(318), 동기/프로토콜 변환 모듈(320) 및 큐(322)를 포함할 수 있다.
도 3b에서, 외부 오디오 신호 변환 모듈(310)은 마이크를 통해 수신되는 외부의 음원을 수신한다. 마이크를 통해 수신되는 외부 오디오 신호는 대부분 방송자의 음성 정보일 것이며 외부 오디오 신호 변환 모듈(310)은 웨이브 형태의 압축되지 않은 신호로 이를 변환한다.
내부 오디오 신호 변환 모듈(312)은 방송자 클라이언트에 저장되어 있고 방송자가 방송을 통해 출력하려는 오디오 파일을 웨이브 형태의 데이터로 변환하는 기능을 한다. 개인 방송에서, 방송자의 음성 정보 등은 마이크를 통해 입력되나, 음악은 클라이언트에 저장되어 있는 음악 파일을 이용하여 방송자에게 제공되는 것이 일반적이다. 클라이언트에 저장되어 있는 음악 파일은 대부분 MP3와 같은 압축 파일이며, 이러한 압축 파일은 방송자의 음성 정보와 합성될 수 없다. 따라서, 내부 오디오 신호 변환 모듈(312)은 방송되는 음악 파일의 오디오 신호를 웨이브 형태의 정보로 변환하는 것이다.
오디오 신호 합성 모듈(314)은 외부 오디오 신호 수신 모듈(310)에 의해 출력되는 외부 오디오 신호와 내부 오디오 신호 변환 모듈(312)에 의해 변환된 웨이브 형태의 내부 오디오 신호를 합성하는 기능을 한다. 웨이브 신호의 합성은 이미 공지된 기술이므로 이에 대한 상세한 설명은 생략하기로 한다.
오디오 신호 변환 모듈(316)은 오디오 신호 합성 모듈(314)에서 출력되는 웨이브 형태의 신호를 미리 설정된 형식의 음악 파일로 변환하는 기능을 한다. 본 발명의 일 실시예에 따르면, 오디오 신호 변환 모듈(316)은 MP3 또는 ogg 형식의 음악 파일로 웨이브 신호를 변환한다. 웨이브 신호를 MP3 또는 ogg 형식의 정보로 변환하는 기술 역시 공지된 것이므로 이에 대한 상세한 설명은 생략하기로 한다.
영상 수신 모듈(318)은 웹카메라 등으로부터 영상 정보를 수신하는 기능을 한다. 영상 수신 모듈(318)은 외부 영상의 수신뿐만 아니라 방송자 클라이언트에 저장된 영상 파일 정보를 방송을 통해 전송할 수 있는 형태로 변환하는 기능을 수행할 수도 있다.
동기/프로토콜 변환 모듈(320)은 영상 수신 모듈(318)로부터 제공되는 영상 신호 및 오디오 신호 변환 모듈(316)로부터 제공되는 오디오 신호에 동기 식별자를 삽입하는 기능을 한다. 본 발명의 바람직한 실시예에 따르면, 동기/프로토콜 변환 모듈(320)에서 삽입하는 동기 식별자는 타임 스탬프(Time Stamp) 정보일 수 있다.
동기/프로토콜 변환 모듈(320)은 영상 신호 또는 오디오 신호를 수신할 경우, 수신한 신호에 타임 스탬프 정보를 삽입하여 변환된 프로토콜 패킷을 생성한다. 동기/프로토콜 변환 모듈(320)은 도 7a 및 도 7b와 같은 구조의 프로토콜 패킷을 생성한다.
도 7a 및 도 7b는 동기/프로토콜 변환 모듈(320)에서 변환하는 패킷의 구성을 도시한 도면이다.
도 7a를 참조하면, 본 발명의 일 실시예에 따른 프로토콜 패킷은 타입 필드(700), 타임 스탬프 필드(702), 사이즈 필드(704) 및 데이터 필드(706)를 포함할 수 있다.
타입 필드(700)에는 패킷의 타입에 대한 정보가 포함된다. 패킷 타입에는 오디오 패킷, 비디오 패킷, 키프레임 패킷이 있다. 영상 신호는 키프레임을 기준으로 그 변화 정보가 비디오 패킷으로 제공되므로, 비디오 패킷과 키프레임 패킷으로 구분된다. 동기/프로토콜 변환 모듈(320)은 입력되는 신호가 오디오 신호인지, 일반 영상 신호인지 또는 키프레임 신호인지를 판단하여 해당 식별자를 타입 필드에 부가한다.
타임 스탬프 필드(702)에는 동기/프로토콜 변환 모듈(320)에서 부여하는 타이 스탬프 정보가 기록된다. 본 발명의 일 실시예에 따르면, 동기/프로토콜 변환 모듈(320)은 방송자 클라이언트의 로컬 타임을 타임 스탬프 정보로 패킷에 기록한다. 그러나, 이와 다른 시간 값이 타임 스탬프 정보로 활용될 수 있다는 것은 당업자에게 있어 자명할 것이다.
사이즈 필드(704)에는 데이터의 사이즈에 대한 정보가 포함되며, 사이즈 정보는 주로 에러를 체크할 때 이용된다.
데이터 필드(706)에는 오디오 신호 변환 모듈(316) 또는 영상 수신 모듈(318)에서 출력되는 오디도 또는 영상 데이터가 포함된다.
도 7b는 본 발명의 다른 실시예에 따른 프로토콜 패킷의 구성을 도시한 도면이다.
도 7b에는 프레임 카운트 필드(708)가 더 포함된 프로토콜 패킷이 도시되어 있다. 프레임 카운트 정보는 오디오 신호 및 영상 신호의 동기화 이외에 다른 데이터의 동기화에 이용되는데, 이에 대한 상세한 설명은 별도의 도면을 통해 후술하기로 한다.
도 3c는 본 발명의 바람직한 일 실시예에 따른 방송 수신 모듈의 구성을 도시한 블록도이다.
도 3c에 도시된 바와 같이, 본 발명의 일 실시예에 따른 방송 수신 모듈은 방승 스트림 수신 모듈(330), 신호 분리 모듈(332), 오디오 신호 디코딩 모듈(334), 동기화 모듈(336) 및 영상 신호 디코딩 모듈(338)을 포함할 수 있다.
방송 스트림 수신 모듈(330)은 방송 서버로부터 제공되는 방송 스트림 데이터를 수신하는 기능을 한다. 방송 서버에서 제공되는 스트림 데이터의 패킷 구조는 도 7a 또는 도 7b와 같은 구조를 가지며, 방송 서버는 오디오 신호의 메타 정보도 함께 전송한다.
신호 분리 모듈(332)은 방송 스트림 수신 모듈(330)이 수신한 방송 스트림 신호를 영상 신호 및 오디오 신호로 분리한다. 신호 분리 모듈은 수신한 패킷의 타입 정보를 통해 오디오 신호 및 영상 신호를 분리할 수 있을 것이다. 신호 분리 모듈(332)은 오디오 신호 및 비디오 신호를 분리하여 별도의 데이터 큐에 저장하고, 오디오 패킷 및 비디오 패킷에서 타임 스탬프 정보 및 데이터 정보만을 추출하여 오디오 신호 디코딩 모듈 및 영상 신호 디코딩 모듈에 각각 제공한다.
오디오 신호 디코딩 모듈(334)은 신호 분리 모듈(332)로부터 수신한 오디오 신호를 디코딩한다. 오디오 신호는 일반적으로 MP3 또는 ogg 포맷으로 압축되며, 오디오 신호 디코딩 모듈(334)은 오디오 신호의 압축 포맷에 따라 이에 상응하는 디코딩 알고리즘으로 오디오 신호를 디코딩한다.
오디오 신호 디코딩 모듈(334)은 오디오 패킷의 디코딩 시 디코딩되는 패킷의 타임 스탬프 정보를 동기화 모듈(336)에 제공하고, 동기화 모듈(336)은 영상 신호 디코딩 모듈이 오디오 신호의 타임 스탬프에 상응하는 영상 신호만을 출력하도록 제어한다.
영상 신호 디코딩 모듈(338)은 동기화 모듈(336)에 제어에 따라 해당 타임 스탬프의 영상 신호만을 디코딩하여 출력하며, 이와 같은 동작에 의해 오디오 신호와 영상 신호는 동기화되어 출력될 수 있다.
도 4는 본 발명의 바람직한 일 실시예에 따른 방송 서버의 모듈 구성을 도시한 블록도이다.
도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 방송 서버는 방송자 접속 처리 모듈(400), 청취자 접속 처리 모듈(402), 프로토콜 변환/분석 모듈(404) 및 상태 정보 관리 모듈(406)을 포함한다.
방송자 접속 처리 모듈(400)은 방송자의 방송 요청에 응답하여 방송자 클라이언트와의 커넥션을 설정하고 방송 프로세스를 실행하는 기능을 한다. 본 발명의 바람직한 실시예에 따르면, 방송자 클라이언트는 주소, 포트, MP의 세 개의 주소 식별자를 이용하여 방송 서버에 접속하며, 방송자 접속 처리 모듈(400)은 하나의 포트에 복수의 방송 프로세스가 실행되도록 한다. 이와 달리, 주소 및 포트 정보만을 이용하여 방송자 클라이언트가 방송 서버에 접속하고, 포트별로 하나의 방송 프로세스가 실행될 수도 있다는 점은 당업자에게 있어 자명할 것이다.
청취자 접속 처리 모듈(402)은 청취자의 접속 요청에 응답하여 청취자 클라이언트와의 커넥션을 설정하고 청취자가 요청한 방송자의 방송 스트림이 청취자 클라이언트로 제공될 수 있도록 한다. 전술한 바와 같이, 청취자 클라이언트는 주소, 포트 MP 정보를 이용하여 방송 서버에 접속할 수 있으며, 주소 및 포트 정보만을 이용하여 방송 서버에 접속할 수도 있다.
프로토콜 변환/분석 모듈(404)은, 방송 서버에 접속한 청취자 클라이언트가 도 7a 또는 도 7b와 같은 형태의 프로토콜 패킷을 처리할 수 있는 프로그램을 설치하지 않은 경우, 방송자 클라이언트에서 전송된 프로토콜 패킷을 일반적인 방송 스트림 패킷으로 변환하는 기능을 한다. 청취자 클라이언트에 본 발명에 따른 방송 프로그램이 아닌 일반적인 윈앰프 등의 프로그램이 설치되어 있을 경우, 청취자 클라이언트는 방송자 클라이언트에서 전송하는 패킷을 처리할 수 없다. 따라서, 프로토콜 변환/분석 모듈(404)은 방송자 클라이언트에서 전송되는 패킷을 영상 데이터가 제거하고 음성만으로 이루어진 일반적인 방송 패킷으로 변환한다. 청취자 클라이언트에 설치된 방송 프로그램의 종류는 방송 서버와 청취자 클라이언트의 연결 설정 시에 알 수 있다.
또한, 프로토콜 변환/분석 모듈(404)은 패킷의 헤더 정보를 분석하여 메타 정보를 추출하고 이를 청취자 클라이언트에 전송한다.
상태 정보 관리 모듈(406)은 방송자 또는 청취자가 방송 서버와 접속하거나 또는 접속을 해제하는 경우 이를 감지하여 데이터베이스에 제공하는 기능을 한다. 상태 정보 관리 모듈(406)은 청취자 또는 방송자의 접속 또는 접속 해제 이벤트가 발생할 때마다 이벤트 발생 정보를 데이터베이스에 제공하며, 이로 인해 방송 서버의 상태를 실시간으로 확인할 수 있다.
도 5는 본 발명의 바람직한 일 실시예에 따른 방송자 클라이언트가 접속할 방송 서버를 할당받는 과정을 도시한 도면이다.
도 5를 참조하면, 방송자 클라이언트는 정보관리서버에 방송 서버 주소 요청 정보를 전송한다(S500).
방송자 클라이언트로부터 방송 서버 주소 요청 정보를 수신한 정보관리서버는 데이터베이스에 방송자가 접속할 수 있는 방송 서버 정보를 요청한다(S502).
정보관리서버의 요청을 받은 데이터베이스는 방송 서버들의 상태 정보를 판단하여 방송자 클라이언트가 접속할 서버의 주소 정보(IP, 포트, MP)를 제공한다(S504). 본 발명의 바람직한 실시예에 따르면, 이미 방송 프로세스가 실행중인 서버에 접속을 요청한 방송자 클라이언트를 할당하는 것이 바람직하며, 방송 프로세스가 실행중인 서버에 여유가 없을 경우 새로은 서버를 할당하도록 한다.
데이터베이스로부터 방송자 클라이언트가 접속할 서버의 주소 정보를 수신한 정보관리서버는 이를 방송자 클라이언트에 제공한다(S506). 방송자 클라이언트는 수신한 서버의 주소 정보를 이용하여 방송 서버에 연결하여 방송을 개시한다(S508). 방송 서버는 방송자 클라이언트가 접속할 경우, 방송자 클라이언트의 접속 정보를 데이터베이스에 실시간으로 전송한다.
도 6은 본 발명의 바람직한 일 실시예에 따른 청취자 클라이언트가 접속할 방송 서버를 할당받는 과정을 도시한 도면이다.
도 6을 참조하면, 청취자 클라이언트는 정보관리서버에 접속하여 방송 서버 주소 요청 정보를 전송한다(S600).
정보관리서버는 청취자 클라이언트로부터 제공받은 방송자 아이디 정보를 이용하여 해당 방송자가 방송을 하는 서버의 주소 정보를 데이터베이스에 요청한다(S602).
데이터베이스는 저장하고 있는 방송 서버들의 상태 정보를 조회하여 해당 방송자가 방송을 하고 있는 방송 서버의 주소 정보를 추출하고 이를 정보관리서버에 전송한다(S604). 도 6에는 도시되어 있지 않으나, 방송 서버와 데이터베이스 사이에는 중간 프록시 서버가 구비될 수 있으며, 중간 프록시 서버를 통해 정보관리서버와 데이터베이스 사이의 통신이 이루어질 수도 있을 것이다.
데이터베이스로부터 해당 방송자가 방송을 하는 서버의 주소 정보를 수신한 정보관리서버는 이를 청취자 클라이언트에 전달하고(S606), 청취자 클라이언트는 수신한 주소 정보를 이용하여 방송 서버에 접속한다(S608). 방송 서버는 청취자의 접속 정보를 실시간으로 데이터베이스에 제공한다.
도 8은 본 발명에 의한 방송 시스템을 이용하여 방송 데이터와 외부 데이터를 동기화하는 시스템의 구성을 도시한 도면이다.
도 8에 도시된 바와 같이, 본 발명에 따른 외부 데이터와 방송 데이터를 동기화하는 시스템은 방송자 클라이언트(800), 방송 서버(802), 데이터베이스(804), 외부 서버(806) 및 청취자 클라이언트(808)를 포함할 수 있다.
도 8과 같은 시스템은 바둑, 전략 게임과 같은 게임 정보를 수신하면서 방송자의 게임 해설 정보를 함께 수신할 경우에 특히 유용하게 활용될 수 있다. 이외에도 도 8과 같은 시스템은 프리젠테이션과 같은 문서 데이터 등과 동기를 맞추어 강의를 하는 경우에도 적용될 수 있을 것이다.
설명의 편의를 위해, 온라인 바둑이 대국실 내에서 제공되고 있고, 바둑 관전자 중 1인이 해설을 하고 있다고 가정하고 도 8에 대한 시스템을 설명하기로 한다.
방송자(해설자) 클라이언트(800)의 방송 프로그램은 온라인 대국실에서 진행되는 바둑의 해설을 담당하는 해설자의 음성 및 영상 정보를 도 7b와 같은 프로토콜 포맷으로 변경하여 방송 서버(802)에 전송한다. 영상 및 음성 정보가 바둑 기보와 같은 외부 데이터와 동기를 맞추려면 타임 스탬프 정보보다 프레임 카운트 정보를 이용하는 것이 효율적이다. 따라서, 방송 데이터와 외부 데이터의 동기를 맞추어야 하는 경우, 방송 프로그램은 도 7b와 같은 프로토콜 포맷의 패킷을 생성한다.
또한, 방송자(해설자) 클라이언트(800)는 바둑 기보 정보를 외부 서버(806)-여기서 외부 서버는 바둑 대국 서비스를 제공하는 서버이다-를 통해 청취자 클라이언트(802)로 전송한다. 이때, 바둑 기보 정보에는 해설자의 영상 및 음성 정보와 동기를 맞추기 위한 프레임 카운트 정보가 포함되어 있다. 바둑 기보 정보는 바둑 대국/관전 프로그램을 통해 외부 서버(806)로 전송될 수 있다. 바둑 대국/관전 프로그램과 방송 프로그램은 통합된 프로그램일 수도 있으며, 각각 별개의 프로그램일 수도 있다.
청취자 클라이언트(808)는 방송 서버(802)를 통해 해설자의 영상 및 음성 정보를 수신하고, 외부 서버(806)를 통해 바둑 기보 데이터를 수신한다. 청취자 클라이언트의 방송 프로그램은 음성 신호의 타임 스탬프 정보 및 프레임 카운트 신호를 기준으로 음성 신호가 출력될 때 해당 영상 신호가 출력되거나 해당 기보 데이터가 출력되도록 제어한다.
도 8과 같은 시스템이 이용될 경우, 바둑 해설 정보가 방송 서버를 통해 관전자들에게 제공되므로 대역폭의 큰 제한을 받지 않고 바둑 해설 서비스를 제공할 수 있어 비교적 많은 사용자가 해설 서비스를 제공받을 수 있으며, 기보 데이터와 해설자의 해설 정보의 동기가 어긋나지 않고 정확히 제공될 수 있다.