-
Die
vorliegende Erfindung bezieht sich auf das Gebiet der Datenübertragung,
insbesondere auf die Verteilung und die fortlaufende Übertragung
von Daten für
den Zugriff auf digitale Daten wie Audio-, Video- und Geschäftsdaten
an entfernt gespeicherten Standorten sowie für die Übertragung dieser Daten an
den Standort eines Benutzers.
-
WO
00/29990 beschreibt ein Verfahren für die Verarbeitung von Anforderungen
zur Bereitstellung einer Medieninhaltsdatei in einem Netzwerk von Client-Server-Rechensystemen,
bei dem ein Clientcomputer eine Abfrage an einen Ausgangsserver stellt,
um einen dem Ausgangsserver zugehörigen Medienserver, der die
Medieninhaltsdatei speichert, zu finden, und wobei sich ein lokaler
Medienzwischenspeicher innerhalb des Netzwerks an einer Stelle in
der Nähe
des Clients befindet. Zunächst
fordert der Client die Bereitstellung der Medieninhaltsdatei an,
indem er von dem Ausgangsserver die Bereitstellung einer Medienumleitungsdatei
(Media Redirecting File, MRF) anfordert, die ein Umleitungsobjekt
enthält,
das Befehle für
den Erhalt der Medieninhaltsdatei von dem Medienserver vorgibt.
Vor der Bereitstellung der Medienumleitungsdatei an den Client wird
die Medienumleitungsdatei abgefangen, und die darin enthaltenen
Befehle werden neu geschrieben, so dass der Client die Medieninhaltsdatei
nicht direkt von dem Medienserver, sondern von dem lokalen Medienzwischenspeicher
erhält.
-
Aus
der US-Patentschrift 5 734 719 ist ein System für den Zugriff auf digitale
Daten über
ein Computernetzwerk bekannt. Das System beinhaltet einen Hauptserver,
der geografisch so angeordnet ist, dass Netzwerkabonnenten auf ihn
zugreifen können.
Sein geografischer und netzwerkbezogener Standort ist abhängig von
den Kosten und der Verfügbarkeit
von Datenübertragungsnetzwerksystemen
und -teilsystem, um einem Kundenstandort bestmöglich Dienste bereitstellen
zu können,
wobei es sich dabei um ein Einzelhandelsgeschäft oder eine ähnliche
Verkaufsstelle oder um einen anderweitigen Endbenutzerstandort handeln
kann. Zusätzlich
werden Sicherheitsmechanismen bereitgestellt, die vor der Übertragung
von Inhalten und/oder der Herstellung eines der Produkte eine zentralisierte Datenbankberechtigung
erfordern.
-
Neue
Mediendaten erweitern herkömmliche Computerdatenformate
auf Datenformate, die somit eine naturgemäßere Interaktion von Menschen
und Computer ermöglichen,
indem Bilder, Filme, Sprach-, Audio- und Videodaten mit einbezogen
werden. Eines der maßgeblichen
Probleme bei neuen Mediendaten besteht in der Übertragung der üblicherweise enorm
großen
Inhaltsmengen über
ein Netzwerk.
-
Bei
einem Datenstromserver müssen
sich alle Daten, die fortlaufend übertragen werden sollen, vor
Ort auf dem Datenstromserver befinden. Die Verbindungsbandbreite
zum Wiedergabeclient (Medienwiedergabeeinheit) muss mindestens den
Anforderungen entsprechen, die sich aus der Art der zu übertragenden
Daten ergeben. Aus diesem Grund werden Datenstromserver auf so genannte
Randserver aufgesetzt (wobei sich dies auf den Rand des Netzwerks
mit Blick auf den Verbindungspfad zum Client bezieht; auch als „letzte
Meile" bezeichnet).
-
Um
eine Datenstromoperation zu veranlassen, müssen dem Wiedergabeclient (Medienwiedergabeeinheit),
der den Datenstrom anfordert, fortlaufend übertragene Metadaten bereitgestellt
werden. Die Metadaten oder die Metadatei enthält in der Regel mindestens
eine Kennung (Schlüssel)
der fortlaufend zu übertragenden
Mediendaten sowie die Kennung des Datenstromservers, z.B. den TCP/IP-Hostnamen
der Datenstromserver-Einheit und den Anschluss, an dem die Datenstromserver-Software
mithört.
-
Wenn
ein Benutzer Medien fortlaufend an seinen Client übertragen
lassen möchte,
klickt er üblicherweise
auf eine Sprungmarke, welche die Medien auf der Webseite, die ihm
sein Webbrowser anzeigt, kenntlich macht. Der Webbrowser erzeugt
eine http-Anforderung mit den Medienkennungsdaten. Als Reaktion
hierauf sendet der Anwendungsserver die Medien-Metadaten an den Webbrowser des Clients. Auf
der Grundlage dieser Daten ruft der Webbrowser üblicherweise die entsprechende
Medienwiedergabeeinheit auf, die sich auf einem Client befindet
und für
den Empfang der Metadaten vom Netzwerk, die Verbindungsverhandlung
mit dem Datenstromserver, den Empfang und die parallel hierzu erfolgende
Wiedergabe der Daten zuständig
ist.
-
Bei
der heute gebräuchlichen
Technologie für
die fortlaufende Datenübertragung
können
Medienwiedergabeeinheiten in der Regel nur Datenströme von einem
entsprechenden Datenstromserver wiedergeben, der ebenfalls von diesem
Unternehmen hergestellt wurde. Beispiele für derartige firmengebundene Datenstromformate
sind der IBM Video Charger/Video Charger Player, Apple QuickTime,
Microsoft Media Server/Media Player und Real Networks G2 Server/Player.
-
Aus
Mourad A. et al., „Scalable
web server architectures",
proceedings IEEE international symposium on computers and communications,
XX, XX, 01. Juli 1997, Seiten 12 bis 16, XP000199852, ist bekannt,
dass durch die Vervielfältigung
von Inhalten auf mehreren Servern eine höhere Flexibilität beim Lastausgleich
und eine zusätzliche
Zuverlässigkeit bereitgestellt
werden kann. Bei einer Vervielfältigung von
Daten wird ein logischer Dateiname auf mehrere URLs auf verschiedenen
Servern abgebildet. In diesem Fall muss der Umleitungsserver einen
der Server mit den relevanten Daten auswählen. Dabei lassen sich intelligente
Vorgehensweisen für
die Auswahl von Servern realisieren, um so eine bessere Lastverteilung über die
HTTP-Server hinweg zu erzielen. Ein Nachteil dieses Ansatzes besteht
jedoch darin, dass für
eine Realisierung der Datenvervielfältigung die Datenstruktur mit
den Abbildungsdaten geändert
werden muss.
-
Ein
häufiges
Problem der Datenübertragungsprotokoll
nach dem Stand der Technik, insbesondere von Protokollen für die fortlaufende
Datenübertragung über ein
Computernetzwerk wie beispielsweise das Internet, besteht in der
Bandbreite, die für
die Durchführung
einer Datenstromoperation erforderlich ist.
-
Es
ist somit eine Aufgabe der vorliegenden Erfindung, ein verbessertes
Verfahren und Computersystem für
die Verteilung von Inhaltsdaten an Randserver bereitzustellen und
insbesondere einen Randserver oder einen zulässigen alternativen Randserver
auszuwählen,
der sich innerhalb des Netzwerks am nächsten bei dem Client befindet,
der den Datenstromdienst angefordert hat.
-
Die
Aufgabe der Erfindung lässt
sich durch die in den beigefügten
unabhängigen
Ansprüchen genannten
Merkmale lösen,
auf die nun Bezug genommen werden sollte. Weitere vorteilhafte Anordnungen
und Ausführungsformen
der Erfindung sind in den betreffenden Unteransprüchen dargelegt.
-
Die
Erfindung ermöglicht
die Ermittlung des Standorts eines Randservers, mit dem der Client
verbunden ist, während
gleichzeitig die Anforderung für eine
fortlaufende Datenübertragung
an den Anwendungsserver gesendet wird. Für diese Ermittlung werden in
die http-Anforderung des Clients, die den Medienbezeichner enthält, auf
ihrem Weg zu ihrem Webanwendungsserver, mit dem der Client Kontakt aufnimmt,
um eine Datei auszuwählen,
die heruntergeladen und/oder fortlaufend übertragen werden soll, Daten
aufgenommen.
-
In
der Regel nimmt der Client mit dem Webanwendungsserver Kontakt auf,
indem er die entsprechende Verweisadresse(Uniform Resource Locator,
URL) in das Webbrowserprogramm des Clients eingibt. Die Verbindung
zwischen dem Client und dem Webanwendungsserver wird bereitgestellt,
indem ein Datenübertragungspfad
mit einer Vielzahl von Servercomputerknoten hergestellt wird. Der
erste Servercomputerknoten auf dem Pfad zwischen dem Client und
dem Webanwendungsserver ist der Server, der sich innerhalb des Netzwerks
am nächsten
zu dem Client befindet und von dem somit erwartet werden kann, dass
sich mit ihm die Datenstromdienste mit der besten Leistung und der
kürzesten Wartezeit
für den
Client wirksam bereitstellen lassen.
-
Bei
einer Ausführungsform
der Erfindung wird dieser Server – bei dem es sich um den ersten Knoten
auf dem Pfad zwischen dem Client und dem Webanwendungsserver handelt – vom Webanwendungsserver
oder einem zugehörigen
Medienanforderungsvermittler als der Server ausgewählt, über den
das Herunterladen der gewünschten
Datei erfolgen soll. Die betreffenden Metadaten, die der Medienanforderungsvermittler
dem Webanwendungsserver und dem Client bereitgestellt hat, enthalten Daten,
die den ausgewählten
Server kenntlich machen.
-
Bei
einer weiteren Ausführungsform
enthält der
Medienanforderungsvermittler eine Datei, die einen Satz von alternativen
Servern umfasst, die sich in derselben geografischen oder topologischen
Region wie der erste Serverknoten auf dem Pfad zwischen dem Client
und dem Webanwendungsserver befinden. In diesem Fall wird der Server, über den das
Herunterladen erfolgen soll, aus der Gruppe ausgewählt, die
den Satz von Servern aus derselben geografischen/topologischen Region
wie der Knoten selbst umfasst.
-
Die
Auswahl eines bestimmten Servers aus dieser Gruppe von Servern erfolgt
auf Grundlage einer Ermittlung eines Indexes für die relative Qualitätsgewichtung
der Server in der Gruppe. Die relative Qualitätsgewichtung lässt sich
ausgehend von einem oder mehreren der folgenden Kriterien ermitteln:
Verfügbarkeit
der gewünschten
Medien auf dem Server, Anzahl der gerade ausgeführte Transaktionen, Auslastung
der Verarbeitungsressourcen und verfügbare Bandbreite des Datenübertragungspfads
zu dem Client.
-
Bei
einer weiteren bevorzugten Ausführungsform
werden auch die anderen Servercomputer auf dem Pfad zwischen dem
Client und dem Webanwendungsserver bei der Auswahl eines bestimmten Servers
berücksichtigt.
Außerdem
kann jeder dieser zusätzlichen
Server auch über
zugehörige
regionale Server verfügen,
die ebenfalls bei der Ermittlung eines geeigneten Servers für die Durchführung der Operation
des Herunterladens und/oder der fortlaufenden Datenübertragung
in Betracht gezogen werden können.
-
Bei
einer weiteren bevorzugten Ausführungsform
kann ein Servercomputer Datenstromserver mit unterschiedlichen Datenformaten
beinhalten. Wenn Medien auf diesem Servercomputer in einem Format
verfügbar
sind, das sich von dem Format unterscheidet, das der anfordernde
Client erfordert, kann dieser Servercomputer dennoch als Servercomputer
der Wahl ausgewählt
werden. In diesem Fall wird das auf dem Servercomputer verfügbare Datenformat
während
der Verarbeitung in das gewünschte
Format umgewandelt und dann fortlaufend an den Client übertragen.
-
Ein
besonderes Anwendungsgebiet der vorliegenden Erfindung besteht in
der nicht ortsgebundenen Datenübertragung,
insbesondere mit Blick auf die digitale Telefontechnologie wie beispielsweise UMTS.
In diesem Fall kann der Client eine beliebige nicht ortsgebundene
Einheit wie beispielsweise ein Mobiltelefon mit einem eingebauten
MP3-Player, ein persönlicher
digitaler Assistent oder ein tragbarer Computer wie beispielsweise
ein Mobilrechner oder ein Taschencomputer mit einer Funkschnittstelle sein.
-
Ein
besonderer Vorteil der vorliegenden Erfindung besteht darin, dass
das Computernetzwerk durch die Auswahl eines Servers auf Grundlage
seiner Qualitätsgewichtung
eine ausgewogene Verteilung von Rechen- und/oder Bandbreitenressourcen erzielen
kann. Auf diese Weise lässt
sich der Gesamtdurchsatz des Systems optimieren.
-
Kurze Beschreibung
der Zeichnungen
-
Die
vorliegende Erfindung wird durch die Figuren der beigefügten Zeichnungen
beispielhaft dargestellt und in ihrem Geltungsumfang nicht beschränkt, bei
denen:
-
1 ein
Blockschaubild einer ersten Ausführungsform
eines Computersystems der Erfindung ist;
-
2 ein
Blockschaubild einer zweiten Ausführungsform eines Computersystems
der Erfindung ist; und
-
3 eine
Ausführungsform
eines Verfahrens der Erfindung ist.
-
Das
Computersystem aus 1 verfügt über einen Client 1.
Der Client 1 verfügt über einen Webbrowser
und eine Medienwiedergabeeinheit 2 wie beispielsweise einen
IBM Video Charger Player.
-
Der
Client 1 kann mit Hilfe seines Webbrowser über ein
Computernetzwerk wie beispielsweise das Internet, das die Randserver
ES1, ES2, ES3, ES4 und andere in 1 nicht
abgebildete Randserver umfasst, eine Verbindung zum Webanwendungsserver 3 herstellen.
Dabei verfügt
der Randserver ES1 über
eine Medienzwischenspeicher-Steuereinheit 4, einen Datenstromserver 5 und
einen Zwischenspeicher 6.
-
Der
Datenstromserver kann ein IBM Video Charger sein, der über eine
Schnittstelle mit der entsprechenden Medienwiedergabeeinheit 2 des
Clients 1 verbunden ist. Die Datenstromoperation wird aus dem
Zwischenspeicher 6 heraus durchgeführt. Die Medienzwischenspeicher-Steuereinheit 4 steuert und
analysiert den Zustand und Betrieb des Datenstromservers 5 und
ihres Zwischenspeichers 6.
-
Insbesondere
wertet die Medienzwischenspeicher-Steuereinheit 4 einen
gegenwärtigen
Systemzustand aus, um eine Qualitätsgewichtung bereitzustellen,
welche die Auslastung des Systems angibt. Die Qualitätsgewichtung
kann ein oder mehrere der folgenden Kriterien beinhalten: Verfügbarkeit
der ausgewählten
Datei im Zwischenspeicher 6, verfügbare Bandbreite für die Verbindung
zum Client 1, Prozentsatz der Verarbeitungsressourcen des
Randservers ES1 und/oder sonstige Kriterien.
-
Außerdem verfügt der Randserver
ES1 über einen
Speicher 7 für
die Speicherung des Bezeichners ID1 des Randservers ES1. Die Programmeinstiegsmöglichkeit 8 ist
mit dem Speicher 7 verbunden.
-
Jeder
Randserver leitet die http-Anforderungen und -Antworten des Clients
und des Webanwendungsservers in beide Richtungen weiter. Bei jeder vom
Client kommenden http-Anforderung ruft der Randserver die Programmeinstiegsmöglichkeit 8 auf und übergibt
ihr diese http-Anforderung.
-
Die
Programmeinstiegsmöglichkeit überprüft diese
http-Anforderung
auf eine eindeutige Signatur, welche die Anforderung als eine Medienanforderung kenntlich
macht. Wenn die Programmeinstiegsmöglichkeit diese Signatur erkennt,
hängt sie
ihren Bezeichner ID1 an die http-Anforderung an und gibt die Anforderung
zurück
an den Randserver. Der Randserver sendet sie an den nächsten Randserver
ES2 ... ESn (falls vorhanden) oder aber an den Anwendungsserver.
-
Die
weiteren Randserver ES2, ES3 und ES4 auf dem Datenübertragungspfad
zwischen dem Client 1 und dem Webanwendungsserver 3 sind
gleich oder ähnlich
aufgebaut wie der Randserver ES1.
-
Das
Computersystem aus 1 beinhaltet ferner einen Medienserver 9,
der die ausgewählten Medien 10 speichert.
Der Medienserver 9 kann mit einem beliebigen der Randserver
ES1 bis ES4 verbunden sein, um die Medien 10 auf den entsprechenden Randserver
herunterzuladen.
-
Der
Webanwendungsserver 3 ist mit dem Medienanforderungsvermittler 11 verbunden.
Der Medienanforderungsvermittler 11 wählt einen der Randserver ES1
bis ES4 oder einen anderen Randserver aus, um die Datenstromoperation
der gewünschten
Daten zu Client 1 durchzuführen. Ausgehend von dieser
Auswahl eines Servers durch den Medienanforderungsvermittler 11 erzeugt
der Webanwendungsserver die Metadaten für den Client 1.
-
Der
Webanwendungsserver verfügt über einen
Speicher 12, in dem die http-Anforderung des Client, ergänzt um Daten,
die einen oder mehrere der Randserver angeben, die in dem Datenübertragungspfad
zwischen dem Client 1 und dem Webanwendungsserver 3 enthalten
sind, zumindest vorübergehend
gespeichert wird.
-
Der
Webanwendungsserver enthält
ferner ein Servlet 14, das mit dieser http-Anforderung
aufgerufen wird, wenn der Client 1 auf die Sprungmarke zu
Medien 10 klickt.
-
Während des
Betriebs klickt der Client 1 auf eine Sprungmarke auf einer
Webseite 13 seines Webbrowserprogramms, um so die gewünschten Medien über das
Internet von dem Webanwendungsserver 3 anzufordern. wie
weiter oben bereits ausführlich
erläutert,
erzeugt der Webbrowser die entsprechende http-Anforderung die über die
Randserver ES1 bis ES4 weitergeleitet wird, so dass sich ein Datenübertragungspfad
unter Einschluss dieser Randserver ergibt.
-
Während der
Datenübertragungspfad
aufgebaut wird, fügt
die Programmeinstiegsmöglichkeit 8 des
Randservers ES1 Daten zu der http-Anforderung hinzu, um dessen Bezeichner
ID1 in die Anforderung aufzunehmen. Entsprechend fügen die
Randserver ES2 bis ES4 der http-Anforderung ebenfalls entsprechende
Daten hinzu.
-
Auf
diese Weise setzt sich die resultierende http-Anforderung aus der
ursprünglichen
URL zuzüglich
der Daten zusammen, welche die Bezeichner ID1 bis ID4 angeben.
-
Daraufhin
wird das Servlet 14 mit allen Daten aufgerufen, die in
der http-Anforderung des Clients enthalten sind, wobei es mindestens
die Erweiterung an den Medienanforderungsvermittler 11 überträgt.
-
Der
Medienanforderungsvermittler verfügt über verschiedene Auswahlmöglichkeiten
für die Auswahl
eines geeigneten Randservers als Server für die fortlaufende Übertragung
der gewünschten Datei 10 an
den Client 1. Eine Option besteht in der Auswahl des Randservers
ES1 als desjenigen Randservers, der dem Client in dem Datenübertragungspfad,
der über
das Internet zum Webanwendungsserver 3 hergestellt wurde,
am nächsten
ist.
-
Dabei
wird davon ausgegangen, dass der nächstgelegene Randserver ES1
auch die höchste Bandbreite
bereitstellt. Die Identität
des Randservers ES1 wird vom Medienanforderungsvermittler festgestellt,
indem die angehängte
Erweiterung, die von der auf jedem Randserver ES1 bis ESn ausgeführten Programmeinstiegsmöglichkeit
bereitgestellt wird, analysiert wird.
-
Ausgehend
von diesen Daten erzeugt der Medienanforderungsvermittler 11 die
Metadaten, die der Client 1 benötigt, um auf einen Datenstromserver zuzugreifen.
Die Metadaten beinhalten die vollständige Netzwerkadresse des Datenstromservers 5 (z.B. IP-Adresse
und Anschluss), und ein Schlüssel
für den
Zugriff auf die gewünschten
Medien 10 wird dem Client 1 vom Webanwendungsserver 3 bereitgestellt.
-
Als
Reaktion auf den Empfang der Metadaten stellt der Client 1 eine
Verbindung zum Randserver ES1, genauer gesagt zum Datenstromserver 5, her,
um die Datenstromoperation aufzurufen. Falls die gewünschten
Medien 10 bereits im Zwischenspeicher 6 verfügbar sind,
kann die fortlaufende Datenübertragung
sofort beginnen.
-
Wenn
dies nicht der Fall ist, muss zunächst eine Operation für das Herunterladen
der Datei 10 vom Medienserver 9 in den Zwischenspeicher 6 des Randservers
ES1 veranlasst werden.
-
Alternativ
hierzu kann der Medienanforderungsvermittler auch die sonstigen
Randserver ES2 bis ES4 berücksichtigen,
die durch die vom Servlet 14 bereitgestellte Erweiterung
kenntlich gemacht werden. In beiden Fällen wertet der Medienanforderungsvermittler 11 die
Qualitätsgewichtungen
aus, die von den Medienzwischenspeicher-Steuereinheiten 4 der
entsprechenden Randserver ES1 bis ES4 bereitgestellt wurden, um
den am besten geeigneten Randserver auszuwählen.
-
So
kann der Randserver ES2 beispielsweise bereits die Medien 10 in
seinem Zwischenspeicher 6 enthalten, während die Medien 10 im
Zwischenspeicher 6 des Randservers ES1 nicht verfügbar sind.
In diesem Fall ist die Qualitätsgewichtung
des Randservers ES2 größer als
die Qualitätsgewichtung
des Randservers ES1, obwohl sich der Randserver ES1 näher beim
Client 1 befindet, da der Randserver ES2 bereits über die
erforderlichen Daten verfügt.
-
Entsprechend
kann der Medienanforderungsvermittler den Randserver ES2 oder einen
anderen Randserver aus anderen Gründen auswählen, z.B. wenn der Randserver
ES1 überlastet
ist, der Datenstromserver 5 des Randservers ES1 ausgefallen ist
oder nicht das erforderliche Datenformat aufweist.
-
2 zeigt
eine weitere bevorzugte Ausführungsform
der Erfindung, bei der ähnliche
Elemente mit denselben Bezugsziffern versehen sind. Der Randserver
ES1 des Computersystems aus 2 verfügt über eine
zusätzliche
Medienzwischenspeicher-Steuereinheit 15, einen Datenstromserver 16 und
einen Zwischenspeicher 17. Dabei ist der Datenstromserver 16 in
der Lage, Daten in einem anderen Format als dasjenige des Datenstromservers 5 fortlaufend
zu übertragen.
Der Randserver ES1 verfügt auch
hier über
einen Speicher 7 und eine Programmeinstiegsmöglichkeit 8.
-
Wie
bei der vorherigen Ausführungsform dient
die Programmeinstiegsmöglichkeit 8 zur
Bereitstellung einer Erweiterung zu der vom Client 1 bereitgestellten
http-Anforderung,
um so Daten anzuhängen,
die den Bezeichner ID1 des Randservers 1 angeben.
-
Auf
einer zweiten Hierarchieebene verfügt der Randserver ES1 über eine
Medienrand-Steuereinheit 18, die mit den Medienzwischenspeicher-Steuereinheiten 4 und 15 der
einzelnen Datenstromserver 5 und 16 Daten austauscht.
-
Das
Computersystem umfasst ferner die Randserver ES1a, ES1b, ES1c und
ES1d, die sich in derselben geografischen/topologischen Region bzw. demselben
Bereich 19 wie der Randserver ES1 befinden. Entsprechend
können
die übrigen
Randserver ES2 bis ES4 entsprechenden zusätzlichen Randservern in ihren
jeweiligen Regionen bzw. Bereichen zugewiesen werden.
-
Diese
Situation wird durch die Datenbank 20 widergespiegelt,
die vom Medienanforderungsvermittler 11 gespeichert wird.
Die Datenbank 20 fasst die Randserver einer jeden Region
bzw. eines jeden Bereichs zusammen; so weist sie z.B. im Falle der Region 19 den
Randserver ES1 den zusätzlichen Servern
ES1a bis ES1d zu. Die Datenbank 20 kann ähnliche
Einträge
für die
weiteren Randserver ES2 bis ES4 enthalten.
-
Wenn
der Medienanforderungsvermittler 11 die Erweiterung vom
Servlet 14 erhält,
ermittelt es den ersten Randserver auf dem Pfad zwischen dem Client 1 und
dem Webanwendungsserver 3, wobei es sich um den Randserver
ES1 handelt. Im nächsten Schritt
ermittelt der Medienanforderungsvermittler 11 durch eine
Abfrage der Datenbank 20 die zusätzlichen Randserver ES1a bis
ES1d, die sich in derselben geografischen/topologischen Region 19 wie
der Randserver ES1 befinden.
-
Der
Medienanforderungsvermittler 11 erhält ferner die relativen Qualitätsgewichtungen
der Medienzwischenspeicher-Steuereinheiten
und/oder Medienrand-Steuereinheiten der betreffenden Gruppe von
Randservern in der Region 19. Der Medienanforderungsvermittler 11 wählt aus
dieser Gruppe von Randservern den Datenstromserver aus, der die höchste Qualitätsgewichtung
bereitstellt.
-
Wenn
die höchste
Qualitätsgewichtung
eines Datenstromservers aus dieser Gruppe von Randservern nicht
ausreicht, z.B. weil sie unter einem vorgegebenen Schwellenwert
liegt, führt
der Medienanforderungsvermittler 11 eine vergleichbare Operation
für den
nächsten
Randserver ES2 und die zugehörige
regionale Gruppe von zusätzlichen
(in 2 nicht abgebildeten) Randservern durch, um nach
einem Datenstromserver mit einer ausreichenden Qualitätsgewichtung
zu suchen.
-
Als
Ergebnis dieses Prozesses gibt der Medienanforderungsvermittler 11 eine
Datenstromserver-Adresse an den Webanwendungsserver 3 zurück, auf
deren Grundlage die Metadaten für
Client 1 erzeugt werden.
-
Bei
der Ausführungsform
aus 2 kann der Medienanforderungsvermittler 11 z.B.
auch den Randserver ES1 mit dem Datenstromserver 16 auswählen, obwohl
die eigentlichen für
die fortlaufende Übertragung
vorgesehenen Medien sich nur im Zwischenspeicher des Datenstromservers 5 befinden und
im Format des Datenstromservers 5 vorliegen, das mit dem
Format, das für
die Medienwiedergabeeinheit 2 beim Client notwendig ist,
nicht verträglich ist.
Möglich
wird dies dadurch, dass der Randserver ES1 über ein Codeumsetzungsprogramm
verfügt, mit
dem die vom Datenstromserver 16 bereitgestellten Daten
in das erforderliche Format der Medienwiedergabeeinheit 2 umgesetzt
werden können.
-
Die
Codeumsetzung wird vom Medienanforderungsvermittler mit einer entsprechenden
Nachricht an die Medienrand-Steuereinheit veranlasst. In dem Beispiel
werden die aus dem Zwischenspeicher des Datenstromservers 16 entnommenen
angeforderten Medien umgesetzt, und die sich daraus ergebenden Medien
werden im Zwischenspeicher des Datenstromservers 5 gespeichert.
Daraufhin wird eine Metadatei erzeugt, die auf den Datenstromserver 5 zeigt,
und die Medien werden vom Datenstromserver 5 fortlaufend
an die Medienwiedergabeeinheit übertragen.
-
Mit
Blick auf 3 wird nun eine bevorzugte Ausführungsform
eines Verfahrens der Erfindung ausführlicher erläutert.
-
In
Schritt 1 stellt ein Client eine Verbindung zu einer Webseite
mit Sprungmarken zu Medienobjekten (z.B. Mediendateien) her.
-
In
Schritt 2 wählt
der Client Medien aus, indem er auf eine Sprungmarke klickt.
-
In
Schritt 3 erzeugt ein Webbrowser eine http-Anforderung,
welche die eindeutige Signatur der Medienanforderung beinhaltet.
-
Schritt 4 ist
eine FOR-NEXT-Schleife, welche die folgenden
-
Schritte 5, 6 und 7 beinhaltet:
Für alle Randserver
1 bis n:
Leite http-Anforderung an Randserver ESm weiter. Rufe
Programmeinstiegsmöglichkeit
bei Randserver ESm auf. Überprüfe Programmeinstiegsmöglichkeit daraufhin,
ob eine Medienanforderungssignatur vorhanden ist.
(Schritt
5)
-
In
Schritt 6 wird ermittelt, ob eine Medienanforderungssignatur
vorhanden ist. Wenn dies der Fall ist, wird in Schritt 7 eine
Kennung des Randservers ESm an die http-Anforderung angehängt, und
die Steuerung kehrt mit einem erhöhten Wert m zu Schritt 5 zurück. Andernfalls
wird der Wert von m direkt erhöht,
und die Steuerung kehrt zu Schritt 5 zurück, sofern
m kleiner oder gleich n ist.
-
In
Schritt 8 geht die http-Anforderung beim Webanwendungsserver
ein. Als Nächstes
ruft der Webanwendungsserver ein Servlet auf und übergibt eine
URL und die Erweiterung(en) der Randserver an das Servlet.
-
In
Schritt 10 greift das Servlet auf die Erweiterung der URL
zu, um sie in Schritt 11 dem Medienanforderungsvermittler
bereitzustellen.
-
Ausgehend
von der Erweiterung ermittelt der Medienanforderungsvermittler in
Schritt 12 die Qualitätsgewichtungen
der möglichen
Randserver. Ein möglicher
Randserver ist der erste Randserver auf dem Datenübertragungspfad
zwischen dem Client und der Webseite – wobei es sich um den Randserver
ES1 handelt – oder
aber ein Randserver aus einer regionalen Gruppe des Randservers
ES1 und/oder einer der Randserver ES2 bis ES4 und/oder ein Randserver
aus den entsprechenden regionalen Gruppen der Randserver ES2 bis
ES4.
-
In
Schritt 13 wählt
der Medienanforderungsvermittler einen geeigneten Randserver auf
Grundlage der Qualitätsgewichtung
aus, die in Schritt 12 ermittelt wurde.
-
Ausgehend
von dem ausgewählten
Randserver werden in Schritt 14 entsprechende Mediendaten
erzeugt, die in Schritt 15 an den Client gesendet werden.
-
Der
Client stellt eine Verbindung zu dem Randserver her, der durch die
Metadaten angegeben wird, und stellt dem Randserver den Schlüssel bereit, um
in Schritt 160 die fortlaufende Datenübertragung zu veranlassen.
Die eigentliche fortlaufende Datenübertragung beginnt in Schritt 17.
-
Definitionen
-
- 1. Verfahren für die Auswahl eines ersten
Servercomputers für
das Senden von Daten an einen Clientcomputer, wobei das Verfahren
die folgenden Schritte umfasst:
– Zugreifen auf einen zweiten
Servercomputer über
einen Pfad in einem Computernetzwerk, wobei der Pfad einen ersten
Satz von Servercomputern umfasst;
– Hinzufügen von Daten, die mindestens
einen Servercomputer aus dem ersten Satz von Servercomputern angeben,
zu einer Sucheinheit einer Ressource auf dem zweiten Computer, wobei
die Ressource als Bestandteil ihres Bezeichners über eine eindeutige Signatur
verfügt;
und
– Auswählen des
ersten Servercomputers auf der Grundlage der Daten, die zu der Sucheinheit
hinzugefügt
wurden.
- 2. Verfahren nach Definition 1, wobei der zweite Servercomputer
ein Webanwendungscomputer ist, der eine Webseite mit einer Sprungmarke
umfasst, die auf die an den Client zu sendenden Daten verweist,
wobei die Sprungmarke eine eindeutige Signatur beinhaltet, wobei
das Verfahren weiter den Schritt des Auswählens der Sprungmarke durch
den Client umfasst; wobei daraufhin aus dieser Sprungmarke durch
einen Webbrowser eine http-Anforderung erzeugt wird; wobei diese http-Anforderung
die eindeutige Signatur enthält, welche
die Medienanforderung kenntlich macht.
- 3. Verfahren nach den Definitionen 1 oder 2, das weiter die
folgenden Schritte umfasst:
– zumindest vorübergehendes
Speichern der Daten, die zu der Sucheinheit auf dem zweiten Servercomputer
hinzugefügt
wurden;
– Bereitstellen
der Daten an einen Medienanforderungsvermittler als Reaktion auf
eine Auswahl der Sprungmarke durch den Client.
- 4. Verfahren nach einer beliebigen der Definitionen 1, 2 oder
3, wobei der Medienanforderungsvermittler ausgehend von den Daten
den ersten Servercomputer auswählt.
- 5. Verfahren nach einer beliebigen der vorangegangenen Definitionen,
das weiter die folgenden Schritte umfasst:
– Ermitteln einer Qualitätsgewichtung
von mindestens einem der Servercomputer auf dem Pfad;
– Auswählen des
ersten Servercomputers aus dem ersten Satz von Servercomputern auf
der Grundlage der Qualitätsgewichtung.
- 6. Verfahren nach einer beliebigen der vorangegangenen Definitionen,
das weiter die folgenden Schritte umfasst:
– Speichern eines Satzes von
Sucheinheiten aus einem zweiten Satz von Servercomputern in demselben
geografischen/topologischen Bereich wie ein Servercomputer aus dem
ersten Satz von Servercomputern; und
– Ermitteln einer Qualitätsgewichtung
von mindestens einem der Servercomputer aus dem zweiten Satz zur
Auswahl des ersten Servercomputers.
- 7. Verfahren nach einer beliebigen der vorangegangenen Definitionen,
das weiter die folgenden Schritte umfasst:
– Bereitstellen der Daten an
den Medienanforderungsvermittler, wobei die Daten den Servercomputer
aus dem ersten Satz von Servercomputern als den ersten Knoten auf
dem Pfad angeben;
– Ermitteln
einer Qualitätsgewichtung
auf der Grundlage der Daten für
den ersten Servercomputerknoten auf dem Pfad und für die Servercomputer
aus dem zweiten Satz von Servercomputern, die zu diesem Servercomputerknoten
gehören;
– Auswählen eines
der Servercomputer aus der Gruppe, die den ersten Servercomputerknoten auf
dem Pfad umfasst, und aus dem Satz der zweiten Servercomputer mit
einer Qualitätsgewichtung,
die über
einem vorgegebenen Schwellenwert liegt;
– Ermitteln einer Qualitätsgewichtung
eines zweiten Servercomputerknotens auf dem Pfad, falls keine der
Qualitätsgewichtungen
aus der ersten Gruppe ausreichend ist.
- 8. Verfahren nach einer beliebigen der vorangegangenen Definitionen,
wobei die Qualitätsgewichtungen
auf der Grundlage eines oder mehrerer der folgenden Kriterien ermittelt
werden: Verfügbarkeit
der Daten auf einem Servercomputer, Anzahl der auf dem Servercomputer
ausgeführten Transaktionen,
Prozentsatz der genutzten Verarbeitungsressourcen des Servercomputers,
verfügbare
Datenübertragungsbandbreite
für die
Datenübertragungsleitung
mit dem Client.
- 9. Servercomputersystem, das einen Datenstromserver (5, 16)
und Speichermittel (6, 17) für die Speicherung und/oder
Zwischenspeicherung von Daten umfasst, die fortlaufend an einen
Client (1) übertragen
werden sollen, ein Mittel (7) für die Speicherung eines Bezeichners
des Servercomputers und ein Mittel (8) für das Hinzufügen von Daten
zu einer von dem Client bereitgestellten Sucheinheit, wobei die
Daten den Bezeichner angeben.
- 10. Servercomputersystem nach Definition 9, das weiter ein Mittel
für die
Umwandlung der Daten aus einem Datenstromformat in ein anderes umfasst.
- 11. Computersystem, das einen Webanwendungsserver (3)
und einen Medienanforderungsvermittler (11) umfasst, wobei
der Webanwendungsserver eine Webseite (13) mit einer Sprungmarke,
die auf Medien (10) verweist, die fortlaufend an einen
Client (1) übertragen
werden sollen, und ein Mittel (12) für die mindestens vorübergehende
Speicherung von Daten, die einen ersten Knoten eines Datenübertragungspfads
zwischen dem Client und dem Webanwendungsserver in einem Computernetzwerk
angeben, ein Mittel (14) für die Bereitstellung der Daten
an den Medienanforderungsvermittler, wenn die Sprungmarke durch
den Client ausgewählt
wird, und ein Mittel (20) für die Auswahl eines Datenstromservers
für die
fortlaufende Übertragung
der Daten an den Client auf der Grundlage dieser Daten enthält.
- 12. System für
die Auswahl eines ersten Servercomputer aus einer Vielzahl von Servercomputern für das Senden
von Daten an einen Client, wobei das System ein Mittel umfasst,
das so gestaltet ist, dass es die Schritt des Verfahrens nach einer beliebigen
der vorangegangenen Definitionen 1 bis 8 ausführen kann.
- 13. Datenverarbeitungsprogramm für die Ausführung in einem Datenverarbeitungssystem,
das Softwarecodeteile für
die Durchführung
eines Verfahrens nach einer beliebigen der Definitionen 1 bis 8
umfasst, wenn das Programm auf dem Computer ausgeführt wird.
- 14. Computerprogrammprodukt, das auf einem von einem Computer
nutzbaren Medium gespeichert ist, das ein computerlesbares Programmmittel
umfasst, mit dem ein Computer veranlasst wird, ein Verfahren nach
einer beliebigen der Definitionen 1 bis 8 auszuführen, wenn das Programm auf
dem Computer ausgeführt
wird.