-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft die Computerdatenbearbeitung. Insbesondere
betrifft sie das Herunterladen von Daten in einer Gitter-Datenverarbeitungsumgebung
(grid computing environment).
-
Grundlagen
-
Die
Gitter-Datenverarbeitung ist die Virtualisierung von verteilten
Datenverarbeitungsressourcen wie Verarbeitungsleistung, Netzbandbreite
und Speicherkapazität
zur Erzeugung eines einzigen Systemabbilds, wobei Benutzern und
Anwendungen ein nahtloser Zugriff auf umfassende IT-Funktionseigenschaften
erteilt wird. Eine Quelle für
weitere Informationen über
Gitter-Datenverarbeitung ist in "The
Physiology of the Grid – an
open grid services architecture for distributed systems integration" von Foster, Kesselman,
Nick und Tuecke zu finden, veröffentlicht im
World Wide Web bei: "www.globus.org/research/papers/ogsa.pdf".
-
Eine
Veröffentlichung "Grid Computing Distribution
Using Network Processors" von
Llevist und Bengsson, Chalmers University of Technology, erläutert die
Gitter-Datenverarbeitung.
Die Veröffentlichung
konzentriert sich auf einen Vorschlag eines neuen Berechnungsmodells,
das sowohl den Code als auch Daten an Knoten des Netzes (Gitters)
verteilt, die Router des Netzes legen fest, welche Knoten ausgewählt werden
müssen,
um den Code auf der Grundlage des von den Routern gesammelten Wissens
auszuführen.
-
In
der
US-Patentschrift
6 339 785 B1 mit dem Titel "Multi-Server File Download" (Feigenbaum) entfernt Feigenbaum den
Server, wenn die Herunterladegeschwindigkeit von einem Server unter
eine vordefinierte erwartete Geschwindigkeit fällt. Wenn ein Server seinen
Teil des Datenblocks beendet hat, verwendet Feigenbaum ihn nicht
mehr, wenn dies nicht notwendig ist (wenn alle anderen Server über einer vordefinierten
erwarteten Geschwindigkeit liegen). Bezeichnenderweise gibt es in
dem Patent von Feigenbaum Situationen, in denen 2 Server mit 10
KBit/s eingestuft werden. Das Herunterladen beginnt sodann mit zwei
identischen Blöcken.
Der erste Server arbeitet mit 10 KBit/s, folglich hält er die
erwartete Geschwindigkeit ein. Der zweite Server arbeitet mit 1000
KBit/s (da das Netz dynamisch ist) und beendet seinen Block sofort.
Feigenbaum hält
den ersten Block bis zur Fertigstellung bei 10 KBit/s... ("SOLLTE DIE GESCHWINDIGKEIT
DES SERVER UNTER EINEN VORDEFINIERTEN PEGEL FALLEN, WIRD DIE VERBINDUNG
UNTERBROCHEN".)
Es gibt kein Verfahren zum erneuten Zuweisen des 10-KBit/s-Blocks
zum Server mit 1000 KBit/s, und wir machen mit diesem Prozess weiter.
-
Es
besteht ein Bedarf an einem intelligenten Herunterladen von Daten
aus Servern in einem Gitternetz.
-
Beschreibung der Erfindung
-
Die
vorliegende Erfindung stellt ein Verfahren, wie es in Anspruch 1
und 14 beansprucht wird, und entsprechende Computerprogramme und
-systeme bereit.
-
Die
Gitter-Datenverarbeitung ist die Virtualisierung von verteilten
Datenverarbeitungsressourcen wie Verarbeitungsleistung, Netzbandbreite
und Speicherkapazität,
um ein einzelnes Systemabbild zu erzeugen, wobei Benutzern und Anwendungen
ein nahtloser Zugriff auf umfassende IT-Funktionseigenschaften erteilt wird.
In dieser Beschreibung beschreiben wir einen Herunterladedienst
in einer Gitter-Datenverarbeitungsumgebung.
-
Anstelle
der Verwendung herkömmlicher
Client/Server-Modelle oder nichthierarchischer Modelle verwendet
diese Erfindung das Modell von Diensteanbietern, Kunden und Maklern.
Der Makler ist für die
Bereitstellung des Leitplans (roadmap) des Dienstes, die Sicherung
der Anwendungen und die Verwaltung von Datensätzen zuständig. Der Kunde kann die Diensteanbieter
kontaktieren und nur nach Erhalten der notwendigen Berechtigung
und Referenzen (authorization and credentials) vom Makler einen
Dienst von diesen erhalten. Außerdem
kann der Makler dafür
sorgen, dass der Kunde Dienste von mehreren Diensteanbietern gleichzeitig
empfängt.
Im Zusammenhang mit dem Herunterladegitter wird der Makler als ein
Verwaltungsdienst realisiert, die Diensteanbieter werden als Herunterlade-Server
und die Kunden als Client-Agenten realisiert. Die Agenten leiten
Herunterladevorgänge
von Dateien im Auftrag von Endbenutzern ein und verarbeiten diese.
Dieses Modell kann auf eine Vielfalt von Gitteranwendungen angewandt
werden.
-
Die
Erfindung stellt einen Herunterladedienst mit hohem Durchsatz bereit,
wobei Netzressourcen leistungsfähig
verwaltet werden und der Zugriff auf die verteilten Aktivposten
(assets) gesteuert wird.
-
Vorzugsweise
stellt die Erfindung mehrere gleichzeitige Datenströme zur Unterstützung einer parallelen
Datenübertragung
(Herunterlagevorgang) von mehreren Servern auf der Grundlage eines
optimierten Plans bereit. Die Optimierung beruht vorzugsweise auf
1) dem Netzzugangspunkt des Dienstanforderungsknotens (oder Client);
2) der Topologie der Server; 3) des Netzdatenverkehrs zum Zeitpunkt
der Anforderung des Dienstes und 4) der Dienstgütevereinbarung für einen
Client.
-
Vorzugsweise
verwendet die Erfindung einen X.509 Proxy, um sowohl den Berechtigungsnachweis
als auch den optimierten Plan einzubinden.
-
Vorzugsweise
ist die maximal zulässige Bandbreite
für den
Client bekannt; wird die anfängliche
Anzahl von den Client bedienenden Servern berechnet. Die Anzahl
von Servern kann angepasst werden, um die maximale Leistung des
Vervielfältigungsprozesses
zu erreichen.
-
Wenn
die vorausgehende Kenntnis der maximal zulässigen Bandbreite für den Client
nicht verfügbar
ist, beginnt die anfängliche
Anzahl der Server vorzugsweise bei eins, und das System führt eine
Anpassung aus, um die Anzahl von Servern zum Erreichen der maximalen
Vervielfältigungsgeschwindigkeit
zu finden.
-
Vorzugsweise
stellt die Erfindung eine Rückmeldung
des Vervielfältigungsprozesses
bereit, um eine bessere Qualität
des Optimierungsplans zu ermöglichen.
-
Vorzugsweise
verwendet die Erfindung das Rückmeldesystem
und die Datenverarbeitungs-Gitterinfrastruktur, um Dienste aus dem
Gitter zu deaktivieren und bei Bedarf erneut zu aktivieren.
-
Vorzugsweise
optimiert die Erfindung für
einen gegebenen Teil von Daten (oder einer Datei) auf der Grundlage
der Verteilung der Zugangspunkte der Dienstanforderung die Verteilung
der Server über
die Netztopologie, um den überregionalen
Datenverkehr zu verringern oder andere Kriterien zu optimieren.
-
Kurze Beschreibung der Zeichnungen
-
Das
als Erfindung betrachtete Hauptthema wird insbesondere in den Ansprüchen am
Ende der Patentbeschreibung dargelegt und eindeutig beansprucht.
Die vorhergehenden und andere Aufgaben, Merkmale und Vorteile der
Erfindung gehen aus der folgenden ausführlichen Beschreibung hervor,
wenn sie in Verbindung mit den begleitenden Zeichnungen gelesen
wird, in denen:
-
1 eine
Darstellung von Komponenten eines Computersystems ist;
-
2 eine
Darstellung eines Client/Server-Netzes nach dem Stand der Technik
ist;
-
3 eine
Darstellung eines Gitternetzes nach dem Stand der Technik ist;
-
4 ein
Beispiel einer Übersichtsdarstellung
einer Herunterlade-Gitterarchitektur ist;
-
5 ein
Flussdiagrammbeispiel eines Prozesses ist, der die Anzahl gleichzeitiger
Herunterladesitzungen steuert;
-
6A ein
Flussdiagrammbeispiel eines Prozesses von Neueinstellungen von Herunterladevorgängen ist;
-
6B eine
grafische Darstellung eines beispielhaften Prozesses der erneuten
Zuweisung eines Blocks ist;
-
7 ein
Flussdiagramm der Bereitstellung eines Inhaltes für ein Gitter-Herunterladesystem
gemäß der Erfindung
ist;
-
8 ein
Flussdiagramm des Herunterladens eines Inhaltes in ein Gitter-Herunterladesystem gemäß der Erfindung
ist; und
-
9 ein
Flussdiagramm des Einleitens eines Gitter-Herunterladevorgangs gemäß der Erfindung
ist.
-
Die
ausführliche
Beschreibung erläutert
beispielhaft mit Bezugnahme auf die Zeichnungen die bevorzugten
Ausführungsformen
der Erfindung zusammen mit Vorteilen und Merkmalen.
-
Beste Ausführungsart der Erfindung
-
Vorzugsweise
stellt die vorliegende Erfindung einen Herunterladedienst in einer
Gitter-Datenverarbeitungsumgebung bereit. Anstelle der Verwendung
herkömmlicher
Client/Server-Modelle
oder nichthierarchischer Modelle verwendet die bevorzugte Ausführungsform
das Modell von Diensteanbietern, Kunden und Maklern. Der Makler
ist für
die Bereitstellung des Leitplans des Dienstes, die Sicherung der
Anwendungen und die Verwaltung von Datensätzen zuständig. Der Kunde kann die Diensteanbieter
kontaktieren und nur nach Erhalten der notwendigen Berechtigung
und Referenzen vom Makler einen Dienst von diesen erhalten. Außerdem kann der
Makler dafür
sorgen, dass der Kunde Dienste von mehreren Diensteanbietern gleichzeitig
empfängt.
Im Zusammenhang mit dem Herunterladegitter wird der Makler als ein
Verwaltungsdienst realisiert, die Diensteanbieter werden als Herunterlade-Server
und die Kunden als Client-Agenten realisiert. Die Agenten leiten
Herunterladevorgänge
von Dateien im Auftrag von Endbenutzern ein und verarbeiten diese.
Dieses Modell kann auf eine Vielfalt von Gitteranwendungen angewandt
werden.
-
Das
Herunterladegitter muss skalierbar, zuverlässig, sicher, anpassungsfähig und
leistungsfähig
sein:
-
Skalierbarkeit:
-
Die
vorliegende Erfindung muss einen beliebigen Satz von Ressourcen
verwenden, die zu einem Gitter gehören. Das Herunterladegitter
verwendet einen dynamischen Satz von Herunterlade-Servern. Daher
ist die vorliegende Erfindung skalierbar.
-
Zuverlässigkeit:
-
Anstatt
sich auf einen einzelnen Server zu verlassen, weist das Herunterladegitter
viele Server auf. Ein Ausfall eines einzelnen Server setzt den Herunterladedienst
nicht außer
Funktion. Daher ist die vorliegende Erfindung zuverlässig.
-
Sicherheit:
-
Die
vorliegende Erfindung verwendet eine Infrastruktur mit privatem
Schlüssel
(private key infrastucture – PKI)
und X.509-Zertifikate als Sicherheitsinfrastruktur. Daher ist sie
sicher.
-
Anpassungsfähigkeit:
-
Das
Herunterladegitter kann Teile einer Datei dynamisch zuordnen, so
dass sie von mehreren Servern gleichzeitig heruntergeladen werden.
Die vorliegende Erfindung ist anpassungsfähig, da die Zuordnung auf der
erkannten Leistung jedes einzelnen Server beruht.
-
Leistungsfähigkeit:
-
Der
Verwaltungsdienst steuert, welche Teilmenge von Ressourcen für einen
bestimmten Herunterladevorgang verwendet werden kann. Er führt diese
Auswahl mit dem Ziel aus, den Gesamtnutzungsgrad der Netzressourcen
(Bandbreitennutzung) auf ein Mindestmaß herabzusetzen. Daher ist
die vorliegende Erfindung leistungsfähig.
-
Vorzugsweise
stellt die Erfindung einen Herunterladedienst mit hohem Durchsatz
bereit, wobei Netzressourcen leistungsfähig verwaltet werden und der
Zugriff auf die verteilten Aktivposten gesteuert wird.
-
1 veranschaulicht
einen repräsentativen Arbeitsplatzrechner
oder ein Server-Hardwaresystem, in dem die vorliegende Erfindung
ausgeführt werden
kann. Das System 100 von 1 umfasst
ein repräsentatives
Computersystem 101, beispielsweise einen Personal Computer,
eine Arbeitsplatzrechner oder einen Server, unter anderem wahlweise
periphere Einheiten. Der Arbeitsplatzrechner 101 enthält einen
oder mehrere Prozessoren 106 und einen Bus, der zum Verbinden
des Prozessors/der Prozessoren 106 und der anderen Komponenten
des Systems 101 und zum Ermöglichen des Datenaustauschs
zwischen diesen gemäß bekannten
Verfahren verwendet wird. Der Bus verbindet den Prozessor 106 mit
dem Speicher 105 und dem Langzeitspeicher 107,
zu dem beispielsweise ein Festplattenlaufwerk, ein Diskettenlaufwerk
oder ein Bandlaufwerk gehören
kann. Das System 101 könnte
auch einen Benutzerschnittstellenadapter enthalten, der den Mikroprozessor 106 über den
Bus mit einer oder mehreren Schnittstelleneinheiten verbindet, beispielsweise
einer Tastatur 104, einer Maus 103, einem Drucker/Scanner 110 und/oder
anderen Schnittstelleneinheiten, die beliebige Benutzerschnittstelleneinheiten
wie ein berührungsempfindlicher
Bildschirm, ein digitalisierte Eingabetastenfeld usw. sein können. Außerdem verbindet
der Bus eine Anzeigeeinheit 102, beispielsweise einen LCD-Bildschirm
oder -Monitor, über
einen Anzeigeadapter mit dem Mikroprozessor 106.
-
Das
System 101 kann mittels eines Netzadapters, der die Fähigkeit
zum Datenaustausch mit dem Netz 109 hat, mit anderen Computern
oder Computernetzen Daten austauschen. Beispiele für Netzadapter
sind Datenübertragungskanäle, Token-Ring,
Ethernet oder Modems. Alternativ kann der Arbeitsplatzrechner 101 unter
Verwendung einer drahtlosen Schnittstelle wie einer CDPD-Karte (cellular
digital packet data card) Daten austauschen. Der Arbeitsplatzrechner 101 kann
solchen anderen Computern in einem lokalen Netz (Local Area Network – LAN) oder
einem weiträumigen
Netz (Wide Area Network – WAN)
zugeordnet werden, oder er kann ein Client in einer Client/Server-Anordnung
mit einem anderen Computer sein usw. Alle diese Konfigurationen
sowie die entsprechende Datenübertragungshardware
und – software
sind nach dem Stand der Technik bekannt.
-
2 veranschaulicht
ein Datenverarbeitungsnetz 200, in dem die vorliegende
Erfindung ausgeführt
werden kann. Das Datenverarbeitungsnetz 200 kann eine Vielzahl
von einzelnen Netzen enthalten, beispielsweise ein drahtloses Netz
und ein leitungsgebundenes Netz, von denen jedes eine Vielzahl von
einzelnen Arbeitsplatzrechnern 101 enthalten kann. Wie
Fachleute verstehen werden, können außerdem ein
oder mehrere LANs enthalten sein, wobei ein LAN eine Vielzahl von
mit einem Host-Prozessor verbundenen intelligenten Arbeitsplatzrechnern
umfassen kann.
-
Noch
immer mit Bezugnahme auf 2 können die Netze außerdem Großrechner
oder Server beinhalten, beispielsweise einen Gateway-Computer (Client-Server 206)
oder einen Anwendungsserver (ferner Server 208, der auf
einen Datenverwahrungsort zugreifen kann). Ein Gateway-Computer 206 dient
als Eingangspunkt in ein Netz 207. Ein Gateway wird bei
der Verbindung eines Vernetzungsprotokolls mit einem anderen benötigt. Der
Gateway 206 kann vorzugsweise mittels einer Datenübertragungsverbindung
mit einem anderen Netz (beispielsweise dem Internet 207)
verbunden werden. Der Gateway 206 kann auch unter Verwendung
einer Datenübertragungsverbindung
direkt mit einer oder mehreren Arbeitsstationen 101 verbunden
werden. Der Gateway-Computer kann unter Verwendung eines von IBM
erhältlichen
e-Server oder z-Server 900 realisiert werden.
-
Auf
einen Softwareprogrammiercode, der die vorliegende Erfindung verkörpert, wird
normalerweise durch den Prozessor 106 des Systems 101 von
einem Langzeitspeichermedium 107 zugegriffen, beispielsweise
einem CD-ROM-Laufwerk oder einem Festplattenlaufwerk. Der Softwareprogrammiercode kann
in einem beliebigen aus einer Vielfalt bekannter Datenträger zur
Verwendung mit einem Datenverarbeitungssystem enthalten sein, beispielsweise
einer Diskette, einer Festplatte oder einer CD-ROM. Der Code kann auf solchen Datenträgern oder
aus dem Speicher eines Computersystems über ein Netz an andere Computersysteme
zur Verwendung durch Benutzer solcher Systeme verteilt werden.
-
Alternativ
kann der Programmiercode 111 im Speicher 105 enthalten
sein, und der Prozessor 106 greift unter Verwendung des
Prozessorbusses auf diesen zu. Ein solcher Programmiercode enthält ein Betriebssystem,
das die Funktion und die Interaktion der verschiedenen Computerkomponenten
und einem oder mehreren Anwendungsprogrammen steuert. Der Programmcode
wird normalerweise von einem dichtgepackten Speichermedium 107 in
einen Hochgeschwindigkeitsspeicher 105 gestellt, wo er zur
Verarbeitung durch den Prozessor 106 verfügbar ist.
Die Verfahren zum Ausführen
des Softwareprogrammiercodes im Speicher, auf physischen Medien und/oder
in einem verteilten Softwarecode über Netze sind allgemein bekannt
und werden hierin nicht näher
erläutert.
-
In
der bevorzugten Ausführungsform
wird die vorliegende Erfindung als ein oder mehrere Computersoftwareprogramme 111 ausgeführt. Die
Ausführung
der Software der vorliegenden Erfindung kann als ein oder mehrere
Module oder Anwendungen 111 (auch als Code-Teilroutinen
oder "Objekte" in der objektorientierten
Programmierung bezeichnet), die auf eine Anforderung hin aufgerufen
werden, in der Arbeitsstation eines Benutzers erfolgen. Alternativ
kann die Software in einem Server in einem Netz oder in einer beliebigen
Einheit mit der Fähigkeit
zur Realisierung des die vorliegende Erfindung realisierenden Programmcode
betrieben werden. Die diese Erfindung realisierende Logik kann im
Code eines Anwendungsprogramms integriert oder als ein oder mehrere
gesonderte Dienstprogrammmodule, die von dieser Anwendung aufgerufen
werden, realisiert werden, ohne von den hierin beschriebenen erfindungsgemäßen Konzepten
abzuweichen. Die Anwendung 111 kann in einer Web-Umgebung
ausgeführt
werden, wobei ein Webserver auf Anforderungen von einem durch das
Internet verbundenen Client hin Dienste bereitstellt. In einer anderen
Ausführungsform
kann die Anwendung in einem Firmenintranet oder -extranet oder in
einer beliebigen anderen Netzumgebung ausgeführt werden. Zu Konfigurationen für die Umgebung
gehören
ein Client/Server-Netz, nichthierarchische Netze (wobei Clients
direkt durch Ausführen
sowohl der Client- als
auch der Serverfunktion interagieren) sowie eine mehrschichtige
Umgebung (multi-tier environment). Diese Umgebungen und Konfigurationen
sind nach dem Stand der Technik allgemein bekannt.
-
3 zeigt
eine Übersichtsdarstellung
einer Gitterstruktur von Servern 301 bis 312 nach
dem Stand der Technik, die über
eine Netzstruktur 313 Daten austauschen. Der Server 309 ist
durch ein lokales Netz mit Servern 310 und 311 verbunden.
Der Server 308 stellt Gitter-Maklerdienste bereit. Der Gittermakler
wird in "Grid Service
Broker A Grid Scheduler for Computational and Data Grids" bei www.gridbus.org/broker
und in "A Grid service
for Scheduling Distributed Data-Oriented Appellations an local Grids" bei www.gridbus.org/papers/g.PDF
erläutert.
-
4 zeigt
die Architekturübersicht
des Herunterlade-Gittersystems.
Der Verwaltungsdienst 402 enthält vorzugsweise vier Module
und eine Datenbank 406 als Verwahrungsort. Eine Anzahl
von im Gittersystem mit 408 und 409 dargestellten
Servern werden im Verwaltungsdienstzentrum 402 registriert. Außerdem werden
alle Dateien, die heruntergeladen werden dürfen, im Verwaltungszentrum
registriert. Die vier Module haben die folgenden Funktionen:
Optimierungseinrichtung
(Optimizer) 405 – legt
den optimierten Herunterladeplan fest (der eine optimierte Serverliste
umfasst) und stellt diese dem Client bereit;
Registrierungssystem 407 – stellt
ein Register von Servern und Dateien bereit;
Rückmeldesystem 403 – sammelt
Rückmeldungen von
Clients 401 über
den Status und die Leistung der Server; und
Statistiksystem 404 – analysiert
die Anwendungsnutzungsdaten vom Rückmeldesystem und stellt Berichte
bereit.
-
5 zeigt
einen bevorzugten Prozess, den der Client verwendet, um die Anzahl
von Sitzungen festzulegen, die er zum parallelen Herunterladen eines
Blocks aus einer Vielzahl von Herunterlade-Servern verwendet. Der
Client leitet zuerst eine Sitzung 501 mit einem der Server
in der optimierten Liste ein. Er überwacht fortlaufend die Herunterladegeschwindigkeit
für jeden
Teil des Blocks aus dem entsprechenden Server. Er analysiert die überwachte
Geschwindigkeit alle Sekunden mit Auftreten einer Schleife mit Zeitlimitüberschreitung (LOOP_TIMEOUT).
Am Ende der ersten Periode 502 einer Schleife mit Zeitlimitüberschreitung
startet er eine zweite Sitzung 503 mit einem der nichtverwendeten
Server auf der Liste, wenn die Bedingung der Dienstqualität (Quality
of Service – QoS)
nicht erfüllt wird.
-
In
anschließenden
Wiederholungen geht er folgendermaßen vor: falls (N = 2 505 oder
N = 3 506), versucht er, eine (N + 1)te Sitzung mit einem
anderen Server zu starten, wenn die mit der aktuellen Anzahl von
Sitzungen erzielte maximale Herunterladegeschwindigkeit (max_download_rate) über einem
festgelegten Schwellenwert (THRESHOLD_{N}) liegt.
-
Im
Falle von N > 3 prüft er sowohl
die relativen als auch die absoluten Verstärkungsfaktoren (gains), die
aus der letzten Hinzufügung
erhalten wurden, und handelt dementsprechend. Falls (507):
MAX_RATE
(N Server) – MAX_RATE
(N – 1
Server) > THRESHOLD_INC
oder
(MAX_RATE (N Server) – MAX_RATE
(N – 1
Server))/MAX_RATE (N – 1
Server) > INC_FACTOR
wobei
MAX_RATE (N Server) die mit N Sitzungen erzielte maximale Herunterladegeschwindigkeit
ist, MAX_RATE (N – 1
Server) die mit N – 1
Servern erzielte maximale Geschwindigkeit ist; THRESHOLD_INC bzw.
INC_FACTOR vordefinierte absolute bzw. relative Schwellenwerte sind.
-
Er
startet eine (N + 1)te Sitzung mit einem anderen Server 509.
-
Die
anfängliche
Grenze von THRESHOLD_N ist eine Einstellung, um zu viele Sitzungen
mit geringen Herunterladegeschwindigkeiten zu vermeiden. In einer
Beispielausführung
sind die Werte der verschiedenen Parameter folgendermaßen:
THRESHOLD_2
= 40 KByte/s
THRESHOLD_3 = 75 KByte/s
INC_FACTOR = 20%
THRESHOLD_INC
= 30 KByte/s
LOOP_TIMEOUT = 0,150 Sekunden
-
An
diesem Schema sind eine Anzahl von Änderungen möglich. Beispielsweise muss
ein zwei Dateien umfassendes Paket (bundle) aus den Servern in einen
Client heruntergeladen werden, wobei jeder Server beide Dateien
enthält.
Das Herunterladen von Teilen einer Datei wird von einer ersten Gruppe
von Servern und Teile einer zweiten Datei werden von einer zweiten
Gruppe gestartet. Wenn ein Server der ersten Gruppe das Herunterladen
seines Teils beendet hat, kann der Client sich entschließen, einen
Herunterladevorgang eines Teils der einen Datei oder der zweiten
Datei in diesem Server zu starten.
-
Als
weiteres Beispiel können
die Server anstelle einer zufälligen
Auswahl bei jedem Schritt in einer vom Verwaltungsdienst angegebenen
Reihenfolge ausgewählt
werden. Ebenso ist es anstelle des Starts mit einem einzigen Server
möglich,
mit mehreren Servern zu starten. Ähnlich ist es anstelle einer unterschiedlichen
Bearbeitung der Fälle
N = 2 und N = 3 möglich,
mehr oder weniger Ns anders zu bearbeiten. Noch eine weitere Änderung
würde darin
bestehen, INC_FACTOR von N selbst abhängig zu machen. Dies sind lediglich
Beispiele der möglichen Änderungen
an diesem Schema und stellt keine erschöpfende Liste dar. Andere nach
dem Stand der Technik bekannte Änderungen
könnten
im Anwendungsbereich dieser Erfindung verwendet werden.
-
6A zeigt
die Einzelheiten der Anpassungen, die während des Herunterladens erfolgen.
Blöcke
werden verschiedenen Servern zugeordnet, wenn ein neuer Herunterladevorgang
eingeleitet wird. Ein Block ist ein Teil oder die Gesamtheit einer Datei,
die aus einem bestimmten Server heruntergeladen werden muss. Falls
die Herunterlade-Anforderung für
eine Gruppe von mehreren Dateien bestimmt ist, könnte ein Block einer ganzen
Datei in der Gruppe entsprechen. Die Größe jedes Blocks hängt von der
im optimierten Plan aufgelisteten zugeschriebenen Servergeschwindigkeit
ab. Da das Netz dynamisch ist, werden einige Blöcke früher als erwartet fertiggestellt. 6A zeigt
den Algorithmus zur erneuten Zuordnung der Blöcke.
-
Wenn
der Server X seinen Block 601 beendet, prüft der Client
jeden aktiven Herunterladevorgang und berechnet die erwartete verbleibende
Zeit für
jeden von diesen auf der Grundlage der verbleibenden Größe des Blocks
und seiner aktuellen Herunterladegeschwindigkeit. Anschließend wählt er den
Block aus, dessen Fertigstellung möglicherweise am längsten dauert,
aus dem Server Y (602). Der ausgewählte Block wird in 6B als 653 dargestellt.
Wenn die Größe des ausgewählten Blocks 653 geringer
als ein vorgegebener Schwellenwert (603) ist, wird keine
weitere Maßnahme
ergriffen. Andernfalls (604) stellt er die erzielten Herunterladegeschwindigkeiten
von Server X und Server Y fest. Er teilt (Schritt 605)
die verbleibende Größe des Blocks durch
einen Anpassungsfaktor, der die tatsächliche Geschwindigkeit von
Server X und Server Y und andere Parameter berücksichtigt, so dass Herunterladevorgänge sowohl
aus dem Server X als auch aus dem Server Y zur gleichen Zeit beendet
sind. Die entsprechenden Blöcke
werden in 6B mit 654 und 655 dargestellt.
Mit anderen Worten, der Server X beendet den neuen Block 655 (Beginn_x – Ende_x) zum
gleichen Zeitpunkt, zu dem der Server Y den Block 654 beendet
(Ende_y). Anschließend
startet (606) er das Herunterladen des Blocks 655 aus
dem Server X, während
der Server Y das Herunterladen des Blocks bis zu 657 ausführt.
-
Außer der
Geschwindigkeit werden auch andere Parameter zum Festlegen der relativen
Größe der Blöcke in Betracht
gezogen. Zu diesen Parametern können
Faktoren wie die Sitzungseinrichtungszeit und die verbleibenden
Blockgrößen gehören. Der
Blockalgorithmus vermeidet vorzugsweise eine erneute Zuordnung zu
kleiner Blöcke,
wenn dies nicht sinnvoll ist.
-
An
diesem Algorithmus sind viele Änderungen
möglich.
Es handelt sich hier lediglich um eine beispielhafte Ausführung zur
Lehre der Erfindung.
-
In
einer bevorzugten Ausführungsform (7)
kontaktiert ein Dateianbieter einen Verwaltungsdienst mit ordnungsgemäßen Referenzen 701, der
Dateianbieter kennzeichnet 702 einen Block von Herunterladedaten
mit bestimmten Attributen 704, der Dateianbieter überträgt 703 die
bestimmten Attribute 704 an das Verwaltungssystem und lädt den Block
in einen einzelnen Server im Herunterladegitter hoch 705.
Zu den Attributen 704 gehören eine Priorität, eine
gewünschte
geografische Nähe
für die
Datei oder eine Einschränkung
in Bezug auf Clients für
das Erteilen der Genehmigung zum Herunterladen der Datei. Der Dateianbieter
erzeugt einen Entschlüsselungsschlüssel, verschlüsselt die
Datei und überträgt den Entschlüsselungsschlüssel sicher
an den Verwaltungsdienst.
-
Der
Verwaltungsdienst nimmt die Herunterladedaten vom Inhalteanbieter 901 (9)
entgegen, verteilt die Herunterladedaten in eine Infrastruktur, 706,
wobei die Infrastruktur eine Vielzahl von Herunterlade-Servern umfasst.
Wenn der Verwaltungsdienst eine Anforderung 902 von einem
Client nach einem Herunterladeplan zum Herunterladen der Herunterladedaten
in den Client empfängt
(wobei die Anforderung Dienstqualitätsanforderungen angibt, unter anderem
die Angabe der Herunterladegeschwindigkeit oder den gewünschten
Fertigstellungszeitpunkt des Herunterladevorgangs), erzeugt er einen
Herunterladeplan, 903, wobei der Herunterladeplan eine Liste
von zwei oder mehr die Herunterladedaten enthaltenden Herunterlade-Servern
und außerdem
Leistungsdaten 905 der zwei oder mehr Herunterlade-Server umfasst, und überträgt den Herunterladeplan
sodann an den Client, 904. (Der Herunterladeplan umfasst
eine optimierte Liste einer Vielzahl von Herunterlade-Servern, die
in einer Gitterinfrastruktur eingesetzt werden).
-
Der
Client empfängt
(8) eine Anforderung nach Herunterladedaten von
einem Anwendungsprogramm, 801. Anschließend fordert er einen Herunterladeplan
vom Verwaltungsdienst an, 802, und kontaktiert sodann die
im Herunterladeplan angegebenen Herunterlade-Server, anschließend startet
er einen Herunterladevorgang eines Herunterladeblocks von Herunterladedaten
aus jedem der zwei oder mehr kontaktierten Herunterlade-Server, 803. Der
Client überwacht
die Herunterladeleistung der Herunterlade-Server, 805, 806,
und passt die Anzahl von heruntergeladenen Herunterladeblöcken auf
der Grundlage der Herunterladeleistung der zwei oder mehr Herunterlade-Server
an, 804. Anschließend meldet
er die Herunterladeleistung der zwei oder mehr Herunterlade-Server
dem Verwaltungsdienst, 807.
-
Wenn
der Client den Herunterladevorgang beendet, 808, empfängt der
Verwaltungsdienst neue Daten zur Herunterladeleistung der Server
vom Client, 907. Er aktualisiert die Leistungsdaten der
Herunterlade-Server auf der Grundlage der neuen Daten zur Herunterladeleistung, 906.
-
Der
Verwaltungsdienst führt
Aktivitäten
wie das Auswählen
des einzelnen Server zum Empfang des Hochladens der Datei, das Aktivieren
eines Server der zwei oder mehr Herunterlade-Server, das Deaktivieren eines Server
der zwei oder mehr Herunterlade-Server oder das Aktualisieren eines
Server der zwei oder mehr Herunterlade-Server dynamisch aus.
-
Der
Verwaltungsdienst erzeugt den Herunterladeplan auf der Grundlage
der Position des Client, des Status und der Nutzungsgraddaten der
Herunterlade-Server, der Dienstqualitätsanforderungen, der Netznähe der ausgewählten Herunterlade-Server zum
Client, der Ausgangsbandbreite des Netzes eines Server, der aktuellen
Anzahlen von vom Server unterstützten
Blockherunterladevorgängen
oder den maximal zulässigen
gleichzeitigen Herunterladevorgängen
von Blöcken
(wobei die Position des Client-Agenten automatisch auf der Grundlage
von irgendeiner der Netzadressen des Client-Agenten oder durch vom
Client-Agenten bereitgestellte Daten ermittelt wird).
-
Das
Starten eines Herunterladevorgangs umfasst vorzugsweise die folgenden
Schritte:
- a. Starten eines Herunterladevorgangs
eines ersten Teils des Herunterladeblocks von Herunterladedaten
aus einem ersten Server der zwei oder mehr kontaktierten Herunterlade-Server;
- b. Speichern einer Meldung der Herunterladeleistung der Teile
des Herunterladeblocks;
- c. Starten eines Herunterladevorgangs eines neuen Teils des
Herunterladeblocks von Herunterladedaten aus einem neuen Server
der zwei oder mehr kontaktierten Herunterlade-Server;
- d. Überwachen
der Herunterladeleistung der Teile des Herunterladeblocks;
- e. wenn die überwachte
Herunterladeleistung größer als
die gespeicherte Meldung der Herunterladeleistung ist und die Herunterladeleistung
geringer als eine festgelegte maximale Leistung ist und alle der
zwei oder mehr kontaktierten Herunterlade-Server nicht gestartet
wurden, Wiederholen der Schritte b bis e.
-
Der
Client überwacht
die Herunterladeleistung von Herunterladeblockteilen von Herunterladedaten
aus jedem der gestarteten Herunterlade-Server und ordnet einen Teil
eines Blockteils eines ersten Server einem zweiten Server erneut
zu, wobei die Größe des erneut
zugeordneten Teils proportional zur erzielten Herunterladeleistung
der gestarteten zwei oder mehr kontaktierten Herunterlade-Server, proportional
zum Blockteil, der noch vom ersten Server heruntergeladen werden
muss oder halb so groß ist
wie der Blockteil, der noch vom ersten Server heruntergeladen werden
muss. Am Ende des Herunterladevorgangs prüft der Client die Unversehrtheit
der Datei und überträgt eine
Meldung der Prüfung
der Unversehrtheit an den Verwaltungsdienst.
-
Der
Client zeichnet Daten der Größe von aus jedem
Server heruntergeladenen Blöcken,
der Herunterladeleistung jedes Server oder der Identität der nicht
auf die Anforderungen reagierenden Server auf und überträgt die aufgezeichneten
Daten an den Verwaltungsdienst. Vorzugsweise hat ein Block eine
zugeordnete Zugriffssteuerungsliste, und nur auf dieser angegebene
Endbenutzer können
die Datei herunterladen. Der Block wird in verschlüsselter
Form gespeichert und verteilt. Die endgültige Entschlüsselung
der Datei wird vom Client-Agenten
unter Verwendung des Schlüssels
ausgeführt,
den er sicher vom Verwaltungsdienst erhält.
-
Vorzugsweise
wird das aktuelle Herunterlade-Gittersystem unter Verwendung von
Web-Diensten realisiert. Der Herunterladevorgang wird mit einem
anwendereigenen Protokoll zwischen dem Client und dem Server ausgeführt. Der
Verwaltungsdienst wird unter Verwendung von JAVA von SUN MICROSYSTEMS
realisiert. Der Verwahrungsort ist eine relationale Datenbank.
-
Vorzugsweise
wird der Herunterlade-Server des Gitters in Java ausgeführt. Der
Server verwendet das TCP/IP-Standardprotokoll und hat einen Algorithmus
zur dynamischen Anpassung der Dateiübertragungsgeschwindigkeit.
-
Vorzugsweise
wird der Client als eigenständige
Java-Anwendung oder als ein auf einem Web-Browser beruhendes Java-Applet
realisiert.
-
Der
Sicherheitsmechanismus verwendet vorzugsweise die Gitter-Sicherheitsinfrastruktur
(grid security infrastructure – GSI)
Globus 2.2 zur Steuerung des Zugriffs. GSI wird in "Grid Security Infrastructure" bei www-unix.globusorg/security
und in "Overview
of the Grid Security Infrastructure" bei www-unix.globusorg/security/overview.html
beschrieben. Der Verwaltungsdienst verfügt über ein von der Zertifizierungsstelle
(Certificate Authority Center – CA)
erteiltes Zertifikat des vorhandenen Gitters, wie es in "GSI Key Concepts" bei www-unix.globus.org/toolkit/docs/3.2/gsi/key/index.html
erläutert wird.
-
Für jeden
Herunterlade-Server und jeden Client ist dieses Zertifikat vertrauenswürdig. X.509-Proxies
werden zum Übertragen
der Berechtigung des Verwaltungsdienstes verwendet, um eine Client-Berechtigungsüberprüfung und
einen Herunterladevorgang direkt von Herunterlade-Servern zu ermöglichen.
X.509 wird in ITU-T Recommendation X.509 Version 3 (1997) beschrieben. "Information Technology – Open Systems
Interconnection – The Directory
Authentication Framework" ISO/EEC 9594–8: 1997.
-
In
einer bevorzugten Ausführung
wird die Festlegung des optimierten Plans auf der Grundlage des
geografischen Abstands zwischen dem Client und den Kandidaten-Herunterlade-Servern
berechnet. Die IP-Adresse des Client und die IP-Adresse der Server
werden zusammen mit einer Tabelle, die IP-Adressen auf geografische
Positionen abbildet, als Grundlage für diese Festlegung verwendet.
Der optimierte Plan wird in einen X.509-Proxy-Zertifikat im XML-Format eingebunden.
-
Die
Funktionseigenschaften der vorliegenden Erfindung können in
Form von Software, Firmware, Hardware oder einer Kombination aus
diesen realisiert werden.
-
Zum
Beispiel können
ein oder mehrere Aspekte der vorliegenden Erfindung in einen hergestellten
Gegenstand (z. B. eine oder mehrere Computerprogrammprodukte) aufgenommen
werden, der beispielsweise in einem Computer verwendbare Datenträger aufweist.
Diese Datenträger
beinhalten beispielsweise ein computerlesbares Programmcodemittel
zum Bereitstellen und Ermöglichen
der Funktionseigenschaften der vorliegenden Erfindung. Der hergestellte
Gegenstand kann einen Teil eines Computersystems bilden oder gesondert
verkauft werden.
-
Außerdem kann
mindestens eine von einer Maschine lesbare Programmspeichereinheit
bereitgestellt werden, die mindestens ein Programm aus von der Maschine
ausführbaren
Befehlen eindeutig ausführt,
um die Funktionseigenschaften der vorliegenden Erfindung auszuführen.
-
Die
hierin gezeigten Flussdiagramme sind lediglich Beispiele. Es können viele Änderungen
an diesen Diagrammen oder den darin beschriebenen Schritten (oder
Vorgängen)
vorgenommen werden, ohne vom Anwendungsbereich der Erfindung abzuweichen.
Beispielsweise können
die Schritte in einer anderen Reihenfolge ausgeführt oder Schritte können hinzugefügt, gelöscht oder
geändert
werden. Alle diese Änderungen
werden als Teil der beanspruchten Erfindung betrachtet.
-
Die
Erfindung kann gemäß folgenden
Klauseln zusammengefasst werden:
- 1. Verfahren
zum optimierten Herunterladen von Daten in einer Datenverarbeitungs-Gitterinfrastruktur
(grid computing infrastructure), wobei das Verfahren die folgenden
Schritte umfasst: (a) Erhalten eines Herunterladeplans von einem
Verwaltungsdienst, wobei der Herunterladeplan eine optimierte Liste
einer Vielzahl von Herunterlade-Servern mit gewünschten Herunterladedaten umfasst,
wobei die Vielzahl von Herunterlade-Servern in einer Gitterinfrastruktur
eingesetzt werden; (b) Kontaktieren von zwei oder mehr der im Herunterladeplan
angegebenen Herunterlade-Servern; (c) Zuweisen von Blöcken der
Herunterladedaten zu entsprechenden Herunterlade-Servern von den
zwei oder mehr im Herunterladeplan angegebenen Herunterlade-Servern zum
gleichzeitigen Herunterladen entsprechender Blöcke von Herunterladedaten;
(d) Starten eines parallelen Herunterladens der Blöcke der
Herunterladedaten aus den Herunterlade-Servern der zwei oder mehr
kontaktierten Herunterlade-Servern, wobei die Blöcke gleichzeitig aus den Herunterlade-Servern
heruntergeladen werden; (e) Überwachen
der Herunterladeleistung der zwei oder mehr die Blöcke herunterladenden
Herunterlade-Server; (f) während
des parallelen Herunterladens der Blöcke Anpassen der Anzahl von von
einem Herunterlade-Server heruntergeladenen Blöcken auf der Grundlage der überwachten Herunterladeleistung
der zwei oder mehr Herunterlade-Server; und (g) Melden der überwachten Herunterladeleistung
der zwei oder mehr Herunterlade-Server an den Verwaltungsdienst.
- 2. Verfahren nach Klausel 1, wobei die Schritte (a) bis (g)
von einem Client-Agenten, einem Verwaltungsdienstagenten oder einem
Server-Agenten ausgeführt
werden.
- 3. Verfahren nach Klausel 1, das den weiteren Schritt des Übertragens
einer Anforderung nach dem Herunterladeplan an den Verwaltungsdienst umfasst,
wobei die Anforderung Anforderungen an die Dienstqualität (QoS requirements)
angibt.
- 4. Verfahren nach Klausel 3, wobei die Anforderungen an die
Dienstqualität
die Angabe der Herunterladegeschwindigkeit oder des gewünschten Zeitpunkts
der Fertigstellung des Herunterladevorgangs beinhalten.
- 5. Verfahren nach Klausel 1, wobei der Schritt des Startens
eines Herunterladevorgangs die folgenden weiteren Schritte umfasst:
(a) Starten eines Herunterladevorgangs eines ersten Blocks der Herunterladedaten
aus einem ersten Server der zwei oder mehr kontaktierten Herunterlade-Server;
(b) Speichern einer Meldung der Herunterladeleistung von momentan
heruntergeladenen Herunterladeblöcken;
(c) anschließend
Starten eines Herunterladevorgangs eines neuen Blocks von Herunterladedaten
aus einem neuen Server der zwei oder mehr kontaktierten Herunterlade-Server;
(d) anschließend Überwachen
der Herunterladeleistung der momentan heruntergeladenen Herunterladeblöcke; (e)
anschließend
Wiederholen der Schritte (b) bis (e), falls die überwachte Herunterladeleistung
größer als
die gespeicherte Meldung der Herunterladeleistung und die überwachte
Herunterladeleistung geringer als eine festgelegte maximale Leistung
ist und alle der zwei oder mehr kontaktierten Herunterlade-Server
nicht gestartet wurden.
- 6. Verfahren nach Klausel 1, das die weiteren Schritte umfasst:
Festlegen eines herunterzuladenden ersten Teils eines momentan heruntergeladenen
ersten Blocks, wobei der erste Block aus einem ersten Server der
zwei oder mehr gestarteten Herunterlade-Server heruntergeladen wird; und
Starten eines parallelen Herunterladens des herunterzuladenden ersten
Teils eines momentan heruntergeladenen ersten Blocks aus einem zweiten
Server der zwei oder mehr Herunterlade-Server, wobei gleichzeitig
Blöcke
aus den Herunterlade-Servern heruntergeladen werden.
- 7. Verfahren nach Klausel 6, wobei die Größe des herunterzuladenden ersten
Teils eines momentan heruntergeladenen ersten Blocks eine beliebige Größe ist,
die proportional zu der erzielten Herunterladeleistung der zwei
oder mehr gestarteten Herunterlade-Server, proportional zum ersten
Teil oder im Wesentlichen halb so groß wie der erste Teil ist.
- 8. Verfahren nach Klausel 1, das die weiteren Schritte umfasst:
Prüfen
der Unversehrtheit der Herunterladedaten am Ende des Herunterladevorgangs;
und Übertragen
einer Meldung der Prüfung
der Unversehrtheit an den Verwaltungsdienst.
- 9. Verfahren nach Klausel 1, das die weiteren Schritte umfasst:
Aufzeichnen von Daten über
die Größe von aus
jedem Server heruntergeladenen Blöcken, die Herunterladeleistung
jedes Server oder die Identität
der Server, die nicht auf die Anforderung reagierten; und Übertragen
der aufgezeichneten Daten an den Verwaltungsdienst.
- 10. Verfahren nach Klausel 1, wobei die Herunterladedaten eine
zugeordnete Zugriffsteuerungsliste aufweisen und nur auf der Zugriffssteuerungsliste
angegebene Benutzer die Herunterladedaten herunterladen können.
- 11. Verfahren nach Klausel 1, wobei Herunterladedaten in verschlüsselter
Form gespeichert und verteilt werden, so dass eine endgültige Entschlüsselung
der Datei vom Client-Agenten unter Verwendung eines vom Verwaltungsdienst
sicher erhaltenen Schlüssels
ausgeführt
wird.
- 12. Verfahren nach Klausel 1, wobei ein Block aus einer Vielzahl
Dateien, einer Datei oder einem Teil einer Datei besteht.
- 13. Verfahren nach Klausel 1, das die weiteren Schritte umfasst: Übernehmen
der Herunterladedaten von einem Inhalteanbieter; Verteilen der Herunterladedaten
in eine Infrastruktur, wobei die Infrastruktur die Vielzahl von
Herunterlade-Servern umfasst; Empfangen einer Anforderung von einem
Client nach dem Herunterladeplan zum Herunterladen der Herunterladedaten
in den Client; Erstellen eines Herunterladeplans, wobei der Herunterladeplan
die Liste der zwei oder mehr die Herunterladedaten enthaltenden
Herunterlade-Server und außerdem
Leistungsdaten der zwei oder mehr Herunterlade-Server umfasst; Übertragen des erstellten Herunterladeplans
an den Client; anschließend
Empfangen neuer Daten zur Herunterladeleistung der zwei oder mehr
Herunterlade-Server; und Aktualisieren der Leistungsdaten der zwei
oder mehr Herunterlade-Server auf der Grundlage der neuen Daten
zur Herunterladeleistung.
- 14. Verfahren zum Hochladen, Verteilen, Verwalten und Steuern
von Herunterladedaten in einer Herunterlade-Gitterinfrastruktur,
wobei das Verfahren die folgenden Schritte umfasst: Übernehmen
der Herunterladedaten von einem Inhalteanbieter; Verteilen der Herunterladedaten
in eine Infrastruktur, wobei die Infrastruktur eine Vielzahl von
Herunterlade-Servern umfasst; Empfangen einer Anforderung von einem
Client nach einem Herunterladeplan zum Herunterladen der Herunterladedaten
in den Client; Erstellen eines Herunterladeplans, wobei der Herunterladeplan
eine Liste von zwei oder mehr die Herunterladedaten enthaltenden
Herunterlade-Servern und außerdem
Leistungsdaten der zwei oder mehr Herunterlade-Server umfasst; Übertragen
des erstellten Herunterladeplans an den Client; anschließend Empfangen
neuer Daten zur Herunterladeleistung der zwei oder mehr Herunterlade-Server
vom Client, wobei die neuen Daten zur Herunterladeleistung die vom
Client bei der Ausführung
eines Herunterladevorgangs gemäß dem Herunterladeplan
erzielte Server-Herunterladeleistung der zwei oder mehr Herunterlade-Server
anzeigen; und anschließend
Aktualisieren der Leistungsdaten der zwei oder mehr Herunterlade-Server
auf der Grundlage der neuen Daten zur Herunterladeleistung.
- 15. Verfahren nach Klausel 14, wobei der Schritt des Übernehmens
von Herunterladedaten von einem Inhalteanbieter die weiteren Schritte
umfasst: Kontaktieren eines Verwaltungsdienstes mit geeigneten Referenzen
durch einen Inhalteanbieter; Kennzeichnen der Herunterladedaten
mit bestimmten Attributen durch den Inhalteanbieter; Übertragen
der bestimmten Attribute an das Verwaltungssystem durch den Inhalteanbieter;
und Hochladen der Herunterladedaten in einen einzelnen Server im
Herunterlade-Gitter durch den Inhalteanbieter.
- 16. Verfahren nach Klausel 15, wobei zu den bestimmten Attributen
ein beliebiges der folgenden gehört:
eine Priorität,
eine gewünschte
geografische Nähe
für die
Herunterladedaten oder eine Einschränkung für Clients hinsichtlich des
Erteilens der Berechtigung zum Herunterladen der Herunterladedaten.
- 17. Verfahren nach Klausel 15, wobei der Verwaltungsdienst dynamisch
irgendeinen der folgenden Vorgänge
ausführt:
Auswählen
des einzelnen Server zum Empfangen der hochgeladenen Herunterladedaten,
Aktivieren eines Server der zwei oder mehr Herunterlade-Server,
Deaktivieren eines Server der zwei oder mehr Herunterlade-Server
oder Aktualisieren eines Server der zwei oder mehr Herunterlade-Server.
- 18. Verfahren nach Klausel 15, das die weiteren Schritte umfasst:
Erzeugen eines Entschlüsselungsschlüssels für die Herunterladedaten
durch den Inhalteanbieter; Verschlüsseln der Herunterladedaten
durch den Inhalteanbieter; sicheres Übertragen des Entschlüsselungsschlüssels an den
Verwaltungsdienst durch den Inhalteanbieter.
- 19. Verfahren nach Klausel 14, wobei der Schritt des Erstellens
des Herunterladeplans auf der Position des Client, den Status- und
Nutzungsgraddaten der zwei oder mehr Herunterlade-Server, den Anforderungen
an die Dienstqualität,
der Netznähe
der zwei oder mehr Herunterlade-Server zum Client, der geografischen
Nähe der
zwei oder mehr Herunterlade-Server zum Client, der Ausgangsbandbreite
des Netzes eines Server der zwei oder mehr Herunterlade-Server,
der aktuellen Anzahl von Herunterladevorgängen von Blöcken, die vom Server der zwei
oder mehr Herunterlade-Server unterstützt werden, oder den maximal
zulässigen
gleichzeitigen Herunterladevorgängen
von Blöcken
beruht.
- 20. Verfahren nach Klausel 19, wobei die Position des Client
auf der Grundlage einer Netzadresse des Client oder durch vom Client
bereitgestellte Daten automatisch ermittelt wird.
- 21. Computerprogramm, das Befehle zum Ausführen aller Schritte des Verfahrens
nach irgendeiner vorhergehenden Verfahrensklausel umfasst, wenn
das Computerprogramm in einem Computersystem ausgeführt wird.
- 22. Vorrichtung, die ein Mittel umfasst, das zum Ausführen aller
Schritte des Verfahrens nach irgendeiner vorhergehenden Verfahrensklausel
geeignet ist.