KR19990029323A - 애플리케이션 프로그램 인터페이스와 이를 구현하는 방법 및 컴퓨터 프로그램 제품 - Google Patents

애플리케이션 프로그램 인터페이스와 이를 구현하는 방법 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR19990029323A
KR19990029323A KR1019980033616A KR19980033616A KR19990029323A KR 19990029323 A KR19990029323 A KR 19990029323A KR 1019980033616 A KR1019980033616 A KR 1019980033616A KR 19980033616 A KR19980033616 A KR 19980033616A KR 19990029323 A KR19990029323 A KR 19990029323A
Authority
KR
South Korea
Prior art keywords
media
api
server
high level
command
Prior art date
Application number
KR1019980033616A
Other languages
English (en)
Other versions
KR100350141B1 (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 포만 제프리 엘
Publication of KR19990029323A publication Critical patent/KR19990029323A/ko
Application granted granted Critical
Publication of KR100350141B1 publication Critical patent/KR100350141B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명에 따르면, 하이 레벨 포괄 커맨드를 다수의 매체 디바이스로 출력하기 위한 디바이스 레벨 커맨드로 변환하는 애플리케이션 인터페이스(application program interface; API)를 내장하는 매체 관리자가 제공된다. 본 발명의 매체 관리자는 하이 레벨 포괄 커맨드를 디코딩하는 하이 레벨 커맨드 프로세서와, 이 하이 레벨 커맨드 프로세서에 의해 디코딩된 하이 레벨 포괄 커맨드를 디바이스 레벨 커맨드로 변환하는 디바이스 특정의 코드 매핑 모듈을 포함한다. 디바이스 레벨 커맨드의 각각은 디바이스 특정의 코드 매핑 모듈로부터 매체 디바이스중 대응하는 하나로 출력된다.
본 발명은 매체 디바이스에 대해 애플리케이션 인터페이스(API)를 구현하는 방법을 또한 포함한다. 본 발명의 방법은 컴퓨터 애플리케이션으로부터 하이 레벨 포괄 커맨드를 수신하고, 하이 레벨 포괄 커맨드를 디바이스 레벨 커맨드로 변환하며, 디바이스 레벨 커맨드의 각각을 매체 디바이스중 하나로 출력한다.
본 발명은 컴퓨터 판독가능한 매체를 포함하는 컴퓨터 프로그램 제품을 또한 포함한다. 이 컴퓨터 프로그램 제품은 하이 레벨 포괄 커맨드를 디코딩하는 수단과, 이 하이 레벨 포괄 커맨드를 디바이스 레벨 커맨드로 변환하는 수단과, 디바이스 레벨 커맨드의 각각을 매체 디바이스중 대응하는 하나로 출력하는 수단을 포함한다.
본 발명은 컴퓨터 애플리케이션으로부터 수신된 하이 레벨 포괄 커맨드를, 매체 객체를 저장하는 매체 서버를 포함하는 다수의 매체 디바이스로 출력되는 디바이스 레벨 커맨드로 변환하는 공통 애플리케이션 인터페이스(API)를 또한 포함한다. 공통 API는 특정의 기능을 각각 수행하는 다수의 개별적인 API를 포함한다.

Description

애플리케이션 프로그램 인터페이스와 이를 구현하는 방법 및 컴퓨터 프로그램 제품
본 발명은 애플리케이션 인터페이스에 관한 것으로, 보다 상세하게는 매체 서버로의 애플리케이션 인터페이스 및 이를 구현하는 방법에 관한 것이다.
멀티미디어 애플리케이션에서 이용할 수 있는 다량의 멀티미디어 데이터를 보유하는데 통상적인 멀티미디어 데이터 저장 시스템이 흔히 사용되고 있다. 이러한 통상적인 멀티미디어 데이터 저장 시스템은 디지탈 라이브러리(digital library)를 또한 구비할 수도 있으며, 이와 같은 시스템은 미국 특허 공보 제 5,649,185 호에 개시되어 있다. 통상적인 멀티미디어 데이터 저장 시스템에 의해 생기는 문제점은 이들 저장 시스템이 디스플레이를 포함하는 클라이언트 뷰어(client viewer)와 같은 클라이언트 매체 출력 스테이션으로 특정 유형의 데이터를 전송하는 다수의 매체 서버를 통상 사용한다는 사실로부터 기인한다. 그러나, 각 매체 서버는 단지 그 자신만의 디바이스 레벨 커맨드를 지원하기 때문에, 통상적인 멀티미디어 데이터 저장 시스템내에서 실행되는 애플리케이션이 다수의 매체 서버와 상호작용하기가 어렵게 된다. 따라서, 특정의 매체 서버와 통신하는 각각의 애플리케이션은 해당 매체 서버의 고유한 특성을 고려해야 한다. 그러나, 이러한 방안은 다수의 매체 서버가 존재하는 경우에 번거로워질 수 있다. 또한, 이러한 방안에서는 새로운 매체 서버가 멀티미디어 데이터 저장 시스템으로 구현되는 경우 애플리케이션이 연속적으로 갱신되어야 한다.
본 발명의 목적은 매체 서버에 공통 인터페이스를 제공하는 강인한 관리 방안을 제공하는 것이다.
본 발명의 다른 목적은 시스템내에 포함된 매체 서버와 상호작용하는 애플리케이션으로부터 매체 서버 특정의 디바이스 커맨드를 은닉하는, 매체 서버에의 공통 인터페이스를 제공하는 것이다.
본 발명의 상기한 목적을 달성하기 위해, 하이 레벨 포괄 커맨드(high-level generic command)를 다수의 매체 디바이스로 출력하기 위한 디바이스 레벨 커맨드로 변환하는 애플리케이션 인터페이스(API)를 내장하는 매체 관리자가 제공된다. 본 발명의 매체 관리자는 하이 레벨 포괄 커맨드를 디코딩하는 하이 레벨 커맨드 프로세서와, 이 하이 레벨 커맨드 프로세서에 의해 디코딩된 하이 레벨 포괄 커맨드를 디바이스 레벨 커맨드로 변환하는 디바이스 특정의 코드 매핑 모듈을 포함한다. 디바이스 레벨 커맨드의 각각은 디바이스 특정의 코드 매핑 모듈로부터 매체 디바이스중 대응하는 하나로 출력된다.
본 발명은 다수의 매체 디바이스에 대해 애플리케이션 인터페이스(API)를 구현하는 방법을 또한 포함한다. 본 발명의 방법은 컴퓨터 애플리케이션으로부터 다수의 하이 레벨 포괄 커맨드를 수신하고, 이 다수의 하이 레벨 포괄 커맨드를 디바이스 레벨 커맨드로 변환하며, 디바이스 레벨 커맨드의 각각을 다수의 매체 디바이스중 하나로 출력한다.
본 발명은 컴퓨터 판독가능한 매체를 포함하는 컴퓨터 프로그램 제품을 또한 포함한다. 이 컴퓨터 프로그램 제품은 하이 레벨 포괄 커맨드를 디코딩하는 수단과, 하이 레벨 포괄 커맨드를 하나 이상의 디바이스 레벨 커맨드로 변환하는 수단과, 변환된 디바이스 레벨 커맨드를 다수의 매체 디바이스중 대응하는 하나로 출력하는 수단을 포함한다.
본 발명은 컴퓨터 애플리케이션으로부터 수신된 하이 레벨 포괄 커맨드를, 매체 객체를 저장하는 매체 서버를 포함하는 다수의 매체 디바이스로 출력되는 디바이스 레벨 커맨드로 변환하는 공통 애플리케이션 인터페이스(API)를 또한 포함한다. 공통 API는 특정의 기능을 각각 수행하는 다수의 개별적인 API를 포함한다.
본 발명의 한 측면에 따르면, 다수의 개별적인 API는 제 1 및 제 2 그룹의 개별적인 API들로 이루어진다. 제 1 그룹의 개별적인 API는 매체 서버를 나타내는 객체를 규정하는 클래스와 연관된 제 1 그룹의 멤버 함수에 대응한다. 제 2 그룹의 개별적인 API는 매체 객체의 물리적 포맷의 논리적 기술을 나타내는 객체를 규정하는 클래스와 연관된 제 2 그룹의 멤버 함수에 대응한다.
도 1은 본 발명의 공통 애플리케이션 인터페이스(API)를 내장하는 매체 관리자를 도시하는 도면.
도 2는 본 발명의 매체 관리자의 동작에 관한 흐름도.
도 3은 본 발명의 매체 관리자를 내장하는 멀티미디어 데이터 저장 시스템을 도시하는 도면.
도 4는 도 3에 도시된 멀티미디어 데이터 저장 시스템의 구성요소를 도시하는 도면.
도면의 주요 부분에 대한 부호의 설명
5 : 매체 관리자 8 : 요구 애플리케이션
10 : 하이 레벨 커맨드 프로세서 15 : 디바이스 특정의 코드 매핑 모듈
20 : 디바이스 인터페이스 22 : 디바이스 레벨 인터페이스
25 : 매체 디바이스
본 발명은 매체 관리자에 관한 것으로, 이는 바람직하게 멀티미디어 데이터 저장 시스템에서 구현되고, 이 시스템내에 포함된 매체 서버에 공통 애플리케이션 인터페이스를 제공한다. 매체 관리자는 멀티미디어 데이터 저장 시스템내에서 실행되는 애플리케이션 및 매체 디바이스간의 통신을 촉진하는 관리 방안을 내장한다.
도 1에서는 요구 애플리케이션(8)으로부터 하이 레벨 커맨드를 수신하는 매체 관리자(5)를 도시한다. 매체 관리자(5)는 하이 레벨 커맨드를 첫번째 스루 N-TH 매체 디바이스(25)로 출력된 디바이스 특정의 커맨드로 변환하는데, 이는 비디오 또는 오디오 데이터와 같은 특정 유형의 매체 데이터를 처리하기 위한 매체 아카이브(media archive) 또는 매체 서버일 수 있다. 매체 관리자(5)를 이용하여, 요구 애플리케이션(requesting application)(8)은 매체 디바이스(25)의 특질(idiosyncracies)을 고려할 필요없이 특정의 기능이 이들 매체 디바이스(25)에 의해 수행될 것을 요구할 수 있다. 또한, 매체 관리자(5)는 요구 애플리케이션(8)이 매체 디바이스(25)에 대한 내부 변경을 허용하지 않도록 또한 억제한다.
매체 관리자(5)는 하이 레벨 커맨드 프로세서(10)를 포함하는데, 이 프로세서(10)는 요구 애플리케이션(8)으로부터 하이 레벨 커맨드를 수신하고 매체 관리자(5)가 지원하는 특정 유형의 매체 서버에 커맨드가 대응하는지의 여부를 식별한다. 요구 애플리케이션(8)에 의해 송출된 커맨드가 매체 관리자(5)에 의해 지원된 매체 디바이스(25)에 대응한다고 하이 레벨 커맨드 프로세서(10)가 판정하는 경우, 프로세서(10)는 이 요구를 디바이스 특정의 코드 매핑 모듈(15)에 전송하며, 이 모듈(15)은 해당 매체 디바이스(25)로 향하는 하이 레벨 커맨드를 처리한다.
디바이스 특정의 코드 매핑 모듈(15)은 각각의 하이 레벨 커맨드를 모듈의 대응하는 매체 디바이스(25)에 대한 디바이스 레벨 커맨드로 매핑하고, 다수의 디바이스 레벨 인터페이스(22)를 포함하는 디바이스 인터페이스(20)를 통해 디바이스 레벨 커맨드를 매체 디바이스(25)에 전송할 것이다. 이와 달리, 디바이스 특정의 코드 매핑 모듈(15)은 각 하이 레벨 커맨드를 일련의 액션(a series of actions)으로 변환할 것이고, 이는 상기한 하이 레벨 커맨드중 적어도 하나에 대응할 수 있다. 이들 액션은 대응하는 매체 디바이스(25)에 대한 디바이스 특정의 코드 매핑 모듈(15)에 의해 디바이스 레벨 커맨드로 변환된다.
매체 관리자(5)는 둘 이상의 유형의 매체 디바이스(25)를 지원하기 위해 다수의 디바이스 특정의 코드 매핑 모듈(15)을 포함할 수 있다. 따라서, 매체 관리자(5)는 첫번째 스루 N-TH 매체 디바이스(25)를 지원하기 위해 첫번째 스루 N-TH 디바이스 특정의 코드 매핑 모듈(15)을 포함한다.
매체 관리자(5)는 바람직하게 본 발명의 공통 애플리케이션 인터페이스(API)으로 구현된다. 그러나, 하이 레벨 커맨드 프로세서(10)는 본 발명의 공통 API를 함께 구성하는 다수의 개별적인 API를 실질적으로 지원한다. 매체 관리자(5)는, 예를 들면 컴퓨터 판독가능한 디스크상으로부터 판독가능한 머신에 저장되는 소프트웨어로 구현될 수도 있다.
개별적인 API는 적어도 2개의 클래스의 멤버 함수에 대응한다. 제 1 클래스인 SERVER는 도 3에 도시된 매체 서버(130)를 나타내는 객체를 규정한다. 그러나, SERVER 클래스는 매체 서버 및 매체 아카이브를 모두 수용하기 위해, 제 3 클래스인 MEDIA_DEVICE로부터 도출될 수도 있다. 따라서, 매체 아카이브(140)를 나타내는 객체를 규정하는 제 4 클래스인 ARCHIVE가 제공될 수도 있다. 그러나, 클래스를 구성하는 멤버 함수는 SERVER 클래스에 제공된 함수와 유사하기 때문에 ARCHIVE 클래스에 대한 설명은 생략한다. 매체 아카이브에 대한 설명은 A MULTIMEDIA DATA STORAGE SYSTEM INCLUDING A MEDIA SERVER AND MEDIA ARCHIVE AND A METHOD OF MANAGING THE MEDIA SERVER AS A CACHE DEVICE FOR THE MEDIA ARCHIVE 이란 명칭의 미국 특허에서 찾아볼 수 있으며, 이는 이하 전 범위에서 참조 자료로 인용된다.
제 2 클래스인 CONTENT는 객체 또는 그 일부의 물리적 포맷의 논리적 기술부를 나타내는 객체를 규정한다. 일예로서, 동일한 포맷을 갖는 객체가 CONTENT 클래스를 공유할 수 있다. 요구 애플리케이션은 CONTENT 클래스의 멤버 함수를 통해 임의의 매체 디바이스(25)와 상호작용하여 이들 매체 디바이스(25)내에 저장된 객체에 관한 정보를 획득할 수 있다.
상기한 멤버 함수는 첨부된 APPENDIX에서 보다 상세하게 기술된다. 이하에서는 이러한 멤버 함수를 내장하는 개별적인 API가 상세하게 기술된다.
서버 애플리케이션 인터페이스
CLOSE API는 개방 매체 객체를 닫기 위해 제공된다. 또한, CLOSE API는 CONTENT 클래스의 인스턴스를 파괴한다.
CLOSE_SESSION API는 개방 세션을 닫기 위해 제공된다. 세션에 할당된 모든 자원은 CLOSE_SESSION API의 사용과 함께 해제될 것이다.
COPY_MEDIA API는 하나의 서버로부터 하나 이상의 다른 서버로 매체 객체를 복사하기 위해 제공된다.
DELETE API는 서버 서브시스템으로부터 매체 객체를 제거하기 위해 제공된다.
EVENT_HANDLER API는 비동기 이벤트에 대한 제어를 조건적으로 수신하기 위해 제공된다. 이벤트 마스크는 REGISTER_CALL_BACK API로 설정되고, 이벤트의 사양이 EVENT_HANDLER API에 전송되게 한다.
EVENT_MASK API는 현재의 이벤트 마스크를 반환하기 위해 제공된다.
GET_META_DATA API는 메타 데이터 화일을 형성하고 반환하기 위해 제공된다.
GET_MEDIA_STATUS API는 매체 객체의 상태를 획득하기 위해 제공된다.
INIT_SERVER API는 매체 관리자 클라이언트 라이브러리를 개시하기 위해 제공된다. 그러나, INIT_SERVER API는 요구 애플리케이션이 다른 매체 관리자 서비스를 요구하기 이전에 호출하는 첫번째 API이어야 한다.
LIST_MEDIA_GROUPS API는 구성된(configured) 매체 그룹 명칭의 리스트를 획득하기 위해 제공된다.
LIST_MEDIA_NAMES API는 특정 매체 그룹의 매체 객체와 연관된 매체 객체의 명칭 리스트를 획득하기 위해 제공된다.
OPEN API는 매체 객체로부터 데이터를 판독하거나 또는 매체 객체에 데이터를 기록하기 위해 후속의 호출에서 사용되는 CONTENT 클래스의 인스턴스를 반환하기 위헤 제공된다.
OPEN_SESSION API는 애플리케이션으로부터 비디오 서버 서브시스템까지의 세션을 개방하기 위해 제공된다.
REGISTER_CALL_BACK API는 매체 관리자 라이브러리를 갖는 EVENT_HNADLER API를 등록하기 위해 제공된다. 일단 등록되면, 이 애플리케이션은 필요한 경우 매체 디바이스로부터 비동기 이벤트 통지를 수신할 수 있다.
C_SERVER API는 특정의 매체 서버 유형에 대한 SERVER 클래스의 인스턴스를 생성하기 위한 생성자(constructor)로서 제공된다.
D_SERVER API는 특정의 매체 서버 유형에 대한 SERVER 클래스의 인스턴스를 파괴하기 위한 디폴트 파괴자(destructor)로서 제공된다.
UN_REGISTER_CALL_BACK API는 애플리케이션 이벤트 핸들러(event handler)를 등록 해제(unregister)하기 위해 사용된다. 이벤트 핸들러가 등록 해제되는 경우, 애플리케이션은 비동기 이벤트 통지를 수신하지 않을 것이다.
콘텐트 애플리케이션 프로그램 인터페이스
DESTAGE API는 매체 서버로부터 매체 아카이브로 매체 객체를 옮기기(즉, 전송) 위해 제공된다.
GET_MEDIA_ATTRIBUTE API는 매체 객체의 매체 속성을 획득하기 위해 제공된다.
GET_MEDIA_STATUS API는 매체 객체의 상태를 획득하기 위해 제공된다.
LOAD API는 현재의 매체 객체를 매체 디바이스에 복사하기 위해 제공된다. 매체 객체는 기록 모드에서 개방되어 있어야 한다. LOAD API는 비동기 특성을 갖는다(즉, 이것은 로드 동작을 개시한 후에 복귀된다) 로드 기능의 진행 방향은 GET_MEDIA_STATUS API를 호출함으로써 결정될 수 있다. 또한, LOAD API의 호출은 CLOSE API를 사용함으로써 취소될 수 있다.
READ API는 매체 객체의 데이터를 판독하기 위해 제공된다. READ API를 각각 연속적으로 사용하면 매체 객체내의 현재의 위치로부터 순차적인 수의 바이트가 판독된다. 매체 객체는 READ API를 호출하기 위해 개방되어 있어야 한다.
RETRIEVE API는 매체 서버로부터 매체 객체를 검색하기 위해 제공된다. RETRIEVE API는 GET_META_DATA API와 관련하여 사용된다.
SEEK API는 매체 객체내의 현재 바이트 위치를 설정하기 위해 제공된다. 그러나, SEEK API는 단지 READ API와 관련하여서만 사용될 수 있다. 따라서, 이것은 이하 기술되는 WRITE API와 관련하여 사용될 수는 없다. 또한, 매체 객체는 판독 모드에서 개방되어 있어야 한다.
SET_MEDIA_ATTRIBUTES API는 매체 객체의 매체 속성을 설정하기 위해 제공된다. 그러나, SET_MEDIA_ATTRIBUTES API를 호출하기 위해서는, 매체 객체가 기록 모드에서 개방되어 있어야 한다.
WRITE API는 매체 객체에 데이터를 기록하기 위해 사용된다. WRITE API를 각각 연속적으로 사용하면 매체 객체에 순차적인 수의 바이트가 기록된다. 그러나, WRITE API를 사용하기 위해서는 매체 객체가 개방되어 있어야 한다.
사용된 매체 디바이스의 유형에 따라, 앞서 기술된 개별적인 API의 일부가 다수의 액션으로 변환될 필요가 있으며 이 다수의 액션은 상기한 다른 개별적인 API의 몇몇을 사용하는 것을 포함한다. 일예로서, LOAD API는 OPEN API, COPY_MEDIA API, SET_MEDIA_ATTRIBUTE API, CLOSE API의 사용을 필요로 하는 액션 그룹으로 변환될 수 있다. 그리고 나서 액션 그룹은 특정 매체 디바이스(25)에 대응하는 디바이스 레벨 커맨드로 변환될 수 있다. 매체 디바이스(25)의 특정 하드웨어 구현에 따라, 이들 디바이스 레벨 커맨드는 액션 그룹과 관련하여 상기한 개별적인 API에 1대1 대응할 수 있다. 따라서, LOAD API와 연관된 디바이스 레벨 커맨드는 상기한 개별적인 API에 대응하는 OPEN 커맨드, COPY 커맨드, 적어도 하나의 SET_ATTRIBUTE 커맨드, CLOSE 커맨드를 포함할 수 있다.
이제 매체 관리자(5)의 동작이 도 2와 관련하여 기술될 것이다. 단계(50)에서, 하이 레벨 커맨드가 타겟 매체 디바이스와 함께 매체 관리자(5)에 의해 요구 애플리케이션(8)으로부터 수신된다. 이후, 단계(55)에서, 요구 애플리케이션(8)에 의해 제공된 정보에 따라 매체 관리자(5)의 하이 레벨 커맨드 프로세서(10)에 의해 비디오 서버 유형이 결정된다. 이어서, 단계(60)에서, 특정의 머신 유형에 대한 요구가 하이 레벨 커맨드 프로세서(10)에 의해 유효화된다.
단계(60)에서, 하이 레벨 커맨드가 하이 레벨 커맨드 프로세서(10)에 의해 디코딩되어 특정의 액션으로 분해된다. 단계(70)에서, 특정의 액션이 실행된다. 이후, 단계(75)에서, 디바이스 레벨 커맨드가 디바이스 특정의 코드 매핑 모듈(15)중 하나에 의해 특정의 액션으로부터 생성될 수 있다. 그 다음에, 단계(80)에서, 디바이스 레벨 커맨드가 디바이스 인터페이스(20)를 통해 대응하는 매체 디바이스(25)에 출력된다.
도 1에 도시된 본 발명의 매체 관리자를 내장하는 예시적인 멀티미디어 데이터 저장 시스템이 이하 도 3 및 도 4를 참조하여 기술되며, 여기에서 본 발명의 공통 API가 디지탈 라이브러리 환경에서 사용된다. 멀티미디어 데이터 저장 시스템은 컴퓨터 기반형 시스템에서 구현되는 라이브러리 클라이언트(100), 클라이언트 매체 출력 스테이션(110), 디지탈 라이브러리(120), 매체 서버(130), 매체 아카이브(140)를 포함한다. 클라이언트(100) 및 디지탈 라이브러리(120)간의 관계는 이하 도 4를 참조하여 보다 상세하게 설명되는데, 도 4는 디지탈 라이브러리(120)의 내부 구성요소를 또한 도시한다. 상기한 바와 같이, 디지탈 라이브러리(120)의 내부 구조는 미국 특허 공보 제 5,649,185 호에 또한 개시되어 있다.
도 4에 도시한 바와 같이, 디지탈 라이브러리(120)는 라이브러리 서버(210)와, 라이브러리 클라이언트(100)와 상호작용하는 적어도 하나의 매체 객체 서버(220)를 포함한다. 또한, 통신 분리기(isolator)가 디지탈 라이브러리에 제공되며, 이 통신 분리기는 라이브러리 서버(210), 매체 객체 서버(220), 라이브러리 클라이언트(100)가 복잡한 통신 프로토콜에 신경쓸 필요없이 서로 통신할 수 있게 한다. 라이브러리 서버(210), 매체 객체 서버(220), 라이브러리 클라이언트(100)는 근거리 통신망(LAN) 또는 광역 통신망(WAN)과 같은 통신 네트워크에 의해 접속된다.
매체 객체 서버(220) 및 클라이언트(100)가 이들 플랫폼상에서 실행되는 애플리케이션에 의해 생성된 커맨드를 매체 서버(130)로 출력하지만, 이들 커맨드는 이들을 수신하는 특정 매체 서버(130)를 제어하기 위해 디바이스 레벨 커맨드로 변환되어야 한다. 따라서, 커맨드는 매체 관리자(5)에 내장된 공통 API를 통해 매체 서버(130)로 전송된다. 도 4에서는 매체 관리자(5)가 매체 객체 서버(220)에 포함되는 것으로서 도시되어 있으나, 매체 관리자(5)는 매체 서버(130)에 포함될 수도 있다.
상기한 바와 같이, 공통 애플리케이션 프로그램 인터페이스는 매체 객체 서버(220)가 상이한 동작 특성을 갖는 매체 서버(130)와 상호작용할 수 있게 한다. 인터페이스는 매체 객체 서버(220) 또는 클라이언트(100)상에서 실행되는 애플리케이션에 의해 생성된 일반 인스트럭션 또는 커맨드를 특정 매체 서버(130)로 출력되는 디바이스 레벨 커맨드에 매핑되는 특정의 액션으로 변환함으로써 이러한 목적을 성취한다. 따라서, 공통 애플리케이션 프로그램 인터페이스는 해당 매체 서버(130)에 대한 커맨드를 생성하기 위해 특정의 매체 서버(130)의 특질을 고려할 필요가 없음을 보장한다.
또한, 상기한 바와 같이, 애플리케이션은 이들 매체 서버(130)내에 저장된 객체에 관한 정보를 획득하기 위해 CONTENT 클래스의 멤버 함수를 통해 각각의 매체 서버(130)와 상호작용할 수 있다.
상기한 개별적인 API는 통상 라이브러리 클라어언트(100)에 의해 라이브러리 서버(210)로 전송되는, 매체 객체를 저장하고, 검색하며, 갱신하라는 요구와 관련하여 사용된다. 멀티미디어 데이터 저장 시스템 내에서의 매체 객체의 저장, 검색, 갱신은 이하 보다 상세하게 기술될 것이다.
특정 매체 객체를 검색하거나 또는 갱신하라는 요구가 라이브러리 클라이언트(100)에 의해 생성되는 경우, 라이브러리 서버(210)는 멀티미디어 데이터 저장 시스템내에 저장된 매체 객체의 인덱스를 탐색함으로써 매체 객체가 멀티미디어 데이터 저장 시스템내에 위치하는지 여부를 판정한다.
일단 멀티미디어 데이터 저장 시스템내에 매체 객체가 저장되어 있는 것으로 라이브러리 서버(210)가 판정하면, 매체 객체의 물리적 위치에 대한 제어를 보유하는 매체 객체 서버(220)로 요구를 전송한다. 매체 객체는 매체 객체 서버(220) 자체에 저장될 수도 있고, 매체 서버(130)에 저장될 수도 있으며, 또는 매체 객체 서버(220)와 연관된 매체 아카이브(140)에 저장될 수도 있다. 이후, 라이브러리 서버(210)는 요구를 반영하기 위해 라이브러리 서버(220)가 접속되는 라이브러리 카탈로그(212)에 저장된 매체 객체 인덱스 및 기술적 정보(descriptive information)를 갱신할 수 있다.
매체 객체를 검색하거나 또는 갱신하는 요구를 수신한 후에, 매체 객체 서버(220)는 요구에 포함되는 식별자에 따라 특정 유형의 매체 객체(즉, 오디오 또는 비디오 기반형 화일)를 식별한다. 이후, 객체 서버(220)는 매체 객체가 객체 저장 장치(222)내에 국부적으로 위치하는지 또는 매체 아카이브(140)내에 또는 매체 서버(130)중 하나의 원격 위치에 위치하는지의 여부를 식별할 것이다.
매체 서버가 매체 아카이브(140)에 위치하는 것으로 매체 객체 서버(220)가 판정하면, 매체 객체의 유형에 따라, 매체 객체 서버(220)는 매체 관리자(5)를 통해 매체 아카이브(140)로 커맨드를 출력하고, 이 매체 아카이브(140)는 매체 객체를 적절한 매체 서버(130)로 전송하도록 지시한다.
이후, 매체 객체를 수신하는 매체 서버(130)는 매체 관리자(5)를 통해 매체 객체 서버(220)로부터, 매체 객체를 출력하라는 커맨드의 수신시 객체를 클라이언트 매체 출력 스테이션(110)으로 출력할 것이다. 일예로서, 클라이언트 매체 출력 스테이션(110)은 CRT 튜브 또는 평판 디스플레이를 포함하는 텔레비전, 방송 모니터, 또는 컴퓨터 모니터와 같은 비디오 디스플레이일 수 잇다.
다른 방안에서, 일단 매체 객체가 매체 서버(130)에 저장되어 있으면, 매체 객체 서버(220)는 매체 객체에 관한 제어 정보를 클라이언트(110)로 전송하고, 이 클라이언트(100)는 매체 관리자(5)를 통해 매체 서버(130)에게 매체 객체를 클라이언트 매체 출력 스테이션(110)으로 출력하도록 지시한다. 일예로서, 매체 객체는 비동기 전송 모드(ATM) 기반형 비디오 스트림으로서 출력될 수도 있다. 또한, 클라이언트 매체 출력 스테이션(110)은 클라이언트(100)로부터 분리되거나, 또는 클라이언트(100)내에 포함될 수도 있다.
매체 객체가 멀티미디어 데이터 저장 시스템내로 저장되거나 또는 로드되도록 클라이언트(100)가 요구하면, 라이브러리 서버(210)는 매체 객체에 관한 인덱싱 정보를 분류한다. 이어서, 라이브러리 서버(210)는 객체 서버(220)가 매체 객체에 대응하는 제어 정보를 저장할 것을 요구한다. 이후, 매체 객체 서버(220)는 매체 관리자(5)를 통해 매체 서버(130)로 커맨드를 송출한다. 이 커맨드에 따라, 매체 서버(130)는 클라이언트(100)로부터 매체 서버(130) 자체내로 매체 객체를 로드할 것이다. 클라이언트(100)는 매체 서버(130)로 매체 객체를 전송하여 로딩 프로세스를 완료할 것이다.
상기한 멀티미디어 데이터 저장 시스템에서는 디지탈 라이브러리와 관련하여 기술되었으나, 본 발명의 매체 관리 방안은 상이하게 구성되는 멀티미디어 데이터 저장 시스템에서 구현될 수도 있다. 또한, 본 발명의 매체 관리 방안에 대한 다른 변형 및 수정은 전술한 개시 내용으로부터 당업자에게 명백할 것이다. 따라서, 본 발명의 특정 실시예만이 특히 기술되었으나, 본 발명의 정신 및 범위로부터 벗어나지 않고 다양한 변형이 이루어질 수 있음이 명백해질 것이다.
상기한 바와 같은 본 발명에 따르면, 매체 서버에 공통 인터페이스를 제공하는 강력한 관리 방안을 제공하고, 시스템내에 포함된 매체 서버와 상호작용하는 애플리케이션으로부터 매체 서버 특정의 디바이스 커맨드를 은닉하는 매체 서버에 공통 인터페이스를 제공할 수 있게 된다.
APPENDIX
서버 클래스 멤버 함수
CLOSE
개방된 매체 객체를 닫고 CONTENT 클래스 인스턴스를 파괴한다.
파라미터:
CONTENT 클래스 인스턴스의 표시자.
반환 코드:
제 1 코드는 동작이 성공적으로 수행되었는지 여부를 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였는지 여부를 표시한다.
제 3 코드는 동작이 실패하였는지 여부를 표시한다.
CLOSE_SESSION
개방된 세션을 닫는다. 세션에 할당된 모든 자원이 해제될 것이다.
파라미터:
없음.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 무효 매체 그룹이 지정되었음을 표시한다.
제 4 코드는 매체 서버를 찾을 수 없음을 표시한다.
제 5 코드는 동작이 실패하였음을 표시한다.
COPY_MEDIA
하나의 매체 서버로부터 하나 이상의 다른 매체 서버로 매체 객체를 복사한다.
복사 동작이 취해질 수 있는 시간 길이 때문에, COPY_MEDIA 멤버 함 수 메써드(method)는 비동기적으로 동작한다. 즉, 이것은 복사 동작 을 개시한 후에 복귀된다. 복사 동작의 진행 방향은 GET_MEDIA_STATUS 멤버 함수를 호출함으로써 결정될 수 있다. 복사 동작은 CLOSE 멤버 함수를 호출함으로써 취소될 수 있다.
파라미터:
매체 명칭의 표시자.
복사 동작을 어디에서 개시해야 할지를 나타내는 바이트 오프셋의 표 시자.
복사 동작을 어디에서 종료해야 할지를 나타내는 바이트 오프셋의 표 시자. 매체 객체의 끝을 표시하기 위해 제로값이 지정될 수 있다.
MEDIA_LOCATION 구조의 어레이 표시자. 각각의 MEDIA_LOCATION 구조 는 특정 복사 동작에 대해 하나의 타겟 위치를 지정한다. MEDIA_LOCATION 구조는 구조의 크기, 사용자의 수, 매체 서버 명칭, 매체 그룹 명칭, 매체 객체 명칭을 표시한다.
매체 객체가 복사될 위치의 수.
CONTENT 인스턴스의 포인터 표시자.
반환 코드:
제 1 코드는 동작이 성공적으로 수행되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 매체 명칭이 무효임을 표시한다.
제 4 코드는 무효 매체 그룹(즉, 매체 객체의 그룹)이 지정되었음을 표시한다.
제 5 코드는 지정된 매체 명칭이 발견될 수 없음을 표시한다.
제 6 코드는 복사 동작이 실패하였음을 표시한다.
DELETE
매체 서버로부터 매체 객체를 제거한다.
파라미터:
매체 명칭의 표시자.
매체 객체를 제거하는 조건. 일예로서, 이 파라미터는 모든 자원이 비활성인 경우에만 매체 객체가 제거되도록 지정할 수 있다. 이와 달리, 이 파라미터는 자원을 이용불가능한 것으로서 표시할 수도 있고, 매체 객체가 더 이상 사용되지 않을 때까지 제거를 지연 할 수도 있다.
반환 코드:
제 1 코드는 동작이 성공적으로 수행되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 지정된 매체 명칭이 발견되지 않았음을 표시한다.
제 4 코드는 지정된 매체 객체가 사용중임을 표시한다.
제 5 코드는 지정된 매체 명칭이 무효임을 표시한다.
제 6 코드는 제거 동작이 실패하였음을 표시한다.
EVENT_HANDLER
비동기 이벤트에 대한 제어를 조건적으로 수신한다. REGISTER_CALL_BACK 멤버 함수로 설정된 이벤트 마스크는 지정된 이 벤트가 EVENT_HANDLER 멤버 함수로 전송될 수 있게 한다.
파라미터:
이벤트 구조의 표시자.
일예로서, 이벤트 구조는 이벤트 구조의 크기, 이벤트 유형, 매체 이 벤트, 에러 이벤트를 지정할 수 있다. 매체 이벤트 구조는 CONTENT 클래스의 표시자, 이벤트 유형, 특정 위치 또는 화일 어레이로의 인 덱스를 지정한다. 에러 이벤트 구조는 에러의 발생과 연관된 특정 이벤트를 지정한다.
이벤트는 매체 서버에 의해 매체 관리자에 전송된 비동기 메시지이 다.
반환 코드:
이 멤버 함수는 반환 유형을 갖지 않는다.
GET_EVENT_MASK
현재의 이벤트 마스크를 반환한다.
파라미터:
이벤트 마스크의 표시자.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 이벤트 마스크가 규정되지 않음을 표시한다.
GET_META_DATA
메타 데이터 화일을 형성하고 반환한다.
파라미터:
매체 명칭의 표시자.
재생이 자동적으로 개시될 지, 또는 재생 액션 때까지 지연될 지의 여부를 표시하는 값.
사용자 데이터의 크기.
사용자가 규정한 데이터 값의 표시자.
상태 정보를 수신하는 MEDIA STATUS 구조의 표시자. MEDIA STATUS 구조는 구조의 크기, 현재의 길이(바이트), 매체 복사 속도, 매체 개 방 모드, 생성 날짜, 가장 최근의 변경 날짜, 가장 최근의 액세스 날 짜를 지정한다.
메타 데이터 정보를 수신하는 버퍼의 표시자.
버퍼의 크기.
반환 코드:
제 1 코드는 동작이 성공적으로 수행되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 지정된 매체 명칭이 무효임을 표시한다.
제 4 코드는 지정된 매체 명칭이 유효임을 표시한다.
제 5 코드는 지정된 매체 명칭이 발견되지 않았음을 표시한다.
제 6 코드는 동작이 실패하였음을 표시한다.
제 7 코드는 동작에 대해 불충분한 디스크 대역폭이 존재함을 표시한 다.
제 8 코드는 무효 매체 그룹이 지정되었음을 표시한다.
제 9 코드는 지정된 매체 서버상에서 이 동작이 이용가능하지 않음을 표시한다.
GET_MEDIA_STATUS
매체 객체의 상태를 획득한다.
파라미터:
매체 명칭의 표시자.
상태 정보를 수신하기 위해 사용되는 MEDIA_STATUS 구조의 표시자. MEDIA_STATUS 구조는 구조의 크기, 매체 객체의 현재 바이트 길이, 매체 복사 속도, 매체 개방 모드, 매체 객체의 생성 날짜, 매체 객체 의 최종 변경 날짜, 매체 객체의 최종 액세스 날짜를 지정한다.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었는 지의 여부를 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였는 지의 여부를 표시한다.
제 3 코드는 지정된 매체 명칭이 무효인 지의 여부를 표시한다.
제 4 코드는 동작이 실패하였는지의 여부를 표시한다.
INIT_SERVER
매체 관리자 클라이언트 라이브러리를 개시한다. 이 멤버 함수는 애 플리케이션이 다른 매체 관리자 서비스를 요구하기 이전에 송출하고 첫번째 호출이어야 한다.
파라미터:
매체 관리자에 의해 지원되는 세션의 최대 수.
현재 버전의 표시자.
반환 코드:
제 1 코드는 동작이 성공적으로 수행되었는 지의 여부를 표시한다.
제 2 코드는 이용가능한 더 이상의 자원이 없음을 표시한다.
제 3 코드는 동작이 실패하였음을 표시한다.
LIST_MEDIA_GROUPS
구성된 매체 그룹 명칭의 리스트를 획득한다.
파라미터:
매체 그룹 명칭 및 유형을 지정할 MEDIA_GROUPS_STRUCTURE 구조 어레 이의 표시자. 매체 그룹 명칭은 가변 길이 스트링이다. 매체 그룹 유형은 디폴트 및 현재의 매체 그룹을 포함한다.
그룹 어레이의 바이트 크기의 표시자.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 매체 서버를 찾을 수 없음을 표시한다.
제 4 코드는 동작이 실패하였음을 표시한다.
LIST_MEDIA_NAMES
매체 그룹과 연관된 매체 명칭 리스트를 획득한다.
파라미터:
매체 그룹 명칭의 표시자.
매체 명칭의 버퍼를 지정하는 표시자. 버퍼내의 각 매체 명칭은 가 변 길이 스트링이다.
버퍼에 반환된 엔트리 수의 표시자.
버퍼 크기의 표시자.
매체 명칭 리스트의 시작 위치를 나타내는 표시자.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 동작이 실패하였음을 표시한다.
OPEN
매체 객체로부터 데이터를 판독하거나 또는 매체 객체에 데이터를 기 록하는 후속적인 호출시에 사용되는 CONTENT 클래스 인스턴스를 반환 한다
파라미터:
매체 명칭의 표시자.
판독 또는 기록 동작 모드에 대응하는 동작 모드. 이 파라미터와 함 께 지정될 수 있는 몇개의 옵션이 존재한다. 즉, 매체 객체가 특정 한 용도를 위해 제공되는지의 여부에 대한 표시가 제공될 수 있다. 아직 존재하지 않는 경우에는 매체 객체가 생성될 수 있도록 표시가 또한 제공될 수 있다. 매체 객체로부터 콘텐트가 절단되어야 하는지 에 대한 표시가 또한 제공될 수 있다. 또한, 매체 객체의 끝 위치에 대한 표시가 제공될 수 있다.
매체 객체가 판독되거나 또는 기록될 초 당 비트 속도.
CONTENT 클래스 인스턴스에 대한 포인터의 위치.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 지정된 매체 명칭이 발견되지 않았음을 표시한다.
제 4 코드는 무효 모드가 지정되었음을 표시한다.
제 5 코드는 무효 복사 속도가 지정되었음을 표시한다.
제 6 코드는 매체 객체가 공유될 수 없음을 표시한다.
제 7 코드는 특정 매체 객체가 사용중이기 때문에, 배타적 사용에 대 한 요구가 거부됨을 표시한다.
제 8 코드는 매체 명칭이 이미 존재함을 표시한다.
제 9 코드는 동작이 실패하였음을 표시한다.
OPEN_SESSION
애플리케이션으로부터 매체 서버까지 세션을 개방한다.
파라미터:
세션을 설정하는 매체 서버의 호스트 명칭.
매체 그룹의 명칭.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 동작이 실패하였음을 표시한다.
제 4 코드는 매체 객체를 찾을 수 없음을 표시한다.
제 5 코드는 무효 매체 그룹이 지정되었음을 표시한다.
제 6 코드는 무효 서버 명칭이 지정되었음을 표시한다.
REGISTER_CALL_BACK
매체 관리자를 갖는 애플리케이션 이벤트 핸들러를 등록한다. 일단 등록되면, 애플리케이션은 필요할 때 매체 서버로부터 비동기 이벤 트 통지를 수신할 수 있다.
파라미터:
EVENT_HANDLER 메써드 함수에 대해 어떤 이벤트가 전송되는지를 선택 하기 위해 사용되는 이벤트 마스크(즉, 비트 마스크).
다음의 이벤트 마스크를 수반하는 논리적 동작을 이용하여 이벤트 마 스크가 진행된다. 제 1 이벤트 마스크는 포트(port)의 상태 변화를 표시한다. 제 2 이벤트 마스크는 매체 객체의 상태 변화를 표시한 다. 제 3 이벤트 마스크는 에러가 발생하였음을 표시한다. 제 4 이 벤트 마스크는 매체 스트림의 상태 변화를 표시한다. 제 4 이벤트 마스크는 이벤트 통지를 표시한다.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 무효 이벤트 유형이 지정되었음을 표시한다.
제 4 코드는 동작이 실패하였음을 표시한다.
C_SERVER
특정의 매체 서버 유형에 대한 SERVER 클래스의 인스턴스를 생성하는 생성자로서 동작한다.
파라미터:
SERVER 클래스 인스턴스내에 생성될 지원 레벨.반환 코드:
반환 코드:
없음.
D_SERVER
SERVER 클래스 인스턴스에 대해 파괴자로서 동작한다.
파라미터:
없음.
반환 코드:
없음.
UN_REGISTER_CALL_BACK
애플리케이션 이벤트 핸들러를 등록 해제한다. 이벤트 핸들러가 등 록 해제되어 있는 경우, 애플리케이션은 비동기 이벤트 통지를 수신 하지 않을 것이다.
파라미터:
없음.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 세션 핸들러가 손상되었음을 표시한다.
제 4 코드는 동작이 실패하였음을 표시한다.
CONTENT CLASS MEMBER FUNCTIONS
DESTAGE
매체 서버로부터 매체 아카이브로 매체 객체를 전송한다. 이 멤버 함수는 다른 멤버 함수에 의존한다. 특히, 이 멤버 함수는 DELETE 멤버 함수를 호출하여 매체 아카이브에 매체 객체가 있는 경우 매체 객체를 제거하고, COPY 함수를 호출하여 매체 객체를 비디오 아카이 브로 전달한다.
GET_MEDIA_ATTRIBUTE
지정된 매체 객체의 매체 속성을 획득한다.
파라미터:
MEDIA_ATTRIBUTE 구조의 표시자. MEDIA_ATTRIBUTE 구조는 구조의 크 기, 재생 속도(프레임/초), 재생 속도(비트/초), 예상되는 사용자 수, 매체 객체의 유형, 재생 동안 매체 객체의 지속 기간을 지정한 다.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 동작이 실패하였음을 표시한다.
GET_MEDIA_STATUS
매체 객체의 상태를 획득한다.
파라미터:
상태 정보를 수신하는 MEDIA_STATUS 구조의 표시자. MEDIA_STATUS 구조는 이 구조의 크기, 현재의 길이(바이트), 매체 복사 속도, 매체 개방 모드, 생성 날짜, 매체 객체가 최종 변경된 날짜, 매체 객체가 최종 액세스된 날짜를 지정한다.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었음을 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였음을 표시한다.
제 3 코드는 동작이 실패하였음을 표시한다.
LOAD
현재의 매체 객체를 클라이언트로부터 매체 서버로 복사한다. 매 체 객체는 기록 모드에서 개방되어 있어야 한다. 이 멤버 함수는 비 동기 함수로서, 즉 이것은 로드 동작을 개시한 후에 반환된다. 이 멤버 함수의 진행 방향은 GET_MEDIA_STATUS 멤버 함수를 호출함으로 써 결정될 수 있다. 그러나, 이 동작은 CLOSE 멤버 함수를 호출함으 로써 취소될 수 있다.
파라미터:
MEDIA_STRUCTURE 구조의 표시자. MEDIA_STRUCTURE 구조는 구조의 크 기, 매체 객체의 유형, 재생 동안 매체 객체의 지속 기간, 재생 속도 (프레임/초), 재생 속도(비트/초), 예상되는 사용자 수, 매체 객체의 명칭을 규정한다.
매체 객체(들)가 전송될 근원의 호스트 명칭.
호스트 명칭 파라미터에 의해 지정된 호스트의 사용자 ID.
사용자 ID 파라미터에 의해 지정된 사용자 ID의 패스워드.
화일 명칭 어레이. 어레이내의 모든 화일이 모두 결합되어 단일 매 체 객체를 형성할 수 있다. 특정의 매체 서버가 매우 큰 화일을 지 원하지 않더라도 매우 큰 매체 객체가 생성될 수 있게 한다.
화일 명칭 어레이내의 화일 명칭의 수.
상태 정보를 수신하는데 사용되는 MEDIA_STATUS 구조의 표시자. MEDIA_STATUS는 구조의 크기, 현재의 길이(바이트), 매체 객 체 복사 속도, 매체 객체 개방 모드, 매체 객체의 생성 날짜, 매체 객체가 최종 변경된 날짜, 매체 객체가 최종 액세스된 날짜를 지정한 다.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었는 지의 여부를 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였는 지의 여부를 표시한다.
제 3 코드는 무효 매체 서버 명칭이 지정되었음을 표시한다.
제 4 코드는 무효 서버 명칭이 지정되었음을 표시한다.
제 5 코드는 동작이 실패하였음을 표시한다.
제 6 코드는 매체 서버에 불충분한 공간이 있음을 표시한다.
제 7 코드는 매체 서버에 불충분한 디스크 대역폭이 있음을 표시한 다.
READ
지정된 매체 객체의 데이터를 판독한다. 멤버 함수에 대한 각각의 연속적인 호출은 현재의 위치로부터 순차적인 수의 바이트를 판독한 다. 매체 객체는 이 멤버 함수를 호출하기 위해 판독 모드에서 개방 되어 있어야 한다.
파라미터:
데이터가 전송되는 포인터의 표시자.
판독될 바이트 수.
실질적으로 판독된 바이트 수.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었는지 여부를 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였는지 여부를 표시한다.
제 3 코드는 동작이 실패하였음을 표시한다.
RETRIEVE
매체 서버로부터 매체 객체를 검색한다. 이 멤버 함수는 다른 멤버 함수를 호출한다. 특히, 매체 서버에 매체 객체가 이미 저장되어 있 지 않으면, COPY 멤버 함수가 호출된다. 이어서, 메타 데이터 정보 를 검색하기 위해 GET_META_DATA멤버 함수가 호출된다.
SEEK
매체 객체내의 현재 바이트 위치를 설정한다. 이 멤버 함수는 단 지 READ 멤버 함수와 관련하여 동작한다. 매체 객체는 동작이 개시 되기 위해 판독 모드에서 개방되어 있어야 한다. 이것은 기록 동작 동안 효력이 없다.
파라미터:
오프셋 파라미터가 사용되는 방법에 대한 표시자. 다음의 지원 옵션 이 또한 지정될 수 있다. 제 1 지원 옵션은 매체 바이트 위치를 오 프셋 파라미터의 값으로 설정한다. 제 2 지원 옵션은 매체 바이트 위치를 그 현재의 위치 + 오프셋 파라미터로 설정한다. 제 3 지원 옵션은 매체 바이트 위치를 매체의 끝으로 설정한다.
판독되는 매체 객체에 대한 바이트 오프셋의 표시자.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었는지 여부를 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였는지 여부를 표시한다.
제 3 코드는 동작이 실패하였음을 표시한다.
SET_MEDIA_ATTRIBUTE
매체 객체의 매체 속성을 설정한다. 이 멤버 함수를 사용하기 위해 서 매체 객체는 기록 모드에서 개방되어 있어야 한다.
파라미터:
MEDIA_ATTRIBUTE 구조의 표시자. MEDIA_ATTRIBUTE 구조는 이 구조의 크기, 속성 플래그, 매체 객체의 유형, 매체 객체의 지속 기간, 재생 속도(프레임/초), 재상 속도(비트/초), 예상되는 사용자 수, 매체 객 체의 명칭을 지정한다.
속성 플래그는 기본 속성 플래그의 조합을 이용하여 형성된 비트 마 스크이다. 기본 속성 플래그는 구조내에서 어떤 값이 설정되는지를 지정한다. 기본 자원 속성 플래그는 매체 객체 명칭, 매체 객체 유형, 매체 객체의 지속 기간, 매체 객체 프레임 속도, 매체 객체 비 트 속도, 예상되는 사용자 수, 매체 객체의 모든 속성을 설정한다.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었는지 여부를 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였는지 여부를 표시한다.
제 3 코드는 동작이 실패하였음을 표시한다.
WRITE
매체 객체에 데이터를 기록한다. 이 멤버 함수에 대한 각각의 순차 적인 호출은 순차적인 수의 바이트를 기록한다.
파라미터:
기록될 데이터의 근원이 되는 포인터의 표시자.
기록될 바이트 수.
실질적으로 기록된 바이트 수.
반환 코드:
제 1 코드는 동작이 성공적으로 완료되었는 지의 여부를 표시한다.
제 2 코드는 매체 서버가 에러를 통지하였는 지의 여부를 표시한다.
제 3 코드는 동작이 실패하였음을 표시한다.

Claims (41)

  1. 하이 레벨 포괄 커맨드를 디바이스 레벨 커맨드로 변환하여 다수의 매체 디바이스로 출력하는 애플리케이션 인터페이스(API)를 내장하는 매체 관리자에 있어서,
    하이 레벨 포괄 커맨드를 디코딩하는 하이 레벨 커맨드 프로세서와,
    상기 하이 레벨 커맨드 프로세서에 의해 하이 레벨 포괄 커맨드를 디바이스 레벨 커맨드로 변환하는 다수의 디바이스 특정의 코드 매핑 모듈─상기 다바이스 레벨 커맨드의 각각은 상기 다수의 디바이스 특정의 코드 매핑 모듈중 한 모듈로부터 상기 다수의 매체 디바이스중 대응하는 한 디바이스로 출력된다─을 포함하는
    매체 관리자.
  2. 제 1 항에 있어서,
    상기 하이 레벨 커맨드 프로세서는 공통 API에 대응하는 다수의 개별적인 API를 포함하고, 개별적인 API 각각은 특정의 기능을 처리하는 매체 관리자.
  3. 제 1 항에 있어서,
    상기 다수의 디바이스 특정의 코드 매핑 모듈로부터 출력된 상기 디바이스 레벨 커맨드의 각각을 수신하고 상기 다수의 매체 디바이스중 대응하는 한 디바이스로 상기 디바이스 레벨 커맨드의 각각을 출력하는 디바이스 인터페이스를 더 포함하는 매체 관리자.
  4. 제 2 항에 있어서,
    상기 매체 디바이스의 각각은 하나의 매체 아카이브 및 적어도 하나의 매체 서버를 포함하고, 상기 매체 디바이스의 각각은 매체 객체를 저장하는 매체 관리자.
  5. 제 4 항에 있어서,
    상기 매체 아카이브 및 매체 서버는 디지털 라이브러리를 포함하는 멀티미디어 데이터 저장 시스템에 포함되는 매체 관리자.
  6. 제 4 항에 있어서,
    상기 개별적인 애플리케이션 인터페이스는 매체 서버를 나타내는 객체 및 매체 객체의 물리적 포맷의 논리적 기술을 나타내는 객체를 규정하는 클래스와 연관된 멤버 함수를 나타내는 매체 관리자.
  7. 제 1 항에 있어서,
    상기 다수의 디바이스 특정의 코드 매핑 모듈은 하이 레벨 포괄 커맨드를 특정의 액션으로 변환하고 상기 특정의 액션을 디바이스 레벨 커맨드로 변환하는 매체 관리자.
  8. 다수의 매체 디바이스에 대해 애플리케이션 인터페이스(API)를 구현하는 방법에 있어서,
    컴퓨터 애플리케이션으로부터 다수의 하이 레벨 포괄 커맨드를 수신하는 단계와,
    상기 다수의 하이 레벨 포괄 커맨드를 디바이스 레벨 커맨드로 변환하는 단계와,
    상기 디바이스 레벨 커맨드의 각각을 상기 매체 디바이스의 하나로 출력하는 단계를 포함하는
    애플리케이션 인터페이스 구현 방법.
  9. 제 8 항에 있어서,
    상기 변환 단계는 특정의 기능을 각각 수행하는 다수의 개별적인 API를 이용하여 상기 다수의 하이 레벨 포괄 커맨드를 변환하는 단계를 포함하는 애플리케이션 인터페이스 구현 방법.
  10. 제 8 항에 있어서,
    상기 변환 단계는 상기 다수의 하이 레벨 포괄 커맨드를 특정의 액션으로 변환하는 단계와, 상기 특정의 액션을 디바이스 레벨 커맨드로 변환하는 단계를 포함하는 애플리케이션 인터페이스 구현 방법.
  11. 제 8 항에 있어서,
    상기 하이 레벨 포괄 커맨드의 각 커맨드는 매체 디바이스 유형 식별자와 함께 수신되고,
    상기 변환 이전에, 상기 매체 디바이스 유형이 상기 매체 디바이스중 하나의 디바이스에 대응하는지의 여부가 판정되며,
    상기 디바이스 레벨 커맨드의 각각은 상기 다수의 매체 디바이스중 상기 매체 디바이스 유형인 대응하는 한 디바이스로 출력되는 애플리케이션 인터페이스 구현 방법.
  12. 컴퓨터 판독가능한 매체를 포함하는 컴퓨터 프로그램 제품에 있어서,
    하이 레벨 포괄 커맨드를 디코딩하는 수단과,
    상기 하이 레벨 포괄 커맨드를 디바이스 레벨 커맨드로 변환하는 수단과,
    상기 디바이스 레벨 커맨드의 각각을 대응하는 매체 디바이스로 출력하는 수단을 포함하는
    컴퓨터 프로그램 제품.
  13. 제 12 항에 있어서,
    상기 변환 수단은 하이 레벨 포괄 커맨드를 특정의 액션으로 변환하고 상기 특정의 액션을 상기 디바이스 레벨 커맨드로 변환하는 컴퓨터 프로그램 제품.
  14. 컴퓨터 애플리케이션으로부터 수신된 하이 레벨 포괄 커맨드를, 매체 객체를 저장하는 매체 서버를 포함하는 다수의 매체 디바이스에 출력되는 디바이스 레벨 커맨드로 변환하는 애플리케이션 프로그램 인터페이스(API)에 있어서,
    상기 API는 특정의 기능을 각각 수행하는 다수의 개별적인 API를 포함하는
    공통 애플리케이션 프로그램 인터페이스.
  15. 제 14 항에 있어서,
    상기 다수의 개별적인 API는 제 1 및 제 2 그룹 개별적인 API를 포함하고, 상기 제 1 그룹의 개별적인 API는 매체 서버를 나타내는 객체를 규정하는 클래스와 연관된 제 1 그룹의 멤버 함수에 대응하며, 상기 제 2 그룹의 개별적인 API는 매체 객체의 물리적 포맷의 논리적 기술을 나타내는 객체를 규정하는 클래스와 연관된 제 2 그룹의 멤버 함수에 대응하는 공통 애플리케이션 인터페이스.
  16. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 개방된 매체 객체를 닫는 CLOSE API를 포함하는 공통 애플리케이션 인터페이스.
  17. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 개방된 세션을 닫는 CLOSE_SESSION API를 포함하는 공통 애플리케이션 인터페이스.
  18. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 상기 매체 서버중 하나의 서버부터 상기 매체 서버중 다른 하나의 서버로 매체 객체를 복사하는 COPY_MEDIA API를 포함하는 공통 애플리케이션 인터페이스.
  19. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 상기 다수의 매체 서버중 하나의 서버부터 매체 객체를 제거하는 DELETE API를 포함하는 공통 애플리케이션 인터페이스.
  20. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 비동기 이벤트를 처리하기 위한 제어를 조건적으로 수신하는 EVENT_HANDLER API를 포함하는 공통 애플리케이션 인터페이스.
  21. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 현재의 이벤트 마스크를 반환하는 EVENT_MASK API를 포함하는 공통 애플리케이션 인터페이스.
  22. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 메타(meta) 데이터 화일을 형성하고 반환하는 GET_META_DATA API를 포함하는 공통 애플리케이션 인터페이스.
  23. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 매체 객체의 상태를 획득하는 GET_MEDIA_STATUS API를 포함하는 공통 애플리케이션 인터페이스.
  24. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 공통 API를 포함하는 매체 관리자의 클래스 라이브러리(class library)를 초기화하는 INIT_SERVER API를 포함하는 공통 애플리케이션 인터페이스.
  25. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 구성된 그룹의 매체 객체에 대응하는 명칭 리스트를 획득하는 LIST_MEDIA_GROUPS API를 포함하는 공통 애플리케이션 인터페이스.
  26. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 특정 매체 그룹의 매체 객체와 연관된 매체 객체 명칭의 리스트를 획득하는 LIST_MEDIA_NAMES API를 포함하는 공통 애플리케이션 인터페이스.
  27. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 매체 객체로부터 데이터를 판독하거나 또는 매체 객체에 데이터를 기록하는데 각각 사용되는 제 2 클래스 인스턴스를 반환하는 OPEN API를 포함하는 공통 애플리케이션 인터페이스.
  28. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 매체 서버중 하나의 서버에 대해 세션을 개방하는 OPEN_SESSION API를 포함하는 공통 애플리케이션 인터페이스.
  29. 제 20 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 공통 애플리케이션 인터페이스에 대응하는 매체 관리자를 갖는 EVENT_HANDLER API를 등록하는 REGISTER_CALL_BACK를 포함하는 공통 애플리케이션 인터페이스.
  30. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 매체 서버중 적어도 한 서버에 대응하는 특정 유형의 매체 서버에 대한 제 1 클래스 인스턴스를 생성하는데 사용되는 생성자(constructor)인 C_SERVER API를 포함하는 공통 애플리케이션 인터페이스.
  31. 제 15 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 매체 서버중 적어도 한 서버에 대응하는 특정 서버 유형의 매체 서버에 대한 제 1 클래스 인스턴스를 파괴하는데 사용되는 디폴트 파괴자(default destructor)인 D_SERVER API를 포함하는 공통 애플리케이션 인터페이스.
  32. 제 20 항에 있어서,
    상기 제 1 그룹의 개별적인 API는 애플리케이션 이벤트 핸들러를 등록 해제(unregister)하는 UN_REGISTER_CALL_BACK API를 포함하는 공통 애플리케이션 인터페이스.
  33. 제 15 항에 있어서,
    상기 제 2 그룹의 개별적인 API는 매체 서버중 하나의 서버로부터 매체 아카이브로 매체 객체를 전송하는 DESTAGE API를 포함하는 공통 애플리케이션 인터페이스.
  34. 제 15 항에 있어서,
    상기 제 2 그룹의 개별적인 API는 매체 객체의 매체 속성을 획득하는 GET_MEDIA_ATTRIBUTE API를 포함하는 공통 애플리케이션 인터페이스.
  35. 제 15 항에 있어서,
    상기 제 2 그룹의 개별적인 API는 매체 객체의 상태를 획득하는 GET_MEDIA_STATUS API를 포함하는 공통 애플리케이션 인터페이스.
  36. 제 15 항에 있어서,
    상기 제 2 그룹의 개별적인 API는 현재의 매체 객체를 매체 디바이스에 복사하는 LOAD API를 포함하는 공통 애플리케이션 인터페이스.
  37. 제 15 항에 있어서,
    상기 제 2 그룹의 개별적인 API는 매체 객체의 데이터를 판독하는 READ API를 포함하는 공통 애플리케이션 인터페이스.
  38. 제 15 항에 있어서,
    상기 제 2 그룹의 개별적인 API는 매체 서버중 하나의 서버로부터 매체 객체를 검색하는 RETRIEVE API를 포함하는 공통 애플리케이션 인터페이스.
  39. 제 15 항에 있어서,
    상기 제 2 그룹의 개별적인 API는 매체 객체내에서 현재의 바이트 위치를 설정하는 SEEK API를 포함하는 공통 애플리케이션 인터페이스.
  40. 제 15 항에 있어서,
    상기 제 2 그룹의 개별적인 API는 매체 객체의 매체 속성을 설정하는 SET_MEDIA_ATTRIBUTES API를 포함하는 공통 애플리케이션 인터페이스.
  41. 제 15 항에 있어서,
    상기 제 2 그룹의 개별적인 API는 매체 객체에 데이터를 기록하는 WRITE API를 포함하는 공통 애플리케이션 인터페이스.
KR10-1998-0033616A 1997-09-30 1998-08-19 매체관리자,애플리케이션프로그램인터페이스와이를구현하는방법 KR100350141B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/941,788 1997-09-30
US8/941,788 1997-09-30
US08/941,788 US6516356B1 (en) 1997-09-30 1997-09-30 Application interface to a media server and a method of implementing the same

Publications (2)

Publication Number Publication Date
KR19990029323A true KR19990029323A (ko) 1999-04-26
KR100350141B1 KR100350141B1 (ko) 2003-01-06

Family

ID=25477065

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0033616A KR100350141B1 (ko) 1997-09-30 1998-08-19 매체관리자,애플리케이션프로그램인터페이스와이를구현하는방법

Country Status (6)

Country Link
US (2) US6516356B1 (ko)
JP (1) JPH11175390A (ko)
KR (1) KR100350141B1 (ko)
GB (1) GB2330671B (ko)
IE (1) IE980729A1 (ko)
TW (1) TW554271B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100396356B1 (ko) * 1999-11-30 2003-09-13 인터내셔널 비지네스 머신즈 코포레이션 편재 컴퓨팅 디바이스의 애플리케이션/프레퍼런스를 제어하기 위한 방법, 시스템 및 컴퓨터-판독가능 기록 매체

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562392B1 (en) 1999-05-19 2009-07-14 Digimarc Corporation Methods of interacting with audio and ambient music
US6965682B1 (en) * 1999-05-19 2005-11-15 Digimarc Corp Data transmission by watermark proxy
KR100722697B1 (ko) * 1998-04-27 2007-05-30 가부시끼가이샤 디지탈 제어시스템, 표시장치 및 제어용호스트컴퓨터 및데이터전송방법
US8332478B2 (en) * 1998-10-01 2012-12-11 Digimarc Corporation Context sensitive connected content
US6489954B1 (en) * 1998-10-13 2002-12-03 Prophet Financial Systems, Inc. System and method for permitting a software routine having restricted local access to utilize remote resources to generate locally usable data structure
EP1045315A3 (en) * 1999-04-13 2011-03-02 Canon Kabushiki Kaisha Data processing method and apparatus
US6968390B1 (en) * 1999-04-15 2005-11-22 International Business Machines Corporation Method and system for enabling a network function in a context of one or all server names in a multiple server name environment
US20020032734A1 (en) 2000-07-26 2002-03-14 Rhoads Geoffrey B. Collateral data combined with user characteristics to select web site
US6853868B1 (en) * 1999-10-15 2005-02-08 Sun Microsystems, Inc. Cross-platform audio feedback for GUI components
EP1146729A3 (en) * 2000-03-15 2005-07-06 International Business Machines Corporation Method and system for streaming media data in heterogenous environments
US7047526B1 (en) * 2000-06-28 2006-05-16 Cisco Technology, Inc. Generic command interface for multiple executable routines
US6980996B1 (en) * 2000-06-28 2005-12-27 Cisco Technology, Inc. Generic command interface for multiple executable routines having character-based command tree
US6868418B1 (en) * 2000-10-04 2005-03-15 Microsoft Corporation Methods and systems for performing reliable asynchronous notification of high-level document operations
US7054949B2 (en) 2001-01-19 2006-05-30 World Streaming Network, Inc. System and method for streaming media
US8554940B2 (en) 2001-01-19 2013-10-08 Single Touch Interactive, Inc. System and method for routing media
US7054887B2 (en) * 2001-01-30 2006-05-30 Ibm Corporation Method and system for object replication in a content management system
US7178152B2 (en) * 2001-03-01 2007-02-13 Sony Corporation Application programming interface for communication between audio/video file system and audio video controller
US8359377B2 (en) * 2001-04-30 2013-01-22 Hewlett-Packard Development Company, L.P. Interface for automated deployment and management of network devices
US20020161888A1 (en) * 2001-04-30 2002-10-31 Mcguire Jacob Template-based system for automated deployment and management of network devices
US7136883B2 (en) * 2001-09-08 2006-11-14 Siemens Medial Solutions Health Services Corporation System for managing object storage and retrieval in partitioned storage media
KR20030031202A (ko) * 2001-10-12 2003-04-21 주식회사 엘지이아이 컴퓨터를 통한 사용자 인터페이스 방법
US7370335B1 (en) * 2001-11-29 2008-05-06 Vignette Corporation System and method for providing a public application program interface
US20040083015A1 (en) * 2002-06-04 2004-04-29 Srinivas Patwari System for multimedia rendering in a portable device
US7457312B2 (en) * 2002-06-19 2008-11-25 Microsoft Corporation Bandwidth sharing in advanced streaming format
US7003527B1 (en) * 2002-06-27 2006-02-21 Emc Corporation Methods and apparatus for managing devices within storage area networks
US7246318B2 (en) * 2002-06-28 2007-07-17 Microsoft Corporation Application programming interface for utilizing multimedia data
US7346912B2 (en) * 2002-08-05 2008-03-18 Tandberg Telecom As Method and system for managing video devices
US7290057B2 (en) * 2002-08-20 2007-10-30 Microsoft Corporation Media streaming of web content data
CA2497825A1 (en) * 2002-09-10 2004-03-25 Exagrid Systems, Inc. Method and apparatus for server share migration and server recovery using hierarchical storage management
JP4909383B2 (ja) * 2002-10-03 2012-04-04 株式会社アイ・オー・データ機器 ハードディスク管理装置
US7415716B2 (en) * 2003-01-17 2008-08-19 International Business Machines Corporation Component integrator
US7483879B2 (en) * 2003-01-17 2009-01-27 International Business Machines Corporation System and method for accessing non-compatible content repositories
US7386609B2 (en) 2003-02-20 2008-06-10 International Business Machines Corporation Method, system, and program for managing devices in a network
US6978452B2 (en) * 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers
US7221331B2 (en) * 2003-05-05 2007-05-22 Microsoft Corporation Method and system for auxiliary display of information for a computing device
US7827232B2 (en) * 2003-05-05 2010-11-02 Microsoft Corporation Record button on a computer system
US7551199B2 (en) * 2003-05-05 2009-06-23 Microsoft Corporation Computer camera system and method for reducing parallax
US20040240650A1 (en) 2003-05-05 2004-12-02 Microsoft Corporation Real-time communications architecture and methods for use with a personal computer system
US20040235520A1 (en) 2003-05-20 2004-11-25 Cadiz Jonathan Jay Enhanced telephony computer user interface allowing user interaction and control of a telephone using a personal computer
US7310659B1 (en) 2003-06-27 2007-12-18 Sprint Communications Company L.P. Interface and method for extending a target application over an instant message link of a communication network
KR100523358B1 (ko) * 2003-08-18 2005-10-24 한국전자통신연구원 장애인용 개방 api 응용 통신 서비스 시스템 및 방법
US7216221B2 (en) * 2003-09-30 2007-05-08 Microsoft Corporation Method and system for unified audio control on a personal computer
US7548255B2 (en) * 2003-09-30 2009-06-16 Microsoft Corporation Method and system for capturing video on a personal computer
US7653915B1 (en) 2003-10-10 2010-01-26 Emc Corporation N X M platform combination
US7587421B2 (en) 2004-01-30 2009-09-08 International Business Machines Corporation Method, system, and article of manufacture for generating device specific requests
US7765559B2 (en) * 2004-02-06 2010-07-27 Nokia Corporation Apparatus and method for communicating between cellular modem software and application engine software of a communications device
GB2416869A (en) * 2004-07-02 2006-02-08 Symbian Software Ltd Command interactive mapping in a computing device
US7634780B2 (en) * 2004-11-23 2009-12-15 Microsoft Corporation Method and system for exchanging data between computer systems and auxiliary displays
US7711868B2 (en) 2004-11-23 2010-05-04 Microsoft Corporation Waking a main computer system to pre-fetch data for an auxiliary computing device
US7581034B2 (en) * 2004-11-23 2009-08-25 Microsoft Corporation Sending notifications to auxiliary displays
US7784065B2 (en) * 2005-02-07 2010-08-24 Microsoft Corporation Interface for consistent program interaction with auxiliary computing devices
TWI257213B (en) * 2005-04-12 2006-06-21 Culture Com Technology Macau Ltd Medium transmission method and system
US20060242590A1 (en) * 2005-04-21 2006-10-26 Microsoft Corporation Simple content format for auxiliary display devices
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7873683B2 (en) * 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7810100B2 (en) * 2005-08-12 2010-10-05 Microsoft Corporation Employing a servicing user-interface shell to service a presented user-interface shell
US20070245882A1 (en) * 2006-04-04 2007-10-25 Odenwald Michael J Interactive computerized digital media management system and method
US8566503B2 (en) * 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US20080147747A1 (en) * 2006-12-14 2008-06-19 Dan Cardamore Media system having synchronization with preemptive prioritization of synchronization order
JP5011502B2 (ja) * 2007-01-22 2012-08-29 京セラドキュメントソリューションズ株式会社 電子機器、サービス提供方法及びプログラム
US8555275B1 (en) * 2007-04-26 2013-10-08 Netapp, Inc. Method and system for enabling an application in a virtualized environment to communicate with multiple types of virtual servers
US20090073126A1 (en) * 2007-07-16 2009-03-19 Srivastava Aditya Narain Standardized method and systems for providing configurable keypads
EP2324413A1 (en) * 2008-06-16 2011-05-25 QUALCOMM Incorporated Method and systems for revealing function assignments on fixed keypads
US20090327344A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Media foundation source reader
WO2010007757A1 (ja) * 2008-07-16 2010-01-21 パナソニック株式会社 再生装置、再生方法、プログラム
EP2321790A4 (en) * 2008-07-28 2012-01-18 Sony Corp CLIENT DEVICE AND ASSOCIATED METHODOLOGY FOR ACCESSING NETWORK SERVICES
US20100064147A1 (en) * 2008-09-08 2010-03-11 Integral Wave Technologies, Inc. Profile driven electrical component command interface
US8972677B1 (en) * 2009-06-29 2015-03-03 Symantec Corporation Systems and methods for implementing a storage interface specific to an archiving platform
GB2471485A (en) * 2009-06-30 2011-01-05 Nokia Corp Software modules for interfacing between a single client interface and hardware components of a computing device.
KR101043238B1 (ko) * 2009-11-25 2011-06-30 주식회사 바우압텍 고전압용 정전기 방전 보호 소자
US9401813B2 (en) * 2009-12-29 2016-07-26 Iheartmedia Management Services, Inc. Media stream monitor
US9137307B2 (en) * 2010-01-14 2015-09-15 Addonmail Searching and retrieving files in computer networks
US9021508B2 (en) * 2010-01-14 2015-04-28 Addonmail Generic application programming interface for reading information
US9918115B2 (en) * 2011-10-04 2018-03-13 Google Llc System and method for obtaining video streams
US20150082300A1 (en) * 2013-09-13 2015-03-19 Netapp. Inc. Method and system for enabling an application in a virtualized environment to communicate with multiple types of virtual servers
US20150127703A1 (en) * 2013-10-31 2015-05-07 Samsung Electronics Co., Ltd. Name based media delivery and presentation system
US10642603B2 (en) 2018-01-16 2020-05-05 Nutanix, Inc. Scheduling upgrades in distributed computing systems
US10838754B2 (en) 2018-04-27 2020-11-17 Nutanix, Inc. Virtualized systems having hardware interface services for controlling hardware

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4124889A (en) 1975-12-24 1978-11-07 Computer Automation, Inc. Distributed input/output controller system
US4800523A (en) 1985-02-25 1989-01-24 Itt Corporation Device interface controller having device specific and device common instructions separately stored
JPS6364133A (ja) 1986-08-29 1988-03-22 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション 情報処理システム
US5504873A (en) * 1989-11-01 1996-04-02 E-Systems, Inc. Mass data storage and retrieval system
US5307456A (en) * 1990-12-04 1994-04-26 Sony Electronics, Inc. Integrated multi-media production and authoring system
AU4543593A (en) * 1992-07-08 1994-01-31 Bell Atlantic Network Services, Inc. Media server for supplying video and multi-media data over the public telephone switched network
US5633923A (en) 1992-11-12 1997-05-27 Rockwell International Corporation Automatic call distribution system with display data storage compression system and method
US5604843A (en) 1992-12-23 1997-02-18 Microsoft Corporation Method and system for interfacing with a computer output device
JP3404785B2 (ja) 1993-02-16 2003-05-12 富士ゼロックス株式会社 情報資源管理装置および情報資源管理方法
US5544318A (en) * 1993-04-16 1996-08-06 Accom, Inc., Asynchronous media server request processing system for servicing reprioritizing request from a client determines whether or not to delay executing said reprioritizing request
JPH0764893A (ja) 1993-08-31 1995-03-10 Canon Inc ネットワーク・システム
US5499343A (en) 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
US5642171A (en) * 1994-06-08 1997-06-24 Dell Usa, L.P. Method and apparatus for synchronizing audio and video data streams in a multimedia system
CA2153445C (en) * 1994-09-08 2002-05-21 Ashok Raj Saxena Video optimized media streamer user interface
US5668948A (en) * 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
JPH0981486A (ja) * 1994-11-17 1997-03-28 Texas Instr Inc <Ti> ソフトウェア・アプリケーション・プログラム間の共通の通信インターフェースを与えるオブジェクト指向型方法及び装置
US5752159A (en) * 1995-01-13 1998-05-12 U S West Technologies, Inc. Method for automatically collecting and delivering application event data in an interactive network
US5680619A (en) * 1995-04-03 1997-10-21 Mfactory, Inc. Hierarchical encapsulation of instantiated objects in a multimedia authoring system
US5826085A (en) * 1995-07-12 1998-10-20 Oracle Corporation Object oriented computer interface supporting interactive networked applications
JPH09114759A (ja) 1995-10-17 1997-05-02 Fujitsu Ltd コミュニケーション機能制御装置
US5805796A (en) * 1996-03-27 1998-09-08 Dell Usa, Lp System architecture for implementing modular diagnostics
US6078942A (en) * 1996-04-25 2000-06-20 Microsoft Corporation Resource management for multimedia devices in a computer
US6044408A (en) * 1996-04-25 2000-03-28 Microsoft Corporation Multimedia device interface for retrieving and exploiting software and hardware capabilities
US6064379A (en) * 1996-06-24 2000-05-16 Sun Microsystems, Inc. System and method for synchronizing presentation of media stream playlists with real time
US5813014A (en) * 1996-07-10 1998-09-22 Survivors Of The Shoah Visual History Foundation Method and apparatus for management of multimedia assets
US5926649A (en) * 1996-10-23 1999-07-20 Industrial Technology Research Institute Media server for storage and retrieval of voluminous multimedia data
US6108695A (en) * 1997-06-24 2000-08-22 Sun Microsystems, Inc. Method and apparatus for providing analog output and managing channels on a multiple channel digital media server
US6023731A (en) * 1997-07-30 2000-02-08 Sun Microsystems, Inc. Method and apparatus for communicating program selections on a multiple channel digital media server having analog output
US6253257B1 (en) 1997-07-31 2001-06-26 Bea Systems, Inc. Software Interface for dynamic API mapping
US6360368B1 (en) * 1997-08-01 2002-03-19 Sun Microsystems, Inc. Method and apparatus for reducing overhead associated with content playback on a multiple channel digital media server having analog output
US6038611A (en) 1998-01-13 2000-03-14 Inverness Systems Ltd. Method for implementing a user-to-network (UNI) application programming interface (API)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100396356B1 (ko) * 1999-11-30 2003-09-13 인터내셔널 비지네스 머신즈 코포레이션 편재 컴퓨팅 디바이스의 애플리케이션/프레퍼런스를 제어하기 위한 방법, 시스템 및 컴퓨터-판독가능 기록 매체

Also Published As

Publication number Publication date
JPH11175390A (ja) 1999-07-02
GB2330671A (en) 1999-04-28
TW554271B (en) 2003-09-21
US6732365B2 (en) 2004-05-04
GB2330671B (en) 2002-11-06
KR100350141B1 (ko) 2003-01-06
GB9819833D0 (en) 1998-11-04
US6516356B1 (en) 2003-02-04
IE980729A1 (en) 2000-02-09
US20030070001A1 (en) 2003-04-10

Similar Documents

Publication Publication Date Title
KR100350141B1 (ko) 매체관리자,애플리케이션프로그램인터페이스와이를구현하는방법
US5787413A (en) C++ classes for a digital library
US7069393B2 (en) Storage system providing file aware caching and file aware remote copy
US7139927B2 (en) Journaling and recovery method of shared disk file system
EP0480009B1 (en) Data recoverability in mass storage data base systems
US6785693B2 (en) Management of multiple links to a file in a file system
US20050027735A1 (en) Method and system for relocating files that are partially stored in remote storage
MXPA04006188A (es) Procesador de medios de fundacion de medios.
US20020107886A1 (en) Method and apparatus for automatic document electronic versioning system
EP1012757A1 (en) System and method for performing defined actions when grafting the namespace of one storage medium into the namespace of another storage medium
US20030095284A1 (en) Method and apparatus job retention
JP2001067786A (ja) 記録再生装置
WO2024041022A1 (zh) 数据库表变更方法、装置、设备和存储介质
CN115517009B (zh) 集群管理方法、集群管理装置、存储介质与电子设备
US5561824A (en) Storage management of data for ensuring communication of minimal length data
JP2004094935A (ja) オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体
US20030105780A1 (en) File system, control method, and program
US20010011335A1 (en) Data processing system having a network and method for managing memory by storing discardable pages in a local paging device
US7382970B2 (en) Process control manager for audio/video file system
US20030033440A1 (en) Method of logging message activity
CN113609091B (zh) 日志管理方法、装置、设备及存储介质
CN116010364B (zh) 网盘文件状态的更新方法、装置、网盘及存储介质
KR100324276B1 (ko) 교환기에서 데이터베이스 관리 시스템의 데이터 백업 방법
JPH1198448A (ja) ビデオサーバ装置及びそのアクセス処理方法
JPH10240594A (ja) データファイル監視システム

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060725

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee