KR20010086148A - 방송 네트워크 아키텍쳐에서 멀티미디어 클라이언트용스트림 장치 관리 시스템 - Google Patents
방송 네트워크 아키텍쳐에서 멀티미디어 클라이언트용스트림 장치 관리 시스템 Download PDFInfo
- Publication number
- KR20010086148A KR20010086148A KR1020017008028A KR20017008028A KR20010086148A KR 20010086148 A KR20010086148 A KR 20010086148A KR 1020017008028 A KR1020017008028 A KR 1020017008028A KR 20017008028 A KR20017008028 A KR 20017008028A KR 20010086148 A KR20010086148 A KR 20010086148A
- Authority
- KR
- South Korea
- Prior art keywords
- stream
- application
- manager
- address
- data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Computer And Data Communications (AREA)
Abstract
스트림 장치 관리 시스템은 종래의 셋톱 박스와 관련된 각종의 스트림 장치들에 억세스하는 애플리케이션을 지원하기 위해 제공된다. 더 상세하게는, 스트림 장치 관리 시스템은 다수의 스트림 장치들을 식별하고 이들 스트림 장치들 각각에 대한 장치 식별자를 저장하도록 구성된 스트림 관리자 및 각각의 스트림 장치들과 관련된 스트림 데이터를 저장하는 공유 메모리를 포함한다. 제1 스트림 장치와의 통신을 초기화하기 위하여, 제1 애플리케이션은 스트림 관리자에게 제1 스트림 장치를 가리키는 장치 식별자를 전송한다. 장치 식별자를 수신한 것에 응답하여, 스트림 관리자는 제1 애플리케이션에 제1 스트림 장치에 관련된 공유 메모리에 대한 어드레스를 전달한다. 최종적으로, 애플리케이션은 이 어드레스를 사용하여 스트림 데이터에 억세스하게 된다.
Description
연방 통신 위원회(Federal Communication Commission;FCC)는 디지털 TV(DTV)를 구현하는 새로운 TV 방송 표준 세트를 발표했다. 디지털 TV가 궁극적으로는 한 나라 및 전세계의 걸쳐 가정에서의 현재 NTSC 표준을 대체할 것으로 기대된다. 디지털 TV는 종래 NTSC 표준에 대해, 고화질 화상, 크게 향상된 사용자 대화성, 인터넷 이메일 자원에 대한 지원 등을 포함한 많은 잇점들을 제공한다.
새로운 디지털 TV 표준이 컴퓨터 및 TV 기술들의 융합을 촉진시켜 엄청난 파급 효과를 가져올 것으로 예기된다. 게다가, 언젠가는 퍼스널 컴퓨터가 가족 오락 멀티미디어 시스템로서의 기능을 할 것이고, TV는 홈 오토메이션 네트워크에서 부터 인터넷에 이르는 각종 컴퓨터 네트워크 상의 노드로서 기능할 것이다. 디지털 TV 기술을 응용하기 위한 수많은 여러가지 물리적인 팩키지들이 있을 수 있지만, 현재 가장 대중적인 것이 셋톱 박스이다.
초창기에는, 셋톱 박스는 주로 케이블 TV용 튜너 및 디스크램블러(de-scrambler)로서 사용되었다. 좀더 최근에는, 사이언티픽 아틀란타(Scientific Atlanta)와 같은 회사들이 훨신 더 고성능의 셋톱 박스를 개발했다. 대화형 디지털 셋톱 박스는 대화형 서비스들 및 멀티미디어 컨텐츠를 개발하여 방송망을 통해 소비자들에게 전송하기 위한 개방형 플랫폼을 제공한다. 퍼스널 컴퓨터의 능력을 공급하기 위하여, 이들 고성능의 셋톱 박스는 완벽한 컴퓨터 운영 시스템을 내장한다. 높은 데이터 처리량의 관리, 제약된 소비자 장치에서 효율적 메모리 관리, 및 보안 환경의 지원 등과 같은 요건들이 셋톱 박스에 사용하기 위한 혁신적인 운영 시스템을 설계하도록 한다.
셋톱 박스 환경에서, 운영 시스템은 일반적으로 리던던시(redundancy)를 최소화하고 멀티미디어 처리를 최적화하기 위해 고안된 소프트웨어 모듈들이 상호연결된 레이어(layer)들로 구성된다. 이를테면, 셋톱 박스와 관련된 각각의 하드웨어 장치는 추상화되어 소프트웨어 장치 모듈내에 포함되어 있다. 이들 소프트웨어 장치 모듈들은 미디어 전달 및 셋톱 박스와 관련된 특정 하드웨어 장치(가령, RAM, 시리얼 포트, SCSI 하드 드라이브등)의 조작을 담당한다. 따라서, 운영 시스템은 서로 다른 플랫폼들 사이에서 원활하고 효율적인 포팅(porting)을 하도록 설계되는 것이 바람직하다. 이와같이, 운영 시스템은 이들 소프트웨어 장치 모듈과 셋톱 박스에 속하는 애플리케이션들간의 인터페이스 역할을 하는 장치 관리 시스템을 제공한다.
이에 더해서, 셋톱 박스는 컴퓨터 운영 시스템을 설치해볼 만한 새로운 영역을 제공한다. 셋톱 박스가 가진 메모리 자원은 아주 한정되어 있다. 운영 시스템에 의해 지원되는 애플리케이션들은 아주 효율적으로 메모리를 사용해야만 한다. 따라서, 이 장치 관리 시스템은 애플리케이션들이 셋톱 박스와 관련된 일반적으로 작은 메모리 풋프린트(footprint)를 사용하기 위한 효율적인 수단을 제공하는 것이 또한 바람직하다.
본 발명은 일반적으로 멀티미디어 클라이언트에 대한 운영 시스템에 관한 것으로서, 보다 상세하게는 네트워크 아키텍쳐내의 스트림 관리자(stream manager)를 통해 다수의 스트림 장치들과 상호작용하는 애플리케이션들을 지원하기 위한 스트림 장치 관리 시스템에 관한 것이다.
도 1은 본 발명에 따른 운영 시스템에 대한 기본 소프트웨어 구성 요소들을 예시한 블럭도.
도 2는 본 발명의 스트림 장치 관리 시스템의 양호한 실시예를 보여주는 구성도.
도 3은 본 발명의 스트림 관리자와 관련된 스트림 장치 데이터 구조를 어떻게 초기화하는지를 보여주는 플로우챠트.
도 4는 본 발명의 스트림 관리자를 이용하여 애플리케이션과 스트림 장치 사이의 통신을 어떻게 초기화하는지를 보여주는 플로우챠트
도 5는 애플리케이션과 스트림 장치 사이의 종래 Read 동작을 설명한 구성도.
도 6은 본 발명에 따른 애플리케이션과 스트림 장치 사이의 AllocRead 동작을 설명한 구성도.
본 발명의 개시 내용에 따르면, 종래의 셋톱 박스에 관련된 각종의 스트림 장치들에 억세스(access)하는 애플리케이션들을 지원하기 위한 스트림(stream) 장치 관리 시스템이 제공된다. 더 상세하게는, 스트림 장치 관리 시스템은 다수의 스트림 장치들을 식별하고 이들 스트림 장치들 각각에 대한 장치 식별자(identifier)를 저장하도록 구성된 스트림 관리자, 및 각각의 스트림 장치들과 관련된 스트림 데이터를 저장하기 위한 공유 메모리를 포함한다. 제1 스트림 장치와 통신을 개시하기 위해서, 제1 애플리케이션은 제1 스트림 장치를 가리키는 장치 식별자를 스트림 관리자에게 송신한다. 이 장치 식별자의 수신에 응답하여, 스트림 관리자는 제1 스트림 장치와 관련된 공유 메모리의 어드레스(address)를 제1 애플리케이션에게 전송한다. 최종적으로, 애플리케이션은 이 어드레스를 사용하여 스트림 데이터에 억세스한다.
본 발명의 이하의 설명은 실제로 예시적인 것일 뿐이며 본 발명 또는 발명의 용도를 한정하려고 하는 것은 아니다. 더욱더, 이하의 설명은, 종래 셋톱 박스에 들어 있도록 설계된 운영 시스템에 대해서도 설명하고 있는데, 그것은 당업자가 지능형 TV, 인터넷 단말 및 고급 DVD 플레이어(이들에 한정되는 것은 아님)를 포함한 각종의 소비자 멀티미디어 클라이언트용 운영 시스템을 제작 및 사용할 수 있도록 가르치기 위한 것이다.
도 1은 본 발명에 따른 운영 시스템(10)의 기본적인 소프트웨어 구성 요소들을 설명한다. 멀티태스킹(multitasking) 운영 시스템(10)은 셋톱 박스를 통해 전달되는 미디어-중심의 실시간 애플리케이션들의 고성능 요구들을 해결하도록 설계되어있다. 운영 시스템은 멀티미디어 컨텐츠를 개발하여 방송망이나 클라이언트/서버 네트워크를 통해 고객들에게 전달하기 위한 개방형의 스케일가능한 플랫폼을 제공한다. 운영 시스템 (10)에 대한 소프트웨어 아키텍쳐는 대화형의 네트워크 설정에서 리던던시를 최소화하고 멀티미디어 처리를 최적화하도록 설계된 상호연결된 모듈들의 레이어들로 구성되어져 있다. 이러한 아키텍쳐의 레이어들은 하드웨어 추상화 레이어(12), 코어 레이어(14), 애플리케이션 지원 레이어(16) 및 애플리케이션 레이어(18)를 포함한다.
멀티미디어 클라이언트와 관련된 각각의 하드웨어 장치는 추상화되어 하드웨어 추상화 레이어(12)에 속하는 소프트웨어 장치 모듈내에 포함되어 있다. 각각의 이들 장치 모듈들은 하드웨어 장치와 운영 시스템의 나머지 부분(remainder)사이의 미디어 전달 및 조작을 담당한다. 각 장치 모듈에 의해 지원되는 잘 정의된 애플리케이션 프로그램 인터페이스(API)들은 이식성이 있는 운영 시스템 설비(portable operating system facilities)로부터 각 장치의 하드웨어 의존성을 제거함으로써, 여러가지 하드웨어 구현의 특이성들을 마스킹(mask the idiosyncrasies)하게 된다.
코어 레이어(14)에 속하는 커널(kernel) 및 메모리 관리자는 애플리케이션을 지원하기 위해 필요한 기본적인 기능을 제공한다. 완전한 프리엠프티브(preemtive), 멀티쓰레드(multithread), 멀티태스킹(multitasking) 커널은 셋톱 메모리 풋프린트(set-top memory footprint) 및 처리 속도 둘다를 최적화하도록 설계되어 있다. 운영 시스템이 소비자 제품에 속하기 때문에, 아주 작은 풋프린트(가령, 1MB)를 갖는 ROM-기반 시스템에 존재하도록 설계되어 있다. 게다가, 커널은 또한 복잡한 미디어 타입의 고속 전송, 조작 및 표시를 가능케 해주는 32 비트 RISC(Reduced Instruction Set Computer) 프로세서를 이용하도록 만들어졌다. 반면에, 메모리 관리자는 제한된 메모리 자원으로부터 최고의 성능을 발휘할 수 있도록 효율적인 할당 방식(scheme)을 제공한다. 내장(embeded) 프로세서들이 소비자 디지털 하드웨어 구현의 근간을 이루는 경우가 많기 때문에, 메모리 모델은 메모리 관리 유닛 지원이 거의 필요없다. 코어 레이어(14)는 또한 통합 이벤트 시스템 및 ANSI C 유틸리티 함수들의 표준 셋을 제공한다.
코어 레이어(14)의 상층에는 애플리케이션 지원 레이어(16)가 설치되어 있다. 이 지원 모듈의 셋은 고레벨의 처리 함수들 및 애플리케이션 서비스들을 제공한다. 애플리케이션 관리, 세션 관리, 및 튜너 관리는 이 서비스들의 몇몇 예들이다. 최고위 애플리케이션 레벨(18)에는, 상주 애플리케이션(resident application)이라고 하는 적어도 하나의 애플리케이션이 항상 셋탑 박스에 상주하고 있다. 애플리케이션 레벨(18)은 또한 애플리케이션의 저작 및 이 상주 애플리케이션과 셋탑 박스에 속하는 다른 배경 애플리케이션들 사이에서의 자원(예를들면, 튜너) 관리에 필요한 능력들도 제공한다.
애플리케이션 지원 레이어(16)의 범위 안에 속하는 장치 관리 시스템은 일반적인 셋톱 박스에 의해 지원되는 각종의 스트림 장치들에게 일관된 인터페이스를 제공한다. 더 상세하게는, 스트림 관리자(30)는 도 2에 도시된 애플리케이션(32)과 스트림 장치(34) 사이의 통신을 용이하게 한다. 이하의 설명 목정상, 용어 "애플리케이션"은 셋톱 박스에 상주할 수도 있는 운영 시스템을 포함한 임의의 소프트웨어 모듈을 의미하고, 용어 "스트림" 은 일반적으로 스트림 장치(34)를 통해 억세스될 수도 있는 바이트-지향 데이터(byte-oriented data)(가령, RAM내의 정보 또는 HTTP 서버내의 파일)을 말한다. 각각의 스트림 장치(34)에는 그 고유의 특성들이 있지만, 이들 스트림 장치들을 억세스하는 수단은 유사하다. 따라서, 스트림 관리자(30)은 스트림 장치(34)의 스트림 장치 (34)의 각 유형과 상호작용하기 위한 API 의 표준 셋(가령, 스트림으로부터 판독, 스트림에 기록 등)을 제공한다. 이와 같이, 스트림 관리자(30)는 메모리, (SCSI) 하드 드라이브, 시리얼 포트, 및 파일 전송 프로그램(FTP), 하이퍼텍스트(hypertext) 전송 프로그램(HTTP), MPEG 트랜스포트 스트림, 및 방송 파일 시스템(BFS)을 포함한 몇몇 유형의 스트림 장치들을 지원할 수 있지만, 이에 한정되는 것은 아니다. 게다가, 스트림 관리자(30)가 억세스할 수 있는 스트림 데이터 구조(36)는 특정 멀티미디어 클라이언트와 관련된 유효한 스트림 장치들의 리스트를 유지하는데 사용된다.
전술한 바와 같이, 운영 시스템(10)은 각각의 스트림 장치에 대한 소프트웨어 추상화 모듈을 포함한 다수의 모듈들로 구성된다. 도 3에 도시된 바와 같이, 운영 시스템의 부팅(boot up) 동안에, 스트림 장치 모듈들 각각은 동적으로(dynamically) 인식되어 스트림 데이터 구조안으로 읽혀진다. 첫번째로, 블럭(42)에서는 로더 모듈(loader module)이 운영 시스템에 관련된 모든 모듈을 검색(retrieve)하고 조사(examine)한다. 각 모듈을 조사하기 위해서는, 블럭(46)은각각의 모듈에 관한 데이터를 포함하고 있는 정보 스트링을 파싱(parse)한다. 판정 블럭(48)이 스트림 장치(즉, 그룹 ID="스트림")에 대응하는 모듈을 검출하게 되면, 판정 블럭(48)은 스트림 데이터 구조의 초기화를 진행한다:그렇지 않으면, 그다음 모듈이 블럭(42)에서 검색된다. 일단 모든 모듈들이 검색되었으면, 처리는 종료 블럭(exit block, 44)에서 종료된다.
각각의 스트림 장치 모듈에 대해서, 블럭(50)은 정보 스트링의 나머지를 파싱함으로서 장치 유형 식별자(가령, "ftp", "memmory", "bfs" 등)을 결정한다. 장치 유형 id와 스트림 장치에 대한 코드를 포함하고 있는 소프트웨어 장치 모듈 사이의 매핑이 스트림 데이터 구조내에 유지된다. 그러나, 블럭(54)이 이 매핑을 스트림 데이터 구조에 저장하기 이전에, 블럭(52)은 그 스트림 장치에 대한 초기화 메쏘드(initialization method)를 실행한다. 이 프로세스는 로더 모듈이 각 모듈에 대한 평가를 완료할 때까지 계속된다.
이 점에서, 스트림 관리자(30)는 애플리케이션(32)과 스트림 장치(34) 사이의 통신을 초기화하는 동작을 한다. 도 4를 참조하면, 스트림 관리자(30)는 애플리케이션들이 스트림 장치에 억세스할 수 있게 해주는 개방형 API를 지원한다. 블럭(62)에서 스트림을 열면(open), 요청을 한 애플리케이션(requesting application)은 스트림 관리자에게 입력 파라메타를 제공한다. 데이터 구조를 사용하는 것이 아니라, 이 입력 파라메타는 종래의 URL의 형태의 텍스트-기반 ASCII스트링(가령, 시리얼0:///bps=19200;데이터=7;패리티=0;중지=2)이다. 스트림을 열기 위해 텍스트-기반 메세지가 사용되기 때문에, 여러가지 장치 유형에 대한 파라미터의 변동 또는 새로운 장치 유형의 부가는 스트림 관리자(30)에 의해 쉽게 지원된다. URL은 스킴 부분(scheme part) 및 스킴 특정 부분(scheme specific part)으로 구성된다. 본 발명에서, 스킴 부분은 장치 유형(예를 들어, 시리얼0:///)으로 매핑되는 반면, 스킴 특정 부분은 다른 장치 특정 정보에 매핑된다. 이와 같이, 장치 유형 식별자는 표준 스킴(standard scheme)이다. URL에 기반한 방식을 사용함으로서, 본 발명은 아키텍쳐에 중요한 변경을 함이 없이 어떤 인터넷 기반 프로토콜이라도 지원할 수 있다.
그 다음에, 블럭(64)은 요청을 한 애플리케이션에 의해 제공된 장치 유형 id를 결정하기 위한 입력 파라미터를 파싱한다(parse). 장치 유형 id를 사용하여, 판정 블럭(66)은 대응하는 스트림 장치 모듈에 대한 스트림 데이터 구조를 검색한다. 기지의 장치 유형에 대해서는, 블럭(68)은 스트림 데이터 구조로부터 모듈 id를 검색하는 반면에, 미지의 장치 유형에 대해서는, 처리는 진단 또는 에러 루틴(diagnostic or error routine)으로 분기(branch)한다. 이 검색 모듈 id(및 나머지 장치 특정 억세스 정보)을 이용해서, 스트림 관리자(30)는 요청된 스트림 장치에 억세스할 수 있게 된다. 각각의 스트림 장치에 의해 지원되는 OPEN API가 블럭(72)에서 호출된다. 스트림 장치들에 의해 지원되는 각각 표준 API(가령, OPEN, WRITE, READ 등)는 스트림 장치 모듈내에서 공지의 오프셋을 갖는다는 것을 유의해야 한다. 이와 같이, 스트림 장치에 최초로 억세스하기 위해서 스트림 관리자는 모듈 id만 있으면 된다.
그러나, 스트림 장치가 일반적으로 다수의 스트림들을 지원하고 있고, 애플리케이션은 동일하거나 서로 다른 스트림 장치들상의 하나 이상의 스트림들을 억세스할 수 있기 때문에, 스트림 관리자(30)는 또한 스트림 장치와 관련하여 억세스하고 있는 특정 스트림을 식별하기 위한 수단도 필요하게 된다. 따라서, 각각의 열기 요청(open request)에 응답하여, 고유의 스트림 인스턴스(instance) id가 요청된 스트림 장치에 의해 생성되어진 다음에 다시 스트림 관리자(30)로 보내진다. 이와 같이, 장치 모듈 id는 스트림 인스턴스 id(스트림 id라고 함)와 조합하여 각 스트림을 일의적으로 식별한다.
최종적으로, 스트림 관리자(30)는 블럭(74)에서 스트림 id를 애플리케이션에 리턴한다(return). 열린 스트림(open stream)에 대한 차후의 모든 억세스를 위해, 애플리케이션은 스트림 관리자를 호출하고 있는 중일 때는 스트림 id를 사용하게 될 것이다. 상기에 설명한 매핑 프로세스를 수행하는 것이 아니라, 스트림 관리자(30)는 또한 열린 스트림 및 그에 대응하는 스트림 장치에 직접 억세스하기 위해 스트림 id도 사용할 것이다.
애플리케이션은 스트림 장치와의 통신을 일단 확립하게 되면, 각종의 데이터 억세스 동작들을 수행할 수 있다. 도 5는 일반적인 READ 함수와 관련된 처리 단계들을 설명하고 있다. 애플리케이션으로부터의 요청에 의해 프롬프트(prompt)되면, 운영 시스템은 애플리케이션(32)이 한 각각의 읽기 요청(read request)에 대해, 공유 메모리(80)에 애플리케이션 버퍼 공간(82)을 할당한다. 애플리케이션이 읽기 동작을 수행할 때, 스트림 장치(34)는 요청된 정보를 그의 장치 버퍼 공간(84)으로부터 이전에 할당된 애플리케이션 버퍼 공간(82)으로 복사를 한 다음에, 애플리케이션 버퍼 공간(82)에 대한 어드레스(즉, 포인터(pointer))를 운영 시스템을 거쳐 요청을 한 애플리케이션(32)으로 다시 보내게 된다. 이 어드레스를 이용하여, 애플리케이션(32)은 애플리케이션 버퍼 공간(82)에 있는 데이터를 억세스할 수 있다. 장치로부터 요청되고 있는 정보의 유형에 관계없이 이러한 방식을 따르게 된다.
이 종래의 READ 메쏘드 이외에도, 본 발명의 스트림 관리자(30)는 또한 스트림 장치로부터 스트림 데이터를 억세스하기 위한 좀더 효율적인 수단도 제공한다. AllocReadOnly(읽기 전용 할당) 함수가 도 6에서 설명하는 바와 같이 스트림 관리자(30)에 의해 제공되어진다. 표준 READ API를 사용하지 않고, 애플리케이션(32)은 AllocReadOnly API가 스트림 데이터에 대한 읽기-전용 억세스를 수용하기에 무난할 경우에는, AllocReadOnly API도 호출(call)할 수 있다. 응답에 있어서, 스트림 관리자(30)는 요청된 스트림 데이터에 대한 어드레스(가령, 핸들 또는 포인터(handle or pointer))를 요청을 한 애플리케이션를 제공하기 위해 적당한 스트림 장치(34)와 상호작용을 한다. 이렇게 하기 위해, AllocReadOnly API는 스트림 장치의 내부 버퍼(84)로 핸들(handle)을 리턴한다. 어떤 경우에는, 이 내부 버퍼는 직접 메모리 억세스(direct memory access)로부터 생성될 수도 있다.
스트림 데이터가 애플리케이션이 읽고만 있지 조작(manipulate)하고 있지 않기 때문에(예를들면, 폰트 정보), 스트림 데이터의 부가의 카피(copy)를 메모리에 만들 필요는 없다. 이와 같이, AllocReadOnly 동작은 일반적인 READ 동작에 관련된 부가의 카피 단계를 제거하므로, 셋톱 박스내에서의 메모리 할당을 감축하게 된다. 리턴된 어드레스를 이용해서, 요청을 한 애플리케이션(32)은 공유 메모리내의장치의 버퍼 공간으로부터 스트림 데이터를 직접 읽을 수 있다. 데이터에 대한 처리가 끝나면, 애플리케이션(32)은 메모리 영역을 해제(free)할 책임을 진다. ReadAllocOnly 함수의 부가의 특징은 스트림 장치가 동일한 데이터에 대한 다수의 요청을 충족시켜 주도록 할 수 있다는 것이다. 다수의 애플리케이션 각각이 동일한 데이터의 카피를 가지는 것과는 반대로, 다수의 요청을 한 애플리케이션들은 동일한 어드레스를 수신하고 따라서 동일한 데이터를 읽게 된다. 따라서, 읽기-전용 억세스가 무난하도록 애플리케이션을 설계하는 것이 양호하다.
이상 본 발명의 단지 예시적인 실시예들에 대해 개시 및 하기에 기술하였다. 당업자라면, 이러한 설명, 첨부된 도면 및 청구항으로부터, 본 발명의 정신 및 범위를 벗어나지 않고 이들 개시 내용 안에서 각종의 변경, 수정 및 변형들이 이루어질 수 있다는 것을 쉽게 알 수 있을 것이다.
Claims (9)
- 멀티미디어 클라이언트에 상주(reside)하면서 이 멀티미디어 클라이언트와 관련된 다수의 스트림 장치들(stream devices)과 상호작용을 하는 애플리케이션들을 지원하기 위한 장치 관리 시스템에 있어서,상기 다수의 스트림 장치들을 식별하고 상기 스트림 장치들 각각에 대한 장치 식별자(device identifier)를 저장하도록 구성(configure)된 스트림 관리자(stream manager); 및장치 식별자를 상기 스트림 관리자에 전송(send)함으로써 제1 스트림 장치와 자신 간의 통신을 초기화하는 동작을 하는 제1 애플리케이션-상기 장치 식별자는 상기 제1 스트림 장치를 가리킴-;을 포함하되,상기 스트림 관리자는 상기 제1 애플리케이션으로부터 장치 식별자를 수신한 것에 응답해서 상기 제1 애플리케이션과 상기 제1 스트림 장치간에 데이터를 스트리밍(stream)하는 동작을 하는 것을 특징으로 하는 장치 관리 시스템.
- 제1항에 있어서,상기 장치 식별자는 상기 제1 스트림 장치에 대한 장치 유형 식별자 및 장치 억세스 정보를 포함하는 것을 특징으로 하는 장치 관리 시스템.
- 제1항에 있어서,상기 장치 식별자는 URL(Uniform Resource Locator)인 것을 특징으로 하는 장치 관리 시스템.
- 제1항에 있어서,스트림 데이터를 저장하기 위한 것으로서 상기 제1 애플리케이션 및 상기 제1 스트림 장치가 억세스가능한 공유 메모리를 더 포함하되,상기 스트림 관리자는 상기 공유 메모리에 대한 어드레스를 상기 제1 애플리케이션에 전달(communicate)하도록 동작하고, 상기 제1 애플리케이션은 상기 어드레스를 이용해서 상기 스트림 데이터를 읽는 것을 특징으로 하는 장치 관리 시스템.
- 제4항에 있어서,상기 스트림 관리자는 상기 공유 메모리에 대한 상기 어드레스를 제2 애플리케이션에 전달하도록 동작하고, 상기 제2 애플리케이션은 상기 어드레스를 이용해서 스트림 데이터를 읽는 것을 특징으로 하는 장치 관리 시스템.
- 멀티미디어 클라이언트에 상주하는 애플리케이션에 의해서 스트림 장치로부터 스트림 데이터를 억세스하는 방법에 있어서.상기 멀티미디어 클라이언트와 관련된 다수의 스트림 장치들을 식별하고 각각의 상기 스트림 장치에 대한 장치 식별자를 저장하도록 스트림 관리자를 구성(configure)하는 단계;상기 멀티미디어 클라이언트에 상주하는 제1 애플리케이션에 의해 제1 스트림 장치에 대한 억세스를 요청하는 단계-상기 제1 애플리케이션은 제1 스트림 장치를 가리키는 제1 장치 식별자를 상기 스트림 관리자에게 전송(send)함-;상기 제1 애플리케이션으로부터 상기 제1 장치 식별자를 수신한 것에 응답하여, 상기 스트림 관리자에 의해 상기 제1 스트림 장치와 관련된 스트림 데이터에 대한 어드레스를 결정하는 단계-상기 스트림 데이터는 상기 멀티미디어 클라이언트상의 공유 메모리안에 저장됨-;상기 어드레스를 상기 스트림 관리자로부터 상기 제1 애플리케이션으로 전달하는 단계; 및상기 어드레스를 이용해서 상기 제1 애플리케이션에 의해 상기 스트림 데이터를 억세스하는 단계를 포함하는 것을 특징으로 하는 스트림 데이터 억세스 방법.
- 제6항에 있어서,상기 제1 스트림 장치에 대한 억세스를 요청하는 단계는 상기 제1 스트림 장치에 대한 장치 유형 식별자 및 장치 억세스 정보를 상기 제1 장치 식별자로서 이용하는 단계를 더 포함하는 것을 특징으로 하는 스트림 데이터 억세스 방법.
- 제6항에 있어서,상기 스트림 관리자를 구성하는 단계는 URL(Uniform Resource Locator)을 상기 장치 식별자로서 이용하는 단계를 더 포함하는 것을 특징으로 하는 스트림 데이터 억세스 방법.
- 제6항에 있어서,상기 공유 메모리에 대한 상기 어드레스를 제2 애플리케이션에 전달하는 단계와,상기 어드레스를 이용하여 상기 제2 애플리케이션에 의해 상기 스트림 데이터를 억세스하는 단계를 더 포함하는 것을 특징으로 하는 스트림 데이터 억세스 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/219,011 | 1998-12-23 | ||
US09/219,011 US20020073218A1 (en) | 1998-12-23 | 1998-12-23 | Stream device management system for multimedia clients in a broadcast network architecture |
PCT/US1999/030250 WO2000040007A1 (en) | 1998-12-23 | 1999-12-17 | A stream device management system for multimedia clients in a broadcast network architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20010086148A true KR20010086148A (ko) | 2001-09-08 |
Family
ID=22817432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020017008028A KR20010086148A (ko) | 1998-12-23 | 1999-12-17 | 방송 네트워크 아키텍쳐에서 멀티미디어 클라이언트용스트림 장치 관리 시스템 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20020073218A1 (ko) |
EP (1) | EP1142306A1 (ko) |
KR (1) | KR20010086148A (ko) |
WO (1) | WO2000040007A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012177062A3 (ko) * | 2011-06-21 | 2013-03-28 | 가온미디어 주식회사 | 메모리공유 기반의 dvb-t2/s2/c2 파이핑 포맷 방송신호 처리 방법 및 이를 위한 파이핑 포맷 방송신호 처리 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757291B1 (en) | 2000-02-10 | 2004-06-29 | Simpletech, Inc. | System for bypassing a server to achieve higher throughput between data network and data storage system |
US7587497B1 (en) * | 2000-06-20 | 2009-09-08 | Palmsource Inc. | Information exchange between a handheld device and another computer system using an exchange manager and uniform resource locator (URL) strings |
FI112307B (fi) | 2000-08-02 | 2003-11-14 | Nokia Corp | Viestintäpalvelu |
GB2418580B (en) * | 2001-10-24 | 2006-05-24 | Accenture Global Services Gmbh | Data Processing System And Method |
US7266622B2 (en) * | 2002-03-25 | 2007-09-04 | International Business Machines Corporation | Method, computer program product, and system for automatic application buffering |
TR201908597T4 (tr) * | 2002-05-14 | 2019-07-22 | Koninklijke Philips Nv | En az bir veri akışının verilerini işlemden geçirmenin yöntemi, veri işlemden geçirme modülü ve bilgisayar programı ürünü. |
US20040216122A1 (en) * | 2002-07-23 | 2004-10-28 | Charles Gram | Method for routing data through multiple applications |
US7116716B2 (en) | 2002-11-01 | 2006-10-03 | Microsoft Corporation | Systems and methods for generating a motion attention model |
US7260261B2 (en) * | 2003-02-20 | 2007-08-21 | Microsoft Corporation | Systems and methods for enhanced image adaptation |
US7069397B2 (en) * | 2003-04-15 | 2006-06-27 | Sun Microsystems, Inc | Stream based memory manager with function specific hardware logic for accessing data as a stream in memory |
US9053754B2 (en) | 2004-07-28 | 2015-06-09 | Microsoft Technology Licensing, Llc | Thumbnail generation and presentation for recorded TV programs |
US7986372B2 (en) * | 2004-08-02 | 2011-07-26 | Microsoft Corporation | Systems and methods for smart media content thumbnail extraction |
JP2008515322A (ja) * | 2004-09-30 | 2008-05-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Mhpアプリケーションの起動時間を減少させるシステム及び方法 |
EP1696321A1 (en) | 2005-02-23 | 2006-08-30 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for executing software applications |
KR100677609B1 (ko) * | 2005-08-25 | 2007-02-02 | 삼성전자주식회사 | 홈 네트워크에서 방송 서비스를 위한 튜너들을 관리하는방법 및 그를 위한 장치 |
US20070112811A1 (en) * | 2005-10-20 | 2007-05-17 | Microsoft Corporation | Architecture for scalable video coding applications |
US7773813B2 (en) | 2005-10-31 | 2010-08-10 | Microsoft Corporation | Capture-intention detection for video content analysis |
US8180826B2 (en) * | 2005-10-31 | 2012-05-15 | Microsoft Corporation | Media sharing and authoring on the web |
US8196032B2 (en) * | 2005-11-01 | 2012-06-05 | Microsoft Corporation | Template-based multimedia authoring and sharing |
US7599918B2 (en) | 2005-12-29 | 2009-10-06 | Microsoft Corporation | Dynamic search with implicit user intention mining |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63163944A (ja) * | 1986-09-17 | 1988-07-07 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | アプリケ−ション通信システム |
CA2010591C (en) * | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
EP0610677A3 (en) * | 1993-02-12 | 1995-08-02 | Ibm | Communication device management module operating in two modes. |
US6148346A (en) * | 1996-06-20 | 2000-11-14 | Peerless Systems Imaging Products, Inc. | Dynamic device driver |
EP0872798A1 (en) * | 1997-03-21 | 1998-10-21 | CANAL+ Société Anonyme | Computer memory organization |
JP2002512713A (ja) * | 1997-03-21 | 2002-04-23 | カナル プラス ソシエテ アノニム | アクセス制御システム |
EP0946053A1 (en) * | 1998-03-27 | 1999-09-29 | CANAL+ Société Anonyme | Memory management in a receiver/decoder |
-
1998
- 1998-12-23 US US09/219,011 patent/US20020073218A1/en not_active Abandoned
-
1999
- 1999-12-17 KR KR1020017008028A patent/KR20010086148A/ko not_active Application Discontinuation
- 1999-12-17 EP EP99963104A patent/EP1142306A1/en not_active Withdrawn
- 1999-12-17 WO PCT/US1999/030250 patent/WO2000040007A1/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012177062A3 (ko) * | 2011-06-21 | 2013-03-28 | 가온미디어 주식회사 | 메모리공유 기반의 dvb-t2/s2/c2 파이핑 포맷 방송신호 처리 방법 및 이를 위한 파이핑 포맷 방송신호 처리 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
KR101325950B1 (ko) * | 2011-06-21 | 2013-11-07 | 한신대학교 산학협력단 | 메모리공유 기반의 dvb-t2/s2/c2 파이핑 포맷 방송신호 처리 방법 및 이를 위한 파이핑 포맷 방송신호 처리 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
Also Published As
Publication number | Publication date |
---|---|
WO2000040007A1 (en) | 2000-07-06 |
US20020073218A1 (en) | 2002-06-13 |
EP1142306A1 (en) | 2001-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20010086148A (ko) | 방송 네트워크 아키텍쳐에서 멀티미디어 클라이언트용스트림 장치 관리 시스템 | |
US6343312B1 (en) | Data processing method and device | |
US5925100A (en) | Client/server system with methods for prefetching and managing semantic objects based on object-based prefetch primitive present in client's executing application | |
US6654765B2 (en) | Method and apparatus for providing plug-in media decoders | |
US6016520A (en) | Method of viewing at a client viewing station a multiple media title stored at a server and containing a plurality of topics utilizing anticipatory caching | |
US5619250A (en) | Operating system for interactive television system set top box utilizing dynamic system upgrades | |
US8762480B2 (en) | Client, brokerage server and method for providing cloud storage | |
KR100322716B1 (ko) | 협력적 프록시 시스템의 개체 랜더링 분산 전개를 위한방법 및 장치 | |
CN1264354C (zh) | 选择以广播流发送的多点传送ip数据的方法和装置 | |
JP2002528971A (ja) | 構成可能な機能をもつテレビジョン・セットトップ・ボックス | |
IE980729A1 (en) | An application interface to a media server and a method of implementing the same | |
US20020002608A1 (en) | Network device management system | |
US6721949B1 (en) | Kernel abstraction layer for digital television set-top box firmware | |
JP2004528650A (ja) | サービスアクセスシステム | |
JP4303884B2 (ja) | モデム制御 | |
Borelli et al. | An XML-based component specification model for an adaptive middleware of interactive digital television systems | |
KR100198762B1 (ko) | 이종 프로토콜을 지원하는 vod 시스템 | |
WO2002028085A9 (en) | Reusing decoded multimedia data for multiple users | |
KR20010103735A (ko) | 구매 매니저 | |
JP2000501537A (ja) | マルチメディア文書へのアクセスを可能にするための方法およびシステム | |
Antoniazzi | A Flexible Software Architecture for Multimedia Home Platforms | |
CN114327319A (zh) | 一种屏幕切换的处理方法、装置、设备和存储介质 | |
Levy | Get set for set-top boxes: Finally a reality. | |
EP1135733A2 (en) | Computer system and method for loading applications | |
Friedman et al. | A framework for caching multimedia objects in the Internet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |