-
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 1411–1414 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 1611–1613 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 1711–1714 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 2311–2312 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.