KR100475200B1 - 가전장치용태스크구동형제어시스템 - Google Patents

가전장치용태스크구동형제어시스템 Download PDF

Info

Publication number
KR100475200B1
KR100475200B1 KR10-1998-0704486A KR19980704486A KR100475200B1 KR 100475200 B1 KR100475200 B1 KR 100475200B1 KR 19980704486 A KR19980704486 A KR 19980704486A KR 100475200 B1 KR100475200 B1 KR 100475200B1
Authority
KR
South Korea
Prior art keywords
devices
control means
class
software representation
software
Prior art date
Application number
KR10-1998-0704486A
Other languages
English (en)
Other versions
KR19990072149A (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 KR19990072149A publication Critical patent/KR19990072149A/ko
Application granted granted Critical
Publication of KR100475200B1 publication Critical patent/KR100475200B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2805Home Audio Video Interoperability [HAVI] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/285Generic home appliances, e.g. refrigerators

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Selective Calling Equipment (AREA)
  • Stored Programmes (AREA)

Abstract

제어 시스템은 다중 가전 장치들 및 상기 장치들 간의 상호 작용을 제어하기 위해 상기 장치들에 연결된 태스크 구동형 제어 수단을 포함한다. 상기 제어 수단은 가전 장치들 각각의 소프트웨어 리프리젠테이션들 각각에 따라서 동작한다. 적어도 하나의 소프트웨어 리프리젠테이션이 각각의 가전 장치로부터 상기 제어 수단으로 다운로딩된다. 태스크의 가변적인 복잡성을 소프트웨어 리프리젠테이션 내에 인켑슐레이팅함으로써 능력들을 정상 레벨까지 올리는데 필요한 만큼 간단 또는 복잡하게 만들 수 있다. 인터페이스의 레벨이 장치들에 공통이므로, 애플리케이션들은 매우 다른 레벨들의 복잡성을 구현하는 장치들을 균일하게 조작할 수 있다.

Description

가전 장치용 태스크 구동형 제어 시스템{Task-driven control system for electronic consumer devices}
본 발명은 공간적으로 분산되는 정보 처리 기능을 갖는 시스템에 관한 것이다. 본 발명은 배타적인 것은 아니지만 특히 멀티미디어 가전 시스템에 관한 것이다.
가전 산업은 엔터테인먼트 시스템들이 아날로그 영역에서 디지털 영역으로 이동함에 따라 주류 변화의 시작점에 있다. 오디오는 예를 들어 컴팩트 디스크들 및 디지털 컴팩트 카세트들을 갖는 디지털 영역으로 이동해왔다. 비디오는 수년 안으로 디지털 영역으로 빠르게 이동할 것이다. 알맞은 가격의 우수한 디지털 처리 성능들 덕분에 디지털 오디오 및 디지털 비디오와 함께 모든 디지털 멀티미디어는 소비자에게 새로운 가능성들을 열어주었다. 새로운 가능성들의 새로움에 대해서 언급하자면, 실시간 비디오 처리는 가전 장치의 범위 내에 있게 되었으며, 사용자 제어는 더욱더 시스템의 지능에 의존하고, 따라서 시스템을 더욱 동작시키기 쉽게 하고, 사용자의 시스템 모니터링을 경감시키며, 다중 디지털 자원들은 단일 홈 시스템 내에서 상호 관계를 가지며 통합될 것이다.
도 1은 본 발명에 따른 가전 장치들이 있는 시스템을 도시하는 블록도.
도 2는 도 1의 시스템에 있어서의 클래스 D 장치를 도시하는 블록도.
발명의 목적
본 발명자들은, 계속 증가하는 수의 상호 작용 가능한 기능성들을 단일 시스템으로 통합시키는 것이, 시스템 설계가 시스템의 기능성들의 분산, 구조의 스케일링 가능성 및 폐쇄루프 제어를 지원한다면, 소비자 및 제조자의 관심을 끌 수 있음을 인식하였다. 분산된 기능성들을 갖는 시스템은, 시스템들의 구성요소들 중 하나의 구성 요소에서의 하드웨어 고장(hardware failure)이 다른 것들에 영향을 끼칠 필요가 없다는 의미에서 오류 관용도(failure-tolerant)이 있다. 기능성 분산은 또한 스케일링 가능성을 지원한다. 아키텍처는, 충돌이 없는 재구성, 업그레이딩 또는 시스템 확장을 허용한다면, 스케일링 가능하거나 개방형이 된다. 요구 사항을 만족시키는데 필요한 기능성들을 부가 또는 제거함으로써, 제조자 또는 사용자는 시스템 실행을 최적화하면서 비용은 최소화할 수 있다. 폐쇄-루프 제어는 다른 구성 요소 또는 사용자로부터의 자극에 응답하여 구성 요소가 그 자극의 수신을 확인하는 것을 의미한다. 이러한 방식으로 시스템은 전반적으로 각각의 그 구성 요소들의 상태 추적을 유지할 수 있다.
본 발명의 목적은 분산된 기능성들을 갖는 시스템을 제공하는 것이다. 다른 목적은 개방형 아키텍쳐를 가지는 제어 시스템을 제공하는 것이다.
발명의 요약
이 목적을 위해, 본 발명은 장치들 간의 상호 작용을 제어하는 태스크 구동형 제어 수단을 통해 상호 접속된 다중 전자 장치들을 구비하는 제어 시스템을 제공한다. 제어 수단은 장치들의 각각의 소프트웨어 리프리젠테이션(representations)에 따라 동작한다. 바람직하게는, 적어도 특정의 한 전자 장치는 예를 들어 제어 수단에 연결될 때 상기 제어 수단에 자신의 개별 소프트웨어 리프리젠테이션을 다운로딩한다. 각각의 소프트웨어 리프리젠테이션들은 상기 리프리젠테이션들에 공통인 의미론적 레벨에서 각각의 장치를 나타내는 장치 추상화(abstraction)을 포함하고, 각각의 소프트웨어 리프리젠테이션들 중 적어도 하나의 특정 리프리젠테이션은 장치 추상화에 대한 사용자 인터페이스의 애플리케이션을 포함하고, 이 애플리케이션은 제어 수단에서 실행된다.
더욱 상세히 설명하면, 본 발명은 가전 분야에서, 다중 가전 장치들 간의 상호 작용을 제어하는 태스크 구동형 제어 수단을 통해 상호 접속된 다중 가전 장치들(예컨대, 텔레비전 수신기, VCR, CD 플레이어, DVD 장치, 뿐만 아니라 전화기, 조명 제어 시스템, 자동 온도 조절 장치, 심지어 PC, 등등)을 포함하는 제어 시스템을 제공한다. 이 제어 수단은 가전 장치들 각각의 개별 소프트웨어 리프리젠테이션들에 따라 동작한다.
디지털 콘텐트(content) 및 미디어로의 변천이 전달의 품질 및 편리성에 수많은 개선을 제공하는 동안, 본 발명은 어떻게 장치들이 서로 상호 작용하는지에 대한 지식을 제공할 기회를 제공하며, 이는 사용자에게 시스템 레벨 통합 특징들을 제공한다. 이는 진정으로 쉬운 사용법과 장치들 집단의 시스템 와이드 제어(system-wide control)를 제공할 수 있게 한다. 본 발명은 진정한 플러그 앤드 플레이(Plug and play)를 허용한다. 본 발명은, 장치들이 시스템의 환경내에서 그들의 최적 실행을 이행하도록 자신을 자동적으로 구성할 수 있게 한다. 이러한 매우 바람직한 목적을 이루기 위해 장치들은 반드시 상호 동작되어야 하며, 즉 "동일한 언어로 이야기"하기 위해 그들 간의 통신 및 메시지 교환의 공통 방식을 공유해야 한다. 이러한 공통 언어는 사용자 및 (가능하게는 다중) 저 레벨 프로토콜 사이의 갭에 다리를 놓아 준다. 공통 언어는 적어도 세 개의 다른 측면들에 대한 해답을 포함한다. 즉 사용자 인터페이스, 장치 추상화, 통신이다. 그것은, 사용자 인터페이스 및 장치 추상화를 위한 표준화된 실행 환경, 애플리케이션 및 시스템 서비스(예컨대, 메시징, 등록, 디스커버리) 및 예컨대 플러그 앤드 플레이 또는 다른 수단들을 통해 다이내믹하게 환경을 확장하는 통신 메커니즘을 제공한다.
제어 수단에 의해 동작된 소프트웨어 리프리젠테이션은 실제 가전 장치들의 특유의 성질은 은닉(hide)한다. 소프트웨어 리프리젠테이션은 운영 시스템에 있어서의 장치 드라이버와 동일하게, 소프트웨어의 높은 레벨들에 대하여 더욱 균일한 인터페이스를 제공한다. 태스크의 다양한 복잡성을 소프트웨어 리프리젠테이션 내에 인켑슐레이팅(encapsulation)함으로써, 기능을 공통 레벨로 하는데 필요한 만큼 간단 또는 복잡하게 만들 수 있다. 인터페이스의 레벨이 소프트웨어 리프리젠테이션들에 공통이므로, 애플리케이션은, 동일한 방식으로써, 매우 다른 레벨들의 복잡성을 구체화하는 실제 장치들을 조작할 수 있다. 사용자 인터페이스의 측면에 대해, 이러한 것들은 종래의 접근 방식에 있어서의 디바이스 구동형 특징과 대조적으로 태스크 구동형이 되어왔다. 사용자 인터페이스는 소프트웨어 리프리젠테이션에 의해 제공된 공통 레벨의 균일성 덕분에 주문 제작 및 확장 가능하다.
실제 가전 장치들의 이러한 소프트웨어 리프리젠테이션은 알려지지 않은 장치들을 지원하고, 새롭고 다양한 하위의 네트워크들, 프로토콜들 및 규격들을 지원하는 기능을 제공한다. 본 발명에 따른 시스템의 모든 목적은 가정 환경에 대한 완전한 해결책이 될 수 있다. 이것을 이루기 위해 시스템들의 프로토콜은 반드시 최종 사용자에게 완전한 종단간(end-to-end) 해결책의 가치를 제공하는 장치들이 조립되도록 사용자 인터페이스 약정들, 장치 추상화들 및 네트워킹 프로토콜들을 정의해야한다. 본 발명자들은 이러한 목적을 진척시키는 기술들을 확립하기 위한 이전의 노력들이 잘 받아들여지지 않았다고 생각하는데 이것은, 단순히 사용자가 알 수 있는 이익을 초래하지도 않으면서 장치에 비용만 부가되어왔기 때문이다. 완전한 해결책들을 제공함으로써 소비자들은 그들의 이익 및 가치를 알게 될 것이며, 그 산업은 다시 진척될 수 있고, 새로운 이정표를 세우게 될 것이다.
본 발명은 특히 가정의 엔터테인먼트 환경에 있어서의 가전 장치에 관련되지만, 그것에만 국한되는 것은 아니다. 예컨대 모든 디지털 제어 및 모듈러 아키텍처를 향한 경향에 의해 더욱더 영향을 받는 기술 분야의 다른 예시가 자동차 애플리케이션이다. 자동차 제조업자들 및 공급 산업들은 알맞은 가격으로 복잡한 기능성들의 병합을 허용하는 디지털 제어 시스템들에 더 많은 노력들을 기울이고 있으며, 즉 전자 제어 계기(gauges), 안티로크 브레이크 시스템들(anti-lock brake systems), 전자 연료 주입, 전자 모터 관리 및 배기 제어, 전자 에어콘(electronic climate control), 적응 자동 변속들, 자동차 오디오 장치, 네비게이션 장치 등이 있다. 이러한 기능성들은 모든 다른 종류들의 복잡함 및 동작을 갖는다. 만약 조립 라인에서 본 발명에 의해 제안된 바와 같이 기능의 상호 연결이 소프트웨어 리프리젠테이션에 의한 제어를 신뢰하는 모듈들이 조립되면 매우 간단하게 제조될 수 있다. 제조업자는 옵션들의 각각의 다른 특별한 조합을 위해 전자 장치에 대한 특별한 예약을 할 필요가 없다. 또한 이러한 모듈러서브 시스템들 사이의 상호 작용은 자동차의 높은 레벨의 사용자 편의성 및 효율을 초래한다.
한 예시로서, 오디오 장치의 볼륨은 측정된 도로 속도(바람 잡음), 엔진 속도(엔진 잡음), 에어콘의 활동성 레벨(팬 잡음)에 따라 제어된다. 다른 예시로서 그래픽스 네비게이션 장치(예컨대 필립스 일렉트로닉스의 CARIN 시스템)는 운전자를 가이드하는데 많거나 적은 설명들이 필요할 때 줌 인 또는 줌 아웃이 가능하도록, 측정된 로드 속도에 따라 제어가능하다. 다른 예시로서, 모터 관리 및 적응 자동 변속 서브 시스템들을 부하(load)(능동 서스펜션에 의해 측정됨)에 따라 정교하게 튜닝한다.
따라서, 본 발명은 넓은 범위에서 다른 기능성들을 단일 시스템에 결합하여 소비자 및 제조업자를 이롭게 하는 프로토콜을 제공한다.
본 발명은 첨부한 도면을 참조하면서 더 상세히 그리고 예시의 방법으로 설명한다.
도면 전반적으로 동일한 참조 번호들은 동일하거나 또는 대응하는 구성들을 표시한다. 도면들은 소프트웨어로 실행되는 개별 항목들로 본 발명의 구성을 나타낸다는 것이 유의되어야 한다. 그러므로, 도면들은 그에 따라 해석되어야 한다.
양호한 실시예들
시스템 하드웨어 구성
도 1은 본 발명에 따른 제어 시스템(100)을 도시하는 블록도이다. 시스템(100)은 다중 가전 장치(102, 104, 106, 108, 110,..., 112)를 구비한다. 시스템(100)은 또한 도시된 예시에서 하나 이상의 제어 수단, 예컨대 제어 수단(114, 116)을 더 구비한다. 장치들(102 내지 108)은 제어 수단(114)에 접속된다. 장치들(110, 112)은 제어 수단에 접속된다. 제어 수단(114, 116)은 상호 접속된다. 시스템(100) 및 그 프로토콜은 하기에 더 상세히 논의되며, 장치(102 내지 112)의 기능 모드를 제어함으로써 콘텐트 데이터의 라우팅 및 처리를 제어하기 위한 하부구조를 제공한다. 제어 데이터는 오디오 및 비디오 콘텐트와 같은 콘텐트 데이터의 처리를 장치(102 내지 112)로 제어한다. 제어 수단(114, 116)은 또한 서로 연결된다. 시스템(100)의 제어는 하기에 설명한다. 접속된 각각의 장치를 이용할 수 있는 소프트웨어 리프리젠테이션을 갖는 제어 수단(114, 116)에 의해 인에이블링된다.
시스템(100)의 동작 및 다용도 특성을 올바르게 인식하기 위해 가전 장치(102 내지 112)의 통신 능력의 분류가 우선 논의된다. 실제로는 여기서 인정된 것보다 더 평활한, 장치 성능의 연속체가 있으며, 이러한 분류는 시스템(100)의 모델을 이해하는데 매우 유용하다. 이러한 일반적 예시에서의 장치(102 내지 112)의 통신 성능은 다른 레벨들의 복잡함을 갖는다. 그들의 통신 성능에 따라 장치들(102 내지 112)은 다음 클래스 중 하나에 속한다.
클래스 A : 제한된 일방 제어에 의한 레거시(legacy) 장치들
클래스 B : 종래의 양방향 제어로 제어 가능한 장치들
클래스 C : 코드화된 사용자 인터페이스 추상화(abstraction) 및 장치 추상화에 의한 지적인 장치들.
클래스 D : 클래스 C의 장치로부터 다운 로딩된 추상화에 대해 실행 환경을 제공할 수 있는 지각력 있는 장치들.
클래스 A : 레거시 장치들
장치(102)는 클래스 A의 레거시(legacy) 가전 장치들에 속하는 장치이다. 레거시 장치의 제어 성능은 일방(확인되지 않거나 또는 인정됨)의 제어에 국한된다. 레거시 장치의 통상적 예시는 손바닥 크기의 리모트(remote)에 의해 적외선 명령에 의해 제어되는 잘 성립된 종래의 오디오/비디오 장치이다. 확인 메커니즘은 사용자가, 상기 명령이 장치에 의해 실행되는 것(채널의 변화, 테이프의 플레이 개시 등등)을 사용자가 관찰한다고 믿는다. 제 1 명령이 수신되는 리모트에 명령을 복귀시키는 확인 프로토콜이 없다. 장치(102)는 복귀 명령, 상태 보고 또는 오류 조건 등을 실행할 수 없다. 시스템(100)의 프로토콜은 '성공'으로서 레거시 장치(102)로의 명령 전송을 고려할 뿐 선택의 여지가 없으며, 그것을 바꾸려는 의도에 앞서 장치(102)의 상태를 결정할 수단이 없다. 이것은 '토글'이나 'Power On/Off' 또는 'Channel Up'처럼 상대적 상태 변경을 실행하는 명령들에 대한 특정한 문제점이다. 이러한 이유로 레거시 장치(102)는 'best-effort' 원리에 의해 지원만 될 수 있다. 레거시 장치들의 분류에 들어가는 장치의 현존하는 인스톨 베이스(installed base)가 주어지면, 가능한 한 잘 지원되어야 한다. 그러나 큰 이익들은 더 나은 통신 지원을 갖는 장치들로 업그레이딩하는데 있다는 것이 명백하다.
클래스 A의 장치들은, 장치(102)가 프록시(proxy)(118)를 통하는 것과 같이, 프록시를 통해 간접적으로 제어될 수 있다. 예컨대 장치는 IR-블래스터(118)에 의해 제어되는 종래의 텔레비전 수상기이며, IR-블래스터는 클래스 D의 장치(114)에 의해 제어된다.
클래스 B : 제어 가능한 장치들
장치(104)는 제어 가능한 가전 장치들의 클래스 B에 속한다. 몇몇의 '양방'프로토콜들은 가전 장치들의 제어를 위해 존재하며, 그것은 명령 실행, 상태 및 오류 보고를 확인시킨다. 불행히도 이러한 것들은 소비자 생산품들에 있어서 훨씬 적게 공통된다. 프로토콜들은 완전하게 규정되었다는 점에서 통상적으로 '완전하게 계산된' 프로토콜들이며, 포워드 호환(forward-compatible) 방식의 프로토콜의 확장에 대한 지지가 거의 없거나 또는 전혀 없다. 이러한 '종래의 지식' 조건 때문에 제어 장치들 및 제어된 장치들은 프로토콜의 한계 범위 내에서 존속해야 하며, '닭이 먼저냐 달걀이 먼저냐'의 문제(제어된 장치의 질을 높이고 제어기들은 향상들의 이점을 취할 수 없음)로 인해 기술 혁신이 억압된다. 가전 장치 산업은 이러한 클래스의 프로토콜들에서의 많은 노력을 기울여 왔다. 이러한 프로토콜들의 예시들은 A/V CTS, 필립스 Easy Link/ESI 및 D2B, 소니의 Control-L, LANC 및 S-Link/Control-A, CEBus/Cal, LonWorks 등등이다.
시스템(100) 및 그 제어 프로토콜은 이러한 클래스의 제어 가능한 장치들로써 훨씬 향상된 사용자 경험을 할 수 있게 한다. 그러나 시스템(100)은 여전히 '종래의 지식'을 가져야 한다. 사용된 프로토콜은 프리인스톨된 지지를 인색해야 하며, 새로운 장치들 및 프로토콜 향상들을 위한 지지를 인스톨하기 위해 몇몇의 논트랜스퍼런트 메커니즘(non-transparent mechanism)을 채용해야 한다. 이러한 특징은 다음 클래스들의 장치들의 규정을 판독한 이후에 더 명백해질 것이다.
클래스 A의 장치들과 같은 클래스 B의 장치는 프록시(도 1의 예시에서 도시되지 않음)를 통해 제어될 수 있다.
클래스 C : 지적인 장치들
장치들(106, 108, 110, 112)은 지적인 가전 장치들(intelligent consumer devices)의 클래스에 속한다. 장치들(106-112)은 각각 포워드 호환 '플러그 앤드 플레이'성능을 제공한다. 본질적으로 각각의 장치들(106-112)은 소프트웨어 리프리젠테이션을 포함한다. 즉 선택적 사용자 인터페이스(아래의 'Applet' 밑을 보시오) 및 추상 장치('Abstract Device')는 둘다 머신 인디펜던트 바이트코드로 컴파일된다. 간단한 확장은 다른 장치가 검출하고 그 컴파일된 바이트코드를 검색 할 수 있도록 각각의 장치(106 내지 112)의 네이티브 프로토콜이 간단하게 확장되었다. 다른 장치가 바이트코드를 국부적으로 실행할 수 있으며, 장치(106 내지 112)를 제어한다. 바람직하게도 다운로딩된 장치 추상화 및 실제 장치사이에 사용된 통신 프로토콜은 개인적인 것이다. 시스템(100)의 제어 프로토콜은 디스커버리 및 다운로드 프로토콜을 규정한다. 그것은 또한 주어진 타입의 장치(예컨대 'VCR')에 대한 장치 추상화는 실행되어야 한다는 기능의 코어 세트를 규정(약정으로써)하여 제삼자의 장치는 장치 성능의 이점을 취할 수 있다. 그러나 '닭이 먼저냐 달걀이 먼저냐'의 향상 문제는 회피되었다. 사용자 인터페이스가 장치 추상화로 다운로딩되었으므로 코어 세트에 더하여 향상을 실행할 수 있으며, '사실상의' 표준들은 그러한 표준을 수정하고 '진부한' 인스톨 베이스를 다루지 않고도 발생할 수 있다. 이러한 '약정에 의한 규정'은 컴퓨터 산업 및 가전 장치 산업의 모더스 오퍼란디(modus operandi) 사이의 큰 차이 중 하나이다. 그것은 상업적이고 기술적인 '진화론'의 형태 및 빠른 혁신을 가능하게 한다.
분류 D : 지각력 있는 장치들(Sentient devices)
제어 수단(114, 116)은 이러한 예시에서 지각력 있는 가전 장치들의 클래스에 속한다. 지각력 있는 장치들(114, 116)은 클래스 C의 장치들(106 내지 112)로부터 다운로딩된 바이트 코드를 위한 실행 환경을 제공한다. 장치들(114, 116)은 장치들(106 내지 112)로부터 다운로드된 바이트 코드의 사용자 인터페이스 부분을 지지할 수 있는 사용자 인터페이스를 가질 수 있다. 클래스 D의 장치들(114 내지 116)은 느슨하게 연결된 분산 시스템에서 서로 대등한 것들(peers)로서 통신한다. 시스템(100)의 통신 프로토콜의 한 목적은 모든 참여 장치들에 드는 비싼 비용의 부담 없이 가정의 분산된 제어를 가능하게 하는 것이다. 가정에서의 고려된 모델에는 장치들의 '클러스터들'이 있다. 정보는 전체로서 시스템(100)의 분산된 특성을 위태롭게 하지 않고, 그러한 시스템들의 미래의 생산을 위해 큰 레벨의 분산을 배제하지 않으면서 몇몇의 정도로 클러스터 내에서 집중될 수 있다. 클래스 D의 장치들(114, 116)은 통상적으로 종래의 가전 장치들의 특성보다 더 많은 정보 및 컴퓨팅 자원(resource)들을 포함한다. 클래스 D의 장치들(114 내지 116)은 'PC/TV' 클래스의 장치들에 대해 통상적인 것보다 훨씬 적은 자원들을 가질 수 있으나 컴퓨팅 용량에 있어서 네트워크 컴퓨터(NCs)에 유사하게 더욱 통상적인 것으로 증명될 수 있다.
클래스 D의 장치들(114, 116)은 가전 장치 기능들이 또한 자체적으로 제공될 수 있다.
장치들 간의 상호 작용
클래스 A의 장치(102) 또는 클래스 B의 장치(104)의 지주는 클래스 D의 장치(114 또는 116)에 이미 존재하는 장치 추상화를 수반한다. '종래의 지식을 필요로 한다'는 표현은 클래스 D의 장치(114 또는 116)가 클래스 A의 장치(102) 및 클래스 B의 장치(104)의 새로운 타입에 대한 포워드 호환성 및 트랜스퍼런트 핫 플러그 앤드 플레이를 지지할 수 없다는 것을 추론하는데 사용된다. A/V CTS/P1394 장치들의 'Unit Info' 능력과 같이 클래스 B의 장치가 제공할 수 있는 '플러그 앤드 플레이'는 모두 장치 추상화가 지지하는 것을 방해하지 않는다. 본 발명자들은 그것을 본 명세서에서 사용된 더 좁고 특정한 의미의 실제 '플러그 앤드 플레이'가 아니라 '자체 구성'의 더 적은 야망의 목적으로 간주한다. 새로운 클래스 C의 장치는 이전에 클래스 D의 장치(114 또는 116)에 완전하게 알려지지 않을 수 있으며, 시스템(100)으로의 통합 처리는 물리적 접속 케이블 이외의 사용자의 참가를 필요로 하지 않는다. 이러한 의미에서 클래스 C의 장치 및 클래스 D의 장치들의 조합에 의해 제공된 '플러그 앤드 플레이' 기능은 이전에 공지된 장치 타입의 자체 구성이 아닌 포워드 호환, 자체 인스톨링 기능을 제공하려 한다.
이러한 실제 '플러그 앤드 플레이'는 새롭게 발견된 클래스 C의 장치로부터의 바이트 코드를 전송하고 클래스 D의 장치(114 또는 116) 내의 환경을 그와 함께 확장시킴으로써 가능하게 된다. 사용자 인터페이스 부분은 바이트코드의 장치 추상화 부분으로부터 깨끗하게 분리시키고 API(application program interface)를 확립시킴으로써 약정에 의해 확장될 수 있으며, 발명자들은 제삼자가 이정표에 기능을 또한 부가할 수 있는 환경을 창조해왔다. 예컨대 컴퍼니는 'VCR' 코어 API를 지지하는 비디오 편집 패키지를 생성하고 장치 추상화가 'VCR 편집'(아마도 시간 코드 지지, 프레임 애큐리트 포지셔닝, 프리롤 등등) 부연을 지지하면 기능을 부가한다. 사용자 인터페이스, 장치 추상화 및 통신들의 분리는 이러한 다른 문제점들이 다른 페이스(pace)로 진보하도록 해결책을 허용하고, 다른것들에 대해 더 원시적인 것과 함께 공존하도록 몇몇 문제점들에 대한 더 진보된 해결책들을 허용한다. 대부분의 공통 문제점들에 대한 해결책을 제공함으로써 아키텍처를 위한 장치 지지의 발전을 쉽게 하고 단순화시키며, 그로써 제조업자들이 극복해야 하는 채용에 대한 장벽을 낮출 수 있다.
어떻게 다운로딩 메커니즘이 동작하는지를 이해하는데 중요한 한 개념은 '볼 오브 얀(ball of yarn)' 접속 모델이다. 일단 바이트 코드가 장치(108)와 같은 클래스 C의 장치로부터 클래스 D의 장치, 예컨대 (114)로 다운로딩 되었으면, 코드는 예를 들어 설명되고 그것이 어떻게 이루어졌는지 또는 그것이 온 것으로부터 어떻게 다시 장치(108)로 돌아가 통신하는지를 알지 못하는 것을 일깨워 준다. 따라서 통신 매체를 통해 장치로 되돌아가는 방법을 찾는 것을 허용하는 '얀(yarn)'으로부터 로드된 장치(108)와 통신하기 위한 장치 어드레스를 또한 알리기 위해 다운로딩된 바이트 코드를 예를 들어 설명하는 서브시스템의 책임이다.
주어진 통신 메커니즘에 대해 장치 제어, 예컨대 P1394의 A/VC에 사용된 표준 프로토콜이 있을 수 있다. 다운로딩된 바이트 코드를 작게 유지하는 관점에서 다운로드를 위한 각각의 지지된 통신 프로토콜은 또한 바람직하게도 그러한 통신 메커니즘에 적합한 제어 프로토콜들의 지지에 대한 장치 서비스를 규정하며, 그것은 다운로딩된 장치 추상화의 수단이 될 수 있다.
추상 장치 및 애플릿(Abstract Device and Applet)
도 2는 클래스 D의 장치 예컨대 장치(114)와 클래스 C의 장치(108)와 상호작용하는 데에 있어서 포함된 소프트웨어 기능을 더욱 상세히 도시한다.
소비자 기능이 있는 각각의 실제 장치(102 내지 116)에 대해 'Abstract Device'라 칭하는 장치 추상화가 있다. 도 2는 클래스 C의 실제 장치(108)로부터 클래스 D의 장치(114)로 다운로드된 추상 장치(202)를 도시한다. 추상 장치(202)는 그것이 수신한 명령 메시지(하기를 보시오)를 그것이 나타내는 실제 장치(108)상의 작용들로 변환하는 책임을 갖는다. 추상 장치(202)는 또한 이벤트 메시지(하기를 보시오)로서 실제 장치(108)에서의 상태 변화들을 보고하는 책임을 갖는다.
추상 장치는 실제 장치의 특징을 숨기며, 소프트웨어의 더 높은 레벨들을 위해 더 균일한 인터페이스를 나타내며, 운영 체제의 장치 드라이버들에 있어서도 이와 마찬가지이다. 장치 추상화 내의 가변적인 복잡성의 태스크를 인캡슐레이팅함으로써 그것은 성능이 공통 레벨이 되게 하는데 필요한 만큼 복잡하거나 또는 단순하게 만들어질 수 있다. 인터페이스의 레벨은 장치들에 공통이므로 애플리케이션들은 매우 다른 레벨들의 복잡성들을 구체화하는 장치들을 동일한 방식으로 조종할 수 있다.
추상 장치에 대한 사용자 인터페이스는 '추상 애플리케이션(Device Application)' 또는 '애플릿(Applet)' 또는 본 명세서에서 단지 '애플리케이션(application)'이라고 언급된다. 도 2는 추상 장치(202)를 위한 애플릿(204)을 도시한다. 애플릿은 연결된 클래스 D의 장치로부터 다운로딩될 수 있거나 또는 이미 클래스 D의 장치에 존재할 수도 있다. 애플릿은 클래스 D의 장치(114 또는 116)를 흐르며, 시스템(100)과 상호작용하는 사용자에 의해 사용된다. 애플릿은 추상 장치를 호스팅하는 동일한 클래스 D의 장치에서 흐를 수는 없다. 예컨대 장치(108)의 추상 장치에 대한 애플릿은 클래스 D의 장치(114)에 의해 호스트되며, 클래스 D의 장치(116)에 흐를 수 있다. 이것은 클래스 D의 장치(114)가 아무런 수단, 예컨대 그래픽적 사용자 인터페이스를 필요로 하는 장치(108)에 대한 애플릿을 지지하기 위한 디스플레이도 가지지 않을 경우가 될 수 있으며, 반면에 클래스 D의 장치(116)는 디스플레이, 예컨대 클래스 C의 장치(110)를 갖는 장치에 직접적인 액세스를 갖거나 또는 그 자체가 소유하는 디스플레이를 가진다. 이러한 이유로 애플릿 및 추상 장치는 메시지 시스템을 통해 통신하여 애플릿에 명백한 추상 장치의 실제적 위치를 만든다. 더욱 상세하게는 하기의 '메시징'을 보시오. 또한 '레지스트리'가 있으며, 그것은 그들의 속성들로 추상 장치들을 위치시키는데 사용된다. 더 상세한 설명은 하기의 '레지스트리'란에 있다. 도 2의 예시에서 애플릿(204)은 예컨대 제어 수단(114)인 사용자 인터페이스(206)와 결부된다.
서비스들
시스템(100)은 시스템 와이드 베이시스에 입각하여 다수의 서비스들을 제공한다. 서비스들 중 하나는 장치들의 등록/비등록이며, 다른 하나는 다르게 행동하도록 요구할 필요없이 서로 다른 클래스 D 장치들 상에 위치되게 하기 위한 추상 장치들과 애플릿들 사이의 메시징(messaging)이다. 다른 말로 하면, 추상 장치들과 애플릿들은 메시징을 통해 통신하며, 또한 동일한 클래스 D 장치에 존재할 때 통신한다.
도 1의 장치들(114 및 116)의 예시에서 실행 환경은 표준 방식으로 그들 자체를 대상물이 등록 및 광고할 수 있는 '레지스트리(Registry)'를 설치한다. 대상물은 등록할 시에 다수의 속성 값들을 제공하며, 다른 대상물들은 '속성에 의한 의문'을 실행함으로써 속성 값들을 찾을 수 있다. 일단 위치되면, 대상물은 메시징 시스템을 통해 통신된다. 이것은 대상물의 실제 위치가 명백하게 하며, 한 장치에서 흐르는 애플릿이 동일한 방식으로 다른 것에 의해 제공된 몇몇 자원을 제어하게 하며, 그것은 국부적인 자원을 위한 것이 된다. 통신 프로토콜은 '이벤트'(다중 수신자에게 보내진 메시지, 이전에 언명한 '관심'에 기초하여)를 사용하여, 장치들의 심각한 상태 변화들에 대한 정보를 퍼뜨리며, 그것은 시스템을 통보하기 원하는 대상물들과 통보됨에 있어서 관심이 되는 대상물들을 지지하도록 표준화된 이벤트 관리자를 제공한다. 이러한 개념들을 더욱 상세히 하기에서 논의 된다.
레지스트리
클래스 D의 각각의 장치들(114 및 116)은 레지스트리(Registry)가 제공된다. 도 2에서 장치(114)는 예컨대 레지스트리(208)가 제공된다. 레지스트리(208)는 그들의 속성에 의해 추상 장치(20)와 같은 추상 장치를 위치시키기 위한 시스템 와이드 베이시스에 입각하여 서비스를 제공한다. 추상 장치들은 표준 방식으로 레지스트리(208)로써 그들 자신을 등록하고 광고한다. 레지스트리(208)는 추상 장치 대신에 메시지들을 수신할 수 있는 대상물에 대한 참조를 복귀시킨다. 이것은 그 자체로 추상 장치에 대한 참조임을 가정해서는 안된다. 추상 장치가 국부적일지라도 참조 실행에 있어서 그것은 결코 그렇지 않다.
레지스트리(208)는 메시지들을 수신할 수 있는 대상물들을 등록하고 비등록하고 질문을 하는 API을 제공한다. 그것은 전체로서 시스템(100)에 서비스를 제공하는 임의의 메시지 수신 자원용으로 사용될 수 있다. 추상 장치들 및 유사한 대상물들을 위해(예컨대 하기의 개별적 이벤트 관리를 보시오) 단일 인스턴스 시스템-와이드가 있는 곳에는 인스턴스 트랜스패런트(instance transparent)의 실제 위치를 만드는 것이 바람직하다.
자원을 등록하는 것은 추상 장치 및 실재물 등록 대신으로 메시지를 수신할 대상물에 대한 참조 및 한 세트의 속성들을 필요로 한다. 비등록은 추상 장치 또는 메시지를 수신하는 대상물에 동일한 참조를 제공하는 것을 필요로 한다.
질문하기(Querying)는 포텐셜 레지스트리 엔트리들에 대해 매치시키기 위한 부분적인 세트의 속성들을 포함한다. 질문은 또한 '로컬-온리(local-only)'로서 특정화될 수 있다. 이러한 이유는 클래스 D의 장치들의 리모트에 입각해서 레지스트리가 다른 레지스트리들과 통신할 수 있다는 것이며, 사용되지 않을 리모트 추상 장치들과 통신하기 위해 '프록시' 메일박스들을 만들어낼 수 있다.
메시징
애플릿들 및 추상 장치들 사이의 인터페이스는 추상 장치 인터페이스(ADI)라 부른다. 그것은 단일한 메시징에 기초하여, 애플릿들 및 추상 장치들이 다르게 실행되도록 요구하지 않고 다른 클래스 D의 장치들에 위치되게 한다. 다시 말해 애플릿들 및 추상 장치들은 항상 동일한 클래스 D의 장치에 존재할 때조차도 메시징을 통해 통신한다.
메시지들은 목적의 실례에 입각해서 '센드 메시지(Send Message)' 방법을 콜링함으로써 통과된다. 연쇄적인 다음 대상물에 '센드 메시지' 방법을 실시하는 각각의 '센드 메시지' 방법을 가짐으로써 메시지 처리 추상 장치들 또는 대상물들을 '스택(stack)'할 수 있다. 이러한 형식으로 간단한, 단일 기능의 메시지 처리 대상물들을 데이지 체이닝(daisy-chaining)함으로써 임의의 복잡한 처리는 효과적으로 실행될 수 있다. 이것은 이벤트 관리자(하기를 보시오)에 의해 광범위하게 사용된다.
클래스 D의 장치들 사이의 메시지들을 전송하기 위해 레지스트리는 '리모트 메일박스' 대상물을 만들어내며, 그것은 메시지들을 '플래트닝(flattening)'(또는 '연재하기(serializing)'), 어드레싱, 리모트 머신에 그들을 보내는 책임이 있으며, 거기서 레지스트리는 메시지를 다시 만들어('인플레이트(inflates'))내고 그것을 실제 수신자에게 전달한다.
'센드 메시지(Send Message)' 방법의 실행들은 시스템의 반응성 및 실행성을 존속시키도록 빠르게 실행해야 한다. 처리가 즉시 발생할 수 없거나 몇몇 시간을 취할 수 있는 상황들을 위해 큐잉된(queued) 메일박스' 클래스가 유효하다. 이것은 매시지를 내부 큐에 놓으며, 개별 쓰레드(thread)는 메시지들을 전달하기 위해 메시지들을 이동시킨다. 이것은 메시지 센더 및 메시지 수신자를 분리시켜 수신자가 각각의 메시지 처리에 필요한 시간을 자유롭게 취할 수 있다. 일반적으로 시스템(100)에는 메시지들의 세 클래스들이 있다: 즉, 커맨드들, 이벤트들, 에러들이 있다.
커맨드들
이들은 정상적으로 애플릿에서 추상 장치로 흐른다. 그것은 몇몇의 액션을 실행하도록 요구되거나 또는 몇몇 상태 정보를 묻는다. 그것은 동작을 개시할 뿐이다. 동작의 연속 또는 중단은 몇몇 나중의 시점에서 다른 메시지로서 보내진다.
이벤트들
이벤트들은 커맨드에 응답하여 간접적으로 발생되거나 또는 하나 또는 그 이상의 장치들(102 내지 116)에 대한 몇몇 외부 조건에 의해 비동기적으로 발생된다(예컨대 사용자가 테이프를 삽입함). 이러한 메커니즘은 일반적으로 시스템(100)에서 일어나는 것에 대해 지식이 있는 애플릿들을 유지시키도록 사용된다. 이벤트들은 '멀티캐스트(multicast)'이며, 시스템(100)의 임의의 곳에서 장치들(102 내지 116)중에서 임의의 관심 있는 부분(party)에 의해 수신될 수 있다. 이것은 동일한 추상 장치를 동시에 뷰잉하는 다중 애플릿들의 지지를 위해 중요하다. 한 사용자의 작용들의 결과는 가능한 한 빠르게 각각의 애플릿의 사용자 인터페이스내에 반영되어야 한다.
에러들
에러들은 일반적으로 커맨드를 시도(그렇게 될 수 없을지라도)한 결과이다. 아마도 다른 클래스 D의 장치로의 네트워크 연결이 이루어지지 않아, 에러는 관심을 갖는 임의의 것에 전달된다(앞의 '이벤트들'을 보시오). 커맨드를 전달하고 실행하는데에 있어서 실패할 수도 있는 임의의 단계에서 에러 메시지가 발생할 수 있으며, 만약 명령이 더 진보할 수 없으면 복귀될 수 있다. 에러가 실패의 시점에서 발생된 실패에 관한 상당한 정보를 포함하고 있는 것이 중요하다. 특히 최종 사용자들을 위해 시스템(100)과 같은 분산된 시스템에서의 문제점들을 진단하기는 매우 어려울 수 있다.
에러들은 하나의 차이가 특히 중요하지만 많은 측면에서 이벤트들과 유사하다. 에러 메시지가 커맨드 메시지에 응답하여 발생될 때 커맨드의 발신자(originator)에게 직접 되돌려지며, 또한 장치들(102 내지 116)중의 다른 관심 있는 부분들의 이익을 위해 공급된다. 발신자에게 직접 보내는 것은 메시지 타입에 있어서 관심이 표명되지 않았어도, 발신자가 커맨드에 대한 응답을 보는 것을 보증할 필요가 있다. 또한 하기의 동기 메시징 논의에 대해서 참조하기 바란다.
동기 메시징
커맨드 메시지를 보내는 것은 동작을 개시하기만 한다. 동작은 몇몇의 나중 시점에서 응답 메시지가 복귀될 때 완료되기만 한다. 이러한 의미에서 시스템은 바로 그 특징에 의해 정확하게 동기되며, 커맨드 메시지를 나타내고 응답에 있어서 에러 또는 이벤트를 수신하는 것 사이에 긴 시간(원래 가변적임)이 있을 수 있다. 비동기성 메시지는 환경에 적합하고 그 사용은 강하게 조장되어도 그것은 코드의 더 통상적인 선형 실행 경로로부터의 출발이다. '동기' 메시지, 즉 메시지를 보내고 응답이 돌아올 때까지 기다리는 것의 편리성을 제공하기 위해 목적지로부터의 응답이 수신될 때까지 실행 경로를 통하지 않게 하는 처리로 정의된다. 이러한 서비스를 지지하기 위해 각각의 커맨드 메시지는 시스템 와이드의 유일한 시퀀스 ID로 스탬프되며, 그것은 커맨드 메시지에 결과로서 발생되는 이벤트 또는 에러 메시지에 전달되며, 특정의 메시지에 대한 응답으로서 확인될 수 있다. 동기 메시징은 인컴잉 응답들(incoming responses)을 통해 필터하기 위해 아웃고잉 커맨드의 시퀀스 ID를 이용하며, 따라서 커맨드에 대한 제 1 응답을 확인하고 그것을 결과로서 호출자(caller)에게 되돌릴 수 있으며, 전체로서 시스템에 동기성을 강제하지 않고서 프로세스가 동기되도록 한다.
이벤트 관리자
각각의 클래스 D의 장치, 예컨대 장치(114)는 이벤트 관리자, 예컨대 (210)를 갖는다. 이벤트 관리자는 시스템(100)을 통해 이벤트들의 분산을 제공하도록 메시징 시스템의 윗부분(top)상에 구축된다. 상당한 상태 변화 이벤트들을 보고하기 위해 추상 장치들에 의해 광범위하게 사용되지만 다른 클래스 D의 장치의 검출과 같은 시스템 와이드 취지의 이벤트를 보고하도록 몇몇 다른 서브시스템들에 의해 사용된다. 그 중앙에는 특정한 '원 투 매니(one-to-many)' 메일 박스가 있으며, 그것은 단일 메시지를 취해서 잠재적으로 많은 수의 수신자들에 전달한다. 각각의 수신자들은 함께 연결된 하나 또는 그 이상의 필터들이 되는 경향이 있으며, 그것은 최종 수신자에게 관심의 대상이 아닌 메시지들을 버린다.
특정하게 언급할 가치가 있는 한 경우가 있다. 각각의 리모트 클래스 D의 장치는 국부적으로 발신된 메시지를 통과시키기만 하는 필터가 부착되어 있으며 그것은 차례로 리모트 클래스 D의 이벤트 관리자의 입력을 가리키는 리모트 메일 박스에 부착된다. 이러한 방식으로 국부적 이벤트들은 모든 리모트 클래스 D의 장치들에 광고되며, 차례로 각각 그 국부적 이벤트를 광고한다. 이러한 필터/메일박스 쌍들은 새로운 리모트 클래스 D의 장치의 검출을 알리는 이벤트를 수신할 때 이벤트 관리자 그 자체에 의해 부가된다(그리고 클래스 D의 장치가 사라지고 대응하는 이벤트가 국부적으로 광고될 때 제거됨).
이벤트 관리자는 레지스트리로써 '원 투 매니' 메일박스를 등록하여, 다른 리모트 이벤트 관리자들은 그것을 위치시키고 그들의 국부적으로 발생된 이벤트들을 진척시킨다. 그러나 정상적 사용을 위해 이벤트 관리자는 레지스트리 룩업 및 메일박스 핸들을 국부적으로 저장하지 않고 이벤트가 보내지게 하는 공개적이고 정적인 방법을 제공한다. 다른 공개적 방법들은 관심있는 부분들이 '원 투 매니' 메일박스의 출력으로부터의 다른 메일박스를 부가(또는 제거)하게 한다.
이벤트 관리자는 또한 다양한 메시지 필터링 클래스들과 같이 다른 서브시스템들의 이익을 위해 다수의 유용한 메시지 처리 클래스들을 포함한다.
통신
상호 작용 프로토콜내의 통신들은 네트워크 또는 다른 통신 매체에 대한 장치들 사이의 데이터 교환을 포함한다. 메시징 시스템은 동일한 장치에 있지 않는 목적지에 메시지를 전송해야 할 필요가 있을 때 높은 레벨의 통신 서비스를 신뢰한다. 이러한 높은 레벨의 서비스는 프로토콜들 사이의 차이점들을 은닉하며, 균일한 어드레싱 구성을 제공한다.
장치 추상화들은 물리적 장치와의 통신에 있어서 더 많은 특정 프로토콜을 필요로 할 수 있어 한 세트의 낮은 레벨의 프로토콜 종속 통신 서비스들을 필요로하는 경향이 더 많다.
낮은 레벨의 서비스들은 또한 네트워크에 나타나는 새로운 장치들의 환경을 검출하고 통보하는 책임이 있다. 이것은 클래스 C의 다운로드 처리를 트리거링한다. 그들은 또한 네트워크 장치들이 사라질 때 표시를 한다. 이것은 진부한 것으로서 리모트 참조들을 지정하고, 더 이상 유효하지 않은 사용자 인터페이스에 존재하는 옵션들을 피하는 데 유용하다.
프로토콜과 무관한 통신
메시징 시스템은 다른 클래스 D 장치들에 있는 메시징 시스템과 통신하기 위해서 프로토콜과 무관하며, 더 높은 레벨의 통신 서비스에 의존하고 있다. 다른 서비스들은 메시징 시스템을 이용하여, 다른 장치들에 있는 유사한 시스템과 통신을 한다. 메시징 시스템은 높은 레벨의 통신 서비스가 제공하는 일정한 어드레싱 방법을 사용한다. 이것은 메시징 시스템내의 일치성을 위해 바람직하지만, 그러나, 또한 그것은 필요한데, 그 이유는 약간의 망 프로토콜들은 플라이(fly)상에 재할당되어 있는 동적으로 할당되어 있는 망 ID를 사용하기 때문이다(P1394는 예를 들면, 장치가 추가될 때에, 플라이에 재할당된다). 높은 레벨의 통신 서비스는 매핑이 변하더라도, 메시징 시스템과 물리적인 망 어드레스 사이에 제공된 ID간의 신뢰성 있는 매핑을 유지하고 있다.
프로토콜-의존 통신
장치 추상화(abstraction)과 추상이 되어질 장치간의 통신이 비밀스러운 것이라면, 구현기(implementer)는 어떤 프로토콜도 자유롭게 선택할 수 있으며, 또는 메커니즘이 통신을 위해 적절하다.
일반적으로 장치 추상화는 그들이 나타내는 실제 장치와의 통신을 할 때에 더욱 프로토콜과 관련된 제어가 필요하게 된다. 상기와 같은 사실은 클래스 C의 구현기에 전적으로 달려 있고, 특정 통신 프로토콜 서비스는 메시징 시스템의 필요에 의해 몇 가지 추가지원을 정의하게 되지만, 장치 추상화는 물리적인 장치와 대화하기 위해서는 (더 높은 레벨의 메시지 중심의 서비스보다는) 더 낮은 레벨의 프로토콜과 관련된 통신 서비스를 사용하게 된다.
장치 추상화(Device abstraction)은 순수한 제어기들이 아닌 것에 대해서, 즉, 클래스 D로 통합되는 장치들에 대해서도 존재한다. 이러한 장치 추상화들은 어떤 장치 구동기도 직접 처리할 수 있으며, 또는 OS 서비스는 통합된 기능성을 제어하기 위해서 적절하다.
부가적인 프로토콜-의존 서비스들
소정의 통신 메커니즘에 있어서는, 장치 제어내에서 사용되는 표준 프로토콜이 있는데, 예를 들면 P1394에 대해서는 A/VC가 있다. 다운로딩된 바이트 코드를 작게 유지하기 위해서는, 수신을 위한 각 지원되는 통신 프로토콜은 통신 메커니즘을 위해 알맞은 적절한 제어 프로토콜을 지원하는 장치 서비스들을 지원한다는 것이 제안되었으며, 이것을 다운로딩된 장치 추상화는 레버리지(leverage) 할 수 있다. 이러한 서비스들은 장치들의 상호 운용성을 보장하도록 역방향- 및 순방향-호환가능한 채로 있어야 한다는 것을 유의해야 하며, 즉, 일단 정의되면, 그것들은 현저하게 변경될 수 없다.
플러그 앤드 플레이(Plug-and-Play) 지원
새로운 장치가 통신 서비스들과 관련된 망(network)상에서 식별될 때에, 더 낮은 레벨의 통신 서비스들은 통지를 하게 된다. 프로토콜들이 노드들의 삽입 또는 제거를 검출하는 망의 경우에서는, 상기 능력이 이용된다. 다른 망의 경우에서는, 방송 메시지가 주기적으로 송신되고, 새로운 노드들이 응답하게 한다. 새로운 노드들은 그들의 이용가능성을 나타내는 방송을 선택적으로 송신할 수 있으며, 비록 방송들이 대부분의 프로토콜들에 대해 통상적으로 보장된 전달이 아니기 때문에, 폴링 방송들(polling broadcasts)이 최초의 방송이 실패할 때에 장치들을 캐치(catch)하는 안전망을 제공하더라도 그러하다.
"새로운 장치" 이벤트는 패키지 수신기(Package Downloader)에 의해 수신된다. 상기 수신기는 그것이 클래스 C 확장들을 지원하는지를 알아보기 위해서 조사를 하게 된다. 클래스 C 패키지 수신에 대한 규칙은 프로토콜마다 변하게 되므로, 그것은 프로토콜 의존 서비스의 도움을 얻게 된다. 만약 클래스 C 패키지가 존재한다면, 그리고, 이러한 환경에 의해 관찰되지 않는 제조업자/모델 번호특성을 가지고 있다면, 또는 관찰된 특성의 가장 최근 판을 가지고 있다면, 패키지는 복구된다. 그 다음에 그것이 패키지 로더(Loader)로 전달되며, 로더는 패키지 콘텐트들을 환경에 통합시킨다.
신호 라우팅("스위치")
시스템(100)은 소비자 전자 정치들의 제어에 초점을 두고 있지만, 그러나, 제어과정의 한 부분은 제어되어지는 장치들간의 신호 라우팅을 설정하는 것이다. 이러한 메커니즘은 일반적이며, 확장될 수 있다. "스위치" 서비스는 특별한 지식과 전체 상태가 보호되게 하며, 시스템내의 좀 더 일반적인 응용으로부터 분리시킨다. 또한 그것은 신호 라우팅이 신호 라우팅을 위한 상세한 셋-업을 기록한 매크로의 내부와 외부에 설정되게 하며, 이것은 실패할 수 있는데, 그 이유는 서로 다른 자원 할당 때문이다(예를 들면, 등시성 채널 할당(isochronous channel assignments)).
명명된 루트들
"명명된 루트"는 소스 장치에서 목적지 장치까지의 구조와, 특정한 신호 루트에 대한 "프리셋"과 비슷하다. 루트는 소스장치간의 연결들과 어떤 중간신호처리블록과 목적지 장치로 구성되어 있다. 루트는 또한 상기 신호처리블록에 대한 셋업 정보를 포함할 수 있다.
특정한 "명명된 루트"를 설정하는 명령은 매크로내에 내장되어 있으며, 또는 소스 장치와 또는 매체 형태와 관련이 있다. 예를 들면, DVD 영화 디스크를 DVD 드라이브에 삽입시키면, "DVD" 영화라고 불리우는 명명된 루트를 설정하는 매크로를 트리거(trigger)시킨다. 상기 루트내에서는 AC-3을 위해 구성되어 있으며, MPEG-2 데이터 스트림을 MPEG 디코더로 라우팅시키며, 비디오를 라인 더블러(doubler)를 통해, 오디오를 DSP 블록을 통해 라우팅시키는 정보가 있다. CD를 DVD 드라이브로 삽입시키면, "CD 음악"을 트리거링시킨다. 상기 음악은 음악 서라운드 모드를 위해 구성되어 있으며, DSP 블록을 통해 오디오를 라우팅하며, 비디오 서브시스템을 통해 화면 표시를 라우팅한다.
명명된 루트를 만들기
사용자의 편의를 위해서, 매체 스트림의 처리와 라우팅에 포함된 복잡성을 간략히 하는 것이 바람직스럽다. 사용자는 시스템의 선택들을 무시해도 된다. 모드 가능한 상황하에서 올바른 판단을 하는데 필요한 시스템 기능은 반드시 제한된다. 이러한 이유 때문에, 사용자는 소정의 가능한 하드웨어 제한에 맞게끔 "명명된 루트"를 만들고 편집할 수 있어야 한다. 사용자가 만들거나 또는 수정한 명명된 루트들은 스위치가 자동적으로 미리 구성된 루트들과 동적으로 발생된 루트들 사이에서 선택을 할 때에, 상기 루트들보다 우선권을 가지고 있다.
콘텐트 포맷들(Content Formats)
장치들은 서로 다른 형태들간의 콘텐트(또는 신호들)를 변환시킬 수 있으며, 그들 중 몇몇은 다른 것들보다 양호하다. 게다가, 새로운 포맷들은 미래에 나타날 것이며, 계획(scheme)이 그것들과 그들의 변환을 다루는 것이 필요하다. 시스템(100)내에 있는 프로토콜은 콘텐트를 "불투명한(opaque)" 콘텐트 포맷 식별자로서 정의하며, 이것에 대한 유일한 유효동작은 동등성(equality)을 위해 테스트하는 것이다. 각각의 콘텐트 포맷 식별자에 대해서는, 관련된 "품질 지수(quality index)'가 있는데, 그것의 목적은 스위치가 변환이 필요한 콘텐트를 변환시키는 포맷들 중에서 한 개를 선택할 수 있도록 하는 것이다. 예를 들면, VCR은 복합 연결과 S-비디오 연결을 모두 가질 수 있다. 만약 기록된 신호가 원래부터 DSS로부터 나온 MPEG-2 스트림이라면, 변환은 그 신호가 아날로그 VCR상에 기록되도록 이루어져야 한다. 양호한 선택은 S-비디오이며, 그것의 품질지수가 더 높기 때문에, 스위치에 의해서 선택된다.
콘텐트 포맷 식별자들은 문제를 일반화시키려 하거나 또는 해법을 달성하기 위해 소모적 나열을 시도하려 하는 것에 대해서 종래의 방식에 의한 표준화가 선호되는 다른 영역이다.
신호 프로세싱
장치들간에 확산된 다양한 프로세싱 블록들은 신호 경로를 따라서 유사한 변한 또는 등가의 변환을 할 수 있다. 어떤 것은 다른 것들보다 더 양호한 품질 변환(better quality conversion)을 제공할 수 있다(양호한 예는, 2-D 콤 필터에 대한 3-D 콤 필터(comb filter)의 개선된 품질이다). 어떤 경우에도, 변환들의 수를 감소시키는 것이 매우 바람직하다.
그러므로, 콘텐트 포맷들(content formats)에 대해 품질 인덱스(quality index)를 제공하는 것 이외에, 시스템(100)에서의 프로토콜은 각 가능한 변환과 관계되는 프로토콜을 필요로 한다. 예를 들어, 이 값은 0 및 1간의 분수이고 각 포텐셜 루트는 상기 루트를 따라서 각 변환을 위한 순서로 상기 값을 승산함으로써 "스코어(score)"된다. 가장 높은 스코어를 갖는 루트는 "가장 순수한(purest)(즉, 가장적은 콘텐트 열화를 갖는 루트)" 루트를 제공한다.
관련된 콘텐트 스트림들의 번들링
단일 콘텐트 스트림이 다중 콘텐트 스트림으로 엔코딩 또는 디코딩되며, 단일 MPEG-2 스트림이 예를 들어 비디오, 멀티-채널 오디오 및 아마도 서브타이틀링 정보로 디코딩하는 경우가 존재한다. 이들 스트림간의 관계성을 유지하여 오디오 대 비디오의 동기화를 유지시키는 것이 중요하다. 시스템(100)의 프로토콜은 관계된 스트림들을 모두 "번들링(bundle)"하여 상기 스트림들이 분할되고 결합되어 있을 때의 관계성을 유지시키도록 하는 메커니즘을 갖는다.
각 번들은 자신을 구성하는 콘텐트 포맷 식별자를 위한 계층적인 컨테이너로서 작용한다. 단일 콘텐트 포맷 식별자가 "분할"될 때, 상기 식별자는 동일한 위치에서 새로운 콘텐트 포맷 식별자를 포함하는 서브번들로 대체된다. 서브 번들이 단일 콘텐트 포맷 식별자와 "병합"될 때 이 대체는 반대로 된다.
동적 분석
아키텍처는 유효한 소스 장치 및 유효한 목적지 장치(valid destination device)를 갖는 경우 완전하게 자동화된 루팅을 고려한다. 이 아키텍처는 또한 사전 형성된 루트 및 사용자가 만든 루트를 지원한다. 사용자는 또한 동적으로 설정된 루트를 편집하여 사용자가 만든 루트로서 취급되는 더욱 정적인 표현으로 변환시킨다. 사전 형성된 루트가 편집되면, 이 루트는 또한 선택용 "사용자가 만든" 루트로 된다.
언급된 루트들은 동적 및 정적 정보의 조합으로 이루어질 수 있다. 하나의 루트는 소스 및 목적지 장치 그리고 오디오 DSP의 서라운드 모드를 정적으로 규정할 수 있지만 그외 나머지 루트는 동적 라우팅 프로세스에 맡겨진다. 이와 같은 종류의 루트들은 일부 공지된 바와 같이 홈 시어터(home-theater) 타입 제어기의 사전 형성된 루트와 매우 유사하지만 개개 시스템의 기능성 및 결합성은 약간의 유연성을 필요로 한다. 예를 들어, 단지 아날로그 오디오만이 이용가능한지 또는 S/PDIF 커넥션이 존재하는지, AC-3 신호가 제공되는지이다. 명명된 루트는 부분적으로 분포되는(populated) 구조로서 고려되고, 스위치는 "블랭크를 채움(fill in the blank)"하도록 시도되어 현재 상태에 적합한 루트를 생성한다.
사전 형성되고 사용자가 만든 루트만을 갖는 시스템에서조차, 스위치는 루트들간에서 루트를 선택할 수 있다. 모호한 상황에서 스위치가 루트를 설정하는데 실패하는 것은 수용될 수 없다. 콘텐트 포맷 식별자 및 변환용 품질 인텍스를 이용하여 각 옵션을 "스코어"하고 가장 높은 스코어(콘텐트를 가장 낮은 범위로 열화 시키는 스코어)를 갖는 하나의 스코어를 선택한다.
가능한 소스들 및 목적지들을 위한 질의
사용자 인터페이스는 소스 장치가 식별되면 가능한 목적지들간에서 그리고 목적지가 제공되면 가능한 소스들간에서 선택을 사용자에게 제공할 필요성을 갖는다. 오디오/가시 환경에서, 이것은 전자의 경우에 기록에 유용하고 후자의 경우에 시청/청취에 유용하다.
스위치는 활용가능한 루트(이들의 스코어를 플러스)를 결정하고 이들 루트를 호출자에게 리턴시킨다. 콘텐트 포맷 변환에서만 상이하게되는 등가의 루트를 제거하며, 가장 높은 스코어를 갖는 하나의 스코어를 선택한다. 사용자 인터페이스는 디폴트(default)에 의해 가장 높은 스코어를 갖는 하나의 스코어를 선택하도록 하고 감소되는 스코어 순서로 그외의 나머지 스코어를 표시한다.
목적지를 위한 현재 소스를 결정 그리고 현재 소스를 위한 목적지 결정
명확한 장치 또는 변환기라기 보다는 차라리 목적지를 위한 "현재 소스"(또는 현재 소스를 위한 목적지)에 영향을 미치는 일부 명령을 갖는 것이 바람직하다. 온 스크린 제어 또는 하드 버튼과 관계되는 "볼륨 업" 또는 "볼륨 다운" 작용은 사용자의 장소용 볼륨에 현재 책임이 있는 장치에 영향을 미친다. 멀티-룸 오디오/가시 시스템의 상황이 고려될 때 이것은 특히 기록되는 매크로에 대해 참이며, 즉, 매크로가 원래 기록되는 룸(room)에서 볼륨을 변경시키는 것이 아니라 사용자가 현재 자신을 발견하는 룸을 변경시키도록 의도된다.
스위치는 이 기능을 수행하는 실제 장치로 "현재" 소스 또는 목적지 장치를 위한 메시지를 전송하는 역할을 한다. 이 스위치는 또한 현재 소스 또는 목적지 장치를 위한 우편함에 레퍼런스(reference)를 제공할 수 있다. 콘텐트 스트림을 변경하는 메시지는 현재 소스 장치(플레이, 채널업 등)에 전송되며, 콘텐트의 프리젠테이션에 영향을 미치는 이들 메시지는 목적지 장치(콘트라스트, 볼륨 등)에 전송된다.
콘텐트 소소의 제어
콘텐트 스트림을 제어하는 균일하고 일정한 모델이 바람직하다. 전문용어(terminology)가 소스 장치들중에서 변화하는 반면에, 기본적인 하부 구조는 매우 규칙적이다. 콘텐트 소스의 조정은 일반적으로 "위치"를 규정하기 위하여 가변하는 "크기"(가변 길이 벡터)의 수를 이용함으로써 성취될 수 있다. 간단한 튜너는 단일 크기를 표시하며, 광대역 매체로부터 채널들간에서 크기를 선택할 수 있다. 더욱 복잡한 예는 하나 이상의 드라이브를 갖는 큰 CD 체인저이다. 제 1 크기는 드라이브, 제 2 크기는 디스크, 제 3 크기는 트랙, 제 4 크기는 인덱스 마크, 제 5 크기는 타임 옵셋일 수 있다. 드라이브/디스크/트랙/타임 옵셋 또는 단지 디스크만과 같은 유용하게 될 수 있는 다른 사양들이 존재할 수 있기 때문에, 이 예는 매우 흥미로운데, 이것은 장치가 어느 드라이브, 즉 디스크의 시작에서의 위치를 선택할 수 있다는 것을 의미하며, 이것은 플레이 명령에 대한 디스크를 규정하는데 유용하게 된다.
장치는 다른 사양을 고려하도록 다중 벡터들(multiple vectors)을 지원한다. 각 크기에 대하여, 장치는 "x2 정상 속도"와 같은 제어의 "테이프 전송" 타입을 규정하기 위하여 절대적, 상대적 또는 "모션"을 규정할 수 있다는 것을 나타낼 수 있다. 사용자에게 이를 표시할 때 이 크기를 위해 사용하기 위한 항(term)이 규정되어 있다.
비-로컬 신호 라우팅(Non-local Signal Routing)
스위치는 로컬 클래스 D 장치내의 라우팅 콘텐트와 주로 관련된다. 장치들간에서 콘텐트 스트림을 전송하는 수단이 존재하는 경우, 스위치는 하나의 클래스 D 장치와 연관된 소스에서 또 다른 D 장치와 접속된 목적지로 라우팅시키도록 협동될 수 있다. 필요로 되는 콘텐트 변환은 또 다른 클래스 D 장치에 대해서만 행해질 수 있고 두 개의 장치가 동일한 클래스 D 장치에 부착될지라도 비-로컬 라우팅이 초래되는 경우가 존재할 수 있다.
이 프로세스는 소스 장치를 포함하는 클래스 D 장치에 대해서 스위치에 의해 초기화된다. 소스 장치는 루트가 설정되도록 요청하는 장치와 동일하거나 동일하지 않을 수 있다. 루트의 부분이 국부적으로 설정되도록 하는 옵션을 결정하여 상기 루트의 나머지 부분을 선택된 루트를 따라서 다음 클래스 D 장치로 전송한다. 그리고 나서, 목적지 장치가 도달될 때까지 상기 장치는 동일한 동작을 행한다. 그리고 나서, 원래 클래스 D 장치가 도달될 때까지 최종 클래스 D 장치는 가장 높은 스코어를 결정하고 이 스코어를 가장 좋은 스코어와 승산시키는 마지막에서 두 번째 클래스 D 장치로 리턴시키고 이 스코어를 상기 장치에 선행하는 장치에 리턴시킨다. 원래 클래스 D 장치는 목적지 장치에 도달할 수 있는 서로 다른 루트에 대해서 하나 이상의 스코어를 갖는다. 가장 높은 스코어를 갖는 루트를 선택하고 이 루트를 설정하기 위한 확인을 전송한다. 확인되는 경우 루트가 설정되게 하도록 유지되는 자원이 존재할 수 있기 때문에 그외 다른 루트들에는 취소를 전송한다.
통보 관리자(Notification Manager)
통보 관리자는 사용자에 대한 환경 내에서의 조건의 비동기 통신을 위한 서비스이다.
시스템(100)에서의 '애플리케이션'은 기초를 이루는 서브시스템들과 사용자를 인터페이싱하는데 우선 관계된다. 그와 같은 우선 관계는 시스템의 모든 사용자 인터페이스의 일부에 기여한다.
클래스 C의 장치들은 장치 추상화를 따르는 장치를 위한 사용자 인터페이스를 구체화할 수 있으며, 애플리케이션들은 모든 시스템의 사용자 인터페이스의 지식이 최소화되는 방식에서 기록되며, 다운로딩된 애플리케이션은 클래스 D의 장치가 그 인터페이스를 나타내는데 있어서 사용하는 존재하는 '스타일'로 이음매 없이(seamlessly) 통합할 수 있다. 이것은 높은 레벨의 의미론적으로 배열된 사용자 인터페이스 성분의 라이브러리를 제공함으로써 이루어지며, 그것은 플랫폼 특정의 프리젠테이션으로 표준화된 기능을 제공한다. 이러한 방식으로 제조업자는 경합을 벌일 것이며, 클래스 C의 장치들로부터 다운로딩된 애플리케이션이 '아픈 엄지 손가락과 같이 불거져 나오는(sticking out like a sore thumb)'일 없이 클래스 D의 생성물들을 차별화할 것이다.
사용자 인터페이스 제공
애플리케이션들은 리모트 클래스 D의 장치에 위치한 추상 장치에 대한 사용자 인터페이스를 제공하기 위해 클래스 D의 장치들 사이에서 이동할 수 있다. 이것은 클래스 D의 장치들이 '헤드가 없는(headless)' 것을 허용하며, 즉, 사용자-인터페이스를 제공하지 않고, 사용자와 상호 작용하기 위해 사용자 인터페이스를 제공하는 다른 클래스 D의 장치들을 의존한다.
애플리케이션 프레임워크는 클래스 D의 장치에 의해 제공된 환경 내에서 개별적인 애플리케이션들을 잘 배합하도록 존재한다. 환경이 자원이 억제당할 경향이 있기 때문에(예컨대 단 하나의 애플리케이션이 한번에 작용할 것이다) 애플리케이션들 프레임워크는 사용자가 사용자 인터페이스를 통해 네비게이트할 때 필요한 만큼 그들을 예를 들어 설명할 것이다.
추상 장치가, 예를 들어 설명될 그 애플리케이션을 의지할 수 없기 때문에 사용자가 문제점을 알 필요가 있을 때 사용자 인터페이스 자원들의 처리에 있어서 다른 메커니즘들은 사용자에게 통보되어야 하거나 또는 중재해야 하는 상황을 보고하게 한다. 이것은 통보 관리자에 의해 클래스 D의 장치의 서비스가 제공된다. 통보 관리자는 항상 능동적이고 유효하며, 현재의 능동적인 애플리케이션과 무관하게 아무 때나 사용자에게 메시지를 표시할 수 있다.
에러 보고 관리자는 통보 관리자의 위에 설치되며, 애플리케이션 서비스는 에러 메시지를 해석하여 일관된 방식으로 사용자에게 그것을 보고할 수 있다. 이러한 서비스는 애플리케이션을 제공하려는 부담없이 사용자에게 일관되게 높은 기준의 에러를 보증하는데 유용하다. 시스템의 고장을 수리하는 것은 종종 조직적인 문제점 해결에 익숙하지 않은 비기술적 사용자들에 대한 문제점이며, 간결하고 정확하며, 이해 가능한 에러 메시지들은 이러한 청취자를 위해 필수적이다(기술 지향적인 이들에게도 도움이 된다).

Claims (12)

  1. 다중 전자 장치들 사이의 상호 작용을 제어하는 태스크 구동형 제어 수단(task-driven control means)을 통해 상호 접속된 상기 다중 전자 장치들을 포함하고, 상기 제어 수단은 상기 장치들 중 각각의 장치의 소프트웨어 리프리젠테이션들(representations)에 따라 동작하는 제어 시스템에 있어서,
    상기 전자 장치들 중 적어도 특정한 하나의 전자 장치는 상기 제어 수단에 연결될 때 상기 제어 수단에 상기 특정한 하나의 전자 장치의 개별 소프트웨어 리프리젠테이션을 다운로딩하는 수단을 포함하고, 상기 제어 수단은 상기 다운로딩된 소프트웨어 리프리젠테이션을 수신하는 수단을 포함하는, 제어 시스템.
  2. 제 1 항에 있어서,
    상기 소프트웨어 리프리젠테이션은 상기 리프리젠테이션들에 공통인 의미론적 레벨(semantic level)로 상기 각각의 장치를 나타내는 장치 추상화(device abstraction)를 포함하는, 제어 시스템.
  3. 제 2 항에 있어서,
    상기 소프트웨어 리프리젠테이션은 상기 장치 추상화에 대한 사용자 인터페이스의 애플리케이션을 포함하며, 상기 제어 수단은 상기 애플리케이션을 실행하도록 동작하는, 제어 시스템.
  4. 제 1 항에 있어서,
    상기 소프트웨어 리프리젠테이션은 컴파일링된 코드를 포함하는, 제어 시스템.
  5. 제 1 항에 있어서,
    적어도 하나의 상기 전자 장치들은 가전 장치(consumer electronics device)를 포함하는, 제어 시스템.
  6. 제 1 항의 시스템에서 이용하기 위한 제어 수단에 있어서,
    적어도 하나의 상기 전자 장치들로부터 소프트웨어 리프리젠테이션을 수신하는 수단을 포함하며, 각각의 상기 장치들의 개별 소프트웨어 리프리젠테이션들에 따라 동작함으로써 다중 전자 장치들간의 상호 작용을 가능하게 하는, 제어 수단.
  7. 제 6 항에 있어서,
    상기 소프트웨어 리프리젠테이션은 컴파일링된 코드를 포함하는, 제어 수단.
  8. 제 6 항에 있어서,
    추가의 가전 장치를 포함하는, 제어 수단.
  9. 제 1 항의 시스템에서 이용하기 위한 전자 장치에 있어서,
    자신의 소프트웨어 리프리젠테이션을 상기 제어 수단에 다운로딩하는 수단을 포함하고, 상기 소프트웨어 리프리젠테이션에 따라서 상기 전자 장치를 상기 제어 수단이 제어할 수 있도록 하는, 전자 장치.
  10. 제 9 항에 있어서,
    상기 소프트웨어 리프리젠테이션은 컴파일링된 코드를 포함하는, 전자 장치.
  11. 다중 전자 장치들간의 상호 작용을 가능케 하는 방법에 있어서,
    상기 전자 장치들 중 적어도 하나의 특정 전자 장치는 제어 수단에 연결될 때 자신의 개별 소프트웨어 리프리젠테이션을 상기 제어 수단에 다운로딩하고,
    상기 제어 수단은 상기 다운로딩된 소프트웨어 리프리젠테이션을 수신하고,
    상기 제어 수단은 상기 전자 장치들의 개별 소프트웨어 리프리젠테이션들에 따른 동작을 통해 상기 전자 장치들간 상호 작용을 제어하는, 다중 전자 장치들간 상호 작용을 가능케 하는 방법.
  12. 제 11 항에 있어서,
    상기 소프트웨어 리프리젠테이션은 컴파일링된 코드를 포함하는, 다중 전자 장치들간 상호 작용을 가능케 하는 방법.
KR10-1998-0704486A 1996-10-15 1997-08-21 가전장치용태스크구동형제어시스템 KR100475200B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/731,624 US5959536A (en) 1996-10-15 1996-10-15 Task-driven distributed multimedia consumer system
US8/731,624 1996-10-15
US08/731,624 1996-10-15

Publications (2)

Publication Number Publication Date
KR19990072149A KR19990072149A (ko) 1999-09-27
KR100475200B1 true KR100475200B1 (ko) 2005-07-21

Family

ID=24940302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0704486A KR100475200B1 (ko) 1996-10-15 1997-08-21 가전장치용태스크구동형제어시스템

Country Status (7)

Country Link
US (1) US5959536A (ko)
EP (1) EP0867004B1 (ko)
JP (1) JP2000503439A (ko)
KR (1) KR100475200B1 (ko)
CN (1) CN1139035C (ko)
DE (1) DE69737525T2 (ko)
WO (1) WO1998016886A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101052029B1 (ko) 2009-11-30 2011-07-26 (주)라이프앤진 유전자 검사 샘플 채취용 패치
KR101600789B1 (ko) 2015-03-24 2016-03-08 (주)에스에이피 포장용 상자 및 그 제조방법

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
JP4114970B2 (ja) * 1997-03-24 2008-07-09 ソニー株式会社 情報信号伝送装置
US6131129A (en) * 1997-07-30 2000-10-10 Sony Corporation Of Japan Computer system within an AV/C based media changer subunit providing a standarized command set
ATE265062T1 (de) * 1997-10-27 2004-05-15 Sony Service Ct Europe Nv System von programmobjekten und programmkomponenten mit externer schnittstelle
US6519686B2 (en) * 1998-01-05 2003-02-11 Intel Corporation Information streaming in a multi-process system using shared memory
US7167892B2 (en) 1998-03-19 2007-01-23 Isochron, Inc. System, method and apparatus for vending machine wireless audit and cashless transaction transport
US6457038B1 (en) 1998-03-19 2002-09-24 Isochron Data Corporation Wide area network operation's center that sends and receives data from vending machines
US7181501B2 (en) 1998-03-19 2007-02-20 Isochron, Inc. Remote data acquisition, transmission and analysis system including handheld wireless equipment
US8631093B2 (en) 1998-03-19 2014-01-14 Crane Merchandising Systems, Inc. Remote data acquisition, transmission and analysis system including handheld wireless equipment
US7020680B2 (en) 1998-03-19 2006-03-28 Isochron, Llc System and method for monitoring and control of beverage dispensing equipment
US6081855A (en) * 1998-04-15 2000-06-27 Oak Technology, Inc. Digital versatile disc playback system with flexible input interface
WO1999055070A2 (en) * 1998-04-22 1999-10-28 Koninklijke Philips Electronics N.V. Management of functionality in a consumer electronics system
DE69933637T2 (de) * 1998-04-22 2007-08-23 Koninklijke Philips Electronics N.V. Funktionalitätsverwaltung für ein system der unterhaltungselektronik
EP0996933B1 (en) * 1998-04-23 2003-04-23 Koninklijke Philips Electronics N.V. A software controlled imaging system with an application module interconnected to a user interface controller module in a data driven organization
FR2778046B1 (fr) * 1998-04-23 2000-05-19 Thomson Multimedia Sa Procede de gestion d'objets dans un reseau de communication et dispositif de mise en oeuvre
US6163817A (en) * 1998-06-30 2000-12-19 U.S. Philips Corporation Dynamically disabling and enabling of devices in consumer system with multiple communication protocols
JP3922817B2 (ja) * 1998-06-30 2007-05-30 株式会社東芝 通信ノード及び通信端末
US6918123B1 (en) * 1998-10-02 2005-07-12 Koninklijke Philips Electronics N.V. Calls identify scenario for control of software objects via property routes
US6499062B1 (en) * 1998-12-17 2002-12-24 Koninklijke Philips Electronics N.V. Synchronizing property changes to enable multiple control options
US6286138B1 (en) * 1998-12-31 2001-09-04 International Business Machines Corporation Technique for creating remotely updatable programs for use in a client/server environment
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US7213061B1 (en) 1999-04-29 2007-05-01 Amx Llc Internet control system and method
EP1051028A1 (en) 1999-05-05 2000-11-08 Sony International (Europe) GmbH Control module of a tuner for a HAVI network
JP4441945B2 (ja) 1999-05-07 2010-03-31 ソニー株式会社 制御方法及び制御装置
DE19924795A1 (de) * 1999-05-29 2000-11-30 Philips Corp Intellectual Pty Netzwerk mit mehreren Terminals und einem auf allen Terminals verteilten Softwaresystem
US6496927B1 (en) * 1999-06-09 2002-12-17 Amx Corporation Method and configuring a user interface for controlling a controlled device based upon a device class
US6823519B1 (en) * 1999-06-24 2004-11-23 Microsoft Corporation Control object and user interface for controlling networked devices
US6618764B1 (en) * 1999-06-25 2003-09-09 Koninklijke Philips Electronics N.V. Method for enabling interaction between two home networks of different software architectures
DE60027025T2 (de) * 1999-09-16 2006-12-28 General Electric Co. Virtuelles, modulares relais
US6990379B2 (en) * 1999-12-30 2006-01-24 Microsoft Corporation Method and apparatus for providing a dynamic resource role model for subscriber-requester based protocols in a home automation and control system
US6823223B2 (en) * 1999-12-30 2004-11-23 Microsoft Corporation Method and apparatus for providing distributed scene programming of a home automation and control system
US6834208B2 (en) * 1999-12-30 2004-12-21 Microsoft Corporation Method and apparatus for providing distributed control of a home automation and control system
US7111079B2 (en) * 2000-02-23 2006-09-19 Koninklijke Philips Electronics, N.V. Architecture of a bridge between a non-IP network and the web
TW510134B (en) * 2000-04-04 2002-11-11 Koninkl Philips Electronics Nv Communication system, controlling device and controlled device
US7013337B2 (en) 2000-05-12 2006-03-14 Isochron, Llc Method and system for the optimal formatting, reduction and compression of DEX/UCS data
US7010594B2 (en) * 2000-05-26 2006-03-07 Isochron, Llc System using environmental sensor and intelligent management and control transceiver for monitoring and controlling remote computing resources
US7107605B2 (en) * 2000-09-19 2006-09-12 Simple Devices Digital image frame and method for using the same
US20020062259A1 (en) * 2000-09-26 2002-05-23 Katz James S. Server-side system responsive to peripherals
US20020065950A1 (en) * 2000-09-26 2002-05-30 Katz James S. Device event handler
US6732282B1 (en) * 2000-10-20 2004-05-04 Sony Corporation System and method of determining the power relationship among devices
US10298735B2 (en) 2001-04-24 2019-05-21 Northwater Intellectual Property Fund L.P. 2 Method and apparatus for dynamic configuration of a multiprocessor health data system
US7146260B2 (en) * 2001-04-24 2006-12-05 Medius, Inc. Method and apparatus for dynamic configuration of multiprocessor system
US20020174198A1 (en) * 2001-05-16 2002-11-21 Imation Corp. Management of networked devices
US7164884B2 (en) 2001-06-29 2007-01-16 Isochron, Llc Method and system for interfacing a machine controller and a wireless network
US7778600B2 (en) 2001-06-29 2010-08-17 Crane Merchandising Systems, Inc. Apparatus and method to provide multiple wireless communication paths to and from remotely located equipment
US6925335B2 (en) 2001-07-05 2005-08-02 Isochron, Llc Real-time alert mechanism for monitoring and controlling field assets via wireless and internet technologies
US7523182B2 (en) 2001-11-27 2009-04-21 Isochron, Inc. Method and system for predicting the services needs of remote point of sale devices
US7178049B2 (en) 2002-04-24 2007-02-13 Medius, Inc. Method for multi-tasking multiple Java virtual machines in a secure environment
JP3730599B2 (ja) * 2002-06-27 2006-01-05 株式会社東芝 サーバ装置および状態制御方法
US20040015620A1 (en) * 2002-07-18 2004-01-22 International Business Machines Corporation Method for reporting information in a pervasive embedded environment
KR100442281B1 (ko) * 2002-08-26 2004-08-02 엘지전자 주식회사 홈 네트워크 시스템의 제어 방법
AU2003297433A1 (en) * 2002-12-24 2004-07-22 Samrat Vasisht Method, system and device for automatically configuring a communications network
DE10304114A1 (de) * 2003-01-31 2004-08-05 Robert Bosch Gmbh Rechnersystem in einem Fahrzeug
CN1826733B (zh) * 2003-07-24 2012-06-13 皇家飞利浦电子股份有限公司 电子系统和向电子系统提供附加功能特征的方法
GB2406662A (en) * 2003-09-30 2005-04-06 Toshiba Res Europ Ltd Configuring a computer apparatus
US7029136B2 (en) * 2004-05-26 2006-04-18 Ming Kun Hsu Light shield for welding
EP2262210A3 (en) * 2004-10-25 2014-09-17 Nokia Corporation Detection, identification and operation of peripherals connected via an audio/video-plug to an electronic device
US20060095596A1 (en) * 2004-11-03 2006-05-04 Yung Lin C Solution for consumer electronics control
US7337650B1 (en) 2004-11-09 2008-03-04 Medius Inc. System and method for aligning sensors on a vehicle
CA2621713C (en) 2005-09-07 2016-01-26 Amx Llc Method and computer program for device configuration
US8484068B2 (en) 2005-12-14 2013-07-09 Crane Merchandising Systems, Inc. Method and system for evaluating consumer demand for multiple products and services at remotely located equipment
US20080122675A1 (en) * 2006-06-27 2008-05-29 John Bilodeau Universal remote control programming and operations platform
US8135342B1 (en) 2006-09-15 2012-03-13 Harold Michael D System, method and apparatus for using a wireless cell phone device to create a desktop computer and media center
US7997484B2 (en) 2006-09-13 2011-08-16 Crane Merchandising Systems, Inc. Rich content management and display for use in remote field assets
US8959028B2 (en) 2007-07-02 2015-02-17 Crane Merchandising Systems, Inc. Apparatus and method for monitoring and control of remotely located equipment
US9131078B2 (en) * 2007-07-27 2015-09-08 Lagavulin Limited Apparatuses, methods, and systems for a portable, image-processing transmitter
US8533315B2 (en) 2007-10-25 2013-09-10 Crane Merchandising Systems, Inc. Systems and methods for monitoring performance of field assets
US8413115B1 (en) * 2008-08-28 2013-04-02 Raytheon Company Specifying integration points of a system-of-systems
US8479051B2 (en) 2009-01-23 2013-07-02 Microsoft Corporation System and method for customized error reporting
US9358924B1 (en) 2009-05-08 2016-06-07 Eagle Harbor Holdings, Llc System and method for modeling advanced automotive safety systems
US8417490B1 (en) 2009-05-11 2013-04-09 Eagle Harbor Holdings, Llc System and method for the configuration of an automotive vehicle with modeled sensors
US8886392B1 (en) 2011-12-21 2014-11-11 Intellectual Ventures Fund 79 Llc Methods, devices, and mediums associated with managing vehicle maintenance activities

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0506278A2 (en) * 1991-03-26 1992-09-30 International Business Machines Corporation Device driver system having generic operating system interface

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0290330A (ja) * 1988-09-28 1990-03-29 Hitachi Ltd プログラム構成方式
US5212792A (en) * 1989-06-01 1993-05-18 Hewlett-Packard Company Method and apparatus for controlling execution of tools in a computer-aided software engineering system
JP3169597B2 (ja) * 1990-05-16 2001-05-28 エヌイーシーソフト株式会社 マルチタスク実行時間アカウント方法とその機構
JP2582956B2 (ja) * 1991-05-07 1997-02-19 三菱電機株式会社 プログラマブル制御装置
US5291585A (en) * 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
GB9224224D0 (en) * 1992-11-19 1993-01-06 Int Computers Ltd Data processing system
US5493681A (en) * 1994-04-08 1996-02-20 Motorola, Inc. Method of configuring alternative instances of an element class in a software system
US5546301A (en) * 1994-07-19 1996-08-13 Honeywell Inc. Advanced equipment control system
AU3372095A (en) * 1994-08-24 1996-03-14 Arcada Software, Inc. Application program interface (api) for a medium changer
US5559965A (en) * 1994-09-01 1996-09-24 Intel Corporation Input/output adapter cards having a plug and play compliant mode and an assigned resources mode

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0506278A2 (en) * 1991-03-26 1992-09-30 International Business Machines Corporation Device driver system having generic operating system interface

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101052029B1 (ko) 2009-11-30 2011-07-26 (주)라이프앤진 유전자 검사 샘플 채취용 패치
KR101600789B1 (ko) 2015-03-24 2016-03-08 (주)에스에이피 포장용 상자 및 그 제조방법

Also Published As

Publication number Publication date
EP0867004A1 (en) 1998-09-30
DE69737525T2 (de) 2007-12-27
DE69737525D1 (de) 2007-05-10
WO1998016886A1 (en) 1998-04-23
EP0867004B1 (en) 2007-03-28
JP2000503439A (ja) 2000-03-21
US5959536A (en) 1999-09-28
KR19990072149A (ko) 1999-09-27
CN1210601A (zh) 1999-03-10
CN1139035C (zh) 2004-02-18

Similar Documents

Publication Publication Date Title
KR100475200B1 (ko) 가전장치용태스크구동형제어시스템
JP4260366B2 (ja) ネットワークにおける機器のアップグレード及び拡張方法
JP4301731B2 (ja) デバイス制御を備えたホームオーディオ/ビデオネットワーク
EP1046259B1 (en) Method and system related to an audio/video network
JP4527279B2 (ja) オーディオビデオネットワーク
US6032202A (en) Home audio/video network with two level device control
US6963784B1 (en) Virtual device control modules and function control modules implemented in a home audio/video network
KR100647449B1 (ko) 특성 루트를 통해서 소프트웨어 오브젝트들을 제어하기위한 시나리오를 식별하는 호출
US6259707B1 (en) Synchronizing a data driven interaction controller and a non-data driven interaction controller
US20080288618A1 (en) Networked Device Control Architecture
US7343427B2 (en) Method and an apparatus for the integration of IP devices into a HAVi network
US20020087964A1 (en) System and method for enhanced HAVi based device implementation
US6684401B1 (en) Method and system for independent incoming and outgoing message dispatching in a home audio/video network

Legal Events

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

Payment date: 20130225

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140224

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150223

Year of fee payment: 11

EXPY Expiration of term