-
Hintergrund der Erfindung
-
Technisches Gebiet
-
Die
Erfindung bezieht sich auf das Speichern und Anschauen von Fernsehprogrammmaterial
in einer Computerumgebung. Spezifischer ausgedrückt bezieht sich die Erfindung
auf die Verwaltung von Daten in einem Speicherungsmedium in einer
Computerumgebung.
-
Beschreibung der verwandten
Technik
-
Bei
dem Entwurf von automatisierten Datenverarbeitungssystemen existiert
eine klassische Spannung zwischen rein Client-Server-basierten Systemen,
wie z. B. Computergroßrechnersystemen oder
dem weltweiten Informationssystem im Internet (World Wide Web),
und rein verteilten Systemen, wie z. B. Netzen von Arbeitsstationen
(NOWS; NOWS = Networks of Workstations), die verwendet werden, um
komplexe Computerprobleme wie z. B. ein Modellieren von Atomexplosionen
oder ein Aufbrechen von kryptographischen Schlüsseln zu lösen.
-
Client-Server-Systeme
sind beliebt, da dieselben auf einer klaren Teilung von Verantwortung zwischen
dem Server und dem Client beruhen. Der Server ist oft kostenaufwändig und
wird speziell verwaltet, da derselbe für eine große Anzahl von Clients Berechnungen
durchführt
oder Daten speichert. Jeder Client ist kostengünstig und weist lediglich die
Lokalressourcen auf, die benötigt
werden, um mit dem Benutzer des Systems in einer Wechselwirkung
zu stehen. Es wird angenommen, dass ein Netz mit einer sinnvollen
Leistungsfähigkeit
den Server und den Client verbindet. Das ökonomi sche Modell dieser Systeme
ist das einer zentralisierten Verwaltung und Steuerung, die die
Zuwachskosten eines Einsetzens von Client-Systemen nach unten drücken.
-
Jedoch
hat dieses Modell erhebliche Kosten, die berücksichtigt werden müssen. Zum
Beispiel können
die Zuwachskosten für
ein Hinzufügen
eines neuen Client-Systems ziemlich hoch sein. Eine zusätzliche
Netzkapazität
muss verfügbar
sein, ausreichende Rechenressourcen müssen verfügbar sein, um diesen Client
zu unterstützen,
einschließlich
von Speicherungs-, Speicher- und Rechenzyklen, und aufgrund dieser
zusätzlichen
Ressourcen ist für
jeden Client ein zusätzlicher
Betriebsmehraufwand nötig.
Da die zentralen Server größer und
komplexer werden, werden dieselben viel weniger zuverlässig. Schließlich resultiert
ein Systemausfall des Servers darin, dass alle Clients einen Dienst
verlieren.
-
Verteilte
Systeme sind beliebt, da die Ressourcen des Systems an jeden Client
verteilt werden, was in dem Client eine komplexere Funktionalität ermöglicht.
Ein Zugriff auf Programme oder Daten ist schneller, da sich dieselben
bei dem Client befinden, was eine Belastung des Netzes selbst reduziert.
Das System ist zuverlässiger,
da der Ausfall eines Knotens lediglich denselben beeinflusst. Viele
Rechenaufgaben sind ohne weiteres in Abschnitte zu zerlegen, die
unabhängig
berechnet werden können,
und diese Abschnitte werden kostengünstig unter den einbezogenen
Systemen verteilt. Dies reduziert auch Netzbandbreitenanforderungen
und schränkt
den Einfluss eines ausgefallenen Knotens ein.
-
Andererseits
ist ein verteiltes System komplexer zu verwalten, und bei demselben
kann es schwieriger sein, Hardware- oder Softwareausfälle zu diagnostizieren und
zu lösen.
-
Fernsehschauen
kann als ein Client-Server-System modelliert sein, jedoch eines,
bei dem der Server-zu-Client-Netzpfad für alle Absichten und Zwecke
mit einer unbegrenzten Geschwindigkeit ist und bei dem der Client-zu-Server-Pfad inkohärent ist und
nicht verwaltet wird. Dies ist ein natürliches Artefakt der Rundsendenatur
des Fernsehens. Die Kosten für
ein Hinzufügen
eines anderen Zuschauers sind gleich null, und der gelieferte Dienst
ist der gleiche wie derjenige, der an alle anderen Zuschauer geliefert
wird.
-
Viele
Bemühungen,
eine Fernsehprogrammierung über
Computernetze zu liefern, wie z. B. das Internet oder sogar über eine
lokale Kabelfernsehanlage, die als ein Netz arbeitet, sind bereits
vorhanden und bestehen weiterhin. Die Punkt-zu-Punkt-Natur von Computernetzen macht
diese Bemühungen schwerfällig und
teuer, da für
jeden zusätzlichen
Zuschauer zusätzliche
Ressourcen erforderlich sind. Voll interaktive Fernsehsysteme, bei
denen der Zuschauer eine Video-Streaming-Bandbreite
vollständig
durch ein Client-Settop-Gerät steuert,
haben sich als noch unwirtschaftlicher erwiesen, da eine Widmung
von Server-Ressourcen zu jedem Client die Größe des Systems, das einträglich gebaut
und verwaltet werden kann, schnell einschränkt.
-
Jedoch
zeigen Fernsehzuschauer einen hohen Grad an Interesse an einer Auswahl
und Steuerung des Fernschauens. Dieses Interesse resultiert in der
Notwendigkeit, dass das Clientsystem die Speicheranforderungen des
Programmmaterials, das ein Zuschauer aufzeichnen möchte, effizient
verwaltet. Zusätzlich
ist die Verwaltung eines Aufzeichnens von erwünschtem Programmmaterial für die Speicherverwaltungsaufgabe
gleichermaßen
wichtig.
-
Es
wäre vorteilhaft,
ein Datenspeicherungsverwaltungs- und Planungssystem zu schaffen,
das den verfügbaren
Datenraum in einem Speicherungsmedium und jegliche Eingabequellen
verwaltet. Es wäre
ferner vorteilhaft, ein Datenspeicherungsverwaltungs- und Planungssystem
zu schaffen, dass die Einfügung
und Löschung
von Daten in einem Medium effizient plant.
-
Zusammenfassung der Erfindung
-
Die
Erfindung schafft ein Datenspeicherungsverwaltungs- und Planungssystem
wie in den beigelegten Ansprüchen
dargelegt. Das System plant das Speichern und Löschen von Eingabequelle-Daten
in einem Speicherungsmedium. Zusätzlich schafft
die Erfindung ein System, das den verfügbaren freien Raum in dem Speicherungsmedium
verwaltet, derart, dass der verfügbare
freie Raum effizient verwendet wird.
-
Ein
Clientgerät,
typifiziert in der Veröffentlichung
WO 00/07368 A1 ,
die im Eigentum des Anmelders steht, stellt eine Funktionalität bereit,
die typischerweise zentralen Video-Servern zugeordnet ist, wie z.
B. eine Speicherung einer großen
Menge an Videoinhalt, eine Fähigkeit,
diesen Inhalt auf Anforderung auszuwählen und abzuspielen, und eine
volle „VCR-gleiche" (VCR = video casette
recorder = Videokassetenrecorder) Steuerung der Lieferung des Inhalts,
wie es in der Veröffentlichung
WO 99/52279 A1 typifiziert
ist, die im Eigentum des Anmelders steht.
-
Ein
bevorzugtes Ausführungsbeispiel
der Erfindung plant das Aufzeichnen, Speichern und Löschen von
Fernseh- und Nebseitenprogramnimaterial in einem Clientsystem-Speicherungsmedium.
Die Erfindung nimmt eine priorisierte Liste von Programmanschaubevorzugungen
als Eingabe an, die mit einer Datenbank von Programmführerobjekten
verglichen wird. Die Programmführerobjekte
zeigen an, wann Programme von Interesse tatsächlich rundgesendet werden.
-
Es
wird ein Zeitplan gegen verfügbaren
Speicherungsplatz erzeugt, der für
die expliziten oder abgeleiteten bevorzugten Programme des Zuschauers optimal
ist. Die bevorzugten Programme umfassen Fernsehrundsendungsprogramme
und Universelle Ressourcenlokalisatoren (URLs; URLs = Universal Resource
Locators). Der Zuschauer kann anfordern, dass bestimmte Programme
aufgenommen werden, was in der höchstmöglichen
Priorität
für diese
Programme resultiert.
-
Unter
Verwendung von Zubehör,
das durch die Benutzerschnittstelle bereitgestellt wird, kann der Zuschauer
auch explizit Bevorzugungen ausdrücken. Die Bevorzugungen können zusätzlich aus
Anschaumustern gefolgert werden. Diese Bevorzugungen entsprechen
Objekten, die in einer replizierten Datenbank gespeichert sind.
-
Die
Erfindung korreliert einen Eingabeplan, der die freien und die besetzten
Zeitschlitze für
jede Eingabequelle verfolgt, mit einem Raumplan, der alle gegenwärtig aufgezeichneten
Programme und die Programme, die eingeplant sind, um in der Zukunft aufgezeichnet
zu werden, verfolgt, um neue Programme einzuplanen, die aufgezeichnet
werden sollen, und Aufzeichnungskonflikte zu lösen. Ein Programm wird aufgezeichnet,
wenn jederzeit zwischen dem Zeitpunkt, wenn die Aufzeichnung initiiert
würde,
und dem, wenn dieselbe abläuft,
genügend
Raum verfügbar
ist, um dasselbe zu halten. Programme, die basierend auf gefolgerten
Bevorzugungen für
eine Aufzeichnung eingeplant sind, verlieren automatisch alle Entscheidungen
eines Konflikts. Alle Plankonflikte werden so früh wie möglich gelöst. Plankonflikte, die aus
der Aufzeichnung von gesammelten Objekten resultieren, werden unter
Verwendung der Bevorzugungsgewichtung der betroffenen Programme
gelöst.
-
Ein
Hintergrundplaner versucht, jedes bevorzugte Programm der Reihe
nach einzuplanen, bis die Liste von bevorzugten Programmen erschöpft ist oder
keine weitere Möglichkeit
zum Aufzeichnen verfügbar
ist. Ein bevorzugtes Programm wird eingeplant, wenn, und nur wenn,
keine Konflikte mit anderen eingeplanten Programmen vorliegen.
-
Andere
Aspekte und Vorteile der Erfindung werden aus der folgenden detaillierten
Beschreibung in Kombination mit den zugehörigen Zeichnungen ersichtlich,
die die Prinzipien der Erfindung beispielhaft darstellen.
-
Kurze Beschreibung der Zeichnungen
-
1 ist
ein schematisches Blockdiagramm eines bevorzugten Ausführungsbeispiels
eines verteilten Fernsehanschauverwaltungssystems gemäß der Erfindung;
-
2 ist
ein schematisches Blockdiagramm der Struktur eines Anschauobjekts
in einer Computerspeicherung für
einen programmatischen Zugriff gemäß der Erfindung;
-
3 ist
ein schematisches Blockdiagramm, das zeigt, wie das Schema für ein Anschauobjekt
in einer Computerspeicherung für
einen programmatischen Zugriff gemäß der Erfindung strukturiert
ist;
-
4 ist
ein schematisches Blockdiagramm, das einen Beispielgraph von Beziehungen
zwischen Anschauobjekten zeigt, die Informationen über Programme
beschreiben, gemäß der Erfindung;
-
5 ist
ein schematisches Blockdiagramm, das einen Beispielgraph von Beziehungen
zeigt, die bei einem Verarbeiten von Zuschauerbevorzugungen erzeugt
werden, um Programme von Interesse zu bestimmen, gemäß der Erfindung;
-
6 ist
ein schematisches Blockdiagramm, das die Planung von Eingaben und
Speicherungsraum zum Vornehmen von Aufzeichnungen gemäß der Erfindung
zeigt;
-
7 ist
ein Flussdiagramm, das die Schritte zeigt, die vorgenommen werden,
um eine Aufzeichnung unter Verwendung des in 6 veranschaulichten
Mechanismus gemäß der Erfindung
einzuplanen;
-
8 ist
ein schematisches Blockdiagramm eines bevorzugten Ausführungsbeispiels
der Erfindung, das die Urladungssystemkonfiguration (Bootstrap-Systemkonfiguration)
gemäß der Erfindung
zeigt;
-
9a ist
ein schematisches Blockdiagramm des Entscheidungsflussdiagramms
für die
Urladungskomponente (Bootstrap-Komponente) gemäß der Erfindung;
-
9b ist
ein schematisches Blockdiagramm des Entscheidungsflussdiagramms
für die Bootstrap-Komponente
gemäß der Erfindung;
und
-
10 ist
ein schematisches Blockdiagramm des Entscheidungsflussdiagramms
für den Software-Installationsvorgang
gemäß der Erfindung.
-
Detaillierte Beschreibung
der Erfindung
-
Die
Erfindung ist in einem Datenspeicherungsverwaltungsund Planungssystem
in einer Computerumgebung ausgeführt.
Ein System gemäß der Erfindung
plant das Speichern und Löschen
von Eingabequelle-Daten in einem Speicherungsmedium. Zusätzlich schafft
die Erfindung ein System, das den verfügbaren freien Raum in dem Speicherungsmedium
derart verwaltet, dass der verfügbare
freie Raum effizient genutzt wird.
-
Die
Erfindung ist beispielhaft als Teil eines Fernsehanschauinformationsübertragungs-
und Sammelsystems veranschaulicht, das die Fähigkeit des individuellen Zuschauers
verbessert, Fernsehprogramme auszuwählen und automatisch zeitlich
zu verschieben, während
für einen
Dienstanbieter Möglichkeiten
geboten werden, die Anschauerfahrung zu verbessern und zu leiten.
Das Folgende beschreibt ein System, das voll verteilt ist, dahingehend,
dass Berechnungen, die sich auf einen individuellen Zuschauer beziehen, in
einem Lokalclientgerät
für diesen
Zuschauer persönlich
durchgeführt
werden, während
für die
zuverlässige
Sammlung und Ausbreitung von Informationen gesorgt ist, die Anschaugewohnheiten,
-bevorzugungen oder Käufe
betreffen.
-
Die Datenbank von Fernsehanschauinformationen
-
1 gibt
eine schematische Übersicht über die
Erfindung. Hauptsächlich
für die
Erfindung sind ein Verfahren und eine Vorrichtung zum Aufrechterhalten
einer verteilten Datenbank von Fernsehanschauinformationen zwischen
Computersystemen an einer zentralen Seite 100 und einer
extrem großen Anzahl
von Clientrechensystemen 101. Der Prozess zum Extrahieren
von geeigneten Teilsätzen
der zentralen Kopie der Datenbank wird „Stückeln" bzw. „Slicing" 102 genannt, ein Liefern der
resultierenden „Stücke" an Clients wird „Übertragung" 103 genannt, ein
Liefern von Informationen, die über
den Zuschauer oder in seinem Namen gesammelt werden, an die zentrale
Seite wird „Sammlung" 104 genannt,
und ein Verarbeiten der gesammelten Informationen, um neue Fernsehanschauobjekte
oder -berichte zu erzeugen, wird „Analyse" 107 genannt; in allen Fällen wird
die Handlung eines Wiedererzeugens eines Objekts aus einer Datenbank
in einer anderen „Replizierung" 105 genannt.
Datenelemente, die übertragen oder
gesammelt werden sollen, werden als „Objekte" 106 bezeichnet, und die zentrale
Datenbank und jeder replizierte Teilsatz der zentralen Datenbank,
enthalten in einem Clientgerät,
ist eine „objektbasierte" Datenbank. Die Objekte
in dieser Datenbank werden oft als „Fernsehanschauobjekte", „Anschauobjekte" oder einfach „Objekte" bezeichnet, wobei
die beabsichtigte Verwendung derselben betont wird. Ein Fachmann
wird jedoch ohne weiteres verstehen, dass Objekte irgendein Typ
von Daten sein können.
-
Die
Anschauobjektdatenbank liefert ein konsistentes abstraktes Softwarezugriffsmodell
für die Objekte,
die dieselbe enthält,
unabhängig
von und parallel zu den Replizie rungsaktivitäten, die hierin beschrieben
sind. Durch ein Verwenden dieser Schnittstelle können Anwendungen Objekte in
der Datenbank erzeugen, zerstören,
lesen, schreiben und anderweitig manipulieren, ohne Bedenken wegen
zugrunde liegender Aktivitäten
und mit einer Sicherstellung, dass eine konsistente und zuverlässige Ansicht
der Objekte in der Datenbank und der Beziehungen zwischen denselben
immer aufrechterhalten wird.
-
Grundlegende Fernsehanschauobjektprinzipien
-
Unter
Bezugnahme auf 2 sind Fernsehanschauobjekte
als eine Sammlung von „Attributen" 200 strukturiert.
Jedes Attribut weist einen Typ 201, z. B. Ganzzahl, Zeichenkette
oder Booelsch, und einen Wert 202 auf. Alle Attributstypen
werden aus einem festen Vorrat von Basistypen entnommen, der durch
die Datenbank unterstützt
wird.
-
Die
Attribute eines Objekts fallen in zwei Gruppen: „Basis"-Attribute, die durch den Erzeuger oder
Aufrechterhalter des Anschauobjekts geliefert werden; und „abgeleitete" Attribute, die automatisch durch
Mechanismen in der Datenbank erzeugt und aufrechterhalten werden.
Basisattribute beschreiben Eigenschaften des Objekts selbst; abgeleitete
Attribute beschreiben die Beziehungen zwischen Objekten. Basisattribute
werden zwischen Datenbanken repliziert, während dies bei abgeleiteten
Attributen nicht der Fall ist.
-
Unter
Bezugnahme auf 3 ist ein kleiner Satz von grundsätzlichen
Objekttypen vorhanden, definiert durch die Erfindung; jeder Objekttyp
ist als ein spezifischer Satz von verwandten Attributen 300 repräsentiert,
hierin als ein „Schema" bezeichnet. Das
Schema definiert eine Schablone für jeden Attributstyp 301,
die den Typ 302 und einen Namen des Attributs 303 umfasst.
Tatsächliche
Fernsehanschauobjekte werden durch ein Zuordnen von Ressourcen für das Objekt
und ein Zuweisen von Werten zu den Attributen, die durch das Schema
definiert sind, erzeugt. Zum Beispiel könnte ein „Programm"-Schema Attribute wie z. B. den Produzenten,
den Regisseur oder die Schauspieler in dem Programm, ein Symbol auf
dem Bildschirm, eine mehrzahlige Beschreibung der Programminhalte,
eine Redaktionsbewertung des Programms usw. umfassen. Ein physikalisches Programmobjekt
wird durch ein Zuordnen einer Speicherung für dasselbe und ein Einfüllen der
Attribute mit relevanten Daten erzeugt.
-
Es
gibt einen speziellen Objekttyp, der für alle Datenbanken vordefiniert
ist, bezeichnet als der Schematyp. Jedes Schema, das durch die Datenbank
unterstützt
wird, ist durch ein Schemaobjekt repräsentiert. Dies ermöglicht,
dass eine Anwendung eine „Einsichtnahme" in der Datenbank
durchführt,
d. h. dynamisch entdeckt, was für
Objekttypen unterstützt
werden, und das Schema derselben. Dies vereinfacht eine Anwendungssoftware
in hohem Maße und
vermeidet die Notwendigkeit, eine Anwendungssoftware zu ändern, wenn
Schemas geändert,
hinzugefügt
oder gelöscht
werden. Schemaobjekte werden genauso wie alle anderen Anschauobjekte
in den Verfahren dieser Anwendung gehandhabt.
-
Sich
erneut auf 2 beziehend wird jedem Objekt
in einer Datenbank eine „Objekt-ID" 203 zugewiesen,
die in der Datenbank eindeutig sein muss. Diese Objekt-ID kann viele
Formen annehmen, solange jede Objekt-ID eindeutig ist. Das bevorzugte Ausführungsbeispiel
verwendet eine 32-Bit-Ganzzahl
für die
Objekt-ID, da dieselbe einen nützlichen Kompromiss
zwischen einer Verarbeitungsgeschwindigkeit und einer Anzahl von
zulässigen
eindeutigen Objekten liefert. Jedes Objekt umfasst auch einen „Verweiszählwert" 204, der
eine Ganzzahl ist, die die Anzahl von anderen Objekten in der Datenbank
angibt, die auf das gegenwärtige
Objekt verweisen. Ein Objekt mit einem Verweiszählwert von null wird in der Datenbank
nicht fortbestehen (siehe unten).
-
Ein
spezifischer Typ eines Anschauobjekts ist das „Verzeichnis"-Objekt. Ein Verzeichnisobjekt hält eine
Liste von Objekt-IDs und einen zugeordneten einfachen Namen für das Objekt.
Verzeichnisobjekte können
andere Verzeichnisobjekte als einen Teil der Liste umfassen, und
es ist ein einzelnes hervorgehobenes Objekt vorhanden, das das „Wurzel"-Verzeichnis genannt wird. Die Sequenz
von Verzeichnisobjekten, die an dem Wurzelverzeichnis startend und
fortfahrend, bis das Objekt von Interesse gefunden wird, durchlaufen
wird, wird ein „Pfad" zu dem Objekt genannt;
der Pfad zeigt somit eine bestimmte Stelle in dem hierarchischen
Namensraum an, der unter allen Verzeichnisobjekten erzeugt wird, die
in der Datenbank vorhanden sind. Mehrere Pfade können auf ein Objekt verweisen,
was bedeutet, dass ein Objekt viele Namen haben kann. Der Verweiszählwert an
einem Anschauobjekt wird für
jedes Verzeichnis, das auf dasselbe verweist, um eins inkrementiert.
-
Verfahren für die Aufrechterhaltung einer
Datenbankkonsistenz und -genauigkeit
-
Eines
der Merkmale eines bevorzugten Ausführungsbeispiels der Erfindung
ist es, sicherzustellen, dass jede Datenbankreplik intern jederzeit
konsistent bleibt und dass diese Konsistenz automatisch ohne eine
Bezugnahme auf andere Datenbanken oder die Notwendigkeit nach einer
Verbindung mit der zentralen Seite aufrechterhalten wird. Es gibt
keine Sicherheit, dass Übertragungs-
oder Sammlungsoperationen in einer zeitlich günstigen Weise oder mit irgendeiner
sichergestellten Periodizität
geschehen. Zum Beispiel kann ein Clientsystem für viele Monate abgeschaltet
sein; wenn eine Übertragung
an das System schließlich
möglich
ist, muss die Replizierung von Objekten immer in einem konsistenten
Teilsatz der Serverdatenbank resultieren, selbst wenn es nicht möglich ist,
alle Objekte zu übertragen,
die benötigt
werden, um die zentralen und die Clientdatenbanken in eine vollständige Synchronisation
zu bringen.
-
Schwerwiegender
noch, es kann keine Garantie einer stabilen Betriebsumgebung geben,
während
die Datenbank im Gebrauch ist oder aktualisiert wird. Zum Beispiel
kann eine elektrische Leistung zu dem Gerät enden. Diese Erfindung behandelt
alle Datenbankaktualisierungen als „Transaktionen", was bedeutet, dass
die gesamte Transaktion abgeschlossen wird oder nichts von derselben
abgeschlossen wird. Diese spezifische gewählte Technik wird „Zweiphasenausführen" genannt, wobei alle
Elemente der Transaktion überprüft und protokolliert
werden, gefolgt von einem Durchführen
der tatsächlichen
Aktualisierung. Ein Fachmann wird erkennen, dass eine Standard-Journalisierungstechnik,
bei der die Transaktion in ein separates Protokoll gestuft wird,
kombiniert mit einer Vorwärtsrolltechnik,
die das Protokoll verwendet, um partielle Aktualisierungen zu wiederholen,
die im Verlauf waren, wenn als der Ausfall eintrat, ist für diesen
Zweck ausreichend.
-
Ein
erforderliches abgeleitetes Attribut eines jeden Objekts ist die „Version", die sich mit jeder Änderung
des Objekts ändert;
das Versionsattribut kann als eine monoton steigende Ganzzahl oder
eine andere Repräsentation
repräsentiert
sein, die ein monotones Ordnen von Versionen erzeugt. Das Schema
für jedes
Objekt, das repliziert werden kann, umfasst ein Attribut, das „Quellversion" genannt wird, das
die Version des Objekts anzeigt, aus dem dieses eine repliziert
wurde.
-
Eine Übertragung
eines Anschauobjekts garantiert nicht, dass jeder Client dieses
Objekt empfängt.
Während
das Objekt rundgesendet wird, können
z. B. externe Faktoren, wie z. B. Sonnenflecken, Abschnitte der Übertragungssequenz
zerstören.
Anschauobjekte können
kontinuierlich erneut übertragen
werden, um diese Probleme zu überwinden,
was bedeutet, dass das gleiche Objekt mehrere Male für eine Replizierung
vorgelegt werden kann. Es ist unzweckmäßig, das Datenbankobjekt einfach
jedes Mal zu aktualisieren, wenn ein Objekt, das repliziert werden
soll, empfangen wird, da die Versionsanzahl inkrementiert wird,
obwohl tatsächlich
keine Änderung stattgefunden
hat. Zusätzlich
ist es erwünscht,
ein Initiieren einer Transaktion, um ein Objekt zu aktualisieren,
zu vermeiden, wenn dies nicht notwendig ist; während einer Transaktion werden
beträchtliche
Systemressourcen verbraucht.
-
Um
dieses Problem zu lösen,
werden zwei Ansätze
kombiniert. Erstens weisen die meisten Objekte ein Basisattribut
auf, das „Ablauf" genannt wird. Dieses
ist ein Datum und eine Zeit, über
die hinaus das Objekt nicht länger
gültig
ist und verworfen werden sollte. Wenn ein neues Objekt empfangen
wird, wird die Ablaufzeit überprüft und das
Objekt verworfen, wenn dieselbe abgelaufen ist. Ein Ablauf handhabt
Objekte, deren Übertragung
auf irgendeine Weise verzögert
ist, derselbe handhabt aber keine mehrfachen Empfänge des
gleichen nicht abgelaufenen Objekts.
-
Dieses
Problem wird durch das Quellversionsattribut gehandhabt. Wenn ein
Anschauobjekt übertragen
wird, wird dieses Attribut von dem gegenwärtigen Versionsattribut des
Quellobjekts kopiert. Wenn das Anschauobjekt empfangen wird, wird
die Quellversion des empfangenen Objekts mit der Quellversion des
gegenwärtigen
Objekts verglichen. Wenn das neue Objekt ein höheres Quellversionsattribut
aufweist, wird dasselbe über
das existierende Objekt kopiert, andernfalls wird dasselbe verworfen.
-
Es
wird angenommen, dass eine viel größere Anzahl von Anschauobjekten übertragen
wird als für irgendein
bestimmtes Clientsystem von Interesse sind. Zum Beispiel ist ein „Kanal"-Anschauobjekt, das die
Kanäle
in einem bestimmten Kabelsystem beschreibt, von keinem Interesse
für Clients,
die an anderen Kabelsystemen angeschlossen sind. Aufgrund des Mehraufwands
eines Aufnehmens und Hinzufügens
von neuen Objekten zu der Datenbank wäre es vorteilhaft, wenn empfangene
Objekte an anderen Attributen zusätzlich zu denjenigen, die oben
beschrieben sind, gefiltert würden.
Die Erfindung erzielt dies durch ein Verwenden eines Filterungsprozesses basierend
auf einem Objekttyp und Attributwerten. Bei einer Implementierung
basiert dieser Filterungsprozess auf einem Ablaufen eines ausführbaren
Codes irgendeiner Art, möglicherweise
als einer Sequenz von Befehlen, der mit einer spezifischen Kenntnis
verschiedenartiger Objekttypen, und wie dieselben gefiltert werden
sollten, geschrieben worden ist.
-
Bei
einem bevorzugten Ausführungsbeispiel der
Erfindung ist für
jeden Objekttyp ein „Filter"-Objekt definiert,
das anzeigt, welche Attribute erforderlich sind, nicht vorhanden
sein sollten, oder Bereiche von Werten für Attribute, die dasselbe für eine Hinzufügung zu
der Datenbank annehmbar machen. Ein Fachmann wird ohne weiteres
erkennen, dass dieses Filterobjekt einen ausführbaren Code in irgendeiner Form
enthalten kann, vielleicht als eine Sequenz von ausführbaren
Befehlen. Diese Befehle würden
Attribute und Attributswerte eines Objekts, das gefiltert wird, überprüfen und
vergleichen, was in einer Anzeige resultieren würde, ob das Objekt der Gegenstand einer
weiteren Verarbeitung sein sollte.
-
Anschauobjekte
sind selten von anderen Objekten unabhängig. Zum Beispiel ist ein „Vorführung"-Objekt (das eine
spezifische Zeit auf einem spezifischen Kanal beschreibt) abhängig von
einem „Programm"-Objekt (das ein
spezifisches TV-Programm
beschreibt). Ein wichtiger Aspekt des Aufrechterhaltens einer Konsistenz
besteht darin, sicherzustellen, dass alle abhängigen Objekte entweder bereits
in der Datenbank existieren oder als Teil einer einzigen Transaktion
hinzugefügt
werden, bevor versucht wird, ein neues Anschauobjekt hinzuzufügen. Dies
wird unter Verwendung eines Basisattributs des neuen Anschauobjekts
erzielt, das „Abhängigkeit"-Attribut genannt,
das die Objekt-IDs und Quellversionen von Objekten, von denen das
neue Objekt abhängt,
einfach auflistet. Natürlich
müssen neue
Versionen eines Objekts kompatibel sein, in dem Sinne, dass das
Schema, das neue Versionen definiert, das gleiche ist oder einen
strikten Übersatz der
Attribute des ursprünglichen
Schemas aufweist.
-
Wenn
ein neues Anschauobjekt empfangen wird, wird die Datenbank zuerst überprüft, um zu
sehen, ob alle Abhängigkeiten
dieses Objekt vorhanden sind; wenn ja, wird das Objekt zu der Datenbank hinzugefügt. Andernfalls
wird das neue Objekt „gestuft", wobei dasselbe
in einem Haltebereich gespeichert wird, bis alle abhängigen Objekte
ebenfalls gestuft sind. Damit ein neuer Satz von Anschauobjekten zu
der Datenbank hinzugefügt
wird, muss der Abhängigkeitsgraph
zwischen Objekten in dem Stufungsbereich und Objekten, die bereits
in der Datenbank existieren, natürlich
geschlossen sein, basierend sowohl auf der Objekt-ID als auch der
Quellversion. Sobald eine Schließung erreicht ist, was bedeutet,
dass alle abhängigen
Objekte vorhanden sind, wird das neue Objekt(e) zu der Datenbank
in einer einzigen atomaren Transaktion hinzugefügt.
-
Benennen und Finden von Fernsehanschauobjekten
-
Verzeichnisobjekte
sind vorhergehend beschrieben worden. Unter Bezugnahme auf 4 wird
die Sammlung von Verzeichnisobjekten und der gerichtete Graph, der
durch ein Beginnen an dem Wurzelpfad 400 und ein Aufzählen aller
möglichen Pfade
zu Anschauobjekten gebildet wird, ein „Namensraum" genannt. Damit ein
Objekt gefunden wird, ohne eine spezifische Objekt-ID zu kennen, müssen ein
oder mehrere Pfade in diesem Namensraum auf dasselbe verweisen.
Zum Beispiel hat eine Anwendungssoftware wenig Interesse an Objekt-IDs, stattdessen
würde die
Software gerne durch Pfade auf Objekte verweisen, z. B. „/tvplan/heute". Bei diesem Beispiel
kann sich das tatsächliche
Objekt, auf das verwiesen wird, jeden Tag ändern, ohne dass Änderungen
in irgendeinem anderen Teil des Systems erfordert werden.
-
Eine
Weise, in der ein Pfad zu einem Objekt eingerichtet werden kann,
ist durch ein Spezifizieren eines „Pfadname"-Basisattributs
an dem Objekt. Das Objekt wird zu der Datenbank hinzugefügt, und
Verzeichnisobjekte, die die Komponenten des Pfades beschreiben,
werden erzeugt oder aktualisiert, um das Objekt hinzuzufügen. Ein
derartiges Benennen wird typischerweise lediglich für eine Fehlerbereinigung
der Replizierungsmechanismen verwendet. Von einem Setzen von expliziten
Pfaden wird abgeraten, da die Abschnitte der zentralen Datenbank,
die in jedem Clientsystem repliziert sind, unterschiedlich sind,
was zu großen
Schwierigkeiten bei einem Verwalten von Pfadnamen unter allen Replikas
der Datenbank führt.
-
Ein
bevorzugtes Verfahren zum Hinzufügen eines
Objekts zu dem Datenbank-Namensraum wird „Indexieren" genannt. Bei einem
bevorzugten Ausführungsbeispiel
der Erfindung ist ein „Indexierer"-Objekt für jeden
Objekttyp definiert, das anzeigt, welche Attribute verwendet werden
sollen, wenn derselbe in den Datenbank-Namensraum indexiert wird. Ein
Fachmann wird ohne weiteres erkennen, dass dieses Indexiererobjekt
einen ausführbaren
Code in irgendeiner Form enthalten kann, möglicherweise als eine Sequenz
von ausführbaren
Befehlen. Diese Befehle würden
Attribute und Attributswerte eines Objekts, das indexiert wird, überprüfen und
vergleichen, was in einer Anzeige resultieren würde, wo sich das Objekt in
dem Namensraum befinden soll.
-
Basierend
auf dem Objekttyp überprüft der Indexierer
einen spezifischen Satz von Attributen, die an dem Objekt angebracht
sind. Wenn derartige Attribute entdeckt werden, fügt der Indexierer
basierend auf dem Wert des Attributs automatisch einen Namen für das Objekt
in dem hierarchischen Namensraum hinzu, der durch den Graph von
Verzeichnissen in der Datenbank repräsentiert wird. Sich erneut
auf 4 beziehend kann ein Programmobjekt sowohl ein „Schauspieler"-Attribut mit einem
Wert „John Wayne" als auch ein „Regisseur"-Attribut mit einem Wert „John Ford" 401 aufwei sen.
Das Wurzelverzeichnis könnte
zwei Unterverzeichnisse anzeigen, „Nebendarsteller" 402 und „zweiter
Regisseur" 403. Der
Indexierer würde
dann die Pfade/Nebendarsteller/John Wayne" und „/zweiter Regisseur/John Ford" zu der Datenbank
hinzufügen,
die beide auf das gleiche Objekt 401 verweisen.
-
Für jedes
Objekt wird ein abgeleitetes Attribut aufrechterhalten, das Verzeichnisobjekte
auflistet, die auf dieses Objekt 404 verweisen. Wenn der Indexierer
Pfade zu dem Namensraum für
dieses Objekt hinzufügt,
fügt derselbe
die Endverzeichnis-ID in dem Pfad zu dieser Liste hinzu. Dies stellt
eine Schließung
des Objektgraphen sicher – sobald
das Objekt gefunden worden ist, sind alle Verweise auf dieses Objekt
in der Datenbank ebenfalls gefunden, unabhängig davon, ob dieselben Pfade
oder Abhängigkeiten
sind.
-
Dieses
einzigartige und neuartige Verfahren zum Hinzufügen von Objekten zu der Datenbank
hat gegenüber
Standardansätzen
erhebliche Vorteile. Der Indexierer sortiert das Objekt in die Datenbank, wenn
dasselbe hinzugefügt
wird. Somit ist die Suche nach dem Objekt, das einem bestimmten
Pfad zugeordnet ist, eine Sequenz von Auswahlen aus geordneten Listen,
was durch einen Fachmann effizient implementiert werden kann.
-
Löschen von Objekten aus der
Datenbank
-
Während die
Regeln für
ein Hinzufügen
von Objekten zu der Datenbank wichtig sind, sind die Regeln für ein Entfernen
von Objekten aus der Datenbank bei einem Aufrechterhalten der Konsistenz
und Genauigkeit ebenfalls wichtig. Wenn es z. B. keine robusten
Regeln für
ein Entfernen von Objekten gäbe,
könnte
die Datenbank über
die Zeit unbegrenzt wachsen, wenn sich überflüssige Objekte akkumulieren.
-
Die
Kardinalregel für
ein Löschen
von Objekten aus der Datenbank basiert auf einer Verweiszählung; ein
Objekt, dessen Verweiszählwert
auf null fällt,
wird summarisch gelöscht.
Zum Beispiel bedeutet dies, dass auf ein Objekt entweder durch ein
Verzeichnis oder ein anderes Objekt in der Datenbank verwiesen werden
muss, um in der Datenbank fortzubestehen. Diese Regel wird auf alle
Objekte in dem geschlossenen Abhängigkeitsgraph
basierend auf dem Objekt, das gelöscht wird, angewendet. Wenn ein
Objekt, das auf andere Objekte verweist (wie z. B. ein Verzeichnis)
gelöscht
wird, dann wird der Verweiszählwert
an allen Objekten, auf die verwiesen wird, somit dekrementiert,
und diese Objekte werden ähnlich
auf einem Nullzählwert
gelöscht,
und so fort.
-
Es
gibt auch einen automatischen Prozess, der Objekte aus der Datenbank
löscht,
der der „Mäher" bzw. „Reaper" genannt wird. Der
Mäher überprüft periodisch
alle Objekte in der Datenbank und überprüft ferner, abhängig von
dem Objekttyp, verschiedene Attribute und Attributswerte, um zu
entscheiden, ob das Objekt in der Datenbank gehalten werden sollte.
Zum Beispiel kann das Ablaufsattribut anzeigen, dass das Objekt
nicht mehr gültig
ist, und der Mäher
löscht
das Objekt.
-
Bei
dem bevorzugten Ausführungsbeispiel kann
der Mäher
unter Verwendung eines Verfahrens ähnlich (oder vielleicht identisch
zu) den oben beschriebenen Filterungs- und Indexierungsverfahren stattdessen
auf ein Mäher-Objekt
zugreifen, das dem Objekttyp des gegenwärtigen Objekts zugeordnet ist, der
einen ausführbaren
Code verschiedener Arten enthalten kann, vielleicht eine Sequenz
von ausführbaren
Befehlen. Dieser Code überprüft die Attribute und
Attributswerte des gegenwärtigen
Objekts und bestimmt, ob das Objekt gelöscht werden sollte.
-
Der
Mehraufwand eines individuellen Löschens eines jeden Objekts,
für das
der Verweiszählwert
auf null dekrementiert worden ist, kann ziemlich hoch sein, da jede
derartige Löschung
in einer Transaktion mit der Datenbank resultiert. Es wäre vorteilhaft,
den Einfluss von Mähobjekten
auf die Leistungsfähigkeit
einzuschränken,
derart, dass Vordergrundoperationen mit einer maximalen Geschwindigkeit
fortschreiten. Bei einem bevorzugten Ausführungsbeispiel wird dies unter
Verwendung einer Technik erzielt, die auf herkömmlichen Abfallsammelverfahren basiert.
-
Z.
B. führt
der Mäher
anstatt eines Löschens eines
Objekts, dessen Verweiszählwert
auf null dekrementiert worden ist, keine andere Handlung durch.
Eine Hintergrundaufgabe, die der Abfallsammler genannt wird, überprüft periodisch
jedes Objekt in der Datenbank. Wenn das Objekt einen Verweiszählwert von
null aufweist, wird dasselbe zu einer Liste von Objekten hinzugefügt, die
gelöscht werden
sollen. Bei einem Ausführungsbeispiel
würde der
Abfallsammler, sobald derselbe die gesamte Datenbank überprüft hat,
alle derartigen Objekte in einer einzigen Transaktion löschen. Ein
Fachmann wird erkennen, dass dieses Verfahren auch in einem erheblichen
Leistungsfähigkeitsnachteil
resultieren kann, da andere Zugriffe auf die Datenbank verzögert werden
können,
während
die Objekte gelöscht
werden. Wenn alle Objekte ordnungsgemäß gelöscht werden sollen, müssen zusätzlich Änderungen
der Datenbank gegebenenfalls verzögert werden, während der Abfallsammler
aktiv ist, was in einer noch schlechteren Leistungsfähigkeit
resultiert.
-
Bei
einem bevorzugten Ausführungsbeispiel überprüft der Abfallsammler
die Datenbank in einer Reihe von Durchgängen. Sobald eine spezifische Anzahl
von Objekten gesammelt worden ist, werden dieselben in einer einzigen
Transaktion gelöscht.
Der Prozess setzt sich fort, bis alle Objekte überprüft worden sind. Diese Technik
garantiert nicht, dass alle Abfallobjekte während des Überprüfungsprozesses gesammelt werden,
da parallele Aktivitäten
vorhergehend überprüfte Objekte
freigeben können.
Diese Objekte werden jedoch das nächste Mal gefunden, wenn der
Abfallsammler abläuft.
Die Anzahl von Objekten, die in jedem Durchgang gelöscht werden,
ist einstellbar, um eine annehmbare Leistungsfähigkeit für andere Datenbankaktivitäten zu erreichen.
-
Operationen an der verteilten
Fernsehanschauobjektdatenbank
-
Überlegungen zu einem Aufrechterhalten
der verteilten Anschauobjektdatenbank
-
Die
Replizierung von Fernsehanschauobjekten unter den Instanzen der
verteilten Datenbank erfordert zwangsläufig die Übertragung von Objekten über unzuverlässige und
sichere Verteilungskanäle.
-
Wenn
die Objekte z. B. über
einen Rundsendemechanismus übertragen
werden, wie z. B. in einer Funk- oder Fernsehübertragung, kann es keine Sicherstellung
geben, dass die Daten genau oder vollständig übertragen werden. Wetter, wie
z. B. Regenstürme,
kann Ausfälle
bei der Übertragung
bewirken. Andere Quellen einer Störbeeinflussung können andere
Rundsendesignale, eine schwere Ausrüstung, Haushaltsgeräte, usw.
sein.
-
Ein
Fachmann wird ohne weiteres erkennen, dass es Standardtechniken
zum Verwalten der Übertragung
von Daten über
unzuverlässige
Kanäle
gibt, die für
eine Übertragung
verwendet werden können, einschließlich von
wiederholten Übertragungen,
Fehlerkorrekturcodes und anderen, von denen eine beliebige oder
alle in irgendeinem bestimmten Fall verwendet werden können.
-
Zur
Effizienz werden Objekte, die repliziert werden sollen, zusammen
zu Verteilungspaketen gesammelt, die hierin „Stücke" genannt werden. Ein Stück ist ein
Teilsatz der Fernsehanschauobjektdatenbank, der für Clients
in einer spezifischen Domäne,
wie z. B. einer geographischen Region oder unter der Stellfläche eines
Satellitensenders, relevant ist.
-
Die
Sicherheit dieser Stücke
ist ziemlich wichtig. Stücke
werden verwendet, um Objekte zu der Datenbank hinzuzufügen, die
verwendet werden, um Benutzern der Datenbank wertvolle Dienste bereitzustellen
sowie Informationen zu speichern, die als privat oder geheim betrachtet
werden können. Aufgrund
der rundsendeorientierten Natur einer Stückübertragung können Stücke ohne
weiteres durch Dritte kopiert werden, wenn dieselben übertragen
werden. Eine praktische Lösung
für diese
Probleme ist es, das Stück
während
einer Übertragung zu
verschlüsseln.
Ein idealer Referenztext zu den in der Erfindung eingesetzten Techniken
ist „Applied Cryptography:
Protocols, Algorithms, and Source Code in C" von Bruce Schneier, John Wiley and Sons,
1995.
-
Bei
einem bevorzugten Ausführungsbeispiel der
Erfindung wird ein sicherer, verschlüsselter Kanal unter Verwendung
von Techniken eingerichtet, die ähnlich
denjenigen sind, die in dem US-Patent Seriennr. 4,405,829 beschrieben
sind, oft als eine Asymmetrischer-Schlüssel-Verschlüsselung
oder manchmal als eine Öffentlicher/Privater-Schlüssel-Paar-Verschlüsselung
beschrieben. Ein Praktiker auf dem Fachgebiet wird erkennen, dass
Protokolle, die auf einer Asymmetrischer-Schlüssel-Verschlüsselung
basieren, als eine zuverlässige
und effiziente Grundlage zur Authentifizierung von Clientgeräten und
sicherer Verteilung von Informationen dienen. Im Allgemeinen wird
eine Authentifizierung unter Verwendung eines Austausches von vorzeichenbehafteten
Nachrichten zwischen dem Client und den zentralen Systemen bereitgestellt.
Eine sichere Verteilung wird durch ein Verschlüsseln aller Kommunikationen unter
Verwendung eines kurzlebigen symmetrischen Schlüssels bereitgestellt, der während einer
Authentifizierungsphase gesendet wird.
-
Eine
erfolgreiche Sicherheit erfordert, dass ein Sender und ein Empfänger sich
im Vorfeld auf das Asymmetrischer- Schlüssel-Paar
einigen, das für eine
Verschlüsselung
verwendet werden soll. Eine derartige Schlüsselverteilung ist das schwächste Glied
in jedem kryptographischen System zum Schützen von elektronischen Daten.
Die Veröffentlichung
WO 01/06370 A1 mit
dem Titel „Seif-Test
Electronic Assembly and Test System", die ebenfalls im Eigentum des Anmelders
steht, beschreibt einen Mechanismus, durch den das Clientgerät das Asymmetrischer-Schlüssel-Paar
automatisch als den Endschritt in dem Herstellungsprozess erzeugt.
Der so erzeugte private Schlüssel
wird in einem sicheren Mikroprozessor gespeichert, der in dem Clientgerät eingebettet
ist, derart, dass der Schlüssel
niemals externen Geräten
vorgelegt wird. Der so erzeugte öffentliche
Schlüssel
wird an ein lokales Herstellungssystem übertragen, das den Schlüssel zusammen
mit der Clientseriennummer in einer sicheren Datenbank aufzeichnet.
Diese Datenbank wird später
sicher an das Zentralverteilungssystem übertragen, wo dieselbe verwendet
wird, um sichere Kommunikationen mit dem Client durchzuführen.
-
Diese
einzigartige und neuartige Anwendung einer Schlüsselerzeugung löst das Problem
einer Schlüsselverteilung,
da der private Schlüssel
niemals externen Komponenten in dem Client vorgelegt wird, wo derselbe
unter Verwendung von speziellen Werkzeugen, wie z. B. eines logischen
Analysierers, festgestellt werden könnte. Stattdessen kann derselbe lediglich
in dem Sicherheitsmikroprozessor selbst verwendet werden, um Nachrichten
zu entschlüsseln,
die ursprünglich
mit dem öffentlichen
Schlüssel verschlüsselt wurden,
wobei die Ergebnisse dessen an externe Komponenten bereitgestellt
werden.
-
Der
Rest dieser Erörterung
geht davon aus, dass alle Kommunikationen zwischen Client- und Zentralsystemen
wie oben beschrieben authentifiziert und verschlüsselt sind.
-
Übertragen
von Anschauobjekten an die Clientsysteme
-
Sich
erneut auf 1 beziehend bilden die folgenden
Schritte bei einem bevorzugten Ausführungsbeispiel der Erfindung
eine „Übertragung" von Fernsehanschauobjekten
aus der zentralen Datenbank unter Verwendung von Stücken:
- 1. Es können
viele Mechanismen zum Übertragen von
Stücken
an die Grundgesamtheit von Clientanschaugeräten vorhanden sein. Zum Beispiel können die
Stücke
direkt über
ein Telefonmodem oder Kabelmodem 109 heruntergeladen werden, dieselben
können
in Leitungen der Vertikalaustastlücke (VBI; VBI = Vertical Blanking
Interval) einer Standardfernsehrundsendung 108 moduliert oder
zu einem digitalen Fernsehmultiplexsignal als ein privater Datenkanal
hinzugefügt
werden. Ein Fachmann wird ohne weiteres erkennen, dass irgendein
Mechanismus, der digitale Informationen übertragen kann, verwendet werden
kann, um Stücke
der Fernsehanschauobjektdatenbank zu übertragen.
Der erste Schritt
bei einem Vorbereiten von Fernsehanschauobjekten für eine Übertragung
ist ein Erkennen des Übertragungsmechanismus,
der für
diesen bestimmten Fall verwendet werden soll, und ein Erzeugen eines
Stückes
eines Teilsatzes der Datenbank, der für diesen Mechanismus individuell
hergerichtet wird. Zum Beispiel kann die Datenbank Fernsehanschauobjekte
enthalten, die sich auf alle Programme in dem Land beziehen. Wenn
jedoch Fernsehanschauobjekte unter Verwendung einer VBI-Modulation
auf einem lokalen Fernsehsignal gesendet werden sollen, sollten
lediglich diejenigen Fernsehanschauobjekte, die sich auf Programme
beziehen, die in der Stellfläche
der Fernsehrundsendung anschaubar sind, die verwendet wird, um dieselben
zu tragen, in dem relevanten Stück
enthalten sein. Wenn einige der Fernsehanschauobjekte Werbematerial enthalten,
das auf eine bestimmte geographische Region bezogen ist, sollten
diese Objekte alternativ nicht an andere geographische Regionen übertragen
werden.
Bei einem bevorzugten Ausführungsbeispiel der Erfindung
sind die Geschwindigkeit und Periodizität eines Durchlaufens der Datenbank
und eines Erzeugens von Stücken
für eine Übertragung
in einer beliebigen Weise einstellbar, um zu ermöglichen, dass nützliche
Kosten/Leistungsfähigkeit-Kompromisse
vorgenommen werden. Zum Beispiel kann es notwendig sein, Stücke für bestimmte Übertragungsverfahren
lediglich jeden zweiten Tag zu erzeugen, oder jede Stunde.
Der
endgültige
Schritt bei einem Vorbereiten eines jeden Stückes ist es, das Stück unter
Verwendung eines kurzlebigen symmetrischen Schlüssels zu verschlüsseln. Lediglich
Clientgeräte,
die unter Verwendung von sicheren Protokollen authentifiziert worden
sind, weisen eine Kopie dieses symmetrischen Schlüssels auf,
was dieselben befähigt,
das Stück
zu entschlüsseln
und auf die Fernsehanschauobjekte in demselben zuzugreifen.
- 2. Sobald ein Stück
vollständig
ist, wird dasselbe in den Punkt kopiert, an dem. der Übertragungsmechanismus
die Daten 110 nehmen und senden kann. Für Telefonverbindungen wird
das Stück
auf einem Telefonie-Server 111 platziert, der die Daten
an jeden Client liefert, wenn derselbe aufruft. Wenn eine Fernsehrundsendung
verwendet wird, wird das Stück
auf eine Ausrüstung
kopiert, die gemeinsam mit dem Stationsfernsehsender resident ist,
von wo aus dasselbe auf das Signal aufmoduliert wird. In diesen
und ähnlichen
rundsendeorientierten Fällen
wird das Stück „karusselliert", d. h., die Daten,
die das Stück
beschreiben, werden kontinuierlich wiederholt, bis ein neues Stück für eine Übertragung
bereitgestellt wird.
Diese repetitive Rundsendung von Stücken ist
erforderlich, da es keine Sicherheit geben kann, dass das Signal,
das die Daten trägt,
zuverlässig an
jedem Client ankommt. Das Clientgerät kann ausgeschaltet sein,
oder es kann eine Störbeeinflussung
mit einem Empfang des Signals vorliegen. Um einen hohen Grad an
Wahrscheinlichkeit zu erreichen, dass die übertragenen Stücke ordnungsgemäß an allen
Clientgeräten
empfangen werden, werden dieselben kontinuierlich neu rundgesendet,
bis aktualisierte Stücke
für eine Übertragung
verfügbar
sind.
Ein bevorzugtes Ausführungsbeispiel
der Erfindung verwendet Rundsendemechanismen wie z. B. ein Fernsehsignal,
um das Stück
zu übertragen.
Jedoch ist es erwünscht,
ein Herunterladen über
einen verbindungsbasierten Mechanismus, wie z. B. ein Modem oder
eine Internetverbindung, vorzusehen. Eine Verwendung eines verbindungsbasierten
Mechanismus resultiert normalerweise in zeitbasierten Nutzungsgebühren, was
es erwünscht
macht, die Zeit zu minimieren, die für ein Übertragen des Stückes aufgebracht wird.
Dies
wird unter Verwendung eines Zweischrittprozesses erzielt. Wenn die
Verbindung eingerichtet ist, sendet das Clientsystem einen Bestand
von vorhergehend empfangenen Stücken
an die Telefonie-Server 111. Der Server vergleicht diesen Bestand
mit der Liste von Stücken,
die durch diesen Client hätten
verarbeitet werden sollen. Stücke,
die nicht verarbeitet wurden, werden an das Clientsystem übertragen.
- 3. Das Stück
wird durch ein Aufbrechen des verschlüsselten Stückes in eine Abfolge von kurzzahligen
Datenpaketen übertragen.
Diese Pakete werden durch Clientsysteme aufgenommen und in einem
Stufungsbereich gehalten, bis alle Pakete in der Sequenz vorliegen.
Die Pakete werden wieder zu dem Stück zusammengesetzt, das dann
entschlüsselt
wird. Die Fernsehanschauobjekte in dem Stück werden dann zur Anwendbarkeit
gefiltert, möglicherweise
zu der lokalen Fernsehanschauobjektdatenbank hinzugefügt. Dieser Prozess
repliziert einen Abschnitt der zentralen Datenbank von Fernsehanschauobjekten
zuverlässig
in den Client.
Die Erfindung verfolgt die Zeit nach, zu der
Datenpakete empfangen werden. Datenpakete, die älter als eine gewählte Zeitdauer
sind, werden auf einer periodischen Basis aus dem Stufungsbereich abgeführt; dies
vermeidet ein Verbrauchen von Raum für eine unbegrenzte Dauer, während darauf
gewartet wird, dass alle Teile eines Stückes übertragen werden.
Insbesondere
wenn die Objekte über
eih Rundsendungsmedium übertragen
werden, können Fehler
verschiedener Arten bei den übertragenen Daten
auftreten. Jedes Datenpaket wird mit einem Fehlererfassungscode
gestempelt (z. B. einem Paritätsfeld
oder einem CRC-Code) (CRC = cyclic redundancy check = zyklische
Redundanzprüfung).
Wenn ein Fehler erfasst wird, wird das Datenpaket einfach verworfen.
Das Rundsendekarussell überträgt das Datenpaket
schließlich
erneut, das wahrscheinlich ordnungsgemäß empfangen wird. Somit können Stücke mit
einer beliebigen Größe zuverlässig gesendet
werden; dies wird auf Kosten eines Stufens von empfangenen Abschnitten
des Objekts auf dem Client, bis alle Abschnitte ordnungsgemäß empfangen
sind, erreicht.
- 4. Es können
eines oder mehrere „spezielle" übertragene Stücke vorhanden
sein, die dienstbezogene Daten an das Clientsystem kommunizieren, insbesondere
Dienstauthorisierungsinformationen. Es ist wichtig, dass der Dienstanbieter
dazu fähig
ist, den Zugriff des Clientsystems auf Premium-Dienste zu steuern,
wenn der Zuschauer seine Rechnung nicht bezahlt hat, oder aus anderen Betriebsgründen.
Ein
bestimmter Typ eines speziellen Stückes enthält ein „Authorisierung"-Objekt. Authorisierungsobjekte
werden allgemein unter Verwendung einer Asymmetri scher-Schlüssel-Verschlüsselung basierend
auf dem Öffentlicher/Privater-Schlüssel-Paar,
das einem spezifischen Client zugeordnet ist, verschlüsselt. Wenn
das Stück
durch den Sicherheitsmikroprozessor unter Verwendung des eingebetteten
privaten Schlüssels
erfolgreich entschlüsselt
werden kann, enthält
das Stück
ein Objekt, das die zulässige
Zeitverzögerung,
bevor ein anderes Autorisierungsobjekt empfangen wird, anzeigt,
sowie einen oder mehrere symmetrische Schlüssel, die für eine kurze Zeitdauer gültig sind.
Der Verzögerungswert
wird verwendet, um einen Zeitstempel in der Datenbank zurückzusetzen,
der anzeigt, wann das Clientsystem aufhören wird, Dienste bereitzustellen.
Die symmetrischen Schlüssel
werden in der lokalen Fernsehanschauobjektdatenbank gespeichert,
um bei einem Entschlüsseln
von neuen Stücken,
die empfangen werden können,
verwendet zu werden.
Wenn der Client bis zu der Zeit, die in
der Datenbank eingestellt ist, kein ordnungsgemäßes Authentifizierungsobjekt
empfangen hat, wird derselbe mit einer Verweigerung der meisten
Dienste für den
Zuschauer beginnen (wie es durch den Dienstanbieter spezifiziert
ist). In einem Authentifizierungsobjekt sind ebenfalls ein oder
mehrere Herunterladeschlüssel
mit einer begrenzten Lebenszeit enthalten, die benötigt werden,
um die Stücke
zu entschlüsseln,
die übertragen
werden. Wenn ein Clientsystem nicht fähig ist, sich selbst zu authentifizieren,
ist dasselbe natürlich
nicht in der Lage, Objekte zu entschlüsseln.
Jedes Autorisierungsstück wird
individuell erzeugt und übertragen.
Wenn für
die Stücke
eine Rundsendeübertragung
verwendet wird, werden alle relevanten Autorisierungen identisch
mit allen anderen Stücken
behandelt und zusammen mit allen anderen Daten karusselliert. Wenn
eine direkte Übertragung
verwendet wird, wie z. B. über
eine Telefonverbindung, wird lediglich das Authentifizierungsstück für diesen
Client übertragen.
- 5. Sobald das Clientgerät
ein vollständiges
Datenbankstück
empfangen hat, verwendet dasselbe die vorher beschriebenen Verfahren,
um das neue, in demselben enthaltene Objekt zu der Datenbank hinzuzufügen.
-
Sammeln von Informationen
aus den Clientsystemen
-
Sich
erneut auf 1 beziehend bilden die folgenden
Schritte bei einem bevorzugten Ausführungsbeispiel der Erfindung
eine „Sammlung" von Fernsehanschauobjekten
aus jeder Clientdatenbank:
- 1. Wenn der Zuschauer
die Fernsehkanäle
navigiert, die für
ihn verfügbar
sind, zeichnet das Clientsystem interessante Informationen auf,
wie z. B. den eingestellten Kanal, Zeit einer Einstellung, Verweildauer,
VCR-ähnliche
Handlungen (z. B. Pause, Zurückspulen)
und andere interessante Informationen. Diese Daten werden in einem
lokalen Fernsehanschauobjekt gespeichert.
Zusätzlich kann
der Zuschauer ein Interesse an Angeboten oder Werbungen anzeigen,
die verfügbar
gemacht werden, oder derselbe kann einen Wunsch anzeigen, einen
Artikel zu erwerben. Diese Informationen werden ebenfalls in einem
lokalen Fernsehanschauobjekt aufgezeichnet.
Zusätzlich kann
ein Betrieb des Clientgerätes
in wichtigen Daten resultieren, die in einem Fernsehanschauobjekt
aufgezeichnet werden sollten. Zum Beispiel können bei einem Lesen aus dem Festplattenlaufwerk
in dem Client Fehler auftreten, oder die Innentemperatur des Gerätes kann Betriebsparameter übersteigen.
Andere ähnliche Informationstypen
könnten
ein Versagen, ein Objekt ordnungsgemäß herunterzuladen, ein Knappwerden
an Raum für
verschiedenartige plattenbasierte Operationen oder ein schnelles
zyklisches Bereitstellen von Leistung sein.
- 2. Zu einer bestimmten Zeit, die unmittelbar oder auf einer
periodischen Basis sein kann, stellt das Clientsystem über eine
direkte Verbindung 104 (normalerweise über eine Telefon- und/oder
eine Internetverbindung) einen Kontakt mit der zentralen Seite her.
Das Clientgerät
sendet eine Byte-Sequenz, die sich selbst identifiziert, die mit dem
geheimen Schlüssel
desselben verschlüsselt ist.
Der Server holt das passende Fernsehanschauobjekt für das Clientgerät aus der
Datenbank und verwendet den Schlüssel,
der dort gespeichert ist, um die Byte-Sequenz zu entschlüsseln. Zur
gleichen Zeit sendet der Server eine Byte-Sequenz an den Client,
die in dem geheimen Schlüssel
desselben verschlüsselt
ist, wobei dem Client ein neuer Einmal-Verschlüsselungsschlüssel für die Sitzung
gegeben wird.
Um zu kommunizieren, müssen beide Seiten die Authentifizierungsnachricht
derselben erfolgreich entschlüsseln.
Dieser Zweiweg-Handshake ist wichtig, da derselbe sowohl dem Client
als auch dem Server versichert, dass der andere gültig ist. Eine
derartige Authentifizierung ist notwendig, um verschiedene Angriffe
zu vermeiden, die in dem Clientsystem auftreten könnten. Wenn
z. B. Kommunikationen nicht in einer derartigen Weise authentifiziert
würden,
könnte
ein bösartiger
Dritter eine „Alias"-Zentralseite mit
einer falschen Fernsehanschauobjektdatenbank erzeugen und einem
Clientsystem schlechte Informationen liefern, wobei ein nicht ordnungsgemäßer Betrieb bewirkt
würde.
Alle weiteren Kommunikationen werden unter Verwendung des Einmal-Sitzungsschlüssels verschlüsselt. Eine
ver schlüsselte Kommunikation
ist notwendig, da die Informationen über ein Netz laufen können, wie
z. B. das Internet, wo ein Datenverkehr für eine Einsichtnahme durch
eine jegliche Ausrüstung,
durch die derselbe läuft,
offen ist. Anschauobjekte, die gesammelt werden, enthalten Informationen,
die als privat betrachtet werden, sodass diese Informationen jederzeit
vollständig
geschützt
werden müssen.
Davon
ausgehend, dass die Authentifizierungsphase erfolgreich ist, behandeln
die zwei Parteien die Vollduplex-Telefonleitung als zwei Einweg-Rundsendekanäle. Neue
Stücke
werden an den Client geliefert und Anschaudaten, die gesammelt werden
sollen, zurückgesendet.
Die Verbindung ist beendet, wenn alle Daten geliefert sind.
Ein
Fachmann wird ohne weiteres erkennen, dass diese Verbindung über ein
Netz, wie z. B. das Internet, stattfinden kann, das Standard-TCP/IP-Protkolle
ablaufen lässt,
transparent zu aller anderen Software in dem System.
- 3. Hochgeladene Informationen werden durch den Server ähnlich behandelt;
es wird angenommen, dass derselbe Fernsehanschauobjekte repräsentiert,
die in die zentrale Datenbank repliziert werden sollen. Jedoch kann
es viele hochgeladene Anschauobjekte geben, da es viele Clients des
Dienstes geben kann. Hochgeladenen Objekten wird somit ein navigierbares
Attribut zugewiesen, das Informationen über die Quelle derselben enthält; das
Objekt wird dann eindeutig in den Datenbank-Namensraum indexiert, wenn dasselbe hinzugefügt wird.
Hochgeladene
Anschauobjekte werden nicht sofort zu der zentralen Datenbank hinzugefügt; stattdessen
werden dieselben für
eine spätere
Einfügung
in die Datenbank in eine Warteschlange gestellt. Dieser Schritt
ermög licht,
dass die Verarbeitung der Warteschlange unabhängig von dem Verbindungsmuster
von Clientgeräten
ist. Zum Beispiel können
viele Geräte
auf einmal eine Verbindung herstellen, wobei eine große Anzahl
von Objekten erzeugt wird. Wenn diese Objekte sofort zu der zentralen
Datenbank hinzugefügt
würden, würde die
Leistungsfähigkeit
aller Verbindungen leiden, und die Verbindungszeit würde sich
erhöhen.
Telefonanrufe werden nach Dauer abgerechnet, somit ist irgendein
System, bei dem eine Verbindungszeit abhängig von einer Belastung steigt, inakzeptabel.
Ein
anderer Vorteil dieser Trennung besteht darin, dass Maschinen- oder
Netzausfälle
ohne weiteres toleriert werden. Zusätzlich kann die Geschwindigkeit,
mit der Anschauobjekte verarbeitet und der zentralen Datenbank hinzugefügt werden, durch
den Dienstanbieter durch ein Variieren der Computersysteme und der
Konfigurationen derselben gesteuert werden, um Kosten- oder Leistungsfähigkeitsziele
zu erfüllen.
Noch
ein anderer Vorteil dieser Trennung besteht darin, dass dieselbe
einen Mechanismus zum Trennen von Daten, die gesammelt werden, um Dienstbetriebe
zu verbessern, und Daten, die einen individuellen Zuschauer identifizieren
könnten,
bereitstellt. Es ist wichtig, dass derartige Identifizierungsdaten
privat gehalten werden, sowohl aus rechtlichen Gründen als
auch, um das Vertrauen zu erhöhen,
das Individuen in den Dienst haben. Zum Beispiel kann das navigierbare
Attribut, das einem Anschauobjekt zugewiesen ist, das die Aufzeichnung
von Anschauwahlen eines Zuschauers enthält, lediglich den Zip-Code
des Zuschauers enthalten, was bedeutet, dass eine weitere Verarbeitung
dieser Objekte keinen Weg zurück
zu der individuellen Identität
aufbauen kann.
An dem Server werden periodische Aufgaben aufgerufen,
um diese Objekte aus der Datenbank zu pflücken und dieselben wie es zweckmäßig ist
zu entsorgen. Zum Beispiel werden Objekte, die ein Zuschauerverhalten
anzeigen, zu einem Gesamtzuschauerverhaltensmodell gesammelt, und
Informationen, die einen individuellen Zuschauer identifizieren
könnten,
verworfen. Objekte, die Betriebsinformationen enthalten, werden
an eine Analyseaufgabe weitergeleitet, was bewirken kann, dass ein
Kundendienstpersonal vor potentiellen Problemen gewarnt ist. Objekte,
die transaktionelle Informationen enthalten, werden zur Erfüllung an
Transaktions- oder
Handelssysteme weitergeleitet.
Eine beliebige dieser Aktivitäten kann
darin resultieren, dass neue Fernsehanschauobjekte zu der zentralen
Datenbank hinzugefügt
werden oder existierende Objekte aktualisiert werden. Diese Objekte
werden schließlich
an Clientgeräte übertragen.
Somit ist das Fernsehanschauverwaltungssystem eine Regelschleife,
wobei ein sich selbst erhaltendes Replizierte-Datenbank-System 105 erzeugt
wird, das eine beliebige Anzahl von Clientsystemen unterstützen kann.
-
Verarbeitung von Fernsehanschauobjekten
durch Clientsysteme
-
Fernsehanschauobjekte
können
die folgenden Typen von Informationen enthalten: Fernsehprogrammbeschreibungen
und Vorführungszeiten;
Kabel-, Satellit- oder Rundsendesignal-Urheberinformationen, wie z. B. Kanalnummerierung
und -identifizierung; Zuschauerbevorzugungsinformationen, wie z. B.
Schauspieler, Genre, Vorführungszeiten
usw.; Software, wie z. B. eine verstärkte Datenbanksoftware, Anwendungssoftware,
Betriebssystemssoftware usw.; statistische Modellierungsinformationen
wie z. B. Bevorzugungsvektoren, demographische Analyse usw.; und
jegliche andere beliebige Informationen, die als digitale Daten
repräsentiert
sein können.
-
Verfahren,
die auf Programmführerobjekte angewendet
werden Programmführerobjekte
enthalten alle Informationen, die für ein Ablaufen einer Software
in dem Clientsystem notwendig sind, um Programme von Interesse für den Benutzer
des Clientsystems einzustellen, zu empfangen, aufzuzeichnen und
anzuschauen, wobei unter allen verfügbaren Programmen und Kanälen wie
durch Objekte in der Datenbank beschrieben ausgewählt wird.
-
Diese
Programmführerinformationen
werden auf regelmäßig Basis
durch einen Dienstanbieter aktualisiert. Dies wird durch den Anbieter
gehandhabt, der in irgendeiner Weise erwirbt Programmführerinformationen,
z. B. von einem kommerziellen Zulieferer von derartigen Informationen
oder andere Quellen von Rundsendeplaninformationen. Diese Daten werden
dann unter Verwendung von gut verstandenen Softwaretechniken verarbeitet,
um die Informationen auf eine Sammlung von aufeinander bezogenen
Anschauobjekten zu reduzieren.
-
Sich
erneut auf 4 beziehend ist eine typische
Beziehung zwischen Programmführerobjekten
gezeigt. Ein Fernseh„Netzwerk"-Objekt 407 ist eine
beliebige Entität,
die eine Fernsehprogrammierung plant und rundsendet, unabhängig davon,
ob diese Rundsendung über
Luft, Kabel, Satellit oder ein anderes geeignetes Medium stattfindet.
Ein Fernseh„Programm"-Objekt 401 ist
eine Beschreibung eines beliebigen distinkten Segments eines Fernsehrundsendesignals
wie z. B. eines bestimmten Programms, einer kommerziellen Werbung,
einer Stationswerbung, einer Eröffnung,
eines Trailers oder irgendeines anderen begrenzten Abschnitts eines
Fernsehsignals. Ein „Vorführung"-Objekt 406 ist ein
Abschnitt des Rundsendeplans für
ein Netzwerk, auf dem ein Programm rundgesendet wird. Ein „Kanalabbildung"-Objekt bildet ein
Netzrundsendung auf einen bestimmten Rundsendekanal für das verwendete
Medium ab; z. B. würde
ein Kanalabbildungsobjekt für
einen Satellitenrundsendedienst Informationen über den Transponder und den
Datenstrom, der die Rundsendung enthält, umfassen. Unter Verwendung
der vorhergehend beschriebenen Verfahren werden diese Programmführerdaten
aus der zentralen Seite in die Clientsysteme repliziert, wobei eine Anwendungssoftware
in den Clientsystemen die Daten verwendet, um Fernsehschauen zu
verwalten.
-
Der
Dienstanbieter kann auch Sammlungsanschauobjekte bereitstellen,
die einen Satz von Programmführerobjekten
beschreiben, die in irgendeiner Weise aufeinander bezogen sind.
Zum Beispiel könnte
eine „Star-Trek"-Sammlung Verweise
auf alle Programmführerobjekte
enthalten, die diesem Markennamen zugeordnet sind. Natürlich kann
irgendein beliebiger Satz von Programmen in dieser Weise gesammelt
werden. Sammelobjekte ähneln
Verzeichnissen. Zum Beispiel könnte
die Star-Trek-Sammlung bei „/Schaukasten/Star
Trek" in dem hierarchischen
Namensraum gefunden werden. Sammelobjekte sind auch Programmführerobjekte
und können in
einer ähnlichen
Weise manipuliert werden, einschließlich eines Sammelns von Sammelobjekten und
so fort.
-
Das
Clientsystem kann die Sammlung von Programmobjekten weiter verfeinern.
In einem System, in dem eine Programmierung in eine innere Speicherung
aufgenommen werden kann, wird jedes aufgenommene Programm durch
ein neues Programmführerobjekt
repräsentiert,
das für
ein Anschauen, eine Sammlung usw. verfügbar wird. Explizite Zuschauerhandlungen
können
auch in einer Erzeugung von Programmführerobjekten resultieren. Zum
Beispiel kann der Zuschauer mehrere Programme auswählen und
eine Erzeugung eines neuen Sammlungsobjektes bewirken.
-
Diese
Beschreibung von Typen von Programmführerobjekten soll nicht ausschließlich sein; es
können
viele unter schiedliche Verwendungen und Weisen zum Erzeugen von
Programmführerobjekten vorhanden
sein, die hierin nicht beschrieben sind, die dennoch von den grundsätzlichen
Verfahren der Erfindung profitieren.
-
Programmführerobjekte
werden durch die Anwendungssoftware in fünf Weisen verwendet:
- 1. Bei dem einfachsten Fall kann der Zuschauer wünschen,
diese Objekte zu durchsuchen, um eine gegenwärtige oder bald verfügbare Programmierung
festzustellen. Die Anwendungssoftware bildet die Objektbeziehungen,
die durch die Datenbank beschrieben werden, zu irgendeiner Form
einer visuellen und hörbaren
Schnittstelle ab, die für
den Zuschauer praktisch und nützlich ist.
Der Zuschauer kann anzeigen, dass ein bestimmtes Programm von Interesse
ist, was in einer anwendungsspezifischen Handlung resultiert, wie
z. B. einem Aufzeichnen des Programms in einer Lokalspeicherung,
wenn dasselbe rundgesendet wird.
- 2. Eine Anwendungssoftware kann Programmführerobjekte auch direkt verarbeiten,
um Programme zu wählen,
die für
den Zuschauer von Interesse sein können. Dieser Prozess basiert
typischerweise auf einer Analyse einer vorhergehend angeschauten
Programmierung kombiniert mit statistischen Modellen, was in einer
Prioritätsordnung
aller verfügbaren
Programme resultiert. Die Programme mit höchster Priorität können in
einer anwendungsspezifischen Weise verarbeitet werden, wie z. B.
einer Aufzeichnung des Programms in einer Lokalspeicherung, wenn
dasselbe rundgesendet wird. Abschnitte der so entwickelten Prioritätsordnung
können
dem Zuschauer für
eine zusätzliche
Auswahl wie im Fall 1 vorgelegt werden.
Ein Fachmann wird ohne
weiteres erkennen, dass eine Menge an Stand der Technik vorhanden
ist, der sich auf Verfahren zum Auswählen einer Programmierung für einen
Zuschauer basierend auf einer vorhergehenden Anschaugeschichte und expliziten
Bevorzugungen konzentriert, z. B. das US-Patent Seriennr. 5,758,257.
Die in dieser Anmeldung beschriebenen Verfahren sind einzigartig
und neuartig gegenüber
diesen Techniken, da dieselben Prioritäten für die Aufnahme einer Programmierung
vorschlagen, nicht die Rundsendung oder Übertragung einer Programmierung, und
es keine Zeitbeschränkung
dafür gibt,
wann die Programmierung rundgesendet werden kann. Weitere Details
zu diesen Verfahren werden später
in der Beschreibung gegeben.
Im Allgemeinen haben explizite
Zuschauerwahlen einer Programmierung die höchste Priorität für eine Aufnahme,
gefolgt von einer Programmierung, die unter Verwendung der hierin
beschriebenen Bevorzugungstechniken gewählt wird.
- 3. Ein Clientsystem weist eine kleine Anzahl von Eingängen auf,
die Fernsehrundsendungen empfangen oder über ein Netzwerk, wie z. B.
ein Intranet oder das Internet, auf Webseiten zugreifen können. Ein
Planungsverfahren wird verwendet, um zu wählen, wie jeder Eingang eingestellt
wird und was mit dem resultierenden aufgenommenen Fernsehsignal
oder der Webseite gemacht wird.
Sich auf 6 beziehend
können
die Programme von Interesse für
den Zuschauer jederzeit oder auf einem beliebigen Kanal rundgesendet
werden, wie es durch die Programmführerobjekte beschrieben wird.
Zusätzlich
können
die Programme von Interesse Webseite-Universelle-Ressourcenlokalisatoren
(URL) über
ein Netz sein, wie z. B. ein Intranet oder das Internet. Die Kanalmetapher wird
verwendet, um auch die Stelle bzw. URL einer bestimmten Website
oder -seite zu beschreiben.
Zum Beispiel kann ein Zuschauer
durch ein Bezeichnen der Website-URL als einen Kanal in eine Website „einschalten". Immer, wenn dieser
Kanal ausgewählt
wird, wird die Website angezeigt. Eine Webseite kann auch als ein
Programm von Interesse bezeichnet werden, und es wird ein Schnappschuss
der Webseite genommen und zu einer vorbestimmten Zeit aufgezeichnet.
Der
Planer akzeptiert als Eingabe eine priorisierte Liste von Programmanschaubevorzugungen 603, möglicherweise
wie für
die Fälle
oben erzeugt. Das Planungsverfahren 601 vergleicht dann
diese Liste dann mit der Datenbank von Programmführerobjekten 604,
die anzeigen, wenn Programme von Interesse tatsächlich rundgesendet werden. Derselbe
erzeugt dann einen Zeitplan 607 gegen verfügbaren Speicherungsplatz 606,
der für
die expliziten oder abgeleiteten bevorzugten Programme des Zuschauers
optimal ist. Weitere Details zu diesen Verfahren werden später in dieser Beschreibung
gegeben.
- 4. Wenn ein aufgenommenes Programm angeschaut wird, wird das
passende Programmführerobjekt
verwendet, um zusätzliche
Informationen über
das Programm bereitzustellen, die auf der Anzeige unter Verwendung
irgendeiner geeigneten Technik überlagert
werden, bevorzugt einer Auf-Bildschirm-Anzeige (OSD; OSD = On Screen Display)
irgendeiner Form. Derartige Informationen können umfassen, sind aber nicht
beschränkt auf:
Programmname; Zeit, Kanal oder Netz einer ursprünglichen Rundsendung; Ablaufzeit;
Laufzeit oder andere Informationen.
- 5. Wenn eine Liveprogrammierung angeschaut wird, verwendet die
Anwendung die gegenwärtige Zeit,
den Kanal und die Kanalabbildung, um das passende Programmführerobjekt
zu finden. Informationen aus diesem Objekt werden unter Verwendung
irgendeiner geeigneten Technik wie oben beschrieben angezeigt. Die
Informationen können
automatisch angezeigt werden, wenn der Zuschauer Kanäle ändert, wenn
ein neues Programm beginnt, bei einer Wiederaufnahme des Programms
nach einer Werbepause, auf Anforderung durch den Zuschauer oder
basierend auf anderen Bedingungen.
- 6. Unter Verwendung von Techniken ähnlich denjenigen, die im Fall
2 beschrieben sind, kann eine Anwendungssoftware auch Werbematerial
aufnehmen, das für
den Zuschauer von Interesse sein kann. Diese Informationen können auf
Zuschaueranforderung vorgelegt werden, oder dieselben können automatisch
in das Ausgangsfernsehsignal an irgendeinem zweckmäßigen Punkt eingefügt werden.
Zum Beispiel könnte
eine Werbung in dem Rundsendeprogramm durch eine andere Werbung
ersetzt werden, die eine höhere Bevorzugungspriorität aufweist.
Unter Verwendung der Zeitverzugsvorrichtung, wie z. B. derjenigen,
die in der Veröffentlichung WO 00/07368 A1 mit
dem Titel „Multimedia
Time Warping System" beschrieben
ist, ist es möglich,
irgendein gespeichertes Programm an irgendeinem Punkt in das Ausgangsfernsehsignal
einzufügen.
Die Zeitverzugsvorrichtung ermöglicht,
dass das überlagerte
Programm verzögert
wird, während
das gespeicherte Programm eingefügt
wird, damit dies funktioniert.
-
Verfahren zum Erzeugen einer
Liste von bevorzugten Programmen
-
Zuschauerbevorzugungen
können
in einer Anzahl von Weisen erhalten werden. Der Zuschauer kann anfordern,
dass gewisse Programme aufgenommen werden, was in der höchstmöglichen
Priorität
für diese
Programme resultiert. Alternativ kann der Zuschauer Bevorzugungen
explizit unter Verwendung von Zubehör ausdrücken, das durch die Zuschauerschnittstelle
bereitgestellt wird, möglicherweise
als Antwort auf einen Werbespot für ein bestimmtes Programm oder
sogar während
des Anschauens eines Programms. Schließlich können Bevorzugungen aus Anschaumustern
gefolgert werden: gesehene Programme, angeschaute oder übersprungene
Werbungen usw.
-
Auf
jeden Fall müssen
derartige Bevorzugungen Fernsehanschauobjekten entsprechen, die in
der replizierten Datenbank gespeichert sind. Programmanschauobjekte
umfassten eine Menge an Informationen über jedes bestimmte Programm,
z. B.: Titel, Beschreibung, Regisseur, Produzent, Schauspieler,
Bewertung usw. Diese Elemente sind als Attribute gespeichert, die
an einem Programmobjekt angebracht sind.
-
Jedes
individuelle Attribut kann in der Erzeugung eines Bevorzugungsobjektes
resultieren. Derartige Objekte speichern die folgenden Informationen:
- 1. Den Typ des Bevorzugungsartikels, wie z.
B. eine Schauspieler- oder Regisseurbevorzugung;
- 2. Die Gewichtung der Bevorzugung, die durch den Zuschauer verliehen
wird, die durch ein mehrfaches Drücken auf einen Knopf oder andere
Mittel angezeigt werden könnte;
- 3. Die statistisch zugewiesene Signifikanz der Bevorzugung im
Verhältnis
zu anderen Bevorzugungen, z. B. ist eine Schauspielerbevorzugung
signifikanter als Regisseurbevorzugungen;
- 4. Den tatsächlichen
Wert des Bevorzugungsartikels, z. B. den Namen des Regisseurs.
-
Unter
Bezugnahme auf 5 sind Bevorzugungsobjekte in
der Datenbank als eine Hierarchie ähnlich derjenigen gespeichert.,
die für
Programmführerobjekte
beschrieben ist, jedoch wird diese Hierarchie inkremental aufgebaut,
wenn Bevorzugungen ausgedrückt
werden 500. Die so konstruierte Hierarchie basiert auf „direkten" Bevorzugungen, z.
B. denjenigen, die aus Zuschauerhandlungen oder gefolgerten Bevorzugungen
abgeleitet werden.
-
Eine ähnliche
Hierarchie wird basierend auf „indirekten" Bevorzugungen entwickelt,
die auf die gleichen Bevorzugungsobjekte 501 zeigen. Im
Allgemeinen werden indirekte Bevorzugungen erzeugt, wenn Bevorzugungen
für Sammlungsobjekte
erzeugt werden, und werden verwendet, um die direkten Bevorzugungen,
die durch die Sammlung von gesammelten Objekten impliziert werden,
weiter zu gewichten. Die Bevorzugungsobjekte, auf die durch die
Indirekte-Bevorzugung-Hierarchie
verwiesen wird, werden durch ein Aufzählen der verfügbaren Programmobjekte
erzeugt oder aktualisiert, die Teil des Sammlungsobjekts 502 sind,
und ein Erzeugen oder Aktualisieren von Bevorzugungsobjekten für jedes
so gefundene Attribut.
-
Die
Gewichtung einer bestimmten Bevorzugung 503 beginnt bei
Null, und dann wird basierend auf dem Grad einer ausgedrückten Bevorzugung (vielleicht
durch ein mehrfaches Drücken
eines Knopfes) ein Standardwert addiert, oder ein Standardwert wird
subtrahiert, wenn ein Desinteresse ausgedrückt worden ist. Wenn eine Bevorzugung
basierend auf einem Sammlungsanschauobjekt ausgedrückt wird,
werden alle Bevorzugungen, die durch alle Anschauobjekte erzeugt
werden, die dem gesammelten Objekt untergeordnet sind, ähnlich gewichtet.
Somit wird eine neue Gewichtung von relevanten Bevorzugungselementen
aus der vorhergehenden Gewichtung erzeugt. Dieser Prozess ist durch
den Grad an Bevorzugung eingeschränkt, der ausgedrückt werden
darf, wodurch alle Gewichtungen in einen eingeschränkten Bereich
fallen.
-
Bei
einem bevorzugten Ausführungsbeispiel der
Erfindung können
nicht-lineare Kombinationen für
eine Gewichtung eines Bevorzugungsartikels verwendet werden. Zum
Beispiel kann der Client unter Verwendung von statistischen Modellen,
die durch die zentrale Seite bereitgestellt werden, folgern, dass eine
stark gewichtete Bevorzugung für
drei Attribute in Konjunktion anzeigt, dass ein viertes Attribut
ebenfalls stark gewichtet werden sollte.
-
Die
Liste von bevorzugten Programmen wird wie folgt erzeugt:
- 1. Es wird eine Tabelle 504 konstruiert,
die jedes mögliche
Programmobjektattribut auflistet, und jegliche vorhandene Bevorzugungsobjekte
für dieses
Attribut sind in diesem Eintrag aufgelistet.
- 2. Wenn der Bevorzugungsartikel eine Zeichenkette ist, wie z.
B. ein Schauspielername, wird für diese
Zeichenkette eine 32-Bit-Digitalsignatur unter Verwendung eines
32-Bit-CRC-Algorithmus berechnet und mit dem Tabellenartikel und
nicht mit der Zeichenkette selbst gespeichert. Dies ermöglicht ein
viel schnelleres Abtasten der Tabelle, da Zeichenkettenvergleiche
vermieden werden, mit dem kleinen Risiko, dass zwei unterschiedliche
Zeichenketten die gleiche Digitalsignatur erzeugen.
- 3. Für
jedes Programmobjekt in der Datenbank und für jedes Attribut dieses Programms
wird das Attribut in der Tabelle nachgeschlagen. Falls vorhanden,
wird die Liste von Bevorzugungsobjekten für dieses Attribut nach einer Übereinstimmung mit
dem Attribut des gegenwärtigen
Programmobjektes überprüft. Wenn
eine Obereinstimmung eintritt, wird die Gewichtung, die diesem Bevorzugungsobjekt
zugeordnet ist, zu der Gewichtung hinzugefügt, die dem Programmobjekt
zugeordnet ist, um eine einzige Gewichtung für das Programm zu erzeugen.
- 4. Schließlich
werden die Programmobjekte basierend auf der Gesamtgewichtung für jedes
Programm in einer Rangfolge geordnet, was in einer Liste von meistbevorzugten
zu am wenigsten bevorzugten Programm resultiert.
-
Diese
endgültige
priorisierte Liste vorausgesetzt wird ein Aufzeichnungsplan unter
Verwendung der unten beschriebenen Verfahren erzeugt, was in einer
Sammlung von aufgezeichneten Programmen resultiert, die für den Zuschauer
am meisten von Interesse sind.
-
Verfahren, die auf die Planung einer Aufzeichnung gegen
verfügbaren
Speicherungsraum angewendet werden
-
Wie
es vorhergehend beschrieben worden ist, haben aufgezeichnete Programme
im Allgemeinen ein Ablaufdatum, nach dem das aufgezeichnete Programm
aus einer Client-Speicherung
entfernt wird. Der Zuschauer kann jederzeit anzeigen, dass ein Programm
länger
gespeichert werden sollte, was einen Ablauf um ein durch den Zuschauer
gewähltes Intervall
verzögert.
Die Erfindung betrachtet die verfügbare Speicherung zum Aufzeichnen
von Programmen als einen „Cache"; nicht angeschaute
Programme werden nach einer Zeit entfernt, basierend auf der Annahme,
dass dieselben nicht angesehen werden, wenn dieselben nicht bald
nach der Aufzeichnung angesehen werden. Angeschaute Programme werden
zu sofortigen Kandidaten für
eine Löschung, basierend
auf der Annahme, dass dieselben nicht länger interessant sind.
-
Mit
einer ordnungsgemäßen Planung
einer Aufzeichnung und einer Löschung
von alten Programmen ist es möglich,
einen kleineren Speicherungsbereich viel größer erscheinen zu lassen, da
es ein fortwährendes
Ausräumen
von alten Programmen und eine Hinzufügung von neuen Programmen gibt.
Wenn Ressourcen verfügbar
sind, können
Aufzeichnungen von Programmen zusätzlich basierend auf gefolgerten
Bevorzugungen des Zuschauers geplant werden; dieselben werden unscharfe
(„fuzzy") Aufzeichnungen
genannt. Dies resultiert in einem System, in dem der Programmspeicherungsbereich immer „voll" an Programmierungen
ist, die für
den Zuschauer von Interesse sind; es wird kein Programm entfernt,
bis ein anderes Programm an seiner Stelle aufgezeichnet wird oder
der Zuschauer dasselbe explizit löscht.
-
Zusätzlich kann
der Zuschauer ein Programm zum Aufzeichnen zu einer jeden Zeit auswählen, und
das Aufzeichnungsfenster kann mit anderen geplanten Aufzeichnungen
in Konflikt stehen, oder es kann gegebenenfalls nicht genügend Raum
erhältlich sein,
wenn das Programm aufgezeichnet werden muss. Die Erfindung umfasst
einzigartige und neuartige Verfahren zum Lösen derartiger Konflikte.
-
Konflikte
können
aus zwei Gründen
entstehen: Mangel an Speicherungsraum oder Mangel an Eingabequellen.
Das Fernsehanschausystem, das hierin beschrieben ist, umfasst eine
feste Anzahl von Eingabequellen zum Aufzeichnen eines Videos und ein
Speicherungsmedium, wie z. B. eine Magnetplatte, mit einer begrenzten
Kapazität
zum Speichern des aufgezeichneten Videos. Ein Aufzeichnen aller über irgendeine
signifikante Zeitdauer rundgesendeten Fernsehprogramme ist nicht
möglich.
Somit ist ein Lösen
der Konflikte, die aufgrund von Ressourcenbeschränkungen entstehen, der Schlüssel, um die
korrekten Programme zum Anschauen verfügbar zu haben.
-
Sich
erneut auf 6 beziehend unterhält die Erfindung
zwei Pläne,
den Raumplan 601 und den Eingabeplan 602. Der
Raumplan verfolgt alle gegenwärtig
aufgezeichneten Programme und diejenigen, die eingeplant worden
sind, um in der Zukunft aufgezeichnet zu werden. Die Menge an Raum,
die zu irgendeinem gegebenen Moment in Zeit verfügbar ist, kann durch ein Erzeugen
der Summe des gesamten besetzten Raumes (oder Raumes, der zu dieser Zeit
besetzt sein wird) und ein Subtrahieren derselben von der Gesamtkapazität, die verfügbar ist,
um Programme zu speichern, gefunden werden. Programme, die basierend
auf gefolgerten Bevorzugungen („Fuzzy”-Aufzeichnungen) für eine Aufzeichnung eingeplant
sind, werden in dieser Berechnung nicht gezählt; derartige Pro gramme verlieren
automatisch alle Entscheidungen eines Konflikts.
-
Ein
Programm kann aufgezeichnet werden 603, wenn jederzeit
zwischen dem Zeitpunkt, wenn die Aufzeichnung initiiert würde, und
dem, wenn dieselbe abläuft,
genügend
Raum verfügbar
ist, um dasselbe zu halten. Zusätzlich
muss für
die Dauer des Programms eine Eingabe verfügbar sein, aus der dasselbe
aufzuzeichnen ist. Der Eingabeplan 602 verfolgt die freien
und besetzten Zeitschlitze für
jede Eingabequelle. Bei einem bevorzugten Ausführungsbeispiel der Erfindung
können
die Eingabequellen nicht für
identische Dienste verwendet werden, z. B. kann eine Eingabe von
einem Digitalfernsehsignal sein und eine andere von einem Analogfernsehsignal mit
einer unterschiedlichen Programmierung sein. In diesem Falle werden
während
einer Planung lediglich diejenigen Eingaben berücksichtigt, aus denen das gewünschte Programm
aufgezeichnet werden kann.
-
Unter
Bezugnahme auf 7 ist ein Flussdiagramm gezeigt,
das die Schritte beschreibt, die vorgenommen werden, um bei dem
bevorzugten Ausführungsbeispiel
eine Aufzeichnung einzuplanen. Zuerst wird eine geordnete Liste
von Vorführungen
des Programms von Interesse erzeugt 701. Obwohl ein bevorzugtes
Ausführungsbeispiel
der Erfindung diese Vorführungen
nach Zeit ordnet, derart, dass die Aufzeichnung so bald wie möglich erfolgt,
könnte
irgendeine bestimmte Ordnung gewählt
werden. Jede Vorführung
in dieser Liste 702 wird dann geprüft, um zu sehen, ob Eingabe 703-
oder Raum 704-Konflikte auftreten, wie es oben beschrieben
ist. Wenn eine Vorführung
ohne Konflikte vorgefunden wird, dann wird das Programm für eine Aufzeichnung
eingeplant 705.
-
Andernfalls
wählt ein
bevorzugtes Ausführungsbeispiel
der Erfindung lediglich diejenigen Vorführungen des Programms aus,
die keine Eingabekonflikte aufweisen, 706. Sich erneut
auf 6 beziehend kann man sehen, dass über die
Lebensdauer einer Aufzeichnung die Menge an verfügbarem Raum variiert, wenn
andere Programme aufgezeichnet werden oder ablaufen. Die Liste von
Vorführungen
wird dann sortiert, bevorzugt nach der Minimalmenge an verfügbarem Raum
während
der Lebensdauer der Kandidatenaufzeichnung. Andere Ordnungen können gewählt werden.
-
Sich
erneut auf 7 beziehend wird dem Zuschauer
für jede
Kandidatenvorführung
die Option eines Kürzens
der Ablaufdaten bei in Konflikt stehenden Programmen vorgelegt 708, 709.
Dieses Ordnen resultiert darin, dass diese Wahlen dem Zuschauer
in einer Reihenfolge von dem geringsten Einfluss auf eingeplante
Programme bis zu dem größten vorgelegt
werden 707; es gibt kein Erfordernis der Erfindung, dass
diese Ordnung gegen irgendeine andere verwendet werden soll.
-
Falls
der Zuschauer alle Gelegenheiten ablehnen sollte, Ablaufzeiten zu
kürzen,
umfasst der endgültige
Schritt ein Auswählen
derjenigen Vorführungen
mit Eingabekonflikten 710 und ein Sortieren dieser Vorführungen
wie in der ersten Konfliktlösungsphase 711.
Dem Zuschauer wird dann die Option vorgelegt, jede vorhergehend
eingeplante Aufzeichnung zugunsten des gewünschten Programms aufzuheben 712, 713.
Natürlich
kann der Zuschauer schlussendlich entscheiden, dass nichts Neues
aufgezeichnet wird 714.
-
Bei
einem bevorzugten Ausführungsbeispiel der
Erfindung werden alle Konflikte so früh wie möglich gelöst, wobei dem Zuschauer mehr
Kontrolle darüber
gegeben wird, was aufgezeichnet wird. Wenn der Zuschauer eine explizite
Auswahl eines Programms trifft, das aufgezeichnet werden soll, wird
der in 7 beschriebene Algorithmus verwendet, um die Aufzeichnung
unmittelbar einzuplanen und jegliche Konflikte, die entstehen, zu
verwalten.
-
Sobald
eine explizite Auswahl getroffen worden und der Zuschauer informiert
ist, dass die Aufzeichnung erfolgen wird, wird dieselbe nicht ohne eine
explizite Zustimmung des Zuschauers aufgehoben.
-
Durch
eine Hintergrundaufgabe auf dem Clientgerät werden Fuzzy-Aufzeichnungen
periodisch eingeplant. Die priorisierte Liste von bevorzugten Programmen
wie vorhergehend beschrieben vorausgesetzt, versucht der Hintergrundplaner,
jedes bevorzugte Programm der Reihe nach einzuplanen, bis die Liste
erschöpft
ist oder keine weitere Möglichkeit
zum Aufzeichnen verfügbar
ist. Ein bevorzugtes Programm wird eingeplant, wenn, und nur wenn,
keine Konflikte mit anderen eingeplanten Programmen vorliegen. Ein
bevorzugtes Programm, das eingeplant worden ist, kann unter zwei
Bedingungen gelöscht werden:
erstens, wenn dasselbe mit einer expliziten Auswahl in Konflikt
steht und zweitens, wenn eine Änderung
von Zuschauerbevorzugungen ein Programm mit einer höheren Priorität identifiziert,
das zu dieser Zeit aufgezeichnet werden könnte.
-
Eine
weitere Komplikation entsteht bei einer Handhabung von Sammlungsanschauobjekten,
für die
eine Aufzeichnung angefordert wird. Wenn eine Konfliktlösung gemäß dem Verfahren
oben für
derartige Objekte gehandhabt wurde, könnte eine potentiell große Anzahl
von Konflikten erzeugt werden, was bei einem Lösen der Konflikte zu einer
verwirrenden und frustrierenden Erfahrung für den Zuschauer führen würde. Wenn
gesammelte Objekte für
eine Aufzeichnung gewählt
werden, werden Konflikte somit automatisch zugunsten des existierenden
Plans gelöst.
-
Bei
einem bevorzugten Ausführungsbeispiel der
Erfindung werden Konflikte, die aus der Aufzeichnung von gesammelten
Objekten resultieren, unter Verwendung der Bevorzugungsgewichtung
der betroffenen Programme gelöst;
wenn mehrere Konflikte durch ein bestimmtes Programm bei dem gesammelten
Objekt verursacht werden, wird dasselbe lediglich aufgezeichnet,
wenn die Bevorzugung desselben diejenige aller in Konflikt stehender
Programme überschreitet.
-
Verfahren,
die auf Softwareobjekte angewendet werden Das Clientsystem erfordert
für einen ordnungsgemäßen Betrieb
eine komplexe Softwareumgebung. Ein Betriebssystem verwaltet die
Interaktion zwischen Hardware-Geräten in dem Client und Software-Anwendungen,
die diese Geräte
manipulieren. Die Fernsehanschauobjektdatenbank wird durch eine
distinkte Softwareanwendung verwaltet. Die Zeitverzugssoftwareanwendung
ist eine noch andere Anwendung.
-
Es
ist erwünscht,
neue Merkmale hinzuzufügen
oder Defekte in diesen und anderen Software-Teilsystemen zu korrigieren,
die auf dem Client-Hardwaregerät
ablaufen. Unter Verwendung der hierin beschriebenen Verfahren ist
es möglich,
Anschauobjekte, die aktualisierte Softwaremodule enthalten, in die
Clientsystem-Datenbank zu replizieren. Sobald dieselben in der Clientsystem-Datenbank vorhanden
sind, werden die folgenden einzigartigen und neuartigen Verfahren
verwendet, um die aktualisierte Software zu installieren und zu
bewirken, dass das Clientsystem ein Ausführen der neuen Software beginnt.
-
Die
Softwareumgebung des Gerätes
wird als eine Sequenz von Schritten instanziiert, die stattfinden,
wenn zuerst Leistung an das Gerät
angelegt wird, wobei jeder Schritt Zustandsinformationen aufbaut,
die eine ordnungsgemäße Anwendung
des folgenden Schrittes unterstützen.
Der letzte Schritt startet die Anwendungen, die das Gerät verwalten
und mit dem Zuschauer in Wechselwirkung stehen. Diese Schritte sind:
- 1. Ein Nur-Lese- oder elektrisch programmierbarer
Speicher in dem Gerät
hält eine
anfängliche Urladesequenz
(Bootstrap-Sequenz) von Anweisungen. Diese Anweisungen initialisieren
Niedrige-Ebene-Parameter des Client-Geräts,
initialisieren das Plattenspeicherungssystem und laden einen Urladelader
(Bootstrap-Lader) aus der Platte in den Speicher, an den die Ausführung dann weitergegeben
wird. Diese anfängliche
Urladung (Bootstrap) kann geändert
werden, wenn dieselbe in einem elektrisch programmierbaren Speicher residiert.
- 2. Der Urladelader der zweiten Stufe lokalisiert dann das Betriebssystem
auf dem Plattenlaufwerk, lädt
das Betriebssystem in den Speicher und gibt die Ausführung an
das Betriebssystem weiter. Dieser Lader muss an einer spezifischen Stelle
auf der Platte existieren, um durch den anfänglichen Lader ohne weiteres
lokalisiert zu werden.
-
Das
Betriebssystem führt
eine notwendige Hardware- und Softwareinitialisierung durch. Dasselbe
lädt dann
die Anschauobjektdatenbank-Software aus dem Plattenlaufwerk und
beginnt eine Ausführung
der Anwendung. Eine andere Anwendungssoftware, wie z. B. die Zeitverzugssoftware
und die Zuschauerinteraktionssoftware, wird ebenfalls geladen und
gestartet. Diese Software befindet sich normalerweise in einem von
der Objektdatenbank oder aufgenommenen Fernsehprogrammen getrennten
Bereich auf der Platte.
-
Idealerweise
würde eine
neue Software einfach durch ein Kopieren derselben in die zweckmäßige Stelle
auf dem Plattenlaufwerk und ein Neuladen des Gerätes durch Ureingabe (rebooting)
installiert werden. Dieser Vorgang ist sehr gefahrenvoll, insbesondere
in einer Heimatumgebung. Während
die Software kopiert wird, kann Leistung ausfallen, was in einem
nicht konsistenten Softwarebild und möglichen Betriebsproblemen resultiert.
Die neue Software kann Defekte aufweisen, die einen ordnungsgemäßen Betrieb
verhindern. Auf dem Plattenlaufwerk kann ein Versagen auftreten,
wodurch das Softwarebild verfälscht
wird.
-
Obwohl
sich die Verfahren dieser Erfindung auf ein Plattenlaufwerk bezogen,
wird ein Fachmann ohne weiteres erkennen, dass die hier beschriebenen
Verfahren allgemein für
irgendein System einer permanenten Speicherung gelten. Ein Plat tenlaufwerk
und andere Systeme einer permanenten Speicherung sind typischerweise
zu einer Sequenz von Blöcken
mit einer festen Größe formatiert,
Sektoren genannt. „Partitionen" sind sequentielle,
nicht-überlappende
Teilsätze
dieser Sequenz, die die Speicherung in logisch unabhängige Bereiche
aufbrechen.
-
Unter
Bezugnahme auf 8 erhält die Erfindung einen Sektor
von Informationen an einer festen Stelle auf dem Plattenlaufwerk 803 aufrecht,
der Urladesektor („Boot-Sektor") 804 genannt.
Der Urladesektor 804 enthält ausreichende Informationen
für die
anfängliche
Urladung 801, um die Partitionierung des Laufwerks 803 zu
verstehen und den Urladelader der zweiten Stufe 806 zu
lokalisieren.
-
Die
Platte ist in zumindest sieben (7) Partitionen partitioniert. Es
gibt zwei (2) kleine Partitionen, die einem Halten einer Kopie des
Urladeladers der zweiten Stufe 806 gewidmet sind, zwei
(2) Partitionen, die eine Kopie des Betriebssystemkerns 807 halten,
zwei (2) Partitionen, die eine Kopie der Anwendungssoftware 808 enthalten,
und eine Partition, die als ein Notizblockspeicher 809 verwendet
werden soll. Für
duplizierte Partitionen wird eine Anzeige in dem Urladesektor 805 aufgezeichnet,
in der eine der Partitionen als „primär" markiert ist und die zweite als „Sicherung" („Backup") markiert ist.
-
Obwohl
hierin zwei Partitionen zur Redundanz beschrieben sind, wird ein
Fachmann ohne weiteres erkennen, dass dreifache, vierfache oder
größere Grade
an Redundanz durch ein Erzeugen von mehr duplizierten Partitionen
erreicht werden können.
-
Unter
Bezugnahme auf 9a und 9b liest
der anfängliche
Urladecode (Bootstrap-Code) bei einem Urladen (boot) 901 den
Ladesektor 902, tastet die Partitionstabelle ab und lokalisiert
die „primäre" Partition für den Zweite-Stufe-Urladelader. Derselbe
versucht dann, dieses Programm in den Speicher 903 zu laden.
Wenn derselbe versagt 904, z. B. aufgrund eines Ausfalls
des Plattenlaufwerks, versucht der Urladelader, das Programm in
die Sicherungspartition („Backup"-Partition) in den
Speicher 905 zu laden. Unabhängig davon, welcher Versuch
Erfolg hat, gibt der Urladelader die Steuerung dann an das neu geladene
Programm weiter, zusammen mit einer Anzeige, aus welcher Partition
das Programm geladen wurde 906.
-
In ähnlicher
Weise liest der Zweite-Stufe-Urladelader die Partitionstabelle und
lokalisiert den „primären" Betriebssystemkern 907.
Wenn der Kern nicht geladen werden kann 908, wird stattdessen
der Sicherungskern („Backup"-Kern) geladen 909.
In jedem Fall wird die Steuerung zusammen mit einer Anzeige der
Quellpartition an das Betriebssystem weitergegeben, zusammen mit
der weitergegebenen Quellpartition von oben 910.
-
Schließlich lokalisiert
das Betriebssystem die „primäre" Partition, die die
Anwendungssoftware enthält,
und versucht, die anfängliche
Anwendung zu laden 911. Wenn dies fehlschlägt 912,
dann lokalisiert das Betriebssystem die „Backup"-Partition und lädt die anfängliche Anwendung aus derselben 913.
Eine Anzeige der Quellpartition wird an die anfängliche Anwendung weitergegeben,
zusammen mit den Quellpartitionsinformationen aus den vorhergehenden
Schritten. An diesem Punkt übernimmt
die Anwendungssoftware das Client-System und es beginnt ein normales
Anschauverwaltungsverhalten 914.
-
Diese
Sequenz von Operationen stellt eine sinnvolle Ebene an Schutz vor
Plattenzugriffsfehlern bereit. Dieselbe ermöglicht auch, dass ein Verfahren, das
auf irgendeiner dieser Ebene eine neue Software aktiviert, installiert
und zuverlässig
in einen Betrieb gebracht wird.
-
Ein „Installierer"-Anschauobjekt in
der Objektdatenbank wird verwendet, um den Status von Softwareinstallationsver suchen
aufzuzeichnen. Dasselbe zeichnet den Zustand der Partitionen für jede der
drei Ebenen oben auf, einschließlich
einer Anzeige, dass ein Versuch, eine neue Software zu installieren,
im Gange ist 915. Dieser Vorgang ist aufgrund der transaktioneller
Natur der Datenbank zuverlässig.
-
Sich
auf 10 beziehend wird ein Installieren eines neuen
Softwarebildes an irgendeiner der drei Ebenen wie folgt gehandhabt:
das neue Softwarebild wird zuerst in die zweckmäßige Sicherungspartition kopiert 1001,
und in der Datenbank erfolgt eine Anzeige, dass eine Softwareinstallation
im Gange ist 1002. Die Primär- und Sicherungspartition-Anzeigen
in der Partitionstabelle werden dann ausgetauscht 1003 und
das System durch Ureingabe neu geladen 1004. Schließlich wird
eine Steuerung an die anfängliche
Anwendung weitergegeben.
-
Sich
erneut auf 9b beziehend ist es die erste
Aufgabe dieser Anwendung, das Installiererobjekt zu aktualisieren.
Für jede
Ebene 921, 922 überprüft die Anwendung, ob eine Installation
im Gange war 916, 917, und verifiziert, dass die
Ebene von der Primärpartition
geladen wurde 918. Wenn ja, war die Installation auf dieser
Ebene erfolgreich und das Installiererobjekt wird aktualisiert,
um für
diese Ebene einen Erfolg anzuzeigen 919. Andernfalls kopiert
die Anwendung die Sicherungspartition für diese Ebene über die
Primärpartition
und zeigt für
diese Ebene einen Fehlschlag in dem Installiererobjekt an 920.
Ein Kopieren der Partition stellt sicher, dass eine Sicherungskopie
einer bekannten guten Software für
eine Ebene zu jeder Zeit verfügbar
gehalten wird.
-
Bei
einem bevorzugten Ausführungsbeispiel der
Erfindung kann eine Finalisierung der Installation für die obere
Anwendungsebene der Software verzögert sein, bis alle Teile der
Anwendungsumgebung erfolgreich geladen und gestartet worden sind.
Dies stellt eine zusätzliche
Ebene an Sicherheit bereit, dass alle Teile der Anwendungsumgebung
ord nungsgemäß funktionieren,
bevor dauerhaft zu der neuen Software umgeschaltet wird.
-
Verfahren, die auf Operationen-Statusobjekte
angewendet werden
-
Operationen-Statusobjekte
sind eine Klasse von Anschauobjekt, in der Informationen über den Gebrauch,
die Leistungsfähigkeit
und das Verhalten des Clientsystems aufgezeichnet werden. Diese
Objekte werden immer, wenn eine Kommunikation mit der zentralen
Seite eingerichtet wird, durch die zentrale Seite gesammelt.
-
Die
folgenden Operationen-Statusanzeiger werden für eine spätere Sammlung zusammen mit
einem Zeitstempel aufgezeichnet:
- 1. Zuschauerhandlungen,
primär
ein Drücken
auf Knöpfe
an einem entfernten Steuergerät,
werden aufgezeichnet. Jedes „Knopfdrücken" wird zusammen mit
der gegenwärtigen
Zeit und jeglichen anderen kontextuellen Informationen, wie z. B. dem
gegenwärtigen
Zuschauerkontext, aufgezeichnet. Ein Nachverarbeiten dieses Objekts
an der zentralen Seite resultiert in einer vollständigen Spur
von Zuschauerhandlungen, einschließlich des Kontextes, in dem
jede Handlung vorgenommen wird.
- 2. Automatische Handlungen, wie z. B. ein Beginnen oder ein
Enden der Aufzeichnung eines Programms oder ein Wählen eines
Programms, das aufgezeichnet werden soll, basierend auf Zuschauerbevorzugungen,
werden aufgezeichnet. Zusätzlich
wird eine Löschung
von aufgenommenen Programmen aufgezeichnet. Eine Nachverarbeitung
dieses Objekts an der zentralen Seite resultiert in einer vollständigen Spur
von Programmaufnahmehandlungen, die durch das Clientsystem vorgenommen
werden, einschließlich
der Programme, die zu irgendeinem Zeitpunkt in der dauerhaften Speicherung
residieren.
- 3. Softwareinstallationshandlungen, einschließlich eines
Empfangs, einer Installation und Ergebnissen nach einem Nach-Neuladen
durch Ureingabe (post-rebnot) werden aufgezeichnet.
- 4. Hardwareausnahmen verschiedener Arten, einschließlich von,
aber nicht beschränkt
auf: Leistungsausfall/Neustarten, Innentemperaturprofil des Gerätes, Dauerhafte-Speicherung-Zugriffsfehler,
Speicherparitätsfehler
und Primärpartitionsfehlschläge.
-
Da
alle Handlungen zusammen mit einem Zeitstempel aufgezeichnet werden,
ist es möglich, das
Verhalten des Clientsystems unter Verwendung eines linearen zeitbasierten
Ordnens zu rekonstruieren. Dies ermöglicht, dass manuelle oder
automatische Verfahren mit der geordneten Liste von Ereignissen
arbeiten, um Handlungen und Verhalten zu korrelieren. Wenn z. B.
eine erwartete automatische Handlung nicht bald nach einem Neuladen
mit neuer Software durch Ureingabe eintritt, kann gefolgert werden,
dass die neue Software fehlerhaft war.
-
Verarbeiten von Fernsehanschauobjekten
durch Zentrale-Seite-Systeme
-
Quellen von Fernsehanschauobjekten
-
Ein
Clientsystem hat eine einzige Quelle von Fernsehanschauobjekten:
die zentrale Seite. Die Zentrale-Seite-Objektdatenbank hat viele Quellen von
Fernsehanschauobjekten:
- 1. Programmführerinformationen,
die von Außenquellen
erhalten werden, werden verarbeitet, um einen konsi stenten Satz
von Programmführerobjekten
zu erzeugen, die „Programme", „Vorführungen", „Kanäle", „Netzwerke" und andere verwandte
Objekte anzeigen. Dieser Satz von Objekten weist Abhängigkeiten
(„Kanäle" hängen von „Netzwerken" ab, „Vorführungen" hängen von „Programmen" ab) und andere Zwischenbeziehungen
auf. Wenn ein vollständiger,
konsistenter Satz von Objekten fertig ist, wird derselbe zu der Datenbank
als eine atomare Operation hinzugefügt.
- 2. Eine neue Software, einschließlich neuer Anwendungen oder
Revisionen von existierender Software, wird zuerst in „Software"-Anschauobjekte paketiert.
Wie oben kann die Software Zwischenabhängigkeiten aufweisen, wie z.
B. eine Anwendung, die von einer dynamisch geladenen Bibliothek
abhängt,
die in den Zwischenbeziehungen der betroffenen Softwareobjekte reflektiert werden
müssen.
Bei einem anderen Beispiel kann es zwei Typen von Clientsystemen
im Gebrauch geben, von denen jeder unterschiedliche Softwareobjekte
erfordert; diese Softwareobjekte müssen vorhandene Attribute aufweisen,
die den Typ von System anzeigen, auf das dieselben zielen. Sobald
ein konsistenter Satz von Objekten verfügbar ist, wird derselbe als
eine atomare Operation zu der Datenbank hinzugefügt.
- 3. Jedes Clientsystem weist einen eindeutigen, geheimen Schlüssel auf,
der in demselben eingebettet ist. Der öffentliche Schlüssel, der
zu diesem geheimen Schlüssel
passt, wird in ein „Client"-Verwaltungsobjekt
geladen, zusammen mit anderen interessanten Informationen über den Client,
wie z. B. Clienttyp, Menge an Speicherung in dem System usw. Diese
Objekte werden verwendet, um Authentifizierungsobjekte zu erzeugen,
wie es notwendig ist.
- 4. Sammlungsprogrammführerobjekte
werden in einer ähnlichen
Weise hinzugefügt.
In diesem Falle jedoch muss das Sammlungsobjekt auf primitive Programmführerobjekte
verweisen, die bereits in der Datenbank vorliegen. An dem Sammlungsobjekt
sind auch andere Objekte angebracht, wie z. B. eine textuelle Beschreibung,
ein bildschirmbasiertes Symbol und andere Informationsattribute.
Sobald ein konsistenter Satz von Hilfsobjekten zu der Sammlung verfügbar ist,
wird derselbe als eine atomare Operation zu der Datenbank hinzugefügt.
- 5. Daten werden aus Clientsystemen gesammelt.
-
Es
sollte klar sein, dass es eine beliebige Anzahl von Quellen von
Anschauobjekten geben kann und diese Aufzählung einfach die grundsätzlichsten möglichen
Quellen zeigt.
-
Operationen an Fernsehanschauobjekten
-
Es
gibt eine große
Anzahl von möglichen Operationen
an der zentralen Fernsehanschauobjektdatenbank. Die folgenden Beispiele
sollen den Typ von Verarbeitung zeigen, die durchgeführt werden
kann, jedoch sind die möglichen
Operationen nicht auf diese Beispiele beschränkt:
- 1.
Unter Verwendung verschiedenartiger Anschauobjekte kann eine Anzahl
von interessanten Statistische-Analyse-Aufgaben
durchgeführt
werden:
- 1.1 Durch ein Überprüfen von
großen
Anzahlen von hochgeladenen Operationen-Statusobjekten ist es möglich, eine
umfassende Analyse von Hardware-Zuverlässigkeitstrends
und Ausfallmodi durchzuführen.
Zum Beispiel ist es möglich, eine
Innentemperatur mit einer erwarteten MTBF (Mean Time Between Failures
= Zwischenzeit zwischen Ausfällen)
von Clientgeräten
zu korrelieren.
- 1.2 Durch ein Überprüfen von
großen
Anzahlen von hochgeladenen Anschauinformationen ist es möglich, demographische
oder psychographische Informationen über verschiedenartige Populationen
von Clientgeräten
abzuleiten. Zum Beispiel ist es möglich, TV-Programme zu korrelieren,
die in spezifischen Zip-Codes, in denen die Clientgeräte residieren,
am meisten angeschaut werden.
- 1.3 In ähnlicher
Weise ist es durch ein Überprüfen von
großen
Anzahlen von Anschauinformationsobjekten möglich, „Bewertung"- und „Teilen"-Werte für bestimmte Programme mit vollautomatisierten
Verfahren zu erzeugen, im Gegensatz zu existierenden Programmbewertungsverfahren.
- 1.4 Es gibt viele andere Beispiele für Statistische-Analyse-Aufgaben,
die an der Anschauobjektdatenbank durchgeführt werden könnten; diese
Beispiele sollen die Anwendbarkeit der Erfindung nicht einschränken, sondern
beispielhaft das Spektrum von Operationen darstellen, die durchgeführt werden
könnten.
- 2. Spezialitätssammlungsobjekte
können
automatisch basierend auf einem oder mehreren Attributen aller verfügbaren Anschauobjekte
erzeugt werden.
Eine derartige Erzeugung wird typischerweise
zuerst durch ein Extrahieren von Informationen von Interesse aus
jedem Anschauobjekt, wie z. B. Programmbeschreibung, Schauspieler,
Regisseur usw., und einem Konstruieren einer einfachen Tabelle von
Programmen und Attributen durchgeführt. Ein Sammlungsanschauobjekt
wird dann durch ein Wählen
eines oder mehrerer Attribute und ein Hinzufügen dieser Programme, zu denen
die gewählten
Attribute in irgendeiner Weise passen, zu der Sammlung erzeugt.
Diese
Objekte werden dann in die Stücke
einbezogen, die für
eine Übertragung
erzeugt werden, möglicherweise
basierend auf geographischen oder anderen Informationen. Einige
Beispielsammlungen, die erzeugt werden könnten, sind:
- 2.1 Sammlungen, die auf Ereignissen basieren, wie z. B. ein
größeres Bundesligafußballspiel
in einer großen
Stadt. In diesem Falle werden alle Programme, die durch Clientgeräte in oder
um diese Stadt anschaubar sind, gesammelt, und die Programmbeschreibung
nach den Namen der spielenden Mannschaften, Trainernamen, Namen der
Hauptspieler, den Namen des Stadions usw. durchsucht. Passende Programmobjekte
werden der Sammlung hinzugefügt,
die dann für
eine Übertragung
lediglich an die Clientgeräte
in Regionen in und um die Stadt gestückelt wird.
- 2.2 Sammlungen, die auf Personen basieren, die von einem allgemeinen
Interesse für
eine große Anzahl
von Zuschauern sind. Zum Beispiel könnte eine Sammlung aus allen „John Wayne" Filmen konstruiert
werden, die in der nächsten
Woche rundgesendet werden sollen.
- 2.3 Sammlungen, die auf einem Anschauverhalten basieren, können erzeugt
werden. In diesem Falle werden hochgeladene Anschauobjekte nach
Elementen von allgemeinem Interesse abgetastet, wie z. B. Typen
von angeschauten Programmen, tatsächliche angeschaute Programme usw.
Zum Beispiel könnte
eine „Top-Ten-Liste"-Sammlung von Programmen,
die in der letzten Woche auf allen Clientgeräten angeschaut wurden, erzeugt
werden, die die Vorführung
dieser Programme in der folgenden Woche enthält.
- 2.4 Sammlungen, die auf expliziten Auswahlen durch Zuschauer
basieren. Während
eines Anschauens eines Programms kann dem Zuschauer eine Gelegenheit
vorgelegt werden, für
das gegenwärtige
Programm „abzustimmen", vielleicht auf
der Basis von vier wahrgenommenen Attributen (Handlung, Schauspiel,
Regie, Cinematographie), was Anschauobjekte erzeugt, die später hochgeladen
werden. Diese Abstimmungen werden dann abgetastet, um eine Gesamtbewertung des
Programms zu bestimmen, die zu denjenigen, die absgestimmt haben,
zu ihrer Einsicht übertragen
wird.
- 2.5 Es gibt viele andere Beispiele dafür, wie die grundsätzlichen
Einrichtungen dieser Erfindung ermöglichen, dass der Dienstbetreiber
vorsortierte und vorausgewählte
Gruppen von verwandten Programmen an den Benutzer des Clientgeräts zur Einsicht
und Auswahl bereitstellt. Diese Beispiele sollen die Anwendbarkeit
der Erfindung nicht einschränken,
sondern beispielhaft das Spektrum von Operationen darstellen, die
durchgeführt
werden könnten.
- 3. Manuelle Verfahren können
ebenfalls verwendet werden, um gesammelte Objekte zu erzeugen, ein
Prozess, der manchmal „Verfassen" genannt wird. In
diesem Fall wählt
die Person, die die Sammlung erzeugt, Programme zur expliziten Hinzufügung zu
der Sammlung. Dieselbe wird dann in der gleichen Weise wie oben übertragen.
-
Natürlich können Sammlungsprogrammobjekte
auch das Ausdrücken
von Bevorzugungen oder Aufzeichnen von anderen Informationen erlauben. Diese
Ergebnisse können
zu der zentralen Seite hochgeladen werden, um eine Basis für die nächste Runde
einer Sammlungserzeugung oder eine statistische Analyse zu bilden,
und so fort.
-
Diese
Rückkopplungsschleife
schließt
die Schaltung zwischen dem Dienstanbieter und der Grundgesamtheit
von Zuschauern, die das Clientgerät verwenden. Dieser einzigartige
und neuartige Ansatz schafft eine neue Form von Fernsehschauen durch
ein Schaffen von einzigartigen und überzeugenden Weisen für den Dienstanbieter,
das Anschauen von Fernsehprogrammen, die für Individuen von Interesse
sind, vorzulegen und zu bewerben, während ein zuverlässiger und
konsistenter Betrieb des Dienstes aufrechterhalten wird.
-
Obwohl
die Erfindung hierin unter Bezugnahme auf das bevorzugte Ausführungsbeispiel
beschrieben ist, wird ein Fachmann ohne weiteres erkennen, dass
andere Anwendungen diejenigen, die hierin dargelegt sind, ersetzen
können,
ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen.
Entsprechend soll die Erfindung lediglich durch die Ansprüche, die
nachfolgend enthalten sind, eingeschränkt werden.