DE602004005376T2 - Verfahren zur Ersetzung eines Programms - Google Patents

Verfahren zur Ersetzung eines Programms Download PDF

Info

Publication number
DE602004005376T2
DE602004005376T2 DE602004005376T DE602004005376T DE602004005376T2 DE 602004005376 T2 DE602004005376 T2 DE 602004005376T2 DE 602004005376 T DE602004005376 T DE 602004005376T DE 602004005376 T DE602004005376 T DE 602004005376T DE 602004005376 T2 DE602004005376 T2 DE 602004005376T2
Authority
DE
Germany
Prior art keywords
program
pod
java
information
identifier
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 - Fee Related
Application number
DE602004005376T
Other languages
English (en)
Other versions
DE602004005376D1 (de
Inventor
Takakazu Hirakata-shi Osaka Shiomi
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE602004005376D1 publication Critical patent/DE602004005376D1/de
Application granted granted Critical
Publication of DE602004005376T2 publication Critical patent/DE602004005376T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)
  • Circuits Of Receivers In General (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Aktualisierungsverfahren zum Herunterladen eines Programms und zum Ersetzen eines vorhandenen Programms durch das heruntergeladene Programm und insbesondere zum Abarbeiten eines heruntergeladenen Programms im Digitalfernsehen durch vorübergehendes Ersetzen eines vorhandenen Programms durch das heruntergeladene Programm.
  • 2. Beschreibung des Standes der Technik
  • Herkömmliche Verfahren zum Herunterladen und Aktualisieren von Programmen im Digitalfernsehen sind in der japanischen Offenlegungsschrift Nr. 10-326192 und in der japanischen Offenlegungsschrift Nr. 2003-122578 beschrieben. 1 ist ein Diagramm. das den Aufbau eines bestehenden digitalen Kabelfernsehsystems zum Herunterladen und Abarbeiten von Programmen zeigt. Dieses System besteht aus einer Kopfstelle 4110 und zwei Endgeräten 4120 und 4130. Die Kopfstelle 4110 speichert drei Programme, und zwar ein Programm A 4111, ein Programm B 4112 und ein Programm C 4113, und sendet diese Programme an die Endgeräte 4120 und 4130. Das Endgerät 4120 ist mit einem Prozessor 4124 zum Abarbeiten von drei vorgespeicherten Programmen versehen, und zwar eines Programms A 4121, eines Programms B 4122 und eines Programms C 4120 und 4130. Ebenso ist das Endgerät 4130 mit einem Prozessor 4134 zum Abarbeiten von drei vorgespeicherten Programmen versehen, und zwar eines Programms A 4131, eines Programms B 4132 und eines Programms C 4133. Nach Empfang eines neuen Programms von der Kopfstelle 4110 ersetzen die Endgeräte 4120 und 4130 die vorhandenen Programme durch dieses neue Programm, speichern das aktualisierte Programm und arbeiten es von da an ab. Wenn beispielsweise die Kopfstelle 4110 das neue Programm A 4111 an die Endgeräte 4120 und 4130 sendet, ersetzen die Endgeräte 4120 und 4130 die Programme A 4121 und 4131 durch dieses Programm A 4111. Von da an arbeiten die Prozessoren 4124 und 4134 das aktualisierte Programm A 4111 anstatt der Programme A 4121 und A 4131 ab. Wie vorstehend dargelegt, wird es durch Aktualisieren von Programmen, die von Endgeräten gehalten werden, möglich, deren Funktionen zu aktualisieren sowie diesen Endgeräten neue Funktionen zu verleihen.
  • Da jedoch vorhandene Programme nach vorhandenen Verfahren aktualisiert werden, ist es nicht leicht, die Programme in den Zustand vor ihrer Aktualisierung zurückzubringen. Wenn also ein Endgerät eine bestimmte Funktion nur für einen begrenzten Zeitraum oder eine begrenzte Zeitdauer erhalten soll, müssen die Programme erneut von der Kopfstelle heruntergeladen werden, um sie wiederherzustellen. In der Regel dauert das Herunterladen von Programmen sehr lange und es hindert den Nutzer daran, eine andere Funktion des Endgeräts zu nutzen. Dadurch entsteht das Problem, dass der Nutzer das Endgerät nicht nutzen kann, wenn dieser Nutzer Programme häufiger herunterladen muss.
  • Verwiesen sei auf „OpenCable Common Download Specification" („Allgemeine OpenCable-Download-Spezifikation"), Cable Television Laboratories, Inc., 26.11.2002, XP002351350, die die vorkennzeichnenden Merkmale der Erfindung beschreibt.
  • Kurze Darstellung der Erfindung
  • Es wäre zweckmäßig, ein Programmersetzungsverfahren zur Verfügung zu stellen, mit dem ein Programm in einem Rundfunkempfangsgerät aktualisiert werden kann und ein vorhandenes Programm in den Zustand vor seiner Aktualisierung zurückgebracht werden kann.
  • Die vorliegende Erfindung stellt ein Programmersetzungsverfahren zum Ersetzen eines Programms in einem Rundfunkempfangsgerät zur Verfügung, wobei das Programm so registriert wird, dass eine Nachrichtenübertragung zwischen dem Programm und einem an dem Rundfunkempfangsgerät vorgesehenen aufsteckbaren POD freigegeben wird, wobei das Verfahren die folgenden Schritte in dem Rundfunkempfangsgerät aufweist: Registrieren eines ersten Programms, sodass die Nachrichtenübertragung zwischen dem ersten Programm und dem POD freigegeben wird, wobei das erste Pragramm einen Identifikator zum Identifizieren eines Programmtyps hat; Informieren eines zweiten Programms, dass die Nachrichtenübertragung zwischen dem zweiten Programm und dem POD beendet werden soll, wobei das zweite Programm einen Identifikator hat, der der Gleiche wie der Identifikator des ersten Programms ist und bereits in dem Rundfunkempfangsgerät vorhanden ist; und Beenden der Nachrichtenübertragung zwischen dem zweiten Programm und dem POD. Dadurch kann auch dann, wenn das erste Programm, das ein neues Programm für die Aktualisierung ist, heruntergeladen wird, das zweite Programm, das ein vorhandenes Programm ist, problemlos in den Zustand vor seiner Aktualisierung zurückgebracht werden, da dieses zweite Programm gespeichert bleibt, ohne gelöscht zu werden. Man beachte, dass „POD" eine als CableCARDTM bezeichnete Karte zum Entwürfeln und dergleichen ist.
  • Hier kann das vorgenannte Programmersetzungsverfahren weiterhin einen Schritt des Informierens des ersten Programms, dass die Nachrichtenübertragung zwischen dem ersten Programm und dem POD freigegeben worden ist, aufweisen. Dadurch kann das erste Programm erfahren, dass die Nachrichtenübertragung zu und von dem POD freigegeben worden ist und daher die Nachrichtenübertragung zu und von dem POD gestartet werden kann.
  • Man beachte, dass die Nachrichtenübertragung zwischen dem zweiten Programm und dem POD dadurch beendet wird, dass das zweite Programm, das so registriert worden ist, dass die Nachrichtenübertragung zwischen dem zweiten Programm und dem POD freigegeben wird, entregistriert wird. Das erste Programm kann mit Rundfunkwellen übertragen werden.
  • Das zweite Programm, dem mitgeteilt worden ist, dass die Nachrichtenübertragung zwischen dem zweiten Programm und dem POD beendet werden soll, kann eine Verarbeitung durchführen, die zum Entregistrieren des zweiten Programms erforderlich ist, das so registriert worden ist, dass die Nachrichtenübertragung zwischen dem zweiten Programm und dem POD freigegeben wird. Dadurch kann das zweite Programm eine Nachverarbeitung durchführen, die nach der Aktualisierung durchgeführt werden muss.
  • Man beachte, dass die vorliegende Erfindung nicht nur als Programmersetzungsverfahren mit der vorstehenden Konfiguration verkörpert werden kann, sondern auch als Programmersetzungsvorrichtung, bei der jeder der Schritte in dem vorstehenden Programmersetzungsverfahren als Schaltkreis und dergleichen implementiert ist, als Programm, das einen Computer jeden der Schritte in dem vorstehenden Programmersetzungsverfahren ausführen lässt, und als maschinenlesbares Aufzeichnungsmedium, in dem das Programm gespeichert wird.
  • Kurze Beschreibung der Zeichnungen
  • Diese und weitere Ziele, Vorzüge und Merkmale der Erfindung dürften aus der nachstehenden Beschreibung in Verbindung mit den beigefügten Zeichnungen hervorgehen, die eine spezielle Ausführungsform der Erfindung zeigen. In den Zeichnungen sind:
  • 1 ein Diagramm, das den Aufbau einer herkömmlichen Programmersetzungsvorrichtung zeigt;
  • 2 ein Diagramm, das den Aufbau eines Kabelfernsehsystems nach einer ersten Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 eine Tabelle, die ein Beispiel für die Nutzung von Frequenzbändern zeigt, die für die Übertragung zwischen einer Kopfstelle und Endgeräten in dem erfindungsgemäßen Kabelfernsehsystem verwendet werden sollen;
  • 4 eine Tabelle, die ein Beispiel für die Nutzung von Frequenzbändern zeigt, die für die Übertragung zwischen der Kopfstelle und den Endgeräten in dem erfindungsgemäßen Kabelfernsehsystem verwendet werden sollen;
  • 5 eine Tabelle, die ein Beispiel für die Nutzung von Frequenzbändern zeigt, die für die Übertragung zwischen der Kopfstelle und den Endgeräten in dem erfindungsgemäßen Kabelfernsehsystem verwendet werden sollen;
  • 6 ein Diagramm, das eine Konfiguration eines Endgeräts in dem erfindungsgemäßen Kabelfernsehsystem zeigt;
  • 7 eine Darstellung, die eine beispielhafte Außenansicht des Endgeräts in dem erfindungsgemäßen Kabelfernsehsystem zeigt;
  • 8 eine Darstellung, die eine erfindungsgemäße Hardware-Konfiguration eines POD 504 zeigt;
  • 9 eine Darstellung, die die Gestaltung eines erfindungsgemäßen Programms zeigt, das in dem POD 504 gespeichert wird;
  • 10 eine Darstellung, die den Aufbau eines Pakets zeigt, das im MPEG-Standard definiert ist;
  • 11 eine Darstellung, die ein Beispiel für einen MPEG2-Transportstrom zeigt;
  • 12 eine Darstellung, die eine beispielhafte Außenansicht einer Eingabe-Einheit 513 für den Fall zeigt, dass sie in Form eines Bedienfelds gestaltet ist;
  • 13 ein Diagramm, das die Gestaltung des Programms zeigt, das in einem erfindungsgemäßen Endgerät 500 gespeichert wird;
  • 14(1) eine Darstellung, die ein Beispiel für eine Bildschirmseite zeigt, die von einem erfindungsgemäßen Bildschirm 509 angezeigt wird;
  • 14(2) eine Darstellung, die ein Beispiel für eine Bildschirmseite zeigt, die von dem erfindungsgemäßen Bildschirm 509 angezeigt wird;
  • 15 eine Darstellung, die ein Beispiel für Informationen zeigt, die in einer erfindungsgemäßen externen Speichereinheit 510 gespeichert werden;
  • 16 eine Darstellung, die ein Beispiel für Informationen zeigt, die in einer erfindungsgemäßen Hauptspeichereinheit 511 gespeichert werden;
  • 17 ein schematisches Diagramm, das den Inhalt einer erfindungsgemäßen PAT zeigt, die im MPEG2-Standard festgelegt ist;
  • 18 ein schematisches Diagramm, das den Inhalt einer erfindungsgemäßen PMT zeigt, die im MPEG2-Standard festgelegt ist;
  • 19 ein schematisches Diagramm, das den Inhalt einer erfindungsgemäßen AIT zeigt, die im DVB-MHP-Standard festgelegt ist;
  • 20 ein schematisches Diagramm, das ein erfindungsgemäßes Dateisystem zeigt, das im DSMCC-Format übertragen werden soll;
  • 21 ein schematisches Diagramm, das den erfindungsgemäßen Inhalt einer XAIT zeigt;
  • 22 eine Darstellung, die ein Beispiel für Informationen zeigt, die in der erfindungsgemäßen externen Speichereinheit 510 gespeichert werden;
  • 23 eine Darstellung, die ein Beispiel für eine Bildschirmseite zeigt, die von dem erfindungsgemäßen Bildschirm 509 angezeigt wird;
  • 24 eine Darstellung, die ein Beispiel für Informationen zeigt, die in der erfindungsgemäßen externen Speichereinheit 510 gespeichert werden;
  • 25 eine Tabelle, die Betriebsartcodes für Java-Programme und deren Bedeutungen gemäß der vorliegenden Erfindung zeigt;
  • 26 eine Darstellung, die ein Beispiel für eine Bildschirmseite zeigt, die von dem erfindungsgemäßen Bildschirm 509 angezeigt wird;
  • 27 eine Darstellung, die ein Beispiel für eine Bildschirmseite zeigt, die von dem erfindungsgemäßen Bildschirm 509 angezeigt wird;
  • 28 eine Darstellung, die ein Beispiel für Informationen zeigt, die in der erfindungsgemäßen externen Speichereinheit 510 gespeichert werden;
  • 29 ein Ablaufdiagramm, das die Funktionsweise einer Pod Lib 1205e beim Annehmen der Registrierung von Java-Programmen bei der ersten Ausführungsform zeigt;
  • 30 ein Ablaufdiagramm, das die Funktionsweise der Pod Lib 1205e beim Annehmen der Registrierung von Java-Programmen bei der ersten Ausführungsform zeigt;
  • 31(1) eine schematische Darstellung, die die Nachrichtenübertragung von dem POD 504 in der ersten Ausführungsform zeigt;
  • 31(2) eine schematische Darstellung, die die Nachrichtenübertragung von dem POD 504 in der ersten Ausführungsform zeigt;
  • 31(3) eine schematische Darstellung, die die Nachrichtenübertragung von dem POD 504 in der ersten Ausführungsform zeigt;
  • 32(1) eine schematische Darstellung, die die Nachrichtenübertragung von dem POD 504 in der ersten Ausführungsform zeigt;
  • 32(2) eine schematische Darstellung, die die Nachrichtenübertragung von dem POD 504 in der ersten Ausführungsform zeigt;
  • 33(1) eine schematische Darstellung, die die Nachrichtenübertragung von dem POD 504 in der ersten Ausführungsform zeigt;
  • 33(2) eine schematische Darstellung, die die Nachrichtenübertragung von dem POD 504 in der ersten Ausführungsform zeigt;
  • 33(3) eine schematische Darstellung, die die Nachrichtenübertragung von dem POD 504 in der ersten Ausführungsform zeigt;
  • 34 eine Darstellung, die ein Beispiel für Informationen zeigt, die in der erfindungsgemäßen externen Speichereinheit 510 gespeichert werden;
  • 35 ein Ablaufdiagramm, das die Funktionsweise der Pod Lib 1205e beim Annehmen der Löschung von Java-Programmen bei der ersten Ausführungsform zeigt;
  • 36 ein Ablaufdiagramm, das die Funktionsweise der Pod Lib 1205e beim Annehmen der Löschung von Java-Programmen bei der ersten Ausführungsform zeigt;
  • 37 ein Ablaufdiagramm, das einen Teil der Operationen der Pod Lib 1205e beim Annehmen der Registrierung von Java-Programmen bei der ersten Ausführungsform zeigt;
  • 38 ein Ablaufdiagramm, das einen Teil der Operationen der Pod Lib 1205e beim Annehmen der Registrierung von Java-Programmen bei der ersten Ausführungsform zeigt;
  • 39 ein Ablaufdiagramm, das Funktionen zeigt, die von dem Zeitpunkt, zu dem das Endgerät 500 eingeschaltet wird, bis zu dem Zeitpunkt, zu dem die Nachrichtenübertragung von dem POD 504 geändert wird, ausgeführt werden sollen;
  • 40 ein Ablaufdiagramm, das Funktionen zeigt, die von dem Zeitpunkt, zu dem das Endgerät 500 eingeschaltet wird, bis zu dem Zeitpunkt, zu dem die Nachrichtenübertragung von dem POD 504 geändert wird, ausgeführt werden sollen;
  • 41 eine Darstellung, die beispielhafte Wege für die Nachrichtenübertragung zwischen Java-Programmen auf dem Endgerät 500 und Unterprogrammen auf dem POD 504 zeigt;
  • 42 ein Ablaufdiagramm, das Operationen der Pod Lib für den Fall zusammenfasst, dass ein Java-Programm in der Pod Lib registriert wird; und
  • 43 ein Ablaufdiagramm, das Operationen der Pod Lib für den Fall zusammenfasst, dass die Pod Lib die Registrierung eines Java-Programms löscht (d. h., die Nachrichtenübertragung zu/von dem in der externen Speichereinheit registrierten Java-Programm entregistriert).
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Nachstehend werden die bevorzugten Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die Zeichnungen näher beschrieben.
  • Erste Ausführungsform
  • Nachstehend wird eine erste Ausführungsform des erfindungsgemäßen Kabelfernsehsystems unter Bezugnahme auf die Figuren beschrieben. 2 ist ein Blockdiagramm, das die Beziehung zwischen Vorrichtungen zeigt, die das Kabelfernsehsystem bilden, und zwar eine Kopfstelle 101 und drei Endgeräte A 111, B 112 und C 113. Bei der vorliegenden Ausführungsform sind drei Endgeräte mit einer Kopfstelle verbunden, aber die vorliegende Erfindung kann auch realisiert werden, wenn Endgeräte in einer beliebigen Anzahl mit der Kopfstelle verbunden sind.
  • Die Kopfstelle 101 sendet Rundfunksignale, wie etwa Video-, Audio- und Datensignale, an mehrere Endgeräte und empfängt Daten, die von den Endgeräten gesendet werden. Um das zu realisieren, werden Frequenzbänder für die Datenübertragung zwischen der Kopfstelle 101 und dem Endgerät A 111, dem Endgerät B 112 und dem Endgerät C 113 geteilt. 3 ist eine Tabelle, die ein Beispiel für geteilte Frequenzbänder zeigt. Es gibt grob gesagt zwei Arten von Frequenzbändern: Außerband- (mit OOB abgekürzt) und Inband-Frequenzen. Ein Frequenzband von 5 bis 130 MHz wird OOB zugewiesen, um hauptsächlich für den Datenaustausch zwischen der Kopfstelle 101 und dem Endgerät A 111, dem Endgerät B 112 und dem Endgerät C 113 verwendet zu werden. Ein Frequenzband von 130 MHz bis 864 MHz wird dem Inband zugewiesen, um hauptsächlich für Rundfunkkanäle mit Video und Audio verwendet zu werden. Das Modulationsverfahren QPSK wird für OOB verwendet, während QAM64 für das Inband verwendet wird. Modulationsverfahren werden hier nicht näher erläutert, da es sich hier um bekannte Verfahren handelt, die sich weniger auf die vorliegende Erfindung beziehen. 4 zeigt ein spezielleres Beispiel dafür, wie das OOB-Frequenzband genutzt wird. Ein Frequenzband von 70 MHz bis 74 MHz wird zum Senden von Daten von der Kopfstelle 101 verwendet. In diesem Fall empfangen alle Endgeräte A 111, B 112 und C 113 die gleichen Daten von der Kopfstelle 101. Ein Frequenzband von 10,0 MHz bis 10,1 MHz wird zum Senden von Daten von dem Endgerät A 111 an die Kopfstelle 101 verwendet. Ein Frequenzband von 10,1 MHz bis 10,2 MHz wird zum Senden von Daten von dem Endgerät B 112 an die Kopfstelle 101 verwendet. Ein Frequenzband von 10,2 MHz bis 10,3 MHz wird zum Senden von Daten von dem Endgerät C 113 an die Kopfstelle 101 verwendet. Dadurch können Daten, die für jedes Endgerät eindeutig sind, von dem Endgerät A 111, dem Endgerät B 112 und dem Endgerät C 113, an die Kopfstelle 101 gesendet werden. 5 zeigt ein Beispiel für die Nutzung des Inband-Frequenzbands. Die Frequenzbänder 150–156 MHz und 156–162 MHz werden einem Fernsehkanal 1 bzw. einem Fernsehkanal 2 zugewiesen, und die nachfolgenden Frequenzen werden den Fernsehkanälen in 6-MHz-Intervallen zugewiesen. 310 MHz und die nachfolgenden Frequenzen werden den Funkkanälen in 1-MHz-Intervallen zugewiesen. Jeder der vorgenannten Kanäle kann für den Analog- oder Digitalrundfunk verwendet werden. Beim Digitalrundfunk werden Daten im MPEG2-Transportpaket-Format gemäß der MPEG2-Spezifikation übertragen, und in diesem Fall können außer Audio- und Videodaten auch Daten übertragen werden, die für verschiedene Datenrundfunksysteme bestimmt sind.
  • Die Kopfstelle 101 ist mit einer QPSK-Modulationseinheit, einer QAM-Modulationseinheit und dergleichen versehen, um Rundfunksignale zu übertragen, die für die einzelnen Frequenzbereiche geeignet sind. Außerdem ist die Kopfstelle 101 mit einer QPSK-Demodulationseinheit zum Empfangen von Daten von den Endgeräten versehen. Ferner wird unterstellt, dass die Kopfstelle 101 mit verschiedenen Vorrichtungen versehen ist, die mit den vorgenannten Modulationseinheiten und der vorgenannten Demodulationseinheit zusammenhängen. Diese werden jedoch nicht näher beschrieben, da die vorliegende Erfindung hauptsächlich die Endgeräte betrifft.
  • Das Endgerät A 111, das Endgerät B 112 und das Endgerät C 113 empfangen Rundfunksignale, die von der Kopfstelle 101 gesendet werden, und geben sie wieder. Außerdem senden das Endgerät A 111, das Endgerät B 112 und das Endgerät C 113 Daten, die für jedes Endgerät eindeutig sind, an die Kopfstelle 101. Bei der vorliegenden Ausführungsform sollen diese drei Endgeräte die gleiche Konfiguration haben.
  • 6 ist ein Blockdiagramm, das die Hardware-Konfiguration jedes Endgeräts zeigt. 500 ist ein Endgerät, das aus einer QAM-Demodulationseinheit 501, einer QPSK-Demodulationseinheit 502, einer QPSK-Modulationseinheit 503, einem TS-Decodierer 505, einem Audio-Decodierer 506, einem Lautsprecher 507, einem Video-Decodierer 508, einem Bildschirm 509, einer externen Speichereinheit 510, einer Hauptspeichereinheit 511, einem ROM 512, einer Eingabe-Einheit 513 und einer CPU 514 besteht. Außerdem kann ein POD 504 an das Endgerät 500 angebracht und von diesem entfernt werden.
  • 7 zeigt als beispielhafte Außenansicht des Endgeräts 500 ein Flachbildschirm-Fernsehgerät.
  • 601 ist ein Stahlgehäuse des Flachbildschirm-Fernsehgeräts, in dem alle Komponenten des Endgeräts 500 außer dem POD 504 untergebracht sind.
  • 602 ist ein Bildschirm, der dem Bildschirm 509 in 6 entspricht.
  • 603 ist eine Bedienfeldeinheit, die aus mehreren Tasten besteht und der Eingabe-Einheit 513 in 6 entspricht.
  • 604 ist ein Signaleingangsanschluss, an den ein Leitungskabel angeschlossen ist, zum Senden/Empfangen von Signalen an die und von der Kopfstelle 101. Der Signaleingangsanschluss ist mit der QAM-Demodulationseinheit 501, der QPSK-Demodulationseinheit 502 und der QPSK-Modulationseinheit 503 verbunden, die in 6 gezeigt sind.
  • 605 ist eine POD-Karte, die dem POD 504 in 6 entspricht. Der POD 504 wird unabhängig von dem Endgerät 500 verkörpert und kann an dem Endgerät 500 angebracht und von diesem entfernt werden, wie bei der POD-Karte 605 in 7. Der POD 504 wird später näher erläutert.
  • 606 ist ein Einsteckschlitz, in den die POD-Karte 605 eingesteckt wird.
  • In 6 demoduliert die QAM-Demodulationseinheit 501 ein Signal, das in der Kopfstelle 101 QAM-moduliert worden ist und von der Kopfstelle 101 gesendet worden ist, entsprechend Abstimmungsinformationen, die eine von der CPU 514 festgelegte Frequenz enthalten, und sendet das Ergebnis an den POD 504.
  • Die QPSK-Demodulationseinheit 502 demoduliert ein Signal, das in der Kopfstelle 101 QPSK-moduliert worden ist und von der Kopfstelle 101 gesendet worden ist, entsprechend Abstimmungsinformationen, die eine von der CPU 514 festgelegte Frequenz enthalten, und sendet das Ergebnis an den POD 504.
  • Die QPSK-Modulationseinheit 503 QPSK-demoduliert ein Signal, das von dem POD 504 gesendet wird, entsprechend Demodulationsinformationen, die eine von der CPU 514 festgelegte Frequenz enthalten, und sendet das Ergebnis an die Kopfstelle 101.
  • Wie in 7 gezeigt, kann der POD 504 aus dem Hauptteil des Endgeräts 500 herausgenommen werden. Ein Beispiel für den POD 504 ist eine als CableCARDTM bezeichnete Karte zum Entwürfeln und dergleichen. Die Verbindungsschnittstelle zwischen dem Hauptteil des Endgeräts 500 und dem POD 504 ist in der OpenCableTM-HOST-POD-Schnittstellen-Spezifikation (OC-SP-HOSTPOD-IF-112-030210) und in Spezifikationen definiert, auf die von dieser Spezifikation verwiesen wird. Daher erfolgt hier keine nähere Beschreibung, und es werden nur Komponenten erläutert, die mit der vorliegenden Erfindung zusammenhängen.
  • 8 ist ein Blockdiagramm, das die innere Konfiguration des POD 504 zeigt. Der POD 504 besteht aus einer ersten Descrambler-Einheit 701, einer zweiten Descrambler-Einheit 702 einer Scrambler-Einheit 703, einer Hauptspeichereinheit 704, einer externen Speichereinheit 705 und einer CPU 706.
  • Die erste Descrambler-Einheit 701 empfängt ein verwürfeltes Signal von der QAM-Demodulationseinheit 501 des Endgeräts 500 gemäß einem Befehl von der CPU 706 und entwürfelt dieses Signal. Dann sendet die erste Descrambler-Einheit 701 das entwürfelte Signal an den TS-Decodierer 505 des Endgeräts 500. Informationen, die für den Descrambler benötigt werden, wie etwa ein Schlüssel, werden bei Bedarf von der CPU 706 bereitgestellt. Insbesondere überträgt die Kopfstelle 101 mehrere Zahlkanäle, und wenn der Nutzer das Recht zum Ansehen dieser Zahlkanäle erworben hat, empfängt die erste Descrambler-Einheit 701 die benötigten Informationen, wie etwa einen Schlüssel, von der CPU 706 und führt das Entwürfeln durch. Dadurch kann sich der Nutzer diese Zahlkanäle ansehen. Wenn die benötigten Informationen, wie etwa ein Schlüssel, nicht bereitgestellt werden, sendet die erste Descrambler-Einheit 701 das empfangene Signal direkt an den TS-Decodierer 505, ohne das Entwürfeln durchzuführen.
  • Die zweite Descrambler-Einheit 702 empfängt ein verwürfeltes Signal von der QPSK-Demodulationseinheit 502 des Endgeräts 500 entsprechend dem Befehl von der CPU 706 und entwürfelt dieses Signal. Dann sendet die zweite Descrambler-Einheit 702 die entwürfelten Daten an die CPU 706.
  • Die Scrambler-Einheit 703 verwürfelt die von der CPU 706 empfangenen Daten entsprechend dem Befehl von der CPU 706 und sendet das Ergebnis an die QPSK-Modulationseinheit 503 des Endgeräts 500.
  • Die Hauptspeichereinheit 704, deren konkrete Komponente ein Hauptspeicher, wie etwa ein RAM, ist, ist zum Zwischenspeichern von Daten bestimmt, wenn die CPU 706 die Verarbeitung durchführt.
  • Die externe Speichereinheit 705, deren konkrete Komponente ein externer Speicher, wie etwa ein Flash-ROM, ist, ist zum Speichern eines Programms, das von der CPU 706 abgearbeitet werden soll, sowie zum Speichern von Daten bestimmt, die niemals gelöscht werden sollten, auch nicht beim Abschalten des Stroms.
  • Die CPU 706 arbeitet das in der externen Speichereinheit 705 gespeicherte Programm ab. Das Programm besteht aus mehreren Unterprogrammen. 9 zeigt ein Beispiel für das in der externen Speichereinheit 705 gespeicherte Programm. In 9 besteht ein Programm 800 aus mehreren Unterprogrammen, die ein Hauptprogramm 801, ein Initialisierungsunterprogramm 802, ein Netz-Unterprogramm 803, ein Wiedergabe-Unterprogramm 804 und ein PPV-Unterprogramm 805 umfassen.
  • Hier bezeichnet PPV, die Abkürzung von Pay per View, einen Dienst, der es dem Nutzer gestattet, sich ein bestimmtes Programm, wie etwa einen Film, gebührenpflichtig anzusehen. Wenn der Nutzer seine persönliche Kennzahl eingibt, wird der Kopfstelle 101 mitgeteilt, dass der Nutzer das Recht zum Ansehen des Programms erworben hat, und das Programm wird verwürfelt. Dadurch kann sich der Nutzer das Programm ansehen. Damit sich der Nutzer das Programm ansehen kann, muss er zu einem späteren Termin für den Erwerb zahlen.
  • Das Hauptprogramm 801, das das Unterprogramm ist, das von der CPU 706 beim Einschalten zuerst aktiviert wird, steuert die anderen Unterprogramme.
  • Das Initialisierungsunterprogramm 802, das von dem Hauptprogramm 801 aktiviert wird, wenn der Strom eingeschaltet wird, führt einen Informationsaustausch und dergleichen mit dem Endgerät 500 durch, um die Initialisierungsverarbeitung durchzuführen. Diese Initialisierungsverarbeitung wird in der OpenCableTM-HOST-POD-Schnittstellen-Spezifikation (OC-SP-HOSTPOD-IF-112-030210) und in Spezifikationen, auf die von dieser Spezifikation verwiesen wird, näher definiert. Das Initialisierungsunterprogramm 802 führt darüber hinaus eine Initialisierungsverarbeitung durch, die nicht in diesen Spezifikationen definiert ist. Hier wird ein Teil dieser Initialisierungsverarbeitung vorgestellt. Wenn der Strom eingeschaltet wird, teilt das Initialisierungsunterprogramm 802, über die CPU 514 des Endgeräts 500, der QPSK-Demodulationseinheit 502 eine erste Frequenz mit, die in der externen Speichereinheit 705 gespeichert ist. Die QPSK-Demodulationseinheit 502 führt eine Abstimmung unter Verwendung der bereitgestellten ersten Frequenz durch und sendet das resultierende Signal an die zweite Descrambler-Einheit 702. Außerdem versorgt das Initialisierungsunterprogramm 802 die zweite Descrambler-Einheit 702 mit Entwürfelungsinformationen, wie etwa einem ersten Schlüssel, die in der externen Speichereinheit 705 gespeichert sind. Dadurch führt die zweite Descrambler-Einheit 702 das Entwürfeln durch und sendet das Ergebnis an die CPU 706, die das Initialisierungsunterprogramm 802 abarbeitet. Dadurch kann das Initialisierungsunterprogramm 802 die Informationen empfangen. Bei der vorliegenden Ausführungsform empfängt das Initialisierungsunterprogramm 802 Informationen über das Netz-Unterprogramm 803. Das wird später näher beschrieben.
  • Darüber hinaus teilt das Initialisierungsunterprogramm 802, über die CPU 514 des Endgeräts 500, der QPSK-Modulationseinheit 503 eine zweite Frequenz mit, die in der externen Speichereinheit 705 gespeichert ist. Das Initialisierungsunterprogramm 802 versorgt die Scrambler-Einheit 703 mit Verwürfelungsinformationen, die in der externen Speichereinheit 705 gespeichert sind. Wenn das Initialisierungsunterprogramm 802 über das Netz-Unterprogramm 803 die Scrambler-Einheit 703 mit zu sendenden Informationen versorgt, verwürfelt die Scrambler-Einheit 703 die Daten unter Verwendung der bereitgestellten Verwürfelungsinformationen und stellt die verwürfelten Daten für die QPSK-Modulationseinheit 503 bereit. Die QPSK-Modulationseinheit 503 moduliert die empfangenen verwürfelten Informationen und sendet die modulierten Informationen an die Kopfstelle 101.
  • Dadurch kann das Initialisierungsunterprogramm 802 eine bidirektionale Kammunikation mit der Kopfstelle 101 über das Endgerät 500, die zweite Descrambler-Einheit 702, die Scrambler-Einheit 703 und das Netz-Unterprogramm 803 durchführen.
  • Das Netz-Unterprogramm 803, das von mehreren Unterprogrammen, wie etwa dem Hauptprogramm 801 und dem Initialisierungsunterprogramm 802 verwendet wird, ist ein Unterprogramm, das zum Durchführen einer bidirektionalen Kommunikation mit der Kopfstelle 101 bestimmt ist. Insbesondere verhält sich das Netz-Unterprogramm 803 so, als ob andere Unterprogramme, die das Netz-Unterprogramm 803 verwenden, eine bidirektionale Kommunikation mit der Kopfstelle 101 gemäß TCP/IP durchführen würden. Das TCP/IP wird hier nicht näher erläutert, da es ein allgemein bekanntes Verfahren ist, das die Protokolle festlegt, die beim Austauschen von Informationen zwischen mehreren Endgeräten zu verwenden sind. Wenn das Netz-Unterprogramm 803 beim Einschalten des Stroms von dem Initialisierungsunterprogramm 802 aktiviert wird, teilt es der Kopfstelle 101 über das Endgerät 500 eine MAC-Adresse (MAC: Media Access Control) mit, die ein Identifikator zum Identifizieren des POD 504 ist und die vorher in der externen Speichereinheit 705 gespeichert wird, um den Erhalt einer IP-Adresse anzufordern. Die Kopfstelle 101 teilt dem POD 504 über das Endgerät 500 die IP-Adresse mit, und das Netz-Unterprogramm 803 speichert diese IP-Adresse in der Hauptspeichereinheit 704. Von da an kommunizieren die Kopfstelle 101 und der POD 504 miteinander unter Verwendung dieser IP-Adresse als Identifikator des POD 504.
  • Das Wiedergabe-Unterprogramm 804 versorgt die erste Descrambler-Einheit 701 mit Entwürfelungsinformationen, wie etwa einem zweiten Schlüssel, die in der externen Speichereinheit 705 gespeichert sind, sowie mit Entwürfelungsinformationen, wie etwa einem dritten Schlüssel, die von dem Endgerät 500 bereitgestellt werden, um die Durchführung der Entwürfelung zu ermöglichen. Außerdem empfängt das Wiedergabe-Unterprogramm 804 über das Netz-Unterprogramm 803 Informationen, die angeben, dass das in die erste Descrambler- Einheit 701 eingegebene Signal ein PPV-Kanal ist. Auf die Mitteilung hin, dass das Signal ein PPV-Kanal ist, aktiviert das Wiedergabe-Unterprogramm 804 das PPV-Unterprogramm 805.
  • Wenn das PPV-Unterprogramm 805 aktiviert ist, zeigt es an dem Endgerät 500 eine Nachricht an, die den Nutzer auffordert, das Programm zu erwerben, und nimmt eine Eingabe von dem Nutzer an. Insbesondere wenn Informationen, die auf dem Bildschirm angezeigt werden sollen, an die CPU 514 des Endgeräts 500 gesendet werden, zeigt ein Programm, das auf der CPU 514 des Endgeräts 500 läuft, die Nachricht auf dem Bildschirm 509 des Endgeräts 500 an. Wenn dann der Nutzer die persönliche Kennzahl über die Eingabe-Einheit 513 des Endgeräts 500 eingibt, nimmt die CPU 514 des Endgeräts 500 die Kennzahl an und sendet sie an das PPV-Unterprogramm 805, das auf der CPU 706 des POD 504 läuft. Das PPV-Unterprogramm 805 sendet die angenommene persönliche Kennzahl über das Netz-Unterprogramm 803 an die Kopfstelle 101. Wenn diese persönliche Kennzahl gültig ist, teilt die Kopfstelle 101, über das Netz-Unterprogramm 803, dem PPV-Unterprogramm 805 die zum Entwürfeln benötigten Entwürfelungsinformationen mit, wie etwa einen vierten Schlüssel. Das PPV-Unterprogramm 805 versorgt die erste Einheit 701 mit den angenommenen Entwürfelungsinformationen, wie etwa dem vierten Schlüssel, und dann entwürfelt die erste Descrambler-Einheit 701 das Eingangssignal.
  • In 6 filtert der TS-Decodierer 505 das von dem POD 504 angenommene Signal und sendet die benötigten Daten an den Audio-Decodierer 506, den Video-Decodierer 508 und die CPU 514. Hier ist das von dem POD 504 gesendete Signal ein MPEG2-Transporstrom. Der MPEG2-Transportstrom ist in der MPEG-Spezifikation ISO/IEC 13818-1 näher beschrieben, und daher wird er in der vorliegenden Ausführungsform nicht näher erläutert. Ein MPEG2-Transportstrom besteht aus mehreren Paketen fester Länge, und jedem Paket wird ein Paket-Identifikator (Paket-ID) zugewiesen. 10 ist eine Darstellung, die den Aufbau eines Pakets zeigt. 900 ist ein Paket, das 188 Bytes fester Länge enthält. Die oberen vier Bytes sind ein Header 901, der Informationen zum Identifizieren des Pakets speichert, und die anderen 184 Bytes sind Nutzdaten 902, die Informationen speichern, die übertragen werden sollen. 903 zeigt die Aufgliederung des Headers 901. Ein Paket-ID ist in den 13 Bits vom 1. bis zum 12.–24. Bit enthalten. 11 ist eine schematische Darstellung, die mehrere zu sendende Paket-Strings zeigt. Ein Paket 1001 enthält einen Paket-ID „1" in seinem Header und enthält die ersten Informationen eines Videos A in seinen Nutzdaten. Ein Paket 1002 enthält einen Paket-ID „2" in seinem Header und enthält die ersten Informationen eines Audios A in seinen Nutzdaten. Ein Paket 1003 enthält einen Paket-ID „3" in seinem Header und enthält die ersten Informationen eines Audios B in seinen Nutzdaten.
  • Ein Paket 1004 enthält einen Paket-ID „1" in seinem Header und enthält die zweiten Informationen des Videos A, die die nachfolgenden Informationen des Pakets 1001 sind, in seinen Nutzdaten. Ebenso übertragen Pakete 1005, 1026 und 1027 nachfolgende Daten der anderen Pakete. Durch Verketten der Inhalte der Nutzdaten von Paketen mit dem denselben Paket-IDs in der vorstehenden Weise können Videos und Audios nacheinander wiedergegeben werden.
  • Wenn in 11 die CPU 514 dem TS-Decodierer 505 den Paket-ID „1" und den Video-Decodierer 508 als Ausgabeziel meldet, extrahiert der TS-Decodierer 505 Pakete mit dem Paket-ID „1" aus dem MPEG2-Transportstrom, der von dem POD 504 empfangen wird, und sendet sie an den Video-Decodierer 508. In 11 werden daher nur die Videodaten an den Video-Decodierer 508 weitergeleitet. Wenn die CPU 514 dem TS-Decodierer 505 den Paket-ID „2" und den Audio-Decodierer 506 meldet, extrahiert der TS-Decodierer 505 Pakete mit dem Paket-ID „2" aus dem MPEG2-Transportstrom, der von dem POD 504 empfangen wird, und sendet sie an den Audio-Decodierer 506. In 11 werden nur die Audiodaten an den Video-Decodierer 508 weitergeleitet.
  • Diese Verarbeitung des Extrahierens nur der erforderlichen Pakete entsprechend den Paket-IDs entspricht dem Filtern, das von dem TS-Decodierer 505 durchgeführt werden soll. Der TS-Decodierer 505 kann auf Befehl von der CPU 514 mehr als eine Filterverarbeitung gleichzeitig durchführen.
  • In 6 verkettet der Audio-Decodierer 506 Audiodaten, die in die Pakete in dem von dem TS-Decodierer 505 bereitgestellten MPEG2-Transportstram eingebettet sind, führt eine Digital-Analog-Umvandlung der verketteten Daten durch und gibt das Ergebnis an den Lautsprecher 507 aus.
  • Der Lautsprecher 507 gibt das von dem Audio-Decodierer 506 bereitgestellte Signal als Audio aus.
  • Der Video-Decodierer 508 verkettet Videodaten, die in die Pakete in dem von dem TS-Decodierer 505 bereitgestellten MPEG2-Transportstrom eingebettet sind, führt eine Digital-Analog-Umwandlung der verketteten Daten durch und gibt das Ergebnis an den Bildschirm 509 aus.
  • Der Bildschirm 509, dessen konkrete Komponente eine Katodenstrahlröhre oder eine Flüssigkristallanzeige oder dergleichen ist, gibt ein von dem Video-Decodierer 508 bereitgestelltes Videosignal aus und zeigt eine von der CPU 514 festgelegte Nachricht an, usw.
  • Die externe Speichereinheit 510, deren konkrete Komponenten ein Flash-Speicher, eine Festplatte und dergleichen sind, speichert und löscht Daten und Programme, die von der CPU 514 festgelegt werden. Die gespeicherten Daten und Programme werden von der CPU 514 referenziert. Die gespeicherten Daten und Programme werden auch dann im Speicher gehalten, wenn das Endgerät 500 ausgeschaltet wird.
  • Die Hauptspeichereinheit 511, deren konkrete Komponenten ein RAM und dergleichen sind, zwischenspeichert und löscht Daten und Programme, die von der CPU 514 festgelegt werden. Die gespeicherten Daten und Programme werden von der CPU 514 referenziert. Die gespeicherten Daten und Programme werden gelöscht, wenn das Endgerät 500 ausgeschaltet wird.
  • Der ROM 512 ist ein Festspeicher, dessen konkrete Komponenten ein ROM, eine CD-ROM, eine DVD und dergleichen sind. Der ROM 512 speichert ein Programm, das von der CPU 514 abgearbeitet werden soll.
  • Die Eingabe-Einheit 513, deren konkrete Komponente ein Bedienfeld oder eine Fernbedienung ist, nimmt eine Eingabe von dem Nutzer an. 12 zeigt ein Beispiel für die Eingabe-Einheit 513 für den Fall, dass sie in Form eines Bedienfelds konfiguriert ist. 1100 ist ein Bedienfeld, das der in 7 gezeigten Bedienfeldeinheit 603 entspricht. Dieses Bedienfeld 1100 besteht aus sieben Tasten, und zwar einer Cursor-nach-oben-Taste 1101, einer Cursor-nach-unten-Taste 1102, einer Cursor-nach-links-Taste 1103, einer Cursor-nach-rechts-Taste 1104, einer OK-Taste 1105, einer Abbruchtaste 1106 und einer EPG-Taste 1107 (EPG: elektronischer Programmführer). Wenn der Nutzer eine Taste drückt, wird der Identifikator dieser gedrückten Taste an die CPU 514 gemeldet.
  • Die CPU 514 arbeitet das in dem ROM 512 gespeicherte Programm ab. Gemäß den Befehlen von diesem abzuarbeitenden Programm steuert die CPU 514 die QAM-Demodulationseinheit 501, die QPSK-Demodulationseinheit 502, die QPSK-Modulationseinheit 503, den POD 504, den TS-Decodierer 505, den Bildschirm 509, die externe Speichereinheit 510, die Hauptspeichereinheit 511 und den ROM 512.
  • 13 ist ein Diagramm, das einen beispielhaften Aufbau des Programms zeigt, das in dem ROM 512 gespeichert wird und von der CPU 514 abgearbeitet wird.
  • Ein Programm 1200 besteht aus mehreren Unterprogrammen. Insbesondere besteht das Programm 1200 aus einem OS 1201, einem EPG 1202, einer JavaVM 1203, einem Dienstverwaltungsprogramm 1204 und einer Java-Bibliothek 1205.
  • Das OS 1201 ist ein Unterprogramm, das von der CPU 514 aktiviert werden soll, wenn das Endgerät 500 eingeschaltet wird. Das OS 1201 ist eine Abkürzung für Betriebssystem, beispielsweise Linux und dergleichen. Das OS 1201 ist ein Oberbegriff für eine allgemein bekannte Technik und besteht aus einem Kernel 1201a zum Abarbeiten eines Unterprogramms parallel mit einem anderen Unterprogramm und aus einer Bibliothek 1201b, und es wird daher nicht näher beschrieben. Bei der vorliegenden Ausführungsform arbeitet der Kernel 1201a des OS 1201 die Unterprogramme EPG 1202 und JavaVM 1203 ab. Die Bibliothek 1201b verleiht diesen Unterprogrammen mehrere Funktionen, die zum Steuern der Komponenten des Endgeräts 500 erforderlich sind.
  • Hier wird die Abstimmung als Beispiel für diese Funktionen beschrieben. Mit der Funktion Abstimmung werden Abstimmungsinformationen, die eine Frequenz enthalten, von einem anderen Unterprogramm empfangen und dann an die QAM-Demodulationseinheit 501 weitergeleitet. Dadurch kann die QAM-Demodulationseinheit 501 eine Demodulation aufgrund der bereitgestellten Abstimmungsinformationen durchführen und die demodulierten Daten an den POD 504 senden. Dadurch können die anderen Unterprogramme die QAM-Demodulationseinheit über die Bibliothek 1201b steuern.
  • Der EPG 1202 besteht aus einer Programm-Anzeigeeinheit 1202a zum Anzeigen einer Liste von Programmen für den Nutzer sowie zum Annehmen einer Eingabe von dem Nutzer und aus einer Wiedergabeeinheit 1102b zum Wählen von Kanälen. Hier ist EPG die Abkürzung für elektronischer Programmführer. Der EPG 1202 wird aktiviert, wenn das Endgerät 500 eingeschaltet wird. Wenn der EPG 1202 aktiviert ist, wartet die Programm-Anzeigeeinheit 1202a auf eine Eingabe von dem Nutzer über die Eingabe-Einheit 513 des angeordnetes 500. Wenn in dem Fall, dass die Eingabe-Einheit 513 die Form des in 12 gezeigten Bedienfelds annimmt, der Nutzer die EPG-Taste 1107 an der Eingabe-Einheit 513 drückt, wird der CPU 514 der Identifikator dieser EPG-Taste mitgeteilt. Die Programm-Anzeigeeinheit 1202a des EPG 1202, der ein Unterprogramm ist, das auf der CPU 514 läuft, nimmt diesen Identifikator an und zeigt Programminformationen auf dem Bildschirm 509 an. Die 14(1) und 13(2) zeigen Beispiele für eine Programmtabelle, die auf dem Bildschirm 509 angezeigt wird. In 14(1) werden die Programminformationen auf dem Bildschirm 509 in einem Gittermuster angezeigt. Eine Spalte 1301 gibt die Zeitinformationen an. Eine Spalte 1302 gibt eine Kanalbezeichnung „Kanal 1" und Programme an, die in Zeiträumen gesendet werden sollen, die den jeweiligen Zeiten entsprechen, die in der Spalte 1301 angegeben sind. Es wird gezeigt, dass ein Programm „Nachrichten 9" von 9:00 bis 10:30 und ein Programm „Film AAA" von 10:30 bis 12:00 jeweils auf „Kanal 1" gesendet werden. Wie bei der Spalte 1302 gibt eine Spalte 1303 eine Kanalbezeichnung „Kanal 2" und Programme an, die in Zeiträumen gesendet werden sollen, die den jeweiligen Zeiten entsprechen, die in der Spalte 1301 angegeben sind. Ein Programm „Film BBB" wird von 9:00 bis 11:00 gesendet und „Nachrichten 11" werden von 11:00 bis 12:00 gesendet. 1330 ist ein Cursor. Der Cursor 1330 bewegt sich beim Drücken der Cursor-nach-links-Taste 1103 oder der Cursor-nach-rechts-Taste 1104 auf dem Bedienfeld 1100. Wenn die Cursor-nach-rechts-Taste 1104 in dem in 14(1) gezeigten Zustand gedrückt wird, bewegt sich der Cursor 1330 nach rechts, wie in 14(2) gezeigt. Und wenn die Cursor-nach-links-Taste 1103 in dem in 14(2) gezeigten Zustand gedrückt wird, bewegt sich der Cursor 1330 nach links, wie in 14(1) gezeigt.
  • Wenn die OK-Taste 1105 auf dem Bedienfeld 1100 in dem in 14(1) gezeigten Zustand gedrückt wird, meldet die Programm-Anzeigeeinheit 1202a den Identifikator des Kanals 1 an die Wiedergabeeinheit 1102b. Und wenn die OK-Taste 1105 auf dem Bedienfeld 1100 in dem in 14(2) gezeigten Zustand gedrückt wird, meldet die Programm-Anzeigeeinheit 1202a den Identifikator des Kanals 2 an die Wiedergabeeinheit 1102b.
  • Die Programm-Anzeigeeinheit 1202a speichert regelmäßig Programminformationen, die angezeigt werden sollen, von der Kopfsteile 101 über den POD 504 im Hauptspeicher 511. Im Allgemeinen dauert es einige Zeit, die Programminformationen von der Kopfsteile zu erhalten. Es wird jedoch möglich, eine Programmtabelle dadurch schnell anzuzeigen, dass die in der Hauptspeichereinheit 511 vorgespeicherten Programminformationen beim Drücken der EPG-Taste 1107 der Eingabe-Einheit 513 angezeigt werden.
  • Die Wiedergabeeinheit 1102b gebt den Kanal unter Verwendung des empfangenen Identifikators des Kanals wieder. Die Beziehung zwischen Kanal-Identifikatoren und Kanälen wird von der externen Speichereinheit 510 als Kanal-Informationen vorgespeichert. 15 zeigt ein Beispiel für die Kanal-Informationen, die in der externen Speichereinheit 510 gespeichert werden. Die Kanal-Informationen werden in Tabellenform gespeichert. Eine Spalte 1401 gibt den Identifikator von Kanälen an. Eine Spalte 1402 gibt Kanalbezeichnungen an. Eine Spalte 1403 gibt Abstimmungsinformationen an. Hier werden die Abstimmungsinformationen durch Werte dargestellt, die für die QAM-Demodulationseinheit 501 bereitgestellt werden sollen, wie etwa Frequenz, Übertragungsrate und Codierverhältnis. Die Spalte 1404 gibt Programmnummern an. Programmnummern sind Nummern, die zum Identifizieren von PMTs verwendet werden, die vom MPEG2-Standard definiert werden. PMT wird später beschrieben. Jede der Zeilen 14111414 gibt eine Gruppe aus Identifikator, Kanalbezeichnung und Abstimmungsinformationen jedes Kanals an. Die Zeile 1411 gibt eine Gruppe an, die „1" als Identifikator, „Kanal 1" als Kanalbezeichnung, eine Frequenz von „312 MHz" als Abstimmungsinformationen und „101" als Programmnummer umfasst. Die Wiedergabeeinheit 1102b sendet den Identifikator des empfangenen Kanals direkt an das Dienstverwaltungsprogramm, um den Kanal wiederzugeben.
  • Wenn der Nutzer während der Wiedergabe die Cursor-nach-oben-Taste 1101 und die Cursor-nach-unten-Taste 1102 auf dem Bedienfeld 1100 drückt, empfängt die Wiedergabeeinheit 1102b eine Mitteilung über dieses Drücken durch den Nutzer von der Eingabe-Einheit 513 über die CPU 514 und schaltet den Kanal, der gerade wiedergegeben wird, auf einen anderen Kanal um. Zunächst speichert die Wiedergabeeinheit 1102b in der Hauptspeichereinheit 511 den Identifikator des Kanals, der gerade wiedergegeben wird. (1), (2) und (3) in 16 zeigen beispielhafte Identifikatoren von Kanälen, die in der Hauptspeichereinheit 511 gespeichert werden. (1) in 16 zeigt, dass ein Identifikator „3" gespeichert wird, und in 15 wird gezeigt, dass gerade ein Kanal mit der Kanalbezeichnung „TV 3" wiedergegeben wird. Wenn der Nutzer die Cursor-nach-oben-Taste 1101 in dem in (1) von 16 gezeigten Zustand drückt, referenziert die Wiedergabeeinheit 1102b die in 15 angegebenen Kanal-Informationen und sendet den Identifikator „2" eines Kanals mit der Kanalbezeichnung „Kanal 2" an das Dienstverwaltungsprogramm, um einen Kanal mit der Kanalbezeichnung „Kanal 2", der der vorhergehende Kanal in der Tabelle ist, neu wiederzugeben. Gleichzeitig schreibt die Wiedergabeeinheit 1102b den Identifikator zu dem Kanal-Identifikator „2" um, der in der Hauptspeichereinheit 511 gespeichert wird. (2) in 16 zeigt diesen umgeschriebenen Kanal-Identifikator. Und wenn der Nutzer die Cursor-nach-unten-Taste 1102 in dem in (1) von 16 gezeigten Zustand drückt, referenziert die Wiedergabeeinheit 1102b die in 15 angegebenen Kanal-Informationen und sendet den Identifikator „4" eines Kanals mit der Kanalbezeichnung „TV Japan" an das Dienstverwaltungsprogramm, um einen Kanal mit der Kanalbezeichnung „TV Japan", der der nächste Kanal in der Tabelle ist, neu wiederzugeben. Gleichzeitig schreibt die Wiedergabeeinheit 1102b den Identifikator zu dem Kanal-Identifikator „4" um, der in der Hauptspeichereinheit 511 gespeichert wird. (3) in 16 zeigt diesen umgeschriebenen Kanal-Identifikator.
  • Die JavaVM 1203 ist eine virtuelle Java-Maschine, die Programme, die in der JavaTM-Sprache geschrieben sind, sequentiell analysiert und abarbeitet. Programme, die in der JavaTM-Sprache geschrieben sind, werden in Zwischencodes kompiliert, die als Bytecodes bekannt sind und nicht von der Hardware abhängen. Die virtuelle Java-Maschine ist ein Interpreter, der diese Bytecodes abarbeitet. Einige der virtuellen Java-Maschinen übersetzen die Bytecodes in eine abarbeitbare Form, die von der CPU 514 interpretiert werden kann, und senden das Ergebnis an die CPU 514, die es abarbeitet. Die JavaVM 1203 wird aktiviert, wenn ein abzuarbeitendes Java-Programm von dem Kernel 1201a festgelegt wird. Bei der vorliegenden Ausführungsform legt der Kernel 1201a das Dienstverwaltungsprogramm 1204 als abzuarbeitendes Java-Programm fest. Ein detaillierter Kommentar zur Java-Sprache ist in zahlreichen Büchern zu finden, unter anderem in Java Language Specification" („Spezifikation der Java-Sprache") (ISBN 0-201-63451-1). Daher wird die Java-Sprache hier nicht näher beschrieben. Auch zur Funktionsweise der JavaVM selbst finden sich detaillierte Kommentare in zahlreichen Büchern, unter anderem in „Java Virtual Machine Specification" („Spezifikation für die virtuelle Java-Maschine") (ISBN 0-201-63451-X). Daher wird die virtuelle Java-Maschine hier nicht näher beschrieben.
  • Das Dienstverwaltungsprogramm 1204, ein in der Java-Sprache geschriebenes Java-Programm, wird von der JavaVM 1203 sequentiell abgearbeitet. Das Dienstverwaltungsprogramm 1204 kann über die JNI (Java Native Interface) ein anderes Unterprogramm, das nicht in der Java-Sprache geschrieben ist, aufrufen und von diesem aufgerufen werden. Ein Kommentar zur JNI ist in zahlreichen Büchern zu finden, unter anderem in „Java Native Interface". Daher wird die JNI hier nicht näher beschrieben.
  • Das Dienstverwaltungsprogramm 1204 übernimmt über die JNI den Identifikator des Kanals von der Wiedergabeeinheit 1102b.
  • Zunächst sendet das Dienstverwaltungsprogramm 1204 den Identifikator des Kanals an einen Tuner 1205c in der Java-Bibliothek 1205, um die Abstimmung anzufordern. Der Tuner 1205c referenziert die Kanal-Informationen, die in der externen Speichereinheit 510 gespeichert sind, um die Abstimmungsinformationen zu erhalten. Unterstellt man, dass das Dienstverwaltungsprogramm 1204 den Identifikator „2" des Kanals an den Tuner 1205c sendet, so referenziert der Tuner 1205c die in 15 gezeigte Spalte 1412 und erhält die Abstimmungsinformationen „156 MHz", die dem Kanal entsprechen. Der Tuner 1205c sendet die Abstimmungsinformationen über die Bibliothek 1201b des OS 1201 an die QAM-Demodulationseinheit 501. Die QAM-Demodulationseinheit 501 demoduliert das von der Kopfstelle 101 gesendete Signal entsprechend den von der QAM-Demodulationseinheit 501 gegebenen Abstimmungsinformationen und sendet das resultierende Signal an den POD 504.
  • Dann fordert das Dienstverwaltungsprogramm 1204 einen CA 1205b in der Java-Bibliothek 1205 auf, die Entwürfelung durchzuführen. Der CA 1205d versorgt den POD 504 über die Bibliothek 1201b in dem OS 1201 mit Informationen, die zum Entwürfeln benötigt werden. Aufgrund dieser bereitgestellten Informationen entwürfelt der POD 504 das von der QAM-Demodulationseinheit 501 gesendete Signal und sendet das resultierende Signal an den TS-Decodierer 505.
  • Dann stellt das Dienstverwaltungsprogramm 1204 den Identifikator des Kanals für ein JMF 1205a in der Java-Bibliothek 1205 bereit, um die Wiedergabe des Videos und Audios anzufordern.
  • Zunächst erhält das JMF 1205a aus einer PAT oder einer PMT Paket-IDs, die zum Festlegen des wiederzugebenden Videos und Audios verwendet werden. PAT und PMT sind vom MPEG2-Standard definierte Tabellen, die die Programm-Anordnung angeben, die in einem MPEG2-Transportstrom enthalten ist. PAT und PMT werden in den Nutzdaten in Paketen, die in einem MPEG2-Transportstrom enthalten sind, zusammen mit dem Audio und Video übertragen. Für eine nähere Beschreibung von PAT und PMT siehe die Spezifikation. Hier wird nur ein Überblick über PAT und PMT gegeben. PAT, die Abkürzung für Program Association Table, wird in Paketen mit dem Paket-ID „0" übertragen. Um die PAT zu erhalten, meldet das JMF 1205a dem TS-Decodierer 505 den Paket-ID „0" und die CPU 514 über die Bibliothek 1201b des OS 1201. Dann führt der TS-Decodierer 505 das Filtern aufgrund des Paket-ID „0" durch und sendet das Ergebnis an die CPU 514. Dadurch kann das JMF 1205a die PAT-Pakete erfassen. 17 zeigt eine Tabelle, die ein Beispiel für die erfassten PAT-Informationen schematisch darstellt. In einer Spalte 1601 sind Programmnummern angegeben. in einer Spalte 1602 sind Paket-IDs angegeben. Die in der Spalte 1602 angegebenen Paket-IDs werden zum Erhalten der PAT verwendet. Jede der Zeilen 16111613 ist ein Paar aus einer Programmnummer eines Kanals und einem Paket-ID, der dieser Nummer entspricht. Hier sind drei Kanäle definiert. Die Zeile 1611 definiert ein Paar aus der Programmnummer „101" und dem Paket-ID „501". Unterstellt man, dass der für das JMF 1205a bereitgestellte Kanal-Identifikator „2" ist, so referenziert das JMF 1205a die Spalte 1412 in 15, um die Programmnummer „102", die diesem Kanal-Identifikator entspricht, zu erhalten, und referenziert dann die Spalte 1612 in der in 17 gezeigten PAT, um den Paket-ID „502", der der Programmnummer „102" entspricht, zu erhalten. PMT, die Abkürzung für Program Map Table, wird in Paketen mit den in der PAT festgelegten Paket-IDs übertragen. Um die PMT zu erhalten, meldet das JMF 1205a dem TS-Decodierer 505 einen Paket-ID und die CPU 514 über die Bibliothek 1201b des OS 1201. Hier ist ein Paket-ID, der festgelegt werden soll, „502". Dann führt der TS-Decodierer 505 das Filtern aufgrund des Paket-ID „502" durch und sendet das Ergebnis an die CPU 514. Dadurch kann das JMF 1205a die PMT-Pakete erfassen. 18 zeigt eine Tabelle, die ein Beispiel für die erfassten PMT-Informationen schematisch darstellt. In einer Spalte 1701 sind Stromtypen angegeben. In einer Spalte 1702 sind Paket-IDs angegeben. Informationen, die in den einzelnen Stromtypen angegeben sind, werden in den Nutzdaten von Paketen mit Paket-IDs übertragen, die in der Spalte 1702 angegeben sind. In einer Spalte 1703 sind Zusatzinformationen angegeben. Jede der Zeilen 17111714 ist ein Paar aus einem Paket-ID und dem Typ von Informationen, die gerade übertragen werden, was als Elementarstrom bekannt ist. Die Zeile 1711, die ein Paar aus dem Stromtyp „Audio" und dem Paket-ID „5011" ist, gibt an, dass Audiodaten in den Nutzdaten des Pakets mit dem Paket-ID „5011" gespeichert werden. Das JMF 1205a erhält aus der PMT die Paket-IDs des wiederzugebenden Videos und Audios. In 18 erhält das JMF 1205a den Audiopaket-ID „5011" aus der Zeile 1711 und den Videopaket-ID „5012" aus der Zeile 1712.
  • Dann stellt das JMF 1205a über die Bibliothek 1201b des OS 1201 ein Paar aus dem erhaltenen Audiopaket-ID und dem Audio-Decodierer 506 als Ausgabeziel sowie ein Paar aus dem Videopaket-ID und dem Video-Decodierer 508 als Ausgabeziel für den TS-Decodierer 505 bereit. Der TS-Decodierer 505 führt das Filtern aufgrund dieser bereitgestellten Paket-IDs und der Ausgabeziele durch. Hier wird das Paket mit dem Paket-ID „5011" an den Audio-Decodierer 506 gesendet, und das Paket mit dem Paket-ID „5012" wird an den Video-Decodierer 508 gesendet. Der Audio-Decodierer 506 führt eine Digital-Analog-Umwandlung an dem gesendeten Paket durch, um das Audio über den Lautsprecher 507 wiederzugeben. Der Video-Decodierer 508 führt eine Digital-Analog-Umwandlung an dem gesendeten Paket durch, um das Video auf dem Bildschirm 509 anzuzeigen.
  • Schließlich stellt das Dienstverwaltungsprogramm 1204 den Kanal-Identifikator für einen AM 1205b in der Java-Bibliothek 1205 bereit, um die Datenrundfunkwiedergabe anzufordern. Hier bedeutet Datenrundfunkwiedergabe, dass ein in dem MPEG2-Transportstrom enthaltenes Java-Programm extrahiert wird und die JavaVM 1203 veranlasst wird, dieses Programm abzuarbeiten. Als Verfahren zum Einbetten eines Java-Programms in einen MPEG2-Transportstrom wird ein als DSMCC bekanntes Verfahren verwendet, das in der MPEG-Spezifikation ISO/IEC 13818-6 beschrieben ist. DSMCC wird hier nicht näher beschrieben. Die DSMCC-Spezifikation definiert ein Verfahren zum Codieren eines Dateisystems, das aus von einem Computer verwendeten Verzeichnissen und Dateien besteht, in Paketen in einem MPEG2-Transportstrom. Informationen zu dem abzuarbeitenden Java-Programm werden in Paketen in dem MPEG2-Transportstrom in Form einer AIT übertragen. AIT ist die Abkürzung für Application Information Table, die im Kapitel 10 des DVB-MHP-Standards (offiziell bekannt als ETSI TS 101 812 DVB-MHP Specification V1.0.2), definiert ist.
  • Um zunächst die AIT zu erhalten, erhält der AM 1205b die PAT und PMT wie bei dem JMF 1205a, um den Paket-ID des Pakets zu erhalten, in dem die AIT abgespeichert ist. Wenn man unterstellt, dass „2" der bereitgestellte Kanal-Identifikator ist und dass die in 17 gezeigte PAT und die in 18 gezeigte PMT gesendet werden, so erhält der AM 1205b die in 18 gezeigte PMT nach dem gleichen Verfahren, das von dem JMF 1205a befolgt wird. Dann extrahiert der AM 1205b aus der PMT den Paket-ID des Elementarstroms, dessen Stromtyp „Daten" ist und der „AIT" als Zusatzinformationen hat. Wie in 18 gezeigt, entspricht der Elementarstrom in der Zeile 1713 diesem Elementarstrom, und daher erhält der AM 1205b daraus den Paket-ID „5013".
  • Der AM 1205b sendet den Paket-ID der AIT und die CPU 514 als Ausgabeziel über die Bibliothek 1201b des OS 1201 an den TS-Decodierer 505. Dann führt der TS-Decodierer 505 das Filtern aufgrund dieses bereitgestellten Paket-ID durch und sendet das Ergebnis an die CPU 514. Dadurch kann der AM 1205b die Pakete der AIT erfassen. 19 ist eine Tabelle, die ein Beispiel für die erfassten AIT-Informationen schematisch darstellt. In einer Spalte 1801 sind Identifikatoren von Java-Programmen angegeben. In einer Spalte 1802 sind Steuerinformationen zum Steuern der Java-Programme angegeben. Die Steuerinformationen umfassen „autostart", „present" und „kill". „Autostart" bedeutet, dass das Endgerät 500 das Programm sofort automatisch abarbeitet. „Present" bedeutet, dass das Programm nicht automatisch abgearbeitet wird. „Kill" bedeutet, dass das Programm beendet werden soll. In einer Spalte 1803 sind DSMCC-Identifikatoren angegeben, die zum Extrahieren der IDs von Paketen dienen, die Java-Programme im DSMCC-Format enthalten. In einer Spalte 1804 sind die Programmbezeichnungen der Java-Programme angegeben. Jede der Zeilen 1811 und 1812 ist eine Gruppe von Informationen zu einem Java-Programm. Das in der Zeile 1811 definierte Java-Programm ist eine Gruppe aus einem Identifikator „301 ", Steuerinformationen „autostart", einem DSMCC-Identifikator „1" und einer Programmbezeichnung „a/TopXlet". Das in der Zeile 1812 definierte Java-Programm ist eine Gruppe aus einem Identifikator „302", Steuerinformationen „present", einem DSMCC-Identifikator „1" und einer Programmbezeichnung „b/GameXlet". Hier haben diese beiden Java-Programme denselben DSMCC-Identifikator. Das bedeutet, dass zwei Java-Programme in dem Dateisystem enthalten sind, das nach dem gleichen DSMCC-Verfahren codiert worden ist. Hier sind nur vier Informationen für die einzelnen Java-Programme festgelegt, aber in der Praxis können auch mehr Informationen festgelegt werden. Einzelheiten siehe die DVB-MHP-Spezifikation.
  • Der AM 1205b findet das Java-Programm „autostart" aus der AIT und extrahiert den entsprechenden DSMCC-Identifikator und die Java-Programmbezeichnung. In 19 extrahiert der AM 1205b das Java-Programm in Zeile 1811 und erhält den DSMCC-Identifikator „1" und die Java-Programmbezeichnung „a/TopXlet".
  • Dann erhält der AM 1205b aus der PMT den Paket-ID von Paketen, die Java-Programme im DSMCC-Format abspeichern, unter Verwendung des aus der AIT erhaltenen DSMCC-Identifikators. Insbesondere erhält der AM 1205b aus der PMT den Paket-ID, der in dem Elementarstrom enthalten ist, dessen Stromtyp „Daten" ist und dessen DSMCC-Identifikator in den Zusatzinformationen passt.
  • Wenn man unterstellt, dass dieser DSMCC-Identifikator „1" ist und die PMT die PMT ist, die in 18 gezeigt ist, erfüllt der Elementarstrom in Zeile 1714 die vorgenannte Bedingung. Daher muss der Paket-ID „5014" extrahiert werden.
  • Der AM 1205b teilt dem TS-Decodierer 505 den Paket-ID von Paketen, in die Daten im DSMCC-Format eingebettet sind, sowie die CPU 514 als Ausgabeziel über die Bibliothek 1201b des OS 1201 mit. Hier wird der Paket-ID „5014" bereitgestellt. Dann führt der TS-Decodierer 505 das Filtern aufgrund dieses bereitgestellten Paket-ID durch und sendet das Ergebnis an die CPU 514. Dadurch kann der AM 1205b die benötigten Pakete erfassen. Der AM 1205b stellt das Dateisystem aus den erfassten Paketen nach dem DSMCC-Verfahren wieder her und speichert das wiederhergestellte Dateisystem in der Hauptspeichereinheit 511. Der Prozess des Extrahierens von Daten, wie etwa des Dateisystems, aus Paketen im MPEG2-Transportstrom und des Speicherns der extrahierten Daten in Speichereinheiten wie der Hauptspeichereinheit 511 wird nachstehend als Herunterladen bezeichnet.
  • 20 zeigt ein Beispiel für das heruntergeladene Dateisystem. In dem Diagramm stellen Kreise Verzeichnisse dar, und Rechtecke stellen Dateien dar, wobei 1901 ein Stammverzeichnis ist, 1902 ein Verzeichnis „a" ist, 1903 ein Verzeichnis „b" ist, 1904 eine Datei „TopXlet.class" ist und 1905 eine Datei „GameXlet.class" ist.
  • Dann sendet der AM 1205b ein Java-Programm, das aus dem in die Hauptspeichereinheit 511 heruntergeladenen Dateisystem abgearbeitet werden soll, an die JavaVM 1203. Angenommen, die Bezeichnung des abzuarbeitenden Java-Programms ist „a/TopXlet", so ist eine Datei „a/TopXlet.class", die durch Anhängen von „.class" an die Java-Programmbezeichnung entsteht, die abzuarbeitende Datei. „/" ist ein Delimiter zwischen einem Verzeichnis und einem Dateinamen, und wie in 20 gezeigt, ist die Datei 1904 ein abzuarbeitendes Java-Programm. Dann sendet der AM 1205b die Datei 1904 an die JavaVM 1203.
  • Die JavaVM 1203 arbeitet dieses empfangene Java-Programm ab.
  • Nach dem Erhalt des Identifikators eines anderen Kanals beendet das Dienstverwaltungsprogramm 1204 die Wiedergabe des Videos und Audios und die Abarbeitung des Java-Programms, die gerade über jede in der Java-Bibliothek 1205 enthaltene Bibliothek durchgeführt werden, über jede in der Java-Bibliothek 1205 enthaltene Bibliothek und führt dann die Wiedergabe des Videos und Audios sowie die Abarbeitung eines Java-Programms aufgrund des neu empfangenen Kanal-Identifikators durch.
  • Die Java-Bibliothek 1205 ist eine Zusammenfassung von mehreren Java-Bibliotheken, die in dem ROM 512 gespeichert sind. Bei der vorliegenden Ausführungsform enthält die Java-Bibliothek 1205 das JMF 1205a, den AM 1205b, den Tuner 1205c, den CA 1205d, eine Pod Lib 1205e und dergleichen. Nachstehend wird die Funktion des Herunterladens, Speicherns und Ausführens eines Java-Programms beschrieben, die die Hauptfunktion in der vorliegenden Erfindung ist.
  • Das Dienstverwaltungsprogramm 1204 führt eine bidirektionale Kommunikation mit der Kopfstelle 101 über die in der Java-Bibliothek 1205 enthaltene Pod Lib 1205e durch. Diese bidirektionale Kommunikation kann mit der Pod Lib 1205e durch Verwendung der Bibliothek 1201b des OS 1201 sowie durch Verwendung der QPSK-Demodulationseinheit 502 und der QPSK-Modulationseinheit 503 über den POD 504 realisiert werden.
  • Durch die vorgenannte Kommunikation empfängt das Dienstverwaltungsprogramm 1204 von der Kopfstelle 101 Informationen zu Java-Programmen, die das Endgerät 500 in der externen Speichereinheit 510 speichern sollte. Diese Informationen werden als XAIT-Informationen bezeichnet. Die XAIT-Informationen werden zwischen der Kopfstelle 101 und dem POD 504 in einer beliebigen Form übertragen. Die vorliegende Erfindung kann unabhängig von dem Übertragungsformat durchgeführt werden, solange Informationen, die als XAIT benötigt werden, enthalten sind.
  • 21 zeigt eine Tabelle, die ein Beispiel für die von der Kopfstelle 101 erhaltenen XAIT-Informationen schematisch darstellt. In einer Spalte 2001 sind die Identifikatoren von Java-Programmen angegeben. In einer Spalte 2002 sind Steuerinformationen zum Steuern der Java-Programme angegeben. Die Steuerinformationen umfassen „autoselect" und „present". „Autoselect" bedeutet, dass das Programm automatisch abgearbeitet wird, wenn das Endgerät 500 eingeschaltet wird, und „present" bedeutet, dass das Programm nicht automatisch abgearbeitet wird. In einer Spalte 2003 sind DSMCC-Identifikatoren angegeben, die zum Extrahieren von IDs von Paketen dienen, die Java-Programme im DSMCC-Format enthalten. Eine Spalte 2004 gibt die Programmbezeichnungen der Java-Programme an. Eine Spalte 2005 gibt die Prioritäten der Java-Programme an. Jede der Zeilen 2011 und 2012 ist eine Gruppe von Informationen zu den einzelnen Java-Programmen. Das in der Zeile 2011 definierte Java-Programm ist eine Gruppe aus einem Identifikator „701", Steuerinformationen „autoselect", einem DSMCC-Identifikator „1" und einer Programmbezeichnung „a/PPV1Xlet". Hier sind nur fünf Informationen für die einzelnen Java-Programme festgelegt, aber die vorliegende Erfindung kann auch realisiert werden, wenn mehr Informationen definiert werden.
  • Nach Empfang der XAIT-Informationen speichert das Dienstverwaltungsprogramm 1204 das Dateisystem aus dem MPEG2-Transportstrom in der Hauptspeichereinheit 511 nach dem gleichen Verfahren wie beim Herunterladen des Java-Programms aus den AIT-Informationen. Dann kopiert das Dienstverwaltungsprogramm 1204 dieses gespeicherte Dateisystem in die externe Speichereinheit 510. Man beachte, dass es auch möglich ist, das Dateisystem nicht über die Hauptspeichereinheit 511, sondern direkt in die externe Speichereinheit 510 herunterzuladen. Dann speichert das Dienstverwaltungsprogramm 1204 in der externen Speichereinheit 510 das Ergebnis des Assoziierens der XAIT-Informationen mit der Speicherposition des heruntergeladenen Dateisystems. 22 zeigt ein Beispiel für das Assoziieren der XAIT-Informationen mit dem heruntergeladenen Dateisystem, das in der externen Speichereinheit 510 gespeichert ist. Elemente in 22, die die Gleichen wie die in 21 sind, sind einander ähnlich und werden daher nicht erläutert. In einer Spalte 2101 sind die Speicherpositionen des heruntergeladenen Dateisystems abgespeichert. In 22 sind diese Speicherpositionen durch Pfeile angegeben. 2110 ist das heruntergeladene Dateisystem, in dem ein Oberverzeichnis 2111, ein Verzeichnis „a" 2112, ein Verzeichnis „b" 2113, eine Datei „PPV1Xlet.class" 2114 und eine Datei „PPV2Xlet.class" 2115 enthalten sind.
  • Hier werden die XAIT-Informationen nach dem Java-Programm gespeichert, aber sie können auch vor dem Java-Programm gespeichert werden.
  • Wenn das Endgerät 500 eingeschaltet wird, meldet das OS 1201 das Dienstverwaltungsprogramm 1204 an die JavaVM 1203. Nachdem das Dienstverwaltungsprogramm 1204 von der JavaVM 1203 aktiviert worden ist, referenziert das Dienstverwaltungsprogramm 1204 die XAIT-Informationen, die zunächst in der externen Speichereinheit 510 gespeichert wurden. Hier referenziert das Dienstverwaltungsprogramm 1204 die Steuerinformationen jedes Java-Programms und sendet das Programm „autoselect" an die JavaVM 1203, um dieses Programm zu aktivieren. In 22 wird das in Zeile 2011 definierte Java-Programm „PPV1Xlet" aktiviert.
  • Nehmen wir an, dass hier das Java-Programm „PPV1Xlet" ein Programm zum Anzeigen von PPV-Programminformationen ist, wobei dieses Programm dem PPV-Unterprogramm 805 entspricht, das in dem POD 504 gespeichert ist. Wenn in dem Fall, dass das Endgerät 500 nicht das Java-Programm „PPV1Xlet" hat, das PPV-Unterprogramm 805 Informationen, die auf dem Bildschirm angezeigt werden sollen, an die CPU 514 des Endgeräts 500 sendet, zeigt ein Dialoganzeigeprogramm, das in der Bibliothek 1201b in dem OS 1201 enthalten ist, eine in 23 gezeigte Nachricht auf dem Bildschirm 509 an, die den Nutzer auffordert, das Programm zu erwerben. 2201 ist ein Dialogfeld, das die folgenden Elemente enthält, die für die Anzeige erforderlich sind: eine Nachricht 2202, ein Persönliche-Kennzahl-Feld 2203 zum Eingeben einer vierstelligen persönlichen Kennzahl, eine OK-Taste 2204 und eine Abbruchtaste 2205. Der Inhalt des Programms wird jedoch nicht auf dieser Bildschirmseite angezeigt, sodass der Nutzer den Programminhalt durch Nachschlagen in einem Programmführer oder anderen Büchern prüfen muss, was dem Nutzer Unannehmlichkeiten bereitet.
  • Wenn das Java-Programm „PPV1Xlet" in dem Endgerät 500 gespeichert ist und dann aktiviert wird, registriert es sich an der POD Lib 1205e in der Java-Bibliothek 1205 als Java-Programm, das von dem POD 504 aus referenziert werden kann. Wenn sich Java-Programm „PPV1Xlet" registriert, registriert es gleichzeitig auch seinen Java-Programm-Identifikator, seine Betriebsart und seine Priorität. Die POD Lib 1205e speichert die registrierten Angaben in der externen Speichereinheit 510. 24 zeigt ein Beispiel für die registrierten Java-Programminformationen, die in der externen Speichereinheit 510 gespeichert werden und von dem POD 504 aus referenziert werden können. In diesem Beispiel werden diese Informationen in Form einer Tabelle gespeichert, in der in einer Spalte 2301 die Identifikatoren von Java-Programmen angegeben sind, in einer Spalte 2302 die Betriebsarten der Java-Programme angegeben sind, in einer Spalte 2303 die Prioritäten der Java-Programme angegeben sind und in einer Spalte 2304 die Bezeichnungen der Java-Programme angegeben sind. Wie in 25 gezeigt, werden die Betriebsarten der einzelnen Java-Programme durch zwei Werte „1" und „2" angegeben. Der Wert „1" gibt an, dass das registrierte Java-Programm nicht gleichzeitig mit einem anderen registrierten Java-Programm oder einem in der Bibliothek 1201b des OS 1201 enthaltenen Programm abgearbeitet werden kann. Und der Wert „2" gibt an, dass das registrierte Java-Programm gleichzeitig mit einem anderen registrierten Java-Programm und einem in der Bibliothek 1201b des OS 1201 enthaltenen Programm abgearbeitet werden kann. In 24 sind in den Zeilen 23112312 registrierte Java-Programme angegeben. Die Zeile 2311 ist eine Gruppe aus dem Identifikator „PPV", der Betriebsart „2", der Priorität „200" und der Java-Programmbezeichnung „PPV1Xlet".
  • Die POD Lib 1205e teilt dem POD 504 die Informationen zu den registrierten Java-Programmen mit. Dadurch können die Unterprogramme in dem POD 504 und die registrierten Java-Programme Daten aneinander senden und voneinander empfangen. Beispielsweise sendet das PPV-Unterprogramm 805 in dem POD 504 den Inhalt eines Programms im Rahmen eines PPV-Erwerbs an das registrierte Java-Programm in der Zeile 2311 von 24. Dadurch kann das Java-Programm die Informationen auf dem Bildschirm 509 anzeigen, wie in 26 gezeigt. Elemente, denen die gleichen Bezugssymbole wie den Elementen in 23 zugewiesen sind, sind einander ähnlich und werden daher nicht erläutert. 2501 bezeichnet Programminformationen, die von dem registrierten Java-Programm angezeigt werden. Hier werden das Dialoganzeigeprogramm in der Bibliothek 1201b des OS 1201 und das vorregistrierte Java-Programm gleichzeitig abgearbeitet. Dabei referenziert der POD 504 die Arten der registrierten Java-Programme, um das Java-Programm zu erkennen, an das Daten gesendet werden sollen.
  • Es besteht die Gefahr, dass 2201 und 2501 überlappt angezeigt werden, da das Dialoganzeigeprogramm der Bibliothek 1201b des OS 1201 und das registrierte Java-Programm getrennt entwickelt werden. Um das zu umgehen, kann das Dialoganzeigeprogramm der Bibliothek 1201b in dem OS 1201 beendet werden. Insbesondere hat ein Java-Programm auch die Funktion des Eingebens einer persönlichen Kennzahl, die von dem Dialoganzeigeprogramm der Bibliothek 1201b in dem OS 1201 ausgeführt werden soll, und registriert sich mit seiner Betriebsart als „1". 27 zeigt eine beispielhafte Bildschirmseite, die auf dem Bildschirm 509 von diesem registrierten Java-Programm in Reaktion auf einen Befehl von dem PPV-Unterprogramm in dem POD 504 angezeigt wird.
  • Hier speichert die externe Speichereinheit 510 die registrierten Java-Programme, wie in 28 gezeigt. In diesem Beispiel haben diese beiden Java-Programme den gleichen Identifikator „PPV" sowie die gleiche Betriebsart „1", was bedeutet, dass diese Java-Programme nicht nebeneinander bestehen können. In diesem Fall aktiviert die POD Lib 1205 nur das Java-Programm mit der höheren Priorität. Die andere Option ist, dass die POD Lib 1205e beide Java-Programme aktiviert, aber eine Nachricht von dem POD 504 nur an das Java-Programm mit der höheren Priorität sendet.
  • Die 29 und 30 sind Ablaufdiagramme, die die Funktionsweise der POD Lib 1205 für den Fall beschreiben, dass Java-Programme in der POD Lib 1205e registriert werden. Die POD Lib 1205e übernimmt die Registrierung eines Java-Programms (Schritt S2801) und speichert diese übernommenen Informationen in der externen Speichereinheit 510 (Schritt S2802). Dann vergleicht die POD Lib 1205e den Identifikator eines Java-Programms, das bereits in der externen Speichereinheit 510 registriert ist, mit dem Identifikator des übernommenen Java-Programms, um zu ermitteln, ob es mehr als ein Java-Programm mit dem gleichen Identifikator gibt (Schritt S2803). Wenn es Java-Programme mit dem gleichen Identifikator gibt, geht die POD Lib 1205e zum Schritt S2901 in 30 weiter. Wenn es keine Java-Programme mit dem gleichen Identifikator gibt, überprüft die POD Lib 1205e die Betriebsart des übernommenen Java-Programms, um zu ermitteln, ob dieses Java-Programm neben dem bereits registrierten Java-Programm bestehen kann und mit diesem gleichzeitig abgearbeitet werden kann (Schritt S2804). Wenn das nicht möglich ist, beendet die POD Lib 1205e die Nachrichtenübertragung von dem POD 504 zu der Bibliothek 1201b des OS 1201 (Schritt S2805). Dann gibt die POD Lib 1205e die Nachrichtenübertragung von dem POD 504 zu dem übernommenen Java-Programm frei (Schritt S2806) und beendet den Registrierungsprozess. Und wenn im Schritt S2803 mehr als ein Java-Programm mit dem gleichen Identifikator vorhanden ist, überprüft die POD Lib 1205e die Betriebsarten aller Java-Programme, um zu ermitteln, ob sie nebeneinander bestehen können und gleichzeitig miteinander abgearbeitet werden können (Schritt S2901). Wenn es ein Java-Programm gibt, das nicht neben den anderen Java-Programmen bestehen kann und gleichzeitig mit diesen abgearbeitet werden kann, vergleicht die POD Lib 1205e die Priorität des übernommenen Java-Programms mit der des vorhandenen Java-Programms (Schritt S2902). Wenn die Priorität des übernommenen Java-Programms die höchste von allen ist, beendet die POD Lib 1205e die Nachrichtenübertragung von dem POD 504 zu dem vorhandenen Java-Programm (Schritt S2903) und gibt die Nachrichtenübertragung von dem POD 504 zu dem übernommenen Java-Programm frei (Schritt S2904). Wenn die Betriebsarten aller Java-Programme angeben, dass sie nebeneinander bestehen können und gleichzeitig abgearbeitet werden können, geht die POD Lib 1205e zum Schritt S2904 weiter. Wenn die Priorität des übernommenen Java-Programms im Schritt S2902 nicht die höchste von allen ist, beendet die POD Lib 1205e den Prozess, ohne etwas zu tun, da das vorhandene Java-Programm in diesem Fall die Nachrichten weiter empfängt.
  • Die 31, 32 und 33 sind Diagramme, die die Änderungen der Ziele der Nachrichtenübertragung von dem POD 504 aufgrund der vorstehenden Ablaufdiagramme; die die Funktionsweise beschreiben, schematisch darstellen. 31(1) zeigt den Zustand, in dem kein Java-Programm registriert wird und alle Nachrichten von dem POD 504 an die Bibliothek 1201b des OS 1201 gesendet werden. Ein Pfeil 3001 gibt die Nachrichtenübertragung an. Wenn in dem in 31(1) gezeigten Zustand ein Java-Programm registriert wird und wenn die Betriebsart dieses registrierten Java-Programms ein Nebeneinanderbestehen gestattet, werden die Schritte S2801, S2802, S2803, S2804 und S2806 in dem Ablaufdiagramm von 29 ausgeführt, und der Zustand ändert sich zu dem in 31(2) gezeigten Zustand. Hier ist 3011 das registrierte Java-Programm, und ein Pfeil 3002 ist ein neu festgelegter Fluss einer Nachricht von dem POD 504 zu dem Java-Programm 3011. Genauer gesagt, die CPU 514 und die POD Lib 1205e werden zwischen den POD 504 und das Java-Programm geschaltet. Wenn die Betriebsart des registrierten Java-Programms kein Nebeneinanderbestehen gestattet, werden die Schritte S2801, S2802, S2803, S2804, S2805 und S2806 in dem Ablaufdiagramm von 29 ausgeführt, und der Zustand ändert sich zu dem in 31(3) gezeigten Zustand. Die POD Lib 1205e beendet den Fluss einer Nachricht von dem POD 504 zu der Bibliothek 1201b, der durch den Pfeil 3001 angegeben wird, und legt die Nachrichtenübertragung von dem POD 504 zu dem Java-Programm 3011 neu fest.
  • 32(1) zeigt den Zustand, in dem ein Java-Programm registriert wird und alle Nachrichten von dem POD 504 an die Bibliothek 1201b des OS 1201 und ein registriertes Java-Programm 3111 gesendet werden. Pfeile 3101 und 3102 geben die Nachrichtenübertragung an. Wenn in dem in 32(1) gezeigten Zustand ein Java-Programm registriert wird und wenn die Betriebsart dieses registrierten Java-Programms ein Nebeneinanderbestehen gestattet, werden die Schritte S2801, S2802, S2803, S2901 und S2904 in den Ablaufdiagrammen von 29 und 30 ausgeführt, und der Zustand ändert sich zu dem in 32(2) gezeigten Zustand. Hier ist 3112 das registrierte Java-Programm, und ein Pfeil 3103 ist ein neu festgelegter Fluss einer Nachricht, die von dem POD 504 an das Java-Programm 3112 gesendet wird.
  • 33(1) zeigt den Zustand, in dem ein Java-Programm registriert wird und alle Nachrichten von dem POD 504 an ein registriertes Java-Programm 3211 gesendet werden. Dieser Zustand ist der Betriebsart dieses Java-Programms 3211 zuzuschreiben, die kein Nebeneinanderbestehen gestattet. Ein Pfeil 3201 gibt die Nachrichtenübertragung an. Wenn ein Java-Programm in dem in 32(1) gezeigten Zustand registriert wird und wenn die Betriebsart dieses registrierten Java-Programms ein Nebeneinanderbestehen gestattet, wird ein Vergleich zwischen der Priorität des vorhandenen Java-Programms 3211 und der Priorität des registrierten Java-Programms angestellt. Wenn die Priorität des registrierten Java-Programms höher ist, werden die Schritte S2801, S2802, S2803, S2901, S2902, S2903 und S2904 in den Ablaufdiagrammen von 29 und 30 ausgeführt, und der Zustand ändert sich zu dem in 32(2) gezeigten Zustand. Die POD Lib 1205e beendet den Fluss einer Nachricht von dem POD 504 zu dem Java-Programm 3211, der durch den Pfeil 3201 angegeben wird, und legt die Nachrichtenübertragung von dem POD 504 zu dem Java-Programm 3212 neu fest. Und wenn die Priorität des vorhandenen Java-Programms 3211 höher ist, werden die Schritte S2801, S2802, S2803, S2901 und S2902 in den Ablaufdiagrammen von 29 und 30 ausgeführt, und der Zustand ändert sich zu dem in 32(3) gezeigten Zustand. In diesem Fall ändert sich die Nachrichtenübertragung nicht.
  • Man beachte, dass wenn im Schritt S2902 die höchste Priorität des vorhandenen Java-Programms gleich der Priorität des neu übernommenen Java-Programms ist, die Steuerung so geändert werden kann, dass der Prozess zum Schritt S2903 geht, damit das übernommene Java-Programm eine Nachricht empfangen kann. Das weist darauf hin, dass ein beliebiges Java-Programm zur Abarbeitung gewählt werden muss, wenn mehrere Java-Programme die gleiche Priorität haben.
  • In dem anderen Fall müssen mehrere Java-Programme abgearbeitet werden, und die gleichen Nachrichten werden an diese mehreren Java-Programme gesendet. In diesem Fall werden diesen Java-Programmen gezielt die gleiche Priorität und der gleiche Identifikator zugewiesen, und die Java-Programme werden in einer Weise implementiert, in der sie die Funktionsweise des jeweils anderen Programms verstehen, sodass auch dann keine Probleme auftreten, wenn sie gleichzeitig abgearbeitet werden. 34 zeigt einen beispielhaften Fall, in dem mehrere Java-Programme den gleichen Identifikator und die gleiche Priorität haben. Hier sendet der POD 504 die Programminhalte und Gebühren-Informationen. Es ist möglich, dass ein Java-Programm in einer Zeile 3311 die Gebühr anzeigt und eine Eingabe einer persönlichen Kennzahl annimmt und dass ein Java-Programm in einer Zeile 3312 nur den Programminhalt anzeigt.
  • Die POD Lib 1205e nimmt die Registrierung und auch die Löschung von Java-Programmen an. Die 35 und 36 sind Ablaufdiagramme, die die Funktionsweise der POD Lib 1205e für den Fall beschreiben, dass die POD Lib 1205e die Registrierung eines Java-Programms löscht. Die POD Lib 1205e nimmt die Löschung eines Java-Programms an (Schritt S3401) und löscht das angenommene Java-Programm aus der externen Speichereinheit 510 (Schritt S3402). Dann prüft die POD Lib 1205e, ob das zu löschende Java-Programm gerade eine Nachricht von dem POD 504 empfängt oder nicht (Schritt S3403). Wenn dieses Java-Programm gerade eine Nachricht empfängt, blockiert die POD Lib 1205e die Nachrichtenübertragung von dem POD 504 zu dem angenommenen Java-Programm (Schritt S3404). Dann prüft die POD Lib 1205e, ob die externe Speichereinheit 510 ein Java-Programm mit dem gleichen Identifikator speichert oder nicht (Schritt S3405). Wenn es kein Java-Programm mit dem gleichen Identifikator gibt, gibt die POD Lib 1205e die Nachrichtenübertragung von dem POD 504 zu der Bibliothek 1201b des OS 1201 frei (Schritt S3406). Wenn im Schritt S3403 das zu löschende Java-Programm keine Nachricht von dem POD 504 empfängt, beendet die POD Lib 1205e den Prozess. Wenn es im Schritt S3405 ein Java-Programm mit dem gleichen Identifikator wie dem des zu löschenden Java-Programms gibt, prüft die POD Lib 1205e im Schritt S3501 von 36, ob alle Java-Programme nebeneinander bestehen können und gleichzeitig abgearbeitet werden können, und die POD Lib 1205e gibt die Nachrichtenübertragung von dem POD 504 zu allen Java-Programmen mit dem gleichen Identifikator, die nebeneinander bestehen können, und zu der Bibliothek 1201b des OS 1201 frei (Schritt S3502). Wenn nicht alle Java-Programme nebeneinander bestehen können und gleichzeitig abgearbeitet werden können, wird das Java-Programm mit der höchsten Priorität extrahiert (Schritt S3503). Dann gibt die POD Lib 1205e die Nachrichtenübertragung von dem POD 504 zu diesem extrahierten Java-Programm frei (Schritt S3504).
  • Wie vorstehend dargelegt, kann mit der vorliegenden Ausführungsform, dadurch dass ein vorübergehend heruntergeladenes Programm abgearbeitet wird, ohne ein vorhandenes Programm zu löschen, ein Programm aktualisiert werden und das vorhandene Programm problemlos wieder in den Zustand vor seiner Aktualisierung gebracht werden. Außerdem kann dadurch, dass ein Programm so heruntergeladen und gespeichert wird, dass dieses Programm gleichzeitig mit einem vorhandenen Programm abgearbeitet werden kann, eine Funktion hinzugefügt werden, die das vorhandene Programm nicht enthält.
  • Man beachte, dass bei der vorliegenden Ausführungsform das PPV-Unterprogramm 805 in dem POD 504 und ein Java-Programm Nachrichten austauschen und Operationen entsprechend ausführen, aber die vorliegende Erfindung kann auch für den Fall verwendet werden, dass nicht nur das PPV-Unterprogramm, sondern auch ein anderes Unterprogramm in dem POD 504 Nachrichten mit einem Java-Programm an dem Endgerät 500 austauschen, um ihre Operationen auszuführen. Außerdem können Java-Programme aus einem Gemisch aus einem in Java geschriebenen Teil und einem Teil im Binärformat bestehen, das direkt von der CPU abgearbeitet werden kann, oder der ganze Teil kann im Binärformat sein, das direkt von der CPU abgearbeitet werden kann.
  • Bei der vorliegenden Ausführungsform kann der ROM 512 dadurch weggelassen werden, dass Informationen, die in dem ROM 512 gespeichert sind, in der externen Speichereinheit 510 gespeichert werden. Außerdem kann die externe Speichereinheit 510 aus mehreren externen Teilspeichereinheiten bestehen, und jede externe Teilspeichereinheit kann unterschiedliche Informationen speichern, sodass Informationen in Segmenten gespeichert werden können. Beispielsweise kann eine externe Teilspeichereinheit nur Abstimmungsinformationen speichern, eine andere externe Teilspeichereinheit kann die Bibliothek 1201b des OS 1201 speichern, und eine andere externe Teilspeichereinheit kann ein heruntergeladenes Java-Programm speichern.
  • Zweite Ausführungsform
  • Wenn bei der ersten Ausführungsform ein Java-Programm registriert wird, wird eine Kommunikation zum Austauschen von Nachrichten zwischen dem POD 504 und der Bibliothek 1201b des OS 1201 sowie Java-Programmen, die bereits in der externen Speichereinheit 510 registriert sind, sofort beendet. Wenn beispielsweise ein Java-Programm registriert wird, während der Nutzer den Prozess des Erwerbs eines PPV durchführt, kann dieser Erwerbsprozess unterbrochen werden und eine persönliche Kennzahl, die der Nutzer gerade eingibt, kann vor der Beendigung ungültig gemacht werden.
  • Daher wird bei der vorliegenden Ausführungsform eine Mitteilung an die Bibliothek 1201b des OS 1201 und die vorhandenen Java-Programme, für die die Kommunikation zum Austauschen von Nachrichten vor Beendigung dieser Kommunikation beendet werden soll, gesendet, um von ihnen eine Genehmigung zu erhalten. Insbesondere ersetzt das in 34 gezeigte Ablaufdiagramm die Beendigung der Nachrichtenübertragung zu der Bibliothek 1201b im Schritt S2805 von 29 und die Beendigung der Nachrichtenübertragung zu dem vorhandenen Java-Programm im Schritt S2903 von 30, wobei die 29 und 30 Ablaufdiagramme sind, die die Funktionsweise bei der ersten Ausführungsform beschreiben.
  • In 37 teilt die POD Lib 1205e den Zielen für die Beendigung der Nachrichtenübertragung, d. h. Java-Programmen und der Bibliothek 1201b des OS 1201, vorher mit, dass die Nachrichtenübertragung beendet wird (Schritt S3601). Die Java-Programme und die Bibliothek 120 des OS 1201, die die vorgenannte Mitteilung erhalten haben, teilen dann der POD Lib 1205e nach Durchführung der erforderlichen Verarbeitung mit, dass sie die Beendigung der Nachrichtenübertragung genehmigt haben (Schritt S3602). Daher beendet die POD Lib 1205e die Nachrichtenübertragung (Schritt S3603).
  • Außerdem muss den Unterprogrammen im POD 504 mitgeteilt werden, dass sich die Ziele der Nachrichtenübertragung geändert haben. 38 ist ein Ablaufdiagramm, das die Funktionsweise der POD Lib 1205e beim Benachrichtigen des POD 504 von der Änderung der Nachrichtenübertragungsziele zeigt.
  • Die POD Lib 1205e teilt dem POD 504 vorher mit, dass die Nachrichtenübertragung beendet wird (Schritt S3701). Nach Empfang dieser Mitteilung teilt der POD 504 der POD Lib 1205e nach Durchführung der erforderlichen Verarbeitung mit, dass er die Beendigung der Nachrichtenübertragung genehmigt hat (Schritt S3702). Daher beendet die POD Lib 1205e die Nachrichtenübertragung (Schritt S3703) und legt ein neues Nachrichtenübertragungsziel fest (Schritt S3704). Schließlich teilt die POD Lib 1205e dem POD 504 mit, dass das Übertragungsziel neu festgelegt worden ist (Schritt S3705).
  • Auch einem Java-Programm, das als neues Übertragungsziel festgelegt worden ist, und der Bibliothek 1201b des OS 1201 kann mitgeteilt werden, dass das Übertragungsziel neu festgelegt worden ist. Das liegt daran, dass das Java-Programm und die Bibliothek 1201b des OS 1201 nicht nur Nachrichten von dem POD 504 empfangen, sondern auch Nachrichten an den POD 504 senden. Insbesondere senden sie an den POD 504 eine persönliche Kennzahl, die der Nutzer für den PPV eingibt. Daher müssen sie nicht unnötigerweise Nachrichten senden, wenn sie eine Mitteilung erhalten, dass die Nachrichtenübertragung freigegeben worden ist.
  • Dritte Ausführungsform
  • Bei der ersten Ausführungsform werden registrierte Java-Programme in der externen Speichereinheit 510 gespeichert, aber die vorliegende Erfindung kann auch realisiert werden, wenn registrierte Java-Programme in der Hauptspeichereinheit 511 gespeichert werden.
  • Wenn registrierte Java-Programme in der Hauptspeichereinheit 511 gespeichert werden, verschwinden beim Ausschalten alle gespeicherten Informationen. Wenn jedoch, wie vorstehend dargelegt, ein Java-Programm zur Abarbeitung aufgrund einer XAIT heruntergeladen wird, registriert sich dieses abgearbeitete Java-Programm in der POD Lib 1205e, und daher kann dieses Programm wiederhergestellt werden. Da jedoch in diesem Fall die Bibliothek 1201b des OS 1201 eine bestimmte Zeit lang nach dem Abschalten des Stroms weiterarbeitet, tritt eine Änderung in der Nachrichtenübertragung auf. 39 ist ein Ablaufdiagramm, das die Operationen zeigt, die von dem Zeitpunkt, zu dem das Endgerät 500 eingeschaltet wird, bis zu dem Zeitpunkt, zu dem eine Änderung der Nachrichtenübertragung von dem POD 504 erfolgt, auszuführen sind. Wenn das Endgerät 500 eingeschaltet wird (Schritt S3801), werden Programme in dem Endgerät 500 und dem POD 504 aktiviert, und eine Nachrichtenübertragung zwischen dem POD 504 und der Bibliothek 1201b wird realisiert (Schritt S3802). Der AM 1205b lädt ein Java-Programm entsprechend XAIT-Informationen herunter, und die JavaVM 1203 arbeitet dieses Java-Programm ab (Schritt S3803). Wenn dieses Java-Programm den Austausch von Nachrichten mit dem POD 504 erfordert, registriert es sich an der POD Lib 1205e (Schritt S3804). Entsprechend den in den 29 und 30 gezeigten Ablaufdiagrammen wird die Nachrichtenübertragung gegebenenfalls geändert (Schritt S3805).
  • Wenn registrierte Java-Programme in der externen Speichereinheit 510 gespeichert werden, wie es bei der ersten Ausführungsform der Fall ist, werden Nachrichten von dem POD 504 an die registrierten Java-Programme anstatt an die Bibliothek 1201b des OS 1201 gesendet, nachdem der Strom eingeschaltet worden ist. Wenn jedoch ein Java-Programm aufgrund einer XAIT heruntergeladen und abgearbeitet wird, wie vorstehend dargelegt, kommt es zu einer doppelten Registrierung, da sich dieses abgearbeitete Java-Programm in der POD Lib 1205e registriert. Um das zu umgehen, nimmt die POD Lib 1205e keine Registrierungen von bereits registrierten Java-Programmen an. 40 ist ein Ablaufdiagramm, das die Operationen zeigt, die von dem Zeitpunkt, zu dem das Endgerät 500 eingeschaltet wird, bis zu dem Zeitpunkt, zu dem eine Änderung der Nachrichtenübertragung von dem POD 504 erfolgt, auszuführen sind. Wenn das Endgerät 500 eingeschaltet wird (Schritt S3901), werden Programme in dem Endgerät 500 und dem POD 504 aktiviert, und eine Nachrichtenübertragung zwischen dem POD 504 und den Java-Programmen oder der Bibliothek 1201b wird aufgrund der in der externen Speichereinheit gespeicherten Registrierungsinformationen realisiert (Schritt S3902). Der AM 1205b lädt ein Java-Programm entsprechend den XAIT-Informationen herunter, und die JavaVM 1203 arbeitet dieses Java-Programm ab (Schritt S3903). Wenn dieses Java-Programm den Austausch von Nachrichten mit dem POD 504 erfordert, registriert es sich an der POD Lib 1205e (Schritt S3904). Die POD Lib 1205e referenziert die externe Speichereinheit 510, um zu prüfen, ob dieses Java-Programm bereits registriert ist oder nicht (Schritt S3905). Wenn dieses Java-Programm noch nicht registriert ist, wird dann der Registrierungsprozess durchgeführt, und gegebenenfalls wird die Nachrichtenübertragung entsprechend den in den 29 und 30 gezeigten Ablaufdiagrammen geändert (Schritt S3906).
  • Man beachte, dass die vorliegende Erfindung durch die erste, zweite und dritte Ausführungsform für Folgendes verwendet werden kann.
  • Die vorliegende Erfindung kann für alle Informationsvorrichtungen, wie etwa Personal Computer und Mobiltelefone, verwendet werden.
  • Außerdem kann der POD 504 in den vorstehenden Ausführungsformen entfernt werden, aber die vorliegende Erfindung kann auch realisiert werden, wenn der POD 504 in das Endgerät 500 integriert wird. Wenn der POD 504 integriert ist, kann die CPU 706 des POD 504 entfernt werden, und die CPU 514 führt die Operationen der CPU 706 aus.
  • Die vorliegende Erfindung kann auch realisiert werden, wenn nicht nur heruntergeladene Java-Programme, sondern auch vorgespeicherte Java-Programme in der POD Lib 1205e registriert werden sollen. Außerdem kann eine Schlitzeinheit zum Einstecken/Auswerfen eines herausnehmbaren Speichermediums, wie etwa eine SD-Speicherkarte, vorgesehen werden, um Java-Programme zu laden. Außerdem kann eine Netzwerkeinheit zum Verbinden mit einem Netzwerk vorgesehen werden, um Java-Programme aus dem Internet zu laden.
  • Bei der ersten bis dritten Ausführungsform sendet nur ein Unterprogramm auf dem POD 504 Nachrichten an ein Java-Programm, aber die vorliegende Erfindung kann auch für den Fall verwendet werden, dass zwei oder mehr Unterprogramme und Java-Programme Nachrichten einzeln senden. 41 zeigt einen beispielhaften Fall, dass Nachrichten zwischen Unterprogrammen auf dem POD 504 und mehreren Java-Programmen übertragen werden. Ein Unterprogramm A 4001, ein Unterprogramm B 4002 und ein Unterprogramm C 4003 laufen auf dem POD 504, und ein Java-Programm X 4011, ein Java-Programm Y 4012 und ein Java-Programm Z 4013 laufen auf dem Endgerät 500. Pfeile 4021, 4022, 4023 und 4024 geben festgelegte Wege für die Nachrichtenübertragung an. Der Weg 4021 wird für die Nachrichtenübertragung von dem Unterprogramm A 4001 zu dem Java-Programm X 4011 festgelegt, wobei das Unterprogramm und das Java-Programm eine Eins-zu-Eins-Beziehung haben. Das Unterprogramm B 4002 hat Wege zu zwei Java-Programmen für die Nachrichtenübertragung, und zwar dem Java-Programm Y 4012 und dem Java-Programm Z 4013. Hingegen empfängt das Java-Programm Z 4013 Nachrichten von zwei Unterprogrammen, und zwar dem Unterprogramm B 4002 und dem Unterprogramm C 4003.
  • Man beachte, dass dieses Diagramm zwar den Fall zeigt, dass die Nachrichten von den Unterprogrammen an die Java-Programme gesendet werden, aber die vorliegende Erfindung auch für den Fall verwendet werden kann, dass Nachrichten von den Java-Programmen an die Unterprogramme gesendet werden. Außerdem können Nachrichten auch bidirektional ausgetauscht werden.
  • Hier können den vorgenannten Wegen für die Nachrichtenübertragung Nachrichtenweg-IDs zugewiesen werden, sodass Unterprogramme und Java-Programme durch Verwendung dieser Nachrichtenweg-IDs identifizieren können, wohin sie Nachrichten senden sollen. Außerdem können diese Nachrichtenweg-IDs beim Registrieren von Java-Programmen anstelle des Identifikatoren der Java-Programme, die gleichzeitig registriert werden sollen, verwendet werden. In diesem Fall ist es möglich, ein Java-Programm, das eine Nachricht senden soll, aus konkurrierenden Wegen zwischen Java-Programmen und Unterprogrammen auf dem POD 504 aufgrund ihrer Betriebsarten festzulegen. Alternativ ist es auch möglich, Unterprogramm-Identifikatoren zum Identifizieren von Unterprogramm auf dem POD 504 zu definieren und diese Unterprogramm-Identifikatoren beim Registrieren von Java-Programmen anstelle der Identifikatoren der Java-Programme, die gleichzeitig registriert werden sollen, zu verwenden.
  • Bei der vorstehenden Beschreibung wird ein Java-Programm, an das eine Nachricht gesendet wird, aufgrund seiner Betriebsart bestimmt, aber diese Bestimmung kann auch beispielsweise aufgrund der folgenden vorgegebenen Regeln ohne Verwendung von Betriebsarten erfolgen: Dem zuletzt registrierten Java-Programm wird eine hohe Priorität gegeben, und dem früher registrierten Java-Programm wird eine hohe Priorität gegeben.
  • Bei der ersten bis dritten Ausführungsform sind die Operationen der in der POD Lib 1205e registrierten Java-Programme die Operationen, die in Reaktion auf die Übertragung einer Nachricht ausgeführt werden sollen. Anders ausgedrückt, die Java-Programme beginnen in Reaktion auf den Empfang einer Nachricht zu arbeiten. Gleichzeitig können Java-Programme mehr als eine Verarbeitung parallel durchführen. Die vorliegende Erfindung kann realisiert werden, ohne dass der Verarbeitung von Java-Programmen Beschränkungen auferlegt werden müssen, mit Ausnahme der Verarbeitung, dass sie in Reaktion auf den Empfang einer Nachricht zu arbeiten beginnen.
  • Wie bei den vorstehenden Ausführungsformen dargelegt, nimmt die POD Lib 1205e außer der Registrierung eines Java-Programms, zu/von dem Nachrichten übertragen werden sollen, auch die Löschung dieses Java-Programms (d. h., die Entregistrierung zum Blockieren der Nachrichtenübertragung zu/von dem Java-Programm) an.
  • 42 ist ein Ablaufdiagramm, das die Operationen der POD Lib 1205e für den Fall zusammenfasst, dass ein Java-Programm in der POD Lib 1205 registriert wird.
  • Nach der Annahme der Registrierung für die Nachrichtenübertragung (mindestens das Senden oder das Empfangen von Nachrichten oder beides) zu/von dem Java-Programm speichert die POD Lib 1205e benötigte Informationen (beispielsweise die in 28 angegebenen Informationen) in der externen Speichereinheit 510 (Schritt SX101) und entscheidet, ob ein Java-Programm mit dem gleichen Identifikator wie der Identifikator des registrierten Java-Programms in der externen Speichereinheit 510 gespeichert ist oder nicht, indern sie den Identifikator des Java-Programms, das im Schritt SX101 registriert worden ist, mit dem Identifikator eines anderen Java-Programms, das bereits in der externen Speichereinheit 510 registriert ist, vergleicht (Schritt SX102).
  • Wenn entschieden wird, dass es ein Java-Programm mit dem gleichen Identifikator in der externen Speichereinheit 510 gibt (d. h., wenn die POD Lib 1205e vor dem Schritt SX101 die Registrierung für die Nachrichtenübertragung zu/von einem anderen Java-Programm mit dem gleichen Identifikator wie der Identifikator des im Schritt SX101 angenommenen Java-Programms angenommen hat) („Ja" im Schritt SX102), teilt die POD Lib 1205e den Zielen der Beendigung der Nachrichtenübertragung vorher mit, dass die Nachrichtenübertragung beendet wird (Schritt SX103). Insbesondere erhalten ein anderes Java-Programm, das in der externen Speichereinheit 510 registriert ist (d. h. ein anderes Programm, das den gleichen Identifikator wie das Java-Programm hat, dessen Registrierung für die Nachrichtenübertragung im Schritt SX101 angenommen worden ist und für das eine Registrierung zum Annehmen der Nachrichtenübertragung vorgenommen worden ist), sowie die Bibliothek 1201b des OS 1201 diese vorherige Mitteilung. Das Java-Programm und die Bibliothek 1201b des OS 1201, die die vorgenannte Beendigungsmitteilung empfangen haben, teilen dann der POD Lib 1205e nach Durchführung der erforderlichen Verarbeitung (interne Verarbeitung, die beendet sein sollte, bevor die Nachrichtenübertragung zu/von dem POD 504 beendet wird, d. h. bevor die Registrierung für die Nachrichtenübertragung gelöscht wird) mit, dass sie die Beendigung der Nachrichtenübertragung genehmigt haben (Schritt SX104). Nach Empfang der vorgenannten Genehmigungsmitteilung löscht (entregistriert) die POD Lib 1205e die Registrierung für die Nachrichtenübertragung zu/von dem vorhandenen Java-Programm (das bereits in der externen Speichereinheit 510 registriert ist und das ein Ziel der Beendigung der Nachrichtenübertragung zu/von dem POD 504 ist) oder zu der Bibliothek 1201b des OS 1201 und beendet die Nachrichtenübertragung zu dem Java-Programm (Schritt SX105). Durch Vornehmen der Registrierung für die Annahme der Nachrichtenubertragung von dem POD 504 zu dem Java-Programm, das im Schritt SX101 registriert wird, teilt die POD Lib 1205e dem Java-Programm, das im Schritt SX101 registriert worden ist, mit, dass die Nachrichtenübertragung beginnt (Schritt SX106), und gibt dann die Nachrichtenübertragung frei (Schritt SX107).
  • Wenn es kein Java-Programm mit dem gleichen Identifikator in der externen Speichereinheit 510 gibt („Nein" im Schritt SX102), teilt die POD Lib 1205e durch Vornehmen der Registrierung für die Annahme der Nachrichtenübertragung von dem POD 504 zu dem Java-Programm, das im Schritt SX101 registriert wird, dem Java-Programm, das im Schritt SX101 registriert worden ist, mit, dass die Nachrichtenübertragung beginnt (Schritt SX106), und die POD Lib 1205e gibt dann die Nachrichtenübertragung frei (Schritt SX107).
  • 43 ist ein Ablaufdiagramm, das die Operationen der POD Lib 1205e für den Fall zusammenfasst, dass die POD Lib 1205e die Registrierung eines Java-Programms löscht (d. h. die Nachrichtenübertragung zu/von dem in der externen Speichereinheit 510 registrierten Java-Programm entregistriert).
  • Nach Annahme der Löschung des Java-Programms (Schritt SX201) teilt die POD Lib 1205e dem zu löschenden Java-Programm vorher mit, dass die Nachrichtenübertragung beendet wird (Schritt SX202). Das Java-Programm, das die vorgenannte vorherige Mitteilung empfangen hat, teilt dann der POD Lib 1205e nach Durchführung der erforderlichen Verarbeitung (interne Verarbeitung, die beendet sein sollte, bevor die Nachrichtenübertragung von dem POD 504 beendet wird, d. h. bevor die Registrierung der Nachrichtenübertragung gelöscht wird) mit, dass sie die Beendigung der Nachrichtenübertragung genehmigt hat (Schritt SX203). Nach Empfang der vorgenannten Genehmigungsmitteilung beendet die POD Lib 1205e die Nachrichtenübertragung zu dem Java-Programm, das ein Ziel der erforderlichen Löschung ist, von den in der externen Speichereinheit 510 registrierten Java-Programmen dadurch, dass sie die Registrierung für die Nachrichtenübertragung zu/von diesem Ziel-Java-Programm löscht (entregistriert) (Schritt SX204). Dann gibt die POD Lib 1205e die Nachrichtenübertragung zu der Bibliothek 1201b des OS 1201 frei (Schritt SX205), indem sie die Registrierung für die Annahme der Nachrichtenübertragung von dem POD 504 zu der Bibliothek 1201b des OS 1201 vornimmt.
  • Wenn es im Schritt SX205 ein weiteres registriertes Java-Programm oder ein neu registriertes Java-Programm in der externen Speichereinheit 510 gibt oder wenn es gewünscht wird (oder möglich ist), die Nachrichtenübertragung mit nur einem dieser Java-Programme durchzuführen, kann die Nachrichtenübertragung zu/von dem Ziel-Java-Programm dadurch freigegeben werden, dass die Registrierung für die Annahme der Nachrichtenübertragung zwischen dem POD 504 und dem Ziel-Java-Programm vorgenommen wird. Und wenn bei der Nachrichtenübertragung zu und von dem POD 504 ein Java-Programm und die Bibliothek 1201b des OS 1201, die die Ziele der Nachrichtenübertragung sind, nebeneinander bestehen können (d. h., das Java-Programm und die Bibliothek 1201b des OS 1201 konkurrieren nicht miteinander), kann die Nachrichtenübertragung zu/von dem Ziel-Java-Programm und der Bibliothek 1201b des OS 1201 nach Vornahme der Registrierung für die Annahme der Nachrichtenübertragung zu/von der Bibliothek 1201b des OS 1201 freigegeben werden.
  • Wie vorstehend dargelegt, kann mit der vorliegenden Ausführungsform durch Abarbeiten eines vorübergehend heruntergeladenen Programms ohne Löschung eines vorhandenen Programms ein Programm aktualisiert (ersetzt) werden und das vorhandene Programm kann problemlos wieder in den Zustand vor seiner Aktualisierung gebracht werden. Außerdem kann dadurch, dass ein Programm so heruntergeladen und gespeichert wird, dass dieses Programm gleichzeitig mit einem vorhandenen Programm abgearbeitet werden kann, eine Funktion hinzugefügt werden, die das vorhandene Programm nicht enthält.

Claims (4)

  1. Programmersetzungsverfahren zum Ersetzen eines Programms in einer Rundfunkempfangs-Endvorrichtung (500), wobei das Programm registriert wird, sodass die Nachrichtenübertragung zwischen dem Programm und einem an der Rundfunkempfangs-Endvorrichtung vorgesehenen aufsteckbaren POD (504) freigegeben wird, dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte in der Rundfunkempfangs-Endvorrichtung aufweist: Registrieren (SX101) des ersten Programms, sodass die Nachrichtenübertragung zwischen dem ersten Programm und dem POD freigegeben wird, wobei das erste Programm einen Identifikator zum Identifizieren eines Programmtyps hat; Informieren (SX103) eines zweiten Programms, dass die Nachrichtenübertragung zwischen dem zweiten Programm und dem POD beendet werden soll, wobei das zweite Programm einen Identifikator hat, der der Gleiche wie der Identifikator des ersten Programms ist und bereits in der Rundfunkempfangs-Endvorrichtung vorhanden ist; und Beenden (SX105) der Nachrichtenübertragung zwischen dem zweiten Programm und dem POD.
  2. Programmersetzungsverfahren nach Anspruch 1, das einen Schritt des Informierens (SX106) des ersten Programms, dass die Nachrichtenübertragung zwischen dem ersten Programm und dem POD freigegeben worden ist, aufweist.
  3. Programmersetzungsverfahren nach Anspruch 1, dadurch gekennzeichnet, dass das erste Programm mit Rundfunkwellen übertragen wird.
  4. Rundfunkempfangs-Endvorrichtung, die so betreibbar ist, dass sie mit einem aufsteckbaren POD (504), der mit der Rundfunkempfangs-Endvorrichtung verknüpft ist, kommuniziert, wobei die Rundfunkempfangs-Endvorrichtung so konfiguriert ist, dass sie ein Programm ausführt, das in der Rundfunkempfangs-Endvorrichtung registriert wird, sodass die Nachrichtenübertragung zwischen dem Programm und dem aufsteckbaren POD freigegeben wird, und die Rundfunkempfangs-Endvorrichtung so konfiguriert ist, dass sie ein in der Rundfunkempfangs-Endvorrichtung gespeichertes Programm ersetzt, dadurch gekennzeichnet, dass die Rundfunkempfangs-Endvorrichtung so konfiguriert ist, dass sie ein erstes Programm registriert (SX101), sodass die Nachrichtenübertragung zwischen dem ersten Programm und dem POD freigegeben wird, wobei das erste Programm einen Identifikator zum Identifizieren eines Programmtyps hat; ein zweites Programm informiert (SX103), dass die Nachrichtenübertragung zwischen dem zweiten Programm und dem POD beendet werden soll, wobei das zweite Programm einen Identifikator hat, der der Gleiche wie der Identifikator des ersten Programms ist und bereits in der Rundfunkempfangs-Endvorrichtung vorhanden ist; und die Nachrichtenübertragung zwischen dem zweiten Programm und dem POD beendet (SX105).
DE602004005376T 2003-06-04 2004-06-02 Verfahren zur Ersetzung eines Programms Expired - Fee Related DE602004005376T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US47549703P 2003-06-04 2003-06-04
JP2003158928 2003-06-04
JP2003158928 2003-06-04
US475497P 2003-06-04

Publications (2)

Publication Number Publication Date
DE602004005376D1 DE602004005376D1 (de) 2007-05-03
DE602004005376T2 true DE602004005376T2 (de) 2007-12-13

Family

ID=33161583

Family Applications (3)

Application Number Title Priority Date Filing Date
DE602004016573T Expired - Fee Related DE602004016573D1 (de) 2003-06-04 2004-06-02 Programmersetzungsmethode
DE602004005376T Expired - Fee Related DE602004005376T2 (de) 2003-06-04 2004-06-02 Verfahren zur Ersetzung eines Programms
DE602004017651T Expired - Fee Related DE602004017651D1 (de) 2003-06-04 2004-06-02 Programmersetzungsmethode

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE602004016573T Expired - Fee Related DE602004016573D1 (de) 2003-06-04 2004-06-02 Programmersetzungsmethode

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE602004017651T Expired - Fee Related DE602004017651D1 (de) 2003-06-04 2004-06-02 Programmersetzungsmethode

Country Status (8)

Country Link
US (4) US8104068B2 (de)
EP (4) EP1484677B1 (de)
KR (4) KR20040104935A (de)
CN (1) CN100382580C (de)
AT (3) ATE408184T1 (de)
AU (1) AU2004202425A1 (de)
BR (1) BRPI0401901A (de)
DE (3) DE602004016573D1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7912220B2 (en) * 2001-02-05 2011-03-22 Broadcom Corporation Packetization of non-MPEG stream data in systems using advanced multi-stream POD interface
AU2004202425A1 (en) 2003-06-04 2004-12-23 Panasonic Corporation Program replacing method
US8201191B2 (en) * 2004-06-30 2012-06-12 Time Warner Cable Inc. Apparatus and methods for implementation of network software interfaces
US20070091919A1 (en) * 2005-10-24 2007-04-26 Sandoval Francis R Method and system of supporting enhanced television signaling
US8756626B2 (en) * 2005-12-22 2014-06-17 Broadcom Corporation Method and apparatus for using the host-pod interface of a digital television or other digital audio/video receiver for new services
KR100791304B1 (ko) * 2006-07-24 2008-01-04 삼성전자주식회사 소프트웨어 갱신을 위한 장치, 시스템 및 방법
US11553250B2 (en) * 2008-09-02 2023-01-10 Comcast Cable Communications, Llc Updating application code
US8595783B2 (en) * 2010-08-30 2013-11-26 Sony Corporation Receiving device, receiving method, program, and broadcasting system
TW201232406A (en) * 2011-01-20 2012-08-01 Hon Hai Prec Ind Co Ltd Apparatus and method for displaying television and corresponding forum in virtual environment
EP2728896B1 (de) * 2012-05-10 2020-06-17 Sony Corporation Empfangsvorrichtung, empfangsverfahren und programm
US8875121B2 (en) * 2012-11-06 2014-10-28 Nvidia Corporation Framework for multi-type and multi-location firmware updates and hardware feature updates through a single interface protocol
CN103019798A (zh) * 2013-01-16 2013-04-03 珠海市君天电子科技有限公司 一种识别安卓系统预装软件的方法和装置
US11291340B2 (en) 2019-03-01 2022-04-05 Troy Taylor Paint booth filter

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04149414A (ja) 1990-10-12 1992-05-22 Ricoh Co Ltd カメラ
MX9306169A (es) * 1992-10-05 1995-01-31 Fisher Controls Int Calibracion de convertidor electro-neumatico.
JP3140906B2 (ja) * 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
US5768539A (en) * 1994-05-27 1998-06-16 Bell Atlantic Network Services, Inc. Downloading applications software through a broadcast channel
US5797010A (en) * 1995-12-22 1998-08-18 Time Warner Cable Multiple run-time execution environment support in a set-top processor
JP3904099B2 (ja) 1996-04-24 2007-04-11 ソニー株式会社 情報処理装置、プログラム更新方法、および、情報処理システム
US5960445A (en) * 1996-04-24 1999-09-28 Sony Corporation Information processor, method of updating a program and information processing system
US5940074A (en) 1996-06-03 1999-08-17 Webtv Networks, Inc. Remote upgrade of software over a network
US6209041B1 (en) * 1997-04-04 2001-03-27 Microsoft Corporation Method and computer program product for reducing inter-buffer data transfers between separate processing components
JPH10326192A (ja) 1997-05-27 1998-12-08 Sharp Corp Catv端末ソフトウェアプログラムダウンロードシステム
US6263497B1 (en) * 1997-07-31 2001-07-17 Matsushita Electric Industrial Co., Ltd. Remote maintenance method and remote maintenance apparatus
JP3261399B2 (ja) 1997-07-31 2002-02-25 松下電器産業株式会社 リモートメンテナンス方法およびリモートメンテナンス装置
US6665869B1 (en) * 1997-09-05 2003-12-16 United Video Properties, Inc. Program guide application interface system
CN1326638A (zh) * 1998-10-19 2001-12-12 通用仪器公司 具有可配置功能的电视机顶盒
US6704933B1 (en) 1999-02-03 2004-03-09 Masushita Electric Industrial Co., Ltd. Program configuration management apparatus
US6904611B1 (en) * 1999-09-03 2005-06-07 General Instrument Corporation Method and system for directing the download of software and firmware objects over a network such as a cable television system
US7231411B1 (en) * 1999-09-15 2007-06-12 Koninklijke Philips Electronics N.V. Removable card system with downloadable agent for communicating with a digital television receiver or other host device
US6628891B1 (en) * 1999-11-19 2003-09-30 Scm Microsystems, Inc. Signal filtering mechanism for a multi-purpose digital television receiver
KR100351817B1 (ko) * 2000-01-13 2002-09-11 엘지전자 주식회사 오픈케이블 수신 시스템 및 시스템 진단 방법
US7069578B1 (en) * 2000-02-04 2006-06-27 Scientific-Atlanta, Inc. Settop cable television control device and method including bootloader software and code version table for maintaining and updating settop receiver operating system software
JP2002014737A (ja) 2000-06-29 2002-01-18 Fujitsu Ltd 処理装置、集積回路、および集積回路パッケージ
DE10046705C1 (de) * 2000-09-21 2002-07-25 Knorr Bremse Systeme Bremsscheiben-/Nabenverbindung für Fahrzeugscheibenbremsen
US20040068721A1 (en) * 2000-11-17 2004-04-08 O'neill Patrick Network for updating firmware and / or software in wireless communication devices
JP2002312186A (ja) 2001-04-16 2002-10-25 Matsushita Electric Ind Co Ltd 情報処理機器、そのファームウェア及びそのファームウェア書き換え方法
US20020157115A1 (en) 2001-04-24 2002-10-24 Koninklijke Philips Electronics N.V. Wireless communication point of deployment module for use in digital cable compliant devices
JP2002366381A (ja) 2001-06-12 2002-12-20 Hitachi Ltd オブジェクトの動的入替え処理方法
US20030009752A1 (en) * 2001-07-03 2003-01-09 Arvind Gupta Automated content and software distribution system
US20030061604A1 (en) 2001-09-21 2003-03-27 General Instrument Corporation Software-code configurable digital appliance
JP3932547B2 (ja) 2001-10-15 2007-06-20 ソニー株式会社 放送受信装置および方法
US20030084440A1 (en) 2001-10-26 2003-05-01 George Lownes Method of providing a code upgrade to a host device having a smart card interface
AU2004202425A1 (en) 2003-06-04 2004-12-23 Panasonic Corporation Program replacing method
JP4149414B2 (ja) 2003-06-04 2008-09-10 松下電器産業株式会社 プログラム置き換え方法およびプログラム置き換え装置

Also Published As

Publication number Publication date
KR100926201B1 (ko) 2009-11-09
CN1602058A (zh) 2005-03-30
US20120137323A1 (en) 2012-05-31
KR20080097975A (ko) 2008-11-06
EP1742149B1 (de) 2008-11-05
EP1484677A2 (de) 2004-12-08
EP1742149A3 (de) 2007-06-13
KR100990247B1 (ko) 2010-10-26
US8850511B2 (en) 2014-09-30
US8453195B2 (en) 2013-05-28
US20120110617A1 (en) 2012-05-03
EP1742149A2 (de) 2007-01-10
US8458762B2 (en) 2013-06-04
DE602004005376D1 (de) 2007-05-03
EP1742148A2 (de) 2007-01-10
ATE413643T1 (de) 2008-11-15
KR100926202B1 (ko) 2009-11-09
US8104068B2 (en) 2012-01-24
DE602004017651D1 (de) 2008-12-18
BRPI0401901A (pt) 2005-05-24
KR20090079848A (ko) 2009-07-22
US20040226049A1 (en) 2004-11-11
CN100382580C (zh) 2008-04-16
ATE357692T1 (de) 2007-04-15
KR20080097976A (ko) 2008-11-06
AU2004202425A1 (en) 2004-12-23
DE602004016573D1 (de) 2008-10-23
KR20040104935A (ko) 2004-12-13
US20130239138A1 (en) 2013-09-12
EP1742148B1 (de) 2008-09-10
ATE408184T1 (de) 2008-09-15
EP1484677B1 (de) 2007-03-21
EP1742148A3 (de) 2007-06-13
EP1484677A3 (de) 2005-12-28
EP2031506A1 (de) 2009-03-04

Similar Documents

Publication Publication Date Title
DE69909255T2 (de) Multimediaterminal für mehrere benutzer
DE69833022T2 (de) Fernladen von anwendungen in einen digitalen decoder
DE69613854T2 (de) Verfahren und vorrichtung zum laden einer benutzerschnittstelle
DE69717505T2 (de) Verfahren zum fernladen von daten in einen mpeg-empfänger/-dekoder
DE69907426T2 (de) Digitale verarbeitung von grafischen bildern in einem dekodierer
DE602004005376T2 (de) Verfahren zur Ersetzung eines Programms
DE60220259T2 (de) Datenreferenzsystem
DE69824472T2 (de) Übertragen und Empfangen von Daten
DE60011147T2 (de) Verfahren und system zur kontrolle des herunterladens von software- und firmwareobjekten uber ein kabelfernsehsystem
DE60026964T2 (de) Adressenzuweisung in einem digitalen übertragungssystem
DE69819507T2 (de) Set-top-box gerätetreiber für die ieee1394 norm
DE60223890T2 (de) Verfahren zur Bereitstellung eines Software-Upgrades an ein Endgerät mit Chipkarten-Schnittstelle
DE69936157T2 (de) Authentifizierung von in einem digitalen Übertragungssystem übertragenen Daten
DE69933721T2 (de) DMA-Steuereinheit
DE69637182T2 (de) Vorrichtung und verfahren zur vorverarbeitung von computerprogrammen vor netzwerkübertragung
DE60024706T2 (de) Verteiltes Parameterkontrollprotokoll
DE60317788T2 (de) System und verfahren zur bereitstellung privater inbanddaten für digitalreceiver in einer broadcast-umgebung
DE69717502T2 (de) Signalerzeugung und Ausstrahlung
DE69736489T2 (de) System zur erzeugung von programmführungsinformation für die ausführung von steuer- und kommunikationsfunktionen durch den benutzer
DE69914790T2 (de) Signalisierung von bouquetinformation in einem digitalen übertragungssystem
DE69228481T2 (de) Verfahren zur individuellen anpassung eines gerätes mit einer chipkarte
DE69630408T2 (de) Digitaler Rundfunkempfänger und Übertragungsmethode
DE69809568T2 (de) Rundfunkempfängersystem mit einem computer und einem dekodierer
DE69520362T2 (de) System für telekommunikation
DE60006415T2 (de) Dynamische ermittlung von hardwarekonfiguration in einem digitalen endgerät

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP

8339 Ceased/non-payment of the annual fee