DE60038674T2 - Datenspeicherverwaltungs-und programmablaufsystem - Google Patents

Datenspeicherverwaltungs-und programmablaufsystem Download PDF

Info

Publication number
DE60038674T2
DE60038674T2 DE60038674T DE60038674T DE60038674T2 DE 60038674 T2 DE60038674 T2 DE 60038674T2 DE 60038674 T DE60038674 T DE 60038674T DE 60038674 T DE60038674 T DE 60038674T DE 60038674 T2 DE60038674 T2 DE 60038674T2
Authority
DE
Germany
Prior art keywords
programs
program
objects
viewer
process according
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60038674T
Other languages
English (en)
Other versions
DE60038674D1 (de
Inventor
James M. Los Gatos BARTON
Brian Santa Cruz BEACH
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tivo Solutions Inc
Original Assignee
Tivo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26825408&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60038674(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US09/422,121 external-priority patent/US7665111B1/en
Application filed by Tivo Inc filed Critical Tivo Inc
Application granted granted Critical
Publication of DE60038674D1 publication Critical patent/DE60038674D1/de
Publication of DE60038674T2 publication Critical patent/DE60038674T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4147PVR [Personal Video Recorder]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV

Description

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

Claims (57)

  1. Ein Prozess zum Planen des Aufzeichnens, Speicherns und Löschens von Fernseh- und Webseitenprogrammmaterial in einem Speicherungsmedium in einer Computerumgebung, der folgende Schritte aufweist: Annehmen einer priorisierten Liste von ProgrammanschauBevorzugungen als Eingabe; Vergleichen der Liste mit der Datenbank von Programmführerobjekten; Erzeugen eines Zeitplans gegen verfügbaren Speicherungsplatz, der für die expliziten oder abgeleiteten bevorzugten Programme des Zuschauers optimal ist; wobei die bevorzugten Programme Fernsehsendungprogramme und Universelle Ressourcenlokalisatoren (URLs) umfassen; und wobei die Programmführerobjekte anzeigen, wann Programme von Interesse tatsächlich gesendet werden.
  2. Der Prozess gemäß Anspruch 1, bei dem der Zuschauer anfordert, dass bestimmte Programme aufgenommen werden, was in der höchstmöglichen Priorität für diese Programme resultiert.
  3. Der Prozess gemäß Anspruch 1, bei dem der Zuschauer unter Verwendung von Zubehör, das durch die Benutzerschnittstelle bereitgestellt wird, explizit Bevorzugungen ausdrückt.
  4. Der Prozess gemäß Anspruch 1, bei dem die Bevorzugungen aus Anschaumustern gefolgert werden können.
  5. Der Prozess gemäß Anspruch 1, bei dem die Bevorzugungen Fernsehanschauobjekten entsprechen, die in einer replizierten Datenbank gespeichert sind.
  6. Der Prozess gemäß Anspruch 1, der ferner folgende Schritte aufweist: Liefern eines Raumplans; Liefern eines Eingabeplans; wobei der Raumplan alle gegenwärtig aufgezeichneten Programme und die Programme, die eingeplant sind, um in der Zukunft aufgezeichnet zu werden, verfolgt; und wobei der Eingabeplan die freien und die besetzten Zeitschlitze für jede Eingabequelle verfolgt.
  7. Der Prozess gemäß Anspruch 6, bei dem die Menge an Raum, der zu irgendeinem gegebenen Zeitmoment verfügbar ist, durch ein Erzeugen der Summe des gesamten besetzten Raumes oder des Raumes, der zu dieser bestimmten Zeit besetzt sein wird, und ein Subtrahieren derselben von der Gesamtkapazität, die verfügbar ist, um Programme zu speichern, gefunden wird.
  8. Der Prozess gemäß Anspruch 1, bei dem Programme, die basierend auf gefolgerten Bevorzugungen für eine Aufzeichnung eingeplant sind, automatisch alle Entscheidungen eines Konflikts verlieren.
  9. Der Prozess gemäß Anspruch 1, bei dem ein Programm aufgezeichnet wird, 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.
  10. Der Prozess gemäß Anspruch 6, bei dem eine Eingabe verfügbar sein muss, aus der für die Dauer des Programms aufzuzeichnen ist.
  11. Der Prozess gemäß Anspruch 6, bei dem lediglich diejenigen Eingaben, aus denen das gewünschte Programm aufgezeichnet werden kann, während einer Planung berücksichtigt werden.
  12. Der Prozess gemäß Anspruch 1, der ferner folgenden Schritt aufweist: Erzeugen einer geordneten Liste von Vorführungen des Programms von Interesse.
  13. Der Prozess gemäß Anspruch 12, bei dem jede Vorführung in der Liste überprüft wird, um zu sehen, ob Eingabe- oder Raumkonflikte auftreten.
  14. Der Prozess gemäß Anspruch 12, bei dem, wenn eine Vorführung ohne Konflikte vorgefunden wird, das Programm dann für ein Aufzeichnen der Vorführung eingeplant wird.
  15. Der Prozess gemäß Anspruch 12, der ferner folgenden Schritt aufweist: Sortieren der Liste von Vorführungen; und wobei das Ordnen der Liste darin resultiert, dass dem Zuschauer jegliche in Konflikt stehende Programme in einer Reihenfolge von dem geringsten Einfluss auf eingeplante Programme bis zu dem größten vorgelegt werden.
  16. Der Prozess gemäß Anspruch 15, bei dem für jede Kandidatenvorführung in der Liste dem Zuschauer die Option eines Kürzens der Ablaufdaten bei in Konflikt stehenden Programmen vorgelegt wird.
  17. Der Prozess gemäß Anspruch 15, bei dem dem Zuschauer die Option vorgelegt wird, jede vorhergehend geplante Aufzeichnung aufzuheben, die einen Eingabekonflikt mit dem gewünschten Programm aufweist.
  18. Der Prozess gemäß Anspruch 1, der ferner folgenden Schritt aufweist: Bereitstellen eines Hintergrundplaners.
  19. Der Prozess gemäß Anspruch 18, bei dem der Hintergrundplaner jedes bevorzugte Programm der Reihe nach einplant, bis die Liste von bevorzugten Programmen erschöpft ist oder keine weitere Möglichkeit zum Aufzeichnen verfügbar ist.
  20. Der Prozess gemäß Anspruch 18, bei dem ein bevorzugtes Programm eingeplant wird, wenn, und nur wenn, keine Konflikte mit anderen eingeplanten Programmen vorliegen.
  21. Der Prozess gemäß Anspruch 18, bei dem ein bevorzugtes Programm, das eingeplant worden ist, gelöscht werden kann, wenn dasselbe mit einer expliziten Auswahl in Konflikt steht oder wenn eine Änderung von Zuschauerbevorzugungen ein Programm mit einer höheren Priorität identifiziert, das zu dieser Zeit aufgezeichnet werden könnte.
  22. Der Prozess gemäß Anspruch 1, bei dem alle Konflikte so früh wie möglich gelöst werden.
  23. Der Prozess gemäß Anspruch 1, bei dem jegliche Plankonflikte unmittelbar bestimmt werden, wenn der Zuschauer eine explizite Auswahl eines Programms trifft, das aufgezeichnet werden soll.
  24. Der Prozess gemäß Anspruch 1, bei dem, wenn Plankonflikte mit anderen Programmen vorliegen, die der Zuschauer explizit ausgewählt hat, der Zuschauer gefragt wird, welche Aufzeichnungen aufgehoben werden sollen und welche fertig gestellt werden sollen.
  25. Der Prozess gemäß Anspruch 4, bei dem Plankonflikte zwischen expliziten Programmwahlen und gefolgerten „Fuzzy"-Programmwahlen zugunsten der expliziten Wahlen gelöst werden, ohne den Zuschauer zu fragen.
  26. Der Prozess gemäß Anspruch 1, bei dem die Ablaufzeit von jeglichen in Konflikt stehenden gespeicherten Programmen gekürzt wird bis exakt zu der, die benötigt wird, um eine Aufzeichnung eines gewünschten Programms zu ermöglichen.
  27. Der Prozess gemäß Anspruch 1, bei dem Plankonflikte, die aus der Aufzeichnung von gesammelten Objekten resultieren, unter Verwendung der Bevorzugungsgewichtung der betroffenen Programme gelöst werden.
  28. Der Prozess gemäß Anspruch 1, bei dem, wenn mehrere Konflikte durch ein bestimmtes Programm bei einem gesammelten Objekt verursacht werden, dasselbe lediglich aufgezeichnet wird, wenn die Bevorzugung desselben diejenige aller in Konflikt stehender Programme überschreitet.
  29. Eine Vorrichtung zum Planen des Aufzeichnens, Speicherns und Löschens von Fernseh- und Webseitenprogrammmaterial in einem Speicherungsmedium in einer Computerumgebung, die folgende Merkmale aufweist: ein Modul zum Annehmen einer priorisierten Liste von Programmanschaubevorzugungen als Eingabe; ein Modul zum Vergleichen der Liste mit der Datenbank von Programmführerobjekten; ein Modul zum Erzeugen eines Zeitplans als Funktion von verfügbarem Speicherungsplatz, der für die expliziten oder abgeleiteten bevorzugten Programme des Zuschauers optimal ist; wobei die bevorzugten Programme Fernsehsendungprogramme und Universelle Ressourcenlokalisatoren (URLs) umfassen; und wobei die Programmführerobjekte anzeigen, wenn Programme von Interesse tatsächlich gesendet werden.
  30. Die Vorrichtung gemäß Anspruch 29, bei der der Zuschauer anfordert, dass bestimmte Programme aufgenommen werden, was in der höchstmöglichen Priorität für diese Programme resultiert.
  31. Die Vorrichtung gemäß Anspruch 29, bei der der Zuschauer unter Verwendung von Zubehör, das durch die Benutzerschnittstelle bereitgestellt ist, explizit Bevorzugungen ausdrückt.
  32. Die Vorrichtung gemäß Anspruch 29, bei der die Bevorzugungen aus Anschaumustern gefolgert werden können.
  33. Die Vorrichtung gemäß Anspruch 29, bei der die Bevorzugungen Fernsehanschauobjekten entsprechen, die in einer replizierten Datenbank gespeichert sind.
  34. Die Vorrichtung gemäß Anspruch 29, die ferner folgende Merkmale aufweist: einen Raumplan; einen Eingabeplan; wobei der Raumplan alle gegenwärtig aufgezeichneten Programme und die Programme, die eingeplant sind, um in der Zukunft aufgezeichnet zu werden, verfolgt; und wobei der Eingabeplan die freien und die besetzten Zeitschlitze für jede Eingabequelle verfolgt.
  35. Die Vorrichtung gemäß Anspruch 34, bei der die Menge an Raum, der zu irgendeinem gegebenen Zeitmoment verfügbar ist, durch ein Erzeugen der Summe des gesamten besetzten Raumes oder des Raumes, der zu dieser bestimmten Zeit besetzt sein wird, und ein Subtrahieren derselben von der Gesamtkapazität, die verfügbar ist, um Programme zu speichern, gefunden wird.
  36. Die Vorrichtung gemäß Anspruch 29, bei der Programme, die basierend auf gefolgerten Bevorzugungen für eine Aufzeichnung eingeplant sind, automatisch alle Entscheidungen eines Konflikts verlieren.
  37. Die Vorrichtung gemäß Anspruch 29, bei der ein Programm aufgezeichnet wird, 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.
  38. Die Vorrichtung gemäß Anspruch 34, bei der eine Eingabe verfügbar sein muss, aus der für die Dauer des Programms aufzuzeichnen ist.
  39. Die Vorrichtung gemäß Anspruch 34, bei der lediglich diejenigen Eingaben, aus denen das gewünschte Programm aufgezeichnet werden kann, während einer Planung berücksichtigt werden.
  40. Die Vorrichtung gemäß Anspruch 29, die ferner folgende Merkmale aufweist: ein Modul zum Erzeugen einer geordneten Liste von Vorführungen des Programms von Interesse.
  41. Die Vorrichtung gemäß Anspruch 40, bei der jede Vorführung in der Liste überprüft wird, um zu sehen, ob Eingabe- oder Raumkonflikte auftreten.
  42. Die Vorrichtung gemäß Anspruch 40, bei der, wenn eine Vorführung ohne Konflikte vorgefunden wird, das Programm dann für ein Aufzeichnen der Vorführung eingeplant wird.
  43. Die Vorrichtung gemäß Anspruch 40, die ferner folgende Merkmale aufweist: ein Modul zum Sortieren der Liste von Vorführungen; und wobei das Ordnen der Liste darin resultiert, dass dem Zuschauer jegliche in Konflikt stehende Programme in einer Reihenfolge von dem geringsten Einfluss auf eingeplante Programme bis zu dem größten vorgelegt werden.
  44. Die Vorrichtung gemäß Anspruch 43, bei der für jede Kandidatenvorführung in der Liste dem Zuschauer die Option eines Kürzens der Ablaufdaten bei in Konflikt stehenden Programmen vorgelegt wird.
  45. Die Vorrichtung gemäß Anspruch 43, bei der dem Zuschauer die Option vorgelegt wird, jede vorhergehend geplante Aufzeichnung aufzuheben, die einen Eingabekonflikt mit dem gewünschten Programm aufweist.
  46. Die Vorrichtung gemäß Anspruch 29, die ferner folgendes Merkmal aufweist: einen Hintergrundplaner.
  47. Die Vorrichtung gemäß Anspruch 46, bei der der Hintergrundplaner jedes bevorzugte Programm der Reihe nach einplant, bis die Liste von bevorzugten Programmen erschöpft ist oder bis keine weitere Möglichkeit verfügbar ist, aufzuzeichnen.
  48. Die Vorrichtung gemäß Anspruch 46, bei der ein bevorzugtes Programm eingeplant ist, wenn, und nur wenn, keine Konflikte mit anderen eingeplanten Programmen vorliegen.
  49. Die Vorrichtung gemäß Anspruch 46, bei der ein bevorzugtes Programm, das eingeplant worden ist, gelöscht werden kann, wenn dasselbe mit einer expliziten Auswahl in Konflikt steht oder wenn eine Änderung von Zuschauerbevorzugungen ein Programm mit einer höheren Priorität identifiziert, das zu dieser Zeit aufgezeichnet werden könnte.
  50. Die Vorrichtung gemäß Anspruch 29, bei der alle Konflikte so früh wie möglich gelöst sind.
  51. Die Vorrichtung gemäß Anspruch 29, bei der jegliche Plankonflikte unmittelbar bestimmt sind, wenn der Zuschauer eine explizite Auswahl eines Programms trifft, das aufgezeichnet werden soll.
  52. Die Vorrichtung gemäß Anspruch 29, bei der, wenn Plankonflikte mit anderen Programmen vorliegen, die der Zuschauer explizit ausgewählt hat, der Zuschauer gefragt wird, welche Aufzeichnungen aufgehoben werden sollen und welche fertig gestellt werden sollen.
  53. Die Vorrichtung gemäß Anspruch 32, bei der Plankonflikte zwischen expliziten Programmwahlen und gefolgerten „Fuzzy"-Programmwahlen zugunsten der expliziten Wahlen gelöst werden, ohne den Zuschauer zu fragen.
  54. Die Vorrichtung gemäß Anspruch 29, bei der die Ablaufzeit von jeglichen in Konflikt stehenden gespeicherten Programmen abgekürzt ist, bis exakt zu der, die benötigt wird, um eine Aufzeichnung eines gewünschten Programms zu ermöglichen.
  55. Die Vorrichtung gemäß Anspruch 29, bei der Plankonflikte, die aus der Aufzeichnung von gesammelten Objekten resultieren, unter Verwendung der Bevorzugungsgewichtung der betroffenen Programme gelöst werden.
  56. Die Vorrichtung gemäß Anspruch 29, bei der, wenn mehrere Konflikte durch ein bestimmtes Programm bei einem gesammelten Objekt verursacht sind, dasselbe lediglich aufgezeichnet wird, wenn die Bevorzugung desselben diejenige aller in Konflikt stehender Programme überschreitet.
  57. Ein Programmspeicherungsmedium, das durch einen Computer lesbar ist und greifbar ein Programm von Anweisungen ausführt, die durch den Computer ausführbar sind, um Verfahrensschritte zum Planen des Aufzeichnens, Speicherns und Löschens von Fernseh- und Webseitenprogrammmaterial in einem Speicherungsmedium in einer Computerumgebung durchzuführen, mit den Schritten gemäß einem der Ansprüche 1 bis 28.
DE60038674T 1999-03-30 2000-03-09 Datenspeicherverwaltungs-und programmablaufsystem Expired - Lifetime DE60038674T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12717899P 1999-03-30 1999-03-30
US127178P 1999-03-30
US422121 1999-10-20
US09/422,121 US7665111B1 (en) 1999-10-20 1999-10-20 Data storage management and scheduling system
PCT/US2000/006473 WO2000059223A1 (en) 1999-03-30 2000-03-09 Data storage management and scheduling system

Publications (2)

Publication Number Publication Date
DE60038674D1 DE60038674D1 (de) 2008-06-05
DE60038674T2 true DE60038674T2 (de) 2009-06-10

Family

ID=26825408

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60038674T Expired - Lifetime DE60038674T2 (de) 1999-03-30 2000-03-09 Datenspeicherverwaltungs-und programmablaufsystem

Country Status (5)

Country Link
EP (1) EP1166555B1 (de)
CN (2) CN1592403A (de)
AU (1) AU3878600A (de)
DE (1) DE60038674T2 (de)
WO (1) WO2000059223A1 (de)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769128B1 (en) 1995-06-07 2004-07-27 United Video Properties, Inc. Electronic television program guide schedule system and method with data feed access
US5801787A (en) 1996-06-14 1998-09-01 Starsight Telecast, Inc. Television schedule system and method of operation for multiple program occurrences
ES2475242T3 (es) 1997-07-21 2014-07-10 Gemstar Development Corporation Sistemas y métodos para mostrar y grabar interfaces de control
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
US6898762B2 (en) 1998-08-21 2005-05-24 United Video Properties, Inc. Client-server electronic program guide
JP2003521851A (ja) 1999-09-20 2003-07-15 ティヴォ インク クローズド・キャプション・タグ付けシステム
EP1252767B1 (de) 2000-02-01 2010-08-11 United Video Properties, Inc. Methoden und systeme zum erzwingen von reklame
ES2264978T3 (es) 2000-03-31 2007-02-01 United Video Properties, Inc. Sistemas y metodos para reducir cortes en la grabacion de programas.
CN101707693B (zh) 2000-10-11 2017-04-26 乐威指南公司 提供数据存储到点播媒体传递系统中服务器上的系统和方法
EP1209822B1 (de) * 2000-11-27 2007-01-10 NTT DoCoMo, Inc. Verfahren zur Bereitstellung eines Programs und Anordnung und Server zum Rundfunk
US6751398B2 (en) * 2000-12-22 2004-06-15 Koninklijke Philips Electronics N.V. System and method for determining whether a video program has been previously recorded
US7085842B2 (en) 2001-02-12 2006-08-01 Open Text Corporation Line navigation conferencing system
KR101548473B1 (ko) 2001-02-21 2015-08-28 로비 가이드스, 인크. 개인용 비디오 녹화 특징을 갖는 대화식 프로그램 가이드를 위한 시스템 및 방법
JP2002259282A (ja) * 2001-02-27 2002-09-13 Matsushita Electric Ind Co Ltd データ放送スケジュールシステムおよび、それに関する、装置または方法または記録媒体またはプログラム
JP2002344405A (ja) * 2001-03-16 2002-11-29 Matsushita Electric Ind Co Ltd データ放送スケジュールシステム、それに関する装置、方法、記録媒体またはプログラム
CN1322746C (zh) * 2001-03-22 2007-06-20 皇家菲利浦电子有限公司 一种个人录像机系统的存储器控制方法
JP2004523182A (ja) 2001-03-22 2004-07-29 ユナイテッド ビデオ プロパティーズ, インコーポレイテッド パーソナルビデオレコーダシステム及び方法
GB0108790D0 (en) * 2001-04-07 2001-05-30 Pace Micro Tech Plc Television system
DE10119067A1 (de) * 2001-04-18 2002-10-31 Bosch Gmbh Robert Verfahren zum Abspielen von Multimediadaten mit einem Unterhaltungsgerät
JP4150170B2 (ja) 2001-05-10 2008-09-17 ソニー株式会社 放送プログラム処理装置、および放送プログラムの評価処理システム
US7636931B2 (en) 2001-08-17 2009-12-22 Igt Interactive television devices and systems
US7095947B2 (en) * 2001-11-13 2006-08-22 Koninklijke Philips Electronics N.V. System for synchronizing the playback of two or more connected playback devices using closed captioning
GB0127234D0 (en) 2001-11-13 2002-01-02 British Sky Broadcasting Ltd Improvements in receivers for television signals
AU2002360441A1 (en) 2001-11-26 2003-06-10 United Video Properties, Inc. Interactive television program guide for recording enhanced video content
JP2005512701A (ja) * 2001-12-21 2005-05-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コンフリクトを解決する方法
US20050163465A1 (en) * 2002-04-23 2005-07-28 Thomson Licensing S.A. Method and interface for controlling a digital recording apparatus
US7337115B2 (en) 2002-07-03 2008-02-26 Verizon Corporate Services Group Inc. Systems and methods for providing acoustic classification
US20040138894A1 (en) 2002-10-17 2004-07-15 Daniel Kiecza Speech transcription tool for efficient speech transcription
US7260309B2 (en) 2002-11-07 2007-08-21 Koninklijke Philips Electronics N.V. Tracking of partially viewed shows so that they can be marked for deletion when a personal video recorder runs out of space
US20040103434A1 (en) 2002-11-25 2004-05-27 United Video Properties, Inc. Interactive television systems with conflict management capabilities
US20040123326A1 (en) * 2002-12-18 2004-06-24 General Instrument Corporation Method and apparatus for allocating tuning devices to broadband head-end services
US7493646B2 (en) 2003-01-30 2009-02-17 United Video Properties, Inc. Interactive television systems with digital video recording and adjustable reminders
US8116611B2 (en) * 2003-02-10 2012-02-14 Aptiv Digital, Inc. Tuner sharing video recorder system architecture
US20060051059A1 (en) 2004-09-08 2006-03-09 Krakirian Haig H Video recorder having user extended and automatically extended time slots
KR100493902B1 (ko) * 2003-08-28 2005-06-10 삼성전자주식회사 콘텐츠 추천방법 및 시스템
KR100982516B1 (ko) * 2004-01-28 2010-09-16 삼성전자주식회사 영상 컨텐츠 기록 장치에 포함된 데이터 저장 매체의 관리방법 및 그 영상 컨텐츠 기록 장치
WO2005107110A2 (en) 2004-04-23 2005-11-10 Nielsen Media Research, Inc. Methods and apparatus to maintain audience privacy while determining viewing of video-on-demand programs
US8010620B2 (en) * 2004-05-03 2011-08-30 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US7743398B2 (en) * 2004-08-13 2010-06-22 Microsoft Corporation Video recording conflict management and user interface
US7593621B2 (en) 2005-03-07 2009-09-22 Mediatek Incorporation Method of reserving space on a storage medium for recording audio and video content and recofding device thereof
CN101180878B (zh) * 2005-05-23 2010-06-16 汤姆森特许公司 基于用户偏好数据提供电子节目指南的方法
CN100352277C (zh) * 2005-06-03 2007-11-28 上海惠晨信息技术有限公司 动态预约调度媒体播控系统资源分配方法
US7646962B1 (en) 2005-09-30 2010-01-12 Guideworks, Llc System and methods for recording and playing back programs having desirable recording attributes
US9015740B2 (en) 2005-12-12 2015-04-21 The Nielsen Company (Us), Llc Systems and methods to wirelessly meter audio/visual devices
US8214869B2 (en) 2005-12-29 2012-07-03 Rovi Guides, Inc. Systems and methods for managing a status change of a multimedia asset in multimedia delivery systems
US9015736B2 (en) 2005-12-29 2015-04-21 Rovi Guides, Inc. Systems and methods for episode tracking in an interactive media environment
US7774341B2 (en) 2006-03-06 2010-08-10 Veveo, Inc. Methods and systems for selecting and presenting content based on dynamically identifying microgenres associated with the content
US8316394B2 (en) 2006-03-24 2012-11-20 United Video Properties, Inc. Interactive media guidance application with intelligent navigation and display features
US8832742B2 (en) 2006-10-06 2014-09-09 United Video Properties, Inc. Systems and methods for acquiring, categorizing and delivering media in interactive media guidance applications
WO2008077275A1 (fr) * 2006-12-25 2008-07-03 Confluence International Co., Ltd Système et procédé pour décider des priorités d'un contenu de médias pour un spectateur, en fonction d'informations caractéristiques d'un spectateur et d'un réalisateur
US7801888B2 (en) 2007-03-09 2010-09-21 Microsoft Corporation Media content search results ranked by popularity
US8989561B1 (en) 2008-05-29 2015-03-24 Rovi Guides, Inc. Systems and methods for alerting users of the postponed recording of programs
CN101662628B (zh) * 2008-08-28 2012-06-27 华为技术有限公司 一种多媒体存储方法、系统及设备
US8464309B2 (en) * 2008-09-05 2013-06-11 Tivo Inc. Server-based program recording scheduling
US9124769B2 (en) 2008-10-31 2015-09-01 The Nielsen Company (Us), Llc Methods and apparatus to verify presentation of media content
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US9014546B2 (en) 2009-09-23 2015-04-21 Rovi Guides, Inc. Systems and methods for automatically detecting users within detection regions of media devices
US8307006B2 (en) 2010-06-30 2012-11-06 The Nielsen Company (Us), Llc Methods and apparatus to obtain anonymous audience measurement data from network server data for particular demographic and usage profiles
US9736524B2 (en) 2011-01-06 2017-08-15 Veveo, Inc. Methods of and systems for content search based on environment sampling
US8949901B2 (en) 2011-06-29 2015-02-03 Rovi Guides, Inc. Methods and systems for customizing viewing environment preferences in a viewing environment control application
JP5855746B2 (ja) * 2011-06-30 2016-02-09 トムソン ライセンシングThomson Licensing ユーザの好みに従う自動記録のための方法及び装置
CN102740001B (zh) * 2011-08-29 2017-08-04 新奥特(北京)视频技术有限公司 一种节目播出时间自适应处理方法及装置
US8805418B2 (en) 2011-12-23 2014-08-12 United Video Properties, Inc. Methods and systems for performing actions based on location-based rules
CN103455551B (zh) * 2013-07-31 2016-08-10 中国传媒大学 基于演出资源的档期数据处理方法及装置
CN103455871B (zh) * 2013-07-31 2016-12-28 中国传媒大学 资源调度系统及方法
US9264656B2 (en) 2014-02-26 2016-02-16 Rovi Guides, Inc. Systems and methods for managing storage space
US9288521B2 (en) 2014-05-28 2016-03-15 Rovi Guides, Inc. Systems and methods for updating media asset data based on pause point in the media asset
US11481126B2 (en) 2016-05-24 2022-10-25 Micron Technology, Inc. Memory device error based adaptive refresh rate systems and methods
CN106599545B (zh) * 2016-11-21 2019-06-04 深圳市医诺智能科技发展有限公司 放射治疗流程的动态管理方法
CN108737906B (zh) * 2018-06-05 2020-09-15 北京奇艺世纪科技有限公司 一种投票统计方法及装置
US10805690B2 (en) 2018-12-04 2020-10-13 The Nielsen Company (Us), Llc Methods and apparatus to identify media presentations by analyzing network traffic

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5758259A (en) * 1995-08-31 1998-05-26 Microsoft Corporation Automated selective programming guide
US5774664A (en) * 1996-03-08 1998-06-30 Actv, Inc. Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
EP2068559A3 (de) * 1997-06-02 2010-03-03 Sony Electronics, Inc. Darstellung von Internetdaten und Fernsehprogrammen

Also Published As

Publication number Publication date
WO2000059223A1 (en) 2000-10-05
EP1166555B1 (de) 2008-04-23
CN1346571A (zh) 2002-04-24
CN1148965C (zh) 2004-05-05
EP1166555A1 (de) 2002-01-02
AU3878600A (en) 2000-10-16
DE60038674D1 (de) 2008-06-05
CN1592403A (zh) 2005-03-09

Similar Documents

Publication Publication Date Title
DE60038674T2 (de) Datenspeicherverwaltungs-und programmablaufsystem
US10306331B2 (en) System for remotely controlling client recording and storage behavior
US10140359B2 (en) Distributed database management system
US9693104B2 (en) Client-side multimedia content targeting system
JP4897175B2 (ja) 放送番組録画予約の開始及び終了時刻を調整する方法および装置
US6490722B1 (en) Software installation and recovery system
US9674577B1 (en) Data storage management and scheduling system
US7665111B1 (en) Data storage management and scheduling system
US8965182B2 (en) Broadcast program recording overrun and underrun scheduling system

Legal Events

Date Code Title Description
8363 Opposition against the patent
R082 Change of representative

Ref document number: 1166555

Country of ref document: EP

Representative=s name: DENDORFER & HERRMANN PATENTANWAELTE PARTNERSCHAFT,