DE602005003948T2 - Optimiertes gleichzeitiges datenherunterladen in einer gitter-datenverarbeitungsumgebung - Google Patents

Optimiertes gleichzeitiges datenherunterladen in einer gitter-datenverarbeitungsumgebung Download PDF

Info

Publication number
DE602005003948T2
DE602005003948T2 DE602005003948T DE602005003948T DE602005003948T2 DE 602005003948 T2 DE602005003948 T2 DE 602005003948T2 DE 602005003948 T DE602005003948 T DE 602005003948T DE 602005003948 T DE602005003948 T DE 602005003948T DE 602005003948 T2 DE602005003948 T2 DE 602005003948T2
Authority
DE
Germany
Prior art keywords
download
data
server
servers
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602005003948T
Other languages
English (en)
Other versions
DE602005003948D1 (de
Inventor
Irwin Hursley Park Winchester BOUTBOUL
David Chicago MARTIN
Dikran Danburt MELIKSETIAN
Nianjun Hursley Park Winchester ZHOU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34970262&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE602005003948(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE602005003948D1 publication Critical patent/DE602005003948D1/de
Application granted granted Critical
Publication of DE602005003948T2 publication Critical patent/DE602005003948T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Description

  • 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.

Claims (15)

  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 (chunks) 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) 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 Anspruch 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.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Starten eines parallelen Herunterlade-Schritts 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 gleichzeitig 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.
  4. Verfahren nach Anspruch 1, das außerdem die folgenden 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.
  5. Verfahren nach Anspruch 4, 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.
  6. Verfahren nach irgendeinem vorhergehenden Anspruch, 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.
  7. Verfahren nach irgendeinem vorhergehenden Anspruch, 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 antworteten; und Übertragen der aufgezeichneten Daten an den Verwaltungsdienst.
  8. Verfahren nach irgendeinem vorhergehenden Anspruch, das ferner die folgenden Schritte umfasst: Übernehmen der heruntergeladenen Daten von einem Inhalteanbieter; Verteilen der heruntergeladenen Daten 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.
  9. 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.
  10. Verfahren nach Anspruch 9, wobei der Schritt des Übernehmens von Herunterladedaten von einem Inhalteanbieter die folgenden 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.
  11. Verfahren nach Anspruch 10, 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.
  12. Verfahren nach Anspruch 10 oder 11, 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-Servern, Deaktivieren eines Server der zwei oder mehr Herunterlade- Servern oder Aktualisieren eines Server der zwei oder mehr Herunterlade-Server.
  13. Verfahren nach irgendeinem der Ansprüche 9 bis 12, 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 ausgehenden Bandbreite 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 der maximal zulässigen gleichzeitigen Herunterladevorgängen von Blöcken beruht.
  14. Computerprogramm, das Befehle zum Ausführen aller Schritte des Verfahrens nach irgendeinem vorhergehenden Verfahrensanspruch umfasst, wenn das Computerprogramm in einem Computersystem ausgeführt wird.
  15. Vorrichtung, die ein Mittel umfasst, das zum Ausführen aller Schritte des Verfahrens nach irgendeinem vorhergehenden Verfahrensanspruch geeignet ist.
DE602005003948T 2004-06-08 2005-06-07 Optimiertes gleichzeitiges datenherunterladen in einer gitter-datenverarbeitungsumgebung Active DE602005003948T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US862977 2004-06-08
US10/862,977 US7631098B2 (en) 2004-06-08 2004-06-08 Method, system and program product for optimized concurrent data download within a grid computing environment
PCT/EP2005/052600 WO2005122532A1 (en) 2004-06-08 2005-06-07 Optimized concurrent data download within a grid computing environment

Publications (2)

Publication Number Publication Date
DE602005003948D1 DE602005003948D1 (de) 2008-01-31
DE602005003948T2 true DE602005003948T2 (de) 2008-12-04

Family

ID=34970262

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005003948T Active DE602005003948T2 (de) 2004-06-08 2005-06-07 Optimiertes gleichzeitiges datenherunterladen in einer gitter-datenverarbeitungsumgebung

Country Status (10)

Country Link
US (1) US7631098B2 (de)
EP (1) EP1766936B1 (de)
JP (1) JP4886690B2 (de)
KR (1) KR101019982B1 (de)
CN (1) CN1939036B (de)
AT (1) ATE381844T1 (de)
BR (1) BRPI0511882B1 (de)
CA (1) CA2569925C (de)
DE (1) DE602005003948T2 (de)
WO (1) WO2005122532A1 (de)

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253850A1 (en) * 2003-04-30 2006-11-09 Giorgio Bruno Method, system and computer program program product for evaluating download performance of web pages
US7277985B2 (en) * 2004-07-13 2007-10-02 International Business Machines Corporation Method, system and program product for storing downloadable content on a plurality of enterprise storage system (ESS) cells
JP2006126894A (ja) * 2004-10-26 2006-05-18 Sony Corp コンテンツ配信方法、プログラムおよび情報処理装置
US7603404B2 (en) * 2004-12-20 2009-10-13 Sap Ag Grid parallel execution
US20080022343A1 (en) 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
US8219635B2 (en) * 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
US20090025046A1 (en) * 2005-03-09 2009-01-22 Wond, Llc Hybrid architecture for media services
US7191215B2 (en) * 2005-03-09 2007-03-13 Marquee, Inc. Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines
US8904463B2 (en) 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US20090019468A1 (en) * 2005-03-09 2009-01-15 Vvond, Llc Access control of media services over an open network
US8887224B2 (en) 2005-03-09 2014-11-11 Vudu, Inc. Updating content libraries by transmitting release data
US8364792B2 (en) * 2005-03-09 2013-01-29 Vudu, Inc. Method and system for distributing restricted media to consumers
US7937379B2 (en) * 2005-03-09 2011-05-03 Vudu, Inc. Fragmentation of a file for instant access
US7698451B2 (en) * 2005-03-09 2010-04-13 Vudu, Inc. Method and apparatus for instant playback of a movie title
US20090019489A1 (en) * 2005-03-09 2009-01-15 Vvond, Inc. Method and apparatus for displaying movie titles based on distributed objects
US9176955B2 (en) * 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US20060265499A1 (en) * 2005-05-23 2006-11-23 Menasce Daniel A Service Allocation Mechanism
US8099511B1 (en) * 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
CN100411341C (zh) * 2005-08-10 2008-08-13 华为技术有限公司 一种并行下载方法和终端
CN100395978C (zh) * 2005-08-15 2008-06-18 华为技术有限公司 一种下载方法及一种终端
US8739231B2 (en) * 2005-08-23 2014-05-27 Vudu, Inc. System and method for distributed video-on-demand
US20070067488A1 (en) * 2005-09-16 2007-03-22 Ebay Inc. System and method for transferring data
US8285809B2 (en) * 2005-12-13 2012-10-09 Audio Pod Inc. Segmentation and transmission of audio streams
US7900060B2 (en) * 2006-02-17 2011-03-01 Vudu, Inc. Method and system for securing a disk key
US8001471B2 (en) 2006-02-28 2011-08-16 Maven Networks, Inc. Systems and methods for providing a similar offline viewing experience of online web-site content
WO2007101182A2 (en) * 2006-02-28 2007-09-07 Maven Networks, Inc. Systems and methods for delivering and managing media content downloaded to a network connected device
US8015491B2 (en) 2006-02-28 2011-09-06 Maven Networks, Inc. Systems and methods for a single development tool of unified online and offline content providing a similar viewing experience
US7970835B2 (en) * 2006-04-04 2011-06-28 Xerox Corporation Peer-to-peer file sharing system and method using downloadable data segments
US8239686B1 (en) 2006-04-27 2012-08-07 Vudu, Inc. Method and system for protecting against the execution of unauthorized software
GB2440774B (en) * 2006-08-11 2011-07-27 Cachelogic Ltd Content Delivery System For Digital Object
GB2440762B (en) * 2006-08-11 2011-11-02 Cachelogic Ltd Content distribution network
US7539762B2 (en) * 2006-08-15 2009-05-26 International Business Machines Corporation Method, system and program product for determining an initial number of connections for a multi-source file download
US8296812B1 (en) 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
US7826356B2 (en) * 2006-11-08 2010-11-02 International Business Machines Corporation Method and system for controlling flow in an asymmetric communication channel
US8055902B2 (en) * 2007-01-12 2011-11-08 International Business Machines Corporation Method, system, and computer program product for data upload in a computing system
US7734950B2 (en) * 2007-01-24 2010-06-08 Hewlett-Packard Development Company, L.P. Bandwidth sizing in replicated storage systems
CA2577030A1 (en) * 2007-01-31 2008-07-31 Unlimi-Tech Software Inc. Improved data transfer method, system and protocol
US8316123B2 (en) * 2007-02-19 2012-11-20 Toshiba Global Commerce Solutions Holdings Corporation Managing boot images in a retail store environment
US9350701B2 (en) * 2007-03-29 2016-05-24 Bomgar Corporation Method and apparatus for extending remote network visibility of the push functionality
US20080270524A1 (en) * 2007-04-30 2008-10-30 Nikhil Gupta Distributing files over a computer network
US8429286B2 (en) * 2007-06-28 2013-04-23 Apple Inc. Methods and systems for rapid data acquisition over the internet
US8037135B2 (en) * 2007-06-29 2011-10-11 Microsoft Corporation Automatic distributed downloading
WO2009032711A1 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Policy-based file management for a storage delivery network
KR100929031B1 (ko) 2007-09-17 2009-11-26 (주)씨디네트웍스 파일 병렬 다운로드에서의 블록 선택 방법, 이를 이용한파일 병렬 다운로드 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체
US8139074B2 (en) * 2007-11-27 2012-03-20 International Business Machines Corporation Memory optimized cache generation for image tiling in GIS/CAD browser applications
US7908362B2 (en) * 2007-12-03 2011-03-15 Velocix Ltd. Method and apparatus for the delivery of digital data
US8027671B2 (en) 2008-01-14 2011-09-27 Penthera Partners, Inc. Delivering files to a mobile device
US7912956B1 (en) * 2008-01-22 2011-03-22 Raytheon Company Service level agreement based control of a distributed computing system
CN101729510B (zh) * 2008-10-29 2013-03-06 Tcl集团股份有限公司 一种虚拟网络存储服务系统及其建立方法
KR101006539B1 (ko) * 2009-02-06 2011-01-07 (주)씨디네트웍스 파일 병렬 다운로드에서의 최대 빈도 블록 우선 선택 방법,이를 이용한 파일 병렬 다운로드 방법 및 이를 구현하기 위한 프로그램을 기록한 기록매체
GB2469034A (en) * 2009-03-30 2010-10-06 Sony Corp Distribution system and method of distributing content files
US8296402B2 (en) * 2009-04-07 2012-10-23 National Instruments Corporation Determining and downloading portions of a software application in a computer system
US11064023B2 (en) * 2009-05-27 2021-07-13 Verizon Media Inc. Method for actively sharing available bandwidth to consumer nodes in a peer-to-peer network for delivery of video streams
US9807468B2 (en) 2009-06-16 2017-10-31 Microsoft Technology Licensing, Llc Byte range caching
US8341620B2 (en) 2009-06-25 2012-12-25 Microsoft Corporation Streaming optimized virtual application images
WO2011008199A1 (en) * 2009-07-14 2011-01-20 Penthera Partners, Inc. Delivering files to a mobile device
US9195504B2 (en) 2009-09-21 2015-11-24 Siemens Product Lifecycle Management Software Inc. Transfer of data structures in sub-linear time for systems with transfer state awareness
EP2362651A1 (de) * 2010-02-19 2011-08-31 Thomson Licensing Mehrwegige Lieferung für anpassungsfähige Strömung
US8903906B2 (en) * 2010-03-16 2014-12-02 Brother Kogyo Kabushiki Kaisha Information communications system, node device, method of communicating contents, computer readable recording medium storing a program
US8219646B2 (en) 2010-03-31 2012-07-10 Oracle International Corporation Dynamic intelligent mirror host selection
US8639748B2 (en) 2010-09-01 2014-01-28 Edgecast Networks, Inc. Optimized content distribution based on metrics derived from the end user
US8745128B2 (en) 2010-09-01 2014-06-03 Edgecast Networks, Inc. Optimized content distribution based on metrics derived from the end user
CN102413514B (zh) * 2010-09-20 2014-12-03 株式会社日立制作所 数据配送装置以及数据配送方法
US20120072898A1 (en) * 2010-09-21 2012-03-22 Startforce, Inc. On-premise deployment of virtual desktop service servers
CN101969462A (zh) * 2010-09-30 2011-02-09 中国科学院国家天文台 数据发布系统和数据发布方法
US8886593B2 (en) 2011-02-01 2014-11-11 Siemens Product Lifecycle Management Software Inc. Controlled dispersion rates for transfer swarms
CN102164317A (zh) * 2011-02-14 2011-08-24 上海高智科技发展有限公司 一种面向ip机顶盒的多服务器分段下载系统
JP5690224B2 (ja) * 2011-06-10 2015-03-25 日本電信電話株式会社 コンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイ
KR101338689B1 (ko) * 2011-09-21 2013-12-09 명지대학교 산학협력단 병렬 다운로드를 위한 서버장치의 선택 방법
CN102307244B (zh) * 2011-10-13 2013-10-30 网宿科技股份有限公司 基于b/s架构的多连接的下载方法和系统
US8959504B2 (en) * 2011-10-18 2015-02-17 Microsoft Corporation Update scanning
US8745177B1 (en) 2011-11-01 2014-06-03 Edgecast Networks, Inc. End-to-end monitoring and optimization of a content delivery network using anycast routing
US8738766B1 (en) 2011-11-01 2014-05-27 Edgecast Networks, Inc. End-to-end monitoring and optimization of a content delivery network using anycast routing
CN103188161B (zh) * 2011-12-30 2017-11-21 中国移动通信集团公司 分布式数据加载调度方法与系统
TWI507891B (zh) * 2012-03-23 2015-11-11 Egis Technology Inc 具雲端儲存空間管理功能之電子裝置、雲端儲存系統、其方法及其電腦程式產品
WO2014029089A1 (en) 2012-08-22 2014-02-27 Nokia Corporation Method and apparatus for exchanging status updates while collaborating
US9432452B2 (en) 2012-09-10 2016-08-30 Joosy, Inc. Systems and methods for dynamic networked peer-to-peer content distribution
EP2910001A4 (de) * 2012-10-18 2016-04-20 Giraffic Technologies Ltd Überlastungssteuerungsverfahren zur dynamischen maximierung eines kommunikationsverbindungsdurchsatzes
US9634955B2 (en) * 2013-10-17 2017-04-25 Microsoft Technology Licensing, Llc Optimizing data transfers in cloud computing platforms
CN103747364B (zh) * 2013-12-11 2017-03-01 湖南网数科技有限公司 一种网络内容下载的方法和装置
KR101525541B1 (ko) * 2013-12-18 2015-06-03 (주) 엔에프랩 콘텐츠 딜리버리 네트워크 서비스 시스템 및 방법
CN103686430A (zh) * 2013-12-24 2014-03-26 中国联合网络通信集团有限公司 视频文件获取方法及装置
CN105812840A (zh) * 2014-12-29 2016-07-27 乐视网信息技术(北京)股份有限公司 一种直播视频传输方法、装置,以及视频直播系统
US10397233B2 (en) 2015-04-20 2019-08-27 Bomgar Corporation Method and apparatus for credential handling
US10229262B2 (en) 2015-04-20 2019-03-12 Bomgar Corporation Systems, methods, and apparatuses for credential handling
US10187485B1 (en) * 2015-09-28 2019-01-22 Symantec Corporation Systems and methods for sending push notifications that include preferred data center routing information
US9813299B2 (en) * 2016-02-24 2017-11-07 Ciena Corporation Systems and methods for bandwidth management in software defined networking controlled multi-layer networks
CN107229485A (zh) * 2016-03-23 2017-10-03 福建福昕软件开发股份有限公司 一种解决采集数据类软件关闭速度慢的方法
US10348828B2 (en) * 2016-06-20 2019-07-09 Cisco Technology, Inc. Method and apparatus for optimizing data transfers utilizing machine learning
CN106790343B (zh) * 2016-11-03 2020-05-19 深圳市元征软件开发有限公司 一种资源下载方法、及服务器
CN106790356A (zh) * 2016-11-15 2017-05-31 广东欧珀移动通信有限公司 一种数据备份、下载方法及相关设备
CN106790489B (zh) * 2016-12-14 2020-12-22 成都华为技术有限公司 并行数据加载方法和系统
CN106992999B (zh) * 2017-05-26 2020-11-20 河南职业技术学院 一种跨服务器数据通讯处理方法
JP6471252B1 (ja) * 2018-03-20 2019-02-13 株式会社Jストリーム 再生装置及びプログラム
CN110830522A (zh) * 2018-08-07 2020-02-21 石悌君 一种共享存储系统
CN113454934B (zh) 2019-03-06 2024-04-05 杜比实验室特许公司 多服务器通信系统中的下载控制

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049892C1 (en) 1997-02-24 2002-06-04 Ethos Software Corp Process and apparatus for downloading data from a server computer to a client computer
US6407752B1 (en) 1997-04-29 2002-06-18 International Business Machines Corporation Method and system for a user interface for remote FTP hosts
US6003045A (en) 1997-09-17 1999-12-14 International Business Machines Corporation Accessing stored files from multiple storage devices
JP3914317B2 (ja) * 1997-12-26 2007-05-16 インターナショナル・ビジネス・マシーンズ・コーポレーション データ通信装置およびその方法
US6061720A (en) * 1998-10-27 2000-05-09 Panasonic Technologies, Inc. Seamless scalable distributed media server
US6477522B1 (en) * 1999-06-10 2002-11-05 Gateway, Inc. Dynamic performance based server selection
US6678733B1 (en) * 1999-10-26 2004-01-13 At Home Corporation Method and system for authorizing and authenticating users
US6339785B1 (en) * 1999-11-24 2002-01-15 Idan Feigenbaum Multi-server file download
US6742023B1 (en) * 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
US6377974B1 (en) * 2000-01-19 2002-04-23 Speedbit Ltd. Methods and apparatus for downloading a file from a server
US6920110B2 (en) * 2001-02-14 2005-07-19 Microsoft Corporation System and method for transferring data over a network
US7324228B2 (en) * 2000-02-25 2008-01-29 Hewlett-Packard Development Company, L.P. System and method for downloading and for printing data from an external content source
CA2303739C (en) * 2000-04-04 2009-06-30 Webhancer Corporation Method and system for managing performance of data transfers for a data access system
US6961858B2 (en) * 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
US6801947B1 (en) * 2000-08-01 2004-10-05 Nortel Networks Ltd Method and apparatus for broadcasting media objects with guaranteed quality of service
US7047309B2 (en) * 2000-08-23 2006-05-16 International Business Machines Corporation Load balancing and dynamic control of multiple data streams in a network
US6772217B1 (en) * 2000-08-23 2004-08-03 International Business Machines Corporation Internet backbone bandwidth enhancement by initiating an additional data stream when individual bandwidth are approximately equal to the backbone limit
WO2002035359A2 (en) * 2000-10-26 2002-05-02 Prismedia Networks, Inc. Method and system for managing distributed content and related metadata
US7240358B2 (en) * 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
JP2002268979A (ja) 2001-03-07 2002-09-20 Nippon Telegr & Teleph Corp <Ntt> ダウンロード方法及び装置、ダウンロード用プログラム並びにそのプログラムを記録した記録媒体
US20030084123A1 (en) 2001-08-24 2003-05-01 Kamel Ibrahim M. Scheme for implementing FTP protocol in a residential networking architecture
US7185286B2 (en) 2001-08-28 2007-02-27 Nvidia International, Inc. Interface for mobilizing content and transactions on multiple classes of devices
JP2003067280A (ja) 2001-08-28 2003-03-07 Fujitsu Ltd マルチメディアデータのダウンロード予約制御方式及びプログラム
US20030074465A1 (en) 2001-10-15 2003-04-17 Zhicheng Tang ADSL downloading with priority transmit queue
US7716659B2 (en) 2001-10-23 2010-05-11 Pitney Bowes Inc. Remote monitoring and software distribution system for servicing inserter systems
US8261059B2 (en) 2001-10-25 2012-09-04 Verizon Business Global Llc Secure file transfer and secure file transfer protocol
CN100393141C (zh) * 2002-01-25 2008-06-04 中兴通讯股份有限公司 移动通讯系统基站软件并行下载方法
CN2540714Y (zh) * 2002-05-21 2003-03-19 顾士平 嵌入式无线网络系统实现装置
JP2003337803A (ja) 2002-05-21 2003-11-28 Ntt Me Corp コンテンツ不正入手防止方法、コンテンツ不正入手防止システムおよびコンテンツ不正入手防止プログラム
US7555559B2 (en) * 2003-02-28 2009-06-30 Onion Networks, KK Parallel data transfer over multiple channels with data order prioritization
US20050015511A1 (en) * 2003-07-02 2005-01-20 Nec Laboratories America, Inc. Accelerated large data distribution in overlay networks
US20060064386A1 (en) * 2004-09-20 2006-03-23 Aaron Marking Media on demand via peering
US7165050B2 (en) * 2004-09-20 2007-01-16 Aaron Marking Media on demand via peering
TWI301021B (en) * 2005-12-27 2008-09-11 Ind Tech Res Inst File distribution and access system and method for file management

Also Published As

Publication number Publication date
US7631098B2 (en) 2009-12-08
JP4886690B2 (ja) 2012-02-29
KR101019982B1 (ko) 2011-03-09
BRPI0511882A (pt) 2008-10-14
CA2569925C (en) 2010-08-03
CN1939036A (zh) 2007-03-28
US20060031537A1 (en) 2006-02-09
EP1766936B1 (de) 2007-12-19
KR20070029727A (ko) 2007-03-14
CA2569925A1 (en) 2005-12-22
WO2005122532A1 (en) 2005-12-22
JP2008502061A (ja) 2008-01-24
DE602005003948D1 (de) 2008-01-31
BRPI0511882B1 (pt) 2018-12-18
ATE381844T1 (de) 2008-01-15
CN1939036B (zh) 2011-08-31
EP1766936A1 (de) 2007-03-28

Similar Documents

Publication Publication Date Title
DE602005003948T2 (de) Optimiertes gleichzeitiges datenherunterladen in einer gitter-datenverarbeitungsumgebung
DE60216918T2 (de) Verfahren und computersystem zur auswahl eines randservercomputers
DE112016003726B4 (de) Dynamisch definierte virtuelle private Netzwerktunnel in hybriden Cloud-Umgebungen
DE69726379T2 (de) Ferninstallation von Software auf einem Rechnergerät
DE602005000025T2 (de) Verfahren und Anordnung für den Betrieb eines offenen Netzwerks mit einem Proxy
DE112018003482B4 (de) Serveranfrageverwaltung
DE60310347T2 (de) Verfahren und System zur Regelassoziation in Kommunikationsnetzen
DE10296804B4 (de) Verfahren und System zum Autorisieren des Zugriffs auf Betriebsmittel auf einem Server
DE69732323T2 (de) Unterstützung für die Verteilung von vertrauter Software
DE60202763T2 (de) Verfahren, Rechnerprogramm, Kundenendgerät und Netzwerk für die effiziente Benutzung von Netzwerkmittel durch die &#34;just-in-time&#34; Anpassung des Dienstqualitätes basiert auf die Benutzung des Dienstes und das Verhalten des Benutzers
DE102016222048A1 (de) Dynamisch definierte virtuelle private netzwerktunnel in hybriden cloud-umgebungen
DE102005030663A1 (de) System und Verfahren zum Betreiben von Lastausgleichselementen für Mehrfachinstanzanwendungen
DE10297645B4 (de) Verfahren und Einrichtung zum Lastteilen und zur Datenverteilung in Servern
DE10148357A1 (de) System und Verfahren zur gemeinsamen Nutzung digitaler Literaturwerke mit einem Schutz gegen illegale Kopien durch Kommunikationsnetze
CN1820249A (zh) 分布式数据处理环境中的权限自动调整的方法和系统
EP1874071A1 (de) Verfahren zum Bereitstellen von Daten über einen Pilotkanal eines Funk-Kommunikationssystems
DE602004009176T2 (de) Dienstverwaltung durch verwendung mehrerer dienstort-manager
DE602004012295T2 (de) Fernverwaltung von ipsec-sicherheitsassoziationen
DE60210356T2 (de) Verwalter von Dienststufenübereinkommen in einem Datennetz
DE10024347B4 (de) Sicherheitsservice-Schicht
DE10238546A1 (de) Verfahren zur Bereitstellung von Ressourcen in Kommunikations-Netzwerken
DE602004011211T2 (de) Verfahren zur anpassung der dienstortplazierung auf der basis von aus dienstknoten empfangenen neueren daten und aktionen des dienstortsmanagers
CN109413117A (zh) 分布式数据计算方法、装置、服务器及计算机存储介质
WO2019242947A1 (de) Verfahren zur anbindung eines endgerätes in eine vernetzbare rechner-infrastruktur
EP1709764A1 (de) Schaltungsanordnung und verfahren zur kommunikationssicherheit innerhalb von kommunikationsnetzen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)