-
BEREICH DER
ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf den Bereich des Programmierens
oder Umprogrammierens eines Set-Top-Terminals in einer Kabelfernsehanlage.
Insbesondere bezieht sich die vorliegende Erfindung auf den Bereich
des Steuerns des Herunterladens der Programmierung, wie etwa ein
Betriebssystem oder Objekte der systemspezifischen Programmfamilie,
für ein
Set-Top-Terminal für
anfängliche
oder hochrüstende
Programmierung des Set-Top-Terminals über das Kabelnetz.
-
HINTERGRUND
DER ERFINDUNG
-
In
einer typischen Kabelfernsehanlage werden die Teilnehmer mit einer
Set-Top-Box oder einem Terminal versehen. Das Set-Top-Terminal ist
eine Box mit elektronischer Ausrüstung,
die verwendet wird, um den Fernseher des Teilnehmers und eventuell
andere elektronische Ausrüstungen
mit dem Kabelnetz zu verbinden. Die Set-Top-Box ist mit dem Kabelnetz
normalerweise über
eine koaxiale Wandsteckdose verbunden.
-
Die
Set-Top-Box ist im Wesentlichen ein Computer, der programmiert ist,
um die Signale von dem Kabelnetz zu verarbeiten, um den Teilnehmer mit
den Kabeldiensten zu versorgen. Diese Dienste des Kabelfernsehunternehmens
umfassen typischerweise Zugang zu einer Anzahl von Fernsehkanälen und
vielleicht einen elektronischen Programmierführer (EPG). Zusätzliche
Vorzugskanäle
können
den Teilnehmern für
eine zusätzliche
Gebühr
ebenfalls bereitgestellt werden. Per-Sendung-Bezahl- Veranstaltungen und
Videoabrufdienst können
ebenfalls über
das Kabelnetz bereitgestellt werden. Die Set-Top-Box ist programmiert,
um diese Dienste für den
Teilnehmer bereitzustellen.
-
Die
Dienste des Kabelunternehmens müssen
jedoch nicht darauf begrenzt sein, Fernsehprogrammierung bereitzustellen.
Manche Kabelunternehmen bieten nun Internet-Zugang und E-Mail-Dienste über ihre
Kabelnetze bei Geschwindigkeiten, die viel schneller sind als die über herkömmliche
Telefonleitungen verfügbaren.
Für die
Zukunft ist vorhersehbar, dass immer mehr Dienste über das
Kabelnetz bereitgestellt werden, einschließlich vielleicht sogar elementarer
Telefondienst. Letztendlich könnte
möglicherweise
jeder Haushalt oder jedes Büro
eine einzige Verbindung über
das Kabelnetz zu allen elektronischen Datendiensten haben.
-
Da
das Kabelnetz und die bereitgestellten Dienste evolvieren, muss
das Set-Top-Terminal ebenfalls evolvieren, um Teilnehmern alle von
dem Kabelnetz erhältlichen
Dienste, die für
diese Teilnehmer interessant sind, bereitstellen zu können. Diese Set-Top-Box-Evolution
umfasst hauptsächlich
Veränderungen
der Programmierung der Set-Top-Box. Durch das Hochrüsten der
Software oder Firmware der Set-Top-Box kann die Box dazu gebracht
werden, effizienter zu arbeiten oder neue Dienste anzubieten, während das
Kabelnetz evolviert.
-
Um
die Gesamtheit der Set-Top-Boxen in einem Kabelnetz hochzurüsten ist
es vorzuziehen, die neue Programmierung über das Kabelnetz selbst an die
Set-Top-Boxen zu übertragen.
Andernfalls muss ein Techniker jeden Teilnehmer aufsuchen, um die Set-Top-Box
des Teilnehmers hochzurüsten
oder umzuprogrammieren. Derartige Field Upgrades würden offensichtlich
erhebliche Kosten verursachen.
-
Die
Kopfstelle ist die Einrichtung, von der der Kabelnetzbetreiber Fernsehsignale
sendet und andere Dienste über
das Kabelnetz bereitstellt. Aktualisierte Software, die der Gesamtheit
der Set-Top-Terminals
bereitgestellt wird, wird von der Kopfstelle über das Kabelnetz gesendet.
Die Kopfstelle kann auch Nachrichten oder Befehle über das
Kabelnetz an die Set-Top-Terminals senden.
-
In
seiner Verwendung hier bezieht sich ein Programmiercodeobjekt oder
ein Codeobjekt auf ein einzelnes Programm, d. h. ein Stück Software
oder Firmware, das auf ein Set-Top-Terminal heruntergeladen und
von ihm ausgeführt
werden kann. Allgemeiner gesagt bezieht sich ein Datenobjekt auf
jede beliebige Datenstruktur, einschließlich eines Codeobjekts, einer
Nachricht oder eines Befehls, die durch die Kopfstelle über das
Kabelnetz an ein oder mehrere Set-Top-Terminals übertragen wird.
-
Oftmals
muss das Set-Top-Terminal einige neue Codeobjekte, d. h. Software-
oder Firmwarestücke,
erfassen, um neue Dienste bereitzustellen oder die Programmierung
in einem Set-Top-Terminal hochzurüsten. Diese verschiedenen Stücke der
Programmierung können
häufig
zusammenwirken und erfordern einander, um richtig zu funktionieren.
Folglich treten Probleme auf, wenn das Set-Top-Terminal einige aber
nicht alle der Codeobjekte erfasst, die als Teil der Programmierhochrüstung heruntergeladen werden
sollen. Wenn das Set-Top-Terminal mit dem Ausführen der neu erfassten Codeobjekte
beginnt, ist es wahrscheinlich, dass diese Codeobjekte aufgrund der
Abwesenheit anderer voneinander abhängiger Codeobjekte, die das
Set-Top-Terminal erfasst und ausgeführt haben sollte, nicht richtig
oder überhaupt nicht
funktionieren.
-
Alternativ
kann das Implementieren eines neuen Dienstes oder das Verbessern
des Betriebs des Set-Top-Terminals das Ersetzen einer älteren Version
eines Programmierstücks,
d. h. eines Codeobjekts, auf dem Terminal mit einer neueren, verbesserten
Version umfassen. Dahingegen kann es der Fall sein, dass herausgefunden
wird, dass eine neu implementierte Version eines Codeobjekts nicht
richtig arbeitet oder Probleme mit dem System verursacht, wodurch
es den Systembetreiber veranlasst, zu der früheren Version des Objekts zurückkehren
zu wollen, bis die Probleme mit der neuen Version gelöst werden
können.
-
In
jedem dieser Vorgänge
kann ein Set-Top-Terminal zwei Versionen des gleichen Codeobjekts
zu verwalten haben, nachdem die neuere (oder vielleicht ältere) Version
als Reaktion auf einen dahingehenden Befehl von dem Systembetreiber
erfasst wurde. Folglich besteht im Fach Bedarf an einem Verfahren
und einem System zum Steuern des Herunterladens von Codeobjekten
durch ein Set-Top-Terminal in einer Kabelfernsehanlage, um mögliche Konflikte
und den unnötigen
Verbrauch von Speicher, der mit dem Verwalten von zwei verschiedenen
Versionen des gleichen Codeobjekts verbunden ist, zu verhindern.
-
EP-A-0,907,285 offenbart
ein CATV-System, in dem Software von einer Kopfstelle zu ausgewählten Set-Top-Boxen
heruntergeladen werden kann. Die Software kann eine Vielfalt von
Versionsnummern aufweisen, und die Set-Top-Box vergleicht die Versionsnummer
eines empfangenen Softwareobjekts mit der Versionsnummer eines entsprechenden, bereits
residenten Softwareobjekts. Dieses vorherige Dokument sieht jedoch
nicht vor, dass die Kopfstelle steuert, ob eine frühere Version
von der Set-Top-Box gelöscht wird
oder nicht.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist ein Ziel der vorliegenden Erfindung, den oben beschriebenen
und anderen Bedürfnissen zu
entsprechen. Spezifischerweise ist es ein Ziel der vorliegenden
Erfindung, ein Verfahren und ein System zum Steuern des Herunterladens
von Codeobjekten durch ein Set-Top-Terminal in einer Kabelfernsehanlage
bereitzustellen, um mögliche
Konflikte und den unnötigen
Verbrauch von Speicher, der mit dem Verwalten von zwei verschiedenen
Versionen des gleichen Codeobjekts verbunden ist, zu verhindern.
-
Dementsprechend
stellt die Erfindung ein Verfahren zum Verwalten von mehreren Versionen eines
Codeobjekts, die auf ein Set-Top-Terminal heruntergeladen werden,
bereit, wobei das Verfahren Folgendes beinhaltet:
das Empfangen
einer Befehlsnachricht zum Herunterladen von einer Kopfstelle, wobei
das Set-Top-Terminal die Befehlsnachricht zum Herunterladen empfängt, wobei
die Befehlsnachricht zum Herunterladen eine Versionsnummer zum Herunterladen
und einen Säuberungs-Freigabemerker umfasst;
und
das Vergleichen der Versionsnummer zum Herunterladen mit
einer residenten Versionsnummer, wobei das Set-Top-Terminal die
Versionsnummer zum Herunterladen mit einer residenten Versionsnummer
vergleicht, wobei die Versionsnummer zum Herunterladen die Version
eines Codeobjekts zum Herunterladen spezifiziert und die residente
Versionsnummer die Version eines residenten Codeobjekts spezifiziert,
wobei das residente Codeobjekt innerhalb eines Speichers des Set-Top-Terminals
vorliegt,
wobei, wenn der Schritt des Vergleichens zum Schluss
kommt, dass die Versionsnummer zum Herunterladen und die residente
Versionsnummer unterschiedlich sind, das Set-Top-Terminal das Codeobjekt
zum Herunterladen von der Kopfstelle empfängt und das residente Codeobjekt
aus dem Speicher löscht,
wobei die Kopfstelle den Säuberungs- Freigabemerker verwendet,
um das Set-Top-Terminal anzuweisen, das residente Codeobjekt aus
dem Speicher zu löschen.
-
Von
einem anderen Aspekt stellt die vorliegende Erfindung ein System
zum Verwalten von mehreren Versionen eines Codeobjekts bereit, das Folgendes
beinhaltet:
eine Kopfstelle und ein Set-Top-Terminal,
wobei
das Set-Top-Terminal eine Befehlsnachricht zum Herunterladen von
der Kopfstelle empfängt
und die Versionsnummer zum Herunterladen mit einer residenten Versionsnummer
vergleicht,
wobei die Befehlsnachricht zum Herunterladen eine Versionsnummer
zum Herunterladen und einen Säuberungs-Freigabemerker
umfasst, wobei die Versionsnummer zum Herunterladen die Version
eines Codeobjekts zum Herunterladen spezifiziert, und die residente
Versionsnummer die Version eines residenten Codeobjekts spezifiziert,
wobei das residente Codeobjekt innerhalb des Speichers des Set-Top-Terminals
vorliegt, und
wobei, wenn der Vergleich zum Schluss kommt,
dass die Versionsnummer zum Herunterladen und die residente Versionsnummer
unterschiedlich sind, das Set-Top-Terminal das Codeobjekt zum Herunterladen
von der Kopfstelle empfängt
und das residente Codeobjekt aus dem Speicher löscht, wobei die Kopfstelle
den Säuberungs-Freigabemerker verwendet, um
das Set-Top-Terminal anzuweisen, das residente Codeobjekt aus dem
Speicher zu löschen.
-
Bevorzugte
Merkmale und Vorteile der Erfindung werden aus den Ansprüchen und
der folgenden Beschreibung ersichtlich.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
beiliegenden Zeichnungen stellen die vorliegende Erfindung dar und
sind ein Teil der Beschreibung. Zusammen mit der folgenden Beschreibung
zeigen und erklären
die Zeichnungen die Prinzipien der vorliegenden Erfindung.
-
1 ist ein Ablaufdiagramm,
das die grundlegende Sequenz zeigt, in der Programmierobjekte durch
das Set-Top-Terminal gemäß einer
verwandten Erfindung erfasst werden.
-
2 ist ein Blockdiagramm
der grundlegenden Elemente einer Kabelfernsehanlage, mit denen die
vorliegende Erfindung ausgeübt
wird.
-
3 ist ein Ablaufdiagramm,
das ein Verfahren zum Steuern und Freigeben einer Liste von heruntergeladenen
Codeobjekten zeigt.
-
4 ist eine graphische Darstellung
einer Steuerungsnachricht zum Herunterladen.
-
5 ist ein Ablaufdiagramm,
das ein Verfahren zum Verwalten mehrerer Versionen eines Codeobjekts
zeigt, das gemäß der vorliegenden
Erfindung durch ein Set-Top-Terminal in einer Kabelfernsehanlage
heruntergeladen wird.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Eine
verwandte Patentanmeldung, U.S. Aktenzeichen
60/130,328 ,
beschreibt umfassend ein gesetzlich geschütztes Verfahren und System
zum Herunterladen von Programmierobjekten auf Set-Top-Terminals
in einem Kabelsystem.
1 ist ein
Ablaufdiagramm, das die grundlegende Sequenz zeigt, in der Programmierobjekte
durch das Set-Top-Terminal über
das Kabelsystem gemäß diesem
Verfahren erfasst werden.
2 ist
ein Blockdiagramm, das die grundlegenden Elemente einer Kabelfernsehanlage
zeigt, die unter Verwendung der vorliegenden Erfindung arbeitet.
-
Mit
Bezugnahme auf 1 und 2 führt ein Set-Top-Terminal (202; 2) einen automatischen Urladevorgang
direkt nach der Stromverbindung an das Set-Top-Terminal durch. Wie
in 1 gezeigt, beginnt
der Urladevorgang damit, dass das Set-Top-Terminal, ein Programmierstück, bekannt
als der Urladecode (100), ausführt. Der Urladecode ist ein
Programmierobjekt, das in den Festwertspeicher (ROM) des Set-Top-Terminals fabrikmäßig eingebaut ist.
Wie bei aller durch das Set-Top-Terminal
(202) ausgeführter
Programmierung ist der Urladecode in der Speichereinheit (212; 2) gespeichert und wird
durch den Prozessor (211; 2)
ausgeführt.
-
In
einer anderen Alternative initiiert das Set-Top-Terminal (202)
möglicherweise
nicht den in 1 gezeigten
Urladevorgang, bis sowohl Energie als auch ein Datentransportstrom
von der Kopfstelle (201; 2)
mit dem Terminal (202) verbunden worden sind. Das Set-Top-Terminal
kann den Urladecode (100) auch als Reaktion auf ein zum
Beispiel von der Kopfstelle (201), d. h. dem Systembetreiber, empfangenes
Rücksetzsignal
ausführen.
-
Während des
Laufens stellt der Urladecode minimale Programmierung für das Set-Top-Terminal (202)
bereit, um es dem Terminal zu ermöglichen, sich selbst zu voller
Funktionalität
hoch zu bringen. Der Urladecode ermöglicht es dem Set-Top-Terminal (202)
typischerweise nicht, irgendwelche Dienste bereitzustellen, sondern
ist entworfen, um, nur wenn nötig,
höherwertige
Programmierung zu erfassen und zu laden. Der Begriff "Urladecode", wie hier verwendet,
beinhaltet den minimalen Code, der benötigt wird, um diese Funktionalität zu erreichen.
-
Wie
in 1 gezeigt, wird der
Urladecode zuerst den Basisplattformcode (101–105)
erfassen. Der Urladecode wird als erstes den Speicher (212; 2) des Set-Top-Terminals
(202) überprüfen, um zu
bestimmen, ob der Basisplattformcode dort gespeichert ist (101, 102).
Wenn sich der Basisplattformcode im Speicher befindet, wird der
Prozessor (211; 2),
des Set-Top-Terminals (202), der den Urladecode laufen
lässt,
den Basisplattformcode (104) authentifizieren und, in der
Annahme, dass der Code den Authentifizierungsvorgang besteht, mit dem
Ausführen
des Basisplattformcodes (105) beginnen.
-
Wenn
sich der Basisplattformcode nicht im Speicher (102) befindet,
wird das Set-Top-Terminal (202) von der Kopfstelle (201; 2) auf den Datentransportstrom
zugreifen, eine Übertragung
des Basisplattformcodes innerhalb des Kopfstellensignals unter Verwendung
des Tuners (210; 2)
lokalisieren und den Basisplattformcode (103) herunterladen. Der
Basisplattformcode wird vorzugsweise an das Set-Top-Terminal auf
einem Außenband-Transportstrom
zur Speicherung in einem Flash-Speicher-Abschnitt
der Speichereinheit (212) übertragen. Der Basisplattformcode
kann jedoch auf einem Inband-Stueuerkanal übertragen werden.
-
Der
heruntergeladene Plattformcode wird dann wie vorher authentifiziert
(104) und ausgeführt. Der
Urladecode authentifiziert den Basisplattformcode vorzugsweise jedes
Mal erneut, wenn er das Basisplattformobjekt startet, ungeachtet
dessen, ob der Basisplattformcode im Speicher gefunden (212) oder
heruntergeladen worden ist.
-
Sobald
der Basisplattformcode gestartet ist, geht die Steuerung des Terminals
(202) vom Urladecode zum Basisplattformcode. Wenn der Basisplattformcode
ausgeführt
wird, kann das Set-Top-Terminal (202) minimale Funktionalität für Teilnehmer
bereitstellen, zum Beispiel es dem Teilnehmer ermöglichen,
Fernsehprogrammierung von dem Kabelsystem zu empfangen. Damit das
Set-Top-Terminal volle Funktionalität erzielen kann, muss der Basisplattformcode
jedoch eine zusätzliche
Programmierung, die als systemspezifische Programmfamilie bekannt ist,
erfassen. Die systemspezifische Programmfamilie beinhaltet ein Betriebssystemobjekt
und normalerweise zusätzliche
Anwenderprogramme. Diese zusätzlichen
oder „residenten" Anwendungen sind Computerprogramme,
die auf dem Set-Top-Terminal unter dem Betriebssystem laufen gelassen
werden. Die residenten Anwendungen stellen zusätzlich zum Anschauen von Fernsehen
das Leistungsvermögen des
Set-Top-Terminals bereit.
-
Wie
in 1 gezeigt, überprüft (106, 107) der
Basisplattformcode, wenn er als erstes ausgeführt oder durch ein Signal von
der Kopfstelle zurückgesetzt
wird, die Speichereinheit (212), um zu bestimmen, ob ein
Betriebssystemcodeobjekt bereits im Terminal (202) resident
ist. Das Betriebssystem (OS) ist typischerweise von einer dritten
Partei (wie beispielsweise Microsofts WinCE TM)
codiert, was dem Set-Top-Terminal (202) ermöglicht,
die verschiedenen residenten Anwendungen der systemspezifischen
Programmfamilie laufen zu lassen. Der Betriebssystemcode verwendet
typischerweise ein zusätzliches
eingebettetes Codemodul, das von dem Hersteller des Set-Top-Terminals
bereitgestellt wird, und das Betriebssystem mit der bestimmten Hardware
des Set-Top-Terminals verbindet, um das Betriebssystem zur Funktion
freizugeben.
-
Wenn
das Betriebssystemcodeobjekt im Speicher gefunden wird, autorisiert
und authentifiziert der Basisplattformcode den Betriebssystemcode
(109) aus dem Speicher. Wenn sich der Betriebssystemcode
nicht im Speicher befindet, wird das Set-Top-Terminal (202), das den Basisplattformcode
laufen lässt,
auf den Datentransportstrom von der Kopfstelle (201) zugreifen
und ein geeignetes Betriebssystemcodeobjekt (108) lokalisieren
und herunterladen. Das heruntergeladene Objekt wird dann autorisiert
und authentifiziert (109).
-
Der
Betriebssystemcode wird ausgeführt (110),
sobald er autorisiert und authentifiziert ist. Wenn der Betriebssystemcode
laufen gelassen wird, kann das Set-Top-Terminal ebenfalls die zusätzlichen Codeobjekte
oder Anwendungen der systemspezifischen Programmfamilie, die den
Benutzern jegliche Vielfalt von Diensten bereitstellen, ausführen. Der Basisplattformcode
kann konfiguriert sein, um alle Elemente der systemspezifischen
Programmfamilie zusammen mit dem Betriebssystem zu erfassen. Alternativ
kann, wie in 1 dargestellt,
das Betriebssystem, wenn es laufen gelassen wird, konfiguriert sein,
um andere Anwendungen zu erfassen.
-
Der
Prozessor (211), der den Betriebssystemcode laufen lässt, überprüft vorzugsweise
zuerst die Speichereinheit (212) auf die erwarteten Elemente
der systemspezifischen Programmfamilie (111). Wenn sich
die Anwendungen der systemspezifischen Programmfamilie im Speicher
(112) befinden, kann das Betriebssystem diese Anwendungen
(114) autorisieren und authentifizieren und sie ausführen (115). Der
Prozessor (211) wird dann bestimmen, ob er angewiesen wurde,
beliebige zusätzliche
Objekte (112) zu erfassen, einschließlich Anwendungen der systemspezifischen
Programmfamilie, die nicht im Speicher gefunden wurden. Wenn nicht,
ist das Set-Top-Terminal voll funktionsfähig (116). Wenn der Prozessor
(211) jedoch zusätzliche
Objekte erfassen muss, werden diese Anwendungen von dem Kabelnetz
(113) heruntergeladen.
-
Die
heruntergeladenen Anwendungsobjekte werden autorisiert und authentifiziert
(117) und ausgeführt
(118).
-
Sobald
das Betriebssystem und andere Anwendungen der systemspezifischen
Programmfamilie laufen, hat das Set-Top-Terminal volle Funktionalität (116)
erreicht. Wie dem Fachmann klar ersichtlich ist, kann die Liste
der Anwendungen der systemspezifischen Programmfamilie von Set-Top-Terminal
zu Set-Top-Terminal variieren. Ein Teilnehmer, der weniger Dienste
vom Kabelsystem abonniert, benötigt möglicherweise
weniger Anwendungen der systemspezifischen Programmfamilie als ein
Teilnehmer, der für
alle verfügbaren
Dienste zahlt. Zusätzlich
können,
wenn neue Dienste hinzugefügt
werden, Anwendungen zu der systemspezifischen Programmfamilie hinzugefügt werden,
um die neuen Dienste zu unterstützen.
Daher kann die Liste der Anwendungen, die die systemspezifische
Programmfamilie ausmachen, sowohl zeitlich als auch nach Teilnehmerbedürfnissen
und -vorlieben variieren.
-
Wie
oben angemerkt, kann der Basisplattformcode die systemspezifische
Programmfamilie, die aus dem Betriebssystem und residenten Anwendungen
besteht, während
der Initialisierung des Set-Top-Terminals oder nach Empfang eines
dahingehenden Befehls von dem Systembetreiber erfassen. Wenn der
Systembetreiber wünscht,
das Betriebssystem oder residente Anwendungen im Set-Top-Terminal
zu ändern
oder hochzurüsten,
kann der Systembetreiber folglich eine Initialisierungsnachricht über das
Kabelnetz an das Set-Top-Terminal schicken, die den Basisplattformcode
anweist, das Betriebssystem und residente Anwendungen, die dann über das
Kabelnetz gesendet werden, zu erfassen oder erneut zu erfassen.
Alternativ kann der Systembetreiber dem Betriebssystem signalisieren, Elemente
der systemspezifischen Programmfamilie zu erfassen oder erneut zu
erfassen. Diese Nachrichten von der Kopfstelle (201) können zur
gleichen Zeit auch die Liste der Elemente ändern, die die systemspezifische
Programmfamilie des Terminals definieren.
-
Während es
diese Anordnung ermöglicht, das
Leistungsvermögen
des Set-Top-Terminals leicht hochzurüsten, zu ändern oder zu verbessern, können daraus
ebenfalls Unterbrechungen des Dienstes für den Set-Top-Benutzer resultieren.
Wenn zum Beispiel der Basisplattformcode oder der Betriebssystemcode
einen Befehl empfängt,
neue Codeobjekte über
das Kabelnetz zu erfassen, wird dieser Befehl das Codeobjekt oder
Objekte, die erfasst werden sollen, spezifizieren. Wenn mehr als
ein Objekt erfasst werden soll, kann ein Problem auftreten, wenn
nur eines der Objekte tatsächlich
durch das Set-Top-Terminal (202) empfangen wird.
-
Spezifischerweise
kann das Terminal (202) das erste Codeobjekt, das zu erfassen
es angewiesen worden ist, empfangen und freigeben. Wenn dann, aus
welchem Grund auch immer, das Set-Top-Terminal nicht fähig ist,
die anderen Codeobjekte zu erfassen, die herunterzuladen es angewiesen
worden ist, werden die durch diese nicht empfangenen Codeobjekte
durchgeführten
Funktionen für den
Set-Top-Terminal-Benutzer
nicht verfügbar.
Desweiteren sind Codeobjekte häufig
interreliert. Folglich funktioniert das Objekt, das heruntergeladen
worden ist, möglicherweise
ohne die anderen Objekte, die hätten
heruntergeladen werden sollen, aber nicht empfangen wurden, nicht
richtig. Auf ähnliche
Weise können
Freigabe und Ausführung
des neuen Codeobjekts, das empfangen wurde, die Ausführung der Software
oder Firmware, die vorher auf dem Set-Top-Terminal resident war,
störend
beeinflussen, wenn die anderen, zum Herunterladen spezifizierten Objekte
nicht auch erfasst und ausgeführt
werden.
-
Daher
besteht, wie oben angemerkt, ein Bedarf im Fach für ein Verfahren zum
Steuern des Herunterladens von Codeobjekten durch ein Set-Top-Terminal in einer
Kabelfernsehanlage, um die Ausführung
von neu erfassten Codeobjekten zu verhindern, die die Anwesenheit
von anderen Codeobjekten erfordern, die das Set-Top-Terminal erfasst haben
sollte, aber, aus welchem Grund auch immer, nicht fähig war,
herunterzuladen. Die vorliegende Erfindung bewältigt dieses mögliche Problem
auf die folgende Weise.
-
Das
Set-Top-Terminal (202), das den Basis-Plattform- oder Betriebssystemcode
laufen lässt, identifiziert
die Liste der Objekte, die zu erfassen es angewiesen worden ist.
Typischerweise ist diese Liste eine vollständige Liste der Objekte in
der systemspezifischen Programmfamilie. Es ist jedoch möglich, dass
die Liste der zu erfassenden Objekte nur einen Abschnitt der systemspezifischen
Programmfamilie darstellt.
-
Die
Liste der zu erfassenden Objekte und der Befehl, diese zu erfassen,
kann entweder von einer von dem Systembetreiber über die Kopfstelle (201) empfangenen
Nachricht kommen oder kann Teil der Programmierung des Terminals,
entweder des Basisplattform- oder des Betriebssystemcodes, sein.
In jedem Fall beginnt das Set-Top-Terminal (202) mit dem Erfassen
der aufgelisteten Objekte von dem über das Kabelsystem (203)
von der Kopfstelle (201) empfangenen Transportstrom. Das
Terminal (202) wird jedoch keines der empfangenen Objekte
freigeben oder ausführen,
bis alle für
die Erfassung aufgelisteten Objekte erfolgreich empfangen worden
sind. Die Programmierung, die das Herunterladen verwaltet, z. B.
der Basisplattformcode oder der Betriebssystemcode, wird modifiziert
oder rekonfiguriert, um die erfolgreiche Erfassung aller aufgelisteten
Codeobjekte vorauszusetzen, bevor irgendeines der Objekte freigegeben
und ausgeführt
wird. Auf diese Weise verbleibt das Set-Top-Terminal (202)
nicht mit nur einem Teil der Objekte, zu deren Erfassung und Ausführung es
angewiesen worden ist, oder mit einem Objekt, das mit bereits residenter
Programmierung kollidiert.
-
Eine
graphische Darstellung einer Nachricht, die ein Set-Top-Terminal
anweist, neue oder zusätzliche
Codeobjekte herunterzuladen, wird in 4 vorgestellt.
Wie in 4 gezeigt, kann
die Nachricht (401) ebenfalls einen Freigabemerker (402)
nur für eine
Liste enthalten, der das Set-Top-Terminal
(202) anweist, ob es nur die gesamte Liste der erfassten Objekte
freigeben darf oder Objekte annehmen, freigeben und ausführen kann,
die nur einen Teil der zu erfassenden darstellen. Dieser Freigabemerker
(402) nur für
eine Liste braucht nur ein einzelnes Bit innerhalb der Nachricht
(401) zu sein und ist natürlich entweder bejahend (d.
h. "vorliegend" oder "an") oder verneinend
(d. h. "nicht vorliegend" oder "aus"). Mit anderen Worten,
wenn der Freigabemerker nur für eine
Liste vorliegt, werden alle empfangenen Objekte gleichzeitig oder
fast gleichzeitig freigegeben. Daher werden keine Objekte freigegeben,
bis alle Objekte in der Liste richtig empfangen worden sind. Die
gleichzeitige Freigabe aller empfangenen Objekte erzeugt für den Benutzer
des Set-Top-Terminals die kleinstmögliche Unterbrechung des Dienstes.
-
Zusätzlich zum
Freigeben und Ausführen
der empfangenen Codeobjekte nur dann, wenn alle aufgelisteten Objekte
empfangen worden sind, kann das Set-Top-Terminal (202)
programmiert sein, um aufgelistete Objekte, die empfangen worden
sind, aus dem Speicher zu säubern,
wenn nicht alle Programmobjekte in der Objektgruppe empfangen werden.
Mit anderen Worten, wenn das Set-Top-Terminal (202) mit dem
Erfassen einer Liste von Objekten beginnt, die zu erfassen es angewiesen
worden ist, und letztendlich nicht alle der aufgelisteten Objekte
empfangen werden, kann es wünschenswert
sein, jegliche Objekte aus dem Speicher zu entfernen, die erfasst
wurden, die aber aufgrund des Misslingens, alle Objekte in der Objektgruppe
zu erfassen, nicht verwendet oder freigegeben werden. Als eine Option
der vorliegenden Erfindung kann das Set-Top-Terminal (202) folglich
programmiert sein, um aus dem Speicher jegliche Codeobjekte zu löschen, die
als eine Liste von zu empfangenden Objekten erfasst worden sind,
in dem Fall, in dem nicht alle aufgelisteten Objekte letztendlich
empfangen, freigegeben und verwendet werden.
-
Das
Set-Top verwendet den Listen-Identifikator und die Listenversion,
um die Objekte zu identifizieren, die die definierte Objekt-Programmfamilie beinhalten
(aktuellste Liste der Objekte von der Nachricht zum Herunterladen).
Wenn ein Objekt zu einer Liste in einer Nachricht zum Herunterladen
hinzugegeben oder von dieser entfernt wird, wird das Set-Top seine Programmfamilie
von Objekten im Speicher, die mit dieser Liste verbunden ist, durch das
Hinzufügen
oder Entfernen dieses Objekts/dieser Objekte aktualisieren. Zusätzlich kann
die Listenversion verwendet werden, um das Hochrüsten eines Objekts zu forcieren,
wenn die in der Liste der Nachricht zum Herunterladen identifizierte
Objektversion zu der Objektversion, die das Set-Top im Speicher aufweist,
unterschiedlich ist.
-
Diese
Funktion des Säuberns
verschiedener Versionen von Objekten in einer Liste kann auch durch
einen Merker (403), d. h. einen Selbstsäuberungs-Merker, innerhalb
der Nachricht (401) von der Kopfstelle gelenkt werden.
Wiederum braucht der Merker (403) nur ein einzelnes Bit
zu sein, das darstellt, dass der Merker innerhalb der Nachricht
entweder vorliegend oder nicht vorliegend ist. Auf diese Weise hat
der Systembetreiber die Möglichkeit,
all die aufgelisteten Objekte einer unterschiedlichen Version zu
der in der Nachricht zum Herunterladen spezifizierten aus dem Speicher
(212) des Set-Top-Terminals zu löschen.
-
Dieser
Vorgang ist in 3 umrissen.
Wie in 3 gezeigt, beginnt
das Verfahren der vorliegenden Erfindung damit, dass das Set-Top-Terminal
eine Nachricht empfängt,
die es anweist, neue oder zusätzliche
Codeobjekte von dem Kabelsystem (301) zu erfassen. Das
Set-Top-Terminal
prüft zuerst
um zu sehen, ob der Selbstsäuberungs-Merker
in der Nachricht (306) vorliegend oder positiv ist. Wenn
ja, säubert
das Terminal Objekte, die verschiedene Versionen eines Objekts sind,
das zum Herunterladen in der ankommenden Nachricht (309)
spezifiziert ist, auf angemessene Weise. Nach der Säuberung,
oder wenn der Selbstsäuberungs-Merker
negativ (306) ist, versucht das Set-Top, die in der Nachricht
(302) aufgelisteten Codeobjekte herunterzuladen.
-
Wenn
das Herunterladen vollständig
ist oder anderweitig beendet wurde, vielleicht durch einen Zeitablaufzähler, bestimmt
das Terminal, ob alle Objekte, die zu erfassen es angewiesen war,
erfolgreich heruntergeladen wurden (303). Wenn das Terminal darin
gescheitert ist, alle spezifizierten Objekte zu erfassen, kann das
Terminal alle Objekte löschen,
die aus dem Speicher (307) erfasst wurden.
-
Wenn
andererseits alle Objekte erfasst wurden, kann das Set-Top-Terminal dazu übergehen,
die Objekte freizugeben und auszuführen. Das Terminal überprüft zuerst
den Freigabemerker (305) nur für eine Liste. Wenn der Freigabemerker
für eine
Liste vorliegend oder positiv ist, wird die Freigabe der heruntergeladenen
Objekte vorzugsweise gleichzeitig oder fast gleichzeitig durchgeführt, wobei
die Objekte auf der Liste so behandelt werden, als ob sie ein einzelnes
Objekt (304) wären.
-
Wenn
der Freigabemerker für
eine Liste negativ ist, aber alle Objekte erfolgreich empfangen worden
sind, lässt
das Set-Top die erfassten Objekte im Speicher, aber ohne sie freizugeben
oder auszuführen
(308). Wenn nur einige der Objekte, die erfasst werden
sollten, erfolgreich empfangen wurden (303), löscht das
Set-Top-Terminal alle Objekte auf der Liste (307).
-
Unter
den Grundsätzen
der vorliegenden Erfindung kann dann eine systemspezifische oder
Betriebsprogrammfamilie, die aus einer Anzahl von Codeobjekten besteht,
durch die Set-Top-Terminals in einer Kabelfernsehanlage für alle Absichten
und Zwecke übertragen
und verwendet werden, als ob die Programmfamilie ein einzelnes Codeobjekt
wäre. Dieses
Merkmal der vorliegenden Erfindung ermöglicht es Systembetreibern,
Unterbrechungen des Dienstes und Verwirrung zu minimieren, die andernfalls
entstehen könnten,
wenn der Satz Codeobjekte nur teilweise erfolgreich heruntergeladen
wird.
-
Ein
weiterer Aspekt der vorliegenden Erfindung bezieht die Verwaltung
innerhalb des Set-Top-Terminals von mehreren Versionen eines Objekts
ein, die aus einem Herunterladen zu dem Terminal als Reaktion auf
einen Befehl von der Kopfstelle resultieren. Objekte können durch
einen Objekt-Identifikator
und eine Objekt-Version (d. h. object_name und object_version) innerhalb
einer Systemumgebung eindeutig identifiziert werden. Dieser object_name
ist innerhalb des Transportstroms/der Transportströme einzigartig
für ein
einzelnes Set-Top-Terminal (202) verfügbar. Die Befehlsnachricht
zum Herunterladen, die das Set-Top-Terminal (202) anweist, eine
Liste von Objekten zu erfassen, kann ebenfalls sowohl den Objektnamen/einzigartigen
Identifikator und die Version des gewünschten Objekts identifizieren.
Wenn das Set-Top das bestimmte Objekt, aber eine andere Version,
bereits aufweist, kann es wünschenswert
sein, das Objekt, das gegenwärtig
im Set-Top-Terminal resident ist, zu entfernen, und die in der Befehlsnachricht
identifizierte Version zu erfassen. Vorzugsweise umfasst die Befehlsnachricht
von dem Systembetreiber, die das Erfassen neuer Codeobjekte initiiert,
ebenfalls einen Versionssäuberungs-Freigabemerker
(404), der das Set-Top-Terminal
anweist, ob es Codeobjekte, die bereits im Speicher des Set-Top- Terminals resident sind
und die in der Objektliste der Nachricht durch einen einzigartigen
Objekt-Identifikator (d. h. object_name) identifiziert sind, die
aber eine andere Version sind als die, die in der Objektliste der
Nachricht (d. h object version) aufgelistet sind, automatisch säubern soll.
-
Dieser
Aspekt der vorliegenden Erfindung ist in 5 genau beschrieben. Wie in 5 gezeigt, empfängt das
Set-Top-Terminal (202) die Befehlsnachricht zum Herunterladen,
die das Terminal anleitet, ein oder mehrere Codeobjekte von dem
Kabelsystem (501) herunterzuladen. Das Set-Top-Terminal bestimmt
als erstes, ob zusätzlich
zum Identifizieren von Objekten zum Herunterladen die Befehlsnachricht
zum Herunterladen ebenfalls eine Version des Objekts zum Herunterladen
(502) spezifiziert. Wenn die Befehlsnachricht zum Herunterladen
keine Objektversion spezifiziert, geht das Set-Top-Terminal dazu über, die
Codeobjekte wie angewiesen (503, 504) herunterzuladen,
freizugeben und auszuführen.
-
Wenn
die Befehlsnachricht zum Herunterladen die Version von einem Codeobjekt
oder von Codeobjekten, die erfasst werden sollen, spezifiziert, überprüft das Set-Top-Terminal
(202) seinen Speicher (212), um zu bestimmen,
ob das herunterzuladende Objekt im Speicher (212) bereits
resident ist. Wenn sich das Objekt nicht im Speicher (212)
befindet, fährt
das Set-Top-Terminal (202) damit fort, die Befehle zum
Herunterladen auszuführen
und erfasst das Objekt (503). Wenn sich dahingegen das
identifizierte Objekt im Speicher (212) befindet, überprüft das Set-Top-Terminal (202)
die Version des Objekts im Speicher gegen die durch die Befehlsnachricht zum
Herunterladen spezifizierte Version für das zu erfassende (506)
Objekt.
-
Wenn
die Version des Objekts im Speicher mit der Version des Objekts,
die zu erfassen das Terminal angeleitet wurde, übereinstimmt, kann das Set-Top-Terminal
(202) die Anleitung, das Codeobjekt herunterzuladen, ignorieren,
da sich die gewünschte
Version des Objekts bereits im Speicher (212) befindet.
Dies hilft dem Systembetreiber, wenn zum Beispiel neue Set-Top-Terminals
mit bereits installierten neueren Versionen von Codeobjekten zu dem
Kabelsystem hinzugefügt
werden.
-
Der
Systembetreiber kann die älteren
Terminals anweisen, die neuere Version des Codeobjekts zu erfassen,
wobei der Befehl von neueren Terminals, die das Objekt bereits aufweisen,
entsprechend ignoriert wird.
-
Wenn
das Objekt im Speicher eine andere Version ist, entweder neuer oder älter als
die in der Befehlsnachricht zum Herunterladen zum Herunterladen
spezifizierte Version, erfasst das Set-Top-Terminal das spezifizierte
Objekt (507). Das Terminal überprüft dann die Befehlsnachricht
zum Herunterladen auf einen Versionssäuberungs-Freigabemerker (508). Dieser
Merker (404) arbeitet ähnlich
wie die vorher erörterten
Merker und wird in 4 dargestellt.
Wie bei den anderen hier erörterten
Merkern braucht der Versionssäuberungs-Freigabemerker (404)
nur ein Binärzeichen
zu sein, um anzuzeigen, ob das Set-Top-Terminal ein Codeobjekt,
das den gleichen Identifikator trägt, aber eine andere Version ist,
das Codeobjekt, das wie von der Befehlsnachricht zum Herunterladen
befohlen heruntergeladen wurde, automatisch aus dem Speicher löschen sollte.
-
Wenn
der Versionssäuberungs-Freigabemerker
(404) vorliegend oder bejahend ist, löscht das Set-Top-Terminal (202)
automatisch jede Version des erfassten Objekts, die nicht mit der
Version des in der Befehlsnachricht zum Herunterladen spezifierten
Objekts (509) übereinstimmt,
aus dem Speicher. Die neu erfasste Version des Objekts wird dann
freigegeben und ausgeführt
(504).
-
Auf
diese Weise werden mögliche
Konflikte und verschwendeter Speicher, die daraus resultieren können, dass
das Set-Top-Terminal zwei verschiedene Versionen des gleichen Codeobjekts
aufweist, eliminiert.
-
Die
vorhergehende Beschreibung ist nur dargestellt worden, um die Erfindung
darzustellen und zu beschreiben. Sie soll nicht vollständig sein
oder die Erfindung auf eine bestimmte offenbarte Form einschränken. Viele
Modifizierungen und Variationen sind angesichts der obigen Lehre
möglich.
-
Die
bevorzugte Ausführungsform
wurde ausgewählt
und beschrieben, um die Prinzipien der Erfindung und ihre praktische
Anwendung am besten zu erklären.
Die vorhergehende Beschreibung soll es anderen Fachleuten ermöglichen,
die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen
Modifizierungen, wie sie für
die vorgesehene Verwendung geeignet sind, am besten zu benutzen.