-
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).