-
Hintergrund
der Erfindung
-
A. Gebiet der Erfindung
-
Diese
Erfindung bezieht sich auf das Gebiet der Datenkommunikation. Teile
der Offenbarung dieser Patentunterlagen enthalten Material, das
dem Urheberrecht unterliegt.
-
Der
Inhaber des Urheberrecht hat keinen Einwand, wenn jemand die Patentunterlagen
oder die Patentoffenbarung, wie sie in der Akte oder den Aufzeichnungen
des Patent- und Markenamtes erscheint, bildtechnisch reproduziert,
behält
sich aber alle Urheberrechte darüber
hinaus vor. Sun, Sun Microsystems, das Sunlogo, Solaris, SPARC, "Write Once, Run Anywhere", Java, JavaOS, JavaStation
und alle auf Java basierenden Marken und Logos sind Marken oder
eingetragene Marken von Sun Microsystems, Inc, in den USA und anderen
Ländern.
-
B. Technischer Hintergrund
-
Eine
Verwendung des Internets ist das Liefern von Media-Informationen
(wie eine Video- oder
Sounddatei) an einen Benutzer. Ein Problem bei den derzeitigen Media-Liefersystemen
ist, daß es
schwierig ist, irgendwelche anderen Daten zu liefern, während die
Mediadaten geliefert werden. Manchmal ist es gewünscht, Mediadaten und andere
Daten (wie Steuerdaten) zur gleichen Zeit zu senden, ein Verfahren,
das als "gleichzeitige
Lieferung" bezeichnet
wird. Bis jetzt gibt es kein geeignetes System zum gleichzeitigen
Liefern von Media- und Steuerdaten. Die Probleme, die mit dem Bereitstellen
eines gleichzeitigen Lieferns von Mediadaten und Steuerdaten verbunden
sind, lassen sich durch einen Überblick über Media-Liefersysteme
verstehen.
-
Media-Lieferung (Media
Delivery)
-
In
Multimediaanwendungen werden Mediadaten, wie Video- oder Audioinformationen,
von einem Servercomputer zu einem Clientcomputer (zum Beispiel einem
Computer eines Benut zers zu Hause oder im Büro) über einen "Transportstrom" übertragen.
Ein Transportstrom besteht aus einer Abfolge von Bursts oder Paketen
von Mediadaten. Bevor die Mediadaten übertragen werden, werden sie
zuerst durch Konvertieren in ein geeignetes Format zur Übertragung
bearbeitet. Einige Systeme (zum Beispiel Motion Picture Experts
Group (MPEG)-Standards,
wie MPEG-1, MPEG-2, MPEG-4 usw.) sind verfügbar, um Mediadaten (zum Beispiel
Audio, Video usw.) zu bearbeiten, um sie als Mediadatenstrom zu übertragen.
-
Mediadaten
werden manchmal als "zeitbezogene" oder "zeitsensitive" Daten bezeichnet.
Dies liegt daran, weil es wichtig oder erforderlich ist, daß die Daten
in einer bestimmten Geschwindigkeit und/oder zu einer bestimmten
Zeit verfügbar
sind. Beim Ansehen eines Videostroms ist es zum Beispiel wichtig,
daß neue
Videobilder verfügbar
sind, so wie sie benötigt
werden, um Unterbrechungen oder Verzögerungen in den dargestellten
Videodaten zu vermeiden. Wenn die Daten eines Videos zu langsam
gesendet werden, kann zum Beispiel das dargestellte Videobild einfrieren
oder schwarz werden, während
der Clientcomputer auf neue Videodaten wartet. Ähnlich müssen für Audiodaten neue Audiodaten
kontinuierlich geliefert werden oder es entstehen Unterbrechungen
bei der Wiedergabe. Diese Unterbrechungen können eine Ruhepause beim Abspielen der
Audiodaten hervorrufen, was dazu führt, daß der Ton abgeschnitten wird
oder Töne
und Wörter
fehlen. (Es ist zu beachten, daß zeitbezogene
Daten nicht auf Mediadaten beschränkt sind. Zeitbezogene Daten
sind Daten, die zusätzliche
Informationen mit sich tragen, die ein Timing darstellen, das für die Verwendung
der Daten relevant ist. Zum Beispiel können zeitbezogene Daten Zeitmarken
umfassen, die Deadlines anzeigen, bis zu denen die Daten verarbeitet
werden sollten).
-
In
einigen Fällen
ist eine Steueranwendung erforderlich, um bei der Wiedergabe der
Mediadaten zu helfen oder um die Wiedergabe der Mediadaten zu steuern.
In einigen Fällen
ist eine solche Steueranwendung ein Applet oder eine Anwendung (wie
ein Applet oder eine Anwendung in der Programmiersprache JavaTM). Das Applet wird als ein Bytecode von
einem Server zu einem Benutzercomputer übertragen und der Benutzercomputer
verwendet das Applet um die Wiedergabe der Mediadaten zu steuern.
Es kann notwendig sein, einen Bytecode oder andere seriellen Daten
oder Objekte an Clients zusammen mit den Mediainformationen zu liefern.
-
Es
gibt derzeit keinen effektiven Mechanismus, der verfügbar ist,
um Bytecodebefehle zusammen mit Mediadaten zu liefern. Typischerweise
werden Bytecodedaten übertragen,
nach dem alle notwendigen Daten übertragen
sind. Das kann für
einige Umgebungen zu spät
sein, bei denen Applets oder Steueranwendungen bearbeitet werden
müssen,
sobald sie verfügbar
werden. Eine Lösung
aus dem Stand der Technik ist es, die Steueranwendung zuerst zu
senden, noch bevor die Media- oder zeitbezogenen Daten übertragen
werden. Dies führt
jedoch zu unerwünschten
Verzögerungen
beim Wiedergeben der Mediadaten. Der Benutzer erwartet, Videodaten
zu sehen, statt dessen muß er
jedoch warten, bis die Steuerdaten empfangen sind. Diese Verzögerung ist
unerwünscht.
-
Daher
besteht ein Bedarf für
die Übertragung
von Bytecodebefehlen gleichzeitig mit den Mediadaten, anstelle einer Übertragung
vor oder nach den Mediainformationen.
-
US-PS 5 768 539 offenbart
ein Verfahren zum Herunterladen von Anwendungssoftware und zum Übertragen
von Videoinformationen über
ein digitales Netz. Nach diesem Verfahren wird ein Transportstrom von
Datenpaketen erzeugt, wobei der Transportstrom Audio- und Videoinformationen
sowie ausführbaren Code
und zugeordnete Bearbeitungsdaten enthält. Das Verfahren kann vorsehen,
daß die
Daten gemäß dem MPEG-Standard übertragen
werden. Die MPEG-Pakete werden in Nutzinformationsabschnitte von
ATM-Zellen abgebildet. Videoinformationen auf der einen Seite und
Software und zugeordnete Daten auf der anderen Seite werden in separaten
Paketen übertragen.
Daten, die keine Audio- oder Videodaten sind, werden auch in den
Nutzinformationsabschnitten der MPEG-Pakete abgebildet.
-
EP 0 967 547 offenbart ein
Verfahren und eine Vorrichtung zum Liefern von Klassen und Objekten. Gemäß diesem
Dokument wird ein Kopf, der Zeitinformation umfaßt, an die Klassen und Objekte
angefügt
und zu einer Empfängerseite übertragen.
Dieses Dokument wurde nach dem Prioritätstag des vorliegenden Patents
veröffentlicht.
-
Es
ist das Ziel der vorliegenden Erfindung, ein Verfahren zum Liefern
von Bytecodes zum Steuern der Wiedergabe von Mediadaten in einem
Transportstrom zur Verfügung
zu stellen, wobei Mediadaten in Datenpakete zerlegt werden, was
für ein
gleichzeitiges und rechtzeitiges Liefern der Bytecodebefehle mit
Mediadaten und eine effiziente Benutzung des Datenraums, der in
dem Transportstrom verfügbar
ist, ermöglicht.
-
Zusammenfassung
der Erfindung
-
Es
wird ein Verfahren und eine Vorrichtung zum Einbetten von Bytecodedaten
in ein Transportstrom beschrieben. Ausführungsformen der Erfindung
sorgen dafür,
daß JavaTM-Bytecode (in einer Klassendatei) gleichzeitig
für einen
Benutzer verfügbar
ist, der Mediainformationen durch einen Transportstrom empfängt. Bytecodeinformationen
werden in den Raum eingebettet, der in dem Transportstrom zur Verfügung gestellt wird,
oder in Pakete, welche die Mediadaten übertragen.
-
In
einer Ausführungsform
der Erfindung werden Mediadaten in strukturierte Pakete gruppiert,
die als Packetized Elementary Stream (PES)-Pakete bezeichnet werden.
Die Bytecodedaten werden in vordefinierten Bereichen in jedem PES-Paket
eingebettet. Ein vordefinierter Bereich wird in dem Kopfsegment
eines PES-Pakets zur Verfügung
gestellt. Bytecodebefehle können
auch in einem Privatstromabschnitt eines PES-Pakets eingebettet
werden.
-
Bytecodedaten
können
auch in dem Privatstromabschnitt übertragen werden und eine Übertragungswiederholung
von Bytecodedaten wird in anderen Bereichen des PES-Pakets ausgeführt. Bytecodedaten
können
auch in einem Adaptionsfeld übertragen
werden und wieder übertragene
Daten werden als private Daten im PES-Kopf gesendet.
-
Ein
Transportstrom, der bei der Erfindung benutzt wird, ist ein MPEG-2-Transportstrom,
der strukturierte Pakete umfaßt,
welche die PES-Pakete übertragen.
Diese Transportstrompakete besitzen umgekehrt in ihnen eingebettete
Bytecodedaten innerhalb von Räumen
in dem Transportstrom. In einer Ausführungsform der Erfindung kann
Bytecode in einem Transportstromkopf oder in einem Transportstromnutzinformationsabschnitt
eingebettet sein.
-
In
Ausführungsformen
der Erfindung wird das Einbetten von Informationen gemäß den Verfahren
dieser Erfindung so ausgeführt,
daß ein
MPEG-2-kompatibler Decoder in der Lage ist, den Strom unabhängig davon
zu verwenden, ob der Decoder die eingebetteten Bytecodeinformationen
ausnutzt oder nicht. Weiterhin wird der Transportstrom mit minimalen Änderungen
in der Bit-Rate im Hinblick auf sowohl die Länge als auch die Frequenz übertragen
und liegt innerhalb der erlaubten maximalen Bandbreite. Ausführungsformen
dieser Erfindung können
auch Tune-in-Punkte definieren, an denen ein Decoder mit dem Decodieren
und dem Darstellen der Bytecodeinformationen anfängt.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
eine Ausführungsform
einer JavaTM-Netzwerkanwendungsumgebung.
-
2 ist
ein Blockdiagramm einer Ausführungsform
eines Computersystems, das dazu in der Lage ist, eine geeignete
Ausführungsumgebung
für eine
Ausführungsform
der Erfindung zur Verfügung
zu stellen.
-
3 ist
ein Diagramm, das ein Verfahren zum Packen, Fragmentieren und Transportieren
von Daten gemäß einer
Ausführungsform
der Erfindung darstellt.
-
4 stellt
ein Verfahren zum Einbetten von Bytecodedaten in das Adaptionsfeld
eines Pakets gemäß einer
Ausführungsform
der Erfindung dar.
-
5 stellt
ein Verfahren zum Einbetten von Bytecode in den Nutzinformationsabschnitt
eines MPEG-2-Transportstrompakets gemäß einer Ausführungsform
der Erfindung dar.
-
6 stellt
Bytecodedaten dar, die in einem PES-Kopf eines PES-Pakets eingebettet
sind.
-
Detaillierte
Beschreibung der Erfindung
-
Die
Erfindung stellt ein Verfahren und eine Vorrichtung zum Einbetten
von Bytecodedaten in einen Transportstrom zur Verfügung. In
der folgenden Beschreibung werden zahlreiche spezielle Details dargestellt, um
ein vollständigeres
Verständnis
der vorliegenden Erfindung zu liefern. Den Fachleuten wird jedoch
deutlich, daß die
vorliegende Erfindung ohne diesen speziellen Details ausgeführt werden
kann. Andererseits werden gut bekannte Merkmale nicht im Detail
beschrieben, um nicht unnötigerweise
von der Erfindung abzulenken.
-
Die
Erfindung wird im Hinblick auf die Übertragung von Mediadaten zu
einem Client-Computersystem beschrieben.
Dies ist jedoch nur ein Beispiel. Die Erfindung ist ebenso anzuwenden
auf jegliche Einrichtungen, die Daten empfangen können, einschließlich von
Digitalempfänger
(set top boxes), Minicomputern (personal digital assistants), intelligenten
Anwendungen (smart applications), Telekomeinrichtungen und Bankterminals (financial
termi nals) oder anderer solcher Einrichtungen. Außerdem ist
die Erfindung nicht auf Mediadaten beschränkt, sondern besitzt eine ähnliche
Anwendung bei jeglicher Form von Daten, einschließlich Daten,
die sich auf Electronic Commerce beziehen.
-
Bytecodedatenübertragung
in einem Mediadatentransportstrom
-
Die
aktuelle Erfindung sorgt für
ein gleichzeitiges Liefern von Mediadaten und Bytecodedaten über einen
Mediadatentransportstrom. Die Erfindung sorgt für ein Einbetten von Bytecodedaten
in vordefinierte Bereiche in den Transportstrom. Nach dem Empfangen
können
die Bytecodedaten separiert und benutzt werden, um ein Wiedergeben
oder Steuern der empfangenen Mediadaten zu unterstützen.
-
Eine
bestehende Technik zum zeitlichen Liefern von Mediaströmen, die
den Erfindern bekannt ist, ist ein Verfahren, das in einer Anmeldung
beschrieben ist, die beim US-Patentamt eingereicht wurde mit dem
Titel "Method and
Apparatus for Timely Delivery of a Bytecode and Serialized Objects
Stream" ("Verfahren und Vorrichtung
zur zeitlichen Lieferung von einem Bytecode und einem seriellen
Objektstrom"), welche
nun Gegenstand des US-Patents Nr. 6 092 120 und der entsprechenden
EP 0 967 547 A2 ist.
Das vorliegende Verfahren zum Liefern von Bytecodinformationen,
die in einem Transportstrom eingebettet sind, kann von einem Strom gebrauch
machen, der durch ein Verfahren einen Zeitbezug erhalten hat, das
in der zuvor genannten Anmeldung offenbart ist.
-
In
der vorliegenden Erfindung wird der Bytecode in einem Transportstrom
in einer solchen Weise eingebettet, daß die Übertragungsratenfrequenz und
die maximale Länge
stabil bleiben. Bytecodeinformationen werden in dem Transportstrom
so eingebettet, daß ein
Decoder in der Lage ist, den Mediadatenteil des Stroms zu decodieren,
selbst wenn der Decoder keinen Gebrauch von den eingebetteten Bytecodeinformationen
machen kann. In einer Ausführungsform
der Erfindung werden die Bytecodedaten in einem Mediatransportstrom eingebettet,
der unter Verwendung des MPEG-2-Protokolls decodiert ist. Diese
Ausführungsform
wird nachfolgend beschrieben.
-
MPEG-2
-
Obgleich
die vorliegende Erfindung für
alle Arten von Transportströmen
gleich angewendet werden kann, wird die Erfindung beispielhaft in
Verbindung mit der Übertragung
als ein Teil eines MPEG-2-Transportstroms beschrieben.
-
3 ist
ein Diagramm, welches den Ablauf darstellt, mit dem die Mediadaten über einen MPEG-2-Transportstrom übertragen
werden. Der Strom umfaßt
Transportstrompakete (TSPs), die aus einem Kopf und einem Datenspeicherabschnitt
bestehen. Der Kopf, der auch als Transportstromkopf (TS-Kopf) bezeichnet
wird, kann optional ein "Adaptionsfeld" umfassen. Der Datenspeicherabschnitt,
der auch als Transportstromnutzinformation (TS-Nutzinformation) bezeichnet wird, umfaßt Packetized
Elementary Stream (PES)-Pakete. Jedes PES-Paket umfaßt ein PES-Kopf
und Elementarstromdaten.
-
Der
Transportstrom ist in 4 aus der Perspektive einer
Datenquelle gezeigt, der in PES-Pakete konvertiert
und in TSP-Pakete zusammengesetzt ist. Es existiert eine Quelle 1000 von
Mediadaten, wie Audio-, Video-, Bild- oder andere Daten, die zu
einem Clientcomputer übertragen
werden sollen. Um dies zu bewerkstelligen, werden die Mediadaten 1000 in
eine oder mehrere Pakete variabler Größe gesetzt, die als Packetized
Elementary Stream (PES)-Pakete 1100 bezeichnet werden.
Jedes PES-Paket besteht aus zwei Bereichen, einem Kopfbereich und
einem Datenbereich. Dem PES-Kopf 1110 folgen "Elementarstromdaten" (Elementary Stream
Data) 1120.
-
PES-Kopfbereich (PES Header
Region)
-
Der
Kopfbereich enthält
ein PES-Kopf 1110. Der PES-Kopf 1110 identifiziert
die Attribute der Daten, die in dem Datenbereich gespeichert sind.
Solche Attribute können
den Typ der Daten, die Größe der Daten, die übertragen
werden, die Anfang- und Endpositionen der übertragenen Daten und möglicherweise
andere Informationen umfassen, die für eine Interpretation der übertragenen
Daten benötigt
werden. Zum Beispiel kann eine Ausführungsform eines PES-Kopf 1110 Informationen
umfassen, welche die Länge
des Kopfs, die Version, ein Flag, das eine Klasse und ein Objekt
bezeichnet, die Zahl der erforderlichen Klassen, einen "Start loading"-Zeitstempel, einen "Load by"-Zeitstempel, die
Größe der Klasse,
den verwendeten Kompressionstyp, die Art des verwendeten Sicherheitsschemas,
die An der verwendeten Feh lerberichtigung, andere Typinformationen,
die Länge
einer Klassenbezeichnung (ID), eine Klassenbezeichnung (ID), die
Längen
der Klassen-IDs für
jede der benötigten
Klassen und Klassen-IDs für
jede der benötigten
Klassen darstellen.
-
Mediadatenbereich (Media
Data Region)
-
Der
Elementarstromdatenbereich 1120 enthält elementare Mediadaten. Die
elementaren Daten 1000 bestehen aus allen oder einem Teil
der Quelldaten (d.h. Audiodaten, Videodaten). Die Daten können mit
geeigneten Identifizierungsinformationen in dem PES-Kopf 1110 zum
Dekomprimieren der Elementarstromdaten 1120 komprimiert
sein (wie benötigt).
-
Transportstrom (Transport
Stream)
-
Wie
vorhergehend erwähnt,
besteht der Transportstrom aus TSP-Paketen, die aus einem Kopf und
einem Datenspeicherabschnitt bestehen. Ein MPEG-2-Transportstrom 1200 ist
ein Multiplexbitstrom und eine Ansammlung einzelner MPEG-2-Transportstrompakete
(MPEG-2-TSP) 1210.
Jedes MPEG-2-TSP 1210 besitzt eine feste Länge von
188 Bytes und umfaßt
einen Transportstromkopf (TS-Kopf) 1220 gefolgt von einem Datenspeicherabschnitt
(TS-Nutzinformation) 1230.
(Die TS-Nutzinformationen bestehen aus PES-Paketen 1100).
-
TS-Kopf 1220 (TS
Header)
-
Der
TS-Kopf enthält
Informationen, die zum Empfangen und Decodieren der MPEG-2-TSPs 1210 benötigt werden.
Alle Transportstrompakete beginnen mit dem Transportstromkopf (32 Bits).
Dieser Transportstromkopf enthält
eine 13-Bit-Pakte-ID (PID), wie in Tabelle 1 nachfolgend gezeigt.
Die Transportstrompakete des einzelnen PID tragen Daten von einem
und nur einem Elementarstrom. Die PID bezeichnet über Programmspezifikationsinformation
(PSI)-Tabellen die Inhalte der Daten, die in dem Transportsstrompaket
enthalten sind. Es gibt vier PSI-Tabellen, die in dem Transportstrom
getragen werden, nämlich
Program Association Table (PAT), Program Map Table (PMT), Conditional
Access Table (CAT) und Network Information Table (NIT). Diese Tabellen
enthalten die notwendigen Informationen für ein Demultiplexing und zum
Darstellen von Programmen.
-
Ein
Programm ist hierin eine Ansammlung von Elementarströmen, die
synchron dargestellt werden sollen. Die Programmnummer ist die numerische
Markierung, die einem Programm zugeordnet ist. Die Programmdefinition
wird als Transportstrompakete übertragen,
welche die Program Map Table des Programms enthalten. Die Program
Map Table spezifiziert neben anderen Informationen, welche PIDs
und damit welche Elementarströme
jedem Programm zugeordnet sind. Die Program Association Table liefert
die Entsprechung zwischen der Programmnummer und der Program Map
Table. Die PMT kennzeichnet außerdem
die PID der Transportstrompakete, welche die PCR (Program Clock
Reference) für
jedes Programm tragen. Die Conditional Access Table enthält die Verschlüsselungsinformation,
und die Network Information Table kann die Netzwerkinformation angeben,
ihr Inhalt ist jedoch nicht durch den Standard definiert.
-
Tabelle
1: Transportpaketsyntax
-
Adaptionsfeld (Adaption
Field)
-
Wie
vorhergehend bemerkt, kann der Transportstromkopf optional ein Adaptionsfeld
aufweisen. Die Adaptionsfeldsteuerbits in dem TSH kennzeichnen,
ob es ein Adaptionsfeld und/oder eine Nutzinformation gibt oder
nicht. Die Adaptionsfeldsteuerwerte sind nachfolgend in Tabelle
2 beschrieben: Tabelle
2: Adaptionsfeldsteuerwert
-
Das
Adaptionsfeld, sofern es vorhanden ist, ist in der nachfolgenden
Tabelle 4 beschrieben:
-
Tabelle
3: Transportstromadaptionsfeld (teilweise)
-
PES-Paket
-
Das
PES-Paket weist folgende Struktur auf, wie in Tabelle 4 gezeigt:
-
Tabelle
4: PES-Paket (teilweise)
-
-
Privatdaten (Private Data)
-
Der
MPEG-2-Transportstrom ist in der Lage, Benutzerdaten zu übertragen.
Die Benutzerdaten können als
Privatdaten in das Adaptionsfeld des Transportkopfs eines Pakets
gefüllt
werden. Sie können
als ein Privatelementarstrom eines Programms geliefert werden. Sie
können
auch als Privatdaten in dem PES-Kopf des Transportstroms geliefert
werden. MPEG-2 ermöglicht
auch, Privatdaten in Transportstrompaketen mit einem PID-Wert zu
senden, der als eine Program Map Table PID in der Program Association
Table festgelegt ist.
-
Die
vorliegende Erfindung umfaßt
Ausführungsformen,
die auf die Möglichkeit
Rücksicht
nehmen, Privatdaten in einem Transportstrom zu liefern, um Bytecode
zum Liefern einzubetten.
-
Einbetten
von Bytecodedaten
-
Die Übertragung
von Bytecode und anderen Benutzerdaten in dem MPEG-2-Transportstrom
wird durch Einbetten der Daten in unterschiedlicher Abschnitte der
Pakete ausgeführt.
Dies umfaßt
(1) ein Einbetten der Daten als Privatdaten in das Adaptionsfeld 1222 des
TS-Kopfs 1220 (d.h. Kopf) eines MPEG-2-TSP 1210,
(2) ein Einbetten der Daten als Privatdaten in die TS-Nutzinformationen 1230 (d.h.
Datenspeicherabschnitt) eines MPEG-2-TSP 1210, (3) ein Übertragen
der Daten als Privatelementarstrom, der in dem PES-Kopf 1110 des
PES-Pakets 1100 enthalten ist. Insbesondere können die
Daten unter Verwendung einer Kombination der vorhergehend aufgezählten Verfahren übertragen
werden.
-
1. Adaptionsfeldverfahren
(Adaptation Field Method)
-
Wie
in der 4 dargestellt, können in einer Ausführungsform
der Erfindung Bytecodedaten als Privatdaten in das Adaptionsfeld 1222 (einschließlich in
den Kopf 1220) eines MPEG-2-TS-Pakets gepackt werden. Um die Daten
in jedem Paket zu maximieren, können
MPEG-2-TS-Pakete 1210 ohne
TS-Nutzinformationen 1230 gesendet werden. Wenn das Adaptions feldsteuerfeld
(adaptation_field_control field) 10 ist, beträgt die Länge des Adaptionsfelds 1222 183
Bytes. Insgesamt können
181 Bytes von Bytecodedaten in solch einem MPEG-2-TS-Paket 1210 eingebettet
werden. Da die Paketlänge
auf ein Maximum von 188 Bytes in dieser Ausführungsform der Erfindung festgelegt
ist, bleibt die Bitrate konstant und Übertragungswiederholungszeiten
und Tune-in-Zeiten (Einstellzeiten) können berechnet werden.
-
Die
PCR PID-Transportstrompakete, welche die PCR-Informationen des Programms
enthalten, besitzen eine minimale normative Rate. Dies definiert
das maximale Intervall dieser PCRs in dem Strom. Es können jedoch
zusätzliche
Pakete, welche Bytecodedaten übertragen,
als PCR PID-Pakete eingefügt
werden. Diese Pakete werden mit einer Rate eingefügt, die
unter Verwendung einer Tune-in-Zeit und der Bandbreite, die für den Bytecodedatenstrom
benötigt
wird, berechnet. Wenn das Adaptionsfeldsteuerflag (adaptation_field_control
flag) '10 ist, sollte
der Wert der Adaptionsfeldlänge
(adaptation_field_length) 183 betragen (4 Bytes für den Rest
des Transportstromkopfs und 1 Byte für die Adaptionsfeldlänge). Insgesamt
können
181 Bytes Bytecodedaten in einem solchen Paket gesendet werden,
da ein Byte für
andere Adaptionsfeldflags verwendet wird und die Privatdatenlänge unter
Verwendung von einem Byte spezifiziert wird.
-
Wieder
Bezug nehmend auf 6 beginnen die Bytecodepakete
mit einem Bytecodetransportkopf 601 und einem Bytecodestromkopf 602.
In einer Ausführungsform
dieser Erfindung kann ein Bytecodetransportkopf 601 folgende
Daten enthalten:
Version (V) (2 Bits)
Zukünftige Benutzung
(2 Bits)
Nächste
Tune-in-Zeit (64 Bits)
Nächste Übertragungswiederholungszeit
(60 Bits)
-
Die "nächste Tune-in-Zeit" ist der nächste Tune-in-Punkt,
von dem aus ein Decoder mit dem Decodieren beginnen kann. Dies markiert
den Beginn der Übertragungswiederholung
für alle
Klassen/Objekte, die für eine
Session notwendig sind. In einer MPEG-2-Implementation wird diese
Zeit in Einheiten eines 90 Megahertz-Takts gemessen. Die Zahl der
Einheiten werden von dem Beginn der Session gemessen. Dauernullen werden
benutzt, um anzuzeigen, daß die
Tune-in-Zeit nicht definiert ist.
-
Die
nächste Übertragungswiederholungszeit
ist die Zeit der nächsten Übertragungswiederholung
für eine)
Klasse/Objekt. Diese Zeit wird in Einheiten eines 90 Megahertz-Takts
gemessen. Dauernullen werden benutzt, um anzuzeigen, daß die Tune-in-Zeit
nicht definiert ist. Dieses Feld ist auf 32 Bit ausgerichtet. Dies gibt
die nächste Übertragungswiederholung
der TS-Nutzinformation 1230 in dem gleichen Kanal wieder.
Wenn sich der normale und der Übertragungswiederholungskanal
unterscheiden, kann eine Klassendatei wieder in den normalen Kanal
zum Tune-in zu einer Zeit vor der nächsten Übertragungswiederholungszeit übertragen werden.
-
2. Nutzinformationsverfahren
(Payload Methode
-
Die
Benutzerdaten können
auch als ein Privatelementarstrom eines Programms gesendet werden. MPEG-2
erlaubt zwei Privatelementarstromarten: Privatstrom1/Privatestrom2 (Private_Stream1/Private_Stream2).
Diese unterscheiden sich in dem Format des PES-Kopfs, der in diesen Strömen übertragen
wird.
-
Die
Bytecodedaten können
als Privatdaten des Typs Privatstrom2 mit einem Java-Stromkopf oder
einem beliebigen anderem Äquivalent
als der Privatstrom-PES-Kopf gesendet werden. Wie in 5 dargestellt, können in
einer anderen Ausführungsform
der Erfindung Bytecodedaten als Daten in die TS-Nutzinformation 1230 (Datenspeicherabschnitt)
eines MPEG-2-TS-Pakets
gepackt werden. Wenn nicht genügend
Elementarstromdaten 1120 verfügbar sind, um in den TS-Nutzinformationsabschnitt 1230 des
MPEG-2-Transportstroms 1200 defragmentiert zu werden, können stattdessen
Bytecodedaten ersetzt werden.
-
3. PES-Kopfverfahren (PES
Header Method)
-
Das
MPEG-2-TS-Format für
die Elementarströme
verschiedener Stromarten besitzen Felder für Privatdaten, die in dem PES-Kopf
gesendet werden sollen. 16 Bytes der Bytecodedaten können als
Privatdaten in jedem PES-Kopf gesendet werden, wenn das PES-Privatendatenflag
in dem PES-Kopf gesetzt ist. Die PES-Köpfe erscheinen nur an dem Beginn
eines PES-Pakets und jedes PES-Paket wird in mehrere Transportstrompakete
aufgespalten. Daher tragen nicht alle Transportstrompakete dieses
PID PES-Köpfe.
Diese Technik zum Liefern von Benutzerdaten kann benutzt werden,
wenn die zu sendende Information nicht viel Bandbreite benötigt. In
diesem Fall kann sich die Bitrate etwas ändern.
-
Wie
in 8 dargestellt, werden Bytecodedaten
in den PES-Kopf 1110 eines PES-Paktes 1100 eingebettet.
Das MPEG-2-PES-Format für
die Elementarströme
verschiedener Stromarten besitzt Felder für Privatdaten, die in dem PES-Kopf 1110 gesendet
werden sollen. 16 Bytes der Bytecodedaten können als Privatdaten in jedem
PES-Kopf 1110 übertragen
werden, wenn das PES-Privatdatenflag gesetzt ist.
-
PES-Köpfe 1110 erscheinen
nur an dem Beginn eines PES-Pakets 1100. Als ein Teil einer
Fragmentierung der PES-Pakete 1100 wird jedes Paket in
mehrere MPEG-2-TS-Pakete 1210 aufgespalten. Daher brauchen
nicht alle MPEG-2-TS-Pakete 1210 in dem MPEG-2-Transportstrom 1200 einen
PES-Kopf 1110 zu tragen.
-
4. Hybridverfahren eines
Bytecodedatentransports zur Übertragung
und Übertragungswiederholung
-
Anstatt
die Bytecodedaten nur in PES-Köpfen
einzuschließen,
kann eine Kombination der zuvor genannten Verfahren verwendet werden.
Die Kombinationstechniken stellen eine Möglichkeit zur Übertragungswiederholung
von Bytecodedaten zur Verfügung,
ohne die Lieferrate der ursprünglich übertragenen
Bytecodedaten oder der Mediadaten zu beeinflussen.
-
Der
Transportstrommultiplexer hält
eine konstante Rate aufrecht, mit der die Pakete geliefert werden. Die
Transportstrompakete, welche die PES-Pakete und andere Informationen übertragen,
werden mit Bytecodedaten unter Verwendung von vordefinierten Stopfbytes
in dem Adaptionsfeld aufgefüllt,
um eine konstante Bitrate aufrechtzuerhalten. Ein Auffüllen erfolgt
auch, wenn nicht genügend
PES-Paketdaten vorhanden sind, um die Transportstrompaketnutzinformatinsbytes
aufzufüllen.
In diesem Verfahren wird die normale Übertragung von Bytecodedaten
unter Verwendung des Privatstromverfahrens (vorhergehend beschrieben)
ausgeführt,
während
die Übertragungswiederholung
der gleichen Bytecodedaten durch Ersetzen der oben erwähnten Stopfbytes
erreicht werden kann. Die Übertragungswiederholung
wird damit bei einer nicht erhöhten
Bandbreite erzielt und die Bitrate kann konstant gehalten werden.
-
Eine
andere Technik nutzt das Adaptionsfeldverfahren zur normalen Übertragung
der Bytecodedaten. Die Übertragungswiederholung
der gleichen Bytecodedaten wird als PES-Kopfprivatdaten gesendet. Die normale Übertragung
wird in dem Adaptionsfeld ausgeführt, um
sicherzustellen, daß alle
Daten bei einer festen Rate gesendet werden können. Die Übertragungswiederholung wird
unter Verwendung des PES-Kopfs ausgeführt, so daß die Bandbreite nicht wesentlich
erhöht
wird.
-
Ein
anderes Schema kombiniert die Privatstromtechnik und die PES-Kopftechnik.
Die Übertragungswiederholung
von Bytecodedaten erfolgt als PES-Kopfprivatdaten, wie in der oben
genannten Technik, aber für
die normale Übertragung
der Bytecodedaten wird das Privatstromverfahren verwendet.
-
Fehlerberichtung (Error
Correction)
-
Die
oben beschriebenen Hybridschemata stellen die Möglichkeit für eine Übertragungswiederholung zur
Verfügung.
Da ein Verlust eines Transportstrompakets zu einer ungewollten Verfälschung
der Bytecodedaten führen
kann, wird eine Verfahrensweise zur Übertragungswiederholung implementiert,
um alle verlorenen Pakete wieder zu übermitteln. Ein möglicher
Ansatz umfaßt
die Übertragungswiederholung
der gesamten Klasse zu regulären
Intervallen beim Ausbleiben eines Rückkanals. Dies dient zur Unterstützung von
zufälligen Zugriffspunkten
im Fall von Medien. Dies ist eventuell jedoch nicht möglich, wenn
die Zahl der Clients zu groß ist
oder wenn die Klasse (oder das Objekt) sehr groß ist, was die Übertragungswiederholung
ausschließt.
-
Wenn
ein Rückkanal
vorhanden ist, kann ein Paketverlust dem Server angezeigt werden
und das verlorene Paket kann wieder übertragen werden. Wenn ein
sicheres Multicastschema verwendet wird, können die Daten auch von anderen
Orten als dem Server wieder übertragen
werden.
-
Es
gibt eine Anzahl von Fehlerabfangschemata mit eingebauter Redundanz,
die geeignet sind, teilweise verlorene Pakete wieder zu erlangen.
Zum Beispiel können
Schemata wie Vorwärtsfehlerkorrektur
(forward error correction) benutzt werden. Das Paketverlustproblem
kann auch teilweise durch Verwendung einiger zuverlässiger Multicastschemata
gelöst
werden. Ausführungsformen
der Erfindung unterstützen
die Verwendung beliebiger fehlerabfangender oder beliebiger sicherer
Multicastalgorithmen, um den Paketverlust zu beheben.
-
Die
Umgebung, welche die Einrichtungen zum Betreiben der Verfahren dieser
Erfindung zur Verfügung
stellt, umfaßt
Ausführungsformen
in Form von Hardwaresystemen, Softwarekomponenten und Datenstrukturen,
die beim Betrachten der folgenden Beschreibung verstanden werden
können.
Nachfolgend werden Überblicke über Hardwareausführungen,
objektorientiertes Programmieren und die Programmiersprache JavaTM gegeben.
-
Objektorientiertes
Programmieren
-
Objektorientiertes
Programmieren ist ein Verfahren zum Erzeugen eines Computerprogramms
durch die Kombination verschiedener fundamentaler Bausteine und
durch Erzeugen von Beziehungen unter und zwischen den Bausteinen.
Die Bausteine in objektorientierten Programmiersystemen werden als "Objekte" bezeichnet. Ein
Objekt ist eine Programmeinheit, die eine Datenstruktur (eine oder
mehrere Instanzvariablen) und die Operationen (Methoden), welche
die Daten benutzen oder beeinflussen können, zusammen gruppieren.
Demnach besteht ein Objekt aus Daten und einer oder mehreren Operationen
oder Prozeduren, die an den Daten ausgeführt werden können. Das
Kombinieren von Daten und Operationen in einen einheitlichen Baustein
wird als "Kapselung" ("encapsulation") bezeichnet.
-
Ein
Objekt kann angewiesen werden, eine seiner Methoden auszuführen, wenn
es eine "Nachricht" erhält. Eine
Nachricht ist eine Anweisung oder ein Befehl, die an das Objekt
gesendet wird, um eine bestimmte Methode auszuführen. Eine Nachricht besteht
aus einer Methodenauswahl (zum Beispiel Methodenname) und mehreren
Argumenten. Eine Nachricht teilt dem empfangenden Objekt mit, welche
Operationen auszuführen sind.
-
Ein
Vorteil der objektorientierten Programmierung ist die Art, in der
die Methoden aufgerufen werden. Wenn eine Nachricht an ein Objekt
gesendet wird, ist es nicht notwendig, daß die Nachricht das Objekt
anweist, wie eine bestimmte Methode auszuführen ist. Es ist nur ein Aufruf
erforderlich, daß das
Objekt die Methode ausführt.
Dies vereinfacht die Programmentwicklung erheblich.
-
Objektorientierte
Programmiersprachen basieren in erster Linie auf einem "Klassen"-Schema. Ein klassenbezogenes
objektorientiertes Programmierschema ist allgemein beschrieben in:
Liebermann, "Using Prototypical
Objects to Implement Shared Behavior in Object-Oriented Systems", OOPSLSA 86 Proceedings, September
1986, S. 214-223.
-
Eine
Klasse definiert eine An eines Objekts, das typischerweise sowohl
Variablen als auch Methoden für
die Klasse umfaßt.
Eine Objektklasse wird benutzt, um eine bestimmte Instanz eines
Objekts zu erzeugen. Eine Instanz einer Objektklasse umfaßt die Variablen
und Methoden, die für
die Klasse definiert sind. Mehrere Instanzen der gleichen Klasse
können
aus einer Objektklasse erzeugt werden. Jede Instanz, die aus einer
Objektklasse erzeugt wird, gilt als von der gleichen An oder Klasse.
-
Zum
Beispiel kann eine Arbeitnehmerobjektklasse die Instanzenvariablen "Name" und "Gehalt" und eine Methode "Gehaltsbestimmung" umfassen. Instanzen
der Arbeitnehmerobjektklasse können
für jeden
Arbeitnehmer in einer Organisation erzeugt oder instantiiert werden.
Jede Objektinstanz gilt als vom Typ "Arbeitnehmer". Jede Arbeitnehmerobjektinstanz umfaßt "Name"- und "Gehalt"-Instanzvariablen
und die "Gehaltsbestimmung"-Methode. Die Werte,
die der "Name"- und "Gehalt"-Variable jeder Arbeitnehmerobjektsinstanz
zugeordnet sind, enthalten den Namen und das Gehalt eines Arbeitnehmers
in der Organisation. Eine Nachricht kann an eine Arbeitnehmerobjektinstanz
eines Arbeitnehmers gesendet werden, um die "Gehaltsbestimmung"-Methode aufzurufen, um das Gehalt des
Arbeitnehmers zu verändern
(d.h. den Wert, welcher der "Gehalt"-Variable in dem
Arbeitnehmerobjekt des Arbeitnehmers zugeordnet ist).
-
Eine
Hierarchie von Klassen kann definiert werden, so daß eine Objektklassendefinition
eine oder mehrere Unterklassen besitzt. Eine Unterklasse übernimmt
die Definitionen ihrer Eltern (und ihrer Großeltern usw.). Jede Unterklasse
in der Hierarchie kann dem Verhalten, das durch seine Elternklasse
spezifiziert ist, etwas hinzufügen
oder dieses modifizieren. Einige objektorientierte Programmiersprachen
unterstützen
eine Mehrfachvererbung, wenn eine Unterklasse eine Klassendefinition
von mehr als einer Elternklasse erbt. Andere Programmiersprachen
unterstützen
nur eine Einfachvererbung, wenn eine Unterklasse darauf beschränkt ist,
die Klassendefinition nur einer Elternklasse zu erben. Die Programmiersprache
JavaTM stellt außerdem einen Mechanismus zur
Verfügung,
der als eine Schnittstelle (Interface) bekannt ist, die als ein
Satz von konstanten und abstrakten Methodendeklarierungen bekannt
ist. Eine Objektklasse kann die abstrakten Methoden, die in der
Schnittstelle definiert sind, implementieren. Sowohl die Einfach-
als auch die Mehrfachvererbung sind für eine Schnittstelle zugänglich.
Das heißt,
eine Schnittstelle kann eine Schnittstellendefinition von mehr als
einer Elternschnittstelle erben.
-
Ein
Objekt ist ein generischer Ausdruck, der in der objektorientierten
Programmierumgebung benutzt wird, um ein Modul zu bezeichnen, das
zugeordneten Code und Variablen enthält. Eine Softwareanwendung kann
unter Verwendung einer objektorientierten Programmiersprache geschrieben
werden, wobei die Funktionalität
des Programms unter Verwendung von Objekten implementiert wird.
-
JavaTM-Programmierung und Ausführung
-
Ein
JavaTM-Programm setzt sich aus einer Anzahl
von Klassen und Schnittstellen zusammen. Im Gegensatz zu vielen
Programmiersprachen, in denen ein Programm in einem maschinenabhängigen,
ausführbaren
Programmcode kompiliert wird, werden JavaTM-Klassen
in maschinenunabhängige
Bytecodeklassendateien kompiliert. Jede Klasse enthält Code
und Daten in einem plattformunabhängigen Format, das als Klassendateiformat
bezeichnet wird. Das Computersystem, das als das Ausführungsvehikel
agiert, enthält
ein Programm, das als virtuelle Maschine bezeichnet wird und für die Ausführung des
Codes in JavaTM-Klassen verantwortlich ist.
Die virtuelle Maschine stellt ein Abstraktionsniveau zwischen der
Maschinenunabhängigkeit
der Bytecodeklassen und dem maschinenabhängigen Befehlssatz der zugrunde
liegenden Computerhardware zur Verfügung. Ein "Klassenlader" ("class
loader") in der
virtuellen Maschine ist für
das Laden der Bytecodeklassendateien, wie sie benutzt werden, verantwortlich,
und entweder führt
ein Interpreter die Bytecodes direkt aus oder ein "Just-In-Time" (JIT)-Kompilierer übersetzt
die Bytecodes in Maschinencode, so daß sie von dem Prozessor ausgeführt werden
können.
-
Beispiel einer
JavaTM-Netzanwendungsumgebung
-
1 ist
ein Blockdiagramm, das ein Beispiel einer JavaTM-Netzumgebung
darstellt, die eine Clientplattform 102 umfaßt, welche über ein
Netz 101 mit einem Server 100 zu dem Zweck verbunden
ist, auf JavaTM-Klassendateien zuzugreifen,
um eine JavaTM-Anwendung oder ein Applet
auszuführen.
-
In 1 umfaßt der Server 100 eine
JavaTM-Entwicklungsumgebung 104 zur
Benutzung beim Erzeugen der JavaTM-Klassendateien
für eine
gegebene Anwendung. Die JavaTM-Entwicklungsumgebung 104 stellt einen
Mechanismus, wie einen Editor und einen Applet- Anzeiger, zum Erzeugen von Klassendateien
und zum Voranzeigen von Applets zur Verfügung. Ein Satz von JavaTM-Kernklassen 103 umfaßt eine
Bibliothek von JavaTM-Klassen, auf die über Quelldateien
verwiesen werden kann, die andere/neue JavaTM-Klassen
enthalten. Von der JavaTM-Entwicklungsumgebung 104 werden
eine oder mehrere JavaTM-Quelldateien 105 erzeugt.
JavaTM-Quelldateien 105 enthalten
die programmierlesbare Klassendefinitionen, einschließlich Datenstrukturen, Methodenimplementationen
und Verknüpfungen
zu anderen Klassen. JavaTM-Quelldateien 105 werden
an ein JavaTM-Kompilierer 106 gegeben,
der JavaTM-Quelldateien 105 in ".class"-Dateien 107 kompiliert,
die Bytecodes enthalten, der von einer virtuellen JavaTM-Maschine
ausgeführt
werden kann. Bytecodeklassendateien 107 werden auf dem
Server 100 gespeichert (zum Beispiel in temporärem oder
permanentem Speicher) und sind zum Herunterladen über das
Netz 101 verfügbar.
-
Die
Clientplattform 102 enthält eine virtuelle JavaTM-Maschine (JVM) 110, welche über die
Benutzung verfügbarer
nativer Betriebssysteme (O/S)-Aufrufe 112 in der Lage ist,
Bytecodeklassendateien auszuführen, und
führt native
O/S-Aufrufe aus, wenn dies während
der Ausführung
notwendig ist.
-
JavaTM-Klassendateien werden oft in Appletags
in einem HTML (Hypertext Markup Language)-Dokument identifiziert.
Eine Webserver-Anwendung 108 wird auf den Server 100 ausgeführt, um
auf HTTP (Hypertext Transport Protocol)-Aufrufe zu antworten, die
URLs (Universal Source Locator) zu HTML-Dokumenten enthalten, die
auch als "Web-Seiten" bezeichnet werden.
Wenn eine Browseranwendung, die auf einer Clientplattform 102 ausgeführt wird,
ein HTML-Dokument anfordert, wie durch ein Weiterleiten einer URL 109 zu
einem Webserver 108, startet der Browser automatisch das
Herunterladen der Klassendateien 107, die in dem Applettag
des HTML-Dokuments bezeichnet sind. Die Klassendateien 107 werden
typischerweise von dem Server heruntergeladen und in eine virtuelle
Maschine 111 individuell, wie benötigt, geladen.
-
Es
ist typisch für
die Klassen von JavaTM-Programmen, daß sie so
spät wie
möglich
während
der Programmausführung
geladen werden. Sie werden nach Aufruf aus dem Netz (gespeichert
auf einem Server) geladen oder bilden ein lokales Dateisystem, wenn
sie das erste Mal während
der Ausführung
des JavaTM-Programms verknüpft werden.
Die virtuelle Maschine lokalisiert und lädt jede Klassendatei, parst
das Klassendateiformat, weist Speicher für die verschiedenen Komponenten
der Klasse zu und verknüpft
die Klasse mit anderen bereits gelade nen Klassen. Dieses Verfahren
macht den Code in der Klasse für
die virtuelle Maschine leicht ausführbar.
-
Ausführungsform
einer Computerausführungsumgebung
-
Eine
Ausführungsform
der Erfindung kann als Computersoftware in Form eines computerlesbaren Programmcodes
implementiert werden, der auf einem Computer für allgemeine Zwecke ausgeführt wird,
wie einem Computer 200, der in 2 dargestellt
ist, oder in Form von Bytecodeklassendateien, die von einer virtuellen
Maschine ausgeführt
werden können,
die auf einem solchen Computer abläuft. Eine Tastatur 210 und eine
Maus 211 sind mit einem bidirektionalen Systembus 218 verbunden.
Die Tastatur und die Maus dienen zum Aufnehmen von Benutzereingabe
in das Computersystem und übertragen
diese Benutzereingabe zu einer zentralen Bearbeitungseinheit (CPU) 213.
Andere geeignete Eingabeeinrichtungen können zusätzlich zu der Maus 211 und
der Tastatur 210 oder statt dessen benutzt werden. Eine
I/O (Eingabe/Ausgabe)-Einheit 219, die mit dem bidirektionalen
Systembus 218 gekoppelt ist, stellt solche I/O-Elemente
dar, wie ein Drucker, AN (Audio/Video)-I/O, usw..
-
Der
Computer 200 umfaßt
ein Videospeicher 211, einen Hauptspeicher 215 und
einen Massenspeicher 212, die alle mit dem bidirektionalen
Systembus 218 zusammen mit der Tastatur 210, der
Maus 211 und der CPU 213 gekoppelt sind. Der Massenspeicher 212 kann
sowohl feste als auch entfernbare Medien umfassen, wie magnetische,
optische oder magnetooptische Speichersysteme oder eine beliebige
andere verfügbare
Massenspeichertechnologie. Der Bus 218 kann zum Beispiel
32 Adressleitungen zum Adressieren des Videospeichers 214 oder
des Hauptspeichers 215 aufweisen. Der Systembus 218 umfaßt außerdem beispielsweise
einen 32-Bit-Datenbus zum Übertragen
von Daten zwischen und unter den Komponenten, wie der CPU 213,
dem Hauptspeicher 215, dem Videospeicher 214 und
dem Massenspeicher 212. Alternativ können Multiplexdaten/Adressleitungen
anstelle von separaten Daten und Adressleitungen benutzt werden.
-
In
einer Ausführungsform
der Erfindung ist die CPU 213 ein von Motorola® hergestellter
Mikroprozessor, wie der 680X0-Prozessor, oder ein von Intel® hergestellter
Mikroprozessor, wie der 80X86, oder Pentium®-Prozessor,
oder ein von Sun Microsystems® hergestellter Mikroprozessor
SPARC®.
Es können
jedoch auch beliebig andere Mikroprozessoren oder Mikrocomputer
benutzt werden. Der Hauptspeicher umfaßt ein Dynamic Random Access
Me mory (DRAM). Der Videospeicher 214 ist ein Dual-Port
Video Random Access Memory. Ein Port des Videospeichers 214 ist
mit einem Videoverstärker 216 verbunden.
Der Videoverstärker 216 wird
benutzt, um einen Rastermonitor 217 mit Kathodenstrahlröhre (CRT)
anzutreiben. Der Videoverstärker 216 ist
im Stand der Technik gut bekannt und kann durch beliebige geeignete
Vorrichtungen implementiert werden. Diese Schaltung konvertiert
Pixeldaten, die in dem Videospeicher 214 gespeichert sind,
zu einem Rastersignal, das für
die Benutzung mit dem Monitor 217 geeignet ist. Der Monitor 217 ist
eine Monitorart, die zum Anzeigen von grafischen Bildern geeignet
ist.
-
Der
Computer 200 kann auch eine Kommunikationsschnittstelle 220 aufweisen,
die mit dem Bus 218 verbunden ist. Die Kommunikationsschnittstelle 220 stellt
eine Zweiwege-Datenkommunikation
zur Verfügung, die über eine
Netzverknüpfung 201 mit
einem lokalen Netzt 222 verknüpft ist. Wenn zum Beispiel
die Kommunikationsschnittstelle 220 eine Integrated Service
Digital Network (ISDN)-Karte oder ein Modem ist, sorgt die Kommunikationsschnittstelle 220 für eine Datenkommunikationsverbindung
zu einem entsprechenden Typ von Telefonleitung, die einen Teil der
Netzverknüpfung 221 umfaßt. Wenn
die Kommunikationsschnittstelle 220 eine Local Area Network
(LAN)-Karte ist, sorgt die Kommunikationsschnittstelle 220 für eine Datenkommunikationsverbindung über eine
Netzverknüpfung 221 zu
einem kompatiblen LAN. Kabellose Verknüpfungen sind auch möglich. In
allen solchen Implementierungen, sendet und empfängt die Kommunikationsschnittstelle 220 elektrische,
elektromagnetische oder optische Signale, welche digitale Datenströme tragen,
die verschiedene Arten von Informationen darstellen.
-
Die
Netzverknüpfung 221 sorgt
typischerweise für
eine Datenkommunikation über
ein oder mehrere Netze zu anderen Dateneinrichtungen. Zum Beispiel
kann die Netzverknüpfung 221 für eine Verbindung über ein
lokales Netz 222 zu einem Hostcomputer 223 oder
zu einer Dateneinrichtung zur Verfügung stellen, die von einem
Internet Service Provider (ISP) 224 betrieben wird. Der
ISP 224 stellt umgekehrt eine Datenkommunikationsdienst über das
World Wide-Paket Datenkommunikationsnetz zur Verfügung, das
nun üblicherweise
als das "Internet" 225 bezeichnet
wird. Sowohl das lokale Netz 122 als auch das Internet 225 benutzen
beide elektrische, elektromagnetische oder optische Signale, die
digitale Datenströme übertragen.
Die Signale in den verschiedenen Netzen und die Signale auf der
Netzverknüpfung 221 und
in der Kommunikationsschnittstelle 220, welche die digitalen
Daten von und zu dem Computer 200 transportieren, sind
beispielhafte Formen von Trägerwellen,
die Informationen transportieren.
-
Der
Computer 200 kann über
das (die) Netz(e), die Netzverknüpfung 221 und
das Kommunikationsinterface 220 Nachrichten senden und
Daten, einschließlich
von Programmcode, empfangen. In dem Beispiel des Internets kann
der Server 226 einen aufgerufenen Code für ein Applikationsprogramm über das
Internet 225, ISP 224, das lokale Netz 222 und
die Kommunikationsschnittstelle 220 übertragen.
-
Der
empfangene Code kann von der CPU 213, wenn er empfangen
ist, ausgeführt
werden und/oder in dem Massenspeicher 212 oder anderen
nichtflüchtigen
Speichern zur späteren
Ausführung
gespeichert werden. Auf diese Weise kann der Computer 200 Anwendungscode
in Form von Trägerwellen
erhalten.
-
Die
Computersysteme, die vorhergehend beschrieben wurden, dienen nur
als Beispiele. Eine Ausführungsform
der Erfindung kann in anderen Arten von Computersystemen oder Programmier-
oder Bearbeitungsumgebungen implementiert werden.
-
Damit
wurde ein Verfahren und Vorrichtung zum zeitlichen Liefern eines
Bytecodestroms in Verbindung mit einen oder mehreren speziellen
Ausführungsformen
beschrieben.