-
Sachgebiet der Erfindung
-
Die
Erfindung bezieht sich auf ein Verfahren zur Verteilten Speicherung
und Wiedergewinnung von Datenströmen.
Insbesondere bezieht sie sich auf nahtlose Echtzeit-Aufspaltung
und Verkettung von Datenströmen,
z. B. Multimedia-Datenströmen.
-
Hintergrund
-
Multimedia-Heim-Netzwerke
werden oft dazu verwendet, Datenströme zu verarbeiten, die Audio-,
Video- und andere Daten enthalten. Dies schließt die Aufzeichnung und Wiedergabe
großer Datenmengen
ein. Üblicherweise
wird ein Datenstrom, der eine Einheit wie einen Videofilm oder eine Audiospur
enthält,
als einzelne Datei gehandhabt und als solche gespeichert. Intern
werden diese Ströme
oft in Pakete strukturiert, wie zum Beispiel für digitales Video (DV), oder
in der MPEG-2-Norm. Je nach der Norm können diese Pakete eine unterschiedliche
Länge haben,
z. B. 188 Bytes für MPEG-2.
-
Während die
Datenmengen ebenso wie die verfügbare
Speicherkapazität
drastisch zunehmen, ist das Organisieren des Speicherbereichs für den Benutzer
eine lästige
Aufgabe. Es gibt verschiedene automatische Lösungen, wie z. B. Speicherbereichs-Netzwerke,
die dazu dienen, Speichervorrichtungen von anderen Vorrichtungen
zu trennen und damit allen angeschlossenen Daten erzeugenden oder
Daten verbrauchenden Geräten
Speicherkapazität
anbieten. Solche Verfahren werden als verteilte Speicherung bezeichnet,
da sie automatisch eine Datei, die auf irgendeiner der angeschlossenen
Speichervorrichtungen gespeichert werden soll, verteilen und später finden
und wiedergewinnen können.
In solchen Syste men braucht der Benutzer üblicherweise nicht in Einzelheiten
zu wissen, wo ein bestimmter Inhalt gespeichert wird. Um verschiedene
Typen von Anwendungspaketen handhaben zu können, legen verteilte Speichersysteme
für Multimedia-Netzwerke oft die
Anwendungspakete in Paketbehälter
zur Speicherung ab, wie es z. B. für die DVD-Strom-Aufzeichnungsnorm „DVD Specification
for Rewritable/Rerecordable Discs, Teil 5, Strom-Aufzeichnung, Mai 2000" definiert ist. Um
eine richtige Echtzeit-Wiedergabe zu ermöglichen, werden den Anwendungspaketen
Zeitstempel (ATS) zugeordnet.
-
Verteilte
Speicherverfahren können
auch bei Heim-Netzwerken angewendet werden, die dazu neigen, bequeme
automatische Lager für
verschiedene Arten von Daten zu werden. Das System kann ohne jeglichen
Benutzereingriff autonom nach einer Speichervorrichtung Ausschau
halten, die genug Speicherkapazität für eine Aufzeichnung zur Verfügung stellen
kann. Für
die Anwendung, z. B. Video-Aufzeichnung, ist dieses Verhalten des
Speichersystems üblicherweise
transparent.
-
Wenn
jedoch Echtzeit-Stromdaten aufgezeichnet werden sollen, ist es im
allgemeinen nicht möglich,
im voraus die Größe des Datenstroms
und damit den benötigten
Speicherbereich zu kennen. Daher ist eine Speicherbereichs-Verwaltung
schwierig, so dass eine Aufzeichnung von Echtzeit-Daten üblicherweise
beendet wird, wenn die ausgewählte Speichervorrichtung
voll ist.
-
Die
Architektur von verteilten Speichersystemen wie Netzwerken im Allgemeinen
kann entweder auf Client-Server- oder Peer-zu-Peer-(P2P)-Prinzipien
beruhen. P2P-Netzwerke benötigen
keine zentrale Netzwerksorganisation, da die Knoten oder Peers üblicherweise
unmittelbar miteinander kommunizieren. Dienste und Betriebsmittel,
wie z. B. der Speicherbereich, können
gemeinsam genutzt werden, so dass dem Benutzer zahlreiche verbesserte Funktionen
angeboten werden.
-
EP 1 211 688 offenbart ein
Informations-Aufzeichnungsgerät,
das eine Mehrzahl von Aufzeichnungsflächen handhabt. Wenn die verbleibende
Kapazität
einer ersten Aufzeichnungsfläche
unterhalb eines Schwellwertes liegt, wird eine parallele Aufzeichnung
eines Datenteils auf einer Festplatte ausgeführt, bis eine neue Aufzeichnungsfläche vorgesehen
wird. Wenn die aktuelle Aufzeichnung beendet ist, wird der Datenteil
in einem Nachverarbeitungsschritt auf die neue Aufzeichnungsfläche aufgezeichnet.
-
EP 0 942 416 zeigt die Aufzeichnung
von Daten in der restlichen Aufzeichnungskapazität von Aufzeichnungsträgern, wobei
eine von mehreren Discs für
die Aufzeichnung auf der Basis ihrer Restkapazität und einer Berechnung des
benötigten
Disc-Raumes entsprechend einer bekannten Aufzeichnungszeit ausgewählt wird.
-
US 6,134,596 A offenbart
zeitliches Einplanen von Netzwerk-Betriebsmitteln zum Abspielen von mehreren
Dateien, um so eine nahtlose Wiedergabe von Daten aus einer Mehrzahl
von aufgezeichneten Medien zwecks Entwirrung (declustering) zu ermöglichen.
Ein Zeitplaner unterhält
einen Netzwerks-Zeitplan,
der eine relative Ordnung von Übertragungszeiten
durch Instruieren der geeigneten Daten-Server vorsieht, um Daten
zu lesen und zu liefern, wenn sich die geplante Zeit nähert.
-
Zusammenfassung der Erfindung
-
Ein
verteiltes Speichersystem für
Multimedia-Heim-Netzwerke sollte in der Lage sein, Echtzeit-Aufzeichnung
von Datenströmen
zu unterstützen.
Da wegen der Natur von Echtzeit-Aufzeichnung die
Länge einer
aufgezeichneten Datei oder eines Datenstroms zur Aufzeichnungszeit
nicht bekannt ist, besteht die Gefahr, dass die ausgewählte Speichervorrichtung
voll ist, bevor der Datenstrom vollständig gespeichert ist. In diesem
Fall kann der restliche Teil des Datenstroms auf einer anderen Speichervorrichtung
gespeichert werden. Jedenfalls benötigt die Auswahl und Aktivierung
der anderen Speichervorrichtung Zeit, die ein Echtzeitverhalten
behindert.
-
Der
Erfindung liegt die Aufgabe zugrunde, einen Datenstrom nahtlos bei
der Aufzeichnung in Portionen (chunks) aufzuspalten und die Portionen
in Echtzeit auf verschiedene angeschlossene Speichervorrichtungen
zu verteilen, so dass die Portionen nahtlos wieder in Echtzeit für die Wiedergabe
des Stroms verkettet werden können.
-
Ein
Verfahren zur Lösung
dieser Aufgabe ist im Anspruch 1 offenbart. Eine Vorrichtung, die
dieses Verfahren zur Speicherung verwendet, ist im Anspruch 9 offenbart.
Ein Verfahren zur Wiedergewinnung der Teile eines Datenstroms aus
verschiedenen Speichermedien ist im Anspruch 3 offenbart. Eine Vorrichtung,
die das Verfahren zur Wiedergewinnung verwendet, ist im Anspruch
10 offenbart.
-
Gemäß der Erfindung
werden Metadata-Etiketten und Zwischenspeicher verwendet, um eine nahtlose
Echtzeit-Aufzeichnung und Verkettung von Daten in einem verteilten
Speicherumfeld zu ermöglichen.
Wenn die maximale Kapazität
einer Speicher vorrichtung erreicht wird, während auf sie ein Datenstrom
aufgezeichnet wird, ermöglicht
es das erfindungsgemäße Verfahren,
den Strom aufzuspalten und den Rest auf einer anderen Speichervorrichtung zu
speichern. Zu diesem zweck kann die auf dem Aufzeichnungs-Speicherknoten
und auf den anderen Speicherknoten eines Netzwerks verfügbare Speicherkapazität überwacht
werden.
-
Während ein
Datenstrom auf einer ersten Speichervorrichtung aufgezeichnet wird
und die verfügbare
Speicherkapazität
dieser Vorrichtung an eine Grenze kommt, sendet sie eine Anforderung
nach mehr Speicherraum an eine oder mehrere andere Speichervorrichtungen
in dem Netzwerk, empfängt sie
eine oder mehr Antworten von den anderen Speichervorrichtungen und
wählt auf
der Basis dieser Antworten eine andere Speichervorrichtung aus,
die geeignet ist, die Aufzeichnung später fortzusetzen, nachdem die
gegenwärtig
aktive Speichervorrichtung voll ist. Wenn der verbleibende freie
Speicherbereich der ersten Vorrichtung unter einem Schwellwert ist, erhält die andere
Speichervorrichtung eine Benachrichtigung und startet die Zwischenspeicherung
der strömenden
Daten in einem Zwischenspeicher parallel zu der ersten Speichervorrichtung.
Wenn die erste Speichervorrichtung voll ist, das heißt, dass
sie keine weiteren Pakete speichern kann, sendet sie der zweiten
Vorrichtung eine Benachrichtigung, die einen Identifizierer enthält, der
das letzte, von der ersten Vorrichtung gespeicherte Paket definiert.
Bei Empfang dieser Benachrichtigung identifiziert die zweite Vorrichtung
das erste Paket, das sie zu speichern hat und überträgt dieses Startpaket und die
nachfolgenden Datenpakete aus ihrem Zwischenspeicher zu ihrem Speicherbereich.
Somit kann sie die Aufzeichnung des Datenstroms fortsetzen.
-
Vorteilhafterweise
verhindert das Verfahren einen Datenverlust und damit eine wahrnehmbare Unterbrechung
bei der Wiedergabe des Stroms.
-
Der
Prozess der Auswahl einer anderen Speichervorrichtung zur Fortsetzung
der Aufzeichnung kann auf irgendwelchen Parametern beruhen, wie
z. B. freier Speicherkapazität,
möglicher
Aufzeichnungsgeschwindigkeit oder Art des Inhalts.
-
In
gleicher Weise werden für
die Wiedergabe des vollständigen
Datenstroms die verschiedenen Portionen verkettet. Die erste Portion,
die den Beginn des Stroms enthält,
wird als solche durch ein Metadata-Etikett markiert. Diese Markierung
kann explizit oder implizit durch Spezifizieren keines Vorgängers sein.
Das Metadata-Etikett enthält
auch einen Identifizierer, z. B. einen Zeitstempelwert oder UUID
des letzten Anwendungspakets, das in der zugehörigen Datenportion enthalten
ist. Es kann auch einen Identifizierer der Speichervorrichtung enthalten,
die die nächste
Portion hält,
und einen Identifizierer der nächsten
oder vorherigen Portion oder beide, z. B. PlaycellUUID. Während die
erste Portion von der Speichervorrichtung gelesen und für die Wiedergabe zwischengespeichert
wird, wird ihr Metadata-Etikett ausgewertet,
und es wird eine Nachricht wenigstens zur nächsten Speichervorrichtung
gesendet, die das letzte Paket der ersten Portion und die nächste Portion
identifiziert. Nach Feststellung der zweiten Speichervorrichtung,
dass sie die angeforderte Portion hat, z. B. mit dem PlaycellUUID, überwacht
sie die von der ersten Vorrichtung auf der gemeinsamen Datenverbindung
wiedergegebenen Datenpakete, und wenn sie das letzte Paket feststellt,
beginnt sie die Wiedergabe der Pakete der zweiten Portion. Je nach Län ge der
einzelnen Datenportionen kann die zweite Vorrichtung die Nachricht
früh genug
empfangen, um die ersten Pakete ihrer Datenportion im voraus zu
lesen und sie in einem Zwischenspeicher zwischenzuspeichern, so
dass die Wiedergabe ohne Verzögerung
durch die Daten-Wiedergewinnung aus dem zweiten Speichermedium beginnen
kann. Alternativ kann die zu der zweiten Vorrichtung gesendete Nachricht
den Identifizierer der gegenwärtig
wiedergegebenen Portion, z. B. seinen PlaycellUUID, enthalten, und
das Metadata-Etikett der zweiten, auf der zweiten Vorrichtung gespeicherten
Portion enthält
den identifizierer der vorhergehenden Portion. Wenn die Identifizierer
gleich sind, ist die zweite Portion die nächste wiederzugebende Portion
nach dem letzten Paket der ersten Portion, das von seinem ATS festgestellt
wurde.
-
Somit
kann ein Echtzeit-Datenstrom in Datenportionen aufgespalten werden,
die in verschiedenen Vorrichtungen gespeichert werden können, und die
für die
Wiedergabe nahtlos verkettet werden können. Um solche verketteten
Ströme
in einem verteilten Speichersystem zu handhaben, umfasst das erfindungsgemäße Verfahren
die Beschreibung der gesamten Folge von Datenportionen durch Metadata-Descriptoren,
die automatisch durch das zentralisierte verteilte System erzeugt
und dann den Datenportionen als Navigationsdaten zugeordnet werden, so
dass eine verknüpfte
Liste von Datenportionen erzeugt wird. Gemäß der Erfindung enthalten die
Metadata-Descriptoren für
jede Portion mindestens alle Informationen, die für die Rekonstruktion
des ursprünglichen
Stroms erforderlich sind, z. B. für die Wiedergabe der Daten.
Die Metadata-Descriptoren enthalten wenigstens die folgenden Informationen: einen
Identifizierer für
den Datenstrom, zu dem die Datenportionen gehören, einen Identifizierer für die vorangehende
Datenportion, falls eine vor handen ist, einen Identifizierer für die nachfolgende
Datenportion, falls eine vorhanden ist, und einen Identifizierer für das letzte
Paket. Ferner kann es nützlich
sein, die folgenden Informationen in den Metadata-Descriptoren zu
speichern: Identifizierer für
die Speichervorrichtung, von der erwartet wird, dass sie die vorangehende/nachfolgende
Portion, Datum und Zeit der Aufzeichnung, Titel des Datenstroms,
und Zeitstempel des ersten und/oder des letzten Pakets, z. B. ATS hält. Diese
Metadata-Descriptoren können
hierarchisch sein, z. B. wenn die portionsbezogenen Metadata-Descriptoren
sich auf einen anderen, strombezogenen Metadata-Descriptor beziehen.
-
Vorteilhafte
Ausführungsformen
der Erfindung sind in den Unteransprüchen, der folgenden Beschreibung
und den Zeichnungen offenbart.
-
Kurze Beschreibung der Zeichnungen
-
Ausführungsbeispiele
der Erfindung werden nachfolgend anhand der beigefügten Zeichnungen beschrieben.
In den Zeichnungen stellen dar:
-
1 verteilte
Stromobjekte, die durch Metadata-Descriptoren
verknüpft
sind;
-
2 das
Modell eines verteilten Speichersystems im Aufzeichnungsfall;
-
3 ein
Messaging- und Zwischenspeicher-Szenarium bei nahtlosem Umschalten
von einer Speichervorrichtung auf eine andere bei der Aufzeichnung;
-
4 das
Modell eines verteilten Speichersystems im Wiedergabefall;
-
5 ein
Messaging- und Zwischenspeicher-Szenarium bei nahtlosem Umschalten
von einer Speichervorrichtung zu einer anderen bei der Wiedergabe;
-
6 das
Modell eines verteilten Speichersystems im Wiedergabefall, bei dem
alle Portionen über
einen Knoten geleitet werden; und
-
7 das
Modell eines verteilten Speichersystems im Wiedergabefall mit einem
Eingangs-Zwischenspeicher an einem Knoten ohne Speicherung.
-
Ausführliche Beschreibung der Erfindung
-
Die
folgende Beschreibung von Ausführungsbeispielen
des erfindungsgemäßen Verfahrens beruht
auf der DVD-Stromaufzeichnungs-Norm,
aber das Verfahren kann ebenso für
Daten gemäß jeder anderen
Norm für
Stromaufzeichnung verwendet werden. 1 zeigt
ein Ausführungsbeispiel
der Erfindung, das ein verteiltes Speichersystem ist, das verteilte
Stromobjekte speichert, die durch Metadata-Descriptoren verknüpft sind. In diesem Fall sind zwei
Knoten N1, N2 in die Speicherung eines Datenstroms einbezogen, der
aus mehreren Einheiten SOBU#1, ... SOBU#j besteht, und der in zwei
Datenportionen 18, 19 aufgespalten ist. Die DVD-Stromaufzeichnungs-Norm
definiert Stromobjekte (SOB), die aus Stromobjekt-Einheiten (SOBU)
mit einer Länge von
64 kB bestehen, jede als Behälter
für Anwendungspakete
mit variabler Länge.
In 1 zeichnet eine erste Speichervorrichtung N1 einen
Strom 18 auf, der SOBUs SOBU#1, ... SOBU#i- 1 enthält, solange
sie einen Speicherbereich verfügbar
hat. Während
der Aufzeichnung erzeugt sie auch und speichert eine Informationsdatei 12,
die sich auf das Stromobjekt 18 bezieht und die Playlists
und Playcells, die mit den eindeutigen Labels PlaycellUUID1, PlaycellUUID2
bezeichnet sind, und andere Navigations-Informationen 14,
z. B. für
das Programm, enthält.
Die Informationsdatei 12 enthält auch eine Zuordnungsliste
(MAPL) 16 für
Navigationszwecke. In der MAPL werden die Ankunftszeit-Intervalle
für jede SOBU
festgehalten. Sie dient zur Umwandlung dieser Zeiten in die Adressen
der entsprechenden SOBU, die das Anwendungspaket mit der vorgeschriebenen
Paket-Ankunftszeit enthält.
Playlists enthalten Start- und Endzeit von einer oder mehreren Playcells. Ferner
wird ein Metadata-Descriptor 10 erzeugt und der Informationsdatei 12 bzw.
dem Stromobjekt 18 hinzugefügt. Zunächst enthält der Metadata-Descriptor 10 das
Playcell-Label PlaycellUUID1.
-
Während die
erste Speichervorrichtung N1 aufzeichnet, können andere angeschlossene
Speichervorrichtungen auf verfügbare
Speicherkapazität überwacht werden. Alternativ kann zum Beispiel ein Broadcast-Nachricht
an alle angeschlossenen Speichervorrichtungen gesendet werden, die
einen Speicherbereich anfordern. Eine dieser Speichervorrichtungen
N2 wird als potentieller Nachfolger der gegenwärtig aktiven Vorrichtung N1
ausgewählt.
Wenn dann die Speicherkapazitätsgrenze
der ersten Speichervorrichtung N1 erreicht wird, während der
Strom weiterläuft,
wird die andere Speichervorrichtung N2 aktiviert, um die Aufzeichnung
des Stroms fortzusetzen. Diese Vorrichtung N2 erhält eine
Benachrichtigung über
die ATS des letzten Anwendungspakets, das in der ersten Speichervorrichtung
N1 gespeichert war, das in der letzten gespeicherten Einheit SOBU#i-1
enthalten ist. Die zweite Speichervorrichtung N2 setzt die Speicherung
des Stroms in einem anderen Stromobjekt 19 fort, das aus
den Einheiten SOBU#i, ..., SOBU#j besteht, die auf die von der ersten Vorrichtung
N1 gespeicherte letzte Einheit SOBU#i-1 folgen, wobei dieses Stromobjekt 19 die
anschließenden
Anwendungspakete enthält.
Die zweite Speichervorrichtung erzeugt für dieses Stromobjekt 19 eine
Informationsdatei 13, die eine MAPL 17 und Identifizierer 15 und
einen Metadata-Descriptor 11 enthält. Der
Metadata-Descriptor 11 enthält nicht nur die Playcell-Labels
PlaycellUUID1, PlaycellUUID2, sondern auch einen Zeiger zu dem Metadata-Descriptor 10 der
anderen Speichervorrichtung N1, die die vorhergehende Datenportion
speichert, d. h. das Stromobjekt 18. In gleicher Weise
wird der Metadata-Descriptor 10 in der ersten Speichervorrichtung N1
aktualisiert, so dass er einen Zeiger zu der zweiten Speichervorrichtung
N2 enthält.
-
Bei
einer Ausführungsform
der Erfindung können
die Metadata-Descriptoren 10, 11 auch detaillierte
Informationen darüber
enthalten, wo das vorangehende und/oder nachfolgende SOB gespeichert
ist, d. h. Adresse, Dateiname oder Pfadname.
-
Ein
Erfordernis für
das verteilte Speichersystem ist die automatische Selbstorganisation
der Dateiaufspaltung, wenn die Speicherkapazitätsgrenze eines Knotens erreicht
wird. In P2P-Netzwerken wird für
diese Aufgabe ein selbstgesteuerter Austausch von Nachrichten zwischen
den Knoten verwendet. 2 zeigt ein vereinfachtes Modell
eines verteilten Speichersystems mit zwei Speicherknoten N1, N2 und
einem getrennten Knoten N3 für
den Eingangs-Dienst IS für
den Fall der Aufzeichnung. Beispielsweise wird angenommen, dass
die Knoten Peers in einem P2P-Netzwerk sind, so dass die Bus-Verbindungen
zwischen den nachfolgend erwähnten
Knoten virtuelle Verbindungen sind, die dieselbe physikalische Verbindung
verwenden. Daten werden z. B. über
einen Hochfrequenz-Empfänger RFR
empfangen. Ein Eingangs-Dienst IS, z. B. ein Dekodierer, zieht in
dem Empfängerknoten
N3 die Anwendungspakete heraus, erfasst Zeitstempel und verteilt
die Pakete auf einem Anwendungspaket-Bus APB auf die Speicherknoten
N1, N2. Die Speicherknoten N1, N2 sind mit Schnittstellen zu dem
Anwendungspaket-Bus APB, Eingangs-Zwischenspeichern IB1, IB2 und Stromaufzeichnungs-Einheiten
SRU1, SRU2 ausgestattet, die Navigations-Informationen der strömenden Daten
erzeugen und die Anwendungspakete in strömende Pakete gemäß der verwendeten
Stromaufzeichnungs-Norm packen, z. B. SOBUs für die DVD-Stromaufzeichnungs-Norm.
Die Stromaufzeichnungs-Einheiten SRU1, SRU2 in jedem Speicherknoten
können
auf Speichermedien D1, D2 zugreifen, z. B. optische Discs oder Festplatten,
wo sie die strömenden
Pakete speichern können.
Die Knoten N1 ... N3 haben Nachrichten-Steuereinheiten MC1 ... MC3,
die mit einem gemeinsamen Steuernachrichten-Bus CMB verbunden sind,
so dass die Knoten Steuernachrichten austauschen, und somit gegebenenfalls
eine Aufzeichnung und Dateiaufspaltung organisieren können.
-
Gemäß der DVD-Stromaufzeichnungs-Norm müssen jedem
Anwendungspaket Zeitinformationen hinzugefügt werden, um die richtige
Echtzeit-Wiedergabe von gespeicherten Transportpaketen zu ermöglichen.
Diese Erfassung der Anwendungs-Zeitstempel
(ATS) kann z. B. durch den Eingangs-Dienst IS ausgeführt werden,
der einen Transportstrom von dem Empfänger RFR empfängt und
dekodiert. Die Eingangspuffer IB1, IB2 der Speicherknoten N1, N2 dienen
zur Überbrückung des
Zeitrahmens zur Umschaltung von einem Knoten zu einem anderen, wenn
eine Dateiaufspaltung notwendig wird. Obwohl in
-
2 nicht
dargestellt, kann es auch von Vorteil sein, jedes transparente Netzwerkprotokoll
für den
Anwendungspaket-Bus APB zu verwenden, indem Fehlerkorrektur-Daten
oder dergleichen hinzugefügt
werden.
-
Ferner
werden Steuernachrichten zwischen den beiden Speicherknoten N1,
N2 ausgetauscht, die Identifizierer oder UUIDs der erzeugten Playcells enthalten.
Diese UUIDs dienen zur Beschreibung der Aufspaltung des Stroms und
werden in den Metadata-Descriptor des Stromobjekts bei dem betroffenen Knoten
geschrieben. Der Metadata-Descriptor wird bei diesem Beispiel auf
demselben Medium gespeichert wie das Stromobjekt. Wenn die oben
erwähnte DVD-Stromaufzeichnungs-Norm verwendet wird, kann
das private Anwendungs-Datenfeld als Behälter für die Metadata-Descriptoren
verwendet werden.
-
Ein
in 3 gezeigtes Zwischenspeicher-Szenario erläutert das
Umschalten von einem Knoten zu einem anderen im Fall der Aufzeichnung eines
Stroms. Bei diesem beispielsweisen Szenario ist die Zwischenspeicherung
eines Datenstroms in einem Eingangs-Zwischenspeicher zunächst bei
einem ersten Knoten Node_A zu einer Zeit t0 begonnen worden.
Die Eingangs-Zwischenspeicher-Füllung Vin–Vout nimmt zu, bis zur Zeit t1 die
Aufzeichnung von zwischengespeicherten Daten auf einem Massen-Speichermedium
beginnt. Die Entleerung des Zwischenspeichers und die Aufzeichnung
der zwischengespeicherten Daten erfolgt üblicherweise schneller als
der Empfang und die Zwischenspeicherung neuer Daten, so dass die
Zwischenspeicher-Füllung
um einen Durchschnittswert schwankt, aber für diesen vereinfachten Fall
wird angenommen, dass die Zwischenspeicher-Füllung konstant bleibt. Der
Speicherknoten Node_A überwacht
seine eigene freie Spei cherkapazität. Wenn er zur Zeit t2 bemerkt, dass seine Kapazität bald erreicht
wird, sendet der Knoten Node_A eine Nachricht mit einem „Aufruf nach
freier Kapazität" an einige oder alle
anderen anbeschlossenen Knoten. Ein zweiter Knoten Node_B wird als
Nachfolger gewählt.
In P2P-Netzwerken kann
dies in einem Verhandlungsprozess erfolgen. In anderen Fällen kann
eine andere Einheit, z. B. ein Haupt-Server, einen Nachfolgeknoten
auswählen. Wenn
der zweite Knoten Node_B ausgewählt
wird und zur Zeit t3 benachrichtigt wird,
beginnt er, den Eingangsstrom in seinem Eingangs-Zwischenspeicher
als Bereitschaftsknoten parallel zu dem aktiven Speicherknoten Node_A
zwischenzuspeichern. Da die zwischengespeicherten Daten in dem Bereitschaftsknoten
Node_B noch nicht aufgezeichnet werden, nimmt die Zwischenspeicher-Füllung zu. Wenn
der Zwischenspeicher zur Zeit t4 nahezu
voll ist, bevor eine „Voll"-Nachricht von dem
aktiven Knoten Node_A empfangen wird, können die ältesten zwischengespeicherten
Daten überschrieben
werden, wie z. B. in einem Ring-Zwischenspeicher. Während dieser
Zeit ist die Zwischenspeicher-Füllung konstant,
da der Puffer voll oder nahezu voll bleibt.
-
Wenn
der erste Knoten Node_A über
keine freie Speicherkapazität
mehr verfügt,
stoppt er die Aufzeichnung und sendet eine „Voll"-Nachricht an den Bereitschaftsknoten
Node_B zur Zeit t5. Diese Nachricht enthält den Anwendungs-Zeitstempel(ATS)-Wert
des letzten aufgezeichneten Anwendungspakets. Nach einiger Zeit,
zur Zeit t6, hat der Bereitschaftsknoten
Node_B diese Nachricht empfangen und seine Speicherkonfiguration
beendet. Von nun an wird er als der aktive Knoten betrachtet. Er
wertet die in der Nachricht enthaltene ATS aus und beginnt die Aufzeichnung
von zwischengespeicherten Anwendungspaketen, die einen höheren ATS
als der in der Nachricht enthaltene ATS hat. Andere Anwendungspakete
werden fallen gelassen.
-
Der
Aufzeichnungsprozess enthält
das Lesen der Anwendungspakete aus dem Eingangs-Zwischenspeicher,
ihr Verpacken in Strom-(streaming)Pakete gemäß der angewendeten Streaming-Norm und das Schreiben
der Strom-Pakete auf das Speichermedium, z. B. eine Disc. Somit
nimmt die Zwischenspeicher-Füllung ab,
bis sie zu einer Zeit t7 einen Durchschnitts-Pegel erreicht hat,
wie oben beschrieben. Dieser Pegel kann z. B. programmiert oder
durch Hardware definiert werden. Die Größe des Eingangspuffers Bmax muss ausreichend zur Überbrückung der Zeit zwischen der
Sendung der „Voll"-Nachricht des ersten
Knotens Node_A zur Zeit t5 und dem Beginn
der Aufzeichnung des zweiten Knotens Node_B zur Zeit t6 sein.
Diese Zeit enthält auch
die erwähnte
Benachrichtigung und die Vorbereitung und Konfiguration des Aufzeichnungsprozesses
bei dem zweiten Knoten Node_B. Der Zwischenspeicher muss alle Anwendungspakete
halten können,
die während
dieses Zeitrahmens empfangen werden.
-
Für eine kontinuierliche
Wiedergabe der in einem verteilten Speichersystem gespeicherten
Streaming-Daten sind Ausgangs-Zwischenspeicher
erforderlich, um den Zeitschlitz zu überbrücken, wenn zwischen den Knoten
umgeschaltet wird. 4 zeigt ein vereinfachtes Modell
eines verteilten Speichersystems für den Wiedergabefall mit zwei
Speicherknoten N1, N2 und einem Knoten N3 für den Anzeige-Dienst DS, z.
B. einen Monitor. Die Speicherknoten N1, N2 sind mit Schnittstellen
für den
Anwendungspaket-Bus APB, Ausgangs-Zwischenspeichern OB1, OB2, Zwischenspeicher-Steuereinheiten BCU1,
BCU2 und Wiedergabe-Einheiten PU1, PU2 ausgerüstet, die mit Speichermedien
D1, D2 verbunden sind. Die Wiedergabe-Einheiten PU1, PU2 wandeln
die Streaming-Pakete, die von den Speichermedien D1, D2 gelesen
werden, in Anwendungspakete zurück.
Ferner enthalten alle Knoten Nachrichten-Steuereinheiten MC1 ...
MC3, die Steuernachrichten auf einem Steuernachrichten-Bus CMB austauschen
können.
Die Ausgangs-Zwischenspeicher OB1, OB2 haben zwei Funktionen: erstens
die kontinuierliche Lieferung von Anwendungs-Paketdaten bei Umschaltung
zwischen den Knoten, und zweitens die Anpassung der Datenrate, die
von den Wiedergabe-Einheiten PU1, PU2 zugeführt wird, an die erforderlichen
Anwendungspaket-Datenrate. Wenn z. B. Daten, die von dem Speichermedium
D1 auf einem ersten Knoten N1 gelesen werden, wiedergegeben werden,
dann kann ein Metadata-Etikett,
das der entsprechenden Playlist zugeordnet ist, anzeigen, dass der
Strom nicht vollständig
auf diesem Medium D1 gespeichert ist, sondern eine nachfolgende
Portion desselben Stroms auf einem anderen Knoten N2 gespeichert
ist. Das Metadata-Etikett hält
auch den ATS des letzten gespeicherten Anwendungspakets und einen
Identifizierer der anderen Playcell. Es kann auch detailliertere
Informationen darüber
enthalten, wo die Daten gespeichert sind.
-
Während der
erste Knoten N1 seine Datenportion auf einer gemeinsamen Verbindung
wiedergibt, z. B. dem Anwendungspaket-Bus APB, sendet die Nachrichten-Steuereinheit
MC1 eine Nachricht an die Nachrichten-Steuereinheit MC2 der anderen Knoten,
die die Vorbereitung für
die Wiedergabe des entsprechenden aufeinanderfolgenden Datenstroms fordert.
Bei Empfang dieser Nachricht kann der andere Knoten N2 mit dem Lesen
der Daten von seinem Speichermedium D2 beginnen und die Anwendungspakete
in seinem Ausgangs-Zwischenspeicher OB2 zwischenspeichern, bis die
Nachrichten-Steuereinheit MC2 eine „Leer"-Nachricht von dem aktiven Knoten N1
emp fängt.
Wenn die aktive Wiedergabe-Einheit PU1 ihr letztes Anwendungspaket
in ihren Ausgangs-Zwischenspeicher OB1 geschrieben hat, sendet der
aktive Knoten N1 eine „Leer"-Nachricht an den anderen Knoten N2.
Bei Empfang dieser Nachricht wird der andere Knoten N2 der aktive
Knoten. Dann überwacht
der zweite Knoten N2 die ATSs der Anwendungspakete auf dem Bus APB
unter Verwendung seiner Zwischenspeicher-Steuereinheit BCU2. Wenn
das letzte Paket festgestellt wird, aktiviert die Zwischenspeicher-Steuereinheit
BCU2 den Ausgangs-Zwischenspeicher OB2, seine Inhalte auf dem Bus
APB auszugeben, und sie aktiviert auch die Wiedergabe-Einheit PU2, um mehr
Daten aus dem Speichermedium D2 in den Ausgangs-Zwischenspeicher OB2
zu lesen.
-
Ein
in 5 gezeigtes Zwischenspeicher-Szenario erklärt für verteilte
Stromaufzeichnung die Umschaltung von einem Knoten zu einem anderen
im Falle der Wiedergabe-Operation. Die Wiedergabe eines Stroms hat
zunächst
bei einem ersten Knoten Node_A zur Zeit t0 begonnen.
Je nach der verwendeten Zwischenspeicher-Füllstrategie kann ein schneller
Disc-Leseprozess
zu einem burstartigen Datenverhalten führen, das als variable Zwischenspeicherfüllung bezeichnet
wird, bevor der Zwischenspeicher einen quasi stabilen Zustand zur
Zeit t1 erreicht. Aufgrund der erwähnten Daten-Bursts schwankt
die Pufferfüllung
immer um diesen quasi stabilen Zustand herum, wie oben erwähnt wurde. Aus
dem Metadata-Descriptor,
der die Stromaufspaltung charakterisiert, weiß der erste Knoten Node_A oder
kann dies durch eine Anfrage herausfinden, welcher andere Knoten
Node_B der Nachfolgeknoten ist, der den nächsten Teil der streaming-Daten
hält. Zur
Zeit t2 wurde das letzte Paket gelesen und
bei dem aktiven Knoten Node_A zwischengespeichert, und er sendet
eine „Anforderung
des Nachfolgerknotens"-Nachricht
an den ande ren Knoten Node_B einschließlich dem Zeitstempel-Wert
des letzten Anwendungspakets. Der Nachfolgerknoten Node_B empfängt die
Nachricht, bereitet den Wiedergabeprozess vor und startet die Zwischenspeicher-Anwendungspakete
zur Zeit t3. Die Füllung seines Ausgangs-Zwischenspeichers
OB2 nimmt von jetzt an zu. Um eine nahtlose Wiedergabe zu erzielen,
wenn zwischen den Knoten umgeschaltet wird, liest der Nachfolgerknoten
Node_B aus dem Anwendungspaket-Bus APB die von dem aktiven Knoten
Node_A gesendeten Anwendungspakete und wertet die Zeitstempel aus.
Die Zwischenspeicher-Steuereinheit
BCU2 vergleicht diese ATSs mit der ATS von der „Anforderung eines Nachfolgerknotens"-Nachricht. Wenn
diese Zeitstempel gleich sind, was bedeutet, dass der Ausgangs-Zwischenspeicher
OB1 des ersten Knotens Node_A zur Zeit t4 leer
ist, beginnt der Ausgangs-Zwischenspeicher OB2 seine Pakete zu dem Bus
APB nach dem Ende des aktuellen Pakets zu übertragen, so dass der Anzeige-Dienst
DS in dem Anzeigeknoten N3 die Anwendungspakete nahtlos von den
zwei Speicherknoten N1, N2 empfängt.
Die Größe der Ausgangs-Zwischenspeicher
OB1, OB2 wird so berechnet, dass die Zeit für die Benachrichtigung und
die Konfiguration des Wiedergabeprozesses in dem Nachfolgeknoten überbrückt werden kann.
-
Nachfolgend
werden zwei weitere Ausführungsformen
der Erfindung beschrieben, die Lösungen
für nahtlose
Wiedergabe von verteilten Portionen eines Stroms sind.
-
6 zeigt
das Modell eines vereinfachten verteilten Speichersystems für Wiedergabe
mit zwei Speicherknoten N1, N2 und einem Knoten N3 für den Anzeige-Dienst.
Entsprechend kann dieses Modell auch für die Aufzeichnung verwendet
werden. In diesem Modell werden alle Teile des Stroms über ei nen Knoten
N1 geleitet, und nur eine Zwischenspeicher-Steuereinheit BCU1 ist aktiv. Nur dieser
Knoten steuert die nahtlose Wiedergabe des Stroms, während der
andere Knoten N2 seine Anwendungspakete nicht zu dem Anwendungspaket-Bus
APB sendet, sondern zu der aktiven Zwischenspeicher-Steuereinheit BCU1.
Wie oben erwähnt,
ist im Fall von P2P-Netzwerken
dieser virtuelle Erweiterungs-Bus XB dieselbe physikalische Verbindung.
-
In ähnlicher
Weise zeigt 7 ein weiteres Modell eines
vereinfachten verteilten Speichersystems für Wiedergabe mit zwei Speicherknoten
N1, N2 und einem Knoten N3 für
den Anzeige-Dienst. In diesem Modell wird die Zwischenspeicherung
bei dem Anzeige-Dienstknoten N3 ausgeführt, der die nahtlose Wiedergabe
des Stroms steuert. Bei dieser Lösung
ist es erforderlich, Daten bei dem speicherlosen Knoten zwischenzuspeichern.
Eine Nachrichten-Steuereinheit MC3 bei dem Anzeige-Dienstknoten
N3 empfängt
eine Nachricht von dem aktiven Speicherknoten N1, die den ATS ihres
letzten Anwendungspakets anzeigt. Eine Zwischenspeicher-Steuereinheit
BCU3 überwacht
die Zeitstempel der zwischengespeicherten Anwendungspakete, und wenn
der Empfang des letzten Paketes aus dem aktiven Speicherknoten N1
festgestellt wurde, wird eine Nachricht zu der Nachricht-Steuereinheit
MC2 des Nachfolgerknotens N2 gesendet, der seinerseits beginnt,
Anwendungspakete aus seinem Speichermedium D2 wiederzugewinnen und
sie zum Eingangs-Zwischenspeicher IB3 des Anzeige-Dienstknotens N3
zu senden. Der Eingangs-Zwischenspeicher IB3 muss genug Anwendungspakete
halten können,
um die erforderliche Benachrichtigungs- und Daten-Wiedergewinnungszeit
zu überbrücken.
-
Das
erfindungsgemäße Verfahren
kann auch in Systemen verwendet werden, bei denen eine monotone
Reihe von Zahlen, z. B. Sequenznummern anstatt von Zeitstempeln
für die
Identifizierung von Anwendungs-Datenpaketen verwendet wird. In diesem
Fall müssen
die Zahlen lang genug sein, um eine Fehlinterpretation nach einem
Umlauf (wrap-around), z. B. 32 Bit wie für TCP/IP-Pakete zu verhindern.
-
Bei
einer Ausführungsform
der Erfindung befinden sich die verschiedenen Speichervorrichtungen innerhalb
derselben Vorrichtung, z. B. mehrere Festplatten oder andere magnetische
Discs, innerhalb eines Multimedia-Recorders.
-
Bei
einer Ausführungsform
der Erfindung kann die Aufzeichnung so erfolgen, dass die zweite Speichervorrichtung
keine Nachrichten darüber
erhält,
wenn eine Zwischenspeicherung von Daten beginnen soll. Statt dessen
speichert sie die Eingangsdaten fortlaufend. In diesem Fall reicht
es aus, eine Nachricht zu empfangen, die das erste zwischengespeicherte
Anwendungspaket, das gespeichert werden soll, identifiziert.
-
Bei
einer Ausführungsform
der Erfindung enthält
der Metadata-Descriptor einen Identifizierer für die Speichervorrichtung,
von der erwartet wird, dass sie die vorangehende und/oder nachfolgende Portion
hält.
-
Bei
einer Ausführungsform
der Erfindung kann der Metadata-Descriptor
auch detaillierte Informationen darüber enthalten, wo die vorhergehende und/oder
nachfolgende Portion gespeichert ist, z. B. Adresse, Dateiname oder
Pfadname.
-
Bei
einer Ausführungsform
der Erfindung kann der Datenstrom nicht nur aufgespalten werden, wenn
das erste Speichermedium voll ist, sondern auch aus anderen Gründen, z.
B. Aufzeichnungsproblemen in der ersten Speichervorrichtung.
-
Das
erfindungsgemäße Verfahren
ist zur Speicherung und Wiedergewinnung von allen Datenströmen geeignet,
die aus identifizierbaren Einheiten, wie Paketen mit Identifizierern,
auf mehreren Speichervorrichtungen zusammengesetzt sind. Ferner kann
die Daten-Wiedergewinnung jeden Zweck haben, z. B. Kopieren, Kodieren, Übertragung
oder Wiedergabe.