DE69737525T2 - Aufgabengesteuertes steuerungssystem für elektronische verbraucher - Google Patents

Aufgabengesteuertes steuerungssystem für elektronische verbraucher Download PDF

Info

Publication number
DE69737525T2
DE69737525T2 DE69737525T DE69737525T DE69737525T2 DE 69737525 T2 DE69737525 T2 DE 69737525T2 DE 69737525 T DE69737525 T DE 69737525T DE 69737525 T DE69737525 T DE 69737525T DE 69737525 T2 DE69737525 T2 DE 69737525T2
Authority
DE
Germany
Prior art keywords
arrangement
class
control means
software
software representation
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
DE69737525T
Other languages
English (en)
Other versions
DE69737525D1 (de
Inventor
Saurabh Srivastava
Paul Chambers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of DE69737525D1 publication Critical patent/DE69737525D1/de
Publication of DE69737525T2 publication Critical patent/DE69737525T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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

Description

  • BEREICH DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf ein System mit räumlich verteilten Informationsverarbeitungsfunktionalitäten. Die vorliegende Erfindung bezieht sich insbesondere aber nicht ausschließlich auf ein Multimediakonsumentensystem.
  • HINTERGRUND
  • Die Konsumentenelektronikindustrie steht am Anfang einer riesigen Verschiebung, da Unterhaltungssysteme sich aus der analogen Domäne in die digitale Domäne verlagern. Audio ist in die digitale Domäne verlagert mit beispielsweise CD und digitalen Compact-Kassetten. Video wird sich schnell in wenigen Jahren in die digitale Domäne verlagern. Ein völlig digitales Multimediasystem mit digitalem Audio und digitalem Video bietet neue Möglichkeiten für den Konsumenten, und zwar aufgrund riesiger digitaler Verarbeitungsfähigkeiten, die zu erschwinglichen Preisen verfügbar werden. Um nur einige der neuen Möglichkeiten zu nennen: Echtzeitvideoverarbeitung ist in den Bereich der Konsumentenapparatur gelangt; Benutzersteuerung vertraut mehr und mehr auf die Intelligenz des Systems, wodurch die Bedienung des Systems viel einfacher gemacht wird und der Benutzer von der Überwachung des Systems befreit wird; viele digitale Mittel werden aufeinander bezogen und in ein einfaches Heimsystem integriert.
  • AUFGABE DER ERFINDUNG
  • Die Erfinder haben erkannt, dass die Integration einer immer wachsenden Anzahl möglicherweise aufeinander einwirkender Funktionalitäten zu einem einzigen System für den Konsumenten sowie für den Hersteller interessant gemacht werden kann, wenn der Systementwurf eine Verteilung der Funktionalitäten des Systems, die Skalierbarkeit der Architektur und die Schleifensteuerung unterstützt. Ein System mit verteilten Funktionalitäten ist Fehlertolerant in dem Sinne, dass ein Hardware-Fehler in einem der Komponenten des Systems nicht die anderen zu beeinträchtigen braucht. Funktionalitätsverteilung unterstützt auch die Skalierbarkeit. Eine Architektur ist skalierbar, oder offen, wenn sie eine konfliktfreie Neukonfiguration, eine Aufwertung oder eine Erweiterung des Systems ermöglicht. Durch Hinzufügung oder Entfernung von Funktionalitäten, wie diese zum Erfül len der Anforderungen notwendig sind, kann der Hersteller oder der Benutzer die Leistung des Systems optimieren, während die Kosten minimiert werden. Schleifenregelung bedeutet, dass eine Komponente, die auf einen Stimulus von einer anderen Komponente oder von dem Benutzer reagiert, den Empfang des Stimulus bestätigt. Auf diese Weise kann das System als Ganzes den Zustand jedes der Komponenten verfolgen.
  • Es ist nun u. a. eine Aufgabe der vorliegenden Erfindung ein System mit verteilten Funktionalitäten zu schaffen. Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein Steuersystem zu schaffen, das eine offene Architektur hat.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung ist, wie in den Patentansprüchen 1, 9 und 11 beschrieben. Dazu schafft die vorliegende Erfindung ein Steuerungssystem mit einer Anzahl elektronischer Geräte, die über ein aufgabengesteuertes Steuermittel zur Steuerung einer Interaktion der Geräte untereinander, miteinander verbunden sind. Die Steuermittel wirken auf die betreffenden Softwaredarstellungen jeder der betreffenden Anordnungen ein. Vorzugsweise ladet eine bestimmte Anordnung der elektronischen Anordnungen die betreffende Software-Darstellung zu den Steuermitteln herunter, beispielsweise bei Verbindung mit den Steuermitteln. Vorzugsweise umfasst jede der betreffenden Software-Darstellungen eine Anordnungsabstraktion zur Darstellung der betreffenden Anordnung auf einem semantischen Pegel entsprechend den Darstellungen und wenigstens eine bestimmte Darstellung der betreffenden Software-Darstellungen umfasst eine Applikation einer Benutzerschnittstelle zu der Anordnungsabstraktion, wobei die Applikation in den Steuermitteln läuft.
  • Genauer gesagt schafft die vorliegende Erfindung in dem Bereich der Konsumentenelektronik ein Steuersystem mit vielen Konsumentenelektronikanordnungen (beispielsweise einem Fernsehempfänger, einem VCR, einem CD-Spieler, DVD-Ausrüstung, aber auch einem Telefon, einem Beleuchtungsregelsystem, einem Thermostaten sogar einem PC usw.), die mit Hilfe aufgabengesteuerter Steuermittel zur Steuerung einer Interaktion unter den Anordnungen miteinander verbunden sind. Die Steuermittel wirken auf die betreffenden Software-Darstellungen jeder betreffenden Konsumentenanordnung ein.
  • Während der Übergang zu digitalem Inhalt und Medien viele Verbesserungen in der abgelieferten Qualität und in der Bequemheit mit sich bringt, bietet die vorliegende Erfindung nun die Möglichkeit, Intelligenz darin zu schaffen, wie Anordnungen mit einander zusammenwirken und er bietet dem Benutzer Integrationsmöglichkeiten auf Systemniveau. Es wird möglich, wirkliche Gebrauchsbequemlichkeit und eine systemweite Steuerung eines Clusters von Anordnungen zu schaffen. Die vorliegende Erfindung ermöglicht wirkliches "Einstecken & Einschalten". Die vorliegende Erfindung ermöglicht es, dass Anordnungen, die sich selber konfigurieren, automatisch ihre optimale Leitung im Kontext des Systems liefern. Um diese sehr erwünschten Ziele zu erreichen müssen Anordnungen miteinander zusammenarbeiten, d.h. müssen sich ein gemeinsames Kommunikationsverfahren und Nachrichtenaustausch unter einander teilen, damit sie "dieselbe Sprache sprechen". Diese gemeinsame Sprache überbrückt den Spalt zwischen dem Benutzer und den (möglicherweise vielen) Protokollen niedrigen Pegels. Die gemeinsame Sprache umfasst Lösungen für wenigstens drei verschiedene Aspekte: die Benutzerschnittstelle, die Abstraktion einer Anordnung, und die Kommunikation. Sie schafft eine standardisierte Durchführungsumgebung, für die Benutzerschnittstelle sowie für Anordnungsabstraktionen, Applikationen und Systemdienste (beispielsweise Benachrichtigung, Registrierung und Entdeckung), und einen gemeinsamen Mechanismus zur dynamischen Erweiterung der Umgebung durch beispielsweise Einstecken und Einschalten oder andere Mittel.
  • Die von den Steuermitteln gesteuerte Software-Darstellung versteckt die Eigenarten der assoziierten Anordnung der echten Konsumentenanordnungen. Die Software-Darstellung stellt eine einheitlichere Schnittstelle für höhere Pegel der Software dar, ähnlich wie Anordnungstreiberstufen in einem Operationssystem. Durch Einkapselung der variablen Komplexität der Aufgabe innerhalb einer Software-Darstellung kann es so einfach oder so kompliziert wie notwendig gemacht werden um die Fähigkeiten auf einen gemeinsamen Pegel zu bringen. Da der Pegel der Schnittstelle für die Software-Darstellungen gebräuchlich ist, können Applikationen auf dieselbe Art und Weise echte Anordnungen manipulieren, die sehr verschiedene Perfektionspegel verkörpern. In Bezug auf die Benutzerschnittstellenaspekte werden diese aufgabengesteuert, dies im Gegensatz zu dem anordnungsgesteuerten Charakter in den herkömmlichen Annäherungen. Die Benutzerschnittstelle kann zugeschnitten werden und ist erweiterbar, und zwar wegen der Einheitlichkeit auf dem durch die Software-Darstellungen gelieferten gemeinsamen Pegel.
  • Diese Software-Darstellung von echten Konsumentenanordnungen bietet die Möglichkeit, Anordnungen zu unterstützen, was bisher unbekannt war, und neue und mehrere unterliegende Netzwerke, Protokolle und Standards zu unterstützen. Das gesamte Ziel des Systems nach der vorliegenden Erfindung ist, eine Totallösung für die Heimumgebung zu schaffen. Um dies zu erreichen muss das Protokoll des Systems Benutzerschnittstellenabsprachen, Anordnungsabstraktionen und Netzwerkprotokolle definieren um, noch zu bauenden, Anordnungen die Möglichkeit zu bieten, die komplette Ende-zu-Ende-Lösungen bieten, die für den Endverbraucher wertvoll sind. Die Erfinder glauben, dass bisherige Versuche zum Aufbauen von Technologien, die dieses Ziel vorwärts bewegen nicht gut empfangen worden sind, einfach weil sie Kosten an Anordnungen hinzugefügt haben, ohne dass vom Benutzer sichtbare Vorteile erzielt wurden. Durch Lieferung kompletter Lösungen wird der Konsument den Vorteil und den Wert sehen und die Industrie kann wieder weiter gehen und von einer neuen Plattform aus innovieren.
  • Die vorliegende Erfindung ist insbesondere relevant für die Konsumentenelektronik in der Heimunterhaltungsumgebung, ist aber nicht darauf beschränkt. So ist beispielsweise ein anderen Beispiel eines technischen Bereichs, der durch den Trend in Richtung völlig digitaler Steuerung und modularer Architektur wesentlich beeinflusst wird, der Bereich der Kraftfahrzeugapplikationen. Kraftfahrzeughersteller und die Zulieferungsindustrie stecken mehr Aufwand in digitale Steuersysteme, wodurch die Einverleibung moderner Funktionalitäten zu bezahlbaren Preisen ermöglicht wird: elektronisch gesteuerte Messgeräte, Antiblockierungsbremssysteme, elektronische Kraftstoffinjektion, elektronische Motorverwaltung und Emissionssteuerung, elektronische Klimasteuerung, adaptive automatische Übersetzung, Kraftwagen-Audioanlage, Navigationssystem usw. Diese Funktionalitäten haben alle eine andere Perfektion und Wirkung. Die Herstellung wird wesentlich vereinfacht, wenn in der Produktionslinie Module installiert werden, deren funktionelle gegenseitige Verbindung sich auf Steuerung über die Software-Darstellung verlässt, wie durch die vorliegende Erfindung vorgeschlagen. Der Hersteller braucht in Bezug auf die elektronische Anlage für jede andere Kombination von Möglichkeiten keine speziellen Einschränkungen durchzuführen. Weiterhin bringt Interaktion zwischen diesen modularen Subsystemen die Benutzerfreundlichkeit und Effizienz eines Kraftwagens auf einen höheren Pegel.
  • So wird beispielsweise die Lautstärke der Audioanlage in Abhängigkeit von der gemessenen Fahrgeschwindigkeit (Windgeräusch), der Motordrehzahl (Maschinengeräusch) und dem Aktivitätenpegel der Klimasteuerung (Lüftergeräusch) gesteuert. So wird in einem anderen Beispiel die graphische Navigationsanlage (beispielsweise das CARIN System von Philips Electronics) in Anhängigkeit von der gemessenen Fahrgeschwindigkeit gesteuert, damit ein- oder ausgezoomt werden kann, wenn mehr oder weniger Einzelheiten zum Führen des Fahrers erforderlich sind. In noch einem anderen Beispiel werden das Motorverwaltungs- und das adaptive automatische Übersetzungssystem in Abhängigkeit von der Belastung (gemessen über die aktive Aufhängung) genau abgestimmt.
  • Auf entsprechende Weise bietet die vorliegende Erfindung ein Protokoll um stark voneinander abweichende Funktionalitäten zu einem einzigen System zu kombinieren, dies zum Vorteil des Konsumenten und des Herstellers.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • Ausführungsbeispiele der vorliegenden Erfindung sind in der Zeichnung dargestellt und werden im Folgenden näher beschrieben. Es zeigen:
  • 1 ein Blockschaltbild eines Systems mit Konsumentenanordnungen nach der vorliegenden Erfindung, und
  • 2 ein Blockschaltbild einer Klasse D Anordnung in dem System nach 1.
  • In den Figuren bezeichnen dieselben Bezugszeichen entsprechende Elemente. Es sei bemerkt, dass die Darstellung Merkmale der vorliegende Erfindung als separate Items angeben, die in Software implementiert werden. Dies Darstellungen sollen dementsprechend interpretiert werden.
  • BEVORZUGTE AUSFÜHRUNGSFORMEN
  • SYSTEMHARDWARE KONFIGURATION
  • 1 ist ein Blockschaltbild eines Steuersystems 100 nach der vorliegenden Erfindung. Das System 100 umfasst viele Konsumentenelektronikanordnungen 102, 104, 106, 108, 110, ... und 112. Das System 100 umfasst weiterhin ein oder mehrere Steuermittel, wie Steuermittel 114 und 116, wie in dem Beispiel dargestellt. Die Anordnungen 102-108 sind mit Steuermitteln 114 verbunden. Die Anordnungen 110 und 112 sind mit Steuermitteln verbunden. Die Steuermittel 114 und 116 sind miteinander verbunden. Das System 100 und sein Protokoll, was nachstehend detailliert beschrieben wird, schaffen die Infrastruktur zur Steuerung der Streckenführung und Verarbeitung von Inhaltsdaten ("content data") durch Steuerung der Funktionsmoden der Anordnungen 102-112. Die Steuerdaten steuern die Verarbeitung der Inhaltsdaten, wie Audio- und Videoinhalt, durch die Anordnungen 102-112. Die Steuermittel 114 und 116 sind auch miteinander verbunden. Die Steuerung des Systems 100 wird nachstehend erläutert. Die Steuerung wird durch die Steuermittel 114 und 116 ermöglicht, die eine Software-Darstellung für jede damit verbundene Anordnung zur Verfügung haben.
  • Zum Auswerten der Wirkung und des vielseitigen Charakters des Systems 100 wird zunächst eine Kategorisierung der Kommunikationsfähigkeiten der Konsumentenelektronikanordnungen 102-112 beschrieben. Während es in Wirklichkeit eine glättere ununterbrochene Folge von Anordnungsfähigkeiten gibt als hier bestätigt wird, ist diese Kategorisierung sehr Nützlich zum Verstehen des Modells des Systems 100. Die Kommunikationsfähigkeiten der Anordnungen 102-112 in diesem allgemeinen Beispiel haben verschiedene Perfektionspegel. Je nach den Kommunikationsfähigkeiten gehören die Anordnungen 102-112 zu einer der nachfolgenden Klassen:
    Klasse A: alte Anordnungen mit einer begrenzten Einrichtungssteuerung;
    Klasse B: steuerbare Anordnungen mit einer herkömmlichen Zweirichtungensteuerung;
    Klasse C: intelligente Anordnungen mit codierter Benutzerschnittstellenabstraktion und Anordnungsabstraktion;
    Klasse D: empfindungsfähige Anordnungen, die imstande sind, die Durchführungsumgebung für die von einer Klasse C Anordnung herunter geladenen Abstraktionen zu schaffen.
  • Klasse A: alte Anordnungen
  • Die Anordnung 102 ist eine Anordnung, die zu einer Klasse A mit alten Konsumentenanordnungen gehört. Die Steuerfunktionalität einer alten Anordnung ist auf Einwegsteuerung (nicht bestätigt) begrenzt. Ein typisches Beispiel einer alten Anordnung ist die herkömmliche, durchaus bekannte Audio/Videoanlage, die mit Hilfe einer handlich bedienter Fernsteuerung durch IR-Befehle gesteuert wird. Der Bestätigungsmechanismus verlässt sich auf Wahrnehmung des Benutzers, dass der Befehl von der Anordnung durchgeführt wurde (der Kanal hat sich geändert, das Band startet usw.) Es gibt kein Bestätigungsprotokoll zum Ausliefern eines Rückbefehls zurück zu Fernsteuerung, dass der erste Befehl empfangen wurde. Die Anordnung 102 ist nicht imstande, die Rückbefehl, den Be richtzustand oder Fehlerumstände usw. zu schaffen. Das Protokoll in dem System 100 hat nur die Wahl, die Übertragung eines Befehls zu der alten Anordnung 102 als "erfolgreich" zu betrachten und hat keine Mittel den Zustand der Anordnung 102 vor dem Versuch, diesen zu ändern, zu ermitteln. Dies ist ein besonderes Problem für Befehle, die "umschalten" oder auf andere Art und Weise eine relative Änderung des Zustandes implementieren, wie "Ein/Abschalten" oder "Kanalwechsel". Aus diesem Grund kann die alte Anordnung 102 auf einer Basis von "bestem Versuch" unterstützt werden. Unter der Annahme der bestehenden installierten Basis der Anordnung, die in die Kategorie alter Anordnungen fällt, muss sie so gut wie nur möglich unterstützt werden. Es dürfte aber einleuchten, dass durch Aufwertung zu Anordnungen mit einer besseren Kommunikationsunterstützung große Vorteile erzielt werden können.
  • Klasse A Anordnungen können indirekt über ein Proxy gesteuert werden, wie die Anordnung 102 über das Proxy 118. So ist beispielsweise die Anordnung ein herkömmlicher Fernsehempfänger, der nun von einem IR-Blaster 118 gesteuert wird, wobei dieser letztere über eine Klasse D Anordnung 114 gesteuert wird.
  • Klasse B: Steuerbare Anordnungen
  • Die Anordnung 104 gehört zu einer Klasse B steuerbarer Konsumentenanordnungen. Es gibt zur Steuerung von Konsumentenelektronikanordnungen einige Zweiweg-Protokolle, die eine Bestätigung von Befehlsdurchführung, Zustand und Fehlerbenachrichtigung liefern. Unglücklicherweise sind diese viel weniger üblich in Konsumentenprodukten. Die Protokolle sind typischerweise "völlig genummerte" Protokolle, indem sie völlig definiert sind und keinen Raum für Erweiterung des Protokolls auf eine vorwärtskompatible Weise lassen. Wegen dieser "Vorkenntnisse" Anforderung soll die Steuerung von Anordnungen und gesteuerten Anordnungen innerhalb der Grenzen des Protokolls liegen und Innovierung wird erstickt, und zwar wegen des "Huhn-Ei-Problems" (Verbesserung der gesteuerten Anordnung bedeutet, dass keine bestehende Controller den Vorteil der Verbesserungen wahrnehmen kann, und umgekehrt). Die Konsumentenelektronikindustrie hat in diese Klasse von Protokellen bereits viel Energie gesteckt. Beispiele dieser Protokolle sind A/V CTS, Philips EasyLink/ESI und D2B, Sony's Control-L, LANC und S-Link/Control-A, CEBus/CAL, LonWorks, usw.
  • Das System 100 und das Steuerprotokoll schafft eine stark verbesserte Benutzererfahrung mit dieser Klasse steuerbarer Anordnungen. Das System 100 soll aber dennoch "Vorkenntnisse" haben. Das angewandte Protokoll soll geeignete vorher installierte Unterstützung haben oder soll einen nicht transparenten Mechanismus benutzen zum Installieren einer Unterstützung für neue Anordnungen und/oder Protokollverbesserungen. Dieser Unterschied wird nach der Lektüre der nachfolgenden Definition der nächsten Klassen von Anordnungen deutlicher.
  • Wie die Klasse A Anordnungen kann eine Klasse B Anordnung über ein (in dem Beispiel nach 1 nicht dargestelltes) Proxy gesteuert werden.
  • Klasse C: intelligente Anordnungen
  • Die Anordnungen 106, 108, 110 und 112 gehören zu der Klasse intelligenter Konsumentenanordnungen. Die Anordnungen 106-112 schaffen je eine vorwärtskompatible "Einstecken & Abspielen" Fähigkeit. Im Wesentlichen enthält jede der Anordnungen 106-112 eine Software-Darstellung: eine etwaige Benutzerschnittstelle (siehe unten bei "Applet") und eine Anordnungsabstraktion (siehe unten bei "abstakte Anordnung"), beide kompiliert zu einem maschinenunabhängigen Bytecode. Zu dem ursprünglichen Protokoll jeder der Anordnungen 106-112 ist eine einfache Erweiterung hinzugefügt worden um einer anderen Anordnung die Möglichkeit zu bieten dies zu detektieren, und den kompilierten Bytecode zu erfassen. Diese andere Anordnung kann nun örtlich den Bytecode durchführen und eine Steuerung der Anordnung 106-112 schaffen. Vorzugweise ist das zwischen der herunter geladenen Anordnungsabstraktion und der wirklichen Anordnung verwendete Kommunikationsprotokoll privat. Das Steuerprotokoll in dem System 100 definiert die Entdeckung und das Herunterladungsprotokoll und eine Durchführungsumgebung für den herunter geladenen Bytecode. Es definiert auch (durch Absprache) einen Kernsatz von Funktionalitäten, den die Anordnungsabstraktion für einen bestimmten Anordnungstyp (beispielsweise VCR) implementieren soll, so dass Applikationen von Dritten den Vorteil der Fähigkeiten der Anordnung ausnutzen kann. Das "Huhn-Ei"-Verbesserungsproblem ist aber ausgewichen worden. Da die Benutzerschnittstelle mit der Anordnungsabstraktion herunter geladen worden ist, können sie Verbesserungen via und über den Kernsatz implementieren und im Wesentlichen können Standards entstehen, ohne Umformung des Standards und Beschäftigung mit einer altmodischen installierten Basis. Diese "Definition durch Absprache" ist eine der großen Differenzen zwischen der Verfahrensweise der Computerindustrie und der Konsumentenelektronikindustrie. Es ermöglicht eine schnelle Innovation und eine Form kommerziellen und technischen "Darwinismus".
  • Klasse D: empfindungsfähige Anordnungen
  • Die Steuermittel 114 und 116 gehören in diesem Beispiel zu der Klasse empfindungsfähiger Konsumentenanordnungen. Die empfindungsfähigen Anordnungen 114 und 116 schaffen die Durchführungsumgebung für Bytecode, herunter geladen von den Klasse C Anordnungen 106-112. Die Anordnungen 114 und 116 können eine Benutzerschnittstelle haben, die imstande ist, den Benutzerschnittstellenteil des aus den Anordnungen 106-112 herunter geladenen Bytecodes zu unterstützen. Die Klasse D Anordnungen 114-116 kommunizieren auf direkte Weise miteinander, in einem locken gekoppelten verteilten System. Eines der Ziele des Kommunikationsprotokolls in dem System 100 ist, dezentralisierte Steuerung des Hauses zu ermöglichen (gegenüber der PC-zentrisch zentralisierten Steuerung, dummes Peripheriemodell) ohne dass alle teilnehmenden Anordnungen kostenmäßig schwer belastet werden. In dem betreffenden Modell des Hauses gibt es "Cluster" von Anordnungen. Die Intelligenz ist innerhalb eines Clusters zu einigen Graden zentralisiert, ohne dass die verteilte Art des Systems 100 als Ganzes gefährdet wird und ohne dass ein größerer Dezentralisationspegel für künftige Generationen derartiger Systeme ausgeschlossen werden. Die Klasse D Anordnungen 114 und 116 enthalten typischerweise mehr Intelligenz und Rechenmittel als bei herkömmlichen Konsumentenelektronikanordnungen charakteristisch ist. Die Klasse D Anordnungen 114-116 könnten aber viel weniger Mittel haben als für die "PC/TV" Klasse von Anordnungen typisch ist, und könnten nachweisen, typischer zu sein, entsprechend Netzwerkcomputern (NC) in Rechenkapazität.
  • Es sei bemerkt, dass die Klasse D Anordnungen 114 und 116 auch sich selbst mit Konsumentengerätefunktionalitäten versehen können.
  • INTERAKTION ZWISCHEN DEN ANORDNUNGEN
  • Unterstützung einer Klasse A Anordnung 102 oder einer Klasse B Anordnung hat zur Folge, dass es eine Anordnungsabstraktion dafür bereits in der Klasse D Anordnung 114 oder 116 gibt. Der Ausdruck "erfordert Vorkenntnisse" wird verwendet um anzunehmen, dass die Klasse D Anordnung 114 oder 116 eine Vorwärtskompatibilität und eincodeunabhängiges heißes Einstecken und Abspielen für neue Typen der Klasse A Anordnung 102 und Klasse B Anordnung 104 nicht unterstützen kann. Es sei bemerkt, dass es eine Anordnungsabstraktion nicht vor Unterstützung ausschließt, was für Einstecken und Abspielen Merkmale eine Klasse B Anordnung auch schaffen mag, wie die Fähigkeit "Einheitsinformation" von A/V CTS/P1394 Anordnungen. Die Erfinder betrachten dies als ein weniger anspruchsvolles Ziel von "Selbstgestaltung", nicht richtiges "Einstecken und Abspielen in dem hier verwendeten engeren, spezifischen Sinn. Eine neue Klasse C Anordnung kann vorher völlig unbekannt sein für eine Klasse D Anordnung 114 oder 116 und der Prozess der Integration derselben in das System 100 erfordert keine Aktion des Benutzers in Bezug auf physikalische Kabelverbindungen. In dem Sinne schafft die durch die Kombination der Klasse C Anordnungen und der Klasse D Anordnungen gelieferte Funktionalität "Einstecken und Abspielen" Vorwärtskompatibilität, Selbstinstallationsfunktionalität, und nicht nur Selbstkonfiguration eines vorher bekannten Anordnungstyps.
  • Dieses echte "Einstecken und Abspielen" wird dadurch ermöglicht, dass der Bytecode von einer neu entdeckten Klasse C Anordnung transportiert wird und die Umgebung innerhalb der Klasse C Anordnung 114 oder 116 damit erweitert wird. Durch reines Trennung des Benutzerschnittstellenteils von dem Anordnungsabstraktionsteil in dem Bytecode und durch Aufbau einer API ("application program interface"), die durch Absprache erweitert werden kann, haben die Erfinder eine Umgebung geschaffen, wo auch Dritte Funktionalität zu der Plattform hinzufügen können. So kann beispielsweise eine Firma ein Video-Editingpaket schaffen, das den VCR Kern API unterstützt und Funktionalität hinzufügt, wenn die Anordnungsabstraktionen die "Editing"-Erweiterungen unterstützen (vielleicht Zeitcode-Unterstützung, bildgenaue Positionierung, "Pre-Roll" usw.) Die Trennung von Benutzerschnittstelle, Anordnungsabstraktion und Kommunikation ermöglicht es, dass die Lösungen für diese verschiedenen Probleme mit unterschiedlichen Geschwindigkeiten fortschreiten und ermöglicht, dass es mehr fortschrittliche Lösungen für einige Probleme neben primitiveren für andere Probleme gibt. Durch Lieferung von Lösungen für den Hauptteil der allgemeinen Probleme wird die Entwicklung von Anordnungsunterstützung für die Architektur erleichtert und vereinfacht, wodurch für Hersteller die zu überwindende Sperre leichter angepasst werden kann.
  • Ein anderes Konzept, wichtig zum Verständnis, wie der Mechanismus der Herunterladung funktioniert, ist, das Konzept des "Garnknäuel" Modells. Wenn der Byte code einmal von einer Klasse C Anordnung, wie der Anordnung 108, zu einer Klasse D Anordnung, beispielsweise der Anordnung 114 herunter geladen worden ist, wird der Code instanziiert und "erwacht", nicht wissend, wie er dort gelangt ist, oder wie zu der Anordnung 108, von der er gekommen ist, zurück kommuniziert werden muss. Auf diese Art und Weise ist es die Verantwortung des Subsystems, den herunter geladenen Bytecode zu instanziieren um auch die Adresse der Anordnung mitzuteilen, um mit der Anordnung 108 zu kommunizieren, von der er herunter geladen wurde – das "Garn", das es ermöglicht den Weg zurück über das Kommunikationsmedium zu der Anordnung zu finden, die es darstellt.
  • Für einen bestimmten Kommunikationsmechanismus kann es Standardprotokolle geben, die bei der Steuerung der Anordnung angewandt werden, A/VC für P 1394, beispielsweise. Um den herunter geladenen Bytecode klein zu halten, definiert jedes unterstütze Kommunikationsprotokoll zum Herunterladen vorzugsweise auch Anordnungsdienste zum Unterstützen von Steuerprotokollen, geeignet für diesen Kommunikationsmechanismus, der eine herunter geladene Anordnungsabstraktion aushebeln kann.
  • Abstrakte Anordnung und Applet
  • 2 ist eine detaillierte Darstellung der Software-Funktionalitäten bei der Interaktion einer Klasse C Anordnung, beispielsweise der Anordnung 108, mit einer Klasse D Anordnung, beispielsweise der Anordnung 114.
  • Für jede echte Anordnung 102-116 mit Konsumentenfunktionalität gibt es eine Anordnungsabstraktion, als "abstrakte Anordnung" bezeichnet. 2 zeigt eine abstrakte Anordnung 202, herunter geladen zu der Klasse D Anordnung 114 von der Klasse C echten Anordnung 108. Die abstrakte Anordnung 202 hat die Verantwortung der Übersetzung von Befehlsnachrichten (siehe unten), die sie empfängt, in Aktionen an der echten Anordnung 108, die sie darstellt. Die abstrakte Anordnung 202 hat auch die Verantwortung der Benachrichtigung der Zustandsänderungen in der echten Anordnung 108 als Ereignisnachricht (siehe unten).
  • Die abstrakte Anordnung versteckt die Eigenarten der echten Anordnung und präsentiert eine einheitlichere Schnittstelle für höhere Pegel der Software, entsprechend den Anordnungstreiberstufen in einem Operationssystem. Durch Einkapselung der variablen Komplexität der Aufgabe innerhalb einer Anordnungsabstraktion kann sie so einfach oder so fortschrittlich wie notwendig gemacht werden um die Fähigkeiten auf einen gemeinsamen Pegel zu bringen. Da der Pegel der Schnittstelle den Anordnungen gemeinsam ist, können Applikationen auf gleiche Weise Anordnungen manipulieren, die sehr verschiedene Perfektionspegel haben.
  • Die Benutzerschnittstelle für eine abstrakte Anordnung wird in dem vorliegenden Text als "Anordnungsapplikation" oder "Applet" oder ganz einfach als "Applikation" bezeichnet. 2 zeigt ein Applet 204 für die abstrakte Anordnung 202. Das Applet kann von der assoziierten Klasse C Anordnung herunter geladen werden, oder sie kann bereits bei der Klasse D Anordnung vorhanden sein. Das Applet läuft in der Klasse D Anordnung 114 oder 116, die von dem Benutzer verwendet wird, und zwar in Interaktion mit dem System 100. Das Applet kann nicht in derselben Klasse D Anordnung laufen, die der Gastgeber der abstrakten Anordnung ist. So kann beispielsweise das Applet für die abstrakte Anordnung der Anordnung 108, die von der Klasse D Anordnung 114 veranstaltet wird, in der Klasse D Anordnung 116 laufen. Dies kann der Fall sein, wenn die Klasse D Anordnung 114 keine Mittel hat, beispielsweise eine Wiedergabeanordnung, zum Unterstützen des Applets für die Anordnung 108, die eine graphische Benutzerschnittstelle erfordert, während die Klasse D Anordnung 116 eine eigene Wiedergabeanordnung hat oder direkten Zugriff auf eine Anordnung mit einer Wiedergabeanordnung, beispielsweise eine Klasse C Anordnung 110, hat. Aus diesem Grund kommunizieren ein Applet und die abstrakte Anordnung über ein Benachrichtigungssystem um die aktuelle Lage der abstrakten Anordnung für das Applet erkennbar zu machen. Für mehr Einzelheiten siehe nachstehend "Benachrichtigung". Es gibt auch ein Register, das verwendet wird um abstrakte Anordnungen durch ihre Attribute zu orten. Siehe nachstehend bei "Register" für mehr Einzelheiten. In dem Beispiel nach 2 verbindet sich das Applet 204 mit einer Benutzerschnittstelle 206, beispielsweise der Steuermittel 114.
  • DIENSTE
  • Das System 100 schafft eine Anzahl Dienste auf systembreiter Basis. Einer der Dienste ist die Registrierung/Deregistrierung von Anordnungen, ein anderer Dienst ist die Benachrichtigung zwischen den abstrakten Anordnungen und den Applets um ihnen die Möglichkeit zu bieten, bei verschiedenen Klasse D Anordnungen geortet zu werden, ohne dass sie sich verschieden verhalten. Mit anderen Worten die abstrakten Anordnungen und die Applets kommunizieren durch Benachrichtigung, auch wenn sie in derselben Klasse D Anordnung vorhanden sind.
  • Die Durchführungsumgebung, in dem Beispiel nach 1, die Anordnungen 114 und 116, schafft eine "Registrierung" Möglichkeit, mit der Objekte sich selber standardweise registrieren und auf diese Weise ankündigen können. Das Objekt schafft eine Anzahl Attributwerte beim Registrieren und andere Objekte können es dann finden durch Durchführung einer "Abfrage per Attribut". Wenn das Objekt einmal geortet ist, wird über das Benachrichtigungssystem mit dem Objekt kommuniziert. Dies ermöglicht es, dass die wirkliche Lage eines Objekts erkennbar ist, wodurch ein Applet in einer Anordnung laufen kann um ein Mittel zu steuern, das von einem anderen Applet geliefert worden ist, und zwar auf dieselbe Art und Weise wie dies für ein örtliches Mittel geschehen würde. Das Kommunikationsprotokoll benutzt "Ereignisse" (Nachrichten, die vielen Empfängern auf Basis der vorher bekannt gegebenen "Interessen" zugesendet werden) zum verbreiten von Information über wesentliche Änderungen in dem Zustand von Anordnungen, und es schafft einen standardisierten Ereignisverwalter zum Unterstützen der Objekte, die dies dem System bekannt geben möchten und der Objekte, die daran interessiert sind, benachrichtigt zu werden. Diese Konzepte werden nachstehend detailliert beschrieben.
  • Registrierung
  • Jede Klasse D Anordnung 114 und 116 wird mit einem Register versehen. In 2 wird die Anordnung 114 beispielsweise mit einem Register 208 versehen. Das Register 208 leistet einen Dienst auf systembreiter Basis um abstrakte Anordnungen zu orten, beispielsweise die abstrakte Anordnung 202, durch ihre Attribute. Die abstrakten Anordnungen registrieren sich selbst und kündigen sich selbst folglich mit dem Register 208 auf eine Standardart an. Das Register 208 führt eine Bezugnahme zu einem Objekt zurück, das Nachrichten im Namen von der abstrakten Anordnung empfängt. Es soll nicht vorausgesetzt werden, dass dies eine Bezugnahme auf die abstrakte Anordnung selber ist. In der Bezugsimplementierung ist dies niemals der Fall, sogar nicht wenn die abstrakte Anordnung örtlich ist.
  • Das Register 208 schafft eine API zur Registrierung, Deregistrierung und Abfrage für Objekte, die Nachrichten empfangen können. Es kann für jedes beliebige Nachrichtenempfangsmittel verwendet werden, das dem System 100 als Ganzes einen Dienst bietet. Es ist gemeint für abstrakte Anordnungen und ähnliche Objekte (beispielsweise den einzelnen Ereignisverwalter, siehe unten), wobei es eine einzige Instanz systemweit gibt, und wobei es erwünscht ist, die wirkliche Lage dieser Instanz erkennbar zu machen.
  • Registrierung eines Mittels erfordert einen Satz von Attributen und eine Bezugsnahme für eine abstrakte Anordnung oder ein Objekt, die bzw. das Nachrichten empfangen wird, und zwar im Namen der Entitätsregistrierung. Deregistrierung erfordert das Schaffen der gleichen Bezugnahme zu der abstrakten Anordnung oder dem Objekt, die bzw. das Nachrichten empfangt.
  • Abfrage betrifft das Schaffen eines teilweisen Satzes mit Attributen um dagegen mit etwaigen Registereingaben überein zu stimmen. Die Abfrage kann auch als "nur örtlich" spezifiziert werden. Der Grund dazu ist, dass das Register mit anderen Registern in fernen Klasse D Anordnungen kommunizieren soll, und "proxy" Postfächer zur Kommunikation mit fernen abstrakten Anordnungen schafft, die nicht verwendet werden.
  • Benachrichtigung
  • Die Schnittstelle zwischen Applets und abstrakten Anordnungen wird als die abstrakte Anordnungsschnittstelle bezeichnet (ADI). Sie basiert auf reiner Benachrichtigung, damit Applets und abstrakte Anordnungen in verschiedenen Klasse D Anordnungen geortet werden können, ohne dass er erforderlich ist, dass diese sich unterschiedlich verhalten. Mit anderen Worten, Applets und abstrakte Anordnungen kommunizieren immer durch Benachrichtigung, sogar wenn sie sich in derselben Klasse D Anordnung befinden.
  • Nachrichten werden durch Anwendung eines Verfahrens "Sende Nachricht" auf die Zielinstanz weiter geleitet. Es ist möglich, Nachrichtenverarbeitung von abstrakten Anordnungen oder Objekte dadurch zu stapeln, dass ihr eigenes "Sende Nachricht" Verfahren das "Sende Nachricht" Verfahren in dem nächsten Objekt in der Kette anruft. Auf diese Weise kann beliebig eine komplexe Verarbeitung auf effiziente Art und Weise durchgeführt werden, einfach durch Verkettung von Einzelfunktion-Nachrichtenverarbeitungsobjekten. Dies wird extensiv von dem Ereignisverwalter (siehe unten) angewandt.
  • Zur Übertragung von Nachrichten zwischen Klasse D Anordnungen schafft das Register ein "Fernbriefkasten" Objekt, das für "Glättung" (oder "Serialisierung") von Nachrichten, Adressierung und Versandt derselben zu der Fernmaschine verantwortlich ist, wobei das Register die Nachrichten abermals erzeugt ("aufpumpt"), und sie dem wirklichen Empfänger abliefert.
  • Implementierungen des "Sende Nachricht" Verfahrens müssen schnell durchgeführt werden um die Leistung und Empfänglichkeit des Systems beizubehalten. Für diejenigen Situationen, in denen Verarbeitung nicht unmittelbar auftreten kann, oder eine gewisse Zeit dauern kann, ist ein "Schlangenbriefkasten" verfügbar. Diese setzt die Nachrichten in eine interne Warteschlange und ein separates Thema entfernt Nachrichten um sie zu liefern. Dies entkoppelt den Nachrichtensender und den Nachrichtenempfänger, so dass der Empfänger frei ist, die Zeit zu nehmen, die notwendig ist, um jede Nachricht zu verarbeiten. Im Allgemeinen gibt es drei Klassen von Nachrichten in dem System 100: Befehle, Ereignisse und Fehler.
  • Befehle
  • Diese strömen normalerweise von einem Applet zu einer abstrakten Anordnung. Es ist ein Antrag zum Durchführen einer gewissen Aktion, oder einer Anfrage nach Zustandsinformation. Dies allein löst einen Vorgang aus. Der Erfolg oder Misserfolg des Vorgangs wird ans eine weitere Nachricht zu einem etwas späteren Zeitpunkt gesendet.
  • Ereignisse
  • Ereignisse werden indirekt in Reaktion auf einen befehl erzeugt, oder asynchron wegen einer bestimmten externen Bedingung bei einer oder mehreren Anordnungen 102-116 (wobei der Benutzer beispielsweise ein Band einschiebt). Dieser Mechanismus wird im Allgemeinen verwendet um die Applets darüber zu informieren, was in dem System 100 passiert. Ereignisse werden "gemulticast" und können von jeder beliebigen interessierten Partie unter den Anordnungen 102-116 empfangen werden, wo denn auch in dem System 100. Dies ist wichtig für die Unterstützung von vielen Applets, die gleichzeitig dieselbe abstrakte Anordnung sehen. Die Ergebnisse der Aktionen eines einzigen Benutzers sollen so schnell wie möglich in der Benutzerschnittstelle jedes Applets reflektiert werden.
  • Fehler
  • Fehler sind im Allgemeinen das Ergebnis eines Versuches eines Befehls, obwohl sie nicht auftreten dürfen. Vielleicht war eine Netzwerkkopplung mit einer anderen Klasse D Anordnung gescheitert, und es wird ein Fehler zu jedem interessierten gesendet – siehe "Ereignisse" oben. In jeder Stufe, die erfolglos sein kann in der Lieferung und Durchführung eines Befehls, kann eine Fehlernachricht erzeugt und reflektiert werden, wenn der Befehl nicht weiter durchgeführt werden kann. Es ist wichtig, dass der Fehler wesentliche Information über den Misserfolg enthält, erzeugt zu dem Zeitpunkt des Misserfolgs. Es kann sehr schwer sein, Probleme in einem verteilten System, wie dem System 100 auf andere Weise zu diagnostizieren, insbesondere für Endverbraucher.
  • Fehler entsprechen Ereignissen in vielen Aspekten, obschon eine einzige Differenz besonders wichtig ist. Wenn eine Fehlernachricht in Reaktion auf eine Befehlsnachricht erzeugt wird, wird diese unmittelbar zu dem Absender des Befehls zurück gesendet und auch zugunsten anderer interessierter Partien unter den Anordnungen 102-116 ausgestrahlt. Die unmittelbare Zusendung zu dem Absender ist notwendig um zu gewährleisten, dass der Absender eine Reaktion auf den Befehl sieht, sogar wenn es nicht Interesse an dem Typ der Nachricht ausgedrückt hat. Siehe auch die Beschreibung von synchroner Benachrichtigung unten.
  • Synchrone Benachrichtigung
  • Das Zusenden einer Befehlsnachricht löst nur den Vorgang aus. Der Vorgang ist nur dann komplett, wenn eine Reaktionsnachricht zu einem späteren Zeitpunkt zurückgesendet wird. In diesem Sinne ist das System wirklich asynchron von Art, und es kann eine lange (inhärent variable) Periode zwischen der Lieferung der Befehlsnachricht und dem Empfang eines Fehlers oder eines Ereignisses in Reaktion darauf geben. Während asynchrone Benachrichtigung für die Umgebung geeignet ist, und die Lieferung gefördert wird, ist es ein Verlassen der üblicheren Durchführungsstrecke des Codes. Um die Bequemlichkeit einer "synchronen" Benachrichtigung zu schaffen, d.h. das Senden einer Nachricht und das Warten bis eine Reaktion zurück gesendet werden kann, wird ein Dienst definiert, der für die Aufschiebung der Durchführungsstrecke sorgt, bis eine Reaktion von dem Ziel empfangen wird. Um diesen Dienst zu unterstützen wird jede Befehlsnachricht mit einer systemweiten einzigartigen ID gemerkt, die zu Ereignissen oder Fehlernachrichten übertragen wird, die als Ergebnis dieser Befehlsnachricht geschaffen werden und können als eine Reaktion dieser Nachricht insbesondere identifiziert werden. Der Dienst synchrone Benachrichtigung benutzt die Sequenz-ID des ausgehenden Befehls zum Filtern über eintreffende Reaktionen und kann auf diese Weise die erste Reaktion auf den Befehl identifizieren und diese als Ergebnis zu dem Anrufer zurück senden, wodurch der Prozess synchron gemacht wird, ohne dass die Synchronität in dem System als Ganzes fordert wird.
  • Ereignisverwalter
  • Jede Klasse D Anordnung, beispielsweise die Anordnung 114, hat einen Ereignisverwalter, beispielsweise 210. Der Ereignisverwalter baut oben auf der Spitze des Benachrichtigungssystems zum Schaffen der Verteilung von Ereignissen über das ganze System 100. Es wird ausgiebig verwendet durch abstrakte Anordnungen zum Berichten über wesentliche Zustandsänderungsereignisse, wird aber auch von einigen anderen Subsystemen verwendet zum Berichten von Ereignissen von systemweiter Signifikanz, wie die Detektion einer anderen Klasse D Anordnung. In der Mitte gibt es einen "Ein-für-Alle"-Briefkasten, der eine einige Nachricht erhält und diese zu einer möglicherweise großen Anzahl Empfänger weiterleitet. Jeder Empfänger ist wahrscheinlich ein oder mehrere verkettete Filter, die Nachrichten löschen werden, die für den betreffenden Empfänger nicht interessant sind.
  • Ein Fall ist besonders nennenswert. Jede Fern-Klasse D Anordnung ist mit einem Filter versehen, das nur Nachrichten durchlässt, die örtlich entstanden sind, die an sich wieder an einen Fernbriefkasten gehängt wird, der sich auf den Ereignisverwalter der Fern-Klasse D richtet. Auf diese Weise werden örtliche Ereignisse allen Fern-Klasse D Anordnungen zugeführt, und jede sendet an sich wieder die örtlichen Ereignisse aus. Diese Filter/Briefkastenpaare werden von dem Ereignisverwalter selber hinzugefügt, wenn dieser ein Ereignis empfängt, das die Detektion einer neuen Fern-Klasse D Anordnung ankündigt (und entfernt, wenn die Klasse D Anordnung verschwindet und ein entsprechendes Ereignis örtlich gesendet wird).
  • Der Ereignisverwalter registriert den "Einen-für-Alle" Briefkasten mit dem Register, so dass andere Fern-Ereignisverwalter dies orten können und ihre örtlich erzeugten Ereignisse versenden können. Aber für einen normalen Gebrauch schafft der Ereignisverwalter ein öffentliches statisches Verfahren um es zu ermöglichen, dass Ereignisse gesendet werden ohne örtlichen Nachschlag und Speicherung einer örtlichen Briefkastenabwicklung. Andere öffentliche Verfahren ermöglichen es, dass interessierte Parteien einen anderen Briefkasten anhängen (oder entfernen) von dem Ausgang des "Einen-für-Alle" Briefkastens.
  • Der Ereignisverwalter umfasst auch eine Anzahl nützlicher Nachrichtenverarbeitungsklassen zu Gunsten von anderen Subsystemen, wie mehrere Nachrichtenfilterklassen.
  • Kommunikationen
  • Kommunikationen innerhalb des Interaktionsprotokolls deckt den Austausch von Daten zwischen Anordnungen über ein Netzwerk oder über ein anderes Kommunikationsmedium. Das Benachrichtigungssystem verlässt sich auf den Kommunikationsdienst hohen Pegels, wenn es eine Nachricht zu einem Ziel transportieren muss, das sich nicht in derselben Anordnung befindet. Diese Hochpegeldienst versteckt die Unterschiede zwischen Protokollen, und schafft ein einheitliches Adressierungsschema.
  • Anordnungsabstraktionen können mehr protokollspezifische Bedürfnisse an Kommunikation mit der physikalischen Anordnung haben und brauchen wahrscheinlich die Dienste eines Satzes von protokollabhängigen Kommunikationsdiensten eines niedrigeren Pegels.
  • Die Niederpegeldienste sind auch verantwortlich für die Detektion und Bekanntgabe der Umgebung neuer Anordnungen, die in dem Netzwerk erscheinen. Dies triggert den Klasse C Herunterladungsprozess. Sie schaffen auch eine Angabe, wenn Netzwerkanordnungen verschwinden. Dies ist nützlich zur Markierung von Fernbezugswerten als alt, und Vermeidung des Angebots von Möglichkeiten in der Benutzerschnittstelle, die nicht länger verfügbar sind.
  • Protokollunabhängige Kommunikationen
  • Das Benachrichtigungssystem verlässt sich auf einen protokollunabhängigen Kommunikationsdienst höheren Pegels um mit dem Benachrichtigungssystem in den anderen Klasse D Anordnungen zu kommunizieren. Die anderen Dienste benutzen das Benachrichtigungssystem zum Kommunizieren mit ihren verwandten in anderen Anordnungen. Das Benachrichtigungssystem benutzt ein einheitliches Adressierungsschema, das den Hochpegel-Kommunikationsdienst liefert. Dies ist erwünscht für eine Konsistenz innerhalb des Benachrichtigungssystems, es ist aber auch notwendig, da einige Vernetzungsprotokol le dynamisch zugeordnete Netzwerk-IDs benutzen, die im Flug neu zugeordnet werden können (P1394 macht das, wenn beispielsweise eine Anordnung hinzugefügt wird). Der Hochpegel-Kommunikationsdienst behält eine zuverlässige Abbildung zwischen der dem Benachrichtigungssystem zugeführten ID und der physikalischen Netzwerkadresse, sogar wenn diese sich ändert.
  • Protokollabhängige Kommunikationen
  • Da die Kommunikation zwischen der Anordnungsabstraktion und der Anordnung, die abstrahiert wird, als privat betrachtet wird, ist der Implementierer frei zu wählen, welches Protokoll oder welcher Mechanismus für diese Kommunikation geeignet ist.
  • Anordnungsabstraktionen brauchen typischerweise mehr protokollabhängige Steuerung deren Kommunikation mit der echten Anordnung, die sie darstellen. Obschon es völlig dem Implementierer der Klasse C Anordnung überlassen wird, wird erwartet, dass die Anordnungsabstraktion die protokollabhängigen Kommunikationsdienste niedrigeren Pegels verwenden wird um sich mit der physikalischen Anordnung zu unterhalten (statt des nachrichtenorientierten Dienstes höheren Pegels), obschon ein bestimmter Kommunikationsprotokolldienst eine gewisse zusätzliche Unterstützung für Protokolle über den Bedürfnissen des Benachrichtigungssystems definieren kann.
  • Anordnungsabstraktionen können auch für Anordnungen bestehen, die in die Klasse D Anordnung integriert sind, für diejenigen, die nicht reine Controller sind. Von diesen Anordnungsabstraktionen wird erwartet, dass sie unmittelbar ursprüngliche Anordnungstreiber erledigen oder OS Dienst eignet sich zur Steuerung der integrierten Funktionalität.
  • Zusätzliche protokollabhängige Dienste
  • Für einen bestimmten Kommunikationsmechanismus können Standard-Protokolle in der Anordnungssteuerung angewandt werden, A/VC für P1394, beispielsweise. Um den herunter geladenen Bytecode klein zu halten wird vorgeschlagen, dass jedes unterstützte Kommunikationsprotokoll zum Herunterladen auch Anordnungsdienste zur Unterstützung von Steuerprotokollen definiert, die für diesen Kommunikationsmechanismus geeignet sind, der ein herunter geladene Anordnungsabstraktion aushebeln kann. Es sei bemerkt, dass diese Dienste vorwärts- und rückwärts kompatibel sind, um die Zusammen arbeitsfähigkeit von Diensten zu gewährleisten, d.h. wenn einmal definiert, können sie nicht mehr wesentlich verändert werden.
  • Einstecken-und-Abspielen Unterstützung
  • Die Kommunikationsdienste niedrigeren Pegels schaffen eine Ankündigung, wenn ein neuer Dienst in dem Netzwerk identifiziert wird, für den sie verantwortlich sind. Für diejenigen Netzwerke, deren Protokolle Einfügung oder Entfernung von Knoten detektieren, wird diese Fähigkeit benutzt. Für andere wird periodisch eine Sendenachricht gesendet, wodurch neue Knoten eingeladen werden, zu reagieren. Neue Knoten können ggf. eine Sendung senden, in der ihre Fähigkeit angekündigt wird, obschon, da Sendungen nicht für die meisten Protokolle typischerweise garantiert sind, die Abfragesendungen ein Sicherheitsnetz schaffen um Anordnungen abzufangen, wenn diese Anfangssendungen misslingen.
  • Das "neue Anordnung" Ereignis wird von einem Paket-Herunterlader eingefangen, der die Anordnung bittet, nachzusehen, ob sie die Klasse C Erweiterungen unterstützt. Da die Absprachen für Klasse C Paket-Herunterladung per Protokoll variieren, schreiben sie die Hilfe des protokollabhängigen Dienstes ein. Wenn es das Klasse C Paket gibt, und entweder ein Hersteller/Modellnummerattribut hat, das von dieser Umgebung nicht gesehen wird, oder eine jüngere Version eines Attributs hat, das gesehen worden ist, wird das Paket erfasst. Es wird dann dem Paketlader zugeführt, der den Paketinhalt in die Umgebung integriert.
  • Signalroutenplanung ("Schalten")
  • Das System 100 richtet sich auf die Steuerung von Konsumentenelektronikanordnungen, aber ein teil dieser Steuerung ist die Bildung einer Signalroutenplanung zwischen Anordnungen, die gesteuert werden. Dieser Mechanismus soll allgemein und erweiterbar sein. Ein "Schalt" Dienst ermöglicht es, dass die spezialisierten Kenntnisse und der allgemeine Zustand eingekapselt wird, und gegenüber den allgemeinen Applikationen in dem System isoliert wird. Es ermöglicht auch , dass das Signal innerhalb eines Makros gebildet wird, ohne dass das Makro eingebettet werden muss und explizit, detailliert dafür aufgestellt, was in der Zukunft misslingen könnte, und zwar, wegen verschiedener Mittelzuordnungen (beispielsweise isochrone Kanalzuordnung).
  • Benannte Routen
  • Eine "benannte Route" ist verwandt mit einer "Voreinstellung" für eine bestimmte Signalroute und Konfiguration von einer Quellenanordnung zu einer Zielanordnung. Die Route besteht aus den Verbindungen zwischen der Quellenanordnung, etwaigen zwischen liegenden Signalverarbeitungsblöcken, und der Zielanordnung. Sie kann auch Aufstellinformation für diese Signalverarbeitungsblöcke enthalten.
  • Ein Befehl zum Bilden einer bestimmten "benannten Route" kann in ein Makro eingebettet werden, oder mit einer Quellenanordnung und/oder einem Mediatyp assoziiert sein. So kann beispielsweise das Einschieben einer DVD Filmdisk in ein DVD Laufwerk ein Makro auslösen, das eine benannte Route aufbaut mit der Bezeichnung: "DVD Film". In dieser Route steckt Information, die den MPEG-2 Datenstrom zu einem MPEG Decoder führt, danach das Video durch einen Zeilenverdoppler und das Audio durch einen für AC-3 konfigurierten DSP-Block schickt. Das Einschieben einer CD in das DVD Laufwerk kann "CD Musik" auslösen, was Audio durch den DSB Block leiutet, konfiguriert für eine Musik-Surround-Mode, und schafft eine Am-Schirm-Wiedergabe durch das Videosystem.
  • Das Erzeugen einer benannten Route
  • Zur Bequemlichkeit des Benutzers ist es sehr erwünscht, so viel wie möglich von der bei der Routing und Verarbeitung eines Mediastroms involvierten Komplexität zu verstecken. Der Benutzer soll imstande sein, die Wahlen des Systems aufzuheben. Die Systemintelligenz, erforderlich um immer in jeder möglichen Situation die richtige Entscheidung zu treffen, ist aber notwendigerweise begrenzt. Aus diesem Grund muss der Benutzer imstande sein, "benannte Routen" zu schaffen, und zwar zu dem Grad, der möglicherweise Hardwarebeschränkungen geben kann. Vom Benutzer geschaffene oder modifizierte benannte Routen sollen gegenüber vorkonfigurierten oder dynamisch erzeugten Routen Vorrang haben, wenn der Schalter automatisch zwischen ihnen wählt.
  • Inhaltsformate
  • Anordnungen können imstande sein, Inhalt (oder Signale) zwischen verschiedenen Formen zu konvertieren, wobei einige derselben gegenüber anderen bevorzugt werden. Außerdem werden in Zukunft neue Formen erscheinen und es ist für das Schema notwendig, mit ihnen und ihrer Umwandlung fertig zu werden. Das Protokoll in dem System 100 definiert Inhalt als einen "undurchsichtigen" Inhaltsformatidentifizierer, wobei der einzige gültige Vorgang dafür das Testen auf Gleichheit ist. Für jeden Inhaltsformatidentifizierer gibt es einen assoziierten "Qualitätsindex", dessen Zweck es ist, dem Schalter die Möglichkeit zu bieten, zwischen Formaten zu wählen um Inhalt umzuwandeln, wenn eine Umwandlung erforderlich ist. So kann beispielsweise ein VCR einen Komposit- und einen S-Videoanschluss haben. Wenn das aufzuzeichnende Signal ursprünglich ein MPEG-2 Strom von DSS war, muss eine Umwandlung gemacht werden um es zu ermöglichen, dass dieser Strom in einem analogen VCR aufgezeichnet werden kann. Die bevorzugte Wahl wäre S-Video und da der Qualitätsindex höher sein würde, würde dies von dem Schalter gewählt werden.
  • Inhaltsformatidentifizierer sind ein anderes Gebiet, wobei Standardisierung durch Absprache bevorzugt wird gegenüber dem Versuch zum Verallgemeinern des Problems oder dem Versuch einer erschöpfenden Aufzählung um eine Lösung zu erzielen.
  • Signalverarbeitung
  • Mehrere Verarbeitungsblöcke, verteilt über die Anordnungen können imstande sein, eine Ähnliche oder gleichwertige Umwandlung über die Signalstrecke durchzuführen. Einige können eine Umwandlung einer besseren Qualität bieten als andere (ein gutes Beispiel ist die verbesserte Qualität eines 3-D Kammfilters gegenüber einem 2-D Filter). Auf jeden Fall ist es sehr erwünscht, die Anzahl Umwandlungen zu minimieren.
  • Deswegen erfordert neben der Lieferung eines Qualitätsindexes für Inhaltsformate das Protokoll in dem System 100 dass einer mit jeder möglichen Umwandlung assoziiert wird. So ist beispielsweise dieser Wert minimal, zwischen Null und Eins, und jede mögliche Route wird "erzielt" durch Multiplikation der Wert in Reihenfolge für jede Umwandlung längs der Route. Die Route, die am höchsten zielt, soll die "sauberste" Route liefern (d.h. diejenige mit der geringsten Inhaltsdegradation).
  • Bündelung relatierter Inhaltsströme
  • Es gibt Zeiten, wo ein einziger Inhaltsstrom zu mehreren Inhaltsströmen codiert oder decodiert wird, Decodierung eines einfachen MPEG-2 Stromes zu Video, Mehrkanal-Audio und vielleicht Untertitelinformation, beispielsweise. Es kann wichtig sein, zwischen diesen Strömen eine Beziehung zu unterhalten beispielsweise um die Synchronisation von Audio gegenüber Video beizubehalten. Das Protokoll des Systems 100 hat einen Mechanismus um relatierte Ströme zusammen zu "bündeln" um die Beziehung beizubehalten, wenn sie geteilt oder kombiniert werden.
  • Jedes Bündel wirkt wie ein hierarchischer Behälter für die Inhaltsformatidentifizierer, die das Bündel bilden. Wenn ein einziger Inhaltsformatidentifizierer "aufgeteilt" wird, wird er an derselben Stelle durch ein Subbündel mit den neuen Inhaltsformatidentifizierern ersetzt. Das Umgekehrte tritt auf, wenn ein Subbündel zu einem einzigen Inhaltsformatidentifizierer "zusammengefügt" wird.
  • Dynamische Analyse
  • Die Architektur ermöglicht eine völlig automatisierte Routeplanung, wenn sie mit einer gültigen Quellenanordnung und einer gültigen Zielanordnung versehen ist. Sie unterstützt vorkonfigurierte Routen und vom Benutzer geschaffene Routen. Der Benutzer kann auch eine dynamisch gebildete Route editieren, wodurch diese in eine mehr statische Darstellung umgewandelt wird, behandelt als eine vom Benutzer geschaffene Route. Wenn eine vorkonfigurierte Route editiert wird, wird sie zur Selektion auch eine "vom Benutzer geschaffene" Route.
  • Benannte Routen können aus einer Kombination von dynamischer und statischer Information bestehen. Man kann Quellen- und Zielanordnungen statisch definieren und die Surround-Mode eines Audio-DSB-Blocks, aber den Rest bei dem dynamischen Routenprozess lassen. Diese Arten von Routen sind sehr ähnlich wie vorkonfigurierte Routen von Heimtheater-Controllern, wobei einige Einzelheiten bekannt sind aber die Funktionalität und die Konnektivität des einzelnen Systems eine gewisse Flexibilität erfordert. Beispielsweise ist nur analoges Audio verfügbar, oder gibt es einen S/PDIF Anschluss? Gibt es ein AC-3 Signal? Eine benannte Route soll als eine Struktur betrachtet werden, die teilweise besetzt sein kann und der Schalter wird versuchen, die "Leerstellen" zu füllen, um eine Route zu schaffen, geeignet für aktuelle Umstände.
  • Sogar in einem System mit nur vorkonfigurierten und vom Benutzer geschaffenen Routen kann der Schalter eine Wahl aus Routen machen. Es wird nicht als akzeptabel betrachtet, dass der Schalter versagt gegenüber Mehrdeutigkeit eine Route aufzu bauen. Es benutzt die Qualitätsindizes für den Inhaltsformatidentifizierer und die Umwandlungen zum "zielen" jeder Option, und diejenige mit der höchsten Auswertung zu wählen (diejenige, die den Inhalt am wenigstens degradiert).
  • Befragung nach möglichen Quellen und Zielen
  • Die Benutzerschnittstelle hat ein Bedürfnis danach, imstande zu sein, dem Benutzer eine Wahl aus möglichen Zielen anzubieten, wann einmal eine Quellenanordnung identifiziert worden ist, und mögliche Quellen ein Ziel lieferten. In einer audio/visuellen Umgebung ist dies nützlich zum Aufzeichnen, im ersteren Fall und Zuschauen/Zuhören im letzteren Fall.
  • Der Schalter ermittelt verfügbare Routen (mit ihren Bewertungen) und führt sie zu dem Anrufer zurück. Er wird gleichwertige Routen entfernen, die nur in Inhaltsformatumwandlungen abweichen, wobei diejenige mit der höchsten Bewertung gewählt wird. Es wird erwartet, dass die Benutzerschnittstelle standardmäßig diejenige mit der höchsten Bewertung selektiert, und wird aufgefordert den Rest in abnehmender Reihenfolge wiederzugeben.
  • Ermittlung der aktuellen Quelle für ein Ziel und umgekehrt
  • Es ist erwünscht, dass einige Befehle die "aktuelle" Quelle für ein Ziel beeinflussen (oder umgekehrt), statt einer expliziten Anordnung oder Umwandlung. Ein Vorgang "Lautstärke hoch" oder "Lautstärke nieder" assoziiert mit einer Am-Schirm-Steuerung oder einer Taste soll die Anordnung beeinflussen, die zu dem betreffenden Zeitpunkt verantwortlich ist für die Lautstärke an der Stelle des Benutzers. Dies gilt insbesondere für Makros, die aufgezeichnet sind, wenn es die Situation eines audio/visuellen Systems für mehrere Räume betrifft – es wird nicht beabsichtigt, die Lautstärke in demjenigen Raum zu beeinflussen, in dem das Makro ursprünglich aufgezeichnet wurde, sondern in dem Raum, in dem der Benutzer sich zu dem betreffenden Zeitpunkt befindet.
  • Der Schalter ist verantwortlich für den Transport der Nachrichten für eine "aktuelle" Quellen- oder Zielanordnung zu der wirklichen Anordnung, die diese Funktion durchführt. Er kann auch die Bezugnahme für den Briefkasten für die aktuelle Quellen- oder Zielanordnung liefern. Nachrichten um den Inhaltsstrom zu ändern sollen der aktuellen Quellenanordnung zugeführt werden (Spiel, anderen Kanal, usw.) und diejenigen Nach richten, mit denen beabsichtigt wird, die Präsentation des Inhaltes zu beeinflussen, sollen der Zielanordnung zugeführt werden (Kontrast, Lautstärke, usw.).
  • Steuerung der Inhaltsquelle
  • Ein einheitliches und konsistentes Modell zur Steuerung des Inhaltsstromes ist erwünscht. Während die Terminologie unter Quellenanordnungen variiert, ist die darunter liegende Basisstruktur ziemlich regelmäßig. Manipulation einer Inhaltsquelle kann auf eine allgemeine Art und Weise dadurch erreicht werden, dass eine variable Anzahl "Dimensionen" verwendet wird (einen variablen Längenvektor) um eine "Position" zu spezifizieren. Ein einfacher Tuner stellt eine einzelne Dimension dar, die der Kanäle, die er imstande ist zu selektieren aus dem Breitbandmedium. Ein komplexeres Beispiel ist eingroßer CD-Wechsler, mit mehr als nur einem Laufwerk. Die erste Dimension könnte das Laufwerk sein, die zweite eine Disk, die dritte die Spur, eine vierte ein Indexmerker, eine fünfte ein Zeitversatz. Dieses Beispiel ist interessant, da es andere Spezifikationen gibt, die nützlich sein könnten, wie "Laufwerk|Disk|Spur|Zeitversatz" oder nur "Disk", was bedeutet, dass die Anordnung selektieren kann, welches Laufwerk, welche Position am Anfang der Disk, was nützlich wäre zum Spezifizieren der Disk für einen Spielbefehl.
  • Die Anordnung kann mehrere Vektoren unterstützen, um verschiedene Spezifikationen zu ermöglichen. Für jede Dimension kann die Anordnung angeben, dass die Dimension absolut, relativ oder "Bewegung" spezifiziert sein kann zum Spezifizieren "Bandtransport" Steuertyp, wie "x2 Normalgeschwindigkeit". Auch spezifiziert wird der Term zum Gebrauch für diese Dimension, wenn es dem Benutzer angeboten wird.
  • Nicht örtliche Signalrouting
  • Der Schalter bezieht sich meistens auf das Routen von Inhalt innerhalb der örtlichen Klasse D Anordnung. Wo es ein Mittel zum Übertragen von Inhaltsströmen zwischen Anordnungen gibt, können Schalter zusammenarbeiten zum Routen von einer mit einer Klasse D Anordnung verbundenen Quelle zu einem mit einer anderen verbundenen Ziel. Es kann auch der Fall sein, dass eine erforderliche Inhaltsumwandlung nur an einer anderen Klasse D Anordnung durchgeführt werden kann, und folglich ein nicht örtliches Routing auftreten kann, sogar wenn die beiden Anordnungen an dieselbe Klasse D Anordnung angehängt sind.
  • Dieser Prozess wird von dem Schalter in der Klasse D Anordnung ausgelöst, welche die Quellenanordnung enthält. Die Quellenanordnung kann ggf. dieselbe sein, wie diejenige, die beantragt, dass die Route aufgestellt wird. Sie bestimmt die Möglichkeiten, die sie hat für den Teil der Route, den sie örtlich aufstellen kann, und sendet den restlichen Teil der Route zu der nächsten Klasse D Anordnung, und zwar über die bereits selektierte Route. Diese Anordnung macht das gleiche, bis die Zielanordndung erreicht wird. Die schlussendliche Klasse D Anordnung bestimmt danach die höchste Bewertung und sendet diese zu der vorletzten Klasse D Anordnung zu, die diese mit der besten Bewertung multipliziert und sendet diese zu dem Vorgänger, usw., bis die ursprüngliche Klasse D Anordnung erreicht ist. Die ursprüngliche Klasse D Anordnung hat nun eine oder mehrere Bewertungen für die jeweiligen Routen, welche die Zielanordnung erreichen können. Sie selektiert diejenige mit der höchsten Bewertung und sendet eine Bestätigung zum Bilden dieser Route. Zu den anderen sendet sie eine Annullierung, da es sein kann, dass diese Mittel reserviert haben um die Route zu ermöglichen, wenn sie bestätigt worden wären.
  • Bestätigungsverwalter
  • Der Bestätigungsverwalter ist ein Dienst zur asynchronen Kommunikation einer Bedingung innerhalb der Umgebung des Benutzers.
  • "Applikationen" in dem System 100 betreffen primär die Kopplung des Benutzers mit den darunter liegenden Subsystemen. An sich ist ihr primäres Anliegen, den Beitrag eines Teils der Benutzerschnittstelle des Systems.
  • Da Klasse C Anordnungen auch eine Benutzerschnittstelle für diese Anordnung einbetten kann, zusammen mit der Anordnungsabstraktion, werden Applikationen derart geschrieben, dass Kenntnisse der Benutzerschnittstelle des gesamten Systems minimiert werden und die herunter geladene Applikation kann nahtlos mit dem bestehenden "Stil" integrieren, den die Klasse D Anordnung bei der Präsentation der Schnittstelle benutzt. Dies wird dadurch erreicht, dass eine Bibliothek semantisch orientierter Benutzerschnittstellenelemente hohen Pegels geschaffen wird, die eine standardisierte Funktionalität mit einer plattformspezifischen Präsentation schaffen. Auf diese Weise werden Hersteller imstande sein, mit ihren Klasse D Produkten zu wetteifern und diese zu differenzieren, ohne dass die von den Klasse C Anordnungen herunter geladenen Applikationen "wie ein bunter Hund auffallen"
  • Schaffung der Benutzerschnittstelle
  • Applikationen können zwischen Klasse D Anordnungen verlagert werden um die Benutzerschnittstelle für eine abstrakte Anordnung zu schaffen, die sich in einer Fern-Klasse D Anordnung befindet. Dies ermöglicht es, dass Klasse D Anordnungen "kopflos" sind, d.h. nicht eine Benutzerschnittstelle schaffen, und sich auf andere Klasse D Anordnungen verlassen, die eine Schnittstelle zur Interaktion mit dem Benutzer schaffen.
  • Es gibt ein Applikationsnetzwerk, das die einzelnen Applikationen innerhalb einer von einer Klasse D Anordnung geschaffenen Umgebung orchestriert. Da die Umgebung wahrscheinlich mittelbegrenzt ist (beispielsweise es wird jeweils nur eine einzige Applikation aktiv sein), wird das Applikationsnetzwerk sie nach Bedürfnis instanziieren, wenn der Benutzer durch die Benutzerschnittstelle navigiert.
  • Da eine abstakte Anordnung sich nicht auf die Applikation verlassen kann, die instanziiert werden muss und Benutzerschnittstellenmittel aufweist (wie eine Wiedergabeanordnung und ein Eingabeverfahren) wenn der Benutzer über ein Problem informiert werden muss, soll ein anderer Mechanismus vorgesehen werden um über eine Situation zu berichten, die der Benutzer kennen soll, oder wobei der Benutzer eingreifen soll. Dies geschieht durch den Bestätigungsverwalter, einen Dienst einer Klasse D Anordnung. Der Bestätigungsverwalter ist immer aktiv und verfügbar und kann für den Benutzer zu jeder Zeit eine Nachricht wiedergeben, unabhängig von der zu dem betreffenden Zeitpunkt aktiven Applikation.
  • Oben auf dem Bestätigungsverwalter ist ein Fehlerberichterstattungsverwalter vorgesehen, ein Applikationsdienst, der eine Fehlernachricht interpretieren kann und diese auf eine konsistente Art und Weise dem Benutzer mitteilen kann. Dieser Dienst ist nützlich bei der Gewährleistung eines konsistent hohen Standards der Fehlerberichterstattung zu dem Benutzer hin, ohne Applikationen zu belasten. Fehlersuche in einem System ist oft ein Problem für nicht technische Benutzer, denen methodische Problemlösung fremd ist, und kurze, genaue und verständliche Fehlernachrichten sind für dieses Publikum wesentlich (und werden von den technisch bewandten Personen geschätzt).

Claims (12)

  1. Steuerungssystem mit einer Anzahl elektronischer Geräte, die über ein aufgabengesteuertes Steuermittel zur Steuerung einer Interaktion der Geräte untereinander, miteinander verbunden sind, wobei das Steuermittel auf die betreffenden Softwaredarstellungen jedes der betreffenden Geräte einwirkt, wobei wenigstens ein bestimmtes elektronisches Gerät Mittel aufweist zum Herunterladen der betreffenden Softwaredarstellung zu dem Steuermittel und das Steuermittel Mittel aufweist zum Empfangen der herunter geladenen Softwaredarstellung, und wobei die Softwaredarstellung Folgendes umfasst: – eine Gerätabstraktion; und – eine Benutzerschnittstellenapplikation.
  2. Steuerungssystem nach Anspruch 1, wobei die Softwaredarstellung eine Anordnungsabstraktion aufweist zur Darstellung der betreffenden Anordnung auf einem semantischen Pegel, der den Darstellungen gemein ist.
  3. Steuerungssystem nach Anspruch 2, wobei die Softwaredarstellung eine Applikation einer Benutzerschnittstelle zu der Anordnungsabstraktion aufweist und wobei die Steuermittel zum Durchführen der Applikation wirksam sind.
  4. Steuerungssystem nach Anspruch 1, wobei die Softwaredarstellung einen zusammengestellten Code aufweist.
  5. Steuerungssystem nach Anspruch 1, wobei wenigstens ein elektronisches Gerät ein elektronisches Konsumentengerät aufweist.
  6. Steuermittel zur Verwendung in dem System nach Anspruch 1, wobei das Steuermittel Mittel aufweist zum Empfangen einer Softwaredarstellung von wenigstens einem der elektronischen Geräten und imstande ist, Interaktion unter einigen elektronischen Geräten zu ermöglichen durch Einwirkung auf die betreffenden Softwaredarstellungen der betreffenden Geräte.
  7. Steuermittel nach Anspruch 6, wobei die Softwaredarstellung einen zusammengesetzten Code aufweist.
  8. Steuermittel nach Anspruch 6, das ein weiteres elektronisches Konsumentengerät aufweist.
  9. Elektronisches Gerät zur Verwendung in dem System nach Anspruch 1, wobei das elektronische Gerät Mittel aufweist zum Herunterladen einer Softwaredarstellung von sich selbst um Mittel zu steuern, welche die Steuermittel in den Stand setzen, das elektronische Gerät durch Einwirkung auf die Softwaredarstellung zu steuern, wobei die Softwaredarstellung Folgendes umfasst: – eine Gerätabstraktion; und – eine Benutzerschnittstellenapplikation.
  10. Elektronisches Gerät nach Anspruch 9, wobei die Softwaredarstellung einen zusammengesetzten Code aufweist.
  11. Verfahren zum Ermöglichen einer Interaktion zwischen einer Anzahl elektronischer Geräte, wobei das Verfahren Folgendes umfasst: – das Herunterladen der betreffenden Softwaredarstellung zu einem Steuermittel durch wenigstens ein spezifisches Gerät der elektronischen Geräte; – das Empfangen der herunter geladenen Softwaredarstellung durch die Steuermittel; und – das Steuern der Interaktion zwischen den elektronischen Geräten durch Einwirkung auf die betreffenden Softwaredarstellungen durch die Steuermittel, wobei die Softwaredarstellung Folgendes umfasst: – eine Gerätabstraktion; und – eine Benutzerschnittstellenapplikation.
  12. Verfahren nach Anspruch 11, wobei die Softwaredarstellung einen zusammengesetzten Code aufweist.
DE69737525T 1996-10-15 1997-08-21 Aufgabengesteuertes steuerungssystem für elektronische verbraucher Expired - Lifetime DE69737525T2 (de)

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
US731624 1996-10-15
PCT/IB1997/001013 WO1998016886A1 (en) 1996-10-15 1997-08-21 Task-driven control system for electronic consumer devices

Publications (2)

Publication Number Publication Date
DE69737525D1 DE69737525D1 (de) 2007-05-10
DE69737525T2 true DE69737525T2 (de) 2007-12-27

Family

ID=24940302

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69737525T Expired - Lifetime DE69737525T2 (de) 1996-10-15 1997-08-21 Aufgabengesteuertes steuerungssystem für elektronische verbraucher

Country Status (7)

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

Families Citing this family (75)

* 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
US8631093B2 (en) 1998-03-19 2014-01-14 Crane Merchandising Systems, Inc. Remote data acquisition, transmission and analysis system including handheld wireless equipment
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
US7167892B2 (en) 1998-03-19 2007-01-23 Isochron, Inc. System, method and apparatus for vending machine wireless audit and cashless transaction transport
US7020680B2 (en) 1998-03-19 2006-03-28 Isochron, Llc System and method for monitoring and control of beverage dispensing equipment
US7181501B2 (en) 1998-03-19 2007-02-20 Isochron, Inc. Remote data acquisition, transmission and analysis system including handheld wireless equipment
US6081855A (en) * 1998-04-15 2000-06-27 Oak Technology, Inc. Digital versatile disc playback system with flexible input interface
JP4245670B2 (ja) * 1998-04-22 2009-03-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 消費者電子システムの機能の管理
WO1999055070A2 (en) * 1998-04-22 1999-10-28 Koninklijke Philips Electronics N.V. Management of functionality in a consumer electronics system
WO1999056242A2 (en) * 1998-04-23 1999-11-04 Koninklijke Philips Electronics N.V. A software controlled imaging system with user interface controller module
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
JP3922817B2 (ja) * 1998-06-30 2007-05-30 株式会社東芝 通信ノード及び通信端末
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
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 (de) 1999-05-05 2000-11-08 Sony International (Europe) GmbH Steuermodul eines Tuners für ein HAVi Netz
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
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
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
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
US20020065950A1 (en) * 2000-09-26 2002-05-30 Katz James S. Device event handler
US20020062259A1 (en) * 2000-09-26 2002-05-23 Katz James S. Server-side system responsive to peripherals
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 엘지전자 주식회사 홈 네트워크 시스템의 제어 방법
WO2004058403A2 (en) * 2002-12-24 2004-07-15 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
JP2007502034A (ja) * 2003-07-24 2007-02-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電子システム、及び、電子システムに追加的機能特徴を与える方法
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
EP1813090A2 (de) * 2004-10-25 2007-08-01 Nokia Corporation Verbesserungen in bezug auf elektronische einrichtungen für audio-/video-plugs
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
WO2007030421A2 (en) 2005-09-07 2007-03-15 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
US8422550B2 (en) * 2007-07-27 2013-04-16 Lagavulin Limited Apparatuses, methods, and systems for a portable, automated contractual image dealer and 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
KR101052029B1 (ko) 2009-11-30 2011-07-26 (주)라이프앤진 유전자 검사 샘플 채취용 패치
US8886392B1 (en) 2011-12-21 2014-11-11 Intellectual Ventures Fund 79 Llc Methods, devices, and mediums associated with managing vehicle maintenance activities
KR101600789B1 (ko) 2015-03-24 2016-03-08 (주)에스에이피 포장용 상자 및 그 제조방법

Family Cites Families (11)

* 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 エヌイーシーソフト株式会社 マルチタスク実行時間アカウント方法とその機構
US5265252A (en) * 1991-03-26 1993-11-23 International Business Machines Corporation Device driver system having generic operating system interface
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE69737525T2 (de) Aufgabengesteuertes steuerungssystem für elektronische verbraucher
DE69836101T2 (de) Ein audio-video-gerät
DE69829219T2 (de) Verfahren und system in verbindung mit einem audio-video-netz
DE60119559T2 (de) Überbrückungssystem zur zusammenarbeit von entfernten gerätegruppen
DE69930534T2 (de) Szenarioandeutende Anrufe für Steuerung von Softwareobjekten mittels Eigenschaftsverbindungen
DE69829218T2 (de) Ein audio-video-netzwerk mit gerätsteuerung
DE60036072T2 (de) Verfahren zur brückenverbindung von mehreren heimnetzsoftwarearchitekturen
DE69829221T2 (de) Ein audio-video-netzwerk
DE69933637T2 (de) Funktionalitätsverwaltung für ein system der unterhaltungselektronik
DE69631502T2 (de) Verteiltes interaktives Multimediadienstesystem
DE69819735T2 (de) Modell und befehlssatz für av/c-basierte untereinheit eines plattenwiedergabe-/-aufzeichnungsgeräts
DE69933285T2 (de) Netzwerk und informationsdarstellung mittels objekte
DE69813566T2 (de) Ein verfahren und eine vorrichtung zum versehen von geräten mit selbstbeschreibenden informationen
DE60017496T2 (de) Adressenabbildung
DE69828696T2 (de) Erzeugung eines programmführers für heimnetzwerke
DE60303903T2 (de) Verfahren zur Erzeugung einer graphischen Benutzerschnittstelle auf einem HAVi Gerät für die Steuerung eines nicht HAVi Gerätes
EP1116630B1 (de) Audio- und/oder Videosystem, insbesondere für Kraftfahrzeuge oder Heimanwendungen
EP1040623B1 (de) Verfahren zur koordination von netzwerkkomponenten
DE69821503T2 (de) Elektronisches peripheriegerät und -system zum steuern dieses gerätes über einen digitalen bus
DE69334172T2 (de) Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69926368T2 (de) Verfahren und vorrichtung für universellen zugriffsbefehl und kontrollinformation in einem netzwerk
DE69933811T2 (de) Digitaler Multimediaempfänger und einen solchen Empfänger umfassendes Netzwerk mit IEEE 1394 serial Bus Schnittstelle
AT407582B (de) Nachrichtenverteilereinheit mit integriertem guardian zur verhinderung von ''babbling idiot'' fehlern
DE69819507T2 (de) Set-top-box gerätetreiber für die ieee1394 norm
DE102005032281A1 (de) Verfahren, hergestellter Gegenstand und Vorrichtung zum Aktualisieren von Software in einer Verbrauchervorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition